@prisma-next/family-sql 0.5.0-dev.67 → 0.5.0-dev.69
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 +8 -0
- package/dist/control-adapter.d.mts.map +1 -1
- package/dist/control.d.mts +26 -2
- package/dist/control.d.mts.map +1 -1
- package/dist/control.mjs +143 -3
- 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-Ds4dJyTI.d.mts → types-CIdiS2QK.d.mts} +117 -3
- package/dist/types-CIdiS2QK.d.mts.map +1 -0
- package/dist/verify-sql-schema-C84vejAP.mjs.map +1 -1
- package/package.json +18 -18
- package/src/core/control-adapter.ts +11 -0
- package/src/core/control-instance.ts +70 -2
- package/src/core/migrations/field-event-planner.ts +196 -0
- package/src/core/migrations/types.ts +117 -1
- package/src/exports/control.ts +7 -0
- package/dist/types-Ds4dJyTI.d.mts.map +0 -1
package/dist/migration.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { A as SqlPlanTargetDetails, v as SqlMigrationPlanOperation } from "./types-CIdiS2QK.mjs";
|
|
2
2
|
import { Migration } from "@prisma-next/migration-tools/migration";
|
|
3
3
|
|
|
4
4
|
//#region src/core/sql-migration.d.ts
|
package/dist/schema-verify.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { i as verifySqlSchema, n as NativeTypeNormalizer, r as VerifySqlSchemaOptions } from "./verify-sql-schema-CPHiuYHR.mjs";
|
|
2
|
-
import { i as ComponentDatabaseDependency } from "./types-
|
|
2
|
+
import { i as ComponentDatabaseDependency } from "./types-CIdiS2QK.mjs";
|
|
3
3
|
import { SchemaIssue, SchemaVerificationNode } from "@prisma-next/framework-components/control";
|
|
4
4
|
import { SqlIndexIR, SqlSchemaIR, SqlUniqueIR } from "@prisma-next/sql-schema-ir/types";
|
|
5
5
|
//#region src/core/schema-verify/verify-helpers.d.ts
|
|
@@ -3,7 +3,7 @@ import { Result } from "@prisma-next/utils/result";
|
|
|
3
3
|
import { Contract } from "@prisma-next/contract/types";
|
|
4
4
|
import { SqlSchemaIR } from "@prisma-next/sql-schema-ir/types";
|
|
5
5
|
import { TargetBoundComponentDescriptor } from "@prisma-next/framework-components/components";
|
|
6
|
-
import { SqlStorage, StorageTypeInstance } from "@prisma-next/sql-contract/types";
|
|
6
|
+
import { SqlStorage, StorageColumn, StorageTable, StorageTypeInstance } from "@prisma-next/sql-contract/types";
|
|
7
7
|
import { TypesImportSpec } from "@prisma-next/framework-components/emission";
|
|
8
8
|
import { PslDocumentAst } from "@prisma-next/framework-components/psl-ast";
|
|
9
9
|
import { SqlOperationDescriptor } from "@prisma-next/sql-operations";
|
|
@@ -43,6 +43,21 @@ interface SqlControlFamilyInstance extends ControlFamilyInstance<'sql', SqlSchem
|
|
|
43
43
|
readonly configPath?: string;
|
|
44
44
|
}): Promise<VerifyDatabaseResult>;
|
|
45
45
|
schemaVerify(options: SchemaVerifyOptions): Promise<VerifyDatabaseSchemaResult>;
|
|
46
|
+
/**
|
|
47
|
+
* Verify a contract against an already-introspected schema slice.
|
|
48
|
+
*
|
|
49
|
+
* Used by the aggregate verifier to invoke per-member verification
|
|
50
|
+
* with the live schema pre-projected to the member's claimed slice
|
|
51
|
+
* via `projectSchemaToSpace`. Closes F23 — without per-member
|
|
52
|
+
* pre-projection, single-contract verifiers see other-space tables
|
|
53
|
+
* as `extras`.
|
|
54
|
+
*/
|
|
55
|
+
schemaVerifyAgainstSchema(options: {
|
|
56
|
+
readonly contract: unknown;
|
|
57
|
+
readonly schema: SqlSchemaIR;
|
|
58
|
+
readonly strict: boolean;
|
|
59
|
+
readonly frameworkComponents: ReadonlyArray<TargetBoundComponentDescriptor<'sql', string>>;
|
|
60
|
+
}): VerifyDatabaseSchemaResult;
|
|
46
61
|
sign(options: {
|
|
47
62
|
readonly driver: ControlDriverInstance<'sql', string>;
|
|
48
63
|
readonly contract: unknown;
|
|
@@ -95,6 +110,39 @@ interface ResolveIdentityValueInput {
|
|
|
95
110
|
readonly codecId?: string;
|
|
96
111
|
readonly typeParams?: Record<string, unknown>;
|
|
97
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Per-field lifecycle event a codec hook can react to.
|
|
115
|
+
*
|
|
116
|
+
* Fired during app-space migration emission as the SQL family diffs the
|
|
117
|
+
* prior contract against the new contract.
|
|
118
|
+
*
|
|
119
|
+
* - `'added'` — the field is present in the new contract but not the prior.
|
|
120
|
+
* - `'dropped'` — the field is present in the prior contract but not the new.
|
|
121
|
+
* - `'altered'` — the field is present in both and any property other than
|
|
122
|
+
* `codecId` differs. Codec-id changes are a v1 non-goal:
|
|
123
|
+
* when only `codecId` differs, no `'altered'` event fires.
|
|
124
|
+
*/
|
|
125
|
+
type FieldEvent = 'added' | 'dropped' | 'altered';
|
|
126
|
+
/**
|
|
127
|
+
* Context passed to {@link CodecControlHooks.onFieldEvent}.
|
|
128
|
+
*
|
|
129
|
+
* `tableName` and `fieldName` are always populated; `priorTable` /
|
|
130
|
+
* `priorField` carry the prior contract's view of the table and column
|
|
131
|
+
* (present for `'dropped'` and `'altered'`); `newTable` / `newField`
|
|
132
|
+
* carry the new contract's view (present for `'added'` and `'altered'`).
|
|
133
|
+
*
|
|
134
|
+
* The hook only ever receives app-space contract IR — extension-space
|
|
135
|
+
* fields are scoped out by the API: the hook is wired at the
|
|
136
|
+
* application emitter only.
|
|
137
|
+
*/
|
|
138
|
+
interface FieldEventContext {
|
|
139
|
+
readonly tableName: string;
|
|
140
|
+
readonly fieldName: string;
|
|
141
|
+
readonly priorTable?: StorageTable;
|
|
142
|
+
readonly newTable?: StorageTable;
|
|
143
|
+
readonly priorField?: StorageColumn;
|
|
144
|
+
readonly newField?: StorageColumn;
|
|
145
|
+
}
|
|
98
146
|
interface CodecControlHooks<TTargetDetails = unknown> {
|
|
99
147
|
planTypeOperations?: (options: {
|
|
100
148
|
readonly typeName: string;
|
|
@@ -135,6 +183,18 @@ interface CodecControlHooks<TTargetDetails = unknown> {
|
|
|
135
183
|
* - undefined: no opinion; planner may use built-in fallbacks
|
|
136
184
|
*/
|
|
137
185
|
resolveIdentityValue?: (input: ResolveIdentityValueInput) => string | null | undefined;
|
|
186
|
+
/**
|
|
187
|
+
* Reacts to per-field added / dropped / altered events as the app-space
|
|
188
|
+
* emitter diffs the prior contract against the new contract. Returned
|
|
189
|
+
* ops are inlined into the app-space migration's `ops.json` alongside
|
|
190
|
+
* the user's structural ops.
|
|
191
|
+
*
|
|
192
|
+
* Synchronous. Each returned op must carry its own `invariantId`. Hooks
|
|
193
|
+
* are dispatched per `(table, field)` based on the field's `codecId`
|
|
194
|
+
* (the new field's codec for `'added'` / `'altered'`; the prior field's
|
|
195
|
+
* codec for `'dropped'`).
|
|
196
|
+
*/
|
|
197
|
+
onFieldEvent?: (event: FieldEvent, ctx: FieldEventContext) => readonly SqlMigrationPlanOperation<TTargetDetails>[];
|
|
138
198
|
}
|
|
139
199
|
interface SqlControlExtensionDescriptor<TTargetId extends string> extends ControlExtensionDescriptor<'sql', TTargetId> {
|
|
140
200
|
readonly databaseDependencies?: ComponentDatabaseDependencies<unknown>;
|
|
@@ -303,6 +363,14 @@ interface SqlMigrationRunnerExecuteCallbacks<TTargetDetails> {
|
|
|
303
363
|
interface SqlMigrationRunnerExecuteOptions<TTargetDetails> {
|
|
304
364
|
readonly plan: SqlMigrationPlan<TTargetDetails>;
|
|
305
365
|
readonly driver: ControlDriverInstance<'sql', string>;
|
|
366
|
+
/**
|
|
367
|
+
* Logical contract space this plan applies to. When omitted the
|
|
368
|
+
* runner derives the space from {@link SqlMigrationPlan.spaceId};
|
|
369
|
+
* when supplied, the runner asserts it matches `plan.spaceId` so a
|
|
370
|
+
* caller cannot accidentally write the marker row for a different
|
|
371
|
+
* space than the plan was produced for.
|
|
372
|
+
*/
|
|
373
|
+
readonly space?: string;
|
|
306
374
|
/**
|
|
307
375
|
* Destination contract IR.
|
|
308
376
|
* Must correspond to `plan.destination` and is used for schema verification and marker/ledger writes.
|
|
@@ -337,8 +405,54 @@ interface SqlMigrationRunnerFailure extends MigrationRunnerFailure {
|
|
|
337
405
|
interface SqlMigrationRunnerSuccessValue extends MigrationRunnerSuccessValue {}
|
|
338
406
|
type SqlMigrationRunnerResult = Result<SqlMigrationRunnerSuccessValue, SqlMigrationRunnerFailure>;
|
|
339
407
|
interface SqlMigrationRunner<TTargetDetails> {
|
|
408
|
+
/**
|
|
409
|
+
* Apply a single migration plan, opening and managing its own
|
|
410
|
+
* transaction (and any target-specific connection-level setup, e.g.
|
|
411
|
+
* SQLite's `PRAGMA foreign_keys` toggle). Existing single-space
|
|
412
|
+
* callers route through here.
|
|
413
|
+
*/
|
|
340
414
|
execute(options: SqlMigrationRunnerExecuteOptions<TTargetDetails>): Promise<SqlMigrationRunnerResult>;
|
|
415
|
+
/**
|
|
416
|
+
* Apply a single migration plan against an already-open connection
|
|
417
|
+
* **without** opening a transaction. The caller is responsible for
|
|
418
|
+
* wrapping the call (and any siblings) in `BEGIN` / `COMMIT` /
|
|
419
|
+
* `ROLLBACK`. Used by the per-space runner wiring to fan out across
|
|
420
|
+
* contract spaces inside one outer transaction so a mid-apply
|
|
421
|
+
* failure rolls back every space's writes.
|
|
422
|
+
*
|
|
423
|
+
* Idempotent control-table setup (`prisma_contract.*`) and marker
|
|
424
|
+
* writes use `options.space` to address the per-space marker row.
|
|
425
|
+
*/
|
|
426
|
+
executeOnConnection(options: SqlMigrationRunnerExecuteOptions<TTargetDetails>): Promise<SqlMigrationRunnerResult>;
|
|
427
|
+
/**
|
|
428
|
+
* Apply per-space plans across multiple contract spaces inside a
|
|
429
|
+
* single outer transaction. The caller orders the input list
|
|
430
|
+
* (typically via the aggregate planner's `applyOrder`: extensions
|
|
431
|
+
* alphabetical, then app); the runner is responsible for opening
|
|
432
|
+
* / committing the outer
|
|
433
|
+
* transaction (and any target-specific connection-level setup such
|
|
434
|
+
* as the SQLite FK pragma toggle). A failure on any space rolls
|
|
435
|
+
* back every space's writes.
|
|
436
|
+
*
|
|
437
|
+
* Each space's `SqlMigrationRunnerExecuteOptions` must reference the
|
|
438
|
+
* same `driver` (the connection the outer transaction is open on).
|
|
439
|
+
* Per-space marker writes use `options.space` to address the row.
|
|
440
|
+
*/
|
|
441
|
+
executeAcrossSpaces(options: {
|
|
442
|
+
readonly driver: ControlDriverInstance<'sql', string>;
|
|
443
|
+
readonly perSpaceOptions: ReadonlyArray<SqlMigrationRunnerExecuteOptions<TTargetDetails>>;
|
|
444
|
+
}): Promise<MultiSpaceRunnerResult>;
|
|
445
|
+
}
|
|
446
|
+
interface MultiSpaceRunnerSuccessValue {
|
|
447
|
+
readonly perSpaceResults: ReadonlyArray<{
|
|
448
|
+
readonly space: string;
|
|
449
|
+
readonly value: SqlMigrationRunnerSuccessValue;
|
|
450
|
+
}>;
|
|
451
|
+
}
|
|
452
|
+
interface MultiSpaceRunnerFailure extends SqlMigrationRunnerFailure {
|
|
453
|
+
readonly failingSpace: string;
|
|
341
454
|
}
|
|
455
|
+
type MultiSpaceRunnerResult = Result<MultiSpaceRunnerSuccessValue, MultiSpaceRunnerFailure>;
|
|
342
456
|
interface SqlControlTargetDescriptor<TTargetId extends string, TTargetDetails> extends MigratableTargetDescriptor<'sql', TTargetId, SqlControlFamilyInstance> {
|
|
343
457
|
readonly queryOperations?: () => ReadonlyArray<SqlOperationDescriptor>;
|
|
344
458
|
createPlanner(family: SqlControlFamilyInstance): SqlMigrationPlanner<TTargetDetails>;
|
|
@@ -362,5 +476,5 @@ interface CreateSqlMigrationPlanOptions<TTargetDetails> {
|
|
|
362
476
|
readonly meta?: AnyRecord;
|
|
363
477
|
}
|
|
364
478
|
//#endregion
|
|
365
|
-
export {
|
|
366
|
-
//# sourceMappingURL=types-
|
|
479
|
+
export { SqlPlanTargetDetails as A, SchemaVerifyOptions as B, SqlMigrationRunner as C, SqlMigrationRunnerFailure as D, SqlMigrationRunnerExecuteOptions as E, SqlPlannerResult as F, SqlPlannerSuccessResult as I, StorageTypePlanResult as L, SqlPlannerConflictKind as M, SqlPlannerConflictLocation as N, SqlMigrationRunnerResult as O, SqlPlannerFailureResult as P, collectInitDependencies as R, SqlMigrationPlannerPlanOptions as S, SqlMigrationRunnerExecuteCallbacks as T, SqlControlFamilyInstance as V, SqlMigrationPlanContractInfo as _, CreateSqlMigrationPlanOptions as a, SqlMigrationPlanOperationTarget as b, FieldEventContext as c, MultiSpaceRunnerSuccessValue as d, ResolveIdentityValueInput as f, SqlMigrationPlan as g, SqlControlTargetDescriptor as h, ComponentDatabaseDependency as i, SqlPlannerConflict as j, SqlMigrationRunnerSuccessValue as k, MultiSpaceRunnerFailure as l, SqlControlExtensionDescriptor as m, CodecControlHooks as n, ExpandNativeTypeInput as o, SqlControlAdapterDescriptor as p, ComponentDatabaseDependencies as r, FieldEvent as s, AnyRecord as t, MultiSpaceRunnerResult as u, SqlMigrationPlanOperation as v, SqlMigrationRunnerErrorCode as w, SqlMigrationPlanner as x, SqlMigrationPlanOperationStep as y, isDatabaseDependencyProvider as z };
|
|
480
|
+
//# sourceMappingURL=types-CIdiS2QK.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-CIdiS2QK.d.mts","names":[],"sources":["../src/core/control-instance.ts","../src/core/migrations/types.ts"],"mappings":"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"}
|