@prisma-next/family-sql 0.3.0-pr.99.6 → 0.4.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +58 -22
  3. package/dist/authoring-type-constructors-DgU-RFaP.mjs +203 -0
  4. package/dist/authoring-type-constructors-DgU-RFaP.mjs.map +1 -0
  5. package/dist/control-adapter.d.mts +54 -0
  6. package/dist/control-adapter.d.mts.map +1 -0
  7. package/dist/control-adapter.mjs +1 -0
  8. package/dist/control.d.mts +386 -0
  9. package/dist/control.d.mts.map +1 -0
  10. package/dist/control.mjs +643 -0
  11. package/dist/control.mjs.map +1 -0
  12. package/dist/operation-descriptors.d.mts +380 -0
  13. package/dist/operation-descriptors.d.mts.map +1 -0
  14. package/dist/operation-descriptors.mjs +294 -0
  15. package/dist/operation-descriptors.mjs.map +1 -0
  16. package/dist/pack.d.mts +248 -0
  17. package/dist/pack.d.mts.map +1 -0
  18. package/dist/pack.mjs +18 -0
  19. package/dist/pack.mjs.map +1 -0
  20. package/dist/runtime.d.mts +27 -0
  21. package/dist/runtime.d.mts.map +1 -0
  22. package/dist/runtime.mjs +38 -0
  23. package/dist/runtime.mjs.map +1 -0
  24. package/dist/schema-verify.d.mts +48 -0
  25. package/dist/schema-verify.d.mts.map +1 -0
  26. package/dist/schema-verify.mjs +3 -0
  27. package/dist/test-utils.d.mts +2 -0
  28. package/dist/test-utils.mjs +3 -0
  29. package/dist/types-BaUzKt6Q.d.mts +353 -0
  30. package/dist/types-BaUzKt6Q.d.mts.map +1 -0
  31. package/dist/verify-DZHtfcmj.mjs +108 -0
  32. package/dist/verify-DZHtfcmj.mjs.map +1 -0
  33. package/dist/verify-sql-schema-BBhkqEDo.d.mts +67 -0
  34. package/dist/verify-sql-schema-BBhkqEDo.d.mts.map +1 -0
  35. package/dist/verify-sql-schema-lR-tlboL.mjs +1174 -0
  36. package/dist/verify-sql-schema-lR-tlboL.mjs.map +1 -0
  37. package/dist/verify.d.mts +31 -0
  38. package/dist/verify.d.mts.map +1 -0
  39. package/dist/verify.mjs +3 -0
  40. package/package.json +35 -43
  41. package/src/core/assembly.ts +123 -155
  42. package/src/core/authoring-field-presets.ts +207 -0
  43. package/src/core/authoring-type-constructors.ts +17 -0
  44. package/src/core/control-adapter.ts +18 -10
  45. package/src/core/control-descriptor.ts +28 -0
  46. package/src/core/control-instance.ts +700 -0
  47. package/src/core/migrations/contract-to-schema-ir.ts +269 -0
  48. package/src/core/migrations/descriptor-schemas.ts +172 -0
  49. package/src/core/migrations/operation-descriptors.ts +213 -0
  50. package/src/core/migrations/policies.ts +1 -1
  51. package/src/core/migrations/types.ts +199 -175
  52. package/src/core/runtime-descriptor.ts +19 -41
  53. package/src/core/runtime-instance.ts +11 -133
  54. package/src/core/schema-verify/verify-helpers.ts +104 -22
  55. package/src/core/schema-verify/verify-sql-schema.ts +964 -418
  56. package/src/core/verify.ts +4 -13
  57. package/src/exports/control.ts +31 -8
  58. package/src/exports/operation-descriptors.ts +52 -0
  59. package/src/exports/pack.ts +16 -0
  60. package/src/exports/runtime.ts +2 -6
  61. package/src/exports/schema-verify.ts +4 -1
  62. package/src/exports/test-utils.ts +3 -4
  63. package/dist/chunk-GYEG3I7U.js +0 -624
  64. package/dist/chunk-GYEG3I7U.js.map +0 -1
  65. package/dist/chunk-SU7LN2UH.js +0 -96
  66. package/dist/chunk-SU7LN2UH.js.map +0 -1
  67. package/dist/chunk-XH2Y5NTD.js +0 -715
  68. package/dist/chunk-XH2Y5NTD.js.map +0 -1
  69. package/dist/core/assembly.d.ts +0 -43
  70. package/dist/core/assembly.d.ts.map +0 -1
  71. package/dist/core/control-adapter.d.ts +0 -42
  72. package/dist/core/control-adapter.d.ts.map +0 -1
  73. package/dist/core/descriptor.d.ts +0 -28
  74. package/dist/core/descriptor.d.ts.map +0 -1
  75. package/dist/core/instance.d.ts +0 -140
  76. package/dist/core/instance.d.ts.map +0 -1
  77. package/dist/core/migrations/plan-helpers.d.ts +0 -20
  78. package/dist/core/migrations/plan-helpers.d.ts.map +0 -1
  79. package/dist/core/migrations/policies.d.ts +0 -6
  80. package/dist/core/migrations/policies.d.ts.map +0 -1
  81. package/dist/core/migrations/types.d.ts +0 -280
  82. package/dist/core/migrations/types.d.ts.map +0 -1
  83. package/dist/core/runtime-descriptor.d.ts +0 -19
  84. package/dist/core/runtime-descriptor.d.ts.map +0 -1
  85. package/dist/core/runtime-instance.d.ts +0 -54
  86. package/dist/core/runtime-instance.d.ts.map +0 -1
  87. package/dist/core/schema-verify/verify-helpers.d.ts +0 -96
  88. package/dist/core/schema-verify/verify-helpers.d.ts.map +0 -1
  89. package/dist/core/schema-verify/verify-sql-schema.d.ts +0 -45
  90. package/dist/core/schema-verify/verify-sql-schema.d.ts.map +0 -1
  91. package/dist/core/verify.d.ts +0 -39
  92. package/dist/core/verify.d.ts.map +0 -1
  93. package/dist/exports/control-adapter.d.ts +0 -2
  94. package/dist/exports/control-adapter.d.ts.map +0 -1
  95. package/dist/exports/control-adapter.js +0 -1
  96. package/dist/exports/control-adapter.js.map +0 -1
  97. package/dist/exports/control.d.ts +0 -13
  98. package/dist/exports/control.d.ts.map +0 -1
  99. package/dist/exports/control.js +0 -149
  100. package/dist/exports/control.js.map +0 -1
  101. package/dist/exports/runtime.d.ts +0 -8
  102. package/dist/exports/runtime.d.ts.map +0 -1
  103. package/dist/exports/runtime.js +0 -64
  104. package/dist/exports/runtime.js.map +0 -1
  105. package/dist/exports/schema-verify.d.ts +0 -11
  106. package/dist/exports/schema-verify.d.ts.map +0 -1
  107. package/dist/exports/schema-verify.js +0 -15
  108. package/dist/exports/schema-verify.js.map +0 -1
  109. package/dist/exports/test-utils.d.ts +0 -7
  110. package/dist/exports/test-utils.d.ts.map +0 -1
  111. package/dist/exports/test-utils.js +0 -17
  112. package/dist/exports/test-utils.js.map +0 -1
  113. package/dist/exports/verify.d.ts +0 -2
  114. package/dist/exports/verify.d.ts.map +0 -1
  115. package/dist/exports/verify.js +0 -11
  116. package/dist/exports/verify.js.map +0 -1
  117. package/src/core/descriptor.ts +0 -33
  118. package/src/core/instance.ts +0 -909
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control.mjs","names":["contract: { storageHash: string; profileHash?: string }","target: { expected: string; actual?: string }","meta: { contractPath: string; configPath?: string }","result: VerifyDatabaseResult","sqlValidateContract","missingCodecs: readonly string[] | undefined","previousHashes: { storageHash?: string; profileHash?: string } | undefined","summary: string","tableNodes: readonly SchemaTreeNode[]","children: SchemaTreeNode[]","columnNodes: SchemaTreeNode[]","tableMeta: Record<string, unknown>","dependencyNodes: readonly SchemaTreeNode[]","columns: Record<string, SqlColumnIR>","fkBackingIndexes: SqlIndexIR[]","conflicts: MigrationPlannerConflict[]","tables: Record<string, SqlTableIR>","result: DependencyIR[]","byNativeType: Record<string, (typeof storage.types)[string]>","readOnlyEmptyObject: Record<string, never>","INIT_ADDITIVE_POLICY: MigrationOperationPolicy"],"sources":["../src/core/control-instance.ts","../src/core/control-descriptor.ts","../src/core/migrations/contract-to-schema-ir.ts","../src/core/migrations/plan-helpers.ts","../src/core/migrations/policies.ts","../src/exports/control.ts"],"sourcesContent":["import type { Contract, ContractMarkerRecord } from '@prisma-next/contract/types';\nimport { emptyCodecLookup } from '@prisma-next/framework-components/codec';\nimport type {\n TargetBoundComponentDescriptor,\n TargetDescriptor,\n} from '@prisma-next/framework-components/components';\nimport type {\n ControlDriverInstance,\n ControlFamilyInstance,\n ControlStack,\n CoreSchemaView,\n OperationContext,\n SchemaViewCapable,\n SignDatabaseResult,\n VerifyDatabaseResult,\n VerifyDatabaseSchemaResult,\n} from '@prisma-next/framework-components/control';\nimport {\n SchemaTreeNode,\n VERIFY_CODE_HASH_MISMATCH,\n VERIFY_CODE_MARKER_MISSING,\n VERIFY_CODE_TARGET_MISMATCH,\n} from '@prisma-next/framework-components/control';\nimport type { TypesImportSpec } from '@prisma-next/framework-components/emission';\nimport type { SqlStorage } from '@prisma-next/sql-contract/types';\nimport { validateContract as sqlValidateContract } from '@prisma-next/sql-contract/validate';\nimport {\n ensureSchemaStatement,\n ensureTableStatement,\n writeContractMarker,\n} from '@prisma-next/sql-runtime';\nimport { defaultIndexName } from '@prisma-next/sql-schema-ir/naming';\nimport type { SqlSchemaIR, SqlTableIR } from '@prisma-next/sql-schema-ir/types';\nimport { ifDefined } from '@prisma-next/utils/defined';\nimport type { SqlControlDescriptorWithContributions } from './assembly';\nimport type { SqlControlAdapter } from './control-adapter';\nimport type {\n SqlControlAdapterDescriptor,\n SqlControlExtensionDescriptor,\n} from './migrations/types';\nimport { verifySqlSchema } from './schema-verify/verify-sql-schema';\nimport { collectSupportedCodecTypeIds, readMarker } from './verify';\n\nfunction extractCodecTypeIdsFromContract(contract: unknown): readonly string[] {\n const typeIds = new Set<string>();\n\n // Type guard for SQL contract structure\n if (\n typeof contract === 'object' &&\n contract !== null &&\n 'storage' in contract &&\n typeof contract.storage === 'object' &&\n contract.storage !== null &&\n 'tables' in contract.storage\n ) {\n const storage = contract.storage as { tables?: Record<string, unknown> };\n if (storage.tables && typeof storage.tables === 'object') {\n for (const table of Object.values(storage.tables)) {\n if (\n typeof table === 'object' &&\n table !== null &&\n 'columns' in table &&\n typeof table.columns === 'object' &&\n table.columns !== null\n ) {\n const columns = table.columns as Record<string, { codecId: string } | undefined>;\n for (const column of Object.values(columns)) {\n if (\n column &&\n typeof column === 'object' &&\n 'codecId' in column &&\n typeof column.codecId === 'string'\n ) {\n typeIds.add(column.codecId);\n }\n }\n }\n }\n }\n }\n\n return Array.from(typeIds).sort();\n}\n\nfunction createVerifyResult(options: {\n ok: boolean;\n code?: string;\n summary: string;\n contractStorageHash: string;\n contractProfileHash?: string;\n marker?: ContractMarkerRecord;\n expectedTargetId: string;\n actualTargetId?: string;\n missingCodecs?: readonly string[];\n codecCoverageSkipped?: boolean;\n configPath?: string;\n contractPath: string;\n totalTime: number;\n}): VerifyDatabaseResult {\n const contract: { storageHash: string; profileHash?: string } = {\n storageHash: options.contractStorageHash,\n };\n if (options.contractProfileHash) {\n contract.profileHash = options.contractProfileHash;\n }\n\n const target: { expected: string; actual?: string } = {\n expected: options.expectedTargetId,\n };\n if (options.actualTargetId) {\n target.actual = options.actualTargetId;\n }\n\n const meta: { contractPath: string; configPath?: string } = {\n contractPath: options.contractPath,\n };\n if (options.configPath) {\n meta.configPath = options.configPath;\n }\n\n const result: VerifyDatabaseResult = {\n ok: options.ok,\n summary: options.summary,\n contract,\n target,\n meta,\n timings: {\n total: options.totalTime,\n },\n };\n\n if (options.code) {\n (result as { code?: string }).code = options.code;\n }\n\n if (options.marker) {\n (result as { marker?: { storageHash: string; profileHash: string } }).marker = {\n storageHash: options.marker.storageHash,\n profileHash: options.marker.profileHash,\n };\n }\n\n if (options.missingCodecs) {\n (result as { missingCodecs?: readonly string[] }).missingCodecs = options.missingCodecs;\n }\n\n if (options.codecCoverageSkipped) {\n (result as { codecCoverageSkipped?: boolean }).codecCoverageSkipped =\n options.codecCoverageSkipped;\n }\n\n return result;\n}\n\ninterface SqlTypeMetadata {\n readonly typeId: string;\n readonly familyId: 'sql';\n readonly targetId: string;\n readonly nativeType?: string;\n}\n\ntype SqlTypeMetadataRegistry = Map<string, SqlTypeMetadata>;\n\ninterface SqlFamilyInstanceState {\n readonly codecTypeImports: ReadonlyArray<TypesImportSpec>;\n readonly operationTypeImports: ReadonlyArray<TypesImportSpec>;\n readonly extensionIds: ReadonlyArray<string>;\n readonly typeMetadataRegistry: SqlTypeMetadataRegistry;\n}\n\nexport interface SchemaVerifyOptions {\n readonly driver: ControlDriverInstance<'sql', string>;\n readonly contract: unknown;\n readonly strict: boolean;\n readonly context?: OperationContext;\n /**\n * Active framework components participating in this composition.\n * All components must have matching familyId ('sql') and targetId.\n */\n readonly frameworkComponents: ReadonlyArray<TargetBoundComponentDescriptor<'sql', string>>;\n}\n\nexport interface SqlControlFamilyInstance\n extends ControlFamilyInstance<'sql', SqlSchemaIR>,\n SchemaViewCapable<SqlSchemaIR>,\n SqlFamilyInstanceState {\n validateContract(contractJson: unknown): Contract;\n\n verify(options: {\n readonly driver: ControlDriverInstance<'sql', string>;\n readonly contract: unknown;\n readonly expectedTargetId: string;\n readonly contractPath: string;\n readonly configPath?: string;\n }): Promise<VerifyDatabaseResult>;\n\n schemaVerify(options: SchemaVerifyOptions): Promise<VerifyDatabaseSchemaResult>;\n\n sign(options: {\n readonly driver: ControlDriverInstance<'sql', string>;\n readonly contract: unknown;\n readonly contractPath: string;\n readonly configPath?: string;\n }): Promise<SignDatabaseResult>;\n\n introspect(options: {\n readonly driver: ControlDriverInstance<'sql', string>;\n readonly contract?: unknown;\n }): Promise<SqlSchemaIR>;\n}\n\nexport type SqlFamilyInstance = SqlControlFamilyInstance;\n\nfunction isSqlControlAdapter<TTargetId extends string>(\n value: unknown,\n): value is SqlControlAdapter<TTargetId> {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'introspect' in value &&\n typeof (value as { introspect: unknown }).introspect === 'function'\n );\n}\n\ninterface DescriptorWithStorageTypes {\n readonly targetId?: string | undefined;\n readonly types?:\n | {\n readonly storage?:\n | ReadonlyArray<{\n readonly typeId: string;\n readonly familyId: string;\n readonly targetId: string;\n readonly nativeType?: string | undefined;\n }>\n | undefined;\n }\n | undefined;\n}\n\nfunction buildSqlTypeMetadataRegistry(options: {\n readonly target: DescriptorWithStorageTypes;\n readonly adapter: DescriptorWithStorageTypes & { readonly targetId: string };\n readonly extensionPacks: readonly DescriptorWithStorageTypes[];\n}): SqlTypeMetadataRegistry {\n const { target, adapter, extensionPacks: extensions } = options;\n const registry = new Map<string, SqlTypeMetadata>();\n const targetId = adapter.targetId;\n const descriptors = [target, adapter, ...extensions];\n\n for (const descriptor of descriptors) {\n const types = descriptor.types;\n const storageTypes = types?.storage;\n\n if (!storageTypes) {\n continue;\n }\n\n for (const storageType of storageTypes) {\n if (storageType.familyId === 'sql' && storageType.targetId === targetId) {\n registry.set(storageType.typeId, {\n typeId: storageType.typeId,\n familyId: 'sql',\n targetId: storageType.targetId,\n ...(storageType.nativeType !== undefined ? { nativeType: storageType.nativeType } : {}),\n });\n }\n }\n }\n\n return registry;\n}\n\nexport function createSqlFamilyInstance<TTargetId extends string>(\n stack: ControlStack<'sql', TTargetId>,\n): SqlFamilyInstance {\n if (!stack.adapter) {\n throw new Error('SQL family requires an adapter descriptor in ControlStack');\n }\n\n const target = stack.target as unknown as TargetDescriptor<'sql', TTargetId> &\n SqlControlDescriptorWithContributions &\n DescriptorWithStorageTypes;\n const adapter = stack.adapter as unknown as SqlControlAdapterDescriptor<TTargetId> &\n DescriptorWithStorageTypes;\n const extensions =\n stack.extensionPacks as unknown as readonly (SqlControlExtensionDescriptor<TTargetId> &\n DescriptorWithStorageTypes)[];\n\n const { codecTypeImports, operationTypeImports, extensionIds } = stack;\n\n const typeMetadataRegistry = buildSqlTypeMetadataRegistry({\n target,\n adapter,\n extensionPacks: extensions,\n });\n\n return {\n familyId: 'sql',\n codecTypeImports,\n operationTypeImports,\n extensionIds,\n typeMetadataRegistry,\n\n validateContract(contractJson: unknown): Contract {\n return sqlValidateContract<Contract<SqlStorage>>(contractJson, emptyCodecLookup);\n },\n\n async verify(verifyOptions: {\n readonly driver: ControlDriverInstance<'sql', string>;\n readonly contract: unknown;\n readonly expectedTargetId: string;\n readonly contractPath: string;\n readonly configPath?: string;\n }): Promise<VerifyDatabaseResult> {\n const {\n driver,\n contract: rawContract,\n expectedTargetId,\n contractPath,\n configPath,\n } = verifyOptions;\n const startTime = Date.now();\n\n const contract = sqlValidateContract<Contract<SqlStorage>>(rawContract, emptyCodecLookup);\n\n const contractStorageHash = contract.storage.storageHash;\n const contractProfileHash = contract.profileHash;\n const contractTarget = contract.target;\n\n const marker = await readMarker(driver);\n\n let missingCodecs: readonly string[] | undefined;\n let codecCoverageSkipped = false;\n const supportedTypeIds = collectSupportedCodecTypeIds([adapter, target, ...extensions]);\n if (supportedTypeIds.length === 0) {\n codecCoverageSkipped = true;\n } else {\n const supportedSet = new Set(supportedTypeIds);\n const usedTypeIds = extractCodecTypeIdsFromContract(contract);\n const missing = usedTypeIds.filter((id) => !supportedSet.has(id));\n if (missing.length > 0) {\n missingCodecs = missing;\n }\n }\n\n if (!marker) {\n const totalTime = Date.now() - startTime;\n return createVerifyResult({\n ok: false,\n code: VERIFY_CODE_MARKER_MISSING,\n summary: 'Marker missing',\n contractStorageHash,\n expectedTargetId,\n contractPath,\n totalTime,\n ...(contractProfileHash ? { contractProfileHash } : {}),\n ...(missingCodecs ? { missingCodecs } : {}),\n ...(codecCoverageSkipped ? { codecCoverageSkipped } : {}),\n ...(configPath ? { configPath } : {}),\n });\n }\n\n if (contractTarget !== expectedTargetId) {\n const totalTime = Date.now() - startTime;\n return createVerifyResult({\n ok: false,\n code: VERIFY_CODE_TARGET_MISMATCH,\n summary: 'Target mismatch',\n contractStorageHash,\n marker,\n expectedTargetId,\n actualTargetId: contractTarget,\n contractPath,\n totalTime,\n ...(contractProfileHash ? { contractProfileHash } : {}),\n ...(missingCodecs ? { missingCodecs } : {}),\n ...(codecCoverageSkipped ? { codecCoverageSkipped } : {}),\n ...(configPath ? { configPath } : {}),\n });\n }\n\n if (marker.storageHash !== contractStorageHash) {\n const totalTime = Date.now() - startTime;\n return createVerifyResult({\n ok: false,\n code: VERIFY_CODE_HASH_MISMATCH,\n summary: 'Hash mismatch',\n contractStorageHash,\n marker,\n expectedTargetId,\n contractPath,\n totalTime,\n ...(contractProfileHash ? { contractProfileHash } : {}),\n ...(missingCodecs ? { missingCodecs } : {}),\n ...(codecCoverageSkipped ? { codecCoverageSkipped } : {}),\n ...(configPath ? { configPath } : {}),\n });\n }\n\n if (contractProfileHash && marker.profileHash !== contractProfileHash) {\n const totalTime = Date.now() - startTime;\n return createVerifyResult({\n ok: false,\n code: VERIFY_CODE_HASH_MISMATCH,\n summary: 'Hash mismatch',\n contractStorageHash,\n contractProfileHash,\n marker,\n expectedTargetId,\n contractPath,\n totalTime,\n ...(missingCodecs ? { missingCodecs } : {}),\n ...(codecCoverageSkipped ? { codecCoverageSkipped } : {}),\n ...(configPath ? { configPath } : {}),\n });\n }\n\n const totalTime = Date.now() - startTime;\n return createVerifyResult({\n ok: true,\n summary: 'Database matches contract',\n contractStorageHash,\n marker,\n expectedTargetId,\n contractPath,\n totalTime,\n ...(contractProfileHash ? { contractProfileHash } : {}),\n ...(missingCodecs ? { missingCodecs } : {}),\n ...(codecCoverageSkipped ? { codecCoverageSkipped } : {}),\n ...(configPath ? { configPath } : {}),\n });\n },\n\n async schemaVerify(options: SchemaVerifyOptions): Promise<VerifyDatabaseSchemaResult> {\n const { driver, contract: contractInput, strict, context, frameworkComponents } = options;\n\n const contract = sqlValidateContract<Contract<SqlStorage>>(contractInput, emptyCodecLookup);\n\n const controlAdapter = adapter.create();\n if (!isSqlControlAdapter(controlAdapter)) {\n throw new Error('Adapter does not implement SqlControlAdapter.introspect()');\n }\n const schemaIR = await controlAdapter.introspect(driver, contractInput);\n\n return verifySqlSchema({\n contract,\n schema: schemaIR,\n strict,\n ...ifDefined('context', context),\n typeMetadataRegistry,\n frameworkComponents,\n // Wire up target-specific normalizers if available\n ...ifDefined('normalizeDefault', controlAdapter.normalizeDefault),\n ...ifDefined('normalizeNativeType', controlAdapter.normalizeNativeType),\n });\n },\n async sign(options: {\n readonly driver: ControlDriverInstance<'sql', string>;\n readonly contract: unknown;\n readonly contractPath: string;\n readonly configPath?: string;\n }): Promise<SignDatabaseResult> {\n const { driver, contract: contractInput, contractPath, configPath } = options;\n const startTime = Date.now();\n\n const contract = sqlValidateContract<Contract<SqlStorage>>(contractInput, emptyCodecLookup);\n\n const contractStorageHash = contract.storage.storageHash;\n const contractProfileHash =\n 'profileHash' in contract && typeof contract.profileHash === 'string'\n ? contract.profileHash\n : contractStorageHash;\n const contractTarget = contract.target;\n\n await driver.query(ensureSchemaStatement.sql, ensureSchemaStatement.params);\n await driver.query(ensureTableStatement.sql, ensureTableStatement.params);\n\n const existingMarker = await readMarker(driver);\n\n let markerCreated = false;\n let markerUpdated = false;\n let previousHashes: { storageHash?: string; profileHash?: string } | undefined;\n\n if (!existingMarker) {\n const write = writeContractMarker({\n storageHash: contractStorageHash,\n profileHash: contractProfileHash,\n contractJson: contractInput,\n canonicalVersion: 1,\n });\n await driver.query(write.insert.sql, write.insert.params);\n markerCreated = true;\n } else {\n const existingStorageHash = existingMarker.storageHash;\n const existingProfileHash = existingMarker.profileHash;\n\n const storageHashMatches = existingStorageHash === contractStorageHash;\n const profileHashMatches = existingProfileHash === contractProfileHash;\n\n if (!storageHashMatches || !profileHashMatches) {\n previousHashes = {\n storageHash: existingStorageHash,\n profileHash: existingProfileHash,\n };\n const write = writeContractMarker({\n storageHash: contractStorageHash,\n profileHash: contractProfileHash,\n contractJson: contractInput,\n canonicalVersion: existingMarker.canonicalVersion ?? 1,\n });\n await driver.query(write.update.sql, write.update.params);\n markerUpdated = true;\n }\n }\n\n let summary: string;\n if (markerCreated) {\n summary = 'Database signed (marker created)';\n } else if (markerUpdated) {\n summary = `Database signed (marker updated from ${previousHashes?.storageHash ?? 'unknown'})`;\n } else {\n summary = 'Database already signed with this contract';\n }\n\n const totalTime = Date.now() - startTime;\n\n return {\n ok: true,\n summary,\n contract: {\n storageHash: contractStorageHash,\n profileHash: contractProfileHash,\n },\n target: {\n expected: contractTarget,\n actual: contractTarget,\n },\n marker: {\n created: markerCreated,\n updated: markerUpdated,\n ...(previousHashes ? { previous: previousHashes } : {}),\n },\n meta: {\n contractPath,\n ...(configPath ? { configPath } : {}),\n },\n timings: {\n total: totalTime,\n },\n };\n },\n async readMarker(options: {\n readonly driver: ControlDriverInstance<'sql', string>;\n }): Promise<ContractMarkerRecord | null> {\n return readMarker(options.driver);\n },\n async introspect(options: {\n readonly driver: ControlDriverInstance<'sql', string>;\n readonly contract?: unknown;\n }): Promise<SqlSchemaIR> {\n const { driver, contract } = options;\n\n const controlAdapter = adapter.create();\n if (!isSqlControlAdapter(controlAdapter)) {\n throw new Error('Adapter does not implement SqlControlAdapter.introspect()');\n }\n return controlAdapter.introspect(driver, contract);\n },\n\n toSchemaView(schema: SqlSchemaIR): CoreSchemaView {\n const tableNodes: readonly SchemaTreeNode[] = Object.entries(schema.tables).map(\n ([tableName, table]: [string, SqlTableIR]) => {\n const children: SchemaTreeNode[] = [];\n\n const columnNodes: SchemaTreeNode[] = [];\n for (const [columnName, column] of Object.entries(table.columns)) {\n const typeDisplay = column.nativeType;\n const nullability = column.nullable ? 'nullable' : 'not nullable';\n const label = `${columnName}: ${typeDisplay} (${nullability})`;\n columnNodes.push(\n new SchemaTreeNode({\n kind: 'field',\n id: `column-${tableName}-${columnName}`,\n label,\n meta: {\n nativeType: column.nativeType,\n nullable: column.nullable,\n ...ifDefined('default', column.default),\n },\n }),\n );\n }\n\n if (columnNodes.length > 0) {\n children.push(\n new SchemaTreeNode({\n kind: 'collection',\n id: `columns-${tableName}`,\n label: 'columns',\n children: columnNodes,\n }),\n );\n }\n\n if (table.primaryKey) {\n const pkColumns = table.primaryKey.columns.join(', ');\n children.push(\n new SchemaTreeNode({\n kind: 'index',\n id: `primary-key-${tableName}`,\n label: `primary key: ${pkColumns}`,\n meta: {\n columns: table.primaryKey.columns,\n ...(table.primaryKey.name ? { name: table.primaryKey.name } : {}),\n },\n }),\n );\n }\n\n for (const unique of table.uniques) {\n const name = unique.name ?? `${tableName}_${unique.columns.join('_')}_unique`;\n const label = `unique ${name}`;\n children.push(\n new SchemaTreeNode({\n kind: 'index',\n id: `unique-${tableName}-${name}`,\n label,\n meta: {\n columns: unique.columns,\n unique: true,\n },\n }),\n );\n }\n\n for (const index of table.indexes) {\n const name = index.name ?? defaultIndexName(tableName, index.columns);\n const label = index.unique ? `unique index ${name}` : `index ${name}`;\n children.push(\n new SchemaTreeNode({\n kind: 'index',\n id: `index-${tableName}-${name}`,\n label,\n meta: {\n columns: index.columns,\n unique: index.unique,\n },\n }),\n );\n }\n\n const tableMeta: Record<string, unknown> = {};\n if (table.primaryKey) {\n tableMeta['primaryKey'] = table.primaryKey.columns;\n if (table.primaryKey.name) {\n tableMeta['primaryKeyName'] = table.primaryKey.name;\n }\n }\n if (table.foreignKeys.length > 0) {\n tableMeta['foreignKeys'] = table.foreignKeys.map((fk) => ({\n columns: fk.columns,\n referencedTable: fk.referencedTable,\n referencedColumns: fk.referencedColumns,\n ...(fk.name ? { name: fk.name } : {}),\n }));\n }\n\n return new SchemaTreeNode({\n kind: 'entity',\n id: `table-${tableName}`,\n label: `table ${tableName}`,\n ...(Object.keys(tableMeta).length > 0 ? { meta: tableMeta } : {}),\n ...(children.length > 0 ? { children } : {}),\n });\n },\n );\n\n const dependencyNodes: readonly SchemaTreeNode[] = schema.dependencies.map((dep) => {\n const shortName = dep.id.split('.').pop() ?? dep.id;\n return new SchemaTreeNode({\n kind: 'dependency',\n id: `dependency-${dep.id}`,\n label: `${shortName} dependency is installed`,\n });\n });\n\n const rootChildren = [...tableNodes, ...dependencyNodes];\n\n return {\n root: new SchemaTreeNode({\n kind: 'root',\n id: 'sql-schema',\n label: 'database',\n ...(rootChildren.length > 0 ? { children: rootChildren } : {}),\n }),\n };\n },\n };\n}\n","import type {\n ControlFamilyDescriptor,\n ControlStack,\n} from '@prisma-next/framework-components/control';\nimport { sqlEmission } from '@prisma-next/sql-contract-emitter';\nimport { sqlFamilyAuthoringFieldPresets } from './authoring-field-presets';\nimport { sqlFamilyAuthoringTypes } from './authoring-type-constructors';\nimport { createSqlFamilyInstance, type SqlControlFamilyInstance } from './control-instance';\n\nexport class SqlFamilyDescriptor\n implements ControlFamilyDescriptor<'sql', SqlControlFamilyInstance>\n{\n readonly kind = 'family' as const;\n readonly id = 'sql';\n readonly familyId = 'sql' as const;\n readonly version = '0.0.1';\n readonly emission = sqlEmission;\n readonly authoring = {\n field: sqlFamilyAuthoringFieldPresets,\n type: sqlFamilyAuthoringTypes,\n } as const;\n\n create<TTargetId extends string>(\n stack: ControlStack<'sql', TTargetId>,\n ): SqlControlFamilyInstance {\n return createSqlFamilyInstance(stack);\n }\n}\n","import type { ColumnDefault, Contract } from '@prisma-next/contract/types';\nimport type { TargetBoundComponentDescriptor } from '@prisma-next/framework-components/components';\nimport type { MigrationPlannerConflict } from '@prisma-next/framework-components/control';\nimport type {\n ForeignKey,\n Index,\n SqlStorage,\n StorageColumn,\n StorageTable,\n UniqueConstraint,\n} from '@prisma-next/sql-contract/types';\nimport { defaultIndexName } from '@prisma-next/sql-schema-ir/naming';\nimport type {\n DependencyIR,\n SqlAnnotations,\n SqlColumnIR,\n SqlForeignKeyIR,\n SqlIndexIR,\n SqlSchemaIR,\n SqlTableIR,\n SqlUniqueIR,\n} from '@prisma-next/sql-schema-ir/types';\nimport { ifDefined } from '@prisma-next/utils/defined';\nimport { collectInitDependencies } from './types';\n\n/**\n * Target-specific callback that expands a column's base `nativeType` and optional\n * `typeParams` into the fully-qualified type string used by the database\n * (e.g. `character` + `{ length: 36 }` → `character(36)`).\n *\n * This lives in the family layer as a callback rather than importing a concrete\n * implementation because each target (Postgres, MySQL, SQLite, …) has its own\n * parameterization syntax. The target wires its expander when calling\n * `contractToSchemaIR`, keeping the family layer target-agnostic.\n */\nexport type NativeTypeExpander = (input: {\n readonly nativeType: string;\n readonly codecId?: string;\n readonly typeParams?: Record<string, unknown>;\n}) => string;\n\n/**\n * Target-specific callback that renders a `ColumnDefault` into the raw SQL literal\n * string stored in `SqlColumnIR.default`.\n *\n * Default value serialization is target-specific (quoting, casting, type syntax vary\n * between Postgres, MySQL, SQLite, …). This callback follows the same IoC pattern as\n * `NativeTypeExpander`: the target provides its renderer when calling\n * `contractToSchemaIR`, keeping the family layer target-agnostic.\n */\nexport type DefaultRenderer = (def: ColumnDefault, column: StorageColumn) => string;\n\nfunction convertColumn(\n name: string,\n column: StorageColumn,\n expandNativeType: NativeTypeExpander | undefined,\n renderDefault: DefaultRenderer | undefined,\n): SqlColumnIR {\n const nativeType = expandNativeType\n ? expandNativeType({\n nativeType: column.nativeType,\n codecId: column.codecId,\n ...ifDefined('typeParams', column.typeParams),\n })\n : column.nativeType;\n return {\n name,\n nativeType,\n nullable: column.nullable,\n ...ifDefined(\n 'default',\n column.default != null && renderDefault ? renderDefault(column.default, column) : undefined,\n ),\n };\n}\n\nfunction convertUnique(unique: UniqueConstraint): SqlUniqueIR {\n return {\n columns: unique.columns,\n ...ifDefined('name', unique.name),\n };\n}\n\nfunction convertIndex(index: Index): SqlIndexIR {\n return {\n columns: index.columns,\n unique: false,\n ...ifDefined('name', index.name),\n };\n}\n\nfunction convertForeignKey(fk: ForeignKey): SqlForeignKeyIR {\n return {\n columns: fk.columns,\n referencedTable: fk.references.table,\n referencedColumns: fk.references.columns,\n ...ifDefined('name', fk.name),\n };\n}\n\nfunction convertTable(\n name: string,\n table: StorageTable,\n expandNativeType: NativeTypeExpander | undefined,\n renderDefault: DefaultRenderer | undefined,\n): SqlTableIR {\n const columns: Record<string, SqlColumnIR> = {};\n for (const [colName, colDef] of Object.entries(table.columns)) {\n columns[colName] = convertColumn(colName, colDef, expandNativeType, renderDefault);\n }\n\n const satisfiedIndexColumns = new Set([\n ...table.indexes.map((idx) => idx.columns.join(',')),\n ...table.uniques.map((unique) => unique.columns.join(',')),\n ...(table.primaryKey ? [table.primaryKey.columns.join(',')] : []),\n ]);\n const fkBackingIndexes: SqlIndexIR[] = [];\n for (const fk of table.foreignKeys) {\n if (fk.index === false) continue;\n const key = fk.columns.join(',');\n if (satisfiedIndexColumns.has(key)) continue;\n fkBackingIndexes.push({\n columns: fk.columns,\n unique: false,\n name: defaultIndexName(name, fk.columns),\n });\n satisfiedIndexColumns.add(key);\n }\n\n return {\n name,\n columns,\n ...ifDefined('primaryKey', table.primaryKey),\n foreignKeys: table.foreignKeys.map(convertForeignKey),\n uniques: table.uniques.map(convertUnique),\n indexes: [...table.indexes.map(convertIndex), ...fkBackingIndexes],\n };\n}\n\n/**\n * Detects destructive changes between two contract storages.\n *\n * The additive-only planner silently ignores removals (tables, columns).\n * This function detects those removals so callers can report them as conflicts\n * rather than silently producing an empty plan.\n *\n * Returns an empty array if no destructive changes are found.\n */\nexport function detectDestructiveChanges(\n from: SqlStorage | null,\n to: SqlStorage,\n): readonly MigrationPlannerConflict[] {\n if (!from) return [];\n\n const hasOwn = (value: object, key: string): boolean => Object.hasOwn(value, key);\n\n const conflicts: MigrationPlannerConflict[] = [];\n\n for (const tableName of Object.keys(from.tables)) {\n if (!hasOwn(to.tables, tableName)) {\n conflicts.push({\n kind: 'tableRemoved',\n summary: `Table \"${tableName}\" was removed`,\n });\n continue;\n }\n\n const toTable = to.tables[tableName] as StorageTable;\n const fromTable = from.tables[tableName];\n if (!fromTable) continue;\n\n for (const columnName of Object.keys(fromTable.columns)) {\n if (!hasOwn(toTable.columns, columnName)) {\n conflicts.push({\n kind: 'columnRemoved',\n summary: `Column \"${tableName}\".\"${columnName}\" was removed`,\n });\n }\n }\n }\n\n return conflicts;\n}\n\nexport interface ContractToSchemaIROptions {\n readonly annotationNamespace: string;\n readonly expandNativeType?: NativeTypeExpander;\n readonly renderDefault?: DefaultRenderer;\n readonly frameworkComponents?: ReadonlyArray<TargetBoundComponentDescriptor<'sql', string>>;\n}\n\n/**\n * Converts a `Contract` to `SqlSchemaIR`.\n *\n * Reads `contract.storage` for tables, `contract.storage.types` for type\n * annotations, and derives database dependencies from `frameworkComponents`\n * (each component's `databaseDependencies.init[].id`).\n * Storage-type annotations are written under `options.annotationNamespace`.\n *\n * Drops codec metadata (`codecId`, `typeRef`) since the schema IR only represents\n * structural information. When `expandNativeType` is provided, parameterized types\n * are expanded (e.g. `character` + `{ length: 36 }` → `character(36)`) so the\n * resulting IR compares correctly against the \"to\" contract during planning.\n *\n * Returns an empty schema IR when `contract` is `null` (new project).\n */\nexport function contractToSchemaIR(\n contract: Contract<SqlStorage> | null,\n options: ContractToSchemaIROptions,\n): SqlSchemaIR {\n if (options.annotationNamespace.length === 0) {\n throw new Error('annotationNamespace must be a non-empty string');\n }\n\n if (!contract) {\n return { tables: {}, dependencies: [] };\n }\n\n const storage = contract.storage;\n const tables: Record<string, SqlTableIR> = {};\n for (const [tableName, tableDef] of Object.entries(storage.tables)) {\n tables[tableName] = convertTable(\n tableName,\n tableDef,\n options.expandNativeType,\n options.renderDefault,\n );\n }\n\n const dependencies = deduplicateDependencyIRs(\n collectInitDependencies(options.frameworkComponents ?? []),\n );\n const annotations = deriveAnnotations(storage, options.annotationNamespace);\n\n return {\n tables,\n dependencies,\n ...ifDefined('annotations', annotations),\n };\n}\n\nfunction deduplicateDependencyIRs(\n deps: readonly { readonly id: string }[],\n): readonly DependencyIR[] {\n const seen = new Set<string>();\n const result: DependencyIR[] = [];\n for (const dep of deps) {\n if (dep.id.trim().length === 0) {\n throw new Error('Dependency id must be a non-empty string');\n }\n if (seen.has(dep.id)) continue;\n seen.add(dep.id);\n result.push({ id: dep.id });\n }\n return result;\n}\n\nfunction deriveAnnotations(\n storage: SqlStorage,\n annotationNamespace: string,\n): SqlAnnotations | undefined {\n if (!storage.types || Object.keys(storage.types).length === 0) return undefined;\n // Re-key by nativeType to match the structure produced by introspection\n const byNativeType: Record<string, (typeof storage.types)[string]> = {};\n for (const typeInstance of Object.values(storage.types)) {\n byNativeType[typeInstance.nativeType] = typeInstance;\n }\n return { [annotationNamespace]: { storageTypes: byNativeType } };\n}\n","import type { NotOk, Ok } from '@prisma-next/utils/result';\nimport { notOk, ok } from '@prisma-next/utils/result';\nimport type {\n AnyRecord,\n CreateSqlMigrationPlanOptions,\n SqlMigrationPlan,\n SqlMigrationPlanOperation,\n SqlMigrationPlanOperationStep,\n SqlMigrationPlanOperationTarget,\n SqlMigrationRunnerErrorCode,\n SqlMigrationRunnerFailure,\n SqlMigrationRunnerSuccessValue,\n SqlPlannerConflict,\n SqlPlannerFailureResult,\n SqlPlannerSuccessResult,\n} from './types';\n\nconst readOnlyEmptyObject: Record<string, never> = Object.freeze({});\n\nfunction cloneRecord<T extends AnyRecord>(value: T): T {\n if (value === readOnlyEmptyObject) {\n return value;\n }\n return Object.freeze({ ...value }) as T;\n}\n\nfunction freezeSteps(\n steps: readonly SqlMigrationPlanOperationStep[],\n): readonly SqlMigrationPlanOperationStep[] {\n if (steps.length === 0) {\n return Object.freeze([]);\n }\n return Object.freeze(\n steps.map((step) =>\n Object.freeze({\n description: step.description,\n sql: step.sql,\n ...(step.meta ? { meta: cloneRecord(step.meta) } : {}),\n }),\n ),\n );\n}\n\nfunction freezeDetailsValue<T>(value: T): T {\n // Primitives and null/undefined are already immutable, return as-is\n if (value === null || value === undefined) {\n return value;\n }\n if (typeof value !== 'object') {\n return value;\n }\n // Arrays: shallow clone and freeze\n if (Array.isArray(value)) {\n return Object.freeze([...value]) as T;\n }\n // Objects: shallow clone and freeze (matching cloneRecord pattern)\n return Object.freeze({ ...value }) as T;\n}\n\nfunction freezeTargetDetails<TTargetDetails>(\n target: SqlMigrationPlanOperationTarget<TTargetDetails>,\n): SqlMigrationPlanOperationTarget<TTargetDetails> {\n return Object.freeze({\n id: target.id,\n ...(target.details !== undefined ? { details: freezeDetailsValue(target.details) } : {}),\n });\n}\n\nfunction freezeOperation<TTargetDetails>(\n operation: SqlMigrationPlanOperation<TTargetDetails>,\n): SqlMigrationPlanOperation<TTargetDetails> {\n return Object.freeze({\n id: operation.id,\n label: operation.label,\n ...(operation.summary ? { summary: operation.summary } : {}),\n operationClass: operation.operationClass,\n target: freezeTargetDetails(operation.target),\n precheck: freezeSteps(operation.precheck),\n execute: freezeSteps(operation.execute),\n postcheck: freezeSteps(operation.postcheck),\n ...(operation.meta ? { meta: cloneRecord(operation.meta) } : {}),\n });\n}\n\nfunction freezeOperations<TTargetDetails>(\n operations: readonly SqlMigrationPlanOperation<TTargetDetails>[],\n): readonly SqlMigrationPlanOperation<TTargetDetails>[] {\n if (operations.length === 0) {\n return Object.freeze([]);\n }\n return Object.freeze(operations.map((operation) => freezeOperation(operation)));\n}\n\nexport function createMigrationPlan<TTargetDetails>(\n options: CreateSqlMigrationPlanOptions<TTargetDetails>,\n): SqlMigrationPlan<TTargetDetails> {\n return Object.freeze({\n targetId: options.targetId,\n ...(options.origin !== undefined\n ? { origin: options.origin ? Object.freeze({ ...options.origin }) : null }\n : {}),\n destination: Object.freeze({ ...options.destination }),\n operations: freezeOperations(options.operations),\n ...(options.meta ? { meta: cloneRecord(options.meta) } : {}),\n });\n}\n\nexport function plannerSuccess<TTargetDetails>(\n plan: SqlMigrationPlan<TTargetDetails>,\n): SqlPlannerSuccessResult<TTargetDetails> {\n return Object.freeze({\n kind: 'success',\n plan,\n });\n}\n\nexport function plannerFailure(conflicts: readonly SqlPlannerConflict[]): SqlPlannerFailureResult {\n return Object.freeze({\n kind: 'failure' as const,\n conflicts: Object.freeze(\n conflicts.map((conflict) =>\n Object.freeze({\n kind: conflict.kind,\n summary: conflict.summary,\n ...(conflict.why ? { why: conflict.why } : {}),\n ...(conflict.location ? { location: Object.freeze({ ...conflict.location }) } : {}),\n ...(conflict.meta ? { meta: cloneRecord(conflict.meta) } : {}),\n }),\n ),\n ),\n });\n}\n\n/**\n * Creates a successful migration runner result.\n */\nexport function runnerSuccess(value: {\n operationsPlanned: number;\n operationsExecuted: number;\n}): Ok<SqlMigrationRunnerSuccessValue> {\n return ok(\n Object.freeze({\n operationsPlanned: value.operationsPlanned,\n operationsExecuted: value.operationsExecuted,\n }),\n );\n}\n\n/**\n * Creates a failed migration runner result.\n */\nexport function runnerFailure(\n code: SqlMigrationRunnerErrorCode,\n summary: string,\n options?: { why?: string; meta?: AnyRecord },\n): NotOk<SqlMigrationRunnerFailure> {\n const failure: SqlMigrationRunnerFailure = Object.freeze({\n code,\n summary,\n ...(options?.why ? { why: options.why } : {}),\n ...(options?.meta ? { meta: cloneRecord(options.meta) } : {}),\n });\n return notOk(failure);\n}\n","import type { MigrationOperationPolicy } from '@prisma-next/framework-components/control';\n\n/**\n * Policy used by `db init`: additive-only operations, no widening/destructive steps.\n */\nexport const INIT_ADDITIVE_POLICY: MigrationOperationPolicy = Object.freeze({\n allowedOperationClasses: Object.freeze(['additive'] as const),\n});\n","import { SqlFamilyDescriptor } from '../core/control-descriptor';\n\n// Re-export core types from canonical source\nexport type {\n MigrationOperationClass,\n MigrationOperationPolicy,\n MigrationPlan,\n MigrationPlanner,\n MigrationPlannerConflict,\n MigrationPlannerResult,\n MigrationPlanOperation,\n TargetMigrationsCapability,\n} from '@prisma-next/framework-components/control';\nexport { assembleAuthoringContributions } from '@prisma-next/framework-components/control';\nexport type { SqlControlDescriptorWithContributions } from '../core/assembly';\nexport {\n assembleControlMutationDefaultContributions,\n assemblePslInterpretationContributions,\n extractCodecControlHooks,\n} from '../core/assembly';\nexport type { SchemaVerifyOptions, SqlControlFamilyInstance } from '../core/control-instance';\nexport type {\n ContractToSchemaIROptions,\n DefaultRenderer,\n NativeTypeExpander,\n} from '../core/migrations/contract-to-schema-ir';\n// Contract → SchemaIR conversion for offline migration planning\nexport {\n contractToSchemaIR,\n detectDestructiveChanges,\n} from '../core/migrations/contract-to-schema-ir';\nexport {\n createMigrationPlan,\n plannerFailure,\n plannerSuccess,\n runnerFailure,\n runnerSuccess,\n} from '../core/migrations/plan-helpers';\nexport { INIT_ADDITIVE_POLICY } from '../core/migrations/policies';\nexport type {\n CodecControlHooks,\n ComponentDatabaseDependencies,\n ComponentDatabaseDependency,\n ControlMutationDefaultFunctionEntry,\n ControlMutationDefaultFunctionHandler,\n ControlMutationDefaultGeneratorDescriptor,\n CreateSqlMigrationPlanOptions,\n ExpandNativeTypeInput,\n PslScalarTypeDescriptor,\n ResolveIdentityValueInput,\n SqlControlAdapterDescriptor,\n SqlControlExtensionDescriptor,\n SqlControlStaticContributions,\n SqlControlTargetDescriptor,\n SqlMigrationPlan,\n SqlMigrationPlanContractInfo,\n SqlMigrationPlanner,\n SqlMigrationPlannerPlanOptions,\n SqlMigrationPlanOperation,\n SqlMigrationPlanOperationStep,\n SqlMigrationPlanOperationTarget,\n SqlMigrationRunner,\n SqlMigrationRunnerErrorCode,\n SqlMigrationRunnerExecuteCallbacks,\n SqlMigrationRunnerExecuteOptions,\n SqlMigrationRunnerFailure,\n SqlMigrationRunnerResult,\n SqlMigrationRunnerSuccessValue,\n SqlPlannerConflict,\n SqlPlannerConflictKind,\n SqlPlannerConflictLocation,\n SqlPlannerFailureResult,\n SqlPlannerResult,\n SqlPlannerSuccessResult,\n StorageTypePlanResult,\n} from '../core/migrations/types';\nexport { collectInitDependencies, isDatabaseDependencyProvider } from '../core/migrations/types';\n\nexport default new SqlFamilyDescriptor();\n"],"mappings":"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"}
@@ -0,0 +1,380 @@
1
+ import * as arktype_internal_variants_object_ts0 from "arktype/internal/variants/object.ts";
2
+ import * as arktype_internal_variants_array_ts0 from "arktype/internal/variants/array.ts";
3
+ import { SqlQueryPlan } from "@prisma-next/sql-relational-core/plan";
4
+
5
+ //#region src/core/migrations/descriptor-schemas.d.ts
6
+
7
+ /**
8
+ * Arktype schemas for SQL migration operation descriptors.
9
+ *
10
+ * These schemas are the source of truth for descriptor shapes.
11
+ * TypeScript types are derived via `typeof schema.infer`.
12
+ */
13
+ declare const CreateTableSchema: arktype_internal_variants_object_ts0.ObjectType<{
14
+ kind: "createTable";
15
+ table: string;
16
+ }, {}>;
17
+ declare const DropTableSchema: arktype_internal_variants_object_ts0.ObjectType<{
18
+ kind: "dropTable";
19
+ table: string;
20
+ }, {}>;
21
+ declare const AddColumnSchema: arktype_internal_variants_object_ts0.ObjectType<{
22
+ kind: "addColumn";
23
+ table: string;
24
+ column: string;
25
+ overrides?: {
26
+ nullable?: boolean;
27
+ };
28
+ }, {}>;
29
+ declare const DropColumnSchema: arktype_internal_variants_object_ts0.ObjectType<{
30
+ kind: "dropColumn";
31
+ table: string;
32
+ column: string;
33
+ }, {}>;
34
+ declare const AlterColumnTypeSchema: arktype_internal_variants_object_ts0.ObjectType<{
35
+ kind: "alterColumnType";
36
+ table: string;
37
+ column: string;
38
+ using?: string;
39
+ toType?: string;
40
+ }, {}>;
41
+ declare const SetNotNullSchema: arktype_internal_variants_object_ts0.ObjectType<{
42
+ kind: "setNotNull";
43
+ table: string;
44
+ column: string;
45
+ }, {}>;
46
+ declare const DropNotNullSchema: arktype_internal_variants_object_ts0.ObjectType<{
47
+ kind: "dropNotNull";
48
+ table: string;
49
+ column: string;
50
+ }, {}>;
51
+ declare const SetDefaultSchema: arktype_internal_variants_object_ts0.ObjectType<{
52
+ kind: "setDefault";
53
+ table: string;
54
+ column: string;
55
+ }, {}>;
56
+ declare const DropDefaultSchema: arktype_internal_variants_object_ts0.ObjectType<{
57
+ kind: "dropDefault";
58
+ table: string;
59
+ column: string;
60
+ }, {}>;
61
+ declare const AddPrimaryKeySchema: arktype_internal_variants_object_ts0.ObjectType<{
62
+ kind: "addPrimaryKey";
63
+ table: string;
64
+ }, {}>;
65
+ declare const AddUniqueSchema: arktype_internal_variants_object_ts0.ObjectType<{
66
+ kind: "addUnique";
67
+ table: string;
68
+ columns: string[];
69
+ }, {}>;
70
+ declare const AddForeignKeySchema: arktype_internal_variants_object_ts0.ObjectType<{
71
+ kind: "addForeignKey";
72
+ table: string;
73
+ columns: string[];
74
+ }, {}>;
75
+ declare const DropConstraintSchema: arktype_internal_variants_object_ts0.ObjectType<{
76
+ kind: "dropConstraint";
77
+ table: string;
78
+ constraintName: string;
79
+ }, {}>;
80
+ declare const CreateIndexSchema: arktype_internal_variants_object_ts0.ObjectType<{
81
+ kind: "createIndex";
82
+ table: string;
83
+ columns: string[];
84
+ }, {}>;
85
+ declare const DropIndexSchema: arktype_internal_variants_object_ts0.ObjectType<{
86
+ kind: "dropIndex";
87
+ table: string;
88
+ indexName: string;
89
+ }, {}>;
90
+ declare const CreateEnumTypeSchema: arktype_internal_variants_object_ts0.ObjectType<{
91
+ kind: "createEnumType";
92
+ typeName: string;
93
+ values?: string[];
94
+ }, {}>;
95
+ declare const AddEnumValuesSchema: arktype_internal_variants_object_ts0.ObjectType<{
96
+ kind: "addEnumValues";
97
+ typeName: string;
98
+ values: string[];
99
+ }, {}>;
100
+ declare const DropEnumTypeSchema: arktype_internal_variants_object_ts0.ObjectType<{
101
+ kind: "dropEnumType";
102
+ typeName: string;
103
+ }, {}>;
104
+ declare const RenameTypeSchema: arktype_internal_variants_object_ts0.ObjectType<{
105
+ kind: "renameType";
106
+ fromName: string;
107
+ toName: string;
108
+ }, {}>;
109
+ declare const CreateDependencySchema: arktype_internal_variants_object_ts0.ObjectType<{
110
+ kind: "createDependency";
111
+ dependencyId: string;
112
+ }, {}>;
113
+ declare const DataTransformSchema: arktype_internal_variants_object_ts0.ObjectType<{
114
+ kind: "dataTransform";
115
+ name: string;
116
+ source: string;
117
+ check: boolean | symbol | object | Function;
118
+ run: (symbol | object | Function)[];
119
+ }, {}>;
120
+ declare const SqlMigrationOpDescriptorSchema: arktype_internal_variants_object_ts0.ObjectType<{
121
+ kind: "createTable";
122
+ table: string;
123
+ } | {
124
+ kind: "dropTable";
125
+ table: string;
126
+ } | {
127
+ kind: "addColumn";
128
+ table: string;
129
+ column: string;
130
+ overrides?: {
131
+ nullable?: boolean;
132
+ };
133
+ } | {
134
+ kind: "dropColumn";
135
+ table: string;
136
+ column: string;
137
+ } | {
138
+ kind: "alterColumnType";
139
+ table: string;
140
+ column: string;
141
+ using?: string;
142
+ toType?: string;
143
+ } | {
144
+ kind: "setNotNull";
145
+ table: string;
146
+ column: string;
147
+ } | {
148
+ kind: "dropNotNull";
149
+ table: string;
150
+ column: string;
151
+ } | {
152
+ kind: "setDefault";
153
+ table: string;
154
+ column: string;
155
+ } | {
156
+ kind: "dropDefault";
157
+ table: string;
158
+ column: string;
159
+ } | {
160
+ kind: "addPrimaryKey";
161
+ table: string;
162
+ } | {
163
+ kind: "addUnique";
164
+ table: string;
165
+ columns: string[];
166
+ } | {
167
+ kind: "addForeignKey";
168
+ table: string;
169
+ columns: string[];
170
+ } | {
171
+ kind: "dropConstraint";
172
+ table: string;
173
+ constraintName: string;
174
+ } | {
175
+ kind: "createIndex";
176
+ table: string;
177
+ columns: string[];
178
+ } | {
179
+ kind: "dropIndex";
180
+ table: string;
181
+ indexName: string;
182
+ } | {
183
+ kind: "createEnumType";
184
+ typeName: string;
185
+ values?: string[];
186
+ } | {
187
+ kind: "addEnumValues";
188
+ typeName: string;
189
+ values: string[];
190
+ } | {
191
+ kind: "dropEnumType";
192
+ typeName: string;
193
+ } | {
194
+ kind: "renameType";
195
+ fromName: string;
196
+ toName: string;
197
+ } | {
198
+ kind: "createDependency";
199
+ dependencyId: string;
200
+ } | {
201
+ kind: "dataTransform";
202
+ name: string;
203
+ source: string;
204
+ check: boolean | symbol | object | Function;
205
+ run: (symbol | object | Function)[];
206
+ }, {}>;
207
+ declare const MigrationDescriptorArraySchema: arktype_internal_variants_array_ts0.ArrayType<({
208
+ kind: "createTable";
209
+ table: string;
210
+ } | {
211
+ kind: "dropTable";
212
+ table: string;
213
+ } | {
214
+ kind: "addColumn";
215
+ table: string;
216
+ column: string;
217
+ overrides?: {
218
+ nullable?: boolean;
219
+ };
220
+ } | {
221
+ kind: "dropColumn";
222
+ table: string;
223
+ column: string;
224
+ } | {
225
+ kind: "alterColumnType";
226
+ table: string;
227
+ column: string;
228
+ using?: string;
229
+ toType?: string;
230
+ } | {
231
+ kind: "setNotNull";
232
+ table: string;
233
+ column: string;
234
+ } | {
235
+ kind: "dropNotNull";
236
+ table: string;
237
+ column: string;
238
+ } | {
239
+ kind: "setDefault";
240
+ table: string;
241
+ column: string;
242
+ } | {
243
+ kind: "dropDefault";
244
+ table: string;
245
+ column: string;
246
+ } | {
247
+ kind: "addPrimaryKey";
248
+ table: string;
249
+ } | {
250
+ kind: "addUnique";
251
+ table: string;
252
+ columns: string[];
253
+ } | {
254
+ kind: "addForeignKey";
255
+ table: string;
256
+ columns: string[];
257
+ } | {
258
+ kind: "dropConstraint";
259
+ table: string;
260
+ constraintName: string;
261
+ } | {
262
+ kind: "createIndex";
263
+ table: string;
264
+ columns: string[];
265
+ } | {
266
+ kind: "dropIndex";
267
+ table: string;
268
+ indexName: string;
269
+ } | {
270
+ kind: "createEnumType";
271
+ typeName: string;
272
+ values?: string[];
273
+ } | {
274
+ kind: "addEnumValues";
275
+ typeName: string;
276
+ values: string[];
277
+ } | {
278
+ kind: "dropEnumType";
279
+ typeName: string;
280
+ } | {
281
+ kind: "renameType";
282
+ fromName: string;
283
+ toName: string;
284
+ } | {
285
+ kind: "createDependency";
286
+ dependencyId: string;
287
+ } | {
288
+ kind: "dataTransform";
289
+ name: string;
290
+ source: string;
291
+ check: boolean | symbol | object | Function;
292
+ run: (symbol | object | Function)[];
293
+ })[], {}>;
294
+ type CreateTableDescriptor = typeof CreateTableSchema.infer;
295
+ type DropTableDescriptor = typeof DropTableSchema.infer;
296
+ type AddColumnDescriptor = typeof AddColumnSchema.infer;
297
+ type DropColumnDescriptor = typeof DropColumnSchema.infer;
298
+ type AlterColumnTypeDescriptor = typeof AlterColumnTypeSchema.infer;
299
+ type SetNotNullDescriptor = typeof SetNotNullSchema.infer;
300
+ type DropNotNullDescriptor = typeof DropNotNullSchema.infer;
301
+ type SetDefaultDescriptor = typeof SetDefaultSchema.infer;
302
+ type DropDefaultDescriptor = typeof DropDefaultSchema.infer;
303
+ type AddPrimaryKeyDescriptor = typeof AddPrimaryKeySchema.infer;
304
+ type AddUniqueDescriptor = typeof AddUniqueSchema.infer;
305
+ type AddForeignKeyDescriptor = typeof AddForeignKeySchema.infer;
306
+ type DropConstraintDescriptor = typeof DropConstraintSchema.infer;
307
+ type CreateIndexDescriptor = typeof CreateIndexSchema.infer;
308
+ type DropIndexDescriptor = typeof DropIndexSchema.infer;
309
+ type CreateEnumTypeDescriptor = typeof CreateEnumTypeSchema.infer;
310
+ type AddEnumValuesDescriptor = typeof AddEnumValuesSchema.infer;
311
+ type DropEnumTypeDescriptor = typeof DropEnumTypeSchema.infer;
312
+ type RenameTypeDescriptor = typeof RenameTypeSchema.infer;
313
+ type CreateDependencyDescriptor = typeof CreateDependencySchema.infer;
314
+ type DataTransformDescriptor = typeof DataTransformSchema.infer;
315
+ type SqlMigrationOpDescriptor = typeof SqlMigrationOpDescriptorSchema.infer;
316
+ //#endregion
317
+ //#region src/core/migrations/operation-descriptors.d.ts
318
+ /** Something that can produce a SqlQueryPlan via .build(). */
319
+ interface Buildable {
320
+ build(): SqlQueryPlan;
321
+ }
322
+ /**
323
+ * Sentinel value for unimplemented data transform queries.
324
+ * The scaffold renders this as a TODO comment. The resolver throws if it encounters one.
325
+ */
326
+ declare const TODO: unique symbol;
327
+ type TodoMarker = typeof TODO;
328
+ declare function createTable(table: string): CreateTableDescriptor;
329
+ declare function dropTable(table: string): DropTableDescriptor;
330
+ declare function addColumn(table: string, column: string, overrides?: {
331
+ nullable?: boolean;
332
+ }): AddColumnDescriptor;
333
+ declare function dropColumn(table: string, column: string): DropColumnDescriptor;
334
+ declare function alterColumnType(table: string, column: string, opts?: string | {
335
+ using?: string;
336
+ toType?: string;
337
+ }): AlterColumnTypeDescriptor;
338
+ declare function setNotNull(table: string, column: string): SetNotNullDescriptor;
339
+ declare function dropNotNull(table: string, column: string): DropNotNullDescriptor;
340
+ declare function setDefault(table: string, column: string): SetDefaultDescriptor;
341
+ declare function dropDefault(table: string, column: string): DropDefaultDescriptor;
342
+ declare function addPrimaryKey(table: string): AddPrimaryKeyDescriptor;
343
+ declare function addUnique(table: string, columns: readonly string[]): AddUniqueDescriptor;
344
+ declare function addForeignKey(table: string, columns: readonly string[]): AddForeignKeyDescriptor;
345
+ declare function dropConstraint(table: string, constraintName: string): DropConstraintDescriptor;
346
+ declare function createIndex(table: string, columns: readonly string[]): CreateIndexDescriptor;
347
+ declare function dropIndex(table: string, indexName: string): DropIndexDescriptor;
348
+ declare function createEnumType(typeName: string, values?: readonly string[]): CreateEnumTypeDescriptor;
349
+ declare function addEnumValues(typeName: string, values: readonly string[]): AddEnumValuesDescriptor;
350
+ declare function dropEnumType(typeName: string): DropEnumTypeDescriptor;
351
+ declare function renameType(fromName: string, toName: string): RenameTypeDescriptor;
352
+ declare function createDependency(dependencyId: string): CreateDependencyDescriptor;
353
+ /**
354
+ * All structural builder functions keyed by descriptor kind.
355
+ */
356
+ declare const builders: {
357
+ readonly createTable: typeof createTable;
358
+ readonly dropTable: typeof dropTable;
359
+ readonly addColumn: typeof addColumn;
360
+ readonly dropColumn: typeof dropColumn;
361
+ readonly alterColumnType: typeof alterColumnType;
362
+ readonly setNotNull: typeof setNotNull;
363
+ readonly dropNotNull: typeof dropNotNull;
364
+ readonly setDefault: typeof setDefault;
365
+ readonly dropDefault: typeof dropDefault;
366
+ readonly addPrimaryKey: typeof addPrimaryKey;
367
+ readonly addUnique: typeof addUnique;
368
+ readonly addForeignKey: typeof addForeignKey;
369
+ readonly dropConstraint: typeof dropConstraint;
370
+ readonly createIndex: typeof createIndex;
371
+ readonly dropIndex: typeof dropIndex;
372
+ readonly createEnumType: typeof createEnumType;
373
+ readonly addEnumValues: typeof addEnumValues;
374
+ readonly dropEnumType: typeof dropEnumType;
375
+ readonly renameType: typeof renameType;
376
+ readonly createDependency: typeof createDependency;
377
+ };
378
+ //#endregion
379
+ export { type AddColumnDescriptor, type AddEnumValuesDescriptor, type AddForeignKeyDescriptor, type AddPrimaryKeyDescriptor, type AddUniqueDescriptor, type AlterColumnTypeDescriptor, type Buildable, type CreateDependencyDescriptor, type CreateEnumTypeDescriptor, type CreateIndexDescriptor, type CreateTableDescriptor, type DataTransformDescriptor, type DropColumnDescriptor, type DropConstraintDescriptor, type DropDefaultDescriptor, type DropEnumTypeDescriptor, type DropIndexDescriptor, type DropNotNullDescriptor, type DropTableDescriptor, MigrationDescriptorArraySchema, type RenameTypeDescriptor, type SetDefaultDescriptor, type SetNotNullDescriptor, type SqlMigrationOpDescriptor, TODO, type TodoMarker, addColumn, addEnumValues, addForeignKey, addPrimaryKey, addUnique, alterColumnType, builders, createDependency, createEnumType, createIndex, createTable, dropColumn, dropConstraint, dropDefault, dropEnumType, dropIndex, dropNotNull, dropTable, renameType, setDefault, setNotNull };
380
+ //# sourceMappingURL=operation-descriptors.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-descriptors.d.mts","names":[],"sources":["../src/core/migrations/descriptor-schemas.ts","../src/core/migrations/operation-descriptors.ts"],"sourcesContent":[],"mappings":"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"}