@distilled.cloud/core 0.30.3 → 1.0.0-rc.1
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/lib/api.d.ts +165 -0
- package/lib/api.d.ts.map +1 -0
- package/lib/api.js +178 -0
- package/lib/api.js.map +1 -0
- package/lib/codegen/cli.d.ts +29 -0
- package/lib/codegen/cli.d.ts.map +1 -0
- package/lib/codegen/cli.js +165 -0
- package/lib/codegen/cli.js.map +1 -0
- package/lib/codegen/emit.d.ts +129 -0
- package/lib/codegen/emit.d.ts.map +1 -0
- package/lib/codegen/emit.js +105 -0
- package/lib/codegen/emit.js.map +1 -0
- package/lib/codegen/format.d.ts +23 -0
- package/lib/codegen/format.d.ts.map +1 -0
- package/lib/codegen/format.js +28 -0
- package/lib/codegen/format.js.map +1 -0
- package/lib/codegen/generator.d.ts +334 -0
- package/lib/codegen/generator.d.ts.map +1 -0
- package/lib/codegen/generator.js +691 -0
- package/lib/codegen/generator.js.map +1 -0
- package/lib/codegen/graph.d.ts +36 -0
- package/lib/codegen/graph.d.ts.map +1 -0
- package/lib/codegen/graph.js +136 -0
- package/lib/codegen/graph.js.map +1 -0
- package/lib/codegen/members.d.ts +25 -0
- package/lib/codegen/members.d.ts.map +1 -0
- package/lib/codegen/members.js +55 -0
- package/lib/codegen/members.js.map +1 -0
- package/lib/codegen/naming.d.ts +29 -0
- package/lib/codegen/naming.d.ts.map +1 -0
- package/lib/codegen/naming.js +74 -0
- package/lib/codegen/naming.js.map +1 -0
- package/lib/codegen/openapi-cli.d.ts +38 -0
- package/lib/codegen/openapi-cli.d.ts.map +1 -0
- package/lib/codegen/openapi-cli.js +107 -0
- package/lib/codegen/openapi-cli.js.map +1 -0
- package/lib/codegen/openapi.d.ts +115 -0
- package/lib/codegen/openapi.d.ts.map +1 -0
- package/lib/codegen/openapi.js +1220 -0
- package/lib/codegen/openapi.js.map +1 -0
- package/lib/codegen/operations.d.ts +24 -0
- package/lib/codegen/operations.d.ts.map +1 -0
- package/lib/codegen/operations.js +56 -0
- package/lib/codegen/operations.js.map +1 -0
- package/lib/codegen/pagination.d.ts +39 -0
- package/lib/codegen/pagination.d.ts.map +1 -0
- package/lib/codegen/pagination.js +33 -0
- package/lib/codegen/pagination.js.map +1 -0
- package/lib/codegen/prelude.d.ts +15 -0
- package/lib/codegen/prelude.d.ts.map +1 -0
- package/lib/codegen/prelude.js +60 -0
- package/lib/codegen/prelude.js.map +1 -0
- package/lib/error-category.d.ts +28 -0
- package/lib/error-category.d.ts.map +1 -0
- package/lib/error-category.js +46 -0
- package/lib/error-category.js.map +1 -0
- package/lib/errors.d.ts +1 -0
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +1 -0
- package/lib/errors.js.map +1 -1
- package/lib/json-patch.d.ts +25 -32
- package/lib/json-patch.d.ts.map +1 -1
- package/lib/json-patch.js +23 -95
- package/lib/json-patch.js.map +1 -1
- package/lib/pagination.d.ts +37 -51
- package/lib/pagination.d.ts.map +1 -1
- package/lib/pagination.js +72 -90
- package/lib/pagination.js.map +1 -1
- package/lib/protocol-http.d.ts +74 -0
- package/lib/protocol-http.d.ts.map +1 -0
- package/lib/protocol-http.js +554 -0
- package/lib/protocol-http.js.map +1 -0
- package/lib/protocol-rest.d.ts +124 -0
- package/lib/protocol-rest.d.ts.map +1 -0
- package/lib/protocol-rest.js +242 -0
- package/lib/protocol-rest.js.map +1 -0
- package/lib/retry.d.ts +8 -2
- package/lib/retry.d.ts.map +1 -1
- package/lib/retry.js +21 -15
- package/lib/retry.js.map +1 -1
- package/lib/schema.d.ts +7 -8
- package/lib/schema.d.ts.map +1 -1
- package/lib/schema.js +7 -8
- package/lib/schema.js.map +1 -1
- package/lib/trait.d.ts +150 -0
- package/lib/trait.d.ts.map +1 -0
- package/lib/trait.js +107 -0
- package/lib/trait.js.map +1 -0
- package/package.json +18 -75
- package/src/api.ts +446 -0
- package/src/codegen/cli.ts +268 -0
- package/src/codegen/emit.ts +207 -0
- package/src/codegen/format.ts +47 -0
- package/src/codegen/generator.ts +1153 -0
- package/src/codegen/graph.ts +151 -0
- package/src/codegen/members.ts +71 -0
- package/src/codegen/naming.ts +86 -0
- package/src/codegen/openapi-cli.ts +166 -0
- package/src/codegen/openapi.ts +1450 -0
- package/src/codegen/operations.ts +76 -0
- package/src/codegen/pagination.ts +71 -0
- package/src/codegen/prelude.ts +70 -0
- package/src/error-category.ts +84 -0
- package/src/errors.ts +2 -0
- package/src/json-patch.ts +26 -110
- package/src/pagination.ts +86 -142
- package/src/protocol-http.ts +699 -0
- package/src/protocol-rest.ts +367 -0
- package/src/retry.ts +20 -21
- package/src/schema.ts +7 -8
- package/src/trait.ts +238 -0
- package/README.md +0 -30
- package/lib/client.d.ts +0 -167
- package/lib/client.d.ts.map +0 -1
- package/lib/client.js +0 -659
- package/lib/client.js.map +0 -1
- package/lib/schemas.d.ts +0 -60
- package/lib/schemas.d.ts.map +0 -1
- package/lib/schemas.js +0 -79
- package/lib/schemas.js.map +0 -1
- package/lib/sensitive.d.ts +0 -71
- package/lib/sensitive.d.ts.map +0 -1
- package/lib/sensitive.js +0 -96
- package/lib/sensitive.js.map +0 -1
- package/lib/traits.d.ts +0 -421
- package/lib/traits.d.ts.map +0 -1
- package/lib/traits.js +0 -737
- package/lib/traits.js.map +0 -1
- package/src/client.ts +0 -1177
- package/src/schemas.ts +0 -128
- package/src/sensitive.ts +0 -119
- 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,124 @@
|
|
|
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
|
+
/** API base URL from the resolved credentials. */
|
|
93
|
+
readonly baseUrl: (credentials: C) => string;
|
|
94
|
+
/** Auth (and any fixed) headers from the resolved credentials. */
|
|
95
|
+
readonly headers: (credentials: C) => Record<string, string>;
|
|
96
|
+
/**
|
|
97
|
+
* Extract `{ code?, message? }` from a parsed non-2xx JSON body. Default:
|
|
98
|
+
* lenient `{ code?, message? | error? }` (covers the common REST error
|
|
99
|
+
* envelopes).
|
|
100
|
+
*/
|
|
101
|
+
readonly errorEnvelope?: (body: unknown) => RestErrorEnvelope | undefined;
|
|
102
|
+
/**
|
|
103
|
+
* HTTP status → error class constructed as `new Cls({ message, retryAfter
|
|
104
|
+
* })`. Default: core `HTTP_STATUS_MAP`. Consulted after per-op typed error
|
|
105
|
+
* matching; unmapped 5xx fall back to `InternalServerError`, everything
|
|
106
|
+
* else to {@link unknownError}.
|
|
107
|
+
*/
|
|
108
|
+
readonly statusMap?: Readonly<Record<number, new (args: any) => any>>;
|
|
109
|
+
/** Fallback error for failures nothing else matched. */
|
|
110
|
+
readonly unknownError: (info: RestErrorInfo) => unknown;
|
|
111
|
+
/** Transform the parsed 2xx JSON before decoding (e.g. stripNulls). */
|
|
112
|
+
readonly transformResponse?: (body: unknown) => unknown;
|
|
113
|
+
/** Passed through to `buildRequest` (member-header transforms). */
|
|
114
|
+
readonly mapMemberHeader?: (name: string, value: string) => string;
|
|
115
|
+
/** Passed through to `buildRequest` (wire names for unmodeled input keys). */
|
|
116
|
+
readonly unknownKeyToWire?: (key: string) => string;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Build a `Layer<Protocol>` for a simple REST JSON API. Assign the result to
|
|
120
|
+
* a module-level const in the provider's `protocol.ts` — `API.make` memoizes
|
|
121
|
+
* protocol layers by value identity.
|
|
122
|
+
*/
|
|
123
|
+
export declare const makeRestProtocol: <C>(options: RestProtocolOptions<C>) => Layer.Layer<API.Protocol>;
|
|
124
|
+
//# 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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAG7C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAkBhC,eAAO,MAAM,oBAAoB,eAEhC,CAAC;AACF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,YAAa,OAAO,oCACH,CAAC;AAE7C,eAAO,MAAM,iBAAiB,eAE7B,CAAC;AACF;;;GAGG;AACH,eAAO,MAAM,WAAW,YAAa,OAAO,oCACH,CAAC;AAE1C,eAAO,MAAM,qBAAqB,eAEjC,CAAC;AACF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,uCACiB,CAAC;AAc9C;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,UAAW,OAAO,KAAG,OAYnD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,QAAS,GAAG,CAAC,GAAG,SAAS,OAAO,KAAG,OAgC5D,CAAC;AAMF,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACjD,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,MAAM,CAAC;IAC7C,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7D;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,iBAAiB,GAAG,SAAS,CAAC;IAC1E;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;IACtE,wDAAwD;IACxD,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC;IACxD,uEAAuE;IACvE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;IACxD,mEAAmE;IACnE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACnE,8EAA8E;IAC9E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACrD;AAyBD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,WACvB,mBAAmB,CAAC,CAAC,CAAC,KAC9B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CA0H1B,CAAC"}
|
|
@@ -0,0 +1,242 @@
|
|
|
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 { makeAnnotation } from "./trait.js";
|
|
31
|
+
import { buildRequest, 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
|
+
return buildRequest({
|
|
162
|
+
input: unwrapRedactedDeep(input),
|
|
163
|
+
inputAst,
|
|
164
|
+
baseUrl: options.baseUrl(creds),
|
|
165
|
+
headers: options.headers(creds),
|
|
166
|
+
mapMemberHeader: options.mapMemberHeader,
|
|
167
|
+
unknownKeyToWire: options.unknownKeyToWire,
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
const decode = ({ response, outputAst, errors: errorClasses, }) => Effect.gen(function* () {
|
|
171
|
+
// Read as text and parse tolerantly — error pages are often non-JSON.
|
|
172
|
+
const text = (yield* response.text.pipe(Effect.orDie)) ?? "";
|
|
173
|
+
if (process.env.DISTILLED_DEBUG_HTTP) {
|
|
174
|
+
console.error(`[distilled] <- ${response.status} ${text.slice(0, 400)}`);
|
|
175
|
+
}
|
|
176
|
+
let json;
|
|
177
|
+
let nonJson = false;
|
|
178
|
+
if (text.trim().length > 0) {
|
|
179
|
+
try {
|
|
180
|
+
json = JSON.parse(text);
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
nonJson = true;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
const status = response.status;
|
|
187
|
+
const headers = response.headers;
|
|
188
|
+
if (status >= 400) {
|
|
189
|
+
const env = (nonJson ? undefined : errorEnvelope(json)) ?? {};
|
|
190
|
+
const message = env.message ??
|
|
191
|
+
(nonJson && text.trim() ? text.trim() : `HTTP ${status}`);
|
|
192
|
+
// 1. Per-operation typed error (matcher metadata on the class).
|
|
193
|
+
const typed = matchTypedError(errorClasses, status, [
|
|
194
|
+
{
|
|
195
|
+
code: typeof env.code === "number" ? env.code : undefined,
|
|
196
|
+
message,
|
|
197
|
+
},
|
|
198
|
+
]);
|
|
199
|
+
if (typed !== undefined)
|
|
200
|
+
return yield* fail(typed);
|
|
201
|
+
// 2. Status-mapped class (retryAfter only stamps on retryable
|
|
202
|
+
// statuses — parseRetryAfterForStatus gates on that).
|
|
203
|
+
const StatusErrorClass = statusMap[status];
|
|
204
|
+
if (StatusErrorClass) {
|
|
205
|
+
return yield* fail(new StatusErrorClass({
|
|
206
|
+
message,
|
|
207
|
+
retryAfter: parseRetryAfterForStatus(status, headers),
|
|
208
|
+
}));
|
|
209
|
+
}
|
|
210
|
+
// 3. Unmapped 5xx (e.g. proxy-specific statuses) → retryable server
|
|
211
|
+
// error rather than the unknown fallback.
|
|
212
|
+
if (status >= 500) {
|
|
213
|
+
return yield* fail(new InternalServerError({
|
|
214
|
+
message,
|
|
215
|
+
retryAfter: parseRetryAfterForStatus(status, headers),
|
|
216
|
+
}));
|
|
217
|
+
}
|
|
218
|
+
// 4. Provider fallback.
|
|
219
|
+
return yield* fail(options.unknownError({
|
|
220
|
+
status,
|
|
221
|
+
code: env.code,
|
|
222
|
+
message,
|
|
223
|
+
body: nonJson ? text : json,
|
|
224
|
+
headers,
|
|
225
|
+
}));
|
|
226
|
+
}
|
|
227
|
+
// 2xx: the response body IS the payload (no envelope). Wire→TS key
|
|
228
|
+
// mapping is schema-driven; `RawResponseRoot` responses are the body
|
|
229
|
+
// verbatim (mapKeys handles arrays/scalars structurally either way).
|
|
230
|
+
let body = nonJson ? text : (json ?? {});
|
|
231
|
+
if (options.transformResponse)
|
|
232
|
+
body = options.transformResponse(body);
|
|
233
|
+
return wrapSensitive(outputAst, mapKeys(outputAst, body, "decode"));
|
|
234
|
+
});
|
|
235
|
+
return Layer.succeed(API.Protocol, API.Protocol.of({
|
|
236
|
+
// Erase encode's credentials requirement (resolved on the calling
|
|
237
|
+
// fiber; see RestProtocolOptions.credentials).
|
|
238
|
+
encode: (args) => encode(args),
|
|
239
|
+
decode,
|
|
240
|
+
}));
|
|
241
|
+
};
|
|
242
|
+
//# 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
|
|
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
|
|
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
|
/**
|
package/lib/retry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"
|
|
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"}
|
package/lib/retry.js
CHANGED
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
* for that SDK without wrapping every call with `Effect.retry`.
|
|
9
9
|
*/
|
|
10
10
|
import * as Config from "effect/Config";
|
|
11
|
-
import * as ConfigProvider from "effect/ConfigProvider";
|
|
12
11
|
import * as Context from "effect/Context";
|
|
13
12
|
import * as Duration from "effect/Duration";
|
|
14
13
|
import * as Effect from "effect/Effect";
|
|
@@ -45,7 +44,7 @@ export const jittered = Schedule.addDelay(() => Effect.succeed(Duration.millis(M
|
|
|
45
44
|
/**
|
|
46
45
|
* Cap delay at a maximum duration.
|
|
47
46
|
*/
|
|
48
|
-
export const capped = (max) => Schedule.modifyDelay(({ duration }) => Effect.succeed(Duration.isGreaterThan(duration, max) ?
|
|
47
|
+
export const capped = (max) => Schedule.modifyDelay(({ duration }) => Effect.succeed(Duration.isGreaterThan(duration, max) ? max : duration));
|
|
49
48
|
// ============================================================================
|
|
50
49
|
// Server Hint Helpers
|
|
51
50
|
// ============================================================================
|
|
@@ -89,10 +88,7 @@ const serverRetryHintCapMsConfig = Config.string(ENV_SERVER_RETRY_HINT_CAP_MS).p
|
|
|
89
88
|
* Effect's {@link Config} (must be a non-negative finite number; invalid
|
|
90
89
|
* values fall back to the default).
|
|
91
90
|
*/
|
|
92
|
-
export const readServerRetryHintCapMsFromEnv = () => Effect.runSync(serverRetryHintCapMsConfig.pipe(Effect.orElseSucceed(() => DEFAULT_SERVER_RETRY_HINT_CAP_MS)
|
|
93
|
-
// The default ConfigProvider caches env reads; use a fresh provider so
|
|
94
|
-
// each call observes the current process.env value.
|
|
95
|
-
Effect.provideService(ConfigProvider.ConfigProvider, ConfigProvider.fromEnv())));
|
|
91
|
+
export const readServerRetryHintCapMsFromEnv = () => Effect.runSync(serverRetryHintCapMsConfig.pipe(Effect.orElseSucceed(() => DEFAULT_SERVER_RETRY_HINT_CAP_MS)));
|
|
96
92
|
const resolveServerRetryHintCapMs = () => Effect.gen(function* () {
|
|
97
93
|
const fromLayer = yield* Effect.serviceOption(ServerRetryHintCapMs);
|
|
98
94
|
if (Option.isSome(fromLayer)) {
|
|
@@ -100,7 +96,7 @@ const resolveServerRetryHintCapMs = () => Effect.gen(function* () {
|
|
|
100
96
|
if (Number.isFinite(n) && n >= 0)
|
|
101
97
|
return Math.trunc(n);
|
|
102
98
|
}
|
|
103
|
-
return yield* serverRetryHintCapMsConfig.pipe(Effect.orElseSucceed(() => DEFAULT_SERVER_RETRY_HINT_CAP_MS)
|
|
99
|
+
return yield* serverRetryHintCapMsConfig.pipe(Effect.orElseSucceed(() => DEFAULT_SERVER_RETRY_HINT_CAP_MS));
|
|
104
100
|
});
|
|
105
101
|
/**
|
|
106
102
|
* Extract a server-provided retry hint (in milliseconds) from an error's
|
|
@@ -142,22 +138,32 @@ const honorServerHint = (lastError, baseline) => Schedule.modifyDelay(Effect.fnU
|
|
|
142
138
|
* - Honors `error.retryAfter` (server-provided hint) with precedence, capped
|
|
143
139
|
* by {@link DEFAULT_SERVER_RETRY_HINT_CAP_MS} by default; override with
|
|
144
140
|
* `DISTILLED_SERVER_RETRY_HINT_CAP_MS` or {@link ServerRetryHintCapMs}
|
|
145
|
-
* - Otherwise uses exponential backoff starting at
|
|
141
|
+
* - Otherwise uses exponential backoff starting at 250ms with a factor of 2,
|
|
142
|
+
* capped at 5s per delay
|
|
146
143
|
* - Ensures at least 500ms delay for throttling errors
|
|
147
|
-
* - Limits to
|
|
144
|
+
* - Limits to 8 retry attempts
|
|
148
145
|
* - Applies jitter to avoid thundering herd
|
|
146
|
+
*
|
|
147
|
+
* The 250ms/5s-cap/8-attempt shape (~20s of total patience) comes from
|
|
148
|
+
* alchemy's Cloudflare provider suite, where transient auth blips under
|
|
149
|
+
* high request concurrency routinely outlast a short 5-attempt/3s policy
|
|
150
|
+
* while a genuinely broken credential still fails within seconds.
|
|
149
151
|
*/
|
|
150
152
|
export const makeDefault = (lastError) => ({
|
|
151
153
|
while: (error) => isTransientError(error),
|
|
154
|
+
// The 5s cap applies to the exponential backoff BEFORE the server hint is
|
|
155
|
+
// considered, so a server-provided retryAfter longer than 5s is honored in
|
|
156
|
+
// full (bounded only by the 60s hint cap inside honorServerHint). Capping
|
|
157
|
+
// after the hint would silently clamp e.g. a Retry-After: 30 to 5s.
|
|
152
158
|
schedule: Schedule.max([
|
|
153
|
-
pipe(Schedule.exponential(
|
|
159
|
+
pipe(Schedule.exponential(250, 2), capped(Duration.seconds(5)), honorServerHint(lastError, (duration, error) => {
|
|
154
160
|
if (isThrottling(error) && Duration.toMillis(duration) < 500) {
|
|
155
161
|
return Duration.millis(500);
|
|
156
162
|
}
|
|
157
163
|
return duration;
|
|
158
|
-
})),
|
|
159
|
-
Schedule.recurs(
|
|
160
|
-
])
|
|
164
|
+
}), jittered),
|
|
165
|
+
Schedule.recurs(8),
|
|
166
|
+
]),
|
|
161
167
|
});
|
|
162
168
|
/**
|
|
163
169
|
* Factory for the throttling-only retry policy. Honors server hints when
|
|
@@ -165,7 +171,7 @@ export const makeDefault = (lastError) => ({
|
|
|
165
171
|
*/
|
|
166
172
|
export const throttlingFactory = (lastError) => ({
|
|
167
173
|
while: (error) => isThrottling(error),
|
|
168
|
-
schedule: pipe(Schedule.exponential(1000, 2),
|
|
174
|
+
schedule: pipe(Schedule.exponential(1000, 2), capped(Duration.seconds(5)), honorServerHint(lastError), jittered),
|
|
169
175
|
});
|
|
170
176
|
/**
|
|
171
177
|
* Retry options that retries all throttling errors indefinitely.
|
|
@@ -184,7 +190,7 @@ export const throttlingOptions = {
|
|
|
184
190
|
*/
|
|
185
191
|
export const transientFactory = (lastError) => ({
|
|
186
192
|
while: isTransientError,
|
|
187
|
-
schedule: pipe(Schedule.exponential(1000, 2),
|
|
193
|
+
schedule: pipe(Schedule.exponential(1000, 2), capped(Duration.seconds(5)), honorServerHint(lastError), jittered),
|
|
188
194
|
});
|
|
189
195
|
/**
|
|
190
196
|
* Retry options that retries all transient errors indefinitely.
|
package/lib/retry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"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"}
|
package/lib/schema.d.ts
CHANGED
|
@@ -2,16 +2,15 @@
|
|
|
2
2
|
* `any`-collapsing re-export of `effect/Schema` for generated service files.
|
|
3
3
|
*
|
|
4
4
|
* This is the single, shared definition consumed by every code-generated
|
|
5
|
-
* provider package
|
|
6
|
-
*
|
|
5
|
+
* provider package via `@distilled.cloud/core/schema`. Do not copy it into
|
|
6
|
+
* individual packages.
|
|
7
7
|
*
|
|
8
8
|
* Every real TYPE (`Schema`, `Codec`, `Top`, …) is re-exported untouched, so
|
|
9
|
-
* the `Schema.Schema<Foo>`
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* real types.
|
|
9
|
+
* the `Schema.Schema<Foo>` annotations on generated consts (and the public
|
|
10
|
+
* `.d.ts`) stay precise. The schema *construction surface* (`Struct`,
|
|
11
|
+
* `optional`, `suspend`, …) and the leaf scalar schemas are retyped to `any`,
|
|
12
|
+
* so the compiler instantiates none of the heavy Schema generics while
|
|
13
|
+
* building a service file — the explicit annotations carry the real types.
|
|
15
14
|
*
|
|
16
15
|
* Overriding a *value* export never affects the same-named *type* export (they
|
|
17
16
|
* live in separate namespaces and continue to flow through `export *`), so
|
package/lib/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,cAAc,eAAe,CAAC;AAI9B,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAGrC,eAAO,MAAM,QAAQ,EAAE,KAA2B,CAAC;AACnD,eAAO,MAAM,MAAM,EAAE,KAAyB,CAAC;AAC/C,eAAO,MAAM,OAAO,EAAE,KAA0B,CAAC;AACjD,eAAO,MAAM,KAAK,EAAE,KAAwB,CAAC;AAC7C,eAAO,MAAM,MAAM,EAAE,KAAyB,CAAC;AAC/C,eAAO,MAAM,KAAK,EAAE,KAAwB,CAAC;AAC7C,eAAO,MAAM,OAAO,EAAE,KAA0B,CAAC;AACjD,eAAO,MAAM,QAAQ,EAAE,KAA2B,CAAC;AACnD,eAAO,MAAM,MAAM,EAAE,KAAyB,CAAC;AAC/C,eAAO,MAAM,KAAK,EAAE,KAAwB,CAAC;AAC7C,eAAO,MAAM,UAAU,EAAE,KAA6B,CAAC;AAGvD,eAAO,MAAM,MAAM,EAAE,GAAc,CAAC;AACpC,eAAO,MAAM,MAAM,EAAE,GAAc,CAAC;AACpC,eAAO,MAAM,OAAO,EAAE,GAAe,CAAC;AACtC,eAAO,MAAM,IAAI,EAAE,GAAY,CAAC;AAChC,eAAO,MAAM,OAAO,EAAE,GAAe,CAAC;AACtC,eAAO,MAAM,IAAI,EAAE,GAAY,CAAC;AAChC,eAAO,MAAM,IAAI,EAAE,GAAY,CAAC;AAChC,eAAO,MAAM,GAAG,EAAE,GAAW,CAAC"}
|