@prisma-next/core-control-plane 0.3.0-pr.99.4 → 0.3.0-pr.99.5
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/config-types-h9ifypQ0.d.mts +79 -0
- package/dist/config-types-h9ifypQ0.d.mts.map +1 -0
- package/dist/config-types.d.mts +2 -0
- package/dist/config-types.mjs +65 -0
- package/dist/config-types.mjs.map +1 -0
- package/dist/config-validation.d.mts +15 -0
- package/dist/config-validation.d.mts.map +1 -0
- package/dist/config-validation.mjs +79 -0
- package/dist/config-validation.mjs.map +1 -0
- package/dist/emission.d.mts +57 -0
- package/dist/emission.d.mts.map +1 -0
- package/dist/emission.mjs +261 -0
- package/dist/emission.mjs.map +1 -0
- package/dist/errors-Qlh0sdcb.mjs +276 -0
- package/dist/errors-Qlh0sdcb.mjs.map +1 -0
- package/dist/errors.d.mts +191 -0
- package/dist/errors.d.mts.map +1 -0
- package/dist/errors.mjs +3 -0
- package/dist/{schema-view.d.ts → schema-view-BG_ebqoV.d.mts} +13 -10
- package/dist/schema-view-BG_ebqoV.d.mts.map +1 -0
- package/dist/schema-view.d.mts +2 -0
- package/dist/schema-view.mjs +1 -0
- package/dist/stack.d.mts +30 -0
- package/dist/stack.d.mts.map +1 -0
- package/dist/stack.mjs +30 -0
- package/dist/stack.mjs.map +1 -0
- package/dist/types-CsaU_uQP.d.mts +595 -0
- package/dist/types-CsaU_uQP.d.mts.map +1 -0
- package/dist/types.d.mts +2 -0
- package/dist/types.mjs +1 -0
- package/package.json +21 -37
- package/dist/chunk-YT6YGR3N.js +0 -240
- package/dist/chunk-YT6YGR3N.js.map +0 -1
- package/dist/config-types.d.ts +0 -79
- package/dist/config-types.d.ts.map +0 -1
- package/dist/config-validation.d.ts +0 -10
- package/dist/config-validation.d.ts.map +0 -1
- package/dist/emission/canonicalization.d.ts +0 -6
- package/dist/emission/canonicalization.d.ts.map +0 -1
- package/dist/emission/emit.d.ts +0 -5
- package/dist/emission/emit.d.ts.map +0 -1
- package/dist/emission/hashing.d.ts +0 -17
- package/dist/emission/hashing.d.ts.map +0 -1
- package/dist/emission/types.d.ts +0 -26
- package/dist/emission/types.d.ts.map +0 -1
- package/dist/errors.d.ts +0 -188
- package/dist/errors.d.ts.map +0 -1
- package/dist/exports/config-types.d.ts +0 -3
- package/dist/exports/config-types.d.ts.map +0 -1
- package/dist/exports/config-types.js +0 -53
- package/dist/exports/config-types.js.map +0 -1
- package/dist/exports/config-validation.d.ts +0 -2
- package/dist/exports/config-validation.d.ts.map +0 -1
- package/dist/exports/config-validation.js +0 -252
- package/dist/exports/config-validation.js.map +0 -1
- package/dist/exports/emission.d.ts +0 -5
- package/dist/exports/emission.d.ts.map +0 -1
- package/dist/exports/emission.js +0 -323
- package/dist/exports/emission.js.map +0 -1
- package/dist/exports/errors.d.ts +0 -3
- package/dist/exports/errors.d.ts.map +0 -1
- package/dist/exports/errors.js +0 -43
- package/dist/exports/errors.js.map +0 -1
- package/dist/exports/schema-view.d.ts +0 -2
- package/dist/exports/schema-view.d.ts.map +0 -1
- package/dist/exports/schema-view.js +0 -1
- package/dist/exports/schema-view.js.map +0 -1
- package/dist/exports/stack.d.ts +0 -2
- package/dist/exports/stack.d.ts.map +0 -1
- package/dist/exports/stack.js +0 -13
- package/dist/exports/stack.js.map +0 -1
- package/dist/exports/types.d.ts +0 -2
- package/dist/exports/types.d.ts.map +0 -1
- package/dist/exports/types.js +0 -1
- package/dist/exports/types.js.map +0 -1
- package/dist/migrations.d.ts +0 -190
- package/dist/migrations.d.ts.map +0 -1
- package/dist/schema-view.d.ts.map +0 -1
- package/dist/stack.d.ts +0 -25
- package/dist/stack.d.ts.map +0 -1
- package/dist/types.d.ts +0 -416
- package/dist/types.d.ts.map +0 -1
package/dist/migrations.d.ts
DELETED
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core migration types for the framework control plane.
|
|
3
|
-
*
|
|
4
|
-
* These are family-agnostic, display-oriented types that provide a stable
|
|
5
|
-
* vocabulary for CLI commands to work with migration planners and runners
|
|
6
|
-
* without importing family-specific types.
|
|
7
|
-
*
|
|
8
|
-
* Family-specific types (e.g., SqlMigrationPlan) extend these base types
|
|
9
|
-
* with additional fields for execution (precheck SQL, execute SQL, etc.).
|
|
10
|
-
*/
|
|
11
|
-
import type { TargetBoundComponentDescriptor } from '@prisma-next/contract/framework-components';
|
|
12
|
-
import type { Result } from '@prisma-next/utils/result';
|
|
13
|
-
import type { ControlDriverInstance, ControlFamilyInstance } from './types';
|
|
14
|
-
/**
|
|
15
|
-
* Migration operation classes define the safety level of an operation.
|
|
16
|
-
* - 'additive': Adds new structures without modifying existing ones (safe)
|
|
17
|
-
* - 'widening': Relaxes constraints or expands types (generally safe)
|
|
18
|
-
* - 'destructive': Removes or alters existing structures (potentially unsafe)
|
|
19
|
-
*/
|
|
20
|
-
export type MigrationOperationClass = 'additive' | 'widening' | 'destructive';
|
|
21
|
-
/**
|
|
22
|
-
* Policy defining which operation classes are allowed during a migration.
|
|
23
|
-
*/
|
|
24
|
-
export interface MigrationOperationPolicy {
|
|
25
|
-
readonly allowedOperationClasses: readonly MigrationOperationClass[];
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* A single migration operation for display purposes.
|
|
29
|
-
* Contains only the fields needed for CLI output (tree view, JSON envelope).
|
|
30
|
-
*/
|
|
31
|
-
export interface MigrationPlanOperation {
|
|
32
|
-
/** Unique identifier for this operation (e.g., "table.users.create"). */
|
|
33
|
-
readonly id: string;
|
|
34
|
-
/** Human-readable label for display in UI/CLI (e.g., "Create table users"). */
|
|
35
|
-
readonly label: string;
|
|
36
|
-
/** The class of operation (additive, widening, destructive). */
|
|
37
|
-
readonly operationClass: MigrationOperationClass;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* A migration plan for display purposes.
|
|
41
|
-
* Contains only the fields needed for CLI output (summary, JSON envelope).
|
|
42
|
-
*/
|
|
43
|
-
export interface MigrationPlan {
|
|
44
|
-
/** The target ID this plan is for (e.g., 'postgres'). */
|
|
45
|
-
readonly targetId: string;
|
|
46
|
-
/** Destination contract identity that the plan intends to reach. */
|
|
47
|
-
readonly destination: {
|
|
48
|
-
readonly coreHash: string;
|
|
49
|
-
readonly profileHash?: string;
|
|
50
|
-
};
|
|
51
|
-
/** Ordered list of operations to execute. */
|
|
52
|
-
readonly operations: readonly MigrationPlanOperation[];
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* A conflict detected during migration planning.
|
|
56
|
-
*/
|
|
57
|
-
export interface MigrationPlannerConflict {
|
|
58
|
-
/** Kind of conflict (e.g., 'typeMismatch', 'nullabilityConflict'). */
|
|
59
|
-
readonly kind: string;
|
|
60
|
-
/** Human-readable summary of the conflict. */
|
|
61
|
-
readonly summary: string;
|
|
62
|
-
/** Optional explanation of why this conflict occurred. */
|
|
63
|
-
readonly why?: string;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Successful planner result with the migration plan.
|
|
67
|
-
*/
|
|
68
|
-
export interface MigrationPlannerSuccessResult {
|
|
69
|
-
readonly kind: 'success';
|
|
70
|
-
readonly plan: MigrationPlan;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Failed planner result with the list of conflicts.
|
|
74
|
-
*/
|
|
75
|
-
export interface MigrationPlannerFailureResult {
|
|
76
|
-
readonly kind: 'failure';
|
|
77
|
-
readonly conflicts: readonly MigrationPlannerConflict[];
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Union type for planner results.
|
|
81
|
-
*/
|
|
82
|
-
export type MigrationPlannerResult = MigrationPlannerSuccessResult | MigrationPlannerFailureResult;
|
|
83
|
-
/**
|
|
84
|
-
* Success value for migration runner execution.
|
|
85
|
-
*/
|
|
86
|
-
export interface MigrationRunnerSuccessValue {
|
|
87
|
-
readonly operationsPlanned: number;
|
|
88
|
-
readonly operationsExecuted: number;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Failure details for migration runner execution.
|
|
92
|
-
*/
|
|
93
|
-
export interface MigrationRunnerFailure {
|
|
94
|
-
/** Error code for the failure. */
|
|
95
|
-
readonly code: string;
|
|
96
|
-
/** Human-readable summary of the failure. */
|
|
97
|
-
readonly summary: string;
|
|
98
|
-
/** Optional explanation of why the failure occurred. */
|
|
99
|
-
readonly why?: string;
|
|
100
|
-
/** Optional metadata for debugging and UX (e.g., schema issues, SQL state). */
|
|
101
|
-
readonly meta?: Record<string, unknown>;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Result type for migration runner execution.
|
|
105
|
-
*/
|
|
106
|
-
export type MigrationRunnerResult = Result<MigrationRunnerSuccessValue, MigrationRunnerFailure>;
|
|
107
|
-
/**
|
|
108
|
-
* Execution-time checks configuration for migration runners.
|
|
109
|
-
* All checks default to `true` (enabled) when omitted.
|
|
110
|
-
*/
|
|
111
|
-
export interface MigrationRunnerExecutionChecks {
|
|
112
|
-
/**
|
|
113
|
-
* Whether to run prechecks before executing operations.
|
|
114
|
-
* Defaults to `true` (prechecks are run).
|
|
115
|
-
*/
|
|
116
|
-
readonly prechecks?: boolean;
|
|
117
|
-
/**
|
|
118
|
-
* Whether to run postchecks after executing operations.
|
|
119
|
-
* Defaults to `true` (postchecks are run).
|
|
120
|
-
*/
|
|
121
|
-
readonly postchecks?: boolean;
|
|
122
|
-
/**
|
|
123
|
-
* Whether to run idempotency probe (check if postcheck is already satisfied before execution).
|
|
124
|
-
* Defaults to `true` (idempotency probe is run).
|
|
125
|
-
*/
|
|
126
|
-
readonly idempotencyChecks?: boolean;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Migration planner interface for planning schema changes.
|
|
130
|
-
* This is the minimal interface that CLI commands use.
|
|
131
|
-
*
|
|
132
|
-
* @template TFamilyId - The family ID (e.g., 'sql', 'document')
|
|
133
|
-
* @template TTargetId - The target ID (e.g., 'postgres', 'mysql')
|
|
134
|
-
*/
|
|
135
|
-
export interface MigrationPlanner<TFamilyId extends string = string, TTargetId extends string = string> {
|
|
136
|
-
plan(options: {
|
|
137
|
-
readonly contract: unknown;
|
|
138
|
-
readonly schema: unknown;
|
|
139
|
-
readonly policy: MigrationOperationPolicy;
|
|
140
|
-
/**
|
|
141
|
-
* Active framework components participating in this composition.
|
|
142
|
-
* Families/targets can interpret this list to derive family-specific metadata.
|
|
143
|
-
* All components must have matching familyId and targetId.
|
|
144
|
-
*/
|
|
145
|
-
readonly frameworkComponents: ReadonlyArray<TargetBoundComponentDescriptor<TFamilyId, TTargetId>>;
|
|
146
|
-
}): MigrationPlannerResult;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Migration runner interface for executing migration plans.
|
|
150
|
-
* This is the minimal interface that CLI commands use.
|
|
151
|
-
*
|
|
152
|
-
* @template TFamilyId - The family ID (e.g., 'sql', 'document')
|
|
153
|
-
* @template TTargetId - The target ID (e.g., 'postgres', 'mysql')
|
|
154
|
-
*/
|
|
155
|
-
export interface MigrationRunner<TFamilyId extends string = string, TTargetId extends string = string> {
|
|
156
|
-
execute(options: {
|
|
157
|
-
readonly plan: MigrationPlan;
|
|
158
|
-
readonly driver: ControlDriverInstance<TFamilyId, TTargetId>;
|
|
159
|
-
readonly destinationContract: unknown;
|
|
160
|
-
readonly policy: MigrationOperationPolicy;
|
|
161
|
-
readonly callbacks?: {
|
|
162
|
-
onOperationStart?(op: MigrationPlanOperation): void;
|
|
163
|
-
onOperationComplete?(op: MigrationPlanOperation): void;
|
|
164
|
-
};
|
|
165
|
-
/**
|
|
166
|
-
* Execution-time checks configuration.
|
|
167
|
-
* All checks default to `true` (enabled) when omitted.
|
|
168
|
-
*/
|
|
169
|
-
readonly executionChecks?: MigrationRunnerExecutionChecks;
|
|
170
|
-
/**
|
|
171
|
-
* Active framework components participating in this composition.
|
|
172
|
-
* Families/targets can interpret this list to derive family-specific metadata.
|
|
173
|
-
* All components must have matching familyId and targetId.
|
|
174
|
-
*/
|
|
175
|
-
readonly frameworkComponents: ReadonlyArray<TargetBoundComponentDescriptor<TFamilyId, TTargetId>>;
|
|
176
|
-
}): Promise<MigrationRunnerResult>;
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Optional capability interface for targets that support migrations.
|
|
180
|
-
* Targets that implement migrations expose this via their descriptor.
|
|
181
|
-
*
|
|
182
|
-
* @template TFamilyId - The family ID (e.g., 'sql', 'document')
|
|
183
|
-
* @template TTargetId - The target ID (e.g., 'postgres', 'mysql')
|
|
184
|
-
* @template TFamilyInstance - The family instance type (e.g., SqlControlFamilyInstance)
|
|
185
|
-
*/
|
|
186
|
-
export interface TargetMigrationsCapability<TFamilyId extends string = string, TTargetId extends string = string, TFamilyInstance extends ControlFamilyInstance<TFamilyId> = ControlFamilyInstance<TFamilyId>> {
|
|
187
|
-
createPlanner(family: TFamilyInstance): MigrationPlanner<TFamilyId, TTargetId>;
|
|
188
|
-
createRunner(family: TFamilyInstance): MigrationRunner<TFamilyId, TTargetId>;
|
|
189
|
-
}
|
|
190
|
-
//# sourceMappingURL=migrations.d.ts.map
|
package/dist/migrations.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-view.d.ts","sourceRoot":"","sources":["../src/schema-view.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AAEH;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,WAAW,GACX,YAAY,GACZ,QAAQ,GACR,OAAO,GACP,OAAO,GACP,WAAW,CAAC;AAEhB;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;CAC/B"}
|
package/dist/stack.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { ControlAdapterDescriptor, ControlDriverDescriptor, ControlExtensionDescriptor, ControlPlaneStack, ControlTargetDescriptor } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Creates a ControlPlaneStack from component descriptors.
|
|
4
|
-
*
|
|
5
|
-
* Provides sensible defaults:
|
|
6
|
-
* - `driver` defaults to `undefined` (optional for commands that don't need DB connection)
|
|
7
|
-
* - `extensionPacks` defaults to `[]` (empty array)
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```ts
|
|
11
|
-
* const stack = createControlPlaneStack({
|
|
12
|
-
* target: postgresTarget,
|
|
13
|
-
* adapter: postgresAdapter,
|
|
14
|
-
* driver: postgresDriver, // optional
|
|
15
|
-
* extensionPacks: [pgvector], // optional
|
|
16
|
-
* });
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
export declare function createControlPlaneStack<TFamilyId extends string, TTargetId extends string>(input: {
|
|
20
|
-
readonly target: ControlTargetDescriptor<TFamilyId, TTargetId>;
|
|
21
|
-
readonly adapter: ControlAdapterDescriptor<TFamilyId, TTargetId>;
|
|
22
|
-
readonly driver?: ControlDriverDescriptor<TFamilyId, TTargetId> | undefined;
|
|
23
|
-
readonly extensionPacks?: readonly ControlExtensionDescriptor<TFamilyId, TTargetId>[] | undefined;
|
|
24
|
-
}): ControlPlaneStack<TFamilyId, TTargetId>;
|
|
25
|
-
//# sourceMappingURL=stack.d.ts.map
|
package/dist/stack.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../src/stack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,SAAS,MAAM,EAAE,SAAS,SAAS,MAAM,EAAE,KAAK,EAAE;IACjG,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,0BAA0B,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC;CACnG,GAAG,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAO1C"}
|
package/dist/types.d.ts
DELETED
|
@@ -1,416 +0,0 @@
|
|
|
1
|
-
import type { AdapterDescriptor, AdapterInstance, DriverDescriptor, DriverInstance, ExtensionDescriptor, ExtensionInstance, FamilyDescriptor, FamilyInstance, TargetBoundComponentDescriptor, TargetDescriptor, TargetInstance } from '@prisma-next/contract/framework-components';
|
|
2
|
-
import type { ContractIR } from '@prisma-next/contract/ir';
|
|
3
|
-
import type { ContractMarkerRecord, TargetFamilyHook } from '@prisma-next/contract/types';
|
|
4
|
-
import type { TargetMigrationsCapability } from './migrations';
|
|
5
|
-
import type { CoreSchemaView } from './schema-view';
|
|
6
|
-
export type { MigrationOperationClass, MigrationOperationPolicy, MigrationPlan, MigrationPlanner, MigrationPlannerConflict, MigrationPlannerFailureResult, MigrationPlannerResult, MigrationPlannerSuccessResult, MigrationPlanOperation, MigrationRunner, MigrationRunnerExecutionChecks, MigrationRunnerFailure, MigrationRunnerResult, MigrationRunnerSuccessValue, TargetMigrationsCapability, } from './migrations';
|
|
7
|
-
/**
|
|
8
|
-
* Control-plane family instance interface.
|
|
9
|
-
* Extends the base FamilyInstance with control-plane domain actions.
|
|
10
|
-
*
|
|
11
|
-
* @template TFamilyId - The family ID (e.g., 'sql', 'document')
|
|
12
|
-
* @template TSchemaIR - The schema IR type returned by introspect() (family-specific)
|
|
13
|
-
*/
|
|
14
|
-
export interface ControlFamilyInstance<TFamilyId extends string, TSchemaIR = unknown> extends FamilyInstance<TFamilyId> {
|
|
15
|
-
/**
|
|
16
|
-
* Validates a contract JSON and returns a validated ContractIR (without mappings).
|
|
17
|
-
* Mappings are runtime-only and should not be part of ContractIR.
|
|
18
|
-
*
|
|
19
|
-
* Note: The returned ContractIR may include additional fields from the emitted contract
|
|
20
|
-
* (like coreHash, profileHash) that are not part of the ContractIR type but are preserved
|
|
21
|
-
* for use by verify/sign operations.
|
|
22
|
-
*/
|
|
23
|
-
validateContractIR(contractJson: unknown): ContractIR;
|
|
24
|
-
/**
|
|
25
|
-
* Verifies the database marker against the contract.
|
|
26
|
-
* Compares target, coreHash, and profileHash.
|
|
27
|
-
*
|
|
28
|
-
* @param options.contractIR - The validated contract (from validateContractIR). Must have
|
|
29
|
-
* coreHash and target fields for verification. These fields are present in emitted
|
|
30
|
-
* contracts but not in the ContractIR type definition.
|
|
31
|
-
*/
|
|
32
|
-
verify(options: {
|
|
33
|
-
readonly driver: ControlDriverInstance<TFamilyId, string>;
|
|
34
|
-
readonly contractIR: unknown;
|
|
35
|
-
readonly expectedTargetId: string;
|
|
36
|
-
readonly contractPath: string;
|
|
37
|
-
readonly configPath?: string;
|
|
38
|
-
}): Promise<VerifyDatabaseResult>;
|
|
39
|
-
/**
|
|
40
|
-
* Verifies the database schema against the contract.
|
|
41
|
-
* Compares contract requirements against live database schema.
|
|
42
|
-
*/
|
|
43
|
-
schemaVerify(options: {
|
|
44
|
-
readonly driver: ControlDriverInstance<TFamilyId, string>;
|
|
45
|
-
readonly contractIR: unknown;
|
|
46
|
-
readonly strict: boolean;
|
|
47
|
-
readonly contractPath: string;
|
|
48
|
-
readonly configPath?: string;
|
|
49
|
-
/**
|
|
50
|
-
* Active framework components participating in this composition.
|
|
51
|
-
* All components must have matching familyId and targetId.
|
|
52
|
-
*/
|
|
53
|
-
readonly frameworkComponents: ReadonlyArray<TargetBoundComponentDescriptor<TFamilyId, string>>;
|
|
54
|
-
}): Promise<VerifyDatabaseSchemaResult>;
|
|
55
|
-
/**
|
|
56
|
-
* Signs the database with the contract marker.
|
|
57
|
-
* Writes or updates the contract marker if schema verification passes.
|
|
58
|
-
* This operation is idempotent - if the marker already matches, no changes are made.
|
|
59
|
-
*/
|
|
60
|
-
sign(options: {
|
|
61
|
-
readonly driver: ControlDriverInstance<TFamilyId, string>;
|
|
62
|
-
readonly contractIR: unknown;
|
|
63
|
-
readonly contractPath: string;
|
|
64
|
-
readonly configPath?: string;
|
|
65
|
-
}): Promise<SignDatabaseResult>;
|
|
66
|
-
/**
|
|
67
|
-
* Reads the contract marker from the database.
|
|
68
|
-
* Returns null if no marker exists.
|
|
69
|
-
*/
|
|
70
|
-
readMarker(options: {
|
|
71
|
-
readonly driver: ControlDriverInstance<TFamilyId, string>;
|
|
72
|
-
}): Promise<ContractMarkerRecord | null>;
|
|
73
|
-
/**
|
|
74
|
-
* Introspects the database schema and returns a family-specific schema IR.
|
|
75
|
-
*
|
|
76
|
-
* This is a read-only operation that returns a snapshot of the live database schema.
|
|
77
|
-
* The method is family-owned and delegates to target/adapter-specific introspectors
|
|
78
|
-
* to perform the actual schema introspection.
|
|
79
|
-
*
|
|
80
|
-
* @param options - Introspection options
|
|
81
|
-
* @param options.driver - Control plane driver for database connection
|
|
82
|
-
* @param options.contractIR - Optional contract for contract-guided introspection.
|
|
83
|
-
* When provided, families may use it for filtering, optimization, or validation
|
|
84
|
-
* during introspection. The contract does not change the meaning of "what exists"
|
|
85
|
-
* in the database - it only guides how introspection is performed.
|
|
86
|
-
* @returns Promise resolving to the family-specific Schema IR (e.g., `SqlSchemaIR` for SQL).
|
|
87
|
-
* The IR represents the complete schema snapshot at the time of introspection.
|
|
88
|
-
*/
|
|
89
|
-
introspect(options: {
|
|
90
|
-
readonly driver: ControlDriverInstance<TFamilyId, string>;
|
|
91
|
-
readonly contractIR?: unknown;
|
|
92
|
-
}): Promise<TSchemaIR>;
|
|
93
|
-
/**
|
|
94
|
-
* Optionally projects a family-specific Schema IR into a core schema view.
|
|
95
|
-
* Families that provide this method enable rich tree output for CLI visualization.
|
|
96
|
-
* Families that do not provide it still support introspection via raw Schema IR.
|
|
97
|
-
*/
|
|
98
|
-
toSchemaView?(schema: TSchemaIR): CoreSchemaView;
|
|
99
|
-
/**
|
|
100
|
-
* Emits contract JSON and DTS as strings.
|
|
101
|
-
* Uses the instance's preassembled state (operation registry, type imports, extension IDs).
|
|
102
|
-
* Handles stripping mappings and validation internally.
|
|
103
|
-
*/
|
|
104
|
-
emitContract(options: {
|
|
105
|
-
readonly contractIR: ContractIR | unknown;
|
|
106
|
-
}): Promise<EmitContractResult>;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Control-plane target instance interface.
|
|
110
|
-
* Extends the base TargetInstance with control-plane specific behavior.
|
|
111
|
-
*
|
|
112
|
-
* @template TFamilyId - The family ID (e.g., 'sql', 'document')
|
|
113
|
-
* @template TTargetId - The target ID (e.g., 'postgres', 'mysql')
|
|
114
|
-
*/
|
|
115
|
-
export interface ControlTargetInstance<TFamilyId extends string, TTargetId extends string> extends TargetInstance<TFamilyId, TTargetId> {
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Control-plane adapter instance interface.
|
|
119
|
-
* Extends the base AdapterInstance with control-plane specific behavior.
|
|
120
|
-
* Families extend this with family-specific adapter interfaces.
|
|
121
|
-
*
|
|
122
|
-
* @template TFamilyId - The family ID (e.g., 'sql', 'document')
|
|
123
|
-
* @template TTargetId - The target ID (e.g., 'postgres', 'mysql')
|
|
124
|
-
*/
|
|
125
|
-
export interface ControlAdapterInstance<TFamilyId extends string, TTargetId extends string> extends AdapterInstance<TFamilyId, TTargetId> {
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Control-plane driver instance interface.
|
|
129
|
-
* Extends the base DriverInstance with control-plane specific behavior.
|
|
130
|
-
*
|
|
131
|
-
* @template TFamilyId - The family ID (e.g., 'sql', 'document')
|
|
132
|
-
* @template TTargetId - The target ID (e.g., 'postgres', 'mysql')
|
|
133
|
-
*/
|
|
134
|
-
export interface ControlDriverInstance<TFamilyId extends string, TTargetId extends string> extends DriverInstance<TFamilyId, TTargetId> {
|
|
135
|
-
query<Row = Record<string, unknown>>(sql: string, params?: readonly unknown[]): Promise<{
|
|
136
|
-
readonly rows: Row[];
|
|
137
|
-
}>;
|
|
138
|
-
close(): Promise<void>;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Control-plane extension instance interface.
|
|
142
|
-
* Extends the base ExtensionInstance with control-plane specific behavior.
|
|
143
|
-
*
|
|
144
|
-
* @template TFamilyId - The family ID (e.g., 'sql', 'document')
|
|
145
|
-
* @template TTargetId - The target ID (e.g., 'postgres', 'mysql')
|
|
146
|
-
*/
|
|
147
|
-
export interface ControlExtensionInstance<TFamilyId extends string, TTargetId extends string> extends ExtensionInstance<TFamilyId, TTargetId> {
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Operation context for propagating metadata through control-plane operation call chains.
|
|
151
|
-
* Inspired by OpenTelemetry's Context and Sentry's Scope patterns.
|
|
152
|
-
*
|
|
153
|
-
* This context carries informational metadata (like file paths) that can be used for
|
|
154
|
-
* error reporting, logging, and debugging, but is not required for structural correctness.
|
|
155
|
-
* It allows subsystems to propagate context without coupling to file I/O concerns.
|
|
156
|
-
*
|
|
157
|
-
* @example
|
|
158
|
-
* ```typescript
|
|
159
|
-
* const context: OperationContext = {
|
|
160
|
-
* contractPath: './contract.json',
|
|
161
|
-
* configPath: './prisma-next.config.ts',
|
|
162
|
-
* };
|
|
163
|
-
*
|
|
164
|
-
* await runner.execute({ plan, driver, destinationContract: contract, context });
|
|
165
|
-
* ```
|
|
166
|
-
*/
|
|
167
|
-
export interface OperationContext {
|
|
168
|
-
/**
|
|
169
|
-
* Path to the contract file (if applicable).
|
|
170
|
-
* Used for error reporting and metadata, not for file I/O.
|
|
171
|
-
*/
|
|
172
|
-
readonly contractPath?: string;
|
|
173
|
-
/**
|
|
174
|
-
* Path to the configuration file (if applicable).
|
|
175
|
-
* Used for error reporting and metadata, not for file I/O.
|
|
176
|
-
*/
|
|
177
|
-
readonly configPath?: string;
|
|
178
|
-
/**
|
|
179
|
-
* Additional metadata that can be propagated through the call chain.
|
|
180
|
-
* Extensible for future needs without breaking changes.
|
|
181
|
-
*/
|
|
182
|
-
readonly meta?: Readonly<Record<string, unknown>>;
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* A bundle of control-plane component descriptors for a specific family and target.
|
|
186
|
-
*
|
|
187
|
-
* This struct groups the target, adapter, driver (optional), and extension packs
|
|
188
|
-
* needed to create a family instance and run CLI commands. Use `createControlPlaneStack()`
|
|
189
|
-
* to construct with sensible defaults.
|
|
190
|
-
*
|
|
191
|
-
* @template TFamilyId - The family ID (e.g., 'sql', 'document')
|
|
192
|
-
* @template TTargetId - The target ID (e.g., 'postgres', 'mysql')
|
|
193
|
-
*/
|
|
194
|
-
export interface ControlPlaneStack<TFamilyId extends string, TTargetId extends string> {
|
|
195
|
-
readonly target: ControlTargetDescriptor<TFamilyId, TTargetId>;
|
|
196
|
-
readonly adapter: ControlAdapterDescriptor<TFamilyId, TTargetId>;
|
|
197
|
-
readonly driver: ControlDriverDescriptor<TFamilyId, TTargetId> | undefined;
|
|
198
|
-
readonly extensionPacks: readonly ControlExtensionDescriptor<TFamilyId, TTargetId>[];
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Descriptor for a control-plane family (e.g., SQL).
|
|
202
|
-
* Provides the family hook and factory method.
|
|
203
|
-
*
|
|
204
|
-
* @template TFamilyId - The family ID (e.g., 'sql', 'document')
|
|
205
|
-
* @template TFamilyInstance - The family instance type
|
|
206
|
-
*/
|
|
207
|
-
export interface ControlFamilyDescriptor<TFamilyId extends string, TFamilyInstance extends ControlFamilyInstance<TFamilyId> = ControlFamilyInstance<TFamilyId>> extends FamilyDescriptor<TFamilyId> {
|
|
208
|
-
readonly hook: TargetFamilyHook;
|
|
209
|
-
create<TTargetId extends string>(stack: ControlPlaneStack<TFamilyId, TTargetId>): TFamilyInstance;
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Descriptor for a control-plane target component (e.g., Postgres target).
|
|
213
|
-
*
|
|
214
|
-
* @template TFamilyId - The family ID (e.g., 'sql', 'document')
|
|
215
|
-
* @template TTargetId - The target ID (e.g., 'postgres', 'mysql')
|
|
216
|
-
* @template TTargetInstance - The target instance type
|
|
217
|
-
* @template TFamilyInstance - The family instance type for migrations (optional)
|
|
218
|
-
*/
|
|
219
|
-
export interface ControlTargetDescriptor<TFamilyId extends string, TTargetId extends string, TTargetInstance extends ControlTargetInstance<TFamilyId, TTargetId> = ControlTargetInstance<TFamilyId, TTargetId>, TFamilyInstance extends ControlFamilyInstance<TFamilyId> = ControlFamilyInstance<TFamilyId>> extends TargetDescriptor<TFamilyId, TTargetId> {
|
|
220
|
-
/**
|
|
221
|
-
* Optional migrations capability.
|
|
222
|
-
* Targets that support migrations expose this property.
|
|
223
|
-
* The capability is parameterized by family and target IDs to ensure type-level
|
|
224
|
-
* compatibility of framework components.
|
|
225
|
-
*/
|
|
226
|
-
readonly migrations?: TargetMigrationsCapability<TFamilyId, TTargetId, TFamilyInstance>;
|
|
227
|
-
create(): TTargetInstance;
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Descriptor for a control-plane adapter component (e.g., Postgres adapter).
|
|
231
|
-
*
|
|
232
|
-
* @template TFamilyId - The family ID (e.g., 'sql', 'document')
|
|
233
|
-
* @template TTargetId - The target ID (e.g., 'postgres', 'mysql')
|
|
234
|
-
* @template TAdapterInstance - The adapter instance type
|
|
235
|
-
*/
|
|
236
|
-
export interface ControlAdapterDescriptor<TFamilyId extends string, TTargetId extends string, TAdapterInstance extends ControlAdapterInstance<TFamilyId, TTargetId> = ControlAdapterInstance<TFamilyId, TTargetId>> extends AdapterDescriptor<TFamilyId, TTargetId> {
|
|
237
|
-
create(): TAdapterInstance;
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* Descriptor for a control-plane driver component (e.g., Postgres driver).
|
|
241
|
-
*
|
|
242
|
-
* The connection input type is driver-specific. For example:
|
|
243
|
-
* - Postgres uses a connection string (URL)
|
|
244
|
-
* - Other drivers may accept structured objects (e.g., file paths, credentials)
|
|
245
|
-
*
|
|
246
|
-
* @template TFamilyId - The family ID (e.g., 'sql', 'document')
|
|
247
|
-
* @template TTargetId - The target ID (e.g., 'postgres', 'mysql')
|
|
248
|
-
* @template TDriverInstance - The driver instance type
|
|
249
|
-
* @template TConnection - The connection input type (defaults to `string` for URL-based drivers)
|
|
250
|
-
*/
|
|
251
|
-
export interface ControlDriverDescriptor<TFamilyId extends string, TTargetId extends string, TDriverInstance extends ControlDriverInstance<TFamilyId, TTargetId> = ControlDriverInstance<TFamilyId, TTargetId>, TConnection = string> extends DriverDescriptor<TFamilyId, TTargetId> {
|
|
252
|
-
create(connection: TConnection): Promise<TDriverInstance>;
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* Descriptor for a control-plane extension component (e.g., pgvector).
|
|
256
|
-
*
|
|
257
|
-
* @template TFamilyId - The family ID (e.g., 'sql', 'document')
|
|
258
|
-
* @template TTargetId - The target ID (e.g., 'postgres', 'mysql')
|
|
259
|
-
* @template TExtensionInstance - The extension instance type
|
|
260
|
-
*/
|
|
261
|
-
export interface ControlExtensionDescriptor<TFamilyId extends string, TTargetId extends string, TExtensionInstance extends ControlExtensionInstance<TFamilyId, TTargetId> = ControlExtensionInstance<TFamilyId, TTargetId>> extends ExtensionDescriptor<TFamilyId, TTargetId> {
|
|
262
|
-
create(): TExtensionInstance;
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* Result type for database marker verification operations.
|
|
266
|
-
*/
|
|
267
|
-
export interface VerifyDatabaseResult {
|
|
268
|
-
readonly ok: boolean;
|
|
269
|
-
readonly code?: string;
|
|
270
|
-
readonly summary: string;
|
|
271
|
-
readonly contract: {
|
|
272
|
-
readonly coreHash: string;
|
|
273
|
-
readonly profileHash?: string;
|
|
274
|
-
};
|
|
275
|
-
readonly marker?: {
|
|
276
|
-
readonly coreHash?: string;
|
|
277
|
-
readonly profileHash?: string;
|
|
278
|
-
};
|
|
279
|
-
readonly target: {
|
|
280
|
-
readonly expected: string;
|
|
281
|
-
readonly actual?: string;
|
|
282
|
-
};
|
|
283
|
-
readonly missingCodecs?: readonly string[];
|
|
284
|
-
readonly codecCoverageSkipped?: boolean;
|
|
285
|
-
readonly meta?: {
|
|
286
|
-
readonly configPath?: string;
|
|
287
|
-
readonly contractPath: string;
|
|
288
|
-
};
|
|
289
|
-
readonly timings: {
|
|
290
|
-
readonly total: number;
|
|
291
|
-
};
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* Schema issue type for schema verification results.
|
|
295
|
-
*/
|
|
296
|
-
export interface SchemaIssue {
|
|
297
|
-
readonly kind: 'missing_table' | 'missing_column' | 'extra_table' | 'extra_column' | 'extra_primary_key' | 'extra_foreign_key' | 'extra_unique_constraint' | 'extra_index' | 'type_mismatch' | 'nullability_mismatch' | 'primary_key_mismatch' | 'foreign_key_mismatch' | 'unique_constraint_mismatch' | 'index_mismatch' | 'extension_missing';
|
|
298
|
-
readonly table: string;
|
|
299
|
-
readonly column?: string;
|
|
300
|
-
readonly indexOrConstraint?: string;
|
|
301
|
-
readonly expected?: string;
|
|
302
|
-
readonly actual?: string;
|
|
303
|
-
readonly message: string;
|
|
304
|
-
}
|
|
305
|
-
/**
|
|
306
|
-
* Contract-shaped verification tree node for schema verification results.
|
|
307
|
-
* Family-agnostic structure that follows the contract structure.
|
|
308
|
-
*/
|
|
309
|
-
export interface SchemaVerificationNode {
|
|
310
|
-
readonly status: 'pass' | 'warn' | 'fail';
|
|
311
|
-
readonly kind: string;
|
|
312
|
-
readonly name: string;
|
|
313
|
-
readonly contractPath: string;
|
|
314
|
-
readonly code: string;
|
|
315
|
-
readonly message: string;
|
|
316
|
-
readonly expected: unknown;
|
|
317
|
-
readonly actual: unknown;
|
|
318
|
-
readonly children: readonly SchemaVerificationNode[];
|
|
319
|
-
}
|
|
320
|
-
/**
|
|
321
|
-
* Result type for database schema verification operations.
|
|
322
|
-
*/
|
|
323
|
-
export interface VerifyDatabaseSchemaResult {
|
|
324
|
-
readonly ok: boolean;
|
|
325
|
-
readonly code?: string;
|
|
326
|
-
readonly summary: string;
|
|
327
|
-
readonly contract: {
|
|
328
|
-
readonly coreHash: string;
|
|
329
|
-
readonly profileHash?: string;
|
|
330
|
-
};
|
|
331
|
-
readonly target: {
|
|
332
|
-
readonly expected: string;
|
|
333
|
-
readonly actual?: string;
|
|
334
|
-
};
|
|
335
|
-
readonly schema: {
|
|
336
|
-
readonly issues: readonly SchemaIssue[];
|
|
337
|
-
readonly root: SchemaVerificationNode;
|
|
338
|
-
readonly counts: {
|
|
339
|
-
readonly pass: number;
|
|
340
|
-
readonly warn: number;
|
|
341
|
-
readonly fail: number;
|
|
342
|
-
readonly totalNodes: number;
|
|
343
|
-
};
|
|
344
|
-
};
|
|
345
|
-
readonly meta?: {
|
|
346
|
-
readonly configPath?: string;
|
|
347
|
-
readonly contractPath?: string;
|
|
348
|
-
readonly strict: boolean;
|
|
349
|
-
};
|
|
350
|
-
readonly timings: {
|
|
351
|
-
readonly total: number;
|
|
352
|
-
};
|
|
353
|
-
}
|
|
354
|
-
/**
|
|
355
|
-
* Result type for contract emission operations.
|
|
356
|
-
*/
|
|
357
|
-
export interface EmitContractResult {
|
|
358
|
-
readonly contractJson: string;
|
|
359
|
-
readonly contractDts: string;
|
|
360
|
-
readonly coreHash: string;
|
|
361
|
-
readonly profileHash: string;
|
|
362
|
-
}
|
|
363
|
-
/**
|
|
364
|
-
* Result envelope for schema introspection operations.
|
|
365
|
-
* Used by CLI for JSON output when introspecting database schemas.
|
|
366
|
-
*
|
|
367
|
-
* @template TSchemaIR - The family-specific Schema IR type (e.g., `SqlSchemaIR` for SQL)
|
|
368
|
-
*/
|
|
369
|
-
export interface IntrospectSchemaResult<TSchemaIR> {
|
|
370
|
-
readonly ok: true;
|
|
371
|
-
readonly summary: string;
|
|
372
|
-
readonly target: {
|
|
373
|
-
readonly familyId: string;
|
|
374
|
-
readonly id: string;
|
|
375
|
-
};
|
|
376
|
-
readonly schema: TSchemaIR;
|
|
377
|
-
readonly meta?: {
|
|
378
|
-
readonly configPath?: string;
|
|
379
|
-
readonly dbUrl?: string;
|
|
380
|
-
};
|
|
381
|
-
readonly timings: {
|
|
382
|
-
readonly total: number;
|
|
383
|
-
};
|
|
384
|
-
}
|
|
385
|
-
/**
|
|
386
|
-
* Result type for database signing operations.
|
|
387
|
-
* Returned when writing or updating the contract marker in the database.
|
|
388
|
-
*/
|
|
389
|
-
export interface SignDatabaseResult {
|
|
390
|
-
readonly ok: boolean;
|
|
391
|
-
readonly summary: string;
|
|
392
|
-
readonly contract: {
|
|
393
|
-
readonly coreHash: string;
|
|
394
|
-
readonly profileHash?: string;
|
|
395
|
-
};
|
|
396
|
-
readonly target: {
|
|
397
|
-
readonly expected: string;
|
|
398
|
-
readonly actual?: string;
|
|
399
|
-
};
|
|
400
|
-
readonly marker: {
|
|
401
|
-
readonly created: boolean;
|
|
402
|
-
readonly updated: boolean;
|
|
403
|
-
readonly previous?: {
|
|
404
|
-
readonly coreHash?: string;
|
|
405
|
-
readonly profileHash?: string;
|
|
406
|
-
};
|
|
407
|
-
};
|
|
408
|
-
readonly meta?: {
|
|
409
|
-
readonly configPath?: string;
|
|
410
|
-
readonly contractPath: string;
|
|
411
|
-
};
|
|
412
|
-
readonly timings: {
|
|
413
|
-
readonly total: number;
|
|
414
|
-
};
|
|
415
|
-
}
|
|
416
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|