@outfitter/contracts 0.4.2 → 0.5.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/actions.d.ts +8 -3
- package/dist/assert/index.d.ts +7 -3
- package/dist/assert/index.js +32 -1
- package/dist/context.d.ts +8 -3
- package/dist/context.js +1 -1
- package/dist/envelope.d.ts +6 -2
- package/dist/envelope.js +5 -6
- package/dist/errors.d.ts +6 -2
- package/dist/errors.js +7 -1
- package/dist/from-fetch.d.ts +7 -0
- package/dist/from-fetch.js +110 -0
- package/dist/handler.d.ts +7 -2
- package/dist/hints.d.ts +2 -0
- package/dist/hints.js +1 -0
- package/dist/index.d.ts +24 -13
- package/dist/index.js +5 -3
- package/dist/internal/error-base.d.ts +2 -0
- package/dist/internal/error-base.js +31 -0
- package/dist/internal/error-operational.d.ts +3 -0
- package/dist/internal/error-operational.js +125 -0
- package/dist/internal/error-serialization.d.ts +7 -0
- package/dist/{shared/@outfitter/contracts-5k6q4n48.js → internal/error-serialization.js} +28 -67
- package/dist/internal/error-taxonomy.d.ts +2 -0
- package/dist/internal/error-taxonomy.js +21 -0
- package/dist/internal/error-validation.d.ts +3 -0
- package/dist/internal/error-validation.js +121 -0
- package/dist/internal/safe-json.d.ts +7 -0
- package/dist/internal/safe-json.js +66 -0
- package/dist/internal/schema-converters.d.ts +26 -0
- package/dist/internal/schema-converters.js +12 -0
- package/dist/internal/schema-primitives.d.ts +10 -0
- package/dist/internal/schema-primitives.js +9 -0
- package/dist/internal/schema-types.d.ts +2 -0
- package/dist/internal/schema-types.js +9 -0
- package/dist/recovery.d.ts +6 -2
- package/dist/resilience.d.ts +6 -2
- package/dist/resilience.js +6 -2
- package/dist/schema.d.ts +2 -1
- package/dist/schema.js +15 -187
- package/dist/serialization.d.ts +8 -2
- package/dist/serialization.js +1 -3
- package/dist/shared/@outfitter/{contracts-k71jqd1m.d.ts → contracts-10p5q75w.d.ts} +1 -1
- package/dist/shared/@outfitter/contracts-1zzcpfyg.d.ts +40 -0
- package/dist/shared/@outfitter/contracts-3f5k5tg5.d.ts +28 -0
- package/dist/shared/@outfitter/contracts-3qmyq81n.d.ts +78 -0
- package/dist/shared/@outfitter/contracts-3re9d4bp.js +114 -0
- package/dist/shared/@outfitter/contracts-735ecmbq.d.ts +107 -0
- package/dist/shared/@outfitter/contracts-7a0xmwbg.d.ts +11 -0
- package/dist/shared/@outfitter/contracts-8cmkh2db.d.ts +31 -0
- package/dist/shared/@outfitter/{contracts-agmt8915.js → contracts-c3qfce25.js} +3 -0
- package/dist/shared/@outfitter/{contracts-1waabxbk.d.ts → contracts-drwd9ywk.d.ts} +4 -1
- package/dist/shared/@outfitter/contracts-hgh47193.js +46 -0
- package/dist/shared/@outfitter/contracts-hrepwwne.js +62 -0
- package/dist/shared/@outfitter/contracts-jtn6b927.js +18 -0
- package/dist/shared/@outfitter/contracts-jtt6dnmg.js +2 -0
- package/dist/shared/@outfitter/contracts-jyhqr766.js +25 -0
- package/dist/shared/@outfitter/contracts-mehpmvwp.d.ts +164 -0
- package/dist/shared/@outfitter/contracts-msxdg52h.d.ts +125 -0
- package/dist/shared/@outfitter/{contracts-95cc3y06.d.ts → contracts-mt027fqj.d.ts} +2 -1
- package/dist/shared/@outfitter/contracts-njb2art4.d.ts +174 -0
- package/dist/shared/@outfitter/contracts-p77yjs4g.d.ts +46 -0
- package/dist/shared/@outfitter/contracts-qpbv29bg.d.ts +59 -0
- package/dist/shared/@outfitter/contracts-sawwfgb5.js +111 -0
- package/dist/shared/@outfitter/{contracts-e4m948m7.d.ts → contracts-t4txv24h.d.ts} +2 -1
- package/dist/shared/@outfitter/contracts-vbgt9rfn.d.ts +74 -0
- package/dist/shared/@outfitter/{contracts-56pcsavx.d.ts → contracts-vhajx4gg.d.ts} +8 -2
- package/dist/shared/@outfitter/contracts-vhr2ep6b.js +3 -0
- package/dist/shared/@outfitter/contracts-w7nvcwrp.d.ts +44 -0
- package/dist/shared/@outfitter/contracts-x0ppyt7e.d.ts +76 -0
- package/dist/shared/@outfitter/{contracts-0akf2sm6.d.ts → contracts-zma4mscd.d.ts} +16 -1
- package/dist/shared/@outfitter/contracts-zsgxsa91.d.ts +84 -0
- package/dist/stream.d.ts +2 -0
- package/dist/stream.js +1 -0
- package/dist/validation.d.ts +7 -3
- package/dist/validation.js +8 -36
- package/dist/wrap-error.d.ts +7 -0
- package/dist/wrap-error.js +71 -0
- package/package.json +41 -17
- package/dist/shared/@outfitter/contracts-31penhwa.d.ts +0 -81
- package/dist/shared/@outfitter/contracts-3gswmhb1.d.ts +0 -446
- package/dist/shared/@outfitter/contracts-9wtm5nsw.d.ts +0 -42
- package/dist/shared/@outfitter/contracts-mmg0npfk.d.ts +0 -30
- package/dist/shared/@outfitter/contracts-phjhz5q3.js +0 -293
- package/dist/shared/@outfitter/contracts-t79engf9.d.ts +0 -60
package/dist/actions.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import { ACTION_SURFACES, ActionApiSpec, ActionCliInputContext, ActionCliOption, ActionCliSpec, ActionMcpSpec, ActionRegistry, ActionSpec, ActionSurface, ActionTrpcSpec, AnyActionSpec, DEFAULT_REGISTRY_SURFACES, HttpMethod, createActionRegistry, defineAction } from "./shared/@outfitter/contracts-
|
|
2
|
-
import "./shared/@outfitter/contracts-
|
|
3
|
-
import "./shared/@outfitter/contracts-
|
|
1
|
+
import { ACTION_SURFACES, ActionApiSpec, ActionCliInputContext, ActionCliOption, ActionCliSpec, ActionMcpSpec, ActionRegistry, ActionSpec, ActionSurface, ActionTrpcSpec, AnyActionSpec, DEFAULT_REGISTRY_SURFACES, HttpMethod, createActionRegistry, defineAction } from "./shared/@outfitter/contracts-vhajx4gg.js";
|
|
2
|
+
import "./shared/@outfitter/contracts-zma4mscd.js";
|
|
3
|
+
import "./shared/@outfitter/contracts-msxdg52h.js";
|
|
4
|
+
import "./shared/@outfitter/contracts-7a0xmwbg.js";
|
|
5
|
+
import "./shared/@outfitter/contracts-735ecmbq.js";
|
|
6
|
+
import "./shared/@outfitter/contracts-mehpmvwp.js";
|
|
7
|
+
import "./shared/@outfitter/contracts-qpbv29bg.js";
|
|
8
|
+
import "./shared/@outfitter/contracts-njb2art4.js";
|
|
4
9
|
import "./shared/@outfitter/contracts-rwzqy9rn.js";
|
|
5
10
|
export { defineAction, createActionRegistry, HttpMethod, DEFAULT_REGISTRY_SURFACES, AnyActionSpec, ActionTrpcSpec, ActionSurface, ActionSpec, ActionRegistry, ActionMcpSpec, ActionCliSpec, ActionCliOption, ActionCliInputContext, ActionApiSpec, ACTION_SURFACES };
|
package/dist/assert/index.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
import { NonEmptyArray, assertDefined, assertMatches, assertNonEmpty, isNonEmptyArray } from "../shared/@outfitter/contracts-
|
|
2
|
-
import "../shared/@outfitter/contracts-
|
|
3
|
-
|
|
1
|
+
import { NonEmptyArray, assertDefined, assertMatches, assertNonEmpty, expectErr, expectOk, isNonEmptyArray } from "../shared/@outfitter/contracts-3qmyq81n.js";
|
|
2
|
+
import "../shared/@outfitter/contracts-7a0xmwbg.js";
|
|
3
|
+
import "../shared/@outfitter/contracts-735ecmbq.js";
|
|
4
|
+
import "../shared/@outfitter/contracts-mehpmvwp.js";
|
|
5
|
+
import "../shared/@outfitter/contracts-qpbv29bg.js";
|
|
6
|
+
import "../shared/@outfitter/contracts-njb2art4.js";
|
|
7
|
+
export { isNonEmptyArray, expectOk, expectErr, assertNonEmpty, assertMatches, assertDefined, NonEmptyArray };
|
package/dist/assert/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
AssertionError
|
|
4
|
-
} from "../shared/@outfitter/contracts-
|
|
4
|
+
} from "../shared/@outfitter/contracts-vhr2ep6b.js";
|
|
5
5
|
|
|
6
6
|
// packages/contracts/src/assert/index.ts
|
|
7
7
|
import { Result } from "better-result";
|
|
@@ -28,8 +28,39 @@ function assertMatches(value, predicate, message) {
|
|
|
28
28
|
}
|
|
29
29
|
return Result.ok(value);
|
|
30
30
|
}
|
|
31
|
+
var formatValue = (value) => {
|
|
32
|
+
if (value instanceof Error) {
|
|
33
|
+
return value.message;
|
|
34
|
+
}
|
|
35
|
+
if (typeof value === "string") {
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
return JSON.stringify(value);
|
|
40
|
+
} catch {
|
|
41
|
+
return String(value);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
var expectOk = (result, message) => {
|
|
45
|
+
if (result.isOk()) {
|
|
46
|
+
return result.value;
|
|
47
|
+
}
|
|
48
|
+
const errorDetail = formatValue(result.error);
|
|
49
|
+
const prefix = message ? `${message}: ` : "";
|
|
50
|
+
throw new Error(`${prefix}Expected Ok, got Err: ${errorDetail}`);
|
|
51
|
+
};
|
|
52
|
+
var expectErr = (result, message) => {
|
|
53
|
+
if (result.isErr()) {
|
|
54
|
+
return result.error;
|
|
55
|
+
}
|
|
56
|
+
const valueDetail = formatValue(result.value);
|
|
57
|
+
const prefix = message ? `${message}: ` : "";
|
|
58
|
+
throw new Error(`${prefix}Expected Err, got Ok: ${valueDetail}`);
|
|
59
|
+
};
|
|
31
60
|
export {
|
|
32
61
|
isNonEmptyArray,
|
|
62
|
+
expectOk,
|
|
63
|
+
expectErr,
|
|
33
64
|
assertNonEmpty,
|
|
34
65
|
assertMatches,
|
|
35
66
|
assertDefined
|
package/dist/context.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import { CreateContextOptions, createContext, generateRequestId } from "./shared/@outfitter/contracts-
|
|
2
|
-
import "./shared/@outfitter/contracts-
|
|
3
|
-
import "./shared/@outfitter/contracts-
|
|
1
|
+
import { CreateContextOptions, createContext, generateRequestId } from "./shared/@outfitter/contracts-drwd9ywk.js";
|
|
2
|
+
import "./shared/@outfitter/contracts-zma4mscd.js";
|
|
3
|
+
import "./shared/@outfitter/contracts-msxdg52h.js";
|
|
4
|
+
import "./shared/@outfitter/contracts-7a0xmwbg.js";
|
|
5
|
+
import "./shared/@outfitter/contracts-735ecmbq.js";
|
|
6
|
+
import "./shared/@outfitter/contracts-mehpmvwp.js";
|
|
7
|
+
import "./shared/@outfitter/contracts-qpbv29bg.js";
|
|
8
|
+
import "./shared/@outfitter/contracts-njb2art4.js";
|
|
4
9
|
import "./shared/@outfitter/contracts-rwzqy9rn.js";
|
|
5
10
|
export { generateRequestId, createContext, CreateContextOptions };
|
package/dist/context.js
CHANGED
package/dist/envelope.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
import { Envelope, EnvelopeMeta, ErrorEnvelope, HttpResponse, PaginationMeta, SuccessEnvelope, toEnvelope, toHttpResponse } from "./shared/@outfitter/contracts-
|
|
2
|
-
import "./shared/@outfitter/contracts-
|
|
1
|
+
import { Envelope, EnvelopeMeta, ErrorEnvelope, HttpResponse, PaginationMeta, SuccessEnvelope, toEnvelope, toHttpResponse } from "./shared/@outfitter/contracts-t4txv24h.js";
|
|
2
|
+
import "./shared/@outfitter/contracts-7a0xmwbg.js";
|
|
3
|
+
import "./shared/@outfitter/contracts-735ecmbq.js";
|
|
4
|
+
import "./shared/@outfitter/contracts-mehpmvwp.js";
|
|
5
|
+
import "./shared/@outfitter/contracts-qpbv29bg.js";
|
|
6
|
+
import "./shared/@outfitter/contracts-njb2art4.js";
|
|
3
7
|
export { toHttpResponse, toEnvelope, SuccessEnvelope, PaginationMeta, HttpResponse, ErrorEnvelope, EnvelopeMeta, Envelope };
|
package/dist/envelope.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import {
|
|
3
|
-
serializeError
|
|
4
|
-
} from "./shared/@outfitter/contracts-5k6q4n48.js";
|
|
5
2
|
import {
|
|
6
3
|
generateRequestId
|
|
7
|
-
} from "./shared/@outfitter/contracts-
|
|
4
|
+
} from "./shared/@outfitter/contracts-c3qfce25.js";
|
|
5
|
+
import {
|
|
6
|
+
serializeError
|
|
7
|
+
} from "./shared/@outfitter/contracts-jtt6dnmg.js";
|
|
8
8
|
import {
|
|
9
9
|
statusCodeMap
|
|
10
|
-
} from "./shared/@outfitter/contracts-
|
|
11
|
-
import"./shared/@outfitter/contracts-s15x2rs4.js";
|
|
10
|
+
} from "./shared/@outfitter/contracts-vhr2ep6b.js";
|
|
12
11
|
|
|
13
12
|
// packages/contracts/src/envelope.ts
|
|
14
13
|
function buildMeta(overrides) {
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { AnyKitError, OutfitterError } from "./shared/@outfitter/contracts-7a0xmwbg.js";
|
|
2
|
+
import { AuthError, CancelledError, InternalError, NetworkError, PermissionError, RateLimitError, TimeoutError } from "./shared/@outfitter/contracts-735ecmbq.js";
|
|
3
|
+
import { AlreadyExistsError, AmbiguousError, AssertionError, ConflictError, NotFoundError, ValidationError } from "./shared/@outfitter/contracts-mehpmvwp.js";
|
|
4
|
+
import "./shared/@outfitter/contracts-qpbv29bg.js";
|
|
5
|
+
import { ERROR_CODES, ErrorCategory, ErrorCategoryMeta, ErrorCode, KitErrorProps, SerializedError, errorCategoryMeta, exitCodeMap, getExitCode, getStatusCode, jsonRpcCodeMap, retryableMap, statusCodeMap } from "./shared/@outfitter/contracts-njb2art4.js";
|
|
6
|
+
export { statusCodeMap, retryableMap, jsonRpcCodeMap, getStatusCode, getExitCode, exitCodeMap, errorCategoryMeta, ValidationError, TimeoutError, SerializedError, RateLimitError, PermissionError, OutfitterError, NotFoundError, NetworkError, KitErrorProps, InternalError, ErrorCode, ErrorCategoryMeta, ErrorCategory, ERROR_CODES, ConflictError, CancelledError, AuthError, AssertionError, AnyKitError, AmbiguousError, AlreadyExistsError };
|
package/dist/errors.js
CHANGED
|
@@ -14,16 +14,22 @@ import {
|
|
|
14
14
|
RateLimitError,
|
|
15
15
|
TimeoutError,
|
|
16
16
|
ValidationError,
|
|
17
|
+
errorCategoryMeta,
|
|
17
18
|
exitCodeMap,
|
|
18
19
|
getExitCode,
|
|
19
20
|
getStatusCode,
|
|
21
|
+
jsonRpcCodeMap,
|
|
22
|
+
retryableMap,
|
|
20
23
|
statusCodeMap
|
|
21
|
-
} from "./shared/@outfitter/contracts-
|
|
24
|
+
} from "./shared/@outfitter/contracts-vhr2ep6b.js";
|
|
22
25
|
export {
|
|
23
26
|
statusCodeMap,
|
|
27
|
+
retryableMap,
|
|
28
|
+
jsonRpcCodeMap,
|
|
24
29
|
getStatusCode,
|
|
25
30
|
getExitCode,
|
|
26
31
|
exitCodeMap,
|
|
32
|
+
errorCategoryMeta,
|
|
27
33
|
ValidationError,
|
|
28
34
|
TimeoutError,
|
|
29
35
|
RateLimitError,
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { fromFetch } from "./shared/@outfitter/contracts-3f5k5tg5.js";
|
|
2
|
+
import "./shared/@outfitter/contracts-7a0xmwbg.js";
|
|
3
|
+
import "./shared/@outfitter/contracts-735ecmbq.js";
|
|
4
|
+
import "./shared/@outfitter/contracts-mehpmvwp.js";
|
|
5
|
+
import "./shared/@outfitter/contracts-qpbv29bg.js";
|
|
6
|
+
import "./shared/@outfitter/contracts-njb2art4.js";
|
|
7
|
+
export { fromFetch };
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
AuthError,
|
|
4
|
+
ConflictError,
|
|
5
|
+
InternalError,
|
|
6
|
+
NetworkError,
|
|
7
|
+
NotFoundError,
|
|
8
|
+
PermissionError,
|
|
9
|
+
RateLimitError,
|
|
10
|
+
TimeoutError,
|
|
11
|
+
ValidationError,
|
|
12
|
+
statusCodeMap
|
|
13
|
+
} from "./shared/@outfitter/contracts-vhr2ep6b.js";
|
|
14
|
+
|
|
15
|
+
// packages/contracts/src/from-fetch.ts
|
|
16
|
+
import { Result } from "better-result";
|
|
17
|
+
var CANONICAL_FETCH_ERROR_CATEGORIES = [
|
|
18
|
+
"auth",
|
|
19
|
+
"permission",
|
|
20
|
+
"not_found",
|
|
21
|
+
"conflict",
|
|
22
|
+
"rate_limit",
|
|
23
|
+
"network",
|
|
24
|
+
"timeout"
|
|
25
|
+
];
|
|
26
|
+
var HTTP_STATUS_ALIASES = {
|
|
27
|
+
408: "timeout",
|
|
28
|
+
503: "network"
|
|
29
|
+
};
|
|
30
|
+
var httpStatusToCategory = {
|
|
31
|
+
...Object.fromEntries(CANONICAL_FETCH_ERROR_CATEGORIES.map((category) => [
|
|
32
|
+
statusCodeMap[category],
|
|
33
|
+
category
|
|
34
|
+
])),
|
|
35
|
+
...HTTP_STATUS_ALIASES
|
|
36
|
+
};
|
|
37
|
+
var UNKNOWN_HTTP_TIMEOUT_MS = -1;
|
|
38
|
+
function createErrorForCategory(category, status, statusText, retryAfterSeconds) {
|
|
39
|
+
const message = `HTTP ${status}${statusText ? `: ${statusText}` : ""}`;
|
|
40
|
+
switch (category) {
|
|
41
|
+
case "auth":
|
|
42
|
+
return AuthError.create(message);
|
|
43
|
+
case "permission":
|
|
44
|
+
return PermissionError.create(message);
|
|
45
|
+
case "not_found":
|
|
46
|
+
return new NotFoundError({
|
|
47
|
+
message,
|
|
48
|
+
resourceType: "resource",
|
|
49
|
+
resourceId: `HTTP ${status}`,
|
|
50
|
+
...statusText ? { context: { statusText } } : {}
|
|
51
|
+
});
|
|
52
|
+
case "timeout":
|
|
53
|
+
return new TimeoutError({
|
|
54
|
+
message,
|
|
55
|
+
operation: "HTTP request",
|
|
56
|
+
timeoutMs: UNKNOWN_HTTP_TIMEOUT_MS
|
|
57
|
+
});
|
|
58
|
+
case "rate_limit":
|
|
59
|
+
return RateLimitError.create(message, retryAfterSeconds);
|
|
60
|
+
case "network":
|
|
61
|
+
return NetworkError.create(message);
|
|
62
|
+
case "conflict":
|
|
63
|
+
return ConflictError.create(message);
|
|
64
|
+
case "validation":
|
|
65
|
+
return ValidationError.fromMessage(message);
|
|
66
|
+
case "internal":
|
|
67
|
+
return InternalError.create(message);
|
|
68
|
+
case "cancelled":
|
|
69
|
+
return InternalError.create(message);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function parseRetryAfterSeconds(retryAfter) {
|
|
73
|
+
if (retryAfter == null)
|
|
74
|
+
return;
|
|
75
|
+
const trimmed = retryAfter.trim();
|
|
76
|
+
if (!trimmed)
|
|
77
|
+
return;
|
|
78
|
+
const delta = Number(trimmed);
|
|
79
|
+
if (Number.isFinite(delta) && delta >= 0) {
|
|
80
|
+
return Math.floor(delta);
|
|
81
|
+
}
|
|
82
|
+
const dateMs = Date.parse(trimmed);
|
|
83
|
+
if (Number.isNaN(dateMs)) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const secondsUntilDate = Math.ceil((dateMs - Date.now()) / 1000);
|
|
87
|
+
return Math.max(0, secondsUntilDate);
|
|
88
|
+
}
|
|
89
|
+
function fromFetch(response) {
|
|
90
|
+
const { status, statusText } = response;
|
|
91
|
+
const rateLimitStatus = statusCodeMap.rate_limit;
|
|
92
|
+
const retryAfterSeconds = status === rateLimitStatus ? parseRetryAfterSeconds(response.headers.get("Retry-After")) : undefined;
|
|
93
|
+
if (status >= 200 && status < 300) {
|
|
94
|
+
return Result.ok(response);
|
|
95
|
+
}
|
|
96
|
+
const category = httpStatusToCategory[status];
|
|
97
|
+
if (category != null) {
|
|
98
|
+
return Result.err(createErrorForCategory(category, status, statusText, retryAfterSeconds));
|
|
99
|
+
}
|
|
100
|
+
if (status >= 400 && status < 500) {
|
|
101
|
+
return Result.err(createErrorForCategory("validation", status, statusText, retryAfterSeconds));
|
|
102
|
+
}
|
|
103
|
+
if (status >= 500 && status < 600) {
|
|
104
|
+
return Result.err(createErrorForCategory("internal", status, statusText, retryAfterSeconds));
|
|
105
|
+
}
|
|
106
|
+
return Result.err(createErrorForCategory("internal", status, statusText, retryAfterSeconds));
|
|
107
|
+
}
|
|
108
|
+
export {
|
|
109
|
+
fromFetch
|
|
110
|
+
};
|
package/dist/handler.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import { Handler, HandlerContext, ResolvedConfig, SyncHandler } from "./shared/@outfitter/contracts-
|
|
2
|
-
import "./shared/@outfitter/contracts-
|
|
1
|
+
import { Handler, HandlerContext, ResolvedConfig, SyncHandler } from "./shared/@outfitter/contracts-zma4mscd.js";
|
|
2
|
+
import "./shared/@outfitter/contracts-msxdg52h.js";
|
|
3
|
+
import "./shared/@outfitter/contracts-7a0xmwbg.js";
|
|
4
|
+
import "./shared/@outfitter/contracts-735ecmbq.js";
|
|
5
|
+
import "./shared/@outfitter/contracts-mehpmvwp.js";
|
|
6
|
+
import "./shared/@outfitter/contracts-qpbv29bg.js";
|
|
7
|
+
import "./shared/@outfitter/contracts-njb2art4.js";
|
|
3
8
|
import { Logger } from "./shared/@outfitter/contracts-rwzqy9rn.js";
|
|
4
9
|
export { SyncHandler, ResolvedConfig, Logger, HandlerContext, Handler };
|
package/dist/hints.d.ts
ADDED
package/dist/hints.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// @bun
|
package/dist/index.d.ts
CHANGED
|
@@ -1,20 +1,31 @@
|
|
|
1
|
+
import { NonEmptyArray, assertDefined, assertMatches, assertNonEmpty, expectErr, expectOk, isNonEmptyArray } from "./shared/@outfitter/contracts-3qmyq81n.js";
|
|
1
2
|
import "./shared/@outfitter/contracts-qaccq0gf.js";
|
|
2
3
|
import { combine2, combine3, expect, orElse, unwrapOrElse } from "./shared/@outfitter/contracts-ar0etwtx.js";
|
|
3
|
-
import {
|
|
4
|
+
import { ActionHint, CLIHint, MCPHint } from "./shared/@outfitter/contracts-vbgt9rfn.js";
|
|
5
|
+
import { CreateContextOptions, createContext, generateRequestId } from "./shared/@outfitter/contracts-drwd9ywk.js";
|
|
6
|
+
import { ErrorMapper, composeMappers, extractMessage, isOutfitterError, wrapError } from "./shared/@outfitter/contracts-zsgxsa91.js";
|
|
7
|
+
import { DEFAULT_PATTERNS, DEFAULT_SENSITIVE_KEYS, RedactionCallback, RedactionEvent, Redactor, RedactorConfig, createRedactor } from "./shared/@outfitter/contracts-9yd4vrjg.js";
|
|
8
|
+
import { ACTION_SURFACES, ActionApiSpec, ActionCliInputContext, ActionCliOption, ActionCliSpec, ActionMcpSpec, ActionRegistry, ActionSpec, ActionSurface, ActionTrpcSpec, AnyActionSpec, DEFAULT_REGISTRY_SURFACES, HttpMethod, createActionRegistry, defineAction } from "./shared/@outfitter/contracts-vhajx4gg.js";
|
|
9
|
+
import { Handler, HandlerContext, ResolvedConfig, SyncHandler } from "./shared/@outfitter/contracts-zma4mscd.js";
|
|
4
10
|
import { ACTION_CAPABILITIES, ActionCapability, CAPABILITY_SURFACES, CapabilitySurface, DEFAULT_ACTION_SURFACES, capability, capabilityAll, getActionsForSurface } from "./shared/@outfitter/contracts-y8f0m1ze.js";
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
11
|
+
import "./shared/@outfitter/contracts-f6fnz6h9.js";
|
|
12
|
+
import { SerializeErrorOptions, deserializeError, serializeError } from "./shared/@outfitter/contracts-p77yjs4g.js";
|
|
13
|
+
import { safeParse, safeStringify } from "./shared/@outfitter/contracts-1zzcpfyg.js";
|
|
14
|
+
import { zodToJsonSchema } from "./shared/@outfitter/contracts-8cmkh2db.js";
|
|
15
|
+
import { JsonSchema } from "./shared/@outfitter/contracts-w7nvcwrp.js";
|
|
16
|
+
import { Envelope, EnvelopeMeta, ErrorEnvelope, HttpResponse, PaginationMeta, SuccessEnvelope, toEnvelope, toHttpResponse } from "./shared/@outfitter/contracts-t4txv24h.js";
|
|
10
17
|
import { AdapterAuthError, AuthAdapter, CacheAdapter, CacheError, IndexAdapter, IndexError, IndexStats, SearchOptions, SearchResult, StorageAdapter, StorageError } from "./shared/@outfitter/contracts-c2cfj172.js";
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
18
|
+
import { ProgressCallback, StreamEvent, StreamProgressEvent, StreamStartEvent, StreamStepEvent } from "./shared/@outfitter/contracts-msxdg52h.js";
|
|
19
|
+
import { BackoffOptions, getBackoffDelay, isRecoverable, isRetryable, shouldRetry } from "./shared/@outfitter/contracts-10p5q75w.js";
|
|
20
|
+
import { fromFetch } from "./shared/@outfitter/contracts-3f5k5tg5.js";
|
|
21
|
+
import { RetryOptions, TimeoutOptions, retry, withTimeout } from "./shared/@outfitter/contracts-mt027fqj.js";
|
|
22
|
+
import { createValidator, formatZodIssues, parseInput, validateInput } from "./shared/@outfitter/contracts-x0ppyt7e.js";
|
|
23
|
+
import { AnyKitError, OutfitterError } from "./shared/@outfitter/contracts-7a0xmwbg.js";
|
|
24
|
+
import { AuthError, CancelledError, InternalError, NetworkError, PermissionError, RateLimitError, TimeoutError } from "./shared/@outfitter/contracts-735ecmbq.js";
|
|
25
|
+
import { AlreadyExistsError, AmbiguousError, AssertionError, ConflictError, NotFoundError, ValidationError } from "./shared/@outfitter/contracts-mehpmvwp.js";
|
|
26
|
+
import "./shared/@outfitter/contracts-qpbv29bg.js";
|
|
27
|
+
import { ERROR_CODES, ErrorCategory, ErrorCategoryMeta, ErrorCode, KitErrorProps, SerializedError, errorCategoryMeta, exitCodeMap, getExitCode, getStatusCode, jsonRpcCodeMap, retryableMap, statusCodeMap } from "./shared/@outfitter/contracts-njb2art4.js";
|
|
16
28
|
import { LogLevel, LogMetadata, LogMethod, Logger, LoggerAdapter, LoggerFactory, LoggerFactoryConfig, createLoggerFactory } from "./shared/@outfitter/contracts-rwzqy9rn.js";
|
|
17
|
-
import { DEFAULT_PATTERNS, DEFAULT_SENSITIVE_KEYS, RedactionCallback, RedactionEvent, Redactor, RedactorConfig, createRedactor } from "./shared/@outfitter/contracts-9yd4vrjg.js";
|
|
18
29
|
import { TaggedErrorClass } from "better-result";
|
|
19
30
|
import { Result, TaggedError } from "better-result";
|
|
20
|
-
export { zodToJsonSchema, withTimeout, validateInput, unwrapOrElse, toHttpResponse, toEnvelope, statusCodeMap, shouldRetry, serializeError, safeStringify, safeParse, retry, orElse, isRetryable, isRecoverable, isNonEmptyArray, getStatusCode, getExitCode, getBackoffDelay, getActionsForSurface, generateRequestId, expect, exitCodeMap, deserializeError, defineAction, createValidator, createRedactor, createLoggerFactory, createContext, createActionRegistry, combine3, combine2, capabilityAll, capability, assertNonEmpty, assertMatches, assertDefined, ValidationError, TimeoutOptions, TimeoutError, TaggedErrorClass, TaggedError, SyncHandler, SuccessEnvelope, StorageError, StorageAdapter, SerializedError, SerializeErrorOptions, SearchResult, SearchOptions, RetryOptions, Result, ResolvedConfig, RedactorConfig, Redactor, RedactionEvent, RedactionCallback, RateLimitError, PermissionError, PaginationMeta, OutfitterError, NotFoundError, NonEmptyArray, NetworkError, LoggerFactoryConfig, LoggerFactory, LoggerAdapter, Logger, LogMethod, LogMetadata, LogLevel, KitErrorProps, JsonSchema, InternalError, IndexStats, IndexError, IndexAdapter, HttpResponse, HttpMethod, HandlerContext, Handler, ErrorEnvelope, ErrorCode, ErrorCategory, EnvelopeMeta, Envelope, ERROR_CODES, DEFAULT_SENSITIVE_KEYS, DEFAULT_REGISTRY_SURFACES, DEFAULT_PATTERNS, DEFAULT_ACTION_SURFACES, CreateContextOptions, ConflictError, CapabilitySurface, CancelledError, CacheError, CacheAdapter, CAPABILITY_SURFACES, BackoffOptions, AuthError, AuthAdapter, AssertionError, AnyKitError, AnyActionSpec, AmbiguousError, AlreadyExistsError, AdapterAuthError, ActionTrpcSpec, ActionSurface, ActionSpec, ActionRegistry, ActionMcpSpec, ActionCliSpec, ActionCliOption, ActionCliInputContext, ActionCapability, ActionApiSpec, ACTION_SURFACES, ACTION_CAPABILITIES };
|
|
31
|
+
export { zodToJsonSchema, wrapError, withTimeout, validateInput, unwrapOrElse, toHttpResponse, toEnvelope, statusCodeMap, shouldRetry, serializeError, safeStringify, safeParse, retryableMap, retry, parseInput, orElse, jsonRpcCodeMap, isRetryable, isRecoverable, isOutfitterError, isNonEmptyArray, getStatusCode, getExitCode, getBackoffDelay, getActionsForSurface, generateRequestId, fromFetch, formatZodIssues, extractMessage, expectOk, expectErr, expect, exitCodeMap, errorCategoryMeta, deserializeError, defineAction, createValidator, createRedactor, createLoggerFactory, createContext, createActionRegistry, composeMappers, combine3, combine2, capabilityAll, capability, assertNonEmpty, assertMatches, assertDefined, ValidationError, TimeoutOptions, TimeoutError, TaggedErrorClass, TaggedError, SyncHandler, SuccessEnvelope, StreamStepEvent, StreamStartEvent, StreamProgressEvent, StreamEvent, StorageError, StorageAdapter, SerializedError, SerializeErrorOptions, SearchResult, SearchOptions, RetryOptions, Result, ResolvedConfig, RedactorConfig, Redactor, RedactionEvent, RedactionCallback, RateLimitError, ProgressCallback, PermissionError, PaginationMeta, OutfitterError, NotFoundError, NonEmptyArray, NetworkError, MCPHint, LoggerFactoryConfig, LoggerFactory, LoggerAdapter, Logger, LogMethod, LogMetadata, LogLevel, KitErrorProps, JsonSchema, InternalError, IndexStats, IndexError, IndexAdapter, HttpResponse, HttpMethod, HandlerContext, Handler, ErrorMapper, ErrorEnvelope, ErrorCode, ErrorCategoryMeta, ErrorCategory, EnvelopeMeta, Envelope, ERROR_CODES, DEFAULT_SENSITIVE_KEYS, DEFAULT_REGISTRY_SURFACES, DEFAULT_PATTERNS, DEFAULT_ACTION_SURFACES, CreateContextOptions, ConflictError, CapabilitySurface, CancelledError, CacheError, CacheAdapter, CLIHint, CAPABILITY_SURFACES, BackoffOptions, AuthError, AuthAdapter, AssertionError, AnyKitError, AnyActionSpec, AmbiguousError, AlreadyExistsError, AdapterAuthError, ActionTrpcSpec, ActionSurface, ActionSpec, ActionRegistry, ActionMcpSpec, ActionHint, ActionCliSpec, ActionCliOption, ActionCliInputContext, ActionCapability, ActionApiSpec, ACTION_SURFACES, ACTION_CAPABILITIES };
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
export { Result, TaggedError } from "better-result";
|
|
2
2
|
export { ACTION_SURFACES, createActionRegistry, DEFAULT_REGISTRY_SURFACES, defineAction } from "./actions.js";
|
|
3
|
-
export { assertDefined, assertMatches, assertNonEmpty, isNonEmptyArray } from "./assert/index.js";
|
|
3
|
+
export { assertDefined, assertMatches, assertNonEmpty, expectErr, expectOk, isNonEmptyArray } from "./assert/index.js";
|
|
4
4
|
export { ACTION_CAPABILITIES, CAPABILITY_SURFACES, capability, capabilityAll, DEFAULT_ACTION_SURFACES, getActionsForSurface } from "./capabilities.js";
|
|
5
5
|
export { createContext, generateRequestId } from "./context.js";
|
|
6
6
|
export { toEnvelope, toHttpResponse } from "./envelope.js";
|
|
7
|
-
export {
|
|
7
|
+
export { fromFetch } from "./from-fetch.js";
|
|
8
|
+
export { AlreadyExistsError, AmbiguousError, AssertionError, AuthError, CancelledError, ConflictError, ERROR_CODES, errorCategoryMeta, exitCodeMap, getExitCode, getStatusCode, InternalError, jsonRpcCodeMap, NetworkError, NotFoundError, PermissionError, RateLimitError, retryableMap, statusCodeMap, TimeoutError, ValidationError } from "./errors.js";
|
|
8
9
|
export { createLoggerFactory } from "./logging.js";
|
|
9
10
|
export { getBackoffDelay, isRecoverable, isRetryable, shouldRetry } from "./recovery.js";
|
|
10
11
|
export { createRedactor, DEFAULT_PATTERNS, DEFAULT_SENSITIVE_KEYS } from "./redactor.js";
|
|
@@ -12,4 +13,5 @@ export { retry, withTimeout } from "./resilience.js";
|
|
|
12
13
|
export { combine2, combine3, expect, orElse, unwrapOrElse } from "./result/index.js";
|
|
13
14
|
export { zodToJsonSchema } from "./schema.js";
|
|
14
15
|
export { deserializeError, safeParse, safeStringify, serializeError } from "./serialization.js";
|
|
15
|
-
export { createValidator, validateInput } from "./validation.js";
|
|
16
|
+
export { createValidator, formatZodIssues, parseInput, validateInput } from "./validation.js";
|
|
17
|
+
export { composeMappers, extractMessage, isOutfitterError, wrapError } from "./wrap-error.js";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { AlreadyExistsErrorBase, AmbiguousErrorBase, AssertionErrorBase, AuthErrorBase, CancelledErrorBase, ConflictErrorBase, InternalErrorBase, NetworkErrorBase, NotFoundErrorBase, PermissionErrorBase, RateLimitErrorBase, TimeoutErrorBase, ValidationErrorBase } from "../shared/@outfitter/contracts-qpbv29bg.js";
|
|
2
|
+
export { ValidationErrorBase, TimeoutErrorBase, RateLimitErrorBase, PermissionErrorBase, NotFoundErrorBase, NetworkErrorBase, InternalErrorBase, ConflictErrorBase, CancelledErrorBase, AuthErrorBase, AssertionErrorBase, AmbiguousErrorBase, AlreadyExistsErrorBase };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
AlreadyExistsErrorBase,
|
|
4
|
+
AmbiguousErrorBase,
|
|
5
|
+
AssertionErrorBase,
|
|
6
|
+
AuthErrorBase,
|
|
7
|
+
CancelledErrorBase,
|
|
8
|
+
ConflictErrorBase,
|
|
9
|
+
InternalErrorBase,
|
|
10
|
+
NetworkErrorBase,
|
|
11
|
+
NotFoundErrorBase,
|
|
12
|
+
PermissionErrorBase,
|
|
13
|
+
RateLimitErrorBase,
|
|
14
|
+
TimeoutErrorBase,
|
|
15
|
+
ValidationErrorBase
|
|
16
|
+
} from "../shared/@outfitter/contracts-jtn6b927.js";
|
|
17
|
+
export {
|
|
18
|
+
ValidationErrorBase,
|
|
19
|
+
TimeoutErrorBase,
|
|
20
|
+
RateLimitErrorBase,
|
|
21
|
+
PermissionErrorBase,
|
|
22
|
+
NotFoundErrorBase,
|
|
23
|
+
NetworkErrorBase,
|
|
24
|
+
InternalErrorBase,
|
|
25
|
+
ConflictErrorBase,
|
|
26
|
+
CancelledErrorBase,
|
|
27
|
+
AuthErrorBase,
|
|
28
|
+
AssertionErrorBase,
|
|
29
|
+
AmbiguousErrorBase,
|
|
30
|
+
AlreadyExistsErrorBase
|
|
31
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { AuthError, CancelledError, InternalError, NetworkError, PermissionError, RateLimitError, TimeoutError } from "../shared/@outfitter/contracts-735ecmbq.js";
|
|
2
|
+
import "../shared/@outfitter/contracts-qpbv29bg.js";
|
|
3
|
+
export { TimeoutError, RateLimitError, PermissionError, NetworkError, InternalError, CancelledError, AuthError };
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
AuthErrorBase,
|
|
4
|
+
CancelledErrorBase,
|
|
5
|
+
InternalErrorBase,
|
|
6
|
+
NetworkErrorBase,
|
|
7
|
+
PermissionErrorBase,
|
|
8
|
+
RateLimitErrorBase,
|
|
9
|
+
TimeoutErrorBase
|
|
10
|
+
} from "../shared/@outfitter/contracts-jtn6b927.js";
|
|
11
|
+
import {
|
|
12
|
+
getExitCode,
|
|
13
|
+
getStatusCode
|
|
14
|
+
} from "../shared/@outfitter/contracts-sawwfgb5.js";
|
|
15
|
+
|
|
16
|
+
// packages/contracts/src/internal/error-operational.ts
|
|
17
|
+
class PermissionError extends PermissionErrorBase {
|
|
18
|
+
category = "permission";
|
|
19
|
+
static create(message, context) {
|
|
20
|
+
return new PermissionError({
|
|
21
|
+
message,
|
|
22
|
+
...context != null && { context }
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
exitCode() {
|
|
26
|
+
return getExitCode(this.category);
|
|
27
|
+
}
|
|
28
|
+
statusCode() {
|
|
29
|
+
return getStatusCode(this.category);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
class TimeoutError extends TimeoutErrorBase {
|
|
34
|
+
category = "timeout";
|
|
35
|
+
static create(operation, timeoutMs) {
|
|
36
|
+
return new TimeoutError({
|
|
37
|
+
message: `${operation} timed out after ${timeoutMs}ms`,
|
|
38
|
+
operation,
|
|
39
|
+
timeoutMs
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
exitCode() {
|
|
43
|
+
return getExitCode(this.category);
|
|
44
|
+
}
|
|
45
|
+
statusCode() {
|
|
46
|
+
return getStatusCode(this.category);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
class RateLimitError extends RateLimitErrorBase {
|
|
51
|
+
category = "rate_limit";
|
|
52
|
+
static create(message, retryAfterSeconds) {
|
|
53
|
+
return new RateLimitError({
|
|
54
|
+
message,
|
|
55
|
+
...retryAfterSeconds != null && { retryAfterSeconds }
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
exitCode() {
|
|
59
|
+
return getExitCode(this.category);
|
|
60
|
+
}
|
|
61
|
+
statusCode() {
|
|
62
|
+
return getStatusCode(this.category);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
class NetworkError extends NetworkErrorBase {
|
|
67
|
+
category = "network";
|
|
68
|
+
static create(message, context) {
|
|
69
|
+
return new NetworkError({ message, ...context != null && { context } });
|
|
70
|
+
}
|
|
71
|
+
exitCode() {
|
|
72
|
+
return getExitCode(this.category);
|
|
73
|
+
}
|
|
74
|
+
statusCode() {
|
|
75
|
+
return getStatusCode(this.category);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
class InternalError extends InternalErrorBase {
|
|
80
|
+
category = "internal";
|
|
81
|
+
static create(message, context) {
|
|
82
|
+
return new InternalError({ message, ...context != null && { context } });
|
|
83
|
+
}
|
|
84
|
+
exitCode() {
|
|
85
|
+
return getExitCode(this.category);
|
|
86
|
+
}
|
|
87
|
+
statusCode() {
|
|
88
|
+
return getStatusCode(this.category);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
class AuthError extends AuthErrorBase {
|
|
93
|
+
category = "auth";
|
|
94
|
+
static create(message, reason) {
|
|
95
|
+
return new AuthError({ message, ...reason != null && { reason } });
|
|
96
|
+
}
|
|
97
|
+
exitCode() {
|
|
98
|
+
return getExitCode(this.category);
|
|
99
|
+
}
|
|
100
|
+
statusCode() {
|
|
101
|
+
return getStatusCode(this.category);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
class CancelledError extends CancelledErrorBase {
|
|
106
|
+
category = "cancelled";
|
|
107
|
+
static create(message) {
|
|
108
|
+
return new CancelledError({ message });
|
|
109
|
+
}
|
|
110
|
+
exitCode() {
|
|
111
|
+
return getExitCode(this.category);
|
|
112
|
+
}
|
|
113
|
+
statusCode() {
|
|
114
|
+
return getStatusCode(this.category);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
export {
|
|
118
|
+
TimeoutError,
|
|
119
|
+
RateLimitError,
|
|
120
|
+
PermissionError,
|
|
121
|
+
NetworkError,
|
|
122
|
+
InternalError,
|
|
123
|
+
CancelledError,
|
|
124
|
+
AuthError
|
|
125
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SerializeErrorOptions, deserializeError, serializeError } from "../shared/@outfitter/contracts-p77yjs4g.js";
|
|
2
|
+
import "../shared/@outfitter/contracts-7a0xmwbg.js";
|
|
3
|
+
import "../shared/@outfitter/contracts-735ecmbq.js";
|
|
4
|
+
import "../shared/@outfitter/contracts-mehpmvwp.js";
|
|
5
|
+
import "../shared/@outfitter/contracts-qpbv29bg.js";
|
|
6
|
+
import "../shared/@outfitter/contracts-njb2art4.js";
|
|
7
|
+
export { serializeError, deserializeError, SerializeErrorOptions };
|