@relkit/invocation 0.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.
Files changed (103) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/dist/abort.d.ts +9 -0
  4. package/dist/abort.d.ts.map +1 -0
  5. package/dist/abort.js +80 -0
  6. package/dist/abort.js.map +1 -0
  7. package/dist/context.d.ts +7 -0
  8. package/dist/context.d.ts.map +1 -0
  9. package/dist/context.js +39 -0
  10. package/dist/context.js.map +1 -0
  11. package/dist/contracts.d.ts +135 -0
  12. package/dist/contracts.d.ts.map +1 -0
  13. package/dist/contracts.js +14 -0
  14. package/dist/contracts.js.map +1 -0
  15. package/dist/deadline.d.ts +12 -0
  16. package/dist/deadline.d.ts.map +1 -0
  17. package/dist/deadline.js +57 -0
  18. package/dist/deadline.js.map +1 -0
  19. package/dist/dispatcher-context.d.ts +26 -0
  20. package/dist/dispatcher-context.d.ts.map +1 -0
  21. package/dist/dispatcher-context.js +90 -0
  22. package/dist/dispatcher-context.js.map +1 -0
  23. package/dist/dispatcher-scope.d.ts +4 -0
  24. package/dist/dispatcher-scope.d.ts.map +1 -0
  25. package/dist/dispatcher-scope.js +9 -0
  26. package/dist/dispatcher-scope.js.map +1 -0
  27. package/dist/dispatcher-types.d.ts +80 -0
  28. package/dist/dispatcher-types.d.ts.map +1 -0
  29. package/dist/dispatcher-types.js +8 -0
  30. package/dist/dispatcher-types.js.map +1 -0
  31. package/dist/dispatcher.d.ts +11 -0
  32. package/dist/dispatcher.d.ts.map +1 -0
  33. package/dist/dispatcher.js +12 -0
  34. package/dist/dispatcher.js.map +1 -0
  35. package/dist/error-retry.d.ts +12 -0
  36. package/dist/error-retry.d.ts.map +1 -0
  37. package/dist/error-retry.js +33 -0
  38. package/dist/error-retry.js.map +1 -0
  39. package/dist/failure-dependency.d.ts +6 -0
  40. package/dist/failure-dependency.d.ts.map +1 -0
  41. package/dist/failure-dependency.js +13 -0
  42. package/dist/failure-dependency.js.map +1 -0
  43. package/dist/failure-guards.d.ts +30 -0
  44. package/dist/failure-guards.d.ts.map +1 -0
  45. package/dist/failure-guards.js +58 -0
  46. package/dist/failure-guards.js.map +1 -0
  47. package/dist/failure-internals.d.ts +8 -0
  48. package/dist/failure-internals.d.ts.map +1 -0
  49. package/dist/failure-internals.js +20 -0
  50. package/dist/failure-internals.js.map +1 -0
  51. package/dist/failure-runtime.d.ts +30 -0
  52. package/dist/failure-runtime.d.ts.map +1 -0
  53. package/dist/failure-runtime.js +25 -0
  54. package/dist/failure-runtime.js.map +1 -0
  55. package/dist/failure-types.d.ts +89 -0
  56. package/dist/failure-types.d.ts.map +1 -0
  57. package/dist/failure-types.js +2 -0
  58. package/dist/failure-types.js.map +1 -0
  59. package/dist/failure.d.ts +18 -0
  60. package/dist/failure.d.ts.map +1 -0
  61. package/dist/failure.js +128 -0
  62. package/dist/failure.js.map +1 -0
  63. package/dist/handler-bridge.d.ts +16 -0
  64. package/dist/handler-bridge.d.ts.map +1 -0
  65. package/dist/handler-bridge.js +75 -0
  66. package/dist/handler-bridge.js.map +1 -0
  67. package/dist/identity.d.ts +22 -0
  68. package/dist/identity.d.ts.map +1 -0
  69. package/dist/identity.js +67 -0
  70. package/dist/identity.js.map +1 -0
  71. package/dist/index.d.ts +20 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +20 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/lifecycle.d.ts +39 -0
  76. package/dist/lifecycle.d.ts.map +1 -0
  77. package/dist/lifecycle.js +39 -0
  78. package/dist/lifecycle.js.map +1 -0
  79. package/dist/recursion.d.ts +31 -0
  80. package/dist/recursion.d.ts.map +1 -0
  81. package/dist/recursion.js +81 -0
  82. package/dist/recursion.js.map +1 -0
  83. package/dist/service-policy.d.ts +18 -0
  84. package/dist/service-policy.d.ts.map +1 -0
  85. package/dist/service-policy.js +113 -0
  86. package/dist/service-policy.js.map +1 -0
  87. package/dist/standalone-dispatcher.d.ts +3 -0
  88. package/dist/standalone-dispatcher.d.ts.map +1 -0
  89. package/dist/standalone-dispatcher.js +107 -0
  90. package/dist/standalone-dispatcher.js.map +1 -0
  91. package/dist/standalone-lifecycle.d.ts +20 -0
  92. package/dist/standalone-lifecycle.d.ts.map +1 -0
  93. package/dist/standalone-lifecycle.js +30 -0
  94. package/dist/standalone-lifecycle.js.map +1 -0
  95. package/dist/standalone-utils.d.ts +10 -0
  96. package/dist/standalone-utils.d.ts.map +1 -0
  97. package/dist/standalone-utils.js +52 -0
  98. package/dist/standalone-utils.js.map +1 -0
  99. package/dist/validation.d.ts +17 -0
  100. package/dist/validation.d.ts.map +1 -0
  101. package/dist/validation.js +58 -0
  102. package/dist/validation.js.map +1 -0
  103. package/package.json +41 -0
@@ -0,0 +1,80 @@
1
+ import type { MaybePromise } from "@relkit/contracts";
2
+ import type { InvocationCompletion, InvocationContext, InvocationContextOptions, InvocationIdSource, InvocationParent, InvocationRecord, InvocationRunner, InvocationTarget, InvocationSource, PublicClock, PublicLogger } from "./contracts.js";
3
+ import type { InvocationCallStack } from "./recursion.js";
4
+ import type { ServicePolicySource } from "./service-policy.js";
5
+ export declare const MANAGED_DEPENDENCY_CATEGORIES: readonly ["jobs", "events", "buckets", "cache", "agents"];
6
+ export type ManagedDependencyCategory = (typeof MANAGED_DEPENDENCY_CATEGORIES)[number];
7
+ export type ManagedDependencySources = Partial<{
8
+ readonly [Category in ManagedDependencyCategory]: Readonly<Record<string, unknown>>;
9
+ }>;
10
+ export type InvocationContextFactory<Context extends {
11
+ readonly signal: AbortSignal;
12
+ }> = (options: InvocationContextOptions) => MaybePromise<Context>;
13
+ export interface StructuredLogRecord {
14
+ readonly level: "trace" | "debug" | "info" | "warn" | "error";
15
+ readonly message: string;
16
+ readonly fields: Readonly<Record<string, unknown>>;
17
+ readonly timestamp: string;
18
+ readonly invocationId: string;
19
+ readonly traceId: string;
20
+ readonly functionId: string;
21
+ readonly source: InvocationSource;
22
+ readonly serviceId?: string;
23
+ }
24
+ export interface LocalStructuredLogger extends PublicLogger {
25
+ readonly records: readonly StructuredLogRecord[];
26
+ }
27
+ export interface InvocationDispatchOptions<Context extends {
28
+ readonly signal: AbortSignal;
29
+ } = InvocationContext> {
30
+ readonly source?: InvocationSource;
31
+ readonly parent?: InvocationParent;
32
+ readonly correlationId?: string;
33
+ readonly traceId?: string;
34
+ readonly deadlineMs?: number;
35
+ readonly timeoutMs?: number;
36
+ readonly signal?: AbortSignal;
37
+ readonly toolHooks?: InvocationValueHooks<Context>;
38
+ readonly env?: Readonly<Record<string, unknown>>;
39
+ readonly now?: () => number;
40
+ readonly time?: PublicClock;
41
+ readonly logger?: PublicLogger;
42
+ readonly clients?: ManagedDependencySources;
43
+ readonly servicePolicies?: ServicePolicySource;
44
+ readonly context?: InvocationContextFactory<Context>;
45
+ readonly effectRunner?: InvocationRunner;
46
+ readonly idSource?: InvocationIdSource;
47
+ readonly onInvocationStart?: (record: InvocationRecord) => MaybePromise<void>;
48
+ readonly onCompletion?: (completion: InvocationCompletion) => MaybePromise<void>;
49
+ readonly onRelease?: (release: {
50
+ readonly record: InvocationRecord;
51
+ readonly admitted: boolean;
52
+ }) => MaybePromise<void>;
53
+ }
54
+ export interface InvocationValueHooks<Context extends {
55
+ readonly signal: AbortSignal;
56
+ }> {
57
+ readonly onBefore?: (input: unknown, context: Context) => MaybePromise<unknown>;
58
+ readonly onAfter?: (output: unknown, context: Context) => MaybePromise<unknown>;
59
+ }
60
+ export type StandaloneDispatcherOptions<Context extends {
61
+ readonly signal: AbortSignal;
62
+ } = InvocationContext> = Omit<InvocationDispatchOptions<Context>, "source" | "parent">;
63
+ export interface InvocationDispatchRequest<Input = unknown, Output = unknown, Context extends {
64
+ readonly signal: AbortSignal;
65
+ } = InvocationContext> {
66
+ readonly target: InvocationTarget<Input, Output, Context>;
67
+ readonly input: unknown;
68
+ readonly options?: InvocationDispatchOptions<Context>;
69
+ }
70
+ export interface InvocationDispatcher {
71
+ readonly dispatch: <Input = unknown, Output = unknown, Context extends {
72
+ readonly signal: AbortSignal;
73
+ } = InvocationContext>(request: InvocationDispatchRequest<Input, Output, Context>) => Promise<Output>;
74
+ }
75
+ export interface InvocationDispatchScope {
76
+ readonly dispatcher: InvocationDispatcher;
77
+ readonly parent?: InvocationParent;
78
+ readonly chain?: InvocationCallStack;
79
+ }
80
+ //# sourceMappingURL=dispatcher-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatcher-types.d.ts","sourceRoot":"","sources":["../src/dispatcher-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export const MANAGED_DEPENDENCY_CATEGORIES = [
2
+ "jobs",
3
+ "events",
4
+ "buckets",
5
+ "cache",
6
+ "agents",
7
+ ];
8
+ //# sourceMappingURL=dispatcher-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatcher-types.js","sourceRoot":"","sources":["../src/dispatcher-types.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;CACA,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { currentInvocationScope, runInInvocationScope } from "./dispatcher-scope.js";
2
+ import type { InvocationDispatchRequest, InvocationDispatcher } from "./dispatcher-types.js";
3
+ export declare function currentInvocationDispatcher(): InvocationDispatcher | undefined;
4
+ export declare function dispatchInvocation<Input, Output, Context extends {
5
+ readonly signal: AbortSignal;
6
+ }>(request: InvocationDispatchRequest<Input, Output, Context>): Promise<Output>;
7
+ export { currentInvocationScope, runInInvocationScope };
8
+ export { createStandaloneDispatcher } from "./standalone-dispatcher.js";
9
+ export type { InvocationDispatchRequest, InvocationDispatcher, InvocationDispatchOptions, InvocationDispatchScope, InvocationValueHooks, LocalStructuredLogger, ManagedDependencyCategory, ManagedDependencySources, StandaloneDispatcherOptions, StructuredLogRecord, } from "./dispatcher-types.js";
10
+ export { MANAGED_DEPENDENCY_CATEGORIES } from "./dispatcher-types.js";
11
+ //# sourceMappingURL=dispatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,KAAK,EACV,yBAAyB,EACzB,oBAAoB,EAGrB,MAAM,uBAAuB,CAAC;AAE/B,wBAAgB,2BAA2B,IAAI,oBAAoB,GAAG,SAAS,CAE9E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,EAChG,OAAO,EAAE,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,GACzD,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,YAAY,EACV,yBAAyB,EACzB,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { createStandaloneDispatcher } from "./standalone-dispatcher.js";
2
+ import { currentInvocationScope, runInInvocationScope } from "./dispatcher-scope.js";
3
+ export function currentInvocationDispatcher() {
4
+ return currentInvocationScope()?.dispatcher;
5
+ }
6
+ export function dispatchInvocation(request) {
7
+ return (currentInvocationDispatcher() ?? createStandaloneDispatcher()).dispatch(request);
8
+ }
9
+ export { currentInvocationScope, runInInvocationScope };
10
+ export { createStandaloneDispatcher } from "./standalone-dispatcher.js";
11
+ export { MANAGED_DEPENDENCY_CATEGORIES } from "./dispatcher-types.js";
12
+ //# sourceMappingURL=dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAQrF,MAAM,UAAU,2BAA2B;IACzC,OAAO,sBAAsB,EAAE,EAAE,UAAU,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAA0D;IAE1D,OAAO,CAAC,2BAA2B,EAAE,IAAI,0BAA0B,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3F,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAaxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,12 @@
1
+ export type ErrorRetry = "never" | "later";
2
+ export interface ErrorRetryLater {
3
+ readonly kind: "later";
4
+ readonly afterMs?: number;
5
+ }
6
+ export type ErrorRetryInput = ErrorRetry | ErrorRetryLater;
7
+ export interface NormalizedErrorRetry {
8
+ readonly retry: ErrorRetry;
9
+ readonly afterMs?: number;
10
+ }
11
+ export declare function normalizeErrorRetry(value: unknown, afterMs?: unknown): NormalizedErrorRetry;
12
+ //# sourceMappingURL=error-retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-retry.d.ts","sourceRoot":"","sources":["../src/error-retry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,eAAe,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,CAY3F"}
@@ -0,0 +1,33 @@
1
+ export function normalizeErrorRetry(value, afterMs) {
2
+ if (value === undefined || value === "never") {
3
+ if (afterMs !== undefined)
4
+ throw invalidRetry();
5
+ return Object.freeze({ retry: "never" });
6
+ }
7
+ if (value === "later")
8
+ return later(afterMs);
9
+ if (!isRecord(value) || value.kind !== "later")
10
+ throw invalidRetry();
11
+ const nestedAfterMs = value.afterMs;
12
+ if (afterMs !== undefined && nestedAfterMs !== undefined && afterMs !== nestedAfterMs) {
13
+ throw invalidRetry();
14
+ }
15
+ return later(nestedAfterMs === undefined ? afterMs : nestedAfterMs);
16
+ }
17
+ function later(afterMs) {
18
+ if (afterMs === undefined)
19
+ return Object.freeze({ retry: "later" });
20
+ if (typeof afterMs !== "number" || !Number.isSafeInteger(afterMs) || afterMs < 0)
21
+ throw invalidAfterMs();
22
+ return Object.freeze({ retry: "later", afterMs });
23
+ }
24
+ function invalidRetry() {
25
+ return new TypeError('Declared error retry must be "never", "later", or { kind: "later" }.');
26
+ }
27
+ function invalidAfterMs() {
28
+ return new TypeError("Declared error retry.afterMs must be a finite non-negative integer.");
29
+ }
30
+ function isRecord(value) {
31
+ return value !== null && typeof value === "object" && !Array.isArray(value);
32
+ }
33
+ //# sourceMappingURL=error-retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-retry.js","sourceRoot":"","sources":["../src/error-retry.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,OAAiB;IACnE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAC7C,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,YAAY,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,YAAY,EAAE,CAAC;IACrE,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;IACpC,IAAI,OAAO,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;QACtF,MAAM,YAAY,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,KAAK,CAAC,OAAgB;IAC7B,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACpE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC;QAC9E,MAAM,cAAc,EAAE,CAAC;IACzB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,IAAI,SAAS,CAAC,sEAAsE,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,IAAI,SAAS,CAAC,qEAAqE,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ProviderFailure } from "./failure-types.js";
2
+ export declare function dependencyNotConfiguredFailure(cause: {
3
+ readonly category: string;
4
+ readonly dependencyName: string;
5
+ }): ProviderFailure;
6
+ //# sourceMappingURL=failure-dependency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-dependency.d.ts","sourceRoot":"","sources":["../src/failure-dependency.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,GAAG,eAAe,CAalB"}
@@ -0,0 +1,13 @@
1
+ import { makeFailure } from "./failure-runtime.js";
2
+ export function dependencyNotConfiguredFailure(cause) {
3
+ return makeFailure({
4
+ _tag: "ProviderFailure",
5
+ kind: "provider",
6
+ outcome: "provider-failure",
7
+ code: "RELKIT_DEPENDENCY_NOT_CONFIGURED",
8
+ message: `Managed dependency "${cause.category}.${cause.dependencyName}" is not configured`,
9
+ capability: cause.category,
10
+ profile: cause.dependencyName,
11
+ }, cause);
12
+ }
13
+ //# sourceMappingURL=failure-dependency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-dependency.js","sourceRoot":"","sources":["../src/failure-dependency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,MAAM,UAAU,8BAA8B,CAAC,KAG9C;IACC,OAAO,WAAW,CAChB;QACE,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,kBAAkB;QAC3B,IAAI,EAAE,kCAAkC;QACxC,OAAO,EAAE,uBAAuB,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,cAAc,qBAAqB;QAC3F,UAAU,EAAE,KAAK,CAAC,QAAQ;QAC1B,OAAO,EAAE,KAAK,CAAC,cAAc;KAC9B,EACD,KAAK,CACa,CAAC;AACvB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { type ErrorRetryInput } from "./error-retry.js";
2
+ export type DeclaredErrorLike = Error & {
3
+ readonly id: string;
4
+ readonly data: unknown;
5
+ readonly retry?: ErrorRetryInput;
6
+ readonly afterMs?: number;
7
+ readonly http?: {
8
+ readonly status: number;
9
+ };
10
+ readonly ref: {
11
+ readonly kind: unknown;
12
+ readonly id: string;
13
+ };
14
+ };
15
+ export type FunctionFailureLike = {
16
+ readonly _tag: "FunctionFailure";
17
+ readonly error: unknown;
18
+ };
19
+ export declare function isFunctionFailure(value: unknown): value is FunctionFailureLike;
20
+ export declare function isDeclaredError(value: unknown): value is DeclaredErrorLike;
21
+ export declare function isProviderError(value: unknown): boolean;
22
+ export declare function isDependencyNotConfigured(value: unknown): value is {
23
+ readonly name: "DependencyNotConfiguredError";
24
+ readonly category: string;
25
+ readonly dependencyName: string;
26
+ };
27
+ export declare function isCancellation(value: unknown): boolean;
28
+ export declare function isTimeout(value: unknown): boolean;
29
+ export declare function requiredText(value: string, label: string): string;
30
+ //# sourceMappingURL=failure-guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-guards.d.ts","sourceRoot":"","sources":["../src/failure-guards.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE7E,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,QAAQ,CAAC,GAAG,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/D,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAE9E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAW1E;AAWD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEvD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI;IAClE,QAAQ,CAAC,IAAI,EAAE,8BAA8B,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC,CAOA;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAStD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQjD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGjE"}
@@ -0,0 +1,58 @@
1
+ import { Cause } from "effect";
2
+ import { normalizeErrorRetry } from "./error-retry.js";
3
+ export function isFunctionFailure(value) {
4
+ return isRecord(value) && value._tag === "FunctionFailure" && "error" in value;
5
+ }
6
+ export function isDeclaredError(value) {
7
+ if (!(value instanceof Error) || value.name !== "DeclaredError" || !isRecord(value))
8
+ return false;
9
+ const ref = value.ref;
10
+ return (typeof value.id === "string" &&
11
+ typeof value.message === "string" &&
12
+ isValidRetry(value.retry, value.afterMs) &&
13
+ isRecord(ref) &&
14
+ ref.kind === "error" &&
15
+ ref.id === value.id);
16
+ }
17
+ function isValidRetry(value, afterMs) {
18
+ try {
19
+ normalizeErrorRetry(value, afterMs);
20
+ return true;
21
+ }
22
+ catch {
23
+ return false;
24
+ }
25
+ }
26
+ export function isProviderError(value) {
27
+ return isRecord(value) && (value._tag === "ProviderError" || value.name === "ProviderError");
28
+ }
29
+ export function isDependencyNotConfigured(value) {
30
+ return (isRecord(value) &&
31
+ value.name === "DependencyNotConfiguredError" &&
32
+ typeof value.category === "string" &&
33
+ typeof value.dependencyName === "string");
34
+ }
35
+ export function isCancellation(value) {
36
+ return (isRecord(value) &&
37
+ (value.name === "AbortError" ||
38
+ value.name === "CanceledError" ||
39
+ value.code === "ABORT_ERR" ||
40
+ value.code === "ERR_ABORTED" ||
41
+ value._tag === "Abort"));
42
+ }
43
+ export function isTimeout(value) {
44
+ return (Cause.isTimeoutError(value) ||
45
+ (isRecord(value) &&
46
+ (value.name === "TimeoutError" ||
47
+ value._tag === "TimeoutError" ||
48
+ value.code === "ETIMEDOUT")));
49
+ }
50
+ export function requiredText(value, label) {
51
+ if (value.trim().length === 0)
52
+ throw new TypeError(`${label} must be non-empty`);
53
+ return value;
54
+ }
55
+ function isRecord(value) {
56
+ return value !== null && typeof value === "object";
57
+ }
58
+ //# sourceMappingURL=failure-guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-guards.js","sourceRoot":"","sources":["../src/failure-guards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAwB,MAAM,kBAAkB,CAAC;AAgB7E,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,OAAO,IAAI,KAAK,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAClG,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACtB,OAAO,CACL,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;QAC5B,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QACjC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;QACxC,QAAQ,CAAC,GAAG,CAAC;QACb,GAAG,CAAC,IAAI,KAAK,OAAO;QACpB,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CACpB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,OAAgB;IACpD,IAAI,CAAC;QACH,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAc;IAKtD,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,KAAK,CAAC,IAAI,KAAK,8BAA8B;QAC7C,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAClC,OAAO,KAAK,CAAC,cAAc,KAAK,QAAQ,CACzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC;QACf,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY;YAC1B,KAAK,CAAC,IAAI,KAAK,eAAe;YAC9B,KAAK,CAAC,IAAI,KAAK,WAAW;YAC1B,KAAK,CAAC,IAAI,KAAK,aAAa;YAC5B,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,CACL,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;QAC3B,CAAC,QAAQ,CAAC,KAAK,CAAC;YACd,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc;gBAC5B,KAAK,CAAC,IAAI,KAAK,cAAc;gBAC7B,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,KAAa;IACvD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC;IACjF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AACrD,CAAC"}
@@ -0,0 +1,8 @@
1
+ interface FailureDetail {
2
+ readonly cause?: unknown;
3
+ readonly stack?: string;
4
+ }
5
+ export declare function rememberFailure(target: object, cause: unknown, fallbackStack: string | undefined): void;
6
+ export declare function readFailureDetail(target: object): FailureDetail | undefined;
7
+ export {};
8
+ //# sourceMappingURL=failure-internals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-internals.d.ts","sourceRoot":"","sources":["../src/failure-internals.ts"],"names":[],"mappings":"AAAA,UAAU,aAAa;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,IAAI,CAMN;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAE3E"}
@@ -0,0 +1,20 @@
1
+ const details = new WeakMap();
2
+ export function rememberFailure(target, cause, fallbackStack) {
3
+ const stack = readStack(cause) ?? fallbackStack;
4
+ details.set(target, {
5
+ ...(cause === undefined ? {} : { cause }),
6
+ ...(stack === undefined ? {} : { stack }),
7
+ });
8
+ }
9
+ export function readFailureDetail(target) {
10
+ return details.get(target);
11
+ }
12
+ function readStack(value) {
13
+ if (value === null || typeof value !== "object")
14
+ return undefined;
15
+ const property = Object.getOwnPropertyDescriptor(value, "stack");
16
+ return property && "value" in property && typeof property.value === "string"
17
+ ? property.value
18
+ : undefined;
19
+ }
20
+ //# sourceMappingURL=failure-internals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-internals.js","sourceRoot":"","sources":["../src/failure-internals.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAyB,CAAC;AAErD,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,KAAc,EACd,aAAiC;IAEjC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;QAClB,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACzC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;KAC1C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAClE,MAAM,QAAQ,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjE,OAAO,QAAQ,IAAI,OAAO,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ;QAC1E,CAAC,CAAC,QAAQ,CAAC,KAAK;QAChB,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { ErrorRetry, FailureBase, FailureKind, FailureOutcome, FailureTag } from "./failure-types.js";
2
+ interface FailureSpec extends FailureBase {
3
+ readonly id?: string;
4
+ readonly data?: unknown;
5
+ readonly retry?: ErrorRetry;
6
+ readonly afterMs?: number;
7
+ readonly status?: number;
8
+ readonly capability?: string;
9
+ readonly profile?: string;
10
+ readonly operation?: string;
11
+ }
12
+ export declare class RuntimeFailure {
13
+ readonly message: string;
14
+ readonly _tag: FailureTag;
15
+ readonly kind: FailureKind;
16
+ readonly outcome: FailureOutcome;
17
+ readonly code: string;
18
+ readonly id?: string;
19
+ readonly data?: unknown;
20
+ readonly retry?: ErrorRetry;
21
+ readonly afterMs?: number;
22
+ readonly status?: number;
23
+ readonly capability?: string;
24
+ readonly profile?: string;
25
+ readonly operation?: string;
26
+ constructor(spec: FailureSpec, cause: unknown);
27
+ }
28
+ export declare function makeFailure(spec: FailureSpec, cause: unknown): RuntimeFailure;
29
+ export {};
30
+ //# sourceMappingURL=failure-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-runtime.d.ts","sourceRoot":"","sources":["../src/failure-runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,EACX,MAAM,oBAAoB,CAAC;AAE5B,UAAU,WAAY,SAAQ,WAAW;IACvC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,cAAc;IACzB,QAAQ,CAAC,OAAO,EAAG,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAG,cAAc,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEhB,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO;CAK9C;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,GAAG,cAAc,CAE7E"}
@@ -0,0 +1,25 @@
1
+ import { rememberFailure } from "./failure-internals.js";
2
+ export class RuntimeFailure {
3
+ message;
4
+ _tag;
5
+ kind;
6
+ outcome;
7
+ code;
8
+ id;
9
+ data;
10
+ retry;
11
+ afterMs;
12
+ status;
13
+ capability;
14
+ profile;
15
+ operation;
16
+ constructor(spec, cause) {
17
+ Object.assign(this, spec);
18
+ rememberFailure(this, cause, undefined);
19
+ Object.freeze(this);
20
+ }
21
+ }
22
+ export function makeFailure(spec, cause) {
23
+ return new RuntimeFailure(spec, cause);
24
+ }
25
+ //# sourceMappingURL=failure-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-runtime.js","sourceRoot":"","sources":["../src/failure-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAoBzD,MAAM,OAAO,cAAc;IAChB,OAAO,CAAU;IACjB,IAAI,CAAc;IAClB,IAAI,CAAe;IACnB,OAAO,CAAkB;IACzB,IAAI,CAAU;IACd,EAAE,CAAU;IACZ,IAAI,CAAW;IACf,KAAK,CAAc;IACnB,OAAO,CAAU;IACjB,MAAM,CAAU;IAChB,UAAU,CAAU;IACpB,OAAO,CAAU;IACjB,SAAS,CAAU;IAE5B,YAAY,IAAiB,EAAE,KAAc;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CAAC,IAAiB,EAAE,KAAc;IAC3D,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,89 @@
1
+ import type { ErrorRetry, ErrorRetryInput } from "./error-retry.js";
2
+ export type { ErrorRetry, ErrorRetryInput } from "./error-retry.js";
3
+ export type FailureKind = "application" | "provider" | "cancellation" | "timeout" | "defect";
4
+ export type FailureOutcome = "declared-error" | "provider-failure" | "cancelled" | "timeout" | "defect";
5
+ export type FailureTag = "ApplicationFailure" | "ProviderFailure" | "Cancellation" | "Timeout" | "UnexpectedDefect";
6
+ export interface ApplicationFailureOptions {
7
+ readonly id: string;
8
+ readonly message: string;
9
+ readonly data: unknown;
10
+ readonly retry?: ErrorRetryInput;
11
+ readonly afterMs?: number;
12
+ readonly status?: number;
13
+ readonly cause?: unknown;
14
+ }
15
+ export interface ProviderFailureOptions {
16
+ readonly cause?: unknown;
17
+ readonly capability?: string;
18
+ readonly profile?: string;
19
+ readonly operation?: string;
20
+ }
21
+ export interface FailureBase {
22
+ readonly _tag: FailureTag;
23
+ readonly kind: FailureKind;
24
+ readonly outcome: FailureOutcome;
25
+ readonly code: string;
26
+ readonly message: string;
27
+ }
28
+ export interface ApplicationFailure extends FailureBase {
29
+ readonly _tag: "ApplicationFailure";
30
+ readonly kind: "application";
31
+ readonly outcome: "declared-error";
32
+ readonly id: string;
33
+ readonly data: unknown;
34
+ readonly retry: ErrorRetry;
35
+ readonly afterMs?: number;
36
+ readonly status?: number;
37
+ }
38
+ export interface ProviderFailure extends FailureBase {
39
+ readonly _tag: "ProviderFailure";
40
+ readonly kind: "provider";
41
+ readonly outcome: "provider-failure";
42
+ readonly capability?: string;
43
+ readonly profile?: string;
44
+ readonly operation?: string;
45
+ }
46
+ export interface CancellationFailure extends FailureBase {
47
+ readonly _tag: "Cancellation";
48
+ readonly kind: "cancellation";
49
+ readonly outcome: "cancelled";
50
+ }
51
+ export interface TimeoutFailure extends FailureBase {
52
+ readonly _tag: "Timeout";
53
+ readonly kind: "timeout";
54
+ readonly outcome: "timeout";
55
+ }
56
+ export interface UnexpectedDefect extends FailureBase {
57
+ readonly _tag: "UnexpectedDefect";
58
+ readonly kind: "defect";
59
+ readonly outcome: "defect";
60
+ }
61
+ export type InvocationFailure = ApplicationFailure | ProviderFailure | CancellationFailure | TimeoutFailure | UnexpectedDefect;
62
+ export interface NormalizeFailureOptions {
63
+ readonly signal?: AbortSignal;
64
+ readonly timedOut?: boolean;
65
+ readonly source?: "application" | "provider";
66
+ readonly provider?: Omit<ProviderFailureOptions, "cause">;
67
+ }
68
+ export interface PublicFailureEnvelope {
69
+ readonly kind: FailureKind;
70
+ readonly outcome: FailureOutcome;
71
+ readonly code: string;
72
+ readonly message: string;
73
+ readonly data?: import("@relkit/contracts").JsonValue;
74
+ readonly status?: number;
75
+ readonly retry?: ErrorRetry;
76
+ readonly afterMs?: number;
77
+ }
78
+ export interface RedactedFailureDetail {
79
+ readonly cause?: import("@relkit/contracts").JsonValue;
80
+ readonly stack?: string;
81
+ }
82
+ export interface FailureTelemetry extends PublicFailureEnvelope {
83
+ readonly internal?: RedactedFailureDetail;
84
+ }
85
+ export interface FailureTelemetryOptions {
86
+ readonly mode?: "development" | "test" | "production";
87
+ readonly redact?: (value: unknown) => import("@relkit/contracts").JsonValue;
88
+ }
89
+ //# sourceMappingURL=failure-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-types.d.ts","sourceRoot":"","sources":["../src/failure-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=failure-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-types.js","sourceRoot":"","sources":["../src/failure-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import type { ApplicationFailure, ApplicationFailureOptions, CancellationFailure, InvocationFailure, NormalizeFailureOptions, ProviderFailure, ProviderFailureOptions, PublicFailureEnvelope, TimeoutFailure, UnexpectedDefect } from "./failure-types.js";
2
+ export type * from "./failure-types.js";
3
+ export declare function applicationFailure(options: ApplicationFailureOptions): ApplicationFailure;
4
+ export declare function providerFailure(cause: unknown, options?: Omit<ProviderFailureOptions, "cause">): ProviderFailure;
5
+ export declare const cancellationFailure: (cause?: unknown) => CancellationFailure;
6
+ export declare const timeoutFailure: (cause?: unknown) => TimeoutFailure;
7
+ export declare const unexpectedDefect: (cause?: unknown, options?: {
8
+ readonly code?: string;
9
+ readonly message?: string;
10
+ }) => UnexpectedDefect;
11
+ export declare const defectFailure: (cause?: unknown, options?: {
12
+ readonly code?: string;
13
+ readonly message?: string;
14
+ }) => UnexpectedDefect;
15
+ export declare function normalizeFailure(value: unknown, options?: NormalizeFailureOptions): InvocationFailure;
16
+ export declare function isInvocationFailure(value: unknown): value is InvocationFailure;
17
+ export declare function toPublicEnvelope(value: unknown): PublicFailureEnvelope;
18
+ //# sourceMappingURL=failure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure.d.ts","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EAQnB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EAErB,cAAc,EACd,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,mBAAmB,oBAAoB,CAAC;AACxC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,kBAAkB,CAiBzF;AACD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAM,GAClD,eAAe,CAYjB;AACD,eAAO,MAAM,mBAAmB,GAAI,QAAQ,OAAO,KAAG,mBAU5B,CAAC;AAE3B,eAAO,MAAM,cAAc,GAAI,QAAQ,OAAO,KAAG,cAU5B,CAAC;AAEtB,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,OAAO,EACf,UAAU;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KAC9D,gBAUoB,CAAC;AAExB,eAAO,MAAM,aAAa,WAdhB,OAAO,YACL;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KAC9D,gBAY0C,CAAC;AAE9C,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,uBAA4B,GACpC,iBAAiB,CAgBnB;AAkCD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAE9E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,CAiBtE"}