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