@nxgt/httpyz 0.2.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/README.md +15 -0
- package/dist/client/create-http-client.d.ts.map +1 -1
- package/dist/client/types.d.ts +15 -4
- package/dist/client/types.d.ts.map +1 -1
- package/dist/index.js +28 -21
- package/dist/index.js.map +3 -3
- package/dist/integration/index.js +28 -21
- package/dist/integration/index.js.map +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -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
|
|
|
@@ -684,6 +698,7 @@ What `createHttpClient` returns.
|
|
|
684
698
|
| `events` | `(path: Path, ...args: EventsArgs<Path, E, Decoded>) => EventStream<StreamEvent<E, Decoded>>` | server-sent events. See [Server-sent events](#server-sent-events) |
|
|
685
699
|
| `lines` | `(path: Path, ...args: LinesArgs<Path, I, Decoded>) => Stream<StreamItem<I, Decoded>>` | JSON Lines. See [JSON Lines](#json-lines) |
|
|
686
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) |
|
|
687
702
|
|
|
688
703
|
##### `HttpGroup`
|
|
689
704
|
|
|
@@ -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,
|
|
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"}
|
package/dist/client/types.d.ts
CHANGED
|
@@ -93,7 +93,11 @@ export type HttpGroup = HttpClient & {
|
|
|
93
93
|
/** Aborts on the next `cancel()`: for work of your own that ends with the group's calls. */
|
|
94
94
|
readonly signal: AbortSignal;
|
|
95
95
|
};
|
|
96
|
-
|
|
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 {
|
|
97
101
|
/** A call with the method as a value: `http.request('get', '/items/{id}', { param })`. */
|
|
98
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>>;
|
|
99
103
|
/**
|
|
@@ -120,7 +124,14 @@ export type HttpClient = {
|
|
|
120
124
|
* is cancelled with it.
|
|
121
125
|
*/
|
|
122
126
|
group(): HttpGroup;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
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 {};
|
|
126
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=
|
|
1116
|
+
//# debugId=900A44D2EECBE84C64756E2164756E21
|
|
1110
1117
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -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": "
|
|
24
|
+
"mappings": ";AAiBO,SAAS,YAAY,CAAC,OAAyB;AAAA,EACrD,IAAI,OAAO,iBAAiB,eAAe,iBAAiB,cAAc;AAAA,IACzE,OAAO,MAAM,SAAS,gBAAgB,MAAM,SAAS;AAAA,EACtD;AAAA,EACA,OAAO,iBAAiB,SAAS,MAAM,SAAS;AAAA;AAI1C,IAAM,YAAY,CAAC,YACzB,IAAI,aAAa,SAAS,YAAY;AAGhC,SAAS,SAAY,CAC3B,SACA,QACa;AAAA,EACb,IAAI,CAAC;AAAA,IAAQ,OAAO;AAAA,EACpB,IAAI,OAAO;AAAA,IAAS,OAAO,QAAQ,OAAO,OAAO,MAAM;AAAA,EACvD,OAAO,IAAI,QAAW,CAAC,SAAS,WAAW;AAAA,IAC1C,MAAM,OAAO,MAAM,OAAO,OAAO,MAAM;AAAA,IACvC,OAAO,iBAAiB,SAAS,MAAM,EAAE,MAAM,KAAK,CAAC;AAAA,IACrD,QACE,KAAK,SAAS,MAAM,EACpB,QAAQ,MAAM,OAAO,oBAAoB,SAAS,IAAI,CAAC;AAAA,GACzD;AAAA;AAIK,SAAS,WAAW,IACvB,SACuB;AAAA,EAC1B,MAAM,UAAU,QAAQ,OACvB,CAAC,WAAkC,UAAU,IAC9C;AAAA,EACA,OAAO,QAAQ,SAAS,IAAI,YAAY,IAAI,OAAO,IAAI,QAAQ;AAAA;;AC3CzD,SAAS,YAAY,GAAiC;AAAA,EAE5D,MAAM,UAAU,IAAI;AAAA,EACpB,OAAO,CAAC,QAAQ;AAAA,IACf,QACE,IAAI,GAAG,GACN,MACD,UAAU,8BAA8B,wBAAwB,CACjE;AAAA,IACD,MAAM,aAAa,IAAI;AAAA,IACvB,QAAQ,IAAI,KAAK,UAAU;AAAA,IAC3B,OAAO,WAAW;AAAA;AAAA;;;ACab,MAAM,oBAAoB,MAAM;AAAA,EAMtC,WAAW,CAAC,SAAsB,SAAiB,SAAwB;AAAA,IAC1E,MAAM,QAAQ,GAAG,QAAQ,OAAO,YAAY,KAAK,QAAQ;AAAA,IACzD,MAAM,OACL,QAAQ,gBAAgB,YACrB,QACA,GAAG,QAAQ,gBAAgB;AAAA,IAC/B,MAAM,GAAG,SAAS,WAAW,OAAO;AAAA,IAX5B,YAAO;AAAA,IAYf,KAAK,cAAc,QAAQ;AAAA,IAC3B,KAAK,SAAS,QAAQ;AAAA,IACtB,KAAK,OAAO,QAAQ;AAAA;AAEtB;AAAA;AAGO,MAAM,qBAAqB,YAAY;AAAA,EAG7C,WAAW,CAAC,SAAsB,SAAwB;AAAA,IACzD,MAAM,SAAS,sBAAsB,OAAO;AAAA,IAHpC,YAAO;AAAA;AAKjB;AAAA;AAEO,MAAM,qBAAqB,YAAY;AAAA,EAI7C,WAAW,CAAC,SAAsB,SAAiB,SAAwB;AAAA,IAC1E,MAAM,SAAS,mBAAmB,cAAc,OAAO;AAAA,IAJ/C,YAAO;AAAA,IAKf,KAAK,UAAU;AAAA;AAEjB;AAAA;AAGO,MAAM,8BAA8B,YAAY;AAAA,EAMtD,WAAW,CAAC,SAAsB,UAAoB;AAAA,IACrD,MAAM,SAAS,MAAM,SAAS,0BAA0B;AAAA,IANhD,YAAO;AAAA,IAOf,KAAK,SAAS,SAAS;AAAA,IACvB,KAAK,WAAW;AAAA;AAElB;AAAA;AAOO,MAAM,wBAAwB,YAAY;AAAA,EAIhD,WAAW,CAAC,SAAsB,SAA4B;AAAA,IAC7D,MAAM,SAAS,QAAQ,OAAO,IAAI,CAAC,UAAU,MAAM,OAAO,EAAE,KAAK,IAAI,CAAC;AAAA,IAJ9D,YAAO;AAAA,IAKf,KAAK,UAAU;AAAA;AAEjB;AAAA;AAMO,MAAM,yBAAyB,MAAM;AAAA,EAM3C,WAAW,CACV,OACA,UACC;AAAA,IACD,MAAM,SAAS,SAAS,SAAS,IAAI,SAAS,KAAK,MAAM,IAAI;AAAA,IAC7D,MAAM,cAAc,qBAAqB,MAAM,QAAQ;AAAA,IAV/C,YAAO;AAAA,IAWf,KAAK,SAAS,MAAM;AAAA,IACpB,KAAK,OAAO,MAAM;AAAA,IAClB,KAAK,WAAW,MAAM;AAAA;AAExB;;;AC/FO,SAAS,IAAI;AAAA,EACnB;AAAA,EACA;AAAA,EACA,SAAS;AAAA,GACkB;AAAA,EAC3B,IAAI;AAAA,EACJ,MAAM,OAAO,CAAC,SAAkB,UAA0B;AAAA,IACzD,IAAI;AAAA,MAAO,QAAQ,QAAQ,IAAI,iBAAiB,GAAG,UAAU,OAAO;AAAA,IACpE,OAAO;AAAA;AAAA,EAER,OAAO,OAAO,SAAS,SAAS;AAAA,IAC/B,MAAM,OAAO,MAAM,MAAM;AAAA,IAEzB,MAAM,SAAS,UAAU,QAAQ,MAAM,IAAI;AAAA,IAC3C,MAAM,WAAW,MAAM,KAAK,KAAK,SAAS,IAAI,CAAC;AAAA,IAC/C,IAAI,SAAS,WAAW,OAAO,CAAC,UAAU,CAAC;AAAA,MAAS,OAAO;AAAA,IAC3D,IAAI;AAAA,MAEH,IAAK,MAAM,MAAM,MAAO,MAAM;AAAA,QAC7B,eAAe,QAAQ,QAAQ,EAC7B,KAAK,OAAO,EACZ,QAAQ,MAAM;AAAA,UACd,aAAa;AAAA,SACb;AAAA,QAEF,MAAM,UAAU,YAAY,QAAQ,MAAM;AAAA,MAC3C;AAAA,MACC,OAAO,OAAO;AAAA,MACf,IAAI,QAAQ,OAAO,SAAS;AAAA,QAC3B,MAAM,SAAS,MAAM,OAAO;AAAA,QAC5B,MAAM;AAAA,MACP;AAAA,MACA,OAAO;AAAA;AAAA,IAER,MAAM,QAAQ,MAAM,MAAM;AAAA,IAC1B,IAAI,CAAC,SAAS,UAAU;AAAA,MAAM,OAAO;AAAA,IACrC,MAAM,SAAS,MAAM,OAAO;AAAA,IAC5B,OAAO,KAAK,KAAK,QAAQ,KAAK,CAAC;AAAA;AAAA;;;AClC1B,IAAM,UAAU,CACtB,aACA,MACA,SAEA,YAAY,YACX,CAAC,MAAM,eAAe,CAAC,YAAY,WAAW,SAAS,MAAM,IAAI,GACjE,IACD;;;ACLD,IAAM,aAAgC;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AACA,IAAM,YAA+B,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG;AAG7D,IAAM,UAAU,CAAC,YAChB,KAAK,OAAO,IAAI,MAAM,MAAM,UAAU;AAGhC,SAAS,aAAa,CAC5B,OAC4B;AAAA,EAC5B,IAAI,UAAU,aAAa,UAAU;AAAA,IAAO;AAAA,EAC5C,MAAM,UAAU,OAAO,UAAU,WAAW,EAAE,UAAU,MAAM,IAAI;AAAA,EAClE,MAAM,WAAW,QAAQ,YAAY;AAAA,EACrC,IAAI,YAAY;AAAA,IAAG;AAAA,EACnB,OAAO;AAAA,IACN;AAAA,IACA,SAAS,QAAQ,WAAW;AAAA,IAC5B,UAAU,QAAQ,YAAY;AAAA,IAC9B,OAAO,QAAQ,SAAS;AAAA,IACxB,UAAU,QAAQ,YAAY;AAAA,EAC/B;AAAA;AAQM,SAAS,UAAU,CACzB,UACA,SACA,UACqB;AAAA,EACrB,MAAM,SAAS,UAAU,QAAQ,IAAI,aAAa,GAAG,KAAK;AAAA,EAC1D,IAAI,QAAQ;AAAA,IACX,MAAM,OAAO,kBAAkB,KAAK,MAAM,IACvC,OAAO,MAAM,IAAI,OACjB,KAAK,MAAM,MAAM,IAAI,KAAK,IAAI;AAAA,IACjC,IAAI,CAAC,OAAO,MAAM,IAAI,GAAG;AAAA,MACxB,OAAO,OAAO,SAAS,WAAW,YAAY,KAAK,IAAI,GAAG,IAAI;AAAA,IAC/D;AAAA,EACD;AAAA,EACA,OAAO,KAAK,IAAI,KAAK,IAAI,GAAG,SAAS,MAAM,OAAO,CAAC,GAAG,SAAS,QAAQ;AAAA;AAIxE,IAAM,QAAQ,CAAC,IAAY,WAC1B,IAAI,QAAQ,CAAC,SAAS,WAAW;AAAA,EAChC,IAAI,OAAO;AAAA,IAAS,OAAO,OAAO,OAAO,MAAM;AAAA,EAC/C,MAAM,OAAO,MAAM;AAAA,IAClB,aAAa,KAAK;AAAA,IAClB,OAAO,OAAO,MAAM;AAAA;AAAA,EAErB,MAAM,QAAQ,WAAW,MAAM;AAAA,IAC9B,OAAO,oBAAoB,SAAS,IAAI;AAAA,IACxC,QAAQ;AAAA,KACN,EAAE;AAAA,EACL,OAAO,iBAAiB,SAAS,MAAM,EAAE,MAAM,KAAK,CAAC;AAAA,CACrD;AAEK,SAAS,QAAQ,CAAC,UAAqC;AAAA,EAC7D,OAAO,OAAO,SAAS,SAAS;AAAA,IAC/B,MAAM,SAAS,QAAQ,OAAO,YAAY;AAAA,IAC1C,IAAI,CAAC,SAAS,QAAQ,SAAS,MAAM;AAAA,MAAG,OAAO,KAAK,OAAO;AAAA,IAC3D,SAAS,UAAU,IAAK,WAAW;AAAA,MAClC,MAAM,OAAO,UAAU,SAAS;AAAA,MAEhC,MAAM,OAAO,OAAO,UAAU,QAAQ,MAAM;AAAA,MAC5C,IAAI;AAAA,MACJ,IAAI;AAAA,QACH,MAAM,WAAW,MAAM,KAAK,IAAI;AAAA,QAChC,IAAI,QAAQ,CAAC,SAAS,SAAS,SAAS,SAAS,MAAM,GAAG;AAAA,UACzD,OAAO;AAAA,QACR;AAAA,QACA,OAAO,WAAW,UAAU,SAAS,QAAQ;AAAA,QAC7C,IAAI,SAAS;AAAA,UAAW,OAAO;AAAA,QAC/B,MAAM,SAAS,MAAM,OAAO;AAAA,QAC3B,OAAO,OAAO;AAAA,QACf,IAAI,QAAQ,EAAE,iBAAiB;AAAA,UAAe,MAAM;AAAA,QACpD,OAAO,WAAW,WAAW,SAAS,QAAQ,KAAK;AAAA;AAAA,MAEpD,MAAM,MAAM,MAAM,QAAQ,MAAM;AAAA,IACjC;AAAA;AAAA;;;ACxEF,eAAsB,KAAK,CAC1B,QACA,OACA,QACmB;AAAA,EACnB,MAAM,SAAS,MAAM,OAAO,aAAa,SAAS,KAAK;AAAA,EACvD,IAAI,OAAO,WAAW;AAAA,IAAW,OAAO,EAAE,IAAI,MAAM,OAAO,OAAO,MAAM;AAAA,EACxE,OAAO;AAAA,IACN,IAAI;AAAA,IACJ,QAAQ,OAAO,OAAO,IAAI,CAAC,UAAU;AAAA,MACpC,QAAQ,SAAS;AAAA,MACjB,OAAO;AAAA,QACN;AAAA,QACA,OAAO,MAAM,QAAQ,CAAC,GACpB,IAAI,CAAC,QAAS,OAAO,QAAQ,WAAW,IAAI,MAAM,GAAI,EACtD,OAAO,CAAC,QAAgC,OAAO,QAAQ,QAAQ;AAAA,QACjE,MAAM,OAAO,SAAS,WAAW,OAAO;AAAA,QACxC,SAAS,MAAM;AAAA,MAChB;AAAA,KACA;AAAA,EACF;AAAA;;;AChEM,IAAM,YAAY,CAAC,YACxB,OAAO,MAAM,GAAG,EAAE,MAAM,IAAI,KAAK,EAAE,YAAY;AAG1C,SAAS,SAAS,CAAC,MAAyB;AAAA,EAClD,IACC,SAAS,sBACT,+BAA+B,KAAK,IAAI,GACvC;AAAA,IACD,OAAO;AAAA,EACR;AAAA,EACA,IACC,SAAS,uCACT,SAAS,uBACR;AAAA,IACD,OAAO;AAAA,EACR;AAAA,EACA,OAAO,KAAK,WAAW,OAAO,IAAI,SAAS;AAAA;AASrC,SAAS,YAAY,CAC3B,SACA,MACqB;AAAA,EACrB,MAAM,QAAQ,OAAO,KAAK,OAAO;AAAA,EACjC,MAAM,QAAQ,MAAM,KAAK,CAAC,QAAQ,IAAI,YAAY,MAAM,IAAI;AAAA,EAC5D,IAAI,UAAU;AAAA,IAAW,OAAO;AAAA,EAChC,MAAM,QAAQ,GAAG,KAAK,MAAM,GAAG,EAAE;AAAA,EACjC,IAAI,QAAQ;AAAA,IAAQ,OAAO;AAAA,EAC3B,IAAI,QAAQ;AAAA,IAAQ,OAAO;AAAA,EAC3B,MAAM,OAAO,UAAU,IAAI;AAAA,EAC3B,IAAI,SAAS,UAAU,SAAS;AAAA,IAAQ;AAAA,EACxC,OAAO,MAAM,KAAK,CAAC,QAAQ,QAAQ,MAAM,SAAS,IAAI;AAAA;;;ACVvD,IAAM,WAAW,CAAC,UACjB,OAAO,UAAU,YAAY,UAAU,SAAQ,eAAe;AAExD,SAAS,MAAM,CAAC,WAAiC;AAAA,EACvD,MAAM,OAAkD,CAAC;AAAA,EACzD,YAAY,QAAQ,aAAa,OAAO,QAAQ,SAAS,GAAG;AAAA,IAC3D,MAAM,UAAqC,CAAC;AAAA,IAC5C,IAAI,SAAS,QAAQ,GAAG;AAAA,MACvB,QAAQ,sBAAsB,EAAE,MAAM,QAAQ,QAAQ,SAAS;AAAA,IAChE,EAAO,SAAI,aAAa,MAAM;AAAA,MAC7B,YAAY,MAAM,WAAW,OAAO,QAAQ,QAAQ,GAAG;AAAA,QACtD,QAAQ,QAAQ;AAAA,UACf,MAAM,UAAU,KAAK,YAAY,CAAC;AAAA,aAC9B,WAAW,OAAO,CAAC,IAAI,EAAE,OAAO;AAAA,QACrC;AAAA,MACD;AAAA,IACD;AAAA,IACA,KAAK,OAAO,MAAM,KAAK;AAAA,EACxB;AAAA,EACA,OAAO;AAAA;AAGR,eAAsB,SAAS,CAC9B,SACA,MACA,UACA,UACmB;AAAA,EACnB,QAAQ,WAAW;AAAA,EACnB,MAAM,SAAS,SAAS,QAAQ,IAAI,cAAc;AAAA,EAClD,MAAM,UAAU,CAAC,WAChB,IAAI,gBAAgB,SAAS;AAAA,IAC5B,MAAM;AAAA,OACH;AAAA,IACH;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EACF,MAAM,UAAU,CAAC,MAAc,YAC9B,QAAQ,CAAC,EAAE,QAAQ,YAAY,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC,CAAC;AAAA,EAC1D,MAAM,QAAQ,CAAC,SAA0B;AAAA,IACxC,IAAI;AAAA,MACH,OAAO,KAAK,MAAM,IAAI;AAAA,MACrB,MAAM;AAAA,MACP,MAAM,QAAQ,gBAAgB,OAAO,gCAAgC;AAAA;AAAA;AAAA,EAIvE,IAAI,CAAC,MAAM;AAAA,IACV,MAAM,OAAO,WAAW,OAAO,YAAY,UAAU,MAAM;AAAA,IAC3D,MAAM,QAAQ,CAAC,UAAmB,EAAE,QAAQ,MAAM,MAAM,SAAS;AAAA,IACjE,IAAI,SAAS,SAAS;AAAA,MAAM,OAAO,MAAM,SAAS;AAAA,IAClD,QAAQ,SAAS,YAAY,YAAY,UAAU,IAAI;AAAA,WACjD,QAAQ;AAAA,QACZ,MAAM,OAAO,MAAM,SAAS,KAAK;AAAA,QACjC,OAAO,MAAM,SAAS,KAAK,YAAY,MAAM,IAAI,CAAC;AAAA,MACnD;AAAA,WACK;AAAA,QACJ,OAAO,MAAM,MAAM,SAAS,SAAS,CAAC;AAAA,WAClC;AAAA,QACJ,OAAO,MAAM,MAAM,SAAS,KAAK,CAAC;AAAA,eAC1B;AAAA,QACR,MAAM,OAAO,MAAM,SAAS,KAAK;AAAA,QACjC,OAAO,MAAM,SAAS,aAAa,SAAS,KAAK,YAAY,IAAI;AAAA,MAClE;AAAA;AAAA,EAEF;AAAA,EAEA,MAAM,WAAW,KAAK;AAAA,EACtB,IAAI,CAAC;AAAA,IAAU,MAAM,IAAI,sBAAsB,SAAS,QAAQ;AAAA,EAChE,MAAM,QAAQ,OAAO,KAAK,QAAQ;AAAA,EAClC,IAAI,MAAM,WAAW,GAAG;AAAA,IACvB,OAAO,EAAE,QAAQ,MAAM,WAAW,MAAM,WAAW,SAAS;AAAA,EAC7D;AAAA,EAEA,MAAM,OACL,WAAW,OACR,MAAM,WAAW,IAChB,MAAM,KACN,YACD,aAAa,UAAU,UAAU,MAAM,CAAC;AAAA,EAC5C,MAAM,QAAQ,SAAS,YAAY,YAAY,SAAS;AAAA,EACxD,IAAI,SAAS,aAAa,UAAU,WAAW;AAAA,IAC9C,MAAM,QACL,wBACA,KAAK,mBAAmB,MAAM,KAAK,MAAM,UAAU,UAAU,WAC9D;AAAA,EACD;AAAA,EACA,MAAM,QAAQ,CAAC,UAAmB,EAAE,QAAQ,MAAM,MAAM,SAAS;AAAA,EAEjE,MAAM,SAAS,OAAO,SAAkB;AAAA,IACvC,IAAI,CAAC,SAAS,YAAY,CAAC,MAAM;AAAA,MAAQ,OAAO,MAAM,IAAI;AAAA,IAC1D,MAAM,SAAS,MAAM,MAAM,MAAM,QAAQ,MAAM,UAAU;AAAA,IACzD,IAAI,CAAC,OAAO;AAAA,MAAI,MAAM,QAAQ,OAAO,MAAM;AAAA,IAC3C,OAAO,MAAM,SAAS,SAAS,OAAO,QAAQ,IAAI;AAAA;AAAA,EAEnD,QAAQ,MAAM;AAAA,SACR,QAAQ;AAAA,MACZ,MAAM,OAAO,MAAM,SAAS,KAAK;AAAA,MAEjC,IAAI,SAAS,MAAM,EAAE,SAAS,YAAY,MAAM,SAAS;AAAA,QACxD,OAAO,MAAM,SAAS;AAAA,MACvB;AAAA,MACA,OAAO,OAAO,MAAM,IAAI,CAAC;AAAA,IAC1B;AAAA,SACK;AAAA,MACJ,OAAO,OAAO,MAAM,SAAS,KAAK,CAAC;AAAA,SAC/B;AAAA,MACJ,OAAO,MAAM,MAAM,SAAS,SAAS,CAAC;AAAA;AAAA,MAEtC,OAAO,MAAM,MAAM,SAAS,KAAK,CAAC;AAAA;AAAA;;;ACrI9B,IAAM,OAAO,CAAC,UACpB,iBAAiB,OAAO,MAAM,YAAY,IAAI,OAAO,KAAK;AAEpD,IAAM,SAAS,CAAC,UACtB,UAAU,aAAa,UAAU;AAE3B,SAAS,QAAQ,CACvB,SACA,OACS;AAAA,EACT,OAAO,QAAQ,KAAK,QAAQ,gBAAgB,CAAC,GAAG,SAAiB;AAAA,IAChE,MAAM,QAAQ,QAAQ;AAAA,IACtB,IAAI,OAAO,KAAK,GAAG;AAAA,MAClB,MAAM,IAAI,UACT,GAAG,QAAQ,OAAO,YAAY,KAAK,QAAQ,4BAA4B,iBACxE;AAAA,IACD;AAAA,IACA,OAAO,mBAAmB,KAAK,KAAK,CAAC;AAAA,GACrC;AAAA;AAIK,SAAS,UAAU,CAAC,OAAuC;AAAA,EACjE,IAAI,UAAU;AAAA,IAAW,OAAO;AAAA,EAChC,IAAI,iBAAiB;AAAA,IAAiB,OAAO,MAAM,SAAS;AAAA,EAC5D,MAAM,SAAS,IAAI;AAAA,EACnB,YAAY,MAAM,UAAU,OAAO,QAAQ,KAAK,GAAG;AAAA,IAClD,WAAW,QAAQ,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG;AAAA,MAC1D,IAAI,CAAC,OAAO,IAAI;AAAA,QAAG,OAAO,OAAO,MAAM,KAAK,IAAI,CAAC;AAAA,IAClD;AAAA,EACD;AAAA,EACA,OAAO,OAAO,SAAS;AAAA;AAGjB,SAAS,OAAO,CACtB,SACA,MACA,OACS;AAAA,EACT,MAAM,OAAO,YAAY,YAAY,KAAK,OAAO,OAAO,EAAE,QAAQ,QAAQ,EAAE;AAAA,EAC5E,OAAO,GAAG,OAAO,OAAO,UAAU,KAAK,KAAK,IAAI;AAAA;AAO1C,SAAS,SAAS,CACxB,OACA,SACA,KACuB;AAAA,EACvB,MAAM,OAAO,CAAC,aACb,QAAQ,IAAI,gBAAgB,OAAO,QAAQ;AAAA,EAC5C,IAAI,MAAM,SAAS,WAAW;AAAA,IAC7B,KAAK,kBAAkB;AAAA,IACvB,OAAO,KAAK,UAAU,MAAM,IAAI;AAAA,EACjC;AAAA,EACA,IAAI,MAAM,SAAS,WAAW;AAAA,IAE7B,QAAQ,OAAO,cAAc;AAAA,IAC7B,QAAQ,SAAS;AAAA,IACjB,IAAI,gBAAgB,YAAY,gBAAgB,iBAAiB;AAAA,MAChE,OAAO;AAAA,IACR;AAAA,IACA,OAAO,CAAC,GAAG,OAAO,IAAI,CAAC,EAAE,KAAK,IAAI,WAAW,iBAAiB,IAAI,IAC/D,WAAW,IAAI,IACf,eAAe,IAAI;AAAA,EACvB;AAAA,EACA,IAAI,MAAM,SAAS,WAAW;AAAA,IAC7B,KAAK,YAAY;AAAA,IACjB,OAAO,MAAM;AAAA,EACd;AAAA,EACA,IAAI,MAAM,SAAS,WAAW;AAAA,IAC7B,QAAQ,SAAS;AAAA,IACjB,KACC,gBAAgB,QAAQ,KAAK,SAAS,KACnC,KAAK,OACL,0BACJ;AAAA,IACA,OAAO;AAAA,EACR;AAAA,EACA;AAAA;AAIM,UAAU,MAAM,CAAC,MAAsD;AAAA,EAC7E,YAAY,MAAM,UAAU,OAAO,QAAQ,IAAI,GAAG;AAAA,IACjD,WAAW,QAAQ,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG;AAAA,MAC1D,IAAI,OAAO,IAAI;AAAA,QAAG;AAAA,MAClB,IAAI,gBAAgB;AAAA,QAAM,MAAM,CAAC,MAAM,IAAI;AAAA,MACtC,SAAI,OAAO,SAAS,YAAY,EAAE,gBAAgB,OAAO;AAAA,QAC7D,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC;AAAA,MAClC,EAAO;AAAA,cAAM,CAAC,MAAM,KAAK,IAAI,CAAC;AAAA,IAC/B;AAAA,EACD;AAAA;AAGM,SAAS,UAAU,CAAC,MAA4B;AAAA,EACtD,MAAM,OAAO,IAAI;AAAA,EACjB,YAAY,MAAM,UAAU,OAAO,IAAI;AAAA,IAAG,KAAK,OAAO,MAAM,KAAK;AAAA,EACjE,OAAO;AAAA;AAGD,SAAS,cAAc,CAAC,MAAmC;AAAA,EACjE,MAAM,OAAO,IAAI;AAAA,EACjB,YAAY,MAAM,UAAU,OAAO,IAAI,GAAG;AAAA,IACzC,IAAI,iBAAiB,MAAM;AAAA,MAC1B,MAAM,IAAI,UACT,GAAG,4EACJ;AAAA,IACD;AAAA,IACA,KAAK,OAAO,MAAM,KAAK;AAAA,EACxB;AAAA,EACA,OAAO;AAAA;;;AC9FR,IAAM,UAAU,CACf,SACA,QACA,WAEA,IAAI,gBAAgB,SAAS;AAAA,EAC5B,MAAM;AAAA,KACH;AAAA,EACH;AAAA,EACA;AACD,CAAC;AAOF,eAAsB,MAAM,CAC3B,UACA,UACA,OACmB;AAAA,EACnB,QAAQ,WAAW;AAAA,EACnB,IAAI,WAAW,KAAK;AAAA,IACnB,MAAM,SAAS,MAAM,OAAO;AAAA,IAC5B,OAAO;AAAA,EACR;AAAA,EACA,IAAI,CAAC,SAAS;AAAA,IAAI,MAAM,IAAI,sBAAsB,SAAS,SAAS,QAAQ;AAAA,EAC5E,MAAM,SAAS,SAAS,QAAQ,IAAI,cAAc;AAAA,EAClD,IAAI,WAAW,QAAQ,CAAC,MAAM,SAAS,UAAU,MAAM,CAAC,KAAK,CAAC,SAAS,MAAM;AAAA,IAC5E,MAAM,SAAS,MAAM,OAAO;AAAA,IAC5B,MAAM,QAAQ,SAAS,SAAS,QAAQ;AAAA,MACvC;AAAA,QACC,QAAQ;AAAA,QACR,MAAM,CAAC;AAAA,QACP,MAAM;AAAA,QACN,SAAS,KAAK,mBAAmB,MAAM,KAAK,MAAM,UAAU,UAAU;AAAA,MACvE;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAIR,eAAsB,MAAM,CAC3B,UACA,QACA,MACA,QACA,MACmB;AAAA,EACnB,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,QAAQ,KAAK,MAAM,IAAI;AAAA,IACtB,MAAM;AAAA,IACP,MAAM,QAAQ,SAAS,SAAS,QAAQ;AAAA,MACvC;AAAA,QACC,QAAQ;AAAA,QACR,MAAM,CAAC;AAAA,QACP,MAAM;AAAA,QACN,SAAS,GAAG;AAAA,MACb;AAAA,IACD,CAAC;AAAA;AAAA,EAEF,IAAI,CAAC,UAAU,CAAC,SAAS;AAAA,IAAU,OAAO;AAAA,EAC1C,MAAM,SAAS,MAAM,MAAM,QAAQ,OAAO,UAAU;AAAA,EACpD,IAAI,CAAC,OAAO;AAAA,IAAI,MAAM,QAAQ,SAAS,SAAS,QAAQ,OAAO,MAAM;AAAA,EACrE,OAAO,SAAS,SAAS,OAAO,QAAQ;AAAA;AAIlC,SAAS,KAAK,CACpB,OACG,SACa;AAAA,EAChB,MAAM,OAAO,QAAQ,OAAO,CAAC,SAA8B,CAAC,CAAC,IAAI;AAAA,EACjE,OAAO,IAAI,QAAQ,CAAC,YAAY;AAAA,IAC/B,MAAM,OAAO,MAAM;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,WAAW,QAAQ;AAAA,QAAM,KAAK,oBAAoB,SAAS,IAAI;AAAA,MAC/D,QAAQ;AAAA;AAAA,IAET,MAAM,QAAQ,WAAW,MAAM,EAAE;AAAA,IACjC,WAAW,QAAQ,MAAM;AAAA,MACxB,IAAI,KAAK;AAAA,QAAS,OAAO,KAAK;AAAA,MAC9B,KAAK,iBAAiB,SAAS,MAAM,EAAE,MAAM,KAAK,CAAC;AAAA,IACpD;AAAA,GACA;AAAA;AAAA;AAQK,MAAM,QAAQ;AAAA,EAEpB;AAAA,EACS;AAAA,EACA;AAAA,EAIT,WAAW,CAAC,QAAiC;AAAA,IAPpC,cAAS,IAAI;AAAA,IAGb,aAAQ,MAAM;AAAA,MACtB,KAAK,SAAS,OAAO,EAAE,MAAM,MAAM,EAAE;AAAA;AAAA,IAIrC,KAAK,UAAU;AAAA,IACf,KAAK,OAAO,OAAO,iBAAiB,SAAS,KAAK,KAAK;AAAA,IACvD,QAAQ,iBAAiB,SAAS,KAAK,KAAK;AAAA;AAAA,EAI7C,IAAI,CAAC,UAAyD;AAAA,IAC7D,MAAM,OAAO,SAAS;AAAA,IACtB,KAAK,UAAU,KAAK,YAAY,IAAI,iBAAmB,EAAE,UAAU;AAAA,IACnE,OAAO,KAAK;AAAA;AAAA,EAIb,OAAO,GAAY;AAAA,IAClB,KAAK,SAAS,eAAe;AAAA,IAC7B,OAAO,KAAK,OAAO,OAAO;AAAA;AAAA,EAI3B,OAAO,GAAS;AAAA,IACf,KAAK,SAAS,OAAO,EAAE,MAAM,MAAM,EAAE;AAAA,IACrC,KAAK,UAAU;AAAA,IACf,KAAK,SAAS,oBAAoB,SAAS,KAAK,KAAK;AAAA;AAAA,EAGtD,KAAK,GAAS;AAAA,IACb,KAAK,OAAO,MAAM;AAAA;AAEpB;;;ACxIA,IAAM,WAAW;AAGV,SAAS,eAAe,CAAC,aAAiC;AAAA,EAChE,IAAI,SAAS;AAAA,EACb,IAAI,UAAU;AAAA,EAEd,IAAI,UAAU;AAAA,EACd,IAAI,OAAO;AAAA,EACX,IAAI,OAAO;AAAA,EACX,IAAI,KAAK,eAAe;AAAA,EACxB,IAAI,eAAe;AAAA,EACnB,IAAI;AAAA,EAEJ,MAAM,WAAW,CAAC,WAA0B;AAAA,IAC3C,eAAe,OAAO,KAAK,YAAY;AAAA,IACvC,IAAI,SAAS,IAAI;AAAA,MAChB,OAAO;AAAA,MACP;AAAA,IACD;AAAA,IACA,OAAO,KAAK;AAAA,MACX,OAAO,SAAS,KAAK,YAAY;AAAA,MACjC,MAAM,KAAK,SAAS;AAAA,CAAI,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI;AAAA,MAChD,IAAI;AAAA,IACL,CAAC;AAAA,IACD,OAAO;AAAA,IACP,OAAO;AAAA;AAAA,EAGR,MAAM,OAAO,CAAC,MAAc,WAA0B;AAAA,IACrD,IAAI,SAAS;AAAA,MAAI,OAAO,SAAS,MAAM;AAAA,IACvC,IAAI,KAAK,WAAW,GAAG;AAAA,MAAG;AAAA,IAC1B,MAAM,QAAQ,KAAK,QAAQ,GAAG;AAAA,IAC9B,MAAM,QAAQ,UAAU,KAAK,OAAO,KAAK,MAAM,GAAG,KAAK;AAAA,IACvD,IAAI,QAAQ,UAAU,KAAK,KAAK,KAAK,MAAM,QAAQ,CAAC;AAAA,IACpD,IAAI,MAAM,WAAW,GAAG;AAAA,MAAG,QAAQ,MAAM,MAAM,CAAC;AAAA,IAChD,QAAQ;AAAA,WACF;AAAA,QACJ,OAAO;AAAA,QACP;AAAA,WACI;AAAA,QACJ,QAAQ,GAAG;AAAA;AAAA,QACX;AAAA,WACI;AAAA,QACJ,IAAI,CAAC,MAAM,SAAS,MAAI;AAAA,UAAG,KAAK;AAAA,QAChC;AAAA,WACI;AAAA,QACJ,IAAI,QAAQ,KAAK,KAAK;AAAA,UAAG,QAAQ,OAAO,KAAK;AAAA,QAC7C;AAAA;AAAA;AAAA,EAIH,OAAO;AAAA,IACN,IAAI,CAAC,OAAO;AAAA,MACX,IAAI,OAAO;AAAA,MACX,IAAI,CAAC,WAAW,SAAS,IAAI;AAAA,QAC5B,UAAU;AAAA,QACV,IAAI,KAAK,WAAW,QAAQ;AAAA,UAAG,OAAO,KAAK,MAAM,CAAC;AAAA,MACnD;AAAA,MACA,IAAI,WAAW,SAAS,IAAI;AAAA,QAC3B,UAAU;AAAA,QACV,IAAI,KAAK,WAAW;AAAA,CAAI;AAAA,UAAG,OAAO,KAAK,MAAM,CAAC;AAAA,MAC/C;AAAA,MACA,UAAU;AAAA,MACV,MAAM,SAAwB,CAAC;AAAA,MAC/B,IAAI,QAAQ;AAAA,MACZ,SAAS,YAAY;AAAA,MACrB,SACK,MAAM,SAAS,KAAK,MAAM,EAC9B,QAAQ,MACR,MAAM,SAAS,KAAK,MAAM,GACzB;AAAA,QAED,IAAI,IAAI,OAAO,QAAQ,IAAI,UAAU,OAAO,SAAS,GAAG;AAAA,UACvD,UAAU;AAAA,QACX;AAAA,QACA,KAAK,OAAO,MAAM,OAAO,IAAI,KAAK,GAAG,MAAM;AAAA,QAC3C,QAAQ,IAAI,QAAQ,IAAI,GAAG;AAAA,MAC5B;AAAA,MACA,SAAS,OAAO,MAAM,KAAK;AAAA,MAC3B,OAAO;AAAA;AAAA,QAEJ,KAAK,GAAG;AAAA,MACX,OAAO;AAAA;AAAA,QAEJ,WAAW,GAAG;AAAA,MACjB,OAAO;AAAA;AAAA,EAET;AAAA;;;ACvFM,SAAS,WAAW,CAAC,UAA+C;AAAA,EAC1E,MAAM,UAAU,IAAI,QAAQ,SAAS,MAAM;AAAA,EAC3C,IAAI,cAAc,SAAS;AAAA,EAC3B,IAAI,QAAQ,SAAS,YAAY,SAAS,UAAU,QAAQ;AAAA,EAC5D,IAAI,UAAU;AAAA,EAGd,MAAM,WAAW,OAAO,KAAkB,WAAmB;AAAA,IAC5D,QAAQ,WAAW;AAAA,IACnB,IAAI,CAAC;AAAA,MAAQ,OAAO;AAAA,IACpB,IAAI,CAAC,OAAO,OAAO,QAAQ,IAAI,KAAK,GAAG;AAAA,MACtC,SAAS,iBAAiB,GAAG;AAAA,MAC7B;AAAA,IACD;AAAA,IACA,MAAM,SAAS,OAAO,IAAI;AAAA,IAC1B,IAAI,CAAC;AAAA,MAAQ,OAAO;AAAA,IACpB,MAAM,OAAO,OAAO,IAAI;AAAA,IACxB,MAAM,OAAO,MAAM,OAAO,UAAU,QAAQ,IAAI,MAAM,QAAQ,IAAI;AAAA,IAClE,OAAO,EAAE,OAAO,IAAI,OAAO,MAAM,IAAI,IAAI,GAAG;AAAA;AAAA,EAI7C,MAAM,QAAQ,OAAO,aAAuC;AAAA,IAC3D,QAAQ,cAAc;AAAA,IACtB,IAAI,CAAC,aAAa,YAAY,UAAU;AAAA,MAAU,OAAO;AAAA,IACzD,MAAM,MAAM,OAAO,QAAQ,OAAO,QAAQ,SAAS,MAAM;AAAA,IACzD,OAAO,CAAC,QAAQ,QAAQ;AAAA;AAAA,EAGzB,gBAAgB,GAAG,GAA6C;AAAA,IAC/D,IAAI,WAAW;AAAA,IACf,IAAI;AAAA,MACH,UAAS;AAAA,QACR,IAAI;AAAA,QACJ,IAAI;AAAA,UACH,WAAW,MAAM,SAAS,KAAK,QAAQ,OAAO,QAAQ,WAAW;AAAA,UAChE,OAAO,OAAO;AAAA,UACf,IAAI,QAAQ,OAAO,OAAO;AAAA,YAAS;AAAA,UAEnC,IAAI,iBAAiB,gBAAiB,MAAM,MAAM,UAAU,GAAI;AAAA,YAC/D;AAAA,UACD;AAAA,UACA,MAAM;AAAA;AAAA,QAEP,IAAI,CAAE,MAAM,OAAO,UAAU,UAAU,CAAC,mBAAmB,CAAC,GAAI;AAAA,UAC/D;AAAA,QACD;AAAA,QACA,MAAM,SAAS,gBAAgB,WAAW;AAAA,QAC1C,MAAM,SAAS,QAAQ,KAAK,QAAQ;AAAA,QACpC,IAAI;AAAA,QACJ,UAAS;AAAA,UACR,IAAI;AAAA,UACJ,IAAI;AAAA,YACH,QAAQ,MAAM,OAAO,KAAK;AAAA,YACzB,OAAO,OAAO;AAAA,YACf,IAAI,QAAQ,QAAQ;AAAA,cAAG;AAAA,YACvB,UAAU;AAAA,YACV;AAAA;AAAA,UAED,IAAI,QAAQ,QAAQ;AAAA,YAAG;AAAA,UACvB,IAAI,MAAM;AAAA,YAAM;AAAA,UAChB,MAAM,SAAS,OAAO,KAAK,MAAM,KAAK;AAAA,UACtC,cAAc,OAAO;AAAA,UACrB,QAAQ,OAAO,SAAS;AAAA,UACxB,WAAW,OAAO,QAAQ;AAAA,YACzB,WAAW;AAAA,YACX,MAAM,QAAQ,MAAM,SAAS,KAAK,SAAS,MAAM;AAAA,YACjD,IAAI,UAAU;AAAA,cAAW,MAAM;AAAA,UAChC;AAAA,QACD;AAAA,QACA,IAAI,CAAE,MAAM,MAAM,UAAU,GAAI;AAAA,UAC/B,IAAI,YAAY;AAAA,YAAW;AAAA,UAC3B,MAAM,IAAI,aAAa,SAAS,SAAS,EAAE,OAAO,QAAQ,CAAC;AAAA,QAC5D;AAAA,MACD;AAAA,cACC;AAAA,MACD,QAAQ,QAAQ;AAAA;AAAA;AAAA,EAIlB,OAAO;AAAA,KACL,OAAO,cAAc,GAAG;AAAA,MACxB,IAAI;AAAA,QAAS,MAAM,IAAI,UAAU,uBAAuB;AAAA,MACxD,UAAU;AAAA,MACV,OAAO,IAAI;AAAA;AAAA,IAEZ,OAAO,MAAM,QAAQ,MAAM;AAAA,QACvB,WAAW,GAAG;AAAA,MACjB,OAAO;AAAA;AAAA,EAET;AAAA;;;ACtGD,IAAM,KAAK,OAAO,aAAa,EAAI;AAE5B,SAAS,gBAAgB,GAAe;AAAA,EAC9C,IAAI,SAAS;AAAA,EACb,MAAM,UAAU,CAAC,UAChB,MAAM,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,OAAO,CAAC,SAAS,SAAS,EAAE;AAAA,EAC9D,OAAO;AAAA,IACN,IAAI,CAAC,OAAO;AAAA,MACX,MAAM,SAAS,SAAS,OAAO,WAAW,IAAI;AAAA,CAAI,EAAE,MAAM,OAAO;AAAA,MACjE,SAAS,MAAM,IAAI,KAAK;AAAA,MACxB,OAAO,QAAQ,KAAK;AAAA;AAAA,IAErB,GAAG,GAAG;AAAA,MACL,MAAM,OAAO;AAAA,MACb,SAAS;AAAA,MACT,OAAO,QAAQ,CAAC,IAAI,CAAC;AAAA;AAAA,EAEvB;AAAA;;;ACvBM,IAAM,aAAa;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAMO,SAAS,UAAU,CAAC,UAAyC;AAAA,EACnE,MAAM,UAAU,IAAI,QAAQ,SAAS,MAAM;AAAA,EAC3C,IAAI,UAAU;AAAA,EAEd,gBAAgB,GAAG,GAA6C;AAAA,IAC/D,IAAI;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,QACH,WAAW,MAAM,SAAS,KAAK,QAAQ,OAAO,QAAQ,SAAS;AAAA,QAC9D,OAAO,OAAO;AAAA,QACf,IAAI,QAAQ,OAAO,OAAO;AAAA,UAAS;AAAA,QACnC,MAAM;AAAA;AAAA,MAEP,IAAI,CAAE,MAAM,OAAO,UAAU,UAAU,UAAU;AAAA,QAAI;AAAA,MACrD,MAAM,SAAS,iBAAiB;AAAA,MAChC,MAAM,SAAS,QAAQ,KAAK,QAAQ;AAAA,MACpC,UAAS;AAAA,QACR,IAAI;AAAA,QACJ,IAAI;AAAA,UACH,QAAQ,MAAM,OAAO,KAAK;AAAA,UACzB,OAAO,OAAO;AAAA,UACf,IAAI,QAAQ,QAAQ;AAAA,YAAG;AAAA,UACvB,MAAM,IAAI,aAAa,SAAS,SAAS,EAAE,OAAO,MAAM,CAAC;AAAA;AAAA,QAE1D,IAAI,QAAQ,QAAQ;AAAA,UAAG;AAAA,QACvB,MAAM,QAAQ,MAAM,OAAO,OAAO,IAAI,IAAI,OAAO,KAAK,MAAM,KAAK;AAAA,QACjE,WAAW,QAAQ,OAAO;AAAA,UACzB,MAAM,MAAM,OACX,UACA,SAAS,QACT,MACA,SAAS,MACT,QACD;AAAA,QACD;AAAA,QACA,IAAI,MAAM;AAAA,UAAM;AAAA,MACjB;AAAA,cACC;AAAA,MACD,QAAQ,QAAQ;AAAA;AAAA;AAAA,EAIlB,OAAO;AAAA,KACL,OAAO,cAAc,GAAG;AAAA,MACxB,IAAI;AAAA,QAAS,MAAM,IAAI,UAAU,uBAAuB;AAAA,MACxD,UAAU;AAAA,MACV,OAAO,IAAI;AAAA;AAAA,IAEZ,OAAO,MAAM,QAAQ,MAAM;AAAA,EAC5B;AAAA;;;ACrCM,IAAM,UAA6B;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AA+BA,IAAM,kBAAkB;AAExB,IAAM,YAAY,CACjB,QACA,MACA,gBAEA,gBAAgB,YAAY,EAAE,QAAQ,KAAK,IAAI,EAAE,QAAQ,MAAM,YAAY;AAYrE,SAAS,gBAAgB,CAAC,UAA6B,CAAC,GAAe;AAAA,EAC7E,MAAM,SAAS,QAAQ,OAAO,KAAK,QAAQ,IAAI,IAAI;AAAA,EACnD,MAAM,QAAQ,aAAa;AAAA,EAK3B,MAAM,eAAe,CAAC,QACrB,QAAQ,YAAY,YAAY,MAAM,GAAG;AAAA,EAC1C,MAAM,gBAAgB,YACrB,IAAI,QACH,OAAO,QAAQ,YAAY,aACxB,MAAM,QAAQ,QAAQ,IACtB,QAAQ,OACZ;AAAA,EAGD,MAAM,eAAe,CACpB,SACA,WACI;AAAA,IACJ,MAAM,WACL,YAAY,YAAY,YAAY,YAAY,QAAQ,OAAO;AAAA,IAChE,MAAM,UAAU,CAAC,QAAQ,QAAQ,EAAE,OAClC,CAAC,SAA8B,QAAQ,IACxC;AAAA,IACA,OAAO;AAAA,MACN;AAAA,MACA,QAAQ,QAAQ,SAAS,IAAI,YAAY,IAAI,OAAO,IAAI,QAAQ;AAAA,IACjE;AAAA;AAAA,EAOD,MAAM,WAAW,OAChB,SACA,SACA,SACA,UACA,OACA,UACuB;AAAA,IACvB,MAAM,QAAQ,QAAQ,UAAU,CAAC,SAAkB,WAAW,MAAM,IAAI;AAAA,IAExE,MAAM,OAAa,OAAO,SAAS;AAAA,MAClC,IAAI;AAAA,QAEH,KAAK,OAAO,eAAe;AAAA,QAC3B,OAAO,MAAM,MAAM,IAAI;AAAA,QACtB,OAAO,OAAO;AAAA,QACf,IAAI,QAAQ,OAAO;AAAA,UAAS,MAAM;AAAA,QAClC,MAAM,IAAI,aAAa,SAAS,EAAE,OAAO,MAAM,CAAC;AAAA;AAAA;AAAA,IAGlD,MAAM,QAAQ,cAAc,KAAK;AAAA,IACjC,MAAM,SAAS;AAAA,MACd,GAAI,QAAQ,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC;AAAA,MACjC,GAAI,SAAS,CAAC,MAAM,IAAI,CAAC;AAAA,MACzB,GAAI,QAAQ,OAAO,CAAC;AAAA,MACpB,GAAG;AAAA,IACJ;AAAA,IACA,IAAI;AAAA,MACH,OAAO,MAAM,QAAQ,QAAQ,MAAM,OAAO,EAAE,OAAO;AAAA,MAClD,OAAO,OAAO;AAAA,MACf,IAAI,UAAU,WAAW,YAAY,WAAW;AAAA,QAC/C,MAAM,IAAI,aAAa,SAAS,SAAS,EAAE,OAAO,MAAM,CAAC;AAAA,MAC1D;AAAA,MACA,MAAM;AAAA;AAAA;AAAA,EAQR,MAAM,QAAQ,OACb,QACA,MACA,OACA,WACI;AAAA,IACJ;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,QAAQ;AAAA,MAClB,QAAQ,QAAQ;AAAA,MAChB,SAAS;AAAA,MACT;AAAA,SACG;AAAA,QACA;AAAA,IACJ,MAAM,UAAU,UAAU,QAAQ,MAAM,WAAW;AAAA,IACnD,MAAM,UAAU,MAAM,cAAc;AAAA,IACpC,MAAM,cAAc,IAAI,QAAQ,GAAG;AAAA,IACnC,YAAY,QAAQ,CAAC,OAAO,SAAS;AAAA,MACpC,QAAQ,IAAI,MAAM,KAAK;AAAA,KACvB;AAAA,IACD,SAAS,OAAO;AAAA,IAChB,MAAM,MAAM,QACX,QAAQ,SACR,SAAS,SAAS,KAAK,GACvB,WAAW,KAAK,CACjB;AAAA,IACA,MAAM,UAAU,UACf,EAAE,MAAM,MAAM,MAAM,KAAK,GACzB,SACA,YAAY,IAAI,cAAc,CAC/B;AAAA,IACA,MAAM,OAAO;AAAA,SACT,QAAQ;AAAA,SACR;AAAA,MACH,QAAQ,OAAO,YAAY;AAAA,MAC3B;AAAA,MACA,MAAM;AAAA,SAEF,mBAAmB,iBAAiB,EAAE,QAAQ,OAAO,IAAI,CAAC;AAAA,IAC/D;AAAA,IACA,OAAO,EAAE,SAAS,KAAK,MAAM,SAAS,OAAO,QAAQ,UAAU,UAAU;AAAA;AAAA,EAG1E,MAAM,UAAU,OACf,QACA,MACA,OACA,UACsB;AAAA,IACtB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,MACX,SAAS;AAAA,MACT;AAAA,SACG;AAAA,QACA;AAAA,IACJ,MAAM,WAAW,aAAa,MAAM;AAAA,IACpC,MAAM,QAAQ,MAAM,MAAM,QAAQ,MAAM,IAAI;AAAA,IAC5C,QAAQ,UAAU,WAAW,aAC5B,MAAM,SACN,YAAY,MAAM,QAAQ,QAAQ,CACnC;AAAA,IACA,MAAM,WAAW,MAAM,SACtB,IAAI,QAAQ,MAAM,KAAK,KAAK,MAAM,MAAM,OAAO,CAAC,GAChD,MAAM,SACN,MAAM,SACN,UACA,MAAM,OACN,KACD;AAAA,IACA,OAAO,UACN,MAAM,SACN,cAAc,YAAY,YAAY,OAAO,SAAS,GACtD,UACA,EAAE,UAAU,OAAO,CACpB;AAAA;AAAA,EAQD,MAAM,SACL,CACC,QACA,MACA,MACA,QACA,UAED,OAAO,QAAQ,gBAAgB;AAAA,IAC9B,MAAM,QAAQ,MAAM,MAAM,QAAQ,MAAM,MAAM,CAAC,YAAY;AAAA,MAC1D,IAAI,CAAC,QAAQ,IAAI,QAAQ;AAAA,QAAG,QAAQ,IAAI,UAAU,MAAM;AAAA,MACxD,IAAI,gBAAgB,WAAW;AAAA,QAC9B,QAAQ,IAAI,iBAAiB,WAAW;AAAA,MACzC;AAAA,KACA;AAAA,IACD,MAAM,WAAW,IAAI;AAAA,IACrB,MAAM,QACL,MAAM,YAAY,YACf,YACA,WACA,MACC,SAAS,MACR,IAAI,aAAa,2BAA2B,cAAc,CAC3D,GACD,MAAM,OACP;AAAA,IACH,MAAM,UAAU,CAAC,QAAQ,SAAS,MAAM;AAAA,IACxC,IAAI,MAAM;AAAA,MAAQ,QAAQ,KAAK,MAAM,MAAM;AAAA,IAC3C,IAAI;AAAA,MACH,OAAO,MAAM,SACZ,IAAI,QAAQ,MAAM,KAAK;AAAA,WACnB,MAAM;AAAA,QACT,QAAQ,YAAY,IAAI,OAAO;AAAA,MAChC,CAAC,GACD,MAAM,SACN,MAAM,SACN,SAAS,QACT,MAAM,OACN,KACD;AAAA,cACC;AAAA,MACD,aAAa,KAAK;AAAA;AAAA;AAAA,EAIrB,MAAM,SAAS,CACd,MACA,OACA,UACI;AAAA,IACJ;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,SAAS;AAAA,MACT,SAAS;AAAA,MACT;AAAA,SACG;AAAA,QACA;AAAA,IACJ,MAAM,OAAO;AAAA,SACT;AAAA,MACH,QAAQ,YAAY,IAAI,QAAQ,aAAa,MAAM,CAAC;AAAA,IACrD;AAAA,IACA,MAAM,aACL,cAAc,YACX,WAAW,UAAU,WAAW,UAChC,cAAc;AAAA,IAClB,MAAM,WAAW,OAAO,cAAc,WAAW,YAAY,CAAC;AAAA,IAC9D,OAAO,YAAY;AAAA,MAClB,SAAS,UAAU,QAAQ,MAAM,KAAK,WAAW;AAAA,MACjD,MAAM,OAAO,QAAQ,MAAM,MAAM,qBAAqB,KAAK;AAAA,MAC3D,QAAQ,KAAK,UAAU;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,cAAc;AAAA,QACxB,UAAU,SAAS,YAAY,OAAO;AAAA,QACtC,OAAO,SAAS,SAAS;AAAA,MAC1B;AAAA,MACA;AAAA,IACD,CAAC;AAAA;AAAA,EAGF,MAAM,QAAQ,CACb,MACA,OACA,UACI;AAAA,IACJ;AAAA,MACC;AAAA,MACA,WAAW;AAAA,MACX,SAAS;AAAA,MACT,SAAS;AAAA,MACT;AAAA,SACG;AAAA,QACA;AAAA,IACJ,MAAM,OAAO;AAAA,SACT;AAAA,MACH,QAAQ,YAAY,IAAI,QAAQ,aAAa,MAAM,CAAC;AAAA,IACrD;AAAA,IACA,OAAO,WAAW;AAAA,MACjB,SAAS,UAAU,QAAQ,MAAM,KAAK,WAAW;AAAA,MACjD,MAAM,OACL,QACA,MACA,MACA,WAAW,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,GAChC,KACD;AAAA,MACA,QAAQ,KAAK,UAAU;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,IACD,CAAC;AAAA;AAAA,EAGF,MAAM,OAAO,OACZ;AAAA,IAEC,UAAU,QAAQ;AAAA,IAClB,QAAQ,QAAQ;AAAA,IAChB;AAAA,IACA;AAAA,KAED,UACuB;AAAA,IACvB,MAAM,WAAW,aAAa,MAAM;AAAA,IACpC,MAAM,SAAS,QAAQ,OAAO,YAAY;AAAA,IAC1C,MAAM,UAAU,UACf,QACA,IAAI,IAAI,QAAQ,GAAG,EAAE,UACrB,WACD;AAAA,IACA,MAAM,UAAU,MAAM,cAAc;AAAA,IACpC,QAAQ,QAAQ,QAAQ,CAAC,OAAO,SAAS;AAAA,MACxC,QAAQ,IAAI,MAAM,KAAK;AAAA,KACvB;AAAA,IACD,QAAQ,UAAU,WAAW,aAC5B,SACA,YAAY,QAAQ,QAAQ,QAAQ,CACrC;AAAA,IACA,MAAM,OAAO,IAAI,QAAQ,SAAS,EAAE,SAAS,OAAO,CAAC;AAAA,IACrD,OAAO,SAAS,MAAM,SAAS,SAAS,UAAU,OAAO,KAAK;AAAA;AAAA,EAQ/D,MAAM,UAAU,CACf,OACA,cACgB;AAAA,IAChB,MAAM,MAAoB,CAAC;AAAA,IAC3B,MAAM,SAAS,MAAM,CAAC,GAAG,UAAU,GAAG,GAAG,GAAG;AAAA,IAC5C,MAAM,SAAS,CACd,UACO;AAAA,MACP,MAAM,QAAQ,MAAM;AAAA,MACpB,MAAM,MAAM,SAAU,CAAC;AAAA,MACvB,OAAO,QACH,KAAK,KAAK,QAAQ,YAAY,IAAI,QAAQ,KAAK,EAAE,IAClD;AAAA;AAAA,IAEJ,MAAM,SAAkC;AAAA,MACvC,SAAS,CAAC,QAAgB,MAAc,UACvC,QAAQ,QAAQ,MAAM,OAAO,KAAK,GAAG,OAAO,CAAC;AAAA,MAC9C,MAAM,CAAC,MAAe,UAAwB;AAAA,QAC7C,MAAM,QAAQ,MAAM;AAAA,QACpB,OAAO,KACN,QACG,IAAI,QAAQ,MAAM,EAAE,QAAQ,YAAY,KAAK,QAAQ,KAAK,EAAE,CAAC,IAC7D,MACH,SAAS,CAAC,GACV,OAAO,CACR;AAAA;AAAA,MAED,QAAQ,CAAC,MAAc,UACtB,OAAO,MAAM,OAAO,KAAK,GAAG,OAAO,CAAC;AAAA,MACrC,OAAO,CAAC,MAAc,UACrB,MAAM,MAAM,OAAO,KAAK,GAAG,OAAO,CAAC;AAAA,MACpC,KAAK,IAAI,gBAA8B;AAAA,QACtC,IAAI,KAAK,GAAG,WAAW;AAAA,QACvB,OAAO;AAAA;AAAA,MAER,OAAO,MAAiB;AAAA,QACvB,IAAI,aAAa,IAAI;AAAA,QACrB,MAAM,QAAQ,QACb,MAAM,YAAY,MAAM,GAAG,WAAW,MAAM,GAC5C,MACD;AAAA,QACA,MAAM,SAAS,CAAC,WAAqB;AAAA,UACpC,WAAW,MAAM,UAAU,UAAU,yBAAyB,CAAC;AAAA,UAC/D,aAAa,IAAI;AAAA;AAAA,QAElB,OAAO,eAAe,OAAO,UAAU;AAAA,UACtC,YAAY;AAAA,UACZ,KAAK,MAAM,WAAW;AAAA,QACvB,CAAC;AAAA,QACD,OAAO;AAAA;AAAA,IAET;AAAA,IACA,WAAW,UAAU,SAAS;AAAA,MAC7B,OAAO,UAAU,CAAC,MAAc,UAC/B,QAAQ,QAAQ,MAAM,OAAO,KAAK,GAAG,OAAO,CAAC;AAAA,IAC/C;AAAA,IACA,OAAO;AAAA;AAAA,EAER,OAAO,QACN,MAAG;AAAA,IAAG;AAAA,KACN,MAAM,CAAC,CACR;AAAA;;ACpbD,IAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,QAAQ,OAAO,CAAC;AAC9C,IAAM,QAAQ,CAAC,YAAqB,MAAM,IAAI,QAAQ,OAAO,YAAY,CAAC;AAWnE,SAAS,KAAK;AAAA,EACpB,MAAM,IAAI,KAAK;AAAA,EACf,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,OAAO,CAAC,eAAe;AAAA,IACN,CAAC,GAAU;AAAA,EAC5B,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,QAAQ,OAAO,YAAsC;AAAA,IAC1D,MAAM,QAAQ;AAAA,MACb,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,GAAG,KAAK,IAAI,CAAC,SAAS,GAAG,SAAS,QAAQ,QAAQ,IAAI,IAAI,KAAK,IAAI;AAAA,IACpE;AAAA,IAEA,IAAI,QAAQ,SAAS;AAAA,MAAM,MAAM,KAAK,MAAM,QAAQ,MAAM,EAAE,KAAK,CAAC;AAAA,IAClE,OAAO,KAAK,UAAU,KAAK;AAAA;AAAA,EAE5B,MAAM,aAAyB,OAAO,SAAS,MAAM,SAAS;AAAA,IAC7D,IAAI,CAAC,UAAU,SAAS,IAAI;AAAA,MAAG,OAAO,KAAK,OAAO;AAAA,IAClD,MAAM,MAAM,MAAM,MAAM,OAAO;AAAA,IAC/B,MAAM,MAAM,QAAQ,IAAI,GAAG;AAAA,IAC3B,QAAQ,OAAO,GAAG;AAAA,IAClB,IAAI,OAAO,IAAI,SAAS,KAAK,IAAI,GAAG;AAAA,MAEnC,QAAQ,IAAI,KAAK,GAAG;AAAA,MACpB,OAAO,IAAI,SAAS,MAAM;AAAA,IAC3B;AAAA,IACA,MAAM,WAAW,MAAM,KAAK,OAAO;AAAA,IACnC,IAAI,CAAC,SAAS;AAAA,MAAI,OAAO;AAAA,IACzB,QAAQ,IAAI,KAAK,EAAE,QAAQ,KAAK,IAAI,IAAI,KAAK,UAAU,SAAS,MAAM,EAAE,CAAC;AAAA,IACzE,WAAW,UAAU,QAAQ,KAAK,GAAG;AAAA,MACpC,IAAI,QAAQ,QAAQ;AAAA,QAAY;AAAA,MAChC,QAAQ,OAAO,MAAM;AAAA,IACtB;AAAA,IACA,OAAO;AAAA;AAAA,EAER,OAAO,OAAO,OAAO,YAAY,EAAE,OAAO,MAAM,QAAQ,MAAM,EAAE,CAAC;AAAA;;AC5E3D,SAAS,MAGf,CAAC,UAAa,UAA0D;AAAA,EACxE,IAAI,CAAE,SAA+B,SAAS,MAAM,MAAM,GAAG;AAAA,IAC5D,MAAM,IAAI,iBAAiB,OAAO,QAAQ;AAAA,EAC3C;AAAA,EACA,OAAO,MAAM;AAAA;AAoBP,SAAS,EAEf,CAAC,OAA8B;AAAA,EAC/B,IAAI,MAAM,SAAS,OAAO,MAAM,SAAS,KAAK;AAAA,IAC7C,MAAM,IAAI,iBAAiB,OAAO,CAAC,CAAC;AAAA,EACrC;AAAA,EACA,OAAO,MAAM;AAAA;",
|
|
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=
|
|
1057
|
+
//# debugId=08EFC0FA159560DB64756E2164756E21
|
|
1051
1058
|
//# sourceMappingURL=index.js.map
|
|
@@ -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": "
|
|
22
|
+
"mappings": "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",
|
|
23
|
+
"debugId": "08EFC0FA159560DB64756E2164756E21",
|
|
24
24
|
"names": []
|
|
25
25
|
}
|