@fragno-dev/db 0.1.13 → 0.1.15

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 (178) hide show
  1. package/.turbo/turbo-build.log +179 -132
  2. package/CHANGELOG.md +30 -0
  3. package/dist/adapters/adapters.d.ts +27 -1
  4. package/dist/adapters/adapters.d.ts.map +1 -1
  5. package/dist/adapters/adapters.js.map +1 -1
  6. package/dist/adapters/drizzle/drizzle-adapter.d.ts +5 -1
  7. package/dist/adapters/drizzle/drizzle-adapter.d.ts.map +1 -1
  8. package/dist/adapters/drizzle/drizzle-adapter.js +15 -3
  9. package/dist/adapters/drizzle/drizzle-adapter.js.map +1 -1
  10. package/dist/adapters/drizzle/drizzle-query.js +7 -5
  11. package/dist/adapters/drizzle/drizzle-query.js.map +1 -1
  12. package/dist/adapters/drizzle/drizzle-uow-compiler.d.ts +0 -1
  13. package/dist/adapters/drizzle/drizzle-uow-compiler.d.ts.map +1 -1
  14. package/dist/adapters/drizzle/drizzle-uow-compiler.js +76 -44
  15. package/dist/adapters/drizzle/drizzle-uow-compiler.js.map +1 -1
  16. package/dist/adapters/drizzle/drizzle-uow-decoder.js +23 -16
  17. package/dist/adapters/drizzle/drizzle-uow-decoder.js.map +1 -1
  18. package/dist/adapters/drizzle/drizzle-uow-executor.js +18 -7
  19. package/dist/adapters/drizzle/drizzle-uow-executor.js.map +1 -1
  20. package/dist/adapters/drizzle/generate.d.ts +4 -1
  21. package/dist/adapters/drizzle/generate.d.ts.map +1 -1
  22. package/dist/adapters/drizzle/generate.js +11 -18
  23. package/dist/adapters/drizzle/generate.js.map +1 -1
  24. package/dist/adapters/drizzle/shared.d.ts +14 -1
  25. package/dist/adapters/drizzle/shared.d.ts.map +1 -0
  26. package/dist/adapters/kysely/kysely-adapter.d.ts +5 -1
  27. package/dist/adapters/kysely/kysely-adapter.d.ts.map +1 -1
  28. package/dist/adapters/kysely/kysely-adapter.js +14 -3
  29. package/dist/adapters/kysely/kysely-adapter.js.map +1 -1
  30. package/dist/adapters/kysely/kysely-query-builder.js +1 -1
  31. package/dist/adapters/kysely/kysely-query-compiler.js +3 -2
  32. package/dist/adapters/kysely/kysely-query-compiler.js.map +1 -1
  33. package/dist/adapters/kysely/kysely-query.d.ts +1 -0
  34. package/dist/adapters/kysely/kysely-query.d.ts.map +1 -1
  35. package/dist/adapters/kysely/kysely-query.js +28 -19
  36. package/dist/adapters/kysely/kysely-query.js.map +1 -1
  37. package/dist/adapters/kysely/kysely-shared.d.ts +14 -0
  38. package/dist/adapters/kysely/kysely-shared.d.ts.map +1 -0
  39. package/dist/adapters/kysely/kysely-shared.js +16 -1
  40. package/dist/adapters/kysely/kysely-shared.js.map +1 -1
  41. package/dist/adapters/kysely/kysely-uow-compiler.js +68 -16
  42. package/dist/adapters/kysely/kysely-uow-compiler.js.map +1 -1
  43. package/dist/adapters/kysely/kysely-uow-executor.js +8 -4
  44. package/dist/adapters/kysely/kysely-uow-executor.js.map +1 -1
  45. package/dist/adapters/kysely/migration/execute-base.js +1 -1
  46. package/dist/adapters/kysely/migration/execute-base.js.map +1 -1
  47. package/dist/db-fragment-definition-builder.d.ts +152 -0
  48. package/dist/db-fragment-definition-builder.d.ts.map +1 -0
  49. package/dist/db-fragment-definition-builder.js +137 -0
  50. package/dist/db-fragment-definition-builder.js.map +1 -0
  51. package/dist/fragments/internal-fragment.d.ts +19 -0
  52. package/dist/fragments/internal-fragment.d.ts.map +1 -0
  53. package/dist/fragments/internal-fragment.js +39 -0
  54. package/dist/fragments/internal-fragment.js.map +1 -0
  55. package/dist/migration-engine/generation-engine.d.ts.map +1 -1
  56. package/dist/migration-engine/generation-engine.js +35 -15
  57. package/dist/migration-engine/generation-engine.js.map +1 -1
  58. package/dist/mod.d.ts +8 -18
  59. package/dist/mod.d.ts.map +1 -1
  60. package/dist/mod.js +7 -34
  61. package/dist/mod.js.map +1 -1
  62. package/dist/node_modules/.pnpm/rou3@0.7.8/node_modules/rou3/dist/index.js +165 -0
  63. package/dist/node_modules/.pnpm/rou3@0.7.8/node_modules/rou3/dist/index.js.map +1 -0
  64. package/dist/packages/fragno/dist/api/bind-services.js +20 -0
  65. package/dist/packages/fragno/dist/api/bind-services.js.map +1 -0
  66. package/dist/packages/fragno/dist/api/error.js +48 -0
  67. package/dist/packages/fragno/dist/api/error.js.map +1 -0
  68. package/dist/packages/fragno/dist/api/fragment-definition-builder.js +320 -0
  69. package/dist/packages/fragno/dist/api/fragment-definition-builder.js.map +1 -0
  70. package/dist/packages/fragno/dist/api/fragment-instantiator.js +487 -0
  71. package/dist/packages/fragno/dist/api/fragment-instantiator.js.map +1 -0
  72. package/dist/packages/fragno/dist/api/fragno-response.js +73 -0
  73. package/dist/packages/fragno/dist/api/fragno-response.js.map +1 -0
  74. package/dist/packages/fragno/dist/api/internal/response-stream.js +81 -0
  75. package/dist/packages/fragno/dist/api/internal/response-stream.js.map +1 -0
  76. package/dist/packages/fragno/dist/api/internal/route.js +10 -0
  77. package/dist/packages/fragno/dist/api/internal/route.js.map +1 -0
  78. package/dist/packages/fragno/dist/api/mutable-request-state.js +97 -0
  79. package/dist/packages/fragno/dist/api/mutable-request-state.js.map +1 -0
  80. package/dist/packages/fragno/dist/api/request-context-storage.js +43 -0
  81. package/dist/packages/fragno/dist/api/request-context-storage.js.map +1 -0
  82. package/dist/packages/fragno/dist/api/request-input-context.js +118 -0
  83. package/dist/packages/fragno/dist/api/request-input-context.js.map +1 -0
  84. package/dist/packages/fragno/dist/api/request-middleware.js +83 -0
  85. package/dist/packages/fragno/dist/api/request-middleware.js.map +1 -0
  86. package/dist/packages/fragno/dist/api/request-output-context.js +119 -0
  87. package/dist/packages/fragno/dist/api/request-output-context.js.map +1 -0
  88. package/dist/packages/fragno/dist/api/route.js +17 -0
  89. package/dist/packages/fragno/dist/api/route.js.map +1 -0
  90. package/dist/packages/fragno/dist/internal/symbols.js +10 -0
  91. package/dist/packages/fragno/dist/internal/symbols.js.map +1 -0
  92. package/dist/query/cursor.d.ts +10 -2
  93. package/dist/query/cursor.d.ts.map +1 -1
  94. package/dist/query/cursor.js +11 -4
  95. package/dist/query/cursor.js.map +1 -1
  96. package/dist/query/execute-unit-of-work.d.ts +123 -0
  97. package/dist/query/execute-unit-of-work.d.ts.map +1 -0
  98. package/dist/query/execute-unit-of-work.js +184 -0
  99. package/dist/query/execute-unit-of-work.js.map +1 -0
  100. package/dist/query/query.d.ts +3 -3
  101. package/dist/query/query.d.ts.map +1 -1
  102. package/dist/query/result-transform.js +4 -2
  103. package/dist/query/result-transform.js.map +1 -1
  104. package/dist/query/retry-policy.d.ts +88 -0
  105. package/dist/query/retry-policy.d.ts.map +1 -0
  106. package/dist/query/retry-policy.js +61 -0
  107. package/dist/query/retry-policy.js.map +1 -0
  108. package/dist/query/unit-of-work.d.ts +171 -32
  109. package/dist/query/unit-of-work.d.ts.map +1 -1
  110. package/dist/query/unit-of-work.js +530 -133
  111. package/dist/query/unit-of-work.js.map +1 -1
  112. package/dist/schema/serialize.js +12 -7
  113. package/dist/schema/serialize.js.map +1 -1
  114. package/dist/with-database.d.ts +28 -0
  115. package/dist/with-database.d.ts.map +1 -0
  116. package/dist/with-database.js +34 -0
  117. package/dist/with-database.js.map +1 -0
  118. package/package.json +10 -3
  119. package/src/adapters/adapters.ts +30 -0
  120. package/src/adapters/drizzle/drizzle-adapter-pglite.test.ts +86 -17
  121. package/src/adapters/drizzle/drizzle-adapter-sqlite.test.ts +291 -7
  122. package/src/adapters/drizzle/drizzle-adapter.test.ts +3 -51
  123. package/src/adapters/drizzle/drizzle-adapter.ts +35 -7
  124. package/src/adapters/drizzle/drizzle-query.ts +25 -15
  125. package/src/adapters/drizzle/drizzle-uow-compiler-mysql.test.ts +1442 -0
  126. package/src/adapters/drizzle/drizzle-uow-compiler-sqlite.test.ts +1414 -0
  127. package/src/adapters/drizzle/drizzle-uow-compiler.test.ts +78 -61
  128. package/src/adapters/drizzle/drizzle-uow-compiler.ts +123 -42
  129. package/src/adapters/drizzle/drizzle-uow-decoder.ts +34 -27
  130. package/src/adapters/drizzle/drizzle-uow-executor.ts +41 -8
  131. package/src/adapters/drizzle/generate.test.ts +102 -269
  132. package/src/adapters/drizzle/generate.ts +12 -30
  133. package/src/adapters/drizzle/test-utils.ts +36 -5
  134. package/src/adapters/kysely/kysely-adapter-pglite.test.ts +66 -22
  135. package/src/adapters/kysely/kysely-adapter-sqlite.test.ts +156 -0
  136. package/src/adapters/kysely/kysely-adapter.ts +25 -2
  137. package/src/adapters/kysely/kysely-query-compiler.ts +3 -8
  138. package/src/adapters/kysely/kysely-query.ts +57 -37
  139. package/src/adapters/kysely/kysely-shared.ts +34 -0
  140. package/src/adapters/kysely/kysely-uow-compiler.test.ts +62 -74
  141. package/src/adapters/kysely/kysely-uow-compiler.ts +92 -24
  142. package/src/adapters/kysely/kysely-uow-executor.ts +26 -7
  143. package/src/adapters/kysely/kysely-uow-joins.test.ts +33 -50
  144. package/src/adapters/kysely/migration/execute-base.ts +1 -1
  145. package/src/db-fragment-definition-builder.test.ts +887 -0
  146. package/src/db-fragment-definition-builder.ts +506 -0
  147. package/src/db-fragment-instantiator.test.ts +467 -0
  148. package/src/db-fragment-integration.test.ts +408 -0
  149. package/src/fragments/internal-fragment.test.ts +160 -0
  150. package/src/fragments/internal-fragment.ts +85 -0
  151. package/src/migration-engine/generation-engine.test.ts +58 -15
  152. package/src/migration-engine/generation-engine.ts +78 -25
  153. package/src/mod.ts +35 -43
  154. package/src/query/cursor.test.ts +119 -0
  155. package/src/query/cursor.ts +17 -4
  156. package/src/query/execute-unit-of-work.test.ts +1310 -0
  157. package/src/query/execute-unit-of-work.ts +463 -0
  158. package/src/query/query.ts +4 -4
  159. package/src/query/result-transform.test.ts +129 -0
  160. package/src/query/result-transform.ts +4 -1
  161. package/src/query/retry-policy.test.ts +217 -0
  162. package/src/query/retry-policy.ts +141 -0
  163. package/src/query/unit-of-work-coordinator.test.ts +833 -0
  164. package/src/query/unit-of-work-types.test.ts +15 -2
  165. package/src/query/unit-of-work.test.ts +878 -200
  166. package/src/query/unit-of-work.ts +963 -321
  167. package/src/schema/serialize.ts +22 -11
  168. package/src/with-database.ts +140 -0
  169. package/tsdown.config.ts +1 -0
  170. package/dist/fragment.d.ts +0 -54
  171. package/dist/fragment.d.ts.map +0 -1
  172. package/dist/fragment.js +0 -92
  173. package/dist/fragment.js.map +0 -1
  174. package/dist/shared/settings-schema.js +0 -36
  175. package/dist/shared/settings-schema.js.map +0 -1
  176. package/src/fragment.test.ts +0 -341
  177. package/src/fragment.ts +0 -198
  178. package/src/shared/settings-schema.ts +0 -61
@@ -0,0 +1,88 @@
1
+ //#region src/query/retry-policy.d.ts
2
+ /**
3
+ * Policy for retrying failed Unit of Work operations
4
+ */
5
+ interface RetryPolicy {
6
+ /**
7
+ * Determines if the operation should be retried
8
+ * @param attempt - The current attempt number (0-indexed)
9
+ * @param error - Optional error from the previous attempt
10
+ * @param signal - Optional AbortSignal to check for cancellation
11
+ * @returns true if the operation should be retried, false otherwise
12
+ */
13
+ shouldRetry(attempt: number, error?: unknown, signal?: AbortSignal): boolean;
14
+ /**
15
+ * Gets the delay in milliseconds before the next retry attempt
16
+ * @param attempt - The current attempt number (0-indexed)
17
+ * @returns Delay in milliseconds
18
+ */
19
+ getDelayMs(attempt: number): number;
20
+ }
21
+ /**
22
+ * Options for exponential backoff retry policy
23
+ */
24
+ interface ExponentialBackoffRetryPolicyOptions {
25
+ /**
26
+ * Maximum number of retry attempts (default: 3)
27
+ */
28
+ maxRetries?: number;
29
+ /**
30
+ * Initial delay in milliseconds (default: 100)
31
+ */
32
+ initialDelayMs?: number;
33
+ /**
34
+ * Maximum delay in milliseconds (default: 10000)
35
+ */
36
+ maxDelayMs?: number;
37
+ /**
38
+ * Multiplier for exponential backoff (default: 2)
39
+ */
40
+ backoffMultiplier?: number;
41
+ }
42
+ /**
43
+ * Exponential backoff retry policy
44
+ * Delay increases exponentially: initialDelay * (multiplier ^ attempt)
45
+ */
46
+ declare class ExponentialBackoffRetryPolicy implements RetryPolicy {
47
+ #private;
48
+ constructor(options?: ExponentialBackoffRetryPolicyOptions);
49
+ shouldRetry(attempt: number, _error?: unknown, signal?: AbortSignal): boolean;
50
+ getDelayMs(attempt: number): number;
51
+ }
52
+ /**
53
+ * Options for linear backoff retry policy
54
+ */
55
+ interface LinearBackoffRetryPolicyOptions {
56
+ /**
57
+ * Maximum number of retry attempts (default: 3)
58
+ */
59
+ maxRetries?: number;
60
+ /**
61
+ * Base delay in milliseconds (default: 100)
62
+ */
63
+ delayMs?: number;
64
+ /**
65
+ * Increment added to delay for each attempt in milliseconds (default: 100)
66
+ */
67
+ incrementMs?: number;
68
+ }
69
+ /**
70
+ * Linear backoff retry policy
71
+ * Delay increases linearly: delayMs + (attempt * incrementMs)
72
+ */
73
+ declare class LinearBackoffRetryPolicy implements RetryPolicy {
74
+ #private;
75
+ constructor(options?: LinearBackoffRetryPolicyOptions);
76
+ shouldRetry(attempt: number, _error?: unknown, signal?: AbortSignal): boolean;
77
+ getDelayMs(attempt: number): number;
78
+ }
79
+ /**
80
+ * No retry policy - never retries failed operations
81
+ */
82
+ declare class NoRetryPolicy implements RetryPolicy {
83
+ shouldRetry(_attempt: number, _error?: unknown, _signal?: AbortSignal): boolean;
84
+ getDelayMs(_attempt: number): number;
85
+ }
86
+ //#endregion
87
+ export { ExponentialBackoffRetryPolicy, LinearBackoffRetryPolicy, NoRetryPolicy, RetryPolicy };
88
+ //# sourceMappingURL=retry-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-policy.d.ts","names":[],"sources":["../../src/query/retry-policy.ts"],"sourcesContent":[],"mappings":";;AAGA;AAqBA;AA0Ba,UA/CI,WAAA,CA+CJ;EAMU;;;;AA0BvB;AAqBA;;EAW0D,WAAA,CAAA,OAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAvGD,WAuGC,CAAA,EAAA,OAAA;EAXT;;AA6BjD;;;;;;;;UA5GiB,oCAAA;;;;;;;;;;;;;;;;;;;;;;cA0BJ,6BAAA,YAAyC;;wBAM/B;0DAOmC;;;;;;UAmBzC,+BAAA;;;;;;;;;;;;;;;;;;cAqBJ,wBAAA,YAAoC;;wBAK1B;0DAMmC;;;;;;cAkB7C,aAAA,YAAyB;4DACsB"}
@@ -0,0 +1,61 @@
1
+ //#region src/query/retry-policy.ts
2
+ /**
3
+ * Exponential backoff retry policy
4
+ * Delay increases exponentially: initialDelay * (multiplier ^ attempt)
5
+ */
6
+ var ExponentialBackoffRetryPolicy = class {
7
+ #maxRetries;
8
+ #initialDelayMs;
9
+ #maxDelayMs;
10
+ #backoffMultiplier;
11
+ constructor(options = {}) {
12
+ this.#maxRetries = options.maxRetries ?? 3;
13
+ this.#initialDelayMs = options.initialDelayMs ?? 100;
14
+ this.#maxDelayMs = options.maxDelayMs ?? 1e4;
15
+ this.#backoffMultiplier = options.backoffMultiplier ?? 2;
16
+ }
17
+ shouldRetry(attempt, _error, signal) {
18
+ if (signal?.aborted) return false;
19
+ return attempt < this.#maxRetries;
20
+ }
21
+ getDelayMs(attempt) {
22
+ const delay = this.#initialDelayMs * Math.pow(this.#backoffMultiplier, attempt);
23
+ return Math.min(delay, this.#maxDelayMs);
24
+ }
25
+ };
26
+ /**
27
+ * Linear backoff retry policy
28
+ * Delay increases linearly: delayMs + (attempt * incrementMs)
29
+ */
30
+ var LinearBackoffRetryPolicy = class {
31
+ #maxRetries;
32
+ #delayMs;
33
+ #incrementMs;
34
+ constructor(options = {}) {
35
+ this.#maxRetries = options.maxRetries ?? 3;
36
+ this.#delayMs = options.delayMs ?? 100;
37
+ this.#incrementMs = options.incrementMs ?? 100;
38
+ }
39
+ shouldRetry(attempt, _error, signal) {
40
+ if (signal?.aborted) return false;
41
+ return attempt < this.#maxRetries;
42
+ }
43
+ getDelayMs(attempt) {
44
+ return this.#delayMs + attempt * this.#incrementMs;
45
+ }
46
+ };
47
+ /**
48
+ * No retry policy - never retries failed operations
49
+ */
50
+ var NoRetryPolicy = class {
51
+ shouldRetry(_attempt, _error, _signal) {
52
+ return false;
53
+ }
54
+ getDelayMs(_attempt) {
55
+ return 0;
56
+ }
57
+ };
58
+
59
+ //#endregion
60
+ export { ExponentialBackoffRetryPolicy, LinearBackoffRetryPolicy, NoRetryPolicy };
61
+ //# sourceMappingURL=retry-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-policy.js","names":["#maxRetries","#initialDelayMs","#maxDelayMs","#backoffMultiplier","#delayMs","#incrementMs"],"sources":["../../src/query/retry-policy.ts"],"sourcesContent":["/**\n * Policy for retrying failed Unit of Work operations\n */\nexport interface RetryPolicy {\n /**\n * Determines if the operation should be retried\n * @param attempt - The current attempt number (0-indexed)\n * @param error - Optional error from the previous attempt\n * @param signal - Optional AbortSignal to check for cancellation\n * @returns true if the operation should be retried, false otherwise\n */\n shouldRetry(attempt: number, error?: unknown, signal?: AbortSignal): boolean;\n\n /**\n * Gets the delay in milliseconds before the next retry attempt\n * @param attempt - The current attempt number (0-indexed)\n * @returns Delay in milliseconds\n */\n getDelayMs(attempt: number): number;\n}\n\n/**\n * Options for exponential backoff retry policy\n */\nexport interface ExponentialBackoffRetryPolicyOptions {\n /**\n * Maximum number of retry attempts (default: 3)\n */\n maxRetries?: number;\n\n /**\n * Initial delay in milliseconds (default: 100)\n */\n initialDelayMs?: number;\n\n /**\n * Maximum delay in milliseconds (default: 10000)\n */\n maxDelayMs?: number;\n\n /**\n * Multiplier for exponential backoff (default: 2)\n */\n backoffMultiplier?: number;\n}\n\n/**\n * Exponential backoff retry policy\n * Delay increases exponentially: initialDelay * (multiplier ^ attempt)\n */\nexport class ExponentialBackoffRetryPolicy implements RetryPolicy {\n readonly #maxRetries: number;\n readonly #initialDelayMs: number;\n readonly #maxDelayMs: number;\n readonly #backoffMultiplier: number;\n\n constructor(options: ExponentialBackoffRetryPolicyOptions = {}) {\n this.#maxRetries = options.maxRetries ?? 3;\n this.#initialDelayMs = options.initialDelayMs ?? 100;\n this.#maxDelayMs = options.maxDelayMs ?? 10000;\n this.#backoffMultiplier = options.backoffMultiplier ?? 2;\n }\n\n shouldRetry(attempt: number, _error?: unknown, signal?: AbortSignal): boolean {\n // Check if operation was aborted\n if (signal?.aborted) {\n return false;\n }\n\n // Check if we've exceeded max retries\n return attempt < this.#maxRetries;\n }\n\n getDelayMs(attempt: number): number {\n const delay = this.#initialDelayMs * Math.pow(this.#backoffMultiplier, attempt);\n return Math.min(delay, this.#maxDelayMs);\n }\n}\n\n/**\n * Options for linear backoff retry policy\n */\nexport interface LinearBackoffRetryPolicyOptions {\n /**\n * Maximum number of retry attempts (default: 3)\n */\n maxRetries?: number;\n\n /**\n * Base delay in milliseconds (default: 100)\n */\n delayMs?: number;\n\n /**\n * Increment added to delay for each attempt in milliseconds (default: 100)\n */\n incrementMs?: number;\n}\n\n/**\n * Linear backoff retry policy\n * Delay increases linearly: delayMs + (attempt * incrementMs)\n */\nexport class LinearBackoffRetryPolicy implements RetryPolicy {\n readonly #maxRetries: number;\n readonly #delayMs: number;\n readonly #incrementMs: number;\n\n constructor(options: LinearBackoffRetryPolicyOptions = {}) {\n this.#maxRetries = options.maxRetries ?? 3;\n this.#delayMs = options.delayMs ?? 100;\n this.#incrementMs = options.incrementMs ?? 100;\n }\n\n shouldRetry(attempt: number, _error?: unknown, signal?: AbortSignal): boolean {\n // Check if operation was aborted\n if (signal?.aborted) {\n return false;\n }\n\n // Check if we've exceeded max retries\n return attempt < this.#maxRetries;\n }\n\n getDelayMs(attempt: number): number {\n return this.#delayMs + attempt * this.#incrementMs;\n }\n}\n\n/**\n * No retry policy - never retries failed operations\n */\nexport class NoRetryPolicy implements RetryPolicy {\n shouldRetry(_attempt: number, _error?: unknown, _signal?: AbortSignal): boolean {\n return false;\n }\n\n getDelayMs(_attempt: number): number {\n return 0;\n }\n}\n"],"mappings":";;;;;AAkDA,IAAa,gCAAb,MAAkE;CAChE,CAASA;CACT,CAASC;CACT,CAASC;CACT,CAASC;CAET,YAAY,UAAgD,EAAE,EAAE;AAC9D,QAAKH,aAAc,QAAQ,cAAc;AACzC,QAAKC,iBAAkB,QAAQ,kBAAkB;AACjD,QAAKC,aAAc,QAAQ,cAAc;AACzC,QAAKC,oBAAqB,QAAQ,qBAAqB;;CAGzD,YAAY,SAAiB,QAAkB,QAA+B;AAE5E,MAAI,QAAQ,QACV,QAAO;AAIT,SAAO,UAAU,MAAKH;;CAGxB,WAAW,SAAyB;EAClC,MAAM,QAAQ,MAAKC,iBAAkB,KAAK,IAAI,MAAKE,mBAAoB,QAAQ;AAC/E,SAAO,KAAK,IAAI,OAAO,MAAKD,WAAY;;;;;;;AA4B5C,IAAa,2BAAb,MAA6D;CAC3D,CAASF;CACT,CAASI;CACT,CAASC;CAET,YAAY,UAA2C,EAAE,EAAE;AACzD,QAAKL,aAAc,QAAQ,cAAc;AACzC,QAAKI,UAAW,QAAQ,WAAW;AACnC,QAAKC,cAAe,QAAQ,eAAe;;CAG7C,YAAY,SAAiB,QAAkB,QAA+B;AAE5E,MAAI,QAAQ,QACV,QAAO;AAIT,SAAO,UAAU,MAAKL;;CAGxB,WAAW,SAAyB;AAClC,SAAO,MAAKI,UAAW,UAAU,MAAKC;;;;;;AAO1C,IAAa,gBAAb,MAAkD;CAChD,YAAY,UAAkB,QAAkB,SAAgC;AAC9E,SAAO;;CAGT,WAAW,UAA0B;AACnC,SAAO"}
@@ -2,7 +2,8 @@ import { AnySchema, AnyTable, FragnoId, IdColumn, Index, Relation } from "../sch
2
2
  import { Condition, ConditionBuilder } from "./condition-builder.js";
3
3
  import { CompiledJoin } from "./orm/orm.js";
4
4
  import { Cursor, CursorResult } from "./cursor.js";
5
- import { SelectClause, SelectResult, TableToInsertValues, TableToUpdateValues } from "./query.js";
5
+ import { Prettify } from "../util/types.js";
6
+ import { ExtractJoinOut, ExtractSelect, SelectClause, SelectResult, TableToInsertValues, TableToUpdateValues } from "./query.js";
6
7
 
7
8
  //#region src/query/unit-of-work.d.ts
8
9
 
@@ -96,12 +97,17 @@ type UOWState = "building-retrieval" | "building-mutation" | "executed";
96
97
  */
97
98
  type RetrievalOperation<TSchema extends AnySchema, TTable extends AnyTable = TSchema["tables"][keyof TSchema["tables"]]> = {
98
99
  type: "find";
100
+ schema: TSchema;
101
+ namespace?: string;
99
102
  table: TTable;
100
103
  indexName: string;
101
104
  options: FindOptions<TTable, SelectClause<TTable>>;
102
105
  withCursor?: boolean;
106
+ withSingleResult?: boolean;
103
107
  } | {
104
108
  type: "count";
109
+ schema: TSchema;
110
+ namespace?: string;
105
111
  table: TTable;
106
112
  indexName: string;
107
113
  options: Pick<FindOptions<TTable>, "where" | "useIndex">;
@@ -111,20 +117,32 @@ type RetrievalOperation<TSchema extends AnySchema, TTable extends AnyTable = TSc
111
117
  */
112
118
  type MutationOperation<TSchema extends AnySchema, TTable extends AnyTable = TSchema["tables"][keyof TSchema["tables"]]> = {
113
119
  type: "update";
120
+ schema: TSchema;
121
+ namespace?: string;
114
122
  table: TTable["name"];
115
123
  id: FragnoId | string;
116
124
  checkVersion: boolean;
117
125
  set: TableToUpdateValues<TTable>;
118
126
  } | {
119
127
  type: "create";
128
+ schema: TSchema;
129
+ namespace?: string;
120
130
  table: TTable["name"];
121
131
  values: TableToInsertValues<TTable>;
122
132
  generatedExternalId: string;
123
133
  } | {
124
134
  type: "delete";
135
+ schema: TSchema;
136
+ namespace?: string;
125
137
  table: TTable["name"];
126
138
  id: FragnoId | string;
127
139
  checkVersion: boolean;
140
+ } | {
141
+ type: "check";
142
+ schema: TSchema;
143
+ namespace?: string;
144
+ table: TTable["name"];
145
+ id: FragnoId;
128
146
  };
129
147
  /**
130
148
  * Compiled mutation with metadata for execution
@@ -137,19 +155,25 @@ interface CompiledMutation<TOutput> {
137
155
  * null means don't check affected rows (e.g., for create operations).
138
156
  */
139
157
  expectedAffectedRows: number | null;
158
+ /**
159
+ * Number of rows this SELECT query must return for the transaction to succeed.
160
+ * Used for check operations to verify version without modifying data.
161
+ * null means this is not a SELECT query that needs row count validation.
162
+ */
163
+ expectedReturnedRows: number | null;
140
164
  }
141
165
  /**
142
166
  * Compiler interface for Unit of Work operations
143
167
  */
144
- interface UOWCompiler<TSchema extends AnySchema, TOutput> {
168
+ interface UOWCompiler<TOutput> {
145
169
  /**
146
170
  * Compile a retrieval operation to the adapter's query format
147
171
  */
148
- compileRetrievalOperation(op: RetrievalOperation<TSchema>): TOutput | null;
172
+ compileRetrievalOperation(op: RetrievalOperation<AnySchema>): TOutput | null;
149
173
  /**
150
174
  * Compile a mutation operation to the adapter's query format
151
175
  */
152
- compileMutationOperation(op: MutationOperation<TSchema>): CompiledMutation<TOutput> | null;
176
+ compileMutationOperation(op: MutationOperation<AnySchema>): CompiledMutation<TOutput> | null;
153
177
  }
154
178
  type MutationResult = {
155
179
  success: true;
@@ -178,7 +202,7 @@ interface UOWExecutor<TOutput, TRawResult = unknown> {
178
202
  * Transforms raw database results into application format (e.g., converting raw columns
179
203
  * into FragnoId objects with external ID, internal ID, and version).
180
204
  */
181
- interface UOWDecoder<TSchema extends AnySchema, TRawInput = unknown> {
205
+ interface UOWDecoder<TRawInput = unknown> {
182
206
  /**
183
207
  * Decode raw database results from the retrieval phase
184
208
  *
@@ -186,7 +210,7 @@ interface UOWDecoder<TSchema extends AnySchema, TRawInput = unknown> {
186
210
  * @param operations - Array of retrieval operations that produced these results
187
211
  * @returns Decoded results in application format
188
212
  */
189
- (rawResults: TRawInput[], operations: RetrievalOperation<TSchema>[]): unknown[];
213
+ (rawResults: TRawInput[], operations: RetrievalOperation<AnySchema>[]): unknown[];
190
214
  }
191
215
  /**
192
216
  * Builder for find operations in Unit of Work
@@ -346,10 +370,40 @@ type IndexedJoinBuilder<TTable extends AnyTable, TJoinOut> = { [K in keyof TTabl
346
370
  * This ensures all join conditions can leverage indexes for optimal performance
347
371
  */
348
372
  declare function buildJoinIndexed<TTable extends AnyTable, TJoinOut>(table: TTable, fn: (builder: IndexedJoinBuilder<TTable, {}>) => IndexedJoinBuilder<TTable, TJoinOut>): CompiledJoin[];
349
- declare function createUnitOfWork<const TSchema extends AnySchema, const TRetrievalResults extends unknown[] = [], const TRawInput = unknown>(schema: TSchema, compiler: UOWCompiler<TSchema, unknown>, executor: UOWExecutor<unknown, TRawInput>, decoder: UOWDecoder<TSchema, TRawInput>, name?: string): UnitOfWork<TSchema, TRetrievalResults, TRawInput>;
373
+ /**
374
+ * Full Unit of Work interface with all operations including execution.
375
+ * This allows UOW instances to be passed between different contexts that use different schemas.
376
+ */
377
+ interface IUnitOfWork {
378
+ readonly state: UOWState;
379
+ readonly name: string | undefined;
380
+ readonly nonce: string;
381
+ readonly retrievalPhase: Promise<unknown[]>;
382
+ readonly mutationPhase: Promise<void>;
383
+ executeRetrieve(): Promise<unknown[]>;
384
+ executeMutations(): Promise<{
385
+ success: boolean;
386
+ }>;
387
+ getRetrievalOperations(): ReadonlyArray<RetrievalOperation<AnySchema>>;
388
+ getMutationOperations(): ReadonlyArray<MutationOperation<AnySchema>>;
389
+ getCreatedIds(): FragnoId[];
390
+ restrict(): IUnitOfWork;
391
+ reset(): void;
392
+ forSchema<TOtherSchema extends AnySchema>(schema: TOtherSchema): TypedUnitOfWork<TOtherSchema, [], any>;
393
+ }
394
+ /**
395
+ * Restricted UOW interface without execute methods.
396
+ * Useful when you want to allow building operations but not executing them,
397
+ * to prevent deadlocks or enforce execution control at a higher level.
398
+ *
399
+ * Note: This is just a marker interface. Restriction is enforced by the UnitOfWork class itself.
400
+ */
401
+ interface IUnitOfWorkRestricted extends Omit<IUnitOfWork, "executeRetrieve" | "executeMutations"> {}
402
+ declare function createUnitOfWork(compiler: UOWCompiler<unknown>, executor: UOWExecutor<unknown, unknown>, decoder: UOWDecoder<unknown>, schemaNamespaceMap?: WeakMap<AnySchema, string>, name?: string): UnitOfWork;
350
403
  interface UnitOfWorkConfig {
351
404
  dryRun?: boolean;
352
405
  onQuery?: (query: unknown) => void;
406
+ nonce?: string;
353
407
  }
354
408
  /**
355
409
  * Unit of Work implementation with optimistic concurrency control
@@ -358,19 +412,22 @@ interface UnitOfWorkConfig {
358
412
  * 1. Retrieval phase: Read operations to fetch entities with their versions
359
413
  * 2. Mutation phase: Write operations that check versions before committing
360
414
  *
415
+ * This is the untyped base storage. Use TypedUnitOfWork for type-safe operations.
416
+ *
361
417
  * @example
362
418
  * ```ts
363
419
  * const uow = queryEngine.createUnitOfWork("update-user-balance");
420
+ * const typedUow = uow.forSchema(mySchema);
364
421
  *
365
422
  * // Retrieval phase
366
- * uow.find("users", (b) => b.where("primary", (eb) => eb("id", "=", userId)));
423
+ * typedUow.find("users", (b) => b.whereIndex("primary", (eb) => eb("id", "=", userId)));
367
424
  *
368
425
  * // Execute retrieval and transition to mutation phase
369
426
  * const [users] = await uow.executeRetrieve();
370
427
  *
371
428
  * // Mutation phase with version check
372
429
  * const user = users[0];
373
- * uow.update("users", user.id, (b) => b.set({ balance: newBalance }).check());
430
+ * typedUow.update("users", user.id, (b) => b.set({ balance: newBalance }).check());
374
431
  *
375
432
  * // Execute mutations
376
433
  * const { success } = await uow.executeMutations();
@@ -379,38 +436,54 @@ interface UnitOfWorkConfig {
379
436
  * }
380
437
  * ```
381
438
  */
382
- declare class UnitOfWork<const TSchema extends AnySchema, const TRetrievalResults extends unknown[] = [], const TRawInput = unknown> {
439
+ declare class UnitOfWork<const TRawInput = unknown> implements IUnitOfWork {
383
440
  #private;
384
- constructor(schema: TSchema, compiler: UOWCompiler<TSchema, unknown>, executor: UOWExecutor<unknown, TRawInput>, decoder: UOWDecoder<TSchema, TRawInput>, name?: string, config?: UnitOfWorkConfig);
385
- get schema(): TSchema;
386
- get state(): UOWState;
387
- get name(): string | undefined;
441
+ constructor(compiler: UOWCompiler<unknown>, executor: UOWExecutor<unknown, TRawInput>, decoder: UOWDecoder<TRawInput>, name?: string, config?: UnitOfWorkConfig, schemaNamespaceMap?: WeakMap<AnySchema, string>);
388
442
  /**
389
- * Execute the retrieval phase and transition to mutation phase
390
- * Returns all results from find operations
443
+ * Get a schema-specific typed view of this UOW for type-safe operations.
444
+ * Returns a wrapper that provides typed operations for the given schema.
445
+ * The namespace is automatically resolved from the schema-namespace map.
391
446
  */
392
- executeRetrieve(): Promise<TRetrievalResults>;
447
+ forSchema<TOtherSchema extends AnySchema, TRawInput>(schema: TOtherSchema): TypedUnitOfWork<TOtherSchema, [], TRawInput>;
393
448
  /**
394
- * Add a find operation using a builder callback (retrieval phase only)
449
+ * Create a restricted child UOW that cannot execute phases.
450
+ * The child shares the same operation storage but must signal readiness
451
+ * before the parent can execute each phase.
395
452
  */
396
- find<TTableName extends keyof TSchema["tables"] & string, TSelect extends SelectClause<TSchema["tables"][TTableName]> = true, TJoinOut = {}>(tableName: TTableName, builderFn?: (builder: Omit<FindBuilder<TSchema["tables"][TTableName]>, "build">) => Omit<FindBuilder<TSchema["tables"][TTableName], TSelect, TJoinOut>, "build"> | void): UnitOfWork<TSchema, [...TRetrievalResults, SelectResult<TSchema["tables"][TTableName], TJoinOut, TSelect>[]], TRawInput>;
453
+ restrict(): UnitOfWork<TRawInput>;
397
454
  /**
398
- * Add a find operation with cursor metadata (retrieval phase only)
455
+ * Signal that this child is ready for retrieval phase execution.
456
+ * Only valid for restricted (child) UOWs.
399
457
  */
400
- findWithCursor<TTableName extends keyof TSchema["tables"] & string, TSelect extends SelectClause<TSchema["tables"][TTableName]> = true, TJoinOut = {}>(tableName: TTableName, builderFn: (builder: Omit<FindBuilder<TSchema["tables"][TTableName]>, "build">) => Omit<FindBuilder<TSchema["tables"][TTableName], TSelect, TJoinOut>, "build"> | void): UnitOfWork<TSchema, [...TRetrievalResults, CursorResult<SelectResult<TSchema["tables"][TTableName], TJoinOut, TSelect>>], TRawInput>;
458
+ signalReadyForRetrieval(): void;
401
459
  /**
402
- * Add a create operation (mutation phase only)
403
- * Returns a FragnoId with the external ID that can be used immediately in subsequent operations
460
+ * Signal that this child is ready for mutation phase execution.
461
+ * Only valid for restricted (child) UOWs.
404
462
  */
405
- create<TableName extends keyof TSchema["tables"] & string>(table: TableName, values: TableToInsertValues<TSchema["tables"][TableName]>): FragnoId;
463
+ signalReadyForMutation(): void;
406
464
  /**
407
- * Add an update operation using a builder callback (mutation phase only)
465
+ * Reset the UOW to initial state for retry support.
466
+ * Clears operations, resets state, and resets phase promises.
408
467
  */
409
- update<TableName extends keyof TSchema["tables"] & string>(table: TableName, id: FragnoId | string, builderFn: (builder: Omit<UpdateBuilder<TSchema["tables"][TableName]>, "build">) => Omit<UpdateBuilder<TSchema["tables"][TableName]>, "build"> | void): void;
468
+ reset(): void;
469
+ get state(): UOWState;
470
+ get name(): string | undefined;
471
+ get nonce(): string;
472
+ /**
473
+ * Promise that resolves when the retrieval phase is executed
474
+ * Service methods can await this to coordinate multi-phase logic
475
+ */
476
+ get retrievalPhase(): Promise<unknown[]>;
410
477
  /**
411
- * Add a delete operation using a builder callback (mutation phase only)
478
+ * Promise that resolves when the mutation phase is executed
479
+ * Service methods can await this to coordinate multi-phase logic
412
480
  */
413
- delete<TableName extends keyof TSchema["tables"] & string>(table: TableName, id: FragnoId | string, builderFn?: (builder: Omit<DeleteBuilder, "build">) => Omit<DeleteBuilder, "build"> | void): void;
481
+ get mutationPhase(): Promise<void>;
482
+ /**
483
+ * Execute the retrieval phase and transition to mutation phase
484
+ * Returns all results from find operations
485
+ */
486
+ executeRetrieve(): Promise<unknown[]>;
414
487
  /**
415
488
  * Execute the mutation phase
416
489
  * Returns success flag indicating if mutations completed without conflicts
@@ -421,11 +494,21 @@ declare class UnitOfWork<const TSchema extends AnySchema, const TRetrievalResult
421
494
  /**
422
495
  * Get the retrieval operations (for inspection/debugging)
423
496
  */
424
- getRetrievalOperations(): ReadonlyArray<RetrievalOperation<TSchema>>;
497
+ getRetrievalOperations(): ReadonlyArray<RetrievalOperation<AnySchema>>;
425
498
  /**
426
499
  * Get the mutation operations (for inspection/debugging)
427
500
  */
428
- getMutationOperations(): ReadonlyArray<MutationOperation<TSchema>>;
501
+ getMutationOperations(): ReadonlyArray<MutationOperation<AnySchema>>;
502
+ /**
503
+ * @internal
504
+ * Add a retrieval operation (used by TypedUnitOfWork)
505
+ */
506
+ addRetrievalOperation(op: RetrievalOperation<AnySchema>): number;
507
+ /**
508
+ * @internal
509
+ * Add a mutation operation (used by TypedUnitOfWork)
510
+ */
511
+ addMutationOperation(op: MutationOperation<AnySchema>): void;
429
512
  /**
430
513
  * Get the IDs of created entities after executeMutations() has been called.
431
514
  * Returns FragnoId objects with external IDs (always available) and internal IDs
@@ -439,12 +522,68 @@ declare class UnitOfWork<const TSchema extends AnySchema, const TRetrievalResult
439
522
  * @internal
440
523
  * Compile the unit of work to executable queries for testing
441
524
  */
442
- compile<TOutput>(compiler: UOWCompiler<TSchema, TOutput>): {
525
+ compile<TOutput>(compiler: UOWCompiler<TOutput>): {
526
+ name?: string;
527
+ retrievalBatch: TOutput[];
528
+ mutationBatch: CompiledMutation<TOutput>[];
529
+ };
530
+ }
531
+ /**
532
+ * A typed facade around a UnitOfWork that provides type-safe operations for a specific schema.
533
+ * All operations are stored in the underlying UOW, but this facade ensures type safety and
534
+ * filters retrieval results to only include operations added through this facade.
535
+ */
536
+ declare class TypedUnitOfWork<const TSchema extends AnySchema, const TRetrievalResults extends unknown[] = [], const TRawInput = unknown> implements IUnitOfWork {
537
+ #private;
538
+ constructor(schema: TSchema, namespace: string | undefined, uow: UnitOfWork<TRawInput>);
539
+ get $results(): Prettify<TRetrievalResults>;
540
+ get schema(): TSchema;
541
+ get name(): string | undefined;
542
+ get nonce(): string;
543
+ get state(): UOWState;
544
+ get retrievalPhase(): Promise<TRetrievalResults>;
545
+ get mutationPhase(): Promise<void>;
546
+ getRetrievalOperations(): readonly RetrievalOperation<AnySchema, AnyTable>[];
547
+ getMutationOperations(): readonly MutationOperation<AnySchema, AnyTable>[];
548
+ getCreatedIds(): FragnoId[];
549
+ executeRetrieve(): Promise<TRetrievalResults>;
550
+ executeMutations(): Promise<{
551
+ success: boolean;
552
+ }>;
553
+ restrict(): IUnitOfWork;
554
+ reset(): void;
555
+ forSchema<TOtherSchema extends AnySchema>(schema: TOtherSchema): TypedUnitOfWork<TOtherSchema, [], TRawInput>;
556
+ compile<TOutput>(compiler: UOWCompiler<TOutput>): {
443
557
  name?: string;
444
558
  retrievalBatch: TOutput[];
445
559
  mutationBatch: CompiledMutation<TOutput>[];
446
560
  };
561
+ find<TTableName extends keyof TSchema["tables"] & string, const TBuilderResult>(tableName: TTableName, builderFn: (builder: Omit<FindBuilder<TSchema["tables"][TTableName]>, "build">) => TBuilderResult): TypedUnitOfWork<TSchema, [...TRetrievalResults, SelectResult<TSchema["tables"][TTableName], ExtractJoinOut<TBuilderResult>, Extract<ExtractSelect<TBuilderResult>, SelectClause<TSchema["tables"][TTableName]>>>[]], TRawInput>;
562
+ find<TTableName extends keyof TSchema["tables"] & string>(tableName: TTableName): TypedUnitOfWork<TSchema, [...TRetrievalResults, SelectResult<TSchema["tables"][TTableName], {}, true>[]], TRawInput>;
563
+ findFirst<TTableName extends keyof TSchema["tables"] & string, const TBuilderResult>(tableName: TTableName, builderFn: (builder: Omit<FindBuilder<TSchema["tables"][TTableName]>, "build">) => TBuilderResult): TypedUnitOfWork<TSchema, [...TRetrievalResults, SelectResult<TSchema["tables"][TTableName], ExtractJoinOut<TBuilderResult>, Extract<ExtractSelect<TBuilderResult>, SelectClause<TSchema["tables"][TTableName]>>> | null], TRawInput>;
564
+ findFirst<TTableName extends keyof TSchema["tables"] & string>(tableName: TTableName): TypedUnitOfWork<TSchema, [...TRetrievalResults, SelectResult<TSchema["tables"][TTableName], {}, true> | null], TRawInput>;
565
+ findWithCursor<TTableName extends keyof TSchema["tables"] & string, const TBuilderResult>(tableName: TTableName, builderFn: (builder: Omit<FindBuilder<TSchema["tables"][TTableName]>, "build">) => TBuilderResult): TypedUnitOfWork<TSchema, [...TRetrievalResults, CursorResult<SelectResult<TSchema["tables"][TTableName], ExtractJoinOut<TBuilderResult>, Extract<ExtractSelect<TBuilderResult>, SelectClause<TSchema["tables"][TTableName]>>>>], TRawInput>;
566
+ create<TableName extends keyof TSchema["tables"] & string>(tableName: TableName, values: TableToInsertValues<TSchema["tables"][TableName]>): FragnoId;
567
+ update<TableName extends keyof TSchema["tables"] & string>(tableName: TableName, id: FragnoId | string, builderFn: (builder: Omit<UpdateBuilder<TSchema["tables"][TableName]>, "build">) => Omit<UpdateBuilder<TSchema["tables"][TableName]>, "build"> | void): void;
568
+ delete<TableName extends keyof TSchema["tables"] & string>(tableName: TableName, id: FragnoId | string, builderFn?: (builder: Omit<DeleteBuilder, "build">) => Omit<DeleteBuilder, "build"> | void): void;
569
+ /**
570
+ * Check that a record's version hasn't changed since retrieval.
571
+ * This is useful for ensuring related records remain unchanged during a transaction.
572
+ *
573
+ * @param tableName - The table name
574
+ * @param id - The FragnoId with version information (string IDs are not allowed)
575
+ * @throws Error if the ID is a string without version information
576
+ *
577
+ * @example
578
+ * ```ts
579
+ * // Ensure both accounts haven't changed before creating a transfer
580
+ * uow.check("accounts", fromAccount.id);
581
+ * uow.check("accounts", toAccount.id);
582
+ * uow.create("transactions", { fromAccountId, toAccountId, amount });
583
+ * ```
584
+ */
585
+ check<TableName extends keyof TSchema["tables"] & string>(tableName: TableName, id: FragnoId): void;
447
586
  }
448
587
  //#endregion
449
- export { CompiledMutation, DeleteBuilder, FindBuilder, IndexColumns, IndexedConditionBuilder, IndexedJoinBuilder, InferIdColumnName, JoinFindBuilder, MutationOperation, MutationResult, RetrievalOperation, UOWCompiler, UOWDecoder, UOWExecutor, UOWState, UnitOfWork, UnitOfWorkConfig, UpdateBuilder, UpdateManyBuilder, ValidIndexName, buildJoinIndexed, createUnitOfWork };
588
+ export { CompiledMutation, DeleteBuilder, FindBuilder, IUnitOfWork, IUnitOfWorkRestricted, IndexColumns, IndexedConditionBuilder, IndexedJoinBuilder, InferIdColumnName, JoinFindBuilder, MutationOperation, MutationResult, RetrievalOperation, TypedUnitOfWork, UOWCompiler, UOWDecoder, UOWExecutor, UOWState, UnitOfWork, UnitOfWorkConfig, UpdateBuilder, UpdateManyBuilder, ValidIndexName, buildJoinIndexed, createUnitOfWork };
450
589
  //# sourceMappingURL=unit-of-work.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unit-of-work.d.ts","names":[],"sources":["../../src/query/unit-of-work.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"unit-of-work.d.ts","names":[],"sources":["../../src/query/unit-of-work.ts"],"sourcesContent":[],"mappings":"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"}