@fragno-dev/db 0.2.1 → 0.2.2

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 (60) hide show
  1. package/.turbo/turbo-build.log +34 -30
  2. package/CHANGELOG.md +32 -0
  3. package/dist/adapters/generic-sql/query/where-builder.js +1 -1
  4. package/dist/db-fragment-definition-builder.d.ts +27 -89
  5. package/dist/db-fragment-definition-builder.d.ts.map +1 -1
  6. package/dist/db-fragment-definition-builder.js +16 -56
  7. package/dist/db-fragment-definition-builder.js.map +1 -1
  8. package/dist/fragments/internal-fragment.d.ts +94 -8
  9. package/dist/fragments/internal-fragment.d.ts.map +1 -1
  10. package/dist/fragments/internal-fragment.js +56 -55
  11. package/dist/fragments/internal-fragment.js.map +1 -1
  12. package/dist/hooks/hooks.d.ts +5 -3
  13. package/dist/hooks/hooks.d.ts.map +1 -1
  14. package/dist/hooks/hooks.js +38 -37
  15. package/dist/hooks/hooks.js.map +1 -1
  16. package/dist/mod.d.ts +3 -3
  17. package/dist/mod.d.ts.map +1 -1
  18. package/dist/mod.js +4 -4
  19. package/dist/mod.js.map +1 -1
  20. package/dist/query/unit-of-work/execute-unit-of-work.d.ts +351 -100
  21. package/dist/query/unit-of-work/execute-unit-of-work.d.ts.map +1 -1
  22. package/dist/query/unit-of-work/execute-unit-of-work.js +431 -263
  23. package/dist/query/unit-of-work/execute-unit-of-work.js.map +1 -1
  24. package/dist/query/unit-of-work/unit-of-work.d.ts +17 -8
  25. package/dist/query/unit-of-work/unit-of-work.d.ts.map +1 -1
  26. package/dist/query/unit-of-work/unit-of-work.js +24 -8
  27. package/dist/query/unit-of-work/unit-of-work.js.map +1 -1
  28. package/dist/query/value-decoding.js +1 -1
  29. package/dist/schema/create.d.ts +3 -1
  30. package/dist/schema/create.d.ts.map +1 -1
  31. package/dist/schema/create.js +2 -1
  32. package/dist/schema/create.js.map +1 -1
  33. package/dist/schema/generate-id.d.ts +20 -0
  34. package/dist/schema/generate-id.d.ts.map +1 -0
  35. package/dist/schema/generate-id.js +28 -0
  36. package/dist/schema/generate-id.js.map +1 -0
  37. package/package.json +1 -1
  38. package/src/adapters/drizzle/drizzle-adapter-sqlite3.test.ts +41 -25
  39. package/src/adapters/generic-sql/test/generic-drizzle-adapter-sqlite3.test.ts +39 -25
  40. package/src/db-fragment-definition-builder.test.ts +58 -42
  41. package/src/db-fragment-definition-builder.ts +58 -248
  42. package/src/db-fragment-instantiator.test.ts +64 -88
  43. package/src/db-fragment-integration.test.ts +292 -142
  44. package/src/fragments/internal-fragment.test.ts +272 -266
  45. package/src/fragments/internal-fragment.ts +155 -121
  46. package/src/hooks/hooks.test.ts +248 -256
  47. package/src/hooks/hooks.ts +74 -63
  48. package/src/mod.ts +14 -4
  49. package/src/query/unit-of-work/execute-unit-of-work.test.ts +1494 -1464
  50. package/src/query/unit-of-work/execute-unit-of-work.ts +1685 -590
  51. package/src/query/unit-of-work/tx-builder.test.ts +1041 -0
  52. package/src/query/unit-of-work/unit-of-work-coordinator.test.ts +20 -20
  53. package/src/query/unit-of-work/unit-of-work.test.ts +64 -0
  54. package/src/query/unit-of-work/unit-of-work.ts +26 -13
  55. package/src/schema/create.ts +2 -0
  56. package/src/schema/generate-id.test.ts +57 -0
  57. package/src/schema/generate-id.ts +38 -0
  58. package/src/shared/config.ts +0 -10
  59. package/src/shared/connection-pool.ts +0 -24
  60. package/src/shared/prisma.ts +0 -45
@@ -1,4 +1,4 @@
1
- import { AnySchema, FragnoId } from "../../schema/create.js";
1
+ import { AnySchema } from "../../schema/create.js";
2
2
  import { RetryPolicy } from "./retry-policy.js";
3
3
  import { HooksMap } from "../../hooks/hooks.js";
4
4
  import { IUnitOfWork, TypedUnitOfWork } from "./unit-of-work.js";
@@ -6,106 +6,156 @@ import { IUnitOfWork, TypedUnitOfWork } from "./unit-of-work.js";
6
6
  //#region src/query/unit-of-work/execute-unit-of-work.d.ts
7
7
 
8
8
  /**
9
- * Type utility that unwraps promises 1 level deep in objects, arrays, or direct promises
10
- * Handles tuples, arrays, objects, and direct promises
9
+ * Symbol to identify TxResult objects
11
10
  */
12
- type AwaitedPromisesInObject<T> = T extends Promise<infer U> ? Awaited<U> : T extends readonly [unknown, ...unknown[]] ? { [K in keyof T]: AwaitedPromisesInObject<T[K]> } : T extends [unknown, ...unknown[]] ? { [K in keyof T]: AwaitedPromisesInObject<T[K]> } : T extends (infer U)[] ? Awaited<U>[] : T extends readonly (infer U)[] ? readonly Awaited<U>[] : T extends Record<string, unknown> ? { [K in keyof T]: T[K] extends Promise<infer U> ? Awaited<U> : T[K] } : T;
11
+ declare const TX_RESULT_BRAND: unique symbol;
12
+ /**
13
+ * Check if a value is a TxResult
14
+ */
15
+
16
+ /**
17
+ * Extract the retrieve success result type from a TxResult.
18
+ * If the TxResult has retrieveSuccess, returns its return type.
19
+ * Otherwise returns the raw retrieve results type.
20
+ * Handles undefined (for optional service patterns like optionalService?.method()).
21
+ */
22
+ type ExtractTxRetrieveSuccessResult<T> = T extends undefined ? undefined : T extends TxResult<unknown, infer R> ? R : never;
23
+ /**
24
+ * Extract the final result type from a TxResult.
25
+ * Handles undefined (for optional service patterns like optionalService?.method()).
26
+ */
27
+ type ExtractTxFinalResult<T> = T extends undefined ? undefined : T extends TxResult<infer R, infer _> ? R : Awaited<T>;
28
+ /**
29
+ * Map over service calls array to extract retrieve success results from each service call.
30
+ * Preserves tuple structure while extracting the retrieve success result type from each element.
31
+ */
32
+ type ExtractServiceRetrieveResults<T extends readonly unknown[]> = { [K in keyof T]: ExtractTxRetrieveSuccessResult<T[K]> };
33
+ /**
34
+ * Map over service calls array to extract final results from each service call.
35
+ * Preserves tuple structure while extracting the final result type from each element.
36
+ */
37
+ type ExtractServiceFinalResults<T extends readonly unknown[]> = { [K in keyof T]: ExtractTxFinalResult<T[K]> };
13
38
  /**
14
- * Result of executing a Unit of Work with retry support
15
- * Promises in mutationResult are unwrapped 1 level deep
39
+ * Context passed to mutate callback for service methods
16
40
  */
17
- type ExecuteUnitOfWorkResult<TRetrievalResults, TMutationResult> = {
18
- success: true;
19
- results: TRetrievalResults;
20
- mutationResult: AwaitedPromisesInObject<TMutationResult>;
21
- createdIds: FragnoId[];
22
- nonce: string;
23
- } | {
24
- success: false;
25
- reason: "conflict";
26
- } | {
27
- success: false;
28
- reason: "aborted";
29
- } | {
30
- success: false;
31
- reason: "error";
32
- error: unknown;
33
- };
41
+ interface ServiceTxMutateContext<TSchema extends AnySchema, TRetrieveSuccessResult, TServiceRetrieveResults extends readonly unknown[], THooks extends HooksMap> {
42
+ /** Unit of work for scheduling mutations */
43
+ uow: TypedUnitOfWork<TSchema, [], unknown, THooks>;
44
+ /** Result from retrieveSuccess callback (or raw retrieve results if no retrieveSuccess) */
45
+ retrieveResult: TRetrieveSuccessResult;
46
+ /** Array of retrieve success results from service calls (intermediate results, not final) */
47
+ serviceIntermediateResult: TServiceRetrieveResults;
48
+ }
34
49
  /**
35
- * Callbacks for executing a Unit of Work
50
+ * Context passed to success callback when mutate IS provided
36
51
  */
37
- interface ExecuteUnitOfWorkCallbacks<TSchema extends AnySchema, TRetrievalResults extends unknown[], TMutationResult, TRawInput> {
52
+ interface TxSuccessContextWithMutate<TRetrieveSuccessResult, TMutateResult, TServiceFinalResults extends readonly unknown[], TServiceRetrieveResults extends readonly unknown[]> {
53
+ /** Result from retrieveSuccess callback (or raw retrieve results if no retrieveSuccess) */
54
+ retrieveResult: TRetrieveSuccessResult;
55
+ /** Result from mutate callback */
56
+ mutateResult: TMutateResult;
57
+ /** Array of final results from service calls */
58
+ serviceResult: TServiceFinalResults;
59
+ /** Array of retrieve success results from service calls (same as what mutate receives) */
60
+ serviceIntermediateResult: TServiceRetrieveResults;
61
+ }
62
+ /**
63
+ * Context passed to success callback when mutate is NOT provided
64
+ */
65
+ interface TxSuccessContextWithoutMutate<TRetrieveSuccessResult, TServiceFinalResults extends readonly unknown[], TServiceRetrieveResults extends readonly unknown[]> {
66
+ /** Result from retrieveSuccess callback (or raw retrieve results if no retrieveSuccess) */
67
+ retrieveResult: TRetrieveSuccessResult;
68
+ /** No mutate callback was provided */
69
+ mutateResult: undefined;
70
+ /** Array of final results from service calls */
71
+ serviceResult: TServiceFinalResults;
72
+ /** Array of retrieve success results from service calls (same as what mutate receives) */
73
+ serviceIntermediateResult: TServiceRetrieveResults;
74
+ }
75
+ /**
76
+ * Context passed to success callback.
77
+ * Union of TxSuccessContextWithMutate and TxSuccessContextWithoutMutate to handle
78
+ * both cases in a single callback signature.
79
+ */
80
+ type TxSuccessContext<TRetrieveSuccessResult, TMutateResult, TServiceFinalResults extends readonly unknown[], TServiceRetrieveResults extends readonly unknown[] = readonly unknown[]> = TxSuccessContextWithMutate<TRetrieveSuccessResult, TMutateResult, TServiceFinalResults, TServiceRetrieveResults> | TxSuccessContextWithoutMutate<TRetrieveSuccessResult, TServiceFinalResults, TServiceRetrieveResults>;
81
+ /**
82
+ * Callbacks for service-level TxResult.
83
+ *
84
+ * Return type priority:
85
+ * 1. If success exists: ReturnType<success>
86
+ * 2. Else if mutate exists: ReturnType<mutate>
87
+ * 3. Else if retrieveSuccess exists: ReturnType<retrieveSuccess>
88
+ * 4. Else if retrieve exists: TRetrieveResults
89
+ * 5. Else: serviceResult array type
90
+ */
91
+ interface ServiceTxCallbacks<TSchema extends AnySchema, TRetrieveResults extends unknown[], TRetrieveSuccessResult, TServiceCalls extends readonly (TxResult<any, any> | undefined)[], TMutateResult, TSuccessResult, THooks extends HooksMap> {
38
92
  /**
39
- * Retrieval phase callback - adds retrieval operations to the UOW
93
+ * Service calls - other TxResults to execute first.
40
94
  */
41
- retrieve?: (uow: TypedUnitOfWork<TSchema, [], TRawInput>) => TypedUnitOfWork<TSchema, TRetrievalResults, TRawInput>;
95
+ serviceCalls?: () => TServiceCalls;
42
96
  /**
43
- * Mutation phase callback - receives UOW and retrieval results, adds mutation operations
97
+ * Retrieval phase callback - schedules retrieval operations.
44
98
  */
45
- mutate?: (uow: TypedUnitOfWork<TSchema, TRetrievalResults, TRawInput>, results: TRetrievalResults) => TMutationResult | Promise<TMutationResult>;
99
+ retrieve?: (uow: TypedUnitOfWork<TSchema, [], unknown, THooks>) => TypedUnitOfWork<TSchema, TRetrieveResults, unknown, THooks>;
46
100
  /**
47
- * Success callback - invoked after successful execution
48
- * Promises in mutationResult are already unwrapped 1 level deep
101
+ * Transform retrieve results before passing to mutate.
49
102
  */
50
- onSuccess?: (result: {
51
- results: TRetrievalResults;
52
- mutationResult: AwaitedPromisesInObject<TMutationResult>;
53
- createdIds: FragnoId[];
54
- nonce: string;
55
- }) => void | Promise<void>;
56
- }
57
- /**
58
- * Options for executing a Unit of Work
59
- */
60
- interface ExecuteUnitOfWorkOptions<TSchema extends AnySchema, TRawInput> {
103
+ retrieveSuccess?: (retrieveResult: TRetrieveResults, serviceResult: ExtractServiceRetrieveResults<TServiceCalls>) => TRetrieveSuccessResult;
61
104
  /**
62
- * Factory function that creates or resets a UOW instance for each attempt
105
+ * Mutation phase callback - schedules mutations based on retrieve results.
63
106
  */
64
- createUnitOfWork: () => TypedUnitOfWork<TSchema, [], TRawInput>;
107
+ mutate?: (ctx: ServiceTxMutateContext<TSchema, TRetrieveSuccessResult, ExtractServiceRetrieveResults<TServiceCalls>, THooks>) => TMutateResult;
65
108
  /**
66
- * Retry policy for handling optimistic concurrency conflicts
67
- */
68
- retryPolicy?: RetryPolicy;
69
- /**
70
- * Abort signal to cancel execution
109
+ * Success callback - final transformation after mutations complete.
71
110
  */
72
- signal?: AbortSignal;
111
+ success?: (ctx: TxSuccessContext<TRetrieveSuccessResult, TMutateResult, ExtractServiceFinalResults<TServiceCalls>, ExtractServiceRetrieveResults<TServiceCalls>>) => TSuccessResult;
73
112
  }
74
113
  /**
75
- * Execute a Unit of Work with automatic retry support for optimistic concurrency conflicts.
76
- *
77
- * This function orchestrates the two-phase execution (retrieval + mutation) with retry logic.
78
- * It creates fresh UOW instances for each attempt.
114
+ * Internal structure storing TxResult callbacks and state.
115
+ */
116
+ interface TxResultInternal<TSchema extends AnySchema, TRetrieveResults extends unknown[], TRetrieveSuccessResult, TServiceCalls extends readonly (TxResult<unknown> | undefined)[], TMutateResult, TSuccessResult, THooks extends HooksMap> {
117
+ schema: TSchema | undefined;
118
+ callbacks: ServiceTxCallbacks<TSchema, TRetrieveResults, TRetrieveSuccessResult, TServiceCalls, TMutateResult, TSuccessResult, THooks>;
119
+ /** The typed UOW created during retrieve callback */
120
+ typedUow: TypedUnitOfWork<TSchema, TRetrieveResults, unknown, THooks> | undefined;
121
+ /** The restricted UOW for signaling (used when typedUow is undefined) */
122
+ restrictedUow: IUnitOfWork;
123
+ /** Promise that resolves when retrieve phase is complete */
124
+ retrievePhase: Promise<TRetrieveResults>;
125
+ /** Resolve function for retrievePhase */
126
+ resolveRetrievePhase: (results: TRetrieveResults) => void;
127
+ /** Reject function for retrievePhase */
128
+ rejectRetrievePhase: (error: unknown) => void;
129
+ /** Computed retrieve success result (set after retrieveSuccess runs) */
130
+ retrieveSuccessResult: TRetrieveSuccessResult | undefined;
131
+ /** Computed mutate result (set after mutate runs) */
132
+ mutateResult: TMutateResult | undefined;
133
+ /** Computed final result (set after success runs or defaults) */
134
+ finalResult: TSuccessResult | undefined;
135
+ /** Service calls resolved */
136
+ serviceCalls: TServiceCalls | undefined;
137
+ }
138
+ /**
139
+ * TxResult represents a transaction definition (not yet executed).
140
+ * It describes the work to be done: retrieve operations, transformations, and mutations.
79
141
  *
80
- * @param callbacks - Object containing retrieve, mutate, and onSuccess callbacks
81
- * @param options - Configuration including UOW factory, retry policy, and abort signal
82
- * @returns Promise resolving to the execution result
142
+ * Service methods return TxResult objects, and the handler's executeTx function
143
+ * orchestrates their execution with retry support.
83
144
  *
84
- * @example
85
- * ```ts
86
- * const result = await executeUnitOfWork(
87
- * {
88
- * retrieve: (uow) => uow.find("users", (b) => b.whereIndex("primary")),
89
- * mutate: (uow, [users]) => {
90
- * const user = users[0];
91
- * uow.update("users", user.id, (b) => b.set({ balance: newBalance }));
92
- * },
93
- * onSuccess: async ({ results, mutationResult }) => {
94
- * console.log("Update successful!");
95
- * }
96
- * },
97
- * {
98
- * createUnitOfWork: () => queryEngine.createUnitOfWork(),
99
- * retryPolicy: new ExponentialBackoffRetryPolicy({ maxRetries: 3 })
100
- * }
101
- * );
102
- * ```
145
+ * @template TResult - The final result type (determined by return type priority)
146
+ * @template TRetrieveSuccessResult - The retrieve success result type (what serviceCalls receive).
147
+ * Defaults to TResult, meaning serviceCalls receive the same type as the final result.
103
148
  */
104
- declare function executeUnitOfWork<TSchema extends AnySchema, TRetrievalResults extends unknown[], TMutationResult = void, TRawInput = unknown>(callbacks: ExecuteUnitOfWorkCallbacks<TSchema, TRetrievalResults, TMutationResult, TRawInput>, options: ExecuteUnitOfWorkOptions<TSchema, TRawInput>): Promise<ExecuteUnitOfWorkResult<TRetrievalResults, TMutationResult>>;
149
+ interface TxResult<TResult, TRetrieveSuccessResult = TResult> {
150
+ /** Brand to identify TxResult objects */
151
+ readonly [TX_RESULT_BRAND]: true;
152
+ /** Internal structure - do not access directly */
153
+ readonly _internal: TxResultInternal<AnySchema, unknown[], TRetrieveSuccessResult, readonly TxResult<any, any>[], unknown, TResult, HooksMap>;
154
+ }
105
155
  /**
106
- * Options for executing a Unit of Work with restricted access
156
+ * Options for executing transactions
107
157
  */
108
- interface ExecuteRestrictedUnitOfWorkOptions {
158
+ interface ExecuteTxOptions {
109
159
  /**
110
160
  * Factory function that creates or resets a UOW instance for each attempt
111
161
  */
@@ -127,43 +177,244 @@ interface ExecuteRestrictedUnitOfWorkOptions {
127
177
  * Callback invoked after successful mutation phase.
128
178
  * Use this for post-mutation processing like hook execution.
129
179
  */
130
- onSuccess?: (uow: IUnitOfWork) => Promise<void>;
180
+ onAfterMutate?: (uow: IUnitOfWork) => Promise<void>;
131
181
  }
132
182
  /**
133
- * Context provided to handler tx callbacks
183
+ * Error thrown when a Unit of Work execution fails due to optimistic concurrency conflict.
184
+ * This error triggers automatic retry behavior in executeTx.
134
185
  */
135
- interface TxPhaseContext<THooks extends HooksMap> {
136
- /**
137
- * Get a typed Unit of Work for the given schema
138
- */
186
+ declare class ConcurrencyConflictError extends Error {
187
+ constructor(message?: string);
188
+ }
189
+ /**
190
+ * Type utility that unwraps promises 1 level deep in objects, arrays, or direct promises
191
+ * Handles tuples, arrays, objects, and direct promises
192
+ */
193
+ type AwaitedPromisesInObject<T> = T extends Promise<infer U> ? Awaited<U> : T extends readonly [unknown, ...unknown[]] ? { [K in keyof T]: AwaitedPromisesInObject<T[K]> } : T extends [unknown, ...unknown[]] ? { [K in keyof T]: AwaitedPromisesInObject<T[K]> } : T extends (infer U)[] ? Awaited<U>[] : T extends readonly (infer U)[] ? readonly Awaited<U>[] : T extends Record<string, unknown> ? { [K in keyof T]: T[K] extends Promise<infer U> ? Awaited<U> : T[K] } : T;
194
+ /**
195
+ * Context passed to service-level mutate callback in builder pattern.
196
+ */
197
+ interface ServiceBuilderMutateContext<TSchema extends AnySchema, TRetrieveSuccessResult, TServiceResult extends readonly unknown[], THooks extends HooksMap> {
198
+ /** Unit of work for scheduling mutations */
199
+ uow: TypedUnitOfWork<TSchema, [], unknown, THooks>;
200
+ /** Result from transformRetrieve callback (or raw retrieve results if no transformRetrieve) */
201
+ retrieveResult: TRetrieveSuccessResult;
202
+ /** Array of retrieve success results from service calls (intermediate results, not final: retrieve results if service has retrieve, mutate result if service only mutates) */
203
+ serviceIntermediateResult: TServiceResult;
204
+ }
205
+ /**
206
+ * Context passed to handler-level mutate callback in builder pattern.
207
+ */
208
+ interface HandlerBuilderMutateContext<TRetrieveSuccessResult, TServiceResult extends readonly unknown[], THooks extends HooksMap> {
209
+ /** Get a typed Unit of Work for the given schema */
139
210
  forSchema: <S extends AnySchema, H extends HooksMap = THooks>(schema: S, hooks?: H) => TypedUnitOfWork<S, [], unknown, H>;
211
+ /** Unique key for this transaction (for idempotency/deduplication) */
212
+ idempotencyKey: string;
213
+ /** Current attempt number (0-based) */
214
+ currentAttempt: number;
215
+ /** Result from transformRetrieve callback (or raw retrieve results if no transformRetrieve) */
216
+ retrieveResult: TRetrieveSuccessResult;
217
+ /** Array of retrieve success results from service calls (intermediate results, not final: retrieve results if service has retrieve, mutate result if service only mutates) */
218
+ serviceIntermediateResult: TServiceResult;
219
+ }
220
+ /**
221
+ * Context passed to transform callback when mutate IS provided.
222
+ */
223
+ interface BuilderTransformContextWithMutate<TRetrieveSuccessResult, TMutateResult, TServiceFinalResult extends readonly unknown[], TServiceIntermediateResult extends readonly unknown[]> {
224
+ /** Result from transformRetrieve callback (or raw retrieve results if no transformRetrieve) */
225
+ retrieveResult: TRetrieveSuccessResult;
226
+ /** Result from mutate callback */
227
+ mutateResult: TMutateResult;
228
+ /** Array of final results from service calls (after success/transform callbacks) */
229
+ serviceResult: TServiceFinalResult;
230
+ /** Array of retrieve success results from service calls (same as what mutate receives: retrieve results if service has retrieve, mutate result if service only mutates) */
231
+ serviceIntermediateResult: TServiceIntermediateResult;
140
232
  }
141
233
  /**
142
- * Handler callbacks for tx() - SYNCHRONOUS ONLY (no Promise return allowed)
143
- * This prevents accidentally awaiting services in the wrong place
234
+ * Context passed to transform callback when mutate is NOT provided.
144
235
  */
145
- interface HandlerTxCallbacks<TRetrieveResult, TMutationResult, THooks extends HooksMap> {
236
+ interface BuilderTransformContextWithoutMutate<TRetrieveSuccessResult, TServiceFinalResult extends readonly unknown[], TServiceIntermediateResult extends readonly unknown[]> {
237
+ /** Result from transformRetrieve callback (or raw retrieve results if no transformRetrieve) */
238
+ retrieveResult: TRetrieveSuccessResult;
239
+ /** No mutate callback was provided */
240
+ mutateResult: undefined;
241
+ /** Array of final results from service calls (after success/transform callbacks) */
242
+ serviceResult: TServiceFinalResult;
243
+ /** Array of retrieve success results from service calls (same as what mutate receives: retrieve results if service has retrieve, mutate result if service only mutates) */
244
+ serviceIntermediateResult: TServiceIntermediateResult;
245
+ }
246
+ /**
247
+ * Infer the final result type from builder state:
248
+ * 1. transform → TTransformResult
249
+ * 2. mutate → AwaitedPromisesInObject<TMutateResult>
250
+ * 3. transformRetrieve → TRetrieveSuccessResult
251
+ * 4. retrieve → TRetrieveResults
252
+ * 5. withServiceCalls → ExtractServiceFinalResults<TServiceCalls>
253
+ */
254
+ type InferBuilderResultType<TRetrieveResults extends unknown[], TRetrieveSuccessResult, TServiceCalls extends readonly (TxResult<any, any> | undefined)[], TMutateResult, TTransformResult, HasTransform extends boolean, HasMutate extends boolean, HasTransformRetrieve extends boolean, HasRetrieve extends boolean> = HasTransform extends true ? TTransformResult : HasMutate extends true ? AwaitedPromisesInObject<TMutateResult> : HasTransformRetrieve extends true ? TRetrieveSuccessResult : HasRetrieve extends true ? TRetrieveResults : ExtractServiceFinalResults<TServiceCalls>;
255
+ /**
256
+ * Infer the retrieve success result type for the builder:
257
+ * - If transformRetrieve exists: TRetrieveSuccessResult
258
+ * - Else if retrieve exists: TRetrieveResults (raw retrieve results)
259
+ * - Else if mutate exists: AwaitedPromisesInObject<TMutateResult>
260
+ * (mutate result becomes retrieve result for dependents)
261
+ * - Else: TRetrieveResults (raw retrieve results, typically [])
262
+ */
263
+ type InferBuilderRetrieveSuccessResult<TRetrieveResults extends unknown[], TRetrieveSuccessResult, TMutateResult, HasTransformRetrieve extends boolean, HasRetrieve extends boolean, HasMutate extends boolean> = HasTransformRetrieve extends true ? TRetrieveSuccessResult : HasRetrieve extends true ? TRetrieveResults : HasMutate extends true ? AwaitedPromisesInObject<TMutateResult> : TRetrieveResults;
264
+ /**
265
+ * Internal state for ServiceTxBuilder
266
+ */
267
+ interface ServiceTxBuilderState<TSchema extends AnySchema, TServiceCalls extends readonly (TxResult<any, any> | undefined)[], TRetrieveResults extends unknown[], TRetrieveSuccessResult, TMutateResult, TTransformResult, THooks extends HooksMap> {
268
+ schema: TSchema;
269
+ baseUow: IUnitOfWork;
270
+ hooks?: THooks;
271
+ withServiceCallsFn?: () => TServiceCalls;
272
+ retrieveFn?: (uow: TypedUnitOfWork<TSchema, [], unknown, THooks>) => TypedUnitOfWork<TSchema, TRetrieveResults, unknown, THooks>;
273
+ transformRetrieveFn?: (retrieveResult: TRetrieveResults, serviceRetrieveResult: ExtractServiceRetrieveResults<TServiceCalls>) => TRetrieveSuccessResult;
274
+ mutateFn?: (ctx: ServiceBuilderMutateContext<TSchema, TRetrieveSuccessResult, ExtractServiceRetrieveResults<TServiceCalls>, THooks>) => TMutateResult;
275
+ transformFn?: (ctx: BuilderTransformContextWithMutate<TRetrieveSuccessResult, TMutateResult, ExtractServiceFinalResults<TServiceCalls>, ExtractServiceRetrieveResults<TServiceCalls>> | BuilderTransformContextWithoutMutate<TRetrieveSuccessResult, ExtractServiceFinalResults<TServiceCalls>, ExtractServiceRetrieveResults<TServiceCalls>>) => TTransformResult;
276
+ }
277
+ /**
278
+ * Builder for service-level transactions.
279
+ * Uses a fluent API to build up transaction callbacks with proper type inference.
280
+ *
281
+ * @example
282
+ * ```ts
283
+ * return serviceTx(schema)
284
+ * .withServiceCalls(() => [otherService.getData()])
285
+ * .retrieve((uow) => uow.find("users", ...))
286
+ * .transformRetrieve(([users], serviceResult) => users[0])
287
+ * .mutate(({ uow, retrieveResult, serviceIntermediateResult }) =>
288
+ * uow.create("records", { ... })
289
+ * )
290
+ * .transform(({ mutateResult, serviceResult, serviceIntermediateResult }) => ({ id: mutateResult }))
291
+ * .build();
292
+ * ```
293
+ */
294
+ declare class ServiceTxBuilder<TSchema extends AnySchema, TServiceCalls extends readonly (TxResult<any, any> | undefined)[], TRetrieveResults extends unknown[], TRetrieveSuccessResult, TMutateResult, TTransformResult, HasRetrieve extends boolean, HasTransformRetrieve extends boolean, HasMutate extends boolean, HasTransform extends boolean, THooks extends HooksMap> {
295
+ #private;
296
+ constructor(state: ServiceTxBuilderState<TSchema, TServiceCalls, TRetrieveResults, TRetrieveSuccessResult, TMutateResult, TTransformResult, THooks>);
297
+ /**
298
+ * Add dependencies to execute before this transaction.
299
+ */
300
+ withServiceCalls<TNewDeps extends readonly (TxResult<any, any> | undefined)[]>(fn: () => TNewDeps): ServiceTxBuilder<TSchema, TNewDeps, TRetrieveResults, TRetrieveSuccessResult, TMutateResult, TTransformResult, HasRetrieve, HasTransformRetrieve, HasMutate, HasTransform, THooks>;
301
+ /**
302
+ * Add retrieval operations to the transaction.
303
+ */
304
+ retrieve<TNewRetrieveResults extends unknown[]>(fn: (uow: TypedUnitOfWork<TSchema, [], unknown, THooks>) => TypedUnitOfWork<TSchema, TNewRetrieveResults, unknown, THooks>): ServiceTxBuilder<TSchema, TServiceCalls, TNewRetrieveResults, TNewRetrieveResults,
305
+ // Default TRetrieveSuccessResult to TNewRetrieveResults
306
+ TMutateResult, TTransformResult, true,
307
+ // HasRetrieve = true
308
+ false,
309
+ // Reset HasTransformRetrieve since retrieve results changed
310
+ HasMutate, HasTransform, THooks>;
146
311
  /**
147
- * Retrieval phase callback - schedules retrievals and optionally calls services
148
- * Must be synchronous - cannot await promises
312
+ * Transform retrieve results before passing to mutate.
149
313
  */
150
- retrieve?: (context: TxPhaseContext<THooks>) => TRetrieveResult;
314
+ transformRetrieve<TNewRetrieveSuccessResult>(fn: (retrieveResult: TRetrieveResults, serviceResult: ExtractServiceRetrieveResults<TServiceCalls>) => TNewRetrieveSuccessResult): ServiceTxBuilder<TSchema, TServiceCalls, TRetrieveResults, TNewRetrieveSuccessResult, TMutateResult, TTransformResult, HasRetrieve, true,
315
+ // HasTransformRetrieve = true
316
+ HasMutate, HasTransform, THooks>;
151
317
  /**
152
- * Mutation phase callback - receives retrieve result, schedules mutations
153
- * Must be synchronous - cannot await promises (but may return a promise to be awaited)
318
+ * Add mutation operations based on retrieve results.
154
319
  */
155
- mutate?: (context: TxPhaseContext<THooks>, retrieveResult: TRetrieveResult) => TMutationResult;
320
+ mutate<TNewMutateResult>(fn: (ctx: ServiceBuilderMutateContext<TSchema, HasTransformRetrieve extends true ? TRetrieveSuccessResult : TRetrieveResults, ExtractServiceRetrieveResults<TServiceCalls>, THooks>) => TNewMutateResult): ServiceTxBuilder<TSchema, TServiceCalls, TRetrieveResults, HasTransformRetrieve extends true ? TRetrieveSuccessResult : TRetrieveResults, TNewMutateResult, TTransformResult, HasRetrieve, HasTransformRetrieve, true,
321
+ // HasMutate = true
322
+ HasTransform, THooks>;
323
+ /**
324
+ * Add final transformation after mutations complete.
325
+ */
326
+ transform<TNewTransformResult>(fn: (ctx: HasMutate extends true ? BuilderTransformContextWithMutate<HasTransformRetrieve extends true ? TRetrieveSuccessResult : TRetrieveResults, TMutateResult, ExtractServiceFinalResults<TServiceCalls>, ExtractServiceRetrieveResults<TServiceCalls>> : BuilderTransformContextWithoutMutate<HasTransformRetrieve extends true ? TRetrieveSuccessResult : TRetrieveResults, ExtractServiceFinalResults<TServiceCalls>, ExtractServiceRetrieveResults<TServiceCalls>>) => TNewTransformResult): ServiceTxBuilder<TSchema, TServiceCalls, TRetrieveResults, HasTransformRetrieve extends true ? TRetrieveSuccessResult : TRetrieveResults, TMutateResult, TNewTransformResult, HasRetrieve, HasTransformRetrieve, HasMutate, true,
327
+ // HasTransform = true
328
+ THooks>;
329
+ /**
330
+ * Build and return the TxResult.
331
+ */
332
+ build(): TxResult<InferBuilderResultType<TRetrieveResults, TRetrieveSuccessResult, TServiceCalls, TMutateResult, TTransformResult, HasTransform, HasMutate, HasTransformRetrieve, HasRetrieve>, InferBuilderRetrieveSuccessResult<TRetrieveResults, TRetrieveSuccessResult, TMutateResult, HasTransformRetrieve, HasRetrieve, HasMutate>>;
156
333
  }
157
- interface ServiceTxCallbacks<TSchema extends AnySchema, TRetrievalResults extends unknown[], TMutationResult, THooks extends HooksMap> {
334
+ /**
335
+ * Create a new ServiceTxBuilder for the given schema.
336
+ */
337
+ declare function createServiceTxBuilder<TSchema extends AnySchema, THooks extends HooksMap = {}>(schema: TSchema, baseUow: IUnitOfWork, hooks?: THooks): ServiceTxBuilder<TSchema, readonly [], [], [], unknown, unknown, false, false, false, false, THooks>;
338
+ /**
339
+ * Internal state for HandlerTxBuilder
340
+ */
341
+ interface HandlerTxBuilderState<TServiceCalls extends readonly (TxResult<any, any> | undefined)[], TRetrieveResults extends unknown[], TRetrieveSuccessResult, TMutateResult, TTransformResult, THooks extends HooksMap> {
342
+ options: ExecuteTxOptions;
343
+ hooks?: THooks;
344
+ withServiceCallsFn?: () => TServiceCalls;
345
+ retrieveFn?: (context: {
346
+ forSchema: <S extends AnySchema, H extends HooksMap = THooks>(schema: S, hooks?: H) => TypedUnitOfWork<S, [], unknown, H>;
347
+ idempotencyKey: string;
348
+ currentAttempt: number;
349
+ }) => TypedUnitOfWork<AnySchema, TRetrieveResults, unknown, HooksMap> | void;
350
+ transformRetrieveFn?: (retrieveResult: TRetrieveResults, serviceResult: ExtractServiceRetrieveResults<TServiceCalls>) => TRetrieveSuccessResult;
351
+ mutateFn?: (ctx: HandlerBuilderMutateContext<TRetrieveSuccessResult, ExtractServiceRetrieveResults<TServiceCalls>, THooks>) => TMutateResult;
352
+ transformFn?: (ctx: BuilderTransformContextWithMutate<TRetrieveSuccessResult, TMutateResult, ExtractServiceFinalResults<TServiceCalls>, ExtractServiceRetrieveResults<TServiceCalls>> | BuilderTransformContextWithoutMutate<TRetrieveSuccessResult, ExtractServiceFinalResults<TServiceCalls>, ExtractServiceRetrieveResults<TServiceCalls>>) => TTransformResult;
353
+ }
354
+ /**
355
+ * Builder for handler-level transactions.
356
+ * Uses a fluent API to build up transaction callbacks with proper type inference.
357
+ *
358
+ * @example
359
+ * ```ts
360
+ * const result = await handlerTx()
361
+ * .withServiceCalls(() => [userService.getUser(id)])
362
+ * .mutate(({ forSchema, idempotencyKey, currentAttempt, serviceIntermediateResult }) => {
363
+ * return forSchema(ordersSchema).create("orders", { ... });
364
+ * })
365
+ * .transform(({ mutateResult, serviceResult }) => ({ ... }))
366
+ * .execute();
367
+ * ```
368
+ */
369
+ declare class HandlerTxBuilder<TServiceCalls extends readonly (TxResult<any, any> | undefined)[], TRetrieveResults extends unknown[], TRetrieveSuccessResult, TMutateResult, TTransformResult, HasRetrieve extends boolean, HasTransformRetrieve extends boolean, HasMutate extends boolean, HasTransform extends boolean, THooks extends HooksMap> {
370
+ #private;
371
+ constructor(state: HandlerTxBuilderState<TServiceCalls, TRetrieveResults, TRetrieveSuccessResult, TMutateResult, TTransformResult, THooks>);
372
+ /**
373
+ * Add dependencies to execute before this transaction.
374
+ */
375
+ withServiceCalls<TNewDeps extends readonly (TxResult<any, any> | undefined)[]>(fn: () => TNewDeps): HandlerTxBuilder<TNewDeps, TRetrieveResults, TRetrieveSuccessResult, TMutateResult, TTransformResult, HasRetrieve, HasTransformRetrieve, HasMutate, HasTransform, THooks>;
376
+ /**
377
+ * Add retrieval operations to the transaction.
378
+ * Return a TypedUnitOfWork from forSchema().find() to get typed results.
379
+ */
380
+ retrieve<TNewRetrieveResults extends unknown[]>(fn: (context: {
381
+ forSchema: <S extends AnySchema, H extends HooksMap = THooks>(schema: S, hooks?: H) => TypedUnitOfWork<S, [], unknown, H>;
382
+ idempotencyKey: string;
383
+ currentAttempt: number;
384
+ }) => TypedUnitOfWork<AnySchema, TNewRetrieveResults, unknown, HooksMap> | void): HandlerTxBuilder<TServiceCalls, TNewRetrieveResults, TNewRetrieveResults,
385
+ // Default TRetrieveSuccessResult to TNewRetrieveResults
386
+ TMutateResult, TTransformResult, true,
387
+ // HasRetrieve = true
388
+ false,
389
+ // Reset HasTransformRetrieve since retrieve results changed
390
+ HasMutate, HasTransform, THooks>;
158
391
  /**
159
- * Retrieval phase callback - schedules retrievals, returns typed UOW
392
+ * Transform retrieve results before passing to mutate.
160
393
  */
161
- retrieve?: (uow: TypedUnitOfWork<TSchema, [], unknown, THooks>) => TypedUnitOfWork<TSchema, TRetrievalResults, unknown, THooks>;
394
+ transformRetrieve<TNewRetrieveSuccessResult>(fn: (retrieveResult: TRetrieveResults, serviceResult: ExtractServiceRetrieveResults<TServiceCalls>) => TNewRetrieveSuccessResult): HandlerTxBuilder<TServiceCalls, TRetrieveResults, TNewRetrieveSuccessResult, TMutateResult, TTransformResult, HasRetrieve, true,
395
+ // HasTransformRetrieve = true
396
+ HasMutate, HasTransform, THooks>;
162
397
  /**
163
- * Mutation phase callback - receives retrieval results, schedules mutations and hooks
398
+ * Add mutation operations based on retrieve results.
164
399
  */
165
- mutate?: (uow: TypedUnitOfWork<TSchema, TRetrievalResults, unknown, THooks>, results: TRetrievalResults) => TMutationResult | Promise<TMutationResult>;
400
+ mutate<TNewMutateResult>(fn: (ctx: HandlerBuilderMutateContext<HasTransformRetrieve extends true ? TRetrieveSuccessResult : TRetrieveResults, ExtractServiceRetrieveResults<TServiceCalls>, THooks>) => TNewMutateResult): HandlerTxBuilder<TServiceCalls, TRetrieveResults, HasTransformRetrieve extends true ? TRetrieveSuccessResult : TRetrieveResults, TNewMutateResult, TTransformResult, HasRetrieve, HasTransformRetrieve, true,
401
+ // HasMutate = true
402
+ HasTransform, THooks>;
403
+ /**
404
+ * Add final transformation after mutations complete.
405
+ */
406
+ transform<TNewTransformResult>(fn: (ctx: HasMutate extends true ? BuilderTransformContextWithMutate<HasTransformRetrieve extends true ? TRetrieveSuccessResult : TRetrieveResults, TMutateResult, ExtractServiceFinalResults<TServiceCalls>, ExtractServiceRetrieveResults<TServiceCalls>> : BuilderTransformContextWithoutMutate<HasTransformRetrieve extends true ? TRetrieveSuccessResult : TRetrieveResults, ExtractServiceFinalResults<TServiceCalls>, ExtractServiceRetrieveResults<TServiceCalls>>) => TNewTransformResult): HandlerTxBuilder<TServiceCalls, TRetrieveResults, HasTransformRetrieve extends true ? TRetrieveSuccessResult : TRetrieveResults, TMutateResult, TNewTransformResult, HasRetrieve, HasTransformRetrieve, HasMutate, true,
407
+ // HasTransform = true
408
+ THooks>;
409
+ /**
410
+ * Execute the transaction and return the result.
411
+ */
412
+ execute(): Promise<AwaitedPromisesInObject<InferBuilderResultType<TRetrieveResults, TRetrieveSuccessResult, TServiceCalls, TMutateResult, TTransformResult, HasTransform, HasMutate, HasTransformRetrieve, HasRetrieve>>>;
166
413
  }
414
+ /**
415
+ * Create a new HandlerTxBuilder with the given options.
416
+ */
417
+ declare function createHandlerTxBuilder<THooks extends HooksMap = {}>(options: ExecuteTxOptions, hooks?: THooks): HandlerTxBuilder<readonly [], [], [], unknown, unknown, false, false, false, false, THooks>;
167
418
  //#endregion
168
- export { AwaitedPromisesInObject, ExecuteRestrictedUnitOfWorkOptions, ExecuteUnitOfWorkCallbacks, ExecuteUnitOfWorkOptions, ExecuteUnitOfWorkResult, HandlerTxCallbacks, ServiceTxCallbacks, executeUnitOfWork };
419
+ export { BuilderTransformContextWithMutate, BuilderTransformContextWithoutMutate, ConcurrencyConflictError, ExecuteTxOptions, ExtractServiceFinalResults, ExtractServiceRetrieveResults, HandlerBuilderMutateContext, HandlerTxBuilder, ServiceBuilderMutateContext, ServiceTxBuilder, TxResult, createHandlerTxBuilder, createServiceTxBuilder };
169
420
  //# sourceMappingURL=execute-unit-of-work.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute-unit-of-work.d.ts","names":[],"sources":["../../../src/query/unit-of-work/execute-unit-of-work.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"execute-unit-of-work.d.ts","names":[],"sources":["../../../src/query/unit-of-work/execute-unit-of-work.ts"],"sourcesContent":[],"mappings":"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"}