@routr/processor 2.15.2 → 2.15.4

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.
@@ -9,6 +9,7 @@ export declare const applyXHeaders: (route: Route) => (request: MessageRequest)
9
9
  export declare const addSelfRecordRoute: (route: Route) => (request: MessageRequest) => MessageRequest;
10
10
  export declare const addXEdgePortRef: (request: MessageRequest) => MessageRequest;
11
11
  export declare const removeXEdgePortRef: (request: MessageRequest) => MessageRequest;
12
+ export declare const removeHeaders: (names: string[]) => (request: MessageRequest) => MessageRequest;
12
13
  export declare const removeAuthorization: (request: MessageRequest) => MessageRequest;
13
14
  export declare const removeSelfRoutes: (request: MessageRequest) => MessageRequest;
14
15
  export declare const removeTopVia: (request: MessageRequest) => MessageRequest;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.enforceE164 = exports.overwriteContactWithSenderInfo = exports.fixInvalidContact = exports.decreaseMaxForwards = exports.removeTopVia = exports.removeSelfRoutes = exports.removeAuthorization = exports.removeXEdgePortRef = exports.addXEdgePortRef = exports.addSelfRecordRoute = exports.applyXHeaders = exports.addRouteToPeerEdgePort = exports.addRouteToNextHop = exports.addSelfViaUsingExternalAddrs = exports.addSelfViaUsingTheRouteHeaders = exports.addSelfVia = exports.fixRequestURI = void 0;
3
+ exports.enforceE164 = exports.overwriteContactWithSenderInfo = exports.fixInvalidContact = exports.decreaseMaxForwards = exports.removeTopVia = exports.removeSelfRoutes = exports.removeAuthorization = exports.removeHeaders = exports.removeXEdgePortRef = exports.addXEdgePortRef = exports.addSelfRecordRoute = exports.applyXHeaders = exports.addRouteToPeerEdgePort = exports.addRouteToNextHop = exports.addSelfViaUsingExternalAddrs = exports.addSelfViaUsingTheRouteHeaders = exports.addSelfVia = exports.fixRequestURI = void 0;
4
4
  /*
5
5
  * Copyright (C) 2026 by Fonoster Inc (https://fonoster.com)
6
6
  * http://github.com/fonoster/routr
@@ -133,7 +133,11 @@ const applyXHeaders = (route) => (request) => {
133
133
  .filter((h) => h.action === common_1.CommonTypes.HeaderModifierAction.REMOVE)
134
134
  .map((h) => h.name.toLowerCase());
135
135
  const headersToAdd = route.headers.filter((h) => h.action === common_1.CommonTypes.HeaderModifierAction.ADD);
136
- req.message.extensions = req.message.extensions.filter((h) => !headersToRemove.includes(h.name.toLowerCase()));
136
+ // An added header replaces any copy already in the request (case-insensitive),
137
+ // so a caller-supplied value can never sit next to the one Routr adds.
138
+ const headersToReplace = headersToAdd.map((h) => h.name.toLowerCase());
139
+ req.message.extensions = req.message.extensions.filter((h) => !headersToRemove.includes(h.name.toLowerCase()) &&
140
+ !headersToReplace.includes(h.name.toLowerCase()));
137
141
  headersToAdd.forEach((h) => {
138
142
  req.message.extensions.push({ name: h.name, value: h.value });
139
143
  });
@@ -219,6 +223,16 @@ const removeXEdgePortRef = (request) => {
219
223
  return req;
220
224
  };
221
225
  exports.removeXEdgePortRef = removeXEdgePortRef;
226
+ // Removes every extension whose name matches one of the given names (case-insensitive)
227
+ const removeHeaders = (names) => (request) => {
228
+ if (!names || names.length === 0)
229
+ return request;
230
+ const req = common_1.Helper.deepCopy(request);
231
+ const toRemove = names.map((n) => n.toLowerCase());
232
+ req.message.extensions = req.message.extensions.filter((ext) => !toRemove.includes(ext.name.toLowerCase()));
233
+ return req;
234
+ };
235
+ exports.removeHeaders = removeHeaders;
222
236
  const removeAuthorization = (request) => {
223
237
  const req = common_1.Helper.deepCopy(request);
224
238
  delete req.message.authorization;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@routr/processor",
3
- "version": "2.15.2",
3
+ "version": "2.15.4",
4
4
  "description": "Processor server and API",
5
5
  "author": "Pedro Sanders <psanders@fonoster.com>",
6
6
  "homepage": "https://github.com/fonoster/routr#readme",
@@ -15,7 +15,7 @@
15
15
  "@fonoster/logger": "0.6.0",
16
16
  "@grpc/grpc-js": "~1.14.6",
17
17
  "@grpc/proto-loader": "~0.7.10",
18
- "@routr/common": "^2.15.2",
18
+ "@routr/common": "^2.15.4",
19
19
  "fp-ts": "^2.11.8",
20
20
  "phone": "^3.1.68"
21
21
  },
@@ -36,5 +36,5 @@
36
36
  "bugs": {
37
37
  "url": "https://github.com/fonoster/routr/issues"
38
38
  },
39
- "gitHead": "012332304537f623d017dffdf4911910fb27c0e0"
39
+ "gitHead": "3d4a72191d5ac315429570e562d20fb5807cc942"
40
40
  }