@prisma-next/family-mongo 0.8.0 → 0.9.0-dev.2

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 (37) hide show
  1. package/README.md +23 -10
  2. package/dist/control-adapter.d.mts +75 -0
  3. package/dist/control-adapter.d.mts.map +1 -0
  4. package/dist/control-adapter.mjs +1 -0
  5. package/dist/control.d.mts +65 -17
  6. package/dist/control.d.mts.map +1 -1
  7. package/dist/control.mjs +257 -276
  8. package/dist/control.mjs.map +1 -1
  9. package/dist/ir.d.mts +131 -0
  10. package/dist/ir.d.mts.map +1 -0
  11. package/dist/ir.mjs +54 -0
  12. package/dist/ir.mjs.map +1 -0
  13. package/dist/mongo-contract-serializer-Co3EaTVj.mjs +98 -0
  14. package/dist/mongo-contract-serializer-Co3EaTVj.mjs.map +1 -0
  15. package/dist/schema-verify.d.mts +22 -2
  16. package/dist/schema-verify.d.mts.map +1 -0
  17. package/dist/schema-verify.mjs +1 -1
  18. package/dist/verify-mongo-schema-BL7t9YTB.mjs +592 -0
  19. package/dist/verify-mongo-schema-BL7t9YTB.mjs.map +1 -0
  20. package/package.json +18 -20
  21. package/src/core/contract-to-schema.ts +84 -0
  22. package/src/core/control-adapter.ts +97 -0
  23. package/src/core/control-instance.ts +280 -273
  24. package/src/core/control-target-descriptor.ts +26 -0
  25. package/src/core/control-types.ts +6 -4
  26. package/src/core/ir/mongo-contract-serializer-base.ts +124 -0
  27. package/src/core/ir/mongo-contract-serializer.ts +18 -0
  28. package/src/core/ir/mongo-schema-verifier-base.ts +87 -0
  29. package/src/core/operation-preview.ts +131 -0
  30. package/src/core/schema-diff.ts +402 -0
  31. package/src/core/schema-verify/canonicalize-introspection.ts +389 -0
  32. package/src/core/schema-verify/verify-mongo-schema.ts +60 -0
  33. package/src/exports/control-adapter.ts +1 -0
  34. package/src/exports/control.ts +8 -1
  35. package/src/exports/ir.ts +3 -0
  36. package/src/exports/schema-verify.ts +4 -2
  37. package/src/core/mongo-target-descriptor.ts +0 -180
package/README.md CHANGED
@@ -6,7 +6,9 @@ Mongo family descriptor and family pack for Prisma Next.
6
6
 
7
7
  This package is the Mongo family integration point for both control-plane assembly and authoring-time pack composition. It provides:
8
8
 
9
- - the Mongo `ControlFamilyDescriptor` and `mongoTargetDescriptor` used by configs and CLI flows
9
+ - the Mongo `ControlFamilyDescriptor` used by configs and CLI flows
10
+ - the `MongoControlAdapter` SPI that lets adapters supply wire-level marker-ledger and introspection implementations
11
+ - family-shared verification and operation-preview helpers (`verifyMongoSchema`, `formatMongoOperations`)
10
12
  - the pure-data Mongo family pack ref used by `contract.ts` authoring
11
13
  - a cohesive dependency surface for the Mongo family, including `@prisma-next/mongo-contract-ts`
12
14
 
@@ -14,16 +16,19 @@ This package is the Mongo family integration point for both control-plane assemb
14
16
 
15
17
  - **Control-plane assembly**: Exposes `mongoFamilyDescriptor` and `createMongoFamilyInstance()` for validation and emission flows.
16
18
  - **Family hook integration**: Wires `mongoEmission` from `@prisma-next/mongo-emitter` into the family descriptor.
17
- - **Target bridge**: Exposes a `mongoTargetDescriptor` built from `@prisma-next/target-mongo/pack` metadata for control-plane stacks.
19
+ - **Adapter SPI**: Defines `MongoControlAdapter` the contract `@prisma-next/adapter-mongo` implements for marker-ledger CAS, ledger appends, and schema introspection. `MongoControlFamilyInstance` resolves the adapter from the control stack and dispatches wire-level work through it.
20
+ - **Family-shared verification**: Owns `verifyMongoSchema` (the structural diff against introspected `MongoSchemaIR`) and the `MongoSchemaVerifierBase` walk used by per-target verifiers.
18
21
  - **Authoring-time family pack**: Exposes `@prisma-next/family-mongo/pack` so `defineContract(...)` can bind a Mongo contract to the Mongo family without importing control-plane code.
19
22
  - **Validation and emission**: Delegates Mongo contract validation to `@prisma-next/mongo-contract` and contract emission to the shared emitter pipeline.
20
23
 
21
24
  ## Entrypoints
22
25
 
23
- - `./control`: control-plane entrypoint exporting `mongoFamilyDescriptor`, `mongoTargetDescriptor`, `createMongoFamilyInstance`, and `MongoControlFamilyInstance`
26
+ - `./control`: control-plane entrypoint exporting `mongoFamilyDescriptor`, `createMongoFamilyInstance`, `MongoControlFamilyInstance`, and family-shared helpers (`contractToMongoSchemaIR`, `formatMongoOperations`, `diffMongoSchemas`)
27
+ - `./control-adapter`: SPI surface — `MongoControlAdapter` and `MongoControlAdapterDescriptor`, implemented by `@prisma-next/adapter-mongo`
28
+ - `./ir`: Mongo family IR abstract bases (`MongoContractSerializerBase`, `MongoSchemaVerifierBase`) extended by target packages. The concrete `MongoStorage` storage class lives in the foundation package `@prisma-next/mongo-contract`.
24
29
  - `./migration`: migration authoring — `Migration` class, factory functions, and strategies (re-exported from `@prisma-next/target-mongo/migration`)
25
30
  - `./pack`: pure pack ref for TypeScript authoring flows such as `@prisma-next/mongo-contract-ts/contract-builder`
26
- - `./schema-verify`: re-exports the pure `verifyMongoSchema(...)` from `@prisma-next/target-mongo/schema-verify`. `MongoFamilyInstance.schemaVerify` (i.e. `db verify --schema-only`) and the `MongoMigrationRunner` post-apply verify step both call into this shared verifier, so both surfaces agree on "matches the contract" by construction
31
+ - `./schema-verify`: family-shared `verifyMongoSchema(...)`. The CLI `db verify --schema-only` path and the `MongoMigrationRunner` post-apply verify step both call into this shared verifier, so both surfaces agree on "matches the contract" by construction
27
32
 
28
33
  ## Usage
29
34
 
@@ -31,7 +36,8 @@ This package is the Mongo family integration point for both control-plane assemb
31
36
 
32
37
  ```typescript
33
38
  import { createControlStack } from '@prisma-next/framework-components/control';
34
- import { mongoFamilyDescriptor, mongoTargetDescriptor } from '@prisma-next/family-mongo/control';
39
+ import { mongoFamilyDescriptor } from '@prisma-next/family-mongo/control';
40
+ import { mongoTargetDescriptor } from '@prisma-next/target-mongo/control';
35
41
 
36
42
  const stack = createControlStack({
37
43
  family: mongoFamilyDescriptor,
@@ -40,7 +46,7 @@ const stack = createControlStack({
40
46
 
41
47
  const familyInstance = mongoFamilyDescriptor.create(stack);
42
48
 
43
- const contract = familyInstance.validateContract(contractJson);
49
+ const contract = familyInstance.deserializeContract(contractJson);
44
50
  const result = await familyInstance.emitContract({ contract });
45
51
  ```
46
52
 
@@ -129,13 +135,19 @@ Run `node migration.ts` to produce `ops.json` and `migration.json`. Use `--dry-r
129
135
  ## Package Structure
130
136
 
131
137
  - `src/core/control-descriptor.ts`: `MongoFamilyDescriptor` implementation
132
- - `src/core/control-instance.ts`: `createMongoFamilyInstance()` and `MongoControlFamilyInstance`
133
- - `src/core/mongo-target-descriptor.ts`: pre-built control target descriptor derived from `@prisma-next/target-mongo/pack`
138
+ - `src/core/control-instance.ts`: `createMongoFamilyInstance()` and `MongoControlFamilyInstance` — resolves the `MongoControlAdapter` from the control stack and dispatches wire-level work through it
139
+ - `src/core/control-adapter.ts`: `MongoControlAdapter` SPI definition
140
+ - `src/core/control-target-descriptor.ts`: `MongoControlTargetDescriptor` interface (concrete `mongoTargetDescriptor` lives in `@prisma-next/target-mongo`)
141
+ - `src/core/ir/`: Mongo family IR abstract bases (`MongoContractSerializerBase`, `MongoSchemaVerifierBase`); the concrete `MongoStorage` class lives at `@prisma-next/mongo-contract/ir/mongo-storage.ts`
142
+ - `src/core/operation-preview.ts`: family-shared `formatMongoOperations` / `mongoOperationsToPreview`
143
+ - `src/core/schema-verify/verify-mongo-schema.ts`: family-shared `verifyMongoSchema(...)`
134
144
  - `src/core/mongo-migration.ts`: `MongoMigration` class (fixes the `Migration<TOperation>` type parameter to `MongoMigrationPlanOperation`)
135
145
  - `src/exports/control.ts`: control-plane entrypoint
146
+ - `src/exports/control-adapter.ts`: adapter SPI entrypoint
147
+ - `src/exports/ir.ts`: IR abstract base entrypoint
136
148
  - `src/exports/migration.ts`: migration authoring entrypoint
137
149
  - `src/exports/pack.ts`: authoring-time family pack ref
138
- - `src/exports/schema-verify.ts`: schema-verify entrypoint that re-exports from `@prisma-next/target-mongo/schema-verify`
150
+ - `src/exports/schema-verify.ts`: schema-verify entrypoint exposing the family-shared `verifyMongoSchema`
139
151
 
140
152
  ## Dependencies
141
153
 
@@ -145,4 +157,5 @@ Run `node migration.ts` to produce `ops.json` and `migration.json`. Use `--dry-r
145
157
  - `@prisma-next/mongo-contract-ts`: Mongo `contract.ts` authoring surface
146
158
  - `@prisma-next/mongo-emitter`: Mongo family emission hook
147
159
  - `@prisma-next/mongo-query-ast`: Mongo command AST types (`MongoMigrationPlanOperation`)
148
- - `@prisma-next/target-mongo`: Mongo target pack metadata and migration factories
160
+
161
+ This package carries no runtime dependency on `@prisma-next/target-mongo`, `@prisma-next/adapter-mongo`, or `@prisma-next/driver-mongo` — those lower layers depend on the family and adapter SPI defined here, matching the layering used by the SQL family.
@@ -0,0 +1,75 @@
1
+ import { MongoSchemaIR } from "@prisma-next/mongo-schema-ir";
2
+ import { ControlAdapterDescriptor, ControlAdapterInstance, ControlDriverInstance } from "@prisma-next/framework-components/control";
3
+ import { ContractMarkerRecord } from "@prisma-next/contract/types";
4
+
5
+ //#region src/core/control-adapter.d.ts
6
+ /**
7
+ * Mongo control adapter interface for control-plane operations.
8
+ * Implemented by target-specific adapters (e.g. `@prisma-next/adapter-mongo`).
9
+ *
10
+ * Mirrors `SqlControlAdapter` so the family layer dispatches every
11
+ * driver-bound wire operation through a single SPI surface instead of
12
+ * importing target-package internals directly. The adapter is the
13
+ * natural home for these method bodies because it owns both the
14
+ * `ControlDriverInstance` (which exposes the underlying `Db`) and the
15
+ * Mongo command vocabulary used to talk to it.
16
+ *
17
+ * @template TTarget - The target ID (today only `'mongo'`).
18
+ */
19
+ interface MongoControlAdapter<TTarget extends string = string> extends ControlAdapterInstance<'mongo', TTarget> {
20
+ /**
21
+ * Reads the contract marker document for `space`, or returns `null`
22
+ * if no marker document has been written for that space yet. Each
23
+ * space owns one document keyed by `_id: <space>` in the
24
+ * `_prisma_migrations` collection.
25
+ */
26
+ readMarker(driver: ControlDriverInstance<'mongo', TTarget>, space: string): Promise<ContractMarkerRecord | null>;
27
+ /**
28
+ * Reads every marker document (one per contract space) and returns
29
+ * them keyed by `space`. Used by the per-space verifier to detect
30
+ * marker-vs-on-disk drift and orphan marker rows. Returns an empty
31
+ * map when no marker documents exist yet.
32
+ */
33
+ readAllMarkers(driver: ControlDriverInstance<'mongo', TTarget>): Promise<ReadonlyMap<string, ContractMarkerRecord>>;
34
+ /**
35
+ * Inserts an initial marker document for the given space.
36
+ */
37
+ initMarker(driver: ControlDriverInstance<'mongo', TTarget>, space: string, destination: {
38
+ readonly storageHash: string;
39
+ readonly profileHash: string;
40
+ readonly invariants?: readonly string[];
41
+ }): Promise<void>;
42
+ /**
43
+ * Atomically updates the marker document for `space` (CAS on
44
+ * `expectedFrom`). Returns `true` when the CAS succeeded, `false`
45
+ * when another process advanced the marker first.
46
+ */
47
+ updateMarker(driver: ControlDriverInstance<'mongo', TTarget>, space: string, expectedFrom: string, destination: {
48
+ readonly storageHash: string;
49
+ readonly profileHash: string;
50
+ readonly invariants?: readonly string[];
51
+ }): Promise<boolean>;
52
+ /**
53
+ * Appends a ledger entry for the given space. Ledger entries co-exist
54
+ * with marker documents in the same collection; their key shape
55
+ * distinguishes them at read time.
56
+ */
57
+ writeLedgerEntry(driver: ControlDriverInstance<'mongo', TTarget>, space: string, entry: {
58
+ readonly edgeId: string;
59
+ readonly from: string;
60
+ readonly to: string;
61
+ }): Promise<void>;
62
+ /**
63
+ * Introspects the live database and returns a `MongoSchemaIR`.
64
+ */
65
+ introspectSchema(driver: ControlDriverInstance<'mongo', TTarget>): Promise<MongoSchemaIR>;
66
+ }
67
+ /**
68
+ * Mongo control adapter descriptor. Mirrors `SqlControlAdapterDescriptor`:
69
+ * extends the framework's `ControlAdapterDescriptor` and narrows the
70
+ * `create()` return to a `MongoControlAdapter<TTarget>`.
71
+ */
72
+ interface MongoControlAdapterDescriptor<TTarget extends string = string> extends ControlAdapterDescriptor<'mongo', TTarget, MongoControlAdapter<TTarget>> {}
73
+ //#endregion
74
+ export { type MongoControlAdapter, type MongoControlAdapterDescriptor };
75
+ //# sourceMappingURL=control-adapter.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-adapter.d.mts","names":[],"sources":["../src/core/control-adapter.ts"],"mappings":";;;;;;;AAqBA;;;;;;;;;;;UAAiB,mBAAA,0CACP,sBAAA,UAAgC,OAAA;EAoBrC;;;;;;EAbH,UAAA,CACE,MAAA,EAAQ,qBAAA,UAA+B,OAAA,GACvC,KAAA,WACC,OAAA,CAAQ,oBAAA;EA+C8B;;;;;;EAvCzC,cAAA,CACE,MAAA,EAAQ,qBAAA,UAA+B,OAAA,IACtC,OAAA,CAAQ,WAAA,SAAoB,oBAAA;EApBvB;;;EAyBR,UAAA,CACE,MAAA,EAAQ,qBAAA,UAA+B,OAAA,GACvC,KAAA,UACA,WAAA;IAAA,SACW,WAAA;IAAA,SACA,WAAA;IAAA,SACA,UAAA;EAAA,IAEV,OAAA;EAzBsC;;;;;EAgCzC,YAAA,CACE,MAAA,EAAQ,qBAAA,UAA+B,OAAA,GACvC,KAAA,UACA,YAAA,UACA,WAAA;IAAA,SACW,WAAA;IAAA,SACA,WAAA;IAAA,SACA,UAAA;EAAA,IAEV,OAAA;EA7BQ;;;;;EAoCX,gBAAA,CACE,MAAA,EAAQ,qBAAA,UAA+B,OAAA,GACvC,KAAA,UACA,KAAA;IAAA,SAAkB,MAAA;IAAA,SAAyB,IAAA;IAAA,SAAuB,EAAA;EAAA,IACjE,OAAA;EAhCD;;;EAqCF,gBAAA,CAAiB,MAAA,EAAQ,qBAAA,UAA+B,OAAA,IAAW,OAAA,CAAQ,aAAA;AAAA;;;;;;UAQ5D,6BAAA,0CACP,wBAAA,UAAkC,OAAA,EAAS,mBAAA,CAAoB,OAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,17 +1,48 @@
1
- import { ContractSpace, ControlExtensionDescriptor, ControlFamilyDescriptor, ControlFamilyInstance, ControlStack, MigratableTargetDescriptor, OperationPreviewCapable, SchemaViewCapable } from "@prisma-next/framework-components/control";
2
- import { MongoContract, MongoStorage } from "@prisma-next/mongo-contract";
3
1
  import { MongoSchemaIR } from "@prisma-next/mongo-schema-ir";
2
+ import { ContractSerializer, ContractSpace, ControlExtensionDescriptor, ControlFamilyDescriptor, ControlFamilyInstance, ControlStack, MigratableTargetDescriptor, MigrationPlanOperation, OperationPreview, OperationPreviewCapable, SchemaIssue, SchemaVerificationNode, SchemaVerifier, SchemaViewCapable } from "@prisma-next/framework-components/control";
3
+ import { MongoContract, MongoStorageShape } from "@prisma-next/mongo-contract";
4
4
  import { Contract } from "@prisma-next/contract/types";
5
5
 
6
+ //#region src/core/contract-to-schema.d.ts
7
+ declare function contractToMongoSchemaIR(contract: MongoContract | null): MongoSchemaIR;
8
+ //#endregion
6
9
  //#region src/core/control-instance.d.ts
7
10
  interface MongoControlFamilyInstance extends ControlFamilyInstance<'mongo', MongoSchemaIR>, SchemaViewCapable<MongoSchemaIR>, OperationPreviewCapable {
8
- validateContract(contractJson: unknown): Contract;
11
+ /**
12
+ * The family seam-of-record for on-disk contract reads. Structurally
13
+ * validates the JSON envelope, then casts to the framework `Contract`
14
+ * shape; the per-target serializer (held on the Mongo target
15
+ * descriptor) does the class-form wrap for downstream consumers, so
16
+ * the family only needs the validated data. The single named entry
17
+ * point every CLI on-disk read crosses (TML-2536) — `as Contract`
18
+ * casts in production package sources are a serializer-bypass smell
19
+ * guarded by `pnpm lint:no-contract-cast`.
20
+ */
21
+ deserializeContract(contractJson: unknown): Contract;
9
22
  }
10
23
  declare function createMongoFamilyInstance(controlStack: ControlStack): MongoControlFamilyInstance;
11
24
  //#endregion
12
25
  //#region src/core/control-descriptor.d.ts
13
26
  declare const mongoFamilyDescriptor: ControlFamilyDescriptor<'mongo', MongoControlFamilyInstance>;
14
27
  //#endregion
28
+ //#region src/core/control-target-descriptor.d.ts
29
+ /**
30
+ * Mongo target control descriptor type. Extends the framework's
31
+ * `MigratableTargetDescriptor` with two named SPI properties next to
32
+ * the existing `migrations` capability:
33
+ *
34
+ * - `contractSerializer` — JSON to class boundary for Mongo contracts.
35
+ * - `schemaVerifier` — per-target verifier walking the family contract
36
+ * against `MongoSchemaIR`.
37
+ *
38
+ * The descriptor itself is the aggregator; no extra `Target<TContract,
39
+ * TSchema>` interface is introduced.
40
+ */
41
+ interface MongoControlTargetDescriptor<TContract extends MongoContract = MongoContract> extends MigratableTargetDescriptor<'mongo', 'mongo', MongoControlFamilyInstance> {
42
+ readonly contractSerializer: ContractSerializer<TContract>;
43
+ readonly schemaVerifier: SchemaVerifier<TContract, MongoSchemaIR>;
44
+ }
45
+ //#endregion
15
46
  //#region src/core/control-types.d.ts
16
47
  /**
17
48
  * Mongo-family extension descriptor.
@@ -23,25 +54,42 @@ declare const mongoFamilyDescriptor: ControlFamilyDescriptor<'mongo', MongoContr
23
54
  * The shape comes from `@prisma-next/framework-components/control`
24
55
  * (`ContractSpace`) — contract-space identity is a framework concept,
25
56
  * not a Mongo-specific one. The Mongo family specialises the generic
26
- * to `MongoContract<MongoStorage>` so descriptor authors continue to
27
- * see a typed contract value. Mirrors `SqlControlExtensionDescriptor`.
57
+ * to `MongoContract<MongoStorageShape>` so descriptor authors see a
58
+ * typed contract value over the raw-JSON envelope shape; the runtime
59
+ * in-memory class `MongoStorage` structurally satisfies the shape.
60
+ * Mirrors `SqlControlExtensionDescriptor`.
28
61
  */
29
62
  interface MongoControlExtensionDescriptor extends ControlExtensionDescriptor<'mongo', 'mongo'> {
30
- readonly contractSpace?: ContractSpace<MongoContract<MongoStorage>>;
63
+ readonly contractSpace?: ContractSpace<MongoContract<MongoStorageShape>>;
31
64
  }
32
65
  //#endregion
33
- //#region src/core/mongo-target-descriptor.d.ts
66
+ //#region src/core/operation-preview.d.ts
67
+ declare function formatMongoOperations(operations: readonly MigrationPlanOperation[]): string[];
34
68
  /**
35
- * `migration.ts` default-exports a `Migration` subclass whose `operations`
36
- * getter returns the ordered list of operations and whose `describe()`
37
- * returns the manifest identity metadata. `MongoMigrationPlanner.plan()`
38
- * returns a `MigrationPlanWithAuthoringSurface` that knows how to render
39
- * itself back to such a file; `MongoMigrationPlanner.emptyMigration()`
40
- * returns the same shape for `migration new`. Users run the scaffolded
41
- * `migration.ts` directly (via `node migration.ts`) to self-emit
42
- * `ops.json` and attest the `migrationHash`.
69
+ * Wraps `formatMongoOperations` into the family-agnostic
70
+ * `OperationPreview` shape. Each statement carries
71
+ * `language: 'mongodb-shell'`. Mirrors `sqlOperationsToPreview`.
43
72
  */
44
- declare const mongoTargetDescriptor: MigratableTargetDescriptor<'mongo', 'mongo', MongoControlFamilyInstance>;
73
+ declare function mongoOperationsToPreview(operations: readonly MigrationPlanOperation[]): OperationPreview;
74
+ //#endregion
75
+ //#region src/core/schema-diff.d.ts
76
+ declare function diffMongoSchemas(live: MongoSchemaIR, expected: MongoSchemaIR, strict: boolean): {
77
+ root: SchemaVerificationNode;
78
+ issues: SchemaIssue[];
79
+ counts: {
80
+ pass: number;
81
+ warn: number;
82
+ fail: number;
83
+ totalNodes: number;
84
+ };
85
+ };
86
+ //#endregion
87
+ //#region src/core/schema-verify/canonicalize-introspection.d.ts
88
+ interface CanonicalizedSchemas {
89
+ readonly live: MongoSchemaIR;
90
+ readonly expected: MongoSchemaIR;
91
+ }
92
+ declare function canonicalizeSchemasForVerification(live: MongoSchemaIR, expected: MongoSchemaIR): CanonicalizedSchemas;
45
93
  //#endregion
46
- export { type MongoControlExtensionDescriptor, type MongoControlFamilyInstance, createMongoFamilyInstance, mongoFamilyDescriptor, mongoTargetDescriptor };
94
+ export { type MongoControlExtensionDescriptor, type MongoControlFamilyInstance, type MongoControlTargetDescriptor, canonicalizeSchemasForVerification, contractToMongoSchemaIR, createMongoFamilyInstance, diffMongoSchemas, formatMongoOperations, mongoFamilyDescriptor, mongoOperationsToPreview };
47
95
  //# sourceMappingURL=control.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"control.d.mts","names":[],"sources":["../src/core/control-instance.ts","../src/core/control-descriptor.ts","../src/core/control-types.ts","../src/core/mongo-target-descriptor.ts"],"mappings":";;;;;;UAuCiB,0BAAA,SACP,qBAAA,UAA+B,aAAA,GACrC,iBAAA,CAAkB,aAAA,GAClB,uBAAA;EACF,gBAAA,CAAiB,YAAA,YAAwB,QAAA;AAAA;AAAA,iBAmT3B,yBAAA,CAA0B,YAAA,EAAc,YAAA,GAAe,0BAAA;;;cCvU1D,qBAAA,EAAuB,uBAAA,UAAiC,0BAAA;;;;;;;ADgBrE;;;;;;;;;UEpBiB,+BAAA,SACP,0BAAA;EAAA,SACC,aAAA,GAAgB,aAAA,CAAc,aAAA,CAAc,YAAA;AAAA;;;;;;;AFkBvD;;;;;;cGEa,qBAAA,EAAuB,0BAAA,mBAGlC,0BAAA"}
1
+ {"version":3,"file":"control.d.mts","names":[],"sources":["../src/core/contract-to-schema.ts","../src/core/control-instance.ts","../src/core/control-descriptor.ts","../src/core/control-target-descriptor.ts","../src/core/control-types.ts","../src/core/operation-preview.ts","../src/core/schema-diff.ts","../src/core/schema-verify/canonicalize-introspection.ts"],"mappings":";;;;;;iBAyEgB,uBAAA,CAAwB,QAAA,EAAU,aAAA,UAAuB,aAAA;;;UCzCxD,0BAAA,SACP,qBAAA,UAA+B,aAAA,GACrC,iBAAA,CAAkB,aAAA,GAClB,uBAAA;;;ADsCJ;;;;;;;;EC3BE,mBAAA,CAAoB,YAAA,YAAwB,QAAA;AAAA;AAAA,iBAmF9B,yBAAA,CAA0B,YAAA,EAAc,YAAA,GAAe,0BAAA;;;cC1G1D,qBAAA,EAAuB,uBAAA,UAAiC,0BAAA;;;;;AFkDrE;;;;;;;;;;UGpDiB,4BAAA,mBAA+C,aAAA,GAAgB,aAAA,UACtE,0BAAA,mBAA6C,0BAAA;EAAA,SAC5C,kBAAA,EAAoB,kBAAA,CAAmB,SAAA;EAAA,SACvC,cAAA,EAAgB,cAAA,CAAe,SAAA,EAAW,aAAA;AAAA;;;;;;;AHiDrD;;;;;;;;;;;UIpDiB,+BAAA,SACP,0BAAA;EAAA,SACC,aAAA,GAAgB,aAAA,CAAc,aAAA,CAAc,iBAAA;AAAA;;;iBC6EvC,qBAAA,CAAsB,UAAA,WAAqB,sBAAA;;;;;AL3B3D;iBKgDgB,wBAAA,CACd,UAAA,WAAqB,sBAAA,KACpB,gBAAA;;;iBChHa,gBAAA,CACd,IAAA,EAAM,aAAA,EACN,QAAA,EAAU,aAAA,EACV,MAAA;EAEA,IAAA,EAAM,sBAAA;EACN,MAAA,EAAQ,WAAA;EACR,MAAA;IAAU,IAAA;IAAc,IAAA;IAAc,IAAA;IAAc,UAAA;EAAA;AAAA;;;UCYrC,oBAAA;EAAA,SACN,IAAA,EAAM,aAAA;EAAA,SACN,QAAA,EAAU,aAAA;AAAA;AAAA,iBAGL,kCAAA,CACd,IAAA,EAAM,aAAA,EACN,QAAA,EAAU,aAAA,GACT,oBAAA"}