awaitly 2.0.0 → 3.0.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.
- package/dist/di-Biw_plBn.d.cts +15 -0
- package/dist/di-DxyH2N3i.d.ts +15 -0
- package/dist/durable.cjs +4670 -0
- package/dist/durable.cjs.map +1 -0
- package/dist/durable.d.cts +9 -0
- package/dist/durable.d.ts +9 -0
- package/dist/durable.js +4610 -0
- package/dist/durable.js.map +1 -0
- package/dist/{di-BbFFfO8y.d.ts → duration-BjVn3QpB.d.cts} +1 -15
- package/dist/{di-BDlT7InM.d.cts → duration-BjVn3QpB.d.ts} +1 -15
- package/dist/engine.cjs +4501 -0
- package/dist/engine.cjs.map +1 -0
- package/dist/engine.d.cts +113 -0
- package/dist/engine.d.ts +113 -0
- package/dist/engine.js +4474 -0
- package/dist/engine.js.map +1 -0
- package/dist/{errors-DtXvrCiO.d.cts → errors-sDSeaZBO.d.cts} +1 -1
- package/dist/{errors-DtXvrCiO.d.ts → errors-sDSeaZBO.d.ts} +1 -1
- package/dist/guards-CwQZro1F.d.ts +72 -0
- package/dist/guards-DhhOJZda.d.cts +72 -0
- package/dist/hitl-BnnnLzh2.d.cts +468 -0
- package/dist/hitl-pYfkQMv_.d.ts +468 -0
- package/dist/hitl.cjs +646 -0
- package/dist/hitl.cjs.map +1 -0
- package/dist/hitl.d.cts +440 -0
- package/dist/hitl.d.ts +440 -0
- package/dist/hitl.js +605 -0
- package/dist/hitl.js.map +1 -0
- package/dist/index-Bew12SZ8.d.ts +417 -0
- package/dist/index-Bwt-iz50.d.cts +417 -0
- package/dist/{types-B8NfNRGX.d.ts → index-Cv4K_3sZ.d.ts} +2 -1162
- package/dist/{types-BZ2f4MRR.d.cts → index-ICmfQi08.d.cts} +2 -1162
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -1527
- package/dist/index.d.ts +11 -1527
- package/dist/persistence.cjs +552 -0
- package/dist/persistence.cjs.map +1 -0
- package/dist/persistence.d.cts +254 -0
- package/dist/persistence.d.ts +254 -0
- package/dist/persistence.js +499 -0
- package/dist/persistence.js.map +1 -0
- package/dist/reliability.cjs +1651 -0
- package/dist/reliability.cjs.map +1 -0
- package/dist/reliability.d.cts +1442 -0
- package/dist/reliability.d.ts +1442 -0
- package/dist/reliability.js +1589 -0
- package/dist/reliability.js.map +1 -0
- package/dist/result.d.cts +1 -1
- package/dist/result.d.ts +1 -1
- package/dist/run.cjs +2283 -0
- package/dist/run.cjs.map +1 -0
- package/dist/run.d.cts +90 -0
- package/dist/run.d.ts +90 -0
- package/dist/run.js +2247 -0
- package/dist/run.js.map +1 -0
- package/dist/saga.cjs +3699 -0
- package/dist/saga.cjs.map +1 -0
- package/dist/saga.d.cts +162 -0
- package/dist/saga.d.ts +162 -0
- package/dist/saga.js +3670 -0
- package/dist/saga.js.map +1 -0
- package/dist/store-contract-BI98VYmX.d.ts +66 -0
- package/dist/store-contract-C2HyR_o6.d.cts +66 -0
- package/dist/streaming.cjs +895 -0
- package/dist/streaming.cjs.map +1 -0
- package/dist/streaming.d.cts +594 -0
- package/dist/streaming.d.ts +594 -0
- package/dist/streaming.js +832 -0
- package/dist/streaming.js.map +1 -0
- package/dist/testing.d.cts +4 -2
- package/dist/testing.d.ts +4 -2
- package/dist/types-BDTxgKKc.d.ts +845 -0
- package/dist/types-C9Y71dua.d.cts +845 -0
- package/dist/types-d8q8iQlk.d.cts +323 -0
- package/dist/types-sObbY4mX.d.ts +323 -0
- package/dist/webhook.cjs +461 -0
- package/dist/webhook.cjs.map +1 -0
- package/dist/webhook.d.cts +497 -0
- package/dist/webhook.d.ts +497 -0
- package/dist/webhook.js +422 -0
- package/dist/webhook.js.map +1 -0
- package/dist/workflow.cjs +2 -2614
- package/dist/workflow.cjs.map +1 -1
- package/dist/workflow.d.cts +12 -3023
- package/dist/workflow.d.ts +12 -3023
- package/dist/workflow.js +2 -2535
- package/dist/workflow.js.map +1 -1
- package/package.json +46 -1
package/dist/saga.d.cts
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { R as Result, A as AsyncResult } from './index-ICmfQi08.cjs';
|
|
2
|
+
import { W as Workflow, c as AnyResultFn, f as WorkflowOptions, E as ErrorsOfDeps } from './types-C9Y71dua.cjs';
|
|
3
|
+
import { U as UnexpectedError } from './errors-sDSeaZBO.cjs';
|
|
4
|
+
import './types-d8q8iQlk.cjs';
|
|
5
|
+
import '@standard-schema/spec';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Saga / Compensation Pattern
|
|
9
|
+
*
|
|
10
|
+
* Compensation is a first-class step option on every workflow. Pass `{ compensate }`
|
|
11
|
+
* to any step and the workflow will run compensations in reverse order if anything
|
|
12
|
+
* downstream fails.
|
|
13
|
+
*
|
|
14
|
+
* `createSagaWorkflow` is a thin alias for `createWorkflow` whose result error union
|
|
15
|
+
* also includes `SagaCompensationError` — useful when you know you'll be using
|
|
16
|
+
* compensation and want the type system to remind you.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* import { createSagaWorkflow, isSagaCompensationError } from 'awaitly/saga';
|
|
21
|
+
*
|
|
22
|
+
* const checkout = createSagaWorkflow('checkout', {
|
|
23
|
+
* reserveInventory, releaseInventory,
|
|
24
|
+
* chargeCard, refundPayment,
|
|
25
|
+
* sendEmail,
|
|
26
|
+
* });
|
|
27
|
+
*
|
|
28
|
+
* const result = await checkout.run(async ({ step, deps }) => {
|
|
29
|
+
* const r = await step('reserve', () => deps.reserveInventory(items), {
|
|
30
|
+
* compensate: (r) => deps.releaseInventory(r.id),
|
|
31
|
+
* });
|
|
32
|
+
* const p = await step('charge', () => deps.chargeCard(amount), {
|
|
33
|
+
* compensate: (p) => deps.refundPayment(p.id),
|
|
34
|
+
* });
|
|
35
|
+
* await step('notify', () => deps.sendEmail(userId));
|
|
36
|
+
* return { r, p };
|
|
37
|
+
* });
|
|
38
|
+
*
|
|
39
|
+
* if (!result.ok && isSagaCompensationError(result.error)) {
|
|
40
|
+
* // result.error.originalError — what triggered the rollback
|
|
41
|
+
* // result.error.compensationErrors — which cleanups failed
|
|
42
|
+
* }
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
/** A compensation action to run on rollback. */
|
|
47
|
+
type CompensationAction<T> = (value: T) => void | Promise<void>;
|
|
48
|
+
/** Options for a saga step (kept for back-compat — `compensate` lives on `StepOptions`). */
|
|
49
|
+
interface SagaStepOptions<T> {
|
|
50
|
+
compensate?: CompensationAction<T>;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* @deprecated Use `WorkflowOptions` from `awaitly/workflow`. Kept as an alias for back-compat.
|
|
54
|
+
*/
|
|
55
|
+
type SagaWorkflowOptions<E> = {
|
|
56
|
+
onError?: (error: E | UnexpectedError | SagaCompensationError, stepName?: string) => void;
|
|
57
|
+
onEvent?: (event: unknown) => void;
|
|
58
|
+
throwOnCompensationFailure?: boolean;
|
|
59
|
+
};
|
|
60
|
+
/** Error returned when one or more compensation actions fail. */
|
|
61
|
+
interface SagaCompensationError {
|
|
62
|
+
type: "SAGA_COMPENSATION_ERROR";
|
|
63
|
+
/** The original error that triggered the rollback. */
|
|
64
|
+
originalError: unknown;
|
|
65
|
+
/** Errors from failed compensation actions. */
|
|
66
|
+
compensationErrors: Array<{
|
|
67
|
+
stepName?: string;
|
|
68
|
+
error: unknown;
|
|
69
|
+
}>;
|
|
70
|
+
}
|
|
71
|
+
/** Type guard for SagaCompensationError. */
|
|
72
|
+
declare function isSagaCompensationError(error: unknown): error is SagaCompensationError;
|
|
73
|
+
/**
|
|
74
|
+
* A `Workflow` whose result error union includes `SagaCompensationError`.
|
|
75
|
+
* Identical to `Workflow` at runtime — only the static type is widened.
|
|
76
|
+
*/
|
|
77
|
+
type SagaWorkflow<E, U = UnexpectedError, Deps = unknown, C = void> = Workflow<E | SagaCompensationError, U, Deps, C>;
|
|
78
|
+
/**
|
|
79
|
+
* Create a workflow that uses compensation. Identical to `createWorkflow` —
|
|
80
|
+
* only the result type is widened to include `SagaCompensationError`.
|
|
81
|
+
*
|
|
82
|
+
* Prefer this when you intend to use `step(..., { compensate })` so the type
|
|
83
|
+
* system reminds you to handle the SAGA_COMPENSATION_ERROR case.
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```typescript
|
|
87
|
+
* const saga = createSagaWorkflow('checkout', { reserve, release, charge, refund });
|
|
88
|
+
*
|
|
89
|
+
* const result = await saga.run(async ({ step, deps }) => {
|
|
90
|
+
* const r = await step('reserve', () => deps.reserve(...), {
|
|
91
|
+
* compensate: (r) => deps.release(r.id),
|
|
92
|
+
* });
|
|
93
|
+
* await step('charge', () => deps.charge(...), {
|
|
94
|
+
* compensate: (p) => deps.refund(p.id),
|
|
95
|
+
* });
|
|
96
|
+
* return r;
|
|
97
|
+
* });
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
declare function createSagaWorkflow<const Deps extends Readonly<Record<string, AnyResultFn>>, U = UnexpectedError, C = void>(workflowName: string, deps: Deps, options?: WorkflowOptions<ErrorsOfDeps<Deps>, U, C>): SagaWorkflow<ErrorsOfDeps<Deps>, U, Deps, C>;
|
|
101
|
+
/** Saga events emitted by `runSaga` for observability. */
|
|
102
|
+
type SagaEvent = {
|
|
103
|
+
type: "saga_start";
|
|
104
|
+
sagaId: string;
|
|
105
|
+
ts: number;
|
|
106
|
+
} | {
|
|
107
|
+
type: "saga_success";
|
|
108
|
+
sagaId: string;
|
|
109
|
+
ts: number;
|
|
110
|
+
durationMs: number;
|
|
111
|
+
} | {
|
|
112
|
+
type: "saga_error";
|
|
113
|
+
sagaId: string;
|
|
114
|
+
ts: number;
|
|
115
|
+
durationMs: number;
|
|
116
|
+
error: unknown;
|
|
117
|
+
} | {
|
|
118
|
+
type: "saga_compensation_start";
|
|
119
|
+
sagaId: string;
|
|
120
|
+
ts: number;
|
|
121
|
+
stepCount: number;
|
|
122
|
+
} | {
|
|
123
|
+
type: "saga_compensation_step";
|
|
124
|
+
sagaId: string;
|
|
125
|
+
stepName?: string;
|
|
126
|
+
ts: number;
|
|
127
|
+
success: boolean;
|
|
128
|
+
error?: unknown;
|
|
129
|
+
} | {
|
|
130
|
+
type: "saga_compensation_end";
|
|
131
|
+
sagaId: string;
|
|
132
|
+
ts: number;
|
|
133
|
+
durationMs: number;
|
|
134
|
+
success: boolean;
|
|
135
|
+
failedCount: number;
|
|
136
|
+
};
|
|
137
|
+
type SagaResult<T, E> = Result<T, E | UnexpectedError | SagaCompensationError, unknown>;
|
|
138
|
+
/** Saga step function — like RunStep but every step takes an optional compensate. */
|
|
139
|
+
interface SagaStep<E = unknown> {
|
|
140
|
+
<T, StepE extends E, StepC = unknown>(name: string, operation: () => Result<T, StepE, StepC> | AsyncResult<T, StepE, StepC>, options?: SagaStepOptions<T>): Promise<T>;
|
|
141
|
+
try: <T, Err extends E>(name: string, operation: () => T | Promise<T>, options: {
|
|
142
|
+
error: Err;
|
|
143
|
+
compensate?: CompensationAction<T>;
|
|
144
|
+
} | {
|
|
145
|
+
onError: (cause: unknown) => Err;
|
|
146
|
+
compensate?: CompensationAction<T>;
|
|
147
|
+
}) => Promise<T>;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Run a saga with explicit error typing — for cases where you don't have a
|
|
151
|
+
* deps object to infer errors from. Most users should reach for
|
|
152
|
+
* `createSagaWorkflow` (or just `createWorkflow` with `step({ compensate })`).
|
|
153
|
+
*/
|
|
154
|
+
declare function runSaga<T, E>(fn: (context: {
|
|
155
|
+
step: SagaStep<E>;
|
|
156
|
+
}) => Promise<T>, options?: {
|
|
157
|
+
onError?: (error: E | UnexpectedError | SagaCompensationError) => void;
|
|
158
|
+
onEvent?: (event: SagaEvent) => void;
|
|
159
|
+
throwOnCompensationFailure?: boolean;
|
|
160
|
+
}): Promise<SagaResult<T, E>>;
|
|
161
|
+
|
|
162
|
+
export { type CompensationAction, type SagaCompensationError, type SagaEvent, type SagaResult, type SagaStep, type SagaStepOptions, type SagaWorkflow, type SagaWorkflowOptions, createSagaWorkflow, isSagaCompensationError, runSaga };
|
package/dist/saga.d.ts
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { R as Result, A as AsyncResult } from './index-Cv4K_3sZ.js';
|
|
2
|
+
import { W as Workflow, c as AnyResultFn, f as WorkflowOptions, E as ErrorsOfDeps } from './types-BDTxgKKc.js';
|
|
3
|
+
import { U as UnexpectedError } from './errors-sDSeaZBO.js';
|
|
4
|
+
import './types-sObbY4mX.js';
|
|
5
|
+
import '@standard-schema/spec';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Saga / Compensation Pattern
|
|
9
|
+
*
|
|
10
|
+
* Compensation is a first-class step option on every workflow. Pass `{ compensate }`
|
|
11
|
+
* to any step and the workflow will run compensations in reverse order if anything
|
|
12
|
+
* downstream fails.
|
|
13
|
+
*
|
|
14
|
+
* `createSagaWorkflow` is a thin alias for `createWorkflow` whose result error union
|
|
15
|
+
* also includes `SagaCompensationError` — useful when you know you'll be using
|
|
16
|
+
* compensation and want the type system to remind you.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* import { createSagaWorkflow, isSagaCompensationError } from 'awaitly/saga';
|
|
21
|
+
*
|
|
22
|
+
* const checkout = createSagaWorkflow('checkout', {
|
|
23
|
+
* reserveInventory, releaseInventory,
|
|
24
|
+
* chargeCard, refundPayment,
|
|
25
|
+
* sendEmail,
|
|
26
|
+
* });
|
|
27
|
+
*
|
|
28
|
+
* const result = await checkout.run(async ({ step, deps }) => {
|
|
29
|
+
* const r = await step('reserve', () => deps.reserveInventory(items), {
|
|
30
|
+
* compensate: (r) => deps.releaseInventory(r.id),
|
|
31
|
+
* });
|
|
32
|
+
* const p = await step('charge', () => deps.chargeCard(amount), {
|
|
33
|
+
* compensate: (p) => deps.refundPayment(p.id),
|
|
34
|
+
* });
|
|
35
|
+
* await step('notify', () => deps.sendEmail(userId));
|
|
36
|
+
* return { r, p };
|
|
37
|
+
* });
|
|
38
|
+
*
|
|
39
|
+
* if (!result.ok && isSagaCompensationError(result.error)) {
|
|
40
|
+
* // result.error.originalError — what triggered the rollback
|
|
41
|
+
* // result.error.compensationErrors — which cleanups failed
|
|
42
|
+
* }
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
/** A compensation action to run on rollback. */
|
|
47
|
+
type CompensationAction<T> = (value: T) => void | Promise<void>;
|
|
48
|
+
/** Options for a saga step (kept for back-compat — `compensate` lives on `StepOptions`). */
|
|
49
|
+
interface SagaStepOptions<T> {
|
|
50
|
+
compensate?: CompensationAction<T>;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* @deprecated Use `WorkflowOptions` from `awaitly/workflow`. Kept as an alias for back-compat.
|
|
54
|
+
*/
|
|
55
|
+
type SagaWorkflowOptions<E> = {
|
|
56
|
+
onError?: (error: E | UnexpectedError | SagaCompensationError, stepName?: string) => void;
|
|
57
|
+
onEvent?: (event: unknown) => void;
|
|
58
|
+
throwOnCompensationFailure?: boolean;
|
|
59
|
+
};
|
|
60
|
+
/** Error returned when one or more compensation actions fail. */
|
|
61
|
+
interface SagaCompensationError {
|
|
62
|
+
type: "SAGA_COMPENSATION_ERROR";
|
|
63
|
+
/** The original error that triggered the rollback. */
|
|
64
|
+
originalError: unknown;
|
|
65
|
+
/** Errors from failed compensation actions. */
|
|
66
|
+
compensationErrors: Array<{
|
|
67
|
+
stepName?: string;
|
|
68
|
+
error: unknown;
|
|
69
|
+
}>;
|
|
70
|
+
}
|
|
71
|
+
/** Type guard for SagaCompensationError. */
|
|
72
|
+
declare function isSagaCompensationError(error: unknown): error is SagaCompensationError;
|
|
73
|
+
/**
|
|
74
|
+
* A `Workflow` whose result error union includes `SagaCompensationError`.
|
|
75
|
+
* Identical to `Workflow` at runtime — only the static type is widened.
|
|
76
|
+
*/
|
|
77
|
+
type SagaWorkflow<E, U = UnexpectedError, Deps = unknown, C = void> = Workflow<E | SagaCompensationError, U, Deps, C>;
|
|
78
|
+
/**
|
|
79
|
+
* Create a workflow that uses compensation. Identical to `createWorkflow` —
|
|
80
|
+
* only the result type is widened to include `SagaCompensationError`.
|
|
81
|
+
*
|
|
82
|
+
* Prefer this when you intend to use `step(..., { compensate })` so the type
|
|
83
|
+
* system reminds you to handle the SAGA_COMPENSATION_ERROR case.
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```typescript
|
|
87
|
+
* const saga = createSagaWorkflow('checkout', { reserve, release, charge, refund });
|
|
88
|
+
*
|
|
89
|
+
* const result = await saga.run(async ({ step, deps }) => {
|
|
90
|
+
* const r = await step('reserve', () => deps.reserve(...), {
|
|
91
|
+
* compensate: (r) => deps.release(r.id),
|
|
92
|
+
* });
|
|
93
|
+
* await step('charge', () => deps.charge(...), {
|
|
94
|
+
* compensate: (p) => deps.refund(p.id),
|
|
95
|
+
* });
|
|
96
|
+
* return r;
|
|
97
|
+
* });
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
declare function createSagaWorkflow<const Deps extends Readonly<Record<string, AnyResultFn>>, U = UnexpectedError, C = void>(workflowName: string, deps: Deps, options?: WorkflowOptions<ErrorsOfDeps<Deps>, U, C>): SagaWorkflow<ErrorsOfDeps<Deps>, U, Deps, C>;
|
|
101
|
+
/** Saga events emitted by `runSaga` for observability. */
|
|
102
|
+
type SagaEvent = {
|
|
103
|
+
type: "saga_start";
|
|
104
|
+
sagaId: string;
|
|
105
|
+
ts: number;
|
|
106
|
+
} | {
|
|
107
|
+
type: "saga_success";
|
|
108
|
+
sagaId: string;
|
|
109
|
+
ts: number;
|
|
110
|
+
durationMs: number;
|
|
111
|
+
} | {
|
|
112
|
+
type: "saga_error";
|
|
113
|
+
sagaId: string;
|
|
114
|
+
ts: number;
|
|
115
|
+
durationMs: number;
|
|
116
|
+
error: unknown;
|
|
117
|
+
} | {
|
|
118
|
+
type: "saga_compensation_start";
|
|
119
|
+
sagaId: string;
|
|
120
|
+
ts: number;
|
|
121
|
+
stepCount: number;
|
|
122
|
+
} | {
|
|
123
|
+
type: "saga_compensation_step";
|
|
124
|
+
sagaId: string;
|
|
125
|
+
stepName?: string;
|
|
126
|
+
ts: number;
|
|
127
|
+
success: boolean;
|
|
128
|
+
error?: unknown;
|
|
129
|
+
} | {
|
|
130
|
+
type: "saga_compensation_end";
|
|
131
|
+
sagaId: string;
|
|
132
|
+
ts: number;
|
|
133
|
+
durationMs: number;
|
|
134
|
+
success: boolean;
|
|
135
|
+
failedCount: number;
|
|
136
|
+
};
|
|
137
|
+
type SagaResult<T, E> = Result<T, E | UnexpectedError | SagaCompensationError, unknown>;
|
|
138
|
+
/** Saga step function — like RunStep but every step takes an optional compensate. */
|
|
139
|
+
interface SagaStep<E = unknown> {
|
|
140
|
+
<T, StepE extends E, StepC = unknown>(name: string, operation: () => Result<T, StepE, StepC> | AsyncResult<T, StepE, StepC>, options?: SagaStepOptions<T>): Promise<T>;
|
|
141
|
+
try: <T, Err extends E>(name: string, operation: () => T | Promise<T>, options: {
|
|
142
|
+
error: Err;
|
|
143
|
+
compensate?: CompensationAction<T>;
|
|
144
|
+
} | {
|
|
145
|
+
onError: (cause: unknown) => Err;
|
|
146
|
+
compensate?: CompensationAction<T>;
|
|
147
|
+
}) => Promise<T>;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Run a saga with explicit error typing — for cases where you don't have a
|
|
151
|
+
* deps object to infer errors from. Most users should reach for
|
|
152
|
+
* `createSagaWorkflow` (or just `createWorkflow` with `step({ compensate })`).
|
|
153
|
+
*/
|
|
154
|
+
declare function runSaga<T, E>(fn: (context: {
|
|
155
|
+
step: SagaStep<E>;
|
|
156
|
+
}) => Promise<T>, options?: {
|
|
157
|
+
onError?: (error: E | UnexpectedError | SagaCompensationError) => void;
|
|
158
|
+
onEvent?: (event: SagaEvent) => void;
|
|
159
|
+
throwOnCompensationFailure?: boolean;
|
|
160
|
+
}): Promise<SagaResult<T, E>>;
|
|
161
|
+
|
|
162
|
+
export { type CompensationAction, type SagaCompensationError, type SagaEvent, type SagaResult, type SagaStep, type SagaStepOptions, type SagaWorkflow, type SagaWorkflowOptions, createSagaWorkflow, isSagaCompensationError, runSaga };
|