@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.
- package/CHANGELOG.md +29 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/internal/route-lanes.d.ts.map +1 -1
- package/dist/internal/route-lanes.js +2 -1
- package/dist/internal/route-lanes.js.map +1 -1
- package/dist/internal/route-program.d.ts +5 -0
- package/dist/internal/route-program.d.ts.map +1 -1
- package/dist/internal/route-program.js +36 -15
- package/dist/internal/route-program.js.map +1 -1
- package/dist/router/router.d.ts +3 -2
- package/dist/router/router.d.ts.map +1 -1
- package/dist/router/router.js +22 -6
- package/dist/router/router.js.map +1 -1
- package/dist/security/baseline.d.ts.map +1 -1
- package/dist/security/baseline.js +4 -3
- package/dist/security/baseline.js.map +1 -1
- package/dist/server/body-lane.d.ts.map +1 -1
- package/dist/server/body-lane.js +4 -3
- package/dist/server/body-lane.js.map +1 -1
- package/dist/server/body.d.ts +2 -0
- package/dist/server/body.d.ts.map +1 -1
- package/dist/server/body.js +5 -0
- package/dist/server/body.js.map +1 -1
- package/dist/server/cookies.d.ts.map +1 -1
- package/dist/server/cookies.js +9 -2
- package/dist/server/cookies.js.map +1 -1
- package/dist/server/core-copies.js +1 -1
- package/dist/server/idempotency-lane.d.ts +11 -12
- package/dist/server/idempotency-lane.d.ts.map +1 -1
- package/dist/server/idempotency-lane.js +301 -151
- package/dist/server/idempotency-lane.js.map +1 -1
- package/dist/server/methods.d.ts +3 -2
- package/dist/server/methods.d.ts.map +1 -1
- package/dist/server/methods.js.map +1 -1
- package/dist/server/multipart.d.ts.map +1 -1
- package/dist/server/multipart.js +42 -13
- package/dist/server/multipart.js.map +1 -1
- package/dist/server/node-outcome.d.ts.map +1 -1
- package/dist/server/node-outcome.js +2 -2
- package/dist/server/node-outcome.js.map +1 -1
- package/dist/server/query.d.ts +1 -1
- package/dist/server/query.d.ts.map +1 -1
- package/dist/server/query.js +13 -5
- package/dist/server/query.js.map +1 -1
- package/dist/server/request-context.d.ts.map +1 -1
- package/dist/server/request-context.js +3 -3
- package/dist/server/request-context.js.map +1 -1
- package/dist/server/respond.d.ts +17 -0
- package/dist/server/respond.d.ts.map +1 -1
- package/dist/server/respond.js +81 -3
- package/dist/server/respond.js.map +1 -1
- package/dist/server/runtime-core.d.ts +15 -0
- package/dist/server/runtime-core.d.ts.map +1 -1
- package/dist/server/runtime-core.js +41 -1
- package/dist/server/runtime-core.js.map +1 -1
- package/dist/server/server.d.ts +14 -5
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +179 -59
- package/dist/server/server.js.map +1 -1
- package/dist/server/transport-lane.d.ts +2 -2
- package/dist/server/transport-lane.d.ts.map +1 -1
- package/dist/server/transport-lane.js +20 -20
- package/dist/server/transport-lane.js.map +1 -1
- package/dist/static-file.d.ts +29 -6
- package/dist/static-file.d.ts.map +1 -1
- package/dist/static-file.js +43 -12
- package/dist/static-file.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/internal/route-lanes.ts +18 -16
- package/src/internal/route-program.ts +76 -12
- package/src/router/router.ts +26 -5
- package/src/security/baseline.ts +4 -3
- package/src/server/body-lane.ts +4 -4
- package/src/server/body.ts +6 -0
- package/src/server/cookies.ts +7 -2
- package/src/server/core-copies.ts +1 -1
- package/src/server/idempotency-lane.ts +343 -209
- package/src/server/methods.ts +3 -2
- package/src/server/multipart.ts +62 -14
- package/src/server/node-outcome.ts +2 -1
- package/src/server/query.ts +12 -5
- package/src/server/request-context.ts +6 -3
- package/src/server/respond.ts +108 -6
- package/src/server/runtime-core.ts +54 -1
- package/src/server/server.ts +249 -99
- package/src/server/transport-lane.ts +28 -22
- 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
|
|
9
|
-
*
|
|
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 {
|
|
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(
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
return
|
|
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
|
-
|
|
131
|
-
|
|
132
|
-
return wrapResponse(jsonError(read.status, read.status === 413 ? "payload_too_large" : "bad_request"));
|
|
115
|
+
finally {
|
|
116
|
+
finishRequest(request);
|
|
133
117
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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
|
-
|
|
145
|
-
|
|
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
|
-
|
|
149
|
-
|
|
150
|
-
pendingTtlMs,
|
|
238
|
+
reservation,
|
|
239
|
+
response: await serializeResponse(terminal, { maxBytes: config.maxResponseBytes }),
|
|
151
240
|
});
|
|
152
|
-
if (
|
|
153
|
-
return wrapResponse(jsonError(
|
|
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
|
-
|
|
161
|
-
|
|
162
|
-
|
|
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
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
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
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
255
|
-
|
|
256
|
-
|
|
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":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,0BAA0B,EAC1B,kCAAkC,EAClC,0BAA0B,EAC1B,gCAAgC,EAEhC,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,0BAA0B,EAC1B,UAAU,EACV,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,yBAAyB,GAG1B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAE5C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGlD;oEACoE;AACpE,MAAM,eAAe,GAAG,IAAI,OAAO,EAAW,CAAA;AAE9C;sGACsG;AACtG,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AAExD,wFAAwF;AACxF,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;IACjD,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;CACrB,CAAC,CAAA;AAyEF,MAAM,UAAU,WAAW,CAAC,OAAkC;IAC5D,MAAM,OAAO,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAA;IACjD,MAAM,KAAK,GAAG,CAAsB,GAAM,EAAK,EAAE;QAC/C,CAAC;QAAC,GAAyC,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAA;QACzE,OAAO,GAAG,CAAA;IACZ,CAAC,CAAA;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAmB,CAAA;AACpF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAkC;IACzE,MAAM,eAAe,GAAG,OAAO,EAAE,KAAK,CAAA;IACtC,IAAI,SAAuC,CAAA;IAC3C,MAAM,YAAY,GAAG,GAAqB,EAAE;QAC1C,IAAI,eAAe,KAAK,SAAS;YAAE,OAAO,eAAe,CAAA;QACzD,SAAS,KAAK,IAAI,sBAAsB,EAAE,CAAA;QAC1C,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;IAED,OAAO;QACL,WAAW,CAAC,OAAO,EAAE,SAAS;YAC5B,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAChC,CAAC;QACD,WAAW,CAAC,OAAO;YACjB,OAAO,CAAC,OAAO,EAAE,EAAE;gBACjB,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAChC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA;YACzB,CAAC,CAAA;QACH,CAAC;QACD,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY;YACzC,MAAM,MAAM,GAAG,MAAM,EAAE,WAAW,CAAA;YAClC,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAA;YAC1C,IAAI,MAAM,EAAE,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,gBAAgB,CACxB,qBAAqB,EACrB,gEAAgE,CACjE,CAAA;YACH,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,YAAY,EAAE,CAAA;YAC5C,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACjE,MAAM,IAAI,gBAAgB,CACxB,qBAAqB,EACrB,mFAAmF,CACpF,CAAA;YACH,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,0BAA0B,CAAA;YACxD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,gBAAgB,CACxB,qBAAqB,EACrB,oDAAoD,CACrD,CAAA;YACH,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;YACxC,IACE,YAAY,KAAK,SAAS;gBAC1B,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC,EACvF,CAAC;gBACD,MAAM,IAAI,gBAAgB,CACxB,qBAAqB,EACrB,yFAAyF,CAC1F,CAAA;YACH,CAAC;YACD,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,0BAA0B,CAAC,CAAC,WAAW,EAAE,CAAA;YAClF,IAAI,CAAC;gBACH,IAAI,OAAO,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,gBAAgB,CACxB,qBAAqB,EACrB,mCAAmC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAChE,CAAA;YACH,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;YAClC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,IAAI,gBAAgB,CACxB,qBAAqB,EACrB,yFAAyF,CAC1F,CAAA;YACH,CAAC;YACD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3E,MAAM,IAAI,gBAAgB,CACxB,qBAAqB,EACrB,iCAAiC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAC7D,CAAA;YACH,CAAC;YACD,IAAI,aAAa,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;gBACrD,MAAM,IAAI,gBAAgB,CACxB,qBAAqB,EACrB,yEAAyE,CAC1E,CAAA;YACH,CAAC;YACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,YAAY,CAAA;YAChE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,gBAAgB,CACxB,qBAAqB,EACrB,yDAAyD,CAC1D,CAAA;YACH,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,KAAK;gBACL,KAAK;gBACL,YAAY,EACV,KAAK,CAAC,KAAK,KAAK,SAAS;oBACvB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,CAAC,YAAY,IAAI,kCAAkC,CAAC;gBAC1D,UAAU;gBACV,SAAS;gBACT,gBAAgB;aACjB,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI;YACxE,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAC9C,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9C,OAAO,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAC,CAAA;YACjE,CAAC;YACD,MAAM,SAAS,GACb,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU;gBACpC,CAAC,CAAC,MAAM,MAAM,CAAC,SAAS,CACpB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,EAC1D,QAAQ,CACT;gBACH,CAAC,CAAC,MAAM,CAAC,SAAS,CAAA;YACtB,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1C,OAAO,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,+BAA+B,CAAC,CAAC,CAAA;YACtE,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;YAC3D,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,OAAO,YAAY,CACjB,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,aAAa,CAAC,CAClF,CAAA;YACH,CAAC;YACD,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC/B,MAAM,aAAa,GAAG,2BAA2B,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAA;YAC9F,MAAM,WAAW,GAAG,MAAM,6BAA6B,CACrD,GAAG,CAAC,MAAM,EACV,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,EAC9B,aAAa,EACb,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CACtC,CAAA;YACD,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;gBACpC,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,kKAAkK;gBAClK,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAE,IAAI,CAAC,KAA0C,CAAC,CAAC,CAAC,IAAI;aACtF,CAAC,CAAA;YAEF,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;YACxC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;gBACrC,SAAS;gBACT,GAAG;gBACH,WAAW;gBACX,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,YAAY;aACb,CAAC,CAAA;YACF,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU;gBAAE,OAAO,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC,CAAA;YAC7F,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gBAChC,OAAO,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,yBAAyB,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YACxF,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC/B,OAAO,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,4BAA4B,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YAC3F,CAAC;YACD,0BAA0B,CAAC,QAAQ,CAAC,CAAA;YACpC,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO,YAAY,CACjB,MAAM,IAAI,CAAC,QAAQ,CACjB,QAAQ,EACR,QAAQ,EACR,WAAW,CACT,KAAK,EACL,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAC1E,EACD,MAAM,EACN,MAAM,CACP,CACF,CAAA;YACH,CAAC;YACD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;YACrC,IAAI,SAAqD,CAAA;YACzD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,0FAA0F;gBAC1F,wDAAwD;gBACxD,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;oBAC3B,6EAA6E;oBAC7E,OAAO,CAAC,OAAO,EAAE;yBACd,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;yBACtF,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;gBAC3B,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,CAEnB;gBAAC,SAAoC,CAAC,KAAK,EAAE,EAAE,CAAA;YAClD,CAAC;YACD,IAAI,CAAC;gBACH,6FAA6F;gBAC7F,MAAM,YAAY,GAAG,KAAK,EAAE,GAAY,EAA4C,EAAE;oBACpF,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;wBAC3C,0FAA0F;wBAC1F,sDAAsD;wBACtD,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAA;wBAC3D,MAAM,GAAG,CAAA;oBACX,CAAC;oBACD,0FAA0F;oBAC1F,mFAAmF;oBACnF,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;oBACpD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;wBAC5C,SAAS;wBACT,GAAG;wBACH,WAAW;wBACX,QAAQ,EAAE,MAAM,iBAAiB,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC;qBACnF,CAAC,CAAA;oBACF,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,YAAY,CACjB,SAAS,CAAC,GAAG,EAAE,8BAA8B,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CACvE,CAAA;oBACH,CAAC;oBACD,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAA;gBAC/B,CAAC,CAAA;gBACD,IAAI,QAAkB,CAAA;gBACtB,IAAI,CAAC;oBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;gBAC3E,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;gBAChC,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;oBAC7E,yFAAyF;oBACzF,yFAAyF;oBACzF,uDAAuD;oBACvD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAA;oBAC7E,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,YAAY,CACjB,SAAS,CAAC,GAAG,EAAE,8BAA8B,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CACvE,CAAA;oBACH,CAAC;oBACD,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAA;gBAC/B,CAAC;gBACD,IACE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAC5B,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC7D,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,KAAK,EACtC,CAAC;oBACD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAA;oBAC7E,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,YAAY,CACjB,SAAS,CAAC,GAAG,EAAE,8BAA8B,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CACvE,CAAA;oBACH,CAAC;oBACD,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAA;gBAC/B,CAAC;gBACD,8FAA8F;gBAC9F,6FAA6F;gBAC7F,IAAI,cAA6D,CAAA;gBACjE,IAAI,CAAC;oBACH,cAAc,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAA;gBAC3F,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,CAAC,KAAK,YAAY,gCAAgC,CAAC;wBAAE,OAAO,MAAM,YAAY,CAAC,KAAK,CAAC,CAAA;oBAC1F,2FAA2F;oBAC3F,4FAA4F;oBAC5F,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE,gCAAgC,CAAC,CAAA;oBAC3D,IAAI,CAAC;wBACH,cAAc,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE;4BACjD,QAAQ,EAAE,MAAM,CAAC,gBAAgB;yBAClC,CAAC,CAAA;oBACJ,CAAC;oBAAC,OAAO,aAAa,EAAE,CAAC;wBACvB,IAAI,CAAC,CAAC,aAAa,YAAY,gCAAgC,CAAC;4BAAE,MAAM,aAAa,CAAA;wBACrF,yFAAyF;wBACzF,qFAAqF;wBACrF,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;wBAC9C,cAAc,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE;4BACjD,QAAQ,EAAE,MAAM,CAAC,gBAAgB;yBAClC,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;gBACD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;oBAC5C,SAAS;oBACT,GAAG;oBACH,WAAW;oBACX,QAAQ,EAAE,cAAc;iBACzB,CAAC,CAAA;gBACF,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO,YAAY,CACjB,SAAS,CAAC,GAAG,EAAE,8BAA8B,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CACvE,CAAA;gBACH,CAAC;gBACD,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAA;YAC/B,CAAC;oBAAS,CAAC;gBACT,aAAa,CAAC,SAAS,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,QAAkB;IACrD,uJAAuJ;IACvJ,MAAM,KAAK,GAAG,KAAmB,CAAA;IACjC,MAAM,OAAO,GAAoB,GAAG,EAAE,CAAC,QAAQ,CAAA;IAC/C,OAAO;QACL,GAAG,KAAK;QACR,OAAO;QACP,gBAAgB,EAAE,SAAS;QAC3B,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;QACvD,SAAS,EAAE,gBAAgB;KAC5B,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"idempotency-lane.js","sourceRoot":"","sources":["../../src/server/idempotency-lane.ts"],"names":[],"mappings":"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"}
|
package/dist/server/methods.d.ts
CHANGED
|
@@ -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
|
|
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;
|
|
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;
|
|
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"}
|