@routr/processor 2.0.8-alpha.21 → 2.0.8-alpha.23

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.
@@ -11,3 +11,4 @@ export declare const removeAuthorization: (request: MessageRequest) => MessageRe
11
11
  export declare const removeSelfRoutes: (request: MessageRequest) => MessageRequest;
12
12
  export declare const removeTopVia: (request: MessageRequest) => MessageRequest;
13
13
  export declare const decreaseMaxForwards: (request: MessageRequest) => MessageRequest;
14
+ export declare const enforceE164: (enforceE164: boolean, validateMobilePrefix: boolean) => (request: MessageRequest) => MessageRequest;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decreaseMaxForwards = exports.removeTopVia = exports.removeSelfRoutes = exports.removeAuthorization = exports.removeXEdgePortRef = exports.addXEdgePortRef = exports.addSelfRecordRoute = exports.applyXHeaders = exports.addRouteToPeerEdgePort = exports.addRouteToNextHop = exports.addSelfVia = exports.updateRequestURI = void 0;
3
+ exports.enforceE164 = exports.decreaseMaxForwards = exports.removeTopVia = exports.removeSelfRoutes = exports.removeAuthorization = exports.removeXEdgePortRef = exports.addXEdgePortRef = exports.addSelfRecordRoute = exports.applyXHeaders = exports.addRouteToPeerEdgePort = exports.addRouteToNextHop = exports.addSelfVia = exports.updateRequestURI = void 0;
4
4
  /*
5
5
  * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com)
6
6
  * http://github.com/fonoster/routr
@@ -20,6 +20,7 @@ exports.decreaseMaxForwards = exports.removeTopVia = exports.removeSelfRoutes =
20
20
  * limitations under the License.
21
21
  */
22
22
  const common_1 = require("@routr/common");
23
+ const phone_1 = require("phone");
23
24
  const helper_1 = require("./helper");
24
25
  // Q: Should we deprecate this method since we are not doing strict routing?
25
26
  const updateRequestURI = (route) => (request) => {
@@ -208,3 +209,34 @@ const decreaseMaxForwards = (request) => {
208
209
  return req;
209
210
  };
210
211
  exports.decreaseMaxForwards = decreaseMaxForwards;
212
+ // Will do the best effort to normalize from/to/requestUri users as e164 values
213
+ const enforceE164 = (enforceE164, validateMobilePrefix) => (request) => {
214
+ var _a, _b, _c;
215
+ if (!enforceE164)
216
+ return request;
217
+ const req = common_1.Helper.deepCopy(request);
218
+ // Removes the + to ensure not having duplicates
219
+ const fromUser = (_a = req.message.from.address.uri.user) === null || _a === void 0 ? void 0 : _a.replace("+", "");
220
+ const toUser = (_b = req.message.to.address.uri.user) === null || _b === void 0 ? void 0 : _b.replace("+", "");
221
+ const requestUriUser = (_c = req.message.requestUri.user) === null || _c === void 0 ? void 0 : _c.replace("+", "");
222
+ // Normalizing as e164
223
+ const normalizedTo = (0, phone_1.phone)(`+${toUser}`, { validateMobilePrefix });
224
+ const normalizedFrom = (0, phone_1.phone)(`+${fromUser}`, {
225
+ validateMobilePrefix: true
226
+ });
227
+ const normalizedReqUri = (0, phone_1.phone)(`+${requestUriUser}`, {
228
+ validateMobilePrefix
229
+ });
230
+ // If the normalization worked we overwrite the original values
231
+ if (normalizedFrom.isValid) {
232
+ req.message.from.address.uri.user = normalizedFrom.phoneNumber;
233
+ }
234
+ if (normalizedTo.isValid) {
235
+ req.message.to.address.uri.user = normalizedTo.phoneNumber;
236
+ }
237
+ if (normalizedReqUri.isValid) {
238
+ req.message.requestUri.user = normalizedReqUri.phoneNumber;
239
+ }
240
+ return req;
241
+ };
242
+ exports.enforceE164 = enforceE164;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@routr/processor",
3
- "version": "2.0.8-alpha.21",
3
+ "version": "2.0.8-alpha.23",
4
4
  "description": "Processor server and API",
5
5
  "author": "Pedro Sanders <psanders@fonoster.com>",
6
6
  "homepage": "https://github.com/fonoster/routr#readme",
@@ -23,8 +23,9 @@
23
23
  "@opentelemetry/sdk-trace-base": "^1.0.4",
24
24
  "@opentelemetry/sdk-trace-node": "^1.0.4",
25
25
  "@opentelemetry/semantic-conventions": "^1.0.4",
26
- "@routr/common": "^2.0.8-alpha.21",
27
- "fp-ts": "^2.11.8"
26
+ "@routr/common": "^2.0.8-alpha.23",
27
+ "fp-ts": "^2.11.8",
28
+ "phone": "^3.1.32"
28
29
  },
29
30
  "directories": {
30
31
  "src": "src",
@@ -43,5 +44,5 @@
43
44
  "bugs": {
44
45
  "url": "https://github.com/fonoster/routr/issues"
45
46
  },
46
- "gitHead": "1841d2d8d51bebfdc3af7e81435064e81b176449"
47
+ "gitHead": "1347b753f0dbdd3bdf423f2691867aa250b768af"
47
48
  }