expediate 1.0.4 → 1.0.6
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 +138 -0
- package/CONTRIBUTING.md +150 -0
- package/LICENSE +16 -16
- package/README.md +330 -444
- package/dist/apis.d.ts +504 -27
- package/dist/apis.d.ts.map +1 -1
- package/dist/apis.js +618 -107
- package/dist/apis.js.map +1 -1
- package/dist/cjs/index.js +4066 -0
- package/dist/cjs/package.json +1 -0
- package/dist/git.d.ts +72 -9
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +129 -74
- package/dist/git.js.map +1 -1
- package/dist/http-objects.d.ts +26 -0
- package/dist/http-objects.d.ts.map +1 -0
- package/dist/http-objects.js +588 -0
- package/dist/http-objects.js.map +1 -0
- package/dist/index.d.ts +18 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -24
- package/dist/index.js.map +1 -1
- package/dist/jwt-auth.d.ts +158 -57
- package/dist/jwt-auth.d.ts.map +1 -1
- package/dist/jwt-auth.js +447 -207
- package/dist/jwt-auth.js.map +1 -1
- package/dist/middleware.d.ts +476 -0
- package/dist/middleware.d.ts.map +1 -0
- package/dist/middleware.js +647 -0
- package/dist/middleware.js.map +1 -0
- package/dist/mimetypes.json +882 -1
- package/dist/misc.d.ts +268 -25
- package/dist/misc.d.ts.map +1 -1
- package/dist/misc.js +449 -168
- package/dist/misc.js.map +1 -1
- package/dist/openapi.d.ts +433 -0
- package/dist/openapi.d.ts.map +1 -0
- package/dist/openapi.js +624 -0
- package/dist/openapi.js.map +1 -0
- package/dist/router-types.d.ts +760 -0
- package/dist/router-types.d.ts.map +1 -0
- package/dist/router-types.js +23 -0
- package/dist/router-types.js.map +1 -0
- package/dist/router.d.ts +37 -201
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +502 -244
- package/dist/router.js.map +1 -1
- package/dist/static.d.ts +3 -3
- package/dist/static.d.ts.map +1 -1
- package/dist/static.js +164 -105
- package/dist/static.js.map +1 -1
- package/docs/THREAT_MODEL.md +52 -0
- package/docs/api-builder-v2-design.md +644 -0
- package/docs/api-builder-v3-design.md +397 -0
- package/docs/api-builder.md +454 -0
- package/docs/benchmark.md +27 -0
- package/docs/body-parsing.md +223 -0
- package/docs/errors.md +359 -0
- package/docs/expediate.png +0 -0
- package/docs/git.md +139 -0
- package/docs/jwt-auth.md +251 -0
- package/docs/logo.svg +12 -0
- package/docs/middleware.md +264 -0
- package/docs/openapi.md +180 -0
- package/docs/router.md +356 -0
- package/docs/static.md +128 -0
- package/docs/wiki.json +123 -0
- package/package.json +47 -8
- package/.npmignore +0 -16
package/dist/jwt-auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-auth.js","sourceRoot":"","sources":["../src/jwt-auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jwt-auth.js","sourceRoot":"","sources":["../src/jwt-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
import type { RouterRequest, RouterResponse, NextFunction } from './router.js';
|
|
2
|
+
/** Shorthand for a standard middleware function. */
|
|
3
|
+
type Middleware = (req: RouterRequest, res: RouterResponse, next: NextFunction) => void;
|
|
4
|
+
declare module './router.js' {
|
|
5
|
+
interface RouterRequest {
|
|
6
|
+
/**
|
|
7
|
+
* Unique identifier for this request.
|
|
8
|
+
* Set by the {@link requestId} middleware.
|
|
9
|
+
*/
|
|
10
|
+
id?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Returns the current CSRF token for this request.
|
|
13
|
+
* Available after the {@link csrf} middleware has run.
|
|
14
|
+
*
|
|
15
|
+
* Include the returned value in an `X-CSRF-Token` header (or `_csrf`
|
|
16
|
+
* body field) on every state-mutating request (POST / PUT / PATCH / DELETE).
|
|
17
|
+
*/
|
|
18
|
+
csrfToken?: () => string;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Options for the {@link compress} middleware.
|
|
23
|
+
*/
|
|
24
|
+
export interface CompressOptions {
|
|
25
|
+
/**
|
|
26
|
+
* Minimum response body size in bytes before compression is applied.
|
|
27
|
+
* Responses whose total body is smaller than this value are sent
|
|
28
|
+
* uncompressed to avoid the overhead of compressing tiny payloads.
|
|
29
|
+
*
|
|
30
|
+
* @default 1024
|
|
31
|
+
*/
|
|
32
|
+
threshold?: number;
|
|
33
|
+
/**
|
|
34
|
+
* Enable Brotli (`br`) encoding when the client declares support for it.
|
|
35
|
+
* Brotli achieves better compression ratios than gzip for text content and
|
|
36
|
+
* is supported by all modern browsers.
|
|
37
|
+
*
|
|
38
|
+
* @default true
|
|
39
|
+
*/
|
|
40
|
+
br?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Compression quality for Brotli (0 – 11). Higher values produce smaller
|
|
43
|
+
* output but are slower. A value of 4 is a good balance for on-the-fly
|
|
44
|
+
* web serving.
|
|
45
|
+
*
|
|
46
|
+
* @default 4
|
|
47
|
+
*/
|
|
48
|
+
brotliQuality?: number;
|
|
49
|
+
/**
|
|
50
|
+
* Compression level for gzip / deflate (1 – 9, or
|
|
51
|
+
* `zlib.constants.Z_DEFAULT_COMPRESSION`). Higher values compress more
|
|
52
|
+
* but use more CPU.
|
|
53
|
+
*
|
|
54
|
+
* @default zlib.constants.Z_DEFAULT_COMPRESSION
|
|
55
|
+
*/
|
|
56
|
+
gzipLevel?: number;
|
|
57
|
+
/**
|
|
58
|
+
* Custom filter called for every request. Return `false` to skip
|
|
59
|
+
* compression for that specific request (e.g. to exempt already-compressed
|
|
60
|
+
* formats).
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```ts
|
|
64
|
+
* compress({
|
|
65
|
+
* filter: (_req, res) => {
|
|
66
|
+
* const ct = res.getHeader('content-type') as string ?? '';
|
|
67
|
+
* return /^text\/|application\/(json|xml|javascript)/.test(ct);
|
|
68
|
+
* },
|
|
69
|
+
* })
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
filter?: (req: RouterRequest, res: RouterResponse) => boolean;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Response compression middleware.
|
|
76
|
+
*
|
|
77
|
+
* Reads the `Accept-Encoding` request header and transparently compresses the
|
|
78
|
+
* response body using Brotli, gzip, or deflate (tested in that preference
|
|
79
|
+
* order). Responses whose total body is smaller than `threshold` bytes are
|
|
80
|
+
* sent uncompressed to avoid wasting CPU on tiny payloads.
|
|
81
|
+
*
|
|
82
|
+
* The middleware monkey-patches `res.write` and `res.end` so that all
|
|
83
|
+
* downstream code (including `res.json`, `res.send`, and manual writes)
|
|
84
|
+
* passes through the compressor without any changes to handler code.
|
|
85
|
+
*
|
|
86
|
+
* The `Content-Encoding` and `Vary: Accept-Encoding` headers are set
|
|
87
|
+
* automatically. `Content-Length` is removed because the compressed length
|
|
88
|
+
* cannot be known in advance.
|
|
89
|
+
*
|
|
90
|
+
* @param opts - Optional compression settings.
|
|
91
|
+
* @returns An Express-compatible middleware function.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```ts
|
|
95
|
+
* const app = createRouter();
|
|
96
|
+
* app.use(compress()); // at the top — must come first
|
|
97
|
+
* app.get('/api/data', (_req, res) => res.json(bigPayload));
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
export declare function compress(opts?: CompressOptions): Middleware;
|
|
101
|
+
/**
|
|
102
|
+
* Options for the {@link requestId} middleware.
|
|
103
|
+
*/
|
|
104
|
+
export interface RequestIdOptions {
|
|
105
|
+
/**
|
|
106
|
+
* HTTP header name used to read (from the client) and write (to the
|
|
107
|
+
* response) the request ID.
|
|
108
|
+
*
|
|
109
|
+
* @default 'x-request-id'
|
|
110
|
+
*/
|
|
111
|
+
header?: string;
|
|
112
|
+
/**
|
|
113
|
+
* When `true`, reuse the ID supplied by the client in the header instead of
|
|
114
|
+
* generating a new one. Set to `false` in security-sensitive environments
|
|
115
|
+
* where client-supplied IDs must not be trusted.
|
|
116
|
+
*
|
|
117
|
+
* @default true
|
|
118
|
+
*/
|
|
119
|
+
allowFromHeader?: boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Custom ID generator. Must return a unique string for every call.
|
|
122
|
+
*
|
|
123
|
+
* @default () => crypto.randomUUID()
|
|
124
|
+
*/
|
|
125
|
+
generator?: () => string;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Request ID middleware.
|
|
129
|
+
*
|
|
130
|
+
* Attaches a unique identifier to every request as `req.id` and echoes it
|
|
131
|
+
* back in the response header (default: `X-Request-ID`). The ID is taken
|
|
132
|
+
* from the incoming header when `allowFromHeader` is `true` (the default);
|
|
133
|
+
* otherwise a new UUID is generated with `crypto.randomUUID()`.
|
|
134
|
+
*
|
|
135
|
+
* Use `req.id` in log statements and error responses to correlate distributed
|
|
136
|
+
* traces back to a single originating request.
|
|
137
|
+
*
|
|
138
|
+
* @param opts - Optional configuration.
|
|
139
|
+
* @returns An Express-compatible middleware function.
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```ts
|
|
143
|
+
* app.use(requestId());
|
|
144
|
+
* app.use(logger()); // logger can now include req.id in output
|
|
145
|
+
* app.get('/health', (req, res) => res.json({ id: req.id, status: 'ok' }));
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
export declare function requestId(opts?: RequestIdOptions): Middleware;
|
|
149
|
+
/**
|
|
150
|
+
* Options for the {@link rateLimit} middleware.
|
|
151
|
+
*/
|
|
152
|
+
export interface RateLimitOptions {
|
|
153
|
+
/**
|
|
154
|
+
* Duration of the sliding time window in milliseconds.
|
|
155
|
+
*
|
|
156
|
+
* @example 60_000 // 1 minute window
|
|
157
|
+
*/
|
|
158
|
+
windowMs: number;
|
|
159
|
+
/**
|
|
160
|
+
* Maximum number of requests allowed per client key within `windowMs`.
|
|
161
|
+
* The (windowMs + 1)-th request receives a **429 Too Many Requests** response.
|
|
162
|
+
*/
|
|
163
|
+
max: number;
|
|
164
|
+
/**
|
|
165
|
+
* Function that extracts a rate-limit key from the request. All requests
|
|
166
|
+
* sharing the same key count against the same bucket.
|
|
167
|
+
*
|
|
168
|
+
* @default (req) => req.ip // one bucket per client IP
|
|
169
|
+
*/
|
|
170
|
+
keyBy?: (req: RouterRequest) => string;
|
|
171
|
+
/**
|
|
172
|
+
* Plain-text body of the 429 response.
|
|
173
|
+
*
|
|
174
|
+
* @default 'Too Many Requests'
|
|
175
|
+
*/
|
|
176
|
+
message?: string;
|
|
177
|
+
/**
|
|
178
|
+
* HTTP status code returned when the limit is exceeded.
|
|
179
|
+
*
|
|
180
|
+
* @default 429
|
|
181
|
+
*/
|
|
182
|
+
statusCode?: number;
|
|
183
|
+
/**
|
|
184
|
+
* When `true`, set informational `X-RateLimit-*` headers on every response:
|
|
185
|
+
* - `X-RateLimit-Limit` — the configured `max`.
|
|
186
|
+
* - `X-RateLimit-Remaining` — how many requests remain in the window.
|
|
187
|
+
* - `X-RateLimit-Reset` — Unix epoch (seconds) when the window resets.
|
|
188
|
+
*
|
|
189
|
+
* @default true
|
|
190
|
+
*/
|
|
191
|
+
headers?: boolean;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* In-memory sliding-window rate limiting middleware.
|
|
195
|
+
*
|
|
196
|
+
* Uses a `Map<key, timestamp[]>` to track request timestamps per client.
|
|
197
|
+
* On each request the list is pruned to the current window, then checked
|
|
198
|
+
* against `max`. No external dependencies are required.
|
|
199
|
+
*
|
|
200
|
+
* **Caveats:**
|
|
201
|
+
* - State is held in memory and is lost on process restart.
|
|
202
|
+
* - Not suitable for multi-process deployments without a shared store.
|
|
203
|
+
*
|
|
204
|
+
* @param opts - Rate-limit configuration. `windowMs` and `max` are required.
|
|
205
|
+
* @returns An Express-compatible middleware function.
|
|
206
|
+
*
|
|
207
|
+
* @example
|
|
208
|
+
* ```ts
|
|
209
|
+
* // Max 100 requests per minute per IP:
|
|
210
|
+
* app.use(rateLimit({ windowMs: 60_000, max: 100 }));
|
|
211
|
+
*
|
|
212
|
+
* // Stricter limit on a specific route:
|
|
213
|
+
* app.post('/auth/login', rateLimit({ windowMs: 60_000, max: 5 }), loginHandler);
|
|
214
|
+
* ```
|
|
215
|
+
*/
|
|
216
|
+
export declare function rateLimit(opts: RateLimitOptions): Middleware;
|
|
217
|
+
/**
|
|
218
|
+
* Options for the {@link cacheControl} middleware.
|
|
219
|
+
*/
|
|
220
|
+
export interface CacheControlOptions {
|
|
221
|
+
/**
|
|
222
|
+
* Sets the `max-age` directive (seconds). Browsers will serve the cached
|
|
223
|
+
* response without hitting the server for this many seconds.
|
|
224
|
+
*/
|
|
225
|
+
maxAge?: number;
|
|
226
|
+
/**
|
|
227
|
+
* Sets the `s-maxage` directive (seconds). Overrides `max-age` for shared
|
|
228
|
+
* caches such as CDNs.
|
|
229
|
+
*/
|
|
230
|
+
sMaxAge?: number;
|
|
231
|
+
/**
|
|
232
|
+
* Adds the `private` directive — the response may only be cached by the
|
|
233
|
+
* end-user's browser, not by a shared cache.
|
|
234
|
+
*/
|
|
235
|
+
private?: boolean;
|
|
236
|
+
/**
|
|
237
|
+
* Adds the `public` directive — the response may be cached by any cache,
|
|
238
|
+
* including shared CDN caches.
|
|
239
|
+
*/
|
|
240
|
+
public?: boolean;
|
|
241
|
+
/**
|
|
242
|
+
* Adds `no-store` — the response must not be stored in any cache.
|
|
243
|
+
*/
|
|
244
|
+
noStore?: boolean;
|
|
245
|
+
/**
|
|
246
|
+
* Adds `no-cache` — the cache must revalidate with the origin before
|
|
247
|
+
* serving a stored response.
|
|
248
|
+
*/
|
|
249
|
+
noCache?: boolean;
|
|
250
|
+
/**
|
|
251
|
+
* Adds `must-revalidate` — stale responses may not be served;
|
|
252
|
+
* the cache must revalidate with the origin.
|
|
253
|
+
*/
|
|
254
|
+
mustRevalidate?: boolean;
|
|
255
|
+
/**
|
|
256
|
+
* Adds `immutable` — indicates the response body will not change.
|
|
257
|
+
* Ideal for content-addressed / fingerprinted assets.
|
|
258
|
+
*/
|
|
259
|
+
immutable?: boolean;
|
|
260
|
+
/**
|
|
261
|
+
* Sets the `Vary` header to allow correct cache keying for negotiated
|
|
262
|
+
* content. Accepts a single string or an array of header names.
|
|
263
|
+
*
|
|
264
|
+
* @example ['Accept-Encoding', 'Accept-Language']
|
|
265
|
+
*/
|
|
266
|
+
vary?: string | string[];
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Response caching header middleware.
|
|
270
|
+
*
|
|
271
|
+
* Sets `Cache-Control`, and optionally `Expires` and `Vary` response headers
|
|
272
|
+
* based on the supplied options. All directives are optional — only the
|
|
273
|
+
* ones you specify are included in the header value.
|
|
274
|
+
*
|
|
275
|
+
* Mount at the router level for a global default, or on individual routes to
|
|
276
|
+
* apply per-route caching policies.
|
|
277
|
+
*
|
|
278
|
+
* @param opts - Cache policy options.
|
|
279
|
+
* @returns An Express-compatible middleware function.
|
|
280
|
+
*
|
|
281
|
+
* @example
|
|
282
|
+
* ```ts
|
|
283
|
+
* // Global: 5-minute browser cache, CDN-agnostic
|
|
284
|
+
* app.use(cacheControl({ maxAge: 300, public: true }));
|
|
285
|
+
*
|
|
286
|
+
* // Per-route: content-addressed asset, cache forever
|
|
287
|
+
* app.get('/static/app.:hash.js', cacheControl({ maxAge: 31_536_000, immutable: true }), serveStatic('public'));
|
|
288
|
+
*
|
|
289
|
+
* // No caching at all
|
|
290
|
+
* app.use('/api', cacheControl({ noStore: true }));
|
|
291
|
+
* ```
|
|
292
|
+
*/
|
|
293
|
+
export declare function cacheControl(opts?: CacheControlOptions): Middleware;
|
|
294
|
+
/**
|
|
295
|
+
* Options for the {@link csrf} middleware.
|
|
296
|
+
*/
|
|
297
|
+
export interface CsrfOptions {
|
|
298
|
+
/**
|
|
299
|
+
* Name of the cookie that stores the CSRF token.
|
|
300
|
+
*
|
|
301
|
+
* @default '_csrf'
|
|
302
|
+
*/
|
|
303
|
+
cookieName?: string;
|
|
304
|
+
/**
|
|
305
|
+
* Request header that the client must send the CSRF token in for
|
|
306
|
+
* state-mutating requests.
|
|
307
|
+
*
|
|
308
|
+
* @default 'x-csrf-token'
|
|
309
|
+
*/
|
|
310
|
+
headerName?: string;
|
|
311
|
+
/**
|
|
312
|
+
* Parsed request-body field name to check as an alternative to the header.
|
|
313
|
+
* Only consulted when the header is absent. Requires a body-parsing
|
|
314
|
+
* middleware (e.g. `json()` or `parseBody()`) to run before `csrf()`.
|
|
315
|
+
*
|
|
316
|
+
* @default '_csrf'
|
|
317
|
+
*/
|
|
318
|
+
fieldName?: string;
|
|
319
|
+
/**
|
|
320
|
+
* Mark the CSRF cookie as `Secure` (only sent over HTTPS).
|
|
321
|
+
*
|
|
322
|
+
* @default false
|
|
323
|
+
*/
|
|
324
|
+
secure?: boolean;
|
|
325
|
+
/**
|
|
326
|
+
* `SameSite` attribute of the CSRF cookie.
|
|
327
|
+
*
|
|
328
|
+
* @default 'Strict'
|
|
329
|
+
*/
|
|
330
|
+
sameSite?: 'Strict' | 'Lax' | 'None';
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* CSRF protection middleware (double-submit cookie pattern).
|
|
334
|
+
*
|
|
335
|
+
* On every request the middleware:
|
|
336
|
+
* 1. Reads (or generates) a random 256-bit hex token stored in a cookie.
|
|
337
|
+
* 2. Attaches `req.csrfToken()` so handlers can embed the token in forms /
|
|
338
|
+
* single-page applications.
|
|
339
|
+
* 3. For state-mutating requests (POST / PUT / PATCH / DELETE) it validates
|
|
340
|
+
* that the `X-CSRF-Token` header (or `_csrf` body field) matches the
|
|
341
|
+
* cookie value, responding **403** on mismatch.
|
|
342
|
+
*
|
|
343
|
+
* The cookie is **not** `HttpOnly` so that browser JavaScript can read the
|
|
344
|
+
* value and include it in subsequent AJAX request headers.
|
|
345
|
+
*
|
|
346
|
+
* @param opts - Optional configuration.
|
|
347
|
+
* @returns An Express-compatible middleware function.
|
|
348
|
+
*
|
|
349
|
+
* @example
|
|
350
|
+
* ```ts
|
|
351
|
+
* app.use(csrf());
|
|
352
|
+
* app.get('/form', (req, res) =>
|
|
353
|
+
* res.send(`<input type="hidden" name="_csrf" value="${req.csrfToken!()}">`));
|
|
354
|
+
* app.post('/submit', (req, res) => res.send('ok')); // validated automatically
|
|
355
|
+
* ```
|
|
356
|
+
*/
|
|
357
|
+
export declare function csrf(opts?: CsrfOptions): Middleware;
|
|
358
|
+
/**
|
|
359
|
+
* Options for the {@link securityHeaders} middleware.
|
|
360
|
+
*
|
|
361
|
+
* Every option defaults to a safe value. Pass `false` to disable a specific
|
|
362
|
+
* header, or an object/string to override the default value.
|
|
363
|
+
*/
|
|
364
|
+
export interface SecurityHeadersOptions {
|
|
365
|
+
/**
|
|
366
|
+
* `Strict-Transport-Security` — instructs browsers to always use HTTPS.
|
|
367
|
+
*
|
|
368
|
+
* Pass `false` to omit the header entirely (e.g. on plain HTTP servers).
|
|
369
|
+
*
|
|
370
|
+
* @default { maxAge: 15_552_000, includeSubDomains: true }
|
|
371
|
+
* (180 days, includes sub-domains)
|
|
372
|
+
*/
|
|
373
|
+
hsts?: false | {
|
|
374
|
+
/** Max age in seconds. @default 15_552_000 (180 days) */
|
|
375
|
+
maxAge?: number;
|
|
376
|
+
/** Include `includeSubDomains` directive. @default true */
|
|
377
|
+
includeSubDomains?: boolean;
|
|
378
|
+
/** Include `preload` directive. @default false */
|
|
379
|
+
preload?: boolean;
|
|
380
|
+
};
|
|
381
|
+
/**
|
|
382
|
+
* `X-Frame-Options` — prevents the page from being embedded in a frame.
|
|
383
|
+
*
|
|
384
|
+
* Pass `false` to omit the header.
|
|
385
|
+
*
|
|
386
|
+
* @default 'SAMEORIGIN'
|
|
387
|
+
*/
|
|
388
|
+
frameOptions?: false | 'DENY' | 'SAMEORIGIN';
|
|
389
|
+
/**
|
|
390
|
+
* `X-Content-Type-Options: nosniff` — prevents browsers from MIME-sniffing
|
|
391
|
+
* the content type.
|
|
392
|
+
*
|
|
393
|
+
* Pass `false` to omit the header.
|
|
394
|
+
*
|
|
395
|
+
* @default true
|
|
396
|
+
*/
|
|
397
|
+
contentTypeOptions?: boolean;
|
|
398
|
+
/**
|
|
399
|
+
* `Referrer-Policy` — controls how much referrer information is sent with
|
|
400
|
+
* requests.
|
|
401
|
+
*
|
|
402
|
+
* Pass `false` to omit the header.
|
|
403
|
+
*
|
|
404
|
+
* @default 'strict-origin-when-cross-origin'
|
|
405
|
+
*/
|
|
406
|
+
referrerPolicy?: false | string;
|
|
407
|
+
/**
|
|
408
|
+
* `Permissions-Policy` — restricts browser features available to the page.
|
|
409
|
+
*
|
|
410
|
+
* Pass `false` to omit the header.
|
|
411
|
+
*
|
|
412
|
+
* @default 'geolocation=(), microphone=(), camera=()'
|
|
413
|
+
*/
|
|
414
|
+
permissionsPolicy?: false | string;
|
|
415
|
+
/**
|
|
416
|
+
* `X-XSS-Protection` — legacy IE header. Modern browsers have built-in
|
|
417
|
+
* XSS protection and this header should be set to `'0'` to disable the
|
|
418
|
+
* old IE heuristic (which can actually introduce vulnerabilities).
|
|
419
|
+
*
|
|
420
|
+
* Pass `false` to omit the header entirely.
|
|
421
|
+
*
|
|
422
|
+
* @default '0'
|
|
423
|
+
*/
|
|
424
|
+
xssProtection?: false | string;
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Conditional GET middleware (RFC 7232).
|
|
428
|
+
*
|
|
429
|
+
* Transparently handles `If-None-Match` and `If-Modified-Since` request
|
|
430
|
+
* headers. When the response carries an `ETag` or `Last-Modified` header and
|
|
431
|
+
* the client's cached copy is still fresh, the middleware short-circuits with
|
|
432
|
+
* **304 Not Modified** — stripping the response body and content-related
|
|
433
|
+
* headers — instead of sending the full response.
|
|
434
|
+
*
|
|
435
|
+
* Mount this middleware **before** the route handler. The route handler runs
|
|
436
|
+
* normally and can call `res.etag()` / `res.json()` / `res.send()` as usual;
|
|
437
|
+
* the middleware intercepts the outgoing writes and decides whether to replace
|
|
438
|
+
* the response with a 304.
|
|
439
|
+
*
|
|
440
|
+
* ```ts
|
|
441
|
+
* app.get('/api/user/:id', conditionalGet(), (req, res) => {
|
|
442
|
+
* const user = getUser(req.params.id);
|
|
443
|
+
* res.etag(user.updatedAt.toISOString());
|
|
444
|
+
* res.json(user); // → 304 if ETag matches If-None-Match
|
|
445
|
+
* });
|
|
446
|
+
* ```
|
|
447
|
+
*
|
|
448
|
+
* **RFC 7232 compliance:**
|
|
449
|
+
* - `If-None-Match` is evaluated first (takes priority over `If-Modified-Since`).
|
|
450
|
+
* - Weak comparison is used for ETag matching (the `W/` prefix is ignored).
|
|
451
|
+
* - 304 responses strip `Content-Type`, `Content-Length`, and
|
|
452
|
+
* `Content-Encoding`, but retain `ETag`, `Cache-Control`, `Vary`, and
|
|
453
|
+
* `Last-Modified`.
|
|
454
|
+
* - Only GET and HEAD are eligible for 304 responses; other methods are
|
|
455
|
+
* passed through unchanged.
|
|
456
|
+
*
|
|
457
|
+
* @returns An Express-compatible middleware function.
|
|
458
|
+
*
|
|
459
|
+
* @example
|
|
460
|
+
* ```ts
|
|
461
|
+
* // With ETag
|
|
462
|
+
* app.get('/resource', conditionalGet(), (req, res) => {
|
|
463
|
+
* res.etag('v1.0').json({ value: 42 });
|
|
464
|
+
* });
|
|
465
|
+
*
|
|
466
|
+
* // With Last-Modified
|
|
467
|
+
* app.get('/file', conditionalGet(), (req, res) => {
|
|
468
|
+
* res.setHeader('Last-Modified', new Date().toUTCString());
|
|
469
|
+
* res.send(fileContent);
|
|
470
|
+
* });
|
|
471
|
+
* ```
|
|
472
|
+
*/
|
|
473
|
+
export declare function conditionalGet(): Middleware;
|
|
474
|
+
export declare function securityHeaders(opts?: SecurityHeadersOptions): Middleware;
|
|
475
|
+
export {};
|
|
476
|
+
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
|