@prisma-next/contract 0.5.0-dev.23 → 0.5.0-dev.24

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 CHANGED
@@ -11,7 +11,7 @@ Core contract data types and JSON schemas for Prisma Next.
11
11
  This package provides the foundational type definitions for Prisma Next data contracts:
12
12
 
13
13
  - **Contract data types**: The canonical description of an application's data model and storage layout (`ContractBase`, `DocumentContract`, `Source`, `FieldType`)
14
- - **Plan metadata**: Target-family-agnostic plan metadata types (`PlanMeta`, `ParamDescriptor`, `PlanRefs`). The plan markers themselves (`QueryPlan`, `ExecutionPlan`) live in `@prisma-next/framework-components/runtime`; family-specific plans (`SqlExecutionPlan`, `MongoExecutionPlan`) live in their respective domains.
14
+ - **Plan metadata**: Target-family-agnostic plan metadata (`PlanMeta`). The plan markers themselves (`QueryPlan`, `ExecutionPlan`) live in `@prisma-next/framework-components/runtime`; family-specific plans (`SqlExecutionPlan`, `MongoExecutionPlan`) live in their respective domains. Per [ADR 205](../../../../docs/architecture%20docs/adrs/ADR%20205%20-%20Execution%20metadata%20lives%20on%20AST.md), execution metadata (codec IDs, projection refs, parameter descriptors) lives on the family AST when one is present, not on `PlanMeta`.
15
15
  - **Hash types**: Branded hash types for storage, execution, and profile hashing (`StorageHashBase`, `ExecutionHashBase`, `ProfileHashBase`)
16
16
  - **JSON Schemas**: Validation schemas for contract files
17
17
  - **Type guards**: Runtime type guards for narrowing contract types (`isDocumentContract`)
@@ -60,16 +60,6 @@ For SQL contracts, use `@prisma-next/sql-contract-ts/schema-sql` instead.
60
60
 
61
61
  ## Type System
62
62
 
63
- ### Plan Types
64
-
65
- `ParamDescriptor` describes a single parameter in an execution plan:
66
-
67
- - **`source`**: Origin of the parameter (`'dsl'`, `'raw'`, or `'lane'`)
68
- - **`index`** (optional): 1-based position into `plan.params`
69
- - **`name`** (optional): Parameter name for codec resolution
70
- - **`codecId`**, **`nativeType`**, **`nullable`** (optional): Type metadata from contract
71
- - **`refs`** (optional): `{ table, column }` when the param is used against a known column
72
-
73
63
  ### Column Defaults
74
64
 
75
65
  - When adding column defaults, re-emit the contract and verify the emitted JSON includes the full default payload.
@@ -177,30 +177,6 @@ interface DocCollection {
177
177
  readonly indexes?: ReadonlyArray<DocIndex>;
178
178
  readonly readOnly?: boolean;
179
179
  }
180
- interface ParamDescriptor {
181
- readonly index?: number;
182
- readonly name?: string;
183
- readonly codecId?: string;
184
- readonly nativeType?: string;
185
- readonly nullable?: boolean;
186
- readonly source: 'dsl' | 'raw' | 'lane';
187
- readonly refs?: {
188
- table: string;
189
- column: string;
190
- };
191
- }
192
- interface PlanRefs {
193
- readonly tables?: readonly string[];
194
- readonly columns?: ReadonlyArray<{
195
- table: string;
196
- column: string;
197
- }>;
198
- readonly indexes?: ReadonlyArray<{
199
- readonly table: string;
200
- readonly columns: ReadonlyArray<string>;
201
- readonly name?: string;
202
- }>;
203
- }
204
180
  interface PlanMeta {
205
181
  readonly target: string;
206
182
  readonly targetFamily?: string;
@@ -208,17 +184,8 @@ interface PlanMeta {
208
184
  readonly profileHash?: string;
209
185
  readonly lane: string;
210
186
  readonly annotations?: {
211
- codecs?: Record<string, string>;
212
- [key: string]: unknown;
187
+ readonly [key: string]: unknown;
213
188
  };
214
- readonly paramDescriptors: ReadonlyArray<ParamDescriptor>;
215
- readonly refs?: PlanRefs;
216
- readonly projection?: Record<string, string> | ReadonlyArray<string>;
217
- /**
218
- * Optional mapping of projection alias → column type ID (fully qualified ns/name@version).
219
- * Used for codec resolution when AST+refs don't provide enough type info.
220
- */
221
- readonly projectionTypes?: Record<string, string>;
222
189
  }
223
190
  /**
224
191
  * Contract marker record stored in the database.
@@ -280,5 +247,5 @@ interface Contract<TStorage extends StorageBase = StorageBase, TModels extends R
280
247
  readonly meta: Record<string, unknown>;
281
248
  }
282
249
  //#endregion
283
- export { ContractDiscriminator as A, ContractVariantEntry as B, ProfileHashBase as C, coreHash as D, StorageHashBase as E, ContractModelBase as F, UnionFieldType as G, ModelStorageBase as H, ContractReferenceRelation as I, ValueObjectFieldType as K, ContractRelation as L, ContractField as M, ContractFieldType as N, executionHash as O, ContractModel as P, ContractRelationOn as R, PlanRefs as S, StorageBase as T, ReferenceRelationKeys as U, EmbedRelationKeys as V, ScalarFieldType as W, GeneratedValueSpec as _, ColumnDefault as a, ParamDescriptor as b, ContractMarkerRecord as c, ExecutionHashBase as d, ExecutionMutationDefault as f, FieldType as g, Expr as h, Brand as i, ContractEmbedRelation as j, profileHash as k, DocCollection as l, ExecutionSection as m, ContractExecutionSection as n, ColumnDefaultLiteralInputValue as o, ExecutionMutationDefaultValue as p, $ as r, ColumnDefaultLiteralValue as s, Contract as t, DocIndex as u, JsonPrimitive as v, Source as w, PlanMeta as x, JsonValue as y, ContractValueObject as z };
284
- //# sourceMappingURL=contract-types-CBpVDR8h.d.mts.map
250
+ export { ContractField as A, ModelStorageBase as B, StorageBase as C, profileHash as D, executionHash as E, ContractRelation as F, ScalarFieldType as H, ContractRelationOn as I, ContractValueObject as L, ContractModel as M, ContractModelBase as N, ContractDiscriminator as O, ContractReferenceRelation as P, ContractVariantEntry as R, Source as S, coreHash as T, UnionFieldType as U, ReferenceRelationKeys as V, ValueObjectFieldType as W, GeneratedValueSpec as _, ColumnDefault as a, PlanMeta as b, ContractMarkerRecord as c, ExecutionHashBase as d, ExecutionMutationDefault as f, FieldType as g, Expr as h, Brand as i, ContractFieldType as j, ContractEmbedRelation as k, DocCollection as l, ExecutionSection as m, ContractExecutionSection as n, ColumnDefaultLiteralInputValue as o, ExecutionMutationDefaultValue as p, $ as r, ColumnDefaultLiteralValue as s, Contract as t, DocIndex as u, JsonPrimitive as v, StorageHashBase as w, ProfileHashBase as x, JsonValue as y, EmbedRelationKeys as z };
251
+ //# sourceMappingURL=contract-types-DULFYxpd.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract-types-CBpVDR8h.d.mts","names":[],"sources":["../src/domain-types.ts","../src/types.ts","../src/contract-types.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"contract-types-DULFYxpd.d.mts","names":[],"sources":["../src/domain-types.ts","../src/types.ts","../src/contract-types.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { C as ProfileHashBase, E as StorageHashBase, d as ExecutionHashBase, t as Contract } from "./contract-types-CBpVDR8h.mjs";
1
+ import { d as ExecutionHashBase, t as Contract, w as StorageHashBase, x as ProfileHashBase } from "./contract-types-DULFYxpd.mjs";
2
2
 
3
3
  //#region src/canonicalization.d.ts
4
4
  declare function canonicalizeContractToObject(contract: Contract, options?: {
@@ -1,4 +1,4 @@
1
- import { C as ProfileHashBase, E as StorageHashBase, F as ContractModelBase, H as ModelStorageBase, P as ContractModel, T as StorageBase, m as ExecutionSection, t as Contract, z as ContractValueObject } from "./contract-types-CBpVDR8h.mjs";
1
+ import { B as ModelStorageBase, C as StorageBase, L as ContractValueObject, M as ContractModel, N as ContractModelBase, m as ExecutionSection, t as Contract, w as StorageHashBase, x as ProfileHashBase } from "./contract-types-DULFYxpd.mjs";
2
2
 
3
3
  //#region src/testing-factories.d.ts
4
4
  type ContractOverrides<TStorage extends StorageBase = StorageBase, TModels extends Record<string, ContractModelBase> = Record<string, ContractModel>> = {
@@ -1 +1 @@
1
- {"version":3,"file":"types-aMyNgejf.mjs","names":[],"sources":["../src/types.ts"],"sourcesContent":["/**\n * Unique symbol used as the key for branding types.\n */\nexport const $: unique symbol = Symbol('__prisma_next_brand__');\n\n/**\n * A helper type to brand a given type with a unique identifier.\n *\n * @template TKey Text used as the brand key.\n * @template TValue Optional value associated with the brand key. Defaults to `true`.\n */\nexport type Brand<TKey extends string | number | symbol, TValue = true> = {\n [$]: {\n [K in TKey]: TValue;\n };\n};\n\n/**\n * Base type for storage contract hashes.\n * Emitted contract.d.ts files use this with the hash value as a type parameter:\n * `type StorageHash = StorageHashBase<'sha256:abc123...'>`\n */\nexport type StorageHashBase<THash extends string> = THash & Brand<'StorageHash'>;\n\n/**\n * Base type for execution contract hashes.\n * Emitted contract.d.ts files use this with the hash value as a type parameter:\n * `type ExecutionHash = ExecutionHashBase<'sha256:def456...'>`\n */\nexport type ExecutionHashBase<THash extends string> = THash & Brand<'ExecutionHash'>;\n\nexport function executionHash<const T extends string>(value: T): ExecutionHashBase<T> {\n return value as ExecutionHashBase<T>;\n}\n\nexport function coreHash<const T extends string>(value: T): StorageHashBase<T> {\n return value as StorageHashBase<T>;\n}\n\n/**\n * Base type for profile contract hashes.\n * Emitted contract.d.ts files use this with the hash value as a type parameter:\n * `type ProfileHash = ProfileHashBase<'sha256:def456...'>`\n */\nexport type ProfileHashBase<THash extends string> = THash & Brand<'ProfileHash'>;\n\nexport function profileHash<const T extends string>(value: T): ProfileHashBase<T> {\n return value as ProfileHashBase<T>;\n}\n\n/**\n * Base type for family-specific storage blocks.\n * Family storage types (SqlStorage, MongoStorage, etc.) extend this to carry the\n * storage hash alongside family-specific data (tables, collections, etc.).\n */\nexport interface StorageBase<THash extends string = string> {\n readonly storageHash: StorageHashBase<THash>;\n}\n\nexport interface FieldType {\n readonly type: string;\n readonly nullable: boolean;\n readonly items?: FieldType;\n readonly properties?: Record<string, FieldType>;\n}\n\nexport type GeneratedValueSpec = {\n readonly id: string;\n readonly params?: Record<string, unknown>;\n};\n\nexport type JsonPrimitive = string | number | boolean | null;\n\nexport type JsonValue =\n | JsonPrimitive\n | { readonly [key: string]: JsonValue }\n | readonly JsonValue[];\n\nexport type ColumnDefaultLiteralValue = JsonValue;\n\nexport type ColumnDefaultLiteralInputValue = ColumnDefaultLiteralValue | Date;\n\nexport type ColumnDefault =\n | {\n readonly kind: 'literal';\n readonly value: ColumnDefaultLiteralInputValue;\n }\n | { readonly kind: 'function'; readonly expression: string };\n\nexport type ExecutionMutationDefaultValue = {\n readonly kind: 'generator';\n readonly id: GeneratedValueSpec['id'];\n readonly params?: Record<string, unknown>;\n};\n\nexport type ExecutionMutationDefault = {\n readonly ref: { readonly table: string; readonly column: string };\n readonly onCreate?: ExecutionMutationDefaultValue;\n readonly onUpdate?: ExecutionMutationDefaultValue;\n};\n\nexport type ExecutionSection<THash extends string = string> = {\n readonly executionHash: ExecutionHashBase<THash>;\n readonly mutations: {\n readonly defaults: ReadonlyArray<ExecutionMutationDefault>;\n };\n};\n\nexport interface Source {\n readonly readOnly: boolean;\n readonly projection: Record<string, FieldType>;\n readonly origin?: Record<string, unknown>;\n readonly capabilities?: Record<string, boolean>;\n}\n\n// Document family types\nexport interface DocIndex {\n readonly name: string;\n readonly keys: Record<string, 'asc' | 'desc'>;\n readonly unique?: boolean;\n readonly where?: Expr;\n}\n\nexport type Expr =\n | { readonly kind: 'eq'; readonly path: ReadonlyArray<string>; readonly value: unknown }\n | { readonly kind: 'exists'; readonly path: ReadonlyArray<string> };\n\nexport interface DocCollection {\n readonly name: string;\n readonly id?: {\n readonly strategy: 'auto' | 'client' | 'uuid' | 'objectId';\n };\n readonly fields: Record<string, FieldType>;\n readonly indexes?: ReadonlyArray<DocIndex>;\n readonly readOnly?: boolean;\n}\n\n// Plan types - target-family agnostic execution types\nexport interface ParamDescriptor {\n readonly index?: number;\n readonly name?: string;\n readonly codecId?: string;\n readonly nativeType?: string;\n readonly nullable?: boolean;\n readonly source: 'dsl' | 'raw' | 'lane';\n readonly refs?: { table: string; column: string };\n}\n\nexport interface PlanRefs {\n readonly tables?: readonly string[];\n readonly columns?: ReadonlyArray<{ table: string; column: string }>;\n readonly indexes?: ReadonlyArray<{\n readonly table: string;\n readonly columns: ReadonlyArray<string>;\n readonly name?: string;\n }>;\n}\n\nexport interface PlanMeta {\n readonly target: string;\n readonly targetFamily?: string;\n readonly storageHash: string;\n readonly profileHash?: string;\n readonly lane: string;\n readonly annotations?: {\n codecs?: Record<string, string>; // alias/param → codec id ('ns/name@v')\n [key: string]: unknown;\n };\n readonly paramDescriptors: ReadonlyArray<ParamDescriptor>;\n readonly refs?: PlanRefs;\n readonly projection?: Record<string, string> | ReadonlyArray<string>;\n /**\n * Optional mapping of projection alias → column type ID (fully qualified ns/name@version).\n * Used for codec resolution when AST+refs don't provide enough type info.\n */\n readonly projectionTypes?: Record<string, string>;\n}\n\n/**\n * Contract marker record stored in the database.\n * Represents the current contract identity for a database.\n */\nexport interface ContractMarkerRecord {\n readonly storageHash: string;\n readonly profileHash: string;\n readonly contractJson: unknown | null;\n readonly canonicalVersion: number | null;\n readonly updatedAt: Date;\n readonly appTag: string | null;\n readonly meta: Record<string, unknown>;\n readonly invariants: readonly string[];\n}\n"],"mappings":";AA+BA,SAAgB,cAAsC,OAAgC;AACpF,QAAO;;AAGT,SAAgB,SAAiC,OAA8B;AAC7E,QAAO;;AAUT,SAAgB,YAAoC,OAA8B;AAChF,QAAO"}
1
+ {"version":3,"file":"types-aMyNgejf.mjs","names":[],"sources":["../src/types.ts"],"sourcesContent":["/**\n * Unique symbol used as the key for branding types.\n */\nexport const $: unique symbol = Symbol('__prisma_next_brand__');\n\n/**\n * A helper type to brand a given type with a unique identifier.\n *\n * @template TKey Text used as the brand key.\n * @template TValue Optional value associated with the brand key. Defaults to `true`.\n */\nexport type Brand<TKey extends string | number | symbol, TValue = true> = {\n [$]: {\n [K in TKey]: TValue;\n };\n};\n\n/**\n * Base type for storage contract hashes.\n * Emitted contract.d.ts files use this with the hash value as a type parameter:\n * `type StorageHash = StorageHashBase<'sha256:abc123...'>`\n */\nexport type StorageHashBase<THash extends string> = THash & Brand<'StorageHash'>;\n\n/**\n * Base type for execution contract hashes.\n * Emitted contract.d.ts files use this with the hash value as a type parameter:\n * `type ExecutionHash = ExecutionHashBase<'sha256:def456...'>`\n */\nexport type ExecutionHashBase<THash extends string> = THash & Brand<'ExecutionHash'>;\n\nexport function executionHash<const T extends string>(value: T): ExecutionHashBase<T> {\n return value as ExecutionHashBase<T>;\n}\n\nexport function coreHash<const T extends string>(value: T): StorageHashBase<T> {\n return value as StorageHashBase<T>;\n}\n\n/**\n * Base type for profile contract hashes.\n * Emitted contract.d.ts files use this with the hash value as a type parameter:\n * `type ProfileHash = ProfileHashBase<'sha256:def456...'>`\n */\nexport type ProfileHashBase<THash extends string> = THash & Brand<'ProfileHash'>;\n\nexport function profileHash<const T extends string>(value: T): ProfileHashBase<T> {\n return value as ProfileHashBase<T>;\n}\n\n/**\n * Base type for family-specific storage blocks.\n * Family storage types (SqlStorage, MongoStorage, etc.) extend this to carry the\n * storage hash alongside family-specific data (tables, collections, etc.).\n */\nexport interface StorageBase<THash extends string = string> {\n readonly storageHash: StorageHashBase<THash>;\n}\n\nexport interface FieldType {\n readonly type: string;\n readonly nullable: boolean;\n readonly items?: FieldType;\n readonly properties?: Record<string, FieldType>;\n}\n\nexport type GeneratedValueSpec = {\n readonly id: string;\n readonly params?: Record<string, unknown>;\n};\n\nexport type JsonPrimitive = string | number | boolean | null;\n\nexport type JsonValue =\n | JsonPrimitive\n | { readonly [key: string]: JsonValue }\n | readonly JsonValue[];\n\nexport type ColumnDefaultLiteralValue = JsonValue;\n\nexport type ColumnDefaultLiteralInputValue = ColumnDefaultLiteralValue | Date;\n\nexport type ColumnDefault =\n | {\n readonly kind: 'literal';\n readonly value: ColumnDefaultLiteralInputValue;\n }\n | { readonly kind: 'function'; readonly expression: string };\n\nexport type ExecutionMutationDefaultValue = {\n readonly kind: 'generator';\n readonly id: GeneratedValueSpec['id'];\n readonly params?: Record<string, unknown>;\n};\n\nexport type ExecutionMutationDefault = {\n readonly ref: { readonly table: string; readonly column: string };\n readonly onCreate?: ExecutionMutationDefaultValue;\n readonly onUpdate?: ExecutionMutationDefaultValue;\n};\n\nexport type ExecutionSection<THash extends string = string> = {\n readonly executionHash: ExecutionHashBase<THash>;\n readonly mutations: {\n readonly defaults: ReadonlyArray<ExecutionMutationDefault>;\n };\n};\n\nexport interface Source {\n readonly readOnly: boolean;\n readonly projection: Record<string, FieldType>;\n readonly origin?: Record<string, unknown>;\n readonly capabilities?: Record<string, boolean>;\n}\n\n// Document family types\nexport interface DocIndex {\n readonly name: string;\n readonly keys: Record<string, 'asc' | 'desc'>;\n readonly unique?: boolean;\n readonly where?: Expr;\n}\n\nexport type Expr =\n | { readonly kind: 'eq'; readonly path: ReadonlyArray<string>; readonly value: unknown }\n | { readonly kind: 'exists'; readonly path: ReadonlyArray<string> };\n\nexport interface DocCollection {\n readonly name: string;\n readonly id?: {\n readonly strategy: 'auto' | 'client' | 'uuid' | 'objectId';\n };\n readonly fields: Record<string, FieldType>;\n readonly indexes?: ReadonlyArray<DocIndex>;\n readonly readOnly?: boolean;\n}\n\nexport interface PlanMeta {\n readonly target: string;\n readonly targetFamily?: string;\n readonly storageHash: string;\n readonly profileHash?: string;\n readonly lane: string;\n readonly annotations?: {\n readonly [key: string]: unknown;\n };\n}\n\n/**\n * Contract marker record stored in the database.\n * Represents the current contract identity for a database.\n */\nexport interface ContractMarkerRecord {\n readonly storageHash: string;\n readonly profileHash: string;\n readonly contractJson: unknown | null;\n readonly canonicalVersion: number | null;\n readonly updatedAt: Date;\n readonly appTag: string | null;\n readonly meta: Record<string, unknown>;\n readonly invariants: readonly string[];\n}\n"],"mappings":";AA+BA,SAAgB,cAAsC,OAAgC;AACpF,QAAO;;AAGT,SAAgB,SAAiC,OAA8B;AAC7E,QAAO;;AAUT,SAAgB,YAAoC,OAA8B;AAChF,QAAO"}
package/dist/types.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { A as ContractDiscriminator, B as ContractVariantEntry, C as ProfileHashBase, D as coreHash, E as StorageHashBase, F as ContractModelBase, G as UnionFieldType, H as ModelStorageBase, I as ContractReferenceRelation, K as ValueObjectFieldType, L as ContractRelation, M as ContractField, N as ContractFieldType, O as executionHash, P as ContractModel, R as ContractRelationOn, S as PlanRefs, T as StorageBase, U as ReferenceRelationKeys, V as EmbedRelationKeys, W as ScalarFieldType, _ as GeneratedValueSpec, a as ColumnDefault, b as ParamDescriptor, c as ContractMarkerRecord, d as ExecutionHashBase, f as ExecutionMutationDefault, g as FieldType, h as Expr, i as Brand, j as ContractEmbedRelation, k as profileHash, l as DocCollection, m as ExecutionSection, n as ContractExecutionSection, o as ColumnDefaultLiteralInputValue, p as ExecutionMutationDefaultValue, r as $, s as ColumnDefaultLiteralValue, t as Contract, u as DocIndex, v as JsonPrimitive, w as Source, x as PlanMeta, y as JsonValue, z as ContractValueObject } from "./contract-types-CBpVDR8h.mjs";
2
- export { type $, type Brand, type ColumnDefault, type ColumnDefaultLiteralInputValue, type ColumnDefaultLiteralValue, type Contract, type ContractDiscriminator, type ContractEmbedRelation, type ContractExecutionSection, type ContractField, type ContractFieldType, type ContractMarkerRecord, type ContractModel, type ContractModelBase, type ContractReferenceRelation, type ContractRelation, type ContractRelationOn, type ContractValueObject, type ContractVariantEntry, type DocCollection, type DocIndex, type EmbedRelationKeys, type ExecutionHashBase, type ExecutionMutationDefault, type ExecutionMutationDefaultValue, type ExecutionSection, type Expr, type FieldType, type GeneratedValueSpec, type JsonPrimitive, type JsonValue, type ModelStorageBase, type ParamDescriptor, type PlanMeta, type PlanRefs, type ProfileHashBase, type ReferenceRelationKeys, type ScalarFieldType, type Source, type StorageBase, type StorageHashBase, type UnionFieldType, type ValueObjectFieldType, coreHash, executionHash, profileHash };
1
+ import { A as ContractField, B as ModelStorageBase, C as StorageBase, D as profileHash, E as executionHash, F as ContractRelation, H as ScalarFieldType, I as ContractRelationOn, L as ContractValueObject, M as ContractModel, N as ContractModelBase, O as ContractDiscriminator, P as ContractReferenceRelation, R as ContractVariantEntry, S as Source, T as coreHash, U as UnionFieldType, V as ReferenceRelationKeys, W as ValueObjectFieldType, _ as GeneratedValueSpec, a as ColumnDefault, b as PlanMeta, c as ContractMarkerRecord, d as ExecutionHashBase, f as ExecutionMutationDefault, g as FieldType, h as Expr, i as Brand, j as ContractFieldType, k as ContractEmbedRelation, l as DocCollection, m as ExecutionSection, n as ContractExecutionSection, o as ColumnDefaultLiteralInputValue, p as ExecutionMutationDefaultValue, r as $, s as ColumnDefaultLiteralValue, t as Contract, u as DocIndex, v as JsonPrimitive, w as StorageHashBase, x as ProfileHashBase, y as JsonValue, z as EmbedRelationKeys } from "./contract-types-DULFYxpd.mjs";
2
+ export { type $, type Brand, type ColumnDefault, type ColumnDefaultLiteralInputValue, type ColumnDefaultLiteralValue, type Contract, type ContractDiscriminator, type ContractEmbedRelation, type ContractExecutionSection, type ContractField, type ContractFieldType, type ContractMarkerRecord, type ContractModel, type ContractModelBase, type ContractReferenceRelation, type ContractRelation, type ContractRelationOn, type ContractValueObject, type ContractVariantEntry, type DocCollection, type DocIndex, type EmbedRelationKeys, type ExecutionHashBase, type ExecutionMutationDefault, type ExecutionMutationDefaultValue, type ExecutionSection, type Expr, type FieldType, type GeneratedValueSpec, type JsonPrimitive, type JsonValue, type ModelStorageBase, type PlanMeta, type ProfileHashBase, type ReferenceRelationKeys, type ScalarFieldType, type Source, type StorageBase, type StorageHashBase, type UnionFieldType, type ValueObjectFieldType, coreHash, executionHash, profileHash };
@@ -1,4 +1,4 @@
1
- import { t as Contract } from "./contract-types-CBpVDR8h.mjs";
1
+ import { t as Contract } from "./contract-types-DULFYxpd.mjs";
2
2
 
3
3
  //#region src/validate-contract.d.ts
4
4
  type ContractValidationPhase = 'structural' | 'domain' | 'storage';
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@prisma-next/contract",
3
- "version": "0.5.0-dev.23",
3
+ "version": "0.5.0-dev.24",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "description": "Data contract type definitions and JSON schema for Prisma Next",
7
7
  "dependencies": {
8
8
  "arktype": "^2.1.29",
9
- "@prisma-next/utils": "0.5.0-dev.23"
9
+ "@prisma-next/utils": "0.5.0-dev.24"
10
10
  },
11
11
  "devDependencies": {
12
12
  "tsdown": "0.18.4",
13
13
  "typescript": "5.9.3",
14
14
  "vitest": "4.0.17",
15
15
  "@prisma-next/test-utils": "0.0.1",
16
- "@prisma-next/tsdown": "0.0.0",
17
- "@prisma-next/tsconfig": "0.0.0"
16
+ "@prisma-next/tsconfig": "0.0.0",
17
+ "@prisma-next/tsdown": "0.0.0"
18
18
  },
19
19
  "files": [
20
20
  "dist",
@@ -36,9 +36,7 @@ export type {
36
36
  GeneratedValueSpec,
37
37
  JsonPrimitive,
38
38
  JsonValue,
39
- ParamDescriptor,
40
39
  PlanMeta,
41
- PlanRefs,
42
40
  ProfileHashBase,
43
41
  Source,
44
42
  StorageBase,
package/src/types.ts CHANGED
@@ -135,27 +135,6 @@ export interface DocCollection {
135
135
  readonly readOnly?: boolean;
136
136
  }
137
137
 
138
- // Plan types - target-family agnostic execution types
139
- export interface ParamDescriptor {
140
- readonly index?: number;
141
- readonly name?: string;
142
- readonly codecId?: string;
143
- readonly nativeType?: string;
144
- readonly nullable?: boolean;
145
- readonly source: 'dsl' | 'raw' | 'lane';
146
- readonly refs?: { table: string; column: string };
147
- }
148
-
149
- export interface PlanRefs {
150
- readonly tables?: readonly string[];
151
- readonly columns?: ReadonlyArray<{ table: string; column: string }>;
152
- readonly indexes?: ReadonlyArray<{
153
- readonly table: string;
154
- readonly columns: ReadonlyArray<string>;
155
- readonly name?: string;
156
- }>;
157
- }
158
-
159
138
  export interface PlanMeta {
160
139
  readonly target: string;
161
140
  readonly targetFamily?: string;
@@ -163,17 +142,8 @@ export interface PlanMeta {
163
142
  readonly profileHash?: string;
164
143
  readonly lane: string;
165
144
  readonly annotations?: {
166
- codecs?: Record<string, string>; // alias/param → codec id ('ns/name@v')
167
- [key: string]: unknown;
145
+ readonly [key: string]: unknown;
168
146
  };
169
- readonly paramDescriptors: ReadonlyArray<ParamDescriptor>;
170
- readonly refs?: PlanRefs;
171
- readonly projection?: Record<string, string> | ReadonlyArray<string>;
172
- /**
173
- * Optional mapping of projection alias → column type ID (fully qualified ns/name@version).
174
- * Used for codec resolution when AST+refs don't provide enough type info.
175
- */
176
- readonly projectionTypes?: Record<string, string>;
177
147
  }
178
148
 
179
149
  /**