@prisma-next/sql-runtime 0.15.0 → 0.16.0-dev.10

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/dist/index.d.mts CHANGED
@@ -1,11 +1,10 @@
1
- import { A as RuntimeTelemetryEvent, B as PreparedStatement, C as SqlRuntimeTargetDescriptor, D as createSqlExecutionStack, E as createExecutionContext, F as DeclaredCodecId, G as deriveParamMetadata, I as DeclaredNullable, K as encodeParamsWithMetadata, L as ParamSpec, M as VerifyMarkerOption, N as BindSiteParams, O as MarkerReader, P as Declaration, R as ParamsFromDeclaration, S as SqlRuntimeExtensionInstance, T as TypeHelperRegistry, U as SqlMiddleware, W as SqlMiddlewareContext, _ as SqlExecutionStackWithDriver, a as RuntimeConnection, b as SqlRuntimeDriverInstance, c as RuntimeTransaction, d as withTransaction, f as ExecutionContext, g as SqlExecutionStack, h as RuntimeParameterizedCodecDescriptor, i as Runtime, j as TelemetryOutcome, k as RuntimeFamilyAdapter, l as SqlRuntimeBase, m as RuntimeMutationDefaultGenerator, n as PreparedStatementInternals, p as GeneratorStability, r as ConnectionProvider, s as RuntimeQueryable, t as PreparedStatementImpl, u as TransactionContext, v as SqlRuntimeAdapterDescriptor, w as SqlStaticContributions, x as SqlRuntimeExtensionDescriptor, y as SqlRuntimeAdapterInstance, z as PrepareCallback } from "./prepared-statement-BiwAFEou.mjs";
1
+ import { A as RuntimeTelemetryEvent, B as PreparedStatement, C as SqlRuntimeTargetDescriptor, D as createSqlExecutionStack, E as createExecutionContext, F as DeclaredCodecId, G as deriveParamMetadata, I as DeclaredNullable, K as encodeParamsWithMetadata, L as ParamSpec, M as VerifyMarkerOption, N as BindSiteParams, O as MarkerReader, P as Declaration, R as ParamsFromDeclaration, S as SqlRuntimeExtensionInstance, T as TypeHelperRegistry, U as SqlMiddleware, W as SqlMiddlewareContext, _ as SqlExecutionStackWithDriver, a as RuntimeConnection, b as SqlRuntimeDriverInstance, c as RuntimeTransaction, d as withTransaction, f as ExecutionContext, g as SqlExecutionStack, h as RuntimeParameterizedCodecDescriptor, i as Runtime, j as TelemetryOutcome, k as RuntimeFamilyAdapter, l as SqlRuntimeBase, m as RuntimeMutationDefaultGenerator, n as PreparedStatementInternals, p as GeneratorStability, r as ConnectionProvider, s as RuntimeQueryable, t as PreparedStatementImpl, u as TransactionContext, v as SqlRuntimeAdapterDescriptor, w as SqlStaticContributions, x as SqlRuntimeExtensionDescriptor, y as SqlRuntimeAdapterInstance, z as PrepareCallback } from "./prepared-statement-BuDdY11z.mjs";
2
2
  import { AfterExecuteResult, RuntimeLog as Log } from "@prisma-next/framework-components/runtime";
3
3
  import { Adapter, AnyQueryAst, ContractCodecRegistry, LoweredStatement, MarkerReadResult } from "@prisma-next/sql-relational-core/ast";
4
4
  import { Contract } from "@prisma-next/contract/types";
5
5
  import { SqlStorage } from "@prisma-next/sql-contract/types";
6
6
  import { CodecDescriptorRegistry } from "@prisma-next/sql-relational-core/query-lane-context";
7
7
  import { SqlExecutionPlan, SqlQueryPlan } from "@prisma-next/sql-relational-core/plan";
8
-
9
8
  //#region src/codecs/ast-codec-registry.d.ts
10
9
  /**
11
10
  * Build a contract-free {@link ContractCodecRegistry} that resolves codecs
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/codecs/ast-codec-registry.ts","../src/codecs/validation.ts","../src/lower-sql-plan.ts","../src/middleware/budgets.ts","../src/middleware/lints.ts"],"mappings":";;;;;;;;;;;;;;;;AAaA;;iBAAgB,sBAAA,CACd,WAAA,EAAa,uBAAA,GACZ,qBAAqB;;;iBCVR,eAAA,CAAgB,QAAA,EAAU,QAAA,CAAS,UAAA,IAAc,GAAA;AAAA,iBAoCjD,6BAAA,CACd,QAAA,EAAU,uBAAA,EACV,QAAA,EAAU,QAAA,CAAS,UAAA;AAAA,iBAoBL,iCAAA,CACd,QAAA,EAAU,uBAAA,EACV,QAAA,EAAU,QAAA,CAAS,UAAA;;;;;;;;ADpDrB;;;;iBEEgB,YAAA,MACd,OAAA,EAAS,OAAA,CAAQ,WAAA,EAAa,QAAA,CAAS,UAAA,GAAa,gBAAA,GACpD,QAAA,EAAU,QAAA,CAAS,UAAA,GACnB,SAAA,EAAW,YAAA,CAAa,GAAA,IACvB,gBAAA,CAAiB,GAAA;;;UCVH,cAAA;EAAA,SACN,OAAA;EAAA,SACA,gBAAA;EAAA,SACA,SAAA,GAAY,MAAM;EAAA,SAClB,YAAA;EAAA,SACA,UAAA;IAAA,SACE,QAAA;IAAA,SACA,OAAA;EAAA;AAAA;AAAA,iBAmEG,OAAA,CAAQ,OAAA,GAAU,cAAA,GAAiB,aAAa;;;UCxE/C,YAAA;EAAA,SACN,UAAA;IAAA,SACE,UAAA;IAAA,SACA,OAAA;IAAA,SACA,kBAAA;IAAA,SACA,kBAAA;IAAA,SACA,gBAAA;EAAA;EAAA,SAEF,sBAAA;AAAA;AJJa;;;;ACVxB;;;;;;;;;;ADUwB,iBIkIR,KAAA,CAAM,OAAA,GAAU,YAAA,GAAe,aAAa"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/codecs/ast-codec-registry.ts","../src/codecs/validation.ts","../src/lower-sql-plan.ts","../src/middleware/budgets.ts","../src/middleware/lints.ts"],"mappings":";;;;;;;;;;;;;;;;;iBAagB,uBACd,aAAa,0BACZ;;;iBCVa,gBAAgB,UAAU,SAAS,cAAc;iBAoCjD,8BACd,UAAU,yBACV,UAAU,SAAS;iBAoBL,kCACd,UAAU,yBACV,UAAU,SAAS;;;;;;;;;;;;iBClDL,aAAa,KAC3B,SAAS,QAAQ,aAAa,SAAS,aAAa,mBACpD,UAAU,SAAS,aACnB,WAAW,aAAa,OACvB,iBAAiB;;;UCVH;WACN;WACA;WACA,YAAY;WACZ;WACA;aACE;aACA;;;iBAmEG,QAAQ,UAAU,iBAAiB;;;UCxElC;WACN;aACE;aACA;aACA;aACA;aACA;;WAEF;;;;;;;;;;;;;;;;iBA8HK,MAAM,UAAU,eAAe"}
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { a as createExecutionContext, c as lints, d as extractCodecIds, f as validateCodecRegistryCompleteness, g as createAstCodecRegistry, h as encodeParamsWithMetadata, l as budgets, m as deriveParamMetadata, n as withTransaction, o as createSqlExecutionStack, p as validateContractCodecMappings, s as PreparedStatementImpl, t as SqlRuntimeBase, u as lowerSqlPlan } from "./exports-D5-Py3YP.mjs";
1
+ import { a as createExecutionContext, c as lints, d as extractCodecIds, f as validateCodecRegistryCompleteness, g as createAstCodecRegistry, h as encodeParamsWithMetadata, l as budgets, m as deriveParamMetadata, n as withTransaction, o as createSqlExecutionStack, p as validateContractCodecMappings, s as PreparedStatementImpl, t as SqlRuntimeBase, u as lowerSqlPlan } from "./exports-Cm5jehIz.mjs";
2
2
  export { PreparedStatementImpl, SqlRuntimeBase, budgets, createAstCodecRegistry, createExecutionContext, createSqlExecutionStack, deriveParamMetadata, encodeParamsWithMetadata, extractCodecIds, lints, lowerSqlPlan, validateCodecRegistryCompleteness, validateContractCodecMappings, withTransaction };
@@ -10,7 +10,6 @@ import { ExecutionContext, TypeHelperRegistry } from "@prisma-next/sql-relationa
10
10
  import { SqlExecutionPlan, SqlQueryPlan } from "@prisma-next/sql-relational-core/plan";
11
11
  import { CodecTypesBase, CodecValue, Expression, RawCodecInferer } from "@prisma-next/sql-relational-core/expression";
12
12
  import { RuntimeScope } from "@prisma-next/sql-relational-core/types";
13
-
14
13
  //#region src/codecs/encoding.d.ts
15
14
  interface ParamMetadata {
16
15
  readonly codec: CodecRef | undefined;
@@ -122,8 +121,8 @@ type DeclaredNullable<S> = S extends {
122
121
  type BindSiteParams<D> = { readonly [K in keyof D]: Expression<{
123
122
  codecId: DeclaredCodecId<D[K]>;
124
123
  nullable: DeclaredNullable<D[K]>;
125
- }> };
126
- type ParamsFromDeclaration<D, CT extends CodecTypesBase> = { readonly [K in keyof D]: CodecValue<DeclaredCodecId<D[K]>, DeclaredNullable<D[K]>, CT> };
124
+ }>; };
125
+ type ParamsFromDeclaration<D, CT extends CodecTypesBase> = { readonly [K in keyof D]: CodecValue<DeclaredCodecId<D[K]>, DeclaredNullable<D[K]>, CT>; };
127
126
  type PrepareCallback<D, Row> = (params: BindSiteParams<D>) => SqlQueryPlan<Row>;
128
127
  interface PreparedStatement<Params, Row> {
129
128
  readonly sql: string;
@@ -441,4 +440,4 @@ declare class PreparedStatementImpl<Params, Row> implements PreparedStatement<Pa
441
440
  }
442
441
  //#endregion
443
442
  export { RuntimeTelemetryEvent as A, PreparedStatement as B, SqlRuntimeTargetDescriptor as C, createSqlExecutionStack as D, createExecutionContext as E, DeclaredCodecId as F, deriveParamMetadata as G, decodeRow as H, DeclaredNullable as I, encodeParamsWithMetadata as K, ParamSpec as L, VerifyMarkerOption as M, BindSiteParams as N, MarkerReader as O, Declaration as P, ParamsFromDeclaration as R, SqlRuntimeExtensionInstance as S, TypeHelperRegistry as T, SqlMiddleware as U, buildDecodeContext as V, SqlMiddlewareContext as W, SqlExecutionStackWithDriver as _, RuntimeConnection as a, SqlRuntimeDriverInstance as b, RuntimeTransaction as c, withTransaction as d, ExecutionContext as f, SqlExecutionStack as g, RuntimeParameterizedCodecDescriptor as h, Runtime as i, TelemetryOutcome as j, RuntimeFamilyAdapter as k, SqlRuntimeBase as l, RuntimeMutationDefaultGenerator as m, PreparedStatementInternals as n, RuntimeOptions as o, GeneratorStability as p, ConnectionProvider as r, RuntimeQueryable as s, PreparedStatementImpl as t, TransactionContext as u, SqlRuntimeAdapterDescriptor as v, SqlStaticContributions as w, SqlRuntimeExtensionDescriptor as x, SqlRuntimeAdapterInstance as y, PrepareCallback as z };
444
- //# sourceMappingURL=prepared-statement-BiwAFEou.d.mts.map
443
+ //# sourceMappingURL=prepared-statement-BuDdY11z.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepared-statement-BuDdY11z.d.mts","names":[],"sources":["../src/codecs/encoding.ts","../src/middleware/sql-middleware.ts","../src/codecs/decoding.ts","../src/prepared/types.ts","../src/runtime-spi.ts","../src/sql-context.ts","../src/sql-runtime.ts","../src/prepared/prepared-statement.ts"],"mappings":";;;;;;;;;;;;;UAgBiB;WACN,OAAO;WACP;;iBAeK,oBAAoB,KAAK,uBAAuB;iBAuI1C,yBACpB,4BACA,mBAAmB,iBACnB,KAAK,qBACL,iBAAiB,wBAChB;;;UClKc,6BAA6B;WACnC,UAAU,SAAS;;;;;;UAOb;WACN,KAAK;WACL,MAAM;;UAGA,cAAc,kBAAkB,0BAA0B,iCACjE,kBAAkB,kBAAkB,mBAAmB;WACtD;;;;;;;;;;;;;;;;;;;EAmBT,eAAe,OAAO,WAAW,KAAK,uBAAuB,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BrE,eACE,MAAM,kBACN,KAAK,sBACL,SAAS,mBAAmB,oBACpB;EACV,OACE,KAAK,yBACL,MAAM,kBACN,KAAK,uBACJ;EACH,cACE,MAAM,kBACN,QAAQ,oBACR,KAAK,uBACJ;;;;KCvEA;EAAc;EAAe;;UAEjB;WACN,SAAS;WACT,QAAQ,oBAAoB;WAC5B,YAAY,oBAAoB;WAChC,gBAAgB;WAChB,aAAa;;iBA4BR,mBACd,KAAK,aACL,gBAAgB,oCACf;;;;;;;;;;iBAgMmB,UACpB,KAAK,yBACL,WAAW,eACX,QAAQ,sBACP,QAAQ;;;KC1OC,UAAU,WAAW,iBAAiB,yBACvC;WAEI,eAAe;WACf,aAAa;WACb;;KAGH,YAAY,WAAW,iBAAiB,kBAAkB,SACpE,eAAe,UAAU;KAGf,gBAAgB,KAAK,mBAC7B,IACA;WAAqB,eAAe;IAClC;KAGM,iBAAiB,KAAK;WAAqB;;KAE3C,eAAe,iBACf,WAAW,IAAI;EACvB,SAAS,gBAAgB,EAAE;EAC3B,UAAU,iBAAiB,EAAE;;KAIrB,sBAAsB,GAAG,WAAW,8BACpC,WAAW,IAAI,WAAW,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK;KAGzE,gBAAgB,GAAG,QAAQ,QAAQ,eAAe,OAAO,aAAa;UAEjE,kBAAkB,QAAQ;WAChC;WACA,KAAK;WACL,MAAM;WACN,gBAAgB;;;;;;;EAQzB,QACE,QAAQ,kBACR,QAAQ,QACR,UAAU,wBACT,oBAAoB;;;;;;;UCzDR;EACf,WAAW,WAAW,eAAe,QAAQ;;;;;;;;;;UAW9B,qBAAqB;WAC3B,UAAU;WACV,cAAc;EACvB,aAAa,MAAM,eAAe,UAAU;;;;;;;;;;;;;;;;;;;KAoBlC;KAEA;UAEK;WACN;WACA;WACA;WACA,SAAS;WACT;;;;;;;;;;;KCqBC,oCAAoC,IAAI,2BAA2B,gBAAgB;;;;UAK9E;WACN,cAAc,cAAc;WAC5B,wBAAwB;WACxB,kCAAkC,cAAc;;;;;;;;;KAU/C;UAEK;WACN;WACA,WAAW,SAAS;;;;WAIpB,WAAW;;UAGL,2BACf,mCACA,wBAAwB,6BAA6B,aAAa,6BAEhE,oBAEM,+BAA+B,WAAW,kBAChD;UAEa,4BACf,mCACA,yBAAyB,8BAEvB,aACE,0BAA0B,oBACtB,gCAAgC,WAAW,mBACjD;;;;WAIO,iBAAiB;;UAGX,8BAA8B,2CACrC,kCAAkC,WAAW,4BAA4B,aAC/E;EACF,UAAU,4BAA4B;;UAGvB,kBAAkB;WACxB,QAAQ,2BAA2B;WACnC,SAAS,4BAA4B;WACrC,yBAAyB,8BAA8B;;KAGtD,4BAA4B,qCAAqC,KAC3E,sBAEE,WACA,0BAA0B,YAC1B,yBAAyB,YACzB,4BAA4B;WAIrB,QAAQ,2BAA2B;WACnC,SAAS,4BAA4B,WAAW,0BAA0B;WAC1E,QACL,+BAA+B,oBAAoB,yBAAyB;WAEvE,yBAAyB,8BAA8B;;UAGjD,4BAA4B,kCACnC,gCAAgC;KAE9B,0BAA0B,qCAAqC,8BAEzE,aAEA,QAAQ,aAAa,SAAS,aAAa;;;;KAKjC,yBAAyB,qCAAqC,6BAExE,aAEA;iBAEc,wBAAwB,0BAA0B;WACvD,QAAQ,2BAA2B;WACnC,SAAS,4BAA4B;WACrC,SACL,+BAA+B,oBAAoB,yBAAyB;WAEvE,0BAA0B,8BAA8B;IAC/D,4BAA4B;iBA8jBhB,uBACd,kBAAkB,SAAS,cAAc,SAAS,aAClD,mCACA;WACS,UAAU;WACV,OAAO,kBAAkB;;;;WAIzB,SAAS,+BAEhB,oBAEA,yBAAyB;IAEzB,iBAAiB;;;KC7rBT,MAAM;UAED,eAAe,kBAAkB,SAAS,cAAc,SAAS;WACvE,SAAS,iBAAiB;WAC1B,SAAS,QAAQ,aAAa,SAAS,aAAa;WACpD,QAAQ;WACR,eAAe;WACf,sBAAsB;WACtB;WACA,MAAM;;;;;;UAOA,gBAAgB;EAC/B,cAAc,QAAQ;EACtB,aAAa;EACb,SAAS;;;;;;EAOT,QAAQ,UAAU,YAAY,KAAK,KAAK,WAAW,iBAAiB,gBAClE,aAAa,GACb,UAAU,gBAAgB,GAAG,OAC5B,QAAQ,kBAAkB,sBAAsB,GAAG,KAAK;;UAG5C,0BAA0B;EACzC,eAAe,QAAQ;;;;EAIvB,WAAW;;;;;;;;EAQX,QAAQ,mBAAmB;;UAGZ,2BAA2B;EAC1C,UAAU;EACV,YAAY;;UAGG,yBAAyB;;;;;;;EAOxC,gBAAgB,QAAQ,KACtB,IAAI,kBAAkB,QAAQ,MAC9B,QAAQ,QACR,UAAU,wBACT,oBAAoB;;UAGR,2BAA2B;WACjC;;;;;;;uBAkBW,eAAe,kBAAkB,SAAS,cAAc,SAAS,qBAC7E,YAAY,cAAc,kBAAkB,0BACzC;;mBAEM;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;mBACA;UAET;UAEA;UACA;cAEI,SAAS,eAAe;;;;;;;;;;;;;;;;;;;;;YA2DX,MACvB,MAAM,cACN,KAAK,sBACJ,QAAQ;;;;;;;;UAYH;;;;;;;UAUM;;;;YAcK,UAAU,MAAM,mBAAmB,cAAc;;;;;YAW3C,iBAAiB,MAAM,eAAe,QAAQ;EAW9D,QAAQ,KACf,OAAO,4BAA4B;aAAoC,OAAO;KAC9E,UAAU,wBACT,oBAAoB;EAIvB,gBAAgB,QAAQ,KACtB,IAAI,kBAAkB,QAAQ,MAC9B,QAAQ,QACR,UAAU,wBACT,oBAAoB;;;;;;;YAeb,wBAAwB,QAAQ;UAI3B;;;;;;YAiEL,wBAAwB,KAChC,MAAM,4BAA4B,uBAClC,WAAW,cACX,UAAU,wBACT,oBAAoB;EA2FjB,QAAQ,UAAU,YAAY,KAAK,KAAK,WAAW,iBAAiB,gBACxE,aAAa,GACb,UAAU,gBAAgB,GAAG,OAC5B,QAAQ,kBAAkB,sBAAsB,GAAG,KAAK;;;;;YA+CjD,gCAAgC,GAAG,KAC3C,IAAI,sBAAsB,GAAG,MAC7B,YAAY,yBACZ,WAAW,cACX,UAAU,wBACT,oBAAoB;EA2EjB,cAAc,QAAQ;UAyCpB;EAiCR,aAAa;EAIP,SAAS;UAIP;UAOM;UAkCN;;;UAyBO;EACf,cAAc,QAAQ;;iBAGF,gBAAgB,GACpC,SAAS,oBACT,KAAK,IAAI,uBAAuB,YAAY,KAC3C,QAAQ;;;UClvBM;WACN;WACA,KAAK;WACL,MAAM;WACN,gBAAgB;WAChB,eAAe;WACf,wBAAwB;;cAGtB,sBAAsB,QAAQ,gBAC9B,kBAAkB,QAAQ,MAAM;WAElC;WACA,KAAK;WACL,MAAM;WACN,gBAAgB;WAChB,eAAe;WACf,wBAAwB;cAErB,WAAW;EAUvB,QACE,QAAQ,kBACR,QAAQ,QACR,UAAU,wBACT,oBAAoB"}
@@ -1,4 +1,4 @@
1
- import { C as SqlRuntimeTargetDescriptor, H as decodeRow, S as SqlRuntimeExtensionInstance, V as buildDecodeContext, b as SqlRuntimeDriverInstance, f as ExecutionContext, i as Runtime, o as RuntimeOptions, v as SqlRuntimeAdapterDescriptor, x as SqlRuntimeExtensionDescriptor, y as SqlRuntimeAdapterInstance } from "../prepared-statement-BiwAFEou.mjs";
1
+ import { C as SqlRuntimeTargetDescriptor, H as decodeRow, S as SqlRuntimeExtensionInstance, V as buildDecodeContext, b as SqlRuntimeDriverInstance, f as ExecutionContext, i as Runtime, o as RuntimeOptions, v as SqlRuntimeAdapterDescriptor, x as SqlRuntimeExtensionDescriptor, y as SqlRuntimeAdapterInstance } from "../prepared-statement-BuDdY11z.mjs";
2
2
  import { CodecDescriptor } from "@prisma-next/framework-components/codec";
3
3
  import { ResultType } from "@prisma-next/framework-components/runtime";
4
4
  import { Adapter, AnyQueryAst, Codec, ContractCodecRegistry, LoweredStatement, SelectAst } from "@prisma-next/sql-relational-core/ast";
@@ -9,6 +9,7 @@ import { SqlStorage, SqlStorageInput, StorageTableInput } from "@prisma-next/sql
9
9
  import { DevDatabase, collectAsync, createDevDatabase, teardownTestDatabase, withClient } from "@prisma-next/test-utils";
10
10
  import { SqlExecutionPlan, SqlQueryPlan } from "@prisma-next/sql-relational-core/plan";
11
11
  import { Client } from "pg";
12
+ import "@prisma-next/framework-components/authoring";
12
13
  //#region ../1-core/contract/src/ir/sql-node.d.ts
13
14
  /**
14
15
  * SQL family IR node base. Carries the family-level `kind` discriminator
@@ -129,13 +130,17 @@ interface ForeignKeyInput {
129
130
  readonly name?: string;
130
131
  readonly onDelete?: ReferentialAction;
131
132
  readonly onUpdate?: ReferentialAction;
132
- /** Whether to emit FK constraint DDL (ALTER TABLE … ADD CONSTRAINT … FOREIGN KEY). */
133
- readonly constraint: boolean;
134
- /** Whether to emit a backing index for the FK columns. */
135
- readonly index: boolean;
136
133
  }
137
134
  /**
138
- * SQL Contract IR node for a table-level foreign-key declaration.
135
+ * SQL Contract IR node for a table-level foreign-key declaration — the
136
+ * referential constraint only (source, target, `onDelete`/`onUpdate`).
137
+ *
138
+ * A persisted `foreignKeys[]` entry always denotes a real constraint: whether
139
+ * to emit the constraint at all, and whether to back it with an index, are
140
+ * authoring-time decisions (PSL `@relation(index:)`, TS `fk({ constraint,
141
+ * index })`) resolved once at `contract emit` — a `constraint: false` FK
142
+ * simply has no entry here, and a backing index (if any) is its own discrete,
143
+ * named entry in the table's `indexes[]`.
139
144
  *
140
145
  * Each FK carries explicit `source` and `target` {@link ForeignKeyReference}
141
146
  * coordinates (namespace, table, columns). For single-namespace contracts the
@@ -149,8 +154,6 @@ interface ForeignKeyInput {
149
154
  declare class ForeignKey extends SqlNode {
150
155
  readonly source: ForeignKeyReference;
151
156
  readonly target: ForeignKeyReference;
152
- readonly constraint: boolean;
153
- readonly index: boolean;
154
157
  readonly name?: string;
155
158
  readonly onDelete?: ReferentialAction;
156
159
  readonly onUpdate?: ReferentialAction;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.mts","names":[],"sources":["../../../1-core/contract/src/ir/sql-node.ts","../../../1-core/contract/src/ir/check-constraint.ts","../../../1-core/contract/src/ir/foreign-key-reference.ts","../../../1-core/contract/src/ir/foreign-key.ts","../../../1-core/contract/src/ir/primary-key.ts","../../../1-core/contract/src/ir/sql-index.ts","../../../1-core/contract/src/ir/storage-column.ts","../../../1-core/contract/src/ir/unique-constraint.ts","../../../1-core/contract/src/ir/storage-table.ts","../../../1-core/contract/src/ir/storage-value-set.ts","../../../1-core/contract/src/ir/sql-storage.ts","../../../1-core/contract/test/test-support.ts","../../test/utils.ts"],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.mts","names":[],"sources":["../../../1-core/contract/src/ir/sql-node.ts","../../../1-core/contract/src/ir/check-constraint.ts","../../../1-core/contract/src/ir/foreign-key-reference.ts","../../../1-core/contract/src/ir/foreign-key.ts","../../../1-core/contract/src/ir/primary-key.ts","../../../1-core/contract/src/ir/sql-index.ts","../../../1-core/contract/src/ir/storage-column.ts","../../../1-core/contract/src/ir/unique-constraint.ts","../../../1-core/contract/src/ir/storage-table.ts","../../../1-core/contract/src/ir/storage-value-set.ts","../../../1-core/contract/src/ir/sql-storage.ts","../../../1-core/contract/test/test-support.ts","../../test/utils.ts"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { a as createExecutionContext, i as decodeRow, o as createSqlExecutionStack, r as buildDecodeContext, t as SqlRuntimeBase } from "../exports-D5-Py3YP.mjs";
1
+ import { a as createExecutionContext, i as decodeRow, o as createSqlExecutionStack, r as buildDecodeContext, t as SqlRuntimeBase } from "../exports-Cm5jehIz.mjs";
2
2
  import { canonicalizeJson } from "@prisma-next/framework-components/utils";
3
3
  import { runtimeError } from "@prisma-next/framework-components/runtime";
4
4
  import { SelectAst, TableSource } from "@prisma-next/sql-relational-core/ast";
@@ -12,7 +12,14 @@ import { builtinGeneratorIds } from "@prisma-next/ids";
12
12
  import { generateId } from "@prisma-next/ids/runtime";
13
13
  import { SqlStorage } from "@prisma-next/sql-contract/types";
14
14
  import { applicationDomainOf, collectAsync, collectAsync as collectAsync$1, createDevDatabase, drainAsyncIterable, teardownTestDatabase, withClient } from "@prisma-next/test-utils";
15
+ import { structuredError } from "@prisma-next/utils/structured-error";
15
16
  import { type } from "arktype";
17
+ import { InternalError } from "@prisma-next/utils/internal-error";
18
+ //#region ../1-core/contract/src/contract-errors.ts
19
+ function contractError(code, message, options) {
20
+ return structuredError(code, message, options);
21
+ }
22
+ //#endregion
16
23
  //#region ../1-core/contract/src/ir/storage-entry-schemas.ts
17
24
  const literalKindSchema = type("'literal'");
18
25
  const functionKindSchema = type("'function'");
@@ -90,9 +97,7 @@ const ForeignKeySchema = type.declare().type({
90
97
  target: ForeignKeyReferenceSchema,
91
98
  "name?": "string",
92
99
  "onDelete?": ReferentialActionSchema,
93
- "onUpdate?": ReferentialActionSchema,
94
- constraint: "boolean",
95
- index: "boolean"
100
+ "onUpdate?": ReferentialActionSchema
96
101
  });
97
102
  const CheckConstraintSchema = type({
98
103
  "+": "reject",
@@ -218,7 +223,15 @@ var ForeignKeyReference = class extends SqlNode {
218
223
  //#endregion
219
224
  //#region ../1-core/contract/src/ir/foreign-key.ts
220
225
  /**
221
- * SQL Contract IR node for a table-level foreign-key declaration.
226
+ * SQL Contract IR node for a table-level foreign-key declaration — the
227
+ * referential constraint only (source, target, `onDelete`/`onUpdate`).
228
+ *
229
+ * A persisted `foreignKeys[]` entry always denotes a real constraint: whether
230
+ * to emit the constraint at all, and whether to back it with an index, are
231
+ * authoring-time decisions (PSL `@relation(index:)`, TS `fk({ constraint,
232
+ * index })`) resolved once at `contract emit` — a `constraint: false` FK
233
+ * simply has no entry here, and a backing index (if any) is its own discrete,
234
+ * named entry in the table's `indexes[]`.
222
235
  *
223
236
  * Each FK carries explicit `source` and `target` {@link ForeignKeyReference}
224
237
  * coordinates (namespace, table, columns). For single-namespace contracts the
@@ -232,14 +245,10 @@ var ForeignKeyReference = class extends SqlNode {
232
245
  var ForeignKey = class extends SqlNode {
233
246
  source;
234
247
  target;
235
- constraint;
236
- index;
237
248
  constructor(input) {
238
249
  super();
239
250
  this.source = input.source instanceof ForeignKeyReference ? input.source : new ForeignKeyReference(input.source);
240
251
  this.target = input.target instanceof ForeignKeyReference ? input.target : new ForeignKeyReference(input.target);
241
- this.constraint = input.constraint;
242
- this.index = input.index;
243
252
  if (input.name !== void 0) this.name = input.name;
244
253
  if (input.onDelete !== void 0) this.onDelete = input.onDelete;
245
254
  if (input.onUpdate !== void 0) this.onUpdate = input.onUpdate;
@@ -370,7 +379,7 @@ var StorageTable = class StorageTable extends SqlNode {
370
379
  return "columns" in value && "uniques" in value && "indexes" in value && "foreignKeys" in value;
371
380
  }
372
381
  static assert(value, coordinate) {
373
- if (!StorageTable.is(value)) throw new Error(`Expected a StorageTable at ${coordinate}`);
382
+ if (!StorageTable.is(value)) throw new InternalError(`Expected a StorageTable at ${coordinate}`);
374
383
  }
375
384
  };
376
385
  //#endregion
@@ -425,7 +434,7 @@ const valueSetEntityKind = {
425
434
  function composeSqlEntityKinds(packKinds = []) {
426
435
  const kinds = /* @__PURE__ */ new Map([["table", tableEntityKind], ["valueSet", valueSetEntityKind]]);
427
436
  for (const descriptor of packKinds) {
428
- if (kinds.has(descriptor.kind)) throw new Error(`composeSqlEntityKinds: duplicate entity kind "${descriptor.kind}" — each kind may be registered only once`);
437
+ if (kinds.has(descriptor.kind)) throw contractError("CONTRACT.PACK_CONTRIBUTION_INVALID", `composeSqlEntityKinds: duplicate entity kind "${descriptor.kind}" — each kind may be registered only once`, { meta: { entityKind: descriptor.kind } });
429
438
  kinds.set(descriptor.kind, descriptor);
430
439
  }
431
440
  return kinds;