@prisma-next/framework-components 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.
@@ -1 +1 @@
1
- {"version":3,"file":"codec-BUBJeOk4.d.mts","names":[],"sources":["../src/shared/codec-types.ts","../src/shared/codec-descriptor.ts","../src/shared/codec.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"codec-BUBJeOk4.d.mts","names":[],"sources":["../src/shared/codec-types.ts","../src/shared/codec-descriptor.ts","../src/shared/codec.ts"],"sourcesContent":[],"mappings":"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"}
@@ -179,8 +179,27 @@ interface ControlFamilyInstance<TFamilyId extends string, TSchemaIR> extends Fam
179
179
  readonly contractPath: string;
180
180
  readonly configPath?: string;
181
181
  }): Promise<SignDatabaseResult>;
182
+ /**
183
+ * Reads the contract marker for `space` from the database, returning
184
+ * `null` if no marker row exists for that space (or if the marker
185
+ * table itself is missing).
186
+ *
187
+ * `space` is required at every call site so the type system surfaces
188
+ * every place that needs to thread the value: callers in single-app
189
+ * paths pass {@link import('./control-spaces').APP_SPACE_ID}
190
+ * (`'app'`); per-extension callers pass the extension's space id.
191
+ * Defaulting at the family-interface level was a silent bug door —
192
+ * it let multi-space-aware callers forget to pass `space` and
193
+ * collapse onto the app's marker row.
194
+ *
195
+ * Families whose underlying storage doesn't yet support per-space
196
+ * markers (Mongo, today) accept `space` for interface conformance and
197
+ * reject any non-`APP_SPACE_ID` value rather than silently ignoring
198
+ * it; see the family-specific implementation for details.
199
+ */
182
200
  readMarker(options: {
183
201
  readonly driver: ControlDriverInstance<TFamilyId, string>;
202
+ readonly space: string;
184
203
  }): Promise<ContractMarkerRecord | null>;
185
204
  introspect(options: {
186
205
  readonly driver: ControlDriverInstance<TFamilyId, string>;
@@ -283,6 +302,61 @@ interface ControlExtensionDescriptor<TFamilyId extends string, TTargetId extends
283
302
  }
284
303
  //#endregion
285
304
  //#region src/control/control-migration-types.d.ts
305
+ /**
306
+ * Planner provenance recorded inside {@link MigrationMetadata}.
307
+ *
308
+ * `used` / `applied` track which migration hints the planner consulted
309
+ * vs. which it actually applied during emission; `plannerVersion`
310
+ * pins the planner build that produced the migration so future
311
+ * verification passes can recognise plans authored against an older
312
+ * planner.
313
+ */
314
+ interface MigrationHints {
315
+ readonly used: readonly string[];
316
+ readonly applied: readonly string[];
317
+ readonly plannerVersion: string;
318
+ }
319
+ /**
320
+ * In-memory migration metadata envelope. Every migration is
321
+ * content-addressed: the `migrationHash` is a hash over the metadata
322
+ * envelope plus the operations list, computed at write time. There is no
323
+ * draft state — a migration directory either exists with fully attested
324
+ * metadata or it does not.
325
+ *
326
+ * When the planner cannot lower an operation because of an unfilled
327
+ * `placeholder(...)` slot, the migration is still written with
328
+ * `migrationHash` hashed over `ops: []`. Re-running self-emit after the
329
+ * user fills the placeholder produces a *different* `migrationHash`
330
+ * (committed to the real ops); this is intentional.
331
+ *
332
+ * The on-disk JSON shape in `migration.json` matches this type
333
+ * field-for-field — `JSON.stringify(metadata, null, 2)` is the canonical
334
+ * writer output (defined in `@prisma-next/migration-tools/io`).
335
+ */
336
+ interface MigrationMetadata {
337
+ readonly migrationHash: string;
338
+ readonly from: string | null;
339
+ readonly to: string;
340
+ readonly fromContract: Contract | null;
341
+ readonly toContract: Contract;
342
+ readonly hints: MigrationHints;
343
+ readonly labels: readonly string[];
344
+ /**
345
+ * Sorted, deduplicated list of `invariantId`s declared by the
346
+ * migration's data-transform ops. Always present; an empty array
347
+ * means the migration has no routing-visible data transforms.
348
+ */
349
+ readonly providedInvariants: readonly string[];
350
+ readonly authorship?: {
351
+ readonly author?: string;
352
+ readonly email?: string;
353
+ };
354
+ readonly signature?: {
355
+ readonly keyId: string;
356
+ readonly value: string;
357
+ } | null;
358
+ readonly createdAt: string;
359
+ }
286
360
  /**
287
361
  * Migration operation classes define the safety level of an operation.
288
362
  * - 'additive': Adds new structures without modifying existing ones (safe)
@@ -511,6 +585,13 @@ interface MigrationPlanner<TFamilyId extends string = string, TTargetId extends
511
585
  * All components must have matching familyId and targetId.
512
586
  */
513
587
  readonly frameworkComponents: ReadonlyArray<TargetBoundComponentDescriptor<TFamilyId, TTargetId>>;
588
+ /**
589
+ * Contract space this plan applies to. Stamped onto the produced
590
+ * plan so the runner keys the marker row by the right space when
591
+ * executing. App-plan callers pass `APP_SPACE_ID` (`'app'`);
592
+ * per-extension callers pass the extension's space id.
593
+ */
594
+ readonly spaceId: string;
514
595
  }): MigrationPlannerResult;
515
596
  /**
516
597
  * Produce an empty migration with the target's authoring conventions.
@@ -518,8 +599,12 @@ interface MigrationPlanner<TFamilyId extends string = string, TTargetId extends
518
599
  * Used by `migration new` to scaffold a fresh `migration.ts`. The
519
600
  * returned plan has no operations; its `renderTypeScript()` yields a
520
601
  * stub the user can edit.
602
+ *
603
+ * `spaceId` is stamped onto the produced plan; reconciliation flows
604
+ * (`db init`, `db update`) and authoring flows (`migration new`) all
605
+ * pass it explicitly.
521
606
  */
522
- emptyMigration(context: MigrationScaffoldContext): MigrationPlanWithAuthoringSurface;
607
+ emptyMigration(context: MigrationScaffoldContext, spaceId: string): MigrationPlanWithAuthoringSurface;
523
608
  }
524
609
  /**
525
610
  * Migration runner interface for executing migration plans.
@@ -698,5 +783,83 @@ interface OperationPreviewCapable {
698
783
  }
699
784
  declare function hasOperationPreview<TFamilyId extends string, TSchemaIR>(instance: ControlFamilyInstance<TFamilyId, TSchemaIR>): instance is ControlFamilyInstance<TFamilyId, TSchemaIR> & OperationPreviewCapable;
700
785
  //#endregion
701
- export { type AssembledAuthoringContributions, type BaseSchemaIssue, type ControlAdapterDescriptor, type ControlAdapterInstance, type ControlDriverDescriptor, type ControlDriverInstance, type ControlExtensionDescriptor, type ControlExtensionInstance, type ControlFamilyDescriptor, type ControlFamilyInstance, type ControlMutationDefaultEntry, type ControlMutationDefaultRegistry, type ControlMutationDefaults, type ControlStack, type ControlTargetDescriptor, type ControlTargetInstance, type CoreSchemaView, type CreateControlStackInput, type DefaultFunctionLoweringContext, type DefaultFunctionLoweringHandler, type DefaultFunctionRegistry, type DefaultFunctionRegistryEntry, type EmitContractResult, type EnumValuesChangedIssue, type IntrospectSchemaResult, type LoweredDefaultResult, type LoweredDefaultValue, type MigratableTargetDescriptor, type MigrationOperationClass, type MigrationOperationPolicy, type MigrationPlan, type MigrationPlanOperation, type MigrationPlanWithAuthoringSurface, type MigrationPlanner, type MigrationPlannerConflict, type MigrationPlannerFailureResult, type MigrationPlannerResult, type MigrationPlannerSuccessResult, type MigrationRunner, type MigrationRunnerExecutionChecks, type MigrationRunnerFailure, type MigrationRunnerResult, type MigrationRunnerSuccessValue, type MigrationScaffoldContext, type MutationDefaultGeneratorDescriptor, type OpFactoryCall, type OperationContext, type OperationPreview, type OperationPreviewCapable, type OperationPreviewStatement, type ParsedDefaultFunctionCall, type PslContractInferCapable, type SchemaIssue, type SchemaNodeKind, SchemaTreeNode, type SchemaTreeNodeOptions, type SchemaTreeVisitor, type SchemaVerificationNode, type SchemaViewCapable, type SerializedQueryPlan, type SignDatabaseResult, type SourceDiagnostic, type SourceSpan, type TargetMigrationsCapability, VERIFY_CODE_HASH_MISMATCH, VERIFY_CODE_MARKER_MISSING, VERIFY_CODE_SCHEMA_FAILURE, VERIFY_CODE_TARGET_MISMATCH, type VerifyDatabaseResult, type VerifyDatabaseSchemaResult, assembleAuthoringContributions, assembleControlMutationDefaults, assembleScalarTypeDescriptors, assertUniqueCodecOwner, createControlStack, extractCodecLookup, extractCodecTypeImports, extractComponentIds, extractOperationTypeImports, extractQueryOperationTypeImports, hasMigrations, hasOperationPreview, hasPslContractInfer, hasSchemaView };
786
+ //#region src/control/control-spaces.d.ts
787
+ /**
788
+ * Canonical control-plane identifiers for contract spaces.
789
+ *
790
+ * A contract space is the disjoint `(contract.json, migration-graph)` unit
791
+ * the per-space planner / runner / verifier (project: extension contract
792
+ * spaces, TML-2397) operates on. The application owns one well-known
793
+ * space — the value below — and each loaded extension that contributes
794
+ * schema owns a uniquely-named space.
795
+ *
796
+ * Lives in `framework-components/control` so every layer that has to
797
+ * reason about space identity (the migration tooling, the SQL runtime's
798
+ * marker reader, target-side statement builders, target-side adapters)
799
+ * can import a single value rather than duplicating the literal. Raw
800
+ * `'app'` string literals in framework / target / runtime / adapter
801
+ * source code are forbidden and policed by
802
+ * `scripts/lint-app-space-id.mjs` (wired into `pnpm lint:deps`).
803
+ *
804
+ * @see specs/framework-mechanism.spec.md § 3 — Layout convention (γ).
805
+ */
806
+ declare const APP_SPACE_ID: "app";
807
+ /**
808
+ * Pinned head ref for a contract space — the `(hash, invariants)` tuple
809
+ * a runner targets when applying that space's migration graph. Identical
810
+ * in shape to the on-disk `migrations/<space-id>/refs/head.json` the
811
+ * framework writes per loaded extension, and to the app-space
812
+ * `<projectRoot>/refs/head.json`. Family-agnostic: SQL, Mongo, and any
813
+ * future family share the same head-ref shape.
814
+ *
815
+ * @see specs/framework-mechanism.spec.md § 1.
816
+ */
817
+ interface ContractSpaceHeadRef {
818
+ readonly hash: string;
819
+ readonly invariants: readonly string[];
820
+ }
821
+ /**
822
+ * Canonical structural shape of a migration package — the unit a planner
823
+ * produces and a runner consumes: a directory name, the ADR 197 metadata
824
+ * envelope (which carries the `toContract` snapshot), and the operation
825
+ * list.
826
+ *
827
+ * In-memory by default. Readers in `@prisma-next/migration-tools`
828
+ * (`readMigrationPackage` / `readMigrationsDir`) return the augmented
829
+ * {@link import('@prisma-next/migration-tools/package').OnDiskMigrationPackage}
830
+ * variant which adds `dirPath`; everything else operates against the
831
+ * canonical shape so the same value flows through pre-emission
832
+ * authoring, on-disk loading, and runner execution without conversion.
833
+ *
834
+ * @see specs/framework-mechanism.spec.md § 1.
835
+ */
836
+ interface MigrationPackage {
837
+ readonly dirName: string;
838
+ readonly metadata: MigrationMetadata;
839
+ readonly ops: readonly MigrationPlanOperation[];
840
+ }
841
+ /**
842
+ * Canonical structural shape of a contract space — one disjoint
843
+ * `(contractJson, migration-graph)` unit the per-space planner / runner
844
+ * / verifier operates on. The application owns one well-known space
845
+ * ({@link APP_SPACE_ID}); each loaded extension that contributes schema
846
+ * owns a uniquely-named space. Whether a value is the app's space or an
847
+ * extension's space is a control-plane concern; the type carries no
848
+ * such distinction.
849
+ *
850
+ * Generic over the contract so each family pins a typed contract value
851
+ * at consumption time. The SQL family specialises to
852
+ * `ContractSpace<Contract<SqlStorage>>` at the descriptor surface;
853
+ * Mongo's symmetrical `ContractSpace<Contract<MongoStorage>>` will land
854
+ * with that family.
855
+ *
856
+ * @see specs/framework-mechanism.spec.md § 1.
857
+ */
858
+ interface ContractSpace<TContract extends Contract = Contract> {
859
+ readonly contractJson: TContract;
860
+ readonly migrations: readonly MigrationPackage[];
861
+ readonly headRef: ContractSpaceHeadRef;
862
+ }
863
+ //#endregion
864
+ export { APP_SPACE_ID, type AssembledAuthoringContributions, type BaseSchemaIssue, type ContractSpace, type ContractSpaceHeadRef, type ControlAdapterDescriptor, type ControlAdapterInstance, type ControlDriverDescriptor, type ControlDriverInstance, type ControlExtensionDescriptor, type ControlExtensionInstance, type ControlFamilyDescriptor, type ControlFamilyInstance, type ControlMutationDefaultEntry, type ControlMutationDefaultRegistry, type ControlMutationDefaults, type ControlStack, type ControlTargetDescriptor, type ControlTargetInstance, type CoreSchemaView, type CreateControlStackInput, type DefaultFunctionLoweringContext, type DefaultFunctionLoweringHandler, type DefaultFunctionRegistry, type DefaultFunctionRegistryEntry, type EmitContractResult, type EnumValuesChangedIssue, type IntrospectSchemaResult, type LoweredDefaultResult, type LoweredDefaultValue, type MigratableTargetDescriptor, type MigrationHints, type MigrationMetadata, type MigrationOperationClass, type MigrationOperationPolicy, type MigrationPackage, type MigrationPlan, type MigrationPlanOperation, type MigrationPlanWithAuthoringSurface, type MigrationPlanner, type MigrationPlannerConflict, type MigrationPlannerFailureResult, type MigrationPlannerResult, type MigrationPlannerSuccessResult, type MigrationRunner, type MigrationRunnerExecutionChecks, type MigrationRunnerFailure, type MigrationRunnerResult, type MigrationRunnerSuccessValue, type MigrationScaffoldContext, type MutationDefaultGeneratorDescriptor, type OpFactoryCall, type OperationContext, type OperationPreview, type OperationPreviewCapable, type OperationPreviewStatement, type ParsedDefaultFunctionCall, type PslContractInferCapable, type SchemaIssue, type SchemaNodeKind, SchemaTreeNode, type SchemaTreeNodeOptions, type SchemaTreeVisitor, type SchemaVerificationNode, type SchemaViewCapable, type SerializedQueryPlan, type SignDatabaseResult, type SourceDiagnostic, type SourceSpan, type TargetMigrationsCapability, VERIFY_CODE_HASH_MISMATCH, VERIFY_CODE_MARKER_MISSING, VERIFY_CODE_SCHEMA_FAILURE, VERIFY_CODE_TARGET_MISMATCH, type VerifyDatabaseResult, type VerifyDatabaseSchemaResult, assembleAuthoringContributions, assembleControlMutationDefaults, assembleScalarTypeDescriptors, assertUniqueCodecOwner, createControlStack, extractCodecLookup, extractCodecTypeImports, extractComponentIds, extractOperationTypeImports, extractQueryOperationTypeImports, hasMigrations, hasOperationPreview, hasPslContractInfer, hasSchemaView };
702
865
  //# sourceMappingURL=control.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"control.d.mts","names":[],"sources":["../src/control/control-result-types.ts","../src/control/control-instances.ts","../src/control/control-stack.ts","../src/control/control-descriptors.ts","../src/control/control-migration-types.ts","../src/control/control-operation-preview.ts","../src/control/control-schema-view.ts","../src/control/control-capabilities.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"control.d.mts","names":[],"sources":["../src/control/control-result-types.ts","../src/control/control-instances.ts","../src/control/control-stack.ts","../src/control/control-descriptors.ts","../src/control/control-migration-types.ts","../src/control/control-operation-preview.ts","../src/control/control-schema-view.ts","../src/control/control-capabilities.ts","../src/control/control-spaces.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/control.mjs CHANGED
@@ -42,6 +42,29 @@ var SchemaTreeNode = class {
42
42
  }
43
43
  };
44
44
 
45
+ //#endregion
46
+ //#region src/control/control-spaces.ts
47
+ /**
48
+ * Canonical control-plane identifiers for contract spaces.
49
+ *
50
+ * A contract space is the disjoint `(contract.json, migration-graph)` unit
51
+ * the per-space planner / runner / verifier (project: extension contract
52
+ * spaces, TML-2397) operates on. The application owns one well-known
53
+ * space — the value below — and each loaded extension that contributes
54
+ * schema owns a uniquely-named space.
55
+ *
56
+ * Lives in `framework-components/control` so every layer that has to
57
+ * reason about space identity (the migration tooling, the SQL runtime's
58
+ * marker reader, target-side statement builders, target-side adapters)
59
+ * can import a single value rather than duplicating the literal. Raw
60
+ * `'app'` string literals in framework / target / runtime / adapter
61
+ * source code are forbidden and policed by
62
+ * `scripts/lint-app-space-id.mjs` (wired into `pnpm lint:deps`).
63
+ *
64
+ * @see specs/framework-mechanism.spec.md § 3 — Layout convention (γ).
65
+ */
66
+ const APP_SPACE_ID = "app";
67
+
45
68
  //#endregion
46
69
  //#region src/control/control-stack.ts
47
70
  function addUniqueId(ids, seen, id) {
@@ -213,5 +236,5 @@ function createControlStack(input) {
213
236
  }
214
237
 
215
238
  //#endregion
216
- export { SchemaTreeNode, VERIFY_CODE_HASH_MISMATCH, VERIFY_CODE_MARKER_MISSING, VERIFY_CODE_SCHEMA_FAILURE, VERIFY_CODE_TARGET_MISMATCH, assembleAuthoringContributions, assembleControlMutationDefaults, assembleScalarTypeDescriptors, assertUniqueCodecOwner, createControlStack, extractCodecLookup, extractCodecTypeImports, extractComponentIds, extractOperationTypeImports, extractQueryOperationTypeImports, hasMigrations, hasOperationPreview, hasPslContractInfer, hasSchemaView };
239
+ export { APP_SPACE_ID, SchemaTreeNode, VERIFY_CODE_HASH_MISMATCH, VERIFY_CODE_MARKER_MISSING, VERIFY_CODE_SCHEMA_FAILURE, VERIFY_CODE_TARGET_MISMATCH, assembleAuthoringContributions, assembleControlMutationDefaults, assembleScalarTypeDescriptors, assertUniqueCodecOwner, createControlStack, extractCodecLookup, extractCodecTypeImports, extractComponentIds, extractOperationTypeImports, extractQueryOperationTypeImports, hasMigrations, hasOperationPreview, hasPslContractInfer, hasSchemaView };
217
240
  //# sourceMappingURL=control.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"control.mjs","names":["imports: TypesImportSpec[]","ids: string[]"],"sources":["../src/control/control-capabilities.ts","../src/control/control-result-types.ts","../src/control/control-schema-view.ts","../src/control/control-stack.ts"],"sourcesContent":["import type { ControlTargetDescriptor } from './control-descriptors';\nimport type { ControlFamilyInstance } from './control-instances';\nimport type { MigrationPlanOperation, TargetMigrationsCapability } from './control-migration-types';\nimport type { OperationPreview } from './control-operation-preview';\nimport type { CoreSchemaView } from './control-schema-view';\nimport type { PslDocumentAst } from './psl-ast';\n\nexport interface MigratableTargetDescriptor<\n TFamilyId extends string,\n TTargetId extends string,\n TFamilyInstance extends ControlFamilyInstance<TFamilyId, unknown> = ControlFamilyInstance<\n TFamilyId,\n unknown\n >,\n> extends ControlTargetDescriptor<TFamilyId, TTargetId> {\n readonly migrations: TargetMigrationsCapability<TFamilyId, TTargetId, TFamilyInstance>;\n}\n\nexport function hasMigrations<TFamilyId extends string, TTargetId extends string>(\n target: ControlTargetDescriptor<TFamilyId, TTargetId>,\n): target is MigratableTargetDescriptor<TFamilyId, TTargetId> {\n return 'migrations' in target && !!(target as Record<string, unknown>)['migrations'];\n}\n\nexport interface SchemaViewCapable<TSchemaIR = unknown> {\n toSchemaView(schema: TSchemaIR): CoreSchemaView;\n}\n\nexport function hasSchemaView<TFamilyId extends string, TSchemaIR>(\n instance: ControlFamilyInstance<TFamilyId, TSchemaIR>,\n): instance is ControlFamilyInstance<TFamilyId, TSchemaIR> & SchemaViewCapable<TSchemaIR> {\n return (\n 'toSchemaView' in instance &&\n typeof (instance as Record<string, unknown>)['toSchemaView'] === 'function'\n );\n}\n\n/**\n * Capability declaring that a family can infer a PSL contract AST from its\n * opaque introspected schema IR. Consumed by `prisma-next contract infer`.\n */\nexport interface PslContractInferCapable<TSchemaIR = unknown> {\n inferPslContract(schemaIR: TSchemaIR): PslDocumentAst;\n}\n\nexport function hasPslContractInfer<TFamilyId extends string, TSchemaIR>(\n instance: ControlFamilyInstance<TFamilyId, TSchemaIR>,\n): instance is ControlFamilyInstance<TFamilyId, TSchemaIR> & PslContractInferCapable<TSchemaIR> {\n return (\n 'inferPslContract' in instance &&\n typeof (instance as Record<string, unknown>)['inferPslContract'] === 'function'\n );\n}\n\n/**\n * Capability declaring that a family can render a textual preview of migration\n * operations for the CLI's \"DDL preview\" output. SQL families emit\n * `language: 'sql'` statements; Mongo families emit `language: 'mongodb-shell'`.\n */\nexport interface OperationPreviewCapable {\n toOperationPreview(operations: readonly MigrationPlanOperation[]): OperationPreview;\n}\n\nexport function hasOperationPreview<TFamilyId extends string, TSchemaIR>(\n instance: ControlFamilyInstance<TFamilyId, TSchemaIR>,\n): instance is ControlFamilyInstance<TFamilyId, TSchemaIR> & OperationPreviewCapable {\n return (\n 'toOperationPreview' in instance &&\n typeof (instance as Record<string, unknown>)['toOperationPreview'] === 'function'\n );\n}\n","export const VERIFY_CODE_MARKER_MISSING = 'PN-RUN-3001';\nexport const VERIFY_CODE_HASH_MISMATCH = 'PN-RUN-3002';\nexport const VERIFY_CODE_TARGET_MISMATCH = 'PN-RUN-3003';\nexport const VERIFY_CODE_SCHEMA_FAILURE = 'PN-RUN-3010';\n\nexport interface OperationContext {\n readonly contractPath?: string;\n readonly configPath?: string;\n readonly meta?: Readonly<Record<string, unknown>>;\n}\n\nexport interface VerifyDatabaseResult {\n readonly ok: boolean;\n readonly code?: string;\n readonly summary: string;\n readonly contract: {\n readonly storageHash: string;\n readonly profileHash?: string;\n };\n readonly marker?: {\n readonly storageHash?: string;\n readonly profileHash?: string;\n };\n readonly target: {\n readonly expected: string;\n readonly actual?: string;\n };\n readonly missingCodecs?: readonly string[];\n readonly codecCoverageSkipped?: boolean;\n readonly meta?: {\n readonly configPath?: string;\n readonly contractPath: string;\n };\n readonly timings: {\n readonly total: number;\n };\n}\n\nexport interface BaseSchemaIssue {\n readonly kind:\n | 'missing_table'\n | 'missing_column'\n | 'extra_table'\n | 'extra_column'\n | 'extra_primary_key'\n | 'extra_foreign_key'\n | 'extra_unique_constraint'\n | 'extra_index'\n | 'extra_validator'\n | 'type_mismatch'\n | 'type_missing'\n | 'type_values_mismatch'\n | 'nullability_mismatch'\n | 'primary_key_mismatch'\n | 'foreign_key_mismatch'\n | 'unique_constraint_mismatch'\n | 'index_mismatch'\n | 'dependency_missing'\n | 'default_missing'\n | 'default_mismatch'\n | 'extra_default';\n readonly table?: string;\n readonly column?: string;\n readonly indexOrConstraint?: string;\n readonly typeName?: string;\n readonly dependencyId?: string;\n readonly expected?: string;\n readonly actual?: string;\n readonly message: string;\n}\n\nexport interface EnumValuesChangedIssue {\n readonly kind: 'enum_values_changed';\n readonly typeName: string;\n readonly addedValues: readonly string[];\n readonly removedValues: readonly string[];\n readonly message: string;\n}\n\nexport type SchemaIssue = BaseSchemaIssue | EnumValuesChangedIssue;\n\nexport interface SchemaVerificationNode {\n readonly status: 'pass' | 'warn' | 'fail';\n readonly kind: string;\n readonly name: string;\n readonly contractPath: string;\n readonly code: string;\n readonly message: string;\n readonly expected: unknown;\n readonly actual: unknown;\n readonly children: readonly SchemaVerificationNode[];\n}\n\nexport interface VerifyDatabaseSchemaResult {\n readonly ok: boolean;\n readonly code?: string;\n readonly summary: string;\n readonly contract: {\n readonly storageHash: string;\n readonly profileHash?: string;\n };\n readonly target: {\n readonly expected: string;\n readonly actual?: string;\n };\n readonly schema: {\n readonly issues: readonly SchemaIssue[];\n readonly root: SchemaVerificationNode;\n readonly counts: {\n readonly pass: number;\n readonly warn: number;\n readonly fail: number;\n readonly totalNodes: number;\n };\n };\n readonly meta?: {\n readonly configPath?: string;\n readonly contractPath?: string;\n readonly strict: boolean;\n };\n readonly timings: {\n readonly total: number;\n };\n}\n\nexport interface EmitContractResult {\n readonly contractJson: string;\n readonly contractDts: string;\n readonly storageHash: string;\n readonly executionHash?: string;\n readonly profileHash: string;\n}\n\nexport interface IntrospectSchemaResult<TSchemaIR> {\n readonly ok: true;\n readonly summary: string;\n readonly target: {\n readonly familyId: string;\n readonly id: string;\n };\n readonly schema: TSchemaIR;\n readonly meta?: {\n readonly configPath?: string;\n readonly dbUrl?: string;\n };\n readonly timings: {\n readonly total: number;\n };\n}\n\nexport interface SignDatabaseResult {\n readonly ok: boolean;\n readonly summary: string;\n readonly contract: {\n readonly storageHash: string;\n readonly profileHash?: string;\n };\n readonly target: {\n readonly expected: string;\n readonly actual?: string;\n };\n readonly marker: {\n readonly created: boolean;\n readonly updated: boolean;\n readonly previous?: {\n readonly storageHash?: string;\n readonly profileHash?: string;\n };\n };\n readonly meta?: {\n readonly configPath?: string;\n readonly contractPath: string;\n };\n readonly timings: {\n readonly total: number;\n };\n}\n","/**\n * Core schema view types for family-agnostic schema visualization.\n *\n * These types provide a minimal, generic, tree-shaped representation of schemas\n * across families, designed for CLI visualization and lightweight tooling.\n *\n * Families can optionally project their family-specific Schema IR into this\n * core view via the `toSchemaView` method on `FamilyInstance`.\n */\n\nexport type SchemaNodeKind =\n | 'root'\n | 'namespace'\n | 'collection'\n | 'entity'\n | 'field'\n | 'index'\n | 'dependency';\n\nexport interface SchemaTreeVisitor<R> {\n visit(node: SchemaTreeNode): R;\n}\n\nexport interface SchemaTreeNodeOptions {\n readonly kind: SchemaNodeKind;\n readonly id: string;\n readonly label: string;\n readonly meta?: Record<string, unknown>;\n readonly children?: readonly SchemaTreeNode[];\n}\n\nexport class SchemaTreeNode {\n readonly kind: SchemaNodeKind;\n readonly id: string;\n readonly label: string;\n readonly meta?: Record<string, unknown>;\n readonly children?: readonly SchemaTreeNode[];\n\n constructor(options: SchemaTreeNodeOptions) {\n this.kind = options.kind;\n this.id = options.id;\n this.label = options.label;\n if (options.meta !== undefined) this.meta = options.meta;\n if (options.children !== undefined) this.children = options.children;\n Object.freeze(this);\n }\n\n accept<R>(visitor: SchemaTreeVisitor<R>): R {\n return visitor.visit(this);\n }\n}\n\n/**\n * Core schema view providing a family-agnostic tree representation of a schema.\n * Used by CLI and cross-family tooling for visualization.\n */\nexport interface CoreSchemaView {\n readonly root: SchemaTreeNode;\n}\n","import type { Codec } from '../shared/codec';\nimport type { CodecLookup, CodecMeta } from '../shared/codec-types';\nimport type {\n AuthoringContributions,\n AuthoringFieldNamespace,\n AuthoringTypeNamespace,\n} from '../shared/framework-authoring';\nimport {\n assertNoCrossRegistryCollisions,\n isAuthoringFieldPresetDescriptor,\n isAuthoringTypeConstructorDescriptor,\n mergeAuthoringNamespaces,\n} from '../shared/framework-authoring';\nimport type { ComponentMetadata } from '../shared/framework-components';\nimport type {\n ControlMutationDefaultEntry,\n ControlMutationDefaults,\n MutationDefaultGeneratorDescriptor,\n} from '../shared/mutation-default-types';\nimport type { TypesImportSpec } from '../shared/types-import-spec';\nimport type {\n ControlAdapterDescriptor,\n ControlDriverDescriptor,\n ControlExtensionDescriptor,\n ControlFamilyDescriptor,\n ControlTargetDescriptor,\n} from './control-descriptors';\n\nexport interface AssembledAuthoringContributions {\n readonly field: AuthoringFieldNamespace;\n readonly type: AuthoringTypeNamespace;\n}\n\nexport interface ControlStack<\n TFamilyId extends string = string,\n TTargetId extends string = string,\n> {\n readonly family: ControlFamilyDescriptor<TFamilyId>;\n readonly target: ControlTargetDescriptor<TFamilyId, TTargetId>;\n readonly adapter?: ControlAdapterDescriptor<TFamilyId, TTargetId> | undefined;\n readonly driver?: ControlDriverDescriptor<TFamilyId, TTargetId> | undefined;\n readonly extensionPacks: readonly ControlExtensionDescriptor<TFamilyId, TTargetId>[];\n\n readonly codecTypeImports: ReadonlyArray<TypesImportSpec>;\n readonly operationTypeImports: ReadonlyArray<TypesImportSpec>;\n readonly queryOperationTypeImports: ReadonlyArray<TypesImportSpec>;\n readonly extensionIds: ReadonlyArray<string>;\n readonly codecLookup: CodecLookup;\n readonly authoringContributions: AssembledAuthoringContributions;\n readonly scalarTypeDescriptors: ReadonlyMap<string, string>;\n readonly controlMutationDefaults: ControlMutationDefaults;\n}\n\nexport interface CreateControlStackInput<\n TFamilyId extends string = string,\n TTargetId extends string = string,\n> {\n readonly family: ControlFamilyDescriptor<TFamilyId>;\n readonly target: ControlTargetDescriptor<TFamilyId, TTargetId>;\n readonly adapter?: ControlAdapterDescriptor<TFamilyId, TTargetId> | undefined;\n readonly driver?: ControlDriverDescriptor<TFamilyId, TTargetId> | undefined;\n readonly extensionPacks?:\n | ReadonlyArray<ControlExtensionDescriptor<TFamilyId, TTargetId>>\n | undefined;\n}\n\nfunction addUniqueId(ids: string[], seen: Set<string>, id: string): void {\n if (!seen.has(id)) {\n ids.push(id);\n seen.add(id);\n }\n}\n\nexport function assertUniqueCodecOwner(options: {\n readonly codecId: string;\n readonly owners: Map<string, string>;\n readonly descriptorId: string;\n readonly entityLabel: string;\n readonly entityOwnershipLabel: string;\n}): void {\n const existingOwner = options.owners.get(options.codecId);\n if (existingOwner !== undefined) {\n throw new Error(\n `Duplicate ${options.entityLabel} for codecId \"${options.codecId}\". ` +\n `Descriptor \"${options.descriptorId}\" conflicts with \"${existingOwner}\". ` +\n `Each codecId can only have one ${options.entityOwnershipLabel}.`,\n );\n }\n}\n\nexport function extractCodecTypeImports(\n descriptors: ReadonlyArray<Pick<ComponentMetadata, 'types'>>,\n): ReadonlyArray<TypesImportSpec> {\n const imports: TypesImportSpec[] = [];\n\n for (const descriptor of descriptors) {\n const codecTypes = descriptor.types?.codecTypes;\n if (codecTypes?.import) {\n imports.push(codecTypes.import);\n }\n if (codecTypes?.typeImports) {\n imports.push(...codecTypes.typeImports);\n }\n }\n\n return imports;\n}\n\nexport function extractOperationTypeImports(\n descriptors: ReadonlyArray<Pick<ComponentMetadata, 'types'>>,\n): ReadonlyArray<TypesImportSpec> {\n const imports: TypesImportSpec[] = [];\n\n for (const descriptor of descriptors) {\n const operationTypes = descriptor.types?.operationTypes;\n if (operationTypes?.import) {\n imports.push(operationTypes.import);\n }\n }\n\n return imports;\n}\n\nexport function extractQueryOperationTypeImports(\n descriptors: ReadonlyArray<Pick<ComponentMetadata, 'types'>>,\n): ReadonlyArray<TypesImportSpec> {\n const imports: TypesImportSpec[] = [];\n\n for (const descriptor of descriptors) {\n const queryOperationTypes = descriptor.types?.queryOperationTypes;\n if (queryOperationTypes?.import) {\n imports.push(queryOperationTypes.import);\n }\n }\n\n return imports;\n}\n\nexport function extractComponentIds(\n family: { readonly id: string },\n target: { readonly id: string },\n adapter: { readonly id: string } | undefined,\n extensions: ReadonlyArray<{ readonly id: string }>,\n): ReadonlyArray<string> {\n const ids: string[] = [];\n const seen = new Set<string>();\n\n addUniqueId(ids, seen, family.id);\n addUniqueId(ids, seen, target.id);\n if (adapter) {\n addUniqueId(ids, seen, adapter.id);\n }\n\n for (const ext of extensions) {\n addUniqueId(ids, seen, ext.id);\n }\n\n return ids;\n}\n\nexport function assembleAuthoringContributions(\n descriptors: ReadonlyArray<{ readonly authoring?: AuthoringContributions }>,\n): AssembledAuthoringContributions {\n const field = {} as Record<string, unknown>;\n const type = {} as Record<string, unknown>;\n\n for (const descriptor of descriptors) {\n if (descriptor.authoring?.field) {\n mergeAuthoringNamespaces(\n field,\n descriptor.authoring.field,\n [],\n isAuthoringFieldPresetDescriptor,\n 'field',\n );\n }\n if (!descriptor.authoring?.type) {\n continue;\n }\n mergeAuthoringNamespaces(\n type,\n descriptor.authoring.type,\n [],\n isAuthoringTypeConstructorDescriptor,\n 'type',\n );\n }\n\n const fieldNamespace = field as AuthoringFieldNamespace;\n const typeNamespace = type as AuthoringTypeNamespace;\n assertNoCrossRegistryCollisions(typeNamespace, fieldNamespace);\n\n return {\n field: fieldNamespace,\n type: typeNamespace,\n };\n}\n\nexport function assembleScalarTypeDescriptors(\n descriptors: ReadonlyArray<\n Pick<ComponentMetadata, 'scalarTypeDescriptors'> & { readonly id?: string }\n >,\n): ReadonlyMap<string, string> {\n const result = new Map<string, string>();\n const owners = new Map<string, string>();\n\n for (const descriptor of descriptors) {\n const descriptorMap = descriptor.scalarTypeDescriptors;\n if (!descriptorMap) continue;\n const descriptorId = descriptor.id ?? '<unknown>';\n for (const [typeName, codecId] of descriptorMap) {\n const existingOwner = owners.get(typeName);\n if (existingOwner !== undefined) {\n throw new Error(\n `Duplicate scalar type descriptor \"${typeName}\". ` +\n `Descriptor \"${descriptorId}\" conflicts with \"${existingOwner}\".`,\n );\n }\n result.set(typeName, codecId);\n owners.set(typeName, descriptorId);\n }\n }\n\n return result;\n}\n\nexport function assembleControlMutationDefaults(\n descriptors: ReadonlyArray<\n Pick<ComponentMetadata, 'controlMutationDefaults'> & { readonly id?: string }\n >,\n): ControlMutationDefaults {\n const defaultFunctionRegistry = new Map<string, ControlMutationDefaultEntry>();\n const functionOwners = new Map<string, string>();\n const generatorMap = new Map<string, MutationDefaultGeneratorDescriptor>();\n const generatorOwners = new Map<string, string>();\n\n for (const descriptor of descriptors) {\n const contributions = descriptor.controlMutationDefaults;\n if (!contributions) continue;\n const descriptorId = descriptor.id ?? '<unknown>';\n\n for (const generatorDescriptor of contributions.generatorDescriptors) {\n const existingOwner = generatorOwners.get(generatorDescriptor.id);\n if (existingOwner !== undefined) {\n throw new Error(\n `Duplicate mutation default generator id \"${generatorDescriptor.id}\". ` +\n `Descriptor \"${descriptorId}\" conflicts with \"${existingOwner}\".`,\n );\n }\n generatorMap.set(generatorDescriptor.id, generatorDescriptor);\n generatorOwners.set(generatorDescriptor.id, descriptorId);\n }\n\n for (const [functionName, handler] of contributions.defaultFunctionRegistry) {\n const existingOwner = functionOwners.get(functionName);\n if (existingOwner !== undefined) {\n throw new Error(\n `Duplicate mutation default function \"${functionName}\". ` +\n `Descriptor \"${descriptorId}\" conflicts with \"${existingOwner}\".`,\n );\n }\n defaultFunctionRegistry.set(functionName, handler);\n functionOwners.set(functionName, descriptorId);\n }\n }\n\n return {\n defaultFunctionRegistry,\n generatorDescriptors: Array.from(generatorMap.values()),\n };\n}\n\nexport function extractCodecLookup(\n descriptors: ReadonlyArray<Pick<ComponentMetadata & { id: string }, 'types' | 'id'>>,\n): CodecLookup {\n const byId = new Map<string, Codec>();\n const targetTypesById = new Map<string, readonly string[]>();\n const metaById = new Map<string, CodecMeta>();\n const renderersById = new Map<string, (params: Record<string, unknown>) => string | undefined>();\n const owners = new Map<string, string>();\n for (const descriptor of descriptors) {\n const codecTypes = descriptor.types?.codecTypes;\n const descriptorId = descriptor.id;\n // Descriptor-side metadata is the single source of truth for `targetTypes` / `meta` / `renderOutputType`. Every contributor ships a `codecDescriptors` list on `types.codecTypes`.\n for (const codecDescriptor of codecTypes?.codecDescriptors ?? []) {\n assertUniqueCodecOwner({\n codecId: codecDescriptor.codecId,\n owners,\n descriptorId,\n entityLabel: 'codec descriptor',\n entityOwnershipLabel: 'codec descriptor provider',\n });\n owners.set(codecDescriptor.codecId, descriptorId);\n if (Array.isArray(codecDescriptor.targetTypes)) {\n targetTypesById.set(codecDescriptor.codecId, codecDescriptor.targetTypes);\n }\n if (codecDescriptor.meta !== undefined) {\n metaById.set(codecDescriptor.codecId, codecDescriptor.meta);\n }\n if (typeof codecDescriptor.renderOutputType === 'function') {\n renderersById.set(codecDescriptor.codecId, codecDescriptor.renderOutputType);\n }\n // Materialize a representative `Codec` instance for `byId.get()` so consumers reading the lookup's instance side (e.g. SQL renderer's cast-policy lookup, or the contract emitter's literal-default `encodeJson` resolver) keep finding the codec.\n //\n // Two cohorts:\n // - Non-parameterized descriptors: factory must succeed; any throw is a real bug and we let it propagate (no silent try/catch).\n // - Parameterized descriptors: try with empty params. Many parameterized codecs treat params as advisory (e.g. `pg/timestamptz@1` whose precision is rendered into the `nativeType` only and never read by the runtime codec), so an empty-params construction yields a usable representative for id-keyed lookups (e.g. emit-time literal-default encoding). Codecs whose factory genuinely requires params (e.g. `pg/vector@1` threading `length` into the runtime codec) will throw; for those, per-column instances are materialized at runtime by `buildContractCodecRegistry` and the id-keyed lookup miss is correct (the column-aware path resolves them).\n if (!byId.has(codecDescriptor.codecId)) {\n if (codecDescriptor.isParameterized) {\n try {\n const representative = codecDescriptor.factory({} as never)({\n name: `<lookup:${codecDescriptor.codecId}>`,\n } as Parameters<ReturnType<typeof codecDescriptor.factory>>[0]);\n byId.set(codecDescriptor.codecId, representative);\n } catch {\n // Factory requires concrete params; skip representative materialization. Per-column instances are built at runtime; id-keyed lookup miss is the correct outcome here.\n }\n } else {\n const representative = codecDescriptor.factory(undefined as never)({\n name: `<lookup:${codecDescriptor.codecId}>`,\n } as Parameters<ReturnType<typeof codecDescriptor.factory>>[0]);\n byId.set(codecDescriptor.codecId, representative);\n }\n }\n }\n }\n return {\n get: (id) => byId.get(id),\n targetTypesFor: (id) => targetTypesById.get(id),\n metaFor: (id) => metaById.get(id),\n renderOutputTypeFor: (id, params) => renderersById.get(id)?.(params),\n };\n}\n\nexport function validateScalarTypeCodecIds(\n scalarTypeDescriptors: ReadonlyMap<string, string>,\n codecLookup: CodecLookup,\n): string[] {\n const errors: string[] = [];\n for (const [typeName, codecId] of scalarTypeDescriptors) {\n if (!codecLookup.get(codecId)) {\n errors.push(\n `Scalar type \"${typeName}\" references codec \"${codecId}\" which is not registered by any component.`,\n );\n }\n }\n return errors;\n}\n\nexport function createControlStack<TFamilyId extends string, TTargetId extends string>(\n input: CreateControlStackInput<TFamilyId, TTargetId>,\n): ControlStack<TFamilyId, TTargetId> {\n const { family, target, adapter, driver, extensionPacks = [] } = input;\n\n const allDescriptors = [family, target, ...(adapter ? [adapter] : []), ...extensionPacks];\n\n const codecLookup = extractCodecLookup(allDescriptors);\n const scalarTypeDescriptors = assembleScalarTypeDescriptors(allDescriptors);\n\n return {\n family,\n target,\n adapter,\n driver,\n extensionPacks: extensionPacks as readonly ControlExtensionDescriptor<TFamilyId, TTargetId>[],\n\n codecTypeImports: extractCodecTypeImports(allDescriptors),\n operationTypeImports: extractOperationTypeImports(allDescriptors),\n queryOperationTypeImports: extractQueryOperationTypeImports(allDescriptors),\n extensionIds: extractComponentIds(family, target, adapter, extensionPacks),\n codecLookup,\n authoringContributions: assembleAuthoringContributions(allDescriptors),\n scalarTypeDescriptors,\n controlMutationDefaults: assembleControlMutationDefaults(allDescriptors),\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"control.mjs","names":["imports: TypesImportSpec[]","ids: string[]"],"sources":["../src/control/control-capabilities.ts","../src/control/control-result-types.ts","../src/control/control-schema-view.ts","../src/control/control-spaces.ts","../src/control/control-stack.ts"],"sourcesContent":["import type { ControlTargetDescriptor } from './control-descriptors';\nimport type { ControlFamilyInstance } from './control-instances';\nimport type { MigrationPlanOperation, TargetMigrationsCapability } from './control-migration-types';\nimport type { OperationPreview } from './control-operation-preview';\nimport type { CoreSchemaView } from './control-schema-view';\nimport type { PslDocumentAst } from './psl-ast';\n\nexport interface MigratableTargetDescriptor<\n TFamilyId extends string,\n TTargetId extends string,\n TFamilyInstance extends ControlFamilyInstance<TFamilyId, unknown> = ControlFamilyInstance<\n TFamilyId,\n unknown\n >,\n> extends ControlTargetDescriptor<TFamilyId, TTargetId> {\n readonly migrations: TargetMigrationsCapability<TFamilyId, TTargetId, TFamilyInstance>;\n}\n\nexport function hasMigrations<TFamilyId extends string, TTargetId extends string>(\n target: ControlTargetDescriptor<TFamilyId, TTargetId>,\n): target is MigratableTargetDescriptor<TFamilyId, TTargetId> {\n return 'migrations' in target && !!(target as Record<string, unknown>)['migrations'];\n}\n\nexport interface SchemaViewCapable<TSchemaIR = unknown> {\n toSchemaView(schema: TSchemaIR): CoreSchemaView;\n}\n\nexport function hasSchemaView<TFamilyId extends string, TSchemaIR>(\n instance: ControlFamilyInstance<TFamilyId, TSchemaIR>,\n): instance is ControlFamilyInstance<TFamilyId, TSchemaIR> & SchemaViewCapable<TSchemaIR> {\n return (\n 'toSchemaView' in instance &&\n typeof (instance as Record<string, unknown>)['toSchemaView'] === 'function'\n );\n}\n\n/**\n * Capability declaring that a family can infer a PSL contract AST from its\n * opaque introspected schema IR. Consumed by `prisma-next contract infer`.\n */\nexport interface PslContractInferCapable<TSchemaIR = unknown> {\n inferPslContract(schemaIR: TSchemaIR): PslDocumentAst;\n}\n\nexport function hasPslContractInfer<TFamilyId extends string, TSchemaIR>(\n instance: ControlFamilyInstance<TFamilyId, TSchemaIR>,\n): instance is ControlFamilyInstance<TFamilyId, TSchemaIR> & PslContractInferCapable<TSchemaIR> {\n return (\n 'inferPslContract' in instance &&\n typeof (instance as Record<string, unknown>)['inferPslContract'] === 'function'\n );\n}\n\n/**\n * Capability declaring that a family can render a textual preview of migration\n * operations for the CLI's \"DDL preview\" output. SQL families emit\n * `language: 'sql'` statements; Mongo families emit `language: 'mongodb-shell'`.\n */\nexport interface OperationPreviewCapable {\n toOperationPreview(operations: readonly MigrationPlanOperation[]): OperationPreview;\n}\n\nexport function hasOperationPreview<TFamilyId extends string, TSchemaIR>(\n instance: ControlFamilyInstance<TFamilyId, TSchemaIR>,\n): instance is ControlFamilyInstance<TFamilyId, TSchemaIR> & OperationPreviewCapable {\n return (\n 'toOperationPreview' in instance &&\n typeof (instance as Record<string, unknown>)['toOperationPreview'] === 'function'\n );\n}\n","export const VERIFY_CODE_MARKER_MISSING = 'PN-RUN-3001';\nexport const VERIFY_CODE_HASH_MISMATCH = 'PN-RUN-3002';\nexport const VERIFY_CODE_TARGET_MISMATCH = 'PN-RUN-3003';\nexport const VERIFY_CODE_SCHEMA_FAILURE = 'PN-RUN-3010';\n\nexport interface OperationContext {\n readonly contractPath?: string;\n readonly configPath?: string;\n readonly meta?: Readonly<Record<string, unknown>>;\n}\n\nexport interface VerifyDatabaseResult {\n readonly ok: boolean;\n readonly code?: string;\n readonly summary: string;\n readonly contract: {\n readonly storageHash: string;\n readonly profileHash?: string;\n };\n readonly marker?: {\n readonly storageHash?: string;\n readonly profileHash?: string;\n };\n readonly target: {\n readonly expected: string;\n readonly actual?: string;\n };\n readonly missingCodecs?: readonly string[];\n readonly codecCoverageSkipped?: boolean;\n readonly meta?: {\n readonly configPath?: string;\n readonly contractPath: string;\n };\n readonly timings: {\n readonly total: number;\n };\n}\n\nexport interface BaseSchemaIssue {\n readonly kind:\n | 'missing_table'\n | 'missing_column'\n | 'extra_table'\n | 'extra_column'\n | 'extra_primary_key'\n | 'extra_foreign_key'\n | 'extra_unique_constraint'\n | 'extra_index'\n | 'extra_validator'\n | 'type_mismatch'\n | 'type_missing'\n | 'type_values_mismatch'\n | 'nullability_mismatch'\n | 'primary_key_mismatch'\n | 'foreign_key_mismatch'\n | 'unique_constraint_mismatch'\n | 'index_mismatch'\n | 'dependency_missing'\n | 'default_missing'\n | 'default_mismatch'\n | 'extra_default';\n readonly table?: string;\n readonly column?: string;\n readonly indexOrConstraint?: string;\n readonly typeName?: string;\n readonly dependencyId?: string;\n readonly expected?: string;\n readonly actual?: string;\n readonly message: string;\n}\n\nexport interface EnumValuesChangedIssue {\n readonly kind: 'enum_values_changed';\n readonly typeName: string;\n readonly addedValues: readonly string[];\n readonly removedValues: readonly string[];\n readonly message: string;\n}\n\nexport type SchemaIssue = BaseSchemaIssue | EnumValuesChangedIssue;\n\nexport interface SchemaVerificationNode {\n readonly status: 'pass' | 'warn' | 'fail';\n readonly kind: string;\n readonly name: string;\n readonly contractPath: string;\n readonly code: string;\n readonly message: string;\n readonly expected: unknown;\n readonly actual: unknown;\n readonly children: readonly SchemaVerificationNode[];\n}\n\nexport interface VerifyDatabaseSchemaResult {\n readonly ok: boolean;\n readonly code?: string;\n readonly summary: string;\n readonly contract: {\n readonly storageHash: string;\n readonly profileHash?: string;\n };\n readonly target: {\n readonly expected: string;\n readonly actual?: string;\n };\n readonly schema: {\n readonly issues: readonly SchemaIssue[];\n readonly root: SchemaVerificationNode;\n readonly counts: {\n readonly pass: number;\n readonly warn: number;\n readonly fail: number;\n readonly totalNodes: number;\n };\n };\n readonly meta?: {\n readonly configPath?: string;\n readonly contractPath?: string;\n readonly strict: boolean;\n };\n readonly timings: {\n readonly total: number;\n };\n}\n\nexport interface EmitContractResult {\n readonly contractJson: string;\n readonly contractDts: string;\n readonly storageHash: string;\n readonly executionHash?: string;\n readonly profileHash: string;\n}\n\nexport interface IntrospectSchemaResult<TSchemaIR> {\n readonly ok: true;\n readonly summary: string;\n readonly target: {\n readonly familyId: string;\n readonly id: string;\n };\n readonly schema: TSchemaIR;\n readonly meta?: {\n readonly configPath?: string;\n readonly dbUrl?: string;\n };\n readonly timings: {\n readonly total: number;\n };\n}\n\nexport interface SignDatabaseResult {\n readonly ok: boolean;\n readonly summary: string;\n readonly contract: {\n readonly storageHash: string;\n readonly profileHash?: string;\n };\n readonly target: {\n readonly expected: string;\n readonly actual?: string;\n };\n readonly marker: {\n readonly created: boolean;\n readonly updated: boolean;\n readonly previous?: {\n readonly storageHash?: string;\n readonly profileHash?: string;\n };\n };\n readonly meta?: {\n readonly configPath?: string;\n readonly contractPath: string;\n };\n readonly timings: {\n readonly total: number;\n };\n}\n","/**\n * Core schema view types for family-agnostic schema visualization.\n *\n * These types provide a minimal, generic, tree-shaped representation of schemas\n * across families, designed for CLI visualization and lightweight tooling.\n *\n * Families can optionally project their family-specific Schema IR into this\n * core view via the `toSchemaView` method on `FamilyInstance`.\n */\n\nexport type SchemaNodeKind =\n | 'root'\n | 'namespace'\n | 'collection'\n | 'entity'\n | 'field'\n | 'index'\n | 'dependency';\n\nexport interface SchemaTreeVisitor<R> {\n visit(node: SchemaTreeNode): R;\n}\n\nexport interface SchemaTreeNodeOptions {\n readonly kind: SchemaNodeKind;\n readonly id: string;\n readonly label: string;\n readonly meta?: Record<string, unknown>;\n readonly children?: readonly SchemaTreeNode[];\n}\n\nexport class SchemaTreeNode {\n readonly kind: SchemaNodeKind;\n readonly id: string;\n readonly label: string;\n readonly meta?: Record<string, unknown>;\n readonly children?: readonly SchemaTreeNode[];\n\n constructor(options: SchemaTreeNodeOptions) {\n this.kind = options.kind;\n this.id = options.id;\n this.label = options.label;\n if (options.meta !== undefined) this.meta = options.meta;\n if (options.children !== undefined) this.children = options.children;\n Object.freeze(this);\n }\n\n accept<R>(visitor: SchemaTreeVisitor<R>): R {\n return visitor.visit(this);\n }\n}\n\n/**\n * Core schema view providing a family-agnostic tree representation of a schema.\n * Used by CLI and cross-family tooling for visualization.\n */\nexport interface CoreSchemaView {\n readonly root: SchemaTreeNode;\n}\n","import type { Contract } from '@prisma-next/contract/types';\nimport type { MigrationMetadata, MigrationPlanOperation } from './control-migration-types';\n\n/**\n * Canonical control-plane identifiers for contract spaces.\n *\n * A contract space is the disjoint `(contract.json, migration-graph)` unit\n * the per-space planner / runner / verifier (project: extension contract\n * spaces, TML-2397) operates on. The application owns one well-known\n * space — the value below — and each loaded extension that contributes\n * schema owns a uniquely-named space.\n *\n * Lives in `framework-components/control` so every layer that has to\n * reason about space identity (the migration tooling, the SQL runtime's\n * marker reader, target-side statement builders, target-side adapters)\n * can import a single value rather than duplicating the literal. Raw\n * `'app'` string literals in framework / target / runtime / adapter\n * source code are forbidden and policed by\n * `scripts/lint-app-space-id.mjs` (wired into `pnpm lint:deps`).\n *\n * @see specs/framework-mechanism.spec.md § 3 — Layout convention (γ).\n */\nexport const APP_SPACE_ID = 'app' as const;\n\n/**\n * Pinned head ref for a contract space — the `(hash, invariants)` tuple\n * a runner targets when applying that space's migration graph. Identical\n * in shape to the on-disk `migrations/<space-id>/refs/head.json` the\n * framework writes per loaded extension, and to the app-space\n * `<projectRoot>/refs/head.json`. Family-agnostic: SQL, Mongo, and any\n * future family share the same head-ref shape.\n *\n * @see specs/framework-mechanism.spec.md § 1.\n */\nexport interface ContractSpaceHeadRef {\n readonly hash: string;\n readonly invariants: readonly string[];\n}\n\n/**\n * Canonical structural shape of a migration package — the unit a planner\n * produces and a runner consumes: a directory name, the ADR 197 metadata\n * envelope (which carries the `toContract` snapshot), and the operation\n * list.\n *\n * In-memory by default. Readers in `@prisma-next/migration-tools`\n * (`readMigrationPackage` / `readMigrationsDir`) return the augmented\n * {@link import('@prisma-next/migration-tools/package').OnDiskMigrationPackage}\n * variant which adds `dirPath`; everything else operates against the\n * canonical shape so the same value flows through pre-emission\n * authoring, on-disk loading, and runner execution without conversion.\n *\n * @see specs/framework-mechanism.spec.md § 1.\n */\nexport interface MigrationPackage {\n readonly dirName: string;\n readonly metadata: MigrationMetadata;\n readonly ops: readonly MigrationPlanOperation[];\n}\n\n/**\n * Canonical structural shape of a contract space — one disjoint\n * `(contractJson, migration-graph)` unit the per-space planner / runner\n * / verifier operates on. The application owns one well-known space\n * ({@link APP_SPACE_ID}); each loaded extension that contributes schema\n * owns a uniquely-named space. Whether a value is the app's space or an\n * extension's space is a control-plane concern; the type carries no\n * such distinction.\n *\n * Generic over the contract so each family pins a typed contract value\n * at consumption time. The SQL family specialises to\n * `ContractSpace<Contract<SqlStorage>>` at the descriptor surface;\n * Mongo's symmetrical `ContractSpace<Contract<MongoStorage>>` will land\n * with that family.\n *\n * @see specs/framework-mechanism.spec.md § 1.\n */\nexport interface ContractSpace<TContract extends Contract = Contract> {\n readonly contractJson: TContract;\n readonly migrations: readonly MigrationPackage[];\n readonly headRef: ContractSpaceHeadRef;\n}\n","import type { Codec } from '../shared/codec';\nimport type { CodecLookup, CodecMeta } from '../shared/codec-types';\nimport type {\n AuthoringContributions,\n AuthoringFieldNamespace,\n AuthoringTypeNamespace,\n} from '../shared/framework-authoring';\nimport {\n assertNoCrossRegistryCollisions,\n isAuthoringFieldPresetDescriptor,\n isAuthoringTypeConstructorDescriptor,\n mergeAuthoringNamespaces,\n} from '../shared/framework-authoring';\nimport type { ComponentMetadata } from '../shared/framework-components';\nimport type {\n ControlMutationDefaultEntry,\n ControlMutationDefaults,\n MutationDefaultGeneratorDescriptor,\n} from '../shared/mutation-default-types';\nimport type { TypesImportSpec } from '../shared/types-import-spec';\nimport type {\n ControlAdapterDescriptor,\n ControlDriverDescriptor,\n ControlExtensionDescriptor,\n ControlFamilyDescriptor,\n ControlTargetDescriptor,\n} from './control-descriptors';\n\nexport interface AssembledAuthoringContributions {\n readonly field: AuthoringFieldNamespace;\n readonly type: AuthoringTypeNamespace;\n}\n\nexport interface ControlStack<\n TFamilyId extends string = string,\n TTargetId extends string = string,\n> {\n readonly family: ControlFamilyDescriptor<TFamilyId>;\n readonly target: ControlTargetDescriptor<TFamilyId, TTargetId>;\n readonly adapter?: ControlAdapterDescriptor<TFamilyId, TTargetId> | undefined;\n readonly driver?: ControlDriverDescriptor<TFamilyId, TTargetId> | undefined;\n readonly extensionPacks: readonly ControlExtensionDescriptor<TFamilyId, TTargetId>[];\n\n readonly codecTypeImports: ReadonlyArray<TypesImportSpec>;\n readonly operationTypeImports: ReadonlyArray<TypesImportSpec>;\n readonly queryOperationTypeImports: ReadonlyArray<TypesImportSpec>;\n readonly extensionIds: ReadonlyArray<string>;\n readonly codecLookup: CodecLookup;\n readonly authoringContributions: AssembledAuthoringContributions;\n readonly scalarTypeDescriptors: ReadonlyMap<string, string>;\n readonly controlMutationDefaults: ControlMutationDefaults;\n}\n\nexport interface CreateControlStackInput<\n TFamilyId extends string = string,\n TTargetId extends string = string,\n> {\n readonly family: ControlFamilyDescriptor<TFamilyId>;\n readonly target: ControlTargetDescriptor<TFamilyId, TTargetId>;\n readonly adapter?: ControlAdapterDescriptor<TFamilyId, TTargetId> | undefined;\n readonly driver?: ControlDriverDescriptor<TFamilyId, TTargetId> | undefined;\n readonly extensionPacks?:\n | ReadonlyArray<ControlExtensionDescriptor<TFamilyId, TTargetId>>\n | undefined;\n}\n\nfunction addUniqueId(ids: string[], seen: Set<string>, id: string): void {\n if (!seen.has(id)) {\n ids.push(id);\n seen.add(id);\n }\n}\n\nexport function assertUniqueCodecOwner(options: {\n readonly codecId: string;\n readonly owners: Map<string, string>;\n readonly descriptorId: string;\n readonly entityLabel: string;\n readonly entityOwnershipLabel: string;\n}): void {\n const existingOwner = options.owners.get(options.codecId);\n if (existingOwner !== undefined) {\n throw new Error(\n `Duplicate ${options.entityLabel} for codecId \"${options.codecId}\". ` +\n `Descriptor \"${options.descriptorId}\" conflicts with \"${existingOwner}\". ` +\n `Each codecId can only have one ${options.entityOwnershipLabel}.`,\n );\n }\n}\n\nexport function extractCodecTypeImports(\n descriptors: ReadonlyArray<Pick<ComponentMetadata, 'types'>>,\n): ReadonlyArray<TypesImportSpec> {\n const imports: TypesImportSpec[] = [];\n\n for (const descriptor of descriptors) {\n const codecTypes = descriptor.types?.codecTypes;\n if (codecTypes?.import) {\n imports.push(codecTypes.import);\n }\n if (codecTypes?.typeImports) {\n imports.push(...codecTypes.typeImports);\n }\n }\n\n return imports;\n}\n\nexport function extractOperationTypeImports(\n descriptors: ReadonlyArray<Pick<ComponentMetadata, 'types'>>,\n): ReadonlyArray<TypesImportSpec> {\n const imports: TypesImportSpec[] = [];\n\n for (const descriptor of descriptors) {\n const operationTypes = descriptor.types?.operationTypes;\n if (operationTypes?.import) {\n imports.push(operationTypes.import);\n }\n }\n\n return imports;\n}\n\nexport function extractQueryOperationTypeImports(\n descriptors: ReadonlyArray<Pick<ComponentMetadata, 'types'>>,\n): ReadonlyArray<TypesImportSpec> {\n const imports: TypesImportSpec[] = [];\n\n for (const descriptor of descriptors) {\n const queryOperationTypes = descriptor.types?.queryOperationTypes;\n if (queryOperationTypes?.import) {\n imports.push(queryOperationTypes.import);\n }\n }\n\n return imports;\n}\n\nexport function extractComponentIds(\n family: { readonly id: string },\n target: { readonly id: string },\n adapter: { readonly id: string } | undefined,\n extensions: ReadonlyArray<{ readonly id: string }>,\n): ReadonlyArray<string> {\n const ids: string[] = [];\n const seen = new Set<string>();\n\n addUniqueId(ids, seen, family.id);\n addUniqueId(ids, seen, target.id);\n if (adapter) {\n addUniqueId(ids, seen, adapter.id);\n }\n\n for (const ext of extensions) {\n addUniqueId(ids, seen, ext.id);\n }\n\n return ids;\n}\n\nexport function assembleAuthoringContributions(\n descriptors: ReadonlyArray<{ readonly authoring?: AuthoringContributions }>,\n): AssembledAuthoringContributions {\n const field = {} as Record<string, unknown>;\n const type = {} as Record<string, unknown>;\n\n for (const descriptor of descriptors) {\n if (descriptor.authoring?.field) {\n mergeAuthoringNamespaces(\n field,\n descriptor.authoring.field,\n [],\n isAuthoringFieldPresetDescriptor,\n 'field',\n );\n }\n if (!descriptor.authoring?.type) {\n continue;\n }\n mergeAuthoringNamespaces(\n type,\n descriptor.authoring.type,\n [],\n isAuthoringTypeConstructorDescriptor,\n 'type',\n );\n }\n\n const fieldNamespace = field as AuthoringFieldNamespace;\n const typeNamespace = type as AuthoringTypeNamespace;\n assertNoCrossRegistryCollisions(typeNamespace, fieldNamespace);\n\n return {\n field: fieldNamespace,\n type: typeNamespace,\n };\n}\n\nexport function assembleScalarTypeDescriptors(\n descriptors: ReadonlyArray<\n Pick<ComponentMetadata, 'scalarTypeDescriptors'> & { readonly id?: string }\n >,\n): ReadonlyMap<string, string> {\n const result = new Map<string, string>();\n const owners = new Map<string, string>();\n\n for (const descriptor of descriptors) {\n const descriptorMap = descriptor.scalarTypeDescriptors;\n if (!descriptorMap) continue;\n const descriptorId = descriptor.id ?? '<unknown>';\n for (const [typeName, codecId] of descriptorMap) {\n const existingOwner = owners.get(typeName);\n if (existingOwner !== undefined) {\n throw new Error(\n `Duplicate scalar type descriptor \"${typeName}\". ` +\n `Descriptor \"${descriptorId}\" conflicts with \"${existingOwner}\".`,\n );\n }\n result.set(typeName, codecId);\n owners.set(typeName, descriptorId);\n }\n }\n\n return result;\n}\n\nexport function assembleControlMutationDefaults(\n descriptors: ReadonlyArray<\n Pick<ComponentMetadata, 'controlMutationDefaults'> & { readonly id?: string }\n >,\n): ControlMutationDefaults {\n const defaultFunctionRegistry = new Map<string, ControlMutationDefaultEntry>();\n const functionOwners = new Map<string, string>();\n const generatorMap = new Map<string, MutationDefaultGeneratorDescriptor>();\n const generatorOwners = new Map<string, string>();\n\n for (const descriptor of descriptors) {\n const contributions = descriptor.controlMutationDefaults;\n if (!contributions) continue;\n const descriptorId = descriptor.id ?? '<unknown>';\n\n for (const generatorDescriptor of contributions.generatorDescriptors) {\n const existingOwner = generatorOwners.get(generatorDescriptor.id);\n if (existingOwner !== undefined) {\n throw new Error(\n `Duplicate mutation default generator id \"${generatorDescriptor.id}\". ` +\n `Descriptor \"${descriptorId}\" conflicts with \"${existingOwner}\".`,\n );\n }\n generatorMap.set(generatorDescriptor.id, generatorDescriptor);\n generatorOwners.set(generatorDescriptor.id, descriptorId);\n }\n\n for (const [functionName, handler] of contributions.defaultFunctionRegistry) {\n const existingOwner = functionOwners.get(functionName);\n if (existingOwner !== undefined) {\n throw new Error(\n `Duplicate mutation default function \"${functionName}\". ` +\n `Descriptor \"${descriptorId}\" conflicts with \"${existingOwner}\".`,\n );\n }\n defaultFunctionRegistry.set(functionName, handler);\n functionOwners.set(functionName, descriptorId);\n }\n }\n\n return {\n defaultFunctionRegistry,\n generatorDescriptors: Array.from(generatorMap.values()),\n };\n}\n\nexport function extractCodecLookup(\n descriptors: ReadonlyArray<Pick<ComponentMetadata & { id: string }, 'types' | 'id'>>,\n): CodecLookup {\n const byId = new Map<string, Codec>();\n const targetTypesById = new Map<string, readonly string[]>();\n const metaById = new Map<string, CodecMeta>();\n const renderersById = new Map<string, (params: Record<string, unknown>) => string | undefined>();\n const owners = new Map<string, string>();\n for (const descriptor of descriptors) {\n const codecTypes = descriptor.types?.codecTypes;\n const descriptorId = descriptor.id;\n // Descriptor-side metadata is the single source of truth for `targetTypes` / `meta` / `renderOutputType`. Every contributor ships a `codecDescriptors` list on `types.codecTypes`.\n for (const codecDescriptor of codecTypes?.codecDescriptors ?? []) {\n assertUniqueCodecOwner({\n codecId: codecDescriptor.codecId,\n owners,\n descriptorId,\n entityLabel: 'codec descriptor',\n entityOwnershipLabel: 'codec descriptor provider',\n });\n owners.set(codecDescriptor.codecId, descriptorId);\n if (Array.isArray(codecDescriptor.targetTypes)) {\n targetTypesById.set(codecDescriptor.codecId, codecDescriptor.targetTypes);\n }\n if (codecDescriptor.meta !== undefined) {\n metaById.set(codecDescriptor.codecId, codecDescriptor.meta);\n }\n if (typeof codecDescriptor.renderOutputType === 'function') {\n renderersById.set(codecDescriptor.codecId, codecDescriptor.renderOutputType);\n }\n // Materialize a representative `Codec` instance for `byId.get()` so consumers reading the lookup's instance side (e.g. SQL renderer's cast-policy lookup, or the contract emitter's literal-default `encodeJson` resolver) keep finding the codec.\n //\n // Two cohorts:\n // - Non-parameterized descriptors: factory must succeed; any throw is a real bug and we let it propagate (no silent try/catch).\n // - Parameterized descriptors: try with empty params. Many parameterized codecs treat params as advisory (e.g. `pg/timestamptz@1` whose precision is rendered into the `nativeType` only and never read by the runtime codec), so an empty-params construction yields a usable representative for id-keyed lookups (e.g. emit-time literal-default encoding). Codecs whose factory genuinely requires params (e.g. `pg/vector@1` threading `length` into the runtime codec) will throw; for those, per-column instances are materialized at runtime by `buildContractCodecRegistry` and the id-keyed lookup miss is correct (the column-aware path resolves them).\n if (!byId.has(codecDescriptor.codecId)) {\n if (codecDescriptor.isParameterized) {\n try {\n const representative = codecDescriptor.factory({} as never)({\n name: `<lookup:${codecDescriptor.codecId}>`,\n } as Parameters<ReturnType<typeof codecDescriptor.factory>>[0]);\n byId.set(codecDescriptor.codecId, representative);\n } catch {\n // Factory requires concrete params; skip representative materialization. Per-column instances are built at runtime; id-keyed lookup miss is the correct outcome here.\n }\n } else {\n const representative = codecDescriptor.factory(undefined as never)({\n name: `<lookup:${codecDescriptor.codecId}>`,\n } as Parameters<ReturnType<typeof codecDescriptor.factory>>[0]);\n byId.set(codecDescriptor.codecId, representative);\n }\n }\n }\n }\n return {\n get: (id) => byId.get(id),\n targetTypesFor: (id) => targetTypesById.get(id),\n metaFor: (id) => metaById.get(id),\n renderOutputTypeFor: (id, params) => renderersById.get(id)?.(params),\n };\n}\n\nexport function validateScalarTypeCodecIds(\n scalarTypeDescriptors: ReadonlyMap<string, string>,\n codecLookup: CodecLookup,\n): string[] {\n const errors: string[] = [];\n for (const [typeName, codecId] of scalarTypeDescriptors) {\n if (!codecLookup.get(codecId)) {\n errors.push(\n `Scalar type \"${typeName}\" references codec \"${codecId}\" which is not registered by any component.`,\n );\n }\n }\n return errors;\n}\n\nexport function createControlStack<TFamilyId extends string, TTargetId extends string>(\n input: CreateControlStackInput<TFamilyId, TTargetId>,\n): ControlStack<TFamilyId, TTargetId> {\n const { family, target, adapter, driver, extensionPacks = [] } = input;\n\n const allDescriptors = [family, target, ...(adapter ? [adapter] : []), ...extensionPacks];\n\n const codecLookup = extractCodecLookup(allDescriptors);\n const scalarTypeDescriptors = assembleScalarTypeDescriptors(allDescriptors);\n\n return {\n family,\n target,\n adapter,\n driver,\n extensionPacks: extensionPacks as readonly ControlExtensionDescriptor<TFamilyId, TTargetId>[],\n\n codecTypeImports: extractCodecTypeImports(allDescriptors),\n operationTypeImports: extractOperationTypeImports(allDescriptors),\n queryOperationTypeImports: extractQueryOperationTypeImports(allDescriptors),\n extensionIds: extractComponentIds(family, target, adapter, extensionPacks),\n codecLookup,\n authoringContributions: assembleAuthoringContributions(allDescriptors),\n scalarTypeDescriptors,\n controlMutationDefaults: assembleControlMutationDefaults(allDescriptors),\n };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"psl-ast-BlDveJZ4.d.mts","names":[],"sources":["../src/control/psl-ast.ts"],"sourcesContent":[],"mappings":";UAAiB,WAAA;EAAA,SAAA,MAAW,EAAA,MAAA;EAMX,SAAA,IAAO,EAAA,MACN;EAIN,SAAA,MAAA,EAAA,MAAiB;AAa7B;AAOiB,UAzBA,OAAA,CAyBA;EAKA,SAAA,KAAA,EA7BC,WA6BqB;EAK3B,SAAA,GAAA,EAjCI,WAiCW;AAE3B;AAEiB,KAlCL,iBAAA,GAkCK,wBAGO,GAAA,iCAAA,GAAA,8BAAA,GAAA,0BAAA,GAAA,iCAAA,GAAA,iCAAA,GAAA,gCAAA,GAAA,gCAAA,GAAA,2BAAA,GAAA,yBAAA,GAAA,0BAAA;AAGP,UA3BA,aAAA,CA2BA;EAOL,SAAA,IAAA,EAjCK,iBAiCe;EAEf,SAAA,OAAA,EAAA,MAAA;EAOA,SAAA,QAAY,EAAA,MAAA;EAEV,SAAA,IAAA,EAzCF,OAyCE;;AAGF,UAzCA,uBAAA,CAyCA;EAAO,SAAA,IAAA,EAAA,UAAA;EAGZ,SAAA,IAAA,EAAA,eAAoB,GAAA,KAAA;AAEhC;AAEiB,UA3CA,sBAAA,CA2CQ;EAII,SAAA,IAAA,EAAA,SAAA;EAIG,SAAA,KAAA,EAAA,MAAA,GAAA,MAAA,GAAA,OAAA;;AACR,KA/CZ,eAAA,GAAkB,uBA+CN,GA/CgC,sBA+ChC;AAGP,KAhDL,kBAAA,GAgDwB,OAGnB,GAAA,OAAO,GAAA,MAAA,GAAA,WAAA;AAGP,UApDA,8BAAA,CAuDO;EAGZ,SAAA,IAAA,EAAA,YAAiB;EAEZ,SAAA,KAAQ,EAAA,MAAA;EAGG,SAAA,IAAA,EA5DX,OA4DW;;AAEX,UA3DA,yBAAA,CA2DA;EAAO,SAAA,IAAA,EAAA,OAAA;EAWP,SAAA,IAAA,EAAY,MAAA;EAgBZ,SAAA,KAAO,EAAA,MAAA;EAGI,SAAA,IAAA,EArFX,OAqFW;;AAEX,KApFL,oBAAA,GAAuB,8BAoFlB,GApFmD,yBAoFnD;AAAO,UAlFP,sBAAA,CAkFO;EAGP,SAAA,IAAA,EAAA,iBAAgB;EAGL,SAAA,IAAA,EAAA,SAAA,MAAA,EAAA;EACI,SAAA,IAAA,EAAA,SAtFN,oBAsFM,EAAA;EACf,SAAA,IAAA,EAtFA,OAsFA;;AAGA,UAtFA,YAAA,CAsFuB;EASX,SAAA,IAAA,EAAA,WAAA;EACG,SAAA,MAAA,EA9Fb,kBA8Fa;EACf,SAAA,IAAA,EAAA,MAAA;EAAO,SAAA,IAAA,EAAA,SA7FE,oBA6FF,EAAA;EAGP,SAAA,IAAA,EA/FA,OA+Fa;AAM9B;AAG4B,KArGhB,oBAAA,GAqGgB,MAAA;AACD,KApGf,iBAAA,GAAoB,YAoGL;AACS,UAnGnB,QAAA,CAmGmB;EACjB,SAAA,IAAA,EAAA,OAAA;EACF,SAAA,IAAA,EAAA,MAAA;EAAO,SAAA,QAAA,EAAA,MAAA;EAGP,SAAA,eAAqB,CAAA,EApGT,sBAoGS;EAKrB,SAAA,QAAA,EAAA,OAAsB;;;gCArGP;iBACf;;UAGA,mBAAA;;;iBAGA;;UAGA,kBAAA;;;iBAGA;;KAGL,iBAAA,GAAoB;UAEf,QAAA;;;4BAGW;gCACI;iBACf;;;;;;;;;;UAWA,YAAA;;;;;;;;;;;;;iBAaA;;UAGA,OAAA;;;4BAGW;gCACI;iBACf;;UAGA,gBAAA;;;4BAGW;gCACI;iBACf;;UAGA,uBAAA;;;;;;;;;6BASY;gCACG;iBACf;;UAGA,aAAA;;kCAEiB;iBACjB;;UAGA,cAAA;;;4BAGW;2BACD;oCACS;mBACjB;iBACF;;UAGA,qBAAA;;;;UAKA,sBAAA;gBACD;iCACiB"}
1
+ {"version":3,"file":"psl-ast-BlDveJZ4.d.mts","names":[],"sources":["../src/control/psl-ast.ts"],"sourcesContent":[],"mappings":";UAAiB,WAAA;EAAA,SAAA,MAAW,EAAA,MAAA;EAMX,SAAA,IAAO,EAAA,MAAA;EAKZ,SAAA,MAAA,EAAA,MAAiB;AAa7B;AAOiB,UAzBA,OAAA,CAyBA;EAKA,SAAA,KAAA,EA7BC,WA6BqB;EAK3B,SAAA,GAAA,EAjCI,WAiCW;AAE3B;AAEiB,KAlCL,iBAAA,GAkCK,wBAGA,GAAO,iCAAA,GAAA,8BAAA,GAAA,0BAAA,GAAA,iCAAA,GAAA,iCAAA,GAAA,gCAAA,GAAA,gCAAA,GAAA,2BAAA,GAAA,yBAAA,GAAA,0BAAA;AAGP,UA3BA,aAAA,CA2BA;EAOL,SAAA,IAAA,EAjCK,iBAiCe;EAEf,SAAA,OAAA,EAAA,MAAA;EAOA,SAAA,QAAY,EAAA,MAAA;EAEV,SAAA,IAAA,EAzCF,OAyCE;;AAGF,UAzCA,uBAAA,CAyCA;EAAO,SAAA,IAAA,EAAA,UAAA;EAGZ,SAAA,IAAA,EAAA,eAAoB,GAAA,KAAA;AAEhC;AAEiB,UA3CA,sBAAA,CA2CQ;EAII,SAAA,IAAA,EAAA,SAAA;EAIG,SAAA,KAAA,EAAA,MAAA,GAAA,MAAA,GAAA,OAAA;;AACR,KA/CZ,eAAA,GAAkB,uBA+CN,GA/CgC,sBA+ChC;AAGP,KAhDL,kBAAA,GAgDwB,OAGnB,GAAA,OAAO,GAAA,MAAA,GAAA,WAAA;AAGP,UApDA,8BAAA,CAuDO;EAGZ,SAAA,IAAA,EAAA,YAAiB;EAEZ,SAAA,KAAQ,EAAA,MAAA;EAGG,SAAA,IAAA,EA5DX,OA4DW;;AAEX,UA3DA,yBAAA,CA2DA;EAAO,SAAA,IAAA,EAAA,OAAA;EAWP,SAAA,IAAA,EAAY,MAAA;EAgBZ,SAAA,KAAO,EAAA,MAAA;EAGI,SAAA,IAAA,EArFX,OAqFW;;AAEX,KApFL,oBAAA,GAAuB,8BAoFlB,GApFmD,yBAoFnD;AAAO,UAlFP,sBAAA,CAkFO;EAGP,SAAA,IAAA,EAAA,iBAAgB;EAGL,SAAA,IAAA,EAAA,SAAA,MAAA,EAAA;EACI,SAAA,IAAA,EAAA,SAtFN,oBAsFM,EAAA;EACf,SAAA,IAAA,EAtFA,OAsFA;;AAGA,UAtFA,YAAA,CAsFuB;EASX,SAAA,IAAA,EAAA,WAAA;EACG,SAAA,MAAA,EA9Fb,kBA8Fa;EACf,SAAA,IAAA,EAAA,MAAA;EAAO,SAAA,IAAA,EAAA,SA7FE,oBA6FF,EAAA;EAGP,SAAA,IAAA,EA/FA,OA+Fa;AAM9B;AAG4B,KArGhB,oBAAA,GAqGgB,MAAA;AACD,KApGf,iBAAA,GAAoB,YAoGL;AACS,UAnGnB,QAAA,CAmGmB;EACjB,SAAA,IAAA,EAAA,OAAA;EACF,SAAA,IAAA,EAAA,MAAA;EAAO,SAAA,QAAA,EAAA,MAAA;EAGP,SAAA,eAAqB,CAAA,EApGT,sBAoGS;EAKrB,SAAA,QAAA,EAAA,OAAsB;;;gCArGP;iBACf;;UAGA,mBAAA;;;iBAGA;;UAGA,kBAAA;;;iBAGA;;KAGL,iBAAA,GAAoB;UAEf,QAAA;;;4BAGW;gCACI;iBACf;;;;;;;;;;UAWA,YAAA;;;;;;;;;;;;;iBAaA;;UAGA,OAAA;;;4BAGW;gCACI;iBACf;;UAGA,gBAAA;;;4BAGW;gCACI;iBACf;;UAGA,uBAAA;;;;;;;;;6BASY;gCACG;iBACf;;UAGA,aAAA;;kCAEiB;iBACjB;;UAGA,cAAA;;;4BAGW;2BACD;oCACS;mBACjB;iBACF;;UAGA,qBAAA;;;;UAKA,sBAAA;gBACD;iCACiB"}
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@prisma-next/framework-components",
3
- "version": "0.5.0-dev.62",
3
+ "version": "0.5.0-dev.63",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "description": "Framework component types, assembly logic, and stack creation for Prisma Next",
8
8
  "dependencies": {
9
9
  "@standard-schema/spec": "^1.1.0",
10
- "@prisma-next/contract": "0.5.0-dev.62",
11
- "@prisma-next/operations": "0.5.0-dev.62",
12
- "@prisma-next/utils": "0.5.0-dev.62"
10
+ "@prisma-next/operations": "0.5.0-dev.63",
11
+ "@prisma-next/contract": "0.5.0-dev.63",
12
+ "@prisma-next/utils": "0.5.0-dev.63"
13
13
  },
14
14
  "devDependencies": {
15
15
  "tsdown": "0.18.4",
@@ -41,8 +41,27 @@ export interface ControlFamilyInstance<TFamilyId extends string, TSchemaIR>
41
41
  readonly configPath?: string;
42
42
  }): Promise<SignDatabaseResult>;
43
43
 
44
+ /**
45
+ * Reads the contract marker for `space` from the database, returning
46
+ * `null` if no marker row exists for that space (or if the marker
47
+ * table itself is missing).
48
+ *
49
+ * `space` is required at every call site so the type system surfaces
50
+ * every place that needs to thread the value: callers in single-app
51
+ * paths pass {@link import('./control-spaces').APP_SPACE_ID}
52
+ * (`'app'`); per-extension callers pass the extension's space id.
53
+ * Defaulting at the family-interface level was a silent bug door —
54
+ * it let multi-space-aware callers forget to pass `space` and
55
+ * collapse onto the app's marker row.
56
+ *
57
+ * Families whose underlying storage doesn't yet support per-space
58
+ * markers (Mongo, today) accept `space` for interface conformance and
59
+ * reject any non-`APP_SPACE_ID` value rather than silently ignoring
60
+ * it; see the family-specific implementation for details.
61
+ */
44
62
  readMarker(options: {
45
63
  readonly driver: ControlDriverInstance<TFamilyId, string>;
64
+ readonly space: string;
46
65
  }): Promise<ContractMarkerRecord | null>;
47
66
 
48
67
  introspect(options: {
@@ -14,6 +14,61 @@ import type { Result } from '@prisma-next/utils/result';
14
14
  import type { TargetBoundComponentDescriptor } from '../shared/framework-components';
15
15
  import type { ControlDriverInstance, ControlFamilyInstance } from './control-instances';
16
16
 
17
+ // ============================================================================
18
+ // Migration Package Metadata
19
+ // ============================================================================
20
+
21
+ /**
22
+ * Planner provenance recorded inside {@link MigrationMetadata}.
23
+ *
24
+ * `used` / `applied` track which migration hints the planner consulted
25
+ * vs. which it actually applied during emission; `plannerVersion`
26
+ * pins the planner build that produced the migration so future
27
+ * verification passes can recognise plans authored against an older
28
+ * planner.
29
+ */
30
+ export interface MigrationHints {
31
+ readonly used: readonly string[];
32
+ readonly applied: readonly string[];
33
+ readonly plannerVersion: string;
34
+ }
35
+
36
+ /**
37
+ * In-memory migration metadata envelope. Every migration is
38
+ * content-addressed: the `migrationHash` is a hash over the metadata
39
+ * envelope plus the operations list, computed at write time. There is no
40
+ * draft state — a migration directory either exists with fully attested
41
+ * metadata or it does not.
42
+ *
43
+ * When the planner cannot lower an operation because of an unfilled
44
+ * `placeholder(...)` slot, the migration is still written with
45
+ * `migrationHash` hashed over `ops: []`. Re-running self-emit after the
46
+ * user fills the placeholder produces a *different* `migrationHash`
47
+ * (committed to the real ops); this is intentional.
48
+ *
49
+ * The on-disk JSON shape in `migration.json` matches this type
50
+ * field-for-field — `JSON.stringify(metadata, null, 2)` is the canonical
51
+ * writer output (defined in `@prisma-next/migration-tools/io`).
52
+ */
53
+ export interface MigrationMetadata {
54
+ readonly migrationHash: string;
55
+ readonly from: string | null;
56
+ readonly to: string;
57
+ readonly fromContract: Contract | null;
58
+ readonly toContract: Contract;
59
+ readonly hints: MigrationHints;
60
+ readonly labels: readonly string[];
61
+ /**
62
+ * Sorted, deduplicated list of `invariantId`s declared by the
63
+ * migration's data-transform ops. Always present; an empty array
64
+ * means the migration has no routing-visible data transforms.
65
+ */
66
+ readonly providedInvariants: readonly string[];
67
+ readonly authorship?: { readonly author?: string; readonly email?: string };
68
+ readonly signature?: { readonly keyId: string; readonly value: string } | null;
69
+ readonly createdAt: string;
70
+ }
71
+
17
72
  // ============================================================================
18
73
  // Operation Classes and Policy
19
74
  // ============================================================================
@@ -298,6 +353,13 @@ export interface MigrationPlanner<
298
353
  readonly frameworkComponents: ReadonlyArray<
299
354
  TargetBoundComponentDescriptor<TFamilyId, TTargetId>
300
355
  >;
356
+ /**
357
+ * Contract space this plan applies to. Stamped onto the produced
358
+ * plan so the runner keys the marker row by the right space when
359
+ * executing. App-plan callers pass `APP_SPACE_ID` (`'app'`);
360
+ * per-extension callers pass the extension's space id.
361
+ */
362
+ readonly spaceId: string;
301
363
  }): MigrationPlannerResult;
302
364
 
303
365
  /**
@@ -306,8 +368,15 @@ export interface MigrationPlanner<
306
368
  * Used by `migration new` to scaffold a fresh `migration.ts`. The
307
369
  * returned plan has no operations; its `renderTypeScript()` yields a
308
370
  * stub the user can edit.
371
+ *
372
+ * `spaceId` is stamped onto the produced plan; reconciliation flows
373
+ * (`db init`, `db update`) and authoring flows (`migration new`) all
374
+ * pass it explicitly.
309
375
  */
310
- emptyMigration(context: MigrationScaffoldContext): MigrationPlanWithAuthoringSurface;
376
+ emptyMigration(
377
+ context: MigrationScaffoldContext,
378
+ spaceId: string,
379
+ ): MigrationPlanWithAuthoringSurface;
311
380
  }
312
381
 
313
382
  /**
@@ -0,0 +1,82 @@
1
+ import type { Contract } from '@prisma-next/contract/types';
2
+ import type { MigrationMetadata, MigrationPlanOperation } from './control-migration-types';
3
+
4
+ /**
5
+ * Canonical control-plane identifiers for contract spaces.
6
+ *
7
+ * A contract space is the disjoint `(contract.json, migration-graph)` unit
8
+ * the per-space planner / runner / verifier (project: extension contract
9
+ * spaces, TML-2397) operates on. The application owns one well-known
10
+ * space — the value below — and each loaded extension that contributes
11
+ * schema owns a uniquely-named space.
12
+ *
13
+ * Lives in `framework-components/control` so every layer that has to
14
+ * reason about space identity (the migration tooling, the SQL runtime's
15
+ * marker reader, target-side statement builders, target-side adapters)
16
+ * can import a single value rather than duplicating the literal. Raw
17
+ * `'app'` string literals in framework / target / runtime / adapter
18
+ * source code are forbidden and policed by
19
+ * `scripts/lint-app-space-id.mjs` (wired into `pnpm lint:deps`).
20
+ *
21
+ * @see specs/framework-mechanism.spec.md § 3 — Layout convention (γ).
22
+ */
23
+ export const APP_SPACE_ID = 'app' as const;
24
+
25
+ /**
26
+ * Pinned head ref for a contract space — the `(hash, invariants)` tuple
27
+ * a runner targets when applying that space's migration graph. Identical
28
+ * in shape to the on-disk `migrations/<space-id>/refs/head.json` the
29
+ * framework writes per loaded extension, and to the app-space
30
+ * `<projectRoot>/refs/head.json`. Family-agnostic: SQL, Mongo, and any
31
+ * future family share the same head-ref shape.
32
+ *
33
+ * @see specs/framework-mechanism.spec.md § 1.
34
+ */
35
+ export interface ContractSpaceHeadRef {
36
+ readonly hash: string;
37
+ readonly invariants: readonly string[];
38
+ }
39
+
40
+ /**
41
+ * Canonical structural shape of a migration package — the unit a planner
42
+ * produces and a runner consumes: a directory name, the ADR 197 metadata
43
+ * envelope (which carries the `toContract` snapshot), and the operation
44
+ * list.
45
+ *
46
+ * In-memory by default. Readers in `@prisma-next/migration-tools`
47
+ * (`readMigrationPackage` / `readMigrationsDir`) return the augmented
48
+ * {@link import('@prisma-next/migration-tools/package').OnDiskMigrationPackage}
49
+ * variant which adds `dirPath`; everything else operates against the
50
+ * canonical shape so the same value flows through pre-emission
51
+ * authoring, on-disk loading, and runner execution without conversion.
52
+ *
53
+ * @see specs/framework-mechanism.spec.md § 1.
54
+ */
55
+ export interface MigrationPackage {
56
+ readonly dirName: string;
57
+ readonly metadata: MigrationMetadata;
58
+ readonly ops: readonly MigrationPlanOperation[];
59
+ }
60
+
61
+ /**
62
+ * Canonical structural shape of a contract space — one disjoint
63
+ * `(contractJson, migration-graph)` unit the per-space planner / runner
64
+ * / verifier operates on. The application owns one well-known space
65
+ * ({@link APP_SPACE_ID}); each loaded extension that contributes schema
66
+ * owns a uniquely-named space. Whether a value is the app's space or an
67
+ * extension's space is a control-plane concern; the type carries no
68
+ * such distinction.
69
+ *
70
+ * Generic over the contract so each family pins a typed contract value
71
+ * at consumption time. The SQL family specialises to
72
+ * `ContractSpace<Contract<SqlStorage>>` at the descriptor surface;
73
+ * Mongo's symmetrical `ContractSpace<Contract<MongoStorage>>` will land
74
+ * with that family.
75
+ *
76
+ * @see specs/framework-mechanism.spec.md § 1.
77
+ */
78
+ export interface ContractSpace<TContract extends Contract = Contract> {
79
+ readonly contractJson: TContract;
80
+ readonly migrations: readonly MigrationPackage[];
81
+ readonly headRef: ContractSpaceHeadRef;
82
+ }
@@ -25,6 +25,8 @@ export type {
25
25
  ControlTargetInstance,
26
26
  } from '../control/control-instances';
27
27
  export type {
28
+ MigrationHints,
29
+ MigrationMetadata,
28
30
  MigrationOperationClass,
29
31
  MigrationOperationPolicy,
30
32
  MigrationPlan,
@@ -74,6 +76,12 @@ export type {
74
76
  SchemaTreeVisitor,
75
77
  } from '../control/control-schema-view';
76
78
  export { SchemaTreeNode } from '../control/control-schema-view';
79
+ export type {
80
+ ContractSpace,
81
+ ContractSpaceHeadRef,
82
+ MigrationPackage,
83
+ } from '../control/control-spaces';
84
+ export { APP_SPACE_ID } from '../control/control-spaces';
77
85
  export type {
78
86
  AssembledAuthoringContributions,
79
87
  ControlStack,