@prisma/orm-family-sql 8.0.0-rc.19-dev.5 → 8.0.0-rc.19-dev.7

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.
@@ -18,7 +18,7 @@ import { AsyncIterableResult, RuntimeCore, applyMutationDefaults, assertMutation
18
18
  import { invariant } from "@prisma/orm-framework/utils/assertions";
19
19
  import { createExecutionStack } from "@prisma/orm-framework/components/execution";
20
20
  import { hashContent } from "@prisma/orm-framework/utils/hash-content";
21
- //#region ../../../2-sql/5-runtime/dist/exports-CRROThzp.mjs
21
+ //#region ../../../2-sql/5-runtime/dist/exports-C3wGYtID.mjs
22
22
  /** The symbol-keyed member through which a runtime, connection, transaction, `withTransaction` context or activity handle starts activities; user-facing types do not show it. */
23
23
  const activitySource = Symbol("activitySource");
24
24
  function hasActivitySourceMember(target) {
@@ -1269,8 +1269,11 @@ var SqlRuntimeBase = class extends RuntimeCore {
1269
1269
  verifyMarkerOption;
1270
1270
  verifyMarkerPromise;
1271
1271
  closePromise;
1272
+ ownsDriver;
1272
1273
  closeRefusal;
1273
1274
  #inFlight = new InFlightOperations();
1275
+ #openTransactionWork = new InFlightOperations();
1276
+ #transactionWorkOn = /* @__PURE__ */ new WeakMap();
1274
1277
  #openActivityHandles = 0;
1275
1278
  #refusing = false;
1276
1279
  #heldQueryables = /* @__PURE__ */ new WeakSet();
@@ -1280,7 +1283,7 @@ var SqlRuntimeBase = class extends RuntimeCore {
1280
1283
  codecRegistryValidated;
1281
1284
  _telemetry;
1282
1285
  constructor(options) {
1283
- const { context, adapter, driver, verifyMarker, middleware, mode, log, closeRefusal } = options;
1286
+ const { context, adapter, driver, verifyMarker, middleware, mode, log, closeRefusal, ownsDriver } = options;
1284
1287
  if (middleware) for (const mw of middleware) checkMiddlewareCompatibility(mw, "sql", context.contract.target);
1285
1288
  const sqlCtx = {
1286
1289
  contract: context.contract,
@@ -1307,6 +1310,7 @@ var SqlRuntimeBase = class extends RuntimeCore {
1307
1310
  this.codecRegistryValidated = false;
1308
1311
  this.verifyMarkerPromise = this.verifyMarkerOption === false ? Promise.resolve() : null;
1309
1312
  this.closePromise = null;
1313
+ this.ownsDriver = ownsDriver ?? true;
1310
1314
  this._telemetry = null;
1311
1315
  }
1312
1316
  /**
@@ -1565,13 +1569,44 @@ var SqlRuntimeBase = class extends RuntimeCore {
1565
1569
  return beginOwnedTransaction(connection, begin, this.sqlCtx.log);
1566
1570
  }
1567
1571
  /**
1568
- * Returns the raw driver connection. The connection is a `SqlQueryable` — SQL
1569
- * issued on it runs below the middleware/codec/telemetry pipeline. It carries
1570
- * its own lifecycle (`release`/`destroy`/`beginTransaction`); the caller owns
1571
- * disposal.
1572
+ * Returns a raw driver connection. SQL issued on it runs below the middleware/codec/telemetry pipeline. It carries its own lifecycle (`release`/`destroy`/`beginTransaction`); the caller owns disposal. It follows the runtime's close rule for connections: see {@link Runtime.close}. Pass the `activityParent` of the activity it is acquired for, so it is admitted after `close()` while that activity is open.
1572
1573
  */
1573
- acquireRawConnection() {
1574
- return this.driver.acquireConnection();
1574
+ async acquireRawConnection(options) {
1575
+ const endOperation = this.beginOperation(this.driver, options);
1576
+ let connection;
1577
+ try {
1578
+ connection = await this.driver.acquireConnection();
1579
+ } finally {
1580
+ endOperation();
1581
+ }
1582
+ const dispose = async (teardown) => {
1583
+ try {
1584
+ await this.#inFlight.track(teardown);
1585
+ } finally {
1586
+ this.#transactionWorkOn.get(held)?.();
1587
+ }
1588
+ };
1589
+ const held = {
1590
+ query: (request) => this.trackRows(connection.query(request)),
1591
+ execute: (request) => this.#inFlight.track(() => connection.execute(request)),
1592
+ beginTransaction: () => connection.beginTransaction(),
1593
+ ...ifDefined("explain", connection.explain?.bind(connection)),
1594
+ release: () => dispose(() => connection.release()),
1595
+ destroy: (reason) => dispose(() => connection.destroy(reason))
1596
+ };
1597
+ return held;
1598
+ }
1599
+ async *trackRows(rows) {
1600
+ const iterator = rows[Symbol.asyncIterator]();
1601
+ try {
1602
+ let next = await this.#inFlight.track(() => iterator.next());
1603
+ while (!next.done) {
1604
+ yield next.value;
1605
+ next = await iterator.next();
1606
+ }
1607
+ } finally {
1608
+ await iterator.return?.();
1609
+ }
1575
1610
  }
1576
1611
  async setupDriverExecution(exec, queryable) {
1577
1612
  this.familyAdapter.validatePlan(exec, this.contract);
@@ -1596,17 +1631,20 @@ var SqlRuntimeBase = class extends RuntimeCore {
1596
1631
  endOperation();
1597
1632
  };
1598
1633
  }
1599
- warnWhenWaitingOnlyForActivities(warned) {
1600
- if (warned.done || this.#openActivityHandles === 0) return;
1634
+ warnWhenWaitingOnlyForUnendedWork(warned) {
1635
+ const openTransactions = this.#refusing ? this.#openTransactionWork.count : 0;
1636
+ if (warned.done || this.#openActivityHandles === 0 && openTransactions === 0) return;
1601
1637
  if (this.#inFlight.count !== this.#openActivityHandles) return;
1602
1638
  warned.done = true;
1603
1639
  this.sqlCtx.log.warn({
1604
1640
  event: "runtime.close.waiting-for-activities",
1605
- openActivities: this.#openActivityHandles
1641
+ openActivities: this.#openActivityHandles,
1642
+ openTransactions
1606
1643
  });
1607
1644
  }
1608
1645
  beginOperation(queryable, options) {
1609
- if (queryable === this.driver && this.#refusing && options?.activityParent === void 0) throw runtimeClosedError();
1646
+ const admittedParent = options?.activityParent?.acceptsChildren() === true;
1647
+ if (queryable === this.driver && this.#refusing && !admittedParent) throw runtimeClosedError();
1610
1648
  return this.#inFlight.begin();
1611
1649
  }
1612
1650
  parentOf(queryable, options) {
@@ -1873,13 +1911,7 @@ var SqlRuntimeBase = class extends RuntimeCore {
1873
1911
  return (await this.openConnection()).connection;
1874
1912
  }
1875
1913
  async openConnection(options) {
1876
- const endOperation = this.beginOperation(this.driver, options);
1877
- let driverConn;
1878
- try {
1879
- driverConn = await this.driver.acquireConnection();
1880
- } finally {
1881
- endOperation();
1882
- }
1914
+ const driverConn = await this.acquireRawConnection(options);
1883
1915
  this.#heldQueryables.add(driverConn);
1884
1916
  const self = this;
1885
1917
  const wrappedConnection = {
@@ -1888,12 +1920,8 @@ var SqlRuntimeBase = class extends RuntimeCore {
1888
1920
  return self.beginTransactionOn(driverConn, wrappedConnection, void 0);
1889
1921
  },
1890
1922
  [activitySource]: self.connectionActivitySource(driverConn, () => wrappedConnection),
1891
- async release() {
1892
- await self.#inFlight.track(() => driverConn.release());
1893
- },
1894
- async destroy(reason) {
1895
- await self.#inFlight.track(() => driverConn.destroy(reason));
1896
- },
1923
+ release: () => driverConn.release(),
1924
+ destroy: (reason) => driverConn.destroy(reason),
1897
1925
  query(plan, options) {
1898
1926
  return self.queryAgainstQueryable(plan, driverConn, {
1899
1927
  ...options,
@@ -1929,6 +1957,8 @@ var SqlRuntimeBase = class extends RuntimeCore {
1929
1957
  */
1930
1958
  async beginTransactionOn(connection, owner, parent) {
1931
1959
  owner[transactionStart].refusedBeforeBegin = false;
1960
+ const endTransactionWork = this.#openTransactionWork.begin();
1961
+ this.#transactionWorkOn.set(connection, endTransactionWork);
1932
1962
  let activity;
1933
1963
  try {
1934
1964
  activity = await startTransactionActivity({
@@ -1941,13 +1971,15 @@ var SqlRuntimeBase = class extends RuntimeCore {
1941
1971
  holdFinishedChildren: this.#holdFinishedChildren
1942
1972
  });
1943
1973
  } catch (error) {
1974
+ endTransactionWork();
1944
1975
  owner[transactionStart].refusedBeforeBegin = true;
1945
1976
  throw error;
1946
1977
  }
1947
1978
  let driverTx;
1948
1979
  try {
1949
- driverTx = await this.#inFlight.track(() => connection.beginTransaction());
1980
+ driverTx = await connection.beginTransaction();
1950
1981
  } catch (error) {
1982
+ endTransactionWork();
1951
1983
  await activity.end({
1952
1984
  by: "rollback",
1953
1985
  outcome: "failed",
@@ -1956,9 +1988,9 @@ var SqlRuntimeBase = class extends RuntimeCore {
1956
1988
  throw error;
1957
1989
  }
1958
1990
  if (this.#heldQueryables.has(connection)) this.#heldQueryables.add(driverTx);
1959
- return this.wrapTransaction(driverTx, connection, activity);
1991
+ return this.wrapTransaction(driverTx, connection, activity, endTransactionWork);
1960
1992
  }
1961
- wrapTransaction(driverTx, connection, activity) {
1993
+ wrapTransaction(driverTx, connection, activity, endTransactionWork) {
1962
1994
  this.#openTransactions.set(driverTx, activity);
1963
1995
  this.#openTransactions.set(connection, activity);
1964
1996
  const stopAcceptingChildren = () => {
@@ -1988,6 +2020,7 @@ var SqlRuntimeBase = class extends RuntimeCore {
1988
2020
  try {
1989
2021
  await self.#inFlight.track(() => driverTx.commit());
1990
2022
  } catch (error) {
2023
+ endTransactionWork();
1991
2024
  await activity.end({
1992
2025
  by: "commit",
1993
2026
  outcome: "failed"
@@ -1999,7 +2032,11 @@ var SqlRuntimeBase = class extends RuntimeCore {
1999
2032
  by: "commit",
2000
2033
  outcome: "succeeded"
2001
2034
  });
2002
- await commitEnding;
2035
+ try {
2036
+ await commitEnding;
2037
+ } finally {
2038
+ endTransactionWork();
2039
+ }
2003
2040
  },
2004
2041
  async rollback() {
2005
2042
  stopAcceptingChildren();
@@ -2011,6 +2048,7 @@ var SqlRuntimeBase = class extends RuntimeCore {
2011
2048
  try {
2012
2049
  await self.#inFlight.track(() => driverTx.rollback());
2013
2050
  } catch (error) {
2051
+ endTransactionWork();
2014
2052
  await activity.end({
2015
2053
  by: "rollback",
2016
2054
  outcome: "failed",
@@ -2019,11 +2057,15 @@ var SqlRuntimeBase = class extends RuntimeCore {
2019
2057
  throw error;
2020
2058
  }
2021
2059
  settlement.rolledBack = true;
2022
- await activity.end({
2023
- by: "rollback",
2024
- outcome: "succeeded",
2025
- commitAttempted
2026
- });
2060
+ try {
2061
+ await activity.end({
2062
+ by: "rollback",
2063
+ outcome: "succeeded",
2064
+ commitAttempted
2065
+ });
2066
+ } finally {
2067
+ endTransactionWork();
2068
+ }
2027
2069
  },
2028
2070
  [activitySource]: {
2029
2071
  startActivity: (clientActivity) => self.startActivityOnRoute(self.queryableRoute(driverTx, "transaction", () => activity, {
@@ -2066,19 +2108,26 @@ var SqlRuntimeBase = class extends RuntimeCore {
2066
2108
  return this.closePromise;
2067
2109
  }
2068
2110
  async closeDriverAfterWork() {
2111
+ await this.refuseAfterWork();
2112
+ if (this.ownsDriver) await this.driver.close();
2113
+ }
2114
+ async refuseAfterWork() {
2069
2115
  const warned = { done: false };
2070
2116
  if (this.closeRefusal === "when-idle") await this.waitForIdleTurn(warned);
2071
2117
  this.#refusing = true;
2072
- this.warnWhenWaitingOnlyForActivities(warned);
2073
- await this.#inFlight.drained();
2074
- await this.driver.close();
2118
+ this.warnWhenWaitingOnlyForUnendedWork(warned);
2119
+ while (this.#inFlight.active || this.#openTransactionWork.active) {
2120
+ await this.#inFlight.drained();
2121
+ this.warnWhenWaitingOnlyForUnendedWork(warned);
2122
+ await this.#openTransactionWork.drained();
2123
+ }
2075
2124
  }
2076
2125
  async waitForIdleTurn(warned) {
2077
2126
  for (;;) {
2078
2127
  const startedBefore = this.#inFlight.started;
2079
2128
  await new Promise((resolve) => scheduleTimer(resolve, 0));
2080
2129
  if (!this.#inFlight.active && this.#inFlight.started === startedBefore) return;
2081
- this.warnWhenWaitingOnlyForActivities(warned);
2130
+ this.warnWhenWaitingOnlyForUnendedWork(warned);
2082
2131
  await this.#inFlight.drained();
2083
2132
  }
2084
2133
  }
@@ -2337,4 +2386,4 @@ function createToSql(stack, contract) {
2337
2386
  //#endregion
2338
2387
  export { withTransactionMembers as C, withTransaction as S, lowerSqlPlan as _, budgets as a, validateCodecRegistryCompleteness as b, createSqlExecutionStack as c, deriveParamMetadata as d, encodeParamsWithMetadata as f, lints as g, lazyActivitySource as h, activitySource as i, createToSql as l, findActivitySource as m, PreparedStatementImpl as n, createAstCodecRegistry as o, extractCodecIds as p, SqlRuntimeBase as r, createExecutionContext as s, PreparedExecutionImpl as t, delegatingActivitySource as u, planContentHashOn as v, validateContractCodecMappings as x, startActivityOn as y };
2339
2388
 
2340
- //# sourceMappingURL=exports-CRROThzp-BNz0pGj0.mjs.map
2389
+ //# sourceMappingURL=exports-C3wGYtID-Bg6ThaBe.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exports-C3wGYtID-Bg6ThaBe.mjs","names":["runtimeError","#count","#started","#drainWaiters","#ast","#holdFinishedChildren","#runtimeRoute","#openTransactions","#inFlight","#transactionWorkOn","#heldQueryables","#openActivityHandles","#refusing","#openTransactionWork","#preparedStatementHandles","#run","#rows","#done","#inner"],"sources":["../../../../2-sql/5-runtime/dist/exports-C3wGYtID.mjs"],"sourcesContent":["import { a as wasRefusedBeforeBegin, c as preparedStatementExecute, i as transactionStart, l as runPreparedExecute, n as settlementOf, o as preparedStatementQuery, r as transactionSettlement, s as runPreparedQuery, t as createTransactionStart } from \"./transaction-state-BfXhs7D7.mjs\";\nimport { invariant } from \"@internal/utils/assertions\";\nimport { materializeCodec, resolveCodecDescriptorOrThrow } from \"@internal/framework-components/codec\";\nimport { canonicalizeJson } from \"@internal/framework-components/utils\";\nimport { AsyncIterableResult, RuntimeCore, applyMutationDefaults, assertMutationDefaultGeneratorsAvailable, checkAborted, checkMiddlewareCompatibility, collectMutationDefaultGenerators, createContextBeneath, executeStatement, raceAgainstAbort, runtimeError, startClientActivity, startTransactionActivity, streamStatement } from \"@internal/framework-components/runtime\";\nimport { PreparedParamRef, collectOrderedParamRefs, isQueryAst } from \"@internal/sql-relational-core/ast\";\nimport { assertNever, isInternalError } from \"@internal/utils/internal-error\";\nimport { isStructuredError, structuredError } from \"@internal/utils/structured-error\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { checkContractComponentRequirements, mergeCapabilityMatrices } from \"@internal/framework-components/components\";\nimport { createExecutionStack } from \"@internal/framework-components/execution\";\nimport { createSqlOperationRegistry } from \"@internal/sql-operations\";\nimport { buildSqlAggregateDescriptorRegistry } from \"@internal/sql-relational-core/aggregate-descriptor-registry\";\nimport { buildCodecDescriptorRegistry } from \"@internal/sql-relational-core/codec-descriptor-registry\";\nimport { blindCast, castAs } from \"@internal/utils/casts\";\nimport { createSqlParamRefMutator } from \"@internal/sql-relational-core/middleware\";\nimport { canonicalStringify } from \"@internal/utils/canonical-stringify\";\nimport { hashContent } from \"@internal/utils/hash-content\";\nimport { createHash } from \"node:crypto\";\n//#region src/activity-handle.ts\n/** The symbol-keyed member through which a runtime, connection, transaction, `withTransaction` context or activity handle starts activities; user-facing types do not show it. */\nconst activitySource = Symbol(\"activitySource\");\nfunction hasActivitySourceMember(target) {\n\treturn activitySource in target;\n}\n/** The `activitySource` member of a queryable; `undefined` for a queryable that cannot start activities, such as a test stub. */\nfunction findActivitySource(target) {\n\treturn hasActivitySourceMember(target) ? target[activitySource] : void 0;\n}\nfunction activitySourceOf(target) {\n\tconst source = findActivitySource(target);\n\tinvariant(source !== void 0, \"The queryable cannot start activities\");\n\treturn source;\n}\n/** An activity source that calls `source()` each time it is used, for an object whose source is created later, such as on the first query. */\nfunction lazyActivitySource(source) {\n\treturn {\n\t\tstartActivity: (activity) => source().startActivity(activity),\n\t\tplanContentHash: (plan) => source().planContentHash(plan)\n\t};\n}\n/** An activity source that starts activities on whatever queryable `target()` returns when called, for an object that sends its statements to a queryable it looks up each time. */\nfunction delegatingActivitySource(target) {\n\treturn lazyActivitySource(() => activitySourceOf(target()));\n}\n/** Starts an activity on a queryable through its `activitySource` member. */\nfunction startActivityOn(target, activity) {\n\treturn activitySourceOf(target).startActivity(activity);\n}\nfunction planContentHashOn(target, plan) {\n\treturn activitySourceOf(target).planContentHash(plan);\n}\n//#endregion\n//#region src/codecs/ast-codec-resolver.ts\n/**\n* Build an {@link AstCodecResolver} bound to a descriptor registry and a per-call instance-context factory.\n*\n* The instance-context factory lets callers control `name` / `usedAt` for refs the AST supplies (e.g. AST-embedded migration ops where the materialisation site is the AST node, not a contract column). The contract-walk pre-population path constructs its own contexts and invokes the resolver with those refs to seed the cache.\n*/\nfunction createAstCodecResolver(descriptors, instanceContextFor) {\n\tconst cache = /* @__PURE__ */ new Map();\n\treturn { forCodecRef(ref) {\n\t\tconst key = `${ref.codecId}:${canonicalizeJson(ref.typeParams)}`;\n\t\tconst cached = cache.get(key);\n\t\tif (cached) return cached;\n\t\tconst codec = materializeCodec(resolveCodecDescriptorOrThrow((id) => descriptors.descriptorFor(id), ref, \"RUNTIME.CODEC_DESCRIPTOR_MISSING\"), ref, instanceContextFor(ref));\n\t\tcache.set(key, codec);\n\t\treturn codec;\n\t} };\n}\n//#endregion\n//#region src/codecs/ast-codec-registry.ts\n/**\n* Build a contract-free {@link ContractCodecRegistry} that resolves codecs\n* purely from AST-supplied {@link import('@internal/framework-components/codec').CodecRef}s\n* against a target's descriptor registry.\n*\n* Dispatch is driven entirely by `CodecRef`s embedded in AST nodes; no\n* contract walk is needed. `forColumn` always returns `undefined` — this\n* registry carries no column-to-codec mappings.\n*/\nfunction createAstCodecRegistry(descriptors) {\n\tconst resolver = createAstCodecResolver(descriptors, (ref) => ({\n\t\tname: ref.codecId,\n\t\tusedAt: []\n\t}));\n\treturn {\n\t\tforColumn: () => void 0,\n\t\tforCodecRef: (ref) => resolver.forCodecRef(ref)\n\t};\n}\n//#endregion\n//#region src/codecs/encoding.ts\nconst NO_METADATA = Object.freeze({\n\tcodec: void 0,\n\tname: void 0\n});\nfunction deriveParamMetadata(ast) {\n\treturn collectOrderedParamRefs(ast).map((ref) => {\n\t\treturn {\n\t\t\tcodec: ref.codec,\n\t\t\tname: ref.name\n\t\t};\n\t});\n}\nfunction resolveParamCodec(metadata, contractCodecs) {\n\tif (metadata.codec && contractCodecs) return contractCodecs.forCodecRef(metadata.codec);\n}\nfunction paramLabel(metadata, paramIndex) {\n\treturn metadata.name ?? `param[${paramIndex}]`;\n}\nfunction wrapEncodeFailure(error, metadata, paramIndex, codecId) {\n\tif (isInternalError(error)) throw error;\n\tconst label = paramLabel(metadata, paramIndex);\n\tconst wrapped = runtimeError(\"RUNTIME.ENCODE_FAILED\", `Failed to encode parameter ${label} with codec '${codecId}': ${error instanceof Error ? error.message : String(error)}`, {\n\t\tlabel,\n\t\tcodec: codecId,\n\t\tparamIndex\n\t});\n\twrapped.cause = error;\n\tthrow wrapped;\n}\nasync function encodeParamValue(value, metadata, paramIndex, ctx, contractCodecs) {\n\tif (value === null || value === void 0) return null;\n\tconst codec = resolveParamCodec(metadata, contractCodecs);\n\tif (!codec) return value;\n\tif (metadata.codec?.many) {\n\t\tif (!Array.isArray(value)) wrapEncodeFailure(/* @__PURE__ */ new TypeError(`expected an array for many-typed parameter, got ${typeof value}`), metadata, paramIndex, codec.id);\n\t\tconst encoded = [];\n\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\tconst elem = value[i];\n\t\t\tif (elem === null || elem === void 0) {\n\t\t\t\tencoded.push(null);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tencoded.push(await codec.toWire(elem, ctx));\n\t\t\t} catch (error) {\n\t\t\t\tif (isStructuredError(error)) throw error;\n\t\t\t\twrapEncodeFailure(error, metadata, paramIndex, codec.id);\n\t\t\t}\n\t\t}\n\t\treturn encoded;\n\t}\n\ttry {\n\t\treturn await codec.toWire(value, ctx);\n\t} catch (error) {\n\t\tif (isStructuredError(error)) throw error;\n\t\twrapEncodeFailure(error, metadata, paramIndex, codec.id);\n\t}\n}\n/**\n* Encodes all parameters concurrently via `Promise.all`. Per parameter, sync-and async-authored codecs share the same path: `codec.encode → await → return`. Param-level failures are wrapped in `RUNTIME.ENCODE_FAILED`.\n*\n* When `ctx.signal` is provided:\n*\n* - **Already-aborted at entry** short-circuits with `RUNTIME.ABORTED` (`{ phase: 'encode' }`) before any `codec.encode` call is made — codecs can pin this with a per-call counter that stays at zero.\n* - **Mid-flight abort** races the per-param `Promise.all` against `abortable(ctx.signal)`. The runtime returns `RUNTIME.ABORTED` promptly even if codec bodies ignore the signal; the in-flight bodies are abandoned and run to completion in the background (cooperative cancellation, see ADR 204).\n* - Existing structured envelopes (any dotted-code error passing `isStructuredError`, e.g. `RUNTIME.ENCODE_FAILED`) that surface from a codec body before the runtime observes the abort pass through unchanged (no double wrap).\n*/\nasync function encodeParams(plan, ctx, contractCodecs) {\n\treturn encodeParamsWithMetadata(plan.params, deriveParamMetadata(plan.ast), ctx, contractCodecs);\n}\nasync function encodeParamsWithMetadata(values, metadata, ctx, contractCodecs) {\n\tcheckAborted(ctx, \"encode\");\n\tconst signal = ctx.signal;\n\tif (values.length === 0) return values;\n\tconst tasks = values.map((value, i) => encodeParamValue(value, metadata[i] ?? NO_METADATA, i, ctx, contractCodecs));\n\tconst settled = await raceAgainstAbort(Promise.all(tasks), signal, \"encode\");\n\treturn Object.freeze(settled);\n}\n//#endregion\n//#region src/codecs/validation.ts\nfunction extractCodecIds(contract) {\n\tconst codecIds = /* @__PURE__ */ new Set();\n\tfor (const ns of Object.values(contract.storage.namespaces)) for (const table of Object.values(ns.entries.table ?? {})) for (const column of Object.values(table.columns)) {\n\t\tconst codecId = column.codecId;\n\t\tcodecIds.add(codecId);\n\t}\n\treturn codecIds;\n}\nfunction extractColumnCodecRefs(contract) {\n\tconst refs = [];\n\tfor (const [namespaceId, ns] of Object.entries(contract.storage.namespaces)) for (const [tableName, table] of Object.entries(ns.entries.table ?? {})) for (const [columnName, column] of Object.entries(table.columns)) refs.push({\n\t\tnamespaceId,\n\t\ttable: tableName,\n\t\tcolumn: columnName,\n\t\tcodecId: column.codecId\n\t});\n\treturn refs;\n}\nfunction validateContractCodecMappings(registry, contract) {\n\tconst invalidCodecs = extractColumnCodecRefs(contract).filter((ref) => registry.descriptorFor(ref.codecId) === void 0);\n\tif (invalidCodecs.length > 0) {\n\t\tconst details = {\n\t\t\tcontractTarget: contract.target,\n\t\t\tinvalidCodecs\n\t\t};\n\t\tthrow runtimeError(\"RUNTIME.CODEC_MISSING\", `Missing codec implementations for column codecIds: ${invalidCodecs.map((c) => `${c.namespaceId}.${c.table}.${c.column} (${c.codecId})`).join(\", \")}`, details);\n\t}\n}\nfunction validateCodecRegistryCompleteness(registry, contract) {\n\tvalidateContractCodecMappings(registry, contract);\n}\n//#endregion\n//#region src/lower-sql-plan.ts\n/**\n* Lowers a SQL query plan to an executable Plan by calling the adapter's lower method.\n*\n* Ad-hoc lowerings produce only `{kind: 'literal'}` slots; this helper\n* unwraps them into the bare-value array `SqlExecutionPlan` exposes.\n* Encountering a `{kind: 'bind'}` slot here means the caller passed an\n* AST containing `PreparedParamRef` to the ad-hoc execute path — that's a\n* caller error, surfaced as `RUNTIME.PREPARE_BIND_ON_ADHOC`.\n*/\nfunction lowerSqlPlan(adapter, contract, queryPlan) {\n\tconst lowered = adapter.lower(queryPlan.ast, {\n\t\tcontract,\n\t\tparams: queryPlan.params\n\t});\n\tconst params = lowered.params.map((slot) => {\n\t\tif (slot.kind === \"literal\") return slot.value;\n\t\tthrow runtimeError(\"RUNTIME.PREPARE_BIND_ON_ADHOC\", `The plan has a bind site for '${slot.name}'. A plan built inside prepare(...) runs only as a prepared statement.`, { name: slot.name });\n\t});\n\treturn Object.freeze({\n\t\tsql: lowered.sql,\n\t\tparams,\n\t\tast: queryPlan.ast,\n\t\tmeta: queryPlan.meta\n\t});\n}\n//#endregion\n//#region src/middleware/budgets.ts\nfunction hasAggregateWithoutGroupBy(ast) {\n\tif (ast.groupBy !== void 0) return false;\n\treturn ast.projection.some((item) => item.expr.kind === \"aggregate\");\n}\nfunction primaryTableFromAst(ast) {\n\tif (ast.from === void 0) return void 0;\n\tswitch (ast.from.kind) {\n\t\tcase \"table-source\": return ast.from.name;\n\t\tcase \"derived-table-source\": return ast.from.alias;\n\t\tcase \"function-source\": return ast.from.fn;\n\t\t// v8 ignore next 4\n\t\tdefault: return assertNever(ast.from, `Unsupported source kind: ${ast.from.kind}`);\n\t}\n}\nfunction estimateRowsFromAst(ast, tableRows, defaultTableRows, hasAggregateWithoutGroup) {\n\tif (hasAggregateWithoutGroup) return 1;\n\tconst primaryTable = primaryTableFromAst(ast);\n\tconst tableEstimate = (primaryTable !== void 0 ? tableRows[primaryTable] : void 0) ?? defaultTableRows;\n\tif (typeof ast.limit === \"number\") return Math.min(ast.limit, tableEstimate);\n\treturn tableEstimate;\n}\nfunction emitBudgetViolation(error, shouldBlock, ctx) {\n\tif (shouldBlock) throw error;\n\tctx.log.warn({\n\t\tcode: error.code,\n\t\tmessage: error.message,\n\t\tdetails: error.details\n\t});\n}\nconst observedRows = Symbol(\"budgets.observedRows\");\nfunction budgets(options) {\n\tconst maxRows = options?.maxRows ?? 1e4;\n\tconst defaultTableRows = options?.defaultTableRows ?? 1e4;\n\tconst tableRows = options?.tableRows ?? {};\n\tconst maxLatencyMs = options?.maxLatencyMs ?? 1e3;\n\tconst rowSeverity = options?.severities?.rowCount ?? \"error\";\n\tconst latencySeverity = options?.severities?.latency ?? \"warn\";\n\treturn Object.freeze({\n\t\tname: \"budgets\",\n\t\tfamilyId: \"sql\",\n\t\tasync beforeEncode(plan, ctx) {\n\t\t\tif (isQueryAst(plan.ast) && plan.ast.kind === \"select\") evaluateSelectAst(plan.ast, ctx);\n\t\t},\n\t\tasync onRow(_row, _plan, ctx) {\n\t\t\tconst observed = ctx.state(observedRows);\n\t\t\tconst count = (typeof observed[\"count\"] === \"number\" ? observed[\"count\"] : 0) + 1;\n\t\t\tobserved[\"count\"] = count;\n\t\t\tif (count <= maxRows || observed[\"warned\"] === true) return;\n\t\t\tconst shouldBlock = rowSeverity === \"error\" || ctx.mode === \"strict\";\n\t\t\tif (!shouldBlock) observed[\"warned\"] = true;\n\t\t\temitBudgetViolation(runtimeError(\"BUDGET.ROWS_EXCEEDED\", \"Observed row count exceeds budget\", {\n\t\t\t\tsource: \"observed\",\n\t\t\t\tobservedRows: count,\n\t\t\t\tmaxRows\n\t\t\t}), shouldBlock, ctx);\n\t\t},\n\t\tasync activityEnded(_activity, result, ctx) {\n\t\t\tif (result.kind === \"statement\") checkLatency(result.latencyMs, ctx);\n\t\t}\n\t});\n\tfunction checkLatency(latencyMs, ctx) {\n\t\tif (latencyMs > maxLatencyMs) {\n\t\t\tconst shouldBlock = latencySeverity === \"error\" || ctx.mode === \"strict\";\n\t\t\temitBudgetViolation(runtimeError(\"BUDGET.TIME_EXCEEDED\", \"Query latency exceeds budget\", {\n\t\t\t\tlatencyMs,\n\t\t\t\tmaxLatencyMs\n\t\t\t}), shouldBlock, ctx);\n\t\t}\n\t}\n\tfunction evaluateSelectAst(ast, ctx) {\n\t\tconst hasAggNoGroup = hasAggregateWithoutGroupBy(ast);\n\t\tconst estimated = estimateRowsFromAst(ast, tableRows, defaultTableRows, hasAggNoGroup);\n\t\tconst isUnbounded = ast.limit === void 0 && !hasAggNoGroup;\n\t\tconst shouldBlock = rowSeverity === \"error\" || ctx.mode === \"strict\";\n\t\tif (isUnbounded) {\n\t\t\temitBudgetViolation(runtimeError(\"BUDGET.ROWS_EXCEEDED\", \"Unbounded SELECT query exceeds budget\", estimated >= maxRows ? {\n\t\t\t\tsource: \"ast\",\n\t\t\t\testimatedRows: estimated,\n\t\t\t\tmaxRows\n\t\t\t} : {\n\t\t\t\tsource: \"ast\",\n\t\t\t\tmaxRows\n\t\t\t}), shouldBlock, ctx);\n\t\t\treturn;\n\t\t}\n\t\tif (estimated > maxRows) emitBudgetViolation(runtimeError(\"BUDGET.ROWS_EXCEEDED\", \"Estimated row count exceeds budget\", {\n\t\t\tsource: \"ast\",\n\t\t\testimatedRows: estimated,\n\t\t\tmaxRows\n\t\t}), shouldBlock, ctx);\n\t}\n}\n//#endregion\n//#region src/guardrails/raw.ts\nconst SELECT_STAR_REGEX = /select\\s+\\*/i;\nconst LIMIT_REGEX = /\\blimit\\b/i;\nconst MUTATION_PREFIX_REGEX = /^(insert|update|delete|create|alter|drop|truncate)\\b/i;\nconst READ_ONLY_INTENTS = /* @__PURE__ */ new Set([\n\t\"read\",\n\t\"report\",\n\t\"readonly\"\n]);\nfunction evaluateRawGuardrails(plan, config) {\n\tconst lints = [];\n\tconst budgets = [];\n\tconst normalized = normalizeWhitespace(plan.sql);\n\tconst statementType = classifyStatement(normalized);\n\tif (statementType === \"select\") {\n\t\tif (SELECT_STAR_REGEX.test(normalized)) lints.push(createLint(\"LINT.SELECT_STAR\", \"error\", \"Raw SQL plan selects all columns via *\", { sql: snippet(plan.sql) }));\n\t\tif (!LIMIT_REGEX.test(normalized)) {\n\t\t\tconst severity = config?.budgets?.unboundedSelectSeverity ?? \"error\";\n\t\t\tlints.push(createLint(\"LINT.NO_LIMIT\", \"warn\", \"Raw SQL plan omits LIMIT clause\", { sql: snippet(plan.sql) }));\n\t\t\tbudgets.push(createBudget(\"BUDGET.ROWS_EXCEEDED\", severity, \"Raw SQL plan is unbounded and may exceed row budget\", {\n\t\t\t\tsql: snippet(plan.sql),\n\t\t\t\t...config?.budgets?.estimatedRows !== void 0 ? { estimatedRows: config.budgets.estimatedRows } : {}\n\t\t\t}));\n\t\t}\n\t}\n\tif (isMutationStatement(statementType) && isReadOnlyIntent(plan.meta)) lints.push(createLint(\"LINT.READ_ONLY_MUTATION\", \"error\", \"Raw SQL plan mutates data despite read-only intent\", {\n\t\tsql: snippet(plan.sql),\n\t\tintent: plan.meta.annotations?.[\"intent\"]\n\t}));\n\treturn {\n\t\tlints,\n\t\tbudgets,\n\t\tstatement: statementType\n\t};\n}\nfunction classifyStatement(sql) {\n\tconst trimmed = sql.trim();\n\tconst lower = trimmed.toLowerCase();\n\tif (lower.startsWith(\"with\")) {\n\t\tif (lower.includes(\"select\")) return \"select\";\n\t}\n\tif (lower.startsWith(\"select\")) return \"select\";\n\tif (MUTATION_PREFIX_REGEX.test(trimmed)) return \"mutation\";\n\treturn \"other\";\n}\nfunction isMutationStatement(statement) {\n\treturn statement === \"mutation\";\n}\nfunction isReadOnlyIntent(meta) {\n\tconst annotations = meta.annotations;\n\tconst intent = typeof annotations?.intent === \"string\" ? annotations.intent.toLowerCase() : void 0;\n\treturn intent !== void 0 && READ_ONLY_INTENTS.has(intent);\n}\nfunction normalizeWhitespace(value) {\n\treturn value.replace(/\\s+/g, \" \").trim();\n}\nfunction snippet(sql) {\n\treturn normalizeWhitespace(sql).slice(0, 200);\n}\nfunction createLint(code, severity, message, details) {\n\treturn {\n\t\tcode,\n\t\tseverity,\n\t\tmessage,\n\t\t...details ? { details } : {}\n\t};\n}\nfunction createBudget(code, severity, message, details) {\n\treturn {\n\t\tcode,\n\t\tseverity,\n\t\tmessage,\n\t\t...details ? { details } : {}\n\t};\n}\n//#endregion\n//#region src/middleware/lints.ts\nfunction getFromSourceTableDetail(source) {\n\tswitch (source.kind) {\n\t\tcase \"table-source\": return source.name;\n\t\tcase \"derived-table-source\": return source.alias;\n\t\tcase \"function-source\": return source.fn;\n\t\t// v8 ignore next 4\n\t\tdefault: return assertNever(source, `Unsupported source kind: ${source.kind}`);\n\t}\n}\nfunction evaluateAstLints(ast) {\n\tconst findings = [];\n\tswitch (ast.kind) {\n\t\tcase \"delete\":\n\t\t\tif (ast.where === void 0) findings.push({\n\t\t\t\tcode: \"LINT.DELETE_WITHOUT_WHERE\",\n\t\t\t\tseverity: \"error\",\n\t\t\t\tmessage: \"DELETE without WHERE clause blocks execution to prevent accidental full-table deletion\",\n\t\t\t\tdetails: { table: ast.table.name }\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"update\":\n\t\t\tif (ast.where === void 0) findings.push({\n\t\t\t\tcode: \"LINT.UPDATE_WITHOUT_WHERE\",\n\t\t\t\tseverity: \"error\",\n\t\t\t\tmessage: \"UPDATE without WHERE clause blocks execution to prevent accidental full-table update\",\n\t\t\t\tdetails: { table: ast.table.name }\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"select\":\n\t\t\tif (ast.limit === void 0) {\n\t\t\t\tconst table = ast.from !== void 0 ? getFromSourceTableDetail(ast.from) : void 0;\n\t\t\t\tfindings.push({\n\t\t\t\t\tcode: \"LINT.NO_LIMIT\",\n\t\t\t\t\tseverity: \"warn\",\n\t\t\t\t\tmessage: \"Unbounded SELECT may return large result sets\",\n\t\t\t\t\t...ifDefined(\"details\", table !== void 0 ? { table } : void 0)\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (ast.selectAllIntent !== void 0) {\n\t\t\t\tconst table = ast.selectAllIntent.table;\n\t\t\t\tfindings.push({\n\t\t\t\t\tcode: \"LINT.SELECT_STAR\",\n\t\t\t\t\tseverity: \"warn\",\n\t\t\t\t\tmessage: \"Query selects all columns via selectAll intent\",\n\t\t\t\t\t...ifDefined(\"details\", table !== void 0 ? { table } : void 0)\n\t\t\t\t});\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"insert\": break;\n\t\tcase \"raw-query\": break;\n\t\t// v8 ignore next 2\n\t\tdefault: assertNever(ast, `Unsupported AST kind: ${ast.kind}`);\n\t}\n\treturn findings;\n}\nfunction getConfiguredSeverity(code, options) {\n\tconst severities = options?.severities;\n\tif (!severities) return void 0;\n\tswitch (code) {\n\t\tcase \"LINT.SELECT_STAR\": return severities.selectStar;\n\t\tcase \"LINT.NO_LIMIT\": return severities.noLimit;\n\t\tcase \"LINT.DELETE_WITHOUT_WHERE\": return severities.deleteWithoutWhere;\n\t\tcase \"LINT.UPDATE_WITHOUT_WHERE\": return severities.updateWithoutWhere;\n\t\tcase \"LINT.READ_ONLY_MUTATION\": return severities.readOnlyMutation;\n\t\tdefault: return;\n\t}\n}\n/**\n* AST-first lint middleware for SQL plans. When `plan.ast` is a SQL QueryAst, inspects\n* the AST structurally. When `plan.ast` is missing, falls back to raw heuristic\n* guardrails or skips linting depending on `fallbackWhenAstMissing`.\n*\n* Rules (AST-based):\n* - DELETE without WHERE: blocks execution (configurable severity, default error)\n* - UPDATE without WHERE: blocks execution (configurable severity, default error)\n* - Unbounded SELECT: warn/error (severity from noLimit)\n* - SELECT * intent: warn/error (severity from selectStar)\n*\n* Fallback: When ast is missing, `fallbackWhenAstMissing: 'raw'` uses heuristic\n* SQL parsing; `'skip'` skips all lints. Default is `'raw'`.\n*/\nfunction lints(options) {\n\tconst fallback = options?.fallbackWhenAstMissing ?? \"raw\";\n\tconst beforeOperation = async (plan, ctx) => {\n\t\tconst findings = [];\n\t\tif (isQueryAst(plan.ast)) {\n\t\t\tfindings.push(...evaluateAstLints(plan.ast));\n\t\t\tif (plan.ast.kind === \"raw-query\") findings.push(...evaluateRawGuardrails(plan).lints);\n\t\t} else if (fallback !== \"skip\") findings.push(...evaluateRawGuardrails(plan).lints);\n\t\tfor (const lint of findings) {\n\t\t\tconst effectiveSeverity = getConfiguredSeverity(lint.code, options) ?? lint.severity;\n\t\t\tif (effectiveSeverity === \"error\") throw runtimeError(lint.code, lint.message, lint.details);\n\t\t\tif (effectiveSeverity === \"warn\") ctx.log.warn({\n\t\t\t\tcode: lint.code,\n\t\t\t\tmessage: lint.message,\n\t\t\t\tdetails: lint.details\n\t\t\t});\n\t\t}\n\t};\n\treturn Object.freeze({\n\t\tname: \"lints\",\n\t\tfamilyId: \"sql\",\n\t\tbeforeEncode: beforeOperation\n\t});\n}\n//#endregion\n//#region src/prepared/prepared-statement.ts\nvar PreparedStatementImpl = class {\n\tsql;\n\tast;\n\tmeta;\n\tslots;\n\tdecodeContext;\n\tparamMetadata;\n\tconstructor(internals) {\n\t\tthis.sql = internals.sql;\n\t\tthis.ast = internals.ast;\n\t\tthis.meta = internals.meta;\n\t\tthis.slots = internals.slots;\n\t\tthis.decodeContext = internals.decodeContext;\n\t\tthis.paramMetadata = internals.paramMetadata;\n\t\tObject.freeze(this);\n\t}\n\tquery(target, params, options) {\n\t\treturn runPreparedQuery(target, this, params, options);\n\t}\n};\n/**\n* The statistics-reporting sibling of {@link PreparedStatementImpl}. A plan\n* declaring an affected-row count prepares into one of these, which carries\n* the same lowered statement and bind slots and is consumed by executing it.\n*\n* The two classes are separate so the consumption a plan did not declare is\n* absent from the value, not merely from its type.\n*/\nvar PreparedExecutionImpl = class {\n\tsql;\n\tast;\n\tmeta;\n\tslots;\n\tdecodeContext;\n\tparamMetadata;\n\tconstructor(internals) {\n\t\tthis.sql = internals.sql;\n\t\tthis.ast = internals.ast;\n\t\tthis.meta = internals.meta;\n\t\tthis.slots = internals.slots;\n\t\tthis.decodeContext = internals.decodeContext;\n\t\tthis.paramMetadata = internals.paramMetadata;\n\t\tObject.freeze(this);\n\t}\n\texecute(target, params, options) {\n\t\treturn runPreparedExecute(target, this, params, options);\n\t}\n};\n//#endregion\n//#region src/sql-context.ts\nfunction createSqlExecutionStack(options) {\n\treturn createExecutionStack({\n\t\ttarget: options.target,\n\t\tadapter: options.adapter,\n\t\tdriver: options.driver,\n\t\textensions: options.extensions\n\t});\n}\nfunction assertExecutionStackContractRequirements(contract, stack) {\n\tconst providedComponentIds = /* @__PURE__ */ new Set([\n\t\tstack.target.id,\n\t\tstack.adapter.id,\n\t\t...stack.extensions.map((pack) => pack.id)\n\t]);\n\tconst result = checkContractComponentRequirements({\n\t\tcontract,\n\t\texpectedTargetFamily: \"sql\",\n\t\texpectedTargetId: stack.target.targetId,\n\t\tprovidedComponentIds\n\t});\n\tif (result.familyMismatch) throw runtimeError(\"RUNTIME.CONTRACT_FAMILY_MISMATCH\", `Contract target family '${result.familyMismatch.actual}' does not match runtime family '${result.familyMismatch.expected}'.`, {\n\t\tactual: result.familyMismatch.actual,\n\t\texpected: result.familyMismatch.expected\n\t});\n\tif (result.targetMismatch) throw runtimeError(\"RUNTIME.CONTRACT_TARGET_MISMATCH\", `Contract target '${result.targetMismatch.actual}' does not match runtime target descriptor '${result.targetMismatch.expected}'.`, {\n\t\tactual: result.targetMismatch.actual,\n\t\texpected: result.targetMismatch.expected\n\t});\n\tif (result.missingExtensionPackIds.length > 0) {\n\t\tconst packIds = result.missingExtensionPackIds;\n\t\tthrow runtimeError(\"RUNTIME.MISSING_EXTENSION_PACK\", `Contract requires extension pack(s) ${packIds.map((id) => `'${id}'`).join(\", \")}, but runtime descriptors do not provide matching component(s).`, { packIds });\n\t}\n}\nfunction validateTypeParams(typeParams, descriptor, context) {\n\tconst result = descriptor.paramsSchema[\"~standard\"].validate(typeParams);\n\tif (result instanceof Promise) throw runtimeError(\"RUNTIME.TYPE_PARAMS_INVALID\", `paramsSchema for codec '${descriptor.codecId}' returned a Promise; runtime validation requires a synchronous Standard Schema validator.`, {\n\t\t...context,\n\t\tcodecId: descriptor.codecId,\n\t\ttypeParams\n\t});\n\tif (result.issues) {\n\t\tconst messages = result.issues.map((issue) => issue.message).join(\"; \");\n\t\tthrow runtimeError(\"RUNTIME.TYPE_PARAMS_INVALID\", `Invalid typeParams for column '${context.tableName}.${context.columnName}' (codecId: ${descriptor.codecId}): ${messages}`, {\n\t\t\t...context,\n\t\t\tcodecId: descriptor.codecId,\n\t\t\ttypeParams\n\t\t});\n\t}\n\treturn blindCast(result.value);\n}\n/**\n* Collect every {@link CodecDescriptor} contributed by the SQL stack and partition into \"parameterized\" vs \"non-parameterized\" via the descriptor's own {@link CodecDescriptorImpl.isParameterized} getter: a descriptor is parameterized when it has a `paramsSchema`.\n*\n* The unified descriptor list collapses the legacy split (a separate slot used to register parameterized codecs) — every codec id resolves through the same map (codec-registry-unification spec § Decision).\n*/\nfunction collectCodecDescriptors(contributors) {\n\tconst all = [];\n\tconst parameterized = /* @__PURE__ */ new Map();\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const contributor of contributors) for (const descriptor of contributor.codecs()) {\n\t\tif (seen.has(descriptor.codecId)) throw runtimeError(\"RUNTIME.DUPLICATE_CODEC\", `Duplicate codec descriptor for codecId '${descriptor.codecId}'.`, { codecId: descriptor.codecId });\n\t\tseen.add(descriptor.codecId);\n\t\tall.push(descriptor);\n\t\tif (descriptor.isParameterized) parameterized.set(descriptor.codecId, blindCast(descriptor));\n\t}\n\treturn {\n\t\tall,\n\t\tparameterized\n\t};\n}\n/**\n* Flatten every aggregate descriptor the SQL stack contributes. Shape validation, single-ownership of each `(operation, input)` pair, and trait-overlap resolution all happen inside {@link buildSqlAggregateDescriptorRegistry}, so contributions reach it unchecked and fail there — at composition, never mid-query.\n*/\nfunction collectAggregateDescriptorContributions(contributors) {\n\treturn contributors.flatMap((contributor) => contributor.types?.aggregateDescriptors ?? []);\n}\nfunction validateColumnTypeParams(storage, codecDescriptors) {\n\tfor (const ns of Object.values(storage.namespaces)) for (const [tableName, table] of Object.entries(ns.entries.table ?? {})) for (const [columnName, column] of Object.entries(table.columns)) if (column.typeParams) {\n\t\tconst descriptor = codecDescriptors.get(column.codecId);\n\t\tif (descriptor) validateTypeParams(column.typeParams, descriptor, {\n\t\t\ttableName,\n\t\t\tcolumnName\n\t\t});\n\t}\n}\n/**\n* Build-time contract-integrity check: every `(table, column)` resolves to a {@link CodecRef} whose `codecId` is registered and whose `typeParams` presence matches the descriptor's `isParameterized` flag.\n*\n* Surfaces three classes of malformed contract that AST-bound codec resolution would otherwise mask silently:\n*\n* - column references a codecId no contributor registered → `RUNTIME.CODEC_DESCRIPTOR_MISSING`.\n* - parameterized codec, no `typeParams` (legacy \"tolerate refs without params\" shape) → `RUNTIME.CODEC_PARAMETERIZATION_MISMATCH`.\n* - non-parameterized codec, `typeParams` supplied → `RUNTIME.CODEC_PARAMETERIZATION_MISMATCH`.\n*\n* Runs unconditionally from `createExecutionContext` so contract bugs fail fast at construction time instead of silently skipping affected columns in the codec registry's pre-population walk.\n*/\nfunction assertColumnCodecIntegrity(storage, codecDescriptors) {\n\tfor (const [namespaceId, ns] of Object.entries(storage.namespaces)) for (const [tableName, table] of Object.entries(ns.entries.table ?? {})) for (const columnName of Object.keys(table.columns)) {\n\t\tconst ref = codecDescriptors.codecRefForColumn(namespaceId, tableName, columnName);\n\t\tif (!ref) continue;\n\t\tconst descriptor = codecDescriptors.descriptorFor(ref.codecId);\n\t\tif (!descriptor) throw runtimeError(\"RUNTIME.CODEC_DESCRIPTOR_MISSING\", `Column '${tableName}.${columnName}' references codec '${ref.codecId}' but no contributor registered a codec descriptor for that codecId. Add the extension pack that owns the codec to the runtime stack.`, {\n\t\t\ttable: tableName,\n\t\t\tcolumn: columnName,\n\t\t\tcodecId: ref.codecId\n\t\t});\n\t\tconst paramsSchema = descriptor.paramsSchema;\n\t\tif (paramsSchema !== void 0 && ref.typeParams === void 0) {\n\t\t\tconst probe = paramsSchema[\"~standard\"].validate({});\n\t\t\tif (probe instanceof Promise) {\n\t\t\t\tprobe.catch(() => {});\n\t\t\t\tthrow runtimeError(\"RUNTIME.TYPE_PARAMS_INVALID\", `Column '${tableName}.${columnName}' uses parameterized codec '${ref.codecId}' whose paramsSchema returned a Promise; paramsSchema must be a synchronous Standard Schema validator. Return a value/issues result directly instead of a Promise.`, {\n\t\t\t\t\ttable: tableName,\n\t\t\t\t\tcolumn: columnName,\n\t\t\t\t\tcodecId: ref.codecId\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (\"issues\" in probe && !!probe.issues) throw runtimeError(\"RUNTIME.CODEC_PARAMETERIZATION_MISMATCH\", `Column '${tableName}.${columnName}' uses parameterized codec '${ref.codecId}' but no typeParams are supplied. Provide typeParams on the column.`, {\n\t\t\t\ttable: tableName,\n\t\t\t\tcolumn: columnName,\n\t\t\t\tcodecId: ref.codecId,\n\t\t\t\texpected: \"parameterized\",\n\t\t\t\tactual: \"no typeParams\"\n\t\t\t});\n\t\t}\n\t\tconst refTypeParams = ref.typeParams;\n\t\tconst refHasTypeParamKeys = refTypeParams !== void 0 && refTypeParams !== null && typeof refTypeParams === \"object\" && !Array.isArray(refTypeParams) && Object.keys(refTypeParams).length > 0;\n\t\tif (!descriptor.isParameterized && refHasTypeParamKeys) throw runtimeError(\"RUNTIME.CODEC_PARAMETERIZATION_MISMATCH\", `Column '${tableName}.${columnName}' supplies typeParams to non-parameterized codec '${ref.codecId}'. Remove the typeParams or switch to a parameterized codec id.`, {\n\t\t\ttable: tableName,\n\t\t\tcolumn: columnName,\n\t\t\tcodecId: ref.codecId,\n\t\t\texpected: \"non-parameterized\",\n\t\t\tactual: \"has typeParams\"\n\t\t});\n\t}\n}\n/**\n* Build a {@link ContractCodecRegistry} that resolves codecs exclusively through the `forCodecRef` content-keyed cache.\n*\n* One pre-population pass walks `storage.tables[].columns[]` to seed the resolver's per-ref instance context with the *aggregated* `usedAt` set for each canonical `(codecId, typeParams)` key. The same codec materialised through `forColumn` or `forCodecRef` is therefore one instance with one `SqlCodecInstanceContext` — stateful codecs reading `usedAt` see the full column set regardless of which surface the caller used.\n*\n* Per-key instance-name policy:\n*\n* - columns with `typeParams` use `<col:Table.column>` (the first column observed at that key; additional columns sharing the key extend `usedAt`).\n* - non-parameterized codec ids use `<codec:codecId>`, aggregating every column on that codec id into one `usedAt` set.\n* - ad-hoc refs the contract walk did not pre-populate (e.g. AST-supplied refs from deserialised migration ops) fall back to the canonical cache key `${codecId}:${canonicalizeJson(typeParams)}` — the only structurally honest identity for an ad-hoc ref, distinct per `(codecId, typeParams)`.\n*\n* Contract integrity is enforced upstream by {@link assertColumnCodecIntegrity}: every column must reference a registered `codecId` whose `descriptor.isParameterized` flag matches the presence of `typeParams` (via `codecRefForColumn`). The pre-population walk and `forColumn` therefore make no defensive checks — malformed columns fail fast at `createExecutionContext` construction with `RUNTIME.CODEC_DESCRIPTOR_MISSING` or `RUNTIME.CODEC_PARAMETERIZATION_MISMATCH` rather than being silently skipped here.\n*\n* `forColumn(ns, t, c)` is a thin delegate over `forCodecRef(codecRefForColumn(ns, t, c))`; encode/decode hot paths read the resolver directly via `forCodecRef`. The only `undefined` `forColumn` returns is the legitimate \"no such column in the contract\" case.\n*/\nfunction buildContractCodecRegistry(contract, codecDescriptors) {\n\tconst refKeyOf = (ref) => `${ref.codecId}:${canonicalizeJson(ref.typeParams)}`;\n\tconst usedAtByKey = /* @__PURE__ */ new Map();\n\tconst nameByKey = /* @__PURE__ */ new Map();\n\tfor (const [namespaceId, ns] of Object.entries(contract.storage.namespaces)) for (const [tableName, table] of Object.entries(ns.entries.table ?? {})) for (const columnName of Object.keys(table.columns)) {\n\t\tconst ref = codecDescriptors.codecRefForColumn(namespaceId, tableName, columnName);\n\t\tif (!ref) continue;\n\t\tconst key = refKeyOf(ref);\n\t\tconst site = {\n\t\t\ttable: tableName,\n\t\t\tcolumn: columnName\n\t\t};\n\t\tconst existing = usedAtByKey.get(key);\n\t\tif (existing) existing.push(site);\n\t\telse {\n\t\t\tusedAtByKey.set(key, [site]);\n\t\t\tconst name = ref.typeParams !== void 0 ? `<col:${tableName}.${columnName}>` : `<codec:${ref.codecId}>`;\n\t\t\tnameByKey.set(key, name);\n\t\t}\n\t}\n\tconst resolver = createAstCodecResolver(codecDescriptors, (ref) => {\n\t\tconst key = refKeyOf(ref);\n\t\treturn {\n\t\t\tname: nameByKey.get(key) ?? key,\n\t\t\tusedAt: usedAtByKey.get(key) ?? []\n\t\t};\n\t});\n\tfor (const [namespaceId, ns] of Object.entries(contract.storage.namespaces)) for (const [tableName, table] of Object.entries(ns.entries.table ?? {})) for (const columnName of Object.keys(table.columns)) {\n\t\tconst ref = codecDescriptors.codecRefForColumn(namespaceId, tableName, columnName);\n\t\tif (!ref) continue;\n\t\tresolver.forCodecRef(ref);\n\t}\n\treturn {\n\t\tforColumn(namespaceId, table, column) {\n\t\t\tconst ref = codecDescriptors.codecRefForColumn(namespaceId, table, column);\n\t\t\treturn ref ? resolver.forCodecRef(ref) : void 0;\n\t\t},\n\t\tforCodecRef(ref) {\n\t\t\treturn resolver.forCodecRef(ref);\n\t\t}\n\t};\n}\nfunction createExecutionContext(options) {\n\tconst { stack, driver } = options;\n\tassertExecutionStackContractRequirements(options.contract, stack);\n\tconst capabilityContributors = [\n\t\tstack.target,\n\t\tstack.adapter,\n\t\t...driver ? [driver] : [],\n\t\t...stack.extensions\n\t];\n\tconst mergedCapabilities = mergeCapabilityMatrices(options.contract.capabilities, capabilityContributors);\n\tconst contract = {\n\t\t...options.contract,\n\t\tcapabilities: mergedCapabilities\n\t};\n\tconst contributors = [\n\t\tstack.target,\n\t\tstack.adapter,\n\t\t...stack.extensions\n\t];\n\tconst { all: allCodecDescriptors, parameterized: parameterizedCodecDescriptors } = collectCodecDescriptors(contributors);\n\tconst queryOperationRegistry = createSqlOperationRegistry();\n\tfor (const contributor of contributors) {\n\t\tconst ops = contributor.queryOperations?.() ?? {};\n\t\tfor (const [name, op] of Object.entries(ops)) queryOperationRegistry.register(name, op);\n\t}\n\tconst codecDescriptors = buildCodecDescriptorRegistry(allCodecDescriptors, contract.storage);\n\tassertColumnCodecIntegrity(contract.storage, codecDescriptors);\n\tconst aggregateDescriptors = buildSqlAggregateDescriptorRegistry(collectAggregateDescriptorContributions(contributors), codecDescriptors);\n\tconst mutationDefaultGeneratorRegistry = collectMutationDefaultGenerators(contributors);\n\tassertMutationDefaultGeneratorsAvailable(contract.execution, mutationDefaultGeneratorRegistry);\n\tif (parameterizedCodecDescriptors.size > 0) validateColumnTypeParams(contract.storage, parameterizedCodecDescriptors);\n\treturn {\n\t\tcontract,\n\t\tcontractCodecs: buildContractCodecRegistry(contract, codecDescriptors),\n\t\tcodecDescriptors,\n\t\taggregateDescriptors,\n\t\tqueryOperations: queryOperationRegistry,\n\t\trawCodecInferer: stack.adapter.rawCodecInferer,\n\t\tcollectionMethods: contributors.flatMap((contributor) => contributor.collectionMethods?.() ?? []),\n\t\tapplyMutationDefaults: (options) => applyMutationDefaults(contract.execution, mutationDefaultGeneratorRegistry, options)\n\t};\n}\n//#endregion\n//#region src/codecs/decoding.ts\nconst sqlNativeArrayListDecoder = async (wireValue, decodeElement) => {\n\tif (!Array.isArray(wireValue)) throw new TypeError(`expected an array from the driver for many-typed column, got ${typeof wireValue}`);\n\tconst decoded = [];\n\tfor (const elem of wireValue) decoded.push(await decodeElement(elem));\n\treturn decoded;\n};\nconst WIRE_PREVIEW_LIMIT = 100;\nconst EMPTY_INCLUDE_ALIASES = /* @__PURE__ */ new Set();\nfunction projectionListFromAst(ast) {\n\tif (ast.kind === \"select\") return ast.projection;\n\treturn ast.returning;\n}\nfunction resolveProjectionCodec(item, contractCodecs) {\n\tif (item.codec && contractCodecs) return contractCodecs.forCodecRef(item.codec);\n}\nconst EMPTY_MANY_ALIASES = /* @__PURE__ */ new Set();\nfunction undecodedContext() {\n\treturn {\n\t\taliases: void 0,\n\t\tcodecs: /* @__PURE__ */ new Map(),\n\t\tcolumnRefs: /* @__PURE__ */ new Map(),\n\t\tincludeAliases: EMPTY_INCLUDE_ALIASES,\n\t\tmanyAliases: EMPTY_MANY_ALIASES,\n\t\taliasSource: \"projection\"\n\t};\n}\n/**\n* Decode context for a raw statement: the columns come from the row spec its\n* author declared at the terminator, and each carries the codec that decodes\n* it. A statement that reports an affected-row count declares no columns, so\n* its single stats row passes through undecoded.\n*\n* The spec is the only description of the result — the runtime never parses\n* the SQL — so it is also what a mismatched result set is measured against.\n*/\nfunction rawQueryDecodeContext(ast, contractCodecs) {\n\tif (ast.result.kind === \"affected-count\") return undecodedContext();\n\tconst aliases = [];\n\tconst codecs = /* @__PURE__ */ new Map();\n\tfor (const [name, column] of Object.entries(ast.result.columns)) {\n\t\taliases.push(name);\n\t\tif (contractCodecs) codecs.set(name, contractCodecs.forCodecRef({ codecId: column.codecId }));\n\t}\n\treturn {\n\t\taliases,\n\t\tcodecs,\n\t\tcolumnRefs: /* @__PURE__ */ new Map(),\n\t\tincludeAliases: EMPTY_INCLUDE_ALIASES,\n\t\tmanyAliases: EMPTY_MANY_ALIASES,\n\t\taliasSource: \"row-spec\"\n\t};\n}\nfunction buildDecodeContext(ast, contractCodecs) {\n\tif (ast.kind === \"raw-query\") return rawQueryDecodeContext(ast, contractCodecs);\n\tconst projection = projectionListFromAst(ast);\n\tif (!projection || projection.length === 0) return undecodedContext();\n\tconst aliases = [];\n\tconst codecs = /* @__PURE__ */ new Map();\n\tconst columnRefs = /* @__PURE__ */ new Map();\n\tconst includeAliases = /* @__PURE__ */ new Set();\n\tconst manyAliases = /* @__PURE__ */ new Set();\n\tfor (const item of projection) {\n\t\taliases.push(item.alias);\n\t\tconst codec = resolveProjectionCodec(item, contractCodecs);\n\t\tif (codec) codecs.set(item.alias, codec);\n\t\tif (item.codec?.many) manyAliases.add(item.alias);\n\t\tif (item.expr.kind === \"column-ref\") columnRefs.set(item.alias, {\n\t\t\ttable: item.expr.table,\n\t\t\tcolumn: item.expr.column\n\t\t});\n\t\telse if (item.expr.kind === \"subquery\" || item.expr.kind === \"json-array-agg\") includeAliases.add(item.alias);\n\t}\n\treturn {\n\t\taliases,\n\t\tcodecs,\n\t\tcolumnRefs,\n\t\tincludeAliases,\n\t\tmanyAliases,\n\t\taliasSource: \"projection\"\n\t};\n}\nfunction previewWireValue(wireValue) {\n\tif (typeof wireValue === \"string\") return wireValue.length > WIRE_PREVIEW_LIMIT ? `${wireValue.substring(0, WIRE_PREVIEW_LIMIT)}...` : wireValue;\n\treturn String(wireValue).substring(0, WIRE_PREVIEW_LIMIT);\n}\nfunction wrapDecodeFailure(error, alias, ref, codec, wireValue) {\n\tif (isInternalError(error)) throw error;\n\tconst message = error instanceof Error ? error.message : String(error);\n\tconst wrapped = runtimeError(\"RUNTIME.DECODE_FAILED\", `Failed to decode column ${ref ? `${ref.table}.${ref.column}` : alias} with codec '${codec.id}': ${message}`, {\n\t\t...ref ? {\n\t\t\ttable: ref.table,\n\t\t\tcolumn: ref.column\n\t\t} : { alias },\n\t\tcodec: codec.id,\n\t\twirePreview: previewWireValue(wireValue)\n\t});\n\twrapped.cause = error;\n\tthrow wrapped;\n}\nfunction wrapIncludeAggregateFailure(error, alias, wireValue) {\n\tconst wrapped = runtimeError(\"RUNTIME.DECODE_FAILED\", `Failed to parse JSON array for include alias '${alias}': ${error instanceof Error ? error.message : String(error)}`, {\n\t\talias,\n\t\twirePreview: previewWireValue(wireValue)\n\t});\n\twrapped.cause = error;\n\tthrow wrapped;\n}\nfunction decodeIncludeAggregate(alias, wireValue) {\n\tif (wireValue === null || wireValue === void 0) return [];\n\ttry {\n\t\tif (typeof wireValue === \"string\") return JSON.parse(wireValue);\n\t\tif (typeof wireValue === \"object\") return blindCast(wireValue);\n\t\treturn JSON.parse(String(wireValue));\n\t} catch (error) {\n\t\twrapIncludeAggregateFailure(error, alias, wireValue);\n\t}\n}\n/**\n* Decodes a single field. Single-armed: every cell takes the same path — `codec.decode → await → return plain value` — so sync- and async-authored codecs are indistinguishable to callers. JSON-Schema validation, when required, lives inside the resolved codec's `decode` body (e.g. `arktype-json` validates against its rehydrated schema and throws `RUNTIME.JSON_SCHEMA_VALIDATION_FAILED` from `decode` directly); there is\n* no separate validator-registry pass.\n*\n* The row-level `rowCtx` is repackaged into a per-cell `SqlCodecCallContext` whose `column = { table, name }` is a structural projection of the per-cell `ColumnRef = { table, column }` resolved from the AST-backed `DecodeContext` (the same resolution `wrapDecodeFailure` uses for envelope construction — one resolution per cell, two consumers). Cells the runtime cannot resolve to a single underlying column (aggregate\n* aliases, computed projections without a simple ref) get `column: undefined`, matching the spec contract that the runtime never silently defaults this field.\n*\n* For `many`-flagged aliases this function delegates frame traversal to the selected `ListDecoder`, passing `null` elements through unchanged and mapping the same element codec over every non-null element. SQL runtimes without a target-owned contribution select `sqlNativeArrayListDecoder` explicitly before row decoding. Element-level failures surface through the existing `RUNTIME.DECODE_FAILED` envelope with the column/codec context from the parent cell.\n*/\nasync function decodeField(alias, wireValue, decodeCtx, rowCtx, listDecoder) {\n\tif (wireValue === null) return null;\n\tconst codec = decodeCtx.codecs.get(alias);\n\tif (!codec) return wireValue;\n\tconst ref = decodeCtx.columnRefs.get(alias);\n\tlet cellCtx;\n\tif (ref) cellCtx = {\n\t\t...rowCtx,\n\t\tcolumn: {\n\t\t\ttable: ref.table,\n\t\t\tname: ref.column\n\t\t}\n\t};\n\telse {\n\t\tconst { column: _drop, ...rowCtxWithoutColumn } = rowCtx;\n\t\tcellCtx = rowCtxWithoutColumn;\n\t}\n\tconst decodeElement = async (elem) => {\n\t\tif (elem === null || elem === void 0) return null;\n\t\ttry {\n\t\t\treturn await codec.fromWire(elem, cellCtx);\n\t\t} catch (error) {\n\t\t\tif (isStructuredError(error)) throw error;\n\t\t\twrapDecodeFailure(error, alias, ref, codec, elem);\n\t\t}\n\t};\n\tif (decodeCtx.manyAliases.has(alias)) try {\n\t\treturn await listDecoder(wireValue, decodeElement);\n\t} catch (error) {\n\t\tif (isStructuredError(error)) throw error;\n\t\twrapDecodeFailure(error, alias, ref, codec, wireValue);\n\t}\n\ttry {\n\t\treturn await codec.fromWire(wireValue, cellCtx);\n\t} catch (error) {\n\t\tif (isStructuredError(error)) throw error;\n\t\twrapDecodeFailure(error, alias, ref, codec, wireValue);\n\t}\n}\n/**\n* Decodes a row by dispatching all per-cell codec calls concurrently via `Promise.all`. Each cell follows the single-armed `decodeField` path. Structured envelopes thrown by codec bodies (anything passing `isStructuredError`) and an `InternalError` pass through unchanged; all other failures are wrapped in `RUNTIME.DECODE_FAILED` with `{ table, column, codec }` (or `{ alias, codec }` when no column ref is resolvable) and the original error attached on `cause`.\n*\n* When `rowCtx.signal` is provided:\n*\n* - **Already-aborted at entry** short-circuits with `RUNTIME.ABORTED` (`{ phase: 'decode' }`) before any `codec.decode` call is made.\n* - **Mid-flight aborts** race the per-cell `Promise.all` against the signal so the runtime returns promptly even when codec bodies ignore it. In-flight bodies that ignore the signal complete in the background (cooperative cancellation).\n* - Existing structured envelopes (any dotted-code error passing `isStructuredError`, e.g. `RUNTIME.DECODE_FAILED`) from codec bodies pass through unchanged (no double wrap).\n*/\nasync function decodeRow(row, decodeCtx, rowCtx, listDecoder) {\n\tcheckAborted(rowCtx, \"decode\");\n\tconst signal = rowCtx.signal;\n\tconst aliases = decodeCtx.aliases ?? Object.keys(row);\n\tif (decodeCtx.aliases !== void 0) {\n\t\tfor (const alias of decodeCtx.aliases) if (!Object.hasOwn(row, alias)) throw decodeCtx.aliasSource === \"row-spec\" ? runtimeError(\"RUNTIME.RAW_ROW_COLUMN_MISSING\", `Raw statement result has no column \"${alias}\", which its row spec declares`, {\n\t\t\tcolumn: alias,\n\t\t\tdeclaredColumns: decodeCtx.aliases,\n\t\t\tresultColumns: Object.keys(row)\n\t\t}) : runtimeError(\"RUNTIME.DECODE_FAILED\", `Row missing projection alias \"${alias}\"`, {\n\t\t\talias,\n\t\t\texpectedAliases: decodeCtx.aliases,\n\t\t\tpresentKeys: Object.keys(row)\n\t\t});\n\t}\n\tconst tasks = [];\n\tconst includeIndices = [];\n\tfor (let i = 0; i < aliases.length; i++) {\n\t\tconst alias = blindCast(aliases[i]);\n\t\tconst wireValue = row[alias];\n\t\tif (decodeCtx.includeAliases.has(alias)) {\n\t\t\tincludeIndices.push({\n\t\t\t\tindex: i,\n\t\t\t\talias,\n\t\t\t\tvalue: wireValue\n\t\t\t});\n\t\t\ttasks.push(Promise.resolve(void 0));\n\t\t\tcontinue;\n\t\t}\n\t\ttasks.push(decodeField(alias, wireValue, decodeCtx, rowCtx, listDecoder));\n\t}\n\tconst settled = await raceAgainstAbort(Promise.all(tasks), signal, \"decode\");\n\tfor (const entry of includeIndices) settled[entry.index] = decodeIncludeAggregate(entry.alias, entry.value);\n\tconst decoded = {};\n\tfor (let i = 0; i < aliases.length; i++) {\n\t\tconst alias = blindCast(aliases[i]);\n\t\tdecoded[alias] = settled[i];\n\t}\n\treturn decoded;\n}\n//#endregion\n//#region src/content-hash.ts\n/**\n* Computes a stable content hash for a lowered SQL execution plan.\n*\n* Internally builds an unambiguous canonical-stringified preimage from\n* three components:\n*\n* 1. `meta.storageHash` — discriminates by schema. A migration changes the\n* storage hash, which invalidates cached entries automatically.\n* 2. `exec.sql` — the raw lowered SQL text. Two queries with different\n* structure produce different keys. Note that we deliberately do **not**\n* use `computeSqlFingerprint` here: that helper strips literals to group\n* executions by statement shape (used by telemetry), which is the\n* opposite of what a content hash needs — we want per-execution\n* discrimination, not per-statement-shape grouping.\n* 3. `exec.params` — the bound parameters. `canonicalStringify` produces a\n* deterministic serialization that is stable across object key\n* insertion order and that distinguishes types JSON would otherwise\n* conflate (e.g. `BigInt(1)` vs `1`).\n*\n* The components are wrapped in an object and canonicalized as a single\n* unit (rather than concatenated with a delimiter) so component\n* boundaries are unambiguous: any character appearing inside `sql` or\n* `storageHash` cannot bleed across components and produce a collision\n* with a different split of the same characters.\n*\n* The canonical string is then piped through `hashContent` to produce a\n* bounded, opaque digest. See `@internal/utils/hash-content` for the\n* rationale.\n*\n* @internal\n*/\nfunction computeSqlContentHash(exec) {\n\treturn hashContent(canonicalStringify({\n\t\tstorageHash: exec.meta.storageHash,\n\t\tsql: exec.sql,\n\t\tparams: exec.params\n\t}));\n}\n//#endregion\n//#region src/fingerprint.ts\nconst STRING_LITERAL_REGEX = /'(?:''|[^'])*'/g;\nconst NUMERIC_LITERAL_REGEX = /\\b\\d+(?:\\.\\d+)?\\b/g;\nconst WHITESPACE_REGEX = /\\s+/g;\n/**\n* Computes a literal-stripped, normalized fingerprint of a SQL statement.\n*\n* The function strips string and numeric literals, collapses whitespace, and\n* lowercases the result before hashing — so two structurally equivalent\n* statements (with different parameter values) produce the same fingerprint.\n* Used by SQL telemetry to group queries.\n*/\nfunction computeSqlFingerprint(sql) {\n\tconst normalized = sql.replace(STRING_LITERAL_REGEX, \"?\").replace(NUMERIC_LITERAL_REGEX, \"?\").replace(WHITESPACE_REGEX, \" \").trim().toLowerCase();\n\treturn createHash(\"sha256\").update(normalized).digest(\"hex\");\n}\n//#endregion\n//#region src/in-flight-operations.ts\nvar InFlightOperations = class {\n\t#count = 0;\n\t#started = 0;\n\t#drainWaiters = [];\n\t/** Records one operation as in flight; the returned callback ends it and ignores later calls. */\n\tbegin() {\n\t\tthis.#count += 1;\n\t\tthis.#started += 1;\n\t\tlet ended = false;\n\t\treturn () => {\n\t\t\tif (ended) return;\n\t\t\tended = true;\n\t\t\tthis.#count -= 1;\n\t\t\tif (this.#count === 0) for (const wake of this.#drainWaiters.splice(0)) wake();\n\t\t};\n\t}\n\t/** How many operations have begun so far; a change between two reads means work started in between. */\n\tget started() {\n\t\treturn this.#started;\n\t}\n\t/** How many operations are in flight. */\n\tget count() {\n\t\treturn this.#count;\n\t}\n\tget active() {\n\t\treturn this.#count > 0;\n\t}\n\tdrained() {\n\t\tif (this.#count === 0) return Promise.resolve();\n\t\treturn new Promise((resolve) => this.#drainWaiters.push(resolve));\n\t}\n\t/** Records `work` as in flight until it settles. */\n\tasync track(work) {\n\t\tconst end = this.begin();\n\t\ttry {\n\t\t\treturn await work();\n\t\t} finally {\n\t\t\tend();\n\t\t}\n\t}\n};\n//#endregion\n//#region src/middleware/before-compile-chain.ts\nasync function runBeforeCompileChain(middleware, initial, ctx) {\n\tlet current = initial;\n\tfor (const mw of middleware) {\n\t\tif (!mw.beforeCompile) continue;\n\t\tconst result = await mw.beforeCompile(current, ctx);\n\t\tif (result === void 0) continue;\n\t\tif (result.ast === current.ast) continue;\n\t\tctx.log.debug?.({\n\t\t\tevent: \"middleware.rewrite\",\n\t\t\tmiddleware: mw.name,\n\t\t\tlane: current.meta.lane\n\t\t});\n\t\tcurrent = result;\n\t}\n\treturn current;\n}\n//#endregion\n//#region src/owned-transaction.ts\n/**\n* Begins a transaction on a connection the transaction owns. The connection is released once the transaction has committed or rolled back, and destroyed after a failed rollback or a failed start other than a refusal before `BEGIN`. After a failed commit it stays held for the rollback that follows. A release that fails after the transaction settled is passed to `log.error`, and `commit()` or `rollback()` keeps its own outcome.\n*/\nasync function beginOwnedTransaction(connection, begin, log) {\n\tlet transaction;\n\ttry {\n\t\ttransaction = await begin();\n\t} catch (error) {\n\t\tif (wasRefusedBeforeBegin(connection)) await connection.release().catch(() => void 0);\n\t\telse await connection.destroy(error).catch(() => void 0);\n\t\tthrow error;\n\t}\n\tlet disposed = false;\n\tconst dispose = async (destroyReason) => {\n\t\tif (disposed) return;\n\t\tdisposed = true;\n\t\tif (destroyReason !== void 0) {\n\t\t\tawait connection.destroy(destroyReason.reason).catch(() => void 0);\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tawait connection.release();\n\t\t} catch (error) {\n\t\t\ttry {\n\t\t\t\tlog.error({\n\t\t\t\t\tevent: \"runtime.connection.release.error\",\n\t\t\t\t\terror\n\t\t\t\t});\n\t\t\t} catch {}\n\t\t}\n\t};\n\treturn Object.assign(castAs(Object.create(transaction)), {\n\t\tasync commit() {\n\t\t\ttry {\n\t\t\t\tawait transaction.commit();\n\t\t\t} catch (error) {\n\t\t\t\tif (settlementOf(transaction)?.committed === true) await dispose();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tawait dispose();\n\t\t},\n\t\tasync rollback() {\n\t\t\ttry {\n\t\t\t\tawait transaction.rollback();\n\t\t\t} catch (error) {\n\t\t\t\tconst settlement = settlementOf(transaction);\n\t\t\t\tconst settled = settlement?.rolledBack === true || settlement?.committed === true;\n\t\t\t\tawait dispose(settled ? void 0 : { reason: error });\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tawait dispose();\n\t\t}\n\t});\n}\n//#endregion\n//#region src/prepared/bind-site-params.ts\nfunction normalizeSpec(spec) {\n\tif (typeof spec === \"string\") return {\n\t\tcodec: { codecId: spec },\n\t\tnullable: false\n\t};\n\treturn {\n\t\tcodec: spec.typeParams !== void 0 ? {\n\t\t\tcodecId: spec.codecId,\n\t\t\ttypeParams: spec.typeParams\n\t\t} : { codecId: spec.codecId },\n\t\tnullable: spec.nullable === true\n\t};\n}\nvar BindSiteExpression = class {\n\treturnType;\n\t#ast;\n\tconstructor(ref, returnType) {\n\t\tthis.#ast = ref;\n\t\tthis.returnType = returnType;\n\t}\n\tbuildAst() {\n\t\treturn this.#ast;\n\t}\n};\nfunction buildBindSiteParams(declaration) {\n\tconst params = {};\n\tfor (const [name, spec] of Object.entries(declaration)) {\n\t\tconst { codec, nullable } = normalizeSpec(spec);\n\t\tparams[name] = new BindSiteExpression(PreparedParamRef.of(name, codec, nullable), {\n\t\t\tcodecId: codec.codecId,\n\t\t\tnullable\n\t\t});\n\t}\n\treturn blindCast(Object.freeze(params));\n}\n//#endregion\n//#region src/prepared/encode-prepared.ts\n/**\n* Resolve a PreparedStatement's slot order to the unencoded values it\n* will carry into encode. Literal slots come from the lowered AST;\n* bind slots are looked up by name on `userParams`. Missing user params\n* surface `RUNTIME.PREPARE_MISSING_PARAM` so the caller cannot silently\n* bind `undefined`.\n*/\nfunction isRecord(value) {\n\treturn typeof value === \"object\" && value !== null;\n}\nfunction resolvePreparedSlotValues(ps, userParams) {\n\tif (!isRecord(userParams)) throw runtimeError(\"RUNTIME.PREPARE_MISSING_PARAM\", \"Prepared statement parameters must be an object\");\n\treturn ps.slots.map((slot) => {\n\t\tif (slot.kind === \"literal\") return slot.value;\n\t\tif (!Object.hasOwn(userParams, slot.name)) throw runtimeError(\"RUNTIME.PREPARE_MISSING_PARAM\", `Prepared statement query is missing parameter '${slot.name}'`, { name: slot.name });\n\t\treturn userParams[slot.name];\n\t});\n}\nasync function encodePreparedParams(ps, userParams, ctx, contractCodecs) {\n\treturn encodeParamsWithMetadata(resolvePreparedSlotValues(ps, userParams), ps.paramMetadata, ctx, contractCodecs);\n}\n//#endregion\n//#region src/sql-family-adapter.ts\nvar SqlFamilyAdapter = class {\n\tcontract;\n\tmarkerReader;\n\tconstructor(contract, adapterProfile) {\n\t\tthis.contract = contract;\n\t\tthis.markerReader = adapterProfile;\n\t}\n\tvalidatePlan(plan, contract) {\n\t\tvalidateSqlPlan(plan, contract);\n\t}\n};\n/** Rejects a plan built for another target or contract: `PLAN.TARGET_MISMATCH` or `PLAN.HASH_MISMATCH`. */\nfunction validateSqlPlan(plan, contract) {\n\tif (plan.meta.target !== contract.target) throw runtimeError(\"PLAN.TARGET_MISMATCH\", \"The plan was built for another target than the contract\", {\n\t\tplanTarget: plan.meta.target,\n\t\tcontractTarget: contract.target\n\t});\n\tif (plan.meta.storageHash !== contract.storage.storageHash) throw runtimeError(\"PLAN.HASH_MISMATCH\", \"The plan was built for another contract\", {\n\t\tplanStorageHash: plan.meta.storageHash,\n\t\tcontractStorageHash: contract.storage.storageHash\n\t});\n}\n//#endregion\n//#region src/sql-runtime.ts\nfunction isExecutionPlan(plan) {\n\treturn \"sql\" in plan;\n}\nfunction isBoundPreparedStatement(subject) {\n\treturn \"statement\" in subject;\n}\nfunction isPreparedStatementInternals(statement) {\n\treturn statement instanceof PreparedStatementImpl || statement instanceof PreparedExecutionImpl;\n}\n// v8 ignore next 2\nconst noopLogSink = () => {};\nconst noopLog = {\n\tinfo: noopLogSink,\n\twarn: noopLogSink,\n\terror: noopLogSink\n};\nconst scheduleTimer = globalThis.setTimeout;\nfunction runtimeClosedError() {\n\treturn structuredError(\"DRIVER.NOT_CONNECTED\", \"Runtime is closed\", {\n\t\twhy: \"close() was called on this runtime, or on the client or connection that owns it. An await using scope calls close() when it ends.\",\n\t\tfix: \"Await every query, transaction and prepared statement before close(). The usual cause is a query returned without await from an await using scope.\"\n\t});\n}\n/**\n* Abstract family-layer base for SQL runtimes. Subclass to build a target runtime\n* (e.g. `PostgresRuntimeImpl`); app code should consume the `Runtime` interface returned\n* by the target factories, never this class directly.\n*/\nvar SqlRuntimeBase = class extends RuntimeCore {\n\tcontract;\n\tadapter;\n\tdriver;\n\tfamilyAdapter;\n\tcontractCodecs;\n\tcodecDescriptors;\n\tsqlCtx;\n\tverifyMarkerOption;\n\tverifyMarkerPromise;\n\tclosePromise;\n\townsDriver;\n\tcloseRefusal;\n\t#inFlight = new InFlightOperations();\n\t#openTransactionWork = new InFlightOperations();\n\t#transactionWorkOn = /* @__PURE__ */ new WeakMap();\n\t#openActivityHandles = 0;\n\t#refusing = false;\n\t#heldQueryables = /* @__PURE__ */ new WeakSet();\n\t#preparedStatementHandles = /* @__PURE__ */ new WeakMap();\n\t#holdFinishedChildren;\n\t#openTransactions = /* @__PURE__ */ new WeakMap();\n\tcodecRegistryValidated;\n\t_telemetry;\n\tconstructor(options) {\n\t\tconst { context, adapter, driver, verifyMarker, middleware, mode, log, closeRefusal, ownsDriver } = options;\n\t\tif (middleware) for (const mw of middleware) checkMiddlewareCompatibility(mw, \"sql\", context.contract.target);\n\t\tconst sqlCtx = {\n\t\t\tcontract: context.contract,\n\t\t\tmode: mode ?? \"strict\",\n\t\t\tnow: () => Date.now(),\n\t\t\tlog: log ?? noopLog,\n\t\t\tcontentHash: (exec) => computeSqlContentHash(blindCast(exec)),\n\t\t\tscope: \"runtime\"\n\t\t};\n\t\tsuper({\n\t\t\tmiddleware: middleware ?? [],\n\t\t\tctx: sqlCtx\n\t\t});\n\t\tthis.#holdFinishedChildren = this.middleware.some((mw) => mw.activityFinalized !== void 0);\n\t\tthis.contract = context.contract;\n\t\tthis.adapter = adapter;\n\t\tthis.driver = driver;\n\t\tthis.familyAdapter = new SqlFamilyAdapter(context.contract, adapter.profile);\n\t\tthis.contractCodecs = context.contractCodecs;\n\t\tthis.codecDescriptors = context.codecDescriptors;\n\t\tthis.sqlCtx = sqlCtx;\n\t\tthis.verifyMarkerOption = verifyMarker ?? \"onFirstUse\";\n\t\tthis.closeRefusal = closeRefusal ?? \"when-idle\";\n\t\tthis.codecRegistryValidated = false;\n\t\tthis.verifyMarkerPromise = this.verifyMarkerOption === false ? Promise.resolve() : null;\n\t\tthis.closePromise = null;\n\t\tthis.ownsDriver = ownsDriver ?? true;\n\t\tthis._telemetry = null;\n\t}\n\t/**\n\t* Lower a `SqlQueryPlan` (AST + meta) into a `SqlExecutionPlan`\n\t* with encoded parameters ready for the driver.\n\t*\n\t* Implementation note: SQL splits lower-then-encode across\n\t* {@link lowerToDraft} + {@link encodeDraftParams} so the selected\n\t* operation's middleware chain can run between them:\n\t* {@link prepareOperation} runs the statement's `beforeEncode` chain\n\t* between them (cipherstash bulk-encrypt, for example, mutates pre-encode\n\t* `ParamRef.value` slots). This protected hook composes the two back into\n\t* the cross-family `lower()` shape `RuntimeCore` expects. The production\n\t* operation methods use the matching split form before driver execution.\n\t*\n\t* `ctx: SqlCodecCallContext` is forwarded to `encodeParams` so\n\t* per-query cancellation reaches every codec body during parameter\n\t* encoding. SQL params do not populate `ctx.column` — encode-side\n\t* column metadata is the middleware's domain.\n\t*/\n\tasync lower(plan, ctx) {\n\t\tconst draft = this.lowerToDraft(plan);\n\t\treturn await this.encodeDraftParams(draft, ctx);\n\t}\n\t/**\n\t* AST → pre-encode draft for the selected `query()` or `execute()` operation.\n\t* The returned plan has `sql` rendered and `params` populated with the\n\t* user-domain values the lowering site collected from `ParamRef` nodes. No\n\t* codec encode has happened yet; consumers can mutate `params` via the\n\t* `SqlParamRefMutator` before {@link encodeDraftParams} runs.\n\t*/\n\tlowerToDraft(plan) {\n\t\treturn lowerSqlPlan(this.adapter, this.contract, plan);\n\t}\n\t/**\n\t* Encode a draft plan's params for the selected `query()` or `execute()`\n\t* operation through the per-column codecs and freeze the result into the\n\t* final `SqlExecutionPlan` the driver sees. Errors surface as\n\t* `RUNTIME.ENCODE_FAILED` envelopes from {@link encodeParams}.\n\t*/\n\tasync encodeDraftParams(draft, ctx) {\n\t\treturn Object.freeze({\n\t\t\t...draft,\n\t\t\tparams: await encodeParams(draft, ctx, this.contractCodecs)\n\t\t});\n\t}\n\t/** Default query invocation required by the abstract `RuntimeCore` contract. */\n\t// v8 ignore next 6\n\trunDriver(exec) {\n\t\treturn this.driver.query({\n\t\t\tsql: exec.sql,\n\t\t\tparams: exec.params\n\t\t});\n\t}\n\trunExecute(exec) {\n\t\treturn this.driver.execute({\n\t\t\tsql: exec.sql,\n\t\t\tparams: exec.params\n\t\t});\n\t}\n\t/**\n\t* Runs the registered middleware `beforeCompile` chain over the plan's draft (AST + meta). Returns the original plan unchanged when no middleware rewrote the AST; otherwise returns a new plan carrying the rewritten AST and meta. The lowering adapter and the encoder both walk the rewritten AST directly.\n\t*/\n\tasync compilePlan(plan, middlewareCtx) {\n\t\tconst rewrittenDraft = await runBeforeCompileChain(this.middleware, {\n\t\t\tast: plan.ast,\n\t\t\tmeta: plan.meta\n\t\t}, middlewareCtx);\n\t\treturn rewrittenDraft.ast === plan.ast ? plan : {\n\t\t\t...plan,\n\t\t\tast: rewrittenDraft.ast,\n\t\t\tmeta: rewrittenDraft.meta\n\t\t};\n\t}\n\tquery(plan, options) {\n\t\treturn this.queryAgainstQueryable(plan, this.driver, options);\n\t}\n\texecute(plan, options) {\n\t\treturn this.executeStatisticsAgainstQueryable(plan, this.driver, options);\n\t}\n\t[preparedStatementQuery](ps, params, options) {\n\t\treturn this.runPreparedQueryAgainstQueryable(blindCast(ps), params, this.driver, options);\n\t}\n\t[preparedStatementExecute](ps, params, options) {\n\t\treturn this.runPreparedExecuteAgainstQueryable(blindCast(ps), params, this.driver, options);\n\t}\n\t#runtimeRoute;\n\t[activitySource] = {\n\t\tstartActivity: (activity) => {\n\t\t\tthis.#runtimeRoute ??= this.queryableRoute(this.driver, \"runtime\", () => void 0, {\n\t\t\t\ttransaction: (parent) => this.beginOwnedTransactionBeneath(parent),\n\t\t\t\truntimeWork: true\n\t\t\t});\n\t\t\treturn this.startActivityOnRoute(this.#runtimeRoute, activity, void 0);\n\t\t},\n\t\tplanContentHash: (plan) => this.planContentHashFor(plan, \"runtime\", void 0)\n\t};\n\t/**\n\t* Starts a client activity whose statements and transaction run on `route`, beneath `parent` or, without one, beneath `route.parent()`.\n\t*/\n\tstartActivityOnRoute(route, activity, parent) {\n\t\tlet endWork = noWork;\n\t\tlet started;\n\t\ttry {\n\t\t\tendWork = route.runtimeWork ? this.beginActivityWork(parent) : noWork;\n\t\t\tstarted = startClientActivity(activity, {\n\t\t\t\tmiddleware: this.middleware,\n\t\t\t\tcontext: route.scope === \"runtime\" ? this.sqlCtx : {\n\t\t\t\t\t...this.sqlCtx,\n\t\t\t\t\tscope: route.scope\n\t\t\t\t},\n\t\t\t\tparent: parent ?? route.parent(),\n\t\t\t\tholdFinishedChildren: this.#holdFinishedChildren\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tendWork();\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t\treturn started.then((run) => this.activityHandle(run, route, endWork), (error) => {\n\t\t\tendWork();\n\t\t\tthrow error;\n\t\t});\n\t}\n\t/** The content hash of the statement `plan` would send on a queryable of `scope` beneath `parent`. */\n\tasync planContentHashFor(plan, scope, parent) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tif (isBoundPreparedStatement(plan)) {\n\t\t\tconst { statement, params } = plan;\n\t\t\tinvariant(isPreparedStatementInternals(statement), \"The prepared statement was not prepared by a SQL runtime\");\n\t\t\treturn computeSqlContentHash({\n\t\t\t\tsql: statement.sql,\n\t\t\t\tast: statement.ast,\n\t\t\t\tmeta: statement.meta,\n\t\t\t\tparams: await encodePreparedParams(statement, params, {}, this.contractCodecs)\n\t\t\t});\n\t\t}\n\t\tif (isExecutionPlan(plan)) return computeSqlContentHash(Object.freeze({\n\t\t\t...plan,\n\t\t\tparams: await encodeParams(plan, {}, this.contractCodecs)\n\t\t}));\n\t\tconst compiled = await this.compilePlan(plan, createContextBeneath({\n\t\t\t...this.sqlCtx,\n\t\t\tscope\n\t\t}, parent));\n\t\treturn computeSqlContentHash(await this.encodeDraftParams(this.lowerToDraft(compiled), {}));\n\t}\n\t/** An activity route whose statements run on `queryable`. */\n\tqueryableRoute(queryable, scope, parent, options) {\n\t\treturn {\n\t\t\tscope,\n\t\t\tparent,\n\t\t\t...options,\n\t\t\tquery: (plan, executeOptions) => this.queryAgainstQueryable(plan, queryable, {\n\t\t\t\t...executeOptions,\n\t\t\t\tscope\n\t\t\t}),\n\t\t\texecute: (plan, executeOptions) => this.executeStatisticsAgainstQueryable(plan, queryable, {\n\t\t\t\t...executeOptions,\n\t\t\t\tscope\n\t\t\t}),\n\t\t\tpreparedQuery: (statement, params, executeOptions) => this.runPreparedQueryAgainstQueryable(statement, params, queryable, {\n\t\t\t\t...executeOptions,\n\t\t\t\tscope\n\t\t\t}),\n\t\t\tpreparedExecute: (statement, params, executeOptions) => this.runPreparedExecuteAgainstQueryable(statement, params, queryable, {\n\t\t\t\t...executeOptions,\n\t\t\t\tscope\n\t\t\t})\n\t\t};\n\t}\n\t/** The activity route of a held connection that `owner` wraps: its statements run on `connection`, and its transactions begin there. */\n\tconnectionRoute(connection, owner) {\n\t\tconst openTransaction = this.#openTransactions.get(connection);\n\t\treturn this.queryableRoute(connection, \"connection\", () => openTransaction, {\n\t\t\ttransaction: openTransaction === void 0 ? (parent) => this.beginTransactionBeneathOn(connection, owner, parent) : void 0,\n\t\t\truntimeWork: false\n\t\t});\n\t}\n\tbeginTransactionBeneathOn(connection, owner, parent) {\n\t\tconst openTransaction = this.#openTransactions.get(connection);\n\t\tif (openTransaction !== void 0) return Promise.reject(transactionAlreadyOpenError(parent, openTransaction));\n\t\treturn this.beginTransactionOn(connection, owner, parent);\n\t}\n\t/** The `activitySource` member of a held connection that `owner()` wraps. */\n\tconnectionActivitySource(connection, owner) {\n\t\treturn {\n\t\t\tstartActivity: (activity) => this.startActivityOnRoute(this.connectionRoute(connection, owner()), activity, void 0),\n\t\t\tplanContentHash: (plan) => this.planContentHashFor(plan, \"connection\", this.#openTransactions.get(connection))\n\t\t};\n\t}\n\tactivityHandle(run, route, endWork) {\n\t\tconst beneath = (options) => ({\n\t\t\t...options,\n\t\t\tactivityParent: run\n\t\t});\n\t\tconst source = {\n\t\t\tstartActivity: (activity) => {\n\t\t\t\ttry {\n\t\t\t\t\trun.assertAcceptsChildren();\n\t\t\t\t} catch (error) {\n\t\t\t\t\treturn Promise.reject(error);\n\t\t\t\t}\n\t\t\t\treturn this.startActivityOnRoute(route, activity, run);\n\t\t\t},\n\t\t\tplanContentHash: (plan) => this.planContentHashFor(plan, route.scope, run)\n\t\t};\n\t\tconst handle = {\n\t\t\t[activitySource]: source,\n\t\t\tstartActivity: source.startActivity,\n\t\t\tplanContentHash: source.planContentHash,\n\t\t\tactivity: run.activity,\n\t\t\tget intercepted() {\n\t\t\t\treturn run.intercepted;\n\t\t\t},\n\t\t\tquery(plan, options) {\n\t\t\t\treturn rowsBeneath(run, () => route.query(plan, beneath(options)));\n\t\t\t},\n\t\t\tasync execute(plan, options) {\n\t\t\t\trun.assertAcceptsChildren();\n\t\t\t\treturn route.execute(plan, beneath(options));\n\t\t\t},\n\t\t\t[preparedStatementQuery](ps, params, options) {\n\t\t\t\treturn rowsBeneath(run, () => route.preparedQuery(blindCast(ps), params, beneath(options)));\n\t\t\t},\n\t\t\tasync [preparedStatementExecute](ps, params, options) {\n\t\t\t\trun.assertAcceptsChildren();\n\t\t\t\treturn route.preparedExecute(blindCast(ps), params, beneath(options));\n\t\t\t},\n\t\t\tend(end) {\n\t\t\t\tlet ending;\n\t\t\t\ttry {\n\t\t\t\t\tending = run.end(end);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tendWork();\n\t\t\t\t\treturn Promise.reject(error);\n\t\t\t\t}\n\t\t\t\treturn ending.then(endWork, (error) => {\n\t\t\t\t\tendWork();\n\t\t\t\t\tthrow error;\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t\tconst beginTransaction = route.transaction;\n\t\tif (beginTransaction === void 0) return handle;\n\t\treturn Object.assign(handle, { transaction: async () => {\n\t\t\trun.assertAcceptsChildren();\n\t\t\treturn beginTransaction(run);\n\t\t} });\n\t}\n\tasync beginOwnedTransactionBeneath(parent) {\n\t\tconst { driverConnection, connection } = await this.openConnection({ activityParent: parent });\n\t\treturn this.ownTransaction(connection, () => this.beginTransactionOn(driverConnection, connection, parent));\n\t}\n\t/** Begins a transaction with `begin` on a connection the transaction owns; see `beginOwnedTransaction`. */\n\townTransaction(connection, begin) {\n\t\treturn beginOwnedTransaction(connection, begin, this.sqlCtx.log);\n\t}\n\t/**\n\t* Returns a raw driver connection. SQL issued on it runs below the middleware/codec/telemetry pipeline. It carries its own lifecycle (`release`/`destroy`/`beginTransaction`); the caller owns disposal. It follows the runtime's close rule for connections: see {@link Runtime.close}. Pass the `activityParent` of the activity it is acquired for, so it is admitted after `close()` while that activity is open.\n\t*/\n\tasync acquireRawConnection(options) {\n\t\tconst endOperation = this.beginOperation(this.driver, options);\n\t\tlet connection;\n\t\ttry {\n\t\t\tconnection = await this.driver.acquireConnection();\n\t\t} finally {\n\t\t\tendOperation();\n\t\t}\n\t\tconst dispose = async (teardown) => {\n\t\t\ttry {\n\t\t\t\tawait this.#inFlight.track(teardown);\n\t\t\t} finally {\n\t\t\t\tthis.#transactionWorkOn.get(held)?.();\n\t\t\t}\n\t\t};\n\t\tconst held = {\n\t\t\tquery: (request) => this.trackRows(connection.query(request)),\n\t\t\texecute: (request) => this.#inFlight.track(() => connection.execute(request)),\n\t\t\tbeginTransaction: () => connection.beginTransaction(),\n\t\t\t...ifDefined(\"explain\", connection.explain?.bind(connection)),\n\t\t\trelease: () => dispose(() => connection.release()),\n\t\t\tdestroy: (reason) => dispose(() => connection.destroy(reason))\n\t\t};\n\t\treturn held;\n\t}\n\tasync *trackRows(rows) {\n\t\tconst iterator = rows[Symbol.asyncIterator]();\n\t\ttry {\n\t\t\tlet next = await this.#inFlight.track(() => iterator.next());\n\t\t\twhile (!next.done) {\n\t\t\t\tyield next.value;\n\t\t\t\tnext = await iterator.next();\n\t\t\t}\n\t\t} finally {\n\t\t\tawait iterator.return?.();\n\t\t}\n\t}\n\tasync setupDriverExecution(exec, queryable) {\n\t\tthis.familyAdapter.validatePlan(exec, this.contract);\n\t\tthis._telemetry = null;\n\t\tif (this.verifyMarkerPromise === null) {\n\t\t\tconst markerQueryable = this.#heldQueryables.has(queryable) ? queryable : this.driver;\n\t\t\tthis.verifyMarkerPromise = this.verifyMarker(markerQueryable).catch((error) => {\n\t\t\t\tthis.verifyMarkerPromise = null;\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}\n\t\tawait this.verifyMarkerPromise;\n\t}\n\tbeginActivityWork(parent) {\n\t\tconst endOperation = this.beginOperation(this.driver, { activityParent: parent });\n\t\tthis.#openActivityHandles++;\n\t\tlet ended = false;\n\t\treturn () => {\n\t\t\tif (ended) return;\n\t\t\tended = true;\n\t\t\tthis.#openActivityHandles--;\n\t\t\tendOperation();\n\t\t};\n\t}\n\twarnWhenWaitingOnlyForUnendedWork(warned) {\n\t\tconst openTransactions = this.#refusing ? this.#openTransactionWork.count : 0;\n\t\tif (warned.done || this.#openActivityHandles === 0 && openTransactions === 0) return;\n\t\tif (this.#inFlight.count !== this.#openActivityHandles) return;\n\t\twarned.done = true;\n\t\tthis.sqlCtx.log.warn({\n\t\t\tevent: \"runtime.close.waiting-for-activities\",\n\t\t\topenActivities: this.#openActivityHandles,\n\t\t\topenTransactions\n\t\t});\n\t}\n\tbeginOperation(queryable, options) {\n\t\tconst admittedParent = options?.activityParent?.acceptsChildren() === true;\n\t\tif (queryable === this.driver && this.#refusing && !admittedParent) throw runtimeClosedError();\n\t\treturn this.#inFlight.begin();\n\t}\n\tparentOf(queryable, options) {\n\t\tconst openTransaction = this.#openTransactions.get(queryable);\n\t\tconst activityParent = options?.activityParent;\n\t\tif (activityParent === void 0) return openTransaction;\n\t\tif (openTransaction !== void 0 && !activityParent.ctx.inTransaction()) throw activityOutsideTransactionError(activityParent, openTransaction);\n\t\treturn activityParent;\n\t}\n\tgetListDecoder() {\n\t\treturn sqlNativeArrayListDecoder;\n\t}\n\tasync *streamDecodedRows(run, exec, createDecodeContext, driverCall, codecCtx, queryable, onDriverAnswered) {\n\t\tconst rowDecodeContext = createDecodeContext();\n\t\tawait this.setupDriverExecution(exec, queryable);\n\t\tconst startedAt = Date.now();\n\t\tlet telemetryOutcome = null;\n\t\ttry {\n\t\t\tconst iterator = run.runQuery(exec, driverCall)[Symbol.asyncIterator]();\n\t\t\tlet answered = false;\n\t\t\ttry {\n\t\t\t\twhile (true) {\n\t\t\t\t\tcheckAborted(codecCtx, \"stream\");\n\t\t\t\t\tconst next = answered ? await iterator.next() : await iterator.next().finally(onDriverAnswered);\n\t\t\t\t\tanswered = true;\n\t\t\t\t\tif (next.done) break;\n\t\t\t\t\tyield blindCast(await decodeRow(next.value, rowDecodeContext, codecCtx, this.getListDecoder()));\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tawait iterator.return?.();\n\t\t\t}\n\t\t\ttelemetryOutcome = \"success\";\n\t\t} catch (error) {\n\t\t\ttelemetryOutcome = \"runtime-error\";\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (telemetryOutcome !== null) this.recordTelemetry(exec, telemetryOutcome, Date.now() - startedAt);\n\t\t}\n\t}\n\tcreateQueryContexts(options) {\n\t\tconst signal = options?.signal;\n\t\tconst scope = options?.scope ?? \"runtime\";\n\t\treturn {\n\t\t\tcodecCtx: signal === void 0 ? {} : { signal },\n\t\t\tcontextFields: {\n\t\t\t\t...this.sqlCtx,\n\t\t\t\t...ifDefined(\"signal\", signal),\n\t\t\t\t...scope !== \"runtime\" ? { scope } : {}\n\t\t\t}\n\t\t};\n\t}\n\tasync prepareOperation(plan, codecCtx, run) {\n\t\tcheckAborted(codecCtx, \"stream\");\n\t\tif (isExecutionPlan(plan)) {\n\t\t\tconst mutator = createSqlParamRefMutator(plan);\n\t\t\tawait run.beforeEncode(plan, mutator);\n\t\t\treturn Object.freeze({\n\t\t\t\t...plan,\n\t\t\t\tparams: await encodeParams({\n\t\t\t\t\t...plan,\n\t\t\t\t\tparams: mutator.currentParams()\n\t\t\t\t}, codecCtx, this.contractCodecs)\n\t\t\t});\n\t\t}\n\t\tconst compiled = await this.compilePlan(plan, run.ctx);\n\t\tconst draft = this.lowerToDraft(compiled);\n\t\tconst mutator = createSqlParamRefMutator(draft);\n\t\tawait run.beforeEncode(draft, mutator);\n\t\tconst draftWithMutations = Object.freeze({\n\t\t\t...draft,\n\t\t\tparams: mutator.currentParams()\n\t\t});\n\t\treturn this.encodeDraftParams(draftWithMutations, codecCtx);\n\t}\n\t/** Query rows against a caller-supplied queryable through the shared preparation pipeline. */\n\tqueryAgainstQueryable(plan, queryable, options) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tconst self = this;\n\t\tconst { codecCtx, contextFields } = this.createQueryContexts(options);\n\t\tconst generator = async function* () {\n\t\t\tconst endOperation = self.beginOperation(queryable, options);\n\t\t\ttry {\n\t\t\t\tyield* streamStatement({\n\t\t\t\t\tmiddleware: self.middleware,\n\t\t\t\t\tplan,\n\t\t\t\t\tcontext: contextFields,\n\t\t\t\t\tparent: self.parentOf(queryable, options)\n\t\t\t\t}, async function* (run) {\n\t\t\t\t\tconst exec = await self.prepareOperation(plan, codecCtx, run);\n\t\t\t\t\tyield* self.streamDecodedRows(run, exec, () => buildDecodeContext(exec.ast, self.contractCodecs), () => queryable.query({\n\t\t\t\t\t\tsql: exec.sql,\n\t\t\t\t\t\tparams: exec.params\n\t\t\t\t\t}), codecCtx, queryable, endOperation);\n\t\t\t\t});\n\t\t\t} finally {\n\t\t\t\tendOperation();\n\t\t\t}\n\t\t};\n\t\treturn new AsyncIterableResult(generator());\n\t}\n\t/** Execute statistics against a caller-supplied queryable through the shared preparation pipeline. */\n\tasync executeStatisticsAgainstQueryable(plan, queryable, options) {\n\t\tconst endOperation = this.beginOperation(queryable, options);\n\t\ttry {\n\t\t\treturn await this.executeStatisticsInFlight(plan, queryable, options);\n\t\t} finally {\n\t\t\tendOperation();\n\t\t}\n\t}\n\tasync executeStatisticsInFlight(plan, queryable, options) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tconst { codecCtx, contextFields } = this.createQueryContexts(options);\n\t\treturn this.executeOn(queryable, options, plan, contextFields, async (run) => {\n\t\t\tconst exec = await this.prepareOperation(plan, codecCtx, run);\n\t\t\treturn this.executeEncodedPlan(run, exec, queryable, codecCtx, () => queryable.execute({\n\t\t\t\tsql: exec.sql,\n\t\t\t\tparams: exec.params\n\t\t\t}));\n\t\t});\n\t}\n\texecuteOn(queryable, options, plan, context, body) {\n\t\treturn executeStatement({\n\t\t\tmiddleware: this.middleware,\n\t\t\tplan,\n\t\t\tcontext,\n\t\t\tparent: this.parentOf(queryable, options)\n\t\t}, body);\n\t}\n\tasync executeEncodedPlan(run, exec, queryable, codecCtx, driverCall) {\n\t\tawait this.setupDriverExecution(exec, queryable);\n\t\tcheckAborted(codecCtx, \"stream\");\n\t\tconst startedAt = Date.now();\n\t\tlet telemetryOutcome = \"success\";\n\t\ttry {\n\t\t\treturn await run.runExecute(exec, driverCall);\n\t\t} catch (error) {\n\t\t\ttelemetryOutcome = \"runtime-error\";\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tthis.recordTelemetry(exec, telemetryOutcome, Date.now() - startedAt);\n\t\t}\n\t}\n\tasync prepare(declaration, callback) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tconst userPlan = callback(buildBindSiteParams(declaration));\n\t\tconst finalPlan = await this.compilePlan(userPlan, createContextBeneath(this.sqlCtx, void 0));\n\t\tconst orderedRefs = collectOrderedParamRefs(finalPlan.ast);\n\t\tconst referencedNames = /* @__PURE__ */ new Set();\n\t\tfor (const ref of orderedRefs) if (ref.kind === \"prepared-param-ref\") referencedNames.add(ref.name);\n\t\tconst missing = Object.keys(declaration).filter((name) => !referencedNames.has(name));\n\t\tif (missing.length > 0) throw runtimeError(\"RUNTIME.PREPARE_UNUSED_PARAM\", `Prepared statement declaration includes parameter${missing.length === 1 ? \"\" : \"s\"} not referenced by the callback's plan: ${missing.join(\", \")}`, { unused: missing });\n\t\tconst lowered = this.adapter.lower(finalPlan.ast, {\n\t\t\tcontract: this.contract,\n\t\t\tparams: orderedRefs.map((r) => r.kind === \"param-ref\" ? r.value : void 0)\n\t\t});\n\t\tconst decodeContext = buildDecodeContext(finalPlan.ast, this.contractCodecs);\n\t\tconst paramMetadata = deriveParamMetadata(finalPlan.ast);\n\t\tconst internals = Object.freeze({\n\t\t\tsql: lowered.sql,\n\t\t\tast: finalPlan.ast,\n\t\t\tmeta: finalPlan.meta,\n\t\t\tslots: lowered.params,\n\t\t\tdecodeContext,\n\t\t\tparamMetadata\n\t\t});\n\t\treturn blindCast(finalPlan.ast.kind === \"raw-query\" && finalPlan.ast.result.kind === \"affected-count\" ? new PreparedExecutionImpl(internals) : new PreparedStatementImpl(internals));\n\t}\n\t/** Query prepared rows against a caller-supplied queryable through the full pipeline. */\n\trunPreparedQueryAgainstQueryable(ps, userParams, queryable, options) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tconst self = this;\n\t\tconst { codecCtx, contextFields } = this.createQueryContexts(options);\n\t\tconst generator = async function* () {\n\t\t\tconst endOperation = self.beginOperation(queryable, options);\n\t\t\ttry {\n\t\t\t\tyield* streamStatement({\n\t\t\t\t\tmiddleware: self.middleware,\n\t\t\t\t\tplan: ps,\n\t\t\t\t\tcontext: contextFields,\n\t\t\t\t\tparent: self.parentOf(queryable, options)\n\t\t\t\t}, (run) => self.streamPreparedRows(run, ps, userParams, queryable, codecCtx, endOperation));\n\t\t\t} finally {\n\t\t\t\tendOperation();\n\t\t\t}\n\t\t};\n\t\treturn new AsyncIterableResult(generator());\n\t}\n\tasync *streamPreparedRows(run, ps, userParams, queryable, codecCtx, onDriverAnswered) {\n\t\tcheckAborted(codecCtx, \"stream\");\n\t\tconst preEncodeValues = resolvePreparedSlotValues(ps, userParams);\n\t\tconst preEncodeExec = {\n\t\t\tsql: ps.sql,\n\t\t\tparams: preEncodeValues,\n\t\t\tast: ps.ast,\n\t\t\tmeta: ps.meta\n\t\t};\n\t\tconst mutator = createSqlParamRefMutator(preEncodeExec);\n\t\tawait run.beforeEncode(preEncodeExec, mutator);\n\t\tconst encodedParams = await encodeParamsWithMetadata(mutator.currentParams(), ps.paramMetadata, codecCtx, this.contractCodecs);\n\t\tconst exec = {\n\t\t\tsql: ps.sql,\n\t\t\tparams: encodedParams,\n\t\t\tast: ps.ast,\n\t\t\tmeta: ps.meta\n\t\t};\n\t\tconst handles = this.#preparedStatementHandles;\n\t\tconst request = {\n\t\t\tsql: exec.sql,\n\t\t\tparams: exec.params,\n\t\t\tpreparedStatementHandle: {\n\t\t\t\tget: () => handles.get(ps),\n\t\t\t\tset: (value) => {\n\t\t\t\t\thandles.set(ps, value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tyield* this.streamDecodedRows(run, exec, () => ps.decodeContext, () => queryable.query(request), codecCtx, queryable, onDriverAnswered);\n\t}\n\t/** Execute a prepared statement's statistics against a caller-supplied queryable through the full pipeline. */\n\tasync runPreparedExecuteAgainstQueryable(ps, userParams, queryable, options) {\n\t\tconst endOperation = this.beginOperation(queryable, options);\n\t\ttry {\n\t\t\treturn await this.runPreparedExecuteInFlight(ps, userParams, queryable, options);\n\t\t} finally {\n\t\t\tendOperation();\n\t\t}\n\t}\n\tasync runPreparedExecuteInFlight(ps, userParams, queryable, options) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tconst { codecCtx, contextFields } = this.createQueryContexts(options);\n\t\treturn this.executeOn(queryable, options, ps, contextFields, (run) => this.executePrepared(run, ps, userParams, queryable, codecCtx));\n\t}\n\tasync executePrepared(run, ps, userParams, queryable, codecCtx) {\n\t\tcheckAborted(codecCtx, \"stream\");\n\t\tconst preEncodeValues = resolvePreparedSlotValues(ps, userParams);\n\t\tconst preEncodeExec = {\n\t\t\tsql: ps.sql,\n\t\t\tparams: preEncodeValues,\n\t\t\tast: ps.ast,\n\t\t\tmeta: ps.meta\n\t\t};\n\t\tconst mutator = createSqlParamRefMutator(preEncodeExec);\n\t\tawait run.beforeEncode(preEncodeExec, mutator);\n\t\tconst exec = {\n\t\t\tsql: ps.sql,\n\t\t\tparams: await encodeParamsWithMetadata(mutator.currentParams(), ps.paramMetadata, codecCtx, this.contractCodecs),\n\t\t\tast: ps.ast,\n\t\t\tmeta: ps.meta\n\t\t};\n\t\tconst handles = this.#preparedStatementHandles;\n\t\tconst request = {\n\t\t\tsql: exec.sql,\n\t\t\tparams: exec.params,\n\t\t\tpreparedStatementHandle: {\n\t\t\t\tget: () => handles.get(ps),\n\t\t\t\tset: (value) => {\n\t\t\t\t\thandles.set(ps, value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn this.executeEncodedPlan(run, exec, queryable, codecCtx, () => queryable.execute(request));\n\t}\n\tasync connection() {\n\t\treturn (await this.openConnection()).connection;\n\t}\n\tasync openConnection(options) {\n\t\tconst driverConn = await this.acquireRawConnection(options);\n\t\tthis.#heldQueryables.add(driverConn);\n\t\tconst self = this;\n\t\tconst wrappedConnection = {\n\t\t\t[transactionStart]: createTransactionStart(),\n\t\t\ttransaction() {\n\t\t\t\treturn self.beginTransactionOn(driverConn, wrappedConnection, void 0);\n\t\t\t},\n\t\t\t[activitySource]: self.connectionActivitySource(driverConn, () => wrappedConnection),\n\t\t\trelease: () => driverConn.release(),\n\t\t\tdestroy: (reason) => driverConn.destroy(reason),\n\t\t\tquery(plan, options) {\n\t\t\t\treturn self.queryAgainstQueryable(plan, driverConn, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"connection\"\n\t\t\t\t});\n\t\t\t},\n\t\t\texecute(plan, options) {\n\t\t\t\treturn self.executeStatisticsAgainstQueryable(plan, driverConn, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"connection\"\n\t\t\t\t});\n\t\t\t},\n\t\t\t[preparedStatementQuery](ps, params, options) {\n\t\t\t\treturn self.runPreparedQueryAgainstQueryable(blindCast(ps), params, driverConn, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"connection\"\n\t\t\t\t});\n\t\t\t},\n\t\t\t[preparedStatementExecute](ps, params, options) {\n\t\t\t\treturn self.runPreparedExecuteAgainstQueryable(blindCast(ps), params, driverConn, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"connection\"\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t\treturn {\n\t\t\tdriverConnection: driverConn,\n\t\t\tconnection: wrappedConnection\n\t\t};\n\t}\n\t/**\n\t* Begins a transaction on `connection`, which `owner` wraps, as a transaction activity. When the transaction's `activityStarted` hooks refuse the start, no `BEGIN` is sent, `owner` is recorded as clean, and `withTransaction` releases it; after any other start failure it destroys it. The transaction's `activityStarted` hooks run before `BEGIN`. Every statement sent on the transaction, or on `connection`, from the end of `BEGIN` until `commit()` or `rollback()` is called is the transaction's child, and is finalized when the transaction ends, with its outcome. `commit()` and `rollback()` resolve after every finalization hook has run. A subclass that holds its own connection begins its transactions here.\n\t*/\n\tasync beginTransactionOn(connection, owner, parent) {\n\t\towner[transactionStart].refusedBeforeBegin = false;\n\t\tconst endTransactionWork = this.#openTransactionWork.begin();\n\t\tthis.#transactionWorkOn.set(connection, endTransactionWork);\n\t\tlet activity;\n\t\ttry {\n\t\t\tactivity = await startTransactionActivity({\n\t\t\t\tmiddleware: this.middleware,\n\t\t\t\tcontext: {\n\t\t\t\t\t...this.sqlCtx,\n\t\t\t\t\tscope: \"transaction\"\n\t\t\t\t},\n\t\t\t\tparent,\n\t\t\t\tholdFinishedChildren: this.#holdFinishedChildren\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tendTransactionWork();\n\t\t\towner[transactionStart].refusedBeforeBegin = true;\n\t\t\tthrow error;\n\t\t}\n\t\tlet driverTx;\n\t\ttry {\n\t\t\tdriverTx = await connection.beginTransaction();\n\t\t} catch (error) {\n\t\t\tendTransactionWork();\n\t\t\tawait activity.end({\n\t\t\t\tby: \"rollback\",\n\t\t\t\toutcome: \"failed\",\n\t\t\t\tcommitAttempted: false\n\t\t\t});\n\t\t\tthrow error;\n\t\t}\n\t\tif (this.#heldQueryables.has(connection)) this.#heldQueryables.add(driverTx);\n\t\treturn this.wrapTransaction(driverTx, connection, activity, endTransactionWork);\n\t}\n\twrapTransaction(driverTx, connection, activity, endTransactionWork) {\n\t\tthis.#openTransactions.set(driverTx, activity);\n\t\tthis.#openTransactions.set(connection, activity);\n\t\tconst stopAcceptingChildren = () => {\n\t\t\tactivity.stopAcceptingChildren();\n\t\t\tfor (const queryable of [driverTx, connection]) if (this.#openTransactions.get(queryable) === activity) this.#openTransactions.delete(queryable);\n\t\t};\n\t\tlet commitAttempted = false;\n\t\tconst settlement = {\n\t\t\tcommitted: false,\n\t\t\trolledBack: false,\n\t\t\tlogDroppedError(error) {\n\t\t\t\ttry {\n\t\t\t\t\tactivity.ctx.log.error({\n\t\t\t\t\t\tevent: \"middleware.activityEnded.error\",\n\t\t\t\t\t\terror\n\t\t\t\t\t});\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t};\n\t\tlet commitEnding;\n\t\tconst self = this;\n\t\treturn {\n\t\t\t[transactionSettlement]: settlement,\n\t\t\tasync commit() {\n\t\t\t\tcommitAttempted = true;\n\t\t\t\tstopAcceptingChildren();\n\t\t\t\ttry {\n\t\t\t\t\tawait self.#inFlight.track(() => driverTx.commit());\n\t\t\t\t} catch (error) {\n\t\t\t\t\tendTransactionWork();\n\t\t\t\t\tawait activity.end({\n\t\t\t\t\t\tby: \"commit\",\n\t\t\t\t\t\toutcome: \"failed\"\n\t\t\t\t\t});\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tsettlement.committed = true;\n\t\t\t\tcommitEnding = activity.end({\n\t\t\t\t\tby: \"commit\",\n\t\t\t\t\toutcome: \"succeeded\"\n\t\t\t\t});\n\t\t\t\ttry {\n\t\t\t\t\tawait commitEnding;\n\t\t\t\t} finally {\n\t\t\t\t\tendTransactionWork();\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync rollback() {\n\t\t\t\tstopAcceptingChildren();\n\t\t\t\tif (settlement.committed) {\n\t\t\t\t\tawait commitEnding?.catch(() => void 0);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (settlement.rolledBack) return;\n\t\t\t\ttry {\n\t\t\t\t\tawait self.#inFlight.track(() => driverTx.rollback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\tendTransactionWork();\n\t\t\t\t\tawait activity.end({\n\t\t\t\t\t\tby: \"rollback\",\n\t\t\t\t\t\toutcome: \"failed\",\n\t\t\t\t\t\tcommitAttempted\n\t\t\t\t\t});\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tsettlement.rolledBack = true;\n\t\t\t\ttry {\n\t\t\t\t\tawait activity.end({\n\t\t\t\t\t\tby: \"rollback\",\n\t\t\t\t\t\toutcome: \"succeeded\",\n\t\t\t\t\t\tcommitAttempted\n\t\t\t\t\t});\n\t\t\t\t} finally {\n\t\t\t\t\tendTransactionWork();\n\t\t\t\t}\n\t\t\t},\n\t\t\t[activitySource]: {\n\t\t\t\tstartActivity: (clientActivity) => self.startActivityOnRoute(self.queryableRoute(driverTx, \"transaction\", () => activity, {\n\t\t\t\t\ttransaction: void 0,\n\t\t\t\t\truntimeWork: false\n\t\t\t\t}), clientActivity, void 0),\n\t\t\t\tplanContentHash: (plan) => self.planContentHashFor(plan, \"transaction\", activity)\n\t\t\t},\n\t\t\tquery(plan, options) {\n\t\t\t\treturn self.queryAgainstQueryable(plan, driverTx, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"transaction\"\n\t\t\t\t});\n\t\t\t},\n\t\t\texecute(plan, options) {\n\t\t\t\treturn self.executeStatisticsAgainstQueryable(plan, driverTx, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"transaction\"\n\t\t\t\t});\n\t\t\t},\n\t\t\t[preparedStatementQuery](ps, params, options) {\n\t\t\t\treturn self.runPreparedQueryAgainstQueryable(blindCast(ps), params, driverTx, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"transaction\"\n\t\t\t\t});\n\t\t\t},\n\t\t\t[preparedStatementExecute](ps, params, options) {\n\t\t\t\treturn self.runPreparedExecuteAgainstQueryable(blindCast(ps), params, driverTx, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"transaction\"\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t}\n\ttelemetry() {\n\t\treturn this._telemetry;\n\t}\n\tclose() {\n\t\tthis.closePromise ??= this.closeDriverAfterWork();\n\t\treturn this.closePromise;\n\t}\n\tasync closeDriverAfterWork() {\n\t\tawait this.refuseAfterWork();\n\t\tif (this.ownsDriver) await this.driver.close();\n\t}\n\tasync refuseAfterWork() {\n\t\tconst warned = { done: false };\n\t\tif (this.closeRefusal === \"when-idle\") await this.waitForIdleTurn(warned);\n\t\tthis.#refusing = true;\n\t\tthis.warnWhenWaitingOnlyForUnendedWork(warned);\n\t\twhile (this.#inFlight.active || this.#openTransactionWork.active) {\n\t\t\tawait this.#inFlight.drained();\n\t\t\tthis.warnWhenWaitingOnlyForUnendedWork(warned);\n\t\t\tawait this.#openTransactionWork.drained();\n\t\t}\n\t}\n\tasync waitForIdleTurn(warned) {\n\t\tfor (;;) {\n\t\t\tconst startedBefore = this.#inFlight.started;\n\t\t\tawait new Promise((resolve) => scheduleTimer(resolve, 0));\n\t\t\tif (!this.#inFlight.active && this.#inFlight.started === startedBefore) return;\n\t\t\tthis.warnWhenWaitingOnlyForUnendedWork(warned);\n\t\t\tawait this.#inFlight.drained();\n\t\t}\n\t}\n\tensureCodecRegistryValidated() {\n\t\tif (!this.codecRegistryValidated) {\n\t\t\tvalidateCodecRegistryCompleteness(this.codecDescriptors, this.contract);\n\t\t\tthis.codecRegistryValidated = true;\n\t\t}\n\t}\n\tasync verifyMarker(queryable) {\n\t\tconst readResult = await this.familyAdapter.markerReader.readMarker(queryable);\n\t\tconst expectedStorageHash = this.contract.storage.storageHash;\n\t\tconst expectedProfileHash = this.contract.profileHash ?? null;\n\t\tconst expected = {\n\t\t\tstorageHash: expectedStorageHash,\n\t\t\tprofileHash: expectedProfileHash\n\t\t};\n\t\tif (readResult.kind !== \"present\") {\n\t\t\tthis.sqlCtx.log.warn({\n\t\t\t\tcode: \"CONTRACT.MARKER_MISSING\",\n\t\t\t\tscope: \"marker-verification\",\n\t\t\t\texpected,\n\t\t\t\tactual: null,\n\t\t\t\tmessage: \"Contract marker not found in database\"\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst marker = readResult.record;\n\t\tconst storageHashMatch = marker.storageHash === expectedStorageHash;\n\t\tconst profileHashMatch = expectedProfileHash === null || marker.profileHash === expectedProfileHash;\n\t\tif (!storageHashMatch || !profileHashMatch) this.sqlCtx.log.warn({\n\t\t\tcode: \"CONTRACT.MARKER_MISMATCH\",\n\t\t\tscope: \"marker-verification\",\n\t\t\texpected,\n\t\t\tactual: {\n\t\t\t\tstorageHash: marker.storageHash,\n\t\t\t\tprofileHash: marker.profileHash ?? null\n\t\t\t},\n\t\t\tmessage: \"Contract marker hash does not match runtime contract\"\n\t\t});\n\t}\n\trecordTelemetry(plan, outcome, durationMs) {\n\t\tconst contract = this.contract;\n\t\tthis._telemetry = Object.freeze({\n\t\t\tlane: plan.meta.lane,\n\t\t\ttarget: contract.target,\n\t\t\tfingerprint: computeSqlFingerprint(plan.sql),\n\t\t\toutcome,\n\t\t\t...durationMs !== void 0 ? { durationMs } : {}\n\t\t});\n\t}\n};\nfunction activityOutsideTransactionError(parent, openTransaction) {\n\treturn runtimeError(\"RUNTIME.ACTIVITY_OUTSIDE_TRANSACTION\", `Work was sent through a '${parent.activity.kind}' activity onto a connection whose open transaction the activity is not part of. Start the activity on the transaction instead.`, {\n\t\tkind: parent.activity.kind,\n\t\tid: parent.activity.id,\n\t\ttransactionId: openTransaction.activity.id\n\t});\n}\nfunction transactionAlreadyOpenError(parent, openTransaction) {\n\treturn runtimeError(\"RUNTIME.TRANSACTION_ALREADY_OPEN\", `A transaction is already open on this connection; a '${parent.activity.kind}' activity cannot begin another until it commits or rolls back.`, {\n\t\tkind: parent.activity.kind,\n\t\tid: parent.activity.id,\n\t\ttransactionId: openTransaction.activity.id\n\t});\n}\nfunction noWork() {}\nfunction rowsBeneath(run, rows) {\n\treturn new AsyncIterableResult(new RowsBeneath(run, rows));\n}\n/** The rows of a statement started beneath `run`, checked against `run` on the first `next()`. It forwards to the statement's own iterator rather than adding an async generator, so each row costs no extra turn. */\nvar RowsBeneath = class {\n\t#run;\n\t#rows;\n\t#inner;\n\t#done = false;\n\tconstructor(run, rows) {\n\t\tthis.#run = run;\n\t\tthis.#rows = rows;\n\t}\n\tnext() {\n\t\tif (this.#done) return Promise.resolve({\n\t\t\tdone: true,\n\t\t\tvalue: void 0\n\t\t});\n\t\tif (this.#inner === void 0) try {\n\t\t\tthis.#run.assertAcceptsChildren();\n\t\t\tthis.#inner = this.#rows()[Symbol.asyncIterator]();\n\t\t} catch (error) {\n\t\t\tthis.#done = true;\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t\treturn this.#inner.next();\n\t}\n\treturn() {\n\t\tconst inner = this.#inner;\n\t\tthis.#done = true;\n\t\treturn inner?.return === void 0 ? Promise.resolve({\n\t\t\tdone: true,\n\t\t\tvalue: void 0\n\t\t}) : inner.return();\n\t}\n\tthrow(error) {\n\t\tconst inner = this.#inner;\n\t\tif (inner?.throw === void 0) {\n\t\t\tthis.#done = true;\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t\treturn inner.throw(error);\n\t}\n\t[Symbol.asyncIterator]() {\n\t\treturn this;\n\t}\n\tasync [Symbol.asyncDispose]() {\n\t\tawait this.return();\n\t}\n};\nfunction transactionClosedError() {\n\treturn runtimeError(\"RUNTIME.TRANSACTION_CLOSED\", \"Cannot use a transaction operation after the transaction has ended. Consume query results and await execute calls inside the transaction callback.\", {});\n}\n/**\n* Adds a client's members to the context `withTransaction` passes. The context is the prototype, not spread, so live accessors such as `invalidated` keep reading the transaction's state; spreading would copy their value once.\n*/\nfunction withTransactionMembers(txCtx, members) {\n\treturn Object.assign(castAs(Object.create(txCtx)), members);\n}\nasync function withTransaction(runtime, fn) {\n\tconst connection = await runtime.connection();\n\tlet transaction;\n\ttry {\n\t\ttransaction = await connection.transaction();\n\t} catch (error) {\n\t\tif (wasRefusedBeforeBegin(connection)) await connection.release().catch(() => void 0);\n\t\telse await connection.destroy(error).catch(() => void 0);\n\t\tthrow error;\n\t}\n\tlet invalidated = false;\n\tasync function* guardedStream(inner) {\n\t\tif (invalidated) throw transactionClosedError();\n\t\tfor await (const row of inner) {\n\t\t\tyield row;\n\t\t\tif (invalidated) throw transactionClosedError();\n\t\t}\n\t}\n\tfunction guardedQueryable(target) {\n\t\treturn {\n\t\t\tquery(plan, options) {\n\t\t\t\tif (invalidated) throw transactionClosedError();\n\t\t\t\treturn new AsyncIterableResult(guardedStream(target.query(plan, options)));\n\t\t\t},\n\t\t\tasync execute(plan, options) {\n\t\t\t\tif (invalidated) throw transactionClosedError();\n\t\t\t\treturn target.execute(plan, options);\n\t\t\t},\n\t\t\t[preparedStatementQuery](ps, params, options) {\n\t\t\t\tif (invalidated) throw transactionClosedError();\n\t\t\t\treturn new AsyncIterableResult(guardedStream(runPreparedQuery(target, ps, params, options)));\n\t\t\t},\n\t\t\t[preparedStatementExecute](ps, params, options) {\n\t\t\t\tif (invalidated) throw transactionClosedError();\n\t\t\t\treturn runPreparedExecute(target, ps, params, options);\n\t\t\t}\n\t\t};\n\t}\n\tfunction guardedSource(target) {\n\t\treturn {\n\t\t\tasync startActivity(activity) {\n\t\t\t\tif (invalidated) throw transactionClosedError();\n\t\t\t\treturn guardedHandle(await startActivityOn(target, activity));\n\t\t\t},\n\t\t\tplanContentHash(plan) {\n\t\t\t\treturn planContentHashOn(target, plan);\n\t\t\t}\n\t\t};\n\t}\n\tfunction guardedHandle(handle) {\n\t\tconst source = guardedSource(handle);\n\t\treturn {\n\t\t\t...source,\n\t\t\t...guardedQueryable(handle),\n\t\t\t[activitySource]: source,\n\t\t\tactivity: handle.activity,\n\t\t\tget intercepted() {\n\t\t\t\treturn handle.intercepted;\n\t\t\t},\n\t\t\tend: (end) => handle.end(end)\n\t\t};\n\t}\n\tconst txContext = {\n\t\t...guardedQueryable(transaction),\n\t\tget invalidated() {\n\t\t\treturn invalidated;\n\t\t},\n\t\t[activitySource]: guardedSource(transaction)\n\t};\n\tlet connectionDisposed = false;\n\tconst destroyConnection = async (reason) => {\n\t\tif (connectionDisposed) return;\n\t\tconnectionDisposed = true;\n\t\tawait connection.destroy(reason).catch(() => void 0);\n\t};\n\ttry {\n\t\tlet result;\n\t\ttry {\n\t\t\tresult = await fn(txContext);\n\t\t} catch (error) {\n\t\t\ttry {\n\t\t\t\tawait transaction.rollback();\n\t\t\t} catch (rollbackError) {\n\t\t\t\tconst settlement = settlementOf(transaction);\n\t\t\t\tif (settlement?.rolledBack === true) {\n\t\t\t\t\tsettlement.logDroppedError(rollbackError);\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tawait destroyConnection(rollbackError);\n\t\t\t\tconst wrapped = runtimeError(\"RUNTIME.TRANSACTION_ROLLBACK_FAILED\", \"Transaction rollback failed after callback error\", { rollbackError });\n\t\t\t\twrapped.cause = error;\n\t\t\t\tthrow wrapped;\n\t\t\t}\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tinvalidated = true;\n\t\t}\n\t\ttry {\n\t\t\tawait transaction.commit();\n\t\t} catch (commitError) {\n\t\t\tif (settlementOf(transaction)?.committed === true) throw commitError;\n\t\t\ttry {\n\t\t\t\tawait transaction.rollback();\n\t\t\t} catch (rollbackError) {\n\t\t\t\tconst settlement = settlementOf(transaction);\n\t\t\t\tif (settlement?.rolledBack === true) settlement.logDroppedError(rollbackError);\n\t\t\t\telse await destroyConnection(commitError);\n\t\t\t}\n\t\t\tconst wrapped = runtimeError(\"RUNTIME.TRANSACTION_COMMIT_FAILED\", \"Transaction commit failed\", { commitError });\n\t\t\twrapped.cause = commitError;\n\t\t\tthrow wrapped;\n\t\t}\n\t\treturn result;\n\t} finally {\n\t\tif (!connectionDisposed) await connection.release();\n\t}\n}\n//#endregion\n//#region src/to-sql.ts\nfunction createToSql(stack, contract) {\n\tlet adapter;\n\treturn (plan) => {\n\t\tvalidateSqlPlan(plan, contract);\n\t\tadapter ??= stack.adapter.create(stack);\n\t\tconst { sql, params } = lowerSqlPlan(adapter, contract, plan);\n\t\treturn {\n\t\t\tsql,\n\t\t\tparams\n\t\t};\n\t};\n}\n//#endregion\nexport { findActivitySource as C, startActivityOn as E, delegatingActivitySource as S, planContentHashOn as T, validateContractCodecMappings as _, buildDecodeContext as a, createAstCodecRegistry as b, createExecutionContext as c, PreparedStatementImpl as d, lints as f, validateCodecRegistryCompleteness as g, extractCodecIds as h, withTransactionMembers as i, createSqlExecutionStack as l, lowerSqlPlan as m, SqlRuntimeBase as n, decodeRow as o, budgets as p, withTransaction as r, sqlNativeArrayListDecoder as s, createToSql as t, PreparedExecutionImpl as u, deriveParamMetadata as v, lazyActivitySource as w, activitySource as x, encodeParamsWithMetadata as y };\n\n//# sourceMappingURL=exports-C3wGYtID.mjs.map"],"mappings":"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"}
@@ -22,7 +22,7 @@ import { AnyCodecDescriptor, CodecDescriptor } from "@prisma/orm-framework/compo
22
22
  import { Contract, PlanMeta } from "@prisma/orm-framework/contract/types";
23
23
  import { Activity, Activity as Activity$1, ActivityContext, ActivityEndedResult, ActivityEndedResult as ActivityEndedResult$1, ActivityFinalizedResult, ActivityFinalizedResult as ActivityFinalizedResult$1, ActivityInterceptResult, ActivityInterceptResult as ActivityInterceptResult$1, ActivityParent, ActivityParent as ActivityParent$1, AsyncIterableResult, ClientActivity, ClientActivity as ClientActivity$1, ClientActivityEnd, ClientActivityEnd as ClientActivityEnd$1, ClientActivityEnded, ClientActivityKind, ClientActivityKind as ClientActivityKind$1, ClientActivityResult, ClientActivityResult as ClientActivityResult$1, ExecuteInterceptResult, ExecuteInterceptResult as ExecuteInterceptResult$1, ExecutionPlan, MutationDefaultGeneratorContributor, QueryInterceptResult, QueryInterceptResult as QueryInterceptResult$1, RuntimeCore, RuntimeExecuteOptions, RuntimeLog, RuntimeLog as Log, RuntimeMiddleware, StartActivity, StartActivity as StartActivity$1, StatementActivity, StatementEnded, TransactionActivity, TransactionEnded } from "@prisma/orm-framework/components/runtime";
24
24
  import { ExecutionStack, RuntimeAdapterDescriptor, RuntimeAdapterInstance, RuntimeDriverDescriptor, RuntimeDriverInstance, RuntimeExtensionDescriptor, RuntimeExtensionInstance, RuntimeTargetDescriptor, RuntimeTargetInstance } from "@prisma/orm-framework/components/execution";
25
- //#region ../../../2-sql/5-runtime/dist/activity-handle-BoYk9Ram.d.mts
25
+ //#region ../../../2-sql/5-runtime/dist/activity-handle-Ax5eP79U.d.mts
26
26
  //#region src/codecs/decoding.d.ts
27
27
  type ColumnRef = {
28
28
  table: string;
@@ -265,6 +265,8 @@ interface RuntimeOptions<TContract extends Contract<SqlStorage> = Contract<SqlSt
265
265
  readonly mode?: RuntimeMode;
266
266
  readonly log?: Log$1;
267
267
  readonly closeRefusal?: CloseRefusal | undefined;
268
+ /** Whether `close()` closes the driver; `true` by default. Pass `false` for a runtime that shares a driver its owner closes: its `close()` refuses new work and waits for work in flight, and leaves the driver open. */
269
+ readonly ownsDriver?: boolean | undefined;
268
270
  }
269
271
  /**
270
272
  * SQL-family runtime interface. Named `Runtime` (not `SqlRuntime`) by deliberate exception
@@ -274,7 +276,7 @@ interface Runtime extends RuntimeQueryable {
274
276
  connection(): Promise<RuntimeConnection>;
275
277
  telemetry(): RuntimeTelemetryEvent | null;
276
278
  /**
277
- * Waits until the runtime has been idle for one turn of the event loop, with no database work in flight and none started since, then closes the driver. Runtime-scope work that starts after that is refused with `DRIVER.NOT_CONNECTED`. Work on a held connection or transaction is never refused; the driver's close waits for its release. Every call returns the same promise.
279
+ * Waits until the runtime has been idle for one turn of the event loop, with no database work in flight and none started since, then closes the driver, unless the runtime was built with `ownsDriver: false`. Runtime-scope work that starts after that, opening a connection included, is refused with `DRIVER.NOT_CONNECTED`. Work on a held connection or transaction is never refused. A statement in flight and a transaction from its start until its commit or rollback settles are work `close()` waits for; a connection held between statements is not, and the driver's close waits for its release. Every call returns the same promise.
278
280
  */
279
281
  close(): Promise<void>;
280
282
  /**
@@ -340,6 +342,7 @@ declare abstract class SqlRuntimeBase<TContract extends Contract<SqlStorage> = C
340
342
  private readonly verifyMarkerOption;
341
343
  private verifyMarkerPromise;
342
344
  private closePromise;
345
+ private readonly ownsDriver;
343
346
  private readonly closeRefusal;
344
347
  private codecRegistryValidated;
345
348
  private _telemetry;
@@ -410,15 +413,13 @@ declare abstract class SqlRuntimeBase<TContract extends Contract<SqlStorage> = C
410
413
  /** Begins a transaction with `begin` on a connection the transaction owns; see `beginOwnedTransaction`. */
411
414
  protected ownTransaction(connection: Pick<RuntimeConnection, 'release' | 'destroy'>, begin: () => Promise<RuntimeTransaction>): Promise<RuntimeTransaction>;
412
415
  /**
413
- * Returns the raw driver connection. The connection is a `SqlQueryable` — SQL
414
- * issued on it runs below the middleware/codec/telemetry pipeline. It carries
415
- * its own lifecycle (`release`/`destroy`/`beginTransaction`); the caller owns
416
- * disposal.
416
+ * Returns a raw driver connection. SQL issued on it runs below the middleware/codec/telemetry pipeline. It carries its own lifecycle (`release`/`destroy`/`beginTransaction`); the caller owns disposal. It follows the runtime's close rule for connections: see {@link Runtime.close}. Pass the `activityParent` of the activity it is acquired for, so it is admitted after `close()` while that activity is open.
417
417
  */
418
- protected acquireRawConnection(): Promise<SqlConnection>;
418
+ protected acquireRawConnection(options?: Pick<ActivityExecuteOptions, 'activityParent'>): Promise<SqlConnection>;
419
+ private trackRows;
419
420
  private setupDriverExecution;
420
421
  private beginActivityWork;
421
- private warnWhenWaitingOnlyForActivities;
422
+ private warnWhenWaitingOnlyForUnendedWork;
422
423
  private beginOperation;
423
424
  private parentOf;
424
425
  protected getListDecoder(): ListDecoder;
@@ -450,6 +451,7 @@ declare abstract class SqlRuntimeBase<TContract extends Contract<SqlStorage> = C
450
451
  telemetry(): RuntimeTelemetryEvent | null;
451
452
  close(): Promise<void>;
452
453
  private closeDriverAfterWork;
454
+ private refuseAfterWork;
453
455
  private waitForIdleTurn;
454
456
  private ensureCodecRegistryValidated;
455
457
  private verifyMarker;
@@ -601,4 +603,4 @@ interface ToSqlMember {
601
603
  declare function createToSql<TTargetId extends string>(stack: SqlExecutionStackWithDriver<TTargetId>, contract: Contract<SqlStorage>): ToSqlMember['toSql'];
602
604
  //#endregion
603
605
  export { SqlExecutionStack as $, validateContractCodecMappings as A, MarkerReader as B, budgets as C, startActivityOn as Ct, lints as D, extractCodecIds as E, ActivitySourceTarget as F, RuntimeConnection as G, PreparedStatementImpl as H, BoundPreparedStatement as I, RuntimeOptions as J, RuntimeFamilyAdapter as K, CloseRefusal as L, ActivityHandle as M, ActivityRoute as N, lowerSqlPlan as O, ActivitySource as P, RuntimeTransaction as Q, ConnectionProvider as R, TransactionEnded as S, planContentHashOn as St, createToSql as T, withTransactionMembers as Tt, PreparedStatementInternals as U, PreparedExecutionImpl as V, Runtime as W, RuntimeQueryable as X, RuntimeParameterizedCodecDescriptor as Y, RuntimeTelemetryEvent as Z, StartActivity$1 as _, delegatingActivitySource as _t, ActivityParent$1 as a, SqlRuntimeBase as at, ToSqlMember as b, findActivitySource as bt, ClientActivityEnd$1 as c, SqlRuntimeExtensionInstance as ct, ClientActivityResult$1 as d, TelemetryOutcome as dt, SqlExecutionStackWithDriver as et, ExecuteInterceptResult$1 as f, TransactionContext as ft, RenderedSql as g, createSqlExecutionStack as gt, QueryInterceptResult$1 as h, createExecutionContext as ht, ActivityInterceptResult$1 as i, SqlRuntimeAdapterInstance as it, ActivityExecuteOptions as j, validateCodecRegistryCompleteness as k, ClientActivityEnded as l, SqlRuntimeTargetDescriptor as lt, Log as m, activitySource as mt, ActivityEndedResult$1 as n, SqlMiddlewareContext as nt, BudgetsOptions as o, SqlRuntimeDriverInstance as ot, LintsOptions as p, VerifyMarkerOption as pt, RuntimeMode as q, ActivityFinalizedResult$1 as r, SqlRuntimeAdapterDescriptor as rt, ClientActivity$1 as s, SqlRuntimeExtensionDescriptor as st, Activity$1 as t, SqlMiddleware as tt, ClientActivityKind$1 as u, SqlStaticContributions as ut, StatementActivity as v, deriveParamMetadata as vt, createAstCodecRegistry as w, withTransaction as wt, TransactionActivity as x, lazyActivitySource as xt, StatementEnded as y, encodeParamsWithMetadata as yt, HashablePlan as z };
604
- //# sourceMappingURL=index-3aEIvk82.d.mts.map
606
+ //# sourceMappingURL=index-BAxGJxON.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BAxGJxON.d.mts","names":[],"sources":["../../../../2-sql/5-runtime/dist/activity-handle-Ax5eP79U.d.mts","../../../../2-sql/5-runtime/dist/index.d.mts"],"mappings":"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"}
@@ -18,7 +18,7 @@ import { h as RuntimeScope, o as ComputeColumnJsType } from "./types-TXO7x1BA-Du
18
18
  import "./types-DDqbg3WC.mjs";
19
19
  import { l as PreparedFor, n as Declaration, o as ParamsFromDeclaration, t as BindSiteParams, u as PreparedStatement } from "./transaction-state-DR3nKTmH-D6VdY7YX.mjs";
20
20
  import "./collection-methods-BTknGdHI.mjs";
21
- import { F as ActivitySourceTarget, W as Runtime, X as RuntimeQueryable$1 } from "./index-3aEIvk82.mjs";
21
+ import { F as ActivitySourceTarget, W as Runtime, X as RuntimeQueryable$1 } from "./index-BAxGJxON.mjs";
22
22
  import { CodecDescriptorRef, ScalarFieldDeclarationBuilder } from "@prisma/orm-framework/components/codec";
23
23
  import { Contract } from "@prisma/orm-framework/contract/types";
24
24
  import { AsyncIterableResult, MetaBuilder, ResultType, RuntimeExecuteOptions } from "@prisma/orm-framework/components/runtime";
@@ -8,7 +8,7 @@ import { n as codecRefForStorageColumn } from "./codec-descriptor-registry-MG2bF
8
8
  import { t as createFunctions } from "./functions-0YWByawj.mjs";
9
9
  import { t as createIndexReferences } from "./index-reference-DR62gjQS.mjs";
10
10
  import { o as settlementOf } from "./transaction-state-BfXhs7D7-3k10jZ8I.mjs";
11
- import { m as findActivitySource } from "./exports-CRROThzp-BNz0pGj0.mjs";
11
+ import { m as findActivitySource } from "./exports-C3wGYtID-Bg6ThaBe.mjs";
12
12
  import { isStructuredError, structuredError } from "@prisma/orm-framework/utils/structured-error";
13
13
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
14
14
  import { blindCast, castAs } from "@prisma/orm-framework/utils/casts";
@@ -1,5 +1,5 @@
1
1
  import { m as MarkerReadResult } from "./ast-BySjcUKx.mjs";
2
2
  import { n as ExecutionContext } from "./query-lane-context-BCEoKy0_-DQOOliDn.mjs";
3
3
  import { a as ParamSpec, c as PreparedExecution, i as DeclaredNullable, l as PreparedFor, n as Declaration, o as ParamsFromDeclaration, r as DeclaredCodecId, s as PrepareCallback, t as BindSiteParams, u as PreparedStatement } from "./transaction-state-DR3nKTmH-D6VdY7YX.mjs";
4
- import { $ as SqlExecutionStack, A as validateContractCodecMappings, B as MarkerReader, C as budgets, Ct as startActivityOn, D as lints, E as extractCodecIds, F as ActivitySourceTarget, G as RuntimeConnection, H as PreparedStatementImpl, I as BoundPreparedStatement, J as RuntimeOptions, K as RuntimeFamilyAdapter, L as CloseRefusal, M as ActivityHandle, N as ActivityRoute, O as lowerSqlPlan, P as ActivitySource, Q as RuntimeTransaction, R as ConnectionProvider, S as TransactionEnded, St as planContentHashOn, T as createToSql, Tt as withTransactionMembers, U as PreparedStatementInternals, V as PreparedExecutionImpl, W as Runtime, X as RuntimeQueryable, Y as RuntimeParameterizedCodecDescriptor, Z as RuntimeTelemetryEvent, _ as StartActivity, _t as delegatingActivitySource, a as ActivityParent, at as SqlRuntimeBase, b as ToSqlMember, bt as findActivitySource, c as ClientActivityEnd, ct as SqlRuntimeExtensionInstance, d as ClientActivityResult, dt as TelemetryOutcome, et as SqlExecutionStackWithDriver, f as ExecuteInterceptResult, ft as TransactionContext, g as RenderedSql, gt as createSqlExecutionStack, h as QueryInterceptResult, ht as createExecutionContext, i as ActivityInterceptResult, it as SqlRuntimeAdapterInstance, j as ActivityExecuteOptions, k as validateCodecRegistryCompleteness, l as ClientActivityEnded, lt as SqlRuntimeTargetDescriptor, m as Log, mt as activitySource, n as ActivityEndedResult, nt as SqlMiddlewareContext, o as BudgetsOptions, ot as SqlRuntimeDriverInstance, p as LintsOptions, pt as VerifyMarkerOption, q as RuntimeMode, r as ActivityFinalizedResult, rt as SqlRuntimeAdapterDescriptor, s as ClientActivity, st as SqlRuntimeExtensionDescriptor, t as Activity, tt as SqlMiddleware, u as ClientActivityKind, ut as SqlStaticContributions, v as StatementActivity, vt as deriveParamMetadata, w as createAstCodecRegistry, wt as withTransaction, x as TransactionActivity, xt as lazyActivitySource, y as StatementEnded, yt as encodeParamsWithMetadata, z as HashablePlan } from "./index-3aEIvk82.mjs";
4
+ import { $ as SqlExecutionStack, A as validateContractCodecMappings, B as MarkerReader, C as budgets, Ct as startActivityOn, D as lints, E as extractCodecIds, F as ActivitySourceTarget, G as RuntimeConnection, H as PreparedStatementImpl, I as BoundPreparedStatement, J as RuntimeOptions, K as RuntimeFamilyAdapter, L as CloseRefusal, M as ActivityHandle, N as ActivityRoute, O as lowerSqlPlan, P as ActivitySource, Q as RuntimeTransaction, R as ConnectionProvider, S as TransactionEnded, St as planContentHashOn, T as createToSql, Tt as withTransactionMembers, U as PreparedStatementInternals, V as PreparedExecutionImpl, W as Runtime, X as RuntimeQueryable, Y as RuntimeParameterizedCodecDescriptor, Z as RuntimeTelemetryEvent, _ as StartActivity, _t as delegatingActivitySource, a as ActivityParent, at as SqlRuntimeBase, b as ToSqlMember, bt as findActivitySource, c as ClientActivityEnd, ct as SqlRuntimeExtensionInstance, d as ClientActivityResult, dt as TelemetryOutcome, et as SqlExecutionStackWithDriver, f as ExecuteInterceptResult, ft as TransactionContext, g as RenderedSql, gt as createSqlExecutionStack, h as QueryInterceptResult, ht as createExecutionContext, i as ActivityInterceptResult, it as SqlRuntimeAdapterInstance, j as ActivityExecuteOptions, k as validateCodecRegistryCompleteness, l as ClientActivityEnded, lt as SqlRuntimeTargetDescriptor, m as Log, mt as activitySource, n as ActivityEndedResult, nt as SqlMiddlewareContext, o as BudgetsOptions, ot as SqlRuntimeDriverInstance, p as LintsOptions, pt as VerifyMarkerOption, q as RuntimeMode, r as ActivityFinalizedResult, rt as SqlRuntimeAdapterDescriptor, s as ClientActivity, st as SqlRuntimeExtensionDescriptor, t as Activity, tt as SqlMiddleware, u as ClientActivityKind, ut as SqlStaticContributions, v as StatementActivity, vt as deriveParamMetadata, w as createAstCodecRegistry, wt as withTransaction, x as TransactionActivity, xt as lazyActivitySource, y as StatementEnded, yt as encodeParamsWithMetadata, z as HashablePlan } from "./index-BAxGJxON.mjs";
5
5
  export { type Activity, type ActivityEndedResult, type ActivityExecuteOptions, type ActivityFinalizedResult, type ActivityHandle, type ActivityInterceptResult, type ActivityParent, type ActivityRoute, type ActivitySource, type ActivitySourceTarget, type BindSiteParams, type BoundPreparedStatement, type BudgetsOptions, type ClientActivity, type ClientActivityEnd, type ClientActivityEnded, type ClientActivityKind, type ClientActivityResult, type CloseRefusal, type ConnectionProvider, type Declaration, type DeclaredCodecId, type DeclaredNullable, type ExecuteInterceptResult, type ExecutionContext, type HashablePlan, type LintsOptions, type Log, type MarkerReadResult, type MarkerReader, type ParamSpec, type ParamsFromDeclaration, type PrepareCallback, type PreparedExecution, PreparedExecutionImpl, type PreparedFor, type PreparedStatement, PreparedStatementImpl, type PreparedStatementInternals, type QueryInterceptResult, type RenderedSql, type Runtime, type RuntimeConnection, type RuntimeFamilyAdapter, type RuntimeMode, type RuntimeOptions, type RuntimeParameterizedCodecDescriptor, type RuntimeQueryable, type RuntimeTelemetryEvent, type RuntimeTransaction, type SqlExecutionStack, type SqlExecutionStackWithDriver, type SqlMiddleware, type SqlMiddlewareContext, type SqlRuntimeAdapterDescriptor, type SqlRuntimeAdapterInstance, SqlRuntimeBase, type SqlRuntimeDriverInstance, type SqlRuntimeExtensionDescriptor, type SqlRuntimeExtensionInstance, type SqlRuntimeTargetDescriptor, type SqlStaticContributions, type StartActivity, type StatementActivity, type StatementEnded, type TelemetryOutcome, type ToSqlMember, type TransactionActivity, type TransactionContext, type TransactionEnded, type VerifyMarkerOption, activitySource, budgets, createAstCodecRegistry, createExecutionContext, createSqlExecutionStack, createToSql, delegatingActivitySource, deriveParamMetadata, encodeParamsWithMetadata, extractCodecIds, findActivitySource, lazyActivitySource, lints, lowerSqlPlan, planContentHashOn, startActivityOn, validateCodecRegistryCompleteness, validateContractCodecMappings, withTransaction, withTransactionMembers };
package/dist/runtime.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { C as withTransactionMembers, S as withTransaction, _ as lowerSqlPlan, a as budgets, b as validateCodecRegistryCompleteness, c as createSqlExecutionStack, d as deriveParamMetadata, f as encodeParamsWithMetadata, g as lints, h as lazyActivitySource, i as activitySource, l as createToSql, m as findActivitySource, n as PreparedStatementImpl, o as createAstCodecRegistry, p as extractCodecIds, r as SqlRuntimeBase, s as createExecutionContext, t as PreparedExecutionImpl, u as delegatingActivitySource, v as planContentHashOn, x as validateContractCodecMappings, y as startActivityOn } from "./exports-CRROThzp-BNz0pGj0.mjs";
1
+ import { C as withTransactionMembers, S as withTransaction, _ as lowerSqlPlan, a as budgets, b as validateCodecRegistryCompleteness, c as createSqlExecutionStack, d as deriveParamMetadata, f as encodeParamsWithMetadata, g as lints, h as lazyActivitySource, i as activitySource, l as createToSql, m as findActivitySource, n as PreparedStatementImpl, o as createAstCodecRegistry, p as extractCodecIds, r as SqlRuntimeBase, s as createExecutionContext, t as PreparedExecutionImpl, u as delegatingActivitySource, v as planContentHashOn, x as validateContractCodecMappings, y as startActivityOn } from "./exports-C3wGYtID-Bg6ThaBe.mjs";
2
2
  export { PreparedExecutionImpl, PreparedStatementImpl, SqlRuntimeBase, activitySource, budgets, createAstCodecRegistry, createExecutionContext, createSqlExecutionStack, createToSql, delegatingActivitySource, deriveParamMetadata, encodeParamsWithMetadata, extractCodecIds, findActivitySource, lazyActivitySource, lints, lowerSqlPlan, planContentHashOn, startActivityOn, validateCodecRegistryCompleteness, validateContractCodecMappings, withTransaction, withTransactionMembers };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/orm-family-sql",
3
- "version": "8.0.0-rc.19-dev.5",
3
+ "version": "8.0.0-rc.19-dev.7",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -9,8 +9,8 @@
9
9
  "dist"
10
10
  ],
11
11
  "dependencies": {
12
- "@prisma/orm-framework": "8.0.0-rc.19-dev.5",
13
- "@prisma/orm-toolchain": "8.0.0-rc.19-dev.5",
12
+ "@prisma/orm-framework": "8.0.0-rc.19-dev.7",
13
+ "@prisma/orm-toolchain": "8.0.0-rc.19-dev.7",
14
14
  "@standard-schema/spec": "^1.1.0",
15
15
  "arktype": "^2.2.2",
16
16
  "pathe": "^2.0.3",
@@ -19,21 +19,21 @@
19
19
  "ts-toolbelt": "^9.6.0"
20
20
  },
21
21
  "devDependencies": {
22
- "@internal/family-sql": "8.0.0-rc.19-dev.5",
23
- "@internal/sql-builder": "8.0.0-rc.19-dev.5",
24
- "@internal/sql-contract": "8.0.0-rc.19-dev.5",
25
- "@internal/sql-contract-emitter": "8.0.0-rc.19-dev.5",
26
- "@internal/sql-contract-prisma7": "8.0.0-rc.19-dev.5",
27
- "@internal/sql-contract-psl": "8.0.0-rc.19-dev.5",
28
- "@internal/sql-contract-ts": "8.0.0-rc.19-dev.5",
29
- "@internal/sql-errors": "8.0.0-rc.19-dev.5",
30
- "@internal/sql-operations": "8.0.0-rc.19-dev.5",
31
- "@internal/sql-orm-client": "8.0.0-rc.19-dev.5",
32
- "@internal/sql-relational-core": "8.0.0-rc.19-dev.5",
33
- "@internal/sql-runtime": "8.0.0-rc.19-dev.5",
34
- "@internal/sql-schema-ir": "8.0.0-rc.19-dev.5",
35
- "@repo/tsconfig": "8.0.0-rc.19-dev.5",
36
- "@repo/tsdown": "8.0.0-rc.19-dev.5",
22
+ "@internal/family-sql": "8.0.0-rc.19-dev.7",
23
+ "@internal/sql-builder": "8.0.0-rc.19-dev.7",
24
+ "@internal/sql-contract": "8.0.0-rc.19-dev.7",
25
+ "@internal/sql-contract-emitter": "8.0.0-rc.19-dev.7",
26
+ "@internal/sql-contract-prisma7": "8.0.0-rc.19-dev.7",
27
+ "@internal/sql-contract-psl": "8.0.0-rc.19-dev.7",
28
+ "@internal/sql-contract-ts": "8.0.0-rc.19-dev.7",
29
+ "@internal/sql-errors": "8.0.0-rc.19-dev.7",
30
+ "@internal/sql-operations": "8.0.0-rc.19-dev.7",
31
+ "@internal/sql-orm-client": "8.0.0-rc.19-dev.7",
32
+ "@internal/sql-relational-core": "8.0.0-rc.19-dev.7",
33
+ "@internal/sql-runtime": "8.0.0-rc.19-dev.7",
34
+ "@internal/sql-schema-ir": "8.0.0-rc.19-dev.7",
35
+ "@repo/tsconfig": "8.0.0-rc.19-dev.7",
36
+ "@repo/tsdown": "8.0.0-rc.19-dev.7",
37
37
  "tsdown": "0.22.14",
38
38
  "typescript": "5.9.3"
39
39
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"exports-CRROThzp-BNz0pGj0.mjs","names":["runtimeError","#count","#started","#drainWaiters","#ast","#holdFinishedChildren","#runtimeRoute","#openTransactions","#heldQueryables","#openActivityHandles","#inFlight","#refusing","#preparedStatementHandles","#run","#rows","#done","#inner"],"sources":["../../../../2-sql/5-runtime/dist/exports-CRROThzp.mjs"],"sourcesContent":["import { a as wasRefusedBeforeBegin, c as preparedStatementExecute, i as transactionStart, l as runPreparedExecute, n as settlementOf, o as preparedStatementQuery, r as transactionSettlement, s as runPreparedQuery, t as createTransactionStart } from \"./transaction-state-BfXhs7D7.mjs\";\nimport { invariant } from \"@internal/utils/assertions\";\nimport { materializeCodec, resolveCodecDescriptorOrThrow } from \"@internal/framework-components/codec\";\nimport { canonicalizeJson } from \"@internal/framework-components/utils\";\nimport { AsyncIterableResult, RuntimeCore, applyMutationDefaults, assertMutationDefaultGeneratorsAvailable, checkAborted, checkMiddlewareCompatibility, collectMutationDefaultGenerators, createContextBeneath, executeStatement, raceAgainstAbort, runtimeError, startClientActivity, startTransactionActivity, streamStatement } from \"@internal/framework-components/runtime\";\nimport { PreparedParamRef, collectOrderedParamRefs, isQueryAst } from \"@internal/sql-relational-core/ast\";\nimport { assertNever, isInternalError } from \"@internal/utils/internal-error\";\nimport { isStructuredError, structuredError } from \"@internal/utils/structured-error\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { checkContractComponentRequirements, mergeCapabilityMatrices } from \"@internal/framework-components/components\";\nimport { createExecutionStack } from \"@internal/framework-components/execution\";\nimport { createSqlOperationRegistry } from \"@internal/sql-operations\";\nimport { buildSqlAggregateDescriptorRegistry } from \"@internal/sql-relational-core/aggregate-descriptor-registry\";\nimport { buildCodecDescriptorRegistry } from \"@internal/sql-relational-core/codec-descriptor-registry\";\nimport { blindCast, castAs } from \"@internal/utils/casts\";\nimport { createSqlParamRefMutator } from \"@internal/sql-relational-core/middleware\";\nimport { canonicalStringify } from \"@internal/utils/canonical-stringify\";\nimport { hashContent } from \"@internal/utils/hash-content\";\nimport { createHash } from \"node:crypto\";\n//#region src/activity-handle.ts\n/** The symbol-keyed member through which a runtime, connection, transaction, `withTransaction` context or activity handle starts activities; user-facing types do not show it. */\nconst activitySource = Symbol(\"activitySource\");\nfunction hasActivitySourceMember(target) {\n\treturn activitySource in target;\n}\n/** The `activitySource` member of a queryable; `undefined` for a queryable that cannot start activities, such as a test stub. */\nfunction findActivitySource(target) {\n\treturn hasActivitySourceMember(target) ? target[activitySource] : void 0;\n}\nfunction activitySourceOf(target) {\n\tconst source = findActivitySource(target);\n\tinvariant(source !== void 0, \"The queryable cannot start activities\");\n\treturn source;\n}\n/** An activity source that calls `source()` each time it is used, for an object whose source is created later, such as on the first query. */\nfunction lazyActivitySource(source) {\n\treturn {\n\t\tstartActivity: (activity) => source().startActivity(activity),\n\t\tplanContentHash: (plan) => source().planContentHash(plan)\n\t};\n}\n/** An activity source that starts activities on whatever queryable `target()` returns when called, for an object that sends its statements to a queryable it looks up each time. */\nfunction delegatingActivitySource(target) {\n\treturn lazyActivitySource(() => activitySourceOf(target()));\n}\n/** Starts an activity on a queryable through its `activitySource` member. */\nfunction startActivityOn(target, activity) {\n\treturn activitySourceOf(target).startActivity(activity);\n}\nfunction planContentHashOn(target, plan) {\n\treturn activitySourceOf(target).planContentHash(plan);\n}\n//#endregion\n//#region src/codecs/ast-codec-resolver.ts\n/**\n* Build an {@link AstCodecResolver} bound to a descriptor registry and a per-call instance-context factory.\n*\n* The instance-context factory lets callers control `name` / `usedAt` for refs the AST supplies (e.g. AST-embedded migration ops where the materialisation site is the AST node, not a contract column). The contract-walk pre-population path constructs its own contexts and invokes the resolver with those refs to seed the cache.\n*/\nfunction createAstCodecResolver(descriptors, instanceContextFor) {\n\tconst cache = /* @__PURE__ */ new Map();\n\treturn { forCodecRef(ref) {\n\t\tconst key = `${ref.codecId}:${canonicalizeJson(ref.typeParams)}`;\n\t\tconst cached = cache.get(key);\n\t\tif (cached) return cached;\n\t\tconst codec = materializeCodec(resolveCodecDescriptorOrThrow((id) => descriptors.descriptorFor(id), ref, \"RUNTIME.CODEC_DESCRIPTOR_MISSING\"), ref, instanceContextFor(ref));\n\t\tcache.set(key, codec);\n\t\treturn codec;\n\t} };\n}\n//#endregion\n//#region src/codecs/ast-codec-registry.ts\n/**\n* Build a contract-free {@link ContractCodecRegistry} that resolves codecs\n* purely from AST-supplied {@link import('@internal/framework-components/codec').CodecRef}s\n* against a target's descriptor registry.\n*\n* Dispatch is driven entirely by `CodecRef`s embedded in AST nodes; no\n* contract walk is needed. `forColumn` always returns `undefined` — this\n* registry carries no column-to-codec mappings.\n*/\nfunction createAstCodecRegistry(descriptors) {\n\tconst resolver = createAstCodecResolver(descriptors, (ref) => ({\n\t\tname: ref.codecId,\n\t\tusedAt: []\n\t}));\n\treturn {\n\t\tforColumn: () => void 0,\n\t\tforCodecRef: (ref) => resolver.forCodecRef(ref)\n\t};\n}\n//#endregion\n//#region src/codecs/encoding.ts\nconst NO_METADATA = Object.freeze({\n\tcodec: void 0,\n\tname: void 0\n});\nfunction deriveParamMetadata(ast) {\n\treturn collectOrderedParamRefs(ast).map((ref) => {\n\t\treturn {\n\t\t\tcodec: ref.codec,\n\t\t\tname: ref.name\n\t\t};\n\t});\n}\nfunction resolveParamCodec(metadata, contractCodecs) {\n\tif (metadata.codec && contractCodecs) return contractCodecs.forCodecRef(metadata.codec);\n}\nfunction paramLabel(metadata, paramIndex) {\n\treturn metadata.name ?? `param[${paramIndex}]`;\n}\nfunction wrapEncodeFailure(error, metadata, paramIndex, codecId) {\n\tif (isInternalError(error)) throw error;\n\tconst label = paramLabel(metadata, paramIndex);\n\tconst wrapped = runtimeError(\"RUNTIME.ENCODE_FAILED\", `Failed to encode parameter ${label} with codec '${codecId}': ${error instanceof Error ? error.message : String(error)}`, {\n\t\tlabel,\n\t\tcodec: codecId,\n\t\tparamIndex\n\t});\n\twrapped.cause = error;\n\tthrow wrapped;\n}\nasync function encodeParamValue(value, metadata, paramIndex, ctx, contractCodecs) {\n\tif (value === null || value === void 0) return null;\n\tconst codec = resolveParamCodec(metadata, contractCodecs);\n\tif (!codec) return value;\n\tif (metadata.codec?.many) {\n\t\tif (!Array.isArray(value)) wrapEncodeFailure(/* @__PURE__ */ new TypeError(`expected an array for many-typed parameter, got ${typeof value}`), metadata, paramIndex, codec.id);\n\t\tconst encoded = [];\n\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\tconst elem = value[i];\n\t\t\tif (elem === null || elem === void 0) {\n\t\t\t\tencoded.push(null);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tencoded.push(await codec.toWire(elem, ctx));\n\t\t\t} catch (error) {\n\t\t\t\tif (isStructuredError(error)) throw error;\n\t\t\t\twrapEncodeFailure(error, metadata, paramIndex, codec.id);\n\t\t\t}\n\t\t}\n\t\treturn encoded;\n\t}\n\ttry {\n\t\treturn await codec.toWire(value, ctx);\n\t} catch (error) {\n\t\tif (isStructuredError(error)) throw error;\n\t\twrapEncodeFailure(error, metadata, paramIndex, codec.id);\n\t}\n}\n/**\n* Encodes all parameters concurrently via `Promise.all`. Per parameter, sync-and async-authored codecs share the same path: `codec.encode → await → return`. Param-level failures are wrapped in `RUNTIME.ENCODE_FAILED`.\n*\n* When `ctx.signal` is provided:\n*\n* - **Already-aborted at entry** short-circuits with `RUNTIME.ABORTED` (`{ phase: 'encode' }`) before any `codec.encode` call is made — codecs can pin this with a per-call counter that stays at zero.\n* - **Mid-flight abort** races the per-param `Promise.all` against `abortable(ctx.signal)`. The runtime returns `RUNTIME.ABORTED` promptly even if codec bodies ignore the signal; the in-flight bodies are abandoned and run to completion in the background (cooperative cancellation, see ADR 204).\n* - Existing structured envelopes (any dotted-code error passing `isStructuredError`, e.g. `RUNTIME.ENCODE_FAILED`) that surface from a codec body before the runtime observes the abort pass through unchanged (no double wrap).\n*/\nasync function encodeParams(plan, ctx, contractCodecs) {\n\treturn encodeParamsWithMetadata(plan.params, deriveParamMetadata(plan.ast), ctx, contractCodecs);\n}\nasync function encodeParamsWithMetadata(values, metadata, ctx, contractCodecs) {\n\tcheckAborted(ctx, \"encode\");\n\tconst signal = ctx.signal;\n\tif (values.length === 0) return values;\n\tconst tasks = values.map((value, i) => encodeParamValue(value, metadata[i] ?? NO_METADATA, i, ctx, contractCodecs));\n\tconst settled = await raceAgainstAbort(Promise.all(tasks), signal, \"encode\");\n\treturn Object.freeze(settled);\n}\n//#endregion\n//#region src/codecs/validation.ts\nfunction extractCodecIds(contract) {\n\tconst codecIds = /* @__PURE__ */ new Set();\n\tfor (const ns of Object.values(contract.storage.namespaces)) for (const table of Object.values(ns.entries.table ?? {})) for (const column of Object.values(table.columns)) {\n\t\tconst codecId = column.codecId;\n\t\tcodecIds.add(codecId);\n\t}\n\treturn codecIds;\n}\nfunction extractColumnCodecRefs(contract) {\n\tconst refs = [];\n\tfor (const [namespaceId, ns] of Object.entries(contract.storage.namespaces)) for (const [tableName, table] of Object.entries(ns.entries.table ?? {})) for (const [columnName, column] of Object.entries(table.columns)) refs.push({\n\t\tnamespaceId,\n\t\ttable: tableName,\n\t\tcolumn: columnName,\n\t\tcodecId: column.codecId\n\t});\n\treturn refs;\n}\nfunction validateContractCodecMappings(registry, contract) {\n\tconst invalidCodecs = extractColumnCodecRefs(contract).filter((ref) => registry.descriptorFor(ref.codecId) === void 0);\n\tif (invalidCodecs.length > 0) {\n\t\tconst details = {\n\t\t\tcontractTarget: contract.target,\n\t\t\tinvalidCodecs\n\t\t};\n\t\tthrow runtimeError(\"RUNTIME.CODEC_MISSING\", `Missing codec implementations for column codecIds: ${invalidCodecs.map((c) => `${c.namespaceId}.${c.table}.${c.column} (${c.codecId})`).join(\", \")}`, details);\n\t}\n}\nfunction validateCodecRegistryCompleteness(registry, contract) {\n\tvalidateContractCodecMappings(registry, contract);\n}\n//#endregion\n//#region src/lower-sql-plan.ts\n/**\n* Lowers a SQL query plan to an executable Plan by calling the adapter's lower method.\n*\n* Ad-hoc lowerings produce only `{kind: 'literal'}` slots; this helper\n* unwraps them into the bare-value array `SqlExecutionPlan` exposes.\n* Encountering a `{kind: 'bind'}` slot here means the caller passed an\n* AST containing `PreparedParamRef` to the ad-hoc execute path — that's a\n* caller error, surfaced as `RUNTIME.PREPARE_BIND_ON_ADHOC`.\n*/\nfunction lowerSqlPlan(adapter, contract, queryPlan) {\n\tconst lowered = adapter.lower(queryPlan.ast, {\n\t\tcontract,\n\t\tparams: queryPlan.params\n\t});\n\tconst params = lowered.params.map((slot) => {\n\t\tif (slot.kind === \"literal\") return slot.value;\n\t\tthrow runtimeError(\"RUNTIME.PREPARE_BIND_ON_ADHOC\", `The plan has a bind site for '${slot.name}'. A plan built inside prepare(...) runs only as a prepared statement.`, { name: slot.name });\n\t});\n\treturn Object.freeze({\n\t\tsql: lowered.sql,\n\t\tparams,\n\t\tast: queryPlan.ast,\n\t\tmeta: queryPlan.meta\n\t});\n}\n//#endregion\n//#region src/middleware/budgets.ts\nfunction hasAggregateWithoutGroupBy(ast) {\n\tif (ast.groupBy !== void 0) return false;\n\treturn ast.projection.some((item) => item.expr.kind === \"aggregate\");\n}\nfunction primaryTableFromAst(ast) {\n\tif (ast.from === void 0) return void 0;\n\tswitch (ast.from.kind) {\n\t\tcase \"table-source\": return ast.from.name;\n\t\tcase \"derived-table-source\": return ast.from.alias;\n\t\tcase \"function-source\": return ast.from.fn;\n\t\t// v8 ignore next 4\n\t\tdefault: return assertNever(ast.from, `Unsupported source kind: ${ast.from.kind}`);\n\t}\n}\nfunction estimateRowsFromAst(ast, tableRows, defaultTableRows, hasAggregateWithoutGroup) {\n\tif (hasAggregateWithoutGroup) return 1;\n\tconst primaryTable = primaryTableFromAst(ast);\n\tconst tableEstimate = (primaryTable !== void 0 ? tableRows[primaryTable] : void 0) ?? defaultTableRows;\n\tif (typeof ast.limit === \"number\") return Math.min(ast.limit, tableEstimate);\n\treturn tableEstimate;\n}\nfunction emitBudgetViolation(error, shouldBlock, ctx) {\n\tif (shouldBlock) throw error;\n\tctx.log.warn({\n\t\tcode: error.code,\n\t\tmessage: error.message,\n\t\tdetails: error.details\n\t});\n}\nconst observedRows = Symbol(\"budgets.observedRows\");\nfunction budgets(options) {\n\tconst maxRows = options?.maxRows ?? 1e4;\n\tconst defaultTableRows = options?.defaultTableRows ?? 1e4;\n\tconst tableRows = options?.tableRows ?? {};\n\tconst maxLatencyMs = options?.maxLatencyMs ?? 1e3;\n\tconst rowSeverity = options?.severities?.rowCount ?? \"error\";\n\tconst latencySeverity = options?.severities?.latency ?? \"warn\";\n\treturn Object.freeze({\n\t\tname: \"budgets\",\n\t\tfamilyId: \"sql\",\n\t\tasync beforeEncode(plan, ctx) {\n\t\t\tif (isQueryAst(plan.ast) && plan.ast.kind === \"select\") evaluateSelectAst(plan.ast, ctx);\n\t\t},\n\t\tasync onRow(_row, _plan, ctx) {\n\t\t\tconst observed = ctx.state(observedRows);\n\t\t\tconst count = (typeof observed[\"count\"] === \"number\" ? observed[\"count\"] : 0) + 1;\n\t\t\tobserved[\"count\"] = count;\n\t\t\tif (count <= maxRows || observed[\"warned\"] === true) return;\n\t\t\tconst shouldBlock = rowSeverity === \"error\" || ctx.mode === \"strict\";\n\t\t\tif (!shouldBlock) observed[\"warned\"] = true;\n\t\t\temitBudgetViolation(runtimeError(\"BUDGET.ROWS_EXCEEDED\", \"Observed row count exceeds budget\", {\n\t\t\t\tsource: \"observed\",\n\t\t\t\tobservedRows: count,\n\t\t\t\tmaxRows\n\t\t\t}), shouldBlock, ctx);\n\t\t},\n\t\tasync activityEnded(_activity, result, ctx) {\n\t\t\tif (result.kind === \"statement\") checkLatency(result.latencyMs, ctx);\n\t\t}\n\t});\n\tfunction checkLatency(latencyMs, ctx) {\n\t\tif (latencyMs > maxLatencyMs) {\n\t\t\tconst shouldBlock = latencySeverity === \"error\" || ctx.mode === \"strict\";\n\t\t\temitBudgetViolation(runtimeError(\"BUDGET.TIME_EXCEEDED\", \"Query latency exceeds budget\", {\n\t\t\t\tlatencyMs,\n\t\t\t\tmaxLatencyMs\n\t\t\t}), shouldBlock, ctx);\n\t\t}\n\t}\n\tfunction evaluateSelectAst(ast, ctx) {\n\t\tconst hasAggNoGroup = hasAggregateWithoutGroupBy(ast);\n\t\tconst estimated = estimateRowsFromAst(ast, tableRows, defaultTableRows, hasAggNoGroup);\n\t\tconst isUnbounded = ast.limit === void 0 && !hasAggNoGroup;\n\t\tconst shouldBlock = rowSeverity === \"error\" || ctx.mode === \"strict\";\n\t\tif (isUnbounded) {\n\t\t\temitBudgetViolation(runtimeError(\"BUDGET.ROWS_EXCEEDED\", \"Unbounded SELECT query exceeds budget\", estimated >= maxRows ? {\n\t\t\t\tsource: \"ast\",\n\t\t\t\testimatedRows: estimated,\n\t\t\t\tmaxRows\n\t\t\t} : {\n\t\t\t\tsource: \"ast\",\n\t\t\t\tmaxRows\n\t\t\t}), shouldBlock, ctx);\n\t\t\treturn;\n\t\t}\n\t\tif (estimated > maxRows) emitBudgetViolation(runtimeError(\"BUDGET.ROWS_EXCEEDED\", \"Estimated row count exceeds budget\", {\n\t\t\tsource: \"ast\",\n\t\t\testimatedRows: estimated,\n\t\t\tmaxRows\n\t\t}), shouldBlock, ctx);\n\t}\n}\n//#endregion\n//#region src/guardrails/raw.ts\nconst SELECT_STAR_REGEX = /select\\s+\\*/i;\nconst LIMIT_REGEX = /\\blimit\\b/i;\nconst MUTATION_PREFIX_REGEX = /^(insert|update|delete|create|alter|drop|truncate)\\b/i;\nconst READ_ONLY_INTENTS = /* @__PURE__ */ new Set([\n\t\"read\",\n\t\"report\",\n\t\"readonly\"\n]);\nfunction evaluateRawGuardrails(plan, config) {\n\tconst lints = [];\n\tconst budgets = [];\n\tconst normalized = normalizeWhitespace(plan.sql);\n\tconst statementType = classifyStatement(normalized);\n\tif (statementType === \"select\") {\n\t\tif (SELECT_STAR_REGEX.test(normalized)) lints.push(createLint(\"LINT.SELECT_STAR\", \"error\", \"Raw SQL plan selects all columns via *\", { sql: snippet(plan.sql) }));\n\t\tif (!LIMIT_REGEX.test(normalized)) {\n\t\t\tconst severity = config?.budgets?.unboundedSelectSeverity ?? \"error\";\n\t\t\tlints.push(createLint(\"LINT.NO_LIMIT\", \"warn\", \"Raw SQL plan omits LIMIT clause\", { sql: snippet(plan.sql) }));\n\t\t\tbudgets.push(createBudget(\"BUDGET.ROWS_EXCEEDED\", severity, \"Raw SQL plan is unbounded and may exceed row budget\", {\n\t\t\t\tsql: snippet(plan.sql),\n\t\t\t\t...config?.budgets?.estimatedRows !== void 0 ? { estimatedRows: config.budgets.estimatedRows } : {}\n\t\t\t}));\n\t\t}\n\t}\n\tif (isMutationStatement(statementType) && isReadOnlyIntent(plan.meta)) lints.push(createLint(\"LINT.READ_ONLY_MUTATION\", \"error\", \"Raw SQL plan mutates data despite read-only intent\", {\n\t\tsql: snippet(plan.sql),\n\t\tintent: plan.meta.annotations?.[\"intent\"]\n\t}));\n\treturn {\n\t\tlints,\n\t\tbudgets,\n\t\tstatement: statementType\n\t};\n}\nfunction classifyStatement(sql) {\n\tconst trimmed = sql.trim();\n\tconst lower = trimmed.toLowerCase();\n\tif (lower.startsWith(\"with\")) {\n\t\tif (lower.includes(\"select\")) return \"select\";\n\t}\n\tif (lower.startsWith(\"select\")) return \"select\";\n\tif (MUTATION_PREFIX_REGEX.test(trimmed)) return \"mutation\";\n\treturn \"other\";\n}\nfunction isMutationStatement(statement) {\n\treturn statement === \"mutation\";\n}\nfunction isReadOnlyIntent(meta) {\n\tconst annotations = meta.annotations;\n\tconst intent = typeof annotations?.intent === \"string\" ? annotations.intent.toLowerCase() : void 0;\n\treturn intent !== void 0 && READ_ONLY_INTENTS.has(intent);\n}\nfunction normalizeWhitespace(value) {\n\treturn value.replace(/\\s+/g, \" \").trim();\n}\nfunction snippet(sql) {\n\treturn normalizeWhitespace(sql).slice(0, 200);\n}\nfunction createLint(code, severity, message, details) {\n\treturn {\n\t\tcode,\n\t\tseverity,\n\t\tmessage,\n\t\t...details ? { details } : {}\n\t};\n}\nfunction createBudget(code, severity, message, details) {\n\treturn {\n\t\tcode,\n\t\tseverity,\n\t\tmessage,\n\t\t...details ? { details } : {}\n\t};\n}\n//#endregion\n//#region src/middleware/lints.ts\nfunction getFromSourceTableDetail(source) {\n\tswitch (source.kind) {\n\t\tcase \"table-source\": return source.name;\n\t\tcase \"derived-table-source\": return source.alias;\n\t\tcase \"function-source\": return source.fn;\n\t\t// v8 ignore next 4\n\t\tdefault: return assertNever(source, `Unsupported source kind: ${source.kind}`);\n\t}\n}\nfunction evaluateAstLints(ast) {\n\tconst findings = [];\n\tswitch (ast.kind) {\n\t\tcase \"delete\":\n\t\t\tif (ast.where === void 0) findings.push({\n\t\t\t\tcode: \"LINT.DELETE_WITHOUT_WHERE\",\n\t\t\t\tseverity: \"error\",\n\t\t\t\tmessage: \"DELETE without WHERE clause blocks execution to prevent accidental full-table deletion\",\n\t\t\t\tdetails: { table: ast.table.name }\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"update\":\n\t\t\tif (ast.where === void 0) findings.push({\n\t\t\t\tcode: \"LINT.UPDATE_WITHOUT_WHERE\",\n\t\t\t\tseverity: \"error\",\n\t\t\t\tmessage: \"UPDATE without WHERE clause blocks execution to prevent accidental full-table update\",\n\t\t\t\tdetails: { table: ast.table.name }\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"select\":\n\t\t\tif (ast.limit === void 0) {\n\t\t\t\tconst table = ast.from !== void 0 ? getFromSourceTableDetail(ast.from) : void 0;\n\t\t\t\tfindings.push({\n\t\t\t\t\tcode: \"LINT.NO_LIMIT\",\n\t\t\t\t\tseverity: \"warn\",\n\t\t\t\t\tmessage: \"Unbounded SELECT may return large result sets\",\n\t\t\t\t\t...ifDefined(\"details\", table !== void 0 ? { table } : void 0)\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (ast.selectAllIntent !== void 0) {\n\t\t\t\tconst table = ast.selectAllIntent.table;\n\t\t\t\tfindings.push({\n\t\t\t\t\tcode: \"LINT.SELECT_STAR\",\n\t\t\t\t\tseverity: \"warn\",\n\t\t\t\t\tmessage: \"Query selects all columns via selectAll intent\",\n\t\t\t\t\t...ifDefined(\"details\", table !== void 0 ? { table } : void 0)\n\t\t\t\t});\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"insert\": break;\n\t\tcase \"raw-query\": break;\n\t\t// v8 ignore next 2\n\t\tdefault: assertNever(ast, `Unsupported AST kind: ${ast.kind}`);\n\t}\n\treturn findings;\n}\nfunction getConfiguredSeverity(code, options) {\n\tconst severities = options?.severities;\n\tif (!severities) return void 0;\n\tswitch (code) {\n\t\tcase \"LINT.SELECT_STAR\": return severities.selectStar;\n\t\tcase \"LINT.NO_LIMIT\": return severities.noLimit;\n\t\tcase \"LINT.DELETE_WITHOUT_WHERE\": return severities.deleteWithoutWhere;\n\t\tcase \"LINT.UPDATE_WITHOUT_WHERE\": return severities.updateWithoutWhere;\n\t\tcase \"LINT.READ_ONLY_MUTATION\": return severities.readOnlyMutation;\n\t\tdefault: return;\n\t}\n}\n/**\n* AST-first lint middleware for SQL plans. When `plan.ast` is a SQL QueryAst, inspects\n* the AST structurally. When `plan.ast` is missing, falls back to raw heuristic\n* guardrails or skips linting depending on `fallbackWhenAstMissing`.\n*\n* Rules (AST-based):\n* - DELETE without WHERE: blocks execution (configurable severity, default error)\n* - UPDATE without WHERE: blocks execution (configurable severity, default error)\n* - Unbounded SELECT: warn/error (severity from noLimit)\n* - SELECT * intent: warn/error (severity from selectStar)\n*\n* Fallback: When ast is missing, `fallbackWhenAstMissing: 'raw'` uses heuristic\n* SQL parsing; `'skip'` skips all lints. Default is `'raw'`.\n*/\nfunction lints(options) {\n\tconst fallback = options?.fallbackWhenAstMissing ?? \"raw\";\n\tconst beforeOperation = async (plan, ctx) => {\n\t\tconst findings = [];\n\t\tif (isQueryAst(plan.ast)) {\n\t\t\tfindings.push(...evaluateAstLints(plan.ast));\n\t\t\tif (plan.ast.kind === \"raw-query\") findings.push(...evaluateRawGuardrails(plan).lints);\n\t\t} else if (fallback !== \"skip\") findings.push(...evaluateRawGuardrails(plan).lints);\n\t\tfor (const lint of findings) {\n\t\t\tconst effectiveSeverity = getConfiguredSeverity(lint.code, options) ?? lint.severity;\n\t\t\tif (effectiveSeverity === \"error\") throw runtimeError(lint.code, lint.message, lint.details);\n\t\t\tif (effectiveSeverity === \"warn\") ctx.log.warn({\n\t\t\t\tcode: lint.code,\n\t\t\t\tmessage: lint.message,\n\t\t\t\tdetails: lint.details\n\t\t\t});\n\t\t}\n\t};\n\treturn Object.freeze({\n\t\tname: \"lints\",\n\t\tfamilyId: \"sql\",\n\t\tbeforeEncode: beforeOperation\n\t});\n}\n//#endregion\n//#region src/prepared/prepared-statement.ts\nvar PreparedStatementImpl = class {\n\tsql;\n\tast;\n\tmeta;\n\tslots;\n\tdecodeContext;\n\tparamMetadata;\n\tconstructor(internals) {\n\t\tthis.sql = internals.sql;\n\t\tthis.ast = internals.ast;\n\t\tthis.meta = internals.meta;\n\t\tthis.slots = internals.slots;\n\t\tthis.decodeContext = internals.decodeContext;\n\t\tthis.paramMetadata = internals.paramMetadata;\n\t\tObject.freeze(this);\n\t}\n\tquery(target, params, options) {\n\t\treturn runPreparedQuery(target, this, params, options);\n\t}\n};\n/**\n* The statistics-reporting sibling of {@link PreparedStatementImpl}. A plan\n* declaring an affected-row count prepares into one of these, which carries\n* the same lowered statement and bind slots and is consumed by executing it.\n*\n* The two classes are separate so the consumption a plan did not declare is\n* absent from the value, not merely from its type.\n*/\nvar PreparedExecutionImpl = class {\n\tsql;\n\tast;\n\tmeta;\n\tslots;\n\tdecodeContext;\n\tparamMetadata;\n\tconstructor(internals) {\n\t\tthis.sql = internals.sql;\n\t\tthis.ast = internals.ast;\n\t\tthis.meta = internals.meta;\n\t\tthis.slots = internals.slots;\n\t\tthis.decodeContext = internals.decodeContext;\n\t\tthis.paramMetadata = internals.paramMetadata;\n\t\tObject.freeze(this);\n\t}\n\texecute(target, params, options) {\n\t\treturn runPreparedExecute(target, this, params, options);\n\t}\n};\n//#endregion\n//#region src/sql-context.ts\nfunction createSqlExecutionStack(options) {\n\treturn createExecutionStack({\n\t\ttarget: options.target,\n\t\tadapter: options.adapter,\n\t\tdriver: options.driver,\n\t\textensions: options.extensions\n\t});\n}\nfunction assertExecutionStackContractRequirements(contract, stack) {\n\tconst providedComponentIds = /* @__PURE__ */ new Set([\n\t\tstack.target.id,\n\t\tstack.adapter.id,\n\t\t...stack.extensions.map((pack) => pack.id)\n\t]);\n\tconst result = checkContractComponentRequirements({\n\t\tcontract,\n\t\texpectedTargetFamily: \"sql\",\n\t\texpectedTargetId: stack.target.targetId,\n\t\tprovidedComponentIds\n\t});\n\tif (result.familyMismatch) throw runtimeError(\"RUNTIME.CONTRACT_FAMILY_MISMATCH\", `Contract target family '${result.familyMismatch.actual}' does not match runtime family '${result.familyMismatch.expected}'.`, {\n\t\tactual: result.familyMismatch.actual,\n\t\texpected: result.familyMismatch.expected\n\t});\n\tif (result.targetMismatch) throw runtimeError(\"RUNTIME.CONTRACT_TARGET_MISMATCH\", `Contract target '${result.targetMismatch.actual}' does not match runtime target descriptor '${result.targetMismatch.expected}'.`, {\n\t\tactual: result.targetMismatch.actual,\n\t\texpected: result.targetMismatch.expected\n\t});\n\tif (result.missingExtensionPackIds.length > 0) {\n\t\tconst packIds = result.missingExtensionPackIds;\n\t\tthrow runtimeError(\"RUNTIME.MISSING_EXTENSION_PACK\", `Contract requires extension pack(s) ${packIds.map((id) => `'${id}'`).join(\", \")}, but runtime descriptors do not provide matching component(s).`, { packIds });\n\t}\n}\nfunction validateTypeParams(typeParams, descriptor, context) {\n\tconst result = descriptor.paramsSchema[\"~standard\"].validate(typeParams);\n\tif (result instanceof Promise) throw runtimeError(\"RUNTIME.TYPE_PARAMS_INVALID\", `paramsSchema for codec '${descriptor.codecId}' returned a Promise; runtime validation requires a synchronous Standard Schema validator.`, {\n\t\t...context,\n\t\tcodecId: descriptor.codecId,\n\t\ttypeParams\n\t});\n\tif (result.issues) {\n\t\tconst messages = result.issues.map((issue) => issue.message).join(\"; \");\n\t\tthrow runtimeError(\"RUNTIME.TYPE_PARAMS_INVALID\", `Invalid typeParams for column '${context.tableName}.${context.columnName}' (codecId: ${descriptor.codecId}): ${messages}`, {\n\t\t\t...context,\n\t\t\tcodecId: descriptor.codecId,\n\t\t\ttypeParams\n\t\t});\n\t}\n\treturn blindCast(result.value);\n}\n/**\n* Collect every {@link CodecDescriptor} contributed by the SQL stack and partition into \"parameterized\" vs \"non-parameterized\" via the descriptor's own {@link CodecDescriptorImpl.isParameterized} getter: a descriptor is parameterized when it has a `paramsSchema`.\n*\n* The unified descriptor list collapses the legacy split (a separate slot used to register parameterized codecs) — every codec id resolves through the same map (codec-registry-unification spec § Decision).\n*/\nfunction collectCodecDescriptors(contributors) {\n\tconst all = [];\n\tconst parameterized = /* @__PURE__ */ new Map();\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const contributor of contributors) for (const descriptor of contributor.codecs()) {\n\t\tif (seen.has(descriptor.codecId)) throw runtimeError(\"RUNTIME.DUPLICATE_CODEC\", `Duplicate codec descriptor for codecId '${descriptor.codecId}'.`, { codecId: descriptor.codecId });\n\t\tseen.add(descriptor.codecId);\n\t\tall.push(descriptor);\n\t\tif (descriptor.isParameterized) parameterized.set(descriptor.codecId, blindCast(descriptor));\n\t}\n\treturn {\n\t\tall,\n\t\tparameterized\n\t};\n}\n/**\n* Flatten every aggregate descriptor the SQL stack contributes. Shape validation, single-ownership of each `(operation, input)` pair, and trait-overlap resolution all happen inside {@link buildSqlAggregateDescriptorRegistry}, so contributions reach it unchecked and fail there — at composition, never mid-query.\n*/\nfunction collectAggregateDescriptorContributions(contributors) {\n\treturn contributors.flatMap((contributor) => contributor.types?.aggregateDescriptors ?? []);\n}\nfunction validateColumnTypeParams(storage, codecDescriptors) {\n\tfor (const ns of Object.values(storage.namespaces)) for (const [tableName, table] of Object.entries(ns.entries.table ?? {})) for (const [columnName, column] of Object.entries(table.columns)) if (column.typeParams) {\n\t\tconst descriptor = codecDescriptors.get(column.codecId);\n\t\tif (descriptor) validateTypeParams(column.typeParams, descriptor, {\n\t\t\ttableName,\n\t\t\tcolumnName\n\t\t});\n\t}\n}\n/**\n* Build-time contract-integrity check: every `(table, column)` resolves to a {@link CodecRef} whose `codecId` is registered and whose `typeParams` presence matches the descriptor's `isParameterized` flag.\n*\n* Surfaces three classes of malformed contract that AST-bound codec resolution would otherwise mask silently:\n*\n* - column references a codecId no contributor registered → `RUNTIME.CODEC_DESCRIPTOR_MISSING`.\n* - parameterized codec, no `typeParams` (legacy \"tolerate refs without params\" shape) → `RUNTIME.CODEC_PARAMETERIZATION_MISMATCH`.\n* - non-parameterized codec, `typeParams` supplied → `RUNTIME.CODEC_PARAMETERIZATION_MISMATCH`.\n*\n* Runs unconditionally from `createExecutionContext` so contract bugs fail fast at construction time instead of silently skipping affected columns in the codec registry's pre-population walk.\n*/\nfunction assertColumnCodecIntegrity(storage, codecDescriptors) {\n\tfor (const [namespaceId, ns] of Object.entries(storage.namespaces)) for (const [tableName, table] of Object.entries(ns.entries.table ?? {})) for (const columnName of Object.keys(table.columns)) {\n\t\tconst ref = codecDescriptors.codecRefForColumn(namespaceId, tableName, columnName);\n\t\tif (!ref) continue;\n\t\tconst descriptor = codecDescriptors.descriptorFor(ref.codecId);\n\t\tif (!descriptor) throw runtimeError(\"RUNTIME.CODEC_DESCRIPTOR_MISSING\", `Column '${tableName}.${columnName}' references codec '${ref.codecId}' but no contributor registered a codec descriptor for that codecId. Add the extension pack that owns the codec to the runtime stack.`, {\n\t\t\ttable: tableName,\n\t\t\tcolumn: columnName,\n\t\t\tcodecId: ref.codecId\n\t\t});\n\t\tconst paramsSchema = descriptor.paramsSchema;\n\t\tif (paramsSchema !== void 0 && ref.typeParams === void 0) {\n\t\t\tconst probe = paramsSchema[\"~standard\"].validate({});\n\t\t\tif (probe instanceof Promise) {\n\t\t\t\tprobe.catch(() => {});\n\t\t\t\tthrow runtimeError(\"RUNTIME.TYPE_PARAMS_INVALID\", `Column '${tableName}.${columnName}' uses parameterized codec '${ref.codecId}' whose paramsSchema returned a Promise; paramsSchema must be a synchronous Standard Schema validator. Return a value/issues result directly instead of a Promise.`, {\n\t\t\t\t\ttable: tableName,\n\t\t\t\t\tcolumn: columnName,\n\t\t\t\t\tcodecId: ref.codecId\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (\"issues\" in probe && !!probe.issues) throw runtimeError(\"RUNTIME.CODEC_PARAMETERIZATION_MISMATCH\", `Column '${tableName}.${columnName}' uses parameterized codec '${ref.codecId}' but no typeParams are supplied. Provide typeParams on the column.`, {\n\t\t\t\ttable: tableName,\n\t\t\t\tcolumn: columnName,\n\t\t\t\tcodecId: ref.codecId,\n\t\t\t\texpected: \"parameterized\",\n\t\t\t\tactual: \"no typeParams\"\n\t\t\t});\n\t\t}\n\t\tconst refTypeParams = ref.typeParams;\n\t\tconst refHasTypeParamKeys = refTypeParams !== void 0 && refTypeParams !== null && typeof refTypeParams === \"object\" && !Array.isArray(refTypeParams) && Object.keys(refTypeParams).length > 0;\n\t\tif (!descriptor.isParameterized && refHasTypeParamKeys) throw runtimeError(\"RUNTIME.CODEC_PARAMETERIZATION_MISMATCH\", `Column '${tableName}.${columnName}' supplies typeParams to non-parameterized codec '${ref.codecId}'. Remove the typeParams or switch to a parameterized codec id.`, {\n\t\t\ttable: tableName,\n\t\t\tcolumn: columnName,\n\t\t\tcodecId: ref.codecId,\n\t\t\texpected: \"non-parameterized\",\n\t\t\tactual: \"has typeParams\"\n\t\t});\n\t}\n}\n/**\n* Build a {@link ContractCodecRegistry} that resolves codecs exclusively through the `forCodecRef` content-keyed cache.\n*\n* One pre-population pass walks `storage.tables[].columns[]` to seed the resolver's per-ref instance context with the *aggregated* `usedAt` set for each canonical `(codecId, typeParams)` key. The same codec materialised through `forColumn` or `forCodecRef` is therefore one instance with one `SqlCodecInstanceContext` — stateful codecs reading `usedAt` see the full column set regardless of which surface the caller used.\n*\n* Per-key instance-name policy:\n*\n* - columns with `typeParams` use `<col:Table.column>` (the first column observed at that key; additional columns sharing the key extend `usedAt`).\n* - non-parameterized codec ids use `<codec:codecId>`, aggregating every column on that codec id into one `usedAt` set.\n* - ad-hoc refs the contract walk did not pre-populate (e.g. AST-supplied refs from deserialised migration ops) fall back to the canonical cache key `${codecId}:${canonicalizeJson(typeParams)}` — the only structurally honest identity for an ad-hoc ref, distinct per `(codecId, typeParams)`.\n*\n* Contract integrity is enforced upstream by {@link assertColumnCodecIntegrity}: every column must reference a registered `codecId` whose `descriptor.isParameterized` flag matches the presence of `typeParams` (via `codecRefForColumn`). The pre-population walk and `forColumn` therefore make no defensive checks — malformed columns fail fast at `createExecutionContext` construction with `RUNTIME.CODEC_DESCRIPTOR_MISSING` or `RUNTIME.CODEC_PARAMETERIZATION_MISMATCH` rather than being silently skipped here.\n*\n* `forColumn(ns, t, c)` is a thin delegate over `forCodecRef(codecRefForColumn(ns, t, c))`; encode/decode hot paths read the resolver directly via `forCodecRef`. The only `undefined` `forColumn` returns is the legitimate \"no such column in the contract\" case.\n*/\nfunction buildContractCodecRegistry(contract, codecDescriptors) {\n\tconst refKeyOf = (ref) => `${ref.codecId}:${canonicalizeJson(ref.typeParams)}`;\n\tconst usedAtByKey = /* @__PURE__ */ new Map();\n\tconst nameByKey = /* @__PURE__ */ new Map();\n\tfor (const [namespaceId, ns] of Object.entries(contract.storage.namespaces)) for (const [tableName, table] of Object.entries(ns.entries.table ?? {})) for (const columnName of Object.keys(table.columns)) {\n\t\tconst ref = codecDescriptors.codecRefForColumn(namespaceId, tableName, columnName);\n\t\tif (!ref) continue;\n\t\tconst key = refKeyOf(ref);\n\t\tconst site = {\n\t\t\ttable: tableName,\n\t\t\tcolumn: columnName\n\t\t};\n\t\tconst existing = usedAtByKey.get(key);\n\t\tif (existing) existing.push(site);\n\t\telse {\n\t\t\tusedAtByKey.set(key, [site]);\n\t\t\tconst name = ref.typeParams !== void 0 ? `<col:${tableName}.${columnName}>` : `<codec:${ref.codecId}>`;\n\t\t\tnameByKey.set(key, name);\n\t\t}\n\t}\n\tconst resolver = createAstCodecResolver(codecDescriptors, (ref) => {\n\t\tconst key = refKeyOf(ref);\n\t\treturn {\n\t\t\tname: nameByKey.get(key) ?? key,\n\t\t\tusedAt: usedAtByKey.get(key) ?? []\n\t\t};\n\t});\n\tfor (const [namespaceId, ns] of Object.entries(contract.storage.namespaces)) for (const [tableName, table] of Object.entries(ns.entries.table ?? {})) for (const columnName of Object.keys(table.columns)) {\n\t\tconst ref = codecDescriptors.codecRefForColumn(namespaceId, tableName, columnName);\n\t\tif (!ref) continue;\n\t\tresolver.forCodecRef(ref);\n\t}\n\treturn {\n\t\tforColumn(namespaceId, table, column) {\n\t\t\tconst ref = codecDescriptors.codecRefForColumn(namespaceId, table, column);\n\t\t\treturn ref ? resolver.forCodecRef(ref) : void 0;\n\t\t},\n\t\tforCodecRef(ref) {\n\t\t\treturn resolver.forCodecRef(ref);\n\t\t}\n\t};\n}\nfunction createExecutionContext(options) {\n\tconst { stack, driver } = options;\n\tassertExecutionStackContractRequirements(options.contract, stack);\n\tconst capabilityContributors = [\n\t\tstack.target,\n\t\tstack.adapter,\n\t\t...driver ? [driver] : [],\n\t\t...stack.extensions\n\t];\n\tconst mergedCapabilities = mergeCapabilityMatrices(options.contract.capabilities, capabilityContributors);\n\tconst contract = {\n\t\t...options.contract,\n\t\tcapabilities: mergedCapabilities\n\t};\n\tconst contributors = [\n\t\tstack.target,\n\t\tstack.adapter,\n\t\t...stack.extensions\n\t];\n\tconst { all: allCodecDescriptors, parameterized: parameterizedCodecDescriptors } = collectCodecDescriptors(contributors);\n\tconst queryOperationRegistry = createSqlOperationRegistry();\n\tfor (const contributor of contributors) {\n\t\tconst ops = contributor.queryOperations?.() ?? {};\n\t\tfor (const [name, op] of Object.entries(ops)) queryOperationRegistry.register(name, op);\n\t}\n\tconst codecDescriptors = buildCodecDescriptorRegistry(allCodecDescriptors, contract.storage);\n\tassertColumnCodecIntegrity(contract.storage, codecDescriptors);\n\tconst aggregateDescriptors = buildSqlAggregateDescriptorRegistry(collectAggregateDescriptorContributions(contributors), codecDescriptors);\n\tconst mutationDefaultGeneratorRegistry = collectMutationDefaultGenerators(contributors);\n\tassertMutationDefaultGeneratorsAvailable(contract.execution, mutationDefaultGeneratorRegistry);\n\tif (parameterizedCodecDescriptors.size > 0) validateColumnTypeParams(contract.storage, parameterizedCodecDescriptors);\n\treturn {\n\t\tcontract,\n\t\tcontractCodecs: buildContractCodecRegistry(contract, codecDescriptors),\n\t\tcodecDescriptors,\n\t\taggregateDescriptors,\n\t\tqueryOperations: queryOperationRegistry,\n\t\trawCodecInferer: stack.adapter.rawCodecInferer,\n\t\tcollectionMethods: contributors.flatMap((contributor) => contributor.collectionMethods?.() ?? []),\n\t\tapplyMutationDefaults: (options) => applyMutationDefaults(contract.execution, mutationDefaultGeneratorRegistry, options)\n\t};\n}\n//#endregion\n//#region src/codecs/decoding.ts\nconst sqlNativeArrayListDecoder = async (wireValue, decodeElement) => {\n\tif (!Array.isArray(wireValue)) throw new TypeError(`expected an array from the driver for many-typed column, got ${typeof wireValue}`);\n\tconst decoded = [];\n\tfor (const elem of wireValue) decoded.push(await decodeElement(elem));\n\treturn decoded;\n};\nconst WIRE_PREVIEW_LIMIT = 100;\nconst EMPTY_INCLUDE_ALIASES = /* @__PURE__ */ new Set();\nfunction projectionListFromAst(ast) {\n\tif (ast.kind === \"select\") return ast.projection;\n\treturn ast.returning;\n}\nfunction resolveProjectionCodec(item, contractCodecs) {\n\tif (item.codec && contractCodecs) return contractCodecs.forCodecRef(item.codec);\n}\nconst EMPTY_MANY_ALIASES = /* @__PURE__ */ new Set();\nfunction undecodedContext() {\n\treturn {\n\t\taliases: void 0,\n\t\tcodecs: /* @__PURE__ */ new Map(),\n\t\tcolumnRefs: /* @__PURE__ */ new Map(),\n\t\tincludeAliases: EMPTY_INCLUDE_ALIASES,\n\t\tmanyAliases: EMPTY_MANY_ALIASES,\n\t\taliasSource: \"projection\"\n\t};\n}\n/**\n* Decode context for a raw statement: the columns come from the row spec its\n* author declared at the terminator, and each carries the codec that decodes\n* it. A statement that reports an affected-row count declares no columns, so\n* its single stats row passes through undecoded.\n*\n* The spec is the only description of the result — the runtime never parses\n* the SQL — so it is also what a mismatched result set is measured against.\n*/\nfunction rawQueryDecodeContext(ast, contractCodecs) {\n\tif (ast.result.kind === \"affected-count\") return undecodedContext();\n\tconst aliases = [];\n\tconst codecs = /* @__PURE__ */ new Map();\n\tfor (const [name, column] of Object.entries(ast.result.columns)) {\n\t\taliases.push(name);\n\t\tif (contractCodecs) codecs.set(name, contractCodecs.forCodecRef({ codecId: column.codecId }));\n\t}\n\treturn {\n\t\taliases,\n\t\tcodecs,\n\t\tcolumnRefs: /* @__PURE__ */ new Map(),\n\t\tincludeAliases: EMPTY_INCLUDE_ALIASES,\n\t\tmanyAliases: EMPTY_MANY_ALIASES,\n\t\taliasSource: \"row-spec\"\n\t};\n}\nfunction buildDecodeContext(ast, contractCodecs) {\n\tif (ast.kind === \"raw-query\") return rawQueryDecodeContext(ast, contractCodecs);\n\tconst projection = projectionListFromAst(ast);\n\tif (!projection || projection.length === 0) return undecodedContext();\n\tconst aliases = [];\n\tconst codecs = /* @__PURE__ */ new Map();\n\tconst columnRefs = /* @__PURE__ */ new Map();\n\tconst includeAliases = /* @__PURE__ */ new Set();\n\tconst manyAliases = /* @__PURE__ */ new Set();\n\tfor (const item of projection) {\n\t\taliases.push(item.alias);\n\t\tconst codec = resolveProjectionCodec(item, contractCodecs);\n\t\tif (codec) codecs.set(item.alias, codec);\n\t\tif (item.codec?.many) manyAliases.add(item.alias);\n\t\tif (item.expr.kind === \"column-ref\") columnRefs.set(item.alias, {\n\t\t\ttable: item.expr.table,\n\t\t\tcolumn: item.expr.column\n\t\t});\n\t\telse if (item.expr.kind === \"subquery\" || item.expr.kind === \"json-array-agg\") includeAliases.add(item.alias);\n\t}\n\treturn {\n\t\taliases,\n\t\tcodecs,\n\t\tcolumnRefs,\n\t\tincludeAliases,\n\t\tmanyAliases,\n\t\taliasSource: \"projection\"\n\t};\n}\nfunction previewWireValue(wireValue) {\n\tif (typeof wireValue === \"string\") return wireValue.length > WIRE_PREVIEW_LIMIT ? `${wireValue.substring(0, WIRE_PREVIEW_LIMIT)}...` : wireValue;\n\treturn String(wireValue).substring(0, WIRE_PREVIEW_LIMIT);\n}\nfunction wrapDecodeFailure(error, alias, ref, codec, wireValue) {\n\tif (isInternalError(error)) throw error;\n\tconst message = error instanceof Error ? error.message : String(error);\n\tconst wrapped = runtimeError(\"RUNTIME.DECODE_FAILED\", `Failed to decode column ${ref ? `${ref.table}.${ref.column}` : alias} with codec '${codec.id}': ${message}`, {\n\t\t...ref ? {\n\t\t\ttable: ref.table,\n\t\t\tcolumn: ref.column\n\t\t} : { alias },\n\t\tcodec: codec.id,\n\t\twirePreview: previewWireValue(wireValue)\n\t});\n\twrapped.cause = error;\n\tthrow wrapped;\n}\nfunction wrapIncludeAggregateFailure(error, alias, wireValue) {\n\tconst wrapped = runtimeError(\"RUNTIME.DECODE_FAILED\", `Failed to parse JSON array for include alias '${alias}': ${error instanceof Error ? error.message : String(error)}`, {\n\t\talias,\n\t\twirePreview: previewWireValue(wireValue)\n\t});\n\twrapped.cause = error;\n\tthrow wrapped;\n}\nfunction decodeIncludeAggregate(alias, wireValue) {\n\tif (wireValue === null || wireValue === void 0) return [];\n\ttry {\n\t\tif (typeof wireValue === \"string\") return JSON.parse(wireValue);\n\t\tif (typeof wireValue === \"object\") return blindCast(wireValue);\n\t\treturn JSON.parse(String(wireValue));\n\t} catch (error) {\n\t\twrapIncludeAggregateFailure(error, alias, wireValue);\n\t}\n}\n/**\n* Decodes a single field. Single-armed: every cell takes the same path — `codec.decode → await → return plain value` — so sync- and async-authored codecs are indistinguishable to callers. JSON-Schema validation, when required, lives inside the resolved codec's `decode` body (e.g. `arktype-json` validates against its rehydrated schema and throws `RUNTIME.JSON_SCHEMA_VALIDATION_FAILED` from `decode` directly); there is\n* no separate validator-registry pass.\n*\n* The row-level `rowCtx` is repackaged into a per-cell `SqlCodecCallContext` whose `column = { table, name }` is a structural projection of the per-cell `ColumnRef = { table, column }` resolved from the AST-backed `DecodeContext` (the same resolution `wrapDecodeFailure` uses for envelope construction — one resolution per cell, two consumers). Cells the runtime cannot resolve to a single underlying column (aggregate\n* aliases, computed projections without a simple ref) get `column: undefined`, matching the spec contract that the runtime never silently defaults this field.\n*\n* For `many`-flagged aliases this function delegates frame traversal to the selected `ListDecoder`, passing `null` elements through unchanged and mapping the same element codec over every non-null element. SQL runtimes without a target-owned contribution select `sqlNativeArrayListDecoder` explicitly before row decoding. Element-level failures surface through the existing `RUNTIME.DECODE_FAILED` envelope with the column/codec context from the parent cell.\n*/\nasync function decodeField(alias, wireValue, decodeCtx, rowCtx, listDecoder) {\n\tif (wireValue === null) return null;\n\tconst codec = decodeCtx.codecs.get(alias);\n\tif (!codec) return wireValue;\n\tconst ref = decodeCtx.columnRefs.get(alias);\n\tlet cellCtx;\n\tif (ref) cellCtx = {\n\t\t...rowCtx,\n\t\tcolumn: {\n\t\t\ttable: ref.table,\n\t\t\tname: ref.column\n\t\t}\n\t};\n\telse {\n\t\tconst { column: _drop, ...rowCtxWithoutColumn } = rowCtx;\n\t\tcellCtx = rowCtxWithoutColumn;\n\t}\n\tconst decodeElement = async (elem) => {\n\t\tif (elem === null || elem === void 0) return null;\n\t\ttry {\n\t\t\treturn await codec.fromWire(elem, cellCtx);\n\t\t} catch (error) {\n\t\t\tif (isStructuredError(error)) throw error;\n\t\t\twrapDecodeFailure(error, alias, ref, codec, elem);\n\t\t}\n\t};\n\tif (decodeCtx.manyAliases.has(alias)) try {\n\t\treturn await listDecoder(wireValue, decodeElement);\n\t} catch (error) {\n\t\tif (isStructuredError(error)) throw error;\n\t\twrapDecodeFailure(error, alias, ref, codec, wireValue);\n\t}\n\ttry {\n\t\treturn await codec.fromWire(wireValue, cellCtx);\n\t} catch (error) {\n\t\tif (isStructuredError(error)) throw error;\n\t\twrapDecodeFailure(error, alias, ref, codec, wireValue);\n\t}\n}\n/**\n* Decodes a row by dispatching all per-cell codec calls concurrently via `Promise.all`. Each cell follows the single-armed `decodeField` path. Structured envelopes thrown by codec bodies (anything passing `isStructuredError`) and an `InternalError` pass through unchanged; all other failures are wrapped in `RUNTIME.DECODE_FAILED` with `{ table, column, codec }` (or `{ alias, codec }` when no column ref is resolvable) and the original error attached on `cause`.\n*\n* When `rowCtx.signal` is provided:\n*\n* - **Already-aborted at entry** short-circuits with `RUNTIME.ABORTED` (`{ phase: 'decode' }`) before any `codec.decode` call is made.\n* - **Mid-flight aborts** race the per-cell `Promise.all` against the signal so the runtime returns promptly even when codec bodies ignore it. In-flight bodies that ignore the signal complete in the background (cooperative cancellation).\n* - Existing structured envelopes (any dotted-code error passing `isStructuredError`, e.g. `RUNTIME.DECODE_FAILED`) from codec bodies pass through unchanged (no double wrap).\n*/\nasync function decodeRow(row, decodeCtx, rowCtx, listDecoder) {\n\tcheckAborted(rowCtx, \"decode\");\n\tconst signal = rowCtx.signal;\n\tconst aliases = decodeCtx.aliases ?? Object.keys(row);\n\tif (decodeCtx.aliases !== void 0) {\n\t\tfor (const alias of decodeCtx.aliases) if (!Object.hasOwn(row, alias)) throw decodeCtx.aliasSource === \"row-spec\" ? runtimeError(\"RUNTIME.RAW_ROW_COLUMN_MISSING\", `Raw statement result has no column \"${alias}\", which its row spec declares`, {\n\t\t\tcolumn: alias,\n\t\t\tdeclaredColumns: decodeCtx.aliases,\n\t\t\tresultColumns: Object.keys(row)\n\t\t}) : runtimeError(\"RUNTIME.DECODE_FAILED\", `Row missing projection alias \"${alias}\"`, {\n\t\t\talias,\n\t\t\texpectedAliases: decodeCtx.aliases,\n\t\t\tpresentKeys: Object.keys(row)\n\t\t});\n\t}\n\tconst tasks = [];\n\tconst includeIndices = [];\n\tfor (let i = 0; i < aliases.length; i++) {\n\t\tconst alias = blindCast(aliases[i]);\n\t\tconst wireValue = row[alias];\n\t\tif (decodeCtx.includeAliases.has(alias)) {\n\t\t\tincludeIndices.push({\n\t\t\t\tindex: i,\n\t\t\t\talias,\n\t\t\t\tvalue: wireValue\n\t\t\t});\n\t\t\ttasks.push(Promise.resolve(void 0));\n\t\t\tcontinue;\n\t\t}\n\t\ttasks.push(decodeField(alias, wireValue, decodeCtx, rowCtx, listDecoder));\n\t}\n\tconst settled = await raceAgainstAbort(Promise.all(tasks), signal, \"decode\");\n\tfor (const entry of includeIndices) settled[entry.index] = decodeIncludeAggregate(entry.alias, entry.value);\n\tconst decoded = {};\n\tfor (let i = 0; i < aliases.length; i++) {\n\t\tconst alias = blindCast(aliases[i]);\n\t\tdecoded[alias] = settled[i];\n\t}\n\treturn decoded;\n}\n//#endregion\n//#region src/content-hash.ts\n/**\n* Computes a stable content hash for a lowered SQL execution plan.\n*\n* Internally builds an unambiguous canonical-stringified preimage from\n* three components:\n*\n* 1. `meta.storageHash` — discriminates by schema. A migration changes the\n* storage hash, which invalidates cached entries automatically.\n* 2. `exec.sql` — the raw lowered SQL text. Two queries with different\n* structure produce different keys. Note that we deliberately do **not**\n* use `computeSqlFingerprint` here: that helper strips literals to group\n* executions by statement shape (used by telemetry), which is the\n* opposite of what a content hash needs — we want per-execution\n* discrimination, not per-statement-shape grouping.\n* 3. `exec.params` — the bound parameters. `canonicalStringify` produces a\n* deterministic serialization that is stable across object key\n* insertion order and that distinguishes types JSON would otherwise\n* conflate (e.g. `BigInt(1)` vs `1`).\n*\n* The components are wrapped in an object and canonicalized as a single\n* unit (rather than concatenated with a delimiter) so component\n* boundaries are unambiguous: any character appearing inside `sql` or\n* `storageHash` cannot bleed across components and produce a collision\n* with a different split of the same characters.\n*\n* The canonical string is then piped through `hashContent` to produce a\n* bounded, opaque digest. See `@internal/utils/hash-content` for the\n* rationale.\n*\n* @internal\n*/\nfunction computeSqlContentHash(exec) {\n\treturn hashContent(canonicalStringify({\n\t\tstorageHash: exec.meta.storageHash,\n\t\tsql: exec.sql,\n\t\tparams: exec.params\n\t}));\n}\n//#endregion\n//#region src/fingerprint.ts\nconst STRING_LITERAL_REGEX = /'(?:''|[^'])*'/g;\nconst NUMERIC_LITERAL_REGEX = /\\b\\d+(?:\\.\\d+)?\\b/g;\nconst WHITESPACE_REGEX = /\\s+/g;\n/**\n* Computes a literal-stripped, normalized fingerprint of a SQL statement.\n*\n* The function strips string and numeric literals, collapses whitespace, and\n* lowercases the result before hashing — so two structurally equivalent\n* statements (with different parameter values) produce the same fingerprint.\n* Used by SQL telemetry to group queries.\n*/\nfunction computeSqlFingerprint(sql) {\n\tconst normalized = sql.replace(STRING_LITERAL_REGEX, \"?\").replace(NUMERIC_LITERAL_REGEX, \"?\").replace(WHITESPACE_REGEX, \" \").trim().toLowerCase();\n\treturn createHash(\"sha256\").update(normalized).digest(\"hex\");\n}\n//#endregion\n//#region src/in-flight-operations.ts\nvar InFlightOperations = class {\n\t#count = 0;\n\t#started = 0;\n\t#drainWaiters = [];\n\t/** Records one operation as in flight; the returned callback ends it and ignores later calls. */\n\tbegin() {\n\t\tthis.#count += 1;\n\t\tthis.#started += 1;\n\t\tlet ended = false;\n\t\treturn () => {\n\t\t\tif (ended) return;\n\t\t\tended = true;\n\t\t\tthis.#count -= 1;\n\t\t\tif (this.#count === 0) for (const wake of this.#drainWaiters.splice(0)) wake();\n\t\t};\n\t}\n\t/** How many operations have begun so far; a change between two reads means work started in between. */\n\tget started() {\n\t\treturn this.#started;\n\t}\n\t/** How many operations are in flight. */\n\tget count() {\n\t\treturn this.#count;\n\t}\n\tget active() {\n\t\treturn this.#count > 0;\n\t}\n\tdrained() {\n\t\tif (this.#count === 0) return Promise.resolve();\n\t\treturn new Promise((resolve) => this.#drainWaiters.push(resolve));\n\t}\n\t/** Records `work` as in flight until it settles. */\n\tasync track(work) {\n\t\tconst end = this.begin();\n\t\ttry {\n\t\t\treturn await work();\n\t\t} finally {\n\t\t\tend();\n\t\t}\n\t}\n};\n//#endregion\n//#region src/middleware/before-compile-chain.ts\nasync function runBeforeCompileChain(middleware, initial, ctx) {\n\tlet current = initial;\n\tfor (const mw of middleware) {\n\t\tif (!mw.beforeCompile) continue;\n\t\tconst result = await mw.beforeCompile(current, ctx);\n\t\tif (result === void 0) continue;\n\t\tif (result.ast === current.ast) continue;\n\t\tctx.log.debug?.({\n\t\t\tevent: \"middleware.rewrite\",\n\t\t\tmiddleware: mw.name,\n\t\t\tlane: current.meta.lane\n\t\t});\n\t\tcurrent = result;\n\t}\n\treturn current;\n}\n//#endregion\n//#region src/owned-transaction.ts\n/**\n* Begins a transaction on a connection the transaction owns. The connection is released once the transaction has committed or rolled back, and destroyed after a failed rollback or a failed start other than a refusal before `BEGIN`. After a failed commit it stays held for the rollback that follows. A release that fails after the transaction settled is passed to `log.error`, and `commit()` or `rollback()` keeps its own outcome.\n*/\nasync function beginOwnedTransaction(connection, begin, log) {\n\tlet transaction;\n\ttry {\n\t\ttransaction = await begin();\n\t} catch (error) {\n\t\tif (wasRefusedBeforeBegin(connection)) await connection.release().catch(() => void 0);\n\t\telse await connection.destroy(error).catch(() => void 0);\n\t\tthrow error;\n\t}\n\tlet disposed = false;\n\tconst dispose = async (destroyReason) => {\n\t\tif (disposed) return;\n\t\tdisposed = true;\n\t\tif (destroyReason !== void 0) {\n\t\t\tawait connection.destroy(destroyReason.reason).catch(() => void 0);\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tawait connection.release();\n\t\t} catch (error) {\n\t\t\ttry {\n\t\t\t\tlog.error({\n\t\t\t\t\tevent: \"runtime.connection.release.error\",\n\t\t\t\t\terror\n\t\t\t\t});\n\t\t\t} catch {}\n\t\t}\n\t};\n\treturn Object.assign(castAs(Object.create(transaction)), {\n\t\tasync commit() {\n\t\t\ttry {\n\t\t\t\tawait transaction.commit();\n\t\t\t} catch (error) {\n\t\t\t\tif (settlementOf(transaction)?.committed === true) await dispose();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tawait dispose();\n\t\t},\n\t\tasync rollback() {\n\t\t\ttry {\n\t\t\t\tawait transaction.rollback();\n\t\t\t} catch (error) {\n\t\t\t\tconst settlement = settlementOf(transaction);\n\t\t\t\tconst settled = settlement?.rolledBack === true || settlement?.committed === true;\n\t\t\t\tawait dispose(settled ? void 0 : { reason: error });\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tawait dispose();\n\t\t}\n\t});\n}\n//#endregion\n//#region src/prepared/bind-site-params.ts\nfunction normalizeSpec(spec) {\n\tif (typeof spec === \"string\") return {\n\t\tcodec: { codecId: spec },\n\t\tnullable: false\n\t};\n\treturn {\n\t\tcodec: spec.typeParams !== void 0 ? {\n\t\t\tcodecId: spec.codecId,\n\t\t\ttypeParams: spec.typeParams\n\t\t} : { codecId: spec.codecId },\n\t\tnullable: spec.nullable === true\n\t};\n}\nvar BindSiteExpression = class {\n\treturnType;\n\t#ast;\n\tconstructor(ref, returnType) {\n\t\tthis.#ast = ref;\n\t\tthis.returnType = returnType;\n\t}\n\tbuildAst() {\n\t\treturn this.#ast;\n\t}\n};\nfunction buildBindSiteParams(declaration) {\n\tconst params = {};\n\tfor (const [name, spec] of Object.entries(declaration)) {\n\t\tconst { codec, nullable } = normalizeSpec(spec);\n\t\tparams[name] = new BindSiteExpression(PreparedParamRef.of(name, codec, nullable), {\n\t\t\tcodecId: codec.codecId,\n\t\t\tnullable\n\t\t});\n\t}\n\treturn blindCast(Object.freeze(params));\n}\n//#endregion\n//#region src/prepared/encode-prepared.ts\n/**\n* Resolve a PreparedStatement's slot order to the unencoded values it\n* will carry into encode. Literal slots come from the lowered AST;\n* bind slots are looked up by name on `userParams`. Missing user params\n* surface `RUNTIME.PREPARE_MISSING_PARAM` so the caller cannot silently\n* bind `undefined`.\n*/\nfunction isRecord(value) {\n\treturn typeof value === \"object\" && value !== null;\n}\nfunction resolvePreparedSlotValues(ps, userParams) {\n\tif (!isRecord(userParams)) throw runtimeError(\"RUNTIME.PREPARE_MISSING_PARAM\", \"Prepared statement parameters must be an object\");\n\treturn ps.slots.map((slot) => {\n\t\tif (slot.kind === \"literal\") return slot.value;\n\t\tif (!Object.hasOwn(userParams, slot.name)) throw runtimeError(\"RUNTIME.PREPARE_MISSING_PARAM\", `Prepared statement query is missing parameter '${slot.name}'`, { name: slot.name });\n\t\treturn userParams[slot.name];\n\t});\n}\nasync function encodePreparedParams(ps, userParams, ctx, contractCodecs) {\n\treturn encodeParamsWithMetadata(resolvePreparedSlotValues(ps, userParams), ps.paramMetadata, ctx, contractCodecs);\n}\n//#endregion\n//#region src/sql-family-adapter.ts\nvar SqlFamilyAdapter = class {\n\tcontract;\n\tmarkerReader;\n\tconstructor(contract, adapterProfile) {\n\t\tthis.contract = contract;\n\t\tthis.markerReader = adapterProfile;\n\t}\n\tvalidatePlan(plan, contract) {\n\t\tvalidateSqlPlan(plan, contract);\n\t}\n};\n/** Rejects a plan built for another target or contract: `PLAN.TARGET_MISMATCH` or `PLAN.HASH_MISMATCH`. */\nfunction validateSqlPlan(plan, contract) {\n\tif (plan.meta.target !== contract.target) throw runtimeError(\"PLAN.TARGET_MISMATCH\", \"The plan was built for another target than the contract\", {\n\t\tplanTarget: plan.meta.target,\n\t\tcontractTarget: contract.target\n\t});\n\tif (plan.meta.storageHash !== contract.storage.storageHash) throw runtimeError(\"PLAN.HASH_MISMATCH\", \"The plan was built for another contract\", {\n\t\tplanStorageHash: plan.meta.storageHash,\n\t\tcontractStorageHash: contract.storage.storageHash\n\t});\n}\n//#endregion\n//#region src/sql-runtime.ts\nfunction isExecutionPlan(plan) {\n\treturn \"sql\" in plan;\n}\nfunction isBoundPreparedStatement(subject) {\n\treturn \"statement\" in subject;\n}\nfunction isPreparedStatementInternals(statement) {\n\treturn statement instanceof PreparedStatementImpl || statement instanceof PreparedExecutionImpl;\n}\n// v8 ignore next 2\nconst noopLogSink = () => {};\nconst noopLog = {\n\tinfo: noopLogSink,\n\twarn: noopLogSink,\n\terror: noopLogSink\n};\nconst scheduleTimer = globalThis.setTimeout;\nfunction runtimeClosedError() {\n\treturn structuredError(\"DRIVER.NOT_CONNECTED\", \"Runtime is closed\", {\n\t\twhy: \"close() was called on this runtime, or on the client or connection that owns it. An await using scope calls close() when it ends.\",\n\t\tfix: \"Await every query, transaction and prepared statement before close(). The usual cause is a query returned without await from an await using scope.\"\n\t});\n}\n/**\n* Abstract family-layer base for SQL runtimes. Subclass to build a target runtime\n* (e.g. `PostgresRuntimeImpl`); app code should consume the `Runtime` interface returned\n* by the target factories, never this class directly.\n*/\nvar SqlRuntimeBase = class extends RuntimeCore {\n\tcontract;\n\tadapter;\n\tdriver;\n\tfamilyAdapter;\n\tcontractCodecs;\n\tcodecDescriptors;\n\tsqlCtx;\n\tverifyMarkerOption;\n\tverifyMarkerPromise;\n\tclosePromise;\n\tcloseRefusal;\n\t#inFlight = new InFlightOperations();\n\t#openActivityHandles = 0;\n\t#refusing = false;\n\t#heldQueryables = /* @__PURE__ */ new WeakSet();\n\t#preparedStatementHandles = /* @__PURE__ */ new WeakMap();\n\t#holdFinishedChildren;\n\t#openTransactions = /* @__PURE__ */ new WeakMap();\n\tcodecRegistryValidated;\n\t_telemetry;\n\tconstructor(options) {\n\t\tconst { context, adapter, driver, verifyMarker, middleware, mode, log, closeRefusal } = options;\n\t\tif (middleware) for (const mw of middleware) checkMiddlewareCompatibility(mw, \"sql\", context.contract.target);\n\t\tconst sqlCtx = {\n\t\t\tcontract: context.contract,\n\t\t\tmode: mode ?? \"strict\",\n\t\t\tnow: () => Date.now(),\n\t\t\tlog: log ?? noopLog,\n\t\t\tcontentHash: (exec) => computeSqlContentHash(blindCast(exec)),\n\t\t\tscope: \"runtime\"\n\t\t};\n\t\tsuper({\n\t\t\tmiddleware: middleware ?? [],\n\t\t\tctx: sqlCtx\n\t\t});\n\t\tthis.#holdFinishedChildren = this.middleware.some((mw) => mw.activityFinalized !== void 0);\n\t\tthis.contract = context.contract;\n\t\tthis.adapter = adapter;\n\t\tthis.driver = driver;\n\t\tthis.familyAdapter = new SqlFamilyAdapter(context.contract, adapter.profile);\n\t\tthis.contractCodecs = context.contractCodecs;\n\t\tthis.codecDescriptors = context.codecDescriptors;\n\t\tthis.sqlCtx = sqlCtx;\n\t\tthis.verifyMarkerOption = verifyMarker ?? \"onFirstUse\";\n\t\tthis.closeRefusal = closeRefusal ?? \"when-idle\";\n\t\tthis.codecRegistryValidated = false;\n\t\tthis.verifyMarkerPromise = this.verifyMarkerOption === false ? Promise.resolve() : null;\n\t\tthis.closePromise = null;\n\t\tthis._telemetry = null;\n\t}\n\t/**\n\t* Lower a `SqlQueryPlan` (AST + meta) into a `SqlExecutionPlan`\n\t* with encoded parameters ready for the driver.\n\t*\n\t* Implementation note: SQL splits lower-then-encode across\n\t* {@link lowerToDraft} + {@link encodeDraftParams} so the selected\n\t* operation's middleware chain can run between them:\n\t* {@link prepareOperation} runs the statement's `beforeEncode` chain\n\t* between them (cipherstash bulk-encrypt, for example, mutates pre-encode\n\t* `ParamRef.value` slots). This protected hook composes the two back into\n\t* the cross-family `lower()` shape `RuntimeCore` expects. The production\n\t* operation methods use the matching split form before driver execution.\n\t*\n\t* `ctx: SqlCodecCallContext` is forwarded to `encodeParams` so\n\t* per-query cancellation reaches every codec body during parameter\n\t* encoding. SQL params do not populate `ctx.column` — encode-side\n\t* column metadata is the middleware's domain.\n\t*/\n\tasync lower(plan, ctx) {\n\t\tconst draft = this.lowerToDraft(plan);\n\t\treturn await this.encodeDraftParams(draft, ctx);\n\t}\n\t/**\n\t* AST → pre-encode draft for the selected `query()` or `execute()` operation.\n\t* The returned plan has `sql` rendered and `params` populated with the\n\t* user-domain values the lowering site collected from `ParamRef` nodes. No\n\t* codec encode has happened yet; consumers can mutate `params` via the\n\t* `SqlParamRefMutator` before {@link encodeDraftParams} runs.\n\t*/\n\tlowerToDraft(plan) {\n\t\treturn lowerSqlPlan(this.adapter, this.contract, plan);\n\t}\n\t/**\n\t* Encode a draft plan's params for the selected `query()` or `execute()`\n\t* operation through the per-column codecs and freeze the result into the\n\t* final `SqlExecutionPlan` the driver sees. Errors surface as\n\t* `RUNTIME.ENCODE_FAILED` envelopes from {@link encodeParams}.\n\t*/\n\tasync encodeDraftParams(draft, ctx) {\n\t\treturn Object.freeze({\n\t\t\t...draft,\n\t\t\tparams: await encodeParams(draft, ctx, this.contractCodecs)\n\t\t});\n\t}\n\t/** Default query invocation required by the abstract `RuntimeCore` contract. */\n\t// v8 ignore next 6\n\trunDriver(exec) {\n\t\treturn this.driver.query({\n\t\t\tsql: exec.sql,\n\t\t\tparams: exec.params\n\t\t});\n\t}\n\trunExecute(exec) {\n\t\treturn this.driver.execute({\n\t\t\tsql: exec.sql,\n\t\t\tparams: exec.params\n\t\t});\n\t}\n\t/**\n\t* Runs the registered middleware `beforeCompile` chain over the plan's draft (AST + meta). Returns the original plan unchanged when no middleware rewrote the AST; otherwise returns a new plan carrying the rewritten AST and meta. The lowering adapter and the encoder both walk the rewritten AST directly.\n\t*/\n\tasync compilePlan(plan, middlewareCtx) {\n\t\tconst rewrittenDraft = await runBeforeCompileChain(this.middleware, {\n\t\t\tast: plan.ast,\n\t\t\tmeta: plan.meta\n\t\t}, middlewareCtx);\n\t\treturn rewrittenDraft.ast === plan.ast ? plan : {\n\t\t\t...plan,\n\t\t\tast: rewrittenDraft.ast,\n\t\t\tmeta: rewrittenDraft.meta\n\t\t};\n\t}\n\tquery(plan, options) {\n\t\treturn this.queryAgainstQueryable(plan, this.driver, options);\n\t}\n\texecute(plan, options) {\n\t\treturn this.executeStatisticsAgainstQueryable(plan, this.driver, options);\n\t}\n\t[preparedStatementQuery](ps, params, options) {\n\t\treturn this.runPreparedQueryAgainstQueryable(blindCast(ps), params, this.driver, options);\n\t}\n\t[preparedStatementExecute](ps, params, options) {\n\t\treturn this.runPreparedExecuteAgainstQueryable(blindCast(ps), params, this.driver, options);\n\t}\n\t#runtimeRoute;\n\t[activitySource] = {\n\t\tstartActivity: (activity) => {\n\t\t\tthis.#runtimeRoute ??= this.queryableRoute(this.driver, \"runtime\", () => void 0, {\n\t\t\t\ttransaction: (parent) => this.beginOwnedTransactionBeneath(parent),\n\t\t\t\truntimeWork: true\n\t\t\t});\n\t\t\treturn this.startActivityOnRoute(this.#runtimeRoute, activity, void 0);\n\t\t},\n\t\tplanContentHash: (plan) => this.planContentHashFor(plan, \"runtime\", void 0)\n\t};\n\t/**\n\t* Starts a client activity whose statements and transaction run on `route`, beneath `parent` or, without one, beneath `route.parent()`.\n\t*/\n\tstartActivityOnRoute(route, activity, parent) {\n\t\tlet endWork = noWork;\n\t\tlet started;\n\t\ttry {\n\t\t\tendWork = route.runtimeWork ? this.beginActivityWork(parent) : noWork;\n\t\t\tstarted = startClientActivity(activity, {\n\t\t\t\tmiddleware: this.middleware,\n\t\t\t\tcontext: route.scope === \"runtime\" ? this.sqlCtx : {\n\t\t\t\t\t...this.sqlCtx,\n\t\t\t\t\tscope: route.scope\n\t\t\t\t},\n\t\t\t\tparent: parent ?? route.parent(),\n\t\t\t\tholdFinishedChildren: this.#holdFinishedChildren\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tendWork();\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t\treturn started.then((run) => this.activityHandle(run, route, endWork), (error) => {\n\t\t\tendWork();\n\t\t\tthrow error;\n\t\t});\n\t}\n\t/** The content hash of the statement `plan` would send on a queryable of `scope` beneath `parent`. */\n\tasync planContentHashFor(plan, scope, parent) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tif (isBoundPreparedStatement(plan)) {\n\t\t\tconst { statement, params } = plan;\n\t\t\tinvariant(isPreparedStatementInternals(statement), \"The prepared statement was not prepared by a SQL runtime\");\n\t\t\treturn computeSqlContentHash({\n\t\t\t\tsql: statement.sql,\n\t\t\t\tast: statement.ast,\n\t\t\t\tmeta: statement.meta,\n\t\t\t\tparams: await encodePreparedParams(statement, params, {}, this.contractCodecs)\n\t\t\t});\n\t\t}\n\t\tif (isExecutionPlan(plan)) return computeSqlContentHash(Object.freeze({\n\t\t\t...plan,\n\t\t\tparams: await encodeParams(plan, {}, this.contractCodecs)\n\t\t}));\n\t\tconst compiled = await this.compilePlan(plan, createContextBeneath({\n\t\t\t...this.sqlCtx,\n\t\t\tscope\n\t\t}, parent));\n\t\treturn computeSqlContentHash(await this.encodeDraftParams(this.lowerToDraft(compiled), {}));\n\t}\n\t/** An activity route whose statements run on `queryable`. */\n\tqueryableRoute(queryable, scope, parent, options) {\n\t\treturn {\n\t\t\tscope,\n\t\t\tparent,\n\t\t\t...options,\n\t\t\tquery: (plan, executeOptions) => this.queryAgainstQueryable(plan, queryable, {\n\t\t\t\t...executeOptions,\n\t\t\t\tscope\n\t\t\t}),\n\t\t\texecute: (plan, executeOptions) => this.executeStatisticsAgainstQueryable(plan, queryable, {\n\t\t\t\t...executeOptions,\n\t\t\t\tscope\n\t\t\t}),\n\t\t\tpreparedQuery: (statement, params, executeOptions) => this.runPreparedQueryAgainstQueryable(statement, params, queryable, {\n\t\t\t\t...executeOptions,\n\t\t\t\tscope\n\t\t\t}),\n\t\t\tpreparedExecute: (statement, params, executeOptions) => this.runPreparedExecuteAgainstQueryable(statement, params, queryable, {\n\t\t\t\t...executeOptions,\n\t\t\t\tscope\n\t\t\t})\n\t\t};\n\t}\n\t/** The activity route of a held connection that `owner` wraps: its statements run on `connection`, and its transactions begin there. */\n\tconnectionRoute(connection, owner) {\n\t\tconst openTransaction = this.#openTransactions.get(connection);\n\t\treturn this.queryableRoute(connection, \"connection\", () => openTransaction, {\n\t\t\ttransaction: openTransaction === void 0 ? (parent) => this.beginTransactionBeneathOn(connection, owner, parent) : void 0,\n\t\t\truntimeWork: false\n\t\t});\n\t}\n\tbeginTransactionBeneathOn(connection, owner, parent) {\n\t\tconst openTransaction = this.#openTransactions.get(connection);\n\t\tif (openTransaction !== void 0) return Promise.reject(transactionAlreadyOpenError(parent, openTransaction));\n\t\treturn this.beginTransactionOn(connection, owner, parent);\n\t}\n\t/** The `activitySource` member of a held connection that `owner()` wraps. */\n\tconnectionActivitySource(connection, owner) {\n\t\treturn {\n\t\t\tstartActivity: (activity) => this.startActivityOnRoute(this.connectionRoute(connection, owner()), activity, void 0),\n\t\t\tplanContentHash: (plan) => this.planContentHashFor(plan, \"connection\", this.#openTransactions.get(connection))\n\t\t};\n\t}\n\tactivityHandle(run, route, endWork) {\n\t\tconst beneath = (options) => ({\n\t\t\t...options,\n\t\t\tactivityParent: run\n\t\t});\n\t\tconst source = {\n\t\t\tstartActivity: (activity) => {\n\t\t\t\ttry {\n\t\t\t\t\trun.assertAcceptsChildren();\n\t\t\t\t} catch (error) {\n\t\t\t\t\treturn Promise.reject(error);\n\t\t\t\t}\n\t\t\t\treturn this.startActivityOnRoute(route, activity, run);\n\t\t\t},\n\t\t\tplanContentHash: (plan) => this.planContentHashFor(plan, route.scope, run)\n\t\t};\n\t\tconst handle = {\n\t\t\t[activitySource]: source,\n\t\t\tstartActivity: source.startActivity,\n\t\t\tplanContentHash: source.planContentHash,\n\t\t\tactivity: run.activity,\n\t\t\tget intercepted() {\n\t\t\t\treturn run.intercepted;\n\t\t\t},\n\t\t\tquery(plan, options) {\n\t\t\t\treturn rowsBeneath(run, () => route.query(plan, beneath(options)));\n\t\t\t},\n\t\t\tasync execute(plan, options) {\n\t\t\t\trun.assertAcceptsChildren();\n\t\t\t\treturn route.execute(plan, beneath(options));\n\t\t\t},\n\t\t\t[preparedStatementQuery](ps, params, options) {\n\t\t\t\treturn rowsBeneath(run, () => route.preparedQuery(blindCast(ps), params, beneath(options)));\n\t\t\t},\n\t\t\tasync [preparedStatementExecute](ps, params, options) {\n\t\t\t\trun.assertAcceptsChildren();\n\t\t\t\treturn route.preparedExecute(blindCast(ps), params, beneath(options));\n\t\t\t},\n\t\t\tend(end) {\n\t\t\t\tlet ending;\n\t\t\t\ttry {\n\t\t\t\t\tending = run.end(end);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tendWork();\n\t\t\t\t\treturn Promise.reject(error);\n\t\t\t\t}\n\t\t\t\treturn ending.then(endWork, (error) => {\n\t\t\t\t\tendWork();\n\t\t\t\t\tthrow error;\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t\tconst beginTransaction = route.transaction;\n\t\tif (beginTransaction === void 0) return handle;\n\t\treturn Object.assign(handle, { transaction: async () => {\n\t\t\trun.assertAcceptsChildren();\n\t\t\treturn beginTransaction(run);\n\t\t} });\n\t}\n\tasync beginOwnedTransactionBeneath(parent) {\n\t\tconst { driverConnection, connection } = await this.openConnection({ activityParent: parent });\n\t\treturn this.ownTransaction(connection, () => this.beginTransactionOn(driverConnection, connection, parent));\n\t}\n\t/** Begins a transaction with `begin` on a connection the transaction owns; see `beginOwnedTransaction`. */\n\townTransaction(connection, begin) {\n\t\treturn beginOwnedTransaction(connection, begin, this.sqlCtx.log);\n\t}\n\t/**\n\t* Returns the raw driver connection. The connection is a `SqlQueryable` — SQL\n\t* issued on it runs below the middleware/codec/telemetry pipeline. It carries\n\t* its own lifecycle (`release`/`destroy`/`beginTransaction`); the caller owns\n\t* disposal.\n\t*/\n\tacquireRawConnection() {\n\t\treturn this.driver.acquireConnection();\n\t}\n\tasync setupDriverExecution(exec, queryable) {\n\t\tthis.familyAdapter.validatePlan(exec, this.contract);\n\t\tthis._telemetry = null;\n\t\tif (this.verifyMarkerPromise === null) {\n\t\t\tconst markerQueryable = this.#heldQueryables.has(queryable) ? queryable : this.driver;\n\t\t\tthis.verifyMarkerPromise = this.verifyMarker(markerQueryable).catch((error) => {\n\t\t\t\tthis.verifyMarkerPromise = null;\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}\n\t\tawait this.verifyMarkerPromise;\n\t}\n\tbeginActivityWork(parent) {\n\t\tconst endOperation = this.beginOperation(this.driver, { activityParent: parent });\n\t\tthis.#openActivityHandles++;\n\t\tlet ended = false;\n\t\treturn () => {\n\t\t\tif (ended) return;\n\t\t\tended = true;\n\t\t\tthis.#openActivityHandles--;\n\t\t\tendOperation();\n\t\t};\n\t}\n\twarnWhenWaitingOnlyForActivities(warned) {\n\t\tif (warned.done || this.#openActivityHandles === 0) return;\n\t\tif (this.#inFlight.count !== this.#openActivityHandles) return;\n\t\twarned.done = true;\n\t\tthis.sqlCtx.log.warn({\n\t\t\tevent: \"runtime.close.waiting-for-activities\",\n\t\t\topenActivities: this.#openActivityHandles\n\t\t});\n\t}\n\tbeginOperation(queryable, options) {\n\t\tif (queryable === this.driver && this.#refusing && options?.activityParent === void 0) throw runtimeClosedError();\n\t\treturn this.#inFlight.begin();\n\t}\n\tparentOf(queryable, options) {\n\t\tconst openTransaction = this.#openTransactions.get(queryable);\n\t\tconst activityParent = options?.activityParent;\n\t\tif (activityParent === void 0) return openTransaction;\n\t\tif (openTransaction !== void 0 && !activityParent.ctx.inTransaction()) throw activityOutsideTransactionError(activityParent, openTransaction);\n\t\treturn activityParent;\n\t}\n\tgetListDecoder() {\n\t\treturn sqlNativeArrayListDecoder;\n\t}\n\tasync *streamDecodedRows(run, exec, createDecodeContext, driverCall, codecCtx, queryable, onDriverAnswered) {\n\t\tconst rowDecodeContext = createDecodeContext();\n\t\tawait this.setupDriverExecution(exec, queryable);\n\t\tconst startedAt = Date.now();\n\t\tlet telemetryOutcome = null;\n\t\ttry {\n\t\t\tconst iterator = run.runQuery(exec, driverCall)[Symbol.asyncIterator]();\n\t\t\tlet answered = false;\n\t\t\ttry {\n\t\t\t\twhile (true) {\n\t\t\t\t\tcheckAborted(codecCtx, \"stream\");\n\t\t\t\t\tconst next = answered ? await iterator.next() : await iterator.next().finally(onDriverAnswered);\n\t\t\t\t\tanswered = true;\n\t\t\t\t\tif (next.done) break;\n\t\t\t\t\tyield blindCast(await decodeRow(next.value, rowDecodeContext, codecCtx, this.getListDecoder()));\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tawait iterator.return?.();\n\t\t\t}\n\t\t\ttelemetryOutcome = \"success\";\n\t\t} catch (error) {\n\t\t\ttelemetryOutcome = \"runtime-error\";\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (telemetryOutcome !== null) this.recordTelemetry(exec, telemetryOutcome, Date.now() - startedAt);\n\t\t}\n\t}\n\tcreateQueryContexts(options) {\n\t\tconst signal = options?.signal;\n\t\tconst scope = options?.scope ?? \"runtime\";\n\t\treturn {\n\t\t\tcodecCtx: signal === void 0 ? {} : { signal },\n\t\t\tcontextFields: {\n\t\t\t\t...this.sqlCtx,\n\t\t\t\t...ifDefined(\"signal\", signal),\n\t\t\t\t...scope !== \"runtime\" ? { scope } : {}\n\t\t\t}\n\t\t};\n\t}\n\tasync prepareOperation(plan, codecCtx, run) {\n\t\tcheckAborted(codecCtx, \"stream\");\n\t\tif (isExecutionPlan(plan)) {\n\t\t\tconst mutator = createSqlParamRefMutator(plan);\n\t\t\tawait run.beforeEncode(plan, mutator);\n\t\t\treturn Object.freeze({\n\t\t\t\t...plan,\n\t\t\t\tparams: await encodeParams({\n\t\t\t\t\t...plan,\n\t\t\t\t\tparams: mutator.currentParams()\n\t\t\t\t}, codecCtx, this.contractCodecs)\n\t\t\t});\n\t\t}\n\t\tconst compiled = await this.compilePlan(plan, run.ctx);\n\t\tconst draft = this.lowerToDraft(compiled);\n\t\tconst mutator = createSqlParamRefMutator(draft);\n\t\tawait run.beforeEncode(draft, mutator);\n\t\tconst draftWithMutations = Object.freeze({\n\t\t\t...draft,\n\t\t\tparams: mutator.currentParams()\n\t\t});\n\t\treturn this.encodeDraftParams(draftWithMutations, codecCtx);\n\t}\n\t/** Query rows against a caller-supplied queryable through the shared preparation pipeline. */\n\tqueryAgainstQueryable(plan, queryable, options) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tconst self = this;\n\t\tconst { codecCtx, contextFields } = this.createQueryContexts(options);\n\t\tconst generator = async function* () {\n\t\t\tconst endOperation = self.beginOperation(queryable, options);\n\t\t\ttry {\n\t\t\t\tyield* streamStatement({\n\t\t\t\t\tmiddleware: self.middleware,\n\t\t\t\t\tplan,\n\t\t\t\t\tcontext: contextFields,\n\t\t\t\t\tparent: self.parentOf(queryable, options)\n\t\t\t\t}, async function* (run) {\n\t\t\t\t\tconst exec = await self.prepareOperation(plan, codecCtx, run);\n\t\t\t\t\tyield* self.streamDecodedRows(run, exec, () => buildDecodeContext(exec.ast, self.contractCodecs), () => queryable.query({\n\t\t\t\t\t\tsql: exec.sql,\n\t\t\t\t\t\tparams: exec.params\n\t\t\t\t\t}), codecCtx, queryable, endOperation);\n\t\t\t\t});\n\t\t\t} finally {\n\t\t\t\tendOperation();\n\t\t\t}\n\t\t};\n\t\treturn new AsyncIterableResult(generator());\n\t}\n\t/** Execute statistics against a caller-supplied queryable through the shared preparation pipeline. */\n\tasync executeStatisticsAgainstQueryable(plan, queryable, options) {\n\t\tconst endOperation = this.beginOperation(queryable, options);\n\t\ttry {\n\t\t\treturn await this.executeStatisticsInFlight(plan, queryable, options);\n\t\t} finally {\n\t\t\tendOperation();\n\t\t}\n\t}\n\tasync executeStatisticsInFlight(plan, queryable, options) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tconst { codecCtx, contextFields } = this.createQueryContexts(options);\n\t\treturn this.executeOn(queryable, options, plan, contextFields, async (run) => {\n\t\t\tconst exec = await this.prepareOperation(plan, codecCtx, run);\n\t\t\treturn this.executeEncodedPlan(run, exec, queryable, codecCtx, () => queryable.execute({\n\t\t\t\tsql: exec.sql,\n\t\t\t\tparams: exec.params\n\t\t\t}));\n\t\t});\n\t}\n\texecuteOn(queryable, options, plan, context, body) {\n\t\treturn executeStatement({\n\t\t\tmiddleware: this.middleware,\n\t\t\tplan,\n\t\t\tcontext,\n\t\t\tparent: this.parentOf(queryable, options)\n\t\t}, body);\n\t}\n\tasync executeEncodedPlan(run, exec, queryable, codecCtx, driverCall) {\n\t\tawait this.setupDriverExecution(exec, queryable);\n\t\tcheckAborted(codecCtx, \"stream\");\n\t\tconst startedAt = Date.now();\n\t\tlet telemetryOutcome = \"success\";\n\t\ttry {\n\t\t\treturn await run.runExecute(exec, driverCall);\n\t\t} catch (error) {\n\t\t\ttelemetryOutcome = \"runtime-error\";\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tthis.recordTelemetry(exec, telemetryOutcome, Date.now() - startedAt);\n\t\t}\n\t}\n\tasync prepare(declaration, callback) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tconst userPlan = callback(buildBindSiteParams(declaration));\n\t\tconst finalPlan = await this.compilePlan(userPlan, createContextBeneath(this.sqlCtx, void 0));\n\t\tconst orderedRefs = collectOrderedParamRefs(finalPlan.ast);\n\t\tconst referencedNames = /* @__PURE__ */ new Set();\n\t\tfor (const ref of orderedRefs) if (ref.kind === \"prepared-param-ref\") referencedNames.add(ref.name);\n\t\tconst missing = Object.keys(declaration).filter((name) => !referencedNames.has(name));\n\t\tif (missing.length > 0) throw runtimeError(\"RUNTIME.PREPARE_UNUSED_PARAM\", `Prepared statement declaration includes parameter${missing.length === 1 ? \"\" : \"s\"} not referenced by the callback's plan: ${missing.join(\", \")}`, { unused: missing });\n\t\tconst lowered = this.adapter.lower(finalPlan.ast, {\n\t\t\tcontract: this.contract,\n\t\t\tparams: orderedRefs.map((r) => r.kind === \"param-ref\" ? r.value : void 0)\n\t\t});\n\t\tconst decodeContext = buildDecodeContext(finalPlan.ast, this.contractCodecs);\n\t\tconst paramMetadata = deriveParamMetadata(finalPlan.ast);\n\t\tconst internals = Object.freeze({\n\t\t\tsql: lowered.sql,\n\t\t\tast: finalPlan.ast,\n\t\t\tmeta: finalPlan.meta,\n\t\t\tslots: lowered.params,\n\t\t\tdecodeContext,\n\t\t\tparamMetadata\n\t\t});\n\t\treturn blindCast(finalPlan.ast.kind === \"raw-query\" && finalPlan.ast.result.kind === \"affected-count\" ? new PreparedExecutionImpl(internals) : new PreparedStatementImpl(internals));\n\t}\n\t/** Query prepared rows against a caller-supplied queryable through the full pipeline. */\n\trunPreparedQueryAgainstQueryable(ps, userParams, queryable, options) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tconst self = this;\n\t\tconst { codecCtx, contextFields } = this.createQueryContexts(options);\n\t\tconst generator = async function* () {\n\t\t\tconst endOperation = self.beginOperation(queryable, options);\n\t\t\ttry {\n\t\t\t\tyield* streamStatement({\n\t\t\t\t\tmiddleware: self.middleware,\n\t\t\t\t\tplan: ps,\n\t\t\t\t\tcontext: contextFields,\n\t\t\t\t\tparent: self.parentOf(queryable, options)\n\t\t\t\t}, (run) => self.streamPreparedRows(run, ps, userParams, queryable, codecCtx, endOperation));\n\t\t\t} finally {\n\t\t\t\tendOperation();\n\t\t\t}\n\t\t};\n\t\treturn new AsyncIterableResult(generator());\n\t}\n\tasync *streamPreparedRows(run, ps, userParams, queryable, codecCtx, onDriverAnswered) {\n\t\tcheckAborted(codecCtx, \"stream\");\n\t\tconst preEncodeValues = resolvePreparedSlotValues(ps, userParams);\n\t\tconst preEncodeExec = {\n\t\t\tsql: ps.sql,\n\t\t\tparams: preEncodeValues,\n\t\t\tast: ps.ast,\n\t\t\tmeta: ps.meta\n\t\t};\n\t\tconst mutator = createSqlParamRefMutator(preEncodeExec);\n\t\tawait run.beforeEncode(preEncodeExec, mutator);\n\t\tconst encodedParams = await encodeParamsWithMetadata(mutator.currentParams(), ps.paramMetadata, codecCtx, this.contractCodecs);\n\t\tconst exec = {\n\t\t\tsql: ps.sql,\n\t\t\tparams: encodedParams,\n\t\t\tast: ps.ast,\n\t\t\tmeta: ps.meta\n\t\t};\n\t\tconst handles = this.#preparedStatementHandles;\n\t\tconst request = {\n\t\t\tsql: exec.sql,\n\t\t\tparams: exec.params,\n\t\t\tpreparedStatementHandle: {\n\t\t\t\tget: () => handles.get(ps),\n\t\t\t\tset: (value) => {\n\t\t\t\t\thandles.set(ps, value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tyield* this.streamDecodedRows(run, exec, () => ps.decodeContext, () => queryable.query(request), codecCtx, queryable, onDriverAnswered);\n\t}\n\t/** Execute a prepared statement's statistics against a caller-supplied queryable through the full pipeline. */\n\tasync runPreparedExecuteAgainstQueryable(ps, userParams, queryable, options) {\n\t\tconst endOperation = this.beginOperation(queryable, options);\n\t\ttry {\n\t\t\treturn await this.runPreparedExecuteInFlight(ps, userParams, queryable, options);\n\t\t} finally {\n\t\t\tendOperation();\n\t\t}\n\t}\n\tasync runPreparedExecuteInFlight(ps, userParams, queryable, options) {\n\t\tthis.ensureCodecRegistryValidated();\n\t\tconst { codecCtx, contextFields } = this.createQueryContexts(options);\n\t\treturn this.executeOn(queryable, options, ps, contextFields, (run) => this.executePrepared(run, ps, userParams, queryable, codecCtx));\n\t}\n\tasync executePrepared(run, ps, userParams, queryable, codecCtx) {\n\t\tcheckAborted(codecCtx, \"stream\");\n\t\tconst preEncodeValues = resolvePreparedSlotValues(ps, userParams);\n\t\tconst preEncodeExec = {\n\t\t\tsql: ps.sql,\n\t\t\tparams: preEncodeValues,\n\t\t\tast: ps.ast,\n\t\t\tmeta: ps.meta\n\t\t};\n\t\tconst mutator = createSqlParamRefMutator(preEncodeExec);\n\t\tawait run.beforeEncode(preEncodeExec, mutator);\n\t\tconst exec = {\n\t\t\tsql: ps.sql,\n\t\t\tparams: await encodeParamsWithMetadata(mutator.currentParams(), ps.paramMetadata, codecCtx, this.contractCodecs),\n\t\t\tast: ps.ast,\n\t\t\tmeta: ps.meta\n\t\t};\n\t\tconst handles = this.#preparedStatementHandles;\n\t\tconst request = {\n\t\t\tsql: exec.sql,\n\t\t\tparams: exec.params,\n\t\t\tpreparedStatementHandle: {\n\t\t\t\tget: () => handles.get(ps),\n\t\t\t\tset: (value) => {\n\t\t\t\t\thandles.set(ps, value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn this.executeEncodedPlan(run, exec, queryable, codecCtx, () => queryable.execute(request));\n\t}\n\tasync connection() {\n\t\treturn (await this.openConnection()).connection;\n\t}\n\tasync openConnection(options) {\n\t\tconst endOperation = this.beginOperation(this.driver, options);\n\t\tlet driverConn;\n\t\ttry {\n\t\t\tdriverConn = await this.driver.acquireConnection();\n\t\t} finally {\n\t\t\tendOperation();\n\t\t}\n\t\tthis.#heldQueryables.add(driverConn);\n\t\tconst self = this;\n\t\tconst wrappedConnection = {\n\t\t\t[transactionStart]: createTransactionStart(),\n\t\t\ttransaction() {\n\t\t\t\treturn self.beginTransactionOn(driverConn, wrappedConnection, void 0);\n\t\t\t},\n\t\t\t[activitySource]: self.connectionActivitySource(driverConn, () => wrappedConnection),\n\t\t\tasync release() {\n\t\t\t\tawait self.#inFlight.track(() => driverConn.release());\n\t\t\t},\n\t\t\tasync destroy(reason) {\n\t\t\t\tawait self.#inFlight.track(() => driverConn.destroy(reason));\n\t\t\t},\n\t\t\tquery(plan, options) {\n\t\t\t\treturn self.queryAgainstQueryable(plan, driverConn, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"connection\"\n\t\t\t\t});\n\t\t\t},\n\t\t\texecute(plan, options) {\n\t\t\t\treturn self.executeStatisticsAgainstQueryable(plan, driverConn, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"connection\"\n\t\t\t\t});\n\t\t\t},\n\t\t\t[preparedStatementQuery](ps, params, options) {\n\t\t\t\treturn self.runPreparedQueryAgainstQueryable(blindCast(ps), params, driverConn, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"connection\"\n\t\t\t\t});\n\t\t\t},\n\t\t\t[preparedStatementExecute](ps, params, options) {\n\t\t\t\treturn self.runPreparedExecuteAgainstQueryable(blindCast(ps), params, driverConn, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"connection\"\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t\treturn {\n\t\t\tdriverConnection: driverConn,\n\t\t\tconnection: wrappedConnection\n\t\t};\n\t}\n\t/**\n\t* Begins a transaction on `connection`, which `owner` wraps, as a transaction activity. When the transaction's `activityStarted` hooks refuse the start, no `BEGIN` is sent, `owner` is recorded as clean, and `withTransaction` releases it; after any other start failure it destroys it. The transaction's `activityStarted` hooks run before `BEGIN`. Every statement sent on the transaction, or on `connection`, from the end of `BEGIN` until `commit()` or `rollback()` is called is the transaction's child, and is finalized when the transaction ends, with its outcome. `commit()` and `rollback()` resolve after every finalization hook has run. A subclass that holds its own connection begins its transactions here.\n\t*/\n\tasync beginTransactionOn(connection, owner, parent) {\n\t\towner[transactionStart].refusedBeforeBegin = false;\n\t\tlet activity;\n\t\ttry {\n\t\t\tactivity = await startTransactionActivity({\n\t\t\t\tmiddleware: this.middleware,\n\t\t\t\tcontext: {\n\t\t\t\t\t...this.sqlCtx,\n\t\t\t\t\tscope: \"transaction\"\n\t\t\t\t},\n\t\t\t\tparent,\n\t\t\t\tholdFinishedChildren: this.#holdFinishedChildren\n\t\t\t});\n\t\t} catch (error) {\n\t\t\towner[transactionStart].refusedBeforeBegin = true;\n\t\t\tthrow error;\n\t\t}\n\t\tlet driverTx;\n\t\ttry {\n\t\t\tdriverTx = await this.#inFlight.track(() => connection.beginTransaction());\n\t\t} catch (error) {\n\t\t\tawait activity.end({\n\t\t\t\tby: \"rollback\",\n\t\t\t\toutcome: \"failed\",\n\t\t\t\tcommitAttempted: false\n\t\t\t});\n\t\t\tthrow error;\n\t\t}\n\t\tif (this.#heldQueryables.has(connection)) this.#heldQueryables.add(driverTx);\n\t\treturn this.wrapTransaction(driverTx, connection, activity);\n\t}\n\twrapTransaction(driverTx, connection, activity) {\n\t\tthis.#openTransactions.set(driverTx, activity);\n\t\tthis.#openTransactions.set(connection, activity);\n\t\tconst stopAcceptingChildren = () => {\n\t\t\tactivity.stopAcceptingChildren();\n\t\t\tfor (const queryable of [driverTx, connection]) if (this.#openTransactions.get(queryable) === activity) this.#openTransactions.delete(queryable);\n\t\t};\n\t\tlet commitAttempted = false;\n\t\tconst settlement = {\n\t\t\tcommitted: false,\n\t\t\trolledBack: false,\n\t\t\tlogDroppedError(error) {\n\t\t\t\ttry {\n\t\t\t\t\tactivity.ctx.log.error({\n\t\t\t\t\t\tevent: \"middleware.activityEnded.error\",\n\t\t\t\t\t\terror\n\t\t\t\t\t});\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t};\n\t\tlet commitEnding;\n\t\tconst self = this;\n\t\treturn {\n\t\t\t[transactionSettlement]: settlement,\n\t\t\tasync commit() {\n\t\t\t\tcommitAttempted = true;\n\t\t\t\tstopAcceptingChildren();\n\t\t\t\ttry {\n\t\t\t\t\tawait self.#inFlight.track(() => driverTx.commit());\n\t\t\t\t} catch (error) {\n\t\t\t\t\tawait activity.end({\n\t\t\t\t\t\tby: \"commit\",\n\t\t\t\t\t\toutcome: \"failed\"\n\t\t\t\t\t});\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tsettlement.committed = true;\n\t\t\t\tcommitEnding = activity.end({\n\t\t\t\t\tby: \"commit\",\n\t\t\t\t\toutcome: \"succeeded\"\n\t\t\t\t});\n\t\t\t\tawait commitEnding;\n\t\t\t},\n\t\t\tasync rollback() {\n\t\t\t\tstopAcceptingChildren();\n\t\t\t\tif (settlement.committed) {\n\t\t\t\t\tawait commitEnding?.catch(() => void 0);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (settlement.rolledBack) return;\n\t\t\t\ttry {\n\t\t\t\t\tawait self.#inFlight.track(() => driverTx.rollback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\tawait activity.end({\n\t\t\t\t\t\tby: \"rollback\",\n\t\t\t\t\t\toutcome: \"failed\",\n\t\t\t\t\t\tcommitAttempted\n\t\t\t\t\t});\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tsettlement.rolledBack = true;\n\t\t\t\tawait activity.end({\n\t\t\t\t\tby: \"rollback\",\n\t\t\t\t\toutcome: \"succeeded\",\n\t\t\t\t\tcommitAttempted\n\t\t\t\t});\n\t\t\t},\n\t\t\t[activitySource]: {\n\t\t\t\tstartActivity: (clientActivity) => self.startActivityOnRoute(self.queryableRoute(driverTx, \"transaction\", () => activity, {\n\t\t\t\t\ttransaction: void 0,\n\t\t\t\t\truntimeWork: false\n\t\t\t\t}), clientActivity, void 0),\n\t\t\t\tplanContentHash: (plan) => self.planContentHashFor(plan, \"transaction\", activity)\n\t\t\t},\n\t\t\tquery(plan, options) {\n\t\t\t\treturn self.queryAgainstQueryable(plan, driverTx, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"transaction\"\n\t\t\t\t});\n\t\t\t},\n\t\t\texecute(plan, options) {\n\t\t\t\treturn self.executeStatisticsAgainstQueryable(plan, driverTx, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"transaction\"\n\t\t\t\t});\n\t\t\t},\n\t\t\t[preparedStatementQuery](ps, params, options) {\n\t\t\t\treturn self.runPreparedQueryAgainstQueryable(blindCast(ps), params, driverTx, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"transaction\"\n\t\t\t\t});\n\t\t\t},\n\t\t\t[preparedStatementExecute](ps, params, options) {\n\t\t\t\treturn self.runPreparedExecuteAgainstQueryable(blindCast(ps), params, driverTx, {\n\t\t\t\t\t...options,\n\t\t\t\t\tscope: \"transaction\"\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t}\n\ttelemetry() {\n\t\treturn this._telemetry;\n\t}\n\tclose() {\n\t\tthis.closePromise ??= this.closeDriverAfterWork();\n\t\treturn this.closePromise;\n\t}\n\tasync closeDriverAfterWork() {\n\t\tconst warned = { done: false };\n\t\tif (this.closeRefusal === \"when-idle\") await this.waitForIdleTurn(warned);\n\t\tthis.#refusing = true;\n\t\tthis.warnWhenWaitingOnlyForActivities(warned);\n\t\tawait this.#inFlight.drained();\n\t\tawait this.driver.close();\n\t}\n\tasync waitForIdleTurn(warned) {\n\t\tfor (;;) {\n\t\t\tconst startedBefore = this.#inFlight.started;\n\t\t\tawait new Promise((resolve) => scheduleTimer(resolve, 0));\n\t\t\tif (!this.#inFlight.active && this.#inFlight.started === startedBefore) return;\n\t\t\tthis.warnWhenWaitingOnlyForActivities(warned);\n\t\t\tawait this.#inFlight.drained();\n\t\t}\n\t}\n\tensureCodecRegistryValidated() {\n\t\tif (!this.codecRegistryValidated) {\n\t\t\tvalidateCodecRegistryCompleteness(this.codecDescriptors, this.contract);\n\t\t\tthis.codecRegistryValidated = true;\n\t\t}\n\t}\n\tasync verifyMarker(queryable) {\n\t\tconst readResult = await this.familyAdapter.markerReader.readMarker(queryable);\n\t\tconst expectedStorageHash = this.contract.storage.storageHash;\n\t\tconst expectedProfileHash = this.contract.profileHash ?? null;\n\t\tconst expected = {\n\t\t\tstorageHash: expectedStorageHash,\n\t\t\tprofileHash: expectedProfileHash\n\t\t};\n\t\tif (readResult.kind !== \"present\") {\n\t\t\tthis.sqlCtx.log.warn({\n\t\t\t\tcode: \"CONTRACT.MARKER_MISSING\",\n\t\t\t\tscope: \"marker-verification\",\n\t\t\t\texpected,\n\t\t\t\tactual: null,\n\t\t\t\tmessage: \"Contract marker not found in database\"\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst marker = readResult.record;\n\t\tconst storageHashMatch = marker.storageHash === expectedStorageHash;\n\t\tconst profileHashMatch = expectedProfileHash === null || marker.profileHash === expectedProfileHash;\n\t\tif (!storageHashMatch || !profileHashMatch) this.sqlCtx.log.warn({\n\t\t\tcode: \"CONTRACT.MARKER_MISMATCH\",\n\t\t\tscope: \"marker-verification\",\n\t\t\texpected,\n\t\t\tactual: {\n\t\t\t\tstorageHash: marker.storageHash,\n\t\t\t\tprofileHash: marker.profileHash ?? null\n\t\t\t},\n\t\t\tmessage: \"Contract marker hash does not match runtime contract\"\n\t\t});\n\t}\n\trecordTelemetry(plan, outcome, durationMs) {\n\t\tconst contract = this.contract;\n\t\tthis._telemetry = Object.freeze({\n\t\t\tlane: plan.meta.lane,\n\t\t\ttarget: contract.target,\n\t\t\tfingerprint: computeSqlFingerprint(plan.sql),\n\t\t\toutcome,\n\t\t\t...durationMs !== void 0 ? { durationMs } : {}\n\t\t});\n\t}\n};\nfunction activityOutsideTransactionError(parent, openTransaction) {\n\treturn runtimeError(\"RUNTIME.ACTIVITY_OUTSIDE_TRANSACTION\", `Work was sent through a '${parent.activity.kind}' activity onto a connection whose open transaction the activity is not part of. Start the activity on the transaction instead.`, {\n\t\tkind: parent.activity.kind,\n\t\tid: parent.activity.id,\n\t\ttransactionId: openTransaction.activity.id\n\t});\n}\nfunction transactionAlreadyOpenError(parent, openTransaction) {\n\treturn runtimeError(\"RUNTIME.TRANSACTION_ALREADY_OPEN\", `A transaction is already open on this connection; a '${parent.activity.kind}' activity cannot begin another until it commits or rolls back.`, {\n\t\tkind: parent.activity.kind,\n\t\tid: parent.activity.id,\n\t\ttransactionId: openTransaction.activity.id\n\t});\n}\nfunction noWork() {}\nfunction rowsBeneath(run, rows) {\n\treturn new AsyncIterableResult(new RowsBeneath(run, rows));\n}\n/** The rows of a statement started beneath `run`, checked against `run` on the first `next()`. It forwards to the statement's own iterator rather than adding an async generator, so each row costs no extra turn. */\nvar RowsBeneath = class {\n\t#run;\n\t#rows;\n\t#inner;\n\t#done = false;\n\tconstructor(run, rows) {\n\t\tthis.#run = run;\n\t\tthis.#rows = rows;\n\t}\n\tnext() {\n\t\tif (this.#done) return Promise.resolve({\n\t\t\tdone: true,\n\t\t\tvalue: void 0\n\t\t});\n\t\tif (this.#inner === void 0) try {\n\t\t\tthis.#run.assertAcceptsChildren();\n\t\t\tthis.#inner = this.#rows()[Symbol.asyncIterator]();\n\t\t} catch (error) {\n\t\t\tthis.#done = true;\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t\treturn this.#inner.next();\n\t}\n\treturn() {\n\t\tconst inner = this.#inner;\n\t\tthis.#done = true;\n\t\treturn inner?.return === void 0 ? Promise.resolve({\n\t\t\tdone: true,\n\t\t\tvalue: void 0\n\t\t}) : inner.return();\n\t}\n\tthrow(error) {\n\t\tconst inner = this.#inner;\n\t\tif (inner?.throw === void 0) {\n\t\t\tthis.#done = true;\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t\treturn inner.throw(error);\n\t}\n\t[Symbol.asyncIterator]() {\n\t\treturn this;\n\t}\n\tasync [Symbol.asyncDispose]() {\n\t\tawait this.return();\n\t}\n};\nfunction transactionClosedError() {\n\treturn runtimeError(\"RUNTIME.TRANSACTION_CLOSED\", \"Cannot use a transaction operation after the transaction has ended. Consume query results and await execute calls inside the transaction callback.\", {});\n}\n/**\n* Adds a client's members to the context `withTransaction` passes. The context is the prototype, not spread, so live accessors such as `invalidated` keep reading the transaction's state; spreading would copy their value once.\n*/\nfunction withTransactionMembers(txCtx, members) {\n\treturn Object.assign(castAs(Object.create(txCtx)), members);\n}\nasync function withTransaction(runtime, fn) {\n\tconst connection = await runtime.connection();\n\tlet transaction;\n\ttry {\n\t\ttransaction = await connection.transaction();\n\t} catch (error) {\n\t\tif (wasRefusedBeforeBegin(connection)) await connection.release().catch(() => void 0);\n\t\telse await connection.destroy(error).catch(() => void 0);\n\t\tthrow error;\n\t}\n\tlet invalidated = false;\n\tasync function* guardedStream(inner) {\n\t\tif (invalidated) throw transactionClosedError();\n\t\tfor await (const row of inner) {\n\t\t\tyield row;\n\t\t\tif (invalidated) throw transactionClosedError();\n\t\t}\n\t}\n\tfunction guardedQueryable(target) {\n\t\treturn {\n\t\t\tquery(plan, options) {\n\t\t\t\tif (invalidated) throw transactionClosedError();\n\t\t\t\treturn new AsyncIterableResult(guardedStream(target.query(plan, options)));\n\t\t\t},\n\t\t\tasync execute(plan, options) {\n\t\t\t\tif (invalidated) throw transactionClosedError();\n\t\t\t\treturn target.execute(plan, options);\n\t\t\t},\n\t\t\t[preparedStatementQuery](ps, params, options) {\n\t\t\t\tif (invalidated) throw transactionClosedError();\n\t\t\t\treturn new AsyncIterableResult(guardedStream(runPreparedQuery(target, ps, params, options)));\n\t\t\t},\n\t\t\t[preparedStatementExecute](ps, params, options) {\n\t\t\t\tif (invalidated) throw transactionClosedError();\n\t\t\t\treturn runPreparedExecute(target, ps, params, options);\n\t\t\t}\n\t\t};\n\t}\n\tfunction guardedSource(target) {\n\t\treturn {\n\t\t\tasync startActivity(activity) {\n\t\t\t\tif (invalidated) throw transactionClosedError();\n\t\t\t\treturn guardedHandle(await startActivityOn(target, activity));\n\t\t\t},\n\t\t\tplanContentHash(plan) {\n\t\t\t\treturn planContentHashOn(target, plan);\n\t\t\t}\n\t\t};\n\t}\n\tfunction guardedHandle(handle) {\n\t\tconst source = guardedSource(handle);\n\t\treturn {\n\t\t\t...source,\n\t\t\t...guardedQueryable(handle),\n\t\t\t[activitySource]: source,\n\t\t\tactivity: handle.activity,\n\t\t\tget intercepted() {\n\t\t\t\treturn handle.intercepted;\n\t\t\t},\n\t\t\tend: (end) => handle.end(end)\n\t\t};\n\t}\n\tconst txContext = {\n\t\t...guardedQueryable(transaction),\n\t\tget invalidated() {\n\t\t\treturn invalidated;\n\t\t},\n\t\t[activitySource]: guardedSource(transaction)\n\t};\n\tlet connectionDisposed = false;\n\tconst destroyConnection = async (reason) => {\n\t\tif (connectionDisposed) return;\n\t\tconnectionDisposed = true;\n\t\tawait connection.destroy(reason).catch(() => void 0);\n\t};\n\ttry {\n\t\tlet result;\n\t\ttry {\n\t\t\tresult = await fn(txContext);\n\t\t} catch (error) {\n\t\t\ttry {\n\t\t\t\tawait transaction.rollback();\n\t\t\t} catch (rollbackError) {\n\t\t\t\tconst settlement = settlementOf(transaction);\n\t\t\t\tif (settlement?.rolledBack === true) {\n\t\t\t\t\tsettlement.logDroppedError(rollbackError);\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tawait destroyConnection(rollbackError);\n\t\t\t\tconst wrapped = runtimeError(\"RUNTIME.TRANSACTION_ROLLBACK_FAILED\", \"Transaction rollback failed after callback error\", { rollbackError });\n\t\t\t\twrapped.cause = error;\n\t\t\t\tthrow wrapped;\n\t\t\t}\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tinvalidated = true;\n\t\t}\n\t\ttry {\n\t\t\tawait transaction.commit();\n\t\t} catch (commitError) {\n\t\t\tif (settlementOf(transaction)?.committed === true) throw commitError;\n\t\t\ttry {\n\t\t\t\tawait transaction.rollback();\n\t\t\t} catch (rollbackError) {\n\t\t\t\tconst settlement = settlementOf(transaction);\n\t\t\t\tif (settlement?.rolledBack === true) settlement.logDroppedError(rollbackError);\n\t\t\t\telse await destroyConnection(commitError);\n\t\t\t}\n\t\t\tconst wrapped = runtimeError(\"RUNTIME.TRANSACTION_COMMIT_FAILED\", \"Transaction commit failed\", { commitError });\n\t\t\twrapped.cause = commitError;\n\t\t\tthrow wrapped;\n\t\t}\n\t\treturn result;\n\t} finally {\n\t\tif (!connectionDisposed) await connection.release();\n\t}\n}\n//#endregion\n//#region src/to-sql.ts\nfunction createToSql(stack, contract) {\n\tlet adapter;\n\treturn (plan) => {\n\t\tvalidateSqlPlan(plan, contract);\n\t\tadapter ??= stack.adapter.create(stack);\n\t\tconst { sql, params } = lowerSqlPlan(adapter, contract, plan);\n\t\treturn {\n\t\t\tsql,\n\t\t\tparams\n\t\t};\n\t};\n}\n//#endregion\nexport { findActivitySource as C, startActivityOn as E, delegatingActivitySource as S, planContentHashOn as T, validateContractCodecMappings as _, buildDecodeContext as a, createAstCodecRegistry as b, createExecutionContext as c, PreparedStatementImpl as d, lints as f, validateCodecRegistryCompleteness as g, extractCodecIds as h, withTransactionMembers as i, createSqlExecutionStack as l, lowerSqlPlan as m, SqlRuntimeBase as n, decodeRow as o, budgets as p, withTransaction as r, sqlNativeArrayListDecoder as s, createToSql as t, PreparedExecutionImpl as u, deriveParamMetadata as v, lazyActivitySource as w, activitySource as x, encodeParamsWithMetadata as y };\n\n//# sourceMappingURL=exports-CRROThzp.mjs.map"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-3aEIvk82.d.mts","names":[],"sources":["../../../../2-sql/5-runtime/dist/activity-handle-BoYk9Ram.d.mts","../../../../2-sql/5-runtime/dist/index.d.mts"],"mappings":"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"}