@nxgt/httpyz 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Steve Tsala
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -41,7 +41,7 @@ export const http = createHttpClient({
41
41
  | Option | Default | |
42
42
  | --- | --- | --- |
43
43
  | `baseUrl` | none: relative URLs, which only a browser resolves | may carry a path prefix: `https://example.com/api` |
44
- | `fetch` | `globalThis.fetch`, looked up at each call | anything that takes a `Request` and resolves to a `Response`: `async (request) => app.fetch(request)` for a Hono app, in tests |
44
+ | `fetch` | `globalThis.fetch`, looked up at each call | anything that takes a `Request` and returns a `Response`, or a promise of one: a Hono app's `app.fetch`, in tests |
45
45
  | `headers` | none | sent with every request: an object, or a function run before each one |
46
46
  | `init` | none | fetch options for every request: `credentials`, `mode`, `cache`… |
47
47
  | `timeout` | none | milliseconds before a call fails with `TimeoutError` |
@@ -383,6 +383,20 @@ outermost, and all of them run inside `retry` and `auth`, so they see each
383
383
  try, with its token. A middleware's own error comes through as it is, and is
384
384
  not retried.
385
385
 
386
+ `http.use()` adds middleware to a client you already have. It changes the
387
+ client in place, and returns it:
388
+
389
+ ```ts
390
+ http.use(timing).use(logging);
391
+ ```
392
+
393
+ - **After the chain the client has:** retry → auth → `use` → what `use()`
394
+ added, in order → fetch.
395
+ - **From then on:** a call already sent keeps the chain it started with.
396
+ - **Groups:** a group runs through its parent's middleware, even what is
397
+ added after the group was made. What is added to a group is the group's
398
+ alone, and its own groups'.
399
+
386
400
  Headers that only need a value, such as a `traceparent` from the current
387
401
  span, need no middleware: `headers` may be a function.
388
402
 
@@ -504,7 +518,7 @@ come from its calls. See [Setup](#setup).
504
518
  | Option | Type | Default | Description |
505
519
  | --- | --- | --- | --- |
506
520
  | `baseUrl` | `string \| URL` | none | where the API is served; a trailing `/` is dropped |
507
- | `fetch` | `(request: Request) => Promise<Response>` | `globalThis.fetch`, looked up at each call | sends each request |
521
+ | `fetch` | `(request: Request) => Response \| Promise<Response>` | `globalThis.fetch`, looked up at each call | sends each request; it may answer at once, as `app.fetch` of Hono does |
508
522
  | `headers` | `HeadersInit \| (() => HeadersInit \| Promise<HeadersInit>)` | none | sent with every request; a function runs before each one |
509
523
  | `init` | `Omit<RequestInit, 'method' \| 'body' \| 'headers' \| 'signal'>` | none | fetch options for every request |
510
524
  | `timeout` | `number` | none | milliseconds before a call fails with a `TimeoutError` |
@@ -523,7 +537,9 @@ function isAbortError(error: unknown): boolean;
523
537
  Whether `error` ended a call because it was aborted rather than failed: a
524
538
  `DOMException` named `AbortError` or `TimeoutError`, or any `Error` named
525
539
  `AbortError`. It is false for the client's own `TimeoutError`, and is a
526
- plain `boolean`, not a type guard. See [Cancelling](#cancelling).
540
+ plain `boolean`, not a type guard: as `error is Error`, the branch where it
541
+ is false would drop `Error` from the error's type, though a failure is an
542
+ `Error` too. See [Cancelling](#cancelling).
527
543
 
528
544
  ##### `unwrap`
529
545
 
@@ -682,6 +698,7 @@ What `createHttpClient` returns.
682
698
  | `events` | `(path: Path, ...args: EventsArgs<Path, E, Decoded>) => EventStream<StreamEvent<E, Decoded>>` | server-sent events. See [Server-sent events](#server-sent-events) |
683
699
  | `lines` | `(path: Path, ...args: LinesArgs<Path, I, Decoded>) => Stream<StreamItem<I, Decoded>>` | JSON Lines. See [JSON Lines](#json-lines) |
684
700
  | `group` | `() => HttpGroup` | the same client, for calls that end together. See [Cancelling](#cancelling) |
701
+ | `use` | `(...middlewares: Middleware[]) => this` | adds middleware to this client, in place, and returns it. See [Middleware](#middleware) |
685
702
 
686
703
  ##### `HttpGroup`
687
704
 
@@ -908,7 +925,8 @@ type R = ReplyOf<{ 200: typeof Employee; 204: null }>;
908
925
 
909
926
  With a media type map, `type` is that media type, and an unchecked `data` is
910
927
  `string` for `text/*`, `FormData` for a form, `unknown` for JSON and `Blob`
911
- for the rest.
928
+ for the rest. An empty map, `{}`, reads as `null` does: a reply without a
929
+ body.
912
930
 
913
931
  ##### `AnyReply`
914
932
 
@@ -9,6 +9,10 @@
9
9
  * a signal aborted without a reason of its own, or by `AbortSignal.timeout()`,
10
10
  * a later call with the same `latest`, or a group's `cancel()`. The client's
11
11
  * own `TimeoutError`, past `timeout`, is a failure, not an abort.
12
+ *
13
+ * A `boolean`, not a type guard: as `error is Error`, the branch where it is
14
+ * false would drop `Error` from the error's type, though a failure is an
15
+ * `Error` too, and an `Error`-typed catch would be `never` there.
12
16
  */
13
17
  export declare function isAbortError(error: unknown): boolean;
14
18
  /** What the client aborts a call with: an `AbortError`, which `isAbortError` knows. */
@@ -1 +1 @@
1
- {"version":3,"file":"abort.d.ts","sourceRoot":"","sources":["../../src/cancel/abort.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKpD;AAED,uFAAuF;AACvF,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,KAAG,YACJ,CAAC;AAEzC,0FAA0F;AAC1F,wBAAgB,SAAS,CAAC,CAAC,EAC1B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,MAAM,EAAE,WAAW,GAAG,SAAS,GAC7B,OAAO,CAAC,CAAC,CAAC,CAUZ;AAED,sFAAsF;AACtF,wBAAgB,WAAW,CAC1B,GAAG,OAAO,EAAE,CAAC,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAC5C,WAAW,GAAG,SAAS,CAKzB"}
1
+ {"version":3,"file":"abort.d.ts","sourceRoot":"","sources":["../../src/cancel/abort.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKpD;AAED,uFAAuF;AACvF,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,KAAG,YACJ,CAAC;AAEzC,0FAA0F;AAC1F,wBAAgB,SAAS,CAAC,CAAC,EAC1B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,MAAM,EAAE,WAAW,GAAG,SAAS,GAC7B,OAAO,CAAC,CAAC,CAAC,CAUZ;AAED,sFAAsF;AACtF,wBAAgB,WAAW,CAC1B,GAAG,OAAO,EAAE,CAAC,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAC5C,WAAW,GAAG,SAAS,CAKzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-http-client.d.ts","sourceRoot":"","sources":["../../src/client/create-http-client.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAEX,UAAU,EACV,iBAAiB,EAEjB,MAAM,EAEN,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,OAAO,EAAE,SAAS,MAAM,EAUpC,CAAC;AAwCF;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,UAAU,CAiV5E"}
1
+ {"version":3,"file":"create-http-client.d.ts","sourceRoot":"","sources":["../../src/client/create-http-client.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAEX,UAAU,EACV,iBAAiB,EAEjB,MAAM,EAEN,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,OAAO,EAAE,SAAS,MAAM,EAUpC,CAAC;AAwCF;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,UAAU,CA8X5E"}
@@ -15,8 +15,11 @@ export interface HttpClientOptions {
15
15
  * browser resolves.
16
16
  */
17
17
  baseUrl?: string | URL;
18
- /** Sends each request. Default: `globalThis.fetch`, looked up at each call. */
19
- fetch?: (request: Request) => Promise<Response>;
18
+ /**
19
+ * Sends each request. Default: `globalThis.fetch`, looked up at each call.
20
+ * It may answer at once, as a Hono app's `app.fetch` does.
21
+ */
22
+ fetch?: (request: Request) => Response | Promise<Response>;
20
23
  /** Sent with every request. A function runs before each one. */
21
24
  headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);
22
25
  /** fetch options for every request: `credentials`, `mode`, `cache`… */
@@ -90,7 +93,11 @@ export type HttpGroup = HttpClient & {
90
93
  /** Aborts on the next `cancel()`: for work of your own that ends with the group's calls. */
91
94
  readonly signal: AbortSignal;
92
95
  };
93
- export type HttpClient = {
96
+ /** `http.get`, `http.post`… : a call for each method. */
97
+ type MethodCalls = {
98
+ readonly [M in Method]: Call;
99
+ };
100
+ export interface HttpClient extends MethodCalls {
94
101
  /** A call with the method as a value: `http.request('get', '/items/{id}', { param })`. */
95
102
  request<Path extends string, R extends Responses | undefined = undefined, Decoded extends boolean = true>(method: Method, path: Path, ...args: RequestArgs<Path, R, Decoded>): Promise<HttpReply<R, Decoded>>;
96
103
  /**
@@ -117,7 +124,14 @@ export type HttpClient = {
117
124
  * is cancelled with it.
118
125
  */
119
126
  group(): HttpGroup;
120
- } & {
121
- readonly [M in Method]: Call;
122
- };
127
+ /**
128
+ * Adds middleware to this client, in place, after the chain it has: retry
129
+ * → auth → `use` → what `use()` added, in order → fetch. It returns the
130
+ * client, and the calls made from then on run through it. A group runs
131
+ * through its parent's, even what is added later; what is added to a group
132
+ * is the group's alone.
133
+ */
134
+ use(...middlewares: Middleware[]): this;
135
+ }
136
+ export {};
123
137
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -830,7 +830,7 @@ function createHttpClient(options = {}) {
830
830
  signal: signals.length > 1 ? AbortSignal.any(signals) : signals[0]
831
831
  };
832
832
  };
833
- const dispatch = async (request, context, timeout, deadline, retry) => {
833
+ const dispatch = async (request, context, timeout, deadline, retry, added) => {
834
834
  const fetch = options.fetch ?? ((sent) => globalThis.fetch(sent));
835
835
  const send = async (sent) => {
836
836
  try {
@@ -846,7 +846,8 @@ function createHttpClient(options = {}) {
846
846
  const layers = [
847
847
  ...again ? [retrying(again)] : [],
848
848
  ...signer ? [signer] : [],
849
- ...options.use ?? []
849
+ ...options.use ?? [],
850
+ ...added
850
851
  ];
851
852
  try {
852
853
  return await compose(layers, send, context)(request);
@@ -891,7 +892,7 @@ function createHttpClient(options = {}) {
891
892
  };
892
893
  return { context, url, init, timeout, retry, signal: signal ?? undefined };
893
894
  };
894
- const request = async (method, path, given = {}) => {
895
+ const request = async (method, path, given, added) => {
895
896
  const {
896
897
  responses,
897
898
  validate = true,
@@ -902,10 +903,10 @@ function createHttpClient(options = {}) {
902
903
  const replaced = latestSignal(latest);
903
904
  const built = await build(method, path, call);
904
905
  const { deadline, signal } = withDeadline(built.timeout, joinSignals(built.signal, replaced));
905
- const response = await dispatch(new Request(built.url, { ...built.init, signal }), built.context, built.timeout, deadline, built.retry);
906
+ const response = await dispatch(new Request(built.url, { ...built.init, signal }), built.context, built.timeout, deadline, built.retry, added);
906
907
  return readReply(built.context, responses === undefined ? undefined : toSpec(responses), response, { validate, decode });
907
908
  };
908
- const opener = (method, path, call, accept) => async (stream, lastEventId) => {
909
+ const opener = (method, path, call, accept, added) => async (stream, lastEventId) => {
909
910
  const built = await build(method, path, call, (headers) => {
910
911
  if (!headers.has("accept"))
911
912
  headers.set("accept", accept);
@@ -922,12 +923,12 @@ function createHttpClient(options = {}) {
922
923
  return await dispatch(new Request(built.url, {
923
924
  ...built.init,
924
925
  signal: AbortSignal.any(signals)
925
- }), built.context, built.timeout, deadline.signal, built.retry);
926
+ }), built.context, built.timeout, deadline.signal, built.retry, added);
926
927
  } finally {
927
928
  clearTimeout(clock);
928
929
  }
929
930
  };
930
- const events = (path, given = {}) => {
931
+ const events = (path, given, added) => {
931
932
  const {
932
933
  events,
933
934
  onUnknownEvent,
@@ -947,7 +948,7 @@ function createHttpClient(options = {}) {
947
948
  const settings = typeof reconnect === "object" ? reconnect : {};
948
949
  return eventStream({
949
950
  context: contextOf(method, path, call.operationId),
950
- open: opener(method, path, call, "text/event-stream"),
951
+ open: opener(method, path, call, "text/event-stream", added),
951
952
  signal: call.signal ?? undefined,
952
953
  validate,
953
954
  decode,
@@ -960,7 +961,7 @@ function createHttpClient(options = {}) {
960
961
  lastEventId
961
962
  });
962
963
  };
963
- const lines = (path, given = {}) => {
964
+ const lines = (path, given, added) => {
964
965
  const {
965
966
  item,
966
967
  validate = true,
@@ -975,7 +976,7 @@ function createHttpClient(options = {}) {
975
976
  };
976
977
  return lineStream({
977
978
  context: contextOf(method, path, call.operationId),
978
- open: opener(method, path, call, LINE_TYPES.slice(0, 2).join(", ")),
979
+ open: opener(method, path, call, LINE_TYPES.slice(0, 2).join(", "), added),
979
980
  signal: call.signal ?? undefined,
980
981
  validate,
981
982
  decode,
@@ -987,7 +988,7 @@ function createHttpClient(options = {}) {
987
988
  retry = options.retry,
988
989
  operationId,
989
990
  latest
990
- } = {}) => {
991
+ }, added) => {
991
992
  const replaced = latestSignal(latest);
992
993
  const method = request.method.toLowerCase();
993
994
  const context = contextOf(method, new URL(request.url).pathname, operationId);
@@ -997,25 +998,31 @@ function createHttpClient(options = {}) {
997
998
  });
998
999
  const { deadline, signal } = withDeadline(timeout, joinSignals(request.signal, replaced));
999
1000
  const sent = new Request(request, { headers, signal });
1000
- return dispatch(sent, context, timeout, deadline, retry);
1001
+ return dispatch(sent, context, timeout, deadline, retry, added);
1001
1002
  };
1002
- const surface = (scope) => {
1003
+ const surface = (scope, inherited) => {
1004
+ const own = [];
1005
+ const layers = () => [...inherited(), ...own];
1003
1006
  const scoped = (given) => {
1004
1007
  const extra = scope();
1005
1008
  const own = given ?? {};
1006
1009
  return extra ? { ...own, signal: joinSignals(own.signal, extra) } : own;
1007
1010
  };
1008
1011
  const client = {
1009
- request: (method, path, given) => request(method, path, scoped(given)),
1012
+ request: (method, path, given) => request(method, path, scoped(given), layers()),
1010
1013
  send: (sent, given) => {
1011
1014
  const extra = scope();
1012
- return send(extra ? new Request(sent, { signal: joinSignals(sent.signal, extra) }) : sent, given);
1015
+ return send(extra ? new Request(sent, { signal: joinSignals(sent.signal, extra) }) : sent, given ?? {}, layers());
1016
+ },
1017
+ events: (path, given) => events(path, scoped(given), layers()),
1018
+ lines: (path, given) => lines(path, scoped(given), layers()),
1019
+ use: (...middlewares) => {
1020
+ own.push(...middlewares);
1021
+ return client;
1013
1022
  },
1014
- events: (path, given) => events(path, scoped(given)),
1015
- lines: (path, given) => lines(path, scoped(given)),
1016
1023
  group: () => {
1017
1024
  let controller = new AbortController;
1018
- const group = surface(() => joinSignals(scope(), controller.signal));
1025
+ const group = surface(() => joinSignals(scope(), controller.signal), layers);
1019
1026
  group.cancel = (reason) => {
1020
1027
  controller.abort(reason ?? cancelled("The group was cancelled"));
1021
1028
  controller = new AbortController;
@@ -1028,13 +1035,13 @@ function createHttpClient(options = {}) {
1028
1035
  }
1029
1036
  };
1030
1037
  for (const method of METHODS) {
1031
- client[method] = (path, given) => request(method, path, scoped(given));
1038
+ client[method] = (path, given) => request(method, path, scoped(given), layers());
1032
1039
  }
1033
1040
  return client;
1034
1041
  };
1035
1042
  return surface(() => {
1036
1043
  return;
1037
- });
1044
+ }, () => []);
1038
1045
  }
1039
1046
  // src/middleware/cache.ts
1040
1047
  var READS = new Set(["GET", "HEAD", "QUERY"]);
@@ -1106,5 +1113,5 @@ export {
1106
1113
  unwrap
1107
1114
  };
1108
1115
 
1109
- //# debugId=96539AFD0E70EDBE64756E2164756E21
1116
+ //# debugId=900A44D2EECBE84C64756E2164756E21
1110
1117
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -2,7 +2,7 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/cancel/abort.ts", "../src/cancel/latest.ts", "../src/errors/errors.ts", "../src/middleware/auth.ts", "../src/middleware/compose.ts", "../src/middleware/retry.ts", "../src/schema/standard-schema.ts", "../src/reply/media-type.ts", "../src/reply/read-reply.ts", "../src/request/encode.ts", "../src/stream/connection.ts", "../src/stream/sse-parser.ts", "../src/stream/event-stream.ts", "../src/stream/line-parser.ts", "../src/stream/line-stream.ts", "../src/client/create-http-client.ts", "../src/middleware/cache.ts", "../src/reply/unwrap.ts"],
4
4
  "sourcesContent": [
5
- "/**\n * Aborts, as the client makes and recognizes them. A call aborted through its\n * `signal`, by a later call with the same `latest`, or by its group's\n * `cancel()` rejects with the abort's reason, unwrapped: an `AbortError`\n * unless the caller gave a reason of its own.\n */\n\n/**\n * Whether `error` ended a call because it was aborted, rather than failed:\n * a signal aborted without a reason of its own, or by `AbortSignal.timeout()`,\n * a later call with the same `latest`, or a group's `cancel()`. The client's\n * own `TimeoutError`, past `timeout`, is a failure, not an abort.\n */\nexport function isAbortError(error: unknown): boolean {\n\tif (typeof DOMException !== 'undefined' && error instanceof DOMException) {\n\t\treturn error.name === 'AbortError' || error.name === 'TimeoutError';\n\t}\n\treturn error instanceof Error && error.name === 'AbortError';\n}\n\n/** What the client aborts a call with: an `AbortError`, which `isAbortError` knows. */\nexport const cancelled = (message: string): DOMException =>\n\tnew DOMException(message, 'AbortError');\n\n/** `promise`, or the signal's reason as soon as it aborts; the promise itself runs on. */\nexport function abortable<T>(\n\tpromise: Promise<T>,\n\tsignal: AbortSignal | undefined,\n): Promise<T> {\n\tif (!signal) return promise;\n\tif (signal.aborted) return Promise.reject(signal.reason);\n\treturn new Promise<T>((resolve, reject) => {\n\t\tconst stop = () => reject(signal.reason);\n\t\tsignal.addEventListener('abort', stop, { once: true });\n\t\tpromise\n\t\t\t.then(resolve, reject)\n\t\t\t.finally(() => signal.removeEventListener('abort', stop));\n\t});\n}\n\n/** One signal that aborts with the first of them; `undefined` when there are none. */\nexport function joinSignals(\n\t...signals: (AbortSignal | null | undefined)[]\n): AbortSignal | undefined {\n\tconst present = signals.filter(\n\t\t(signal): signal is AbortSignal => signal != null,\n\t);\n\treturn present.length > 1 ? AbortSignal.any(present) : present[0];\n}\n",
5
+ "/**\n * Aborts, as the client makes and recognizes them. A call aborted through its\n * `signal`, by a later call with the same `latest`, or by its group's\n * `cancel()` rejects with the abort's reason, unwrapped: an `AbortError`\n * unless the caller gave a reason of its own.\n */\n\n/**\n * Whether `error` ended a call because it was aborted, rather than failed:\n * a signal aborted without a reason of its own, or by `AbortSignal.timeout()`,\n * a later call with the same `latest`, or a group's `cancel()`. The client's\n * own `TimeoutError`, past `timeout`, is a failure, not an abort.\n *\n * A `boolean`, not a type guard: as `error is Error`, the branch where it is\n * false would drop `Error` from the error's type, though a failure is an\n * `Error` too, and an `Error`-typed catch would be `never` there.\n */\nexport function isAbortError(error: unknown): boolean {\n\tif (typeof DOMException !== 'undefined' && error instanceof DOMException) {\n\t\treturn error.name === 'AbortError' || error.name === 'TimeoutError';\n\t}\n\treturn error instanceof Error && error.name === 'AbortError';\n}\n\n/** What the client aborts a call with: an `AbortError`, which `isAbortError` knows. */\nexport const cancelled = (message: string): DOMException =>\n\tnew DOMException(message, 'AbortError');\n\n/** `promise`, or the signal's reason as soon as it aborts; the promise itself runs on. */\nexport function abortable<T>(\n\tpromise: Promise<T>,\n\tsignal: AbortSignal | undefined,\n): Promise<T> {\n\tif (!signal) return promise;\n\tif (signal.aborted) return Promise.reject(signal.reason);\n\treturn new Promise<T>((resolve, reject) => {\n\t\tconst stop = () => reject(signal.reason);\n\t\tsignal.addEventListener('abort', stop, { once: true });\n\t\tpromise\n\t\t\t.then(resolve, reject)\n\t\t\t.finally(() => signal.removeEventListener('abort', stop));\n\t});\n}\n\n/** One signal that aborts with the first of them; `undefined` when there are none. */\nexport function joinSignals(\n\t...signals: (AbortSignal | null | undefined)[]\n): AbortSignal | undefined {\n\tconst present = signals.filter(\n\t\t(signal): signal is AbortSignal => signal != null,\n\t);\n\treturn present.length > 1 ? AbortSignal.any(present) : present[0];\n}\n",
6
6
  "/**\n * `latest`: one call running per key. A call with a key aborts the one before\n * it with the same key, if that one still runs: a search typed ahead keeps\n * only its last query in flight.\n */\nimport { cancelled } from './abort';\n\n/** A client's keys: `claim(key)` aborts the key's previous call, and returns the new call's signal. */\nexport function createLatest(): (key: string) => AbortSignal {\n\t// A finished call's controller stays until its key is used again: aborting it then does nothing.\n\tconst running = new Map<string, AbortController>();\n\treturn (key) => {\n\t\trunning\n\t\t\t.get(key)\n\t\t\t?.abort(\n\t\t\t\tcancelled(`A later call with latest: '${key}' replaced this one`),\n\t\t\t);\n\t\tconst controller = new AbortController();\n\t\trunning.set(key, controller);\n\t\treturn controller.signal;\n\t};\n}\n",
7
7
  "/** Which call failed: every error a call throws carries it. */\nexport interface CallContext {\n\treadonly method: string;\n\t/** As the caller wrote it: `/employees/{id}`. */\n\treadonly path: string;\n\t/** The call's name, when it was given one: an OpenAPI `operationId`. */\n\treadonly operationId?: string;\n}\n\n/** Where a value was found wrong, as `@nxgt/openapi-hono` reports it. */\nexport interface ValidationIssue {\n\ttarget: 'param' | 'query' | 'header' | 'json' | 'form' | 'body' | 'response';\n\t/** Inside the target: `['items', 0, 'name']`, or `[]` for the whole of it. */\n\tpath: (string | number)[];\n\tcode: string;\n\tmessage: string;\n}\n\n/** The same shape as the server's: one failure, every issue in it. */\nexport interface ValidationFailure {\n\tkind: 'request' | 'response';\n\toperationId?: string;\n\tmethod: string;\n\tpath: string;\n\tstatus?: number;\n\tissues: ValidationIssue[];\n}\n\n/**\n * Every error a call throws, but an abort the caller asked for, which comes\n * through as the `AbortError` its signal gave.\n */\nexport class ClientError extends Error {\n\toverride name = 'ClientError';\n\treadonly operationId: string | undefined;\n\treadonly method: string;\n\treadonly path: string;\n\n\tconstructor(context: CallContext, message: string, options?: ErrorOptions) {\n\t\tconst route = `${context.method.toUpperCase()} ${context.path}`;\n\t\tconst call =\n\t\t\tcontext.operationId === undefined\n\t\t\t\t? route\n\t\t\t\t: `${context.operationId} (${route})`;\n\t\tsuper(`${call}: ${message}`, options);\n\t\tthis.operationId = context.operationId;\n\t\tthis.method = context.method;\n\t\tthis.path = context.path;\n\t}\n}\n\n/** fetch failed: no connection, a refused one, a CORS refusal. The cause is fetch's error. */\nexport class NetworkError extends ClientError {\n\toverride name = 'NetworkError';\n\n\tconstructor(context: CallContext, options?: ErrorOptions) {\n\t\tsuper(context, 'no reply came back', options);\n\t}\n}\n\nexport class TimeoutError extends ClientError {\n\toverride name = 'TimeoutError';\n\treadonly timeout: number;\n\n\tconstructor(context: CallContext, timeout: number, options?: ErrorOptions) {\n\t\tsuper(context, `no reply within ${timeout} ms`, options);\n\t\tthis.timeout = timeout;\n\t}\n}\n\n/** A status the call's `responses` do not declare. */\nexport class UndeclaredStatusError extends ClientError {\n\toverride name = 'UndeclaredStatusError';\n\treadonly status: number;\n\t/** Unread: its body is still there to read. */\n\treadonly response: Response;\n\n\tconstructor(context: CallContext, response: Response) {\n\t\tsuper(context, `no ${response.status} reply is declared`);\n\t\tthis.status = response.status;\n\t\tthis.response = response;\n\t}\n}\n\n/**\n * A reply its declaration does not describe: an undeclared media type, JSON\n * that does not parse, a value its schema refuses; or a request refused\n * before it was sent.\n */\nexport class ValidationError extends ClientError {\n\toverride name = 'ValidationError';\n\treadonly failure: ValidationFailure;\n\n\tconstructor(context: CallContext, failure: ValidationFailure) {\n\t\tsuper(context, failure.issues.map((issue) => issue.message).join('; '));\n\t\tthis.failure = failure;\n\t}\n}\n\n/**\n * From `unwrap()` or `ok()`: a declared reply, but not one of the statuses\n * asked for. No status asked for means any 2xx.\n */\nexport class ReplyStatusError extends Error {\n\toverride name = 'ReplyStatusError';\n\treadonly status: number;\n\treadonly data: unknown;\n\treadonly response: Response | undefined;\n\n\tconstructor(\n\t\treply: { status: number; data: unknown; response?: Response },\n\t\texpected: readonly number[],\n\t) {\n\t\tconst wanted = expected.length > 0 ? expected.join(' or ') : '2xx';\n\t\tsuper(`Expected a ${wanted} reply, got ${reply.status}`);\n\t\tthis.status = reply.status;\n\t\tthis.data = reply.data;\n\t\tthis.response = reply.response;\n\t}\n}\n",
8
8
  "/**\n * A token on every request, and one refresh when a reply is 401: calls\n * refused together wait on the same refresh, then are sent again once, with\n * the new token.\n */\nimport { abortable } from '../cancel/abort';\nimport type { Middleware } from './compose';\n\ntype Token = string | null | undefined;\n\nexport interface AuthOptions {\n\t/** The current token, read before each request. None sends no header. */\n\ttoken: () => Token | Promise<Token>;\n\t/**\n\t * Gets a new token after a 401, for `token` to return. When it throws, or\n\t * `token` still returns the refused one, the 401 is the reply, for the app\n\t * to sign out on.\n\t */\n\trefresh?: () => unknown;\n\t/** Default: `Bearer`. */\n\tscheme?: string;\n}\n\n/** The client's `auth`: one per client, so its calls share a refresh. */\nexport function auth({\n\ttoken,\n\trefresh,\n\tscheme = 'Bearer',\n}: AuthOptions): Middleware {\n\tlet refreshing: Promise<unknown> | undefined;\n\tconst sign = (request: Request, value: Token): Request => {\n\t\tif (value) request.headers.set('authorization', `${scheme} ${value}`);\n\t\treturn request;\n\t};\n\treturn async (request, next) => {\n\t\tconst used = await token();\n\t\t// Sent again after a refresh: its body can only be read once.\n\t\tconst replay = refresh ? request.clone() : undefined;\n\t\tconst response = await next(sign(request, used));\n\t\tif (response.status !== 401 || !replay || !refresh) return response;\n\t\ttry {\n\t\t\t// A call refused with a token already replaced has nothing to refresh.\n\t\t\tif ((await token()) === used) {\n\t\t\t\trefreshing ??= Promise.resolve()\n\t\t\t\t\t.then(refresh)\n\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\trefreshing = undefined;\n\t\t\t\t\t});\n\t\t\t\t// An aborted call stops waiting; the refresh runs on for the others.\n\t\t\t\tawait abortable(refreshing, request.signal);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tif (request.signal.aborted) {\n\t\t\t\tawait response.body?.cancel();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\treturn response;\n\t\t}\n\t\tconst fresh = await token();\n\t\tif (!fresh || fresh === used) return response;\n\t\tawait response.body?.cancel();\n\t\treturn next(sign(replay, fresh));\n\t};\n}\n",
@@ -17,11 +17,11 @@
17
17
  "/**\n * `http.events()`: server-sent events over `fetch`. It reconnects as\n * `EventSource` does, but through the client, so each connection has its\n * `auth` and middleware, and its events are checked by their schemas.\n */\nimport { NetworkError } from '../errors/errors';\nimport {\n\topened,\n\tpause,\n\tReading,\n\ttype StreamSettings,\n\tsettle,\n} from './connection';\nimport { createSseParser, type ServerEvent } from './sse-parser';\nimport type { EventSchemas, EventStream } from './types';\n\nexport interface EventSettings extends StreamSettings {\n\treadonly events: EventSchemas | undefined;\n\treadonly onUnknownEvent: ((event: ServerEvent) => void) | undefined;\n\t/** `false`, or how to reconnect. */\n\treadonly reconnect:\n\t\t| { readonly attempts: number; readonly delay: number }\n\t\t| false;\n\treadonly lastEventId: string | undefined;\n}\n\nexport function eventStream(settings: EventSettings): EventStream<unknown> {\n\tconst reading = new Reading(settings.signal);\n\tlet lastEventId = settings.lastEventId;\n\tlet delay = settings.reconnect ? settings.reconnect.delay : 0;\n\tlet started = false;\n\n\t/** A declared event with its data checked, or `undefined` for one it does not declare. */\n\tconst declared = async (raw: ServerEvent, status: number) => {\n\t\tconst { events } = settings;\n\t\tif (!events) return raw;\n\t\tif (!Object.hasOwn(events, raw.event)) {\n\t\t\tsettings.onUnknownEvent?.(raw);\n\t\t\treturn undefined;\n\t\t}\n\t\tconst schema = events[raw.event];\n\t\tif (!schema) return raw;\n\t\tconst what = `the ${raw.event} event's data`;\n\t\tconst data = await settle(settings, status, raw.data, schema, what);\n\t\treturn { event: raw.event, data, id: raw.id };\n\t};\n\n\t/** Whether to connect again after `failures` in a row, having waited for it. */\n\tconst again = async (failures: number): Promise<boolean> => {\n\t\tconst { reconnect } = settings;\n\t\tif (!reconnect || failures >= reconnect.attempts) return false;\n\t\tawait pause(delay, reading.closer.signal, settings.signal);\n\t\treturn !reading.stopped();\n\t};\n\n\tasync function* run(): AsyncGenerator<unknown, void, undefined> {\n\t\tlet failures = 0;\n\t\ttry {\n\t\t\tfor (;;) {\n\t\t\t\tlet response: Response;\n\t\t\t\ttry {\n\t\t\t\t\tresponse = await settings.open(reading.closer.signal, lastEventId);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (reading.closer.signal.aborted) return;\n\t\t\t\t\t// Only a connection that failed may pass: not a timeout, an abort or a refusal.\n\t\t\t\t\tif (error instanceof NetworkError && (await again(failures++))) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tif (!(await opened(settings, response, ['text/event-stream']))) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst parser = createSseParser(lastEventId);\n\t\t\t\tconst reader = reading.read(response);\n\t\t\t\tlet dropped: unknown;\n\t\t\t\tfor (;;) {\n\t\t\t\t\tlet chunk: Awaited<ReturnType<typeof reader.read>>;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tchunk = await reader.read();\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (reading.stopped()) return;\n\t\t\t\t\t\tdropped = error;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif (reading.stopped()) return;\n\t\t\t\t\tif (chunk.done) break;\n\t\t\t\t\tconst events = parser.push(chunk.value);\n\t\t\t\t\tlastEventId = parser.lastEventId;\n\t\t\t\t\tdelay = parser.retry ?? delay;\n\t\t\t\t\tfor (const raw of events) {\n\t\t\t\t\t\tfailures = 0;\n\t\t\t\t\t\tconst event = await declared(raw, response.status);\n\t\t\t\t\t\tif (event !== undefined) yield event;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!(await again(failures++))) {\n\t\t\t\t\tif (dropped === undefined) return;\n\t\t\t\t\tthrow new NetworkError(settings.context, { cause: dropped });\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\treading.release();\n\t\t}\n\t}\n\n\treturn {\n\t\t[Symbol.asyncIterator]() {\n\t\t\tif (started) throw new TypeError('A stream is read once');\n\t\t\tstarted = true;\n\t\t\treturn run();\n\t\t},\n\t\tclose: () => reading.close(),\n\t\tget lastEventId() {\n\t\t\treturn lastEventId;\n\t\t},\n\t};\n}\n",
18
18
  "/**\n * JSON Lines, NDJSON and JSON text sequences, split into their records: one\n * JSON text a line, or after each record separator (`\\x1E`). Blank lines\n * separate nothing, and a last record needs no line end.\n */\n\nexport interface LineParser {\n\t/** Reads a chunk of text, and returns the records it completed. */\n\tpush(chunk: string): string[];\n\t/** The record left when the stream ends, if any. */\n\tend(): string[];\n}\n\n/** A JSON text sequence's record separator, which ends a record as a line end does. */\nconst RS = String.fromCharCode(0x1e);\n\nexport function createLineParser(): LineParser {\n\tlet buffer = '';\n\tconst records = (texts: string[]) =>\n\t\ttexts.map((text) => text.trim()).filter((text) => text !== '');\n\treturn {\n\t\tpush(chunk) {\n\t\t\tconst parts = (buffer + chunk).replaceAll(RS, '\\n').split(/\\r?\\n/);\n\t\t\tbuffer = parts.pop() ?? '';\n\t\t\treturn records(parts);\n\t\t},\n\t\tend() {\n\t\t\tconst rest = buffer;\n\t\t\tbuffer = '';\n\t\t\treturn records([rest]);\n\t\t},\n\t};\n}\n",
19
19
  "/** `http.lines()`: JSON Lines, NDJSON or JSON text sequences, a record at a time. */\nimport { NetworkError } from '../errors/errors';\nimport type { StandardSchemaV1 } from '../schema/standard-schema';\nimport { opened, Reading, type StreamSettings, settle } from './connection';\nimport { createLineParser } from './line-parser';\nimport type { Stream } from './types';\n\n/** The media types a stream of lines is served as. */\nexport const LINE_TYPES = [\n\t'application/jsonl',\n\t'application/x-ndjson',\n\t'application/ndjson',\n\t'application/jsonlines',\n\t'application/x-jsonlines',\n\t'application/json-seq',\n] as const;\n\nexport interface LineSettings extends StreamSettings {\n\treadonly item: StandardSchemaV1 | undefined;\n}\n\nexport function lineStream(settings: LineSettings): Stream<unknown> {\n\tconst reading = new Reading(settings.signal);\n\tlet started = false;\n\n\tasync function* run(): AsyncGenerator<unknown, void, undefined> {\n\t\ttry {\n\t\t\tlet response: Response;\n\t\t\ttry {\n\t\t\t\tresponse = await settings.open(reading.closer.signal, undefined);\n\t\t\t} catch (error) {\n\t\t\t\tif (reading.closer.signal.aborted) return;\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tif (!(await opened(settings, response, LINE_TYPES))) return;\n\t\t\tconst parser = createLineParser();\n\t\t\tconst reader = reading.read(response);\n\t\t\tfor (;;) {\n\t\t\t\tlet chunk: Awaited<ReturnType<typeof reader.read>>;\n\t\t\t\ttry {\n\t\t\t\t\tchunk = await reader.read();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (reading.stopped()) return;\n\t\t\t\t\tthrow new NetworkError(settings.context, { cause: error });\n\t\t\t\t}\n\t\t\t\tif (reading.stopped()) return;\n\t\t\t\tconst texts = chunk.done ? parser.end() : parser.push(chunk.value);\n\t\t\t\tfor (const text of texts) {\n\t\t\t\t\tyield await settle(\n\t\t\t\t\t\tsettings,\n\t\t\t\t\t\tresponse.status,\n\t\t\t\t\t\ttext,\n\t\t\t\t\t\tsettings.item,\n\t\t\t\t\t\t'a line',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (chunk.done) return;\n\t\t\t}\n\t\t} finally {\n\t\t\treading.release();\n\t\t}\n\t}\n\n\treturn {\n\t\t[Symbol.asyncIterator]() {\n\t\t\tif (started) throw new TypeError('A stream is read once');\n\t\t\tstarted = true;\n\t\t\treturn run();\n\t\t},\n\t\tclose: () => reading.close(),\n\t};\n}\n",
20
- "/**\n * `createHttpClient`: calls over the standard `fetch`, each typed by its path\n * and by the replies it declares, through `retry`, `auth` and middleware.\n */\nimport { cancelled, joinSignals } from '../cancel/abort';\nimport { createLatest } from '../cancel/latest';\nimport { type CallContext, NetworkError, TimeoutError } from '../errors/errors';\nimport { auth } from '../middleware/auth';\nimport { compose, type Next } from '../middleware/compose';\nimport {\n\ttype RetryOptions,\n\tretrying,\n\tretrySettings,\n} from '../middleware/retry';\nimport { readReply, toSpec } from '../reply/read-reply';\nimport type { Responses } from '../reply/types';\nimport { fillPath, joinUrl, writeBody, writeQuery } from '../request/encode';\nimport type { BodyInput, QueryInput } from '../request/types';\nimport type { StandardSchemaV1 } from '../schema/standard-schema';\nimport type { Open } from '../stream/connection';\nimport { eventStream } from '../stream/event-stream';\nimport { LINE_TYPES, lineStream } from '../stream/line-stream';\nimport type { ServerEvent } from '../stream/sse-parser';\nimport type { EventSchemas, ReconnectOptions } from '../stream/types';\nimport type {\n\tCallOptions,\n\tHttpClient,\n\tHttpClientOptions,\n\tHttpGroup,\n\tMethod,\n\tSendOptions,\n} from './types';\n\nexport const METHODS: readonly Method[] = [\n\t'get',\n\t'put',\n\t'post',\n\t'delete',\n\t'options',\n\t'head',\n\t'patch',\n\t'trace',\n\t'query',\n];\n\n/** What a request is built from, as the client reads a call's options. */\ntype Given = BodyInput &\n\tCallOptions & {\n\t\treadonly param?: Readonly<Record<string, unknown>>;\n\t\treadonly query?: QueryInput;\n\t};\n\ntype ReplyGiven = Given & {\n\treadonly responses?: Responses;\n\treadonly validate?: boolean;\n\treadonly decode?: boolean;\n};\n\ntype StreamGiven = Given & {\n\treadonly method?: Method;\n\treadonly validate?: boolean;\n\treadonly decode?: boolean;\n};\n\ntype EventsGiven = StreamGiven & {\n\treadonly events?: EventSchemas;\n\treadonly onUnknownEvent?: (event: ServerEvent) => void;\n\treadonly reconnect?: boolean | ReconnectOptions;\n\treadonly lastEventId?: string;\n};\n\ntype LinesGiven = StreamGiven & { readonly item?: StandardSchemaV1 };\n\n/** A stream reconnects by default, but for the methods a retry would not repeat. */\nconst RECONNECT_DELAY = 3000;\n\nconst contextOf = (\n\tmethod: string,\n\tpath: string,\n\toperationId: string | undefined,\n): CallContext =>\n\toperationId === undefined ? { method, path } : { method, path, operationId };\n\n/**\n * ```ts\n * const http = createHttpClient({ baseUrl: 'https://api.example.com', retry: 2 });\n * const reply = await http.get('/employees/{id}', {\n * \tparam: { id },\n * \tresponses: { 200: Employee, 404: Problem },\n * });\n * if (reply.status === 200) reply.data.name;\n * ```\n */\nexport function createHttpClient(options: HttpClientOptions = {}): HttpClient {\n\tconst signer = options.auth ? auth(options.auth) : undefined;\n\tconst claim = createLatest();\n\t/**\n\t * A `latest` key's signal. Claimed before anything is awaited, so calls\n\t * with the same key replace each other in the order they were made.\n\t */\n\tconst latestSignal = (key: string | undefined) =>\n\t\tkey === undefined ? undefined : claim(key);\n\tconst sharedHeaders = async (): Promise<Headers> =>\n\t\tnew Headers(\n\t\t\ttypeof options.headers === 'function'\n\t\t\t\t? await options.headers()\n\t\t\t\t: options.headers,\n\t\t);\n\n\t/** The request's own signal, with `timeout`'s deadline added. */\n\tconst withDeadline = (\n\t\ttimeout: number | undefined,\n\t\tsignal: AbortSignal | null | undefined,\n\t) => {\n\t\tconst deadline =\n\t\t\ttimeout === undefined ? undefined : AbortSignal.timeout(timeout);\n\t\tconst signals = [signal, deadline].filter(\n\t\t\t(each): each is AbortSignal => each != null,\n\t\t);\n\t\treturn {\n\t\t\tdeadline,\n\t\t\tsignal: signals.length > 1 ? AbortSignal.any(signals) : signals[0],\n\t\t};\n\t};\n\n\t/** Through `retry`, `auth` and `use` to `fetch`, fetch's failure and the deadline made errors. */\n\tconst dispatch = async (\n\t\trequest: Request,\n\t\tcontext: CallContext,\n\t\ttimeout: number | undefined,\n\t\tdeadline: AbortSignal | undefined,\n\t\tretry: number | RetryOptions | false | undefined,\n\t): Promise<Response> => {\n\t\tconst fetch = options.fetch ?? ((sent: Request) => globalThis.fetch(sent));\n\t\t// fetch's own failure is a NetworkError, which `retry` retries; an abort is not one.\n\t\tconst send: Next = async (sent) => {\n\t\t\ttry {\n\t\t\t\t// As fetch does: a signal aborted before the call never sends.\n\t\t\t\tsent.signal.throwIfAborted();\n\t\t\t\treturn await fetch(sent);\n\t\t\t} catch (error) {\n\t\t\t\tif (request.signal.aborted) throw error;\n\t\t\t\tthrow new NetworkError(context, { cause: error });\n\t\t\t}\n\t\t};\n\t\tconst again = retrySettings(retry);\n\t\tconst layers = [\n\t\t\t...(again ? [retrying(again)] : []),\n\t\t\t...(signer ? [signer] : []),\n\t\t\t...(options.use ?? []),\n\t\t];\n\t\ttry {\n\t\t\treturn await compose(layers, send, context)(request);\n\t\t} catch (error) {\n\t\t\tif (deadline?.aborted && timeout !== undefined) {\n\t\t\t\tthrow new TimeoutError(context, timeout, { cause: error });\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t};\n\n\t/**\n\t * A request's parts, from a call's options: its URL, and its init but for\n\t * the signal. `adjust` has the last word on the headers.\n\t */\n\tconst build = async (\n\t\tmethod: Method,\n\t\tpath: string,\n\t\tgiven: Given,\n\t\tadjust?: (headers: Headers) => void,\n\t) => {\n\t\tconst {\n\t\t\tparam,\n\t\t\tquery,\n\t\t\tjson,\n\t\t\tform,\n\t\t\ttext,\n\t\t\tbody,\n\t\t\toperationId,\n\t\t\ttimeout = options.timeout,\n\t\t\tretry = options.retry,\n\t\t\theaders: own,\n\t\t\tsignal,\n\t\t\t...rest\n\t\t} = given;\n\t\tconst context = contextOf(method, path, operationId);\n\t\tconst headers = await sharedHeaders();\n\t\tconst callHeaders = new Headers(own);\n\t\tcallHeaders.forEach((value, name) => {\n\t\t\theaders.set(name, value);\n\t\t});\n\t\tadjust?.(headers);\n\t\tconst url = joinUrl(\n\t\t\toptions.baseUrl,\n\t\t\tfillPath(context, param),\n\t\t\twriteQuery(query),\n\t\t);\n\t\tconst payload = writeBody(\n\t\t\t{ json, form, text, body } as BodyInput,\n\t\t\theaders,\n\t\t\tcallHeaders.get('content-type'),\n\t\t);\n\t\tconst init = {\n\t\t\t...options.init,\n\t\t\t...rest,\n\t\t\tmethod: method.toUpperCase(),\n\t\t\theaders,\n\t\t\tbody: payload,\n\t\t\t// A stream is sent as it is read, which fetch has to be told.\n\t\t\t...(payload instanceof ReadableStream ? { duplex: 'half' } : {}),\n\t\t} as RequestInit;\n\t\treturn { context, url, init, timeout, retry, signal: signal ?? undefined };\n\t};\n\n\tconst request = async (\n\t\tmethod: Method,\n\t\tpath: string,\n\t\tgiven: ReplyGiven = {},\n\t): Promise<unknown> => {\n\t\tconst {\n\t\t\tresponses,\n\t\t\tvalidate = true,\n\t\t\tdecode = true,\n\t\t\tlatest,\n\t\t\t...call\n\t\t} = given;\n\t\tconst replaced = latestSignal(latest);\n\t\tconst built = await build(method, path, call);\n\t\tconst { deadline, signal } = withDeadline(\n\t\t\tbuilt.timeout,\n\t\t\tjoinSignals(built.signal, replaced),\n\t\t);\n\t\tconst response = await dispatch(\n\t\t\tnew Request(built.url, { ...built.init, signal }),\n\t\t\tbuilt.context,\n\t\t\tbuilt.timeout,\n\t\t\tdeadline,\n\t\t\tbuilt.retry,\n\t\t);\n\t\treturn readReply(\n\t\t\tbuilt.context,\n\t\t\tresponses === undefined ? undefined : toSpec(responses),\n\t\t\tresponse,\n\t\t\t{ validate, decode },\n\t\t);\n\t};\n\n\t/**\n\t * A stream's connections, each built afresh: its headers are run again and\n\t * `Last-Event-ID` is added. `timeout` bounds one until its headers arrive,\n\t * and no longer, since a stream has no end to wait for.\n\t */\n\tconst opener =\n\t\t(method: Method, path: string, call: Given, accept: string): Open =>\n\t\tasync (stream, lastEventId) => {\n\t\t\tconst built = await build(method, path, call, (headers) => {\n\t\t\t\tif (!headers.has('accept')) headers.set('accept', accept);\n\t\t\t\tif (lastEventId !== undefined) {\n\t\t\t\t\theaders.set('last-event-id', lastEventId);\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst deadline = new AbortController();\n\t\t\tconst clock =\n\t\t\t\tbuilt.timeout === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: setTimeout(\n\t\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t\tdeadline.abort(\n\t\t\t\t\t\t\t\t\tnew DOMException('The stream did not open', 'TimeoutError'),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tbuilt.timeout,\n\t\t\t\t\t\t);\n\t\t\tconst signals = [stream, deadline.signal];\n\t\t\tif (built.signal) signals.push(built.signal);\n\t\t\ttry {\n\t\t\t\treturn await dispatch(\n\t\t\t\t\tnew Request(built.url, {\n\t\t\t\t\t\t...built.init,\n\t\t\t\t\t\tsignal: AbortSignal.any(signals),\n\t\t\t\t\t}),\n\t\t\t\t\tbuilt.context,\n\t\t\t\t\tbuilt.timeout,\n\t\t\t\t\tdeadline.signal,\n\t\t\t\t\tbuilt.retry,\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tclearTimeout(clock);\n\t\t\t}\n\t\t};\n\n\tconst events = (path: string, given: EventsGiven = {}) => {\n\t\tconst {\n\t\t\tevents,\n\t\t\tonUnknownEvent,\n\t\t\treconnect,\n\t\t\tlastEventId,\n\t\t\tvalidate = true,\n\t\t\tdecode = true,\n\t\t\tmethod = 'get',\n\t\t\tlatest,\n\t\t\t...own\n\t\t} = given;\n\t\tconst call = {\n\t\t\t...own,\n\t\t\tsignal: joinSignals(own.signal, latestSignal(latest)),\n\t\t};\n\t\tconst reconnects =\n\t\t\treconnect === undefined\n\t\t\t\t? method !== 'post' && method !== 'patch'\n\t\t\t\t: reconnect !== false;\n\t\tconst settings = typeof reconnect === 'object' ? reconnect : {};\n\t\treturn eventStream({\n\t\t\tcontext: contextOf(method, path, call.operationId),\n\t\t\topen: opener(method, path, call, 'text/event-stream'),\n\t\t\tsignal: call.signal ?? undefined,\n\t\t\tvalidate,\n\t\t\tdecode,\n\t\t\tevents,\n\t\t\tonUnknownEvent,\n\t\t\treconnect: reconnects && {\n\t\t\t\tattempts: settings.attempts ?? Number.POSITIVE_INFINITY,\n\t\t\t\tdelay: settings.delay ?? RECONNECT_DELAY,\n\t\t\t},\n\t\t\tlastEventId,\n\t\t});\n\t};\n\n\tconst lines = (path: string, given: LinesGiven = {}) => {\n\t\tconst {\n\t\t\titem,\n\t\t\tvalidate = true,\n\t\t\tdecode = true,\n\t\t\tmethod = 'get',\n\t\t\tlatest,\n\t\t\t...own\n\t\t} = given;\n\t\tconst call = {\n\t\t\t...own,\n\t\t\tsignal: joinSignals(own.signal, latestSignal(latest)),\n\t\t};\n\t\treturn lineStream({\n\t\t\tcontext: contextOf(method, path, call.operationId),\n\t\t\topen: opener(method, path, call, LINE_TYPES.slice(0, 2).join(', ')),\n\t\t\tsignal: call.signal ?? undefined,\n\t\t\tvalidate,\n\t\t\tdecode,\n\t\t\titem,\n\t\t});\n\t};\n\n\tconst send = async (\n\t\trequest: Request,\n\t\t{\n\t\t\ttimeout = options.timeout,\n\t\t\tretry = options.retry,\n\t\t\toperationId,\n\t\t\tlatest,\n\t\t}: SendOptions = {},\n\t): Promise<Response> => {\n\t\tconst replaced = latestSignal(latest);\n\t\tconst method = request.method.toLowerCase();\n\t\tconst context = contextOf(\n\t\t\tmethod,\n\t\t\tnew URL(request.url).pathname,\n\t\t\toperationId,\n\t\t);\n\t\tconst headers = await sharedHeaders();\n\t\trequest.headers.forEach((value, name) => {\n\t\t\theaders.set(name, value);\n\t\t});\n\t\tconst { deadline, signal } = withDeadline(\n\t\t\ttimeout,\n\t\t\tjoinSignals(request.signal, replaced),\n\t\t);\n\t\tconst sent = new Request(request, { headers, signal });\n\t\treturn dispatch(sent, context, timeout, deadline, retry);\n\t};\n\n\t/**\n\t * The client's calls, each with `scope()`'s signal added to its own: none\n\t * for the client itself, the group's for a group.\n\t */\n\tconst surface = (scope: () => AbortSignal | undefined): HttpClient => {\n\t\tconst scoped = <T extends { readonly signal?: AbortSignal | null }>(\n\t\t\tgiven: T | undefined,\n\t\t): T => {\n\t\t\tconst extra = scope();\n\t\t\tconst own = given ?? ({} as T);\n\t\t\treturn extra\n\t\t\t\t? ({ ...own, signal: joinSignals(own.signal, extra) } as T)\n\t\t\t\t: own;\n\t\t};\n\t\tconst client: Record<string, unknown> = {\n\t\t\trequest: (method: Method, path: string, given?: ReplyGiven) =>\n\t\t\t\trequest(method, path, scoped(given)),\n\t\t\tsend: (sent: Request, given?: SendOptions) => {\n\t\t\t\tconst extra = scope();\n\t\t\t\treturn send(\n\t\t\t\t\textra\n\t\t\t\t\t\t? new Request(sent, { signal: joinSignals(sent.signal, extra) })\n\t\t\t\t\t\t: sent,\n\t\t\t\t\tgiven,\n\t\t\t\t);\n\t\t\t},\n\t\t\tevents: (path: string, given?: EventsGiven) =>\n\t\t\t\tevents(path, scoped(given)),\n\t\t\tlines: (path: string, given?: LinesGiven) => lines(path, scoped(given)),\n\t\t\tgroup: (): HttpGroup => {\n\t\t\t\tlet controller = new AbortController();\n\t\t\t\tconst group = surface(() =>\n\t\t\t\t\tjoinSignals(scope(), controller.signal),\n\t\t\t\t) as HttpClient & Record<string, unknown>;\n\t\t\t\tgroup.cancel = (reason?: unknown) => {\n\t\t\t\t\tcontroller.abort(reason ?? cancelled('The group was cancelled'));\n\t\t\t\t\tcontroller = new AbortController();\n\t\t\t\t};\n\t\t\t\tObject.defineProperty(group, 'signal', {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: () => controller.signal,\n\t\t\t\t});\n\t\t\t\treturn group as unknown as HttpGroup;\n\t\t\t},\n\t\t};\n\t\tfor (const method of METHODS) {\n\t\t\tclient[method] = (path: string, given?: ReplyGiven) =>\n\t\t\t\trequest(method, path, scoped(given));\n\t\t}\n\t\treturn client as HttpClient;\n\t};\n\treturn surface(() => undefined);\n}\n",
20
+ "/**\n * `createHttpClient`: calls over the standard `fetch`, each typed by its path\n * and by the replies it declares, through `retry`, `auth` and middleware.\n */\nimport { cancelled, joinSignals } from '../cancel/abort';\nimport { createLatest } from '../cancel/latest';\nimport { type CallContext, NetworkError, TimeoutError } from '../errors/errors';\nimport { auth } from '../middleware/auth';\nimport { compose, type Middleware, type Next } from '../middleware/compose';\nimport {\n\ttype RetryOptions,\n\tretrying,\n\tretrySettings,\n} from '../middleware/retry';\nimport { readReply, toSpec } from '../reply/read-reply';\nimport type { Responses } from '../reply/types';\nimport { fillPath, joinUrl, writeBody, writeQuery } from '../request/encode';\nimport type { BodyInput, QueryInput } from '../request/types';\nimport type { StandardSchemaV1 } from '../schema/standard-schema';\nimport type { Open } from '../stream/connection';\nimport { eventStream } from '../stream/event-stream';\nimport { LINE_TYPES, lineStream } from '../stream/line-stream';\nimport type { ServerEvent } from '../stream/sse-parser';\nimport type { EventSchemas, ReconnectOptions } from '../stream/types';\nimport type {\n\tCallOptions,\n\tHttpClient,\n\tHttpClientOptions,\n\tHttpGroup,\n\tMethod,\n\tSendOptions,\n} from './types';\n\nexport const METHODS: readonly Method[] = [\n\t'get',\n\t'put',\n\t'post',\n\t'delete',\n\t'options',\n\t'head',\n\t'patch',\n\t'trace',\n\t'query',\n];\n\n/** What a request is built from, as the client reads a call's options. */\ntype Given = BodyInput &\n\tCallOptions & {\n\t\treadonly param?: Readonly<Record<string, unknown>>;\n\t\treadonly query?: QueryInput;\n\t};\n\ntype ReplyGiven = Given & {\n\treadonly responses?: Responses;\n\treadonly validate?: boolean;\n\treadonly decode?: boolean;\n};\n\ntype StreamGiven = Given & {\n\treadonly method?: Method;\n\treadonly validate?: boolean;\n\treadonly decode?: boolean;\n};\n\ntype EventsGiven = StreamGiven & {\n\treadonly events?: EventSchemas;\n\treadonly onUnknownEvent?: (event: ServerEvent) => void;\n\treadonly reconnect?: boolean | ReconnectOptions;\n\treadonly lastEventId?: string;\n};\n\ntype LinesGiven = StreamGiven & { readonly item?: StandardSchemaV1 };\n\n/** A stream reconnects by default, but for the methods a retry would not repeat. */\nconst RECONNECT_DELAY = 3000;\n\nconst contextOf = (\n\tmethod: string,\n\tpath: string,\n\toperationId: string | undefined,\n): CallContext =>\n\toperationId === undefined ? { method, path } : { method, path, operationId };\n\n/**\n * ```ts\n * const http = createHttpClient({ baseUrl: 'https://api.example.com', retry: 2 });\n * const reply = await http.get('/employees/{id}', {\n * \tparam: { id },\n * \tresponses: { 200: Employee, 404: Problem },\n * });\n * if (reply.status === 200) reply.data.name;\n * ```\n */\nexport function createHttpClient(options: HttpClientOptions = {}): HttpClient {\n\tconst signer = options.auth ? auth(options.auth) : undefined;\n\tconst claim = createLatest();\n\t/**\n\t * A `latest` key's signal. Claimed before anything is awaited, so calls\n\t * with the same key replace each other in the order they were made.\n\t */\n\tconst latestSignal = (key: string | undefined) =>\n\t\tkey === undefined ? undefined : claim(key);\n\tconst sharedHeaders = async (): Promise<Headers> =>\n\t\tnew Headers(\n\t\t\ttypeof options.headers === 'function'\n\t\t\t\t? await options.headers()\n\t\t\t\t: options.headers,\n\t\t);\n\n\t/** The request's own signal, with `timeout`'s deadline added. */\n\tconst withDeadline = (\n\t\ttimeout: number | undefined,\n\t\tsignal: AbortSignal | null | undefined,\n\t) => {\n\t\tconst deadline =\n\t\t\ttimeout === undefined ? undefined : AbortSignal.timeout(timeout);\n\t\tconst signals = [signal, deadline].filter(\n\t\t\t(each): each is AbortSignal => each != null,\n\t\t);\n\t\treturn {\n\t\t\tdeadline,\n\t\t\tsignal: signals.length > 1 ? AbortSignal.any(signals) : signals[0],\n\t\t};\n\t};\n\n\t/**\n\t * Through `retry`, `auth`, `use` and then `added`, what `use()` added, to\n\t * `fetch`: fetch's failure and the deadline made errors.\n\t */\n\tconst dispatch = async (\n\t\trequest: Request,\n\t\tcontext: CallContext,\n\t\ttimeout: number | undefined,\n\t\tdeadline: AbortSignal | undefined,\n\t\tretry: number | RetryOptions | false | undefined,\n\t\tadded: readonly Middleware[],\n\t): Promise<Response> => {\n\t\tconst fetch = options.fetch ?? ((sent: Request) => globalThis.fetch(sent));\n\t\t// fetch's own failure is a NetworkError, which `retry` retries; an abort is not one.\n\t\tconst send: Next = async (sent) => {\n\t\t\ttry {\n\t\t\t\t// As fetch does: a signal aborted before the call never sends.\n\t\t\t\tsent.signal.throwIfAborted();\n\t\t\t\treturn await fetch(sent);\n\t\t\t} catch (error) {\n\t\t\t\tif (request.signal.aborted) throw error;\n\t\t\t\tthrow new NetworkError(context, { cause: error });\n\t\t\t}\n\t\t};\n\t\tconst again = retrySettings(retry);\n\t\tconst layers = [\n\t\t\t...(again ? [retrying(again)] : []),\n\t\t\t...(signer ? [signer] : []),\n\t\t\t...(options.use ?? []),\n\t\t\t...added,\n\t\t];\n\t\ttry {\n\t\t\treturn await compose(layers, send, context)(request);\n\t\t} catch (error) {\n\t\t\tif (deadline?.aborted && timeout !== undefined) {\n\t\t\t\tthrow new TimeoutError(context, timeout, { cause: error });\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t};\n\n\t/**\n\t * A request's parts, from a call's options: its URL, and its init but for\n\t * the signal. `adjust` has the last word on the headers.\n\t */\n\tconst build = async (\n\t\tmethod: Method,\n\t\tpath: string,\n\t\tgiven: Given,\n\t\tadjust?: (headers: Headers) => void,\n\t) => {\n\t\tconst {\n\t\t\tparam,\n\t\t\tquery,\n\t\t\tjson,\n\t\t\tform,\n\t\t\ttext,\n\t\t\tbody,\n\t\t\toperationId,\n\t\t\ttimeout = options.timeout,\n\t\t\tretry = options.retry,\n\t\t\theaders: own,\n\t\t\tsignal,\n\t\t\t...rest\n\t\t} = given;\n\t\tconst context = contextOf(method, path, operationId);\n\t\tconst headers = await sharedHeaders();\n\t\tconst callHeaders = new Headers(own);\n\t\tcallHeaders.forEach((value, name) => {\n\t\t\theaders.set(name, value);\n\t\t});\n\t\tadjust?.(headers);\n\t\tconst url = joinUrl(\n\t\t\toptions.baseUrl,\n\t\t\tfillPath(context, param),\n\t\t\twriteQuery(query),\n\t\t);\n\t\tconst payload = writeBody(\n\t\t\t{ json, form, text, body } as BodyInput,\n\t\t\theaders,\n\t\t\tcallHeaders.get('content-type'),\n\t\t);\n\t\tconst init = {\n\t\t\t...options.init,\n\t\t\t...rest,\n\t\t\tmethod: method.toUpperCase(),\n\t\t\theaders,\n\t\t\tbody: payload,\n\t\t\t// A stream is sent as it is read, which fetch has to be told.\n\t\t\t...(payload instanceof ReadableStream ? { duplex: 'half' } : {}),\n\t\t} as RequestInit;\n\t\treturn { context, url, init, timeout, retry, signal: signal ?? undefined };\n\t};\n\n\tconst request = async (\n\t\tmethod: Method,\n\t\tpath: string,\n\t\tgiven: ReplyGiven,\n\t\tadded: readonly Middleware[],\n\t): Promise<unknown> => {\n\t\tconst {\n\t\t\tresponses,\n\t\t\tvalidate = true,\n\t\t\tdecode = true,\n\t\t\tlatest,\n\t\t\t...call\n\t\t} = given;\n\t\tconst replaced = latestSignal(latest);\n\t\tconst built = await build(method, path, call);\n\t\tconst { deadline, signal } = withDeadline(\n\t\t\tbuilt.timeout,\n\t\t\tjoinSignals(built.signal, replaced),\n\t\t);\n\t\tconst response = await dispatch(\n\t\t\tnew Request(built.url, { ...built.init, signal }),\n\t\t\tbuilt.context,\n\t\t\tbuilt.timeout,\n\t\t\tdeadline,\n\t\t\tbuilt.retry,\n\t\t\tadded,\n\t\t);\n\t\treturn readReply(\n\t\t\tbuilt.context,\n\t\t\tresponses === undefined ? undefined : toSpec(responses),\n\t\t\tresponse,\n\t\t\t{ validate, decode },\n\t\t);\n\t};\n\n\t/**\n\t * A stream's connections, each built afresh: its headers are run again and\n\t * `Last-Event-ID` is added. `timeout` bounds one until its headers arrive,\n\t * and no longer, since a stream has no end to wait for.\n\t */\n\tconst opener =\n\t\t(\n\t\t\tmethod: Method,\n\t\t\tpath: string,\n\t\t\tcall: Given,\n\t\t\taccept: string,\n\t\t\tadded: readonly Middleware[],\n\t\t): Open =>\n\t\tasync (stream, lastEventId) => {\n\t\t\tconst built = await build(method, path, call, (headers) => {\n\t\t\t\tif (!headers.has('accept')) headers.set('accept', accept);\n\t\t\t\tif (lastEventId !== undefined) {\n\t\t\t\t\theaders.set('last-event-id', lastEventId);\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst deadline = new AbortController();\n\t\t\tconst clock =\n\t\t\t\tbuilt.timeout === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: setTimeout(\n\t\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t\tdeadline.abort(\n\t\t\t\t\t\t\t\t\tnew DOMException('The stream did not open', 'TimeoutError'),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tbuilt.timeout,\n\t\t\t\t\t\t);\n\t\t\tconst signals = [stream, deadline.signal];\n\t\t\tif (built.signal) signals.push(built.signal);\n\t\t\ttry {\n\t\t\t\treturn await dispatch(\n\t\t\t\t\tnew Request(built.url, {\n\t\t\t\t\t\t...built.init,\n\t\t\t\t\t\tsignal: AbortSignal.any(signals),\n\t\t\t\t\t}),\n\t\t\t\t\tbuilt.context,\n\t\t\t\t\tbuilt.timeout,\n\t\t\t\t\tdeadline.signal,\n\t\t\t\t\tbuilt.retry,\n\t\t\t\t\tadded,\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tclearTimeout(clock);\n\t\t\t}\n\t\t};\n\n\tconst events = (\n\t\tpath: string,\n\t\tgiven: EventsGiven,\n\t\tadded: readonly Middleware[],\n\t) => {\n\t\tconst {\n\t\t\tevents,\n\t\t\tonUnknownEvent,\n\t\t\treconnect,\n\t\t\tlastEventId,\n\t\t\tvalidate = true,\n\t\t\tdecode = true,\n\t\t\tmethod = 'get',\n\t\t\tlatest,\n\t\t\t...own\n\t\t} = given;\n\t\tconst call = {\n\t\t\t...own,\n\t\t\tsignal: joinSignals(own.signal, latestSignal(latest)),\n\t\t};\n\t\tconst reconnects =\n\t\t\treconnect === undefined\n\t\t\t\t? method !== 'post' && method !== 'patch'\n\t\t\t\t: reconnect !== false;\n\t\tconst settings = typeof reconnect === 'object' ? reconnect : {};\n\t\treturn eventStream({\n\t\t\tcontext: contextOf(method, path, call.operationId),\n\t\t\topen: opener(method, path, call, 'text/event-stream', added),\n\t\t\tsignal: call.signal ?? undefined,\n\t\t\tvalidate,\n\t\t\tdecode,\n\t\t\tevents,\n\t\t\tonUnknownEvent,\n\t\t\treconnect: reconnects && {\n\t\t\t\tattempts: settings.attempts ?? Number.POSITIVE_INFINITY,\n\t\t\t\tdelay: settings.delay ?? RECONNECT_DELAY,\n\t\t\t},\n\t\t\tlastEventId,\n\t\t});\n\t};\n\n\tconst lines = (\n\t\tpath: string,\n\t\tgiven: LinesGiven,\n\t\tadded: readonly Middleware[],\n\t) => {\n\t\tconst {\n\t\t\titem,\n\t\t\tvalidate = true,\n\t\t\tdecode = true,\n\t\t\tmethod = 'get',\n\t\t\tlatest,\n\t\t\t...own\n\t\t} = given;\n\t\tconst call = {\n\t\t\t...own,\n\t\t\tsignal: joinSignals(own.signal, latestSignal(latest)),\n\t\t};\n\t\treturn lineStream({\n\t\t\tcontext: contextOf(method, path, call.operationId),\n\t\t\topen: opener(\n\t\t\t\tmethod,\n\t\t\t\tpath,\n\t\t\t\tcall,\n\t\t\t\tLINE_TYPES.slice(0, 2).join(', '),\n\t\t\t\tadded,\n\t\t\t),\n\t\t\tsignal: call.signal ?? undefined,\n\t\t\tvalidate,\n\t\t\tdecode,\n\t\t\titem,\n\t\t});\n\t};\n\n\tconst send = async (\n\t\trequest: Request,\n\t\t{\n\t\t\ttimeout = options.timeout,\n\t\t\tretry = options.retry,\n\t\t\toperationId,\n\t\t\tlatest,\n\t\t}: SendOptions,\n\t\tadded: readonly Middleware[],\n\t): Promise<Response> => {\n\t\tconst replaced = latestSignal(latest);\n\t\tconst method = request.method.toLowerCase();\n\t\tconst context = contextOf(\n\t\t\tmethod,\n\t\t\tnew URL(request.url).pathname,\n\t\t\toperationId,\n\t\t);\n\t\tconst headers = await sharedHeaders();\n\t\trequest.headers.forEach((value, name) => {\n\t\t\theaders.set(name, value);\n\t\t});\n\t\tconst { deadline, signal } = withDeadline(\n\t\t\ttimeout,\n\t\t\tjoinSignals(request.signal, replaced),\n\t\t);\n\t\tconst sent = new Request(request, { headers, signal });\n\t\treturn dispatch(sent, context, timeout, deadline, retry, added);\n\t};\n\n\t/**\n\t * The client's calls, each with `scope()`'s signal added to its own, and\n\t * the middleware of `use()`: `inherited()`, a parent's, read as each call\n\t * is made, then its own. A group's `use()` is the group's alone.\n\t */\n\tconst surface = (\n\t\tscope: () => AbortSignal | undefined,\n\t\tinherited: () => readonly Middleware[],\n\t): HttpClient => {\n\t\tconst own: Middleware[] = [];\n\t\tconst layers = () => [...inherited(), ...own];\n\t\tconst scoped = <T extends { readonly signal?: AbortSignal | null }>(\n\t\t\tgiven: T | undefined,\n\t\t): T => {\n\t\t\tconst extra = scope();\n\t\t\tconst own = given ?? ({} as T);\n\t\t\treturn extra\n\t\t\t\t? ({ ...own, signal: joinSignals(own.signal, extra) } as T)\n\t\t\t\t: own;\n\t\t};\n\t\tconst client: Record<string, unknown> = {\n\t\t\trequest: (method: Method, path: string, given?: ReplyGiven) =>\n\t\t\t\trequest(method, path, scoped(given), layers()),\n\t\t\tsend: (sent: Request, given?: SendOptions) => {\n\t\t\t\tconst extra = scope();\n\t\t\t\treturn send(\n\t\t\t\t\textra\n\t\t\t\t\t\t? new Request(sent, { signal: joinSignals(sent.signal, extra) })\n\t\t\t\t\t\t: sent,\n\t\t\t\t\tgiven ?? {},\n\t\t\t\t\tlayers(),\n\t\t\t\t);\n\t\t\t},\n\t\t\tevents: (path: string, given?: EventsGiven) =>\n\t\t\t\tevents(path, scoped(given), layers()),\n\t\t\tlines: (path: string, given?: LinesGiven) =>\n\t\t\t\tlines(path, scoped(given), layers()),\n\t\t\tuse: (...middlewares: Middleware[]) => {\n\t\t\t\town.push(...middlewares);\n\t\t\t\treturn client;\n\t\t\t},\n\t\t\tgroup: (): HttpGroup => {\n\t\t\t\tlet controller = new AbortController();\n\t\t\t\tconst group = surface(\n\t\t\t\t\t() => joinSignals(scope(), controller.signal),\n\t\t\t\t\tlayers,\n\t\t\t\t) as HttpClient & Record<string, unknown>;\n\t\t\t\tgroup.cancel = (reason?: unknown) => {\n\t\t\t\t\tcontroller.abort(reason ?? cancelled('The group was cancelled'));\n\t\t\t\t\tcontroller = new AbortController();\n\t\t\t\t};\n\t\t\t\tObject.defineProperty(group, 'signal', {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: () => controller.signal,\n\t\t\t\t});\n\t\t\t\treturn group as unknown as HttpGroup;\n\t\t\t},\n\t\t};\n\t\tfor (const method of METHODS) {\n\t\t\tclient[method] = (path: string, given?: ReplyGiven) =>\n\t\t\t\trequest(method, path, scoped(given), layers());\n\t\t}\n\t\treturn client as unknown as HttpClient;\n\t};\n\treturn surface(\n\t\t() => undefined,\n\t\t() => [],\n\t);\n}\n",
21
21
  "/**\n * Replies kept in memory, as a middleware: a request made again while its\n * reply is fresh is answered from memory, and `fetch` is never called.\n *\n * Its key is the request's method, URL, the headers in `vary`\n * (`authorization` by default, so no caller is answered with another's\n * reply), and its body, when it has one: a `QUERY` is cached by what it\n * searches for.\n */\nimport type { CallContext } from '../errors/errors';\nimport type { Middleware } from './compose';\n\nexport interface CacheOptions {\n\t/** Milliseconds a reply stays fresh. Default: 5 minutes. */\n\tttl?: number;\n\t/** At most this many replies, the least recently used dropped first. Default: 500. */\n\tmaxEntries?: number;\n\t/**\n\t * Which requests are cached. Default: the reads, `GET`, `HEAD` and\n\t * `QUERY`, whose body is part of the key.\n\t */\n\tcacheable?: (request: Request, call: CallContext) => boolean;\n\t/**\n\t * The request headers that tell two replies apart. Default:\n\t * `['authorization']`. Add `accept-language` for a localized API.\n\t */\n\tvary?: readonly string[];\n}\n\n/** The middleware, and a way to empty it: after a write, for one. */\nexport type Cache = Middleware & { clear(): void };\n\ninterface Entry {\n\treadonly expiry: number;\n\t/** Never read: each hit is a clone of it. */\n\treadonly response: Response;\n}\n\nconst READS = new Set(['GET', 'HEAD', 'QUERY']);\nconst reads = (request: Request) => READS.has(request.method.toUpperCase());\n\n/**\n * A cache of `ok` replies, for `use`. One cache is one store: share the\n * middleware to share the store, as datasources made per request do.\n *\n * ```ts\n * const replies = cache({ ttl: 30_000 });\n * createHttpClient({ baseUrl, use: [replies] });\n * ```\n */\nexport function cache({\n\tttl = 5 * 60 * 1000,\n\tmaxEntries = 500,\n\tcacheable = reads,\n\tvary = ['authorization'],\n}: CacheOptions = {}): Cache {\n\tconst entries = new Map<string, Entry>();\n\tconst keyOf = async (request: Request): Promise<string> => {\n\t\tconst parts = [\n\t\t\trequest.method,\n\t\t\trequest.url,\n\t\t\t...vary.map((name) => `${name}: ${request.headers.get(name) ?? ''}`),\n\t\t];\n\t\t// A clone's: the request is still sent with its own body.\n\t\tif (request.body !== null) parts.push(await request.clone().text());\n\t\treturn JSON.stringify(parts);\n\t};\n\tconst middleware: Middleware = async (request, next, call) => {\n\t\tif (!cacheable(request, call)) return next(request);\n\t\tconst key = await keyOf(request);\n\t\tconst hit = entries.get(key);\n\t\tentries.delete(key);\n\t\tif (hit && hit.expiry > Date.now()) {\n\t\t\t// Last in the map is the most recently used: the first is dropped first.\n\t\t\tentries.set(key, hit);\n\t\t\treturn hit.response.clone();\n\t\t}\n\t\tconst response = await next(request);\n\t\tif (!response.ok) return response;\n\t\tentries.set(key, { expiry: Date.now() + ttl, response: response.clone() });\n\t\tfor (const oldest of entries.keys()) {\n\t\t\tif (entries.size <= maxEntries) break;\n\t\t\tentries.delete(oldest);\n\t\t}\n\t\treturn response;\n\t};\n\treturn Object.assign(middleware, { clear: () => entries.clear() });\n}\n",
22
22
  "import { ReplyStatusError } from '../errors/errors';\n\n/**\n * The data of a reply with one of `statuses`, narrowed to theirs; any other\n * reply throws a `ReplyStatusError`.\n *\n * ```ts\n * const employee = unwrap(await http.get('/employees/{id}', { param: { id }, responses }), 200);\n * ```\n */\nexport function unwrap<\n\tR extends { readonly status: number; readonly data: unknown },\n\tS extends R['status'],\n>(reply: R, ...statuses: [S, ...S[]]): Extract<R, { status: S }>['data'] {\n\tif (!(statuses as readonly number[]).includes(reply.status)) {\n\t\tthrow new ReplyStatusError(reply, statuses);\n\t}\n\treturn reply.data as Extract<R, { status: S }>['data'];\n}\n\n/** The members of a reply union with a 2xx status: all of it when its status is any number. */\nexport type Success<R> = R extends { readonly status: infer S extends number }\n\t? number extends S\n\t\t? R\n\t\t: `${S}` extends `2${string}`\n\t\t\t? R\n\t\t\t: never\n\t: never;\n\n/**\n * The data of a 2xx reply, narrowed to the success statuses the call\n * declares; any other reply throws a `ReplyStatusError`.\n *\n * ```ts\n * const employee = ok(await http.get('/employees/{id}', { param: { id }, responses }));\n * ```\n */\nexport function ok<\n\tR extends { readonly status: number; readonly data: unknown },\n>(reply: R): Success<R>['data'] {\n\tif (reply.status < 200 || reply.status > 299) {\n\t\tthrow new ReplyStatusError(reply, []);\n\t}\n\treturn reply.data as Success<R>['data'];\n}\n"
23
23
  ],
24
- "mappings": "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",
25
- "debugId": "96539AFD0E70EDBE64756E2164756E21",
24
+ "mappings": "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",
25
+ "debugId": "900A44D2EECBE84C64756E2164756E21",
26
26
  "names": []
27
27
  }
@@ -831,7 +831,7 @@ function createHttpClient(options = {}) {
831
831
  signal: signals.length > 1 ? AbortSignal.any(signals) : signals[0]
832
832
  };
833
833
  };
834
- const dispatch = async (request, context, timeout, deadline, retry) => {
834
+ const dispatch = async (request, context, timeout, deadline, retry, added) => {
835
835
  const fetch = options.fetch ?? ((sent) => globalThis.fetch(sent));
836
836
  const send = async (sent) => {
837
837
  try {
@@ -847,7 +847,8 @@ function createHttpClient(options = {}) {
847
847
  const layers = [
848
848
  ...again ? [retrying(again)] : [],
849
849
  ...signer ? [signer] : [],
850
- ...options.use ?? []
850
+ ...options.use ?? [],
851
+ ...added
851
852
  ];
852
853
  try {
853
854
  return await compose(layers, send, context)(request);
@@ -892,7 +893,7 @@ function createHttpClient(options = {}) {
892
893
  };
893
894
  return { context, url, init, timeout, retry, signal: signal ?? undefined };
894
895
  };
895
- const request = async (method, path, given = {}) => {
896
+ const request = async (method, path, given, added) => {
896
897
  const {
897
898
  responses,
898
899
  validate = true,
@@ -903,10 +904,10 @@ function createHttpClient(options = {}) {
903
904
  const replaced = latestSignal(latest);
904
905
  const built = await build(method, path, call);
905
906
  const { deadline, signal } = withDeadline(built.timeout, joinSignals(built.signal, replaced));
906
- const response = await dispatch(new Request(built.url, { ...built.init, signal }), built.context, built.timeout, deadline, built.retry);
907
+ const response = await dispatch(new Request(built.url, { ...built.init, signal }), built.context, built.timeout, deadline, built.retry, added);
907
908
  return readReply(built.context, responses === undefined ? undefined : toSpec(responses), response, { validate, decode });
908
909
  };
909
- const opener = (method, path, call, accept) => async (stream, lastEventId) => {
910
+ const opener = (method, path, call, accept, added) => async (stream, lastEventId) => {
910
911
  const built = await build(method, path, call, (headers) => {
911
912
  if (!headers.has("accept"))
912
913
  headers.set("accept", accept);
@@ -923,12 +924,12 @@ function createHttpClient(options = {}) {
923
924
  return await dispatch(new Request(built.url, {
924
925
  ...built.init,
925
926
  signal: AbortSignal.any(signals)
926
- }), built.context, built.timeout, deadline.signal, built.retry);
927
+ }), built.context, built.timeout, deadline.signal, built.retry, added);
927
928
  } finally {
928
929
  clearTimeout(clock);
929
930
  }
930
931
  };
931
- const events = (path, given = {}) => {
932
+ const events = (path, given, added) => {
932
933
  const {
933
934
  events,
934
935
  onUnknownEvent,
@@ -948,7 +949,7 @@ function createHttpClient(options = {}) {
948
949
  const settings = typeof reconnect === "object" ? reconnect : {};
949
950
  return eventStream({
950
951
  context: contextOf(method, path, call.operationId),
951
- open: opener(method, path, call, "text/event-stream"),
952
+ open: opener(method, path, call, "text/event-stream", added),
952
953
  signal: call.signal ?? undefined,
953
954
  validate,
954
955
  decode,
@@ -961,7 +962,7 @@ function createHttpClient(options = {}) {
961
962
  lastEventId
962
963
  });
963
964
  };
964
- const lines = (path, given = {}) => {
965
+ const lines = (path, given, added) => {
965
966
  const {
966
967
  item,
967
968
  validate = true,
@@ -976,7 +977,7 @@ function createHttpClient(options = {}) {
976
977
  };
977
978
  return lineStream({
978
979
  context: contextOf(method, path, call.operationId),
979
- open: opener(method, path, call, LINE_TYPES.slice(0, 2).join(", ")),
980
+ open: opener(method, path, call, LINE_TYPES.slice(0, 2).join(", "), added),
980
981
  signal: call.signal ?? undefined,
981
982
  validate,
982
983
  decode,
@@ -988,7 +989,7 @@ function createHttpClient(options = {}) {
988
989
  retry = options.retry,
989
990
  operationId,
990
991
  latest
991
- } = {}) => {
992
+ }, added) => {
992
993
  const replaced = latestSignal(latest);
993
994
  const method = request.method.toLowerCase();
994
995
  const context = contextOf(method, new URL(request.url).pathname, operationId);
@@ -998,25 +999,31 @@ function createHttpClient(options = {}) {
998
999
  });
999
1000
  const { deadline, signal } = withDeadline(timeout, joinSignals(request.signal, replaced));
1000
1001
  const sent = new Request(request, { headers, signal });
1001
- return dispatch(sent, context, timeout, deadline, retry);
1002
+ return dispatch(sent, context, timeout, deadline, retry, added);
1002
1003
  };
1003
- const surface = (scope) => {
1004
+ const surface = (scope, inherited) => {
1005
+ const own = [];
1006
+ const layers = () => [...inherited(), ...own];
1004
1007
  const scoped = (given) => {
1005
1008
  const extra = scope();
1006
1009
  const own = given ?? {};
1007
1010
  return extra ? { ...own, signal: joinSignals(own.signal, extra) } : own;
1008
1011
  };
1009
1012
  const client = {
1010
- request: (method, path, given) => request(method, path, scoped(given)),
1013
+ request: (method, path, given) => request(method, path, scoped(given), layers()),
1011
1014
  send: (sent, given) => {
1012
1015
  const extra = scope();
1013
- return send(extra ? new Request(sent, { signal: joinSignals(sent.signal, extra) }) : sent, given);
1016
+ return send(extra ? new Request(sent, { signal: joinSignals(sent.signal, extra) }) : sent, given ?? {}, layers());
1017
+ },
1018
+ events: (path, given) => events(path, scoped(given), layers()),
1019
+ lines: (path, given) => lines(path, scoped(given), layers()),
1020
+ use: (...middlewares) => {
1021
+ own.push(...middlewares);
1022
+ return client;
1014
1023
  },
1015
- events: (path, given) => events(path, scoped(given)),
1016
- lines: (path, given) => lines(path, scoped(given)),
1017
1024
  group: () => {
1018
1025
  let controller = new AbortController;
1019
- const group = surface(() => joinSignals(scope(), controller.signal));
1026
+ const group = surface(() => joinSignals(scope(), controller.signal), layers);
1020
1027
  group.cancel = (reason) => {
1021
1028
  controller.abort(reason ?? cancelled("The group was cancelled"));
1022
1029
  controller = new AbortController;
@@ -1029,13 +1036,13 @@ function createHttpClient(options = {}) {
1029
1036
  }
1030
1037
  };
1031
1038
  for (const method of METHODS) {
1032
- client[method] = (path, given) => request(method, path, scoped(given));
1039
+ client[method] = (path, given) => request(method, path, scoped(given), layers());
1033
1040
  }
1034
1041
  return client;
1035
1042
  };
1036
1043
  return surface(() => {
1037
1044
  return;
1038
- });
1045
+ }, () => []);
1039
1046
  }
1040
1047
  export {
1041
1048
  METHODS,
@@ -1047,5 +1054,5 @@ export {
1047
1054
  toSearchParams
1048
1055
  };
1049
1056
 
1050
- //# debugId=05C3145FB7DF61A464756E2164756E21
1057
+ //# debugId=08EFC0FA159560DB64756E2164756E21
1051
1058
  //# sourceMappingURL=index.js.map
@@ -2,7 +2,7 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/cancel/abort.ts", "../src/cancel/latest.ts", "../src/errors/errors.ts", "../src/middleware/auth.ts", "../src/middleware/compose.ts", "../src/middleware/retry.ts", "../src/schema/standard-schema.ts", "../src/reply/media-type.ts", "../src/reply/read-reply.ts", "../src/request/encode.ts", "../src/stream/connection.ts", "../src/stream/sse-parser.ts", "../src/stream/event-stream.ts", "../src/stream/line-parser.ts", "../src/stream/line-stream.ts", "../src/client/create-http-client.ts"],
4
4
  "sourcesContent": [
5
- "/**\n * Aborts, as the client makes and recognizes them. A call aborted through its\n * `signal`, by a later call with the same `latest`, or by its group's\n * `cancel()` rejects with the abort's reason, unwrapped: an `AbortError`\n * unless the caller gave a reason of its own.\n */\n\n/**\n * Whether `error` ended a call because it was aborted, rather than failed:\n * a signal aborted without a reason of its own, or by `AbortSignal.timeout()`,\n * a later call with the same `latest`, or a group's `cancel()`. The client's\n * own `TimeoutError`, past `timeout`, is a failure, not an abort.\n */\nexport function isAbortError(error: unknown): boolean {\n\tif (typeof DOMException !== 'undefined' && error instanceof DOMException) {\n\t\treturn error.name === 'AbortError' || error.name === 'TimeoutError';\n\t}\n\treturn error instanceof Error && error.name === 'AbortError';\n}\n\n/** What the client aborts a call with: an `AbortError`, which `isAbortError` knows. */\nexport const cancelled = (message: string): DOMException =>\n\tnew DOMException(message, 'AbortError');\n\n/** `promise`, or the signal's reason as soon as it aborts; the promise itself runs on. */\nexport function abortable<T>(\n\tpromise: Promise<T>,\n\tsignal: AbortSignal | undefined,\n): Promise<T> {\n\tif (!signal) return promise;\n\tif (signal.aborted) return Promise.reject(signal.reason);\n\treturn new Promise<T>((resolve, reject) => {\n\t\tconst stop = () => reject(signal.reason);\n\t\tsignal.addEventListener('abort', stop, { once: true });\n\t\tpromise\n\t\t\t.then(resolve, reject)\n\t\t\t.finally(() => signal.removeEventListener('abort', stop));\n\t});\n}\n\n/** One signal that aborts with the first of them; `undefined` when there are none. */\nexport function joinSignals(\n\t...signals: (AbortSignal | null | undefined)[]\n): AbortSignal | undefined {\n\tconst present = signals.filter(\n\t\t(signal): signal is AbortSignal => signal != null,\n\t);\n\treturn present.length > 1 ? AbortSignal.any(present) : present[0];\n}\n",
5
+ "/**\n * Aborts, as the client makes and recognizes them. A call aborted through its\n * `signal`, by a later call with the same `latest`, or by its group's\n * `cancel()` rejects with the abort's reason, unwrapped: an `AbortError`\n * unless the caller gave a reason of its own.\n */\n\n/**\n * Whether `error` ended a call because it was aborted, rather than failed:\n * a signal aborted without a reason of its own, or by `AbortSignal.timeout()`,\n * a later call with the same `latest`, or a group's `cancel()`. The client's\n * own `TimeoutError`, past `timeout`, is a failure, not an abort.\n *\n * A `boolean`, not a type guard: as `error is Error`, the branch where it is\n * false would drop `Error` from the error's type, though a failure is an\n * `Error` too, and an `Error`-typed catch would be `never` there.\n */\nexport function isAbortError(error: unknown): boolean {\n\tif (typeof DOMException !== 'undefined' && error instanceof DOMException) {\n\t\treturn error.name === 'AbortError' || error.name === 'TimeoutError';\n\t}\n\treturn error instanceof Error && error.name === 'AbortError';\n}\n\n/** What the client aborts a call with: an `AbortError`, which `isAbortError` knows. */\nexport const cancelled = (message: string): DOMException =>\n\tnew DOMException(message, 'AbortError');\n\n/** `promise`, or the signal's reason as soon as it aborts; the promise itself runs on. */\nexport function abortable<T>(\n\tpromise: Promise<T>,\n\tsignal: AbortSignal | undefined,\n): Promise<T> {\n\tif (!signal) return promise;\n\tif (signal.aborted) return Promise.reject(signal.reason);\n\treturn new Promise<T>((resolve, reject) => {\n\t\tconst stop = () => reject(signal.reason);\n\t\tsignal.addEventListener('abort', stop, { once: true });\n\t\tpromise\n\t\t\t.then(resolve, reject)\n\t\t\t.finally(() => signal.removeEventListener('abort', stop));\n\t});\n}\n\n/** One signal that aborts with the first of them; `undefined` when there are none. */\nexport function joinSignals(\n\t...signals: (AbortSignal | null | undefined)[]\n): AbortSignal | undefined {\n\tconst present = signals.filter(\n\t\t(signal): signal is AbortSignal => signal != null,\n\t);\n\treturn present.length > 1 ? AbortSignal.any(present) : present[0];\n}\n",
6
6
  "/**\n * `latest`: one call running per key. A call with a key aborts the one before\n * it with the same key, if that one still runs: a search typed ahead keeps\n * only its last query in flight.\n */\nimport { cancelled } from './abort';\n\n/** A client's keys: `claim(key)` aborts the key's previous call, and returns the new call's signal. */\nexport function createLatest(): (key: string) => AbortSignal {\n\t// A finished call's controller stays until its key is used again: aborting it then does nothing.\n\tconst running = new Map<string, AbortController>();\n\treturn (key) => {\n\t\trunning\n\t\t\t.get(key)\n\t\t\t?.abort(\n\t\t\t\tcancelled(`A later call with latest: '${key}' replaced this one`),\n\t\t\t);\n\t\tconst controller = new AbortController();\n\t\trunning.set(key, controller);\n\t\treturn controller.signal;\n\t};\n}\n",
7
7
  "/** Which call failed: every error a call throws carries it. */\nexport interface CallContext {\n\treadonly method: string;\n\t/** As the caller wrote it: `/employees/{id}`. */\n\treadonly path: string;\n\t/** The call's name, when it was given one: an OpenAPI `operationId`. */\n\treadonly operationId?: string;\n}\n\n/** Where a value was found wrong, as `@nxgt/openapi-hono` reports it. */\nexport interface ValidationIssue {\n\ttarget: 'param' | 'query' | 'header' | 'json' | 'form' | 'body' | 'response';\n\t/** Inside the target: `['items', 0, 'name']`, or `[]` for the whole of it. */\n\tpath: (string | number)[];\n\tcode: string;\n\tmessage: string;\n}\n\n/** The same shape as the server's: one failure, every issue in it. */\nexport interface ValidationFailure {\n\tkind: 'request' | 'response';\n\toperationId?: string;\n\tmethod: string;\n\tpath: string;\n\tstatus?: number;\n\tissues: ValidationIssue[];\n}\n\n/**\n * Every error a call throws, but an abort the caller asked for, which comes\n * through as the `AbortError` its signal gave.\n */\nexport class ClientError extends Error {\n\toverride name = 'ClientError';\n\treadonly operationId: string | undefined;\n\treadonly method: string;\n\treadonly path: string;\n\n\tconstructor(context: CallContext, message: string, options?: ErrorOptions) {\n\t\tconst route = `${context.method.toUpperCase()} ${context.path}`;\n\t\tconst call =\n\t\t\tcontext.operationId === undefined\n\t\t\t\t? route\n\t\t\t\t: `${context.operationId} (${route})`;\n\t\tsuper(`${call}: ${message}`, options);\n\t\tthis.operationId = context.operationId;\n\t\tthis.method = context.method;\n\t\tthis.path = context.path;\n\t}\n}\n\n/** fetch failed: no connection, a refused one, a CORS refusal. The cause is fetch's error. */\nexport class NetworkError extends ClientError {\n\toverride name = 'NetworkError';\n\n\tconstructor(context: CallContext, options?: ErrorOptions) {\n\t\tsuper(context, 'no reply came back', options);\n\t}\n}\n\nexport class TimeoutError extends ClientError {\n\toverride name = 'TimeoutError';\n\treadonly timeout: number;\n\n\tconstructor(context: CallContext, timeout: number, options?: ErrorOptions) {\n\t\tsuper(context, `no reply within ${timeout} ms`, options);\n\t\tthis.timeout = timeout;\n\t}\n}\n\n/** A status the call's `responses` do not declare. */\nexport class UndeclaredStatusError extends ClientError {\n\toverride name = 'UndeclaredStatusError';\n\treadonly status: number;\n\t/** Unread: its body is still there to read. */\n\treadonly response: Response;\n\n\tconstructor(context: CallContext, response: Response) {\n\t\tsuper(context, `no ${response.status} reply is declared`);\n\t\tthis.status = response.status;\n\t\tthis.response = response;\n\t}\n}\n\n/**\n * A reply its declaration does not describe: an undeclared media type, JSON\n * that does not parse, a value its schema refuses; or a request refused\n * before it was sent.\n */\nexport class ValidationError extends ClientError {\n\toverride name = 'ValidationError';\n\treadonly failure: ValidationFailure;\n\n\tconstructor(context: CallContext, failure: ValidationFailure) {\n\t\tsuper(context, failure.issues.map((issue) => issue.message).join('; '));\n\t\tthis.failure = failure;\n\t}\n}\n\n/**\n * From `unwrap()` or `ok()`: a declared reply, but not one of the statuses\n * asked for. No status asked for means any 2xx.\n */\nexport class ReplyStatusError extends Error {\n\toverride name = 'ReplyStatusError';\n\treadonly status: number;\n\treadonly data: unknown;\n\treadonly response: Response | undefined;\n\n\tconstructor(\n\t\treply: { status: number; data: unknown; response?: Response },\n\t\texpected: readonly number[],\n\t) {\n\t\tconst wanted = expected.length > 0 ? expected.join(' or ') : '2xx';\n\t\tsuper(`Expected a ${wanted} reply, got ${reply.status}`);\n\t\tthis.status = reply.status;\n\t\tthis.data = reply.data;\n\t\tthis.response = reply.response;\n\t}\n}\n",
8
8
  "/**\n * A token on every request, and one refresh when a reply is 401: calls\n * refused together wait on the same refresh, then are sent again once, with\n * the new token.\n */\nimport { abortable } from '../cancel/abort';\nimport type { Middleware } from './compose';\n\ntype Token = string | null | undefined;\n\nexport interface AuthOptions {\n\t/** The current token, read before each request. None sends no header. */\n\ttoken: () => Token | Promise<Token>;\n\t/**\n\t * Gets a new token after a 401, for `token` to return. When it throws, or\n\t * `token` still returns the refused one, the 401 is the reply, for the app\n\t * to sign out on.\n\t */\n\trefresh?: () => unknown;\n\t/** Default: `Bearer`. */\n\tscheme?: string;\n}\n\n/** The client's `auth`: one per client, so its calls share a refresh. */\nexport function auth({\n\ttoken,\n\trefresh,\n\tscheme = 'Bearer',\n}: AuthOptions): Middleware {\n\tlet refreshing: Promise<unknown> | undefined;\n\tconst sign = (request: Request, value: Token): Request => {\n\t\tif (value) request.headers.set('authorization', `${scheme} ${value}`);\n\t\treturn request;\n\t};\n\treturn async (request, next) => {\n\t\tconst used = await token();\n\t\t// Sent again after a refresh: its body can only be read once.\n\t\tconst replay = refresh ? request.clone() : undefined;\n\t\tconst response = await next(sign(request, used));\n\t\tif (response.status !== 401 || !replay || !refresh) return response;\n\t\ttry {\n\t\t\t// A call refused with a token already replaced has nothing to refresh.\n\t\t\tif ((await token()) === used) {\n\t\t\t\trefreshing ??= Promise.resolve()\n\t\t\t\t\t.then(refresh)\n\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\trefreshing = undefined;\n\t\t\t\t\t});\n\t\t\t\t// An aborted call stops waiting; the refresh runs on for the others.\n\t\t\t\tawait abortable(refreshing, request.signal);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tif (request.signal.aborted) {\n\t\t\t\tawait response.body?.cancel();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\treturn response;\n\t\t}\n\t\tconst fresh = await token();\n\t\tif (!fresh || fresh === used) return response;\n\t\tawait response.body?.cancel();\n\t\treturn next(sign(replay, fresh));\n\t};\n}\n",
@@ -17,9 +17,9 @@
17
17
  "/**\n * `http.events()`: server-sent events over `fetch`. It reconnects as\n * `EventSource` does, but through the client, so each connection has its\n * `auth` and middleware, and its events are checked by their schemas.\n */\nimport { NetworkError } from '../errors/errors';\nimport {\n\topened,\n\tpause,\n\tReading,\n\ttype StreamSettings,\n\tsettle,\n} from './connection';\nimport { createSseParser, type ServerEvent } from './sse-parser';\nimport type { EventSchemas, EventStream } from './types';\n\nexport interface EventSettings extends StreamSettings {\n\treadonly events: EventSchemas | undefined;\n\treadonly onUnknownEvent: ((event: ServerEvent) => void) | undefined;\n\t/** `false`, or how to reconnect. */\n\treadonly reconnect:\n\t\t| { readonly attempts: number; readonly delay: number }\n\t\t| false;\n\treadonly lastEventId: string | undefined;\n}\n\nexport function eventStream(settings: EventSettings): EventStream<unknown> {\n\tconst reading = new Reading(settings.signal);\n\tlet lastEventId = settings.lastEventId;\n\tlet delay = settings.reconnect ? settings.reconnect.delay : 0;\n\tlet started = false;\n\n\t/** A declared event with its data checked, or `undefined` for one it does not declare. */\n\tconst declared = async (raw: ServerEvent, status: number) => {\n\t\tconst { events } = settings;\n\t\tif (!events) return raw;\n\t\tif (!Object.hasOwn(events, raw.event)) {\n\t\t\tsettings.onUnknownEvent?.(raw);\n\t\t\treturn undefined;\n\t\t}\n\t\tconst schema = events[raw.event];\n\t\tif (!schema) return raw;\n\t\tconst what = `the ${raw.event} event's data`;\n\t\tconst data = await settle(settings, status, raw.data, schema, what);\n\t\treturn { event: raw.event, data, id: raw.id };\n\t};\n\n\t/** Whether to connect again after `failures` in a row, having waited for it. */\n\tconst again = async (failures: number): Promise<boolean> => {\n\t\tconst { reconnect } = settings;\n\t\tif (!reconnect || failures >= reconnect.attempts) return false;\n\t\tawait pause(delay, reading.closer.signal, settings.signal);\n\t\treturn !reading.stopped();\n\t};\n\n\tasync function* run(): AsyncGenerator<unknown, void, undefined> {\n\t\tlet failures = 0;\n\t\ttry {\n\t\t\tfor (;;) {\n\t\t\t\tlet response: Response;\n\t\t\t\ttry {\n\t\t\t\t\tresponse = await settings.open(reading.closer.signal, lastEventId);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (reading.closer.signal.aborted) return;\n\t\t\t\t\t// Only a connection that failed may pass: not a timeout, an abort or a refusal.\n\t\t\t\t\tif (error instanceof NetworkError && (await again(failures++))) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tif (!(await opened(settings, response, ['text/event-stream']))) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst parser = createSseParser(lastEventId);\n\t\t\t\tconst reader = reading.read(response);\n\t\t\t\tlet dropped: unknown;\n\t\t\t\tfor (;;) {\n\t\t\t\t\tlet chunk: Awaited<ReturnType<typeof reader.read>>;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tchunk = await reader.read();\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (reading.stopped()) return;\n\t\t\t\t\t\tdropped = error;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif (reading.stopped()) return;\n\t\t\t\t\tif (chunk.done) break;\n\t\t\t\t\tconst events = parser.push(chunk.value);\n\t\t\t\t\tlastEventId = parser.lastEventId;\n\t\t\t\t\tdelay = parser.retry ?? delay;\n\t\t\t\t\tfor (const raw of events) {\n\t\t\t\t\t\tfailures = 0;\n\t\t\t\t\t\tconst event = await declared(raw, response.status);\n\t\t\t\t\t\tif (event !== undefined) yield event;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!(await again(failures++))) {\n\t\t\t\t\tif (dropped === undefined) return;\n\t\t\t\t\tthrow new NetworkError(settings.context, { cause: dropped });\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\treading.release();\n\t\t}\n\t}\n\n\treturn {\n\t\t[Symbol.asyncIterator]() {\n\t\t\tif (started) throw new TypeError('A stream is read once');\n\t\t\tstarted = true;\n\t\t\treturn run();\n\t\t},\n\t\tclose: () => reading.close(),\n\t\tget lastEventId() {\n\t\t\treturn lastEventId;\n\t\t},\n\t};\n}\n",
18
18
  "/**\n * JSON Lines, NDJSON and JSON text sequences, split into their records: one\n * JSON text a line, or after each record separator (`\\x1E`). Blank lines\n * separate nothing, and a last record needs no line end.\n */\n\nexport interface LineParser {\n\t/** Reads a chunk of text, and returns the records it completed. */\n\tpush(chunk: string): string[];\n\t/** The record left when the stream ends, if any. */\n\tend(): string[];\n}\n\n/** A JSON text sequence's record separator, which ends a record as a line end does. */\nconst RS = String.fromCharCode(0x1e);\n\nexport function createLineParser(): LineParser {\n\tlet buffer = '';\n\tconst records = (texts: string[]) =>\n\t\ttexts.map((text) => text.trim()).filter((text) => text !== '');\n\treturn {\n\t\tpush(chunk) {\n\t\t\tconst parts = (buffer + chunk).replaceAll(RS, '\\n').split(/\\r?\\n/);\n\t\t\tbuffer = parts.pop() ?? '';\n\t\t\treturn records(parts);\n\t\t},\n\t\tend() {\n\t\t\tconst rest = buffer;\n\t\t\tbuffer = '';\n\t\t\treturn records([rest]);\n\t\t},\n\t};\n}\n",
19
19
  "/** `http.lines()`: JSON Lines, NDJSON or JSON text sequences, a record at a time. */\nimport { NetworkError } from '../errors/errors';\nimport type { StandardSchemaV1 } from '../schema/standard-schema';\nimport { opened, Reading, type StreamSettings, settle } from './connection';\nimport { createLineParser } from './line-parser';\nimport type { Stream } from './types';\n\n/** The media types a stream of lines is served as. */\nexport const LINE_TYPES = [\n\t'application/jsonl',\n\t'application/x-ndjson',\n\t'application/ndjson',\n\t'application/jsonlines',\n\t'application/x-jsonlines',\n\t'application/json-seq',\n] as const;\n\nexport interface LineSettings extends StreamSettings {\n\treadonly item: StandardSchemaV1 | undefined;\n}\n\nexport function lineStream(settings: LineSettings): Stream<unknown> {\n\tconst reading = new Reading(settings.signal);\n\tlet started = false;\n\n\tasync function* run(): AsyncGenerator<unknown, void, undefined> {\n\t\ttry {\n\t\t\tlet response: Response;\n\t\t\ttry {\n\t\t\t\tresponse = await settings.open(reading.closer.signal, undefined);\n\t\t\t} catch (error) {\n\t\t\t\tif (reading.closer.signal.aborted) return;\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tif (!(await opened(settings, response, LINE_TYPES))) return;\n\t\t\tconst parser = createLineParser();\n\t\t\tconst reader = reading.read(response);\n\t\t\tfor (;;) {\n\t\t\t\tlet chunk: Awaited<ReturnType<typeof reader.read>>;\n\t\t\t\ttry {\n\t\t\t\t\tchunk = await reader.read();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (reading.stopped()) return;\n\t\t\t\t\tthrow new NetworkError(settings.context, { cause: error });\n\t\t\t\t}\n\t\t\t\tif (reading.stopped()) return;\n\t\t\t\tconst texts = chunk.done ? parser.end() : parser.push(chunk.value);\n\t\t\t\tfor (const text of texts) {\n\t\t\t\t\tyield await settle(\n\t\t\t\t\t\tsettings,\n\t\t\t\t\t\tresponse.status,\n\t\t\t\t\t\ttext,\n\t\t\t\t\t\tsettings.item,\n\t\t\t\t\t\t'a line',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (chunk.done) return;\n\t\t\t}\n\t\t} finally {\n\t\t\treading.release();\n\t\t}\n\t}\n\n\treturn {\n\t\t[Symbol.asyncIterator]() {\n\t\t\tif (started) throw new TypeError('A stream is read once');\n\t\t\tstarted = true;\n\t\t\treturn run();\n\t\t},\n\t\tclose: () => reading.close(),\n\t};\n}\n",
20
- "/**\n * `createHttpClient`: calls over the standard `fetch`, each typed by its path\n * and by the replies it declares, through `retry`, `auth` and middleware.\n */\nimport { cancelled, joinSignals } from '../cancel/abort';\nimport { createLatest } from '../cancel/latest';\nimport { type CallContext, NetworkError, TimeoutError } from '../errors/errors';\nimport { auth } from '../middleware/auth';\nimport { compose, type Next } from '../middleware/compose';\nimport {\n\ttype RetryOptions,\n\tretrying,\n\tretrySettings,\n} from '../middleware/retry';\nimport { readReply, toSpec } from '../reply/read-reply';\nimport type { Responses } from '../reply/types';\nimport { fillPath, joinUrl, writeBody, writeQuery } from '../request/encode';\nimport type { BodyInput, QueryInput } from '../request/types';\nimport type { StandardSchemaV1 } from '../schema/standard-schema';\nimport type { Open } from '../stream/connection';\nimport { eventStream } from '../stream/event-stream';\nimport { LINE_TYPES, lineStream } from '../stream/line-stream';\nimport type { ServerEvent } from '../stream/sse-parser';\nimport type { EventSchemas, ReconnectOptions } from '../stream/types';\nimport type {\n\tCallOptions,\n\tHttpClient,\n\tHttpClientOptions,\n\tHttpGroup,\n\tMethod,\n\tSendOptions,\n} from './types';\n\nexport const METHODS: readonly Method[] = [\n\t'get',\n\t'put',\n\t'post',\n\t'delete',\n\t'options',\n\t'head',\n\t'patch',\n\t'trace',\n\t'query',\n];\n\n/** What a request is built from, as the client reads a call's options. */\ntype Given = BodyInput &\n\tCallOptions & {\n\t\treadonly param?: Readonly<Record<string, unknown>>;\n\t\treadonly query?: QueryInput;\n\t};\n\ntype ReplyGiven = Given & {\n\treadonly responses?: Responses;\n\treadonly validate?: boolean;\n\treadonly decode?: boolean;\n};\n\ntype StreamGiven = Given & {\n\treadonly method?: Method;\n\treadonly validate?: boolean;\n\treadonly decode?: boolean;\n};\n\ntype EventsGiven = StreamGiven & {\n\treadonly events?: EventSchemas;\n\treadonly onUnknownEvent?: (event: ServerEvent) => void;\n\treadonly reconnect?: boolean | ReconnectOptions;\n\treadonly lastEventId?: string;\n};\n\ntype LinesGiven = StreamGiven & { readonly item?: StandardSchemaV1 };\n\n/** A stream reconnects by default, but for the methods a retry would not repeat. */\nconst RECONNECT_DELAY = 3000;\n\nconst contextOf = (\n\tmethod: string,\n\tpath: string,\n\toperationId: string | undefined,\n): CallContext =>\n\toperationId === undefined ? { method, path } : { method, path, operationId };\n\n/**\n * ```ts\n * const http = createHttpClient({ baseUrl: 'https://api.example.com', retry: 2 });\n * const reply = await http.get('/employees/{id}', {\n * \tparam: { id },\n * \tresponses: { 200: Employee, 404: Problem },\n * });\n * if (reply.status === 200) reply.data.name;\n * ```\n */\nexport function createHttpClient(options: HttpClientOptions = {}): HttpClient {\n\tconst signer = options.auth ? auth(options.auth) : undefined;\n\tconst claim = createLatest();\n\t/**\n\t * A `latest` key's signal. Claimed before anything is awaited, so calls\n\t * with the same key replace each other in the order they were made.\n\t */\n\tconst latestSignal = (key: string | undefined) =>\n\t\tkey === undefined ? undefined : claim(key);\n\tconst sharedHeaders = async (): Promise<Headers> =>\n\t\tnew Headers(\n\t\t\ttypeof options.headers === 'function'\n\t\t\t\t? await options.headers()\n\t\t\t\t: options.headers,\n\t\t);\n\n\t/** The request's own signal, with `timeout`'s deadline added. */\n\tconst withDeadline = (\n\t\ttimeout: number | undefined,\n\t\tsignal: AbortSignal | null | undefined,\n\t) => {\n\t\tconst deadline =\n\t\t\ttimeout === undefined ? undefined : AbortSignal.timeout(timeout);\n\t\tconst signals = [signal, deadline].filter(\n\t\t\t(each): each is AbortSignal => each != null,\n\t\t);\n\t\treturn {\n\t\t\tdeadline,\n\t\t\tsignal: signals.length > 1 ? AbortSignal.any(signals) : signals[0],\n\t\t};\n\t};\n\n\t/** Through `retry`, `auth` and `use` to `fetch`, fetch's failure and the deadline made errors. */\n\tconst dispatch = async (\n\t\trequest: Request,\n\t\tcontext: CallContext,\n\t\ttimeout: number | undefined,\n\t\tdeadline: AbortSignal | undefined,\n\t\tretry: number | RetryOptions | false | undefined,\n\t): Promise<Response> => {\n\t\tconst fetch = options.fetch ?? ((sent: Request) => globalThis.fetch(sent));\n\t\t// fetch's own failure is a NetworkError, which `retry` retries; an abort is not one.\n\t\tconst send: Next = async (sent) => {\n\t\t\ttry {\n\t\t\t\t// As fetch does: a signal aborted before the call never sends.\n\t\t\t\tsent.signal.throwIfAborted();\n\t\t\t\treturn await fetch(sent);\n\t\t\t} catch (error) {\n\t\t\t\tif (request.signal.aborted) throw error;\n\t\t\t\tthrow new NetworkError(context, { cause: error });\n\t\t\t}\n\t\t};\n\t\tconst again = retrySettings(retry);\n\t\tconst layers = [\n\t\t\t...(again ? [retrying(again)] : []),\n\t\t\t...(signer ? [signer] : []),\n\t\t\t...(options.use ?? []),\n\t\t];\n\t\ttry {\n\t\t\treturn await compose(layers, send, context)(request);\n\t\t} catch (error) {\n\t\t\tif (deadline?.aborted && timeout !== undefined) {\n\t\t\t\tthrow new TimeoutError(context, timeout, { cause: error });\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t};\n\n\t/**\n\t * A request's parts, from a call's options: its URL, and its init but for\n\t * the signal. `adjust` has the last word on the headers.\n\t */\n\tconst build = async (\n\t\tmethod: Method,\n\t\tpath: string,\n\t\tgiven: Given,\n\t\tadjust?: (headers: Headers) => void,\n\t) => {\n\t\tconst {\n\t\t\tparam,\n\t\t\tquery,\n\t\t\tjson,\n\t\t\tform,\n\t\t\ttext,\n\t\t\tbody,\n\t\t\toperationId,\n\t\t\ttimeout = options.timeout,\n\t\t\tretry = options.retry,\n\t\t\theaders: own,\n\t\t\tsignal,\n\t\t\t...rest\n\t\t} = given;\n\t\tconst context = contextOf(method, path, operationId);\n\t\tconst headers = await sharedHeaders();\n\t\tconst callHeaders = new Headers(own);\n\t\tcallHeaders.forEach((value, name) => {\n\t\t\theaders.set(name, value);\n\t\t});\n\t\tadjust?.(headers);\n\t\tconst url = joinUrl(\n\t\t\toptions.baseUrl,\n\t\t\tfillPath(context, param),\n\t\t\twriteQuery(query),\n\t\t);\n\t\tconst payload = writeBody(\n\t\t\t{ json, form, text, body } as BodyInput,\n\t\t\theaders,\n\t\t\tcallHeaders.get('content-type'),\n\t\t);\n\t\tconst init = {\n\t\t\t...options.init,\n\t\t\t...rest,\n\t\t\tmethod: method.toUpperCase(),\n\t\t\theaders,\n\t\t\tbody: payload,\n\t\t\t// A stream is sent as it is read, which fetch has to be told.\n\t\t\t...(payload instanceof ReadableStream ? { duplex: 'half' } : {}),\n\t\t} as RequestInit;\n\t\treturn { context, url, init, timeout, retry, signal: signal ?? undefined };\n\t};\n\n\tconst request = async (\n\t\tmethod: Method,\n\t\tpath: string,\n\t\tgiven: ReplyGiven = {},\n\t): Promise<unknown> => {\n\t\tconst {\n\t\t\tresponses,\n\t\t\tvalidate = true,\n\t\t\tdecode = true,\n\t\t\tlatest,\n\t\t\t...call\n\t\t} = given;\n\t\tconst replaced = latestSignal(latest);\n\t\tconst built = await build(method, path, call);\n\t\tconst { deadline, signal } = withDeadline(\n\t\t\tbuilt.timeout,\n\t\t\tjoinSignals(built.signal, replaced),\n\t\t);\n\t\tconst response = await dispatch(\n\t\t\tnew Request(built.url, { ...built.init, signal }),\n\t\t\tbuilt.context,\n\t\t\tbuilt.timeout,\n\t\t\tdeadline,\n\t\t\tbuilt.retry,\n\t\t);\n\t\treturn readReply(\n\t\t\tbuilt.context,\n\t\t\tresponses === undefined ? undefined : toSpec(responses),\n\t\t\tresponse,\n\t\t\t{ validate, decode },\n\t\t);\n\t};\n\n\t/**\n\t * A stream's connections, each built afresh: its headers are run again and\n\t * `Last-Event-ID` is added. `timeout` bounds one until its headers arrive,\n\t * and no longer, since a stream has no end to wait for.\n\t */\n\tconst opener =\n\t\t(method: Method, path: string, call: Given, accept: string): Open =>\n\t\tasync (stream, lastEventId) => {\n\t\t\tconst built = await build(method, path, call, (headers) => {\n\t\t\t\tif (!headers.has('accept')) headers.set('accept', accept);\n\t\t\t\tif (lastEventId !== undefined) {\n\t\t\t\t\theaders.set('last-event-id', lastEventId);\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst deadline = new AbortController();\n\t\t\tconst clock =\n\t\t\t\tbuilt.timeout === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: setTimeout(\n\t\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t\tdeadline.abort(\n\t\t\t\t\t\t\t\t\tnew DOMException('The stream did not open', 'TimeoutError'),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tbuilt.timeout,\n\t\t\t\t\t\t);\n\t\t\tconst signals = [stream, deadline.signal];\n\t\t\tif (built.signal) signals.push(built.signal);\n\t\t\ttry {\n\t\t\t\treturn await dispatch(\n\t\t\t\t\tnew Request(built.url, {\n\t\t\t\t\t\t...built.init,\n\t\t\t\t\t\tsignal: AbortSignal.any(signals),\n\t\t\t\t\t}),\n\t\t\t\t\tbuilt.context,\n\t\t\t\t\tbuilt.timeout,\n\t\t\t\t\tdeadline.signal,\n\t\t\t\t\tbuilt.retry,\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tclearTimeout(clock);\n\t\t\t}\n\t\t};\n\n\tconst events = (path: string, given: EventsGiven = {}) => {\n\t\tconst {\n\t\t\tevents,\n\t\t\tonUnknownEvent,\n\t\t\treconnect,\n\t\t\tlastEventId,\n\t\t\tvalidate = true,\n\t\t\tdecode = true,\n\t\t\tmethod = 'get',\n\t\t\tlatest,\n\t\t\t...own\n\t\t} = given;\n\t\tconst call = {\n\t\t\t...own,\n\t\t\tsignal: joinSignals(own.signal, latestSignal(latest)),\n\t\t};\n\t\tconst reconnects =\n\t\t\treconnect === undefined\n\t\t\t\t? method !== 'post' && method !== 'patch'\n\t\t\t\t: reconnect !== false;\n\t\tconst settings = typeof reconnect === 'object' ? reconnect : {};\n\t\treturn eventStream({\n\t\t\tcontext: contextOf(method, path, call.operationId),\n\t\t\topen: opener(method, path, call, 'text/event-stream'),\n\t\t\tsignal: call.signal ?? undefined,\n\t\t\tvalidate,\n\t\t\tdecode,\n\t\t\tevents,\n\t\t\tonUnknownEvent,\n\t\t\treconnect: reconnects && {\n\t\t\t\tattempts: settings.attempts ?? Number.POSITIVE_INFINITY,\n\t\t\t\tdelay: settings.delay ?? RECONNECT_DELAY,\n\t\t\t},\n\t\t\tlastEventId,\n\t\t});\n\t};\n\n\tconst lines = (path: string, given: LinesGiven = {}) => {\n\t\tconst {\n\t\t\titem,\n\t\t\tvalidate = true,\n\t\t\tdecode = true,\n\t\t\tmethod = 'get',\n\t\t\tlatest,\n\t\t\t...own\n\t\t} = given;\n\t\tconst call = {\n\t\t\t...own,\n\t\t\tsignal: joinSignals(own.signal, latestSignal(latest)),\n\t\t};\n\t\treturn lineStream({\n\t\t\tcontext: contextOf(method, path, call.operationId),\n\t\t\topen: opener(method, path, call, LINE_TYPES.slice(0, 2).join(', ')),\n\t\t\tsignal: call.signal ?? undefined,\n\t\t\tvalidate,\n\t\t\tdecode,\n\t\t\titem,\n\t\t});\n\t};\n\n\tconst send = async (\n\t\trequest: Request,\n\t\t{\n\t\t\ttimeout = options.timeout,\n\t\t\tretry = options.retry,\n\t\t\toperationId,\n\t\t\tlatest,\n\t\t}: SendOptions = {},\n\t): Promise<Response> => {\n\t\tconst replaced = latestSignal(latest);\n\t\tconst method = request.method.toLowerCase();\n\t\tconst context = contextOf(\n\t\t\tmethod,\n\t\t\tnew URL(request.url).pathname,\n\t\t\toperationId,\n\t\t);\n\t\tconst headers = await sharedHeaders();\n\t\trequest.headers.forEach((value, name) => {\n\t\t\theaders.set(name, value);\n\t\t});\n\t\tconst { deadline, signal } = withDeadline(\n\t\t\ttimeout,\n\t\t\tjoinSignals(request.signal, replaced),\n\t\t);\n\t\tconst sent = new Request(request, { headers, signal });\n\t\treturn dispatch(sent, context, timeout, deadline, retry);\n\t};\n\n\t/**\n\t * The client's calls, each with `scope()`'s signal added to its own: none\n\t * for the client itself, the group's for a group.\n\t */\n\tconst surface = (scope: () => AbortSignal | undefined): HttpClient => {\n\t\tconst scoped = <T extends { readonly signal?: AbortSignal | null }>(\n\t\t\tgiven: T | undefined,\n\t\t): T => {\n\t\t\tconst extra = scope();\n\t\t\tconst own = given ?? ({} as T);\n\t\t\treturn extra\n\t\t\t\t? ({ ...own, signal: joinSignals(own.signal, extra) } as T)\n\t\t\t\t: own;\n\t\t};\n\t\tconst client: Record<string, unknown> = {\n\t\t\trequest: (method: Method, path: string, given?: ReplyGiven) =>\n\t\t\t\trequest(method, path, scoped(given)),\n\t\t\tsend: (sent: Request, given?: SendOptions) => {\n\t\t\t\tconst extra = scope();\n\t\t\t\treturn send(\n\t\t\t\t\textra\n\t\t\t\t\t\t? new Request(sent, { signal: joinSignals(sent.signal, extra) })\n\t\t\t\t\t\t: sent,\n\t\t\t\t\tgiven,\n\t\t\t\t);\n\t\t\t},\n\t\t\tevents: (path: string, given?: EventsGiven) =>\n\t\t\t\tevents(path, scoped(given)),\n\t\t\tlines: (path: string, given?: LinesGiven) => lines(path, scoped(given)),\n\t\t\tgroup: (): HttpGroup => {\n\t\t\t\tlet controller = new AbortController();\n\t\t\t\tconst group = surface(() =>\n\t\t\t\t\tjoinSignals(scope(), controller.signal),\n\t\t\t\t) as HttpClient & Record<string, unknown>;\n\t\t\t\tgroup.cancel = (reason?: unknown) => {\n\t\t\t\t\tcontroller.abort(reason ?? cancelled('The group was cancelled'));\n\t\t\t\t\tcontroller = new AbortController();\n\t\t\t\t};\n\t\t\t\tObject.defineProperty(group, 'signal', {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: () => controller.signal,\n\t\t\t\t});\n\t\t\t\treturn group as unknown as HttpGroup;\n\t\t\t},\n\t\t};\n\t\tfor (const method of METHODS) {\n\t\t\tclient[method] = (path: string, given?: ReplyGiven) =>\n\t\t\t\trequest(method, path, scoped(given));\n\t\t}\n\t\treturn client as HttpClient;\n\t};\n\treturn surface(() => undefined);\n}\n"
20
+ "/**\n * `createHttpClient`: calls over the standard `fetch`, each typed by its path\n * and by the replies it declares, through `retry`, `auth` and middleware.\n */\nimport { cancelled, joinSignals } from '../cancel/abort';\nimport { createLatest } from '../cancel/latest';\nimport { type CallContext, NetworkError, TimeoutError } from '../errors/errors';\nimport { auth } from '../middleware/auth';\nimport { compose, type Middleware, type Next } from '../middleware/compose';\nimport {\n\ttype RetryOptions,\n\tretrying,\n\tretrySettings,\n} from '../middleware/retry';\nimport { readReply, toSpec } from '../reply/read-reply';\nimport type { Responses } from '../reply/types';\nimport { fillPath, joinUrl, writeBody, writeQuery } from '../request/encode';\nimport type { BodyInput, QueryInput } from '../request/types';\nimport type { StandardSchemaV1 } from '../schema/standard-schema';\nimport type { Open } from '../stream/connection';\nimport { eventStream } from '../stream/event-stream';\nimport { LINE_TYPES, lineStream } from '../stream/line-stream';\nimport type { ServerEvent } from '../stream/sse-parser';\nimport type { EventSchemas, ReconnectOptions } from '../stream/types';\nimport type {\n\tCallOptions,\n\tHttpClient,\n\tHttpClientOptions,\n\tHttpGroup,\n\tMethod,\n\tSendOptions,\n} from './types';\n\nexport const METHODS: readonly Method[] = [\n\t'get',\n\t'put',\n\t'post',\n\t'delete',\n\t'options',\n\t'head',\n\t'patch',\n\t'trace',\n\t'query',\n];\n\n/** What a request is built from, as the client reads a call's options. */\ntype Given = BodyInput &\n\tCallOptions & {\n\t\treadonly param?: Readonly<Record<string, unknown>>;\n\t\treadonly query?: QueryInput;\n\t};\n\ntype ReplyGiven = Given & {\n\treadonly responses?: Responses;\n\treadonly validate?: boolean;\n\treadonly decode?: boolean;\n};\n\ntype StreamGiven = Given & {\n\treadonly method?: Method;\n\treadonly validate?: boolean;\n\treadonly decode?: boolean;\n};\n\ntype EventsGiven = StreamGiven & {\n\treadonly events?: EventSchemas;\n\treadonly onUnknownEvent?: (event: ServerEvent) => void;\n\treadonly reconnect?: boolean | ReconnectOptions;\n\treadonly lastEventId?: string;\n};\n\ntype LinesGiven = StreamGiven & { readonly item?: StandardSchemaV1 };\n\n/** A stream reconnects by default, but for the methods a retry would not repeat. */\nconst RECONNECT_DELAY = 3000;\n\nconst contextOf = (\n\tmethod: string,\n\tpath: string,\n\toperationId: string | undefined,\n): CallContext =>\n\toperationId === undefined ? { method, path } : { method, path, operationId };\n\n/**\n * ```ts\n * const http = createHttpClient({ baseUrl: 'https://api.example.com', retry: 2 });\n * const reply = await http.get('/employees/{id}', {\n * \tparam: { id },\n * \tresponses: { 200: Employee, 404: Problem },\n * });\n * if (reply.status === 200) reply.data.name;\n * ```\n */\nexport function createHttpClient(options: HttpClientOptions = {}): HttpClient {\n\tconst signer = options.auth ? auth(options.auth) : undefined;\n\tconst claim = createLatest();\n\t/**\n\t * A `latest` key's signal. Claimed before anything is awaited, so calls\n\t * with the same key replace each other in the order they were made.\n\t */\n\tconst latestSignal = (key: string | undefined) =>\n\t\tkey === undefined ? undefined : claim(key);\n\tconst sharedHeaders = async (): Promise<Headers> =>\n\t\tnew Headers(\n\t\t\ttypeof options.headers === 'function'\n\t\t\t\t? await options.headers()\n\t\t\t\t: options.headers,\n\t\t);\n\n\t/** The request's own signal, with `timeout`'s deadline added. */\n\tconst withDeadline = (\n\t\ttimeout: number | undefined,\n\t\tsignal: AbortSignal | null | undefined,\n\t) => {\n\t\tconst deadline =\n\t\t\ttimeout === undefined ? undefined : AbortSignal.timeout(timeout);\n\t\tconst signals = [signal, deadline].filter(\n\t\t\t(each): each is AbortSignal => each != null,\n\t\t);\n\t\treturn {\n\t\t\tdeadline,\n\t\t\tsignal: signals.length > 1 ? AbortSignal.any(signals) : signals[0],\n\t\t};\n\t};\n\n\t/**\n\t * Through `retry`, `auth`, `use` and then `added`, what `use()` added, to\n\t * `fetch`: fetch's failure and the deadline made errors.\n\t */\n\tconst dispatch = async (\n\t\trequest: Request,\n\t\tcontext: CallContext,\n\t\ttimeout: number | undefined,\n\t\tdeadline: AbortSignal | undefined,\n\t\tretry: number | RetryOptions | false | undefined,\n\t\tadded: readonly Middleware[],\n\t): Promise<Response> => {\n\t\tconst fetch = options.fetch ?? ((sent: Request) => globalThis.fetch(sent));\n\t\t// fetch's own failure is a NetworkError, which `retry` retries; an abort is not one.\n\t\tconst send: Next = async (sent) => {\n\t\t\ttry {\n\t\t\t\t// As fetch does: a signal aborted before the call never sends.\n\t\t\t\tsent.signal.throwIfAborted();\n\t\t\t\treturn await fetch(sent);\n\t\t\t} catch (error) {\n\t\t\t\tif (request.signal.aborted) throw error;\n\t\t\t\tthrow new NetworkError(context, { cause: error });\n\t\t\t}\n\t\t};\n\t\tconst again = retrySettings(retry);\n\t\tconst layers = [\n\t\t\t...(again ? [retrying(again)] : []),\n\t\t\t...(signer ? [signer] : []),\n\t\t\t...(options.use ?? []),\n\t\t\t...added,\n\t\t];\n\t\ttry {\n\t\t\treturn await compose(layers, send, context)(request);\n\t\t} catch (error) {\n\t\t\tif (deadline?.aborted && timeout !== undefined) {\n\t\t\t\tthrow new TimeoutError(context, timeout, { cause: error });\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t};\n\n\t/**\n\t * A request's parts, from a call's options: its URL, and its init but for\n\t * the signal. `adjust` has the last word on the headers.\n\t */\n\tconst build = async (\n\t\tmethod: Method,\n\t\tpath: string,\n\t\tgiven: Given,\n\t\tadjust?: (headers: Headers) => void,\n\t) => {\n\t\tconst {\n\t\t\tparam,\n\t\t\tquery,\n\t\t\tjson,\n\t\t\tform,\n\t\t\ttext,\n\t\t\tbody,\n\t\t\toperationId,\n\t\t\ttimeout = options.timeout,\n\t\t\tretry = options.retry,\n\t\t\theaders: own,\n\t\t\tsignal,\n\t\t\t...rest\n\t\t} = given;\n\t\tconst context = contextOf(method, path, operationId);\n\t\tconst headers = await sharedHeaders();\n\t\tconst callHeaders = new Headers(own);\n\t\tcallHeaders.forEach((value, name) => {\n\t\t\theaders.set(name, value);\n\t\t});\n\t\tadjust?.(headers);\n\t\tconst url = joinUrl(\n\t\t\toptions.baseUrl,\n\t\t\tfillPath(context, param),\n\t\t\twriteQuery(query),\n\t\t);\n\t\tconst payload = writeBody(\n\t\t\t{ json, form, text, body } as BodyInput,\n\t\t\theaders,\n\t\t\tcallHeaders.get('content-type'),\n\t\t);\n\t\tconst init = {\n\t\t\t...options.init,\n\t\t\t...rest,\n\t\t\tmethod: method.toUpperCase(),\n\t\t\theaders,\n\t\t\tbody: payload,\n\t\t\t// A stream is sent as it is read, which fetch has to be told.\n\t\t\t...(payload instanceof ReadableStream ? { duplex: 'half' } : {}),\n\t\t} as RequestInit;\n\t\treturn { context, url, init, timeout, retry, signal: signal ?? undefined };\n\t};\n\n\tconst request = async (\n\t\tmethod: Method,\n\t\tpath: string,\n\t\tgiven: ReplyGiven,\n\t\tadded: readonly Middleware[],\n\t): Promise<unknown> => {\n\t\tconst {\n\t\t\tresponses,\n\t\t\tvalidate = true,\n\t\t\tdecode = true,\n\t\t\tlatest,\n\t\t\t...call\n\t\t} = given;\n\t\tconst replaced = latestSignal(latest);\n\t\tconst built = await build(method, path, call);\n\t\tconst { deadline, signal } = withDeadline(\n\t\t\tbuilt.timeout,\n\t\t\tjoinSignals(built.signal, replaced),\n\t\t);\n\t\tconst response = await dispatch(\n\t\t\tnew Request(built.url, { ...built.init, signal }),\n\t\t\tbuilt.context,\n\t\t\tbuilt.timeout,\n\t\t\tdeadline,\n\t\t\tbuilt.retry,\n\t\t\tadded,\n\t\t);\n\t\treturn readReply(\n\t\t\tbuilt.context,\n\t\t\tresponses === undefined ? undefined : toSpec(responses),\n\t\t\tresponse,\n\t\t\t{ validate, decode },\n\t\t);\n\t};\n\n\t/**\n\t * A stream's connections, each built afresh: its headers are run again and\n\t * `Last-Event-ID` is added. `timeout` bounds one until its headers arrive,\n\t * and no longer, since a stream has no end to wait for.\n\t */\n\tconst opener =\n\t\t(\n\t\t\tmethod: Method,\n\t\t\tpath: string,\n\t\t\tcall: Given,\n\t\t\taccept: string,\n\t\t\tadded: readonly Middleware[],\n\t\t): Open =>\n\t\tasync (stream, lastEventId) => {\n\t\t\tconst built = await build(method, path, call, (headers) => {\n\t\t\t\tif (!headers.has('accept')) headers.set('accept', accept);\n\t\t\t\tif (lastEventId !== undefined) {\n\t\t\t\t\theaders.set('last-event-id', lastEventId);\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst deadline = new AbortController();\n\t\t\tconst clock =\n\t\t\t\tbuilt.timeout === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: setTimeout(\n\t\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t\tdeadline.abort(\n\t\t\t\t\t\t\t\t\tnew DOMException('The stream did not open', 'TimeoutError'),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tbuilt.timeout,\n\t\t\t\t\t\t);\n\t\t\tconst signals = [stream, deadline.signal];\n\t\t\tif (built.signal) signals.push(built.signal);\n\t\t\ttry {\n\t\t\t\treturn await dispatch(\n\t\t\t\t\tnew Request(built.url, {\n\t\t\t\t\t\t...built.init,\n\t\t\t\t\t\tsignal: AbortSignal.any(signals),\n\t\t\t\t\t}),\n\t\t\t\t\tbuilt.context,\n\t\t\t\t\tbuilt.timeout,\n\t\t\t\t\tdeadline.signal,\n\t\t\t\t\tbuilt.retry,\n\t\t\t\t\tadded,\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tclearTimeout(clock);\n\t\t\t}\n\t\t};\n\n\tconst events = (\n\t\tpath: string,\n\t\tgiven: EventsGiven,\n\t\tadded: readonly Middleware[],\n\t) => {\n\t\tconst {\n\t\t\tevents,\n\t\t\tonUnknownEvent,\n\t\t\treconnect,\n\t\t\tlastEventId,\n\t\t\tvalidate = true,\n\t\t\tdecode = true,\n\t\t\tmethod = 'get',\n\t\t\tlatest,\n\t\t\t...own\n\t\t} = given;\n\t\tconst call = {\n\t\t\t...own,\n\t\t\tsignal: joinSignals(own.signal, latestSignal(latest)),\n\t\t};\n\t\tconst reconnects =\n\t\t\treconnect === undefined\n\t\t\t\t? method !== 'post' && method !== 'patch'\n\t\t\t\t: reconnect !== false;\n\t\tconst settings = typeof reconnect === 'object' ? reconnect : {};\n\t\treturn eventStream({\n\t\t\tcontext: contextOf(method, path, call.operationId),\n\t\t\topen: opener(method, path, call, 'text/event-stream', added),\n\t\t\tsignal: call.signal ?? undefined,\n\t\t\tvalidate,\n\t\t\tdecode,\n\t\t\tevents,\n\t\t\tonUnknownEvent,\n\t\t\treconnect: reconnects && {\n\t\t\t\tattempts: settings.attempts ?? Number.POSITIVE_INFINITY,\n\t\t\t\tdelay: settings.delay ?? RECONNECT_DELAY,\n\t\t\t},\n\t\t\tlastEventId,\n\t\t});\n\t};\n\n\tconst lines = (\n\t\tpath: string,\n\t\tgiven: LinesGiven,\n\t\tadded: readonly Middleware[],\n\t) => {\n\t\tconst {\n\t\t\titem,\n\t\t\tvalidate = true,\n\t\t\tdecode = true,\n\t\t\tmethod = 'get',\n\t\t\tlatest,\n\t\t\t...own\n\t\t} = given;\n\t\tconst call = {\n\t\t\t...own,\n\t\t\tsignal: joinSignals(own.signal, latestSignal(latest)),\n\t\t};\n\t\treturn lineStream({\n\t\t\tcontext: contextOf(method, path, call.operationId),\n\t\t\topen: opener(\n\t\t\t\tmethod,\n\t\t\t\tpath,\n\t\t\t\tcall,\n\t\t\t\tLINE_TYPES.slice(0, 2).join(', '),\n\t\t\t\tadded,\n\t\t\t),\n\t\t\tsignal: call.signal ?? undefined,\n\t\t\tvalidate,\n\t\t\tdecode,\n\t\t\titem,\n\t\t});\n\t};\n\n\tconst send = async (\n\t\trequest: Request,\n\t\t{\n\t\t\ttimeout = options.timeout,\n\t\t\tretry = options.retry,\n\t\t\toperationId,\n\t\t\tlatest,\n\t\t}: SendOptions,\n\t\tadded: readonly Middleware[],\n\t): Promise<Response> => {\n\t\tconst replaced = latestSignal(latest);\n\t\tconst method = request.method.toLowerCase();\n\t\tconst context = contextOf(\n\t\t\tmethod,\n\t\t\tnew URL(request.url).pathname,\n\t\t\toperationId,\n\t\t);\n\t\tconst headers = await sharedHeaders();\n\t\trequest.headers.forEach((value, name) => {\n\t\t\theaders.set(name, value);\n\t\t});\n\t\tconst { deadline, signal } = withDeadline(\n\t\t\ttimeout,\n\t\t\tjoinSignals(request.signal, replaced),\n\t\t);\n\t\tconst sent = new Request(request, { headers, signal });\n\t\treturn dispatch(sent, context, timeout, deadline, retry, added);\n\t};\n\n\t/**\n\t * The client's calls, each with `scope()`'s signal added to its own, and\n\t * the middleware of `use()`: `inherited()`, a parent's, read as each call\n\t * is made, then its own. A group's `use()` is the group's alone.\n\t */\n\tconst surface = (\n\t\tscope: () => AbortSignal | undefined,\n\t\tinherited: () => readonly Middleware[],\n\t): HttpClient => {\n\t\tconst own: Middleware[] = [];\n\t\tconst layers = () => [...inherited(), ...own];\n\t\tconst scoped = <T extends { readonly signal?: AbortSignal | null }>(\n\t\t\tgiven: T | undefined,\n\t\t): T => {\n\t\t\tconst extra = scope();\n\t\t\tconst own = given ?? ({} as T);\n\t\t\treturn extra\n\t\t\t\t? ({ ...own, signal: joinSignals(own.signal, extra) } as T)\n\t\t\t\t: own;\n\t\t};\n\t\tconst client: Record<string, unknown> = {\n\t\t\trequest: (method: Method, path: string, given?: ReplyGiven) =>\n\t\t\t\trequest(method, path, scoped(given), layers()),\n\t\t\tsend: (sent: Request, given?: SendOptions) => {\n\t\t\t\tconst extra = scope();\n\t\t\t\treturn send(\n\t\t\t\t\textra\n\t\t\t\t\t\t? new Request(sent, { signal: joinSignals(sent.signal, extra) })\n\t\t\t\t\t\t: sent,\n\t\t\t\t\tgiven ?? {},\n\t\t\t\t\tlayers(),\n\t\t\t\t);\n\t\t\t},\n\t\t\tevents: (path: string, given?: EventsGiven) =>\n\t\t\t\tevents(path, scoped(given), layers()),\n\t\t\tlines: (path: string, given?: LinesGiven) =>\n\t\t\t\tlines(path, scoped(given), layers()),\n\t\t\tuse: (...middlewares: Middleware[]) => {\n\t\t\t\town.push(...middlewares);\n\t\t\t\treturn client;\n\t\t\t},\n\t\t\tgroup: (): HttpGroup => {\n\t\t\t\tlet controller = new AbortController();\n\t\t\t\tconst group = surface(\n\t\t\t\t\t() => joinSignals(scope(), controller.signal),\n\t\t\t\t\tlayers,\n\t\t\t\t) as HttpClient & Record<string, unknown>;\n\t\t\t\tgroup.cancel = (reason?: unknown) => {\n\t\t\t\t\tcontroller.abort(reason ?? cancelled('The group was cancelled'));\n\t\t\t\t\tcontroller = new AbortController();\n\t\t\t\t};\n\t\t\t\tObject.defineProperty(group, 'signal', {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: () => controller.signal,\n\t\t\t\t});\n\t\t\t\treturn group as unknown as HttpGroup;\n\t\t\t},\n\t\t};\n\t\tfor (const method of METHODS) {\n\t\t\tclient[method] = (path: string, given?: ReplyGiven) =>\n\t\t\t\trequest(method, path, scoped(given), layers());\n\t\t}\n\t\treturn client as unknown as HttpClient;\n\t};\n\treturn surface(\n\t\t() => undefined,\n\t\t() => [],\n\t);\n}\n"
21
21
  ],
22
- "mappings": "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",
23
- "debugId": "05C3145FB7DF61A464756E2164756E21",
22
+ "mappings": "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",
23
+ "debugId": "08EFC0FA159560DB64756E2164756E21",
24
24
  "names": []
25
25
  }
@@ -19,17 +19,19 @@ type Unchecked<Type extends string> = Type extends `text/${string}` ? string : T
19
19
  /** What a checked value is: the schema's output, or its input with `decode: false`. */
20
20
  export type SchemaData<Schema, Decoded extends boolean> = Schema extends StandardSchemaV1 ? Decoded extends true ? InferOutput<Schema> : InferInput<Schema> : never;
21
21
  type Data<Schema, Decoded extends boolean> = SchemaData<Schema, Decoded>;
22
+ /** A reply without a body: a status declared `null`, or with no media type. */
23
+ interface Bodiless<Status> {
24
+ readonly status: Status;
25
+ readonly type: undefined;
26
+ readonly data: undefined;
27
+ }
22
28
  /** The declared replies, as a union narrowed on `status`. */
23
29
  export type ReplyOf<R extends Responses, Decoded extends boolean = true> = {
24
- [Status in keyof R & number]: R[Status] extends null ? {
25
- readonly status: Status;
26
- readonly type: undefined;
27
- readonly data: undefined;
28
- } : R[Status] extends StandardSchemaV1 ? {
30
+ [Status in keyof R & number]: R[Status] extends null ? Bodiless<Status> : R[Status] extends StandardSchemaV1 ? {
29
31
  readonly status: Status;
30
32
  readonly type: string;
31
33
  readonly data: Data<R[Status], Decoded>;
32
- } : {
34
+ } : [keyof R[Status] & string] extends [never] ? Bodiless<Status> : {
33
35
  [Type in keyof R[Status] & string]: {
34
36
  readonly status: Status;
35
37
  readonly type: Type;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/reply/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/reply/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "name": "@nxgt/httpyz",
3
- "version": "0.1.0",
4
- "license": "UNLICENSED",
3
+ "version": "0.3.0",
4
+ "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "files": [
9
9
  "dist",
10
10
  "README.md",
11
- "package.json"
11
+ "package.json",
12
+ "LICENSE"
12
13
  ],
13
14
  "exports": {
14
15
  ".": {