@shivaedev/effect-prisma 0.6.3 → 0.7.0

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 (138) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/dist/bin/normalize-contract.js +1 -0
  3. package/dist/bin/normalize-contract.js.map +1 -1
  4. package/dist/database.d.ts +4 -4
  5. package/dist/database.d.ts.map +1 -1
  6. package/dist/database.js +12 -12
  7. package/dist/database.js.map +1 -1
  8. package/dist/error.d.ts +5 -5
  9. package/dist/error.d.ts.map +1 -1
  10. package/dist/error.js +5 -6
  11. package/dist/error.js.map +1 -1
  12. package/dist/index.d.ts +3 -3
  13. package/dist/internal/adapters/transaction-settlement.d.ts +10 -0
  14. package/dist/internal/adapters/transaction-settlement.d.ts.map +1 -0
  15. package/dist/internal/adapters/transaction-settlement.js +56 -0
  16. package/dist/internal/adapters/transaction-settlement.js.map +1 -0
  17. package/dist/internal/client-lifecycle.d.ts +2 -2
  18. package/dist/internal/client-lifecycle.d.ts.map +1 -1
  19. package/dist/internal/client-lifecycle.js.map +1 -1
  20. package/dist/internal/contract-normalization.d.ts +0 -4
  21. package/dist/internal/contract-normalization.d.ts.map +1 -1
  22. package/dist/internal/contract-normalization.js +5 -10
  23. package/dist/internal/contract-normalization.js.map +1 -1
  24. package/dist/internal/database-facade.d.ts +19 -0
  25. package/dist/internal/database-facade.d.ts.map +1 -0
  26. package/dist/internal/database-facade.js +79 -0
  27. package/dist/internal/database-facade.js.map +1 -0
  28. package/dist/internal/database-factory.d.ts +4 -48
  29. package/dist/internal/database-factory.d.ts.map +1 -1
  30. package/dist/internal/database-factory.js +11 -90
  31. package/dist/internal/database-factory.js.map +1 -1
  32. package/dist/internal/database-types.d.ts +33 -0
  33. package/dist/internal/database-types.d.ts.map +1 -0
  34. package/dist/internal/database-types.js +2 -0
  35. package/dist/internal/database-types.js.map +1 -0
  36. package/dist/internal/dynamic.d.ts +5 -0
  37. package/dist/internal/dynamic.d.ts.map +1 -0
  38. package/dist/internal/dynamic.js +12 -0
  39. package/dist/internal/dynamic.js.map +1 -0
  40. package/dist/internal/executor.d.ts +3 -7
  41. package/dist/internal/executor.d.ts.map +1 -1
  42. package/dist/internal/promise.d.ts +1 -1
  43. package/dist/internal/promise.d.ts.map +1 -1
  44. package/dist/internal/promise.js +2 -4
  45. package/dist/internal/promise.js.map +1 -1
  46. package/dist/internal/query-execution.d.ts +2 -2
  47. package/dist/internal/query-execution.d.ts.map +1 -1
  48. package/dist/internal/query-execution.js +2 -6
  49. package/dist/internal/query-execution.js.map +1 -1
  50. package/dist/internal/recipe.d.ts +3 -3
  51. package/dist/internal/recipe.d.ts.map +1 -1
  52. package/dist/internal/recipe.js +9 -20
  53. package/dist/internal/recipe.js.map +1 -1
  54. package/dist/internal/relation-plan.d.ts +1 -1
  55. package/dist/internal/relation-result.d.ts +4 -0
  56. package/dist/internal/relation-result.d.ts.map +1 -0
  57. package/dist/internal/relation-result.js +19 -0
  58. package/dist/internal/relation-result.js.map +1 -0
  59. package/dist/internal/relation-runtime.d.ts +3 -3
  60. package/dist/internal/relation-runtime.d.ts.map +1 -1
  61. package/dist/internal/relation-runtime.js +12 -37
  62. package/dist/internal/relation-runtime.js.map +1 -1
  63. package/dist/internal/relation-stream.d.ts +3 -3
  64. package/dist/internal/relation-stream.d.ts.map +1 -1
  65. package/dist/internal/relation-stream.js +20 -24
  66. package/dist/internal/relation-stream.js.map +1 -1
  67. package/dist/internal/sqlite-datetime.d.ts +1 -27
  68. package/dist/internal/sqlite-datetime.d.ts.map +1 -1
  69. package/dist/internal/sqlite-datetime.js +16 -35
  70. package/dist/internal/sqlite-datetime.js.map +1 -1
  71. package/dist/internal/sqlite-pragmas.d.ts +1 -13
  72. package/dist/internal/sqlite-pragmas.d.ts.map +1 -1
  73. package/dist/internal/sqlite-pragmas.js +2 -12
  74. package/dist/internal/sqlite-pragmas.js.map +1 -1
  75. package/dist/internal/testing.d.ts +1 -1
  76. package/dist/internal/testing.d.ts.map +1 -1
  77. package/dist/internal/testing.js +5 -2
  78. package/dist/internal/testing.js.map +1 -1
  79. package/dist/internal/transaction.d.ts +5 -5
  80. package/dist/internal/transaction.d.ts.map +1 -1
  81. package/dist/internal/transaction.js +5 -53
  82. package/dist/internal/transaction.js.map +1 -1
  83. package/dist/relation/include-metadata.d.ts +1 -1
  84. package/dist/relation/include-metadata.d.ts.map +1 -1
  85. package/dist/relation/include.d.ts +8 -5
  86. package/dist/relation/include.d.ts.map +1 -1
  87. package/dist/relation/prisma-methods.d.ts +17 -17
  88. package/dist/relation/prisma-methods.d.ts.map +1 -1
  89. package/dist/relation.d.ts +4 -4
  90. package/dist/relation.d.ts.map +1 -1
  91. package/dist/sqlite.d.ts +5 -10
  92. package/dist/sqlite.d.ts.map +1 -1
  93. package/dist/sqlite.js +14 -12
  94. package/dist/sqlite.js.map +1 -1
  95. package/dist/testing/transaction.d.ts +6 -7
  96. package/dist/testing/transaction.d.ts.map +1 -1
  97. package/dist/testing/transaction.js +2 -2
  98. package/dist/testing/transaction.js.map +1 -1
  99. package/dist/testing/types.d.ts +7 -7
  100. package/dist/testing/types.d.ts.map +1 -1
  101. package/dist/testing/vitest.d.ts +3 -3
  102. package/dist/testing/vitest.d.ts.map +1 -1
  103. package/dist/testing/vitest.js +2 -2
  104. package/dist/testing/vitest.js.map +1 -1
  105. package/dist/testing.d.ts +3 -3
  106. package/package.json +35 -37
  107. package/src/bin/normalize-contract.ts +2 -1
  108. package/src/database.ts +49 -67
  109. package/src/error.ts +13 -23
  110. package/src/index.ts +3 -3
  111. package/src/internal/adapters/transaction-settlement.ts +70 -0
  112. package/src/internal/client-lifecycle.ts +4 -11
  113. package/src/internal/contract-normalization.ts +6 -14
  114. package/src/internal/database-facade.ts +138 -0
  115. package/src/internal/database-factory.ts +34 -306
  116. package/src/internal/database-types.ts +65 -0
  117. package/src/internal/dynamic.ts +16 -0
  118. package/src/internal/executor.ts +4 -11
  119. package/src/internal/promise.ts +4 -12
  120. package/src/internal/query-execution.ts +4 -8
  121. package/src/internal/recipe.ts +24 -89
  122. package/src/internal/relation-plan.ts +1 -1
  123. package/src/internal/relation-result.ts +27 -0
  124. package/src/internal/relation-runtime.ts +45 -135
  125. package/src/internal/relation-stream.ts +24 -51
  126. package/src/internal/sqlite-datetime.ts +20 -54
  127. package/src/internal/sqlite-pragmas.ts +3 -16
  128. package/src/internal/testing.ts +13 -15
  129. package/src/internal/transaction.ts +16 -109
  130. package/src/relation/include-metadata.ts +11 -43
  131. package/src/relation/include.ts +46 -140
  132. package/src/relation/prisma-methods.ts +36 -122
  133. package/src/relation.ts +20 -48
  134. package/src/sqlite.ts +59 -85
  135. package/src/testing/transaction.ts +20 -33
  136. package/src/testing/types.ts +15 -34
  137. package/src/testing/vitest.ts +14 -28
  138. package/src/testing.ts +3 -3
package/CHANGELOG.md CHANGED
@@ -1,6 +1,31 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased
3
+ ## 0.7.0 - 2026-10-04
4
+
5
+ ### Changed
6
+
7
+ - Consolidate duplicate test cases around observable package behavior.
8
+ - The function members of the relation, collection and database types are declared as properties, so TypeScript checks their parameters strictly.
9
+
10
+ - Validate packed consumers and executable bins through the shared workspace gate.
11
+
12
+ - Replace JSDoc blocks with short reason comments, so the package passes the comment rules of `@shivaedev/quality`.
13
+
14
+ - Build with the `@shivaedev/quality` tsconfig presets, which target ESNext and allow only erasable TypeScript syntax, so classes declare their fields instead of using constructor parameter properties.
15
+
16
+ - Type-check with TypeScript 7 only. TypeScript 6 still builds the package.
17
+
18
+ - Lint and format with the `@shivaedev/quality` Biome preset through `quality lint` at the repository root, which replaces the package's `check` script.
19
+
20
+ - Run tests through the `@shivaedev/quality` Vitest projects, which take a test's environment from its file name. Type tests are named `*.typecheck.test.ts`.
21
+
22
+ - Keep `package.json` in sort-package-json key order, checked by `quality lint`.
23
+
24
+ ## 0.6.4 - 2026-09-26
25
+
26
+ ### Changed
27
+
28
+ - Require Effect Test 0.1.2, whose `eventually` retries only typed failures.
4
29
 
5
30
  ## 0.6.3 - 2026-09-04
6
31
 
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { readFile, writeFile } from "node:fs/promises";
3
+ import process from "node:process";
3
4
  import { normalizePrismaNextContractTypes } from "../internal/contract-normalization.js";
4
5
  const arguments_ = process.argv.slice(2);
5
6
  if (arguments_.length !== 1 || arguments_[0] === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-contract.js","sourceRoot":"","sources":["../../src/bin/normalize-contract.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AAEzF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;IAC5D,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AACpD,MAAM,UAAU,GAAG,gCAAgC,CAAC,MAAM,CAAC,CAAC;AAE5D,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;IAC3B,MAAM,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"normalize-contract.js","sourceRoot":"","sources":["../../src/bin/normalize-contract.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AAEzF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;IAC5D,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AACpD,MAAM,UAAU,GAAG,gCAAgC,CAAC,MAAM,CAAC,CAAC;AAE5D,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;IAC3B,MAAM,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { type PostgresOptionsBase } from "@prisma-next/postgres/runtime";
2
2
  import { type Layer, Redacted } from "effect";
3
- import type { PrismaError } from "./error.js";
4
- import { type DatabaseIdentifier, type DatabaseIdentifierLiteral, type DatabaseServiceHolder } from "./internal/database-factory.js";
5
- import type { AnySqlContract } from "./internal/executor.js";
6
- export type { AnyDatabase, DatabaseService, DatabaseServiceOf, } from "./internal/database-factory.js";
3
+ import type { PrismaError } from "./error.ts";
4
+ import type { DatabaseIdentifier, DatabaseIdentifierLiteral, DatabaseServiceHolder } from "./internal/database-types.ts";
5
+ import type { AnySqlContract } from "./internal/executor.ts";
6
+ export type { AnyDatabase, DatabaseService, DatabaseServiceOf, } from "./internal/database-types.ts";
7
7
  export interface DatabaseLayerOptions extends PostgresOptionsBase {
8
8
  readonly url: string | Redacted.Redacted<string>;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAiB,EAEhB,KAAK,mBAAmB,EACxB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAI1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,YAAY,EACX,WAAW,EACX,eAAe,EACf,iBAAiB,GACjB,MAAM,gCAAgC,CAAC;AAExC,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAChE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CACjD;AAED,KAAK,sBAAsB,CAAC,QAAQ,SAAS,cAAc,IACxD;IACA,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;CAC7B,GACD;IACA,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CACzB,CAAC;AAEL,MAAM,WAAW,kBAAkB,CAClC,QAAQ,SAAS,cAAc,EAC/B,UAAU,SAAS,MAAM,CACxB,SAAQ,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC;IACpD,QAAQ,CAAC,KAAK,EAAE,CACf,OAAO,EAAE,oBAAoB,KACzB,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC;CACxE;AAMD,eAAO,MAAM,YAAY,GACvB,KAAK,CAAC,QAAQ,SAAS,cAAc,QACrC,KAAK,CAAC,UAAU,SAAS,MAAM,EAC/B,YAAY,yBAAyB,CAAC,UAAU,CAAC,EACjD,SAAS,sBAAsB,CAAC,QAAQ,CAAC,KACvC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CA4CzC,CAAC"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAiB,EAAuB,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACxG,OAAO,EAAE,KAAK,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,qBAAqB,EAAiB,MAAM,8BAA8B,CAAC;AACxI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,YAAY,EACX,WAAW,EACX,eAAe,EACf,iBAAiB,GACjB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAChE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CACjD;AAED,KAAK,sBAAsB,CAAC,QAAQ,SAAS,cAAc,IACxD;IACA,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;CAC7B,GACD;IACA,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CACzB,CAAC;AAEL,MAAM,WAAW,kBAAkB,CAAC,QAAQ,SAAS,cAAc,EAAE,UAAU,SAAS,MAAM,CAAE,SAAQ,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC;IAClJ,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC;CACtH;AAaD,eAAO,MAAM,YAAY,GACvB,KAAK,CAAC,QAAQ,SAAS,cAAc,QACrC,KAAK,CAAC,UAAU,SAAS,MAAM,EAC/B,YAAY,yBAAyB,CAAC,UAAU,CAAC,EACjD,SAAS,sBAAsB,CAAC,QAAQ,CAAC,KACvC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAgCzC,CAAC"}
package/dist/database.js CHANGED
@@ -1,27 +1,27 @@
1
1
  import postgres, {} from "@prisma-next/postgres/runtime";
2
2
  import { Redacted } from "effect";
3
3
  import { acquireConnectedClient } from "./internal/client-lifecycle.js";
4
- import { makeSqlDatabase, namespaceModels, } from "./internal/database-factory.js";
4
+ import { namespaceModels } from "./internal/database-facade.js";
5
+ import { makeSqlDatabase } from "./internal/database-factory.js";
5
6
  import { fromPrismaPromise } from "./internal/promise.js";
7
+ const clientOptions = ({ url, extensions, middleware, poolOptions, verifyMarker }) => ({
8
+ url: typeof url === "string" ? url : Redacted.value(url),
9
+ ...(extensions === undefined ? {} : { extensions }),
10
+ ...(middleware === undefined ? {} : { middleware }),
11
+ ...(poolOptions === undefined ? {} : { poolOptions }),
12
+ ...(verifyMarker === undefined ? {} : { verifyMarker }),
13
+ });
6
14
  const defaultModels = (client) => namespaceModels(client.contract, client.orm);
7
15
  export const makeDatabase = () => (identifier, options) => {
8
16
  return makeSqlDatabase(identifier, (layerOptions) => {
9
- const clientOptions = {
10
- url: typeof layerOptions.url === "string"
11
- ? layerOptions.url
12
- : Redacted.value(layerOptions.url),
13
- extensions: layerOptions.extensions,
14
- middleware: layerOptions.middleware,
15
- poolOptions: layerOptions.poolOptions,
16
- verifyMarker: layerOptions.verifyMarker,
17
- };
17
+ const forwarded = clientOptions(layerOptions);
18
18
  const client = options.contract === undefined
19
19
  ? postgres({
20
- ...clientOptions,
20
+ ...forwarded,
21
21
  contractJson: options.contractJson,
22
22
  })
23
23
  : postgres({
24
- ...clientOptions,
24
+ ...forwarded,
25
25
  contract: options.contract,
26
26
  });
27
27
  return fromPrismaPromise(() => acquireConnectedClient(client, () => ({
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EAGhB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAc,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAKN,eAAe,EACf,eAAe,GACf,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AA+B1D,MAAM,aAAa,GAAG,CACrB,MAA0D,EACjD,EAAE,CAAC,eAAe,CAAmB,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,YAAY,GACxB,GAA0C,EAAE,CAC5C,CACC,UAAiD,EACjD,OAAyC,EACE,EAAE;IAG7C,OAAO,eAAe,CACrB,UAAU,EACV,CAAC,YAAY,EAAE,EAAE;QAChB,MAAM,aAAa,GAAG;YACrB,GAAG,EACF,OAAO,YAAY,CAAC,GAAG,KAAK,QAAQ;gBACnC,CAAC,CAAC,YAAY,CAAC,GAAG;gBAClB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC;YACpC,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,YAAY,EAAE,YAAY,CAAC,YAAY;SACvC,CAAC;QACF,MAAM,MAAM,GACX,OAAO,CAAC,QAAQ,KAAK,SAAS;YAC7B,CAAC,CAAC,QAAQ,CAAW;gBACnB,GAAG,aAAa;gBAChB,YAAY,EAAE,OAAO,CAAC,YAAY;aAClC,CAAC;YACH,CAAC,CAAC,QAAQ,CAAW;gBACnB,GAAG,aAAa;gBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC1B,CAAC,CAAC;QAEN,OAAO,iBAAiB,CAAC,GAAG,EAAE,CAC7B,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACrC,MAAM;YACN,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE;gBACT,UAAU,EAAE,yBAAyB;gBACrC,IAAI,EAAE,IAAI;aACV;YACD,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,aAAa,CAAmB,MAAM,CAAC;YAC/C,cAAc,EAAE,SAAS;YACzB,mBAAmB,EAAE,SAAS;YAC9B,oBAAoB,EAAE,SAAS;SAC/B,CAAC,CAAC,CACH,CAAC;IACH,CAAC,CAC2C,CAAC;AAC/C,CAAC,CAAC"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EAAiD,MAAM,+BAA+B,CAAC;AACxG,OAAO,EAAc,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AA0B1D,MAAM,aAAa,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAwB,EAAE,EAAE,CAAC,CAAC;IAC5G,GAAG,EAAE,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;IACxD,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;IACnD,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;IACnD,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IACrD,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAyD,MAA0D,EAAU,EAAE,CACpJ,eAAe,CAAmB,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,YAAY,GACxB,GAA0C,EAAE,CAC5C,CACC,UAAiD,EACjD,OAAyC,EACE,EAAE;IAG7C,OAAO,eAAe,CAA6C,UAAU,EAAE,CAAC,YAAY,EAAE,EAAE;QAC/F,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,MAAM,GACX,OAAO,CAAC,QAAQ,KAAK,SAAS;YAC7B,CAAC,CAAC,QAAQ,CAAW;gBACnB,GAAG,SAAS;gBACZ,YAAY,EAAE,OAAO,CAAC,YAAY;aAClC,CAAC;YACH,CAAC,CAAC,QAAQ,CAAW;gBACnB,GAAG,SAAS;gBACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC1B,CAAC,CAAC;QAEN,OAAO,iBAAiB,CAAC,GAAG,EAAE,CAC7B,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACrC,MAAM;YACN,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE;gBACT,UAAU,EAAE,yBAAyB;gBACrC,IAAI,EAAE,IAAI;aACV;YACD,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,aAAa,CAAmB,MAAM,CAAC;YAC/C,cAAc,EAAE,SAAS;YACzB,mBAAmB,EAAE,SAAS;YAC9B,oBAAoB,EAAE,SAAS;SAC/B,CAAC,CAAC,CACH,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC"}
package/dist/error.d.ts CHANGED
@@ -11,10 +11,10 @@ declare const PrismaQueryFailure_base: new <A extends Record<string, any> = {}>(
11
11
  readonly _tag: "PrismaQueryFailure";
12
12
  } & import("effect/Pipeable").Pipeable;
13
13
  export declare class PrismaQueryFailure extends PrismaQueryFailure_base<{
14
- readonly sqlState?: string;
15
- readonly constraint?: string;
16
- readonly table?: string;
17
- readonly column?: string;
14
+ readonly sqlState?: string | undefined;
15
+ readonly constraint?: string | undefined;
16
+ readonly table?: string | undefined;
17
+ readonly column?: string | undefined;
18
18
  readonly original: Redacted.Redacted<unknown>;
19
19
  }> {
20
20
  }
@@ -22,7 +22,7 @@ declare const PrismaConnectionFailure_base: new <A extends Record<string, any> =
22
22
  readonly _tag: "PrismaConnectionFailure";
23
23
  } & import("effect/Pipeable").Pipeable;
24
24
  export declare class PrismaConnectionFailure extends PrismaConnectionFailure_base<{
25
- readonly transient?: boolean;
25
+ readonly transient?: boolean | undefined;
26
26
  readonly original: Redacted.Redacted<unknown>;
27
27
  }> {
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,QAAQ,EAAE,MAAM,QAAQ,CAAC;;;;AAExC,qBAAa,oBAAqB,SAAQ,0BAExC;IACD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC9C,CAAC;CAAG;;;;AAEL,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC9C,CAAC;CAAG;;;;AAEL,qBAAa,uBAAwB,SAAQ,6BAE3C;IACD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC9C,CAAC;CAAG;AAEL,MAAM,MAAM,iBAAiB,GAC1B,oBAAoB,GACpB,kBAAkB,GAClB,uBAAuB,CAAC;;;;AAE3B,qBAAa,WAAY,SAAQ,iBAAgC;IAChE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;CACnC,CAAC;CAAG;AAEL,KAAK,aAAa,GACf;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IACA,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACxB,GACD;IACA,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEL,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,aAWzD,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,OAAO,aAAa,KAAG,WA4BpD,CAAC"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,QAAQ,EAAE,MAAM,QAAQ,CAAC;;;;AAExC,qBAAa,oBAAqB,SAAQ,0BAAyC;IAClF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC9C,CAAC;CAAG;;;;AAEL,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC9C,CAAC;CAAG;;;;AAEL,qBAAa,uBAAwB,SAAQ,6BAA4C;IACxF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC9C,CAAC;CAAG;AAEL,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,uBAAuB,CAAC;;;;AAEpG,qBAAa,WAAY,SAAQ,iBAAgC;IAChE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;CACnC,CAAC;CAAG;AAEL,KAAK,aAAa,GACf;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IACA,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACxB,GACD;IACA,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEL,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,aAQzD,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,OAAO,aAAa,KAAG,WA4BpD,CAAC"}
package/dist/error.js CHANGED
@@ -14,27 +14,26 @@ export const isPrismaFailure = (error) => {
14
14
  if ("code" in error && typeof error.code === "string") {
15
15
  return true;
16
16
  }
17
- return ("kind" in error &&
18
- (error.kind === "sql_query" || error.kind === "sql_connection"));
17
+ return "kind" in error && (error.kind === "sql_query" || error.kind === "sql_connection");
19
18
  };
20
19
  export const toPrismaError = (error) => {
21
20
  const original = Redacted.make(error);
22
21
  if ("kind" in error && error.kind === "sql_query") {
23
22
  return new PrismaError({
24
23
  reason: new PrismaQueryFailure({
25
- sqlState: error.sqlState,
26
- constraint: error.constraint,
27
- table: error.table,
28
24
  column: error.column,
25
+ constraint: error.constraint,
29
26
  original,
27
+ sqlState: error.sqlState,
28
+ table: error.table,
30
29
  }),
31
30
  });
32
31
  }
33
32
  if ("kind" in error && error.kind === "sql_connection") {
34
33
  return new PrismaError({
35
34
  reason: new PrismaConnectionFailure({
36
- transient: error.transient,
37
35
  original,
36
+ transient: error.transient,
38
37
  }),
39
38
  });
40
39
  }
package/dist/error.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,OAAO,oBAAqB,SAAQ,IAAI,CAAC,WAAW,CACzD,sBAAsB,CAIrB;CAAG;AAEL,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAM3E;CAAG;AAEL,MAAM,OAAO,uBAAwB,SAAQ,IAAI,CAAC,WAAW,CAC5D,yBAAyB,CAIxB;CAAG;AAOL,MAAM,OAAO,WAAY,SAAQ,IAAI,CAAC,WAAW,CAAC,aAAa,CAE7D;CAAG;AAgBL,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAc,EAA0B,EAAE;IACzE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,CACN,MAAM,IAAI,KAAK;QACf,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAC/D,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAoB,EAAe,EAAE;IAClE,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACnD,OAAO,IAAI,WAAW,CAAC;YACtB,MAAM,EAAE,IAAI,kBAAkB,CAAC;gBAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ;aACR,CAAC;SACF,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACxD,OAAO,IAAI,WAAW,CAAC;YACtB,MAAM,EAAE,IAAI,uBAAuB,CAAC;gBACnC,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,QAAQ;aACR,CAAC;SACF,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,WAAW,CAAC;QACtB,MAAM,EAAE,IAAI,oBAAoB,CAAC;YAChC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ;SACR,CAAC;KACF,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,OAAO,oBAAqB,SAAQ,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAG/E;CAAG;AAEL,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAM3E;CAAG;AAEL,MAAM,OAAO,uBAAwB,SAAQ,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAGrF;CAAG;AAIL,MAAM,OAAO,WAAY,SAAQ,IAAI,CAAC,WAAW,CAAC,aAAa,CAE7D;CAAG;AAgBL,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAc,EAA0B,EAAE;IACzE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,MAAM,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAoB,EAAe,EAAE;IAClE,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACnD,OAAO,IAAI,WAAW,CAAC;YACtB,MAAM,EAAE,IAAI,kBAAkB,CAAC;gBAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,QAAQ;gBACR,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK,EAAE,KAAK,CAAC,KAAK;aAClB,CAAC;SACF,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACxD,OAAO,IAAI,WAAW,CAAC;YACtB,MAAM,EAAE,IAAI,uBAAuB,CAAC;gBACnC,QAAQ;gBACR,SAAS,EAAE,KAAK,CAAC,SAAS;aAC1B,CAAC;SACF,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,WAAW,CAAC;QACtB,MAAM,EAAE,IAAI,oBAAoB,CAAC;YAChC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ;SACR,CAAC;KACF,CAAC,CAAC;AACJ,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { all, and, not, or } from "@prisma-next/sql-orm-client";
2
- export { type AnyDatabase, type DatabaseDefinition, type DatabaseLayerOptions, type DatabaseService, type DatabaseServiceOf, makeDatabase, } from "./database.js";
3
- export { PrismaConnectionFailure, PrismaError, type PrismaErrorReason, PrismaQueryFailure, PrismaRuntimeFailure, } from "./error.js";
4
- export type { Relation } from "./relation.js";
2
+ export { type AnyDatabase, type DatabaseDefinition, type DatabaseLayerOptions, type DatabaseService, type DatabaseServiceOf, makeDatabase, } from "./database.ts";
3
+ export { PrismaConnectionFailure, PrismaError, type PrismaErrorReason, PrismaQueryFailure, PrismaRuntimeFailure, } from "./error.ts";
4
+ export type { Relation } from "./relation.ts";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,10 @@
1
+ import type { RuntimeConnection, RuntimeTransaction } from "@prisma-next/sql-runtime";
2
+ export type SettledConnection = Pick<RuntimeConnection, "destroy" | "release">;
3
+ export type SettledTransaction = Pick<RuntimeTransaction, "commit" | "rollback">;
4
+ interface Settled {
5
+ readonly connection: SettledConnection;
6
+ readonly transaction: SettledTransaction;
7
+ }
8
+ export declare const settleConnection: (settled: Settled, commitTransaction: boolean) => Promise<void>;
9
+ export {};
10
+ //# sourceMappingURL=transaction-settlement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction-settlement.d.ts","sourceRoot":"","sources":["../../../src/internal/adapters/transaction-settlement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;AAC/E,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC;AAEjF,UAAU,OAAO;IAChB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;CACzC;AAsDD,eAAO,MAAM,gBAAgB,GAAU,SAAS,OAAO,EAAE,mBAAmB,OAAO,KAAG,OAAO,CAAC,IAAI,CAOjG,CAAC"}
@@ -0,0 +1,56 @@
1
+ const runtimeFailure = (code, cause, details) => Object.assign(new Error(code, { cause }), { code, ...details });
2
+ class ConnectionDisposal {
3
+ disposed = false;
4
+ connection;
5
+ constructor(connection) {
6
+ this.connection = connection;
7
+ }
8
+ async destroy(reason) {
9
+ if (this.disposed) {
10
+ return;
11
+ }
12
+ this.disposed = true;
13
+ await this.connection.destroy(reason).catch(() => undefined);
14
+ }
15
+ }
16
+ const commit = async ({ transaction }, disposal) => {
17
+ try {
18
+ await transaction.commit();
19
+ return undefined;
20
+ }
21
+ catch (commitError) {
22
+ await transaction.rollback().catch(() => disposal.destroy(commitError));
23
+ return runtimeFailure("RUNTIME.TRANSACTION_COMMIT_FAILED", commitError);
24
+ }
25
+ };
26
+ const rollback = async ({ transaction }, disposal) => {
27
+ try {
28
+ await transaction.rollback();
29
+ return undefined;
30
+ }
31
+ catch (rollbackError) {
32
+ await disposal.destroy(rollbackError);
33
+ return runtimeFailure("RUNTIME.TRANSACTION_ROLLBACK_FAILED", rollbackError);
34
+ }
35
+ };
36
+ const release = async ({ connection }, disposal, failure) => {
37
+ if (disposal.disposed) {
38
+ return;
39
+ }
40
+ try {
41
+ await connection.release();
42
+ }
43
+ catch (releaseError) {
44
+ await disposal.destroy(releaseError);
45
+ throw failure === undefined ? releaseError : runtimeFailure("RUNTIME.TRANSACTION_RELEASE_FAILED", failure, { releaseError });
46
+ }
47
+ };
48
+ export const settleConnection = async (settled, commitTransaction) => {
49
+ const disposal = new ConnectionDisposal(settled.connection);
50
+ const failure = commitTransaction ? await commit(settled, disposal) : await rollback(settled, disposal);
51
+ await release(settled, disposal, failure);
52
+ if (failure !== undefined) {
53
+ throw failure;
54
+ }
55
+ };
56
+ //# sourceMappingURL=transaction-settlement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction-settlement.js","sourceRoot":"","sources":["../../../src/internal/adapters/transaction-settlement.ts"],"names":[],"mappings":"AAUA,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,KAAc,EAAE,OAA2C,EAAqC,EAAE,CACvI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AAEjE,MAAM,kBAAkB;IACvB,QAAQ,GAAG,KAAK,CAAC;IACA,UAAU,CAAoB;IAE/C,YAAY,UAA6B;QACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAe;QAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;CACD;AAED,MAAM,MAAM,GAAG,KAAK,EAAE,EAAE,WAAW,EAAW,EAAE,QAA4B,EAAoB,EAAE;IACjG,IAAI,CAAC;QACJ,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IAClB,CAAC;IAAC,OAAO,WAAW,EAAE,CAAC;QACtB,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACxE,OAAO,cAAc,CAAC,mCAAmC,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,EAAE,WAAW,EAAW,EAAE,QAA4B,EAAoB,EAAE;IACnG,IAAI,CAAC;QACJ,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IAClB,CAAC;IAAC,OAAO,aAAa,EAAE,CAAC;QACxB,MAAM,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACtC,OAAO,cAAc,CAAC,qCAAqC,EAAE,aAAa,CAAC,CAAC;IAC7E,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,KAAK,EAAE,EAAE,UAAU,EAAW,EAAE,QAA4B,EAAE,OAAgB,EAAiB,EAAE;IAChH,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACvB,OAAO;IACR,CAAC;IACD,IAAI,CAAC;QACJ,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,YAAY,EAAE,CAAC;QACvB,MAAM,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACrC,MAAM,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,oCAAoC,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IAC9H,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,OAAgB,EAAE,iBAA0B,EAAiB,EAAE;IACrG,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxG,MAAM,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,OAAO,CAAC;IACf,CAAC;AACF,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export interface ClientLifecycle {
2
- readonly connect: () => PromiseLike<unknown>;
3
2
  readonly close: () => PromiseLike<void>;
3
+ readonly connect: () => PromiseLike<unknown>;
4
4
  }
5
5
  export declare const acquireConnectedClient: <A>(client: ClientLifecycle, initialize: () => A) => Promise<A>;
6
- export declare const assertAvailableModelNames: (modelNames: ReadonlyArray<string>) => void;
6
+ export declare const assertAvailableModelNames: (modelNames: readonly string[]) => void;
7
7
  //# sourceMappingURL=client-lifecycle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-lifecycle.d.ts","sourceRoot":"","sources":["../../src/internal/client-lifecycle.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;CACxC;AAED,eAAO,MAAM,sBAAsB,GAAU,CAAC,EAC7C,QAAQ,eAAe,EACvB,YAAY,MAAM,CAAC,KACjB,OAAO,CAAC,CAAC,CAQX,CAAC;AAIF,eAAO,MAAM,yBAAyB,GACrC,YAAY,aAAa,CAAC,MAAM,CAAC,KAC/B,IAQF,CAAC"}
1
+ {"version":3,"file":"client-lifecycle.d.ts","sourceRoot":"","sources":["../../src/internal/client-lifecycle.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;CAC7C;AAED,eAAO,MAAM,sBAAsB,GAAU,CAAC,EAAE,QAAQ,eAAe,EAAE,YAAY,MAAM,CAAC,KAAG,OAAO,CAAC,CAAC,CAQvG,CAAC;AAIF,eAAO,MAAM,yBAAyB,GAAI,YAAY,SAAS,MAAM,EAAE,KAAG,IAMzE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"client-lifecycle.js","sourceRoot":"","sources":["../../src/internal/client-lifecycle.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAC1C,MAAuB,EACvB,UAAmB,EACN,EAAE;IACf,IAAI,CAAC;QACJ,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,UAAU,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACxC,UAAiC,EAC1B,EAAE;IACT,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,SAAS,CAClB,yDAAyD,SAAS,EAAE,CACpE,CAAC;QACH,CAAC;IACF,CAAC;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"client-lifecycle.js","sourceRoot":"","sources":["../../src/internal/client-lifecycle.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAK,MAAuB,EAAE,UAAmB,EAAc,EAAE;IAC3G,IAAI,CAAC;QACJ,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,UAAU,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,UAA6B,EAAQ,EAAE;IAChF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,SAAS,CAAC,yDAAyD,SAAS,EAAE,CAAC,CAAC;QAC3F,CAAC;IACF,CAAC;AACF,CAAC,CAAC"}
@@ -1,6 +1,2 @@
1
- /**
2
- * Align Prisma Next's generated PostgreSQL timestamp declarations with the
3
- * JavaScript Dates accepted and returned by its runtime codecs.
4
- */
5
1
  export declare const normalizePrismaNextContractTypes: (source: string) => string;
6
2
  //# sourceMappingURL=contract-normalization.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract-normalization.d.ts","sourceRoot":"","sources":["../../src/internal/contract-normalization.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,eAAO,MAAM,gCAAgC,GAAI,QAAQ,MAAM,KAAG,MAYjE,CAAC"}
1
+ {"version":3,"file":"contract-normalization.d.ts","sourceRoot":"","sources":["../../src/internal/contract-normalization.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gCAAgC,GAAI,QAAQ,MAAM,KAAG,MAQjE,CAAC"}
@@ -1,14 +1,9 @@
1
- const timestampReference = /\b(?:Timestamp|Timestamptz)<(?:\d+|undefined)>/g;
2
- const timestampCodecReference = /\bCodecTypes\['pg\/(?:timestamp|timestamptz)@1'\]\['(?:input|output)'\]/g;
3
- const unsupportedTimestampReference = /\b(?:Timestamp|Timestamptz)\s*</;
4
- /**
5
- * Align Prisma Next's generated PostgreSQL timestamp declarations with the
6
- * JavaScript Dates accepted and returned by its runtime codecs.
7
- */
1
+ const timestampReference = /\b(?:Timestamp|Timestamptz)<(?:\d+|undefined)>/gu;
2
+ const timestampCodecReference = /\bCodecTypes\['pg\/(?:timestamp|timestamptz)@1'\]\['(?:input|output)'\]/gu;
3
+ const unsupportedTimestampReference = /\b(?:Timestamp|Timestamptz)\s*</u;
4
+ // Prisma Next declares PostgreSQL timestamps with types other than the JavaScript Dates its runtime codecs accept and return.
8
5
  export const normalizePrismaNextContractTypes = (source) => {
9
- const normalized = source
10
- .replaceAll(timestampReference, "Date")
11
- .replaceAll(timestampCodecReference, "Date");
6
+ const normalized = source.replaceAll(timestampReference, "Date").replaceAll(timestampCodecReference, "Date");
12
7
  if (unsupportedTimestampReference.test(normalized)) {
13
8
  throw new Error("Unsupported Prisma Next timestamp declaration; update effect-prisma before using this generated contract");
14
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contract-normalization.js","sourceRoot":"","sources":["../../src/internal/contract-normalization.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG,iDAAiD,CAAC;AAC7E,MAAM,uBAAuB,GAC5B,0EAA0E,CAAC;AAC5E,MAAM,6BAA6B,GAAG,iCAAiC,CAAC;AAExE;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,MAAc,EAAU,EAAE;IAC1E,MAAM,UAAU,GAAG,MAAM;SACvB,UAAU,CAAC,kBAAkB,EAAE,MAAM,CAAC;SACtC,UAAU,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAE9C,IAAI,6BAA6B,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACd,0GAA0G,CAC1G,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC,CAAC"}
1
+ {"version":3,"file":"contract-normalization.js","sourceRoot":"","sources":["../../src/internal/contract-normalization.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG,kDAAkD,CAAC;AAC9E,MAAM,uBAAuB,GAAG,2EAA2E,CAAC;AAC5G,MAAM,6BAA6B,GAAG,kCAAkC,CAAC;AAEzE,8HAA8H;AAC9H,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,MAAc,EAAU,EAAE;IAC1E,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAE7G,IAAI,6BAA6B,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,0GAA0G,CAAC,CAAC;IAC7H,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { type Context, Effect } from "effect";
2
+ import { type PrismaError } from "../error.ts";
3
+ import type { DatabaseIdentifier, DatabaseService, DefaultModels } from "./database-types.ts";
4
+ import type { AnySqlContract, DatabaseExecutor } from "./executor.ts";
5
+ import { releaseTransaction, type TransactionOrm } from "./transaction.ts";
6
+ export interface ActiveTransaction<Contract extends AnySqlContract, Identifier extends string> {
7
+ readonly executor: DatabaseExecutor<DefaultModels<Contract>, Contract>;
8
+ readonly facade: DatabaseService<Contract, Identifier>;
9
+ }
10
+ export interface FacadeScope<Contract extends AnySqlContract, Identifier extends string> {
11
+ readonly activeTransaction: Context.Reference<ActiveTransaction<Contract, Identifier> | undefined>;
12
+ readonly executors: WeakMap<DatabaseService<Contract, Identifier>, DatabaseExecutor<DefaultModels<Contract>, Contract>>;
13
+ readonly service: Context.Service<DatabaseIdentifier<Contract, Identifier>, DatabaseService<Contract, Identifier>>;
14
+ }
15
+ export declare function contractModels<Models extends object>(namespace: unknown): Models;
16
+ export declare const namespaceModels: <Contract extends AnySqlContract, Models extends object>(contract: Contract, namespacedOrm: TransactionOrm<Contract>) => Models;
17
+ export declare const runTransaction: <Contract extends AnySqlContract, Identifier extends string, A, E, R>(scope: FacadeScope<Contract, Identifier>, current: DatabaseExecutor<DefaultModels<Contract>, Contract>, currentFacade: DatabaseService<Contract, Identifier>, program: Effect.Effect<A, E, R>, release: typeof releaseTransaction, mode: "test" | "transaction", span: string) => Effect.Effect<A, E | PrismaError, Exclude<R, DatabaseIdentifier<Contract, Identifier>>>;
18
+ export declare function makeFacade<Contract extends AnySqlContract, Identifier extends string>(scope: FacadeScope<Contract, Identifier>, current: DatabaseExecutor<DefaultModels<Contract>, Contract>): DatabaseService<Contract, Identifier>;
19
+ //# sourceMappingURL=database-facade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-facade.d.ts","sourceRoot":"","sources":["../../src/internal/database-facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,aAAa,CAAC;AAE9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAsB,kBAAkB,EAAE,KAAK,cAAc,EAA4B,MAAM,kBAAkB,CAAC;AAEzH,MAAM,WAAW,iBAAiB,CAAC,QAAQ,SAAS,cAAc,EAAE,UAAU,SAAS,MAAM;IAC5F,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;IACvE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,WAAW,CAAC,QAAQ,SAAS,cAAc,EAAE,UAAU,SAAS,MAAM;IACtF,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC,CAAC;IACnG,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;CACnH;AAGD,wBAAgB,cAAc,CAAC,MAAM,SAAS,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;AAWlF,eAAO,MAAM,eAAe,GAAI,QAAQ,SAAS,cAAc,EAAE,MAAM,SAAS,MAAM,EACrF,UAAU,QAAQ,EAClB,eAAe,cAAc,CAAC,QAAQ,CAAC,KACrC,MASF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,QAAQ,SAAS,cAAc,EAAE,UAAU,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACjG,OAAO,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,EACxC,SAAS,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAC5D,eAAe,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,EACpD,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC/B,SAAS,OAAO,kBAAkB,EAClC,MAAM,MAAM,GAAG,aAAa,EAC5B,MAAM,MAAM,KACV,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAmCxF,CAAC;AAEF,wBAAgB,UAAU,CAAC,QAAQ,SAAS,cAAc,EAAE,UAAU,SAAS,MAAM,EACpF,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,EACxC,OAAO,EAAE,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,GAC1D,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CA4CvC"}
@@ -0,0 +1,79 @@
1
+ import { Effect } from "effect";
2
+ import { toPrismaError } from "../error.js";
3
+ import { assertAvailableModelNames } from "./client-lifecycle.js";
4
+ import { makeModelRelation } from "./relation-runtime.js";
5
+ import { acquireTransaction, releaseTransaction, withTransactionSemaphore } from "./transaction.js";
6
+ export function contractModels(namespace) {
7
+ return namespace;
8
+ }
9
+ function databaseFacade(facade) {
10
+ return facade;
11
+ }
12
+ export const namespaceModels = (contract, namespacedOrm) => {
13
+ const namespaces = Object.entries(contract.domain.namespaces);
14
+ const [only] = namespaces;
15
+ if (namespaces.length !== 1 || only === undefined) {
16
+ throw new TypeError("Effect Prisma currently requires exactly one domain namespace");
17
+ }
18
+ const [postgresSchemaOrSqliteUnbound, namespace] = only;
19
+ assertAvailableModelNames(Object.keys(namespace.models));
20
+ return contractModels(Reflect.get(namespacedOrm, postgresSchemaOrSqliteUnbound));
21
+ };
22
+ export const runTransaction = (scope, current, currentFacade, program, release, mode, span) => {
23
+ if (!current.liveness.open) {
24
+ return Effect.fail(toPrismaError({ code: current.liveness.closedCode }));
25
+ }
26
+ if (current.mode === "test" || (current.mode === "transaction" && mode === "transaction")) {
27
+ return Effect.provideService(program, scope.service, currentFacade);
28
+ }
29
+ if (current.mode === "transaction") {
30
+ return Effect.fail(toPrismaError({
31
+ code: "RUNTIME.TEST_TRANSACTION_INSIDE_TRANSACTION_UNSUPPORTED",
32
+ }));
33
+ }
34
+ const transaction = Effect.acquireUseRelease(acquireTransaction(current, (transactionOrm) => namespaceModels(current.client.contract, transactionOrm), mode), (resource) => {
35
+ const transactionFacade = makeFacade(scope, resource.executor);
36
+ return program.pipe(Effect.provideService(scope.service, transactionFacade), Effect.provideService(scope.activeTransaction, {
37
+ executor: resource.executor,
38
+ facade: transactionFacade,
39
+ }));
40
+ }, release).pipe(Effect.withSpan(span, { kind: "client" }));
41
+ return withTransactionSemaphore(current.transactionSemaphore, transaction);
42
+ };
43
+ export function makeFacade(scope, current) {
44
+ let facade;
45
+ const resolveActiveTransaction = Effect.flatMap(scope.activeTransaction, (active) => {
46
+ if (current.mode === "root") {
47
+ return Effect.succeed(active ?? { executor: current, facade });
48
+ }
49
+ return active?.executor === current
50
+ ? Effect.succeed(active)
51
+ : Effect.fail(toPrismaError({
52
+ code: "RUNTIME.TRANSACTION_CONTEXT_MISMATCH",
53
+ }));
54
+ });
55
+ const resolveExecutor = Effect.suspend(() => current.liveness.open ? Effect.map(resolveActiveTransaction, ({ executor }) => executor) : Effect.succeed(current));
56
+ const target = Object.create(null);
57
+ Object.assign(target, {
58
+ transaction: (program) => Effect.suspend(() => {
59
+ if (!current.liveness.open) {
60
+ return Effect.fail(toPrismaError({ code: current.liveness.closedCode }));
61
+ }
62
+ return Effect.flatMap(resolveActiveTransaction, (selected) => runTransaction(scope, selected.executor, selected.facade, program, releaseTransaction, "transaction", "prisma.transaction"));
63
+ }),
64
+ });
65
+ facade = databaseFacade(new Proxy(target, {
66
+ get(target, property, receiver) {
67
+ if (Reflect.has(target, property)) {
68
+ return Reflect.get(target, property, receiver);
69
+ }
70
+ if (typeof property !== "string") {
71
+ return undefined;
72
+ }
73
+ return makeModelRelation(current, property, resolveExecutor);
74
+ },
75
+ }));
76
+ scope.executors.set(facade, current);
77
+ return facade;
78
+ }
79
+ //# sourceMappingURL=database-facade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-facade.js","sourceRoot":"","sources":["../../src/internal/database-facade.ts"],"names":[],"mappings":"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"}
@@ -1,50 +1,6 @@
1
- import type { orm } from "@prisma-next/sql-orm-client";
2
- import { Context, Effect, Layer } from "effect";
3
- import { type PrismaError } from "../error.js";
4
- import type { Relation } from "../relation.js";
5
- import type { AnySqlContract, DatabaseExecutor } from "./executor.js";
6
- import { type TransactionOrm } from "./transaction.js";
7
- type OrmFor<Contract extends AnySqlContract> = ReturnType<typeof orm<Contract>>;
8
- type DefaultNamespaceId<Contract extends AnySqlContract> = "__unbound__" extends keyof OrmFor<Contract> ? "__unbound__" : "public" extends keyof OrmFor<Contract> ? "public" : keyof OrmFor<Contract>;
9
- export type DefaultModels<Contract extends AnySqlContract> = OrmFor<Contract>[DefaultNamespaceId<Contract>] extends infer Models extends object ? Models : never;
10
- type IsUnion<Value, Whole = Value> = Value extends unknown ? [Whole] extends [Value] ? false : true : never;
11
- type IsSingletonString<Value extends string> = Record<never, never> extends Record<Value, never> ? false : true;
12
- export type DatabaseIdentifierLiteral<Identifier extends string> = [
13
- Identifier
14
- ] extends [`\0@shivaedev/effect-prisma/internal/${string}`] ? never : string extends Identifier ? never : true extends IsUnion<Identifier> ? never : IsSingletonString<Identifier> extends true ? Identifier : never;
15
- export interface DatabaseIdentifier<Contract extends AnySqlContract, Identifier extends string> {
16
- readonly _contract: (contract: Contract) => Contract;
17
- readonly _databaseIdentifier: (identifier: Identifier) => Identifier;
18
- }
19
- type DatabaseModels<Contract extends AnySqlContract, Identifier extends string> = {
20
- readonly [Model in keyof DefaultModels<Contract>]: Relation<DefaultModels<Contract>[Model], Contract, Model & string, DatabaseIdentifier<Contract, Identifier>>;
21
- };
22
- export type DatabaseService<Contract extends AnySqlContract, Identifier extends string> = DatabaseModels<Contract, Identifier> & {
23
- transaction<A, E, R>(program: Effect.Effect<A, E, R> & (DatabaseIdentifier<Contract, Identifier> extends R ? unknown : never)): Effect.Effect<A, E | PrismaError, Exclude<R, DatabaseIdentifier<Contract, Identifier>>>;
24
- };
25
- /**
26
- * The driver-independent part of a database definition: the Context service
27
- * carrying the typed facade. Driver entrypoints add their own `layer` options.
28
- */
29
- export interface DatabaseServiceHolder<Contract extends AnySqlContract, Identifier extends string> extends Context.Service<DatabaseIdentifier<Contract, Identifier>, DatabaseService<Contract, Identifier>> {
30
- }
31
- export type AnyDatabase = Effect.Effect<unknown, never, unknown> & {
32
- readonly layer: (...arguments_: ReadonlyArray<never>) => Layer.Any;
33
- };
34
- export type DatabaseServiceOf<Database extends AnyDatabase> = Effect.Success<Database>;
35
- export interface SqlDatabase<Contract extends AnySqlContract, Identifier extends string, Options> extends DatabaseServiceHolder<Contract, Identifier> {
36
- readonly layer: (options: Options) => Layer.Layer<DatabaseIdentifier<Contract, Identifier>, PrismaError>;
37
- }
38
- /**
39
- * Resolve the models of the single domain namespace from a namespaced ORM
40
- * client. Prisma Next namespaces PostgreSQL models under their schema and
41
- * SQLite models under the unbound namespace.
42
- */
43
- export declare const namespaceModels: <Contract extends AnySqlContract, Models extends object>(contract: Contract, namespacedOrm: TransactionOrm<Contract>) => Models;
44
- /**
45
- * Assemble the database service and its Layer around a driver-specific
46
- * executor acquisition.
47
- */
1
+ import { Effect } from "effect";
2
+ import type { PrismaError } from "../error.ts";
3
+ import { type DatabaseIdentifierLiteral, type DefaultModels, type SqlDatabase } from "./database-types.ts";
4
+ import type { AnySqlContract, DatabaseExecutor } from "./executor.ts";
48
5
  export declare const makeSqlDatabase: <const Contract extends AnySqlContract, const Identifier extends string, Options>(identifier: DatabaseIdentifierLiteral<Identifier>, acquireExecutor: (options: Options) => Effect.Effect<DatabaseExecutor<DefaultModels<Contract>, Contract>, PrismaError>) => SqlDatabase<Contract, Identifier, Options>;
49
- export {};
50
6
  //# sourceMappingURL=database-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database-factory.d.ts","sourceRoot":"","sources":["../../src/internal/database-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database-factory.d.ts","sourceRoot":"","sources":["../../src/internal/database-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAS,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAEN,KAAK,yBAAyB,EAE9B,KAAK,aAAa,EAElB,KAAK,WAAW,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMtE,eAAO,MAAM,eAAe,GAAI,KAAK,CAAC,QAAQ,SAAS,cAAc,EAAE,KAAK,CAAC,UAAU,SAAS,MAAM,EAAE,OAAO,EAC9G,YAAY,yBAAyB,CAAC,UAAU,CAAC,EACjD,iBAAiB,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,KACpH,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAgD3C,CAAC"}