@prisma/orm-family-sql 8.0.0-rc.14-dev.36 → 8.0.0-rc.14-dev.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/{ast-Foar49zl.d.mts → ast-DgUdnFtz.d.mts} +2 -2
  2. package/dist/{ast-Foar49zl.d.mts.map → ast-DgUdnFtz.d.mts.map} +1 -1
  3. package/dist/builder.d.mts +2 -2
  4. package/dist/builder__runtime.d.mts +3 -3
  5. package/dist/builder__types.d.mts +2 -2
  6. package/dist/control-adapter-BoQobwpe.d.mts +1 -0
  7. package/dist/{control-adapter-CkFfBVei-Bz63KBJc.d.mts → control-adapter-CkFfBVei-N-jSb9WR.d.mts} +3 -3
  8. package/dist/{control-adapter-CkFfBVei-Bz63KBJc.d.mts.map → control-adapter-CkFfBVei-N-jSb9WR.d.mts.map} +1 -1
  9. package/dist/{control-DQImoKde.d.mts → control-qkDZstn6.d.mts} +5 -5
  10. package/dist/{control-DQImoKde.d.mts.map → control-qkDZstn6.d.mts.map} +1 -1
  11. package/dist/{db-DLjWu9-f-Cw18jt8N.d.mts → db-DLjWu9-f-ldboYM8A.d.mts} +3 -3
  12. package/dist/{db-DLjWu9-f-Cw18jt8N.d.mts.map → db-DLjWu9-f-ldboYM8A.d.mts.map} +1 -1
  13. package/dist/{diff-CJy4hgyc.d.mts → diff-B1ThXQkW.d.mts} +3 -3
  14. package/dist/{diff-CJy4hgyc.d.mts.map → diff-B1ThXQkW.d.mts.map} +1 -1
  15. package/dist/{driver-types-DYGFEcyv-DPaNalPf.d.mts → driver-types-DRsYeq3j-X_D6hNMZ.d.mts} +8 -2
  16. package/dist/driver-types-DRsYeq3j-X_D6hNMZ.d.mts.map +1 -0
  17. package/dist/{expression-DTVL16zb.d.mts → expression-o74FOqh6.d.mts} +2 -2
  18. package/dist/{expression-DTVL16zb.d.mts.map → expression-o74FOqh6.d.mts.map} +1 -1
  19. package/dist/family.d.mts +6 -6
  20. package/dist/family__control-adapter.d.mts +2 -2
  21. package/dist/family__control.d.mts +2 -2
  22. package/dist/family__diff.d.mts +2 -2
  23. package/dist/family__migration.d.mts +1 -1
  24. package/dist/{index-B_m7BMWx.d.mts → index-DCKjTi7L.d.mts} +3 -3
  25. package/dist/{index-B_m7BMWx.d.mts.map → index-DCKjTi7L.d.mts.map} +1 -1
  26. package/dist/{migration-_T2FvKPk.d.mts → migration-DV5extx2.d.mts} +2 -2
  27. package/dist/{migration-_T2FvKPk.d.mts.map → migration-DV5extx2.d.mts.map} +1 -1
  28. package/dist/orm-client.d.mts +6 -6
  29. package/dist/{prepared-statement-Cv54gpY_-CT1ZL-2j.d.mts → prepared-statement-YtgdlN7e-BryEFERH.d.mts} +15 -8
  30. package/dist/{prepared-statement-Cv54gpY_-CT1ZL-2j.d.mts.map → prepared-statement-YtgdlN7e-BryEFERH.d.mts.map} +1 -1
  31. package/dist/relational-core.d.mts +4 -4
  32. package/dist/relational-core__ast.d.mts +2 -2
  33. package/dist/relational-core__expression.d.mts +1 -1
  34. package/dist/relational-core__types.d.mts +2 -2
  35. package/dist/runtime.d.mts +3 -3
  36. package/dist/runtime.mjs +85 -43
  37. package/dist/runtime.mjs.map +1 -1
  38. package/dist/runtime__internal__prepared-query.d.mts +1 -1
  39. package/dist/types-Bb6De1yt.d.mts +1 -0
  40. package/dist/{types-CvuS68sy-CK5U4IEM.d.mts → types-CvuS68sy-CIYfMFuu.d.mts} +2 -2
  41. package/dist/{types-CvuS68sy-CK5U4IEM.d.mts.map → types-CvuS68sy-CIYfMFuu.d.mts.map} +1 -1
  42. package/dist/{types-DpwLgzPO-6RCR0XpS.d.mts → types-flbim7l7-BbzcJZpz.d.mts} +3 -3
  43. package/dist/{types-DpwLgzPO-6RCR0XpS.d.mts.map → types-flbim7l7-BbzcJZpz.d.mts.map} +1 -1
  44. package/package.json +18 -18
  45. package/dist/control-adapter-BQJjVR9C.d.mts +0 -1
  46. package/dist/driver-types-DYGFEcyv-DPaNalPf.d.mts.map +0 -1
  47. package/dist/types-CxLmS9mV.d.mts +0 -1
@@ -1,13 +1,13 @@
1
1
  import { $ as InsertValue, A as DefaultValueExpr, At as SqlCodecCallContext, B as EqColJoinOn, Bt as WindowFuncExpr, C as CodecCallContext$1, Ct as RawExpr, D as CodecTrait$1, Dt as RawSqlLiteral, E as CodecRef$1, Et as RawQueryResult, F as DescriptorCodecJson, Ft as TableSource, G as ExpressionSource, Gt as isOrderByNulls, H as ExprVisitor, Ht as frozenCodecRef, I as DescriptorCodecTraits, It as ToWhereExpr, J as FunctionSource, Jt as queryAstKinds, K as ExtractCodecTypes, Kt as isQueryAst, L as Direction, Lt as UpdateAst, M as DerivedTableSource, Mt as SqlColumnRef, N as DescriptorCodecId, Nt as SubqueryExpr, O as ColumnRef, Ot as SelectAst, P as DescriptorCodecInput, Pt as TableRef, Q as InsertOnConflict, R as DoNothingConflictAction, Rt as WhereArg, S as Codec$1, St as ProjectionItem, T as CodecJsonValueProjection, Tt as RawQueryColumn, U as ExpressionFolder, Ut as isAggregateFn, V as ExistsExpr, Vt as aggregateFnNames, W as ExpressionRewriter, Wt as isOrderByDirection, X as IdentifierRef, Y as FunctionSourceAlias, Yt as whereExprKinds, Z as InsertAst, _ as BinaryExpr, _t as OrderByItem, a as AndExpr, at as JsonObjectExpr, b as CaseExpr, bt as PreparedParamRef, c as AnyExpression, ct as ListExpression, d as AnyInsertValue, dt as LoweredStatement, et as JoinAst, f as AnyJsonValueProjection, ft as NativeJsonValueProjection, g as AstRewriter, gt as OrExpr, h as AnyQueryAst, ht as OperationExpr, i as AggregateOpFn, it as JsonObjectEntry, j as DeleteAst, jt as SqlCodecInstanceContext, k as ContractCodecRegistry, kt as SelectAstOptions, l as AnyFromSource, lt as LiteralExpr, m as AnyParamRef, mt as NullCheckExpr, n as AggregateExpr, nt as JsonArrayAggExpr, o as AnyCodecDescriptor, ot as JsonValueProjectionVisitor, p as AnyOperationArg, pt as NotExpr, q as FunctionCallExpr, qt as isWhereExpr, r as AggregateFn, rt as JsonDocumentProjection, s as AnyCodecDescriptorTemplate, st as LimitOffsetValue, t as AggregateCountFn, tt as JoinOnExpr, u as AnyInsertOnConflictAction, ut as LoweredParam, v as BinaryOp, vt as OrderByNulls, w as CodecDescriptor$1, wt as RawQueryAst, x as CastExpr, xt as ProjectionExpr, y as CaseBranch, yt as ParamRef, z as DoUpdateSetConflictAction, zt as WindowFn } from "./types-Dskga3R1-DeSwpS4A.mjs";
2
- import { a as SqlDriverState, c as SqlQueryable, i as SqlDriver, l as SqlStatementStats, n as PreparedStatementHandle, o as SqlExecuteRequest, r as SqlConnection, s as SqlExplainResult, t as PreparedExecuteRequest, u as SqlTransaction } from "./driver-types-DYGFEcyv-DPaNalPf.mjs";
2
+ import { a as SqlDriverState, c as SqlQueryable, i as SqlDriver, l as SqlStatementStats, n as PreparedStatementHandle, o as SqlExecuteRequest, r as SqlConnection, s as SqlExplainResult, t as PreparedExecuteRequest, u as SqlTransaction } from "./driver-types-DRsYeq3j-X_D6hNMZ.mjs";
3
3
  import { a as DdlNode, c as FunctionColumnDefault, d as PrimaryKeyConstraint, f as UniqueConstraint, h as renderOpaqueSql, i as DdlColumnDefault, l as LiteralColumnDefault, m as opaqueSql, n as CheckExpressionConstraint, o as DdlTableConstraint, p as isDdlNode, r as DdlColumn, s as ForeignKeyConstraint, t as AnyDdlColumnDefault, u as OpaqueSql } from "./ddl-types-CWIiJxsH-BixiHVIr.mjs";
4
- import { A as sqlCharDescriptor, B as sqlIntEncode, C as SqlVarcharDescriptor, D as encodeLiteralDefault, E as encodeListLiteralDefault, F as sqlFloatDescriptor, G as sqlVarcharColumn, H as sqlTextDecode, I as sqlFloatEncode, J as sqlVarcharEncode, K as sqlVarcharDecode, L as sqlIntColumn, M as sqlCharRenderOutputType, N as sqlFloatColumn, O as sqlCharColumn, P as sqlFloatDecode, R as sqlIntDecode, S as SqlVarcharCodec, T as compact, U as sqlTextDescriptor, V as sqlTextColumn, W as sqlTextEncode, Y as sqlVarcharRenderOutputType, _ as SqlFloatDescriptor, a as LiteralDefaultColumn, b as SqlTextCodec, c as MarkerReadResult, d as SQL_INT_CODEC_ID, f as SQL_TEXT_CODEC_ID, g as SqlFloatCodec, h as SqlCharDescriptor, i as EncodedLiteralDefault, j as sqlCharEncode, k as sqlCharDecode, l as SQL_CHAR_CODEC_ID, m as SqlCharCodec, n as AdapterProfile, o as Lowerer, p as SQL_VARCHAR_CODEC_ID, q as sqlVarcharDescriptor, r as AdapterTarget, s as LowererContext, t as Adapter, u as SQL_FLOAT_CODEC_ID, v as SqlIntCodec, w as collectOrderedParamRefs, x as SqlTextDescriptor, y as SqlIntDescriptor, z as sqlIntDescriptor } from "./ast-Foar49zl.mjs";
4
+ import { A as sqlCharDescriptor, B as sqlIntEncode, C as SqlVarcharDescriptor, D as encodeLiteralDefault, E as encodeListLiteralDefault, F as sqlFloatDescriptor, G as sqlVarcharColumn, H as sqlTextDecode, I as sqlFloatEncode, J as sqlVarcharEncode, K as sqlVarcharDecode, L as sqlIntColumn, M as sqlCharRenderOutputType, N as sqlFloatColumn, O as sqlCharColumn, P as sqlFloatDecode, R as sqlIntDecode, S as SqlVarcharCodec, T as compact, U as sqlTextDescriptor, V as sqlTextColumn, W as sqlTextEncode, Y as sqlVarcharRenderOutputType, _ as SqlFloatDescriptor, a as LiteralDefaultColumn, b as SqlTextCodec, c as MarkerReadResult, d as SQL_INT_CODEC_ID, f as SQL_TEXT_CODEC_ID, g as SqlFloatCodec, h as SqlCharDescriptor, i as EncodedLiteralDefault, j as sqlCharEncode, k as sqlCharDecode, l as SQL_CHAR_CODEC_ID, m as SqlCharCodec, n as AdapterProfile, o as Lowerer, p as SQL_VARCHAR_CODEC_ID, q as sqlVarcharDescriptor, r as AdapterTarget, s as LowererContext, t as Adapter, u as SQL_FLOAT_CODEC_ID, v as SqlIntCodec, w as collectOrderedParamRefs, x as SqlTextDescriptor, y as SqlIntDescriptor, z as sqlIntDescriptor } from "./ast-DgUdnFtz.mjs";
5
5
  import { n as SqlQueryPlan, r as planFromAst, t as Preparable } from "./plan-BlQITcbP-B2q80evU.mjs";
6
- import { C as buildOperation, D as param, E as isExpression, O as toExpr, S as TraitExpression, T as createRawSql, _ as RawSqlStatementBuilder, a as CodecValue, b as ScalarListExpression, c as RawAffectedCountQuery, d as RawRow, f as RawRowQuery, g as RawSqlInterpolation, h as RawSqlBuilder, i as CodecTypesBase, l as RawCodecInferer, m as RawRowSpecEntry, n as BuildOperationSpec, o as Expression, p as RawRowSpec, r as CodecExpression, s as NoReservedRowColumn, t as AffectedCount, u as RawPlanContext, v as RawSqlStatementTag, w as codecOf, x as ScopeField, y as RawSqlTag } from "./expression-DTVL16zb.mjs";
6
+ import { C as buildOperation, D as param, E as isExpression, O as toExpr, S as TraitExpression, T as createRawSql, _ as RawSqlStatementBuilder, a as CodecValue, b as ScalarListExpression, c as RawAffectedCountQuery, d as RawRow, f as RawRowQuery, g as RawSqlInterpolation, h as RawSqlBuilder, i as CodecTypesBase, l as RawCodecInferer, m as RawRowSpecEntry, n as BuildOperationSpec, o as Expression, p as RawRowSpec, r as CodecExpression, s as NoReservedRowColumn, t as AffectedCount, u as RawPlanContext, v as RawSqlStatementTag, w as codecOf, x as ScopeField, y as RawSqlTag } from "./expression-o74FOqh6.mjs";
7
7
  import { t as SqlExecutionPlan } from "./sql-execution-plan-CV6K4o9N-B3EzlMwJ.mjs";
8
8
  import "./plan-D11FmUVM.mjs";
9
9
  import { a as SqlAggregateDescriptorRegistry, c as TypeHelperRegistry, n as ExecutionContext, r as ResolvedSqlAggregate, t as CodecDescriptorRegistry } from "./query-lane-context-OSV9X636-DFRkNeXq.mjs";
10
10
  import "./query-lane-context-SRmvD9-J.mjs";
11
- import { S as TablesOf, _ as SqlOrmPlan, a as ColumnsOf, b as TableKey, c as META, d as ModelMetadata, f as OperationTypeSignature, g as SqlBuilderOptions, h as RuntimeScope, i as ColumnResolutionContract, l as Meta, m as OperationsForTypeId, n as BuildParamsMap, o as ComputeColumnJsType, p as OperationTypes, r as CodecTypes, s as Expr, t as BuildOptions, u as ModelDef, v as SqlPlan, x as TableMetadata, y as TableDef } from "./types-DpwLgzPO-6RCR0XpS.mjs";
11
+ import { S as TablesOf, _ as SqlOrmPlan, a as ColumnsOf, b as TableKey, c as META, d as ModelMetadata, f as OperationTypeSignature, g as SqlBuilderOptions, h as RuntimeScope, i as ColumnResolutionContract, l as Meta, m as OperationsForTypeId, n as BuildParamsMap, o as ComputeColumnJsType, p as OperationTypes, r as CodecTypes, s as Expr, t as BuildOptions, u as ModelDef, v as SqlPlan, x as TableMetadata, y as TableDef } from "./types-flbim7l7-BbzcJZpz.mjs";
12
12
  import { a as SqlParamRefMutatorInternal, i as SqlParamRefMutator, n as ParamRefEntryUnion, o as createSqlParamRefMutator, r as ParamRefHandle, t as ParamRefEntry } from "./middleware-BtMX6nSF-DM55ZeCo.mjs";
13
13
  export { Adapter, AdapterProfile, AdapterTarget, AffectedCount, AggregateCountFn, AggregateExpr, AggregateFn, AggregateOpFn, AndExpr, AnyCodecDescriptor, AnyCodecDescriptorTemplate, AnyDdlColumnDefault, AnyExpression, AnyFromSource, AnyInsertOnConflictAction, AnyInsertValue, AnyJsonValueProjection, AnyOperationArg, AnyParamRef, AnyQueryAst, AstRewriter, BinaryExpr, BinaryOp, BuildOperationSpec, BuildOptions, BuildParamsMap, CaseBranch, CaseExpr, CastExpr, CheckExpressionConstraint, Codec$1 as Codec, type CodecCallContext$1 as CodecCallContext, type CodecDescriptor$1 as CodecDescriptor, CodecDescriptorRegistry, CodecExpression, CodecJsonValueProjection, type CodecRef$1 as CodecRef, type CodecTrait$1 as CodecTrait, CodecTypes, CodecTypesBase, CodecValue, ColumnRef, ColumnResolutionContract, ColumnsOf, ComputeColumnJsType, ContractCodecRegistry, DdlColumn, DdlColumnDefault, DdlNode, DdlTableConstraint, DefaultValueExpr, DeleteAst, DerivedTableSource, DescriptorCodecId, DescriptorCodecInput, DescriptorCodecJson, DescriptorCodecTraits, Direction, DoNothingConflictAction, DoUpdateSetConflictAction, EncodedLiteralDefault, EqColJoinOn, ExecutionContext, ExistsExpr, Expr, ExprVisitor, Expression, ExpressionFolder, ExpressionRewriter, ExpressionSource, ExtractCodecTypes, ForeignKeyConstraint, FunctionCallExpr, FunctionColumnDefault, FunctionSource, FunctionSourceAlias, IdentifierRef, InsertAst, InsertOnConflict, InsertValue, JoinAst, JoinOnExpr, JsonArrayAggExpr, JsonDocumentProjection, JsonObjectEntry, JsonObjectExpr, JsonValueProjectionVisitor, LimitOffsetValue, ListExpression, LiteralColumnDefault, LiteralDefaultColumn, LiteralExpr, LoweredParam, LoweredStatement, Lowerer, LowererContext, META, MarkerReadResult, Meta, ModelDef, ModelMetadata, NativeJsonValueProjection, NoReservedRowColumn, NotExpr, NullCheckExpr, OpaqueSql, OperationExpr, OperationTypeSignature, OperationTypes, OperationsForTypeId, OrExpr, OrderByItem, OrderByNulls, ParamRef, type ParamRefEntry, type ParamRefEntryUnion, type ParamRefHandle, Preparable, PreparedExecuteRequest, PreparedParamRef, PreparedStatementHandle, PrimaryKeyConstraint, ProjectionExpr, ProjectionItem, RawAffectedCountQuery, RawCodecInferer, RawExpr, RawPlanContext, RawQueryAst, RawQueryColumn, RawQueryResult, RawRow, RawRowQuery, RawRowSpec, RawRowSpecEntry, RawSqlBuilder, RawSqlInterpolation, RawSqlLiteral, RawSqlStatementBuilder, RawSqlStatementTag, RawSqlTag, ResolvedSqlAggregate, type RuntimeScope, SQL_CHAR_CODEC_ID, SQL_FLOAT_CODEC_ID, SQL_INT_CODEC_ID, SQL_TEXT_CODEC_ID, SQL_VARCHAR_CODEC_ID, ScalarListExpression, ScopeField, SelectAst, SelectAstOptions, SqlAggregateDescriptorRegistry, SqlBuilderOptions, SqlCharCodec, SqlCharDescriptor, SqlCodecCallContext, SqlCodecInstanceContext, SqlColumnRef, SqlConnection, SqlDriver, SqlDriverState, SqlExecuteRequest, type SqlExecutionPlan, SqlExplainResult, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, type SqlOrmPlan, type SqlParamRefMutator, type SqlParamRefMutatorInternal, SqlPlan, SqlQueryPlan, SqlQueryable, SqlStatementStats, SqlTextCodec, SqlTextDescriptor, SqlTransaction, SqlVarcharCodec, SqlVarcharDescriptor, SubqueryExpr, TableDef, TableKey, TableMetadata, TableRef, TableSource, TablesOf, ToWhereExpr, TraitExpression, TypeHelperRegistry, UniqueConstraint, UpdateAst, WhereArg, WindowFn, WindowFuncExpr, aggregateFnNames, buildOperation, codecOf, collectOrderedParamRefs, compact, createRawSql, createSqlParamRefMutator, encodeListLiteralDefault, encodeLiteralDefault, frozenCodecRef, isAggregateFn, isDdlNode, isExpression, isOrderByDirection, isOrderByNulls, isQueryAst, isWhereExpr, opaqueSql, param, planFromAst, queryAstKinds, renderOpaqueSql, sqlCharColumn, sqlCharDecode, sqlCharDescriptor, sqlCharEncode, sqlCharRenderOutputType, sqlFloatColumn, sqlFloatDecode, sqlFloatDescriptor, sqlFloatEncode, sqlIntColumn, sqlIntDecode, sqlIntDescriptor, sqlIntEncode, sqlTextColumn, sqlTextDecode, sqlTextDescriptor, sqlTextEncode, sqlVarcharColumn, sqlVarcharDecode, sqlVarcharDescriptor, sqlVarcharEncode, sqlVarcharRenderOutputType, toExpr, whereExprKinds };
@@ -1,5 +1,5 @@
1
1
  import { $ as InsertValue, A as DefaultValueExpr, At as SqlCodecCallContext, B as EqColJoinOn, Bt as WindowFuncExpr, C as CodecCallContext$1, Ct as RawExpr, D as CodecTrait$1, Dt as RawSqlLiteral, E as CodecRef$1, Et as RawQueryResult, F as DescriptorCodecJson, Ft as TableSource, G as ExpressionSource, Gt as isOrderByNulls, H as ExprVisitor, Ht as frozenCodecRef, I as DescriptorCodecTraits, It as ToWhereExpr, J as FunctionSource, Jt as queryAstKinds, K as ExtractCodecTypes, Kt as isQueryAst, L as Direction, Lt as UpdateAst, M as DerivedTableSource, Mt as SqlColumnRef, N as DescriptorCodecId, Nt as SubqueryExpr, O as ColumnRef, Ot as SelectAst, P as DescriptorCodecInput, Pt as TableRef, Q as InsertOnConflict, R as DoNothingConflictAction, Rt as WhereArg, S as Codec$1, St as ProjectionItem, T as CodecJsonValueProjection, Tt as RawQueryColumn, U as ExpressionFolder, Ut as isAggregateFn, V as ExistsExpr, Vt as aggregateFnNames, W as ExpressionRewriter, Wt as isOrderByDirection, X as IdentifierRef, Y as FunctionSourceAlias, Yt as whereExprKinds, Z as InsertAst, _ as BinaryExpr, _t as OrderByItem, a as AndExpr, at as JsonObjectExpr, b as CaseExpr, bt as PreparedParamRef, c as AnyExpression, ct as ListExpression, d as AnyInsertValue, dt as LoweredStatement, et as JoinAst, f as AnyJsonValueProjection, ft as NativeJsonValueProjection, g as AstRewriter, gt as OrExpr, h as AnyQueryAst, ht as OperationExpr, i as AggregateOpFn, it as JsonObjectEntry, j as DeleteAst, jt as SqlCodecInstanceContext, k as ContractCodecRegistry, kt as SelectAstOptions, l as AnyFromSource, lt as LiteralExpr, m as AnyParamRef, mt as NullCheckExpr, n as AggregateExpr, nt as JsonArrayAggExpr, o as AnyCodecDescriptor, ot as JsonValueProjectionVisitor, p as AnyOperationArg, pt as NotExpr, q as FunctionCallExpr, qt as isWhereExpr, r as AggregateFn, rt as JsonDocumentProjection, s as AnyCodecDescriptorTemplate, st as LimitOffsetValue, t as AggregateCountFn, tt as JoinOnExpr, u as AnyInsertOnConflictAction, ut as LoweredParam, v as BinaryOp, vt as OrderByNulls, w as CodecDescriptor$1, wt as RawQueryAst, x as CastExpr, xt as ProjectionExpr, y as CaseBranch, yt as ParamRef, z as DoUpdateSetConflictAction, zt as WindowFn } from "./types-Dskga3R1-DeSwpS4A.mjs";
2
- import { a as SqlDriverState, c as SqlQueryable, i as SqlDriver, l as SqlStatementStats, n as PreparedStatementHandle, o as SqlExecuteRequest, r as SqlConnection, s as SqlExplainResult, t as PreparedExecuteRequest, u as SqlTransaction } from "./driver-types-DYGFEcyv-DPaNalPf.mjs";
2
+ import { a as SqlDriverState, c as SqlQueryable, i as SqlDriver, l as SqlStatementStats, n as PreparedStatementHandle, o as SqlExecuteRequest, r as SqlConnection, s as SqlExplainResult, t as PreparedExecuteRequest, u as SqlTransaction } from "./driver-types-DRsYeq3j-X_D6hNMZ.mjs";
3
3
  import { a as DdlNode, c as FunctionColumnDefault, d as PrimaryKeyConstraint, f as UniqueConstraint, h as renderOpaqueSql, i as DdlColumnDefault, l as LiteralColumnDefault, m as opaqueSql, n as CheckExpressionConstraint, o as DdlTableConstraint, p as isDdlNode, r as DdlColumn, s as ForeignKeyConstraint, t as AnyDdlColumnDefault, u as OpaqueSql } from "./ddl-types-CWIiJxsH-BixiHVIr.mjs";
4
- import { A as sqlCharDescriptor, B as sqlIntEncode, C as SqlVarcharDescriptor, D as encodeLiteralDefault, E as encodeListLiteralDefault, F as sqlFloatDescriptor, G as sqlVarcharColumn, H as sqlTextDecode, I as sqlFloatEncode, J as sqlVarcharEncode, K as sqlVarcharDecode, L as sqlIntColumn, M as sqlCharRenderOutputType, N as sqlFloatColumn, O as sqlCharColumn, P as sqlFloatDecode, R as sqlIntDecode, S as SqlVarcharCodec, T as compact, U as sqlTextDescriptor, V as sqlTextColumn, W as sqlTextEncode, Y as sqlVarcharRenderOutputType, _ as SqlFloatDescriptor, a as LiteralDefaultColumn, b as SqlTextCodec, c as MarkerReadResult, d as SQL_INT_CODEC_ID, f as SQL_TEXT_CODEC_ID, g as SqlFloatCodec, h as SqlCharDescriptor, i as EncodedLiteralDefault, j as sqlCharEncode, k as sqlCharDecode, l as SQL_CHAR_CODEC_ID, m as SqlCharCodec, n as AdapterProfile, o as Lowerer, p as SQL_VARCHAR_CODEC_ID, q as sqlVarcharDescriptor, r as AdapterTarget, s as LowererContext, t as Adapter, u as SQL_FLOAT_CODEC_ID, v as SqlIntCodec, w as collectOrderedParamRefs, x as SqlTextDescriptor, y as SqlIntDescriptor, z as sqlIntDescriptor } from "./ast-Foar49zl.mjs";
4
+ import { A as sqlCharDescriptor, B as sqlIntEncode, C as SqlVarcharDescriptor, D as encodeLiteralDefault, E as encodeListLiteralDefault, F as sqlFloatDescriptor, G as sqlVarcharColumn, H as sqlTextDecode, I as sqlFloatEncode, J as sqlVarcharEncode, K as sqlVarcharDecode, L as sqlIntColumn, M as sqlCharRenderOutputType, N as sqlFloatColumn, O as sqlCharColumn, P as sqlFloatDecode, R as sqlIntDecode, S as SqlVarcharCodec, T as compact, U as sqlTextDescriptor, V as sqlTextColumn, W as sqlTextEncode, Y as sqlVarcharRenderOutputType, _ as SqlFloatDescriptor, a as LiteralDefaultColumn, b as SqlTextCodec, c as MarkerReadResult, d as SQL_INT_CODEC_ID, f as SQL_TEXT_CODEC_ID, g as SqlFloatCodec, h as SqlCharDescriptor, i as EncodedLiteralDefault, j as sqlCharEncode, k as sqlCharDecode, l as SQL_CHAR_CODEC_ID, m as SqlCharCodec, n as AdapterProfile, o as Lowerer, p as SQL_VARCHAR_CODEC_ID, q as sqlVarcharDescriptor, r as AdapterTarget, s as LowererContext, t as Adapter, u as SQL_FLOAT_CODEC_ID, v as SqlIntCodec, w as collectOrderedParamRefs, x as SqlTextDescriptor, y as SqlIntDescriptor, z as sqlIntDescriptor } from "./ast-DgUdnFtz.mjs";
5
5
  export { Adapter, AdapterProfile, AdapterTarget, AggregateCountFn, AggregateExpr, AggregateFn, AggregateOpFn, AndExpr, AnyCodecDescriptor, AnyCodecDescriptorTemplate, AnyDdlColumnDefault, AnyExpression, AnyFromSource, AnyInsertOnConflictAction, AnyInsertValue, AnyJsonValueProjection, AnyOperationArg, AnyParamRef, AnyQueryAst, AstRewriter, BinaryExpr, BinaryOp, CaseBranch, CaseExpr, CastExpr, CheckExpressionConstraint, Codec$1 as Codec, type CodecCallContext$1 as CodecCallContext, type CodecDescriptor$1 as CodecDescriptor, CodecJsonValueProjection, type CodecRef$1 as CodecRef, type CodecTrait$1 as CodecTrait, ColumnRef, ContractCodecRegistry, DdlColumn, DdlColumnDefault, DdlNode, DdlTableConstraint, DefaultValueExpr, DeleteAst, DerivedTableSource, DescriptorCodecId, DescriptorCodecInput, DescriptorCodecJson, DescriptorCodecTraits, Direction, DoNothingConflictAction, DoUpdateSetConflictAction, EncodedLiteralDefault, EqColJoinOn, ExistsExpr, ExprVisitor, ExpressionFolder, ExpressionRewriter, ExpressionSource, ExtractCodecTypes, ForeignKeyConstraint, FunctionCallExpr, FunctionColumnDefault, FunctionSource, FunctionSourceAlias, IdentifierRef, InsertAst, InsertOnConflict, InsertValue, JoinAst, JoinOnExpr, JsonArrayAggExpr, JsonDocumentProjection, JsonObjectEntry, JsonObjectExpr, JsonValueProjectionVisitor, LimitOffsetValue, ListExpression, LiteralColumnDefault, LiteralDefaultColumn, LiteralExpr, LoweredParam, LoweredStatement, Lowerer, LowererContext, MarkerReadResult, NativeJsonValueProjection, NotExpr, NullCheckExpr, OpaqueSql, OperationExpr, OrExpr, OrderByItem, OrderByNulls, ParamRef, PreparedExecuteRequest, PreparedParamRef, PreparedStatementHandle, PrimaryKeyConstraint, ProjectionExpr, ProjectionItem, RawExpr, RawQueryAst, RawQueryColumn, RawQueryResult, RawSqlLiteral, SQL_CHAR_CODEC_ID, SQL_FLOAT_CODEC_ID, SQL_INT_CODEC_ID, SQL_TEXT_CODEC_ID, SQL_VARCHAR_CODEC_ID, SelectAst, SelectAstOptions, SqlCharCodec, SqlCharDescriptor, SqlCodecCallContext, SqlCodecInstanceContext, SqlColumnRef, SqlConnection, SqlDriver, SqlDriverState, SqlExecuteRequest, SqlExplainResult, SqlFloatCodec, SqlFloatDescriptor, SqlIntCodec, SqlIntDescriptor, SqlQueryable, SqlStatementStats, SqlTextCodec, SqlTextDescriptor, SqlTransaction, SqlVarcharCodec, SqlVarcharDescriptor, SubqueryExpr, TableRef, TableSource, ToWhereExpr, UniqueConstraint, UpdateAst, WhereArg, WindowFn, WindowFuncExpr, aggregateFnNames, collectOrderedParamRefs, compact, encodeListLiteralDefault, encodeLiteralDefault, frozenCodecRef, isAggregateFn, isDdlNode, isOrderByDirection, isOrderByNulls, isQueryAst, isWhereExpr, opaqueSql, queryAstKinds, renderOpaqueSql, sqlCharColumn, sqlCharDecode, sqlCharDescriptor, sqlCharEncode, sqlCharRenderOutputType, sqlFloatColumn, sqlFloatDecode, sqlFloatDescriptor, sqlFloatEncode, sqlIntColumn, sqlIntDecode, sqlIntDescriptor, sqlIntEncode, sqlTextColumn, sqlTextDecode, sqlTextDescriptor, sqlTextEncode, sqlVarcharColumn, sqlVarcharDecode, sqlVarcharDescriptor, sqlVarcharEncode, sqlVarcharRenderOutputType, whereExprKinds };
@@ -1,2 +1,2 @@
1
- import { C as buildOperation, D as param, E as isExpression, O as toExpr, S as TraitExpression, T as createRawSql, _ as RawSqlStatementBuilder, a as CodecValue, b as ScalarListExpression, c as RawAffectedCountQuery, d as RawRow, f as RawRowQuery, g as RawSqlInterpolation, h as RawSqlBuilder, i as CodecTypesBase, l as RawCodecInferer, m as RawRowSpecEntry, n as BuildOperationSpec, o as Expression, p as RawRowSpec, r as CodecExpression, s as NoReservedRowColumn, t as AffectedCount, u as RawPlanContext, v as RawSqlStatementTag, w as codecOf, x as ScopeField, y as RawSqlTag } from "./expression-DTVL16zb.mjs";
1
+ import { C as buildOperation, D as param, E as isExpression, O as toExpr, S as TraitExpression, T as createRawSql, _ as RawSqlStatementBuilder, a as CodecValue, b as ScalarListExpression, c as RawAffectedCountQuery, d as RawRow, f as RawRowQuery, g as RawSqlInterpolation, h as RawSqlBuilder, i as CodecTypesBase, l as RawCodecInferer, m as RawRowSpecEntry, n as BuildOperationSpec, o as Expression, p as RawRowSpec, r as CodecExpression, s as NoReservedRowColumn, t as AffectedCount, u as RawPlanContext, v as RawSqlStatementTag, w as codecOf, x as ScopeField, y as RawSqlTag } from "./expression-o74FOqh6.mjs";
2
2
  export { AffectedCount, BuildOperationSpec, CodecExpression, CodecTypesBase, CodecValue, Expression, NoReservedRowColumn, RawAffectedCountQuery, RawCodecInferer, RawPlanContext, RawRow, RawRowQuery, RawRowSpec, RawRowSpecEntry, RawSqlBuilder, RawSqlInterpolation, RawSqlStatementBuilder, RawSqlStatementTag, RawSqlTag, ScalarListExpression, ScopeField, TraitExpression, buildOperation, codecOf, createRawSql, isExpression, param, toExpr };
@@ -1,3 +1,3 @@
1
- import { S as TablesOf, _ as SqlOrmPlan, a as ColumnsOf, b as TableKey, c as META, d as ModelMetadata, f as OperationTypeSignature, g as SqlBuilderOptions, h as RuntimeScope, i as ColumnResolutionContract, l as Meta, m as OperationsForTypeId, n as BuildParamsMap, o as ComputeColumnJsType, p as OperationTypes, r as CodecTypes, s as Expr, t as BuildOptions, u as ModelDef, v as SqlPlan, x as TableMetadata, y as TableDef } from "./types-DpwLgzPO-6RCR0XpS.mjs";
2
- import "./types-CxLmS9mV.mjs";
1
+ import { S as TablesOf, _ as SqlOrmPlan, a as ColumnsOf, b as TableKey, c as META, d as ModelMetadata, f as OperationTypeSignature, g as SqlBuilderOptions, h as RuntimeScope, i as ColumnResolutionContract, l as Meta, m as OperationsForTypeId, n as BuildParamsMap, o as ComputeColumnJsType, p as OperationTypes, r as CodecTypes, s as Expr, t as BuildOptions, u as ModelDef, v as SqlPlan, x as TableMetadata, y as TableDef } from "./types-flbim7l7-BbzcJZpz.mjs";
2
+ import "./types-Bb6De1yt.mjs";
3
3
  export { BuildOptions, BuildParamsMap, CodecTypes, ColumnResolutionContract, ColumnsOf, ComputeColumnJsType, Expr, META, Meta, ModelDef, ModelMetadata, OperationTypeSignature, OperationTypes, OperationsForTypeId, type RuntimeScope, SqlBuilderOptions, type SqlOrmPlan, SqlPlan, TableDef, TableKey, TableMetadata, TablesOf };
@@ -1,5 +1,5 @@
1
- import { c as MarkerReadResult } from "./ast-Foar49zl.mjs";
1
+ import { c as MarkerReadResult } from "./ast-DgUdnFtz.mjs";
2
2
  import { c as TypeHelperRegistry, n as ExecutionContext } from "./query-lane-context-OSV9X636-DFRkNeXq.mjs";
3
- import { A as SqlMiddlewareContext, B as TransactionContext, C as RuntimeParameterizedCodecDescriptor, D as SqlExecutionStack, E as RuntimeTransaction, F as SqlRuntimeExtensionDescriptor, G as encodeParamsWithMetadata, H as createExecutionContext, I as SqlRuntimeExtensionInstance, J as withTransaction, L as SqlRuntimeTargetDescriptor, M as SqlRuntimeAdapterInstance, N as SqlRuntimeBase, O as SqlExecutionStackWithDriver, P as SqlRuntimeDriverInstance, R as SqlStaticContributions, S as RuntimeOptions, T as RuntimeTelemetryEvent, U as createSqlExecutionStack, V as VerifyMarkerOption, W as deriveParamMetadata, _ as PreparedStatementInternals, a as DeclaredCodecId, b as RuntimeConnection, c as ParamSpec, d as PreparedExecution, f as PreparedExecutionImpl, g as PreparedStatementImpl, i as Declaration, j as SqlRuntimeAdapterDescriptor, k as SqlMiddleware, l as ParamsFromDeclaration, m as PreparedStatement, n as CloseRefusal, o as DeclaredNullable, p as PreparedFor, r as ConnectionProvider, s as MarkerReader, t as BindSiteParams, u as PrepareCallback, w as RuntimeQueryable, x as RuntimeFamilyAdapter, y as Runtime, z as TelemetryOutcome } from "./prepared-statement-Cv54gpY_-CT1ZL-2j.mjs";
4
- import { a as LintsOptions, c as budgets, d as lints, f as lowerSqlPlan, i as ExecuteInterceptResult, l as createAstCodecRegistry, m as validateContractCodecMappings, n as AfterQueryResult, o as Log, p as validateCodecRegistryCompleteness, r as BudgetsOptions, s as QueryInterceptResult, t as AfterExecuteResult, u as extractCodecIds } from "./index-B_m7BMWx.mjs";
3
+ import { A as SqlMiddlewareContext, B as TransactionContext, C as RuntimeParameterizedCodecDescriptor, D as SqlExecutionStack, E as RuntimeTransaction, F as SqlRuntimeExtensionDescriptor, G as encodeParamsWithMetadata, H as createExecutionContext, I as SqlRuntimeExtensionInstance, J as withTransaction, L as SqlRuntimeTargetDescriptor, M as SqlRuntimeAdapterInstance, N as SqlRuntimeBase, O as SqlExecutionStackWithDriver, P as SqlRuntimeDriverInstance, R as SqlStaticContributions, S as RuntimeOptions, T as RuntimeTelemetryEvent, U as createSqlExecutionStack, V as VerifyMarkerOption, W as deriveParamMetadata, _ as PreparedStatementInternals, a as DeclaredCodecId, b as RuntimeConnection, c as ParamSpec, d as PreparedExecution, f as PreparedExecutionImpl, g as PreparedStatementImpl, i as Declaration, j as SqlRuntimeAdapterDescriptor, k as SqlMiddleware, l as ParamsFromDeclaration, m as PreparedStatement, n as CloseRefusal, o as DeclaredNullable, p as PreparedFor, r as ConnectionProvider, s as MarkerReader, t as BindSiteParams, u as PrepareCallback, w as RuntimeQueryable, x as RuntimeFamilyAdapter, y as Runtime, z as TelemetryOutcome } from "./prepared-statement-YtgdlN7e-BryEFERH.mjs";
4
+ import { a as LintsOptions, c as budgets, d as lints, f as lowerSqlPlan, i as ExecuteInterceptResult, l as createAstCodecRegistry, m as validateContractCodecMappings, n as AfterQueryResult, o as Log, p as validateCodecRegistryCompleteness, r as BudgetsOptions, s as QueryInterceptResult, t as AfterExecuteResult, u as extractCodecIds } from "./index-DCKjTi7L.mjs";
5
5
  export { type AfterExecuteResult, type AfterQueryResult, type BindSiteParams, type BudgetsOptions, type CloseRefusal, type ConnectionProvider, type Declaration, type DeclaredCodecId, type DeclaredNullable, type ExecuteInterceptResult, type ExecutionContext, 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 Runtime, type RuntimeConnection, type RuntimeFamilyAdapter, 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 TelemetryOutcome, type TransactionContext, type TypeHelperRegistry, type VerifyMarkerOption, budgets, createAstCodecRegistry, createExecutionContext, createSqlExecutionStack, deriveParamMetadata, encodeParamsWithMetadata, extractCodecIds, lints, lowerSqlPlan, validateCodecRegistryCompleteness, validateContractCodecMappings, withTransaction };
package/dist/runtime.mjs CHANGED
@@ -12,12 +12,12 @@ import { blindCast } from "@prisma/orm-framework/utils/casts";
12
12
  import { ifDefined } from "@prisma/orm-framework/utils/defined";
13
13
  import { assertNever, isInternalError } from "@prisma/orm-framework/utils/internal-error";
14
14
  import { checkContractComponentRequirements, mergeCapabilityMatrices } from "@prisma/orm-framework/components/components";
15
- import { AsyncIterableResult, RuntimeCore, applyMutationDefaults, assertMutationDefaultGeneratorsAvailable, checkAborted, checkMiddlewareCompatibility, collectMutationDefaultGenerators, raceAgainstAbort, runBeforeExecuteChain, runBeforeQueryChain, runExecuteWithMiddleware, runQueryWithMiddleware, runtimeError as runtimeError$1 } from "@prisma/orm-framework/components/runtime";
15
+ import { AsyncIterableResult, RuntimeCore, applyMutationDefaults, assertMutationDefaultGeneratorsAvailable, checkAborted, checkMiddlewareCompatibility, collectMutationDefaultGenerators, onQueryEndOutsideTransaction, raceAgainstAbort, reportExecuteEnding, reportQueryEnding, runBeforeExecuteChain, runBeforeQueryChain, runExecuteWithMiddleware, runQueryWithMiddleware, runtimeError as runtimeError$1 } from "@prisma/orm-framework/components/runtime";
16
16
  import { canonicalizeJson } from "@prisma/orm-framework/components/utils";
17
17
  import { canonicalStringify } from "@prisma/orm-framework/utils/canonical-stringify";
18
18
  import { createExecutionStack } from "@prisma/orm-framework/components/execution";
19
19
  import { hashContent } from "@prisma/orm-framework/utils/hash-content";
20
- //#region ../../../2-sql/5-runtime/dist/exports-CpMH6Ux-.mjs
20
+ //#region ../../../2-sql/5-runtime/dist/exports-D-zfG6F6.mjs
21
21
  /**
22
22
  * Build an {@link AstCodecResolver} bound to a descriptor registry and a per-call instance-context factory.
23
23
  *
@@ -1226,6 +1226,7 @@ var SqlRuntimeBase = class extends RuntimeCore {
1226
1226
  #refusing = false;
1227
1227
  #heldQueryables = /* @__PURE__ */ new WeakSet();
1228
1228
  #preparedStatementHandles = /* @__PURE__ */ new WeakMap();
1229
+ #openTransactions = /* @__PURE__ */ new WeakMap();
1229
1230
  codecRegistryValidated;
1230
1231
  _telemetry;
1231
1232
  constructor(options) {
@@ -1372,13 +1373,23 @@ var SqlRuntimeBase = class extends RuntimeCore {
1372
1373
  if (queryable === this.driver && this.#refusing) throw runtimeClosedError();
1373
1374
  return this.#inFlight.begin();
1374
1375
  }
1376
+ scheduleAfterTransaction(queryable, exec, ctx) {
1377
+ const runStage = this.afterTransactionStageFor(exec, ctx);
1378
+ if (runStage === void 0) return void 0;
1379
+ const rememberOnTransaction = this.#openTransactions.get(queryable);
1380
+ return rememberOnTransaction === void 0 ? onQueryEndOutsideTransaction(runStage) : rememberOnTransaction(runStage);
1381
+ }
1375
1382
  getListDecoder() {
1376
1383
  return sqlNativeArrayListDecoder;
1377
1384
  }
1378
- async *streamRows(exec, decodeContext, driverCall, codecCtx, execMiddlewareCtx, queryable, onDriverAnswered) {
1385
+ streamRows(exec, createDecodeContext, driverCall, codecCtx, execMiddlewareCtx, queryable, onDriverAnswered) {
1386
+ return reportQueryEnding(this.scheduleAfterTransaction(queryable, exec, execMiddlewareCtx), () => this.streamDecodedRows(exec, createDecodeContext, driverCall, codecCtx, execMiddlewareCtx, queryable, onDriverAnswered));
1387
+ }
1388
+ async *streamDecodedRows(exec, createDecodeContext, driverCall, codecCtx, execMiddlewareCtx, queryable, onDriverAnswered) {
1389
+ const rowDecodeContext = createDecodeContext();
1379
1390
  await this.setupDriverExecution(exec, queryable);
1380
1391
  const startedAt = Date.now();
1381
- let outcome = null;
1392
+ let telemetryOutcome = null;
1382
1393
  try {
1383
1394
  const iterator = runQueryWithMiddleware(exec, this.middleware, execMiddlewareCtx, driverCall)[Symbol.asyncIterator]();
1384
1395
  let answered = false;
@@ -1388,17 +1399,17 @@ var SqlRuntimeBase = class extends RuntimeCore {
1388
1399
  const next = answered ? await iterator.next() : await iterator.next().finally(onDriverAnswered);
1389
1400
  answered = true;
1390
1401
  if (next.done) break;
1391
- yield blindCast(await decodeRow(next.value, decodeContext, codecCtx, this.getListDecoder()));
1402
+ yield blindCast(await decodeRow(next.value, rowDecodeContext, codecCtx, this.getListDecoder()));
1392
1403
  }
1393
1404
  } finally {
1394
1405
  await iterator.return?.();
1395
1406
  }
1396
- outcome = "success";
1407
+ telemetryOutcome = "success";
1397
1408
  } catch (error) {
1398
- outcome = "runtime-error";
1409
+ telemetryOutcome = "runtime-error";
1399
1410
  throw error;
1400
1411
  } finally {
1401
- if (outcome !== null) this.recordTelemetry(exec, outcome, Date.now() - startedAt);
1412
+ if (telemetryOutcome !== null) this.recordTelemetry(exec, telemetryOutcome, Date.now() - startedAt);
1402
1413
  }
1403
1414
  }
1404
1415
  createQueryContexts(options) {
@@ -1452,8 +1463,7 @@ var SqlRuntimeBase = class extends RuntimeCore {
1452
1463
  const endOperation = self.beginOperation(queryable);
1453
1464
  try {
1454
1465
  const exec = await self.prepareQueryExecution(plan, codecCtx, middlewareCtx);
1455
- const decodeContext = buildDecodeContext(exec.ast, self.contractCodecs);
1456
- yield* self.streamRows(exec, decodeContext, () => queryable.query({
1466
+ yield* self.streamRows(exec, () => buildDecodeContext(exec.ast, self.contractCodecs), () => queryable.query({
1457
1467
  sql: exec.sql,
1458
1468
  params: exec.params
1459
1469
  }), codecCtx, middlewareCtx, queryable, endOperation);
@@ -1476,21 +1486,26 @@ var SqlRuntimeBase = class extends RuntimeCore {
1476
1486
  this.ensureCodecRegistryValidated();
1477
1487
  const { codecCtx, middlewareCtx } = this.createQueryContexts(options);
1478
1488
  const exec = await this.prepareExecuteExecution(plan, codecCtx, middlewareCtx);
1479
- await this.setupDriverExecution(exec, queryable);
1480
- checkAborted(codecCtx, "stream");
1481
- const startedAt = Date.now();
1482
- let outcome = "success";
1483
- try {
1484
- return await runExecuteWithMiddleware(exec, this.middleware, middlewareCtx, () => queryable.execute({
1485
- sql: exec.sql,
1486
- params: exec.params
1487
- }));
1488
- } catch (error) {
1489
- outcome = "runtime-error";
1490
- throw error;
1491
- } finally {
1492
- this.recordTelemetry(exec, outcome, Date.now() - startedAt);
1493
- }
1489
+ return this.executeEncodedPlan(exec, queryable, codecCtx, middlewareCtx, () => queryable.execute({
1490
+ sql: exec.sql,
1491
+ params: exec.params
1492
+ }));
1493
+ }
1494
+ executeEncodedPlan(exec, queryable, codecCtx, middlewareCtx, driverCall) {
1495
+ return reportExecuteEnding(this.scheduleAfterTransaction(queryable, exec, middlewareCtx), async () => {
1496
+ await this.setupDriverExecution(exec, queryable);
1497
+ checkAborted(codecCtx, "stream");
1498
+ const startedAt = Date.now();
1499
+ let telemetryOutcome = "success";
1500
+ try {
1501
+ return await runExecuteWithMiddleware(exec, this.middleware, middlewareCtx, driverCall);
1502
+ } catch (error) {
1503
+ telemetryOutcome = "runtime-error";
1504
+ throw error;
1505
+ } finally {
1506
+ this.recordTelemetry(exec, telemetryOutcome, Date.now() - startedAt);
1507
+ }
1508
+ });
1494
1509
  }
1495
1510
  async prepare(declaration, callback) {
1496
1511
  this.ensureCodecRegistryValidated();
@@ -1561,7 +1576,7 @@ var SqlRuntimeBase = class extends RuntimeCore {
1561
1576
  }
1562
1577
  }
1563
1578
  };
1564
- yield* this.streamRows(exec, ps.decodeContext, () => queryable.query(request), codecCtx, execMiddlewareCtx, queryable, onDriverAnswered);
1579
+ yield* this.streamRows(exec, () => ps.decodeContext, () => queryable.query(request), codecCtx, execMiddlewareCtx, queryable, onDriverAnswered);
1565
1580
  }
1566
1581
  /** Execute a prepared statement's statistics against a caller-supplied queryable through the full pipeline. */
1567
1582
  async runPreparedExecuteAgainstQueryable(ps, userParams, queryable, options) {
@@ -1591,8 +1606,6 @@ var SqlRuntimeBase = class extends RuntimeCore {
1591
1606
  ast: ps.ast,
1592
1607
  meta: ps.meta
1593
1608
  };
1594
- await this.setupDriverExecution(exec, queryable);
1595
- checkAborted(codecCtx, "stream");
1596
1609
  const handles = this.#preparedStatementHandles;
1597
1610
  const request = {
1598
1611
  sql: exec.sql,
@@ -1604,16 +1617,7 @@ var SqlRuntimeBase = class extends RuntimeCore {
1604
1617
  }
1605
1618
  }
1606
1619
  };
1607
- const startedAt = Date.now();
1608
- let outcome = "success";
1609
- try {
1610
- return await runExecuteWithMiddleware(exec, this.middleware, middlewareCtx, () => queryable.execute(request));
1611
- } catch (error) {
1612
- outcome = "runtime-error";
1613
- throw error;
1614
- } finally {
1615
- this.recordTelemetry(exec, outcome, Date.now() - startedAt);
1616
- }
1620
+ return this.executeEncodedPlan(exec, queryable, codecCtx, middlewareCtx, () => queryable.execute(request));
1617
1621
  }
1618
1622
  async connection() {
1619
1623
  const endOperation = this.beginOperation(this.driver);
@@ -1628,7 +1632,8 @@ var SqlRuntimeBase = class extends RuntimeCore {
1628
1632
  return {
1629
1633
  async transaction() {
1630
1634
  const driverTx = await self.#inFlight.track(() => driverConn.beginTransaction());
1631
- return self.wrapTransaction(driverTx);
1635
+ self.#heldQueryables.add(driverTx);
1636
+ return self.wrapTransaction(driverTx, driverConn);
1632
1637
  },
1633
1638
  async release() {
1634
1639
  await self.#inFlight.track(() => driverConn.release());
@@ -1662,15 +1667,32 @@ var SqlRuntimeBase = class extends RuntimeCore {
1662
1667
  }
1663
1668
  };
1664
1669
  }
1665
- wrapTransaction(driverTx) {
1666
- this.#heldQueryables.add(driverTx);
1670
+ /**
1671
+ * Wraps a driver transaction so every query run on it passes through the runtime with `scope: 'transaction'`, and fires each query's `afterTransaction` stage once when the transaction ends. `connection` is the connection `driverTx` was begun on. A query sent on it, or on the transaction, from now until `commit()` or `rollback()` is called runs inside the transaction, so its stage also fires when the transaction ends. A subclass that begins a driver transaction itself returns it through this wrapper. A transaction a subclass wraps reads the contract marker through the driver; only the connections and transactions this class hands out read it through themselves.
1672
+ */
1673
+ wrapTransaction(driverTx, connection) {
1674
+ const remembered = this.anyMiddlewareDeclaresAfterTransaction ? this.rememberQueriesUntilEnd([driverTx, connection]) : void 0;
1675
+ let commitAttempted = false;
1667
1676
  const self = this;
1668
1677
  return {
1669
1678
  async commit() {
1670
- await self.#inFlight.track(() => driverTx.commit());
1679
+ commitAttempted = true;
1680
+ remembered?.stopRemembering();
1681
+ try {
1682
+ await self.#inFlight.track(() => driverTx.commit());
1683
+ } catch (error) {
1684
+ await remembered?.end("unknown");
1685
+ throw error;
1686
+ }
1687
+ await remembered?.end("committed");
1671
1688
  },
1672
1689
  async rollback() {
1673
- await self.#inFlight.track(() => driverTx.rollback());
1690
+ remembered?.stopRemembering();
1691
+ try {
1692
+ await self.#inFlight.track(() => driverTx.rollback());
1693
+ } finally {
1694
+ await remembered?.end(commitAttempted ? "unknown" : "rolled-back");
1695
+ }
1674
1696
  },
1675
1697
  query(plan, options) {
1676
1698
  return self.queryAgainstQueryable(plan, driverTx, {
@@ -1698,6 +1720,26 @@ var SqlRuntimeBase = class extends RuntimeCore {
1698
1720
  }
1699
1721
  };
1700
1722
  }
1723
+ rememberQueriesUntilEnd(queryables) {
1724
+ const awaitingTransactionEnd = [];
1725
+ let aQueryFailed = false;
1726
+ const remember = (runStage) => {
1727
+ awaitingTransactionEnd.push(runStage);
1728
+ return async (ending) => {
1729
+ if (ending === "failed") aQueryFailed = true;
1730
+ };
1731
+ };
1732
+ for (const queryable of queryables) this.#openTransactions.set(queryable, remember);
1733
+ return {
1734
+ stopRemembering: () => {
1735
+ for (const queryable of queryables) if (this.#openTransactions.get(queryable) === remember) this.#openTransactions.delete(queryable);
1736
+ },
1737
+ end: async (outcome) => {
1738
+ const reported = outcome === "committed" && aQueryFailed ? "unknown" : outcome;
1739
+ for (const runStage of awaitingTransactionEnd.splice(0)) await runStage({ outcome: reported });
1740
+ }
1741
+ };
1742
+ }
1701
1743
  telemetry() {
1702
1744
  return this._telemetry;
1703
1745
  }