@prisma-next/family-sql 0.3.0-dev.4 → 0.3.0-dev.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -6
- package/dist/assembly-BVS641kd.mjs +106 -0
- package/dist/assembly-BVS641kd.mjs.map +1 -0
- package/dist/control-adapter.d.mts +60 -0
- package/dist/control-adapter.d.mts.map +1 -0
- package/dist/control-adapter.mjs +1 -0
- package/dist/control-instance-Cvmn5zpn.d.mts +292 -0
- package/dist/control-instance-Cvmn5zpn.d.mts.map +1 -0
- package/dist/control.d.mts +64 -0
- package/dist/control.d.mts.map +1 -0
- package/dist/control.mjs +534 -0
- package/dist/control.mjs.map +1 -0
- package/dist/runtime.d.mts +27 -0
- package/dist/runtime.d.mts.map +1 -0
- package/dist/runtime.mjs +38 -0
- package/dist/runtime.mjs.map +1 -0
- package/dist/schema-verify.d.mts +48 -0
- package/dist/schema-verify.d.mts.map +1 -0
- package/dist/schema-verify.mjs +4 -0
- package/dist/test-utils.d.mts +2 -0
- package/dist/test-utils.mjs +3 -0
- package/dist/verify-BfMETJcM.mjs +108 -0
- package/dist/verify-BfMETJcM.mjs.map +1 -0
- package/dist/verify-sql-schema-B4T5MEuz.mjs +934 -0
- package/dist/verify-sql-schema-B4T5MEuz.mjs.map +1 -0
- package/dist/verify-sql-schema-CvQoGm2Q.d.mts +67 -0
- package/dist/verify-sql-schema-CvQoGm2Q.d.mts.map +1 -0
- package/dist/{exports/verify.d.ts → verify.d.mts} +8 -5
- package/dist/verify.d.mts.map +1 -0
- package/dist/verify.mjs +3 -0
- package/package.json +38 -48
- package/src/core/assembly.ts +216 -0
- package/src/core/control-adapter.ts +67 -0
- package/src/core/control-descriptor.ts +37 -0
- package/src/core/control-instance.ts +750 -0
- package/src/core/migrations/plan-helpers.ts +164 -0
- package/src/core/migrations/policies.ts +8 -0
- package/src/core/migrations/types.ts +279 -0
- package/src/core/runtime-descriptor.ts +23 -0
- package/src/core/runtime-instance.ts +22 -0
- package/src/core/schema-verify/verify-helpers.ts +532 -0
- package/src/core/schema-verify/verify-sql-schema.ts +1011 -0
- package/src/core/verify.ts +168 -0
- package/src/exports/control-adapter.ts +1 -0
- package/src/exports/control.ts +59 -0
- package/src/exports/runtime.ts +3 -0
- package/src/exports/schema-verify.ts +19 -0
- package/src/exports/test-utils.ts +10 -0
- package/src/exports/verify.ts +1 -0
- package/dist/exports/chunk-6P44BVZ4.js +0 -580
- package/dist/exports/chunk-6P44BVZ4.js.map +0 -1
- package/dist/exports/chunk-C3GKWCKA.js +0 -96
- package/dist/exports/chunk-C3GKWCKA.js.map +0 -1
- package/dist/exports/chunk-F252JMEU.js +0 -772
- package/dist/exports/chunk-F252JMEU.js.map +0 -1
- package/dist/exports/control-adapter.d.ts +0 -44
- package/dist/exports/control-adapter.js +0 -1
- package/dist/exports/control-adapter.js.map +0 -1
- package/dist/exports/control.d.ts +0 -75
- package/dist/exports/control.js +0 -149
- package/dist/exports/control.js.map +0 -1
- package/dist/exports/instance-DiZi2k_2.d.ts +0 -127
- package/dist/exports/runtime.d.ts +0 -66
- package/dist/exports/runtime.js +0 -64
- package/dist/exports/runtime.js.map +0 -1
- package/dist/exports/schema-verify.d.ts +0 -75
- package/dist/exports/schema-verify.js +0 -11
- package/dist/exports/schema-verify.js.map +0 -1
- package/dist/exports/test-utils.d.ts +0 -33
- package/dist/exports/test-utils.js +0 -17
- package/dist/exports/test-utils.js.map +0 -1
- package/dist/exports/types-Bh7ftf0Q.d.ts +0 -275
- package/dist/exports/verify.js +0 -11
- package/dist/exports/verify.js.map +0 -1
|
@@ -0,0 +1,67 @@
|
|
|
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
|
+
import type { DefaultNormalizer, NativeTypeNormalizer } from './schema-verify/verify-sql-schema';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* SQL control adapter interface for control-plane operations.
|
|
10
|
+
* Implemented by target-specific adapters (e.g., Postgres, MySQL).
|
|
11
|
+
*
|
|
12
|
+
* @template TTarget - The target ID (e.g., 'postgres', 'mysql')
|
|
13
|
+
*/
|
|
14
|
+
export interface SqlControlAdapter<TTarget extends string = string>
|
|
15
|
+
extends ControlAdapterInstance<'sql', TTarget> {
|
|
16
|
+
/**
|
|
17
|
+
* The target ID this adapter implements.
|
|
18
|
+
* Used for type tracking and runtime validation.
|
|
19
|
+
* @deprecated Use targetId from ControlAdapterInstance instead
|
|
20
|
+
*/
|
|
21
|
+
readonly target: TTarget;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Introspects a database schema and returns a raw SqlSchemaIR.
|
|
25
|
+
*
|
|
26
|
+
* This is a pure schema discovery operation that queries the database catalog
|
|
27
|
+
* and returns the schema structure without type mapping or contract enrichment.
|
|
28
|
+
* Type mapping and enrichment are handled separately by enrichment helpers.
|
|
29
|
+
*
|
|
30
|
+
* @param driver - ControlDriverInstance instance for executing queries (target-specific)
|
|
31
|
+
* @param contractIR - Optional contract IR for contract-guided introspection (filtering, optimization)
|
|
32
|
+
* @param schema - Schema name to introspect (defaults to 'public')
|
|
33
|
+
* @returns Promise resolving to SqlSchemaIR representing the live database schema
|
|
34
|
+
*/
|
|
35
|
+
introspect(
|
|
36
|
+
driver: ControlDriverInstance<'sql', TTarget>,
|
|
37
|
+
contractIR?: unknown,
|
|
38
|
+
schema?: string,
|
|
39
|
+
): Promise<SqlSchemaIR>;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Optional target-specific normalizer for raw database default expressions.
|
|
43
|
+
* When provided, schema defaults (raw strings) are normalized before comparison
|
|
44
|
+
* with contract defaults (ColumnDefault objects) during schema verification.
|
|
45
|
+
*/
|
|
46
|
+
readonly normalizeDefault?: DefaultNormalizer;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Optional target-specific normalizer for schema native type names.
|
|
50
|
+
* When provided, schema native types (from introspection) are normalized
|
|
51
|
+
* before comparison with contract native types during schema verification.
|
|
52
|
+
*/
|
|
53
|
+
readonly normalizeNativeType?: NativeTypeNormalizer;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* SQL control adapter descriptor interface.
|
|
58
|
+
* Provides a factory method to create control adapter instances.
|
|
59
|
+
*
|
|
60
|
+
* @template TTarget - The target ID (e.g., 'postgres', 'mysql')
|
|
61
|
+
*/
|
|
62
|
+
export interface SqlControlAdapterDescriptor<TTarget extends string = string> {
|
|
63
|
+
/**
|
|
64
|
+
* Creates a SQL control adapter instance for control-plane operations.
|
|
65
|
+
*/
|
|
66
|
+
create(): SqlControlAdapter<TTarget>;
|
|
67
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { TargetDescriptor } from '@prisma-next/contract/framework-components';
|
|
2
|
+
import type {
|
|
3
|
+
ControlFamilyDescriptor,
|
|
4
|
+
ControlPlaneStack,
|
|
5
|
+
} from '@prisma-next/core-control-plane/types';
|
|
6
|
+
import { sqlTargetFamilyHook } from '@prisma-next/sql-contract-emitter';
|
|
7
|
+
import type { SqlControlDescriptorWithContributions } from './assembly';
|
|
8
|
+
import { createSqlFamilyInstance, type SqlControlFamilyInstance } from './control-instance';
|
|
9
|
+
import type {
|
|
10
|
+
SqlControlAdapterDescriptor,
|
|
11
|
+
SqlControlExtensionDescriptor,
|
|
12
|
+
} from './migrations/types';
|
|
13
|
+
|
|
14
|
+
export class SqlFamilyDescriptor
|
|
15
|
+
implements ControlFamilyDescriptor<'sql', SqlControlFamilyInstance>
|
|
16
|
+
{
|
|
17
|
+
readonly kind = 'family' as const;
|
|
18
|
+
readonly id = 'sql';
|
|
19
|
+
readonly familyId = 'sql' as const;
|
|
20
|
+
readonly version = '0.0.1';
|
|
21
|
+
readonly hook = sqlTargetFamilyHook;
|
|
22
|
+
|
|
23
|
+
create<TTargetId extends string>(
|
|
24
|
+
stack: ControlPlaneStack<'sql', TTargetId>,
|
|
25
|
+
): SqlControlFamilyInstance {
|
|
26
|
+
const target = stack.target as unknown as TargetDescriptor<'sql', TTargetId> &
|
|
27
|
+
SqlControlDescriptorWithContributions;
|
|
28
|
+
const adapter = stack.adapter as unknown as SqlControlAdapterDescriptor<TTargetId>;
|
|
29
|
+
const extensionPacks =
|
|
30
|
+
stack.extensionPacks as unknown as readonly SqlControlExtensionDescriptor<TTargetId>[];
|
|
31
|
+
return createSqlFamilyInstance({
|
|
32
|
+
target,
|
|
33
|
+
adapter,
|
|
34
|
+
extensionPacks,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|