@routr/common 2.0.8-alpha.5 → 2.0.8-alpha.6
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/auth.d.ts +39 -0
- package/dist/auth.js +48 -1
- package/dist/connect/types.d.ts +2 -1
- package/dist/connect/types.js +1 -0
- package/dist/helper.d.ts +4 -4
- package/dist/helper.js +7 -7
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -4
- package/dist/protos/location.proto +5 -3
- package/dist/types.d.ts +3 -1
- package/package.json +2 -2
package/dist/auth.d.ts
CHANGED
|
@@ -13,3 +13,42 @@ export declare const calculateAuthResponse: (res: AuthChallengeResponse, credent
|
|
|
13
13
|
username: string;
|
|
14
14
|
secret: string;
|
|
15
15
|
}) => string;
|
|
16
|
+
export declare const getCredentials: (username: string, users: {
|
|
17
|
+
username: string;
|
|
18
|
+
secret: string;
|
|
19
|
+
}[]) => {
|
|
20
|
+
username: string;
|
|
21
|
+
secret: string;
|
|
22
|
+
};
|
|
23
|
+
export declare const createUnauthorizedResponse: (realm: string, params?: {
|
|
24
|
+
qop: string;
|
|
25
|
+
algorithm: string;
|
|
26
|
+
}) => {
|
|
27
|
+
message: {
|
|
28
|
+
responseType: number;
|
|
29
|
+
wwwAuthenticate: {
|
|
30
|
+
scheme: string;
|
|
31
|
+
realm: string;
|
|
32
|
+
qop: string;
|
|
33
|
+
opaque: string;
|
|
34
|
+
stale: boolean;
|
|
35
|
+
nonce: string;
|
|
36
|
+
algorithm: string;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
export declare const createUnauthorizedResponseWithoutChallenge: () => {
|
|
41
|
+
message: {
|
|
42
|
+
responseType: number;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
export declare const createServerInternalErrorResponse: () => {
|
|
46
|
+
message: {
|
|
47
|
+
responseType: number;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
export declare const createForbideenResponse: () => {
|
|
51
|
+
message: {
|
|
52
|
+
responseType: number;
|
|
53
|
+
};
|
|
54
|
+
};
|
package/dist/auth.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.calculateAuthResponse = exports.buildAuthChallenge = exports.generateNonce = void 0;
|
|
6
|
+
exports.createForbideenResponse = exports.createServerInternalErrorResponse = exports.createUnauthorizedResponseWithoutChallenge = exports.createUnauthorizedResponse = exports.getCredentials = exports.calculateAuthResponse = exports.buildAuthChallenge = exports.generateNonce = void 0;
|
|
7
7
|
const crypto_1 = __importDefault(require("crypto"));
|
|
8
8
|
const DEFAULT_ALGORITHM = "MD5";
|
|
9
9
|
const md5hex = (str, algorithm = DEFAULT_ALGORITHM) => crypto_1.default.createHash(algorithm).update(str).digest("hex");
|
|
@@ -35,3 +35,50 @@ const calculateAuthResponse = (res, credentials) => {
|
|
|
35
35
|
: md5hex(`${ha1}:${res.nonce}:${ha2}`);
|
|
36
36
|
};
|
|
37
37
|
exports.calculateAuthResponse = calculateAuthResponse;
|
|
38
|
+
const getCredentials = (username, users) => users.find((user) => user.username === username);
|
|
39
|
+
exports.getCredentials = getCredentials;
|
|
40
|
+
const createUnauthorizedResponse = (realm, params = { qop: "auth", algorithm: "MD5" }) => {
|
|
41
|
+
return {
|
|
42
|
+
message: {
|
|
43
|
+
// Unauthorized Code
|
|
44
|
+
responseType: 17,
|
|
45
|
+
wwwAuthenticate: {
|
|
46
|
+
scheme: "Digest",
|
|
47
|
+
realm: realm,
|
|
48
|
+
qop: params.qop,
|
|
49
|
+
opaque: "",
|
|
50
|
+
stale: false,
|
|
51
|
+
nonce: (0, exports.generateNonce)(),
|
|
52
|
+
algorithm: params.algorithm
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
exports.createUnauthorizedResponse = createUnauthorizedResponse;
|
|
58
|
+
const createUnauthorizedResponseWithoutChallenge = () => {
|
|
59
|
+
return {
|
|
60
|
+
message: {
|
|
61
|
+
// Unauthorized Code
|
|
62
|
+
responseType: 17
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
exports.createUnauthorizedResponseWithoutChallenge = createUnauthorizedResponseWithoutChallenge;
|
|
67
|
+
const createServerInternalErrorResponse = () => {
|
|
68
|
+
return {
|
|
69
|
+
message: {
|
|
70
|
+
// Unauthorized Code
|
|
71
|
+
responseType: 46
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
exports.createServerInternalErrorResponse = createServerInternalErrorResponse;
|
|
76
|
+
const createForbideenResponse = () => {
|
|
77
|
+
return {
|
|
78
|
+
message: {
|
|
79
|
+
// Forbideen Code
|
|
80
|
+
responseType: 19
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
exports.createForbideenResponse = createForbideenResponse;
|
package/dist/connect/types.d.ts
CHANGED
|
@@ -13,7 +13,8 @@ export declare enum FindCriteria {
|
|
|
13
13
|
FIND_CREDENTIAL_BY_REFERENCE = "find_credential_by_reference",
|
|
14
14
|
FIND_DOMAIN_BY_DOMAINURI = "find_domain_by_domainuri",
|
|
15
15
|
FIND_NUMBER_BY_TELURL = "find_number_by_telurl",
|
|
16
|
-
FIND_TRUNKS_WITH_SEND_REGISTER = "find_trunks_with_send_register"
|
|
16
|
+
FIND_TRUNKS_WITH_SEND_REGISTER = "find_trunks_with_send_register",
|
|
17
|
+
FIND_TRUNK_BY_REQUEST_URI = "find_trunk_by_request_uri"
|
|
17
18
|
}
|
|
18
19
|
export interface FindParameters {
|
|
19
20
|
kind: Kind;
|
package/dist/connect/types.js
CHANGED
|
@@ -37,4 +37,5 @@ var FindCriteria;
|
|
|
37
37
|
FindCriteria["FIND_DOMAIN_BY_DOMAINURI"] = "find_domain_by_domainuri";
|
|
38
38
|
FindCriteria["FIND_NUMBER_BY_TELURL"] = "find_number_by_telurl";
|
|
39
39
|
FindCriteria["FIND_TRUNKS_WITH_SEND_REGISTER"] = "find_trunks_with_send_register";
|
|
40
|
+
FindCriteria["FIND_TRUNK_BY_REQUEST_URI"] = "find_trunk_by_request_uri";
|
|
40
41
|
})(FindCriteria = exports.FindCriteria || (exports.FindCriteria = {}));
|
package/dist/helper.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NetInterface, Transport } from "./types";
|
|
2
2
|
/**
|
|
3
3
|
* Makes a deep copy of an object.
|
|
4
4
|
*
|
|
@@ -9,8 +9,8 @@ export declare const deepCopy: <T>(source: T) => T;
|
|
|
9
9
|
/**
|
|
10
10
|
* Gets a listening point from a request.
|
|
11
11
|
*
|
|
12
|
-
* @param {
|
|
13
|
-
* @param {Transport} transport - The
|
|
12
|
+
* @param {NetInterface[]} listeningPoints - The listening points.
|
|
13
|
+
* @param {Transport} transport - The transport.
|
|
14
14
|
* @return {NetInterface} transport The deep copy of the source object.
|
|
15
15
|
*/
|
|
16
|
-
export declare const getListeningPoint: (
|
|
16
|
+
export declare const getListeningPoint: (listeningPoints: NetInterface[], transport: Transport) => NetInterface;
|
package/dist/helper.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getListeningPoint = exports.deepCopy = void 0;
|
|
2
4
|
/*
|
|
3
5
|
* Copyright (C) 2022 by Fonoster Inc (https://fonoster.com)
|
|
4
6
|
* http://github.com/fonoster/routr
|
|
@@ -17,8 +19,6 @@
|
|
|
17
19
|
* See the License for the specific language governing permissions and
|
|
18
20
|
* limitations under the License.
|
|
19
21
|
*/
|
|
20
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.getListeningPoint = exports.deepCopy = void 0;
|
|
22
22
|
const types_1 = require("./types");
|
|
23
23
|
/**
|
|
24
24
|
* Makes a deep copy of an object.
|
|
@@ -44,14 +44,14 @@ exports.deepCopy = deepCopy;
|
|
|
44
44
|
/**
|
|
45
45
|
* Gets a listening point from a request.
|
|
46
46
|
*
|
|
47
|
-
* @param {
|
|
48
|
-
* @param {Transport} transport - The
|
|
47
|
+
* @param {NetInterface[]} listeningPoints - The listening points.
|
|
48
|
+
* @param {Transport} transport - The transport.
|
|
49
49
|
* @return {NetInterface} transport The deep copy of the source object.
|
|
50
50
|
*/
|
|
51
|
-
const getListeningPoint = (
|
|
51
|
+
const getListeningPoint = (listeningPoints, transport) => {
|
|
52
52
|
const listeningPoint = transport
|
|
53
|
-
?
|
|
54
|
-
:
|
|
53
|
+
? listeningPoints.find((lp) => lp.transport.toLowerCase() === transport.toLowerCase())
|
|
54
|
+
: listeningPoints.find((lp) => lp.transport.toLowerCase() === types_1.Transport.UDP);
|
|
55
55
|
if (!listeningPoint) {
|
|
56
56
|
throw new Error(`no listening point found for transport ${transport}`);
|
|
57
57
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { calculateAuthResponse, generateNonce } from "./auth";
|
|
2
1
|
import { ServiceUnavailableError } from "./errors";
|
|
3
2
|
import createService, { getObjectProto, LOCATION_OBJECT_PROTO, PROCESSOR_OBJECT_PROTO } from "./service";
|
|
4
3
|
import { HeaderModifier, MessageRequest, MessageResponse, Method, NetInterface, ObjectProto, ProcessorConfig, Route, ServiceInfo, Transport } from "./types";
|
|
5
|
-
export { createService, getObjectProto,
|
|
4
|
+
export { createService, getObjectProto, HeaderModifier, Route, ServiceUnavailableError, Transport, ProcessorConfig, MessageRequest, MessageResponse, NetInterface, Method, ObjectProto, ServiceInfo, PROCESSOR_OBJECT_PROTO, LOCATION_OBJECT_PROTO };
|
|
6
5
|
export * as Redis from "./redis";
|
|
7
6
|
export * as CommonTypes from "./types";
|
|
8
7
|
export * as Helper from "./helper";
|
|
@@ -11,3 +10,4 @@ export * as Tracer from "./tracer";
|
|
|
11
10
|
export * as Assertions from "./assertions";
|
|
12
11
|
export * as CommonConnect from "./connect";
|
|
13
12
|
export * as CommonRequester from "./requester";
|
|
13
|
+
export * as Auth from "./auth";
|
package/dist/index.js
CHANGED
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.CommonRequester = exports.CommonConnect = exports.Assertions = exports.Tracer = exports.IpUtils = exports.Helper = exports.CommonTypes = exports.Redis = exports.LOCATION_OBJECT_PROTO = exports.PROCESSOR_OBJECT_PROTO = exports.Method = exports.Transport = exports.ServiceUnavailableError = exports.
|
|
26
|
+
exports.Auth = exports.CommonRequester = exports.CommonConnect = exports.Assertions = exports.Tracer = exports.IpUtils = exports.Helper = exports.CommonTypes = exports.Redis = exports.LOCATION_OBJECT_PROTO = exports.PROCESSOR_OBJECT_PROTO = exports.Method = exports.Transport = exports.ServiceUnavailableError = exports.getObjectProto = exports.createService = void 0;
|
|
27
27
|
/*
|
|
28
28
|
* Copyright (C) 2022 by Fonoster Inc (https://fonoster.com)
|
|
29
29
|
* http://github.com/fonoster/routr
|
|
@@ -42,9 +42,6 @@ exports.CommonRequester = exports.CommonConnect = exports.Assertions = exports.T
|
|
|
42
42
|
* See the License for the specific language governing permissions and
|
|
43
43
|
* limitations under the License.
|
|
44
44
|
*/
|
|
45
|
-
const auth_1 = require("./auth");
|
|
46
|
-
Object.defineProperty(exports, "calculateAuthResponse", { enumerable: true, get: function () { return auth_1.calculateAuthResponse; } });
|
|
47
|
-
Object.defineProperty(exports, "generateNonce", { enumerable: true, get: function () { return auth_1.generateNonce; } });
|
|
48
45
|
const errors_1 = require("./errors");
|
|
49
46
|
Object.defineProperty(exports, "ServiceUnavailableError", { enumerable: true, get: function () { return errors_1.ServiceUnavailableError; } });
|
|
50
47
|
const service_1 = __importStar(require("./service"));
|
|
@@ -63,3 +60,4 @@ exports.Tracer = __importStar(require("./tracer"));
|
|
|
63
60
|
exports.Assertions = __importStar(require("./assertions"));
|
|
64
61
|
exports.CommonConnect = __importStar(require("./connect"));
|
|
65
62
|
exports.CommonRequester = __importStar(require("./requester"));
|
|
63
|
+
exports.Auth = __importStar(require("./auth"));
|
|
@@ -34,7 +34,7 @@ service Location {
|
|
|
34
34
|
rpc RemoveRoutes (RemoveRoutesRequest) returns (fonoster.routr.common.v2draft1.Empty) {}
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
// A binding
|
|
37
|
+
// A binding created by an actual endpoint (Softphone, PBX, Conference System, etc.)
|
|
38
38
|
message Route {
|
|
39
39
|
string user = 1;
|
|
40
40
|
string host = 2;
|
|
@@ -44,11 +44,13 @@ message Route {
|
|
|
44
44
|
int32 expires = 6;
|
|
45
45
|
int32 session_count = 7;
|
|
46
46
|
string edge_port_ref = 8;
|
|
47
|
-
fonoster.routr.processor.v2draft1.NetInterface
|
|
47
|
+
repeated fonoster.routr.processor.v2draft1.NetInterface listening_points = 9;
|
|
48
|
+
repeated string localnets = 10;
|
|
49
|
+
repeated string external_addrs = 11;
|
|
48
50
|
// During route creation, an endpoint can request to add labels than can later be
|
|
49
51
|
// used as selectors. For example, a Softphone can add a label `priority=1` to indicate
|
|
50
52
|
// that it is the prefered endpoint for the given AOR.
|
|
51
|
-
map<string, string> labels =
|
|
53
|
+
map<string, string> labels = 12;
|
|
52
54
|
}
|
|
53
55
|
|
|
54
56
|
message AddRouteRequest {
|
package/dist/types.d.ts
CHANGED
|
@@ -113,7 +113,9 @@ export interface Route {
|
|
|
113
113
|
sessionCount?: number;
|
|
114
114
|
expires?: number;
|
|
115
115
|
edgePortRef: string;
|
|
116
|
-
|
|
116
|
+
listeningPoints: NetInterface[];
|
|
117
|
+
localnets: string[];
|
|
118
|
+
externalAddrs: string[];
|
|
117
119
|
labels?: Map<string, string>;
|
|
118
120
|
headers?: HeaderModifier[];
|
|
119
121
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@routr/common",
|
|
3
|
-
"version": "2.0.8-alpha.
|
|
3
|
+
"version": "2.0.8-alpha.6",
|
|
4
4
|
"description": "Common package",
|
|
5
5
|
"author": "Pedro Sanders <psanders@fonoster.com>",
|
|
6
6
|
"homepage": "https://github.com/fonoster/routr#readme",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"bugs": {
|
|
46
46
|
"url": "https://github.com/fonoster/routr/issues"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "0647d7472b78b4a60e54e3577fed9e9fd4e9eaa4"
|
|
49
49
|
}
|