awaitly 1.35.0 → 2.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/{duration.d.ts → di-BDlT7InM.d.cts} +15 -1
- package/dist/{duration.d.cts → di-BbFFfO8y.d.ts} +15 -1
- package/dist/errors-DtXvrCiO.d.cts +708 -0
- package/dist/errors-DtXvrCiO.d.ts +708 -0
- package/dist/index.cjs +4594 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1970 -141
- package/dist/index.d.ts +1970 -141
- package/dist/index.js +4398 -1
- package/dist/index.js.map +1 -1
- package/dist/result.cjs +641 -1
- package/dist/result.cjs.map +1 -1
- package/dist/result.d.cts +29 -4
- package/dist/result.d.ts +29 -4
- package/dist/result.js +561 -1
- package/dist/result.js.map +1 -1
- package/dist/testing.cjs +4202 -8
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.cts +2 -6
- package/dist/testing.d.ts +2 -6
- package/dist/testing.js +4154 -8
- package/dist/testing.js.map +1 -1
- package/dist/{run-entry-DGs0tySr.d.cts → types-B8NfNRGX.d.ts} +1078 -1502
- package/dist/{run-entry-BOuNyVoO.d.ts → types-BZ2f4MRR.d.cts} +1078 -1502
- package/dist/workflow.cjs +7096 -6
- package/dist/workflow.cjs.map +1 -1
- package/dist/workflow.d.cts +3346 -22
- package/dist/workflow.d.ts +3346 -22
- package/dist/workflow.js +6929 -6
- package/dist/workflow.js.map +1 -1
- package/package.json +3 -168
- package/dist/adapters.cjs +0 -7
- package/dist/adapters.cjs.map +0 -1
- package/dist/adapters.d.cts +0 -179
- package/dist/adapters.d.ts +0 -179
- package/dist/adapters.js +0 -7
- package/dist/adapters.js.map +0 -1
- package/dist/batch.cjs +0 -7
- package/dist/batch.cjs.map +0 -1
- package/dist/batch.d.cts +0 -200
- package/dist/batch.d.ts +0 -200
- package/dist/batch.js +0 -7
- package/dist/batch.js.map +0 -1
- package/dist/bind-deps.cjs +0 -2
- package/dist/bind-deps.cjs.map +0 -1
- package/dist/bind-deps.d.cts +0 -28
- package/dist/bind-deps.d.ts +0 -28
- package/dist/bind-deps.js +0 -2
- package/dist/bind-deps.js.map +0 -1
- package/dist/cache.cjs +0 -2
- package/dist/cache.cjs.map +0 -1
- package/dist/cache.d.cts +0 -269
- package/dist/cache.d.ts +0 -269
- package/dist/cache.js +0 -2
- package/dist/cache.js.map +0 -1
- package/dist/circuit-breaker.cjs +0 -7
- package/dist/circuit-breaker.cjs.map +0 -1
- package/dist/circuit-breaker.d.cts +0 -211
- package/dist/circuit-breaker.d.ts +0 -211
- package/dist/circuit-breaker.js +0 -7
- package/dist/circuit-breaker.js.map +0 -1
- package/dist/conditional.cjs +0 -2
- package/dist/conditional.cjs.map +0 -1
- package/dist/conditional.d.cts +0 -252
- package/dist/conditional.d.ts +0 -252
- package/dist/conditional.js +0 -2
- package/dist/conditional.js.map +0 -1
- package/dist/core.cjs +0 -7
- package/dist/core.cjs.map +0 -1
- package/dist/core.d.cts +0 -5
- package/dist/core.d.ts +0 -5
- package/dist/core.js +0 -7
- package/dist/core.js.map +0 -1
- package/dist/di-By77n4Fa.d.ts +0 -15
- package/dist/di-OJfsohf-.d.cts +0 -15
- package/dist/diagnostics.cjs +0 -8
- package/dist/diagnostics.cjs.map +0 -1
- package/dist/diagnostics.d.cts +0 -68
- package/dist/diagnostics.d.ts +0 -68
- package/dist/diagnostics.js +0 -8
- package/dist/diagnostics.js.map +0 -1
- package/dist/durable.cjs +0 -11
- package/dist/durable.cjs.map +0 -1
- package/dist/durable.d.cts +0 -9
- package/dist/durable.d.ts +0 -9
- package/dist/durable.js +0 -11
- package/dist/durable.js.map +0 -1
- package/dist/duration.cjs +0 -2
- package/dist/duration.cjs.map +0 -1
- package/dist/duration.js +0 -2
- package/dist/duration.js.map +0 -1
- package/dist/engine.cjs +0 -11
- package/dist/engine.cjs.map +0 -1
- package/dist/engine.d.cts +0 -115
- package/dist/engine.d.ts +0 -115
- package/dist/engine.js +0 -11
- package/dist/engine.js.map +0 -1
- package/dist/errors.cjs +0 -2
- package/dist/errors.cjs.map +0 -1
- package/dist/errors.d.cts +0 -361
- package/dist/errors.d.ts +0 -361
- package/dist/errors.js +0 -2
- package/dist/errors.js.map +0 -1
- package/dist/fetch.cjs +0 -7
- package/dist/fetch.cjs.map +0 -1
- package/dist/fetch.d.cts +0 -86
- package/dist/fetch.d.ts +0 -86
- package/dist/fetch.js +0 -7
- package/dist/fetch.js.map +0 -1
- package/dist/flow.cjs +0 -7
- package/dist/flow.cjs.map +0 -1
- package/dist/flow.d.cts +0 -163
- package/dist/flow.d.ts +0 -163
- package/dist/flow.js +0 -7
- package/dist/flow.js.map +0 -1
- package/dist/functional.cjs +0 -2
- package/dist/functional.cjs.map +0 -1
- package/dist/functional.d.cts +0 -444
- package/dist/functional.d.ts +0 -444
- package/dist/functional.js +0 -2
- package/dist/functional.js.map +0 -1
- package/dist/guards-4sV7mTqj.d.cts +0 -72
- package/dist/guards-BIX05ALH.d.ts +0 -72
- package/dist/hitl-DFn4Xa_l.d.cts +0 -468
- package/dist/hitl-DU5VpKq7.d.ts +0 -468
- package/dist/hitl.cjs +0 -7
- package/dist/hitl.cjs.map +0 -1
- package/dist/hitl.d.cts +0 -442
- package/dist/hitl.d.ts +0 -442
- package/dist/hitl.js +0 -7
- package/dist/hitl.js.map +0 -1
- package/dist/index-CnvBryQB.d.ts +0 -417
- package/dist/index-DEZEf8Fs.d.cts +0 -417
- package/dist/match-entry-DjI2bLpD.d.cts +0 -209
- package/dist/match-entry-DjI2bLpD.d.ts +0 -209
- package/dist/match.cjs +0 -2
- package/dist/match.cjs.map +0 -1
- package/dist/match.d.cts +0 -1
- package/dist/match.d.ts +0 -1
- package/dist/match.js +0 -2
- package/dist/match.js.map +0 -1
- package/dist/otel.cjs +0 -2
- package/dist/otel.cjs.map +0 -1
- package/dist/otel.d.cts +0 -188
- package/dist/otel.d.ts +0 -188
- package/dist/otel.js +0 -2
- package/dist/otel.js.map +0 -1
- package/dist/persistence-entry-B-8PjnSR.d.cts +0 -831
- package/dist/persistence-entry-D8zRkLiT.d.ts +0 -831
- package/dist/persistence.cjs +0 -2
- package/dist/persistence.cjs.map +0 -1
- package/dist/persistence.d.cts +0 -7
- package/dist/persistence.d.ts +0 -7
- package/dist/persistence.js +0 -2
- package/dist/persistence.js.map +0 -1
- package/dist/policies.cjs +0 -2
- package/dist/policies.cjs.map +0 -1
- package/dist/policies.d.cts +0 -379
- package/dist/policies.d.ts +0 -379
- package/dist/policies.js +0 -2
- package/dist/policies.js.map +0 -1
- package/dist/ratelimit.cjs +0 -7
- package/dist/ratelimit.cjs.map +0 -1
- package/dist/ratelimit.d.cts +0 -458
- package/dist/ratelimit.d.ts +0 -458
- package/dist/ratelimit.js +0 -7
- package/dist/ratelimit.js.map +0 -1
- package/dist/reliability.cjs +0 -11
- package/dist/reliability.cjs.map +0 -1
- package/dist/reliability.d.cts +0 -11
- package/dist/reliability.d.ts +0 -11
- package/dist/reliability.js +0 -11
- package/dist/reliability.js.map +0 -1
- package/dist/resolver.cjs +0 -7
- package/dist/resolver.cjs.map +0 -1
- package/dist/resolver.d.cts +0 -68
- package/dist/resolver.d.ts +0 -68
- package/dist/resolver.js +0 -7
- package/dist/resolver.js.map +0 -1
- package/dist/resource.cjs +0 -7
- package/dist/resource.cjs.map +0 -1
- package/dist/resource.d.cts +0 -174
- package/dist/resource.d.ts +0 -174
- package/dist/resource.js +0 -7
- package/dist/resource.js.map +0 -1
- package/dist/result/retry.cjs +0 -2
- package/dist/result/retry.cjs.map +0 -1
- package/dist/result/retry.d.cts +0 -70
- package/dist/result/retry.d.ts +0 -70
- package/dist/result/retry.js +0 -2
- package/dist/result/retry.js.map +0 -1
- package/dist/retry.cjs +0 -2
- package/dist/retry.cjs.map +0 -1
- package/dist/retry.d.cts +0 -388
- package/dist/retry.d.ts +0 -388
- package/dist/retry.js +0 -2
- package/dist/retry.js.map +0 -1
- package/dist/run.cjs +0 -7
- package/dist/run.cjs.map +0 -1
- package/dist/run.d.cts +0 -4
- package/dist/run.d.ts +0 -4
- package/dist/run.js +0 -7
- package/dist/run.js.map +0 -1
- package/dist/saga.cjs +0 -11
- package/dist/saga.cjs.map +0 -1
- package/dist/saga.d.cts +0 -164
- package/dist/saga.d.ts +0 -164
- package/dist/saga.js +0 -11
- package/dist/saga.js.map +0 -1
- package/dist/singleflight.cjs +0 -2
- package/dist/singleflight.cjs.map +0 -1
- package/dist/singleflight.d.cts +0 -145
- package/dist/singleflight.d.ts +0 -145
- package/dist/singleflight.js +0 -2
- package/dist/singleflight.js.map +0 -1
- package/dist/slugs.cjs +0 -2
- package/dist/slugs.cjs.map +0 -1
- package/dist/slugs.d.cts +0 -67
- package/dist/slugs.d.ts +0 -67
- package/dist/slugs.js +0 -2
- package/dist/slugs.js.map +0 -1
- package/dist/streaming.cjs +0 -9
- package/dist/streaming.cjs.map +0 -1
- package/dist/streaming.d.cts +0 -596
- package/dist/streaming.d.ts +0 -596
- package/dist/streaming.js +0 -9
- package/dist/streaming.js.map +0 -1
- package/dist/tagged-error.cjs +0 -2
- package/dist/tagged-error.cjs.map +0 -1
- package/dist/tagged-error.d.cts +0 -275
- package/dist/tagged-error.d.ts +0 -275
- package/dist/tagged-error.js +0 -2
- package/dist/tagged-error.js.map +0 -1
- package/dist/types-BziYHFkD.d.ts +0 -323
- package/dist/types-C5jLEUqY.d.cts +0 -323
- package/dist/webhook.cjs +0 -7
- package/dist/webhook.cjs.map +0 -1
- package/dist/webhook.d.cts +0 -499
- package/dist/webhook.d.ts +0 -499
- package/dist/webhook.js +0 -7
- package/dist/webhook.js.map +0 -1
package/dist/fetch.d.cts
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { ag as RetryOptions, R as Result, c as AsyncResult } from './run-entry-DGs0tySr.cjs';
|
|
2
|
-
import './errors.cjs';
|
|
3
|
-
import './tagged-error.cjs';
|
|
4
|
-
import './slugs.cjs';
|
|
5
|
-
|
|
6
|
-
type FetchNetworkError = {
|
|
7
|
-
readonly _tag: "FetchNetworkError";
|
|
8
|
-
readonly cause: unknown;
|
|
9
|
-
};
|
|
10
|
-
type FetchHttpError<B = unknown> = {
|
|
11
|
-
readonly _tag: "FetchHttpError";
|
|
12
|
-
readonly status: number;
|
|
13
|
-
readonly statusText: string;
|
|
14
|
-
readonly body?: B;
|
|
15
|
-
};
|
|
16
|
-
type FetchParseError = {
|
|
17
|
-
readonly _tag: "FetchParseError";
|
|
18
|
-
readonly cause: unknown;
|
|
19
|
-
readonly text: string;
|
|
20
|
-
};
|
|
21
|
-
type FetchDecodeError = {
|
|
22
|
-
readonly _tag: "FetchDecodeError";
|
|
23
|
-
readonly issues: unknown;
|
|
24
|
-
};
|
|
25
|
-
type FetchAbortError = {
|
|
26
|
-
readonly _tag: "FetchAbortError";
|
|
27
|
-
readonly reason: unknown;
|
|
28
|
-
};
|
|
29
|
-
type FetchTimeoutError = {
|
|
30
|
-
readonly _tag: "FetchTimeoutError";
|
|
31
|
-
readonly ms: number;
|
|
32
|
-
};
|
|
33
|
-
/** Convenience union: all errors except FetchDecodeError */
|
|
34
|
-
type FetchError<B = unknown> = FetchNetworkError | FetchHttpError<B> | FetchParseError | FetchAbortError | FetchTimeoutError;
|
|
35
|
-
/** Convenience union: all errors including FetchDecodeError */
|
|
36
|
-
type FetchErrorWithDecode<B = unknown> = FetchError<B> | FetchDecodeError;
|
|
37
|
-
/** Options for fetchText, fetchBlob, fetchArrayBuffer */
|
|
38
|
-
type FetchOptions<TBody = unknown, EHttp = FetchHttpError<TBody>> = RequestInit & {
|
|
39
|
-
/** Timeout in ms — creates internal AbortController, composes with user signal */
|
|
40
|
-
timeoutMs?: number;
|
|
41
|
-
/** Read error response body for context. Default: attempt JSON then text */
|
|
42
|
-
errorBody?: (response: Response) => Promise<TBody>;
|
|
43
|
-
/** Map HTTP errors to custom domain errors. Called after error body is read */
|
|
44
|
-
mapError?: (httpError: FetchHttpError<TBody>) => EHttp;
|
|
45
|
-
/** Retry on failure. Number = attempts only; object = full RetryOptions (same semantics as step.retry) */
|
|
46
|
-
retry?: RetryOptions | number;
|
|
47
|
-
};
|
|
48
|
-
/** Options for fetchJson (extends FetchOptions with decode + strictContentType) */
|
|
49
|
-
type FetchJsonOptions<T = unknown, TBody = unknown, EHttp = FetchHttpError<TBody>> = FetchOptions<TBody, EHttp> & {
|
|
50
|
-
/** Validate/transform parsed data. Return ok(T) or err({ issues }) */
|
|
51
|
-
decode?: (raw: unknown) => Result<T, {
|
|
52
|
-
issues: unknown;
|
|
53
|
-
}>;
|
|
54
|
-
/** If true, check Content-Type header before parsing (FetchParseError on mismatch) */
|
|
55
|
-
strictContentType?: boolean;
|
|
56
|
-
};
|
|
57
|
-
declare function fetchJson<T = unknown, TBody = unknown>(url: string | URL | Request, options?: FetchJsonOptions<T, TBody> & {
|
|
58
|
-
mapError?: undefined;
|
|
59
|
-
}): AsyncResult<T | null, FetchNetworkError | FetchAbortError | FetchTimeoutError | FetchHttpError<TBody> | FetchParseError | FetchDecodeError>;
|
|
60
|
-
declare function fetchJson<T, TBody, EHttp>(url: string | URL | Request, options: FetchJsonOptions<T, TBody, EHttp> & {
|
|
61
|
-
mapError: (httpError: FetchHttpError<TBody>) => EHttp;
|
|
62
|
-
}): AsyncResult<T | null, FetchNetworkError | FetchAbortError | FetchTimeoutError | EHttp | FetchParseError | FetchDecodeError>;
|
|
63
|
-
declare function fetchText<TBody = unknown>(url: string | URL | Request, options?: FetchOptions<TBody> & {
|
|
64
|
-
mapError?: undefined;
|
|
65
|
-
}): AsyncResult<string, FetchNetworkError | FetchAbortError | FetchTimeoutError | FetchHttpError<TBody>>;
|
|
66
|
-
declare function fetchText<TBody, EHttp>(url: string | URL | Request, options: FetchOptions<TBody, EHttp> & {
|
|
67
|
-
mapError: (httpError: FetchHttpError<TBody>) => EHttp;
|
|
68
|
-
}): AsyncResult<string, FetchNetworkError | FetchAbortError | FetchTimeoutError | EHttp>;
|
|
69
|
-
declare function fetchBlob<TBody = unknown>(url: string | URL | Request, options?: FetchOptions<TBody> & {
|
|
70
|
-
mapError?: undefined;
|
|
71
|
-
}): AsyncResult<Blob, FetchNetworkError | FetchAbortError | FetchTimeoutError | FetchHttpError<TBody>>;
|
|
72
|
-
declare function fetchBlob<TBody, EHttp>(url: string | URL | Request, options: FetchOptions<TBody, EHttp> & {
|
|
73
|
-
mapError: (httpError: FetchHttpError<TBody>) => EHttp;
|
|
74
|
-
}): AsyncResult<Blob, FetchNetworkError | FetchAbortError | FetchTimeoutError | EHttp>;
|
|
75
|
-
declare function fetchArrayBuffer<TBody = unknown>(url: string | URL | Request, options?: FetchOptions<TBody> & {
|
|
76
|
-
mapError?: undefined;
|
|
77
|
-
}): AsyncResult<ArrayBuffer, FetchNetworkError | FetchAbortError | FetchTimeoutError | FetchHttpError<TBody>>;
|
|
78
|
-
declare function fetchArrayBuffer<TBody, EHttp>(url: string | URL | Request, options: FetchOptions<TBody, EHttp> & {
|
|
79
|
-
mapError: (httpError: FetchHttpError<TBody>) => EHttp;
|
|
80
|
-
}): AsyncResult<ArrayBuffer, FetchNetworkError | FetchAbortError | FetchTimeoutError | EHttp>;
|
|
81
|
-
declare function fetchResponse(url: string | URL | Request, options?: RequestInit & {
|
|
82
|
-
timeoutMs?: number;
|
|
83
|
-
retry?: RetryOptions | number;
|
|
84
|
-
}): AsyncResult<Response, FetchNetworkError | FetchAbortError | FetchTimeoutError>;
|
|
85
|
-
|
|
86
|
-
export { type FetchAbortError, type FetchDecodeError, type FetchError, type FetchErrorWithDecode, type FetchHttpError, type FetchJsonOptions, type FetchNetworkError, type FetchOptions, type FetchParseError, type FetchTimeoutError, fetchArrayBuffer, fetchBlob, fetchJson, fetchResponse, fetchText };
|
package/dist/fetch.d.ts
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { ag as RetryOptions, R as Result, c as AsyncResult } from './run-entry-BOuNyVoO.js';
|
|
2
|
-
import './errors.js';
|
|
3
|
-
import './tagged-error.js';
|
|
4
|
-
import './slugs.js';
|
|
5
|
-
|
|
6
|
-
type FetchNetworkError = {
|
|
7
|
-
readonly _tag: "FetchNetworkError";
|
|
8
|
-
readonly cause: unknown;
|
|
9
|
-
};
|
|
10
|
-
type FetchHttpError<B = unknown> = {
|
|
11
|
-
readonly _tag: "FetchHttpError";
|
|
12
|
-
readonly status: number;
|
|
13
|
-
readonly statusText: string;
|
|
14
|
-
readonly body?: B;
|
|
15
|
-
};
|
|
16
|
-
type FetchParseError = {
|
|
17
|
-
readonly _tag: "FetchParseError";
|
|
18
|
-
readonly cause: unknown;
|
|
19
|
-
readonly text: string;
|
|
20
|
-
};
|
|
21
|
-
type FetchDecodeError = {
|
|
22
|
-
readonly _tag: "FetchDecodeError";
|
|
23
|
-
readonly issues: unknown;
|
|
24
|
-
};
|
|
25
|
-
type FetchAbortError = {
|
|
26
|
-
readonly _tag: "FetchAbortError";
|
|
27
|
-
readonly reason: unknown;
|
|
28
|
-
};
|
|
29
|
-
type FetchTimeoutError = {
|
|
30
|
-
readonly _tag: "FetchTimeoutError";
|
|
31
|
-
readonly ms: number;
|
|
32
|
-
};
|
|
33
|
-
/** Convenience union: all errors except FetchDecodeError */
|
|
34
|
-
type FetchError<B = unknown> = FetchNetworkError | FetchHttpError<B> | FetchParseError | FetchAbortError | FetchTimeoutError;
|
|
35
|
-
/** Convenience union: all errors including FetchDecodeError */
|
|
36
|
-
type FetchErrorWithDecode<B = unknown> = FetchError<B> | FetchDecodeError;
|
|
37
|
-
/** Options for fetchText, fetchBlob, fetchArrayBuffer */
|
|
38
|
-
type FetchOptions<TBody = unknown, EHttp = FetchHttpError<TBody>> = RequestInit & {
|
|
39
|
-
/** Timeout in ms — creates internal AbortController, composes with user signal */
|
|
40
|
-
timeoutMs?: number;
|
|
41
|
-
/** Read error response body for context. Default: attempt JSON then text */
|
|
42
|
-
errorBody?: (response: Response) => Promise<TBody>;
|
|
43
|
-
/** Map HTTP errors to custom domain errors. Called after error body is read */
|
|
44
|
-
mapError?: (httpError: FetchHttpError<TBody>) => EHttp;
|
|
45
|
-
/** Retry on failure. Number = attempts only; object = full RetryOptions (same semantics as step.retry) */
|
|
46
|
-
retry?: RetryOptions | number;
|
|
47
|
-
};
|
|
48
|
-
/** Options for fetchJson (extends FetchOptions with decode + strictContentType) */
|
|
49
|
-
type FetchJsonOptions<T = unknown, TBody = unknown, EHttp = FetchHttpError<TBody>> = FetchOptions<TBody, EHttp> & {
|
|
50
|
-
/** Validate/transform parsed data. Return ok(T) or err({ issues }) */
|
|
51
|
-
decode?: (raw: unknown) => Result<T, {
|
|
52
|
-
issues: unknown;
|
|
53
|
-
}>;
|
|
54
|
-
/** If true, check Content-Type header before parsing (FetchParseError on mismatch) */
|
|
55
|
-
strictContentType?: boolean;
|
|
56
|
-
};
|
|
57
|
-
declare function fetchJson<T = unknown, TBody = unknown>(url: string | URL | Request, options?: FetchJsonOptions<T, TBody> & {
|
|
58
|
-
mapError?: undefined;
|
|
59
|
-
}): AsyncResult<T | null, FetchNetworkError | FetchAbortError | FetchTimeoutError | FetchHttpError<TBody> | FetchParseError | FetchDecodeError>;
|
|
60
|
-
declare function fetchJson<T, TBody, EHttp>(url: string | URL | Request, options: FetchJsonOptions<T, TBody, EHttp> & {
|
|
61
|
-
mapError: (httpError: FetchHttpError<TBody>) => EHttp;
|
|
62
|
-
}): AsyncResult<T | null, FetchNetworkError | FetchAbortError | FetchTimeoutError | EHttp | FetchParseError | FetchDecodeError>;
|
|
63
|
-
declare function fetchText<TBody = unknown>(url: string | URL | Request, options?: FetchOptions<TBody> & {
|
|
64
|
-
mapError?: undefined;
|
|
65
|
-
}): AsyncResult<string, FetchNetworkError | FetchAbortError | FetchTimeoutError | FetchHttpError<TBody>>;
|
|
66
|
-
declare function fetchText<TBody, EHttp>(url: string | URL | Request, options: FetchOptions<TBody, EHttp> & {
|
|
67
|
-
mapError: (httpError: FetchHttpError<TBody>) => EHttp;
|
|
68
|
-
}): AsyncResult<string, FetchNetworkError | FetchAbortError | FetchTimeoutError | EHttp>;
|
|
69
|
-
declare function fetchBlob<TBody = unknown>(url: string | URL | Request, options?: FetchOptions<TBody> & {
|
|
70
|
-
mapError?: undefined;
|
|
71
|
-
}): AsyncResult<Blob, FetchNetworkError | FetchAbortError | FetchTimeoutError | FetchHttpError<TBody>>;
|
|
72
|
-
declare function fetchBlob<TBody, EHttp>(url: string | URL | Request, options: FetchOptions<TBody, EHttp> & {
|
|
73
|
-
mapError: (httpError: FetchHttpError<TBody>) => EHttp;
|
|
74
|
-
}): AsyncResult<Blob, FetchNetworkError | FetchAbortError | FetchTimeoutError | EHttp>;
|
|
75
|
-
declare function fetchArrayBuffer<TBody = unknown>(url: string | URL | Request, options?: FetchOptions<TBody> & {
|
|
76
|
-
mapError?: undefined;
|
|
77
|
-
}): AsyncResult<ArrayBuffer, FetchNetworkError | FetchAbortError | FetchTimeoutError | FetchHttpError<TBody>>;
|
|
78
|
-
declare function fetchArrayBuffer<TBody, EHttp>(url: string | URL | Request, options: FetchOptions<TBody, EHttp> & {
|
|
79
|
-
mapError: (httpError: FetchHttpError<TBody>) => EHttp;
|
|
80
|
-
}): AsyncResult<ArrayBuffer, FetchNetworkError | FetchAbortError | FetchTimeoutError | EHttp>;
|
|
81
|
-
declare function fetchResponse(url: string | URL | Request, options?: RequestInit & {
|
|
82
|
-
timeoutMs?: number;
|
|
83
|
-
retry?: RetryOptions | number;
|
|
84
|
-
}): AsyncResult<Response, FetchNetworkError | FetchAbortError | FetchTimeoutError>;
|
|
85
|
-
|
|
86
|
-
export { type FetchAbortError, type FetchDecodeError, type FetchError, type FetchErrorWithDecode, type FetchHttpError, type FetchJsonOptions, type FetchNetworkError, type FetchOptions, type FetchParseError, type FetchTimeoutError, fetchArrayBuffer, fetchBlob, fetchJson, fetchResponse, fetchText };
|
package/dist/fetch.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
var Ve={"step-require-id":"step-require-id","step-no-immediate-execution":"step-no-immediate-execution","step-require-thunk-for-key":"step-require-thunk-for-key","step-no-bare-await":"step-no-bare-await","step-no-try-catch-wrap":"step-no-try-catch-wrap","step-stable-cache-keys":"step-stable-cache-keys","workflow-no-floating":"workflow-no-floating","workflow-options-position":"workflow-options-position","workflow-callback-shape":"workflow-callback-shape","workflow-no-callable-form":"workflow-no-callable-form","workflow-no-dynamic-import":"workflow-no-dynamic-import","result-no-floating":"result-no-floating","result-require-handling":"result-require-handling","result-no-double-wrap":"result-no-double-wrap","result-no-manual-propagation":"result-no-manual-propagation","result-no-direct-ok-err":"result-no-direct-ok-err","error-check-unexpected-first":"error-check-unexpected-first","error-access-cause":"error-access-cause","error-normalize":"error-normalize","error-no-throw-in-deps":"error-no-throw-in-deps","concurrency-no-promise-all":"concurrency-no-promise-all","concurrency-no-promise-race":"concurrency-no-promise-race","concurrency-no-promise-allsettled":"concurrency-no-promise-allsettled","runtime-step-timeout":"runtime-step-timeout","runtime-step-aborted":"runtime-step-aborted","runtime-retry-exhausted":"runtime-retry-exhausted","runtime-rate-limit":"runtime-rate-limit","runtime-circuit-open":"runtime-circuit-open","runtime-unexpected":"runtime-unexpected","runtime-resolver-not-found":"runtime-resolver-not-found","runtime-saga-compensation":"runtime-saga-compensation"};function xe(r){return`https://jagreehal.github.io/awaitly/rules/#${r}`}var dr=Object.keys(Ve);var oe=class extends Error{_tag};function N(r,e){return class extends oe{_tag=r;constructor(s,p){let k=e?.message?e.message(s??{}):r;if(super(k),this.name=r,e?.slug!==void 0){if(!e.hint)throw new TypeError(`TaggedError: 'hint' is required when 'slug' is set (slug: "${e.slug}")`);Object.defineProperty(this,"code",{value:e.slug,enumerable:!0,writable:!1,configurable:!1}),Object.defineProperty(this,"hint",{value:e.hint,enumerable:!0,writable:!1,configurable:!1}),Object.defineProperty(this,"docsUrl",{value:xe(e.slug),enumerable:!0,writable:!1,configurable:!1})}if(Object.setPrototypeOf(this,new.target.prototype),s&&typeof s=="object"){let a;if(e?.slug!==void 0){let{_tag:B,name:O,message:U,stack:u,code:K,hint:H,docsUrl:ge,...te}=s;a=te}else{let{_tag:B,name:O,message:U,stack:u,...K}=s;a=K}let E=Object.prototype.hasOwnProperty.call(a,"cause"),T=E?a.cause:void 0;E&&delete a.cause;let P=p?.cause!==void 0;if(E&&P)throw new TypeError("TaggedError: cannot provide 'cause' in props when also setting ErrorOptions.cause");Object.assign(this,a),E&&(this.cause=T),P&&(this.cause=p?.cause)}else p?.cause!==void 0&&(this.cause=p.cause)}}}Object.defineProperty(N,Symbol.hasInstance,{value:r=>r instanceof oe});(k=>{function r(a){return a instanceof Error}k.isError=r;function e(a){return a instanceof oe}k.isTaggedError=e;function s(a,E){let T=a._tag,P=E[T];return P(a)}k.match=s;function p(a,E,T){let P=a._tag,B=E[P];return B?B(a):T(a)}k.matchPartial=p})(N||={});var he=class extends N("TimeoutError",{slug:"runtime-step-timeout",hint:"Increase the step's timeout option, or check why the upstream operation is slow.",message:e=>e.operation?`TimeoutError: ${e.operation} timed out after ${e.ms}ms`:`TimeoutError: Operation timed out after ${e.ms}ms`}){},Ce=class extends N("RetryExhaustedError",{slug:"runtime-retry-exhausted",hint:"All retry attempts failed. Inspect lastError and decide whether to surface it or compensate.",message:e=>e.operation?`RetryExhaustedError: ${e.operation} failed after ${e.attempts} attempts`:`RetryExhaustedError: Operation failed after ${e.attempts} attempts`}){},be=class extends N("RateLimitError",{slug:"runtime-rate-limit",hint:"Wait retryAfterMs before retrying, or apply step.cache to deduplicate calls.",message:e=>e.limiterName?`RateLimitError: Rate limit exceeded for ${e.limiterName}${e.retryAfterMs?`, retry after ${e.retryAfterMs}ms`:""}`:`RateLimitError: Rate limit exceeded${e.retryAfterMs?`, retry after ${e.retryAfterMs}ms`:""}`}){},Ae=class extends N("CircuitBreakerOpenError",{slug:"runtime-circuit-open",hint:"The circuit is open. Wait for it to half-open or fall back to a degraded path.",message:e=>`CircuitBreakerOpenError: Circuit ${e.circuitName} is ${e.state??"OPEN"}${e.retryAfterMs?`, retry after ${Math.ceil(e.retryAfterMs/1e3)}s`:""}`}){},Se=class extends N("ValidationError",{message:e=>`ValidationError: Invalid ${e.field} - ${e.reason}`}){},Pe=class extends N("NotFoundError",{message:e=>e.id?`NotFoundError: ${e.resource} with id ${e.id} not found`:`NotFoundError: ${e.resource} not found`}){},ve=class extends N("UnauthorizedError",{message:e=>e.reason?`UnauthorizedError: ${e.reason}`:e.action&&e.resource?`UnauthorizedError: Not authorized to ${e.action} ${e.resource}`:"UnauthorizedError: Access denied"}){},Oe=class extends N("NetworkError",{message:e=>e.url?`NetworkError: ${e.reason} (${e.url})`:`NetworkError: ${e.reason}`}){},_e=class extends N("CompensationError",{slug:"runtime-saga-compensation",hint:"A saga compensation step failed. Inspect compensationError and ensure compensation is idempotent.",message:e=>`CompensationError: Failed to compensate step ${e.step}`}){},ie=class extends N("UnexpectedError",{slug:"runtime-unexpected",hint:"An unexpected exception escaped a step. Inspect cause; consider returning a typed Result instead of throwing.",message:e=>`UnexpectedError: ${e.cause instanceof Error?e.cause.message:String(e.cause??"unknown")}`}){};function Fe(r){return{ok:!0,value:r}}var qe=r=>typeof r=="object"&&r!==null&&"ok"in r&&typeof r.ok=="boolean"&&(r.ok?"value"in r:"error"in r),Me=(r,e)=>{let s={},p=new Map;for(let k of Object.keys(r)){let a=r[k];typeof a=="function"&&(s[k]=(...E)=>{let T=(p.get(k)??0)+1;p.set(k,T);let P=T===1?k:`${k}#${T}`;return e(P,async()=>{let B=await a(...E);return qe(B)?B:Fe(B)})})}return s};function We(r){let e=r.trim().match(/^(\d+(?:\.\d+)?)\s*(ms|s|m|h|d)$/i);if(!e)return;let s=parseFloat(e[1]),p=e[2].toLowerCase();return{_tag:"Duration",millis:s*({ms:1,s:1e3,m:6e4,h:36e5,d:864e5}[p]??1)}}function $e(r){return new ie({cause:r})}function D(r){return{ok:!0,value:r}}function _(r,e){let s=e?.cause;return{ok:!1,error:r,...s!==void 0?{cause:s}:{}}}function Je(r){if(r==null)return"unknown";if(typeof r=="string")return r.trim()||"unknown";if(typeof r=="object"){let e=r;if(typeof e._tag=="string"){let s=e._tag.trim();if(s)return s}if(typeof e.tag=="string"){let s=e.tag.trim();if(s)return s}if(typeof e.code=="string"){let s=e.code.trim();if(s)return s}else if(typeof e.code=="number")return String(e.code);if(r instanceof Error&&r.name){let s=r.name.trim();if(s)return s}}return"unknown"}function Ye(r,e){if(!(!e||!r))return e[r]}function ze(r){let{intent:e,domain:s,owner:p,tags:k,stateChanges:a,emits:E,calls:T}=r;if(!e&&!s&&!p&&!k?.length&&!a?.length&&!E?.length&&!T?.length)return;let P={};return e&&(P.intent=e),s&&(P.domain=s),p&&(P.owner=p),k?.length&&(P.tags=k),a?.length&&(P.stateChanges=a),E?.length&&(P.emits=E),T?.length&&(P.calls=T),P}function L(r,e,s,p,k){let a=Je(r),E=Ye(a,e),T={tag:a,origin:s};return E!==void 0&&(T.classification=E),p!==void 0&&(T.attempt=p),k!==void 0&&(T.cumulativeDurationMs=k),T}var re=Symbol.for("step_timeout_marker");function Ie(r){return typeof r!="object"||r===null?!1:r.type==="STEP_TIMEOUT"?!0:re in r}function Ge(r){if(!(typeof r!="object"||r===null)){if(r.type==="STEP_TIMEOUT"){let e=r;return{timeoutMs:e.timeoutMs,stepName:e.stepName,stepKey:e.stepKey,attempt:e.attempt}}if(re in r)return r[re]}}var Be=Symbol("early-exit");function Xe(r,e){return{[Be]:!0,error:r,meta:e}}function Ze(r){return typeof r=="object"&&r!==null&&r[Be]===!0}var Ne=Symbol("mapper-exception");function Z(r){return{[Ne]:!0,thrown:r}}function Qe(r){return typeof r=="object"&&r!==null&&r[Ne]===!0}function se(r,e){let{backoff:s,initialDelay:p,maxDelay:k,jitter:a}=e,E;switch(s){case"fixed":E=p;break;case"linear":E=p*r;break;case"exponential":E=p*Math.pow(2,r-1);break}if(E=Math.min(E,k),a){let T=E*.25*Math.random();E=E+T}return Math.floor(E)}function ae(r){return new Promise(e=>setTimeout(e,r))}var Q={backoff:"exponential",initialDelay:100,maxDelay:3e4,jitter:!0,shouldRetry:(r,e)=>!0,onRetry:(r,e,s)=>{}};async function le(r,e){let s=Math.max(1,e.attempts),p={backoff:e.backoff??Q.backoff,initialDelay:e.initialDelay??Q.initialDelay,maxDelay:e.maxDelay??Q.maxDelay,jitter:e.jitter??Q.jitter,shouldRetry:e.shouldRetry??Q.shouldRetry,onRetry:e.onRetry??Q.onRetry},k;for(let a=1;a<=s;a++)try{let E=await r();if(E.ok)return E;if(k=E,a<s&&p.shouldRetry(E.error,a)){let T=se(a,p);p.onRetry(E.error,a,T),await ae(T);continue}return E}catch(E){if(a<s&&p.shouldRetry(E,a)){let T=se(a,p);p.onRetry(E,a,T),await ae(T);continue}throw E}return k}var Ue=Symbol("timeout"),ce=Symbol("timeout-option");function er(r){return typeof r=="object"&&r!==null&&r[ce]===!0}async function rr(r,e,s,p){let k=new AbortController,a=e.onTimeout??"error",E=()=>typeof a=="function"?a({name:s.name,key:s.key,ms:e.ms}):e.error??{type:"STEP_TIMEOUT",stepName:s.name,stepKey:s.key,timeoutMs:e.ms,attempt:s.attempt},T;p?.aborted&&k.abort(p.reason);let P;p&&!p.aborted&&(P=()=>k.abort(p.reason),p.addEventListener("abort",P,{once:!0}));let B=new Promise((U,u)=>{T=setTimeout(()=>{if(a!=="disconnect"&&k.abort(),a==="option"){u({[ce]:!0,ms:e.ms});return}u({[Ue]:!0,error:E()})},e.ms)}),O;e.signal?O=Promise.resolve(r(k.signal)):O=Promise.resolve(r());try{return await Promise.race([O,B])}catch(U){if(typeof U=="object"&&U!==null&&U[ce]===!0)throw{[ce]:!0,ms:e.ms};if(typeof U=="object"&&U!==null&&U[Ue]===!0){a==="disconnect"&&O.catch(()=>{});let u=U.error;if(typeof u=="object"&&u!==null&&u.type!=="STEP_TIMEOUT"){let K={timeoutMs:e.ms,stepName:s.name,stepKey:s.key,attempt:s.attempt};re in u?u[re]=K:Object.defineProperty(u,re,{value:K,enumerable:!1,writable:!0,configurable:!1})}throw u}throw U}finally{clearTimeout(T),P&&p&&p.removeEventListener("abort",P)}}var ee={backoff:"exponential",initialDelay:100,maxDelay:3e4,jitter:!0,shouldRetry:()=>!0,onRetry:()=>{}};async function fe(r,e,s){if(typeof r!="function"){let m=r,j=e;if(typeof j!="function")throw new TypeError("[awaitly] run(deps, fn) requires a callback as the second argument. Example: run({ getUser }, async (s) => s.getUser(id))");return fe(({step:G})=>j(Me(m,G),{step:G}),s)}let p=r,k=e,{onError:a,onEvent:E,catchUnexpected:T,workflowId:P,workflowName:B,context:O,_workflowSignal:U}=k&&typeof k=="object"?k:{},u=P??crypto.randomUUID(),K=T??$e,H=[],ge=0,te=m=>m??`step_${++ge}`,l=m=>{let j=m.context!==void 0||O===void 0?m:{...m,context:O},q=B!==void 0&&j.workflowName===void 0?{...j,workflowName:B}:j;if(q.type==="step_success"){let G=q.stepId;for(let ue=H.length-1;ue>=0;ue--){let V=H[ue];if(V.type==="race"&&!V.winnerId){V.winnerId=G;break}}}E?.(q,O)},I=Xe,z=m=>Ze(m),$=(m,j)=>m,je=m=>typeof m=="function"?!1:!!(m&&typeof m=="object"&&"ok"in m||m&&typeof m=="object"&&"then"in m&&typeof m.then=="function");try{let j=function(i){let y={};for(let[n,o]of Object.entries(i))if(typeof o=="function")y[n]=o;else if(o&&typeof o=="object"&&"fn"in o)y[n]=o.fn;else throw new TypeError(`step.all: operation "${n}" must be a function or { fn, errors? } object`);return y},q=function(i,y){let n=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let o=performance.now(),t=!1;H.push({scopeId:n,type:"parallel"});let c=()=>{if(t)return;t=!0;let d=H.findIndex(f=>f.scopeId===n);d!==-1&&H.splice(d,1),l({type:"scope_end",workflowId:u,scopeId:n,ts:Date.now(),durationMs:performance.now()-o})};l({type:"scope_start",workflowId:u,scopeId:n,scopeType:"parallel",name:i,ts:Date.now()});try{let d=await y();if(c(),!d.ok)throw a?.(d.error,i,O),I(d.error,{origin:"result",resultCause:d.cause});return d.value}catch(d){throw c(),d}})()},G=function(i,y){let n=Object.keys(i),o=y.name??`Parallel(${n.join(", ")})`,t=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let c=performance.now(),d=!1;H.push({scopeId:t,type:"parallel"});let f=()=>{if(d)return;d=!0;let w=H.findIndex(R=>R.scopeId===t);w!==-1&&H.splice(w,1),l({type:"scope_end",workflowId:u,scopeId:t,ts:Date.now(),durationMs:performance.now()-c})};l({type:"scope_start",workflowId:u,scopeId:t,scopeType:"parallel",name:o,ts:Date.now()});try{let w=await new Promise(x=>{if(n.length===0){x([]);return}let S=!1,M=n.length,h=new Array(n.length);for(let F=0;F<n.length;F++){let C=n[F],A=F;Promise.resolve(i[C]()).catch(b=>_({type:"PROMISE_REJECTED",cause:b},{cause:{type:"PROMISE_REJECTION",reason:b}})).then(b=>{if(!S){if(!b.ok){S=!0,x([{key:C,result:b}]);return}h[A]={key:C,result:b},M--,M===0&&x(h)}})}});f();let R={};for(let{key:x,result:S}of w){if(!S.ok)throw a?.(S.error,x,O),I(S.error,{origin:"result",resultCause:S.cause});R[x]=S.value}return R}catch(w){throw f(),w}})()};var lr=j,pr=q,Er=G;let m=(i,y,n)=>(async()=>{if(typeof i!="string"||i.length===0)throw new Error('[awaitly] step() requires an explicit string ID as the first argument. Example: step("fetchUser", () => fetchUser(id))');let o=n??{},t=ze(o),c=i,d=o.key??i,f=o.key??i,{description:w,retry:R,timeout:x}=o,S=te(d),M=E,h=M?performance.now():0,C=je(y)?()=>y:y,b={attempts:Math.max(1,R?.attempts??1),backoff:R?.backoff??ee.backoff,initialDelay:R?.initialDelay??ee.initialDelay,maxDelay:R?.maxDelay??ee.maxDelay,jitter:R?.jitter??ee.jitter,shouldRetry:R?.shouldRetry??ee.shouldRetry,onRetry:R?.onRetry??ee.onRetry};E&&l({type:"step_start",workflowId:u,stepId:S,stepKey:d,name:c,description:w,ts:Date.now(),...t&&{metadata:t}});let X;for(let v=1;v<=b.attempts;v++){let He=M?performance.now():0;try{let g;if(x?g=await rr(C,x,{name:c,key:d,attempt:v},U):g=await C(),g.ok){let Y=performance.now()-h;return l({type:"step_success",workflowId:u,stepId:S,stepKey:d,name:c,description:w,ts:Date.now(),durationMs:Y,...t&&{metadata:t}}),f&&l({type:"step_complete",workflowId:u,stepKey:f,name:c,description:w,ts:Date.now(),durationMs:Y,result:g,...t&&{metadata:t}}),g.value}if(X=g,v<b.attempts&&b.shouldRetry(g.error,v)){let Y=se(v,b);l({type:"step_retry",workflowId:u,stepId:S,stepKey:d,name:c,ts:Date.now(),attempt:v+1,maxAttempts:b.attempts,delayMs:Y,error:g.error,...t&&{metadata:t},diagnostics:L(g.error,o.errorMeta,"result",v,performance.now()-h)}),b.onRetry(g.error,v,Y),await ae(Y);continue}b.attempts>1&&l({type:"step_retries_exhausted",workflowId:u,stepId:S,stepKey:d,name:c,ts:Date.now(),durationMs:performance.now()-h,attempts:v,lastError:g.error,...t&&{metadata:t},diagnostics:L(g.error,o.errorMeta,"result",v,performance.now()-h)});break}catch(g){let Y=performance.now()-He;if(er(g)){let W=g.ms;l({type:"step_timeout",workflowId:u,stepId:S,stepKey:d,name:c,ts:Date.now(),timeoutMs:W,attempt:v,...t&&{metadata:t},diagnostics:L(g,o.errorMeta,"timeout",v)}),l({type:"step_success",workflowId:u,stepId:S,stepKey:d,name:c,description:w,ts:Date.now(),durationMs:performance.now()-h,...t&&{metadata:t}}),f&&l({type:"step_complete",workflowId:u,stepKey:f,name:c,description:w,ts:Date.now(),durationMs:performance.now()-h,result:D(void 0),...t&&{metadata:t}});return}if(z(g))throw l({type:"step_aborted",workflowId:u,stepId:S,stepKey:d,name:c,description:w,ts:Date.now(),durationMs:Y,...t&&{metadata:t}}),g;if(Ie(g)){let W=Ge(g),Le=x?.ms??W?.timeoutMs??0;if(l({type:"step_timeout",workflowId:u,stepId:S,stepKey:d,name:c,ts:Date.now(),timeoutMs:Le,attempt:v,...t&&{metadata:t},diagnostics:L(g,o.errorMeta,"timeout",v)}),v<b.attempts&&b.shouldRetry(g,v)){let ye=se(v,b);l({type:"step_retry",workflowId:u,stepId:S,stepKey:d,name:c,ts:Date.now(),attempt:v+1,maxAttempts:b.attempts,delayMs:ye,error:g,...t&&{metadata:t},diagnostics:L(g,o.errorMeta,"timeout",v,performance.now()-h)}),b.onRetry(g,v,ye),await ae(ye);continue}b.attempts>1&&l({type:"step_retries_exhausted",workflowId:u,stepId:S,stepKey:d,name:c,ts:Date.now(),durationMs:performance.now()-h,attempts:v,lastError:g,...t&&{metadata:t},diagnostics:L(g,o.errorMeta,"timeout",v,performance.now()-h)});let me=performance.now()-h;throw l({type:"step_error",workflowId:u,stepId:S,stepKey:d,name:c,description:w,ts:Date.now(),durationMs:me,error:g,...t&&{metadata:t},diagnostics:L(g,o.errorMeta,"timeout",v,me)}),f&&l({type:"step_complete",workflowId:u,stepKey:f,name:c,description:w,ts:Date.now(),durationMs:me,result:_(g,{cause:g}),meta:{origin:"throw",thrown:g},...t&&{metadata:t}}),a?.(g,c,O),I(g,{origin:"throw",thrown:g})}if(v<b.attempts&&b.shouldRetry(g,v)){let W=se(v,b);l({type:"step_retry",workflowId:u,stepId:S,stepKey:d,name:c,ts:Date.now(),attempt:v+1,maxAttempts:b.attempts,delayMs:W,error:g,...t&&{metadata:t},diagnostics:L(g,o.errorMeta,"throw",v,performance.now()-h)}),b.onRetry(g,v,W),await ae(W);continue}b.attempts>1&&!Ie(g)&&l({type:"step_retries_exhausted",workflowId:u,stepId:S,stepKey:d,name:c,ts:Date.now(),durationMs:performance.now()-h,attempts:v,lastError:g,...t&&{metadata:t},diagnostics:L(g,o.errorMeta,"throw",v,performance.now()-h)});let de=performance.now()-h,ne;try{ne=K(g)}catch(W){throw Z(W)}throw l({type:"step_error",workflowId:u,stepId:S,stepKey:d,name:c,description:w,ts:Date.now(),durationMs:de,error:ne,...t&&{metadata:t},diagnostics:L(g,o.errorMeta,"throw",v,de)}),f&&l({type:"step_complete",workflowId:u,stepKey:f,name:c,description:w,ts:Date.now(),durationMs:de,result:_(ne,{cause:g}),meta:{origin:"throw",thrown:g},...t&&{metadata:t}}),a?.(ne,c,O),I(ne,{origin:"throw",thrown:g})}}let J=X,pe=performance.now()-h,Ee=$(J.error,{origin:"result",resultCause:J.cause});throw l({type:"step_error",workflowId:u,stepId:S,stepKey:d,name:c,description:w,ts:Date.now(),durationMs:pe,error:Ee,...t&&{metadata:t},diagnostics:L(J.error,o.errorMeta,"result",b.attempts,pe)}),f&&l({type:"step_complete",workflowId:u,stepKey:f,name:c,description:w,ts:Date.now(),durationMs:pe,result:J,meta:{origin:"result",resultCause:J.cause},...t&&{metadata:t}}),a?.(Ee,c,O),I(Ee,{origin:"result",resultCause:J.cause})})();m.try=(i,y,n)=>{if(typeof i!="string"||i.length===0)throw new Error('[awaitly] step.try() requires an explicit string ID as the first argument. Example: step.try("parse", () => JSON.parse(str), { error: "PARSE_ERROR" })');let o="error"in n?()=>n.error:n.onError;if(n.retry||n.timeout)return m.retry(i,async()=>{try{return D(await y())}catch(w){return _(o(w),{cause:w})}},{attempts:n.retry?.attempts??1,...n.retry??{},key:n.key,timeout:n.timeout});let t=n.key??i,c=i,d=i,f=E;return(async()=>{let w=f?performance.now():0;E&&l({type:"step_start",workflowId:u,stepId:d,stepKey:t,name:c,ts:Date.now()});try{let R=await y(),x=performance.now()-w;return l({type:"step_success",workflowId:u,stepId:d,stepKey:t,name:c,ts:Date.now(),durationMs:x}),t&&l({type:"step_complete",workflowId:u,stepKey:t,name:c,ts:Date.now(),durationMs:x,result:D(R)}),R}catch(R){let x=o(R),S=performance.now()-w,M=$(x,{origin:"throw",thrown:R});throw l({type:"step_error",workflowId:u,stepId:d,stepKey:t,name:c,ts:Date.now(),durationMs:S,error:M}),t&&l({type:"step_complete",workflowId:u,stepKey:t,name:c,ts:Date.now(),durationMs:S,result:_(x,{cause:R}),meta:{origin:"throw",thrown:R}}),a?.(M,c,O),I(M,{origin:"throw",thrown:R})}})()},m.fromResult=(i,y,n)=>{if(typeof i!="string"||i.length===0)throw new Error('[awaitly] step.fromResult() requires an explicit string ID as the first argument. Example: step.fromResult("callProvider", () => callProvider(input), { onError: (e) => ({ type: "FAILED" }) })');let o=n.key??i,t=i,c=i,d="error"in n?()=>n.error:n.onError,f=E;return(async()=>{let w=f?performance.now():0;E&&l({type:"step_start",workflowId:u,stepId:c,stepKey:o,name:t,ts:Date.now()});let R=await y();if(R.ok){let x=performance.now()-w;return l({type:"step_success",workflowId:u,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:x}),o&&l({type:"step_complete",workflowId:u,stepKey:o,name:t,ts:Date.now(),durationMs:x,result:D(R.value)}),R.value}else{let x=d(R.error),S=performance.now()-w,M=$(x,{origin:"result",resultCause:R.error});throw l({type:"step_error",workflowId:u,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:S,error:M}),o&&l({type:"step_complete",workflowId:u,stepKey:o,name:t,ts:Date.now(),durationMs:S,result:_(x,{cause:R.error}),meta:{origin:"result",resultCause:R.error}}),a?.(M,t,O),I(M,{origin:"result",resultCause:R.error})}})()},m.fromNullable=(i,y,n,o)=>{if(typeof i!="string"||i.length===0)throw new Error('[awaitly] step.fromNullable() requires an explicit string ID as the first argument. Example: step.fromNullable("getUser", () => db.find(id), () => ({ type: "NOT_FOUND" }))');return m(i,async()=>{let t=await y();return t!=null?D(t):_(n())},o)},m.retry=(i,y,n)=>{if(typeof i!="string"||i.length===0)throw new Error('[awaitly] step.retry() requires an explicit string ID as the first argument. Example: step.retry("fetchData", () => fetchData(), { attempts: 3 })');return m(i,y,{key:n.key??i,retry:{attempts:n.attempts,backoff:n.backoff,initialDelay:n.initialDelay,maxDelay:n.maxDelay,jitter:n.jitter,shouldRetry:n.shouldRetry,onRetry:n.onRetry},timeout:n.timeout})},m.withTimeout=(i,y,n)=>{if(typeof i!="string"||i.length===0)throw new Error('[awaitly] step.withTimeout() requires an explicit string ID as the first argument. Example: step.withTimeout("slowOp", () => slowOp(), { ms: 5000 })');return m(i,y,{key:n.key??i,timeout:n})},m.sleep=(i,y,n)=>{if(typeof i!="string"||i.length===0)throw new Error('[awaitly] step.sleep() requires an explicit string ID as the first argument. Example: step.sleep("delay", "5s")');let o=typeof y=="string"?We(y):y;if(!o)throw new Error(`step.sleep: invalid duration '${y}'`);let t=o.millis,c=n?.signal;return m(i,async()=>{if(U?.aborted||c?.aborted){let d=new Error("Sleep aborted");throw d.name="AbortError",d}return new Promise((d,f)=>{let w={timeoutId:void 0},R=()=>{w.timeoutId&&clearTimeout(w.timeoutId);let x=new Error("Sleep aborted");x.name="AbortError",f(x)};U?.addEventListener("abort",R,{once:!0}),c?.addEventListener("abort",R,{once:!0}),w.timeoutId=setTimeout(()=>{U?.removeEventListener("abort",R),c?.removeEventListener("abort",R),d(D(void 0))},t)})},{key:n?.key??i,description:n?.description})},m.all=((...i)=>{if(typeof i[0]!="string")throw new TypeError("step.all(name, ...): first argument must be a string (step name). Example: step.all('Fetch data', { user: () => fetchUser(), posts: () => fetchPosts() })");let y=i[0],n=i[1];if(typeof n=="function")return q(y,n);if(n&&typeof n=="object"&&!Array.isArray(n)){let t=j(n);return G(t,{name:y})}throw new TypeError("step.all(name, ...): second argument must be a function (array form) or an object of operations (object form).")}),m.race=(i,y)=>{let n=`scope_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return(async()=>{let o=performance.now(),t=!1,c={scopeId:n,type:"race",winnerId:void 0};H.push(c);let d=()=>{if(t)return;t=!0;let f=H.findIndex(w=>w.scopeId===n);f!==-1&&H.splice(f,1),l({type:"scope_end",workflowId:u,scopeId:n,ts:Date.now(),durationMs:performance.now()-o,winnerId:c.winnerId})};l({type:"scope_start",workflowId:u,scopeId:n,scopeType:"race",name:i,ts:Date.now()});try{let f=await y();if(d(),!f.ok)throw a?.(f.error,i,O),I(f.error,{origin:"result",resultCause:f.cause});return f.value}catch(f){throw d(),f}})()},m.if=(i,y,n)=>n(),m.label=m.if,m.branch=async(i,y)=>{let{condition:n,then:o,else:t}=y;if(n())return await o();if(t)return await t()},m.arm=(i,y)=>({fn:i,errors:y}),m.forEach=async(i,y,n)=>{let o=[],t=n.maxIterations,c=0,d="run"in n,f=Symbol.asyncIterator in y?y:(async function*(){yield*y})();for await(let w of f){if(t!==void 0&&c>=t)break;let R;d?R=await n.run(w,c):R=await n.item.handler(w,c,m),o.push(R),c++}return o},m.item=i=>({__forEachItemHandler:!0,handler:i}),m.dep=(i,y)=>y,m.workflow=(i,y,n)=>m(i,y,n),m.map=async(i,y,n,o)=>{let t=o?.concurrency??y.length;return m(i,()=>t>=y.length?De(y.map((c,d)=>n(c,d))):(async()=>{let c=[];for(let d=0;d<y.length;d+=t){let f=y.slice(d,d+t),w=await De(f.map((R,x)=>n(R,d+x)));if(!w.ok)return w;c.push(...w.value)}return D(c)})(),{key:o?.key})},m.withFallback=(i,y,n)=>{if(typeof i!="string"||i.length===0)throw new Error('[awaitly] step.withFallback() requires an explicit string ID as the first argument. Example: step.withFallback("getUser", () => fetchUser(id), { fallback: () => fetchFromCache(id) })');let o=n.key??i,t=i,c=te(o),d=E;return(async()=>{let f=d?performance.now():0;E&&l({type:"step_start",workflowId:u,stepId:c,stepKey:o,name:t,ts:Date.now()});let w;try{w=await y()}catch(h){if(z(h))throw l({type:"step_aborted",workflowId:u,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:performance.now()-f}),h;let F;try{F=K(h)}catch(A){throw Z(A)}if(n.on!==void 0&&n.on!==F){let A=performance.now()-f;throw l({type:"step_error",workflowId:u,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:A,error:F}),o&&l({type:"step_complete",workflowId:u,stepKey:o,name:t,ts:Date.now(),durationMs:A,result:_(F,{cause:h}),meta:{origin:"throw",thrown:h}}),a?.(F,t,O),I(F,{origin:"throw",thrown:h})}let C;try{C=await n.fallback()}catch(A){if(z(A))throw l({type:"step_aborted",workflowId:u,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:performance.now()-f}),A;let b;try{b=K(A)}catch(J){throw Z(J)}let X=performance.now()-f;throw l({type:"step_error",workflowId:u,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:X,error:b}),o&&l({type:"step_complete",workflowId:u,stepKey:o,name:t,ts:Date.now(),durationMs:X,result:_(b,{cause:A}),meta:{origin:"throw",thrown:A}}),a?.(b,t,O),I(b,{origin:"throw",thrown:A})}if(C.ok){let A=performance.now()-f;return l({type:"step_success",workflowId:u,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:A}),o&&l({type:"step_complete",workflowId:u,stepKey:o,name:t,ts:Date.now(),durationMs:A,result:C,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(F)}}),C.value}else{let A=performance.now()-f,b=$(C.error,{origin:"result",resultCause:C.cause});throw l({type:"step_error",workflowId:u,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:A,error:b}),o&&l({type:"step_complete",workflowId:u,stepKey:o,name:t,ts:Date.now(),durationMs:A,result:C,meta:{origin:"result",resultCause:C.cause}}),a?.(b,t,O),I(b,{origin:"result",resultCause:C.cause})}}if(w.ok){let h=performance.now()-f;return l({type:"step_success",workflowId:u,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:h}),o&&l({type:"step_complete",workflowId:u,stepKey:o,name:t,ts:Date.now(),durationMs:h,result:w}),w.value}let R=w.error;if(n.on!==void 0&&n.on!==R){let h=performance.now()-f,F=$(R,{origin:"result",resultCause:w.cause});throw l({type:"step_error",workflowId:u,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:h,error:F}),o&&l({type:"step_complete",workflowId:u,stepKey:o,name:t,ts:Date.now(),durationMs:h,result:w,meta:{origin:"result",resultCause:w.cause}}),a?.(F,t,O),I(F,{origin:"result",resultCause:w.cause})}let x;try{x=await n.fallback()}catch(h){if(z(h))throw l({type:"step_aborted",workflowId:u,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:performance.now()-f}),h;let F;try{F=K(h)}catch(A){throw Z(A)}let C=performance.now()-f;throw l({type:"step_error",workflowId:u,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:C,error:F}),o&&l({type:"step_complete",workflowId:u,stepKey:o,name:t,ts:Date.now(),durationMs:C,result:_(F,{cause:h}),meta:{origin:"throw",thrown:h}}),a?.(F,t,O),I(F,{origin:"throw",thrown:h})}if(x.ok){let h=performance.now()-f;return l({type:"step_success",workflowId:u,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:h}),o&&l({type:"step_complete",workflowId:u,stepKey:o,name:t,ts:Date.now(),durationMs:h,result:x,meta:{origin:"fallback",fallbackUsed:!0,fallbackReason:String(R)}}),x.value}let S=performance.now()-f,M=$(x.error,{origin:"result",resultCause:x.cause});throw l({type:"step_error",workflowId:u,stepId:c,stepKey:o,name:t,ts:Date.now(),durationMs:S,error:M}),o&&l({type:"step_complete",workflowId:u,stepKey:o,name:t,ts:Date.now(),durationMs:S,result:x,meta:{origin:"result",resultCause:x.cause}}),a?.(M,t,O),I(M,{origin:"result",resultCause:x.cause})})()},m.withResource=(i,y)=>{if(typeof i!="string"||i.length===0)throw new Error('[awaitly] step.withResource() requires an explicit string ID as the first argument. Example: step.withResource("useDb", { acquire: () => connect(), use: (db) => query(db), release: (db) => db.close() })');let n=i,o=i,t=te(n),c=E;return(async()=>{let d=c?performance.now():0;E&&l({type:"step_start",workflowId:u,stepId:t,stepKey:n,name:o,ts:Date.now()});let f;try{f=await y.acquire()}catch(C){if(z(C))throw l({type:"step_aborted",workflowId:u,stepId:t,stepKey:n,name:o,ts:Date.now(),durationMs:performance.now()-d}),C;let A;try{A=K(C)}catch(X){throw Z(X)}let b=performance.now()-d;throw l({type:"step_error",workflowId:u,stepId:t,stepKey:n,name:o,ts:Date.now(),durationMs:b,error:A}),n&&l({type:"step_complete",workflowId:u,stepKey:n,name:o,ts:Date.now(),durationMs:b,result:_(A,{cause:C}),meta:{origin:"throw",thrown:C}}),a?.(A,o,O),I(A,{origin:"throw",thrown:C})}if(!f.ok){let C=performance.now()-d,A=$(f.error,{origin:"result",resultCause:f.cause});throw l({type:"step_error",workflowId:u,stepId:t,stepKey:n,name:o,ts:Date.now(),durationMs:C,error:A}),n&&l({type:"step_complete",workflowId:u,stepKey:n,name:o,ts:Date.now(),durationMs:C,result:f,meta:{origin:"result",resultCause:f.cause}}),a?.(A,o,O),I(A,{origin:"result",resultCause:f.cause})}let w=f.value,R,x,S=!1;try{R=await y.use(w)}catch(C){if(z(C)){try{await y.release(w)}catch(A){console.warn(`[awaitly] step.withResource("${i}"): release threw after earlyExit:`,A)}throw C}x=C,S=!0}try{await y.release(w)}catch(C){console.warn(`[awaitly] step.withResource("${i}"): release threw:`,C)}if(S){let C;try{C=K(x)}catch(b){throw Z(b)}let A=performance.now()-d;throw l({type:"step_error",workflowId:u,stepId:t,stepKey:n,name:o,ts:Date.now(),durationMs:A,error:C}),n&&l({type:"step_complete",workflowId:u,stepKey:n,name:o,ts:Date.now(),durationMs:A,result:_(C,{cause:x}),meta:{origin:"throw",thrown:x}}),a?.(C,o,O),I(C,{origin:"throw",thrown:x})}let M=R;if(M.ok){let C=performance.now()-d;return l({type:"step_success",workflowId:u,stepId:t,stepKey:n,name:o,ts:Date.now(),durationMs:C}),n&&l({type:"step_complete",workflowId:u,stepKey:n,name:o,ts:Date.now(),durationMs:C,result:M}),M.value}let h=performance.now()-d,F=$(M.error,{origin:"result",resultCause:M.cause});throw l({type:"step_error",workflowId:u,stepId:t,stepKey:n,name:o,ts:Date.now(),durationMs:h,error:F}),n&&l({type:"step_complete",workflowId:u,stepKey:n,name:o,ts:Date.now(),durationMs:h,result:M,meta:{origin:"result",resultCause:M.cause}}),a?.(F,o,O),I(F,{origin:"result",resultCause:M.cause})})()};let V=await p({step:m});if(process.env.NODE_ENV!=="production"&&V!==null&&typeof V=="object"&&"ok"in V&&typeof V.ok=="boolean"){let i=V;(i.ok===!0&&"value"in i||i.ok===!1&&"error"in i)&&console.warn(`awaitly: Workflow executor returned a Result-like object. Return raw values, not ok() or err().
|
|
2
|
-
|
|
3
|
-
Incorrect: return ok({ data });
|
|
4
|
-
Correct: return { data };
|
|
5
|
-
|
|
6
|
-
See: https://jagreehal.github.io/awaitly/guides/troubleshooting/#returning-ok-from-workflow-executor-double-wrapping`)}return D(V)}catch(m){if(Qe(m))throw m.thrown;if(z(m)){let q=m.meta.origin==="throw"?m.meta.thrown:m.meta.origin==="result"?m.meta.resultCause:void 0;return _(m.error,{cause:q})}let j=K(m);return a?.(j,"unexpected",O),_(j,{cause:m})}}fe.strict=(r,e)=>fe(r,e);async function De(r){return r.length===0?D([]):new Promise(e=>{let s=!1,p=r.length,k=new Array(r.length);for(let a=0;a<r.length;a++){let E=a;Promise.resolve(r[E]).catch(T=>_({type:"PROMISE_REJECTED",cause:T},{cause:{type:"PROMISE_REJECTION",reason:T}})).then(T=>{if(!s){if(!T.ok){s=!0,e(T);return}k[E]=T.value,p--,p===0&&e(D(k))}})}})}function tr(r,e){let s=new AbortController,p,k=!1,a;return r!==void 0&&(p=setTimeout(()=>{k=!0,s.abort({_tag:"Timeout",ms:r})},r)),e&&(e.aborted?s.abort(e.reason):(a=()=>s.abort(e.reason),e.addEventListener("abort",a,{once:!0}))),{signal:s.signal,cleanup(){p!==void 0&&clearTimeout(p),a&&e&&e.removeEventListener("abort",a)},timedOut:()=>k}}async function nr(r,e){if(e)return e(r);let s=await r.text();try{return JSON.parse(s)}catch{return s||void 0}}function or(r){let e=r.headers.get("content-type");return e!==null&&/\bjson\b/i.test(e)}async function we(r,e,s){let p=r instanceof Request?r.signal:null,k="signal"in e&&e.signal===null?null:e.signal??p,{signal:a,cleanup:E,timedOut:T}=tr(s,k);try{let P=await fetch(r,{...e,signal:a});return D(P)}catch(P){return T()?_({_tag:"FetchTimeoutError",ms:s}):a.aborted?_({_tag:"FetchAbortError",reason:a.reason??k?.reason??P}):_({_tag:"FetchNetworkError",cause:P})}finally{E()}}async function Ke(r,e){let s;try{s=await nr(r,e)}catch{s=void 0}return{_tag:"FetchHttpError",status:r.status,statusText:r.statusText,...s!==void 0?{body:s}:{}}}function Te(r){return typeof r=="number"?{attempts:r}:r}async function ke(r,e,s,p,k,a){let E=async()=>{let T=await we(r,e,s);if(!T.ok)return T;let P=T.value;if(!P.ok)return _(await Ke(P,p));try{return D(await a(P))}catch(B){return _({_tag:"FetchNetworkError",cause:B})}};return k!==void 0?le(E,Te(k)):E()}async function Re(r,e){let s=await r;return s.ok?s:s.error._tag==="FetchHttpError"?_(e(s.error)):_(s.error)}function sr(r,e){let s=async()=>{let p=await we(r,e??{},e?.timeoutMs);if(!p.ok)return p;let k=p.value;if(!k.ok){let a=await Ke(k,e?.errorBody);return _(a)}if(k.status===204)return D(null);try{if(e?.strictContentType&&!or(k)){let T=await k.text();return _({_tag:"FetchParseError",cause:new Error("Expected JSON Content-Type"),text:T})}let a=await k.text();if(a==="")return D(null);let E;try{E=JSON.parse(a)}catch(T){return _({_tag:"FetchParseError",cause:T,text:a})}if(e?.decode){let T=e.decode(E);return T.ok?D(T.value):_({_tag:"FetchDecodeError",issues:T.error.issues})}return D(E)}catch(a){return _({_tag:"FetchParseError",cause:a,text:""})}};return(async()=>{let p=e?.retry!==void 0?await le(s,Te(e.retry)):await s();return p.ok?p:p.error._tag==="FetchHttpError"&&e?.mapError?_(e.mapError(p.error)):p})()}function ar(r,e){let s=ke(r,e??{},e?.timeoutMs,e?.errorBody,e?.retry,p=>p.text());return e?.mapError?Re(s,e.mapError):s}function ur(r,e){let s=ke(r,e??{},e?.timeoutMs,e?.errorBody,e?.retry,p=>p.blob());return e?.mapError?Re(s,e.mapError):s}function ir(r,e){let s=ke(r,e??{},e?.timeoutMs,e?.errorBody,e?.retry,p=>p.arrayBuffer());return e?.mapError?Re(s,e.mapError):s}function cr(r,e){let s=()=>we(r,e??{},e?.timeoutMs);return e?.retry!==void 0?le(s,Te(e.retry)):s()}export{ir as fetchArrayBuffer,ur as fetchBlob,sr as fetchJson,cr as fetchResponse,ar as fetchText};
|
|
7
|
-
//# sourceMappingURL=fetch.js.map
|