@prisma/orm-target-postgres 8.0.0-rc.11-dev.26 → 8.0.0-rc.11-dev.27

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 (40) hide show
  1. package/dist/adapter__control.mjs +28 -1
  2. package/dist/adapter__control.mjs.map +1 -1
  3. package/dist/adapter__runtime.mjs +1 -1
  4. package/dist/{authoring-C3hGtD3B-DPpnMHfT.mjs → authoring-DhCDnK1T-CGirVrrH.mjs} +17 -4
  5. package/dist/authoring-DhCDnK1T-CGirVrrH.mjs.map +1 -0
  6. package/dist/{control-BQHKNZ5z.mjs → control-DDfLaDsG.mjs} +4 -4
  7. package/dist/{control-BQHKNZ5z.mjs.map → control-DDfLaDsG.mjs.map} +1 -1
  8. package/dist/{descriptor-meta-CQBdvIPG-CN3m2xcT.mjs → descriptor-meta-CQMRNeLX-CF4MvmN_.mjs} +3 -3
  9. package/dist/{descriptor-meta-CQBdvIPG-CN3m2xcT.mjs.map → descriptor-meta-CQMRNeLX-CF4MvmN_.mjs.map} +1 -1
  10. package/dist/migration-PTHAY9Cv.mjs.map +1 -1
  11. package/dist/{pack-CRA_2QjF.d.mts → pack-NsDJBTgA.d.mts} +32 -1
  12. package/dist/pack-NsDJBTgA.d.mts.map +1 -0
  13. package/dist/{planner-CeYeEGDy-UmNDGNc2.mjs → planner-C_TrM6kn-Dj1rgql2.mjs} +3 -3
  14. package/dist/{planner-CeYeEGDy-UmNDGNc2.mjs.map → planner-C_TrM6kn-Dj1rgql2.mjs.map} +1 -1
  15. package/dist/{planner-produced-postgres-migration-CjuBrC8Z-Cv4wCASG.mjs → planner-produced-postgres-migration-CNmh50cN-qepqYtvL.mjs} +3 -3
  16. package/dist/{planner-produced-postgres-migration-CjuBrC8Z-Cv4wCASG.mjs.map → planner-produced-postgres-migration-CNmh50cN-qepqYtvL.mjs.map} +1 -1
  17. package/dist/{postgres-contract-view-CmLEo6wf-DYBBFFMK.mjs → postgres-contract-view-BPe8r8jN-DrorQoWW.mjs} +3 -3
  18. package/dist/{postgres-contract-view-CmLEo6wf-DYBBFFMK.mjs.map → postgres-contract-view-BPe8r8jN-DrorQoWW.mjs.map} +1 -1
  19. package/dist/{postgres-migration-Bw29VY-O-Bglowo1Y.mjs → postgres-migration-CydbiBd3-BRXOU7KP.mjs} +3 -3
  20. package/dist/{postgres-migration-Bw29VY-O-Bglowo1Y.mjs.map → postgres-migration-CydbiBd3-BRXOU7KP.mjs.map} +1 -1
  21. package/dist/{prisma7-binding-C38o_ABR.d.mts → prisma7-binding-BgLwXBxP.d.mts} +32 -1
  22. package/dist/prisma7-binding-BgLwXBxP.d.mts.map +1 -0
  23. package/dist/{prisma7-binding-BoFnbd5w.mjs → prisma7-binding-Db1xpliZ.mjs} +3 -3
  24. package/dist/{prisma7-binding-BoFnbd5w.mjs.map → prisma7-binding-Db1xpliZ.mjs.map} +1 -1
  25. package/dist/target.d.mts +2 -2
  26. package/dist/target.mjs +7 -7
  27. package/dist/target__control.mjs +2 -2
  28. package/dist/target__migration.mjs +1 -1
  29. package/dist/target__pack.d.mts +1 -1
  30. package/dist/target__pack.mjs +1 -1
  31. package/dist/target__planner-produced-postgres-migration.mjs +1 -1
  32. package/dist/target__planner.mjs +1 -1
  33. package/dist/target__prisma7-binding.d.mts +1 -1
  34. package/dist/target__prisma7-binding.mjs +1 -1
  35. package/dist/target__runtime.mjs +2 -2
  36. package/dist/target__runtime.mjs.map +1 -1
  37. package/package.json +9 -9
  38. package/dist/authoring-C3hGtD3B-DPpnMHfT.mjs.map +0 -1
  39. package/dist/pack-CRA_2QjF.d.mts.map +0 -1
  40. package/dist/prisma7-binding-C38o_ABR.d.mts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"control-BQHKNZ5z.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/control.mjs"],"sourcesContent":["import { s as postgresError } from \"./errors-DYyzTYzE.mjs\";\nimport { n as postgresResolveDefault } from \"./default-normalizer-Bjtm2F4f.mjs\";\nimport { c as PLAIN_DATE_TIME_NOW_GENERATOR_ID, d as INSTANT_NOW_GENERATOR_ID, p as instantNowControlDescriptor, u as plainDateTimeNowControlDescriptor } from \"./authoring-C3hGtD3B.mjs\";\nimport { t as postgresTargetDescriptorMeta } from \"./descriptor-meta-CQBdvIPG.mjs\";\nimport { a as postgresDiffSubjectGranularity, i as postgresDiffSubjectEntityKind } from \"./postgres-table-schema-node-BBkitBQh.mjs\";\nimport { i as PostgresDatabaseSchemaNode } from \"./postgres-role-schema-node-B8Z5i5D-.mjs\";\nimport { n as diffPostgresSchema, r as contractToPostgresDatabaseSchemaNode } from \"./diff-database-schema-BFX0ZWWK.mjs\";\nimport { r as renderDefaultLiteral } from \"./planner-ddl-builders-CpXQ-J0X.mjs\";\nimport { n as PostgresContractSerializer } from \"./postgres-contract-view-CmLEo6wf.mjs\";\nimport { t as createPostgresMigrationPlanner } from \"./planner-CeYeEGDy.mjs\";\nimport { n as inferPostgresPslContract } from \"./infer-psl-contract-BaZaJAD9.mjs\";\nimport { n as parsePostgresListText, t as decodePostgresListText } from \"./list-decoder-DXee1orj.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { buildNativeTypeExpander, runnerFailure, runnerSuccess } from \"@internal/family-sql/control\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { APP_SPACE_ID } from \"@internal/framework-components/control\";\nimport { notOk, ok, okVoid } from \"@internal/utils/result\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { SqlSchemaVerifierBase } from \"@internal/family-sql/ir\";\nimport { SqlQueryError } from \"@internal/sql-errors\";\n//#region src/core/migrations/runner.ts\nconst LOCK_DOMAIN = \"prisma_8.contract.marker\";\n/**\n* Deep clones and freezes a record object to prevent mutation.\n* Recursively clones nested objects and arrays to ensure complete isolation.\n*/\nfunction cloneAndFreezeRecord(value) {\n\tconst cloned = {};\n\tfor (const [key, val] of Object.entries(value)) if (val === null || val === void 0) cloned[key] = val;\n\telse if (Array.isArray(val)) cloned[key] = Object.freeze([...val]);\n\telse if (typeof val === \"object\") cloned[key] = cloneAndFreezeRecord(val);\n\telse cloned[key] = val;\n\treturn Object.freeze(cloned);\n}\nfunction createPostgresMigrationRunner(family) {\n\treturn new PostgresMigrationRunner(family);\n}\nvar PostgresMigrationRunner = class {\n\tfamily;\n\tconstructor(family) {\n\t\tthis.family = family;\n\t}\n\t/**\n\t* Body of the migration runner without transaction management. The\n\t* caller ({@link PostgresMigrationRunner.execute}) owns the\n\t* `BEGIN`/`COMMIT`/`ROLLBACK` lifecycle.\n\t*/\n\tasync executeOnConnection(options) {\n\t\tconst schema = options.schemaName ?? Object.keys(options.destinationContract.storage.namespaces).find((id) => id !== UNBOUND_NAMESPACE_ID) ?? UNBOUND_NAMESPACE_ID;\n\t\tconst driver = options.driver;\n\t\tif (options.space !== void 0 && options.space !== options.plan.spaceId) throw postgresError(\"MIGRATION.CONTRACT_SPACE_VIOLATION\", `SqlMigrationRunner: options.space (${options.space}) does not match plan.spaceId (${options.plan.spaceId})`, { meta: {\n\t\t\tspace: options.space,\n\t\t\tplanSpaceId: options.plan.spaceId\n\t\t} });\n\t\tconst space = options.plan.spaceId;\n\t\tconst lockKey = `${LOCK_DOMAIN}:${schema}:${space}`;\n\t\tconst planOps = blindCast(await Promise.all(options.plan.operations));\n\t\tconst destinationCheck = this.ensurePlanMatchesDestinationContract(options.plan.destination, options.destinationContract);\n\t\tif (!destinationCheck.ok) return destinationCheck;\n\t\tconst policyCheck = this.enforcePolicyCompatibility(options.policy, planOps);\n\t\tif (!policyCheck.ok) return policyCheck;\n\t\tawait this.acquireLock(driver, lockKey);\n\t\tconst ensureResult = await this.ensureControlTables(driver, options.destinationContract);\n\t\tif (!ensureResult.ok) return ensureResult;\n\t\tconst existingMarker = await this.family.readMarker({\n\t\t\tdriver,\n\t\t\tspace\n\t\t});\n\t\tconst markerCheck = this.ensureMarkerCompatibility(existingMarker, options.plan);\n\t\tif (!markerCheck.ok) return markerCheck;\n\t\tconst markerAtDestination = this.markerMatchesDestination(existingMarker, options.plan);\n\t\tconst isSelfEdge = options.plan.origin?.storageHash === options.plan.destination.storageHash;\n\t\tconst skipOperations = markerAtDestination && options.plan.origin != null && !isSelfEdge;\n\t\tlet applyValue;\n\t\tif (skipOperations) applyValue = {\n\t\t\toperationsExecuted: 0,\n\t\t\texecutedOperations: []\n\t\t};\n\t\telse {\n\t\t\tconst applyResult = await this.applyPlan(driver, options, planOps);\n\t\t\tif (!applyResult.ok) return applyResult;\n\t\t\tapplyValue = applyResult.value;\n\t\t}\n\t\tif (space === APP_SPACE_ID) {\n\t\t\tconst schemaNode = await this.family.introspect({\n\t\t\t\tdriver,\n\t\t\t\tcontract: options.destinationContract\n\t\t\t});\n\t\t\tconst schemaVerifyResult = this.family.verifySchema({\n\t\t\t\tcontract: options.destinationContract,\n\t\t\t\tschema: schemaNode,\n\t\t\t\tstrict: options.strictVerification ?? true,\n\t\t\t\tframeworkComponents: options.frameworkComponents\n\t\t\t});\n\t\t\tif (!schemaVerifyResult.ok) return runnerFailure(\"MIGRATION.SCHEMA_VERIFY_FAILED\", schemaVerifyResult.summary, {\n\t\t\t\twhy: \"The resulting database schema does not satisfy the destination contract.\",\n\t\t\t\tmeta: { issues: schemaVerifyResult.schema.issues }\n\t\t\t});\n\t\t}\n\t\tconst incomingInvariants = options.plan.providedInvariants ?? [];\n\t\tconst existingInvariants = new Set(existingMarker?.invariants ?? []);\n\t\tconst incomingIsSubsetOfExisting = incomingInvariants.every((id) => existingInvariants.has(id));\n\t\tif (!(isSelfEdge && applyValue.operationsExecuted === 0 && incomingIsSubsetOfExisting)) {\n\t\t\tconst markerResult = await this.upsertMarker(driver, options, existingMarker, space);\n\t\t\tif (!markerResult.ok) return markerResult;\n\t\t\tawait this.recordLedgerEntries(driver, options, applyValue.executedOperations, planOps.length);\n\t\t}\n\t\treturn runnerSuccess({\n\t\t\toperationsPlanned: planOps.length,\n\t\t\toperationsExecuted: applyValue.operationsExecuted\n\t\t});\n\t}\n\tasync execute(options) {\n\t\tconst driver = options.driver;\n\t\tconst perSpaceOptions = options.perSpaceOptions;\n\t\tif (perSpaceOptions.length === 0) return ok({ perSpaceResults: [] });\n\t\tawait this.beginTransaction(driver);\n\t\tlet committed = false;\n\t\ttry {\n\t\t\tconst perSpaceResults = [];\n\t\t\tfor (const spaceOptions of perSpaceOptions) {\n\t\t\t\tconst space = spaceOptions.space ?? spaceOptions.plan.spaceId;\n\t\t\t\tconst result = await this.executeOnConnection({\n\t\t\t\t\t...spaceOptions,\n\t\t\t\t\tdriver,\n\t\t\t\t\tspace\n\t\t\t\t});\n\t\t\t\tif (!result.ok) return notOk({\n\t\t\t\t\t...result.failure,\n\t\t\t\t\tfailingSpace: space\n\t\t\t\t});\n\t\t\t\tperSpaceResults.push({\n\t\t\t\t\tspace,\n\t\t\t\t\tvalue: result.value\n\t\t\t\t});\n\t\t\t}\n\t\t\tawait this.commitTransaction(driver);\n\t\t\tcommitted = true;\n\t\t\treturn ok({ perSpaceResults });\n\t\t} finally {\n\t\t\tif (!committed) await this.rollbackTransaction(driver);\n\t\t}\n\t}\n\tasync applyPlan(driver, options, ops) {\n\t\tconst checks = options.executionChecks;\n\t\tconst runPrechecks = checks?.prechecks !== false;\n\t\tconst runPostchecks = checks?.postchecks !== false;\n\t\tconst runIdempotency = checks?.idempotencyChecks !== false;\n\t\tlet operationsExecuted = 0;\n\t\tconst executedOperations = [];\n\t\tfor (const operation of ops) {\n\t\t\toptions.callbacks?.onOperationStart?.(operation);\n\t\t\ttry {\n\t\t\t\tif (runPostchecks && runIdempotency) {\n\t\t\t\t\tif (await this.expectationsAreSatisfied(driver, operation.postcheck)) {\n\t\t\t\t\t\texecutedOperations.push(this.createPostcheckPreSatisfiedSkipRecord(operation));\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (runPrechecks) {\n\t\t\t\t\tconst precheckResult = await this.runExpectationSteps(driver, operation.precheck, operation, \"precheck\");\n\t\t\t\t\tif (!precheckResult.ok) return precheckResult;\n\t\t\t\t}\n\t\t\t\tconst executeResult = await this.runExecuteSteps(driver, operation.execute, operation);\n\t\t\t\tif (!executeResult.ok) return executeResult;\n\t\t\t\tif (runPostchecks) {\n\t\t\t\t\tconst postcheckResult = await this.runExpectationSteps(driver, operation.postcheck, operation, \"postcheck\");\n\t\t\t\t\tif (!postcheckResult.ok) return postcheckResult;\n\t\t\t\t}\n\t\t\t\texecutedOperations.push(operation);\n\t\t\t\toperationsExecuted += 1;\n\t\t\t} finally {\n\t\t\t\toptions.callbacks?.onOperationComplete?.(operation);\n\t\t\t}\n\t\t}\n\t\treturn ok({\n\t\t\toperationsExecuted,\n\t\t\texecutedOperations\n\t\t});\n\t}\n\tasync ensureControlTables(driver, contract) {\n\t\tconst lowererContext = { contract };\n\t\tconst [schemaQuery, ...tableQueries] = this.family.bootstrapControlTableQueries();\n\t\tif (schemaQuery === void 0) throw new InternalError(\"Postgres control-table bootstrap must include CREATE SCHEMA\");\n\t\tawait this.executeStatement(driver, await this.family.lowerAst(schemaQuery, lowererContext));\n\t\tconst legacyDetection = await this.detectLegacyMarkerShape(driver);\n\t\tif (!legacyDetection.ok) return legacyDetection;\n\t\tfor (const query of tableQueries) await this.executeStatement(driver, await this.family.lowerAst(query, lowererContext));\n\t\treturn okVoid();\n\t}\n\tasync detectLegacyMarkerShape(driver) {\n\t\tconst result = await driver.query(`select column_name\n from information_schema.columns\n where table_schema = 'prisma_contract'\n and table_name = 'marker'`);\n\t\tif (result.rows.length === 0) return okVoid();\n\t\tconst columns = new Set(result.rows.map((row) => row.column_name));\n\t\tif (columns.has(\"space\")) return okVoid();\n\t\treturn runnerFailure(\"MIGRATION.LEGACY_MARKER_SHAPE\", \"Legacy marker-table shape detected on prisma_contract.marker (no `space` column). Prisma 8 is in pre-1.0; the previous transitional auto-migration to the per-space-row schema has been removed. Drop `prisma_contract.marker` and re-run `dbInit` to reinitialise from a clean baseline.\", { meta: {\n\t\t\ttable: \"prisma_contract.marker\",\n\t\t\tcolumns: [...columns].sort()\n\t\t} });\n\t}\n\tasync runExpectationSteps(driver, steps, operation, phase) {\n\t\tfor (const step of steps) {\n\t\t\tconst result = await driver.query(step.sql, step.params ?? []);\n\t\t\tif (!this.stepResultIsTrue(result.rows)) return runnerFailure(phase === \"precheck\" ? \"MIGRATION.PRECHECK_FAILED\" : \"MIGRATION.POSTCHECK_FAILED\", `Operation ${operation.id} failed during ${phase}: ${step.description}`, { meta: {\n\t\t\t\toperationId: operation.id,\n\t\t\t\tphase,\n\t\t\t\tstepDescription: step.description\n\t\t\t} });\n\t\t}\n\t\treturn okVoid();\n\t}\n\tasync runExecuteSteps(driver, steps, operation) {\n\t\tfor (const step of steps) try {\n\t\t\tawait driver.query(step.sql, step.params ?? []);\n\t\t} catch (error) {\n\t\t\tif (SqlQueryError.is(error)) return runnerFailure(\"MIGRATION.EXECUTION_FAILED\", `Operation ${operation.id} failed during execution: ${step.description}`, {\n\t\t\t\twhy: error.message,\n\t\t\t\tmeta: {\n\t\t\t\t\toperationId: operation.id,\n\t\t\t\t\tstepDescription: step.description,\n\t\t\t\t\tsql: step.sql,\n\t\t\t\t\tsqlState: error.sqlState,\n\t\t\t\t\tconstraint: error.constraint,\n\t\t\t\t\ttable: error.table,\n\t\t\t\t\tcolumn: error.column,\n\t\t\t\t\tdetail: error.detail\n\t\t\t\t}\n\t\t\t});\n\t\t\tthrow error;\n\t\t}\n\t\treturn okVoid();\n\t}\n\tstepResultIsTrue(rows) {\n\t\tif (!rows || rows.length === 0) return false;\n\t\tconst firstRow = rows[0];\n\t\tconst firstValue = firstRow ? Object.values(firstRow)[0] : void 0;\n\t\tif (typeof firstValue === \"boolean\") return firstValue;\n\t\tif (typeof firstValue === \"number\") return firstValue !== 0;\n\t\tif (typeof firstValue === \"string\") {\n\t\t\tconst lower = firstValue.toLowerCase();\n\t\t\tif (lower === \"t\" || lower === \"true\" || lower === \"1\") return true;\n\t\t\tif (lower === \"f\" || lower === \"false\" || lower === \"0\") return false;\n\t\t\treturn firstValue.length > 0;\n\t\t}\n\t\treturn Boolean(firstValue);\n\t}\n\tasync expectationsAreSatisfied(driver, steps) {\n\t\tif (steps.length === 0) return false;\n\t\tfor (const step of steps) {\n\t\t\tconst result = await driver.query(step.sql, step.params ?? []);\n\t\t\tif (!this.stepResultIsTrue(result.rows)) return false;\n\t\t}\n\t\treturn true;\n\t}\n\tcreatePostcheckPreSatisfiedSkipRecord(operation) {\n\t\tconst clonedMeta = operation.meta ? cloneAndFreezeRecord(operation.meta) : void 0;\n\t\tconst runnerMeta = Object.freeze({\n\t\t\tskipped: true,\n\t\t\treason: \"postcheck_pre_satisfied\"\n\t\t});\n\t\tconst mergedMeta = Object.freeze({\n\t\t\t...clonedMeta ?? {},\n\t\t\trunner: runnerMeta\n\t\t});\n\t\tconst frozenPostcheck = Object.freeze([...operation.postcheck]);\n\t\treturn Object.freeze({\n\t\t\tid: operation.id,\n\t\t\tlabel: operation.label,\n\t\t\t...ifDefined(\"summary\", operation.summary),\n\t\t\toperationClass: operation.operationClass,\n\t\t\ttarget: operation.target,\n\t\t\tprecheck: Object.freeze([]),\n\t\t\texecute: Object.freeze([]),\n\t\t\tpostcheck: frozenPostcheck,\n\t\t\t...ifDefined(\"meta\", operation.meta || mergedMeta ? mergedMeta : void 0)\n\t\t});\n\t}\n\tmarkerMatchesDestination(marker, plan) {\n\t\tif (!marker) return false;\n\t\tif (marker.storageHash !== plan.destination.storageHash) return false;\n\t\tif (plan.destination.profileHash && marker.profileHash !== plan.destination.profileHash) return false;\n\t\treturn true;\n\t}\n\tenforcePolicyCompatibility(policy, operations) {\n\t\tconst allowedClasses = new Set(policy.allowedOperationClasses);\n\t\tfor (const operation of operations) if (!allowedClasses.has(operation.operationClass)) return runnerFailure(\"MIGRATION.POLICY_VIOLATION\", `Operation ${operation.id} has class \"${operation.operationClass}\" which is not allowed by policy.`, {\n\t\t\twhy: `Policy only allows: ${policy.allowedOperationClasses.join(\", \")}.`,\n\t\t\tmeta: {\n\t\t\t\toperationId: operation.id,\n\t\t\t\toperationClass: operation.operationClass,\n\t\t\t\tallowedClasses: policy.allowedOperationClasses\n\t\t\t}\n\t\t});\n\t\treturn okVoid();\n\t}\n\tensureMarkerCompatibility(marker, plan) {\n\t\tconst origin = plan.origin ?? null;\n\t\tif (!origin) return okVoid();\n\t\tif (!marker) return runnerFailure(\"MIGRATION.MARKER_ORIGIN_MISMATCH\", `Missing contract marker: expected origin storage hash ${origin.storageHash}.`, { meta: { expectedOriginStorageHash: origin.storageHash } });\n\t\tif (marker.storageHash !== origin.storageHash) return runnerFailure(\"MIGRATION.MARKER_ORIGIN_MISMATCH\", `Existing contract marker (${marker.storageHash}) does not match plan origin (${origin.storageHash}).`, { meta: {\n\t\t\tmarkerStorageHash: marker.storageHash,\n\t\t\texpectedOriginStorageHash: origin.storageHash\n\t\t} });\n\t\tif (origin.profileHash && marker.profileHash !== origin.profileHash) return runnerFailure(\"MIGRATION.MARKER_ORIGIN_MISMATCH\", `Existing contract marker profile hash (${marker.profileHash}) does not match plan origin profile hash (${origin.profileHash}).`, { meta: {\n\t\t\tmarkerProfileHash: marker.profileHash,\n\t\t\texpectedOriginProfileHash: origin.profileHash\n\t\t} });\n\t\treturn okVoid();\n\t}\n\tensurePlanMatchesDestinationContract(destination, contract) {\n\t\tif (destination.storageHash !== contract.storage.storageHash) return runnerFailure(\"MIGRATION.DESTINATION_CONTRACT_MISMATCH\", `Plan destination storage hash (${destination.storageHash}) does not match provided contract storage hash (${contract.storage.storageHash}).`, { meta: {\n\t\t\tplanStorageHash: destination.storageHash,\n\t\t\tcontractStorageHash: contract.storage.storageHash\n\t\t} });\n\t\tif (destination.profileHash && contract.profileHash && destination.profileHash !== contract.profileHash) return runnerFailure(\"MIGRATION.DESTINATION_CONTRACT_MISMATCH\", `Plan destination profile hash (${destination.profileHash}) does not match provided contract profile hash (${contract.profileHash}).`, { meta: {\n\t\t\tplanProfileHash: destination.profileHash,\n\t\t\tcontractProfileHash: contract.profileHash\n\t\t} });\n\t\treturn okVoid();\n\t}\n\tasync upsertMarker(driver, options, existingMarker, space) {\n\t\tconst destination = {\n\t\t\tstorageHash: options.plan.destination.storageHash,\n\t\t\tprofileHash: options.plan.destination.profileHash ?? options.destinationContract.profileHash ?? options.plan.destination.storageHash,\n\t\t\tinvariants: options.plan.providedInvariants ?? []\n\t\t};\n\t\tif (!existingMarker) {\n\t\t\tawait this.family.initMarker({\n\t\t\t\tdriver,\n\t\t\t\tspace,\n\t\t\t\tdestination\n\t\t\t});\n\t\t\treturn okVoid();\n\t\t}\n\t\tif (!await this.family.updateMarker({\n\t\t\tdriver,\n\t\t\tspace,\n\t\t\texpectedFrom: existingMarker.storageHash,\n\t\t\tdestination\n\t\t})) return runnerFailure(\"MIGRATION.MARKER_CAS_FAILURE\", \"Marker was modified by another process during migration execution.\", { meta: {\n\t\t\tspace,\n\t\t\texpectedStorageHash: existingMarker.storageHash,\n\t\t\tdestinationStorageHash: options.plan.destination.storageHash\n\t\t} });\n\t\treturn okVoid();\n\t}\n\tasync recordLedgerEntries(driver, options, executedOperations, planOpsLength) {\n\t\tconst space = options.plan.spaceId;\n\t\tconst edges = options.migrationEdges;\n\t\tconst totalEdgeOps = edges.reduce((sum, edge) => sum + edge.operationCount, 0);\n\t\tif (totalEdgeOps !== planOpsLength) throw new InternalError(`Ledger write: plan.operations length (${planOpsLength}) does not match sum of migrationEdges operationCount (${totalEdgeOps})`);\n\t\tlet offset = 0;\n\t\tfor (const edge of edges) {\n\t\t\tconst edgeOps = executedOperations.slice(offset, offset + edge.operationCount);\n\t\t\toffset += edge.operationCount;\n\t\t\tawait this.family.writeLedgerEntry({\n\t\t\t\tdriver,\n\t\t\t\tspace,\n\t\t\t\tentry: {\n\t\t\t\t\tedgeId: `${edge.from}->${edge.to}`,\n\t\t\t\t\tfrom: edge.from,\n\t\t\t\t\tto: edge.to,\n\t\t\t\t\tmigrationName: edge.dirName,\n\t\t\t\t\tmigrationHash: edge.migrationHash,\n\t\t\t\t\toperations: edgeOps,\n\t\t\t\t\t...ifDefined(\"destinationContractJson\", edge.destinationContractJson)\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tasync acquireLock(driver, key) {\n\t\tawait driver.query(\"select pg_advisory_xact_lock(hashtext($1))\", [key]);\n\t}\n\tasync beginTransaction(driver) {\n\t\tawait driver.query(\"BEGIN\");\n\t}\n\tasync commitTransaction(driver) {\n\t\tawait driver.query(\"COMMIT\");\n\t}\n\tasync rollbackTransaction(driver) {\n\t\tawait driver.query(\"ROLLBACK\");\n\t}\n\tasync executeStatement(driver, statement) {\n\t\tawait driver.query(statement.sql, statement.params);\n\t}\n};\n//#endregion\n//#region src/core/postgres-schema-verifier.ts\n/**\n* Postgres target `SchemaVerifier` concretion. Plugs into the\n* SQL-shared verification surface; production verification today still\n* routes through the family verify verdict (`verifySqlSchemaByDiff` over\n* `diffPostgresSchema`), which carries options (codec hooks,\n* normalizers, framework components) that the framework-level\n* `SchemaVerifyOptions` shape does not yet surface.\n*\n* The hooks return the empty list pending the call-site migration that\n* routes the existing verifier behaviour through the SPI — at that\n* point `verifyCommonSqlSchema` will likely lift onto the family base\n* (mirroring `verifyCommonMongoSchema`) and `verifyTargetExtensions`\n* will house Postgres-only kinds (functions, RLS policies in a future\n* project).\n*/\nvar PostgresSchemaVerifier = class extends SqlSchemaVerifierBase {\n\tverifyCommonSqlSchema(_options) {\n\t\treturn [];\n\t}\n\tverifyTargetExtensions(_options) {\n\t\treturn [];\n\t}\n};\n//#endregion\n//#region src/exports/control.ts\nfunction postgresRenderDefault(def, column) {\n\tif (def.kind === \"function\") return def.expression;\n\treturn renderDefaultLiteral(def.value, column);\n}\nconst postgresTargetDescriptor = {\n\t...postgresTargetDescriptorMeta,\n\tcontractSerializer: new PostgresContractSerializer(),\n\tschemaVerifier: new PostgresSchemaVerifier(),\n\tinferPslContract(schema, describedContracts) {\n\t\tPostgresDatabaseSchemaNode.assert(schema);\n\t\treturn inferPostgresPslContract(schema, describedContracts);\n\t},\n\tdiffSchema(input) {\n\t\treturn diffPostgresSchema(input);\n\t},\n\tclassifySubjectGranularity: postgresDiffSubjectGranularity,\n\tclassifyEntityKind: postgresDiffSubjectEntityKind,\n\tmigrations: {\n\t\tcreatePlanner(adapter) {\n\t\t\treturn createPostgresMigrationPlanner(adapter);\n\t\t},\n\t\tcreateRunner(family) {\n\t\t\treturn createPostgresMigrationRunner(family);\n\t\t},\n\t\tcontractToSchema(contract, frameworkComponents) {\n\t\t\tconst expander = buildNativeTypeExpander(frameworkComponents);\n\t\t\treturn contractToPostgresDatabaseSchemaNode(blindCast(contract), {\n\t\t\t\tannotationNamespace: \"pg\",\n\t\t\t\t...ifDefined(\"expandNativeType\", expander),\n\t\t\t\trenderDefault: postgresRenderDefault,\n\t\t\t\tresolveDefault: postgresResolveDefault\n\t\t\t});\n\t\t}\n\t},\n\tcreate() {\n\t\treturn {\n\t\t\tfamilyId: \"sql\",\n\t\t\ttargetId: \"postgres\"\n\t\t};\n\t},\n\t/**\n\t* Direct method for SQL-specific usage.\n\t* @deprecated Use migrations.createPlanner() for CLI compatibility.\n\t*/\n\tcreatePlanner(adapter) {\n\t\treturn createPostgresMigrationPlanner(adapter);\n\t},\n\t/**\n\t* Direct method for SQL-specific usage.\n\t* @deprecated Use migrations.createRunner() for CLI compatibility.\n\t*/\n\tcreateRunner(family) {\n\t\treturn createPostgresMigrationRunner(family);\n\t}\n};\n//#endregion\nexport { INSTANT_NOW_GENERATOR_ID, PLAIN_DATE_TIME_NOW_GENERATOR_ID, decodePostgresListText, postgresTargetDescriptor as default, instantNowControlDescriptor, parsePostgresListText, plainDateTimeNowControlDescriptor, postgresRenderDefault };\n\n//# sourceMappingURL=control.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;;;AAsBA,MAAM,cAAc;;;;;AAKpB,SAAS,qBAAqB,OAAO;CACpC,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,KAAK,GAAG,IAAI,QAAQ,QAAQ,QAAQ,KAAK,GAAG,OAAO,OAAO;MAC7F,IAAI,MAAM,QAAQ,GAAG,GAAG,OAAO,OAAO,OAAO,OAAO,CAAC,GAAG,GAAG,CAAC;MAC5D,IAAI,OAAO,QAAQ,UAAU,OAAO,OAAO,qBAAqB,GAAG;MACnE,OAAO,OAAO;CACnB,OAAO,OAAO,OAAO,MAAM;AAC5B;AACA,SAAS,8BAA8B,QAAQ;CAC9C,OAAO,IAAI,wBAAwB,MAAM;AAC1C;AACA,IAAI,0BAA0B,MAAM;CACnC;CACA,YAAY,QAAQ;EACnB,KAAK,SAAS;CACf;;;;;;CAMA,MAAM,oBAAoB,SAAS;EAClC,MAAM,SAAS,QAAQ,cAAc,OAAO,KAAK,QAAQ,oBAAoB,QAAQ,UAAU,CAAC,CAAC,MAAM,OAAO,OAAO,oBAAoB,KAAK;EAC9I,MAAM,SAAS,QAAQ;EACvB,IAAI,QAAQ,UAAU,KAAK,KAAK,QAAQ,UAAU,QAAQ,KAAK,SAAS,MAAM,cAAc,sCAAsC,sCAAsC,QAAQ,MAAM,iCAAiC,QAAQ,KAAK,QAAQ,IAAI,EAAE,MAAM;GACvP,OAAO,QAAQ;GACf,aAAa,QAAQ,KAAK;EAC3B,EAAE,CAAC;EACH,MAAM,QAAQ,QAAQ,KAAK;EAC3B,MAAM,UAAU,GAAG,YAAY,GAAG,OAAO,GAAG;EAC5C,MAAM,UAAU,UAAU,MAAM,QAAQ,IAAI,QAAQ,KAAK,UAAU,CAAC;EACpE,MAAM,mBAAmB,KAAK,qCAAqC,QAAQ,KAAK,aAAa,QAAQ,mBAAmB;EACxH,IAAI,CAAC,iBAAiB,IAAI,OAAO;EACjC,MAAM,cAAc,KAAK,2BAA2B,QAAQ,QAAQ,OAAO;EAC3E,IAAI,CAAC,YAAY,IAAI,OAAO;EAC5B,MAAM,KAAK,YAAY,QAAQ,OAAO;EACtC,MAAM,eAAe,MAAM,KAAK,oBAAoB,QAAQ,QAAQ,mBAAmB;EACvF,IAAI,CAAC,aAAa,IAAI,OAAO;EAC7B,MAAM,iBAAiB,MAAM,KAAK,OAAO,WAAW;GACnD;GACA;EACD,CAAC;EACD,MAAM,cAAc,KAAK,0BAA0B,gBAAgB,QAAQ,IAAI;EAC/E,IAAI,CAAC,YAAY,IAAI,OAAO;EAC5B,MAAM,sBAAsB,KAAK,yBAAyB,gBAAgB,QAAQ,IAAI;EACtF,MAAM,aAAa,QAAQ,KAAK,QAAQ,gBAAgB,QAAQ,KAAK,YAAY;EACjF,MAAM,iBAAiB,uBAAuB,QAAQ,KAAK,UAAU,QAAQ,CAAC;EAC9E,IAAI;EACJ,IAAI,gBAAgB,aAAa;GAChC,oBAAoB;GACpB,oBAAoB,CAAC;EACtB;OACK;GACJ,MAAM,cAAc,MAAM,KAAK,UAAU,QAAQ,SAAS,OAAO;GACjE,IAAI,CAAC,YAAY,IAAI,OAAO;GAC5B,aAAa,YAAY;EAC1B;EACA,IAAI,UAAU,cAAc;GAC3B,MAAM,aAAa,MAAM,KAAK,OAAO,WAAW;IAC/C;IACA,UAAU,QAAQ;GACnB,CAAC;GACD,MAAM,qBAAqB,KAAK,OAAO,aAAa;IACnD,UAAU,QAAQ;IAClB,QAAQ;IACR,QAAQ,QAAQ,sBAAsB;IACtC,qBAAqB,QAAQ;GAC9B,CAAC;GACD,IAAI,CAAC,mBAAmB,IAAI,OAAO,cAAc,kCAAkC,mBAAmB,SAAS;IAC9G,KAAK;IACL,MAAM,EAAE,QAAQ,mBAAmB,OAAO,OAAO;GAClD,CAAC;EACF;EACA,MAAM,qBAAqB,QAAQ,KAAK,sBAAsB,CAAC;EAC/D,MAAM,qBAAqB,IAAI,IAAI,gBAAgB,cAAc,CAAC,CAAC;EACnE,MAAM,6BAA6B,mBAAmB,OAAO,OAAO,mBAAmB,IAAI,EAAE,CAAC;EAC9F,IAAI,EAAE,cAAc,WAAW,uBAAuB,KAAK,6BAA6B;GACvF,MAAM,eAAe,MAAM,KAAK,aAAa,QAAQ,SAAS,gBAAgB,KAAK;GACnF,IAAI,CAAC,aAAa,IAAI,OAAO;GAC7B,MAAM,KAAK,oBAAoB,QAAQ,SAAS,WAAW,oBAAoB,QAAQ,MAAM;EAC9F;EACA,OAAO,cAAc;GACpB,mBAAmB,QAAQ;GAC3B,oBAAoB,WAAW;EAChC,CAAC;CACF;CACA,MAAM,QAAQ,SAAS;EACtB,MAAM,SAAS,QAAQ;EACvB,MAAM,kBAAkB,QAAQ;EAChC,IAAI,gBAAgB,WAAW,GAAG,OAAO,GAAG,EAAE,iBAAiB,CAAC,EAAE,CAAC;EACnE,MAAM,KAAK,iBAAiB,MAAM;EAClC,IAAI,YAAY;EAChB,IAAI;GACH,MAAM,kBAAkB,CAAC;GACzB,KAAK,MAAM,gBAAgB,iBAAiB;IAC3C,MAAM,QAAQ,aAAa,SAAS,aAAa,KAAK;IACtD,MAAM,SAAS,MAAM,KAAK,oBAAoB;KAC7C,GAAG;KACH;KACA;IACD,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,OAAO,MAAM;KAC5B,GAAG,OAAO;KACV,cAAc;IACf,CAAC;IACD,gBAAgB,KAAK;KACpB;KACA,OAAO,OAAO;IACf,CAAC;GACF;GACA,MAAM,KAAK,kBAAkB,MAAM;GACnC,YAAY;GACZ,OAAO,GAAG,EAAE,gBAAgB,CAAC;EAC9B,UAAU;GACT,IAAI,CAAC,WAAW,MAAM,KAAK,oBAAoB,MAAM;EACtD;CACD;CACA,MAAM,UAAU,QAAQ,SAAS,KAAK;EACrC,MAAM,SAAS,QAAQ;EACvB,MAAM,eAAe,QAAQ,cAAc;EAC3C,MAAM,gBAAgB,QAAQ,eAAe;EAC7C,MAAM,iBAAiB,QAAQ,sBAAsB;EACrD,IAAI,qBAAqB;EACzB,MAAM,qBAAqB,CAAC;EAC5B,KAAK,MAAM,aAAa,KAAK;GAC5B,QAAQ,WAAW,mBAAmB,SAAS;GAC/C,IAAI;IACH,IAAI,iBAAiB,gBAChB;SAAA,MAAM,KAAK,yBAAyB,QAAQ,UAAU,SAAS,GAAG;MACrE,mBAAmB,KAAK,KAAK,sCAAsC,SAAS,CAAC;MAC7E;KACD;;IAED,IAAI,cAAc;KACjB,MAAM,iBAAiB,MAAM,KAAK,oBAAoB,QAAQ,UAAU,UAAU,WAAW,UAAU;KACvG,IAAI,CAAC,eAAe,IAAI,OAAO;IAChC;IACA,MAAM,gBAAgB,MAAM,KAAK,gBAAgB,QAAQ,UAAU,SAAS,SAAS;IACrF,IAAI,CAAC,cAAc,IAAI,OAAO;IAC9B,IAAI,eAAe;KAClB,MAAM,kBAAkB,MAAM,KAAK,oBAAoB,QAAQ,UAAU,WAAW,WAAW,WAAW;KAC1G,IAAI,CAAC,gBAAgB,IAAI,OAAO;IACjC;IACA,mBAAmB,KAAK,SAAS;IACjC,sBAAsB;GACvB,UAAU;IACT,QAAQ,WAAW,sBAAsB,SAAS;GACnD;EACD;EACA,OAAO,GAAG;GACT;GACA;EACD,CAAC;CACF;CACA,MAAM,oBAAoB,QAAQ,UAAU;EAC3C,MAAM,iBAAiB,EAAE,SAAS;EAClC,MAAM,CAAC,aAAa,GAAG,gBAAgB,KAAK,OAAO,6BAA6B;EAChF,IAAI,gBAAgB,KAAK,GAAG,MAAM,IAAI,cAAc,6DAA6D;EACjH,MAAM,KAAK,iBAAiB,QAAQ,MAAM,KAAK,OAAO,SAAS,aAAa,cAAc,CAAC;EAC3F,MAAM,kBAAkB,MAAM,KAAK,wBAAwB,MAAM;EACjE,IAAI,CAAC,gBAAgB,IAAI,OAAO;EAChC,KAAK,MAAM,SAAS,cAAc,MAAM,KAAK,iBAAiB,QAAQ,MAAM,KAAK,OAAO,SAAS,OAAO,cAAc,CAAC;EACvH,OAAO,OAAO;CACf;CACA,MAAM,wBAAwB,QAAQ;EACrC,MAAM,SAAS,MAAM,OAAO,MAAM;;;oCAGA;EAClC,IAAI,OAAO,KAAK,WAAW,GAAG,OAAO,OAAO;EAC5C,MAAM,UAAU,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,WAAW,CAAC;EACjE,IAAI,QAAQ,IAAI,OAAO,GAAG,OAAO,OAAO;EACxC,OAAO,cAAc,iCAAiC,6RAA6R,EAAE,MAAM;GAC1V,OAAO;GACP,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK;EAC5B,EAAE,CAAC;CACJ;CACA,MAAM,oBAAoB,QAAQ,OAAO,WAAW,OAAO;EAC1D,KAAK,MAAM,QAAQ,OAAO;GACzB,MAAM,SAAS,MAAM,OAAO,MAAM,KAAK,KAAK,KAAK,UAAU,CAAC,CAAC;GAC7D,IAAI,CAAC,KAAK,iBAAiB,OAAO,IAAI,GAAG,OAAO,cAAc,UAAU,aAAa,8BAA8B,8BAA8B,aAAa,UAAU,GAAG,iBAAiB,MAAM,IAAI,KAAK,eAAe,EAAE,MAAM;IACjO,aAAa,UAAU;IACvB;IACA,iBAAiB,KAAK;GACvB,EAAE,CAAC;EACJ;EACA,OAAO,OAAO;CACf;CACA,MAAM,gBAAgB,QAAQ,OAAO,WAAW;EAC/C,KAAK,MAAM,QAAQ,OAAO,IAAI;GAC7B,MAAM,OAAO,MAAM,KAAK,KAAK,KAAK,UAAU,CAAC,CAAC;EAC/C,SAAS,OAAO;GACf,IAAI,cAAc,GAAG,KAAK,GAAG,OAAO,cAAc,8BAA8B,aAAa,UAAU,GAAG,4BAA4B,KAAK,eAAe;IACzJ,KAAK,MAAM;IACX,MAAM;KACL,aAAa,UAAU;KACvB,iBAAiB,KAAK;KACtB,KAAK,KAAK;KACV,UAAU,MAAM;KAChB,YAAY,MAAM;KAClB,OAAO,MAAM;KACb,QAAQ,MAAM;KACd,QAAQ,MAAM;IACf;GACD,CAAC;GACD,MAAM;EACP;EACA,OAAO,OAAO;CACf;CACA,iBAAiB,MAAM;EACtB,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,OAAO;EACvC,MAAM,WAAW,KAAK;EACtB,MAAM,aAAa,WAAW,OAAO,OAAO,QAAQ,CAAC,CAAC,KAAK,KAAK;EAChE,IAAI,OAAO,eAAe,WAAW,OAAO;EAC5C,IAAI,OAAO,eAAe,UAAU,OAAO,eAAe;EAC1D,IAAI,OAAO,eAAe,UAAU;GACnC,MAAM,QAAQ,WAAW,YAAY;GACrC,IAAI,UAAU,OAAO,UAAU,UAAU,UAAU,KAAK,OAAO;GAC/D,IAAI,UAAU,OAAO,UAAU,WAAW,UAAU,KAAK,OAAO;GAChE,OAAO,WAAW,SAAS;EAC5B;EACA,OAAO,QAAQ,UAAU;CAC1B;CACA,MAAM,yBAAyB,QAAQ,OAAO;EAC7C,IAAI,MAAM,WAAW,GAAG,OAAO;EAC/B,KAAK,MAAM,QAAQ,OAAO;GACzB,MAAM,SAAS,MAAM,OAAO,MAAM,KAAK,KAAK,KAAK,UAAU,CAAC,CAAC;GAC7D,IAAI,CAAC,KAAK,iBAAiB,OAAO,IAAI,GAAG,OAAO;EACjD;EACA,OAAO;CACR;CACA,sCAAsC,WAAW;EAChD,MAAM,aAAa,UAAU,OAAO,qBAAqB,UAAU,IAAI,IAAI,KAAK;EAChF,MAAM,aAAa,OAAO,OAAO;GAChC,SAAS;GACT,QAAQ;EACT,CAAC;EACD,MAAM,aAAa,OAAO,OAAO;GAChC,GAAG,cAAc,CAAC;GAClB,QAAQ;EACT,CAAC;EACD,MAAM,kBAAkB,OAAO,OAAO,CAAC,GAAG,UAAU,SAAS,CAAC;EAC9D,OAAO,OAAO,OAAO;GACpB,IAAI,UAAU;GACd,OAAO,UAAU;GACjB,GAAG,UAAU,WAAW,UAAU,OAAO;GACzC,gBAAgB,UAAU;GAC1B,QAAQ,UAAU;GAClB,UAAU,OAAO,OAAO,CAAC,CAAC;GAC1B,SAAS,OAAO,OAAO,CAAC,CAAC;GACzB,WAAW;GACX,GAAG,UAAU,QAAQ,UAAU,QAAQ,aAAa,aAAa,KAAK,CAAC;EACxE,CAAC;CACF;CACA,yBAAyB,QAAQ,MAAM;EACtC,IAAI,CAAC,QAAQ,OAAO;EACpB,IAAI,OAAO,gBAAgB,KAAK,YAAY,aAAa,OAAO;EAChE,IAAI,KAAK,YAAY,eAAe,OAAO,gBAAgB,KAAK,YAAY,aAAa,OAAO;EAChG,OAAO;CACR;CACA,2BAA2B,QAAQ,YAAY;EAC9C,MAAM,iBAAiB,IAAI,IAAI,OAAO,uBAAuB;EAC7D,KAAK,MAAM,aAAa,YAAY,IAAI,CAAC,eAAe,IAAI,UAAU,cAAc,GAAG,OAAO,cAAc,8BAA8B,aAAa,UAAU,GAAG,cAAc,UAAU,eAAe,oCAAoC;GAC9O,KAAK,uBAAuB,OAAO,wBAAwB,KAAK,IAAI,EAAE;GACtE,MAAM;IACL,aAAa,UAAU;IACvB,gBAAgB,UAAU;IAC1B,gBAAgB,OAAO;GACxB;EACD,CAAC;EACD,OAAO,OAAO;CACf;CACA,0BAA0B,QAAQ,MAAM;EACvC,MAAM,SAAS,KAAK,UAAU;EAC9B,IAAI,CAAC,QAAQ,OAAO,OAAO;EAC3B,IAAI,CAAC,QAAQ,OAAO,cAAc,oCAAoC,yDAAyD,OAAO,YAAY,IAAI,EAAE,MAAM,EAAE,2BAA2B,OAAO,YAAY,EAAE,CAAC;EACjN,IAAI,OAAO,gBAAgB,OAAO,aAAa,OAAO,cAAc,oCAAoC,6BAA6B,OAAO,YAAY,gCAAgC,OAAO,YAAY,KAAK,EAAE,MAAM;GACvN,mBAAmB,OAAO;GAC1B,2BAA2B,OAAO;EACnC,EAAE,CAAC;EACH,IAAI,OAAO,eAAe,OAAO,gBAAgB,OAAO,aAAa,OAAO,cAAc,oCAAoC,0CAA0C,OAAO,YAAY,6CAA6C,OAAO,YAAY,KAAK,EAAE,MAAM;GACvQ,mBAAmB,OAAO;GAC1B,2BAA2B,OAAO;EACnC,EAAE,CAAC;EACH,OAAO,OAAO;CACf;CACA,qCAAqC,aAAa,UAAU;EAC3D,IAAI,YAAY,gBAAgB,SAAS,QAAQ,aAAa,OAAO,cAAc,2CAA2C,kCAAkC,YAAY,YAAY,mDAAmD,SAAS,QAAQ,YAAY,KAAK,EAAE,MAAM;GACpR,iBAAiB,YAAY;GAC7B,qBAAqB,SAAS,QAAQ;EACvC,EAAE,CAAC;EACH,IAAI,YAAY,eAAe,SAAS,eAAe,YAAY,gBAAgB,SAAS,aAAa,OAAO,cAAc,2CAA2C,kCAAkC,YAAY,YAAY,mDAAmD,SAAS,YAAY,KAAK,EAAE,MAAM;GACvT,iBAAiB,YAAY;GAC7B,qBAAqB,SAAS;EAC/B,EAAE,CAAC;EACH,OAAO,OAAO;CACf;CACA,MAAM,aAAa,QAAQ,SAAS,gBAAgB,OAAO;EAC1D,MAAM,cAAc;GACnB,aAAa,QAAQ,KAAK,YAAY;GACtC,aAAa,QAAQ,KAAK,YAAY,eAAe,QAAQ,oBAAoB,eAAe,QAAQ,KAAK,YAAY;GACzH,YAAY,QAAQ,KAAK,sBAAsB,CAAC;EACjD;EACA,IAAI,CAAC,gBAAgB;GACpB,MAAM,KAAK,OAAO,WAAW;IAC5B;IACA;IACA;GACD,CAAC;GACD,OAAO,OAAO;EACf;EACA,IAAI,CAAC,MAAM,KAAK,OAAO,aAAa;GACnC;GACA;GACA,cAAc,eAAe;GAC7B;EACD,CAAC,GAAG,OAAO,cAAc,gCAAgC,sEAAsE,EAAE,MAAM;GACtI;GACA,qBAAqB,eAAe;GACpC,wBAAwB,QAAQ,KAAK,YAAY;EAClD,EAAE,CAAC;EACH,OAAO,OAAO;CACf;CACA,MAAM,oBAAoB,QAAQ,SAAS,oBAAoB,eAAe;EAC7E,MAAM,QAAQ,QAAQ,KAAK;EAC3B,MAAM,QAAQ,QAAQ;EACtB,MAAM,eAAe,MAAM,QAAQ,KAAK,SAAS,MAAM,KAAK,gBAAgB,CAAC;EAC7E,IAAI,iBAAiB,eAAe,MAAM,IAAI,cAAc,yCAAyC,cAAc,yDAAyD,aAAa,EAAE;EAC3L,IAAI,SAAS;EACb,KAAK,MAAM,QAAQ,OAAO;GACzB,MAAM,UAAU,mBAAmB,MAAM,QAAQ,SAAS,KAAK,cAAc;GAC7E,UAAU,KAAK;GACf,MAAM,KAAK,OAAO,iBAAiB;IAClC;IACA;IACA,OAAO;KACN,QAAQ,GAAG,KAAK,KAAK,IAAI,KAAK;KAC9B,MAAM,KAAK;KACX,IAAI,KAAK;KACT,eAAe,KAAK;KACpB,eAAe,KAAK;KACpB,YAAY;KACZ,GAAG,UAAU,2BAA2B,KAAK,uBAAuB;IACrE;GACD,CAAC;EACF;CACD;CACA,MAAM,YAAY,QAAQ,KAAK;EAC9B,MAAM,OAAO,MAAM,8CAA8C,CAAC,GAAG,CAAC;CACvE;CACA,MAAM,iBAAiB,QAAQ;EAC9B,MAAM,OAAO,MAAM,OAAO;CAC3B;CACA,MAAM,kBAAkB,QAAQ;EAC/B,MAAM,OAAO,MAAM,QAAQ;CAC5B;CACA,MAAM,oBAAoB,QAAQ;EACjC,MAAM,OAAO,MAAM,UAAU;CAC9B;CACA,MAAM,iBAAiB,QAAQ,WAAW;EACzC,MAAM,OAAO,MAAM,UAAU,KAAK,UAAU,MAAM;CACnD;AACD;;;;;;;;;;;;;;;;AAkBA,IAAI,yBAAyB,cAAc,sBAAsB;CAChE,sBAAsB,UAAU;EAC/B,OAAO,CAAC;CACT;CACA,uBAAuB,UAAU;EAChC,OAAO,CAAC;CACT;AACD;AAGA,SAAS,sBAAsB,KAAK,QAAQ;CAC3C,IAAI,IAAI,SAAS,YAAY,OAAO,IAAI;CACxC,OAAO,qBAAqB,IAAI,OAAO,MAAM;AAC9C;AACA,MAAM,2BAA2B;CAChC,GAAG;CACH,oBAAoB,IAAI,2BAA2B;CACnD,gBAAgB,IAAI,uBAAuB;CAC3C,iBAAiB,QAAQ,oBAAoB;EAC5C,2BAA2B,OAAO,MAAM;EACxC,OAAO,yBAAyB,QAAQ,kBAAkB;CAC3D;CACA,WAAW,OAAO;EACjB,OAAO,mBAAmB,KAAK;CAChC;CACA,4BAA4B;CAC5B,oBAAoB;CACpB,YAAY;EACX,cAAc,SAAS;GACtB,OAAO,+BAA+B,OAAO;EAC9C;EACA,aAAa,QAAQ;GACpB,OAAO,8BAA8B,MAAM;EAC5C;EACA,iBAAiB,UAAU,qBAAqB;GAC/C,MAAM,WAAW,wBAAwB,mBAAmB;GAC5D,OAAO,qCAAqC,UAAU,QAAQ,GAAG;IAChE,qBAAqB;IACrB,GAAG,UAAU,oBAAoB,QAAQ;IACzC,eAAe;IACf,gBAAgB;GACjB,CAAC;EACF;CACD;CACA,SAAS;EACR,OAAO;GACN,UAAU;GACV,UAAU;EACX;CACD;;;;;CAKA,cAAc,SAAS;EACtB,OAAO,+BAA+B,OAAO;CAC9C;;;;;CAKA,aAAa,QAAQ;EACpB,OAAO,8BAA8B,MAAM;CAC5C;AACD"}
1
+ {"version":3,"file":"control-DDfLaDsG.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/control.mjs"],"sourcesContent":["import { s as postgresError } from \"./errors-DYyzTYzE.mjs\";\nimport { n as postgresResolveDefault } from \"./default-normalizer-Bjtm2F4f.mjs\";\nimport { c as PLAIN_DATE_TIME_NOW_GENERATOR_ID, d as INSTANT_NOW_GENERATOR_ID, p as instantNowControlDescriptor, u as plainDateTimeNowControlDescriptor } from \"./authoring-DhCDnK1T.mjs\";\nimport { t as postgresTargetDescriptorMeta } from \"./descriptor-meta-CQMRNeLX.mjs\";\nimport { a as postgresDiffSubjectGranularity, i as postgresDiffSubjectEntityKind } from \"./postgres-table-schema-node-BBkitBQh.mjs\";\nimport { i as PostgresDatabaseSchemaNode } from \"./postgres-role-schema-node-B8Z5i5D-.mjs\";\nimport { n as diffPostgresSchema, r as contractToPostgresDatabaseSchemaNode } from \"./diff-database-schema-BFX0ZWWK.mjs\";\nimport { r as renderDefaultLiteral } from \"./planner-ddl-builders-CpXQ-J0X.mjs\";\nimport { n as PostgresContractSerializer } from \"./postgres-contract-view-BPe8r8jN.mjs\";\nimport { t as createPostgresMigrationPlanner } from \"./planner-C_TrM6kn.mjs\";\nimport { n as inferPostgresPslContract } from \"./infer-psl-contract-BaZaJAD9.mjs\";\nimport { n as parsePostgresListText, t as decodePostgresListText } from \"./list-decoder-DXee1orj.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { buildNativeTypeExpander, runnerFailure, runnerSuccess } from \"@internal/family-sql/control\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { APP_SPACE_ID } from \"@internal/framework-components/control\";\nimport { notOk, ok, okVoid } from \"@internal/utils/result\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { SqlSchemaVerifierBase } from \"@internal/family-sql/ir\";\nimport { SqlQueryError } from \"@internal/sql-errors\";\n//#region src/core/migrations/runner.ts\nconst LOCK_DOMAIN = \"prisma_8.contract.marker\";\n/**\n* Deep clones and freezes a record object to prevent mutation.\n* Recursively clones nested objects and arrays to ensure complete isolation.\n*/\nfunction cloneAndFreezeRecord(value) {\n\tconst cloned = {};\n\tfor (const [key, val] of Object.entries(value)) if (val === null || val === void 0) cloned[key] = val;\n\telse if (Array.isArray(val)) cloned[key] = Object.freeze([...val]);\n\telse if (typeof val === \"object\") cloned[key] = cloneAndFreezeRecord(val);\n\telse cloned[key] = val;\n\treturn Object.freeze(cloned);\n}\nfunction createPostgresMigrationRunner(family) {\n\treturn new PostgresMigrationRunner(family);\n}\nvar PostgresMigrationRunner = class {\n\tfamily;\n\tconstructor(family) {\n\t\tthis.family = family;\n\t}\n\t/**\n\t* Body of the migration runner without transaction management. The\n\t* caller ({@link PostgresMigrationRunner.execute}) owns the\n\t* `BEGIN`/`COMMIT`/`ROLLBACK` lifecycle.\n\t*/\n\tasync executeOnConnection(options) {\n\t\tconst schema = options.schemaName ?? Object.keys(options.destinationContract.storage.namespaces).find((id) => id !== UNBOUND_NAMESPACE_ID) ?? UNBOUND_NAMESPACE_ID;\n\t\tconst driver = options.driver;\n\t\tif (options.space !== void 0 && options.space !== options.plan.spaceId) throw postgresError(\"MIGRATION.CONTRACT_SPACE_VIOLATION\", `SqlMigrationRunner: options.space (${options.space}) does not match plan.spaceId (${options.plan.spaceId})`, { meta: {\n\t\t\tspace: options.space,\n\t\t\tplanSpaceId: options.plan.spaceId\n\t\t} });\n\t\tconst space = options.plan.spaceId;\n\t\tconst lockKey = `${LOCK_DOMAIN}:${schema}:${space}`;\n\t\tconst planOps = blindCast(await Promise.all(options.plan.operations));\n\t\tconst destinationCheck = this.ensurePlanMatchesDestinationContract(options.plan.destination, options.destinationContract);\n\t\tif (!destinationCheck.ok) return destinationCheck;\n\t\tconst policyCheck = this.enforcePolicyCompatibility(options.policy, planOps);\n\t\tif (!policyCheck.ok) return policyCheck;\n\t\tawait this.acquireLock(driver, lockKey);\n\t\tconst ensureResult = await this.ensureControlTables(driver, options.destinationContract);\n\t\tif (!ensureResult.ok) return ensureResult;\n\t\tconst existingMarker = await this.family.readMarker({\n\t\t\tdriver,\n\t\t\tspace\n\t\t});\n\t\tconst markerCheck = this.ensureMarkerCompatibility(existingMarker, options.plan);\n\t\tif (!markerCheck.ok) return markerCheck;\n\t\tconst markerAtDestination = this.markerMatchesDestination(existingMarker, options.plan);\n\t\tconst isSelfEdge = options.plan.origin?.storageHash === options.plan.destination.storageHash;\n\t\tconst skipOperations = markerAtDestination && options.plan.origin != null && !isSelfEdge;\n\t\tlet applyValue;\n\t\tif (skipOperations) applyValue = {\n\t\t\toperationsExecuted: 0,\n\t\t\texecutedOperations: []\n\t\t};\n\t\telse {\n\t\t\tconst applyResult = await this.applyPlan(driver, options, planOps);\n\t\t\tif (!applyResult.ok) return applyResult;\n\t\t\tapplyValue = applyResult.value;\n\t\t}\n\t\tif (space === APP_SPACE_ID) {\n\t\t\tconst schemaNode = await this.family.introspect({\n\t\t\t\tdriver,\n\t\t\t\tcontract: options.destinationContract\n\t\t\t});\n\t\t\tconst schemaVerifyResult = this.family.verifySchema({\n\t\t\t\tcontract: options.destinationContract,\n\t\t\t\tschema: schemaNode,\n\t\t\t\tstrict: options.strictVerification ?? true,\n\t\t\t\tframeworkComponents: options.frameworkComponents\n\t\t\t});\n\t\t\tif (!schemaVerifyResult.ok) return runnerFailure(\"MIGRATION.SCHEMA_VERIFY_FAILED\", schemaVerifyResult.summary, {\n\t\t\t\twhy: \"The resulting database schema does not satisfy the destination contract.\",\n\t\t\t\tmeta: { issues: schemaVerifyResult.schema.issues }\n\t\t\t});\n\t\t}\n\t\tconst incomingInvariants = options.plan.providedInvariants ?? [];\n\t\tconst existingInvariants = new Set(existingMarker?.invariants ?? []);\n\t\tconst incomingIsSubsetOfExisting = incomingInvariants.every((id) => existingInvariants.has(id));\n\t\tif (!(isSelfEdge && applyValue.operationsExecuted === 0 && incomingIsSubsetOfExisting)) {\n\t\t\tconst markerResult = await this.upsertMarker(driver, options, existingMarker, space);\n\t\t\tif (!markerResult.ok) return markerResult;\n\t\t\tawait this.recordLedgerEntries(driver, options, applyValue.executedOperations, planOps.length);\n\t\t}\n\t\treturn runnerSuccess({\n\t\t\toperationsPlanned: planOps.length,\n\t\t\toperationsExecuted: applyValue.operationsExecuted\n\t\t});\n\t}\n\tasync execute(options) {\n\t\tconst driver = options.driver;\n\t\tconst perSpaceOptions = options.perSpaceOptions;\n\t\tif (perSpaceOptions.length === 0) return ok({ perSpaceResults: [] });\n\t\tawait this.beginTransaction(driver);\n\t\tlet committed = false;\n\t\ttry {\n\t\t\tconst perSpaceResults = [];\n\t\t\tfor (const spaceOptions of perSpaceOptions) {\n\t\t\t\tconst space = spaceOptions.space ?? spaceOptions.plan.spaceId;\n\t\t\t\tconst result = await this.executeOnConnection({\n\t\t\t\t\t...spaceOptions,\n\t\t\t\t\tdriver,\n\t\t\t\t\tspace\n\t\t\t\t});\n\t\t\t\tif (!result.ok) return notOk({\n\t\t\t\t\t...result.failure,\n\t\t\t\t\tfailingSpace: space\n\t\t\t\t});\n\t\t\t\tperSpaceResults.push({\n\t\t\t\t\tspace,\n\t\t\t\t\tvalue: result.value\n\t\t\t\t});\n\t\t\t}\n\t\t\tawait this.commitTransaction(driver);\n\t\t\tcommitted = true;\n\t\t\treturn ok({ perSpaceResults });\n\t\t} finally {\n\t\t\tif (!committed) await this.rollbackTransaction(driver);\n\t\t}\n\t}\n\tasync applyPlan(driver, options, ops) {\n\t\tconst checks = options.executionChecks;\n\t\tconst runPrechecks = checks?.prechecks !== false;\n\t\tconst runPostchecks = checks?.postchecks !== false;\n\t\tconst runIdempotency = checks?.idempotencyChecks !== false;\n\t\tlet operationsExecuted = 0;\n\t\tconst executedOperations = [];\n\t\tfor (const operation of ops) {\n\t\t\toptions.callbacks?.onOperationStart?.(operation);\n\t\t\ttry {\n\t\t\t\tif (runPostchecks && runIdempotency) {\n\t\t\t\t\tif (await this.expectationsAreSatisfied(driver, operation.postcheck)) {\n\t\t\t\t\t\texecutedOperations.push(this.createPostcheckPreSatisfiedSkipRecord(operation));\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (runPrechecks) {\n\t\t\t\t\tconst precheckResult = await this.runExpectationSteps(driver, operation.precheck, operation, \"precheck\");\n\t\t\t\t\tif (!precheckResult.ok) return precheckResult;\n\t\t\t\t}\n\t\t\t\tconst executeResult = await this.runExecuteSteps(driver, operation.execute, operation);\n\t\t\t\tif (!executeResult.ok) return executeResult;\n\t\t\t\tif (runPostchecks) {\n\t\t\t\t\tconst postcheckResult = await this.runExpectationSteps(driver, operation.postcheck, operation, \"postcheck\");\n\t\t\t\t\tif (!postcheckResult.ok) return postcheckResult;\n\t\t\t\t}\n\t\t\t\texecutedOperations.push(operation);\n\t\t\t\toperationsExecuted += 1;\n\t\t\t} finally {\n\t\t\t\toptions.callbacks?.onOperationComplete?.(operation);\n\t\t\t}\n\t\t}\n\t\treturn ok({\n\t\t\toperationsExecuted,\n\t\t\texecutedOperations\n\t\t});\n\t}\n\tasync ensureControlTables(driver, contract) {\n\t\tconst lowererContext = { contract };\n\t\tconst [schemaQuery, ...tableQueries] = this.family.bootstrapControlTableQueries();\n\t\tif (schemaQuery === void 0) throw new InternalError(\"Postgres control-table bootstrap must include CREATE SCHEMA\");\n\t\tawait this.executeStatement(driver, await this.family.lowerAst(schemaQuery, lowererContext));\n\t\tconst legacyDetection = await this.detectLegacyMarkerShape(driver);\n\t\tif (!legacyDetection.ok) return legacyDetection;\n\t\tfor (const query of tableQueries) await this.executeStatement(driver, await this.family.lowerAst(query, lowererContext));\n\t\treturn okVoid();\n\t}\n\tasync detectLegacyMarkerShape(driver) {\n\t\tconst result = await driver.query(`select column_name\n from information_schema.columns\n where table_schema = 'prisma_contract'\n and table_name = 'marker'`);\n\t\tif (result.rows.length === 0) return okVoid();\n\t\tconst columns = new Set(result.rows.map((row) => row.column_name));\n\t\tif (columns.has(\"space\")) return okVoid();\n\t\treturn runnerFailure(\"MIGRATION.LEGACY_MARKER_SHAPE\", \"Legacy marker-table shape detected on prisma_contract.marker (no `space` column). Prisma 8 is in pre-1.0; the previous transitional auto-migration to the per-space-row schema has been removed. Drop `prisma_contract.marker` and re-run `dbInit` to reinitialise from a clean baseline.\", { meta: {\n\t\t\ttable: \"prisma_contract.marker\",\n\t\t\tcolumns: [...columns].sort()\n\t\t} });\n\t}\n\tasync runExpectationSteps(driver, steps, operation, phase) {\n\t\tfor (const step of steps) {\n\t\t\tconst result = await driver.query(step.sql, step.params ?? []);\n\t\t\tif (!this.stepResultIsTrue(result.rows)) return runnerFailure(phase === \"precheck\" ? \"MIGRATION.PRECHECK_FAILED\" : \"MIGRATION.POSTCHECK_FAILED\", `Operation ${operation.id} failed during ${phase}: ${step.description}`, { meta: {\n\t\t\t\toperationId: operation.id,\n\t\t\t\tphase,\n\t\t\t\tstepDescription: step.description\n\t\t\t} });\n\t\t}\n\t\treturn okVoid();\n\t}\n\tasync runExecuteSteps(driver, steps, operation) {\n\t\tfor (const step of steps) try {\n\t\t\tawait driver.query(step.sql, step.params ?? []);\n\t\t} catch (error) {\n\t\t\tif (SqlQueryError.is(error)) return runnerFailure(\"MIGRATION.EXECUTION_FAILED\", `Operation ${operation.id} failed during execution: ${step.description}`, {\n\t\t\t\twhy: error.message,\n\t\t\t\tmeta: {\n\t\t\t\t\toperationId: operation.id,\n\t\t\t\t\tstepDescription: step.description,\n\t\t\t\t\tsql: step.sql,\n\t\t\t\t\tsqlState: error.sqlState,\n\t\t\t\t\tconstraint: error.constraint,\n\t\t\t\t\ttable: error.table,\n\t\t\t\t\tcolumn: error.column,\n\t\t\t\t\tdetail: error.detail\n\t\t\t\t}\n\t\t\t});\n\t\t\tthrow error;\n\t\t}\n\t\treturn okVoid();\n\t}\n\tstepResultIsTrue(rows) {\n\t\tif (!rows || rows.length === 0) return false;\n\t\tconst firstRow = rows[0];\n\t\tconst firstValue = firstRow ? Object.values(firstRow)[0] : void 0;\n\t\tif (typeof firstValue === \"boolean\") return firstValue;\n\t\tif (typeof firstValue === \"number\") return firstValue !== 0;\n\t\tif (typeof firstValue === \"string\") {\n\t\t\tconst lower = firstValue.toLowerCase();\n\t\t\tif (lower === \"t\" || lower === \"true\" || lower === \"1\") return true;\n\t\t\tif (lower === \"f\" || lower === \"false\" || lower === \"0\") return false;\n\t\t\treturn firstValue.length > 0;\n\t\t}\n\t\treturn Boolean(firstValue);\n\t}\n\tasync expectationsAreSatisfied(driver, steps) {\n\t\tif (steps.length === 0) return false;\n\t\tfor (const step of steps) {\n\t\t\tconst result = await driver.query(step.sql, step.params ?? []);\n\t\t\tif (!this.stepResultIsTrue(result.rows)) return false;\n\t\t}\n\t\treturn true;\n\t}\n\tcreatePostcheckPreSatisfiedSkipRecord(operation) {\n\t\tconst clonedMeta = operation.meta ? cloneAndFreezeRecord(operation.meta) : void 0;\n\t\tconst runnerMeta = Object.freeze({\n\t\t\tskipped: true,\n\t\t\treason: \"postcheck_pre_satisfied\"\n\t\t});\n\t\tconst mergedMeta = Object.freeze({\n\t\t\t...clonedMeta ?? {},\n\t\t\trunner: runnerMeta\n\t\t});\n\t\tconst frozenPostcheck = Object.freeze([...operation.postcheck]);\n\t\treturn Object.freeze({\n\t\t\tid: operation.id,\n\t\t\tlabel: operation.label,\n\t\t\t...ifDefined(\"summary\", operation.summary),\n\t\t\toperationClass: operation.operationClass,\n\t\t\ttarget: operation.target,\n\t\t\tprecheck: Object.freeze([]),\n\t\t\texecute: Object.freeze([]),\n\t\t\tpostcheck: frozenPostcheck,\n\t\t\t...ifDefined(\"meta\", operation.meta || mergedMeta ? mergedMeta : void 0)\n\t\t});\n\t}\n\tmarkerMatchesDestination(marker, plan) {\n\t\tif (!marker) return false;\n\t\tif (marker.storageHash !== plan.destination.storageHash) return false;\n\t\tif (plan.destination.profileHash && marker.profileHash !== plan.destination.profileHash) return false;\n\t\treturn true;\n\t}\n\tenforcePolicyCompatibility(policy, operations) {\n\t\tconst allowedClasses = new Set(policy.allowedOperationClasses);\n\t\tfor (const operation of operations) if (!allowedClasses.has(operation.operationClass)) return runnerFailure(\"MIGRATION.POLICY_VIOLATION\", `Operation ${operation.id} has class \"${operation.operationClass}\" which is not allowed by policy.`, {\n\t\t\twhy: `Policy only allows: ${policy.allowedOperationClasses.join(\", \")}.`,\n\t\t\tmeta: {\n\t\t\t\toperationId: operation.id,\n\t\t\t\toperationClass: operation.operationClass,\n\t\t\t\tallowedClasses: policy.allowedOperationClasses\n\t\t\t}\n\t\t});\n\t\treturn okVoid();\n\t}\n\tensureMarkerCompatibility(marker, plan) {\n\t\tconst origin = plan.origin ?? null;\n\t\tif (!origin) return okVoid();\n\t\tif (!marker) return runnerFailure(\"MIGRATION.MARKER_ORIGIN_MISMATCH\", `Missing contract marker: expected origin storage hash ${origin.storageHash}.`, { meta: { expectedOriginStorageHash: origin.storageHash } });\n\t\tif (marker.storageHash !== origin.storageHash) return runnerFailure(\"MIGRATION.MARKER_ORIGIN_MISMATCH\", `Existing contract marker (${marker.storageHash}) does not match plan origin (${origin.storageHash}).`, { meta: {\n\t\t\tmarkerStorageHash: marker.storageHash,\n\t\t\texpectedOriginStorageHash: origin.storageHash\n\t\t} });\n\t\tif (origin.profileHash && marker.profileHash !== origin.profileHash) return runnerFailure(\"MIGRATION.MARKER_ORIGIN_MISMATCH\", `Existing contract marker profile hash (${marker.profileHash}) does not match plan origin profile hash (${origin.profileHash}).`, { meta: {\n\t\t\tmarkerProfileHash: marker.profileHash,\n\t\t\texpectedOriginProfileHash: origin.profileHash\n\t\t} });\n\t\treturn okVoid();\n\t}\n\tensurePlanMatchesDestinationContract(destination, contract) {\n\t\tif (destination.storageHash !== contract.storage.storageHash) return runnerFailure(\"MIGRATION.DESTINATION_CONTRACT_MISMATCH\", `Plan destination storage hash (${destination.storageHash}) does not match provided contract storage hash (${contract.storage.storageHash}).`, { meta: {\n\t\t\tplanStorageHash: destination.storageHash,\n\t\t\tcontractStorageHash: contract.storage.storageHash\n\t\t} });\n\t\tif (destination.profileHash && contract.profileHash && destination.profileHash !== contract.profileHash) return runnerFailure(\"MIGRATION.DESTINATION_CONTRACT_MISMATCH\", `Plan destination profile hash (${destination.profileHash}) does not match provided contract profile hash (${contract.profileHash}).`, { meta: {\n\t\t\tplanProfileHash: destination.profileHash,\n\t\t\tcontractProfileHash: contract.profileHash\n\t\t} });\n\t\treturn okVoid();\n\t}\n\tasync upsertMarker(driver, options, existingMarker, space) {\n\t\tconst destination = {\n\t\t\tstorageHash: options.plan.destination.storageHash,\n\t\t\tprofileHash: options.plan.destination.profileHash ?? options.destinationContract.profileHash ?? options.plan.destination.storageHash,\n\t\t\tinvariants: options.plan.providedInvariants ?? []\n\t\t};\n\t\tif (!existingMarker) {\n\t\t\tawait this.family.initMarker({\n\t\t\t\tdriver,\n\t\t\t\tspace,\n\t\t\t\tdestination\n\t\t\t});\n\t\t\treturn okVoid();\n\t\t}\n\t\tif (!await this.family.updateMarker({\n\t\t\tdriver,\n\t\t\tspace,\n\t\t\texpectedFrom: existingMarker.storageHash,\n\t\t\tdestination\n\t\t})) return runnerFailure(\"MIGRATION.MARKER_CAS_FAILURE\", \"Marker was modified by another process during migration execution.\", { meta: {\n\t\t\tspace,\n\t\t\texpectedStorageHash: existingMarker.storageHash,\n\t\t\tdestinationStorageHash: options.plan.destination.storageHash\n\t\t} });\n\t\treturn okVoid();\n\t}\n\tasync recordLedgerEntries(driver, options, executedOperations, planOpsLength) {\n\t\tconst space = options.plan.spaceId;\n\t\tconst edges = options.migrationEdges;\n\t\tconst totalEdgeOps = edges.reduce((sum, edge) => sum + edge.operationCount, 0);\n\t\tif (totalEdgeOps !== planOpsLength) throw new InternalError(`Ledger write: plan.operations length (${planOpsLength}) does not match sum of migrationEdges operationCount (${totalEdgeOps})`);\n\t\tlet offset = 0;\n\t\tfor (const edge of edges) {\n\t\t\tconst edgeOps = executedOperations.slice(offset, offset + edge.operationCount);\n\t\t\toffset += edge.operationCount;\n\t\t\tawait this.family.writeLedgerEntry({\n\t\t\t\tdriver,\n\t\t\t\tspace,\n\t\t\t\tentry: {\n\t\t\t\t\tedgeId: `${edge.from}->${edge.to}`,\n\t\t\t\t\tfrom: edge.from,\n\t\t\t\t\tto: edge.to,\n\t\t\t\t\tmigrationName: edge.dirName,\n\t\t\t\t\tmigrationHash: edge.migrationHash,\n\t\t\t\t\toperations: edgeOps,\n\t\t\t\t\t...ifDefined(\"destinationContractJson\", edge.destinationContractJson)\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tasync acquireLock(driver, key) {\n\t\tawait driver.query(\"select pg_advisory_xact_lock(hashtext($1))\", [key]);\n\t}\n\tasync beginTransaction(driver) {\n\t\tawait driver.query(\"BEGIN\");\n\t}\n\tasync commitTransaction(driver) {\n\t\tawait driver.query(\"COMMIT\");\n\t}\n\tasync rollbackTransaction(driver) {\n\t\tawait driver.query(\"ROLLBACK\");\n\t}\n\tasync executeStatement(driver, statement) {\n\t\tawait driver.query(statement.sql, statement.params);\n\t}\n};\n//#endregion\n//#region src/core/postgres-schema-verifier.ts\n/**\n* Postgres target `SchemaVerifier` concretion. Plugs into the\n* SQL-shared verification surface; production verification today still\n* routes through the family verify verdict (`verifySqlSchemaByDiff` over\n* `diffPostgresSchema`), which carries options (codec hooks,\n* normalizers, framework components) that the framework-level\n* `SchemaVerifyOptions` shape does not yet surface.\n*\n* The hooks return the empty list pending the call-site migration that\n* routes the existing verifier behaviour through the SPI — at that\n* point `verifyCommonSqlSchema` will likely lift onto the family base\n* (mirroring `verifyCommonMongoSchema`) and `verifyTargetExtensions`\n* will house Postgres-only kinds (functions, RLS policies in a future\n* project).\n*/\nvar PostgresSchemaVerifier = class extends SqlSchemaVerifierBase {\n\tverifyCommonSqlSchema(_options) {\n\t\treturn [];\n\t}\n\tverifyTargetExtensions(_options) {\n\t\treturn [];\n\t}\n};\n//#endregion\n//#region src/exports/control.ts\nfunction postgresRenderDefault(def, column) {\n\tif (def.kind === \"function\") return def.expression;\n\treturn renderDefaultLiteral(def.value, column);\n}\nconst postgresTargetDescriptor = {\n\t...postgresTargetDescriptorMeta,\n\tcontractSerializer: new PostgresContractSerializer(),\n\tschemaVerifier: new PostgresSchemaVerifier(),\n\tinferPslContract(schema, describedContracts) {\n\t\tPostgresDatabaseSchemaNode.assert(schema);\n\t\treturn inferPostgresPslContract(schema, describedContracts);\n\t},\n\tdiffSchema(input) {\n\t\treturn diffPostgresSchema(input);\n\t},\n\tclassifySubjectGranularity: postgresDiffSubjectGranularity,\n\tclassifyEntityKind: postgresDiffSubjectEntityKind,\n\tmigrations: {\n\t\tcreatePlanner(adapter) {\n\t\t\treturn createPostgresMigrationPlanner(adapter);\n\t\t},\n\t\tcreateRunner(family) {\n\t\t\treturn createPostgresMigrationRunner(family);\n\t\t},\n\t\tcontractToSchema(contract, frameworkComponents) {\n\t\t\tconst expander = buildNativeTypeExpander(frameworkComponents);\n\t\t\treturn contractToPostgresDatabaseSchemaNode(blindCast(contract), {\n\t\t\t\tannotationNamespace: \"pg\",\n\t\t\t\t...ifDefined(\"expandNativeType\", expander),\n\t\t\t\trenderDefault: postgresRenderDefault,\n\t\t\t\tresolveDefault: postgresResolveDefault\n\t\t\t});\n\t\t}\n\t},\n\tcreate() {\n\t\treturn {\n\t\t\tfamilyId: \"sql\",\n\t\t\ttargetId: \"postgres\"\n\t\t};\n\t},\n\t/**\n\t* Direct method for SQL-specific usage.\n\t* @deprecated Use migrations.createPlanner() for CLI compatibility.\n\t*/\n\tcreatePlanner(adapter) {\n\t\treturn createPostgresMigrationPlanner(adapter);\n\t},\n\t/**\n\t* Direct method for SQL-specific usage.\n\t* @deprecated Use migrations.createRunner() for CLI compatibility.\n\t*/\n\tcreateRunner(family) {\n\t\treturn createPostgresMigrationRunner(family);\n\t}\n};\n//#endregion\nexport { INSTANT_NOW_GENERATOR_ID, PLAIN_DATE_TIME_NOW_GENERATOR_ID, decodePostgresListText, postgresTargetDescriptor as default, instantNowControlDescriptor, parsePostgresListText, plainDateTimeNowControlDescriptor, postgresRenderDefault };\n\n//# sourceMappingURL=control.mjs.map"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { t as DEFAULT_NAMESPACE_ID } from "./namespace-ids-xtp_ZY86-Cpp8PTxD.mjs";
2
2
  import { A as postgresQualifyColumnType } from "./codecs-7isLDrZp-DmbSAn6K.mjs";
3
3
  import { h as postgresCreateNamespace } from "./postgres-schema-PFL-fpel-s3InB8T0.mjs";
4
- import { c as postgresAuthoringFieldPresets, d as postgresAuthoringTypes, f as postgresLowerEntityHandles, l as postgresAuthoringModelAttributes, s as postgresAuthoringEntityTypes, u as postgresAuthoringPslBlockDescriptors } from "./authoring-C3hGtD3B-DPpnMHfT.mjs";
4
+ import { c as postgresAuthoringFieldPresets, d as postgresAuthoringTypes, f as postgresLowerEntityHandles, l as postgresAuthoringModelAttributes, s as postgresAuthoringEntityTypes, u as postgresAuthoringPslBlockDescriptors } from "./authoring-DhCDnK1T-CGirVrrH.mjs";
5
5
  import { t as postgresRenderCheckExpressions } from "./check-expressions-DFTeR0rd-CSxSpyMV.mjs";
6
6
  import { t as postgresTargetDescriptorMetaRuntime } from "./descriptor-meta-runtime-UwYdV8fD-B_m_Ha8r.mjs";
7
7
  import { type } from "arktype";
8
8
  import { defineIndexTypes } from "@prisma/orm-family-sql/contract/index-types";
9
- //#region ../../../3-targets/3-targets/postgres/dist/descriptor-meta-CQBdvIPG.mjs
9
+ //#region ../../../3-targets/3-targets/postgres/dist/descriptor-meta-CQMRNeLX.mjs
10
10
  const postgresIndexTypes = defineIndexTypes().add("btree", { options: type("object") }).add("hash", { options: type("object") }).add("gin", { options: type("object") }).add("gist", { options: type("object") }).add("spgist", { options: type("object") }).add("brin", { options: type("object") });
11
11
  const postgresTargetDescriptorMeta = {
12
12
  ...postgresTargetDescriptorMetaRuntime,
@@ -28,4 +28,4 @@ const postgresTargetDescriptorMeta = {
28
28
  //#endregion
29
29
  export { postgresTargetDescriptorMeta as t };
30
30
 
31
- //# sourceMappingURL=descriptor-meta-CQBdvIPG-CN3m2xcT.mjs.map
31
+ //# sourceMappingURL=descriptor-meta-CQMRNeLX-CF4MvmN_.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"descriptor-meta-CQBdvIPG-CN3m2xcT.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/descriptor-meta-CQBdvIPG.mjs"],"sourcesContent":["import { E as postgresQualifyColumnType } from \"./codecs-7isLDrZp.mjs\";\nimport { t as DEFAULT_NAMESPACE_ID } from \"./namespace-ids-xtp_ZY86.mjs\";\nimport { a as postgresAuthoringTypes, i as postgresAuthoringPslBlockDescriptors, n as postgresAuthoringFieldPresets, o as postgresLowerEntityHandles, r as postgresAuthoringModelAttributes, t as postgresAuthoringEntityTypes } from \"./authoring-C3hGtD3B.mjs\";\nimport { i as postgresCreateNamespace } from \"./postgres-schema-PFL-fpel.mjs\";\nimport { t as postgresRenderCheckExpressions } from \"./check-expressions-DFTeR0rd.mjs\";\nimport { t as postgresTargetDescriptorMetaRuntime } from \"./descriptor-meta-runtime-UwYdV8fD.mjs\";\nimport { type } from \"arktype\";\nimport { defineIndexTypes } from \"@internal/sql-contract/index-types\";\n//#region src/core/index-types.ts\nconst postgresIndexTypes = defineIndexTypes().add(\"btree\", { options: type(\"object\") }).add(\"hash\", { options: type(\"object\") }).add(\"gin\", { options: type(\"object\") }).add(\"gist\", { options: type(\"object\") }).add(\"spgist\", { options: type(\"object\") }).add(\"brin\", { options: type(\"object\") });\nconst postgresTargetDescriptorMeta = {\n\t...postgresTargetDescriptorMetaRuntime,\n\tdefaultNamespaceId: DEFAULT_NAMESPACE_ID,\n\tsupportsNamespaces: true,\n\tindexTypes: postgresIndexTypes,\n\tauthoring: {\n\t\ttype: postgresAuthoringTypes,\n\t\tfield: postgresAuthoringFieldPresets,\n\t\tentityTypes: postgresAuthoringEntityTypes,\n\t\tpslBlockDescriptors: postgresAuthoringPslBlockDescriptors,\n\t\tmodelAttributes: postgresAuthoringModelAttributes,\n\t\tcreateNamespace: postgresCreateNamespace,\n\t\tqualifyColumnType: postgresQualifyColumnType,\n\t\trenderCheckExpressions: postgresRenderCheckExpressions,\n\t\tlowerEntityHandles: postgresLowerEntityHandles\n\t}\n};\n//#endregion\nexport { postgresTargetDescriptorMeta as t };\n\n//# sourceMappingURL=descriptor-meta-CQBdvIPG.mjs.map"],"mappings":";;;;;;;;;AASA,MAAM,qBAAqB,iBAAiB,CAAC,CAAC,IAAI,SAAS,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC;AACpS,MAAM,+BAA+B;CACpC,GAAG;CACH,oBAAoB;CACpB,oBAAoB;CACpB,YAAY;CACZ,WAAW;EACV,MAAM;EACN,OAAO;EACP,aAAa;EACb,qBAAqB;EACrB,iBAAiB;EACjB,iBAAiB;EACjB,mBAAmB;EACnB,wBAAwB;EACxB,oBAAoB;CACrB;AACD"}
1
+ {"version":3,"file":"descriptor-meta-CQMRNeLX-CF4MvmN_.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/descriptor-meta-CQMRNeLX.mjs"],"sourcesContent":["import { E as postgresQualifyColumnType } from \"./codecs-7isLDrZp.mjs\";\nimport { t as DEFAULT_NAMESPACE_ID } from \"./namespace-ids-xtp_ZY86.mjs\";\nimport { a as postgresAuthoringTypes, i as postgresAuthoringPslBlockDescriptors, n as postgresAuthoringFieldPresets, o as postgresLowerEntityHandles, r as postgresAuthoringModelAttributes, t as postgresAuthoringEntityTypes } from \"./authoring-DhCDnK1T.mjs\";\nimport { i as postgresCreateNamespace } from \"./postgres-schema-PFL-fpel.mjs\";\nimport { t as postgresRenderCheckExpressions } from \"./check-expressions-DFTeR0rd.mjs\";\nimport { t as postgresTargetDescriptorMetaRuntime } from \"./descriptor-meta-runtime-UwYdV8fD.mjs\";\nimport { type } from \"arktype\";\nimport { defineIndexTypes } from \"@internal/sql-contract/index-types\";\n//#region src/core/index-types.ts\nconst postgresIndexTypes = defineIndexTypes().add(\"btree\", { options: type(\"object\") }).add(\"hash\", { options: type(\"object\") }).add(\"gin\", { options: type(\"object\") }).add(\"gist\", { options: type(\"object\") }).add(\"spgist\", { options: type(\"object\") }).add(\"brin\", { options: type(\"object\") });\nconst postgresTargetDescriptorMeta = {\n\t...postgresTargetDescriptorMetaRuntime,\n\tdefaultNamespaceId: DEFAULT_NAMESPACE_ID,\n\tsupportsNamespaces: true,\n\tindexTypes: postgresIndexTypes,\n\tauthoring: {\n\t\ttype: postgresAuthoringTypes,\n\t\tfield: postgresAuthoringFieldPresets,\n\t\tentityTypes: postgresAuthoringEntityTypes,\n\t\tpslBlockDescriptors: postgresAuthoringPslBlockDescriptors,\n\t\tmodelAttributes: postgresAuthoringModelAttributes,\n\t\tcreateNamespace: postgresCreateNamespace,\n\t\tqualifyColumnType: postgresQualifyColumnType,\n\t\trenderCheckExpressions: postgresRenderCheckExpressions,\n\t\tlowerEntityHandles: postgresLowerEntityHandles\n\t}\n};\n//#endregion\nexport { postgresTargetDescriptorMeta as t };\n\n//# sourceMappingURL=descriptor-meta-CQMRNeLX.mjs.map"],"mappings":";;;;;;;;;AASA,MAAM,qBAAqB,iBAAiB,CAAC,CAAC,IAAI,SAAS,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC;AACpS,MAAM,+BAA+B;CACpC,GAAG;CACH,oBAAoB;CACpB,oBAAoB;CACpB,YAAY;CACZ,WAAW;EACV,MAAM;EACN,OAAO;EACP,aAAa;EACb,qBAAqB;EACrB,iBAAiB;EACjB,iBAAiB;EACjB,mBAAmB;EACnB,wBAAwB;EACxB,oBAAoB;CACrB;AACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"migration-PTHAY9Cv.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/migration.mjs"],"sourcesContent":["import { I as createExtension } from \"./op-factory-call-B3-CevCo.mjs\";\nimport { t as dataTransform } from \"./data-transform-ChZzy2dP.mjs\";\nimport { t as PostgresMigration } from \"./postgres-migration-Bw29VY-O.mjs\";\nimport { checkExpression, col, fn, foreignKey, lit, primaryKey, unique } from \"@internal/sql-relational-core/contract-free\";\nimport { placeholder } from \"@internal/errors/migration\";\nimport { MigrationCLI } from \"@internal/cli/migration-cli\";\n//#region src/core/migrations/operations/raw.ts\n/**\n* Identity factory for an already-materialized `SqlMigrationPlanOperation`.\n*\n* The planner uses this via `liftOpToCall` to carry ops produced by SQL\n* family methods, codec control hooks, and component database dependencies\n* alongside migration IR without reverse-engineering them. Users writing\n* raw migrations can pass a full op shape directly — typically built by\n* composing SQL family helpers — to author a migration that bypasses the\n* structured call classes.\n*/\nfunction rawSql(op) {\n\treturn op;\n}\n//#endregion\nexport { PostgresMigration as Migration, MigrationCLI, checkExpression, col, createExtension, dataTransform, fn, foreignKey, lit, placeholder, primaryKey, rawSql, unique };\n\n//# sourceMappingURL=migration.mjs.map"],"mappings":";;;;;;;;;;;;;;AAiBA,SAAS,OAAO,IAAI;CACnB,OAAO;AACR"}
1
+ {"version":3,"file":"migration-PTHAY9Cv.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/migration.mjs"],"sourcesContent":["import { I as createExtension } from \"./op-factory-call-B3-CevCo.mjs\";\nimport { t as dataTransform } from \"./data-transform-ChZzy2dP.mjs\";\nimport { t as PostgresMigration } from \"./postgres-migration-CydbiBd3.mjs\";\nimport { checkExpression, col, fn, foreignKey, lit, primaryKey, unique } from \"@internal/sql-relational-core/contract-free\";\nimport { placeholder } from \"@internal/errors/migration\";\nimport { MigrationCLI } from \"@internal/cli/migration-cli\";\n//#region src/core/migrations/operations/raw.ts\n/**\n* Identity factory for an already-materialized `SqlMigrationPlanOperation`.\n*\n* The planner uses this via `liftOpToCall` to carry ops produced by SQL\n* family methods, codec control hooks, and component database dependencies\n* alongside migration IR without reverse-engineering them. Users writing\n* raw migrations can pass a full op shape directly — typically built by\n* composing SQL family helpers — to author a migration that bypasses the\n* structured call classes.\n*/\nfunction rawSql(op) {\n\treturn op;\n}\n//#endregion\nexport { PostgresMigration as Migration, MigrationCLI, checkExpression, col, createExtension, dataTransform, fn, foreignKey, lit, placeholder, primaryKey, rawSql, unique };\n\n//# sourceMappingURL=migration.mjs.map"],"mappings":";;;;;;;;;;;;;;AAiBA,SAAS,OAAO,IAAI;CACnB,OAAO;AACR"}
@@ -26,6 +26,7 @@ declare const postgresTargetDescriptorMetaBase: {
26
26
  readonly type: {
27
27
  readonly BigIntNumber: {
28
28
  readonly kind: "typeConstructor";
29
+ readonly documentation: "A PostgreSQL 64-bit integer represented as a JavaScript number within its safe integer range.";
29
30
  readonly output: {
30
31
  readonly codecId: "pg/int8number@1";
31
32
  readonly nativeType: "int8";
@@ -33,6 +34,7 @@ declare const postgresTargetDescriptorMetaBase: {
33
34
  };
34
35
  readonly UnboundedInt: {
35
36
  readonly kind: "typeConstructor";
37
+ readonly documentation: "An arbitrary-precision integer stored as PostgreSQL numeric and represented as bigint.";
36
38
  readonly output: {
37
39
  readonly codecId: "pg/unboundedint@1";
38
40
  readonly nativeType: "numeric";
@@ -566,6 +568,7 @@ declare const postgresTargetDescriptorMetaBase: {
566
568
  readonly policy_select: {
567
569
  readonly kind: "pslBlock";
568
570
  readonly keyword: "policy_select";
571
+ readonly documentation: "Defines a row-level security policy controlling which rows can be selected.";
569
572
  readonly discriminator: "policy";
570
573
  readonly name: {
571
574
  readonly required: true;
@@ -573,12 +576,14 @@ declare const postgresTargetDescriptorMetaBase: {
573
576
  readonly parameters: {
574
577
  readonly target: {
575
578
  readonly kind: "ref";
579
+ readonly documentation: "The model protected by this policy; it must declare @@rls.";
576
580
  readonly refKind: "model";
577
581
  readonly scope: "same-namespace";
578
582
  readonly required: true;
579
583
  };
580
584
  readonly roles: {
581
585
  readonly kind: "list";
586
+ readonly documentation: "The database roles to which this policy applies.";
582
587
  readonly of: {
583
588
  readonly kind: "ref";
584
589
  readonly refKind: "role";
@@ -589,10 +594,12 @@ declare const postgresTargetDescriptorMetaBase: {
589
594
  readonly kind: "value";
590
595
  readonly codecId: "pg/text@1";
591
596
  readonly required: true;
597
+ readonly documentation: "A SQL predicate controlling which rows this policy permits.";
592
598
  };
593
599
  readonly permissive: {
594
600
  readonly kind: "value";
595
601
  readonly codecId: "pg/bool@1";
602
+ readonly documentation: "Whether the policy is permissive (combined with OR) rather than restrictive (combined with AND).";
596
603
  };
597
604
  };
598
605
  readonly requiresModelAttribute: {
@@ -608,6 +615,7 @@ declare const postgresTargetDescriptorMetaBase: {
608
615
  readonly policy_delete: {
609
616
  readonly kind: "pslBlock";
610
617
  readonly keyword: "policy_delete";
618
+ readonly documentation: "Defines a row-level security policy controlling which rows can be deleted.";
611
619
  readonly discriminator: "policy";
612
620
  readonly name: {
613
621
  readonly required: true;
@@ -615,12 +623,14 @@ declare const postgresTargetDescriptorMetaBase: {
615
623
  readonly parameters: {
616
624
  readonly target: {
617
625
  readonly kind: "ref";
626
+ readonly documentation: "The model protected by this policy; it must declare @@rls.";
618
627
  readonly refKind: "model";
619
628
  readonly scope: "same-namespace";
620
629
  readonly required: true;
621
630
  };
622
631
  readonly roles: {
623
632
  readonly kind: "list";
633
+ readonly documentation: "The database roles to which this policy applies.";
624
634
  readonly of: {
625
635
  readonly kind: "ref";
626
636
  readonly refKind: "role";
@@ -631,10 +641,12 @@ declare const postgresTargetDescriptorMetaBase: {
631
641
  readonly kind: "value";
632
642
  readonly codecId: "pg/text@1";
633
643
  readonly required: true;
644
+ readonly documentation: "A SQL predicate controlling which rows this policy permits.";
634
645
  };
635
646
  readonly permissive: {
636
647
  readonly kind: "value";
637
648
  readonly codecId: "pg/bool@1";
649
+ readonly documentation: "Whether the policy is permissive (combined with OR) rather than restrictive (combined with AND).";
638
650
  };
639
651
  };
640
652
  readonly requiresModelAttribute: {
@@ -650,6 +662,7 @@ declare const postgresTargetDescriptorMetaBase: {
650
662
  readonly policy_insert: {
651
663
  readonly kind: "pslBlock";
652
664
  readonly keyword: "policy_insert";
665
+ readonly documentation: "Defines a row-level security policy checking rows being inserted.";
653
666
  readonly discriminator: "policy";
654
667
  readonly name: {
655
668
  readonly required: true;
@@ -657,12 +670,14 @@ declare const postgresTargetDescriptorMetaBase: {
657
670
  readonly parameters: {
658
671
  readonly target: {
659
672
  readonly kind: "ref";
673
+ readonly documentation: "The model protected by this policy; it must declare @@rls.";
660
674
  readonly refKind: "model";
661
675
  readonly scope: "same-namespace";
662
676
  readonly required: true;
663
677
  };
664
678
  readonly roles: {
665
679
  readonly kind: "list";
680
+ readonly documentation: "The database roles to which this policy applies.";
666
681
  readonly of: {
667
682
  readonly kind: "ref";
668
683
  readonly refKind: "role";
@@ -673,10 +688,12 @@ declare const postgresTargetDescriptorMetaBase: {
673
688
  readonly kind: "value";
674
689
  readonly codecId: "pg/text@1";
675
690
  readonly required: true;
691
+ readonly documentation: "A SQL predicate controlling which rows this policy permits.";
676
692
  };
677
693
  readonly permissive: {
678
694
  readonly kind: "value";
679
695
  readonly codecId: "pg/bool@1";
696
+ readonly documentation: "Whether the policy is permissive (combined with OR) rather than restrictive (combined with AND).";
680
697
  };
681
698
  };
682
699
  readonly requiresModelAttribute: {
@@ -692,6 +709,7 @@ declare const postgresTargetDescriptorMetaBase: {
692
709
  readonly policy_update: {
693
710
  readonly kind: "pslBlock";
694
711
  readonly keyword: "policy_update";
712
+ readonly documentation: "Defines a row-level security policy controlling row visibility and checks for updates.";
695
713
  readonly discriminator: "policy";
696
714
  readonly name: {
697
715
  readonly required: true;
@@ -699,12 +717,14 @@ declare const postgresTargetDescriptorMetaBase: {
699
717
  readonly parameters: {
700
718
  readonly target: {
701
719
  readonly kind: "ref";
720
+ readonly documentation: "The model protected by this policy; it must declare @@rls.";
702
721
  readonly refKind: "model";
703
722
  readonly scope: "same-namespace";
704
723
  readonly required: true;
705
724
  };
706
725
  readonly roles: {
707
726
  readonly kind: "list";
727
+ readonly documentation: "The database roles to which this policy applies.";
708
728
  readonly of: {
709
729
  readonly kind: "ref";
710
730
  readonly refKind: "role";
@@ -715,15 +735,18 @@ declare const postgresTargetDescriptorMetaBase: {
715
735
  readonly kind: "value";
716
736
  readonly codecId: "pg/text@1";
717
737
  readonly required: true;
738
+ readonly documentation: "A SQL predicate controlling which rows this policy permits.";
718
739
  };
719
740
  readonly withCheck: {
720
741
  readonly kind: "value";
721
742
  readonly codecId: "pg/text@1";
722
743
  readonly required: true;
744
+ readonly documentation: "A SQL predicate controlling which rows this policy permits.";
723
745
  };
724
746
  readonly permissive: {
725
747
  readonly kind: "value";
726
748
  readonly codecId: "pg/bool@1";
749
+ readonly documentation: "Whether the policy is permissive (combined with OR) rather than restrictive (combined with AND).";
727
750
  };
728
751
  };
729
752
  readonly requiresModelAttribute: {
@@ -739,6 +762,7 @@ declare const postgresTargetDescriptorMetaBase: {
739
762
  readonly policy_all: {
740
763
  readonly kind: "pslBlock";
741
764
  readonly keyword: "policy_all";
765
+ readonly documentation: "Defines a row-level security policy applying to all operations.";
742
766
  readonly discriminator: "policy";
743
767
  readonly name: {
744
768
  readonly required: true;
@@ -746,12 +770,14 @@ declare const postgresTargetDescriptorMetaBase: {
746
770
  readonly parameters: {
747
771
  readonly target: {
748
772
  readonly kind: "ref";
773
+ readonly documentation: "The model protected by this policy; it must declare @@rls.";
749
774
  readonly refKind: "model";
750
775
  readonly scope: "same-namespace";
751
776
  readonly required: true;
752
777
  };
753
778
  readonly roles: {
754
779
  readonly kind: "list";
780
+ readonly documentation: "The database roles to which this policy applies.";
755
781
  readonly of: {
756
782
  readonly kind: "ref";
757
783
  readonly refKind: "role";
@@ -762,15 +788,18 @@ declare const postgresTargetDescriptorMetaBase: {
762
788
  readonly kind: "value";
763
789
  readonly codecId: "pg/text@1";
764
790
  readonly required: true;
791
+ readonly documentation: "A SQL predicate controlling which rows this policy permits.";
765
792
  };
766
793
  readonly withCheck: {
767
794
  readonly kind: "value";
768
795
  readonly codecId: "pg/text@1";
769
796
  readonly required: true;
797
+ readonly documentation: "A SQL predicate controlling which rows this policy permits.";
770
798
  };
771
799
  readonly permissive: {
772
800
  readonly kind: "value";
773
801
  readonly codecId: "pg/bool@1";
802
+ readonly documentation: "Whether the policy is permissive (combined with OR) rather than restrictive (combined with AND).";
774
803
  };
775
804
  };
776
805
  readonly requiresModelAttribute: {
@@ -786,6 +815,7 @@ declare const postgresTargetDescriptorMetaBase: {
786
815
  readonly native_enum: {
787
816
  readonly kind: "pslBlock";
788
817
  readonly keyword: "native_enum";
818
+ readonly documentation: "Defines a PostgreSQL enum type with named string-valued members.";
789
819
  readonly discriminator: "native_enum";
790
820
  readonly name: {
791
821
  readonly required: true;
@@ -801,6 +831,7 @@ declare const postgresTargetDescriptorMetaBase: {
801
831
  readonly role: {
802
832
  readonly kind: "pslBlock";
803
833
  readonly keyword: "role";
834
+ readonly documentation: "Declares an existing database role in namespace unbound for use in security policies.";
804
835
  readonly discriminator: "role";
805
836
  readonly name: {
806
837
  readonly required: true;
@@ -837,4 +868,4 @@ declare const postgresTargetDescriptorMeta: typeof postgresTargetDescriptorMetaB
837
868
  };
838
869
  //#endregion
839
870
  export { postgresTargetDescriptorMeta as t };
840
- //# sourceMappingURL=pack-CRA_2QjF.d.mts.map
871
+ //# sourceMappingURL=pack-NsDJBTgA.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-NsDJBTgA.d.mts","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/pack.d.mts"],"mappings":";;;;;;;;cAOc;WACH;WACA;WACA,yDAAyD,iBAAiB,uBAAuB;aAC/F;OACN;aACM;OACN;aACM;OACN;aACM;OACN;aACM;OACN;aACM;;WAEF;aACE;eACE;iBACE;iBACA;iBACA;mBACE;mBACA;;;eAGJ;iBACE;iBACA;iBACA;mBACE;mBACA;;;eAGJ;iBACE;mBACE;mBACA;qBACE;qBACA;;mBAEF;qBACE;;;;;aAKR;eACE;iBACE;iBACA;mBACE;mBACA;;;eAGJ;iBACE;iBACA;mBACE;mBACA;;;eAGJ;iBACE;iBACA;mBACE;mBACA;;;eAGJ;iBACE;iBACA;mBACE;mBACA;;;eAGJ;iBACE;iBACA;mBACE;mBACA;;;eAGJ;iBACE;iBACA;mBACE;mBACA;;;eAGJ;iBACE;iBACA;mBACE;mBACA;;;eAGJ;iBACE;iBACA;mBACE;mBACA;;;eAGJ;iBACE;iBACA;mBACE;mBACA;;;eAGJ;iBACE;mBACE;mBACA;qBACE;qBACA;qBACA;qBACA;qBACA;;qBAEA;qBACA;qBACA;qBACA;;qBAEA;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;uBACE;yBACE;yBACA;;;qBAGJ;uBACE;yBACE;yBACA;yBACA;2BACE;6BACE;6BACA;;;;uBAIN;yBACE;yBACA;yBACA;2BACE;6BACE;6BACA;;;;;;;iBAOZ;mBACE;mBACA;qBACE;qBACA;qBACA;qBACA;qBACA;;qBAEA;qBACA;qBACA;qBACA;;qBAEA;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;uBACE;yBACE;yBACA;;;qBAGJ;uBACE;yBACE;yBACA;yBACA;2BACE;6BACE;6BACA;;;;uBAIN;yBACE;yBACA;yBACA;2BACE;6BACE;6BACA;;;;;;;iBAOZ;mBACE;mBACA;qBACE;qBACA;qBACA;qBACA;qBACA;;qBAEA;qBACA;qBACA;qBACA;;qBAEA;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;uBACE;yBACE;yBACA;;;qBAGJ;uBACE;yBACE;yBACA;yBACA;2BACE;6BACE;6BACA;;;;uBAIN;yBACE;yBACA;yBACA;2BACE;6BACE;6BACA;;;;;;;iBAOZ;mBACE;mBACA;qBACE;qBACA;qBACA;qBACA;qBACA;;qBAEA;qBACA;qBACA;qBACA;;qBAEA;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;uBACE;yBACE;yBACA;;;qBAGJ;uBACE;yBACE;yBACA;yBACA;2BACE;6BACE;6BACA;;;;uBAIN;yBACE;yBACA;yBACA;2BACE;6BACE;6BACA;;;;;;;iBAOZ;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;uBACA;;;;iBAIN;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;yBACE;yBACA;;uBAEF;yBACE;yBACA;;;;;iBAKR;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;uBACA;;;;iBAIN;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;yBACE;yBACA;;uBAEF;yBACE;yBACA;;;;;iBAKR;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;uBACA;;;;iBAIN;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;yBACE;yBACA;;uBAEF;yBACE;yBACA;;;;;iBAKR;mBACE;mBACA;qBACE;qBACA;qBACA;qBACA;qBACA;;qBAEA;qBACA;qBACA;qBACA;;qBAEA;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;uBACE;yBACE;yBACA;;;qBAGJ;uBACE;yBACE;yBACA;yBACA;2BACE;6BACE;6BACA;;;;uBAIN;yBACE;yBACA;yBACA;2BACE;6BACE;6BACA;;;;;;;;eAQd;iBACE;iBACA;mBACE;mBACA;;;eAGJ;iBACE;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;yBACE;yBACA;;;qBAGJ;;;iBAGJ;mBACE;mBACA;qBACE;qBACA;qBACA;uBACE;yBACE;yBACA;;;qBAGJ;;;;;aAKR;eACE;iBACE;iBACA;iBACA,+DAA+D;UACtE;UACA;UACA;UACA;;iBAEO;mBACE,UAAU,OAAO,oBAAoB,wDAAwD,2BAA2B;;;eAG5H;iBACE;iBACA;iBACA,+DAA+D;UACtE;UACA;UACA;;iBAEO;mBACE,UAAU,OAAO,+BAA+B;;;eAGpD;iBACE;iBACA;iBACA,+DAA+D;UACtE;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;iBAEO;mBACE,UAAU,OAAO,yBAAyB,wDAAwD,2BAA2B;;;eAGjI;iBACE;iBACA;iBACA,+DAA+D;UACtE;UACA;UACA;UACA;;iBAEO;UACP,UAAU,sCAAsC,mBAAmB,wDAAwD,2BAA2B;UACtJ,iBAAiB,QAAQ;YACvB;YACA;;;;;aAKC;eACE;iBACE;iBACA;iBACA;iBACA;iBACA;mBACE;;iBAEF;mBACE;qBACE;qBACA;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;uBACE;uBACA;uBACA;;;mBAGJ;qBACE;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;;;iBAGJ;mBACE;mBACA;;iBAEF;UACP,0CAA0C;YACxC;4CACgC;;;eAG7B;iBACE;iBACA;iBACA;iBACA;iBACA;mBACE;;iBAEF;mBACE;qBACE;qBACA;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;uBACE;uBACA;uBACA;;;mBAGJ;qBACE;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;;;iBAGJ;mBACE;mBACA;;iBAEF;UACP,0CAA0C;YACxC;4CACgC;;;eAG7B;iBACE;iBACA;iBACA;iBACA;iBACA;mBACE;;iBAEF;mBACE;qBACE;qBACA;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;uBACE;uBACA;uBACA;;;mBAGJ;qBACE;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;;;iBAGJ;mBACE;mBACA;;iBAEF;UACP,0CAA0C;YACxC;4CACgC;;;eAG7B;iBACE;iBACA;iBACA;iBACA;iBACA;mBACE;;iBAEF;mBACE;qBACE;qBACA;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;uBACE;uBACA;uBACA;;;mBAGJ;qBACE;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;;;iBAGJ;mBACE;mBACA;;iBAEF;UACP,0CAA0C;YACxC;4CACgC;;;eAG7B;iBACE;iBACA;iBACA;iBACA;iBACA;mBACE;;iBAEF;mBACE;qBACE;qBACA;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;uBACE;uBACA;uBACA;;;mBAGJ;qBACE;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;qBACA;;mBAEF;qBACE;qBACA;qBACA;;;iBAGJ;mBACE;mBACA;;iBAEF;UACP,0CAA0C;YACxC;4CACgC;;;eAG7B;iBACE;iBACA;iBACA;iBACA;iBACA;mBACE;;iBAEF;iBACA;iBACA;mBACE,0CAA0C;YACjD;4CACgC;;;eAG7B;iBACE;iBACA;iBACA;iBACA;iBACA;mBACE;;iBAEF;;;aAGJ;eACE;iBACE;iBACA;iBACA,qCAAqC;iBACrC,QAAQ,SAAS,sBAAsB,wDAAwD;UACtG;UACA,QAAQ;;;;aAIL,wBAAwB;aACxB,0BAA0B;aAC1B,+BAA+B;aAC/B,2BAA2B;;WAE7B;WACA;WACA;WACA;WACA;WACA;WACA,eAAe;;cAEZ,qCAAqC;WACxC,eAAe"}
@@ -6,7 +6,7 @@ import { t as resolveDdlSchemaForNamespaceStorage } from "./resolve-ddl-schema-D
6
6
  import { A as RenameIndexCall, T as DropPostgresRlsPolicyCall, j as RenamePostgresRlsPolicyCall, k as RenameCheckConstraintCall, p as CreatePostgresRlsPolicyCall } from "./op-factory-call-B3-CevCo-CSV5SL9W.mjs";
7
7
  import { a as planIssues, c as renderPostgresSuppression, d as resolvePostgresNodeIssueControlPolicySubject, f as resolvePostgresNodeIssueCreationFactoryName, i as issueSchemaName, l as resolveNamespaceIdForDdlSchema, n as conflictForDisallowedCall, o as postgresNodeStorageCoordinate, r as issueNode, s as postgresPlannerStrategies, t as coalesceSubtreeIssues, u as resolvePostgresCallControlPolicySubject } from "./control-policy-B8x7UxGf-BjTez7am.mjs";
8
8
  import { t as buildPostgresPlanDiff } from "./diff-database-schema-BFX0ZWWK-KVfAPOLF.mjs";
9
- import { t as TypeScriptRenderablePostgresMigration } from "./planner-produced-postgres-migration-CjuBrC8Z-Cv4wCASG.mjs";
9
+ import { t as TypeScriptRenderablePostgresMigration } from "./planner-produced-postgres-migration-CNmh50cN-qepqYtvL.mjs";
10
10
  import { blindCast } from "@prisma/orm-framework/utils/casts";
11
11
  import { UNBOUND_NAMESPACE_ID } from "@prisma/orm-framework/components/ir";
12
12
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
@@ -14,7 +14,7 @@ import { namingOf, parseWireName } from "@prisma/orm-family-sql/schema-ir/naming
14
14
  import { issueOutcome } from "@prisma/orm-framework/components/control";
15
15
  import { controlPolicyForCall, detectTableNameCaseChanges, extractCodecControlHooks, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventOperations, plannerFailure } from "@prisma/orm-family-sql/family/control";
16
16
  import { SqlCheckConstraintIR, SqlIndexIR } from "@prisma/orm-family-sql/schema-ir/types";
17
- //#region ../../../3-targets/3-targets/postgres/dist/planner-CeYeEGDy.mjs
17
+ //#region ../../../3-targets/3-targets/postgres/dist/planner-C_TrM6kn.mjs
18
18
  /**
19
19
  * Resolves the live-database schema name for a given namespace
20
20
  * coordinate. Mirrors `resolveDdlSchemaForNamespace` in
@@ -678,4 +678,4 @@ function policyNodeToContractPolicy(node) {
678
678
  //#endregion
679
679
  export { createPostgresMigrationPlanner as t };
680
680
 
681
- //# sourceMappingURL=planner-CeYeEGDy-UmNDGNc2.mjs.map
681
+ //# sourceMappingURL=planner-C_TrM6kn-Dj1rgql2.mjs.map