@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/cjs/index.cjs
CHANGED
|
@@ -235,6 +235,43 @@ class LambdaResponseBuffered extends node_stream.Writable {
|
|
|
235
235
|
getHeaderNames() {
|
|
236
236
|
return Array.from(this._headers.keys());
|
|
237
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* Proxy for direct header access (e.g., res.headers['content-type']).
|
|
240
|
+
* Required for compatibility with middleware like helmet that access headers directly.
|
|
241
|
+
*/
|
|
242
|
+
get headers() {
|
|
243
|
+
return new Proxy({}, {
|
|
244
|
+
deleteProperty: (_target, prop) => {
|
|
245
|
+
this.removeHeader(String(prop));
|
|
246
|
+
return true;
|
|
247
|
+
},
|
|
248
|
+
get: (_target, prop) => {
|
|
249
|
+
if (typeof prop === "symbol")
|
|
250
|
+
return undefined;
|
|
251
|
+
return this.getHeader(String(prop));
|
|
252
|
+
},
|
|
253
|
+
getOwnPropertyDescriptor: (_target, prop) => {
|
|
254
|
+
if (this.hasHeader(String(prop))) {
|
|
255
|
+
return {
|
|
256
|
+
configurable: true,
|
|
257
|
+
enumerable: true,
|
|
258
|
+
value: this.getHeader(String(prop)),
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
return undefined;
|
|
262
|
+
},
|
|
263
|
+
has: (_target, prop) => {
|
|
264
|
+
return this.hasHeader(String(prop));
|
|
265
|
+
},
|
|
266
|
+
ownKeys: () => {
|
|
267
|
+
return this.getHeaderNames();
|
|
268
|
+
},
|
|
269
|
+
set: (_target, prop, value) => {
|
|
270
|
+
this.setHeader(String(prop), value);
|
|
271
|
+
return true;
|
|
272
|
+
},
|
|
273
|
+
});
|
|
274
|
+
}
|
|
238
275
|
writeHead(statusCode, statusMessageOrHeaders, headers) {
|
|
239
276
|
this.statusCode = statusCode;
|
|
240
277
|
let headersToSet;
|
|
@@ -262,6 +299,20 @@ class LambdaResponseBuffered extends node_stream.Writable {
|
|
|
262
299
|
//
|
|
263
300
|
// Express compatibility methods
|
|
264
301
|
//
|
|
302
|
+
/**
|
|
303
|
+
* Express-style alias for getHeader().
|
|
304
|
+
* Used by middleware like decorateResponse that use res.get().
|
|
305
|
+
*/
|
|
306
|
+
get(name) {
|
|
307
|
+
return this.getHeader(name);
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Express-style alias for setHeader().
|
|
311
|
+
* Used by middleware like decorateResponse that use res.set().
|
|
312
|
+
*/
|
|
313
|
+
set(name, value) {
|
|
314
|
+
return this.setHeader(name, value);
|
|
315
|
+
}
|
|
265
316
|
status(code) {
|
|
266
317
|
this.statusCode = code;
|
|
267
318
|
return this;
|
|
@@ -278,6 +329,26 @@ class LambdaResponseBuffered extends node_stream.Writable {
|
|
|
278
329
|
this.end(body);
|
|
279
330
|
return this;
|
|
280
331
|
}
|
|
332
|
+
/**
|
|
333
|
+
* Add a field to the Vary response header.
|
|
334
|
+
* Used by CORS middleware to indicate response varies by Origin.
|
|
335
|
+
*/
|
|
336
|
+
vary(field) {
|
|
337
|
+
const existing = this.getHeader("vary");
|
|
338
|
+
if (!existing) {
|
|
339
|
+
this.setHeader("vary", field);
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
// Append to existing Vary header if field not already present
|
|
343
|
+
const fields = String(existing)
|
|
344
|
+
.split(",")
|
|
345
|
+
.map((f) => f.trim().toLowerCase());
|
|
346
|
+
if (!fields.includes(field.toLowerCase())) {
|
|
347
|
+
this.setHeader("vary", `${existing}, ${field}`);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
return this;
|
|
351
|
+
}
|
|
281
352
|
//
|
|
282
353
|
// Writable stream implementation
|
|
283
354
|
//
|
|
@@ -394,6 +465,43 @@ class LambdaResponseStreaming extends node_stream.Writable {
|
|
|
394
465
|
getHeaderNames() {
|
|
395
466
|
return Array.from(this._headers.keys());
|
|
396
467
|
}
|
|
468
|
+
/**
|
|
469
|
+
* Proxy for direct header access (e.g., res.headers['content-type']).
|
|
470
|
+
* Required for compatibility with middleware like helmet that access headers directly.
|
|
471
|
+
*/
|
|
472
|
+
get headers() {
|
|
473
|
+
return new Proxy({}, {
|
|
474
|
+
deleteProperty: (_target, prop) => {
|
|
475
|
+
this.removeHeader(String(prop));
|
|
476
|
+
return true;
|
|
477
|
+
},
|
|
478
|
+
get: (_target, prop) => {
|
|
479
|
+
if (typeof prop === "symbol")
|
|
480
|
+
return undefined;
|
|
481
|
+
return this.getHeader(String(prop));
|
|
482
|
+
},
|
|
483
|
+
getOwnPropertyDescriptor: (_target, prop) => {
|
|
484
|
+
if (this.hasHeader(String(prop))) {
|
|
485
|
+
return {
|
|
486
|
+
configurable: true,
|
|
487
|
+
enumerable: true,
|
|
488
|
+
value: this.getHeader(String(prop)),
|
|
489
|
+
};
|
|
490
|
+
}
|
|
491
|
+
return undefined;
|
|
492
|
+
},
|
|
493
|
+
has: (_target, prop) => {
|
|
494
|
+
return this.hasHeader(String(prop));
|
|
495
|
+
},
|
|
496
|
+
ownKeys: () => {
|
|
497
|
+
return this.getHeaderNames();
|
|
498
|
+
},
|
|
499
|
+
set: (_target, prop, value) => {
|
|
500
|
+
this.setHeader(String(prop), value);
|
|
501
|
+
return true;
|
|
502
|
+
},
|
|
503
|
+
});
|
|
504
|
+
}
|
|
397
505
|
writeHead(statusCode, statusMessageOrHeaders, headers) {
|
|
398
506
|
if (this._headersSent) {
|
|
399
507
|
return this;
|
|
@@ -445,6 +553,20 @@ class LambdaResponseStreaming extends node_stream.Writable {
|
|
|
445
553
|
//
|
|
446
554
|
// Express compatibility methods
|
|
447
555
|
//
|
|
556
|
+
/**
|
|
557
|
+
* Express-style alias for getHeader().
|
|
558
|
+
* Used by middleware like decorateResponse that use res.get().
|
|
559
|
+
*/
|
|
560
|
+
get(name) {
|
|
561
|
+
return this.getHeader(name);
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* Express-style alias for setHeader().
|
|
565
|
+
* Used by middleware like decorateResponse that use res.set().
|
|
566
|
+
*/
|
|
567
|
+
set(name, value) {
|
|
568
|
+
return this.setHeader(name, value);
|
|
569
|
+
}
|
|
448
570
|
status(code) {
|
|
449
571
|
this.statusCode = code;
|
|
450
572
|
return this;
|
|
@@ -461,6 +583,26 @@ class LambdaResponseStreaming extends node_stream.Writable {
|
|
|
461
583
|
this.end(body);
|
|
462
584
|
return this;
|
|
463
585
|
}
|
|
586
|
+
/**
|
|
587
|
+
* Add a field to the Vary response header.
|
|
588
|
+
* Used by CORS middleware to indicate response varies by Origin.
|
|
589
|
+
*/
|
|
590
|
+
vary(field) {
|
|
591
|
+
const existing = this.getHeader("vary");
|
|
592
|
+
if (!existing) {
|
|
593
|
+
this.setHeader("vary", field);
|
|
594
|
+
}
|
|
595
|
+
else {
|
|
596
|
+
// Append to existing Vary header if field not already present
|
|
597
|
+
const fields = String(existing)
|
|
598
|
+
.split(",")
|
|
599
|
+
.map((f) => f.trim().toLowerCase());
|
|
600
|
+
if (!fields.includes(field.toLowerCase())) {
|
|
601
|
+
this.setHeader("vary", `${existing}, ${field}`);
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
return this;
|
|
605
|
+
}
|
|
464
606
|
//
|
|
465
607
|
// Writable stream implementation
|
|
466
608
|
//
|