@prisma-next/family-sql 0.3.0-dev.4 → 0.3.0-dev.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/{exports/chunk-6P44BVZ4.js → chunk-6K3RPBDP.js} +3 -3
  2. package/dist/chunk-6K3RPBDP.js.map +1 -0
  3. package/dist/{exports/chunk-F252JMEU.js → chunk-BHEGVBY7.js} +1 -1
  4. package/dist/chunk-BHEGVBY7.js.map +1 -0
  5. package/dist/{exports/chunk-C3GKWCKA.js → chunk-SU7LN2UH.js} +1 -1
  6. package/dist/chunk-SU7LN2UH.js.map +1 -0
  7. package/dist/core/assembly.d.ts +25 -0
  8. package/dist/core/assembly.d.ts.map +1 -0
  9. package/dist/core/control-adapter.d.ts +42 -0
  10. package/dist/core/control-adapter.d.ts.map +1 -0
  11. package/dist/core/descriptor.d.ts +31 -0
  12. package/dist/core/descriptor.d.ts.map +1 -0
  13. package/dist/{exports/instance-DiZi2k_2.d.ts → core/instance.d.ts} +30 -15
  14. package/dist/core/instance.d.ts.map +1 -0
  15. package/dist/core/migrations/plan-helpers.d.ts +20 -0
  16. package/dist/core/migrations/plan-helpers.d.ts.map +1 -0
  17. package/dist/core/migrations/policies.d.ts +6 -0
  18. package/dist/core/migrations/policies.d.ts.map +1 -0
  19. package/dist/{exports/types-Bh7ftf0Q.d.ts → core/migrations/types.d.ts} +41 -36
  20. package/dist/core/migrations/types.d.ts.map +1 -0
  21. package/dist/core/runtime-descriptor.d.ts +19 -0
  22. package/dist/core/runtime-descriptor.d.ts.map +1 -0
  23. package/dist/core/runtime-instance.d.ts +54 -0
  24. package/dist/core/runtime-instance.d.ts.map +1 -0
  25. package/dist/core/schema-verify/verify-helpers.d.ts +50 -0
  26. package/dist/core/schema-verify/verify-helpers.d.ts.map +1 -0
  27. package/dist/core/schema-verify/verify-sql-schema.d.ts +45 -0
  28. package/dist/core/schema-verify/verify-sql-schema.d.ts.map +1 -0
  29. package/dist/core/verify.d.ts +39 -0
  30. package/dist/core/verify.d.ts.map +1 -0
  31. package/dist/exports/control-adapter.d.ts +2 -44
  32. package/dist/exports/control-adapter.d.ts.map +1 -0
  33. package/dist/exports/control.d.ts +8 -70
  34. package/dist/exports/control.d.ts.map +1 -0
  35. package/dist/exports/control.js +3 -3
  36. package/dist/exports/runtime.d.ts +3 -61
  37. package/dist/exports/runtime.d.ts.map +1 -0
  38. package/dist/exports/schema-verify.d.ts +8 -72
  39. package/dist/exports/schema-verify.d.ts.map +1 -0
  40. package/dist/exports/schema-verify.js +1 -1
  41. package/dist/exports/test-utils.d.ts +5 -31
  42. package/dist/exports/test-utils.d.ts.map +1 -0
  43. package/dist/exports/test-utils.js +3 -3
  44. package/dist/exports/verify.d.ts +2 -28
  45. package/dist/exports/verify.d.ts.map +1 -0
  46. package/dist/exports/verify.js +1 -1
  47. package/package.json +19 -18
  48. package/src/core/assembly.ts +117 -0
  49. package/src/core/control-adapter.ts +52 -0
  50. package/src/core/descriptor.ts +37 -0
  51. package/src/core/instance.ts +887 -0
  52. package/src/core/migrations/plan-helpers.ts +164 -0
  53. package/src/core/migrations/policies.ts +8 -0
  54. package/src/core/migrations/types.ts +380 -0
  55. package/src/core/runtime-descriptor.ts +45 -0
  56. package/src/core/runtime-instance.ts +144 -0
  57. package/src/core/schema-verify/verify-helpers.ts +514 -0
  58. package/src/core/schema-verify/verify-sql-schema.ts +584 -0
  59. package/src/core/verify.ts +177 -0
  60. package/src/exports/control-adapter.ts +1 -0
  61. package/src/exports/control.ts +56 -0
  62. package/src/exports/runtime.ts +7 -0
  63. package/src/exports/schema-verify.ts +11 -0
  64. package/src/exports/test-utils.ts +11 -0
  65. package/src/exports/verify.ts +1 -0
  66. package/dist/exports/chunk-6P44BVZ4.js.map +0 -1
  67. package/dist/exports/chunk-C3GKWCKA.js.map +0 -1
  68. package/dist/exports/chunk-F252JMEU.js.map +0 -1
@@ -1,75 +1,13 @@
1
- import * as _prisma_next_sql_contract_types from '@prisma-next/sql-contract/types';
2
- import * as _prisma_next_contract_types from '@prisma-next/contract/types';
3
- import * as _prisma_next_contract_ir from '@prisma-next/contract/ir';
4
- import { ControlFamilyDescriptor, ControlAdapterDescriptor, ControlDriverDescriptor, ControlExtensionDescriptor, MigrationOperationPolicy } from '@prisma-next/core-control-plane/types';
5
- export { MigrationOperationClass, MigrationOperationPolicy, MigrationPlan, MigrationPlanOperation, MigrationPlanner, MigrationPlannerConflict, MigrationPlannerResult, TargetMigrationsCapability } from '@prisma-next/core-control-plane/types';
6
- import { SqlControlAdapter } from './control-adapter.js';
7
- import { S as SqlControlFamilyInstance } from './instance-DiZi2k_2.js';
8
- export { a as SchemaVerifyOptions } from './instance-DiZi2k_2.js';
9
- import { S as SqlControlTargetDescriptor, C as CreateSqlMigrationPlanOptions, a as SqlMigrationPlan, b as SqlPlannerConflict, c as SqlPlannerFailureResult, d as SqlPlannerSuccessResult, e as SqlMigrationRunnerErrorCode, A as AnyRecord, f as SqlMigrationRunnerFailure, g as SqlMigrationRunnerSuccessValue } from './types-Bh7ftf0Q.js';
10
- export { h as ComponentDatabaseDependencies, i as ComponentDatabaseDependency, j as SqlControlExtensionDescriptor, k as SqlMigrationPlanContractInfo, n as SqlMigrationPlanOperation, o as SqlMigrationPlanOperationStep, p as SqlMigrationPlanOperationTarget, l as SqlMigrationPlanner, m as SqlMigrationPlannerPlanOptions, q as SqlMigrationRunner, r as SqlMigrationRunnerExecuteCallbacks, s as SqlMigrationRunnerExecuteOptions, t as SqlMigrationRunnerResult, u as SqlPlannerConflictKind, v as SqlPlannerConflictLocation, w as SqlPlannerResult } from './types-Bh7ftf0Q.js';
11
- import { NotOk, Ok } from '@prisma-next/utils/result';
12
- import '@prisma-next/sql-schema-ir/types';
13
- import '@prisma-next/contract/framework-components';
14
- import '@prisma-next/contract/pack-manifest-types';
15
- import '@prisma-next/core-control-plane/schema-view';
16
- import '@prisma-next/operations';
17
- import '@prisma-next/sql-operations';
18
-
19
- /**
20
- * SQL family descriptor implementation.
21
- * Provides the SQL family hook and factory method.
22
- */
23
- declare class SqlFamilyDescriptor implements ControlFamilyDescriptor<'sql', SqlControlFamilyInstance> {
24
- readonly kind: "family";
25
- readonly id = "sql";
26
- readonly familyId: "sql";
27
- readonly version = "0.0.1";
28
- readonly hook: {
29
- readonly id: "sql";
30
- readonly validateTypes: (ir: _prisma_next_contract_ir.ContractIR, _ctx: _prisma_next_contract_types.ValidationContext) => void;
31
- readonly validateStructure: (ir: _prisma_next_contract_ir.ContractIR) => void;
32
- readonly generateContractTypes: (ir: _prisma_next_contract_ir.ContractIR, codecTypeImports: ReadonlyArray<_prisma_next_contract_types.TypesImportSpec>, operationTypeImports: ReadonlyArray<_prisma_next_contract_types.TypesImportSpec>) => string;
33
- readonly generateStorageType: (storage: _prisma_next_sql_contract_types.SqlStorage) => string;
34
- readonly generateModelsType: (models: Record<string, _prisma_next_sql_contract_types.ModelDefinition> | undefined, storage: _prisma_next_sql_contract_types.SqlStorage) => string;
35
- readonly generateRelationsType: (relations: Record<string, unknown> | undefined) => string;
36
- readonly generateMappingsType: (models: Record<string, _prisma_next_sql_contract_types.ModelDefinition> | undefined, storage: _prisma_next_sql_contract_types.SqlStorage, codecTypes: string, operationTypes: string) => string;
37
- };
38
- create<TTargetId extends string, TTargetDetails>(options: {
39
- readonly target: SqlControlTargetDescriptor<TTargetId, TTargetDetails>;
40
- readonly adapter: ControlAdapterDescriptor<'sql', TTargetId, SqlControlAdapter<TTargetId>>;
41
- readonly driver: ControlDriverDescriptor<'sql', TTargetId>;
42
- readonly extensionPacks: readonly ControlExtensionDescriptor<'sql', TTargetId>[];
43
- }): SqlControlFamilyInstance;
44
- }
45
-
46
- declare function createMigrationPlan<TTargetDetails>(options: CreateSqlMigrationPlanOptions<TTargetDetails>): SqlMigrationPlan<TTargetDetails>;
47
- declare function plannerSuccess<TTargetDetails>(plan: SqlMigrationPlan<TTargetDetails>): SqlPlannerSuccessResult<TTargetDetails>;
48
- declare function plannerFailure(conflicts: readonly SqlPlannerConflict[]): SqlPlannerFailureResult;
49
- /**
50
- * Creates a successful migration runner result.
51
- */
52
- declare function runnerSuccess(value: {
53
- operationsPlanned: number;
54
- operationsExecuted: number;
55
- }): Ok<SqlMigrationRunnerSuccessValue>;
56
- /**
57
- * Creates a failed migration runner result.
58
- */
59
- declare function runnerFailure(code: SqlMigrationRunnerErrorCode, summary: string, options?: {
60
- why?: string;
61
- meta?: AnyRecord;
62
- }): NotOk<SqlMigrationRunnerFailure>;
63
-
64
- /**
65
- * Policy used by `db init`: additive-only operations, no widening/destructive steps.
66
- */
67
- declare const INIT_ADDITIVE_POLICY: MigrationOperationPolicy;
68
-
1
+ import { SqlFamilyDescriptor } from '../core/descriptor';
2
+ export type { MigrationOperationClass, MigrationOperationPolicy, MigrationPlan, MigrationPlanner, MigrationPlannerConflict, MigrationPlannerResult, MigrationPlanOperation, TargetMigrationsCapability, } from '@prisma-next/core-control-plane/types';
3
+ export type { SchemaVerifyOptions, SqlControlFamilyInstance } from '../core/instance';
4
+ export { createMigrationPlan, plannerFailure, plannerSuccess, runnerFailure, runnerSuccess, } from '../core/migrations/plan-helpers';
5
+ export { INIT_ADDITIVE_POLICY } from '../core/migrations/policies';
6
+ export type { ComponentDatabaseDependencies, ComponentDatabaseDependency, CreateSqlMigrationPlanOptions, SqlControlExtensionDescriptor, SqlControlTargetDescriptor, SqlMigrationPlan, SqlMigrationPlanContractInfo, SqlMigrationPlanner, SqlMigrationPlannerPlanOptions, SqlMigrationPlanOperation, SqlMigrationPlanOperationStep, SqlMigrationPlanOperationTarget, SqlMigrationRunner, SqlMigrationRunnerErrorCode, SqlMigrationRunnerExecuteCallbacks, SqlMigrationRunnerExecuteOptions, SqlMigrationRunnerFailure, SqlMigrationRunnerResult, SqlMigrationRunnerSuccessValue, SqlPlannerConflict, SqlPlannerConflictKind, SqlPlannerConflictLocation, SqlPlannerFailureResult, SqlPlannerResult, SqlPlannerSuccessResult, } from '../core/migrations/types';
69
7
  /**
70
8
  * SQL family descriptor for control plane (CLI/config).
71
9
  * Provides the SQL family hook and conversion helpers.
72
10
  */
73
11
  declare const _default: SqlFamilyDescriptor;
74
-
75
- export { CreateSqlMigrationPlanOptions, INIT_ADDITIVE_POLICY, SqlControlFamilyInstance, SqlControlTargetDescriptor, SqlMigrationPlan, SqlMigrationRunnerErrorCode, SqlMigrationRunnerFailure, SqlMigrationRunnerSuccessValue, SqlPlannerConflict, SqlPlannerFailureResult, SqlPlannerSuccessResult, createMigrationPlan, _default as default, plannerFailure, plannerSuccess, runnerFailure, runnerSuccess };
12
+ export default _default;
13
+ //# sourceMappingURL=control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/exports/control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD,YAAY,EACV,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,GACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,YAAY,EACV,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,EAC7B,6BAA6B,EAC7B,0BAA0B,EAC1B,gBAAgB,EAChB,4BAA4B,EAC5B,mBAAmB,EACnB,8BAA8B,EAC9B,yBAAyB,EACzB,6BAA6B,EAC7B,+BAA+B,EAC/B,kBAAkB,EAClB,2BAA2B,EAC3B,kCAAkC,EAClC,gCAAgC,EAChC,yBAAyB,EACzB,wBAAwB,EACxB,8BAA8B,EAC9B,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAElC;;;GAGG;;AACH,wBAAyC"}
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  createSqlFamilyInstance
3
- } from "./chunk-6P44BVZ4.js";
4
- import "./chunk-C3GKWCKA.js";
5
- import "./chunk-F252JMEU.js";
3
+ } from "../chunk-6K3RPBDP.js";
4
+ import "../chunk-SU7LN2UH.js";
5
+ import "../chunk-BHEGVBY7.js";
6
6
 
7
7
  // src/core/descriptor.ts
8
8
  import { sqlTargetFamilyHook } from "@prisma-next/sql-contract-emitter";
@@ -1,66 +1,8 @@
1
- import { RuntimeFamilyInstance, RuntimeDriverInstance, RuntimeFamilyDescriptor, RuntimeTargetDescriptor, RuntimeAdapterDescriptor, RuntimeDriverDescriptor, RuntimeExtensionDescriptor } from '@prisma-next/core-execution-plane/types';
2
- import { RuntimeVerifyOptions, Plugin, Log } from '@prisma-next/runtime-executor';
3
- import { SqlContract, SqlStorage } from '@prisma-next/sql-contract/types';
4
- import { Adapter, SelectAst, LoweredStatement, SqlDriver } from '@prisma-next/sql-relational-core/ast';
5
- import { Runtime, SqlRuntimeAdapterInstance } from '@prisma-next/sql-runtime';
6
-
7
- /**
8
- * SQL runtime driver instance type.
9
- * Combines identity properties with SQL-specific behavior methods.
10
- */
11
- type SqlRuntimeDriverInstance<TTargetId extends string = string> = RuntimeDriverInstance<'sql', TTargetId> & SqlDriver;
12
-
13
- /**
14
- * SQL runtime family instance interface.
15
- * Extends base RuntimeFamilyInstance with SQL-specific runtime creation method.
16
- */
17
- interface SqlRuntimeFamilyInstance extends RuntimeFamilyInstance<'sql'> {
18
- /**
19
- * Creates a SQL runtime from contract, driver options, and verification settings.
20
- *
21
- * Extension packs are routed through composition (at instance creation time),
22
- * not through this method. This aligns with control-plane composition patterns.
23
- *
24
- * @param options - Runtime creation options
25
- * @param options.contract - SQL contract
26
- * @param options.driverOptions - Driver options (e.g., PostgresDriverOptions)
27
- * @param options.verify - Runtime verification options
28
- * @param options.plugins - Optional plugins
29
- * @param options.mode - Optional runtime mode
30
- * @param options.log - Optional log instance
31
- * @returns Runtime instance
32
- */
33
- createRuntime<TContract extends SqlContract<SqlStorage>>(options: {
34
- readonly contract: TContract;
35
- readonly driverOptions: unknown;
36
- readonly verify: RuntimeVerifyOptions;
37
- readonly plugins?: readonly Plugin<TContract, Adapter<SelectAst, SqlContract<SqlStorage>, LoweredStatement>, SqlDriver>[];
38
- readonly mode?: 'strict' | 'permissive';
39
- readonly log?: Log;
40
- }): Runtime;
41
- }
42
-
43
- /**
44
- * SQL runtime family descriptor implementation.
45
- * Provides factory method to create SQL runtime family instance.
46
- */
47
- declare class SqlRuntimeFamilyDescriptor implements RuntimeFamilyDescriptor<'sql', SqlRuntimeFamilyInstance> {
48
- readonly kind: "family";
49
- readonly id = "sql";
50
- readonly familyId: "sql";
51
- readonly version = "0.0.1";
52
- create<TTargetId extends string>(options: {
53
- readonly target: RuntimeTargetDescriptor<'sql', TTargetId>;
54
- readonly adapter: RuntimeAdapterDescriptor<'sql', TTargetId, SqlRuntimeAdapterInstance<TTargetId>>;
55
- readonly driver: RuntimeDriverDescriptor<'sql', TTargetId, SqlRuntimeDriverInstance<TTargetId>>;
56
- readonly extensionPacks: readonly RuntimeExtensionDescriptor<'sql', TTargetId>[];
57
- }): SqlRuntimeFamilyInstance;
58
- }
59
-
1
+ import { SqlRuntimeFamilyDescriptor } from '../core/runtime-descriptor';
60
2
  /**
61
3
  * SQL runtime family descriptor for execution/runtime plane.
62
4
  * Provides factory method to create SQL runtime family instance.
63
5
  */
64
6
  declare const _default: SqlRuntimeFamilyDescriptor;
65
-
66
- export { _default as default };
7
+ export default _default;
8
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/exports/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE;;;GAGG;;AACH,wBAAgD"}
@@ -1,75 +1,11 @@
1
- import { SchemaIssue, SchemaVerificationNode, OperationContext, VerifyDatabaseSchemaResult } from '@prisma-next/core-control-plane/types';
2
- import { SqlSchemaIR } from '@prisma-next/sql-schema-ir/types';
3
- import { i as ComponentDatabaseDependency } from './types-Bh7ftf0Q.js';
4
- import { TargetBoundComponentDescriptor } from '@prisma-next/contract/framework-components';
5
- import { SqlContract, SqlStorage } from '@prisma-next/sql-contract/types';
6
- import '@prisma-next/utils/result';
7
- import './instance-DiZi2k_2.js';
8
- import '@prisma-next/contract/ir';
9
- import '@prisma-next/contract/pack-manifest-types';
10
- import '@prisma-next/contract/types';
11
- import '@prisma-next/core-control-plane/schema-view';
12
- import '@prisma-next/operations';
13
- import '@prisma-next/sql-operations';
14
-
15
1
  /**
16
- * Pure verification helper functions for SQL schema verification.
17
- * These functions verify schema IR against contract requirements.
18
- */
19
-
20
- /**
21
- * Compares two arrays of strings for equality (order-sensitive).
22
- */
23
- declare function arraysEqual(a: readonly string[], b: readonly string[]): boolean;
24
- /**
25
- * Verifies database dependencies are installed using component-owned verification hooks.
26
- * Each dependency provides a pure verifyDatabaseDependencyInstalled function that checks
27
- * whether the dependency is satisfied based on the in-memory schema IR (no DB I/O).
28
- *
29
- * Returns verification nodes for the tree.
30
- */
31
- declare function verifyDatabaseDependencies(dependencies: ReadonlyArray<ComponentDatabaseDependency<unknown>>, schema: SqlSchemaIR, issues: SchemaIssue[]): SchemaVerificationNode[];
32
-
33
- /**
34
- * Pure SQL schema verification function.
35
- *
36
- * This module provides a pure function that verifies a SqlSchemaIR against
37
- * a SqlContract without requiring a database connection. It can be reused
38
- * by migration planners and other tools that need to compare schema states.
39
- */
40
-
41
- /**
42
- * Options for the pure schema verification function.
43
- */
44
- interface VerifySqlSchemaOptions {
45
- /** The validated SQL contract to verify against */
46
- readonly contract: SqlContract<SqlStorage>;
47
- /** The schema IR from introspection (or another source) */
48
- readonly schema: SqlSchemaIR;
49
- /** Whether to run in strict mode (detects extra tables/columns) */
50
- readonly strict: boolean;
51
- /** Optional operation context for metadata */
52
- readonly context?: OperationContext;
53
- /** Type metadata registry for codec consistency warnings */
54
- readonly typeMetadataRegistry: ReadonlyMap<string, {
55
- nativeType?: string;
56
- }>;
57
- /**
58
- * Active framework components participating in this composition.
59
- * All components must have matching familyId ('sql') and targetId.
60
- */
61
- readonly frameworkComponents: ReadonlyArray<TargetBoundComponentDescriptor<'sql', string>>;
62
- }
63
- /**
64
- * Verifies that a SqlSchemaIR matches a SqlContract.
65
- *
66
- * This is a pure function that does NOT perform any database I/O.
67
- * It takes an already-introspected schema IR and compares it against
68
- * the contract requirements.
2
+ * Pure schema verification exports.
69
3
  *
70
- * @param options - Verification options
71
- * @returns VerifyDatabaseSchemaResult with verification tree and issues
4
+ * This module exports the pure schema verification function that can be used
5
+ * without a database connection. It's suitable for migration planning and
6
+ * other tools that need to compare schema states.
72
7
  */
73
- declare function verifySqlSchema(options: VerifySqlSchemaOptions): VerifyDatabaseSchemaResult;
74
-
75
- export { type VerifySqlSchemaOptions, arraysEqual, verifyDatabaseDependencies, verifySqlSchema };
8
+ export { arraysEqual, verifyDatabaseDependencies } from '../core/schema-verify/verify-helpers';
9
+ export type { VerifySqlSchemaOptions } from '../core/schema-verify/verify-sql-schema';
10
+ export { verifySqlSchema } from '../core/schema-verify/verify-sql-schema';
11
+ //# sourceMappingURL=schema-verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-verify.d.ts","sourceRoot":"","sources":["../../src/exports/schema-verify.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAC/F,YAAY,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC"}
@@ -2,7 +2,7 @@ import {
2
2
  arraysEqual,
3
3
  verifyDatabaseDependencies,
4
4
  verifySqlSchema
5
- } from "./chunk-F252JMEU.js";
5
+ } from "../chunk-BHEGVBY7.js";
6
6
  export {
7
7
  arraysEqual,
8
8
  verifyDatabaseDependencies,
@@ -1,33 +1,7 @@
1
- import { OperationManifest } from '@prisma-next/contract/pack-manifest-types';
2
- import { TypesImportSpec } from '@prisma-next/contract/types';
3
- import { ControlTargetDescriptor, ControlAdapterDescriptor, ControlExtensionDescriptor } from '@prisma-next/core-control-plane/types';
4
- import { OperationSignature, OperationRegistry } from '@prisma-next/operations';
5
- export { c as convertOperationManifest } from './instance-DiZi2k_2.js';
6
- import '@prisma-next/contract/framework-components';
7
- import '@prisma-next/contract/ir';
8
- import '@prisma-next/core-control-plane/schema-view';
9
- import '@prisma-next/sql-operations';
10
- import '@prisma-next/sql-schema-ir/types';
11
-
12
1
  /**
13
- * Assembles an operation registry from descriptors (adapter, target, extensions).
14
- * Loops over descriptors, extracts operations, converts them using the provided
15
- * conversion function, and registers them in a new registry.
2
+ * Test utilities for working with component descriptors.
3
+ * These functions operate on descriptors directly, used in tests and integration tests.
16
4
  */
17
- declare function assembleOperationRegistry(descriptors: ReadonlyArray<ControlTargetDescriptor<'sql', string> | ControlAdapterDescriptor<'sql', string> | ControlExtensionDescriptor<'sql', string>>, convertOperationManifest: (manifest: OperationManifest) => OperationSignature): OperationRegistry;
18
- /**
19
- * Extracts codec type imports from descriptors for contract.d.ts generation.
20
- */
21
- declare function extractCodecTypeImports(descriptors: ReadonlyArray<ControlTargetDescriptor<'sql', string> | ControlAdapterDescriptor<'sql', string> | ControlExtensionDescriptor<'sql', string>>): ReadonlyArray<TypesImportSpec>;
22
- /**
23
- * Extracts operation type imports from descriptors for contract.d.ts generation.
24
- */
25
- declare function extractOperationTypeImports(descriptors: ReadonlyArray<ControlTargetDescriptor<'sql', string> | ControlAdapterDescriptor<'sql', string> | ControlExtensionDescriptor<'sql', string>>): ReadonlyArray<TypesImportSpec>;
26
- /**
27
- * Extracts extension IDs from descriptors in deterministic order:
28
- * [adapter.id, target.id, ...extensions.map(e => e.id)]
29
- * Deduplicates while preserving stable order.
30
- */
31
- declare function extractExtensionIds(adapter: ControlAdapterDescriptor<'sql', string>, target: ControlTargetDescriptor<'sql', string>, extensions: ReadonlyArray<ControlExtensionDescriptor<'sql', string>>): ReadonlyArray<string>;
32
-
33
- export { assembleOperationRegistry, extractCodecTypeImports, extractExtensionIds, extractOperationTypeImports };
5
+ export { assembleOperationRegistry, extractCodecTypeImports, extractExtensionIds, extractOperationTypeImports, } from '../core/assembly';
6
+ export { convertOperationManifest } from '../core/instance';
7
+ //# sourceMappingURL=test-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../src/exports/test-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -4,9 +4,9 @@ import {
4
4
  extractCodecTypeImports,
5
5
  extractExtensionIds,
6
6
  extractOperationTypeImports
7
- } from "./chunk-6P44BVZ4.js";
8
- import "./chunk-C3GKWCKA.js";
9
- import "./chunk-F252JMEU.js";
7
+ } from "../chunk-6K3RPBDP.js";
8
+ import "../chunk-SU7LN2UH.js";
9
+ import "../chunk-BHEGVBY7.js";
10
10
  export {
11
11
  assembleOperationRegistry,
12
12
  convertOperationManifest,
@@ -1,28 +1,2 @@
1
- import { ContractMarkerRecord } from '@prisma-next/contract/types';
2
- import { ControlDriverInstance } from '@prisma-next/core-control-plane/types';
3
-
4
- /**
5
- * Parses a contract marker row from database query result.
6
- * This is SQL-specific parsing logic (handles SQL row structure with snake_case columns).
7
- */
8
- declare function parseContractMarkerRow(row: unknown): ContractMarkerRecord;
9
- /**
10
- * Returns the SQL statement to read the contract marker.
11
- * This is a migration-plane helper (no runtime imports).
12
- * @internal - Used internally by readMarker(). Prefer readMarker() for Control Plane usage.
13
- */
14
- declare function readMarkerSql(): {
15
- readonly sql: string;
16
- readonly params: readonly unknown[];
17
- };
18
- /**
19
- * Reads the contract marker from the database using the provided driver.
20
- * Returns the parsed marker record or null if no marker is found.
21
- * This abstracts SQL-specific details from the Control Plane.
22
- *
23
- * @param driver - ControlDriverInstance instance for executing queries
24
- * @returns Promise resolving to ContractMarkerRecord or null if marker not found
25
- */
26
- declare function readMarker(driver: ControlDriverInstance<'sql', string>): Promise<ContractMarkerRecord | null>;
27
-
28
- export { parseContractMarkerRow, readMarker, readMarkerSql };
1
+ export { parseContractMarkerRow, readMarker, readMarkerSql } from '../core/verify';
2
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/exports/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
@@ -2,7 +2,7 @@ import {
2
2
  parseContractMarkerRow,
3
3
  readMarker,
4
4
  readMarkerSql
5
- } from "./chunk-C3GKWCKA.js";
5
+ } from "../chunk-SU7LN2UH.js";
6
6
  export {
7
7
  parseContractMarkerRow,
8
8
  readMarker,
package/package.json CHANGED
@@ -1,36 +1,37 @@
1
1
  {
2
2
  "name": "@prisma-next/family-sql",
3
- "version": "0.3.0-dev.4",
3
+ "version": "0.3.0-dev.6",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "description": "SQL family descriptor for Prisma Next",
7
7
  "dependencies": {
8
8
  "arktype": "^2.0.0",
9
- "@prisma-next/cli": "0.3.0-dev.4",
10
- "@prisma-next/contract": "0.3.0-dev.4",
11
- "@prisma-next/core-control-plane": "0.3.0-dev.4",
12
- "@prisma-next/core-execution-plane": "0.3.0-dev.4",
13
- "@prisma-next/operations": "0.3.0-dev.4",
14
- "@prisma-next/runtime-executor": "0.3.0-dev.4",
15
- "@prisma-next/sql-contract": "0.3.0-dev.4",
16
- "@prisma-next/sql-contract-emitter": "0.3.0-dev.4",
17
- "@prisma-next/sql-contract-ts": "0.3.0-dev.4",
18
- "@prisma-next/sql-operations": "0.3.0-dev.4",
19
- "@prisma-next/sql-relational-core": "0.3.0-dev.4",
20
- "@prisma-next/sql-runtime": "0.3.0-dev.4",
21
- "@prisma-next/sql-schema-ir": "0.3.0-dev.4",
22
- "@prisma-next/utils": "0.3.0-dev.4"
9
+ "@prisma-next/cli": "0.3.0-dev.6",
10
+ "@prisma-next/contract": "0.3.0-dev.6",
11
+ "@prisma-next/core-control-plane": "0.3.0-dev.6",
12
+ "@prisma-next/core-execution-plane": "0.3.0-dev.6",
13
+ "@prisma-next/operations": "0.3.0-dev.6",
14
+ "@prisma-next/runtime-executor": "0.3.0-dev.6",
15
+ "@prisma-next/sql-contract": "0.3.0-dev.6",
16
+ "@prisma-next/sql-contract-emitter": "0.3.0-dev.6",
17
+ "@prisma-next/sql-contract-ts": "0.3.0-dev.6",
18
+ "@prisma-next/sql-operations": "0.3.0-dev.6",
19
+ "@prisma-next/sql-relational-core": "0.3.0-dev.6",
20
+ "@prisma-next/sql-runtime": "0.3.0-dev.6",
21
+ "@prisma-next/sql-schema-ir": "0.3.0-dev.6",
22
+ "@prisma-next/utils": "0.3.0-dev.6"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@vitest/coverage-v8": "4.0.16",
26
26
  "tsup": "8.5.1",
27
27
  "typescript": "5.9.3",
28
28
  "vitest": "4.0.16",
29
- "@prisma-next/driver-postgres": "0.3.0-dev.4",
29
+ "@prisma-next/driver-postgres": "0.3.0-dev.6",
30
30
  "@prisma-next/test-utils": "0.0.1"
31
31
  },
32
32
  "files": [
33
- "dist"
33
+ "dist",
34
+ "src"
34
35
  ],
35
36
  "exports": {
36
37
  "./control": {
@@ -59,7 +60,7 @@
59
60
  }
60
61
  },
61
62
  "scripts": {
62
- "build": "tsup --config tsup.config.ts",
63
+ "build": "tsup --config tsup.config.ts && tsc --project tsconfig.build.json",
63
64
  "test": "vitest run",
64
65
  "test:coverage": "vitest run --coverage",
65
66
  "typecheck": "tsc --project tsconfig.json --noEmit",
@@ -0,0 +1,117 @@
1
+ import type { OperationManifest } from '@prisma-next/contract/pack-manifest-types';
2
+ import type { TypesImportSpec } from '@prisma-next/contract/types';
3
+ import type {
4
+ ControlAdapterDescriptor,
5
+ ControlExtensionDescriptor,
6
+ ControlTargetDescriptor,
7
+ } from '@prisma-next/core-control-plane/types';
8
+ import type { OperationRegistry, OperationSignature } from '@prisma-next/operations';
9
+ import { createOperationRegistry } from '@prisma-next/operations';
10
+
11
+ /**
12
+ * Assembles an operation registry from descriptors (adapter, target, extensions).
13
+ * Loops over descriptors, extracts operations, converts them using the provided
14
+ * conversion function, and registers them in a new registry.
15
+ */
16
+ export function assembleOperationRegistry(
17
+ descriptors: ReadonlyArray<
18
+ | ControlTargetDescriptor<'sql', string>
19
+ | ControlAdapterDescriptor<'sql', string>
20
+ | ControlExtensionDescriptor<'sql', string>
21
+ >,
22
+ convertOperationManifest: (manifest: OperationManifest) => OperationSignature,
23
+ ): OperationRegistry {
24
+ const registry = createOperationRegistry();
25
+
26
+ for (const descriptor of descriptors) {
27
+ const operations = descriptor.operations ?? [];
28
+ for (const operationManifest of operations as ReadonlyArray<OperationManifest>) {
29
+ const signature = convertOperationManifest(operationManifest);
30
+ registry.register(signature);
31
+ }
32
+ }
33
+
34
+ return registry;
35
+ }
36
+
37
+ /**
38
+ * Extracts codec type imports from descriptors for contract.d.ts generation.
39
+ */
40
+ export function extractCodecTypeImports(
41
+ descriptors: ReadonlyArray<
42
+ | ControlTargetDescriptor<'sql', string>
43
+ | ControlAdapterDescriptor<'sql', string>
44
+ | ControlExtensionDescriptor<'sql', string>
45
+ >,
46
+ ): ReadonlyArray<TypesImportSpec> {
47
+ const imports: TypesImportSpec[] = [];
48
+
49
+ for (const descriptor of descriptors) {
50
+ const types = descriptor.types;
51
+ const codecTypes = types?.codecTypes;
52
+ if (codecTypes?.import) {
53
+ imports.push(codecTypes.import);
54
+ }
55
+ }
56
+
57
+ return imports;
58
+ }
59
+
60
+ /**
61
+ * Extracts operation type imports from descriptors for contract.d.ts generation.
62
+ */
63
+ export function extractOperationTypeImports(
64
+ descriptors: ReadonlyArray<
65
+ | ControlTargetDescriptor<'sql', string>
66
+ | ControlAdapterDescriptor<'sql', string>
67
+ | ControlExtensionDescriptor<'sql', string>
68
+ >,
69
+ ): ReadonlyArray<TypesImportSpec> {
70
+ const imports: TypesImportSpec[] = [];
71
+
72
+ for (const descriptor of descriptors) {
73
+ const types = descriptor.types;
74
+ const operationTypes = types?.operationTypes;
75
+ if (operationTypes?.import) {
76
+ imports.push(operationTypes.import);
77
+ }
78
+ }
79
+
80
+ return imports;
81
+ }
82
+
83
+ /**
84
+ * Extracts extension IDs from descriptors in deterministic order:
85
+ * [adapter.id, target.id, ...extensions.map(e => e.id)]
86
+ * Deduplicates while preserving stable order.
87
+ */
88
+ export function extractExtensionIds(
89
+ adapter: ControlAdapterDescriptor<'sql', string>,
90
+ target: ControlTargetDescriptor<'sql', string>,
91
+ extensions: ReadonlyArray<ControlExtensionDescriptor<'sql', string>>,
92
+ ): ReadonlyArray<string> {
93
+ const ids: string[] = [];
94
+ const seen = new Set<string>();
95
+
96
+ // Add adapter first
97
+ if (!seen.has(adapter.id)) {
98
+ ids.push(adapter.id);
99
+ seen.add(adapter.id);
100
+ }
101
+
102
+ // Add target second
103
+ if (!seen.has(target.id)) {
104
+ ids.push(target.id);
105
+ seen.add(target.id);
106
+ }
107
+
108
+ // Add extensions in order
109
+ for (const ext of extensions) {
110
+ if (!seen.has(ext.id)) {
111
+ ids.push(ext.id);
112
+ seen.add(ext.id);
113
+ }
114
+ }
115
+
116
+ return ids;
117
+ }
@@ -0,0 +1,52 @@
1
+ import type {
2
+ ControlAdapterInstance,
3
+ ControlDriverInstance,
4
+ } from '@prisma-next/core-control-plane/types';
5
+ import type { SqlSchemaIR } from '@prisma-next/sql-schema-ir/types';
6
+
7
+ /**
8
+ * SQL control adapter interface for control-plane operations.
9
+ * Implemented by target-specific adapters (e.g., Postgres, MySQL).
10
+ *
11
+ * @template TTarget - The target ID (e.g., 'postgres', 'mysql')
12
+ */
13
+ export interface SqlControlAdapter<TTarget extends string = string>
14
+ extends ControlAdapterInstance<'sql', TTarget> {
15
+ /**
16
+ * The target ID this adapter implements.
17
+ * Used for type tracking and runtime validation.
18
+ * @deprecated Use targetId from ControlAdapterInstance instead
19
+ */
20
+ readonly target: TTarget;
21
+
22
+ /**
23
+ * Introspects a database schema and returns a raw SqlSchemaIR.
24
+ *
25
+ * This is a pure schema discovery operation that queries the database catalog
26
+ * and returns the schema structure without type mapping or contract enrichment.
27
+ * Type mapping and enrichment are handled separately by enrichment helpers.
28
+ *
29
+ * @param driver - ControlDriverInstance instance for executing queries (target-specific)
30
+ * @param contractIR - Optional contract IR for contract-guided introspection (filtering, optimization)
31
+ * @param schema - Schema name to introspect (defaults to 'public')
32
+ * @returns Promise resolving to SqlSchemaIR representing the live database schema
33
+ */
34
+ introspect(
35
+ driver: ControlDriverInstance<'sql', TTarget>,
36
+ contractIR?: unknown,
37
+ schema?: string,
38
+ ): Promise<SqlSchemaIR>;
39
+ }
40
+
41
+ /**
42
+ * SQL control adapter descriptor interface.
43
+ * Provides a factory method to create control adapter instances.
44
+ *
45
+ * @template TTarget - The target ID (e.g., 'postgres', 'mysql')
46
+ */
47
+ export interface SqlControlAdapterDescriptor<TTarget extends string = string> {
48
+ /**
49
+ * Creates a SQL control adapter instance for control-plane operations.
50
+ */
51
+ create(): SqlControlAdapter<TTarget>;
52
+ }