@distilled.cloud/core 0.30.3 → 1.0.0-rc.10

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 (216) hide show
  1. package/LICENSE +201 -0
  2. package/lib/api.d.ts +165 -0
  3. package/lib/api.d.ts.map +1 -0
  4. package/lib/api.js +190 -0
  5. package/lib/api.js.map +1 -0
  6. package/lib/category.d.ts +4 -4
  7. package/lib/category.js +4 -4
  8. package/lib/codegen/boolean-string-enums.d.ts +36 -0
  9. package/lib/codegen/boolean-string-enums.d.ts.map +1 -0
  10. package/lib/codegen/boolean-string-enums.js +94 -0
  11. package/lib/codegen/boolean-string-enums.js.map +1 -0
  12. package/lib/codegen/boolean-string-enums.test.d.ts +2 -0
  13. package/lib/codegen/boolean-string-enums.test.d.ts.map +1 -0
  14. package/lib/codegen/boolean-string-enums.test.js +147 -0
  15. package/lib/codegen/boolean-string-enums.test.js.map +1 -0
  16. package/lib/codegen/cli.d.ts +79 -0
  17. package/lib/codegen/cli.d.ts.map +1 -0
  18. package/lib/codegen/cli.js +149 -0
  19. package/lib/codegen/cli.js.map +1 -0
  20. package/lib/codegen/emit.d.ts +125 -0
  21. package/lib/codegen/emit.d.ts.map +1 -0
  22. package/lib/codegen/emit.js +101 -0
  23. package/lib/codegen/emit.js.map +1 -0
  24. package/lib/codegen/format.d.ts +23 -0
  25. package/lib/codegen/format.d.ts.map +1 -0
  26. package/lib/codegen/format.js +28 -0
  27. package/lib/codegen/format.js.map +1 -0
  28. package/lib/codegen/generator.d.ts +334 -0
  29. package/lib/codegen/generator.d.ts.map +1 -0
  30. package/lib/codegen/generator.js +813 -0
  31. package/lib/codegen/generator.js.map +1 -0
  32. package/lib/codegen/graph.d.ts +36 -0
  33. package/lib/codegen/graph.d.ts.map +1 -0
  34. package/lib/codegen/graph.js +136 -0
  35. package/lib/codegen/graph.js.map +1 -0
  36. package/lib/codegen/graphql-client.d.ts +62 -0
  37. package/lib/codegen/graphql-client.d.ts.map +1 -0
  38. package/lib/codegen/graphql-client.js +294 -0
  39. package/lib/codegen/graphql-client.js.map +1 -0
  40. package/lib/codegen/graphql-client.test.d.ts +2 -0
  41. package/lib/codegen/graphql-client.test.d.ts.map +1 -0
  42. package/lib/codegen/graphql-client.test.js +311 -0
  43. package/lib/codegen/graphql-client.test.js.map +1 -0
  44. package/lib/codegen/graphql.d.ts +207 -0
  45. package/lib/codegen/graphql.d.ts.map +1 -0
  46. package/lib/codegen/graphql.js +799 -0
  47. package/lib/codegen/graphql.js.map +1 -0
  48. package/lib/codegen/members.d.ts +25 -0
  49. package/lib/codegen/members.d.ts.map +1 -0
  50. package/lib/codegen/members.js +55 -0
  51. package/lib/codegen/members.js.map +1 -0
  52. package/lib/codegen/naming.d.ts +29 -0
  53. package/lib/codegen/naming.d.ts.map +1 -0
  54. package/lib/codegen/naming.js +74 -0
  55. package/lib/codegen/naming.js.map +1 -0
  56. package/lib/codegen/openapi-cli.d.ts +52 -0
  57. package/lib/codegen/openapi-cli.d.ts.map +1 -0
  58. package/lib/codegen/openapi-cli.js +109 -0
  59. package/lib/codegen/openapi-cli.js.map +1 -0
  60. package/lib/codegen/openapi.d.ts +178 -0
  61. package/lib/codegen/openapi.d.ts.map +1 -0
  62. package/lib/codegen/openapi.js +1377 -0
  63. package/lib/codegen/openapi.js.map +1 -0
  64. package/lib/codegen/operations.d.ts +24 -0
  65. package/lib/codegen/operations.d.ts.map +1 -0
  66. package/lib/codegen/operations.js +56 -0
  67. package/lib/codegen/operations.js.map +1 -0
  68. package/lib/codegen/pagination.d.ts +39 -0
  69. package/lib/codegen/pagination.d.ts.map +1 -0
  70. package/lib/codegen/pagination.js +33 -0
  71. package/lib/codegen/pagination.js.map +1 -0
  72. package/lib/codegen/patches.d.ts +65 -0
  73. package/lib/codegen/patches.d.ts.map +1 -0
  74. package/lib/codegen/patches.js +236 -0
  75. package/lib/codegen/patches.js.map +1 -0
  76. package/lib/codegen/patches.test.d.ts +2 -0
  77. package/lib/codegen/patches.test.d.ts.map +1 -0
  78. package/lib/codegen/patches.test.js +105 -0
  79. package/lib/codegen/patches.test.js.map +1 -0
  80. package/lib/codegen/prelude.d.ts +15 -0
  81. package/lib/codegen/prelude.d.ts.map +1 -0
  82. package/lib/codegen/prelude.js +60 -0
  83. package/lib/codegen/prelude.js.map +1 -0
  84. package/lib/codegen/proto.d.ts +121 -0
  85. package/lib/codegen/proto.d.ts.map +1 -0
  86. package/lib/codegen/proto.js +962 -0
  87. package/lib/codegen/proto.js.map +1 -0
  88. package/lib/codegen/rewrite-operation-ids.d.ts +131 -0
  89. package/lib/codegen/rewrite-operation-ids.d.ts.map +1 -0
  90. package/lib/codegen/rewrite-operation-ids.js +1079 -0
  91. package/lib/codegen/rewrite-operation-ids.js.map +1 -0
  92. package/lib/codegen/rewrite-operation-ids.test.d.ts +2 -0
  93. package/lib/codegen/rewrite-operation-ids.test.d.ts.map +1 -0
  94. package/lib/codegen/rewrite-operation-ids.test.js +533 -0
  95. package/lib/codegen/rewrite-operation-ids.test.js.map +1 -0
  96. package/lib/codegen/spec-path.d.ts +16 -0
  97. package/lib/codegen/spec-path.d.ts.map +1 -0
  98. package/lib/codegen/spec-path.js +101 -0
  99. package/lib/codegen/spec-path.js.map +1 -0
  100. package/lib/error-category.d.ts +28 -0
  101. package/lib/error-category.d.ts.map +1 -0
  102. package/lib/error-category.js +46 -0
  103. package/lib/error-category.js.map +1 -0
  104. package/lib/errors.d.ts +1 -0
  105. package/lib/errors.d.ts.map +1 -1
  106. package/lib/errors.js +18 -13
  107. package/lib/errors.js.map +1 -1
  108. package/lib/graphql.d.ts +284 -0
  109. package/lib/graphql.d.ts.map +1 -0
  110. package/lib/graphql.fixture.d.ts +249 -0
  111. package/lib/graphql.fixture.d.ts.map +1 -0
  112. package/lib/graphql.fixture.js +240 -0
  113. package/lib/graphql.fixture.js.map +1 -0
  114. package/lib/graphql.js +718 -0
  115. package/lib/graphql.js.map +1 -0
  116. package/lib/graphql.test.d.ts +2 -0
  117. package/lib/graphql.test.d.ts.map +1 -0
  118. package/lib/graphql.test.js +780 -0
  119. package/lib/graphql.test.js.map +1 -0
  120. package/lib/graphql.types.d.ts +2 -0
  121. package/lib/graphql.types.d.ts.map +1 -0
  122. package/lib/graphql.types.js +45 -0
  123. package/lib/graphql.types.js.map +1 -0
  124. package/lib/json-patch.d.ts +30 -30
  125. package/lib/json-patch.d.ts.map +1 -1
  126. package/lib/json-patch.js +73 -107
  127. package/lib/json-patch.js.map +1 -1
  128. package/lib/pagination.d.ts +77 -51
  129. package/lib/pagination.d.ts.map +1 -1
  130. package/lib/pagination.js +162 -94
  131. package/lib/pagination.js.map +1 -1
  132. package/lib/protocol-http.d.ts +74 -0
  133. package/lib/protocol-http.d.ts.map +1 -0
  134. package/lib/protocol-http.js +590 -0
  135. package/lib/protocol-http.js.map +1 -0
  136. package/lib/protocol-http.test.d.ts +2 -0
  137. package/lib/protocol-http.test.d.ts.map +1 -0
  138. package/lib/protocol-http.test.js +88 -0
  139. package/lib/protocol-http.test.js.map +1 -0
  140. package/lib/protocol-rest.d.ts +134 -0
  141. package/lib/protocol-rest.d.ts.map +1 -0
  142. package/lib/protocol-rest.js +256 -0
  143. package/lib/protocol-rest.js.map +1 -0
  144. package/lib/retry.d.ts +8 -2
  145. package/lib/retry.d.ts.map +1 -1
  146. package/lib/retry.js +22 -16
  147. package/lib/retry.js.map +1 -1
  148. package/lib/schema.d.ts +8 -9
  149. package/lib/schema.d.ts.map +1 -1
  150. package/lib/schema.js +8 -9
  151. package/lib/schema.js.map +1 -1
  152. package/lib/trait.d.ts +174 -0
  153. package/lib/trait.d.ts.map +1 -0
  154. package/lib/trait.js +123 -0
  155. package/lib/trait.js.map +1 -0
  156. package/package.json +24 -78
  157. package/src/api.ts +460 -0
  158. package/src/category.ts +4 -4
  159. package/src/codegen/boolean-string-enums.test.ts +168 -0
  160. package/src/codegen/boolean-string-enums.ts +106 -0
  161. package/src/codegen/cli.ts +285 -0
  162. package/src/codegen/emit.ts +203 -0
  163. package/src/codegen/format.ts +47 -0
  164. package/src/codegen/generator.ts +1283 -0
  165. package/src/codegen/graph.ts +151 -0
  166. package/src/codegen/graphql-client.test.ts +386 -0
  167. package/src/codegen/graphql-client.ts +419 -0
  168. package/src/codegen/graphql.ts +1217 -0
  169. package/src/codegen/members.ts +71 -0
  170. package/src/codegen/naming.ts +86 -0
  171. package/src/codegen/openapi-cli.ts +182 -0
  172. package/src/codegen/openapi.ts +1689 -0
  173. package/src/codegen/operations.ts +76 -0
  174. package/src/codegen/pagination.ts +71 -0
  175. package/src/codegen/patches.test.ts +130 -0
  176. package/src/codegen/patches.ts +291 -0
  177. package/src/codegen/prelude.ts +70 -0
  178. package/src/codegen/proto.ts +1128 -0
  179. package/src/codegen/rewrite-operation-ids.test.ts +563 -0
  180. package/src/codegen/rewrite-operation-ids.ts +1206 -0
  181. package/src/codegen/spec-path.ts +115 -0
  182. package/src/error-category.ts +84 -0
  183. package/src/errors.ts +22 -25
  184. package/src/graphql.fixture.ts +371 -0
  185. package/src/graphql.test.ts +974 -0
  186. package/src/graphql.ts +1321 -0
  187. package/src/graphql.types.ts +185 -0
  188. package/src/json-patch.ts +95 -122
  189. package/src/pagination.ts +217 -146
  190. package/src/protocol-http.test.ts +107 -0
  191. package/src/protocol-http.ts +735 -0
  192. package/src/protocol-rest.ts +391 -0
  193. package/src/retry.ts +21 -22
  194. package/src/schema.ts +9 -10
  195. package/src/trait.ts +274 -0
  196. package/README.md +0 -30
  197. package/lib/client.d.ts +0 -167
  198. package/lib/client.d.ts.map +0 -1
  199. package/lib/client.js +0 -659
  200. package/lib/client.js.map +0 -1
  201. package/lib/schemas.d.ts +0 -60
  202. package/lib/schemas.d.ts.map +0 -1
  203. package/lib/schemas.js +0 -79
  204. package/lib/schemas.js.map +0 -1
  205. package/lib/sensitive.d.ts +0 -71
  206. package/lib/sensitive.d.ts.map +0 -1
  207. package/lib/sensitive.js +0 -96
  208. package/lib/sensitive.js.map +0 -1
  209. package/lib/traits.d.ts +0 -421
  210. package/lib/traits.d.ts.map +0 -1
  211. package/lib/traits.js +0 -737
  212. package/lib/traits.js.map +0 -1
  213. package/src/client.ts +0 -1177
  214. package/src/schemas.ts +0 -128
  215. package/src/sensitive.ts +0 -119
  216. package/src/traits.ts +0 -996
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-http.js","sourceRoot":"","sources":["../src/protocol-http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=protocol-http.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-http.test.d.ts","sourceRoot":"","sources":["../src/protocol-http.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,88 @@
1
+ import { describe, expect, test } from "bun:test";
2
+ import { buildRequest, mapKeys } from "./protocol-http.js";
3
+ import * as S from "./schema.js";
4
+ import * as T from "./trait.js";
5
+ /**
6
+ * `T.StringEncoded()`: the member's TS type stays natural (boolean) but the
7
+ * wire carries its string spelling, for APIs that document the field as the
8
+ * enum `"true" | "false"` rather than a JSON boolean.
9
+ */
10
+ const JsonInput = S.Struct({
11
+ flag: S.optional(S.Boolean.pipe(T.Body("flag"), T.StringEncoded())),
12
+ plain: S.optional(S.Boolean.pipe(T.Body("plain"))),
13
+ nullable: S.optional(S.NullOr(S.Boolean).pipe(T.Body("nullable"), T.StringEncoded())),
14
+ flags: S.optional(S.Array(S.Boolean).pipe(T.Body("flags"), T.StringEncoded())),
15
+ }).pipe(T.Http({ method: "POST", uri: "/things" }));
16
+ const jsonBodyOf = (input) => {
17
+ const request = buildRequest({
18
+ input,
19
+ inputAst: JsonInput.ast,
20
+ baseUrl: "https://example.test",
21
+ });
22
+ const body = request.body;
23
+ return JSON.parse(body.body ?? "{}");
24
+ };
25
+ describe("StringEncoded members", () => {
26
+ test("booleans serialize as their string spelling", () => {
27
+ expect(jsonBodyOf({ flag: true, plain: true })).toEqual({
28
+ flag: "true",
29
+ plain: true,
30
+ });
31
+ expect(jsonBodyOf({ flag: false, plain: false })).toEqual({
32
+ flag: "false",
33
+ plain: false,
34
+ });
35
+ });
36
+ test("a list stringifies element-wise", () => {
37
+ expect(jsonBodyOf({ flags: [true, false] })).toEqual({
38
+ flags: ["true", "false"],
39
+ });
40
+ });
41
+ test("null stays null and an omitted member stays omitted", () => {
42
+ expect(jsonBodyOf({ nullable: null })).toEqual({ nullable: null });
43
+ expect(jsonBodyOf({})).toEqual({});
44
+ });
45
+ });
46
+ describe("UnionCases decoding", () => {
47
+ const cases = [
48
+ ["id", "type", "zoneName"],
49
+ ["id", "type", "accountName"],
50
+ ];
51
+ const merged = {
52
+ id: "1",
53
+ type: "account",
54
+ zoneName: "zone-a",
55
+ accountName: "acct-a",
56
+ };
57
+ const decode = (schema, value) => mapKeys(schema.ast, value, "decode");
58
+ test("the discriminator picks the case key sets cannot tell apart", () => {
59
+ const schema = S.Unknown.pipe(T.UnionCases(cases, { key: "type", values: ["zone", "account"] }));
60
+ expect(decode(schema, merged)).toEqual({
61
+ id: "1",
62
+ type: "account",
63
+ accountName: "acct-a",
64
+ });
65
+ expect(decode(schema, { ...merged, type: "zone" })).toEqual({
66
+ id: "1",
67
+ type: "zone",
68
+ zoneName: "zone-a",
69
+ });
70
+ });
71
+ test("an unknown tag falls back to key-set scoring", () => {
72
+ const schema = S.Unknown.pipe(T.UnionCases(cases, { key: "type", values: ["zone", "account"] }));
73
+ expect(decode(schema, { ...merged, type: "other", accountName: null })).toEqual({
74
+ id: "1",
75
+ type: "other",
76
+ zoneName: "zone-a",
77
+ });
78
+ });
79
+ test("without a discriminator the best-explaining case wins", () => {
80
+ const schema = S.Unknown.pipe(T.UnionCases(cases));
81
+ expect(decode(schema, { ...merged, zoneName: null })).toEqual({
82
+ id: "1",
83
+ type: "account",
84
+ accountName: "acct-a",
85
+ });
86
+ });
87
+ });
88
+ //# sourceMappingURL=protocol-http.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-http.test.js","sourceRoot":"","sources":["../src/protocol-http.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Generic REST protocol factory for simple bearer/header-auth JSON APIs
3
+ * (Neon, Fly.io, PlanetScale, Supabase, Turso, …).
4
+ *
5
+ * `makeRestProtocol(options)` builds a core {@link API.Protocol} layer:
6
+ *
7
+ * request: credentials resolved from the CALLING fiber's context on every
8
+ * request (the layer itself is memoized per process — see
9
+ * `core/api`), auth headers + base URL from the provider's
10
+ * options, request built by `buildRequest` from
11
+ * `core/protocol-http` (deep-unwrapping any `Redacted` input
12
+ * values first)
13
+ *
14
+ * response: 2xx JSON → optional `transformResponse` → recursive wire→TS
15
+ * key mapping (`mapKeys`) → `Redacted` wrapping of members
16
+ * marked with {@link SensitiveValue}; non-2xx → typed error:
17
+ * per-op matcher classes (`matchTypedError`), then the status
18
+ * map (default `HTTP_STATUS_MAP`), then an `InternalServerError`
19
+ * for unmapped 5xx, then the provider's `unknownError` fallback
20
+ * — with `retryAfter` durations stamped from the standard hint
21
+ * headers on retryable statuses.
22
+ *
23
+ * Anything provider-specific (envelope quirks, bespoke error codes) belongs
24
+ * in the provider package — via these options or a hand-written protocol.
25
+ */
26
+ import * as Effect from "effect/Effect";
27
+ import * as Layer from "effect/Layer";
28
+ import type * as AST from "effect/SchemaAST";
29
+ import * as API from "./api.ts";
30
+ export declare const sensitiveValueSymbol: unique symbol;
31
+ /**
32
+ * Marks a string member as sensitive (mirrors `smithy.api#sensitive`).
33
+ * The REST protocol wraps decoded values in `Redacted` on the way out and
34
+ * accepts `string | Redacted<string>` on the way in (unwrapped before
35
+ * serialization). Takes an ignored argument so generators can inline the
36
+ * smithy trait value (`T.SensitiveValue({})`).
37
+ */
38
+ export declare const SensitiveValue: (_value?: unknown) => import("./trait.ts").Annotation;
39
+ export declare const rawResponseSymbol: unique symbol;
40
+ /**
41
+ * Marks the sole output member that carries a bare (array/scalar) response
42
+ * body (mirrors `com.distilled.openapi#rawResponse`).
43
+ */
44
+ export declare const RawResponse: (_value?: unknown) => import("./trait.ts").Annotation;
45
+ export declare const rawResponseRootSymbol: unique symbol;
46
+ /**
47
+ * Marks a response schema whose ENTIRE value is the response body (the
48
+ * generator's `rootPipe` for synthesized bare-payload wrappers): the emitted
49
+ * response type IS the payload type and the protocol returns the mapped body
50
+ * directly.
51
+ */
52
+ export declare const RawResponseRoot: () => import("./trait.ts").Annotation;
53
+ /**
54
+ * Deep-unwrap `Redacted` values in an input (plain objects/arrays only —
55
+ * class instances, files, and binary payloads pass through untouched).
56
+ * Sensitive input members accept `string | Redacted<string>`; the wire wants
57
+ * the raw string.
58
+ */
59
+ export declare const unwrapRedactedDeep: (value: unknown) => unknown;
60
+ /**
61
+ * Walk a decoded (TS-named) value alongside its schema AST, wrapping members
62
+ * marked {@link SensitiveValue} in `Redacted`. Keys the schema doesn't model
63
+ * pass through verbatim.
64
+ */
65
+ export declare const wrapSensitive: (ast: AST.AST, value: unknown) => unknown;
66
+ /** What the wire said about a failure, for the `unknownError` fallback. */
67
+ export interface RestErrorInfo {
68
+ readonly status: number;
69
+ /** Error code from the envelope (services vary between string and number). */
70
+ readonly code?: string | number;
71
+ readonly message: string;
72
+ /** Parsed JSON body, or the raw text when the body wasn't JSON. */
73
+ readonly body: unknown;
74
+ readonly headers: Record<string, string | undefined>;
75
+ }
76
+ export interface RestErrorEnvelope {
77
+ readonly code?: string | number;
78
+ readonly message?: string;
79
+ }
80
+ export interface RestProtocolOptions<C> {
81
+ /**
82
+ * Resolve credentials ON THE CALLING FIBER — evaluated per request, never
83
+ * at layer build time, so context-provided credentials and token refreshes
84
+ * are picked up. Typically `Effect.gen(function* () { const resolve =
85
+ * yield* Credentials; return yield* resolve; })` for the distilled
86
+ * credentials-service convention. Its error/requirement channels are
87
+ * erased at the protocol boundary (Protocol effects carry none) and
88
+ * reintroduced for callers by the generated `<Sdk>OpError` /
89
+ * `<Sdk>OpContext` annotations.
90
+ */
91
+ readonly credentials: Effect.Effect<C, any, any>;
92
+ /**
93
+ * API base URL from the resolved credentials. Receives the operation's
94
+ * route so APIs with more than one endpoint (e.g. S2's account vs
95
+ * per-basin hosts, chosen by path) can route per request; single-endpoint
96
+ * providers ignore the argument. A THROWN error (e.g. a required scope
97
+ * missing from the credentials) is caught and surfaced on the calling
98
+ * effect's error channel rather than dying as a defect.
99
+ */
100
+ readonly baseUrl: (credentials: C, target: {
101
+ readonly uri: string;
102
+ readonly method: string;
103
+ }) => string;
104
+ /** Auth (and any fixed) headers from the resolved credentials. */
105
+ readonly headers: (credentials: C) => Record<string, string>;
106
+ /**
107
+ * Extract `{ code?, message? }` from a parsed non-2xx JSON body. Default:
108
+ * lenient `{ code?, message? | error? }` (covers the common REST error
109
+ * envelopes).
110
+ */
111
+ readonly errorEnvelope?: (body: unknown) => RestErrorEnvelope | undefined;
112
+ /**
113
+ * HTTP status → error class constructed as `new Cls({ message, retryAfter
114
+ * })`. Default: core `HTTP_STATUS_MAP`. Consulted after per-op typed error
115
+ * matching; unmapped 5xx fall back to `InternalServerError`, everything
116
+ * else to {@link unknownError}.
117
+ */
118
+ readonly statusMap?: Readonly<Record<number, new (args: any) => any>>;
119
+ /** Fallback error for failures nothing else matched. */
120
+ readonly unknownError: (info: RestErrorInfo) => unknown;
121
+ /** Transform the parsed 2xx JSON before decoding (e.g. stripNulls). */
122
+ readonly transformResponse?: (body: unknown) => unknown;
123
+ /** Passed through to `buildRequest` (member-header transforms). */
124
+ readonly mapMemberHeader?: (name: string, value: string) => string;
125
+ /** Passed through to `buildRequest` (wire names for unmodeled input keys). */
126
+ readonly unknownKeyToWire?: (key: string) => string;
127
+ }
128
+ /**
129
+ * Build a `Layer<Protocol>` for a simple REST JSON API. Assign the result to
130
+ * a module-level const in the provider's `protocol.ts` — `API.make` memoizes
131
+ * protocol layers by value identity.
132
+ */
133
+ export declare const makeRestProtocol: <C>(options: RestProtocolOptions<C>) => Layer.Layer<API.Protocol>;
134
+ //# sourceMappingURL=protocol-rest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-rest.d.ts","sourceRoot":"","sources":["../src/protocol-rest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,256 @@
1
+ /**
2
+ * Generic REST protocol factory for simple bearer/header-auth JSON APIs
3
+ * (Neon, Fly.io, PlanetScale, Supabase, Turso, …).
4
+ *
5
+ * `makeRestProtocol(options)` builds a core {@link API.Protocol} layer:
6
+ *
7
+ * request: credentials resolved from the CALLING fiber's context on every
8
+ * request (the layer itself is memoized per process — see
9
+ * `core/api`), auth headers + base URL from the provider's
10
+ * options, request built by `buildRequest` from
11
+ * `core/protocol-http` (deep-unwrapping any `Redacted` input
12
+ * values first)
13
+ *
14
+ * response: 2xx JSON → optional `transformResponse` → recursive wire→TS
15
+ * key mapping (`mapKeys`) → `Redacted` wrapping of members
16
+ * marked with {@link SensitiveValue}; non-2xx → typed error:
17
+ * per-op matcher classes (`matchTypedError`), then the status
18
+ * map (default `HTTP_STATUS_MAP`), then an `InternalServerError`
19
+ * for unmapped 5xx, then the provider's `unknownError` fallback
20
+ * — with `retryAfter` durations stamped from the standard hint
21
+ * headers on retryable statuses.
22
+ *
23
+ * Anything provider-specific (envelope quirks, bespoke error codes) belongs
24
+ * in the provider package — via these options or a hand-written protocol.
25
+ */
26
+ import * as Effect from "effect/Effect";
27
+ import * as Layer from "effect/Layer";
28
+ import * as Redacted from "effect/Redacted";
29
+ import * as API from "./api.js";
30
+ import { httpSymbol, makeAnnotation } from "./trait.js";
31
+ import { buildRequest, getAnn, getPropAnn, getProps, isOpaqueValue, mapKeys, matchTypedError, resolveNode, } from "./protocol-http.js";
32
+ import { HTTP_STATUS_MAP, InternalServerError } from "./errors.js";
33
+ import { parseRetryAfterForStatus } from "./retry-after.js";
34
+ // =============================================================================
35
+ // Traits
36
+ // =============================================================================
37
+ export const sensitiveValueSymbol = Symbol.for("@distilled.cloud/core/sensitive-value");
38
+ /**
39
+ * Marks a string member as sensitive (mirrors `smithy.api#sensitive`).
40
+ * The REST protocol wraps decoded values in `Redacted` on the way out and
41
+ * accepts `string | Redacted<string>` on the way in (unwrapped before
42
+ * serialization). Takes an ignored argument so generators can inline the
43
+ * smithy trait value (`T.SensitiveValue({})`).
44
+ */
45
+ export const SensitiveValue = (_value) => makeAnnotation(sensitiveValueSymbol, true);
46
+ export const rawResponseSymbol = Symbol.for("@distilled.cloud/core/raw-response");
47
+ /**
48
+ * Marks the sole output member that carries a bare (array/scalar) response
49
+ * body (mirrors `com.distilled.openapi#rawResponse`).
50
+ */
51
+ export const RawResponse = (_value) => makeAnnotation(rawResponseSymbol, true);
52
+ export const rawResponseRootSymbol = Symbol.for("@distilled.cloud/core/raw-response-root");
53
+ /**
54
+ * Marks a response schema whose ENTIRE value is the response body (the
55
+ * generator's `rootPipe` for synthesized bare-payload wrappers): the emitted
56
+ * response type IS the payload type and the protocol returns the mapped body
57
+ * directly.
58
+ */
59
+ export const RawResponseRoot = () => makeAnnotation(rawResponseRootSymbol, true);
60
+ // =============================================================================
61
+ // Value helpers
62
+ // =============================================================================
63
+ const isPlainObject = (v) => v !== null &&
64
+ typeof v === "object" &&
65
+ !Array.isArray(v) &&
66
+ !isOpaqueValue(v) &&
67
+ (Object.getPrototypeOf(v) === Object.prototype ||
68
+ Object.getPrototypeOf(v) === null);
69
+ /**
70
+ * Deep-unwrap `Redacted` values in an input (plain objects/arrays only —
71
+ * class instances, files, and binary payloads pass through untouched).
72
+ * Sensitive input members accept `string | Redacted<string>`; the wire wants
73
+ * the raw string.
74
+ */
75
+ export const unwrapRedactedDeep = (value) => {
76
+ if (Redacted.isRedacted(value))
77
+ return Redacted.value(value);
78
+ if (Array.isArray(value))
79
+ return value.map(unwrapRedactedDeep);
80
+ if (isPlainObject(value)) {
81
+ const out = {};
82
+ for (const [k, v] of Object.entries(value)) {
83
+ if (v === undefined)
84
+ continue;
85
+ out[k] = unwrapRedactedDeep(v);
86
+ }
87
+ return out;
88
+ }
89
+ return value;
90
+ };
91
+ /**
92
+ * Walk a decoded (TS-named) value alongside its schema AST, wrapping members
93
+ * marked {@link SensitiveValue} in `Redacted`. Keys the schema doesn't model
94
+ * pass through verbatim.
95
+ */
96
+ export const wrapSensitive = (ast, value) => {
97
+ if (value === null || typeof value !== "object" || isOpaqueValue(value)) {
98
+ return value;
99
+ }
100
+ const node = resolveNode(ast);
101
+ if (node._tag === "Arrays") {
102
+ if (!Array.isArray(value))
103
+ return value;
104
+ const elem = node.rest?.[0];
105
+ return elem ? value.map((v) => wrapSensitive(elem, v)) : value;
106
+ }
107
+ if (node._tag === "Objects" && !Array.isArray(value)) {
108
+ const props = getProps(node);
109
+ if (props.length === 0)
110
+ return value;
111
+ const byName = new Map(props.map((p) => [String(p.name), p]));
112
+ const out = {};
113
+ for (const [k, v] of Object.entries(value)) {
114
+ if (v === undefined)
115
+ continue;
116
+ const prop = byName.get(k);
117
+ if (!prop) {
118
+ out[k] = v;
119
+ }
120
+ else if (getPropAnn(prop, sensitiveValueSymbol) !== undefined &&
121
+ typeof v === "string") {
122
+ out[k] = Redacted.make(v);
123
+ }
124
+ else {
125
+ out[k] = wrapSensitive(prop.type, v);
126
+ }
127
+ }
128
+ return out;
129
+ }
130
+ return value;
131
+ };
132
+ const defaultErrorEnvelope = (body) => {
133
+ if (body === null || typeof body !== "object")
134
+ return undefined;
135
+ const b = body;
136
+ const code = typeof b.code === "string" || typeof b.code === "number"
137
+ ? b.code
138
+ : undefined;
139
+ const message = typeof b.message === "string"
140
+ ? b.message
141
+ : typeof b.error === "string"
142
+ ? b.error
143
+ : undefined;
144
+ return { code, message };
145
+ };
146
+ // Bridge: Protocol.decode is typed as Effect<unknown> (no error channel),
147
+ // but REST failures are real typed errors that operations re-surface via
148
+ // their `errors: [...]` lists. Fail with the instance and erase the type
149
+ // here; the generated operation annotations reintroduce it for callers.
150
+ const fail = (e) => Effect.fail(e);
151
+ /**
152
+ * Build a `Layer<Protocol>` for a simple REST JSON API. Assign the result to
153
+ * a module-level const in the provider's `protocol.ts` — `API.make` memoizes
154
+ * protocol layers by value identity.
155
+ */
156
+ export const makeRestProtocol = (options) => {
157
+ const errorEnvelope = options.errorEnvelope ?? defaultErrorEnvelope;
158
+ const statusMap = options.statusMap ?? HTTP_STATUS_MAP;
159
+ const encode = ({ input, inputAst, }) => Effect.gen(function* () {
160
+ const creds = yield* options.credentials;
161
+ const http = getAnn(inputAst, httpSymbol);
162
+ let baseUrl;
163
+ try {
164
+ baseUrl = options.baseUrl(creds, {
165
+ uri: http?.uri ?? "",
166
+ method: http?.method ?? "",
167
+ });
168
+ }
169
+ catch (e) {
170
+ // A baseUrl that refuses the route (missing scope in the
171
+ // credentials) fails the call with that error, typed for callers by
172
+ // the operation's declared error channel.
173
+ return yield* Effect.fail(e);
174
+ }
175
+ return buildRequest({
176
+ input: unwrapRedactedDeep(input),
177
+ inputAst,
178
+ baseUrl,
179
+ headers: options.headers(creds),
180
+ mapMemberHeader: options.mapMemberHeader,
181
+ unknownKeyToWire: options.unknownKeyToWire,
182
+ });
183
+ });
184
+ const decode = ({ response, outputAst, errors: errorClasses, }) => Effect.gen(function* () {
185
+ // Read as text and parse tolerantly — error pages are often non-JSON.
186
+ const text = (yield* response.text.pipe(Effect.orDie)) ?? "";
187
+ if (process.env.DISTILLED_DEBUG_HTTP) {
188
+ console.error(`[distilled] <- ${response.status} ${text.slice(0, 400)}`);
189
+ }
190
+ let json;
191
+ let nonJson = false;
192
+ if (text.trim().length > 0) {
193
+ try {
194
+ json = JSON.parse(text);
195
+ }
196
+ catch {
197
+ nonJson = true;
198
+ }
199
+ }
200
+ const status = response.status;
201
+ const headers = response.headers;
202
+ if (status >= 400) {
203
+ const env = (nonJson ? undefined : errorEnvelope(json)) ?? {};
204
+ const message = env.message ??
205
+ (nonJson && text.trim() ? text.trim() : `HTTP ${status}`);
206
+ // 1. Per-operation typed error (matcher metadata on the class).
207
+ const typed = matchTypedError(errorClasses, status, [
208
+ {
209
+ code: typeof env.code === "number" ? env.code : undefined,
210
+ message,
211
+ },
212
+ ]);
213
+ if (typed !== undefined)
214
+ return yield* fail(typed);
215
+ // 2. Status-mapped class (retryAfter only stamps on retryable
216
+ // statuses — parseRetryAfterForStatus gates on that).
217
+ const StatusErrorClass = statusMap[status];
218
+ if (StatusErrorClass) {
219
+ return yield* fail(new StatusErrorClass({
220
+ message,
221
+ retryAfter: parseRetryAfterForStatus(status, headers),
222
+ }));
223
+ }
224
+ // 3. Unmapped 5xx (e.g. proxy-specific statuses) → retryable server
225
+ // error rather than the unknown fallback.
226
+ if (status >= 500) {
227
+ return yield* fail(new InternalServerError({
228
+ message,
229
+ retryAfter: parseRetryAfterForStatus(status, headers),
230
+ }));
231
+ }
232
+ // 4. Provider fallback.
233
+ return yield* fail(options.unknownError({
234
+ status,
235
+ code: env.code,
236
+ message,
237
+ body: nonJson ? text : json,
238
+ headers,
239
+ }));
240
+ }
241
+ // 2xx: the response body IS the payload (no envelope). Wire→TS key
242
+ // mapping is schema-driven; `RawResponseRoot` responses are the body
243
+ // verbatim (mapKeys handles arrays/scalars structurally either way).
244
+ let body = nonJson ? text : (json ?? {});
245
+ if (options.transformResponse)
246
+ body = options.transformResponse(body);
247
+ return wrapSensitive(outputAst, mapKeys(outputAst, body, "decode"));
248
+ });
249
+ return Layer.succeed(API.Protocol, API.Protocol.of({
250
+ // Erase encode's credentials requirement (resolved on the calling
251
+ // fiber; see RestProtocolOptions.credentials).
252
+ encode: (args) => encode(args),
253
+ decode,
254
+ }));
255
+ };
256
+ //# sourceMappingURL=protocol-rest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol-rest.js","sourceRoot":"","sources":["../src/protocol-rest.ts"],"names":[],"mappings":"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"}
package/lib/retry.d.ts CHANGED
@@ -87,10 +87,16 @@ export declare const readServerRetryHintCapMsFromEnv: () => number;
87
87
  * - Honors `error.retryAfter` (server-provided hint) with precedence, capped
88
88
  * by {@link DEFAULT_SERVER_RETRY_HINT_CAP_MS} by default; override with
89
89
  * `DISTILLED_SERVER_RETRY_HINT_CAP_MS` or {@link ServerRetryHintCapMs}
90
- * - Otherwise uses exponential backoff starting at 100ms with a factor of 2
90
+ * - Otherwise uses exponential backoff starting at 250ms with a factor of 2,
91
+ * capped at 5s per delay
91
92
  * - Ensures at least 500ms delay for throttling errors
92
- * - Limits to 5 retry attempts
93
+ * - Limits to 8 retry attempts
93
94
  * - Applies jitter to avoid thundering herd
95
+ *
96
+ * The 250ms/5s-cap/8-attempt shape (~20s of total patience) comes from
97
+ * alchemy's Cloudflare provider suite, where transient auth blips under
98
+ * high request concurrency routinely outlast a short 5-attempt/3s policy
99
+ * while a genuinely broken credential still fails within seconds.
94
100
  */
95
101
  export declare const makeDefault: Factory;
96
102
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAG5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAO5C;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAC7C;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;CAChD;AAED;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAMvC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,SAAU,MAAM,8CACP,CAAC;AAMvC;;;GAGG;AACH,eAAO,MAAM,QAAQ,wHAEpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,QAAS,QAAQ,CAAC,QAAQ,2HAK1C,CAAC;AAMJ;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,QAAS,CAAC;AAIvD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,iCAEhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,UAAW,MAAM,sCACT,CAAC;AAc7C;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,QAAO,MAWhD,CAAC;AA4DJ;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,EAAE,OAcxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAQ9B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAO/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAQ7B,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAO9B,CAAC"}
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAG5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAO5C;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAC7C;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;CAChD;AAED;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAMvC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,SAAU,MAAM,8CACP,CAAC;AAMvC;;;GAGG;AACH,eAAO,MAAM,QAAQ,wHAEpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,QAAS,QAAQ,CAAC,QAAQ,2HAG1C,CAAC;AAMJ;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,QAAS,CAAC;AAIvD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,iCAEhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,UAAW,MAAM,sCACT,CAAC;AAc7C;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,QAAO,MAKhD,CAAC;AAwDJ;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,WAAW,EAAE,OAoBxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAQ9B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAO/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAQ7B,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAO9B,CAAC"}