@nifrajs/middleware 4.0.2 → 5.1.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 +3 -0
- package/dist/_utils.d.ts +15 -9
- package/dist/_utils.d.ts.map +1 -1
- package/dist/_utils.js +39 -40
- package/dist/_utils.js.map +1 -1
- package/dist/admission.d.ts +4 -2
- package/dist/admission.d.ts.map +1 -1
- package/dist/admission.js +17 -5
- package/dist/admission.js.map +1 -1
- package/dist/basic-auth.d.ts.map +1 -1
- package/dist/basic-auth.js +8 -13
- package/dist/basic-auth.js.map +1 -1
- package/dist/cache-control.d.ts.map +1 -1
- package/dist/cache-control.js +4 -2
- package/dist/cache-control.js.map +1 -1
- package/dist/cache.d.ts +7 -4
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +58 -25
- package/dist/cache.js.map +1 -1
- package/dist/compression.d.ts.map +1 -1
- package/dist/compression.js +58 -1
- package/dist/compression.js.map +1 -1
- package/dist/conditional.d.ts.map +1 -1
- package/dist/conditional.js +1 -1
- package/dist/conditional.js.map +1 -1
- package/dist/content-negotiation.d.ts.map +1 -1
- package/dist/content-negotiation.js +3 -1
- package/dist/content-negotiation.js.map +1 -1
- package/dist/csrf.d.ts.map +1 -1
- package/dist/csrf.js +10 -5
- package/dist/csrf.js.map +1 -1
- package/dist/healthcheck.d.ts.map +1 -1
- package/dist/healthcheck.js +3 -1
- package/dist/healthcheck.js.map +1 -1
- package/dist/idempotency.d.ts +20 -4
- package/dist/idempotency.d.ts.map +1 -1
- package/dist/idempotency.js +44 -17
- package/dist/idempotency.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/jwt.d.ts +17 -2
- package/dist/jwt.d.ts.map +1 -1
- package/dist/jwt.js +70 -31
- package/dist/jwt.js.map +1 -1
- package/dist/language.d.ts.map +1 -1
- package/dist/language.js +12 -0
- package/dist/language.js.map +1 -1
- package/dist/openapi.d.ts +19 -4
- package/dist/openapi.d.ts.map +1 -1
- package/dist/openapi.js +24 -8
- package/dist/openapi.js.map +1 -1
- package/dist/rate-limit.d.ts +31 -0
- package/dist/rate-limit.d.ts.map +1 -1
- package/dist/rate-limit.js +160 -26
- package/dist/rate-limit.js.map +1 -1
- package/dist/request-id.d.ts.map +1 -1
- package/dist/request-id.js +1 -1
- package/dist/request-id.js.map +1 -1
- package/dist/timing.d.ts.map +1 -1
- package/dist/timing.js +1 -1
- package/dist/timing.js.map +1 -1
- package/dist/token-auth.d.ts.map +1 -1
- package/dist/token-auth.js +8 -13
- package/dist/token-auth.js.map +1 -1
- package/package.json +3 -3
- package/src/_utils.ts +61 -35
- package/src/admission.ts +15 -5
- package/src/basic-auth.ts +15 -13
- package/src/cache-control.ts +5 -2
- package/src/cache.ts +68 -28
- package/src/compression.ts +84 -4
- package/src/conditional.ts +8 -4
- package/src/content-negotiation.ts +3 -1
- package/src/csrf.ts +10 -6
- package/src/healthcheck.ts +4 -1
- package/src/idempotency.ts +77 -20
- package/src/index.ts +3 -0
- package/src/jwt.ts +106 -34
- package/src/language.ts +11 -0
- package/src/openapi.ts +52 -10
- package/src/rate-limit.ts +233 -41
- package/src/request-id.ts +7 -3
- package/src/timing.ts +8 -4
- package/src/token-auth.ts +18 -16
package/dist/cache.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isAuthenticatedRequest } from "@nifrajs/core/server";
|
|
1
2
|
import { withHeaders } from "./_utils.js";
|
|
2
3
|
export class MemoryResponseCache {
|
|
3
4
|
entries = new Map();
|
|
@@ -49,9 +50,30 @@ function cacheControlHas(headers, names) {
|
|
|
49
50
|
const parts = value
|
|
50
51
|
.toLowerCase()
|
|
51
52
|
.split(",")
|
|
52
|
-
.map((part) => part.trim().split("=", 1)[0]);
|
|
53
|
+
.map((part) => part.trim().split("=", 1)[0]?.trim());
|
|
53
54
|
return names.some((name) => parts.includes(name));
|
|
54
55
|
}
|
|
56
|
+
function responseLifetimeMs(headers, ttlMs) {
|
|
57
|
+
if (cacheControlHas(headers, ["private", "no-store", "no-cache"]))
|
|
58
|
+
return 0;
|
|
59
|
+
const directives = headers.get("cache-control")?.split(",") ?? [];
|
|
60
|
+
// This is a shared cache: s-maxage takes precedence over max-age. Ambiguous freshness is stale.
|
|
61
|
+
for (const name of ["s-maxage", "max-age"]) {
|
|
62
|
+
const matches = directives.filter((part) => part.trim().split("=", 1)[0]?.trim().toLowerCase() === name);
|
|
63
|
+
if (matches.length === 0)
|
|
64
|
+
continue;
|
|
65
|
+
if (matches.length !== 1)
|
|
66
|
+
return 0;
|
|
67
|
+
const raw = matches[0]?.slice(matches[0].indexOf("=") + 1).trim() ?? "";
|
|
68
|
+
const value = raw.startsWith('"') && raw.endsWith('"') ? raw.slice(1, -1) : raw;
|
|
69
|
+
const seconds = parseLength(value);
|
|
70
|
+
if (seconds === undefined || !Number.isFinite(seconds))
|
|
71
|
+
return 0;
|
|
72
|
+
const age = parseLength(headers.get("age")) ?? 0;
|
|
73
|
+
return Math.min(ttlMs, Math.max(0, seconds - age) * 1000);
|
|
74
|
+
}
|
|
75
|
+
return ttlMs;
|
|
76
|
+
}
|
|
55
77
|
function appendVary(headers, vary) {
|
|
56
78
|
if (vary.length === 0)
|
|
57
79
|
return;
|
|
@@ -184,10 +206,10 @@ function responseVaryMatchesKey(headers, configured) {
|
|
|
184
206
|
const configuredSet = new Set(configured.map((header) => header.toLowerCase()));
|
|
185
207
|
return declared.every((header) => configuredSet.has(header));
|
|
186
208
|
}
|
|
187
|
-
function withStatusHeader(res, header, status) {
|
|
209
|
+
function withStatusHeader(res, header, status, request) {
|
|
188
210
|
if (header === false)
|
|
189
211
|
return res;
|
|
190
|
-
return withHeaders(res, (headers) => headers.set(header, status));
|
|
212
|
+
return withHeaders(res, (headers) => headers.set(header, status), request);
|
|
191
213
|
}
|
|
192
214
|
/**
|
|
193
215
|
* Full response cache for small, cacheable responses. Use a shared `store` in production. The
|
|
@@ -232,23 +254,26 @@ export function cache(options) {
|
|
|
232
254
|
const entry = await store.get(key);
|
|
233
255
|
if (entry === undefined)
|
|
234
256
|
return undefined;
|
|
257
|
+
const cachedHeaders = new Headers([...entry.headers]);
|
|
235
258
|
// Never replay a personalized entry before route-scoped authentication runs. Public entries
|
|
236
259
|
// remain eligible (and are explicitly marked by their response Cache-Control metadata).
|
|
237
260
|
if (!cacheAuthenticated &&
|
|
238
261
|
hasAuthentication(req) &&
|
|
239
|
-
!cacheControlHas(
|
|
240
|
-
"public",
|
|
241
|
-
"s-maxage",
|
|
242
|
-
])) {
|
|
262
|
+
!cacheControlHas(cachedHeaders, ["public", "s-maxage"])) {
|
|
243
263
|
return undefined;
|
|
244
264
|
}
|
|
245
|
-
|
|
265
|
+
const lifetimeMs = respectResponseCacheControl
|
|
266
|
+
? responseLifetimeMs(cachedHeaders, ttlMs)
|
|
267
|
+
: ttlMs;
|
|
268
|
+
if (lifetimeMs === 0 ||
|
|
269
|
+
Date.now() >= Math.min(entry.expiresAt, entry.storedAt + lifetimeMs)) {
|
|
246
270
|
await store.delete?.(key);
|
|
247
271
|
return undefined;
|
|
248
272
|
}
|
|
249
273
|
hits.add(req);
|
|
250
|
-
const headers =
|
|
251
|
-
headers.
|
|
274
|
+
const headers = cachedHeaders;
|
|
275
|
+
const age = parseLength(headers.get("age")) ?? 0;
|
|
276
|
+
headers.set("age", String(age + Math.max(0, Math.floor((Date.now() - entry.storedAt) / 1000))));
|
|
252
277
|
if (cacheStatusHeader !== false)
|
|
253
278
|
headers.set(cacheStatusHeader, "HIT");
|
|
254
279
|
return new Response(req.method === "HEAD" ? null : entry.body.slice(), {
|
|
@@ -268,44 +293,52 @@ export function cache(options) {
|
|
|
268
293
|
if (!statusOk(res.status))
|
|
269
294
|
return res;
|
|
270
295
|
if (respectRequestCacheControl && cacheControlHas(req.headers, ["no-store"])) {
|
|
271
|
-
return withStatusHeader(res, cacheStatusHeader, "BYPASS");
|
|
296
|
+
return withStatusHeader(res, cacheStatusHeader, "BYPASS", req);
|
|
272
297
|
}
|
|
273
|
-
|
|
274
|
-
|
|
298
|
+
const lifetimeMs = respectResponseCacheControl
|
|
299
|
+
? responseLifetimeMs(res.headers, ttlMs)
|
|
300
|
+
: ttlMs;
|
|
301
|
+
if (lifetimeMs === 0) {
|
|
302
|
+
return withStatusHeader(res, cacheStatusHeader, "BYPASS", req);
|
|
275
303
|
}
|
|
276
304
|
if (!cacheSetCookie && res.headers.has("set-cookie")) {
|
|
277
|
-
return withStatusHeader(res, cacheStatusHeader, "BYPASS");
|
|
305
|
+
return withStatusHeader(res, cacheStatusHeader, "BYPASS", req);
|
|
278
306
|
}
|
|
279
307
|
// A response-declared Vary must be represented in the lookup key. If the caller did not opt
|
|
280
308
|
// those request headers into `vary`, bypass storage instead of replaying one representation to
|
|
281
309
|
// another request. `Vary: *` is never cacheable by a shared cache.
|
|
282
310
|
if (!responseVaryMatchesKey(res.headers, vary)) {
|
|
283
|
-
return withStatusHeader(res, cacheStatusHeader, "BYPASS");
|
|
311
|
+
return withStatusHeader(res, cacheStatusHeader, "BYPASS", req);
|
|
284
312
|
}
|
|
285
313
|
// Shared-cache safety (RFC 9111 §3.5): never store a response to an authenticated request
|
|
286
|
-
//
|
|
287
|
-
//
|
|
314
|
+
// unless it's explicitly public - otherwise a personalized 200 leaks across users. A credential
|
|
315
|
+
// header outside `authenticatedHeaders` is caught by the authentication stage that accepted it,
|
|
316
|
+
// because a hit is served before that stage runs. Opt in with `cacheAuthenticated: true` for a
|
|
317
|
+
// route that's the same for everyone.
|
|
288
318
|
if (!cacheAuthenticated &&
|
|
289
|
-
hasAuthentication(req) &&
|
|
319
|
+
(hasAuthentication(req) || isAuthenticatedRequest(req)) &&
|
|
290
320
|
!cacheControlHas(res.headers, ["public", "s-maxage"])) {
|
|
291
|
-
return withStatusHeader(res, cacheStatusHeader, "BYPASS");
|
|
321
|
+
return withStatusHeader(res, cacheStatusHeader, "BYPASS", req);
|
|
292
322
|
}
|
|
293
323
|
const declared = parseLength(res.headers.get("content-length"));
|
|
294
324
|
if (declared !== undefined && declared > maxBytes) {
|
|
295
|
-
return withStatusHeader(res, cacheStatusHeader, "BYPASS");
|
|
325
|
+
return withStatusHeader(res, cacheStatusHeader, "BYPASS", req);
|
|
296
326
|
}
|
|
327
|
+
const storedAt = Date.now();
|
|
297
328
|
const captured = await readBytesCapped(res, maxBytes);
|
|
298
329
|
if (!("bytes" in captured)) {
|
|
299
|
-
return withStatusHeader(captured.response, cacheStatusHeader, "BYPASS");
|
|
330
|
+
return withStatusHeader(captured.response, cacheStatusHeader, "BYPASS", req);
|
|
300
331
|
}
|
|
301
332
|
const body = captured.bytes;
|
|
302
333
|
const capturedResponse = captured.response;
|
|
334
|
+
const expiresAt = storedAt + lifetimeMs;
|
|
335
|
+
if (Date.now() >= expiresAt) {
|
|
336
|
+
return withStatusHeader(capturedResponse, cacheStatusHeader, "BYPASS", req);
|
|
337
|
+
}
|
|
303
338
|
const headers = new Headers(capturedResponse.headers);
|
|
304
|
-
headers.delete("age");
|
|
305
339
|
if (cacheStatusHeader !== false)
|
|
306
340
|
headers.delete(cacheStatusHeader);
|
|
307
341
|
appendVary(headers, vary);
|
|
308
|
-
const now = Date.now();
|
|
309
342
|
const key = requestKeys.get(req) ?? keyOf(req);
|
|
310
343
|
requestKeys.delete(req);
|
|
311
344
|
await store.set(key, {
|
|
@@ -313,8 +346,8 @@ export function cache(options) {
|
|
|
313
346
|
statusText: res.statusText,
|
|
314
347
|
headers: [...headers.entries()],
|
|
315
348
|
body,
|
|
316
|
-
expiresAt
|
|
317
|
-
storedAt
|
|
349
|
+
expiresAt,
|
|
350
|
+
storedAt,
|
|
318
351
|
});
|
|
319
352
|
const outgoing = new Headers(capturedResponse.headers);
|
|
320
353
|
appendVary(outgoing, vary);
|
package/dist/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,WAAW,EAAE,MAAM,aAAa,CAAA;AAwB5D,MAAM,OAAO,mBAAmB;IACb,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAA;IAC3C,UAAU,CAAQ;IAEnC,YAAY,UAAsC,EAAE;QAClD,MAAM,GAAG,GAAI,UAA4D,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAA;QAChG,IAAI,OAAO,CAAC,iBAAiB,KAAK,IAAI,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CACb,0FAA0F;gBACxF,mEAAmE,CACtE,CAAA;QACH,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAA;QAC5C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;QAC/E,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QACzC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACxB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,QAAwB;QACvC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAA;YAC/C,IAAI,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACvD,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IACjC,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;CACF;AAiCD,SAAS,WAAW,CAAC,KAAoB;IACvC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IACpC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACrD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB,EAAE,KAAwB;IACjE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAC1C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAChC,MAAM,KAAK,GAAG,KAAK;SAChB,WAAW,EAAE;SACb,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;AACnD,CAAC;AAED,SAAS,UAAU,CAAC,OAAgB,EAAE,IAAuB;IAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAC7B,MAAM,QAAQ,GAAG,OAAO;SACrB,GAAG,CAAC,MAAM,CAAC;QACZ,EAAE,KAAK,CAAC,GAAG,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;IACrC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IACpC,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;QACvC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACpB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnC,OAAO,CAAC,GAAG,CACT,MAAM,EACN,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChF,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,GAAY,EAAE,IAAuB;IACvD,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;IAClD,KAAK,MAAM,MAAM,IAAI,IAAI;QAAE,GAAG,IAAI,KAAK,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAA;IAC9F,OAAO,GAAG,CAAA;AACZ,CAAC;AAYD,MAAM,WAAW,GAAG,CAAC,MAA6B,EAAE,KAAa,EAAc,EAAE;IAC/E,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAA;IACjC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACtB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAA;IAC5B,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,SAAS,UAAU,CAAC,GAAa,EAAE,MAA6B,EAAE,MAAmB;IACnF,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,CAAA;YACf,MAAM,CAAC,WAAW,EAAE,CAAA;QACtB,CAAC;IACH,CAAC,CAAA;IACD,MAAM,MAAM,GAAG,IAAI,cAAc,CAAa;QAC5C,KAAK,CAAC,UAAU;YACd,KAAK,MAAM,KAAK,IAAI,MAAM;gBAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACvD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,UAAU;YACnB,IAAI,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;gBAC3C,IAAI,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAChC,OAAO,EAAE,CAAA;oBACT,UAAU,CAAC,KAAK,EAAE,CAAA;gBACpB,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBAC3B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,CAAA;gBACT,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;QACD,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;KAC3D,CAAC,CAAA;IACF,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;QAC1B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAa,EAAE,QAAgB;IAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;IACrB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO;YACL,KAAK,EAAE,IAAI,UAAU,EAAE;YACvB,QAAQ,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE;gBAC3B,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC;SACH,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAA4B,CAAA;IACzD,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAC3C,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,CAAC,WAAW,EAAE,CAAA;gBACpB,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;gBACxC,OAAO;oBACL,KAAK;oBACL,QAAQ,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE;wBACpE,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,UAAU,EAAE,GAAG,CAAC,UAAU;wBAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;qBACrB,CAAC;iBACH,CAAA;YACH,CAAC;YACD,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;YAC7E,KAAK,IAAI,KAAK,CAAC,UAAU,CAAA;YACzB,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACrB,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAA;YACtE,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;IACtD,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,OAAgB;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACjC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAA;IAC7B,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SACxC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAgB,EAAE,UAA6B;IAC7E,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACtC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IACxC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAC/E,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;AAC9D,CAAC;AAED,SAAS,gBAAgB,CACvB,GAAa,EACb,MAAsB,EACtB,MAAiC;IAEjC,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,GAAG,CAAA;IAChC,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,OAAqB;IACzC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IACzB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IACzF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,KAAK,GAAG,CAAC,CAAA;IACvE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAA;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,GAAY,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAA;IAC9C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IACnE,CAAC;IACD,MAAM,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,KAAK,KAAK,CAAA;IAC/E,MAAM,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,KAAK,KAAK,CAAA;IACjF,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,KAAK,IAAI,CAAA;IACtD,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,KAAK,IAAI,CAAA;IAC9D,MAAM,oBAAoB,GAAG,CAC3B,OAAO,CAAC,oBAAoB,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,WAAW,CAAC,CACzE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;IACvC,MAAM,iBAAiB,GACrB,OAAO,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAA;IACvF,IAAI,iBAAiB,KAAK,KAAK,IAAI,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACtD,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,OAAO,EAAW,CAAA;IACnC,MAAM,WAAW,GAAG,IAAI,OAAO,EAAmB,CAAA;IAClD,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAW,EAAE,CAClD,oBAAoB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IAEhE,OAAO;QACL,IAAI,EAAE,OAAO;QACb,KAAK,CAAC,SAAS,CAAC,GAAG;YACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAAE,OAAO,SAAS,CAAA;YAC5D,IAAI,0BAA0B,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;gBACzF,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;YACtB,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YACzB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAClC,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAA;YACzC,4FAA4F;YAC5F,wFAAwF;YACxF,IACE,CAAC,kBAAkB;gBACnB,iBAAiB,CAAC,GAAG,CAAC;gBACtB,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,OAAkC,CAAC,EAAE;oBACtE,QAAQ;oBACR,UAAU;iBACX,CAAC,EACF,CAAC;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBAClC,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAA;gBACzB,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACb,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;YAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;YACzF,IAAI,iBAAiB,KAAK,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;YACtE,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;gBACrE,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,OAAO;aACR,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG;YACvB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAChB,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACvB,OAAO,GAAG,CAAA;YACZ,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAAE,OAAO,GAAG,CAAA;YACtD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO,GAAG,CAAA;YACrC,IAAI,0BAA0B,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBAC7E,OAAO,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAA;YAC3D,CAAC;YACD,IAAI,2BAA2B,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;gBACzF,OAAO,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAA;YAC3D,CAAC;YACD,IAAI,CAAC,cAAc,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBACrD,OAAO,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAA;YAC3D,CAAC;YACD,4FAA4F;YAC5F,+FAA+F;YAC/F,mEAAmE;YACnE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC/C,OAAO,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAA;YAC3D,CAAC;YACD,0FAA0F;YAC1F,+FAA+F;YAC/F,iGAAiG;YACjG,IACE,CAAC,kBAAkB;gBACnB,iBAAiB,CAAC,GAAG,CAAC;gBACtB,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,EACrD,CAAC;gBACD,OAAO,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAA;YAC3D,CAAC;YACD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;YAC/D,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,GAAG,QAAQ,EAAE,CAAC;gBAClD,OAAO,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAA;YAC3D,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YACrD,IAAI,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE,CAAC;gBAC3B,OAAO,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAA;YACzE,CAAC;YACD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAA;YAC3B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAA;YAE1C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;YACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACrB,IAAI,iBAAiB,KAAK,KAAK;gBAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;YAClE,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACtB,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;YAC9C,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACvB,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;gBACnB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC/B,IAAI;gBACJ,SAAS,EAAE,GAAG,GAAG,KAAK;gBACtB,QAAQ,EAAE,GAAG;aACd,CAAC,CAAA;YACF,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;YACtD,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAC1B,IAAI,iBAAiB,KAAK,KAAK;gBAAE,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;YACxE,OAAO,IAAI,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE;gBACzC,MAAM,EAAE,gBAAgB,CAAC,MAAM;gBAC/B,UAAU,EAAE,gBAAgB,CAAC,UAAU;gBACvC,OAAO,EAAE,QAAQ;aAClB,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAA"}
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../src/compression.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC;gGAC4F;IAC5F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B;2FACuF;IACvF,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAA;CACzD;
|
|
1
|
+
{"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../src/compression.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC;gGAC4F;IAC5F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B;2FACuF;IACvF,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAA;CACzD;AA6RD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,iDA8B3D"}
|
package/dist/compression.js
CHANGED
|
@@ -152,12 +152,69 @@ async function compressRawBody(response, body, threshold) {
|
|
|
152
152
|
},
|
|
153
153
|
cancel: (reason) => reader.cancel(reason),
|
|
154
154
|
});
|
|
155
|
-
|
|
155
|
+
const zlib = zlibModule();
|
|
156
|
+
return new Response(zlib === undefined
|
|
157
|
+
? source.pipeThrough(new CompressionStream("gzip"))
|
|
158
|
+
: syncFlushedGzip(zlib, source), {
|
|
156
159
|
status: response.status,
|
|
157
160
|
statusText: response.statusText,
|
|
158
161
|
headers: gzipHeaders(response.headers),
|
|
159
162
|
});
|
|
160
163
|
}
|
|
164
|
+
const isZlib = (value) => typeof value === "object" &&
|
|
165
|
+
value !== null &&
|
|
166
|
+
"createGzip" in value &&
|
|
167
|
+
typeof value.createGzip === "function" &&
|
|
168
|
+
"constants" in value &&
|
|
169
|
+
typeof value.constants === "object" &&
|
|
170
|
+
value.constants !== null &&
|
|
171
|
+
"Z_SYNC_FLUSH" in value.constants;
|
|
172
|
+
let zlibLookup;
|
|
173
|
+
function zlibModule() {
|
|
174
|
+
if (zlibLookup !== undefined)
|
|
175
|
+
return zlibLookup.zlib;
|
|
176
|
+
let zlib;
|
|
177
|
+
try {
|
|
178
|
+
const proc = Reflect.get(globalThis, "process");
|
|
179
|
+
const load = typeof proc === "object" && proc !== null ? Reflect.get(proc, "getBuiltinModule") : undefined;
|
|
180
|
+
const module = typeof load === "function" ? load.call(proc, "node:zlib") : undefined;
|
|
181
|
+
if (isZlib(module))
|
|
182
|
+
zlib = module;
|
|
183
|
+
}
|
|
184
|
+
catch { }
|
|
185
|
+
zlibLookup = { zlib };
|
|
186
|
+
return zlib;
|
|
187
|
+
}
|
|
188
|
+
/** `CompressionStream` holds deflate output until its window fills or the input closes, so a
|
|
189
|
+
* streamed shell would not reach the client until the whole page did. A sync flush after each
|
|
190
|
+
* upstream chunk emits what that chunk compressed to, at the cost of a few bytes per flush. */
|
|
191
|
+
function syncFlushedGzip(zlib, source) {
|
|
192
|
+
const reader = source.getReader();
|
|
193
|
+
const gzip = zlib.createGzip();
|
|
194
|
+
return new ReadableStream({
|
|
195
|
+
start(controller) {
|
|
196
|
+
gzip.on("data", (chunk) => controller.enqueue(chunk));
|
|
197
|
+
gzip.once("error", (error) => controller.error(error));
|
|
198
|
+
},
|
|
199
|
+
async pull(controller) {
|
|
200
|
+
const { done, value } = await reader.read();
|
|
201
|
+
if (done) {
|
|
202
|
+
await new Promise((resolve) => {
|
|
203
|
+
gzip.once("end", resolve);
|
|
204
|
+
gzip.end();
|
|
205
|
+
});
|
|
206
|
+
controller.close();
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
gzip.write(value);
|
|
210
|
+
await new Promise((resolve) => gzip.flush(zlib.constants.Z_SYNC_FLUSH, resolve));
|
|
211
|
+
},
|
|
212
|
+
cancel(reason) {
|
|
213
|
+
gzip.destroy();
|
|
214
|
+
return reader.cancel(reason);
|
|
215
|
+
},
|
|
216
|
+
});
|
|
217
|
+
}
|
|
161
218
|
function replayRawResponse(response, chunks, reader) {
|
|
162
219
|
const stream = new ReadableStream({
|
|
163
220
|
start(controller) {
|
package/dist/compression.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compression.js","sourceRoot":"","sources":["../src/compression.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compression.js","sourceRoot":"","sources":["../src/compression.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional.d.ts","sourceRoot":"","sources":["../src/conditional.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,0BAA0B;IACzC,gFAAgF;IAChF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,uFAAuF;IACvF,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAA;CAC7B;AAwCD,6FAA6F;AAC7F,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,0BAA+B,GACvC,QAAQ,
|
|
1
|
+
{"version":3,"file":"conditional.d.ts","sourceRoot":"","sources":["../src/conditional.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,0BAA0B;IACzC,gFAAgF;IAChF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,uFAAuF;IACvF,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAA;CAC7B;AAwCD,6FAA6F;AAC7F,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,0BAA+B,GACvC,QAAQ,CAqBV"}
|
package/dist/conditional.js
CHANGED
|
@@ -47,7 +47,7 @@ export function conditionalResponse(request, response, options = {}) {
|
|
|
47
47
|
headers.set("etag", options.etag);
|
|
48
48
|
if (modified !== undefined)
|
|
49
49
|
headers.set("last-modified", modified);
|
|
50
|
-
});
|
|
50
|
+
}, request);
|
|
51
51
|
}
|
|
52
52
|
const headers = new Headers(response.headers);
|
|
53
53
|
if (options.etag !== undefined)
|
package/dist/conditional.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional.js","sourceRoot":"","sources":["../src/conditional.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AASzC,SAAS,kBAAkB,CAAC,IAAsB;IAChD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,UAAU,CAAC,wDAAwD,CAAC,CAAA;IAChF,CAAC;IACD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;AAC3B,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AACxD,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,IAAY;IACrD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;QACzC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;QAC7B,OAAO,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,UAAU,CAAA;IACrD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,OAAgB,EAAE,OAAmC;IACpE,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,KAAK,CAAA;IACvE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IACxD,IAAI,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACvD,OAAO,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,CAAC;IACD,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,CAAA;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;IACtD,OAAO,CACL,QAAQ,KAAK,SAAS;QACtB,KAAK,KAAK,IAAI;QACd,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACzB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CACpE,CAAA;AACH,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,QAAkB,EAClB,UAAsC,EAAE;IAExC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IACzD,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,QAAQ,CAAA;IACpE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAA;QACzE,OAAO,WAAW,
|
|
1
|
+
{"version":3,"file":"conditional.js","sourceRoot":"","sources":["../src/conditional.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AASzC,SAAS,kBAAkB,CAAC,IAAsB;IAChD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,UAAU,CAAC,wDAAwD,CAAC,CAAA;IAChF,CAAC;IACD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;AAC3B,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AACxD,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,IAAY;IACrD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;QACzC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;QAC7B,OAAO,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,UAAU,CAAA;IACrD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,OAAgB,EAAE,OAAmC;IACpE,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,KAAK,CAAA;IACvE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IACxD,IAAI,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACvD,OAAO,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,CAAC;IACD,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,CAAA;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;IACtD,OAAO,CACL,QAAQ,KAAK,SAAS;QACtB,KAAK,KAAK,IAAI;QACd,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACzB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CACpE,CAAA;AACH,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,QAAkB,EAClB,UAAsC,EAAE;IAExC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IACzD,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,QAAQ,CAAA;IACpE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAA;QACzE,OAAO,WAAW,CAChB,QAAQ,EACR,CAAC,OAAO,EAAE,EAAE;YACV,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;YACjE,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;QACpE,CAAC,EACD,OAAO,CACR,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC7C,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAA;IAClE,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAChC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IAC9B,KAAK,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC5C,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;AACrD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-negotiation.d.ts","sourceRoot":"","sources":["../src/content-negotiation.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;CAChC;
|
|
1
|
+
{"version":3,"file":"content-negotiation.d.ts","sourceRoot":"","sources":["../src/content-negotiation.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;CAChC;AA6DD,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,iBAAiB,EAAE,CAQpF;AAyBD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,EACzC,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,MAAM,GAAG,SAAS,CAgCpB"}
|
|
@@ -28,7 +28,9 @@ function parseMediaType(value, qDefault = 1) {
|
|
|
28
28
|
return undefined;
|
|
29
29
|
const type = media.slice(0, slash);
|
|
30
30
|
const subtype = media.slice(slash + 1);
|
|
31
|
-
|
|
31
|
+
// `*/*` is the one legal type wildcard; `*/json` names no media range.
|
|
32
|
+
const typeOk = type === "*" ? subtype === "*" : /^[\w!#$&^_.+-]+$/.test(type);
|
|
33
|
+
if (!typeOk || !/^[\w!#$&^_.+*-]+$/.test(subtype))
|
|
32
34
|
return undefined;
|
|
33
35
|
let q = qDefault;
|
|
34
36
|
const parameters = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-negotiation.js","sourceRoot":"","sources":["../src/content-negotiation.ts"],"names":[],"mappings":"AAWA,MAAM,wBAAwB,GAAG,EAAE,GAAG,IAAI,CAAA;AAC1C,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAE5B,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,KAAK,CAAC,MAAM,GAAG,wBAAwB;QAAE,OAAO,SAAS,CAAA;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QAC9B,IAAI,SAAS,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI;YAAE,MAAM,GAAG,CAAC,MAAM,CAAA;QACpE,IAAI,SAAS,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;YACrC,IAAI,KAAK,CAAC,MAAM,IAAI,gBAAgB;gBAAE,OAAO,SAAS,CAAA;YACtD,KAAK,GAAG,KAAK,GAAG,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9B,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,QAAQ,GAAG,CAAC;IACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAA;IAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IACtC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"content-negotiation.js","sourceRoot":"","sources":["../src/content-negotiation.ts"],"names":[],"mappings":"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"}
|
package/dist/csrf.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csrf.d.ts","sourceRoot":"","sources":["../src/csrf.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"csrf.d.ts","sourceRoot":"","sources":["../src/csrf.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAa3E;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC,CAAA;AAWjF,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,uEAAuE;IACvE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,sFAAsF;IACtF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC;yFACqF;IACrF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,gEAAgE;IAChE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAC/B;AAqGD,wBAAsB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQzF;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAgBzF;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,CA4CrD"}
|
package/dist/csrf.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { NIFRA_ASSURANCE, withRouteAssurance } from "@nifrajs/core/assurance";
|
|
2
|
-
import {
|
|
2
|
+
import { isRegistrableMethod } from "@nifrajs/core/methods";
|
|
3
|
+
import { isSameOriginRequest } from "@nifrajs/core/server";
|
|
3
4
|
import { base64UrlEncode, guardName, hmacSha256, jsonError, parseCookies, SAFE_METHODS, secretBytes, timingSafeEqualString, verifyHmacSha256, } from "./_utils.js";
|
|
4
5
|
/** Normalize to derived keys, validating every entry's 32-byte floor up front (fail loud at
|
|
5
6
|
* construction, not on the first request that happens to reach an old secret). */
|
|
@@ -22,6 +23,10 @@ function protectedMethod(method, configured) {
|
|
|
22
23
|
function originAllowed(req, origins) {
|
|
23
24
|
const allows = (candidate) => origins !== undefined ? origins.has(candidate) : isSameOriginRequest(candidate, req);
|
|
24
25
|
const origin = req.headers.get("origin");
|
|
26
|
+
// Under `Referrer-Policy: no-referrer` a browser sends a same-origin form POST with `Origin: null`;
|
|
27
|
+
// its own `Sec-Fetch-Site` still says same-origin, and page script can set neither header.
|
|
28
|
+
if (origin === "null" && origins === undefined)
|
|
29
|
+
return req.headers.get("sec-fetch-site") === "same-origin";
|
|
25
30
|
if (origin !== null)
|
|
26
31
|
return allows(origin);
|
|
27
32
|
const referer = req.headers.get("referer");
|
|
@@ -117,7 +122,7 @@ export async function createCsrfToken(secret, nonce) {
|
|
|
117
122
|
export async function verifyCsrfToken(token, secret) {
|
|
118
123
|
const keys = csrfKeys(secret);
|
|
119
124
|
const parts = token.split(".");
|
|
120
|
-
//
|
|
125
|
+
// nifra-expect NF-S002: TOKEN_PREFIX is a public, non-secret format tag; this equality is a shape
|
|
121
126
|
// check that short-circuits malformed input. The secret comparison is the constant-time
|
|
122
127
|
// verifyHmacSha256 over the signature below.
|
|
123
128
|
if (parts.length !== 3 || parts[0] !== TOKEN_PREFIX || parts[1] === "" || parts[2] === "") {
|
|
@@ -178,9 +183,9 @@ export function csrf(options) {
|
|
|
178
183
|
scope: "global",
|
|
179
184
|
// Middleware may intentionally mention methods the Nifra router does not expose (for example
|
|
180
185
|
// TRACE). Keep runtime behavior unchanged, but publish evidence only for registerable routes.
|
|
181
|
-
methods
|
|
182
|
-
?
|
|
183
|
-
:
|
|
186
|
+
...(methods === undefined
|
|
187
|
+
? { exceptMethods: [...SAFE_METHODS].filter(isRegistrableMethod) }
|
|
188
|
+
: { methods: [...methods].filter(isRegistrableMethod) }),
|
|
184
189
|
});
|
|
185
190
|
}
|
|
186
191
|
//# sourceMappingURL=csrf.js.map
|
package/dist/csrf.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csrf.js","sourceRoot":"","sources":["../src/csrf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC7E,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAmB,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"csrf.js","sourceRoot":"","sources":["../src/csrf.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"healthcheck.d.ts","sourceRoot":"","sources":["../src/healthcheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE9E,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAErC,MAAM,WAAW,kBAAkB;IACjC,iFAAiF;IACjF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,8FAA8F;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;oFACgF;IAChF,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;CACxE;
|
|
1
|
+
{"version":3,"file":"healthcheck.d.ts","sourceRoot":"","sources":["../src/healthcheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE9E,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAErC,MAAM,WAAW,kBAAkB;IACjC,iFAAiF;IACjF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,8FAA8F;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;oFACgF;IAChF,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;CACxE;AAOD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,cAAc,CAiC5E"}
|
package/dist/healthcheck.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { defineRouterPlugin } from "@nifrajs/core/server";
|
|
2
2
|
const noStore = { "cache-control": "no-store" };
|
|
3
|
+
// Named per call, so a second, differently configured instance applies instead of being deduped.
|
|
4
|
+
let instances = 0;
|
|
3
5
|
/**
|
|
4
6
|
* Register **liveness** (`/health`) and **readiness** (`/ready`) endpoints. Liveness is a flat `200`
|
|
5
7
|
* (the process is serving). Readiness runs each `check` and returns `200 { status: "ok", checks }`
|
|
@@ -20,7 +22,7 @@ export function healthcheck(options = {}) {
|
|
|
20
22
|
// A router plugin: the probes are registered as a side effect and the app comes back with its type
|
|
21
23
|
// unchanged, so routes declared after `.use(healthcheck())` keep theirs. The probes are deliberately
|
|
22
24
|
// absent from the caller's typed registry - they are operational endpoints, not part of the contract.
|
|
23
|
-
return defineRouterPlugin(
|
|
25
|
+
return defineRouterPlugin(`healthcheck#${++instances}`, (app) => {
|
|
24
26
|
app.register("GET", path, undefined, () => Response.json({ status: "ok" }, { headers: noStore }));
|
|
25
27
|
app.register("GET", readyPath, undefined, async () => {
|
|
26
28
|
const results = {};
|
package/dist/healthcheck.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"healthcheck.js","sourceRoot":"","sources":["../src/healthcheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAuB,MAAM,sBAAsB,CAAA;AAc9E,MAAM,OAAO,GAAG,EAAE,eAAe,EAAE,UAAU,EAAW,CAAA;AAExD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,UAA8B,EAAE;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAA;IACtC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAA;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAA;IACnC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtC,mGAAmG;IACnG,qGAAqG;IACrG,sGAAsG;IACtG,OAAO,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"healthcheck.js","sourceRoot":"","sources":["../src/healthcheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAuB,MAAM,sBAAsB,CAAA;AAc9E,MAAM,OAAO,GAAG,EAAE,eAAe,EAAE,UAAU,EAAW,CAAA;AAExD,iGAAiG;AACjG,IAAI,SAAS,GAAG,CAAC,CAAA;AAEjB;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,UAA8B,EAAE;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAA;IACtC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAA;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAA;IACnC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtC,mGAAmG;IACnG,qGAAqG;IACrG,sGAAsG;IACtG,OAAO,kBAAkB,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;QAC9D,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CACtD,CAAA;QACD,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,OAAO,GAA4B,EAAE,CAAA;YAC3C,IAAI,KAAK,GAAG,IAAI,CAAA;YAChB,kGAAkG;YAClG,MAAM,OAAO,CAAC,GAAG,CACf,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC5B,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAA;gBACnD,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;gBACvB,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;oBAAE,KAAK,GAAG,KAAK,CAAA;YACnC,CAAC,CAAC,CACH,CAAA;YACD,OAAO,QAAQ,CAAC,IAAI,CAClB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EACnD,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAChD,CAAA;QACH,CAAC,CAAC,CAAA;QACF,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
package/dist/idempotency.d.ts
CHANGED
|
@@ -2,8 +2,10 @@ import { type Middleware } from "@nifrajs/core/server";
|
|
|
2
2
|
/**
|
|
3
3
|
* Idempotency keys for unsafe requests - a client retrying a `POST` (dropped connection, impatient
|
|
4
4
|
* tap) with the same `Idempotency-Key` gets the **first** response replayed instead of the side effect
|
|
5
|
-
* running twice (double-charge, double-publish).
|
|
6
|
-
*
|
|
5
|
+
* running twice (double-charge, double-publish). The key is claimed in `onRequest`, so an in-flight
|
|
6
|
+
* collision short-circuits before any mutation; a replay waits for `beforeHandle`, so a credential
|
|
7
|
+
* revoked since the first request gets the route's current auth answer, not the stored response.
|
|
8
|
+
* That needs the route declared after `.use(idempotency())` - `beforeHandle` is order-scoped.
|
|
7
9
|
*
|
|
8
10
|
* Pair it with a DB uniqueness constraint - this stops the *retry*, the constraint is the source of
|
|
9
11
|
* truth for genuinely-concurrent distinct requests. Production MUST use a shared {@link IdempotencyStore}
|
|
@@ -16,6 +18,12 @@ export interface IdempotencyRecord {
|
|
|
16
18
|
readonly headers: ReadonlyArray<readonly [string, string]>;
|
|
17
19
|
/** Response body, base64-encoded. */
|
|
18
20
|
readonly body: string;
|
|
21
|
+
/**
|
|
22
|
+
* The response came from a route this middleware's `beforeHandle` covers, so a retry is replayed
|
|
23
|
+
* from there - after the route's authentication, validation and earlier guards accept it again. A
|
|
24
|
+
* record without it (a route declared before `.use(idempotency())`) is replayed in `onRequest`.
|
|
25
|
+
*/
|
|
26
|
+
readonly recheck?: boolean;
|
|
19
27
|
}
|
|
20
28
|
export type IdempotencyClaim = {
|
|
21
29
|
readonly state: "new";
|
|
@@ -86,8 +94,11 @@ export interface IdempotencyOptions {
|
|
|
86
94
|
readonly maxBytes?: number;
|
|
87
95
|
/**
|
|
88
96
|
* Whether a response should be cached for replay. Default: any status below 500 except 401, 403,
|
|
89
|
-
* 408, 409, 425, and 429
|
|
90
|
-
*
|
|
97
|
+
* 408, 409, 425, and 429, and the request rejections 400, 404, 405, 413, 414, 415, 422 and 431.
|
|
98
|
+
* Like a transient 5xx, those say the operation did not run: replaying one would refuse every
|
|
99
|
+
* retry under that key until it expired, and storing a rejection lets a caller fill the store
|
|
100
|
+
* with keys sent to a route that does not exist. A handler that answers 400 or 422 after a side
|
|
101
|
+
* effect should supply its own predicate.
|
|
91
102
|
*/
|
|
92
103
|
readonly shouldCache?: (response: Response) => boolean;
|
|
93
104
|
/**
|
|
@@ -112,6 +123,11 @@ export interface IdempotencyOptions {
|
|
|
112
123
|
* same caller - a rotated bearer token, an analytics cookie appended mid-session - lands on a fresh
|
|
113
124
|
* key and the retry executes again. Narrow the list (or supply `key`) when the app has a stable
|
|
114
125
|
* principal id to scope by; that is strictly better than digesting a whole `Cookie` header.
|
|
126
|
+
*
|
|
127
|
+
* A request that carries none of these headers is keyed as anonymous. If an authentication stage
|
|
128
|
+
* then accepts it (a credential in another header), its response is not stored: under the
|
|
129
|
+
* anonymous key any caller presenting the same `Idempotency-Key` would be replayed it. Add that
|
|
130
|
+
* header here to dedupe such requests.
|
|
115
131
|
*/
|
|
116
132
|
readonly principalHeaders?: readonly string[];
|
|
117
133
|
}
|