@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.
Files changed (84) hide show
  1. package/dist/actions.d.ts +8 -3
  2. package/dist/assert/index.d.ts +7 -3
  3. package/dist/assert/index.js +32 -1
  4. package/dist/context.d.ts +8 -3
  5. package/dist/context.js +1 -1
  6. package/dist/envelope.d.ts +6 -2
  7. package/dist/envelope.js +5 -6
  8. package/dist/errors.d.ts +6 -2
  9. package/dist/errors.js +7 -1
  10. package/dist/from-fetch.d.ts +7 -0
  11. package/dist/from-fetch.js +110 -0
  12. package/dist/handler.d.ts +7 -2
  13. package/dist/hints.d.ts +2 -0
  14. package/dist/hints.js +1 -0
  15. package/dist/index.d.ts +24 -13
  16. package/dist/index.js +5 -3
  17. package/dist/internal/error-base.d.ts +2 -0
  18. package/dist/internal/error-base.js +31 -0
  19. package/dist/internal/error-operational.d.ts +3 -0
  20. package/dist/internal/error-operational.js +125 -0
  21. package/dist/internal/error-serialization.d.ts +7 -0
  22. package/dist/{shared/@outfitter/contracts-5k6q4n48.js → internal/error-serialization.js} +28 -67
  23. package/dist/internal/error-taxonomy.d.ts +2 -0
  24. package/dist/internal/error-taxonomy.js +21 -0
  25. package/dist/internal/error-validation.d.ts +3 -0
  26. package/dist/internal/error-validation.js +121 -0
  27. package/dist/internal/safe-json.d.ts +7 -0
  28. package/dist/internal/safe-json.js +66 -0
  29. package/dist/internal/schema-converters.d.ts +26 -0
  30. package/dist/internal/schema-converters.js +12 -0
  31. package/dist/internal/schema-primitives.d.ts +10 -0
  32. package/dist/internal/schema-primitives.js +9 -0
  33. package/dist/internal/schema-types.d.ts +2 -0
  34. package/dist/internal/schema-types.js +9 -0
  35. package/dist/recovery.d.ts +6 -2
  36. package/dist/resilience.d.ts +6 -2
  37. package/dist/resilience.js +6 -2
  38. package/dist/schema.d.ts +2 -1
  39. package/dist/schema.js +15 -187
  40. package/dist/serialization.d.ts +8 -2
  41. package/dist/serialization.js +1 -3
  42. package/dist/shared/@outfitter/{contracts-k71jqd1m.d.ts → contracts-10p5q75w.d.ts} +1 -1
  43. package/dist/shared/@outfitter/contracts-1zzcpfyg.d.ts +40 -0
  44. package/dist/shared/@outfitter/contracts-3f5k5tg5.d.ts +28 -0
  45. package/dist/shared/@outfitter/contracts-3qmyq81n.d.ts +78 -0
  46. package/dist/shared/@outfitter/contracts-3re9d4bp.js +114 -0
  47. package/dist/shared/@outfitter/contracts-735ecmbq.d.ts +107 -0
  48. package/dist/shared/@outfitter/contracts-7a0xmwbg.d.ts +11 -0
  49. package/dist/shared/@outfitter/contracts-8cmkh2db.d.ts +31 -0
  50. package/dist/shared/@outfitter/{contracts-agmt8915.js → contracts-c3qfce25.js} +3 -0
  51. package/dist/shared/@outfitter/{contracts-1waabxbk.d.ts → contracts-drwd9ywk.d.ts} +4 -1
  52. package/dist/shared/@outfitter/contracts-hgh47193.js +46 -0
  53. package/dist/shared/@outfitter/contracts-hrepwwne.js +62 -0
  54. package/dist/shared/@outfitter/contracts-jtn6b927.js +18 -0
  55. package/dist/shared/@outfitter/contracts-jtt6dnmg.js +2 -0
  56. package/dist/shared/@outfitter/contracts-jyhqr766.js +25 -0
  57. package/dist/shared/@outfitter/contracts-mehpmvwp.d.ts +164 -0
  58. package/dist/shared/@outfitter/contracts-msxdg52h.d.ts +125 -0
  59. package/dist/shared/@outfitter/{contracts-95cc3y06.d.ts → contracts-mt027fqj.d.ts} +2 -1
  60. package/dist/shared/@outfitter/contracts-njb2art4.d.ts +174 -0
  61. package/dist/shared/@outfitter/contracts-p77yjs4g.d.ts +46 -0
  62. package/dist/shared/@outfitter/contracts-qpbv29bg.d.ts +59 -0
  63. package/dist/shared/@outfitter/contracts-sawwfgb5.js +111 -0
  64. package/dist/shared/@outfitter/{contracts-e4m948m7.d.ts → contracts-t4txv24h.d.ts} +2 -1
  65. package/dist/shared/@outfitter/contracts-vbgt9rfn.d.ts +74 -0
  66. package/dist/shared/@outfitter/{contracts-56pcsavx.d.ts → contracts-vhajx4gg.d.ts} +8 -2
  67. package/dist/shared/@outfitter/contracts-vhr2ep6b.js +3 -0
  68. package/dist/shared/@outfitter/contracts-w7nvcwrp.d.ts +44 -0
  69. package/dist/shared/@outfitter/contracts-x0ppyt7e.d.ts +76 -0
  70. package/dist/shared/@outfitter/{contracts-0akf2sm6.d.ts → contracts-zma4mscd.d.ts} +16 -1
  71. package/dist/shared/@outfitter/contracts-zsgxsa91.d.ts +84 -0
  72. package/dist/stream.d.ts +2 -0
  73. package/dist/stream.js +1 -0
  74. package/dist/validation.d.ts +7 -3
  75. package/dist/validation.js +8 -36
  76. package/dist/wrap-error.d.ts +7 -0
  77. package/dist/wrap-error.js +71 -0
  78. package/package.json +41 -17
  79. package/dist/shared/@outfitter/contracts-31penhwa.d.ts +0 -81
  80. package/dist/shared/@outfitter/contracts-3gswmhb1.d.ts +0 -446
  81. package/dist/shared/@outfitter/contracts-9wtm5nsw.d.ts +0 -42
  82. package/dist/shared/@outfitter/contracts-mmg0npfk.d.ts +0 -30
  83. package/dist/shared/@outfitter/contracts-phjhz5q3.js +0 -293
  84. 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-56pcsavx.js";
2
- import "./shared/@outfitter/contracts-0akf2sm6.js";
3
- import "./shared/@outfitter/contracts-3gswmhb1.js";
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 };
@@ -1,3 +1,7 @@
1
- import { NonEmptyArray, assertDefined, assertMatches, assertNonEmpty, isNonEmptyArray } from "../shared/@outfitter/contracts-mmg0npfk.js";
2
- import "../shared/@outfitter/contracts-3gswmhb1.js";
3
- export { isNonEmptyArray, assertNonEmpty, assertMatches, assertDefined, NonEmptyArray };
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 };
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  AssertionError
4
- } from "../shared/@outfitter/contracts-phjhz5q3.js";
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-1waabxbk.js";
2
- import "./shared/@outfitter/contracts-0akf2sm6.js";
3
- import "./shared/@outfitter/contracts-3gswmhb1.js";
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
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  createContext,
4
4
  generateRequestId
5
- } from "./shared/@outfitter/contracts-agmt8915.js";
5
+ } from "./shared/@outfitter/contracts-c3qfce25.js";
6
6
  export {
7
7
  generateRequestId,
8
8
  createContext
@@ -1,3 +1,7 @@
1
- import { Envelope, EnvelopeMeta, ErrorEnvelope, HttpResponse, PaginationMeta, SuccessEnvelope, toEnvelope, toHttpResponse } from "./shared/@outfitter/contracts-e4m948m7.js";
2
- import "./shared/@outfitter/contracts-3gswmhb1.js";
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-agmt8915.js";
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-phjhz5q3.js";
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 { AlreadyExistsError, AmbiguousError, AnyKitError, AssertionError, AuthError, CancelledError, ConflictError, ERROR_CODES, ErrorCategory, ErrorCode, InternalError, KitErrorProps, NetworkError, NotFoundError, OutfitterError, PermissionError, RateLimitError, SerializedError, TimeoutError, ValidationError, exitCodeMap, getExitCode, getStatusCode, statusCodeMap } from "./shared/@outfitter/contracts-3gswmhb1.js";
2
- export { statusCodeMap, getStatusCode, getExitCode, exitCodeMap, ValidationError, TimeoutError, SerializedError, RateLimitError, PermissionError, OutfitterError, NotFoundError, NetworkError, KitErrorProps, InternalError, ErrorCode, ErrorCategory, ERROR_CODES, ConflictError, CancelledError, AuthError, AssertionError, AnyKitError, AmbiguousError, AlreadyExistsError };
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-phjhz5q3.js";
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-0akf2sm6.js";
2
- import "./shared/@outfitter/contracts-3gswmhb1.js";
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 };
@@ -0,0 +1,2 @@
1
+ import { ActionHint, CLIHint, MCPHint } from "./shared/@outfitter/contracts-vbgt9rfn.js";
2
+ export { MCPHint, CLIHint, ActionHint };
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 { ACTION_SURFACES, ActionApiSpec, ActionCliInputContext, ActionCliOption, ActionCliSpec, ActionMcpSpec, ActionRegistry, ActionSpec, ActionSurface, ActionTrpcSpec, AnyActionSpec, DEFAULT_REGISTRY_SURFACES, HttpMethod, createActionRegistry, defineAction } from "./shared/@outfitter/contracts-56pcsavx.js";
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 { SerializeErrorOptions, deserializeError, safeParse, safeStringify, serializeError } from "./shared/@outfitter/contracts-31penhwa.js";
6
- import { JsonSchema, zodToJsonSchema } from "./shared/@outfitter/contracts-t79engf9.js";
7
- import { CreateContextOptions, createContext, generateRequestId } from "./shared/@outfitter/contracts-1waabxbk.js";
8
- import { NonEmptyArray, assertDefined, assertMatches, assertNonEmpty, isNonEmptyArray } from "./shared/@outfitter/contracts-mmg0npfk.js";
9
- import { Envelope, EnvelopeMeta, ErrorEnvelope, HttpResponse, PaginationMeta, SuccessEnvelope, toEnvelope, toHttpResponse } from "./shared/@outfitter/contracts-e4m948m7.js";
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 { BackoffOptions, getBackoffDelay, isRecoverable, isRetryable, shouldRetry } from "./shared/@outfitter/contracts-k71jqd1m.js";
12
- import { RetryOptions, TimeoutOptions, retry, withTimeout } from "./shared/@outfitter/contracts-95cc3y06.js";
13
- import { createValidator, validateInput } from "./shared/@outfitter/contracts-9wtm5nsw.js";
14
- import { Handler, HandlerContext, ResolvedConfig, SyncHandler } from "./shared/@outfitter/contracts-0akf2sm6.js";
15
- import { AlreadyExistsError, AmbiguousError, AnyKitError, AssertionError, AuthError, CancelledError, ConflictError, ERROR_CODES, ErrorCategory, ErrorCode, InternalError, KitErrorProps, NetworkError, NotFoundError, OutfitterError, PermissionError, RateLimitError, SerializedError, TimeoutError, ValidationError, exitCodeMap, getExitCode, getStatusCode, statusCodeMap } from "./shared/@outfitter/contracts-3gswmhb1.js";
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 { AlreadyExistsError, AmbiguousError, AssertionError, AuthError, CancelledError, ConflictError, ERROR_CODES, exitCodeMap, getExitCode, getStatusCode, InternalError, NetworkError, NotFoundError, PermissionError, RateLimitError, statusCodeMap, TimeoutError, ValidationError } from "./errors.js";
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 };