@jaypie/express 1.2.13 → 1.2.14

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/esm/index.js CHANGED
@@ -1390,71 +1390,61 @@ function getCurrentInvokeUuid(req) {
1390
1390
  return getJaypieAdapterUuid();
1391
1391
  }
1392
1392
 
1393
- //
1394
- //
1395
- // Helpers
1396
- //
1397
1393
  /**
1398
- * Safely get a header value from response.
1394
+ * Safely set a header value on response.
1399
1395
  * Handles both Express Response and Lambda adapter responses.
1400
1396
  * Defensive against dd-trace instrumentation issues.
1401
1397
  */
1402
- function safeGetHeader(res, name) {
1398
+ function safeSetHeader(res, name, value) {
1403
1399
  try {
1404
1400
  // Try internal method first (completely bypasses dd-trace)
1405
- if (typeof res._internalGetHeader === "function") {
1406
- return res._internalGetHeader(name);
1401
+ if (typeof res._internalSetHeader === "function") {
1402
+ res._internalSetHeader(name, value);
1403
+ return;
1407
1404
  }
1408
1405
  // Fall back to _headers Map access (Lambda adapter, avoids dd-trace)
1409
1406
  if (res._headers instanceof Map) {
1410
- const value = res._headers.get(name.toLowerCase());
1411
- return value ? String(value) : undefined;
1407
+ res._headers.set(name.toLowerCase(), value);
1408
+ return;
1412
1409
  }
1413
- // Fall back to getHeader (more standard than get)
1414
- if (typeof res.getHeader === "function") {
1415
- const value = res.getHeader(name);
1416
- return value ? String(value) : undefined;
1410
+ // Fall back to setHeader (more standard than set)
1411
+ if (typeof res.setHeader === "function") {
1412
+ res.setHeader(name, value);
1413
+ return;
1417
1414
  }
1418
- // Last resort: try get
1419
- if (typeof res.get === "function") {
1420
- const value = res.get(name);
1421
- return value ? String(value) : undefined;
1415
+ // Last resort: try set
1416
+ if (typeof res.set === "function") {
1417
+ res.set(name, value);
1422
1418
  }
1423
1419
  }
1424
1420
  catch {
1425
- // Silently fail - caller will handle missing value
1421
+ // Silently fail - header just won't be set
1426
1422
  }
1427
- return undefined;
1428
1423
  }
1429
1424
  /**
1430
- * Safely set a header value on response.
1425
+ * Safely remove a header from response.
1431
1426
  * Handles both Express Response and Lambda adapter responses.
1432
1427
  * Defensive against dd-trace instrumentation issues.
1433
1428
  */
1434
- function safeSetHeader(res, name, value) {
1429
+ function safeRemoveHeader(res, name) {
1435
1430
  try {
1436
1431
  // Try internal method first (completely bypasses dd-trace)
1437
- if (typeof res._internalSetHeader === "function") {
1438
- res._internalSetHeader(name, value);
1432
+ if (typeof res._internalRemoveHeader === "function") {
1433
+ res._internalRemoveHeader(name);
1439
1434
  return;
1440
1435
  }
1441
1436
  // Fall back to _headers Map access (Lambda adapter, avoids dd-trace)
1442
1437
  if (res._headers instanceof Map) {
1443
- res._headers.set(name.toLowerCase(), value);
1438
+ res._headers.delete(name.toLowerCase());
1444
1439
  return;
1445
1440
  }
1446
- // Fall back to setHeader (more standard than set)
1447
- if (typeof res.setHeader === "function") {
1448
- res.setHeader(name, value);
1449
- return;
1450
- }
1451
- // Last resort: try set
1452
- if (typeof res.set === "function") {
1453
- res.set(name, value);
1441
+ // Fall back to removeHeader (standard Node.js http.ServerResponse)
1442
+ if (typeof res.removeHeader === "function") {
1443
+ res.removeHeader(name);
1454
1444
  }
1455
1445
  }
1456
1446
  catch {
1457
- // Silently fail - header just won't be set
1447
+ // Silently fail - header just won't be removed
1458
1448
  }
1459
1449
  }
1460
1450
  //
@@ -1479,11 +1469,8 @@ const decorateResponse = (res, { handler = "", version = process.env.PROJECT_VER
1479
1469
  //
1480
1470
  // Decorate Headers
1481
1471
  //
1482
- // X-Powered-By, override "Express" but nothing else
1483
- const currentPoweredBy = safeGetHeader(extRes, HTTP.HEADER.POWERED_BY);
1484
- if (!currentPoweredBy || currentPoweredBy === "Express") {
1485
- safeSetHeader(extRes, HTTP.HEADER.POWERED_BY, JAYPIE.LIB.EXPRESS);
1486
- }
1472
+ // Remove X-Powered-By
1473
+ safeRemoveHeader(extRes, HTTP.HEADER.POWERED_BY);
1487
1474
  // X-Project-Environment
1488
1475
  if (process.env.PROJECT_ENV) {
1489
1476
  safeSetHeader(extRes, HTTP.HEADER.PROJECT.ENVIRONMENT, process.env.PROJECT_ENV);