@jaypie/express 1.2.4-rc2 → 1.2.4-rc4
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/dist/cjs/adapter/LambdaResponseBuffered.d.ts +20 -0
- package/dist/cjs/adapter/LambdaResponseStreaming.d.ts +20 -0
- package/dist/cjs/index.cjs +142 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/adapter/LambdaResponseBuffered.d.ts +20 -0
- package/dist/esm/adapter/LambdaResponseStreaming.d.ts +20 -0
- package/dist/esm/index.js +142 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -23,11 +23,31 @@ export declare class LambdaResponseBuffered extends Writable {
|
|
|
23
23
|
getHeaders(): OutgoingHttpHeaders;
|
|
24
24
|
hasHeader(name: string): boolean;
|
|
25
25
|
getHeaderNames(): string[];
|
|
26
|
+
/**
|
|
27
|
+
* Proxy for direct header access (e.g., res.headers['content-type']).
|
|
28
|
+
* Required for compatibility with middleware like helmet that access headers directly.
|
|
29
|
+
*/
|
|
30
|
+
get headers(): Record<string, string | string[] | undefined>;
|
|
26
31
|
writeHead(statusCode: number, statusMessageOrHeaders?: OutgoingHttpHeaders | string, headers?: OutgoingHttpHeaders): this;
|
|
27
32
|
get headersSent(): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Express-style alias for getHeader().
|
|
35
|
+
* Used by middleware like decorateResponse that use res.get().
|
|
36
|
+
*/
|
|
37
|
+
get(name: string): number | string | string[] | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Express-style alias for setHeader().
|
|
40
|
+
* Used by middleware like decorateResponse that use res.set().
|
|
41
|
+
*/
|
|
42
|
+
set(name: string, value: number | string | string[]): this;
|
|
28
43
|
status(code: number): this;
|
|
29
44
|
json(data: unknown): this;
|
|
30
45
|
send(body?: Buffer | object | string): this;
|
|
46
|
+
/**
|
|
47
|
+
* Add a field to the Vary response header.
|
|
48
|
+
* Used by CORS middleware to indicate response varies by Origin.
|
|
49
|
+
*/
|
|
50
|
+
vary(field: string): this;
|
|
31
51
|
_write(chunk: Buffer | string, encoding: BufferEncoding, // eslint-disable-line no-undef
|
|
32
52
|
callback: (error?: Error | null) => void): void;
|
|
33
53
|
_final(callback: (error?: Error | null) => void): void;
|
|
@@ -23,12 +23,32 @@ export declare class LambdaResponseStreaming extends Writable {
|
|
|
23
23
|
getHeaders(): OutgoingHttpHeaders;
|
|
24
24
|
hasHeader(name: string): boolean;
|
|
25
25
|
getHeaderNames(): string[];
|
|
26
|
+
/**
|
|
27
|
+
* Proxy for direct header access (e.g., res.headers['content-type']).
|
|
28
|
+
* Required for compatibility with middleware like helmet that access headers directly.
|
|
29
|
+
*/
|
|
30
|
+
get headers(): Record<string, string | string[] | undefined>;
|
|
26
31
|
writeHead(statusCode: number, statusMessageOrHeaders?: OutgoingHttpHeaders | string, headers?: OutgoingHttpHeaders): this;
|
|
27
32
|
get headersSent(): boolean;
|
|
28
33
|
flushHeaders(): void;
|
|
34
|
+
/**
|
|
35
|
+
* Express-style alias for getHeader().
|
|
36
|
+
* Used by middleware like decorateResponse that use res.get().
|
|
37
|
+
*/
|
|
38
|
+
get(name: string): number | string | string[] | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Express-style alias for setHeader().
|
|
41
|
+
* Used by middleware like decorateResponse that use res.set().
|
|
42
|
+
*/
|
|
43
|
+
set(name: string, value: number | string | string[]): this;
|
|
29
44
|
status(code: number): this;
|
|
30
45
|
json(data: unknown): this;
|
|
31
46
|
send(body?: Buffer | object | string): this;
|
|
47
|
+
/**
|
|
48
|
+
* Add a field to the Vary response header.
|
|
49
|
+
* Used by CORS middleware to indicate response varies by Origin.
|
|
50
|
+
*/
|
|
51
|
+
vary(field: string): this;
|
|
32
52
|
_write(chunk: Buffer | string, encoding: BufferEncoding, // eslint-disable-line no-undef
|
|
33
53
|
callback: (error?: Error | null) => void): void;
|
|
34
54
|
_final(callback: (error?: Error | null) => void): void;
|
package/dist/esm/index.js
CHANGED
|
@@ -233,6 +233,43 @@ class LambdaResponseBuffered extends Writable {
|
|
|
233
233
|
getHeaderNames() {
|
|
234
234
|
return Array.from(this._headers.keys());
|
|
235
235
|
}
|
|
236
|
+
/**
|
|
237
|
+
* Proxy for direct header access (e.g., res.headers['content-type']).
|
|
238
|
+
* Required for compatibility with middleware like helmet that access headers directly.
|
|
239
|
+
*/
|
|
240
|
+
get headers() {
|
|
241
|
+
return new Proxy({}, {
|
|
242
|
+
deleteProperty: (_target, prop) => {
|
|
243
|
+
this.removeHeader(String(prop));
|
|
244
|
+
return true;
|
|
245
|
+
},
|
|
246
|
+
get: (_target, prop) => {
|
|
247
|
+
if (typeof prop === "symbol")
|
|
248
|
+
return undefined;
|
|
249
|
+
return this.getHeader(String(prop));
|
|
250
|
+
},
|
|
251
|
+
getOwnPropertyDescriptor: (_target, prop) => {
|
|
252
|
+
if (this.hasHeader(String(prop))) {
|
|
253
|
+
return {
|
|
254
|
+
configurable: true,
|
|
255
|
+
enumerable: true,
|
|
256
|
+
value: this.getHeader(String(prop)),
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
return undefined;
|
|
260
|
+
},
|
|
261
|
+
has: (_target, prop) => {
|
|
262
|
+
return this.hasHeader(String(prop));
|
|
263
|
+
},
|
|
264
|
+
ownKeys: () => {
|
|
265
|
+
return this.getHeaderNames();
|
|
266
|
+
},
|
|
267
|
+
set: (_target, prop, value) => {
|
|
268
|
+
this.setHeader(String(prop), value);
|
|
269
|
+
return true;
|
|
270
|
+
},
|
|
271
|
+
});
|
|
272
|
+
}
|
|
236
273
|
writeHead(statusCode, statusMessageOrHeaders, headers) {
|
|
237
274
|
this.statusCode = statusCode;
|
|
238
275
|
let headersToSet;
|
|
@@ -260,6 +297,20 @@ class LambdaResponseBuffered extends Writable {
|
|
|
260
297
|
//
|
|
261
298
|
// Express compatibility methods
|
|
262
299
|
//
|
|
300
|
+
/**
|
|
301
|
+
* Express-style alias for getHeader().
|
|
302
|
+
* Used by middleware like decorateResponse that use res.get().
|
|
303
|
+
*/
|
|
304
|
+
get(name) {
|
|
305
|
+
return this.getHeader(name);
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Express-style alias for setHeader().
|
|
309
|
+
* Used by middleware like decorateResponse that use res.set().
|
|
310
|
+
*/
|
|
311
|
+
set(name, value) {
|
|
312
|
+
return this.setHeader(name, value);
|
|
313
|
+
}
|
|
263
314
|
status(code) {
|
|
264
315
|
this.statusCode = code;
|
|
265
316
|
return this;
|
|
@@ -276,6 +327,26 @@ class LambdaResponseBuffered extends Writable {
|
|
|
276
327
|
this.end(body);
|
|
277
328
|
return this;
|
|
278
329
|
}
|
|
330
|
+
/**
|
|
331
|
+
* Add a field to the Vary response header.
|
|
332
|
+
* Used by CORS middleware to indicate response varies by Origin.
|
|
333
|
+
*/
|
|
334
|
+
vary(field) {
|
|
335
|
+
const existing = this.getHeader("vary");
|
|
336
|
+
if (!existing) {
|
|
337
|
+
this.setHeader("vary", field);
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
// Append to existing Vary header if field not already present
|
|
341
|
+
const fields = String(existing)
|
|
342
|
+
.split(",")
|
|
343
|
+
.map((f) => f.trim().toLowerCase());
|
|
344
|
+
if (!fields.includes(field.toLowerCase())) {
|
|
345
|
+
this.setHeader("vary", `${existing}, ${field}`);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
return this;
|
|
349
|
+
}
|
|
279
350
|
//
|
|
280
351
|
// Writable stream implementation
|
|
281
352
|
//
|
|
@@ -392,6 +463,43 @@ class LambdaResponseStreaming extends Writable {
|
|
|
392
463
|
getHeaderNames() {
|
|
393
464
|
return Array.from(this._headers.keys());
|
|
394
465
|
}
|
|
466
|
+
/**
|
|
467
|
+
* Proxy for direct header access (e.g., res.headers['content-type']).
|
|
468
|
+
* Required for compatibility with middleware like helmet that access headers directly.
|
|
469
|
+
*/
|
|
470
|
+
get headers() {
|
|
471
|
+
return new Proxy({}, {
|
|
472
|
+
deleteProperty: (_target, prop) => {
|
|
473
|
+
this.removeHeader(String(prop));
|
|
474
|
+
return true;
|
|
475
|
+
},
|
|
476
|
+
get: (_target, prop) => {
|
|
477
|
+
if (typeof prop === "symbol")
|
|
478
|
+
return undefined;
|
|
479
|
+
return this.getHeader(String(prop));
|
|
480
|
+
},
|
|
481
|
+
getOwnPropertyDescriptor: (_target, prop) => {
|
|
482
|
+
if (this.hasHeader(String(prop))) {
|
|
483
|
+
return {
|
|
484
|
+
configurable: true,
|
|
485
|
+
enumerable: true,
|
|
486
|
+
value: this.getHeader(String(prop)),
|
|
487
|
+
};
|
|
488
|
+
}
|
|
489
|
+
return undefined;
|
|
490
|
+
},
|
|
491
|
+
has: (_target, prop) => {
|
|
492
|
+
return this.hasHeader(String(prop));
|
|
493
|
+
},
|
|
494
|
+
ownKeys: () => {
|
|
495
|
+
return this.getHeaderNames();
|
|
496
|
+
},
|
|
497
|
+
set: (_target, prop, value) => {
|
|
498
|
+
this.setHeader(String(prop), value);
|
|
499
|
+
return true;
|
|
500
|
+
},
|
|
501
|
+
});
|
|
502
|
+
}
|
|
395
503
|
writeHead(statusCode, statusMessageOrHeaders, headers) {
|
|
396
504
|
if (this._headersSent) {
|
|
397
505
|
return this;
|
|
@@ -443,6 +551,20 @@ class LambdaResponseStreaming extends Writable {
|
|
|
443
551
|
//
|
|
444
552
|
// Express compatibility methods
|
|
445
553
|
//
|
|
554
|
+
/**
|
|
555
|
+
* Express-style alias for getHeader().
|
|
556
|
+
* Used by middleware like decorateResponse that use res.get().
|
|
557
|
+
*/
|
|
558
|
+
get(name) {
|
|
559
|
+
return this.getHeader(name);
|
|
560
|
+
}
|
|
561
|
+
/**
|
|
562
|
+
* Express-style alias for setHeader().
|
|
563
|
+
* Used by middleware like decorateResponse that use res.set().
|
|
564
|
+
*/
|
|
565
|
+
set(name, value) {
|
|
566
|
+
return this.setHeader(name, value);
|
|
567
|
+
}
|
|
446
568
|
status(code) {
|
|
447
569
|
this.statusCode = code;
|
|
448
570
|
return this;
|
|
@@ -459,6 +581,26 @@ class LambdaResponseStreaming extends Writable {
|
|
|
459
581
|
this.end(body);
|
|
460
582
|
return this;
|
|
461
583
|
}
|
|
584
|
+
/**
|
|
585
|
+
* Add a field to the Vary response header.
|
|
586
|
+
* Used by CORS middleware to indicate response varies by Origin.
|
|
587
|
+
*/
|
|
588
|
+
vary(field) {
|
|
589
|
+
const existing = this.getHeader("vary");
|
|
590
|
+
if (!existing) {
|
|
591
|
+
this.setHeader("vary", field);
|
|
592
|
+
}
|
|
593
|
+
else {
|
|
594
|
+
// Append to existing Vary header if field not already present
|
|
595
|
+
const fields = String(existing)
|
|
596
|
+
.split(",")
|
|
597
|
+
.map((f) => f.trim().toLowerCase());
|
|
598
|
+
if (!fields.includes(field.toLowerCase())) {
|
|
599
|
+
this.setHeader("vary", `${existing}, ${field}`);
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
return this;
|
|
603
|
+
}
|
|
462
604
|
//
|
|
463
605
|
// Writable stream implementation
|
|
464
606
|
//
|