@prisma-next/family-sql 0.5.0-dev.62 → 0.5.0-dev.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/control-adapter.d.mts +11 -5
- package/dist/control-adapter.d.mts.map +1 -1
- package/dist/control.d.mts +1 -1
- package/dist/control.d.mts.map +1 -1
- package/dist/control.mjs +7 -4
- package/dist/control.mjs.map +1 -1
- package/dist/migration.d.mts +1 -1
- package/dist/schema-verify.d.mts +1 -1
- package/dist/{types-DiBtjG6M.d.mts → types-DFQkcr8A.d.mts} +44 -3
- package/dist/{types-DiBtjG6M.d.mts.map → types-DFQkcr8A.d.mts.map} +1 -1
- package/dist/verify-sql-schema-Ovz7RXR5.mjs.map +1 -1
- package/package.json +18 -18
- package/src/core/control-adapter.ts +14 -5
- package/src/core/control-instance.ts +7 -3
- package/src/core/migrations/plan-helpers.ts +1 -0
- package/src/core/migrations/types.ts +43 -0
|
@@ -14,15 +14,21 @@ import { SqlSchemaIR } from "@prisma-next/sql-schema-ir/types";
|
|
|
14
14
|
*/
|
|
15
15
|
interface SqlControlAdapter<TTarget extends string = string> extends ControlAdapterInstance<'sql', TTarget> {
|
|
16
16
|
/**
|
|
17
|
-
* Reads the contract marker from the database, returning
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
17
|
+
* Reads the contract marker for `space` from the database, returning
|
|
18
|
+
* `null` if no marker row exists for that space (or if the marker
|
|
19
|
+
* table itself is missing). Implementations are responsible for the
|
|
20
|
+
* dialect-specific existence probe (e.g. Postgres
|
|
21
|
+
* `information_schema.tables` vs SQLite `sqlite_master`) and parameter
|
|
22
|
+
* placeholders.
|
|
23
|
+
*
|
|
24
|
+
* `space` is required so callers cannot accidentally fall through to
|
|
25
|
+
* the app's marker row when reading per-extension markers.
|
|
21
26
|
*
|
|
22
27
|
* @param driver - ControlDriverInstance for executing queries (target-specific)
|
|
28
|
+
* @param space - Contract space id whose marker row to read (e.g. `'app'`)
|
|
23
29
|
* @returns Resolved marker record, or `null` if not yet stamped.
|
|
24
30
|
*/
|
|
25
|
-
readMarker(driver: ControlDriverInstance<'sql', TTarget
|
|
31
|
+
readMarker(driver: ControlDriverInstance<'sql', TTarget>, space: string): Promise<ContractMarkerRecord | null>;
|
|
26
32
|
/**
|
|
27
33
|
* Introspects a database schema and returns a raw SqlSchemaIR.
|
|
28
34
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-adapter.d.mts","names":[],"sources":["../src/core/control-adapter.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;AAoBA;;;;
|
|
1
|
+
{"version":3,"file":"control-adapter.d.mts","names":[],"sources":["../src/core/control-adapter.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;AAoBA;;;;AAoBa,UApBI,iBAoBJ,CAAA,gBAAA,MAAA,GAAA,MAAA,CAAA,SAnBH,sBAmBG,CAAA,KAAA,EAnB2B,OAmB3B,CAAA,CAAA;EAAR;;;;;;;;;;;;AAoDL;;;EAOiE,UAAA,CAAA,MAAA,EA7DrD,qBA6DqD,CAAA,KAAA,EA7DxB,OA6DwB,CAAA,EAAA,KAAA,EAAA,MAAA,CAAA,EA3D5D,OA2D4D,CA3DpD,oBA2DoD,GAAA,IAAA,CAAA;EAAlB;;;;;;;;;;;;qBA5CnC,6BAA6B,gDAGpC,QAAQ;;;;;;8BAOiB;;;;;;iCAOG;;;;;;;;;;aAWpB,sBAAsB,0BAA0B;;;;;;;;UAS5C;;;;;;;gBAOD,oBAAoB,WAAW,kBAAkB"}
|
package/dist/control.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as SqlPlannerResult, C as SqlMigrationRunnerResult, D as SqlPlannerConflictKind, E as SqlPlannerConflict, F as SchemaVerifyOptions, I as SqlControlFamilyInstance, M as StorageTypePlanResult, N as collectInitDependencies, O as SqlPlannerConflictLocation, P as isDatabaseDependencyProvider, S as SqlMigrationRunnerFailure, T as SqlPlanTargetDetails, _ as SqlMigrationPlannerPlanOptions, a as CreateSqlMigrationPlanOptions, b as SqlMigrationRunnerExecuteCallbacks, c as SqlControlAdapterDescriptor, d as SqlMigrationPlan, f as SqlMigrationPlanContractInfo, g as SqlMigrationPlanner, h as SqlMigrationPlanOperationTarget, i as ComponentDatabaseDependency, j as SqlPlannerSuccessResult, k as SqlPlannerFailureResult, l as SqlControlExtensionDescriptor, m as SqlMigrationPlanOperationStep, n as CodecControlHooks, o as ExpandNativeTypeInput, p as SqlMigrationPlanOperation, r as ComponentDatabaseDependencies, s as ResolveIdentityValueInput, t as AnyRecord, u as SqlControlTargetDescriptor, v as SqlMigrationRunner, w as SqlMigrationRunnerSuccessValue, x as SqlMigrationRunnerExecuteOptions, y as SqlMigrationRunnerErrorCode } from "./types-
|
|
1
|
+
import { A as SqlPlannerResult, C as SqlMigrationRunnerResult, D as SqlPlannerConflictKind, E as SqlPlannerConflict, F as SchemaVerifyOptions, I as SqlControlFamilyInstance, M as StorageTypePlanResult, N as collectInitDependencies, O as SqlPlannerConflictLocation, P as isDatabaseDependencyProvider, S as SqlMigrationRunnerFailure, T as SqlPlanTargetDetails, _ as SqlMigrationPlannerPlanOptions, a as CreateSqlMigrationPlanOptions, b as SqlMigrationRunnerExecuteCallbacks, c as SqlControlAdapterDescriptor, d as SqlMigrationPlan, f as SqlMigrationPlanContractInfo, g as SqlMigrationPlanner, h as SqlMigrationPlanOperationTarget, i as ComponentDatabaseDependency, j as SqlPlannerSuccessResult, k as SqlPlannerFailureResult, l as SqlControlExtensionDescriptor, m as SqlMigrationPlanOperationStep, n as CodecControlHooks, o as ExpandNativeTypeInput, p as SqlMigrationPlanOperation, r as ComponentDatabaseDependencies, s as ResolveIdentityValueInput, t as AnyRecord, u as SqlControlTargetDescriptor, v as SqlMigrationRunner, w as SqlMigrationRunnerSuccessValue, x as SqlMigrationRunnerExecuteOptions, y as SqlMigrationRunnerErrorCode } from "./types-DFQkcr8A.mjs";
|
|
2
2
|
import { ControlFamilyDescriptor, ControlStack, MigrationOperationClass, MigrationOperationPolicy, MigrationOperationPolicy as MigrationOperationPolicy$1, MigrationPlan, MigrationPlanOperation, MigrationPlanner, MigrationPlannerConflict, MigrationPlannerConflict as MigrationPlannerConflict$1, MigrationPlannerResult, MutationDefaultGeneratorDescriptor, TargetMigrationsCapability, assembleAuthoringContributions } from "@prisma-next/framework-components/control";
|
|
3
3
|
import { NotOk, Ok } from "@prisma-next/utils/result";
|
|
4
4
|
import * as _prisma_next_contract_types0 from "@prisma-next/contract/types";
|
package/dist/control.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.d.mts","names":[],"sources":["../src/core/control-descriptor.ts","../src/core/assembly.ts","../src/core/migrations/contract-to-schema-ir.ts","../src/core/migrations/plan-helpers.ts","../src/core/migrations/policies.ts","../src/core/timestamp-now-generator.ts","../src/exports/control.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;cASa,mBAAA,YACA,+BAA+B;;;;;;;uCAAwB,4BAAA,CAAA;;IADvD,SAAA,mBACX,EAAA,CAAA,QAAA,uCAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,GAAA,MAAA;IAA0C,SAAA,wBAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,KAAA,4CAAA,EAAA,GAAA,MAAA;IAAwB,SAAA,sBAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,4CAAA,EAAA,QAAA,uCAAA,EAAA,SAAA,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,SAAA;;0FAY5C;;;;;;;QACO,SAAA,IAAA,EAAA,aAAA;QAApB,SAAA,MAAA,EAAA;UACN,SAAA,OAAA,EAAA,YAAA;UAdQ,SAAA,UAAA,EAAA,WAAA;UAAuB,SAAA,UAAA,EAAA;;;;MCYpB,CAAA;MACa,SAAA,IAAA,EAAA;QAAd,SAAA,IAAA,EAAA,aAAA;QACA,SAAA,MAAA,EAAA;UAAZ,SAAA,OAAA,EAAA,YAAA;UAAG,SAAA,UAAA,EAAA,WAAA;;;;QCYM,CAAA;MAeA,CAAA;MAuII,SAAA,MAAA,EAAA;QACR,SAAA,IAAA,EAAA,aAAA;QACF,SAAA,IAAA,EAAA,SAAA,CAAA;UACM,SAAA,IAAA,EAAA,QAAA;UAAwB,SAAA,QAAA,EAAA,IAAA;UAiCnB,SAAA,UAAyB,EAAA;YAEZ,SAAA,IAAA,EAAA;cACH,SAAA,IAAA,EAAA,QAAA;cACoB,SAAA,QAAA,EAAA,IAAA;cAAd,SAAA,OAAA,EAAA,IAAA;cAAa,SAAA,OAAA,EAAA,CAAA;cAkBZ,SAAA,OAAA,EAAA,GAAA;YACb,CAAA;UAAT,CAAA;QACD,CAAA,CAAA;QACR,SAAA,MAAA,EAAA;UAAW,SAAA,OAAA,EAAA,YAAA;;;;cCxJqB,SAAA,IAAA,EAAA,KAAA;cACM,SAAA,KAAA,EAAA,CAAA;cAA9B,SAAA,IAAA,EAAA,SAAA,CAAA,MAAA,CAAA;cACS,SAAA,OAAA,EAAA,EAAA;YAAjB,CAAA;UAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"control.d.mts","names":[],"sources":["../src/core/control-descriptor.ts","../src/core/assembly.ts","../src/core/migrations/contract-to-schema-ir.ts","../src/core/migrations/plan-helpers.ts","../src/core/migrations/policies.ts","../src/core/timestamp-now-generator.ts","../src/exports/control.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/control.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import { t as collectSupportedCodecTypeIds } from "./verify-BdES8wgQ.mjs";
|
|
|
4
4
|
import { n as temporalAuthoringPresets, r as timestampNowControlDescriptor } from "./timestamp-now-generator-Bt4L3cfM.mjs";
|
|
5
5
|
import { sqlEmission } from "@prisma-next/sql-contract-emitter";
|
|
6
6
|
import { emptyCodecLookup } from "@prisma-next/framework-components/codec";
|
|
7
|
-
import { SchemaTreeNode, VERIFY_CODE_HASH_MISMATCH, VERIFY_CODE_MARKER_MISSING, VERIFY_CODE_TARGET_MISMATCH, assembleAuthoringContributions } from "@prisma-next/framework-components/control";
|
|
7
|
+
import { APP_SPACE_ID, SchemaTreeNode, VERIFY_CODE_HASH_MISMATCH, VERIFY_CODE_MARKER_MISSING, VERIFY_CODE_TARGET_MISMATCH, assembleAuthoringContributions } from "@prisma-next/framework-components/control";
|
|
8
8
|
import { validateContract } from "@prisma-next/sql-contract/validate";
|
|
9
9
|
import { ensureSchemaStatement, ensureTableStatement, writeContractMarker } from "@prisma-next/sql-runtime";
|
|
10
10
|
import { defaultIndexName } from "@prisma-next/sql-schema-ir/naming";
|
|
@@ -1111,7 +1111,7 @@ function createSqlFamilyInstance(stack) {
|
|
|
1111
1111
|
const contractStorageHash = contract.storage.storageHash;
|
|
1112
1112
|
const contractProfileHash = contract.profileHash;
|
|
1113
1113
|
const contractTarget = contract.target;
|
|
1114
|
-
const marker = await getControlAdapter().readMarker(driver);
|
|
1114
|
+
const marker = await getControlAdapter().readMarker(driver, APP_SPACE_ID);
|
|
1115
1115
|
let missingCodecs;
|
|
1116
1116
|
let codecCoverageSkipped = false;
|
|
1117
1117
|
const supportedTypeIds = collectSupportedCodecTypeIds([
|
|
@@ -1219,12 +1219,13 @@ function createSqlFamilyInstance(stack) {
|
|
|
1219
1219
|
const contractTarget = contract.target;
|
|
1220
1220
|
await driver.query(ensureSchemaStatement.sql, ensureSchemaStatement.params);
|
|
1221
1221
|
await driver.query(ensureTableStatement.sql, ensureTableStatement.params);
|
|
1222
|
-
const existingMarker = await getControlAdapter().readMarker(driver);
|
|
1222
|
+
const existingMarker = await getControlAdapter().readMarker(driver, APP_SPACE_ID);
|
|
1223
1223
|
let markerCreated = false;
|
|
1224
1224
|
let markerUpdated = false;
|
|
1225
1225
|
let previousHashes;
|
|
1226
1226
|
if (!existingMarker) {
|
|
1227
1227
|
const write = writeContractMarker({
|
|
1228
|
+
space: APP_SPACE_ID,
|
|
1228
1229
|
storageHash: contractStorageHash,
|
|
1229
1230
|
profileHash: contractProfileHash,
|
|
1230
1231
|
contractJson: contractInput,
|
|
@@ -1241,6 +1242,7 @@ function createSqlFamilyInstance(stack) {
|
|
|
1241
1242
|
profileHash: existingProfileHash
|
|
1242
1243
|
};
|
|
1243
1244
|
const write = writeContractMarker({
|
|
1245
|
+
space: APP_SPACE_ID,
|
|
1244
1246
|
storageHash: contractStorageHash,
|
|
1245
1247
|
profileHash: contractProfileHash,
|
|
1246
1248
|
contractJson: contractInput,
|
|
@@ -1279,7 +1281,7 @@ function createSqlFamilyInstance(stack) {
|
|
|
1279
1281
|
};
|
|
1280
1282
|
},
|
|
1281
1283
|
async readMarker(options) {
|
|
1282
|
-
return getControlAdapter().readMarker(options.driver);
|
|
1284
|
+
return getControlAdapter().readMarker(options.driver, options.space);
|
|
1283
1285
|
},
|
|
1284
1286
|
async introspect(options) {
|
|
1285
1287
|
return getControlAdapter().introspect(options.driver, options.contract);
|
|
@@ -1610,6 +1612,7 @@ function freezeOperations(operations) {
|
|
|
1610
1612
|
function createMigrationPlan(options) {
|
|
1611
1613
|
return Object.freeze({
|
|
1612
1614
|
targetId: options.targetId,
|
|
1615
|
+
spaceId: options.spaceId,
|
|
1613
1616
|
...options.origin !== void 0 ? { origin: options.origin ? Object.freeze({ ...options.origin }) : null } : {},
|
|
1614
1617
|
destination: Object.freeze({ ...options.destination }),
|
|
1615
1618
|
operations: freezeOperations(options.operations),
|