@jaypie/express 1.2.4-rc11 → 1.2.4-rc13
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 +2 -0
- package/dist/cjs/adapter/LambdaResponseStreaming.d.ts +2 -0
- package/dist/cjs/index.cjs +40 -24
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/adapter/LambdaResponseBuffered.d.ts +2 -0
- package/dist/esm/adapter/LambdaResponseStreaming.d.ts +2 -0
- package/dist/esm/index.js +40 -24
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -30,6 +30,7 @@ export declare class LambdaResponseBuffered extends Writable {
|
|
|
30
30
|
/**
|
|
31
31
|
* Proxy for direct header access (e.g., res.headers['content-type']).
|
|
32
32
|
* Required for compatibility with middleware like helmet that access headers directly.
|
|
33
|
+
* Uses direct _headers access to bypass dd-trace interception.
|
|
33
34
|
*/
|
|
34
35
|
get headers(): Record<string, string | string[] | undefined>;
|
|
35
36
|
writeHead(statusCode: number, statusMessageOrHeaders?: OutgoingHttpHeaders | string, headers?: OutgoingHttpHeaders): this;
|
|
@@ -52,6 +53,7 @@ export declare class LambdaResponseBuffered extends Writable {
|
|
|
52
53
|
/**
|
|
53
54
|
* Add a field to the Vary response header.
|
|
54
55
|
* Used by CORS middleware to indicate response varies by Origin.
|
|
56
|
+
* Uses direct _headers access to bypass dd-trace interception.
|
|
55
57
|
*/
|
|
56
58
|
vary(field: string): this;
|
|
57
59
|
_write(chunk: Buffer | string, encoding: BufferEncoding, // eslint-disable-line no-undef
|
|
@@ -30,6 +30,7 @@ export declare class LambdaResponseStreaming extends Writable {
|
|
|
30
30
|
/**
|
|
31
31
|
* Proxy for direct header access (e.g., res.headers['content-type']).
|
|
32
32
|
* Required for compatibility with middleware like helmet that access headers directly.
|
|
33
|
+
* Uses direct _headers access to bypass dd-trace interception.
|
|
33
34
|
*/
|
|
34
35
|
get headers(): Record<string, string | string[] | undefined>;
|
|
35
36
|
writeHead(statusCode: number, statusMessageOrHeaders?: OutgoingHttpHeaders | string, headers?: OutgoingHttpHeaders): this;
|
|
@@ -53,6 +54,7 @@ export declare class LambdaResponseStreaming extends Writable {
|
|
|
53
54
|
/**
|
|
54
55
|
* Add a field to the Vary response header.
|
|
55
56
|
* Used by CORS middleware to indicate response varies by Origin.
|
|
57
|
+
* Uses direct _headers access to bypass dd-trace interception.
|
|
56
58
|
*/
|
|
57
59
|
vary(field: string): this;
|
|
58
60
|
_write(chunk: Buffer | string, encoding: BufferEncoding, // eslint-disable-line no-undef
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -303,36 +303,40 @@ class LambdaResponseBuffered extends node_stream.Writable {
|
|
|
303
303
|
/**
|
|
304
304
|
* Proxy for direct header access (e.g., res.headers['content-type']).
|
|
305
305
|
* Required for compatibility with middleware like helmet that access headers directly.
|
|
306
|
+
* Uses direct _headers access to bypass dd-trace interception.
|
|
306
307
|
*/
|
|
307
308
|
get headers() {
|
|
308
309
|
return new Proxy({}, {
|
|
309
310
|
deleteProperty: (_target, prop) => {
|
|
310
|
-
this.
|
|
311
|
+
this._headers.delete(String(prop).toLowerCase());
|
|
311
312
|
return true;
|
|
312
313
|
},
|
|
313
314
|
get: (_target, prop) => {
|
|
314
315
|
if (typeof prop === "symbol")
|
|
315
316
|
return undefined;
|
|
316
|
-
return this.
|
|
317
|
+
return this._headers.get(String(prop).toLowerCase());
|
|
317
318
|
},
|
|
318
319
|
getOwnPropertyDescriptor: (_target, prop) => {
|
|
319
|
-
|
|
320
|
+
const lowerProp = String(prop).toLowerCase();
|
|
321
|
+
if (this._headers.has(lowerProp)) {
|
|
320
322
|
return {
|
|
321
323
|
configurable: true,
|
|
322
324
|
enumerable: true,
|
|
323
|
-
value: this.
|
|
325
|
+
value: this._headers.get(lowerProp),
|
|
324
326
|
};
|
|
325
327
|
}
|
|
326
328
|
return undefined;
|
|
327
329
|
},
|
|
328
330
|
has: (_target, prop) => {
|
|
329
|
-
return this.
|
|
331
|
+
return this._headers.has(String(prop).toLowerCase());
|
|
330
332
|
},
|
|
331
333
|
ownKeys: () => {
|
|
332
|
-
return this.
|
|
334
|
+
return Array.from(this._headers.keys());
|
|
333
335
|
},
|
|
334
336
|
set: (_target, prop, value) => {
|
|
335
|
-
this.
|
|
337
|
+
if (!this._headersSent) {
|
|
338
|
+
this._headers.set(String(prop).toLowerCase(), value);
|
|
339
|
+
}
|
|
336
340
|
return true;
|
|
337
341
|
},
|
|
338
342
|
});
|
|
@@ -349,9 +353,10 @@ class LambdaResponseBuffered extends node_stream.Writable {
|
|
|
349
353
|
headersToSet = statusMessageOrHeaders;
|
|
350
354
|
}
|
|
351
355
|
if (headersToSet) {
|
|
356
|
+
// Use direct _headers access to bypass dd-trace interception
|
|
352
357
|
for (const [key, value] of Object.entries(headersToSet)) {
|
|
353
358
|
if (value !== undefined) {
|
|
354
|
-
this.
|
|
359
|
+
this._headers.set(key.toLowerCase(), String(value));
|
|
355
360
|
}
|
|
356
361
|
}
|
|
357
362
|
}
|
|
@@ -388,7 +393,8 @@ class LambdaResponseBuffered extends node_stream.Writable {
|
|
|
388
393
|
return this;
|
|
389
394
|
}
|
|
390
395
|
json(data) {
|
|
391
|
-
|
|
396
|
+
// Use direct _headers access to bypass dd-trace interception
|
|
397
|
+
this._headers.set("content-type", "application/json");
|
|
392
398
|
this.end(JSON.stringify(data));
|
|
393
399
|
return this;
|
|
394
400
|
}
|
|
@@ -402,11 +408,12 @@ class LambdaResponseBuffered extends node_stream.Writable {
|
|
|
402
408
|
/**
|
|
403
409
|
* Add a field to the Vary response header.
|
|
404
410
|
* Used by CORS middleware to indicate response varies by Origin.
|
|
411
|
+
* Uses direct _headers access to bypass dd-trace interception.
|
|
405
412
|
*/
|
|
406
413
|
vary(field) {
|
|
407
|
-
const existing = this.
|
|
414
|
+
const existing = this._headers.get("vary");
|
|
408
415
|
if (!existing) {
|
|
409
|
-
this.
|
|
416
|
+
this._headers.set("vary", field);
|
|
410
417
|
}
|
|
411
418
|
else {
|
|
412
419
|
// Append to existing Vary header if field not already present
|
|
@@ -414,7 +421,7 @@ class LambdaResponseBuffered extends node_stream.Writable {
|
|
|
414
421
|
.split(",")
|
|
415
422
|
.map((f) => f.trim().toLowerCase());
|
|
416
423
|
if (!fields.includes(field.toLowerCase())) {
|
|
417
|
-
this.
|
|
424
|
+
this._headers.set("vary", `${existing}, ${field}`);
|
|
418
425
|
}
|
|
419
426
|
}
|
|
420
427
|
return this;
|
|
@@ -607,36 +614,42 @@ class LambdaResponseStreaming extends node_stream.Writable {
|
|
|
607
614
|
/**
|
|
608
615
|
* Proxy for direct header access (e.g., res.headers['content-type']).
|
|
609
616
|
* Required for compatibility with middleware like helmet that access headers directly.
|
|
617
|
+
* Uses direct _headers access to bypass dd-trace interception.
|
|
610
618
|
*/
|
|
611
619
|
get headers() {
|
|
612
620
|
return new Proxy({}, {
|
|
613
621
|
deleteProperty: (_target, prop) => {
|
|
614
|
-
this.
|
|
622
|
+
if (!this._headersSent) {
|
|
623
|
+
this._headers.delete(String(prop).toLowerCase());
|
|
624
|
+
}
|
|
615
625
|
return true;
|
|
616
626
|
},
|
|
617
627
|
get: (_target, prop) => {
|
|
618
628
|
if (typeof prop === "symbol")
|
|
619
629
|
return undefined;
|
|
620
|
-
return this.
|
|
630
|
+
return this._headers.get(String(prop).toLowerCase());
|
|
621
631
|
},
|
|
622
632
|
getOwnPropertyDescriptor: (_target, prop) => {
|
|
623
|
-
|
|
633
|
+
const lowerProp = String(prop).toLowerCase();
|
|
634
|
+
if (this._headers.has(lowerProp)) {
|
|
624
635
|
return {
|
|
625
636
|
configurable: true,
|
|
626
637
|
enumerable: true,
|
|
627
|
-
value: this.
|
|
638
|
+
value: this._headers.get(lowerProp),
|
|
628
639
|
};
|
|
629
640
|
}
|
|
630
641
|
return undefined;
|
|
631
642
|
},
|
|
632
643
|
has: (_target, prop) => {
|
|
633
|
-
return this.
|
|
644
|
+
return this._headers.has(String(prop).toLowerCase());
|
|
634
645
|
},
|
|
635
646
|
ownKeys: () => {
|
|
636
|
-
return this.
|
|
647
|
+
return Array.from(this._headers.keys());
|
|
637
648
|
},
|
|
638
649
|
set: (_target, prop, value) => {
|
|
639
|
-
this.
|
|
650
|
+
if (!this._headersSent) {
|
|
651
|
+
this._headers.set(String(prop).toLowerCase(), value);
|
|
652
|
+
}
|
|
640
653
|
return true;
|
|
641
654
|
},
|
|
642
655
|
});
|
|
@@ -656,9 +669,10 @@ class LambdaResponseStreaming extends node_stream.Writable {
|
|
|
656
669
|
headersToSet = statusMessageOrHeaders;
|
|
657
670
|
}
|
|
658
671
|
if (headersToSet) {
|
|
672
|
+
// Use direct _headers access to bypass dd-trace interception
|
|
659
673
|
for (const [key, value] of Object.entries(headersToSet)) {
|
|
660
674
|
if (value !== undefined) {
|
|
661
|
-
this.
|
|
675
|
+
this._headers.set(key.toLowerCase(), String(value));
|
|
662
676
|
}
|
|
663
677
|
}
|
|
664
678
|
}
|
|
@@ -716,7 +730,8 @@ class LambdaResponseStreaming extends node_stream.Writable {
|
|
|
716
730
|
return this;
|
|
717
731
|
}
|
|
718
732
|
json(data) {
|
|
719
|
-
|
|
733
|
+
// Use direct _headers access to bypass dd-trace interception
|
|
734
|
+
this._headers.set("content-type", "application/json");
|
|
720
735
|
this.end(JSON.stringify(data));
|
|
721
736
|
return this;
|
|
722
737
|
}
|
|
@@ -730,11 +745,12 @@ class LambdaResponseStreaming extends node_stream.Writable {
|
|
|
730
745
|
/**
|
|
731
746
|
* Add a field to the Vary response header.
|
|
732
747
|
* Used by CORS middleware to indicate response varies by Origin.
|
|
748
|
+
* Uses direct _headers access to bypass dd-trace interception.
|
|
733
749
|
*/
|
|
734
750
|
vary(field) {
|
|
735
|
-
const existing = this.
|
|
751
|
+
const existing = this._headers.get("vary");
|
|
736
752
|
if (!existing) {
|
|
737
|
-
this.
|
|
753
|
+
this._headers.set("vary", field);
|
|
738
754
|
}
|
|
739
755
|
else {
|
|
740
756
|
// Append to existing Vary header if field not already present
|
|
@@ -742,7 +758,7 @@ class LambdaResponseStreaming extends node_stream.Writable {
|
|
|
742
758
|
.split(",")
|
|
743
759
|
.map((f) => f.trim().toLowerCase());
|
|
744
760
|
if (!fields.includes(field.toLowerCase())) {
|
|
745
|
-
this.
|
|
761
|
+
this._headers.set("vary", `${existing}, ${field}`);
|
|
746
762
|
}
|
|
747
763
|
}
|
|
748
764
|
return this;
|