@nifrajs/core 5.4.0 → 5.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/internal/route-lanes.d.ts.map +1 -1
  5. package/dist/internal/route-lanes.js +2 -1
  6. package/dist/internal/route-lanes.js.map +1 -1
  7. package/dist/internal/route-program.d.ts +5 -0
  8. package/dist/internal/route-program.d.ts.map +1 -1
  9. package/dist/internal/route-program.js +36 -15
  10. package/dist/internal/route-program.js.map +1 -1
  11. package/dist/router/router.d.ts +3 -2
  12. package/dist/router/router.d.ts.map +1 -1
  13. package/dist/router/router.js +22 -6
  14. package/dist/router/router.js.map +1 -1
  15. package/dist/security/baseline.d.ts.map +1 -1
  16. package/dist/security/baseline.js +4 -3
  17. package/dist/security/baseline.js.map +1 -1
  18. package/dist/server/body-lane.d.ts.map +1 -1
  19. package/dist/server/body-lane.js +4 -3
  20. package/dist/server/body-lane.js.map +1 -1
  21. package/dist/server/body.d.ts +2 -0
  22. package/dist/server/body.d.ts.map +1 -1
  23. package/dist/server/body.js +5 -0
  24. package/dist/server/body.js.map +1 -1
  25. package/dist/server/cookies.d.ts.map +1 -1
  26. package/dist/server/cookies.js +9 -2
  27. package/dist/server/cookies.js.map +1 -1
  28. package/dist/server/core-copies.js +1 -1
  29. package/dist/server/idempotency-lane.d.ts +11 -12
  30. package/dist/server/idempotency-lane.d.ts.map +1 -1
  31. package/dist/server/idempotency-lane.js +301 -151
  32. package/dist/server/idempotency-lane.js.map +1 -1
  33. package/dist/server/methods.d.ts +3 -2
  34. package/dist/server/methods.d.ts.map +1 -1
  35. package/dist/server/methods.js.map +1 -1
  36. package/dist/server/multipart.d.ts.map +1 -1
  37. package/dist/server/multipart.js +42 -13
  38. package/dist/server/multipart.js.map +1 -1
  39. package/dist/server/node-outcome.d.ts.map +1 -1
  40. package/dist/server/node-outcome.js +2 -2
  41. package/dist/server/node-outcome.js.map +1 -1
  42. package/dist/server/query.d.ts +1 -1
  43. package/dist/server/query.d.ts.map +1 -1
  44. package/dist/server/query.js +13 -5
  45. package/dist/server/query.js.map +1 -1
  46. package/dist/server/request-context.d.ts.map +1 -1
  47. package/dist/server/request-context.js +3 -3
  48. package/dist/server/request-context.js.map +1 -1
  49. package/dist/server/respond.d.ts +17 -0
  50. package/dist/server/respond.d.ts.map +1 -1
  51. package/dist/server/respond.js +81 -3
  52. package/dist/server/respond.js.map +1 -1
  53. package/dist/server/runtime-core.d.ts +15 -0
  54. package/dist/server/runtime-core.d.ts.map +1 -1
  55. package/dist/server/runtime-core.js +41 -1
  56. package/dist/server/runtime-core.js.map +1 -1
  57. package/dist/server/server.d.ts +14 -5
  58. package/dist/server/server.d.ts.map +1 -1
  59. package/dist/server/server.js +179 -59
  60. package/dist/server/server.js.map +1 -1
  61. package/dist/server/transport-lane.d.ts +2 -2
  62. package/dist/server/transport-lane.d.ts.map +1 -1
  63. package/dist/server/transport-lane.js +20 -20
  64. package/dist/server/transport-lane.js.map +1 -1
  65. package/dist/static-file.d.ts +29 -6
  66. package/dist/static-file.d.ts.map +1 -1
  67. package/dist/static-file.js +43 -12
  68. package/dist/static-file.js.map +1 -1
  69. package/package.json +1 -1
  70. package/src/index.ts +1 -1
  71. package/src/internal/route-lanes.ts +18 -16
  72. package/src/internal/route-program.ts +76 -12
  73. package/src/router/router.ts +26 -5
  74. package/src/security/baseline.ts +4 -3
  75. package/src/server/body-lane.ts +4 -4
  76. package/src/server/body.ts +6 -0
  77. package/src/server/cookies.ts +7 -2
  78. package/src/server/core-copies.ts +1 -1
  79. package/src/server/idempotency-lane.ts +343 -209
  80. package/src/server/methods.ts +3 -2
  81. package/src/server/multipart.ts +62 -14
  82. package/src/server/node-outcome.ts +2 -1
  83. package/src/server/query.ts +12 -5
  84. package/src/server/request-context.ts +6 -3
  85. package/src/server/respond.ts +108 -6
  86. package/src/server/runtime-core.ts +54 -1
  87. package/src/server/server.ts +249 -99
  88. package/src/server/transport-lane.ts +28 -22
  89. package/src/static-file.ts +72 -16
@@ -5,32 +5,23 @@
5
5
  *
6
6
  * The kernel resolves a route's declared idempotency at registration (via {@link IdempotencyRuntime.resolve})
7
7
  * and, on the request path, hands a matched idempotent route to {@link IdempotencyRuntime.run}. Server
8
- * execution is supplied through {@link IdempotencyHost}; the opt-in module adapts the matched
9
- * route's program for replay without adding replay preparation to the shared server kernel.
8
+ * execution is supplied as a callback; the opt-in module owns body preparation, cleanup, and replay
9
+ * without adding that machinery to the shared server kernel.
10
10
  */
11
11
  import { RouteConfigError } from "../errors.js";
12
12
  import { canonicalizeIdempotencyBody, computeIdempotencyFingerprint, DEFAULT_IDEMPOTENCY_HEADER, DEFAULT_IDEMPOTENCY_PENDING_TTL_MS, DEFAULT_IDEMPOTENCY_TTL_MS, IdempotencyResponseTooLargeError, MemoryIdempotencyStore, responseFromStored, serializeResponse, validIdempotencyKey, validIdempotencyNamespace, } from "../idempotency.js";
13
13
  import { beginRequestEffectTracking, markEffect, requestEffectEvidence, requestIsSafeToRetry, } from "../internal/effect-execution.js";
14
- import { compileRouteExecutionPlan, } from "../internal/route-execution.js";
15
- import { readBoundedBytes } from "./body.js";
14
+ import { markTransportCap, readBoundedBytes, transportCapOf, UNLIMITED_BODY_BYTES } from "./body.js";
16
15
  import { jsonError, urlPartsOf } from "./http.js";
17
16
  import { INSTALL_IDEMPOTENCY } from "./install.js";
17
+ import { CONTEXT_REQUEST, PRE_DECODED_BODY, preDecodedBody, requestOf } from "./runtime-core.js";
18
18
  /** Requests whose route handler was entered. One rejected before it - by auth, validation, a guard -
19
19
  * began no execution, so its key is released rather than stored. */
20
20
  const HANDLER_ENTERED = new WeakSet();
21
+ const PREPARED = new WeakMap();
21
22
  /** Statuses that say the request was not carried out (RFC 9110). A handler answering with one, with no
22
23
  * owned effect begun, releases its key, so a refused caller cannot hold a store entry for the TTL. */
23
24
  const REFUSALS = new Set([401, 403, 408, 409, 425, 429]);
24
- // Compile once in the opt-in plugin. The around runner also handles an empty hook list.
25
- const REPLAY_EXECUTION = compileRouteExecutionPlan({
26
- lane: "lifecycle",
27
- contextless: false,
28
- hasAround: true,
29
- hasLedger: false,
30
- fusedWeb: undefined,
31
- fusedBody: undefined,
32
- fusedLane: undefined,
33
- });
34
25
  export function idempotency(options) {
35
26
  const runtime = createIdempotencyRuntime(options);
36
27
  const apply = (app) => {
@@ -116,158 +107,317 @@ export function createIdempotencyRuntime(options) {
116
107
  maxResponseBytes,
117
108
  });
118
109
  },
119
- async run(config, req, platform, entry, params, search, wrapResponse, host) {
120
- const key = req.headers.get(config.headerName);
121
- if (key === null || !validIdempotencyKey(key)) {
122
- return wrapResponse(jsonError(400, "idempotency_key_required"));
123
- }
124
- const namespace = typeof config.namespace === "function"
125
- ? await config.namespace({ method: req.method, url: req.url, headers: req.headers }, platform)
126
- : config.namespace;
127
- if (!validIdempotencyNamespace(namespace)) {
128
- return wrapResponse(jsonError(500, "idempotency_namespace_invalid"));
110
+ async run(source, platform, execute) {
111
+ const request = prepareRequest(source, platform);
112
+ try {
113
+ return await execute(request);
129
114
  }
130
- const read = await readBoundedBytes(req, host.maxBodyBytes);
131
- if (!read.ok) {
132
- return wrapResponse(jsonError(read.status, read.status === 413 ? "payload_too_large" : "bad_request"));
115
+ finally {
116
+ finishRequest(request);
133
117
  }
134
- const url = urlPartsOf(req.url);
135
- const canonicalBody = canonicalizeIdempotencyBody(read.bytes, req.headers.get("content-type"));
136
- const fingerprint = await computeIdempotencyFingerprint(req.method, `${url.pathname}${url.search}`, canonicalBody, req.headers.get("content-type") ?? "");
137
- const buffered = new Request(req.url, {
138
- method: req.method,
139
- headers: req.headers,
140
- signal: req.signal,
141
- // biome-ignore lint/plugin/requireSafetyCommentForTypeAssertion: readBoundedBytes owns this byte view; Request accepts the same bytes on every supported runtime.
142
- body: read.bytes.byteLength ? read.bytes : null,
118
+ },
119
+ gate(entry, ctx, wrapResponse, resume, fail) {
120
+ let escaped;
121
+ const resumed = async (next, program) => {
122
+ try {
123
+ return await resume(next, program);
124
+ }
125
+ catch (error) {
126
+ escaped = { error };
127
+ throw error;
128
+ }
129
+ };
130
+ return admit(entry, ctx, wrapResponse, resumed).catch((error) => {
131
+ // A failure the resumed program let escape has met its error boundary already.
132
+ if (escaped !== undefined && escaped.error === error)
133
+ throw error;
134
+ return fail(error);
143
135
  });
144
- const pendingTtlMs = config.pendingTtlMs;
145
- const begin = await config.store.begin({
136
+ },
137
+ };
138
+ }
139
+ /** The gate proper; {@link IdempotencyRuntime.gate} hands its own failures to the route's boundary. */
140
+ async function admit(entry, ctx, wrapResponse, resume) {
141
+ const config = entry.idempotent;
142
+ const req = ctx[CONTEXT_REQUEST];
143
+ const prepared = PREPARED.get(req);
144
+ if (config === undefined || prepared === undefined)
145
+ throw new Error("idempotency: the route ran on an unprepared request");
146
+ if (prepared.failure !== undefined)
147
+ throw prepared.failure.error;
148
+ const maxBodyBytes = entry.bodyLimit ?? UNLIMITED_BODY_BYTES;
149
+ const key = req.headers.get(config.headerName);
150
+ if (key === null || !validIdempotencyKey(key)) {
151
+ return wrapResponse(jsonError(400, "idempotency_key_required"));
152
+ }
153
+ const namespace = typeof config.namespace === "function"
154
+ ? await config.namespace({ method: req.method, url: req.url, headers: req.headers }, prepared.platform)
155
+ : config.namespace;
156
+ if (!validIdempotencyNamespace(namespace)) {
157
+ return wrapResponse(jsonError(500, "idempotency_namespace_invalid"));
158
+ }
159
+ // A codec-decoded body reached the route as a stand-in: fingerprint what the caller sent.
160
+ const decoded = preDecodedBody(req);
161
+ let bytes;
162
+ let contentType;
163
+ if (decoded !== undefined) {
164
+ releaseGateHalf(prepared.body);
165
+ if (decoded.byteLength > maxBodyBytes)
166
+ return wrapResponse(jsonError(413, "payload_too_large"));
167
+ bytes = decoded.encoded;
168
+ contentType = decoded.contentType;
169
+ }
170
+ else {
171
+ const read = await readBoundedBytes(gateCopy(req, prepared.body), maxBodyBytes);
172
+ if (!read.ok) {
173
+ return wrapResponse(jsonError(read.status, read.status === 413 ? "payload_too_large" : "bad_request"));
174
+ }
175
+ bytes = read.bytes;
176
+ contentType = req.headers.get("content-type") ?? "";
177
+ }
178
+ // Past the deadline the kernel has already answered; claim nothing for a request it abandoned.
179
+ if (ctx.signal.aborted)
180
+ return wrapResponse(jsonError(503, "request_timeout"));
181
+ const url = urlPartsOf(req.url);
182
+ const fingerprint = await computeIdempotencyFingerprint(req.method, `${url.pathname}${url.search}`, canonicalizeIdempotencyBody(bytes, contentType), contentType);
183
+ const pendingTtlMs = config.pendingTtlMs;
184
+ const begin = await config.store.begin({
185
+ namespace,
186
+ key,
187
+ fingerprint,
188
+ ttlMs: config.ttlMs,
189
+ pendingTtlMs,
190
+ });
191
+ if (begin.state === "mismatch")
192
+ return wrapResponse(jsonError(409, "idempotency_key_reused"));
193
+ if (begin.state === "in-flight") {
194
+ return wrapResponse(jsonError(409, "idempotency_in_progress", { "Retry-After": "1" }));
195
+ }
196
+ if (begin.state === "capacity") {
197
+ return wrapResponse(jsonError(503, "idempotency_store_capacity", { "Retry-After": "1" }));
198
+ }
199
+ if (ctx.signal.aborted) {
200
+ if (begin.state === "new") {
201
+ await config.store.abandon({ namespace, key, reservation: begin.reservation });
202
+ }
203
+ return wrapResponse(jsonError(503, "request_timeout"));
204
+ }
205
+ beginRequestEffectTracking(req);
206
+ if (begin.state === "replay") {
207
+ const replay = replayEntry(entry, responseFromStored(begin.response, { maxBytes: config.maxResponseBytes }));
208
+ return await resume(replay, replay.program);
209
+ }
210
+ const reservation = begin.reservation;
211
+ let heartbeat;
212
+ if (pendingTtlMs !== undefined) {
213
+ // Renew the lease while the handler runs: only a process that died stops renewing, so its
214
+ // key frees after the lease rather than the replay TTL.
215
+ heartbeat = setInterval(() => {
216
+ // A failed renewal only lets the lease lapse, which completion then reports.
217
+ Promise.resolve()
218
+ .then(() => config.store.renew?.({ namespace, key, reservation, ttlMs: pendingTtlMs }))
219
+ .catch(() => undefined);
220
+ }, pendingTtlMs / 3);
221
+ heartbeat.unref?.();
222
+ }
223
+ try {
224
+ // The handler threw, or its response body failed while being captured: no response to store.
225
+ const settleThrown = async (err) => {
226
+ if (!requestEffectEvidence(req).began) {
227
+ // The request-local boundary proves no owned effect started, so this is the one safe case
228
+ // where releasing the key cannot duplicate an effect.
229
+ await config.store.abandon({ namespace, key, reservation });
230
+ throw err;
231
+ }
232
+ // A committed or ambiguous effect must never be repeated. Persist a payload-free terminal
233
+ // response even though the normal handler lifecycle escaped without producing one.
234
+ const terminal = new Response(null, { status: 500 });
235
+ const completed = await config.store.complete({
146
236
  namespace,
147
237
  key,
148
- fingerprint,
149
- ttlMs: config.ttlMs,
150
- pendingTtlMs,
238
+ reservation,
239
+ response: await serializeResponse(terminal, { maxBytes: config.maxResponseBytes }),
151
240
  });
152
- if (begin.state === "mismatch")
153
- return wrapResponse(jsonError(409, "idempotency_key_reused"));
154
- if (begin.state === "in-flight") {
155
- return wrapResponse(jsonError(409, "idempotency_in_progress", { "Retry-After": "1" }));
156
- }
157
- if (begin.state === "capacity") {
158
- return wrapResponse(jsonError(503, "idempotency_store_capacity", { "Retry-After": "1" }));
241
+ if (!completed) {
242
+ return wrapResponse(jsonError(503, "idempotency_reservation_lost", { "Retry-After": "1" }));
159
243
  }
160
- beginRequestEffectTracking(buffered);
161
- if (begin.state === "replay") {
162
- return wrapResponse(await host.runLanes(buffered, platform, replayEntry(entry, responseFromStored(begin.response, { maxBytes: config.maxResponseBytes })), params, search));
244
+ return wrapResponse(terminal);
245
+ };
246
+ let response;
247
+ try {
248
+ response = await resume(pastGate(entry), entry.program);
249
+ }
250
+ catch (err) {
251
+ return await settleThrown(err);
252
+ }
253
+ if (!HANDLER_ENTERED.has(req) && !requestEffectEvidence(req).began) {
254
+ // Rejected before the handler ran: no execution began, so there is nothing a retry could
255
+ // duplicate and no result is saved - storing every rejection would let callers who never
256
+ // pass auth fill the store and lock everyone else out.
257
+ const abandoned = await config.store.abandon({ namespace, key, reservation });
258
+ if (!abandoned) {
259
+ return wrapResponse(jsonError(503, "idempotency_reservation_lost", { "Retry-After": "1" }));
163
260
  }
164
- const reservation = begin.reservation;
165
- let heartbeat;
166
- if (pendingTtlMs !== undefined) {
167
- // Renew the lease while the handler runs: only a process that died stops renewing, so its
168
- // key frees after the lease rather than the replay TTL.
169
- heartbeat = setInterval(() => {
170
- // A failed renewal only lets the lease lapse, which completion then reports.
171
- Promise.resolve()
172
- .then(() => config.store.renew?.({ namespace, key, reservation, ttlMs: pendingTtlMs }))
173
- .catch(() => undefined);
174
- }, pendingTtlMs / 3);
175
- heartbeat.unref?.();
261
+ return wrapResponse(response);
262
+ }
263
+ if ((REFUSALS.has(response.status) || (response.status >= 500 && requestIsSafeToRetry(req))) &&
264
+ !requestEffectEvidence(req).began) {
265
+ const abandoned = await config.store.abandon({ namespace, key, reservation });
266
+ if (!abandoned) {
267
+ return wrapResponse(jsonError(503, "idempotency_reservation_lost", { "Retry-After": "1" }));
176
268
  }
269
+ return wrapResponse(response);
270
+ }
271
+ // Once the handler ran, every other concrete response is terminal for this key. A non-2xx may
272
+ // follow an already-committed external effect; abandoning it would let a retry duplicate it.
273
+ let storedResponse;
274
+ try {
275
+ storedResponse = await serializeResponse(response, { maxBytes: config.maxResponseBytes });
276
+ }
277
+ catch (error) {
278
+ if (!(error instanceof IdempotencyResponseTooLargeError))
279
+ return await settleThrown(error);
280
+ // The effect may already have happened, so never abandon and permit a duplicate execution.
281
+ // Commit a small terminal response under the winning key and return that same response now.
282
+ response = jsonError(507, "idempotency_response_too_large");
177
283
  try {
178
- // The handler threw, or its response body failed while being captured: no response to store.
179
- const settleThrown = async (err) => {
180
- if (!requestEffectEvidence(buffered).began) {
181
- // The request-local boundary proves no owned effect started, so this is the one safe case
182
- // where releasing the key cannot duplicate an effect.
183
- await config.store.abandon({ namespace, key, reservation });
184
- throw err;
185
- }
186
- // A committed or ambiguous effect must never be repeated. Persist a payload-free terminal
187
- // response even though the normal handler lifecycle escaped without producing one.
188
- const terminal = new Response(null, { status: 500 });
189
- const completed = await config.store.complete({
190
- namespace,
191
- key,
192
- reservation,
193
- response: await serializeResponse(terminal, { maxBytes: config.maxResponseBytes }),
194
- });
195
- if (!completed) {
196
- return wrapResponse(jsonError(503, "idempotency_reservation_lost", { "Retry-After": "1" }));
197
- }
198
- return wrapResponse(terminal);
199
- };
200
- let response;
201
- try {
202
- response = await host.runLanes(buffered, platform, entry, params, search);
203
- }
204
- catch (err) {
205
- return await settleThrown(err);
206
- }
207
- if (!HANDLER_ENTERED.has(buffered) && !requestEffectEvidence(buffered).began) {
208
- // Rejected before the handler ran: no execution began, so there is nothing a retry could
209
- // duplicate and no result is saved - storing every rejection would let callers who never
210
- // pass auth fill the store and lock everyone else out.
211
- const abandoned = await config.store.abandon({ namespace, key, reservation });
212
- if (!abandoned) {
213
- return wrapResponse(jsonError(503, "idempotency_reservation_lost", { "Retry-After": "1" }));
214
- }
215
- return wrapResponse(response);
216
- }
217
- if ((REFUSALS.has(response.status) ||
218
- (response.status >= 500 && requestIsSafeToRetry(buffered))) &&
219
- !requestEffectEvidence(buffered).began) {
220
- const abandoned = await config.store.abandon({ namespace, key, reservation });
221
- if (!abandoned) {
222
- return wrapResponse(jsonError(503, "idempotency_reservation_lost", { "Retry-After": "1" }));
223
- }
224
- return wrapResponse(response);
225
- }
226
- // Once the handler ran, every other concrete response is terminal for this key. A non-2xx may
227
- // follow an already-committed external effect; abandoning it would let a retry duplicate it.
228
- let storedResponse;
284
+ storedResponse = await serializeResponse(response, {
285
+ maxBytes: config.maxResponseBytes,
286
+ });
287
+ }
288
+ catch (terminalError) {
289
+ if (!(terminalError instanceof IdempotencyResponseTooLargeError))
290
+ throw terminalError;
291
+ // Even an intentionally tiny bound must remain truthful. An empty 507 preserves terminal
292
+ // status + replay safety without silently storing more bytes than the route permits.
293
+ response = new Response(null, { status: 507 });
294
+ storedResponse = await serializeResponse(response, {
295
+ maxBytes: config.maxResponseBytes,
296
+ });
297
+ }
298
+ }
299
+ const completed = await config.store.complete({
300
+ namespace,
301
+ key,
302
+ reservation,
303
+ response: storedResponse,
304
+ });
305
+ if (!completed) {
306
+ return wrapResponse(jsonError(503, "idempotency_reservation_lost", { "Retry-After": "1" }));
307
+ }
308
+ return wrapResponse(response);
309
+ }
310
+ finally {
311
+ clearInterval(heartbeat);
312
+ }
313
+ }
314
+ function prepareRequest(source, platform) {
315
+ const request = requestOf(source);
316
+ let prepared = request;
317
+ let state;
318
+ let input;
319
+ try {
320
+ input = ownedInput(request.body);
321
+ const [route, gate] = input.body === null ? [null, null] : input.body.tee();
322
+ state = { body: gate, route, cancel: input.cancel, platform };
323
+ const init = {
324
+ method: request.method,
325
+ headers: request.headers,
326
+ signal: request.signal,
327
+ body: route,
328
+ duplex: "half",
329
+ };
330
+ prepared = new Request(request.url, init);
331
+ const decoded = preDecodedBody(request);
332
+ if (decoded !== undefined)
333
+ Object.defineProperty(prepared, PRE_DECODED_BODY, { value: decoded });
334
+ }
335
+ catch (error) {
336
+ // A request that cannot be copied (a body an earlier hook already read) still enters the
337
+ // program, so the failure surfaces from the gate like any other route error.
338
+ input?.cancel();
339
+ state = { body: null, route: null, platform, failure: { error } };
340
+ }
341
+ // The lanes, and any hook an auth-first route runs before the gate, read this copy's body.
342
+ const cap = transportCapOf(source);
343
+ if (cap !== undefined)
344
+ markTransportCap(prepared, cap);
345
+ PREPARED.set(prepared, state);
346
+ return prepared;
347
+ }
348
+ function finishRequest(request) {
349
+ const state = PREPARED.get(request);
350
+ if (state === undefined)
351
+ return;
352
+ state.cancel?.();
353
+ releaseGateHalf(state.body);
354
+ releaseGateHalf(state.route);
355
+ }
356
+ /** Own the source reader so cancellation cannot be held hostage by an unread or locked tee branch. */
357
+ function ownedInput(body) {
358
+ if (body === null)
359
+ return { body: null, cancel() { } };
360
+ const reader = body.getReader();
361
+ let ended = false;
362
+ let controller;
363
+ const cancel = () => {
364
+ if (ended)
365
+ return;
366
+ ended = true;
367
+ controller.error(new DOMException("Request finished", "AbortError"));
368
+ // Cleanup must not wait for an upstream producer's cancellation promise.
369
+ void reader.cancel().catch(() => { });
370
+ reader.releaseLock();
371
+ };
372
+ return {
373
+ cancel,
374
+ body: new ReadableStream({
375
+ start(value) {
376
+ controller = value;
377
+ },
378
+ async pull(output) {
229
379
  try {
230
- storedResponse = await serializeResponse(response, { maxBytes: config.maxResponseBytes });
380
+ const chunk = await reader.read();
381
+ if (ended)
382
+ return;
383
+ if (chunk.done)
384
+ output.close();
385
+ else
386
+ output.enqueue(chunk.value);
231
387
  }
232
388
  catch (error) {
233
- if (!(error instanceof IdempotencyResponseTooLargeError))
234
- return await settleThrown(error);
235
- // The effect may already have happened, so never abandon and permit a duplicate execution.
236
- // Commit a small terminal response under the winning key and return that same response now.
237
- response = jsonError(507, "idempotency_response_too_large");
238
- try {
239
- storedResponse = await serializeResponse(response, {
240
- maxBytes: config.maxResponseBytes,
241
- });
242
- }
243
- catch (terminalError) {
244
- if (!(terminalError instanceof IdempotencyResponseTooLargeError))
245
- throw terminalError;
246
- // Even an intentionally tiny bound must remain truthful. An empty 507 preserves terminal
247
- // status + replay safety without silently storing more bytes than the route permits.
248
- response = new Response(null, { status: 507 });
249
- storedResponse = await serializeResponse(response, {
250
- maxBytes: config.maxResponseBytes,
251
- });
252
- }
389
+ output.error(error);
253
390
  }
254
- const completed = await config.store.complete({
255
- namespace,
256
- key,
257
- reservation,
258
- response: storedResponse,
259
- });
260
- if (!completed) {
261
- return wrapResponse(jsonError(503, "idempotency_reservation_lost", { "Retry-After": "1" }));
262
- }
263
- return wrapResponse(response);
264
- }
265
- finally {
266
- clearInterval(heartbeat);
267
- }
268
- },
391
+ },
392
+ cancel,
393
+ }),
269
394
  };
270
395
  }
396
+ /** The gate's half of the body under the request's own framing headers, for the bounded reader. */
397
+ function gateCopy(request, body) {
398
+ const init = {
399
+ method: body === null ? "GET" : "POST",
400
+ headers: request.headers,
401
+ body,
402
+ duplex: "half",
403
+ };
404
+ return new Request(request.url, init);
405
+ }
406
+ /** Drop the gate's unread half of the body; a failed cancel has no caller left to report to. */
407
+ function releaseGateHalf(body) {
408
+ body?.cancel().catch(() => { });
409
+ }
410
+ // The entry a program resumes on past its gate: the same route without idempotency, so a program
411
+ // re-entered from the top does not meet the gate again. One per route, built on first use.
412
+ const PAST_GATE = new WeakMap();
413
+ function pastGate(entry) {
414
+ let past = PAST_GATE.get(entry);
415
+ if (past === undefined) {
416
+ past = { ...entry, idempotent: undefined };
417
+ PAST_GATE.set(entry, past);
418
+ }
419
+ return past;
420
+ }
271
421
  function replayEntry(entry, response) {
272
422
  // biome-ignore lint/plugin/requireSafetyCommentForTypeAssertion: the kernel supplies its matched RouteEntry through this internal opaque install seam.
273
423
  const route = entry;
@@ -275,9 +425,9 @@ function replayEntry(entry, response) {
275
425
  return {
276
426
  ...route,
277
427
  handler,
428
+ idempotent: undefined,
278
429
  responseContract: undefined,
279
430
  program: { ...route.program, handler, afterHandle: [] },
280
- execution: REPLAY_EXECUTION,
281
431
  };
282
432
  }
283
433
  //# sourceMappingURL=idempotency-lane.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"idempotency-lane.js","sourceRoot":"","sources":["../../src/server/idempotency-lane.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"idempotency-lane.js","sourceRoot":"","sources":["../../src/server/idempotency-lane.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ export type { MethodRoutesPlugin } from "./plugin.js";
15
15
  * ```
16
16
  *
17
17
  * It is the same as calling `get`, `post`, `put`, `patch`, `delete`, `head` and `options` with the
18
- * one handler, as a single registration: a method already registered on the path makes the call
18
+ * one handler, and `method("QUERY", ...)`, as a single registration: a method already registered on the path makes the call
19
19
  * throw and adds nothing. A schema applies to every method, so with a `body` schema a request that
20
20
  * carries no body is refused under any of them, `GET` included.
21
21
  */
@@ -39,7 +39,8 @@ export declare function all<Path extends string, H extends Handler<Path, RouteSc
39
39
  * or none is.
40
40
  *
41
41
  * Only the standard methods among the names join the app's typed registry, so the typed client has
42
- * a call for those and none for a custom token.
42
+ * a call for those and none for a custom token. `QUERY` is one: its route is typed, takes a `body`
43
+ * schema, and the client calls it as `$query(body)`.
43
44
  */
44
45
  export declare function method<const M extends string, Path extends string, S extends RouteSchema, H extends Handler<Path, S, Ctx>, Ctx = NonNullable<unknown>>(name: M | readonly M[], path: Path, schema: S, handler: H): MethodRoutesPlugin<M, Path, S, OutputOf<H>, Ctx>;
45
46
  export declare function method<const M extends string, Path extends string, H extends Handler<Path, RouteSchema, Ctx>, Ctx = NonNullable<unknown>>(name: M | readonly M[], path: Path, handler: H): MethodRoutesPlugin<M, Path, Record<never, never>, OutputOf<H>, Ctx>;
@@ -1 +1 @@
1
- {"version":3,"file":"methods.d.ts","sourceRoot":"","sources":["../../src/server/methods.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgC,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAkCrD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,GAAG,CACjB,IAAI,SAAS,MAAM,EACnB,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAC/B,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,EAC1B,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AAC3F,wBAAgB,GAAG,CACjB,IAAI,SAAS,MAAM,EACnB,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,EACzC,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,EAC1B,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AASnG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,MAAM,CACpB,KAAK,CAAC,CAAC,SAAS,MAAM,EACtB,IAAI,SAAS,MAAM,EACnB,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAC/B,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,EAE1B,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EACtB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,CAAC,GACT,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AACnD,wBAAgB,MAAM,CACpB,KAAK,CAAC,CAAC,SAAS,MAAM,EACtB,IAAI,SAAS,MAAM,EACnB,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,EACzC,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,EAE1B,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EACtB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,GACT,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA"}
1
+ {"version":3,"file":"methods.d.ts","sourceRoot":"","sources":["../../src/server/methods.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgC,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAkCrD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,GAAG,CACjB,IAAI,SAAS,MAAM,EACnB,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAC/B,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,EAC1B,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AAC3F,wBAAgB,GAAG,CACjB,IAAI,SAAS,MAAM,EACnB,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,EACzC,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,EAC1B,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AASnG;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,MAAM,CACpB,KAAK,CAAC,CAAC,SAAS,MAAM,EACtB,IAAI,SAAS,MAAM,EACnB,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAC/B,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,EAE1B,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EACtB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,CAAC,GACT,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AACnD,wBAAgB,MAAM,CACpB,KAAK,CAAC,CAAC,SAAS,MAAM,EACtB,IAAI,SAAS,MAAM,EACnB,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,EACzC,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,EAE1B,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EACtB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,GACT,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/server/methods.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAe,MAAM,qBAAqB,CAAA;AAM/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAiBzD,MAAM,UAAU,GAAG,iBAAiB,CAAA;AAEpC,SAAS,MAAM,CACb,OAA0B,EAC1B,IAAY,EACZ,eAA4C,EAC5C,OAAkC;IAElC,MAAM,MAAM,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,eAA+B,CAAA;IACnF,MAAM,GAAG,GAAG,OAAO,IAAI,eAAe,CAAA;IACtC,IAAI,OAAO,GAAG,KAAK,UAAU;QAAE,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAA;IACtF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IAChF,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACzB,OAAO,GAAG,CAAA;IACZ,CAAC,CAAA;AACH,CAAC;AA2BD,MAAM,UAAU,GAAG,CACjB,IAAY,EACZ,eAA4C,EAC5C,OAAuB;IAEvB,OAAO,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;AACxD,CAAC;AA4CD,MAAM,UAAU,MAAM,CACpB,IAAgC,EAChC,IAAY,EACZ,eAA4C,EAC5C,OAAuB;IAEvB,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,gDAAgD,CAAC,CAAA;IAChG,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAc,EAAE,EAAE;QAC3C,iFAAiF;QACjF,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5F,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,gBAAgB,CACxB,gBAAgB,EAChB,2BAA2B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CACnD,CAAA;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;AACxD,CAAC"}
1
+ {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/server/methods.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAe,MAAM,qBAAqB,CAAA;AAM/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAiBzD,MAAM,UAAU,GAAG,iBAAiB,CAAA;AAEpC,SAAS,MAAM,CACb,OAA0B,EAC1B,IAAY,EACZ,eAA4C,EAC5C,OAAkC;IAElC,MAAM,MAAM,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,eAA+B,CAAA;IACnF,MAAM,GAAG,GAAG,OAAO,IAAI,eAAe,CAAA;IACtC,IAAI,OAAO,GAAG,KAAK,UAAU;QAAE,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAA;IACtF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IAChF,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACzB,OAAO,GAAG,CAAA;IACZ,CAAC,CAAA;AACH,CAAC;AA2BD,MAAM,UAAU,GAAG,CACjB,IAAY,EACZ,eAA4C,EAC5C,OAAuB;IAEvB,OAAO,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;AACxD,CAAC;AA6CD,MAAM,UAAU,MAAM,CACpB,IAAgC,EAChC,IAAY,EACZ,eAA4C,EAC5C,OAAuB;IAEvB,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,gDAAgD,CAAC,CAAA;IAChG,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAc,EAAE,EAAE;QAC3C,iFAAiF;QACjF,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5F,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,gBAAgB,CACxB,gBAAgB,EAChB,2BAA2B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CACnD,CAAA;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;AACxD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"multipart.d.ts","sourceRoot":"","sources":["../../src/server/multipart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAM7D,uFAAuF;AACvF,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,gGAAgG;AAChG,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;AAiVjE;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,SAAS,gBAAgB,EAC3D,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,eAAoB,GAC3B,MAAM,CAiBR"}
1
+ {"version":3,"file":"multipart.d.ts","sourceRoot":"","sources":["../../src/server/multipart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAM7D,uFAAuF;AACvF,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,gGAAgG;AAChG,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;AAiYjE;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,SAAS,gBAAgB,EAC3D,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,eAAoB,GAC3B,MAAM,CAiBR"}