@cryptexlabs/codex-nodejs-common 0.1.12 → 0.1.16
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/lib/package.json +1 -1
- package/lib/src/auth/authorization-allowance.js +23 -8
- package/lib/src/auth/authorization-allowance.js.map +1 -1
- package/lib/src/auth/http-authz-guard.util.d.ts +2 -0
- package/lib/src/auth/http-authz-guard.util.js +9 -1
- package/lib/src/auth/http-authz-guard.util.js.map +1 -1
- package/lib/src/config/default-config.js +5 -5
- package/lib/src/config/default-config.js.map +1 -1
- package/lib/src/util/index.d.ts +1 -0
- package/lib/src/util/index.js +1 -0
- package/lib/src/util/index.js.map +1 -1
- package/package.json +1 -1
- package/src/auth/authorization-allowance.ts +31 -10
- package/src/auth/http-authz-guard.util.spec.ts +1 -1
- package/src/auth/http-authz-guard.util.ts +11 -1
- package/src/config/default-config.ts +5 -5
- package/src/util/index.ts +1 -0
package/lib/package.json
CHANGED
|
@@ -9,16 +9,31 @@ class AuthorizationAllowance {
|
|
|
9
9
|
this.action = action;
|
|
10
10
|
}
|
|
11
11
|
isRequestAllowed(request) {
|
|
12
|
-
if (
|
|
13
|
-
|
|
12
|
+
if (request.object &&
|
|
13
|
+
request.object.trim() !== "" &&
|
|
14
|
+
this.object &&
|
|
15
|
+
this.object.trim() !== "") {
|
|
16
|
+
if (this.object !== "any" && request.object !== this.object) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
14
19
|
}
|
|
15
|
-
if (
|
|
16
|
-
request.objectId.toString()
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
if (request.objectId &&
|
|
21
|
+
request.objectId.toString().trim() !== "" &&
|
|
22
|
+
this.objectId &&
|
|
23
|
+
this.objectId.toString().trim() !== "") {
|
|
24
|
+
if (this.objectId !== "any" &&
|
|
25
|
+
request.objectId.toString() !== this.objectId.toString() &&
|
|
26
|
+
!this._isRequestingSelf(request)) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
19
29
|
}
|
|
20
|
-
if (
|
|
21
|
-
|
|
30
|
+
if (request.action &&
|
|
31
|
+
request.action.trim() !== "" &&
|
|
32
|
+
this.action &&
|
|
33
|
+
this.action !== "") {
|
|
34
|
+
if (this.action !== "any" && request.action !== this.action) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
22
37
|
}
|
|
23
38
|
return true;
|
|
24
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization-allowance.js","sourceRoot":"","sources":["../../../src/auth/authorization-allowance.ts"],"names":[],"mappings":";;;AAEA,MAAa,sBAAsB;IACjC,YACmB,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM;QAHN,YAAO,GAAP,OAAO,CAAA;QACP,WAAM,GAAN,MAAM,CAAA;QACN,aAAQ,GAAR,QAAQ,CAAA;QACR,WAAM,GAAN,MAAM,CAAA;IACtB,CAAC;IAEG,gBAAgB,CAAC,OAAsC;
|
|
1
|
+
{"version":3,"file":"authorization-allowance.js","sourceRoot":"","sources":["../../../src/auth/authorization-allowance.ts"],"names":[],"mappings":";;;AAEA,MAAa,sBAAsB;IACjC,YACmB,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM;QAHN,YAAO,GAAP,OAAO,CAAA;QACP,WAAM,GAAN,MAAM,CAAA;QACN,aAAQ,GAAR,QAAQ,CAAA;QACR,WAAM,GAAN,MAAM,CAAA;IACtB,CAAC;IAEG,gBAAgB,CAAC,OAAsC;QAC5D,IACE,OAAO,CAAC,MAAM;YACd,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;YAC5B,IAAI,CAAC,MAAM;YACX,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EACzB;YAEA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;gBAC3D,OAAO,KAAK,CAAC;aACd;SACF;QAGD,IACE,OAAO,CAAC,QAAQ;YAChB,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE;YACzC,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EACtC;YACA,IACE,IAAI,CAAC,QAAQ,KAAK,KAAK;gBACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACxD,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAChC;gBACA,OAAO,KAAK,CAAC;aACd;SACF;QAED,IACE,OAAO,CAAC,MAAM;YACd,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;YAC5B,IAAI,CAAC,MAAM;YACX,IAAI,CAAC,MAAM,KAAK,EAAE,EAClB;YAEA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;gBAC3D,OAAO,KAAK,CAAC;aACd;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,iBAAiB,CAAC,OAAsC;QAC9D,OAAO,CACL,OAAO,CAAC,MAAM,KAAK,MAAM;YACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACvD,IAAI,CAAC,QAAQ,KAAK,MAAM,CACzB,CAAC;IACJ,CAAC;CACF;AA3DD,wDA2DC"}
|
|
@@ -3,6 +3,8 @@ import { AuthorizationRequestInterface } from "./authorization-request.interface
|
|
|
3
3
|
export declare class HttpAuthzGuardUtil {
|
|
4
4
|
private readonly context;
|
|
5
5
|
private _token;
|
|
6
|
+
readonly params: any;
|
|
7
|
+
readonly query: any;
|
|
6
8
|
constructor(context: ExecutionContext);
|
|
7
9
|
isAuthorized(...authzRequests: AuthorizationRequestInterface[]): boolean;
|
|
8
10
|
private _doesScopeAuthorizeRequest;
|
|
@@ -8,7 +8,10 @@ class HttpAuthzGuardUtil {
|
|
|
8
8
|
constructor(context) {
|
|
9
9
|
this.context = context;
|
|
10
10
|
const request = context.switchToHttp().getRequest();
|
|
11
|
-
const authorizationHeader = request.headers.
|
|
11
|
+
const authorizationHeader = request.headers.authorization;
|
|
12
|
+
if (!authorizationHeader) {
|
|
13
|
+
throw new common_1.HttpException("Unauthorized", common_1.HttpStatus.UNAUTHORIZED);
|
|
14
|
+
}
|
|
12
15
|
const bearerTokenParts = authorizationHeader.trim().split("Bearer ");
|
|
13
16
|
if (bearerTokenParts.length !== 2) {
|
|
14
17
|
throw new common_1.HttpException("Unauthorized", common_1.HttpStatus.UNAUTHORIZED);
|
|
@@ -19,6 +22,8 @@ class HttpAuthzGuardUtil {
|
|
|
19
22
|
throw new common_1.HttpException("Unauthorized", common_1.HttpStatus.UNAUTHORIZED);
|
|
20
23
|
}
|
|
21
24
|
this._token = decodedToken;
|
|
25
|
+
this.params = request.params;
|
|
26
|
+
this.query = request.query;
|
|
22
27
|
}
|
|
23
28
|
isAuthorized(...authzRequests) {
|
|
24
29
|
const scopes = this._token.scopes;
|
|
@@ -37,6 +42,9 @@ class HttpAuthzGuardUtil {
|
|
|
37
42
|
}
|
|
38
43
|
for (let i = 0; i < authzRequests.length; i++) {
|
|
39
44
|
const request = authzRequests[i];
|
|
45
|
+
if (!authorizationAllowances[i]) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
40
48
|
const allowance = authorizationAllowances[i];
|
|
41
49
|
if (!allowance.isRequestAllowed(request)) {
|
|
42
50
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-authz-guard.util.js","sourceRoot":"","sources":["../../../src/auth/http-authz-guard.util.ts"],"names":[],"mappings":";;;AAAA,2CAA6E;AAC7E,oCAAoC;AAEpC,uEAAmE;AAEnE,MAAa,kBAAkB;
|
|
1
|
+
{"version":3,"file":"http-authz-guard.util.js","sourceRoot":"","sources":["../../../src/auth/http-authz-guard.util.ts"],"names":[],"mappings":";;;AAAA,2CAA6E;AAC7E,oCAAoC;AAEpC,uEAAmE;AAEnE,MAAa,kBAAkB;IAK7B,YAA6B,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;QACpD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QAC1D,IAAI,CAAC,mBAAmB,EAAE;YACxB,MAAM,IAAI,sBAAa,CAAC,cAAc,EAAE,mBAAU,CAAC,YAAY,CAAC,CAAC;SAClE;QACD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;YACjC,MAAM,IAAI,sBAAa,CAAC,cAAc,EAAE,mBAAU,CAAC,YAAY,CAAC,CAAC;SAClE;QAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAmB,CAAC;QAC/D,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,sBAAa,CAAC,cAAc,EAAE,mBAAU,CAAC,YAAY,CAAC,CAAC;SAClE;QAED,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7B,CAAC;IAEM,YAAY,CAAC,GAAG,aAA8C;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAElC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,IAAI,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE;gBACzD,OAAO,IAAI,CAAC;aACb;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,0BAA0B,CAChC,KAAa,EACb,aAA8C;QAE9C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/B,MAAM,uBAAuB,GAAG,EAAE,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACxC,uBAAuB,CAAC,IAAI,CAC1B,IAAI,gDAAsB,CACxB,IAAI,CAAC,MAAM,CAAC,GAAG,EACf,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EACZ,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CACb,CACF,CAAC;SACH;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE;gBAC/B,OAAO,KAAK,CAAC;aACd;YACD,MAAM,SAAS,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;gBACxC,OAAO,KAAK,CAAC;aACd;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAtED,gDAsEC"}
|
|
@@ -89,13 +89,13 @@ let DefaultConfig = class DefaultConfig {
|
|
|
89
89
|
return this._clientId;
|
|
90
90
|
}
|
|
91
91
|
get apiVersion() {
|
|
92
|
-
return process.env.API_VERSION;
|
|
92
|
+
return process.env.API_VERSION || "v1";
|
|
93
93
|
}
|
|
94
94
|
get appPrefix() {
|
|
95
|
-
return process.env.APP_PREFIX;
|
|
95
|
+
return process.env.APP_PREFIX || "api";
|
|
96
96
|
}
|
|
97
97
|
get docsPrefix() {
|
|
98
|
-
return process.env.DOCS_PREFIX;
|
|
98
|
+
return process.env.DOCS_PREFIX || "docs";
|
|
99
99
|
}
|
|
100
100
|
get docsEnabled() {
|
|
101
101
|
return process.env.DOCS_ENABLED === "true";
|
|
@@ -111,7 +111,7 @@ let DefaultConfig = class DefaultConfig {
|
|
|
111
111
|
return process.env.ENV_NAME;
|
|
112
112
|
}
|
|
113
113
|
get logLevels() {
|
|
114
|
-
return process.env.LOG_LEVELS.trim().split(",");
|
|
114
|
+
return (process.env.LOG_LEVELS || "debug,info,error").trim().split(",");
|
|
115
115
|
}
|
|
116
116
|
get httpPort() {
|
|
117
117
|
return parseInt(process.env.HTTP_PORT, 10);
|
|
@@ -126,7 +126,7 @@ let DefaultConfig = class DefaultConfig {
|
|
|
126
126
|
return process.env.HEALTHZ_FILE_PATH || "/tmp/healthz";
|
|
127
127
|
}
|
|
128
128
|
get elasticsearch() {
|
|
129
|
-
return new elasticsearch_config_1.ElasticsearchConfig(process.env.ELASTICSEARCH_URL, process.env.ELASTICSEARCH_PING_INTERVAL_SECONDS || "10");
|
|
129
|
+
return new elasticsearch_config_1.ElasticsearchConfig(process.env.ELASTICSEARCH_URL || "http://elasticsearch:9200", process.env.ELASTICSEARCH_PING_INTERVAL_SECONDS || "10");
|
|
130
130
|
}
|
|
131
131
|
get consumerType() {
|
|
132
132
|
return (process.env.CONSUMER_TYPE ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-config.js","sourceRoot":"","sources":["../../../src/config/default-config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"default-config.js","sourceRoot":"","sources":["../../../src/config/default-config.ts"],"names":[],"mappings":"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"}
|
package/lib/src/util/index.d.ts
CHANGED
package/lib/src/util/index.js
CHANGED
|
@@ -13,4 +13,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
13
|
__exportStar(require("./string.util"), exports);
|
|
14
14
|
__exportStar(require("./array.util"), exports);
|
|
15
15
|
__exportStar(require("./locale.util"), exports);
|
|
16
|
+
__exportStar(require("./time.util"), exports);
|
|
16
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B;AAC7B,gDAA8B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B;AAC7B,gDAA8B;AAC9B,8CAA4B"}
|
package/package.json
CHANGED
|
@@ -9,23 +9,44 @@ export class AuthorizationAllowance {
|
|
|
9
9
|
) {}
|
|
10
10
|
|
|
11
11
|
public isRequestAllowed(request: AuthorizationRequestInterface): boolean {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
if (
|
|
13
|
+
request.object &&
|
|
14
|
+
request.object.trim() !== "" &&
|
|
15
|
+
this.object &&
|
|
16
|
+
this.object.trim() !== ""
|
|
17
|
+
) {
|
|
18
|
+
// Check object
|
|
19
|
+
if (this.object !== "any" && request.object !== this.object) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
15
22
|
}
|
|
16
23
|
|
|
17
24
|
// Check object id
|
|
18
25
|
if (
|
|
19
|
-
|
|
20
|
-
request.objectId.toString()
|
|
21
|
-
|
|
26
|
+
request.objectId &&
|
|
27
|
+
request.objectId.toString().trim() !== "" &&
|
|
28
|
+
this.objectId &&
|
|
29
|
+
this.objectId.toString().trim() !== ""
|
|
22
30
|
) {
|
|
23
|
-
|
|
31
|
+
if (
|
|
32
|
+
this.objectId !== "any" &&
|
|
33
|
+
request.objectId.toString() !== this.objectId.toString() &&
|
|
34
|
+
!this._isRequestingSelf(request)
|
|
35
|
+
) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
24
38
|
}
|
|
25
39
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
40
|
+
if (
|
|
41
|
+
request.action &&
|
|
42
|
+
request.action.trim() !== "" &&
|
|
43
|
+
this.action &&
|
|
44
|
+
this.action !== ""
|
|
45
|
+
) {
|
|
46
|
+
// Check action
|
|
47
|
+
if (this.action !== "any" && request.action !== this.action) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
29
50
|
}
|
|
30
51
|
|
|
31
52
|
return true;
|
|
@@ -5,10 +5,15 @@ import { AuthorizationAllowance } from "./authorization-allowance";
|
|
|
5
5
|
|
|
6
6
|
export class HttpAuthzGuardUtil {
|
|
7
7
|
private _token: any;
|
|
8
|
+
public readonly params: any;
|
|
9
|
+
public readonly query: any;
|
|
8
10
|
|
|
9
11
|
constructor(private readonly context: ExecutionContext) {
|
|
10
12
|
const request = context.switchToHttp().getRequest();
|
|
11
|
-
const authorizationHeader = request.headers.
|
|
13
|
+
const authorizationHeader = request.headers.authorization;
|
|
14
|
+
if (!authorizationHeader) {
|
|
15
|
+
throw new HttpException("Unauthorized", HttpStatus.UNAUTHORIZED);
|
|
16
|
+
}
|
|
12
17
|
const bearerTokenParts = authorizationHeader.trim().split("Bearer ");
|
|
13
18
|
if (bearerTokenParts.length !== 2) {
|
|
14
19
|
throw new HttpException("Unauthorized", HttpStatus.UNAUTHORIZED);
|
|
@@ -21,6 +26,8 @@ export class HttpAuthzGuardUtil {
|
|
|
21
26
|
}
|
|
22
27
|
|
|
23
28
|
this._token = decodedToken;
|
|
29
|
+
this.params = request.params;
|
|
30
|
+
this.query = request.query;
|
|
24
31
|
}
|
|
25
32
|
|
|
26
33
|
public isAuthorized(...authzRequests: AuthorizationRequestInterface[]) {
|
|
@@ -55,6 +62,9 @@ export class HttpAuthzGuardUtil {
|
|
|
55
62
|
|
|
56
63
|
for (let i = 0; i < authzRequests.length; i++) {
|
|
57
64
|
const request = authzRequests[i];
|
|
65
|
+
if (!authorizationAllowances[i]) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
58
68
|
const allowance = authorizationAllowances[i];
|
|
59
69
|
if (!allowance.isRequestAllowed(request)) {
|
|
60
70
|
return false;
|
|
@@ -114,15 +114,15 @@ export class DefaultConfig implements JsonSerializableInterface<any> {
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
public get apiVersion(): string {
|
|
117
|
-
return process.env.API_VERSION;
|
|
117
|
+
return process.env.API_VERSION || "v1";
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
public get appPrefix(): string {
|
|
121
|
-
return process.env.APP_PREFIX;
|
|
121
|
+
return process.env.APP_PREFIX || "api";
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
public get docsPrefix(): string {
|
|
125
|
-
return process.env.DOCS_PREFIX;
|
|
125
|
+
return process.env.DOCS_PREFIX || "docs";
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
public get docsEnabled(): boolean {
|
|
@@ -152,7 +152,7 @@ export class DefaultConfig implements JsonSerializableInterface<any> {
|
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
public get logLevels(): string[] {
|
|
155
|
-
return process.env.LOG_LEVELS.trim().split(",");
|
|
155
|
+
return (process.env.LOG_LEVELS || "debug,info,error").trim().split(",");
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
public get httpPort(): number {
|
|
@@ -177,7 +177,7 @@ export class DefaultConfig implements JsonSerializableInterface<any> {
|
|
|
177
177
|
|
|
178
178
|
public get elasticsearch(): UrlInterface & PingConfigInterface {
|
|
179
179
|
return new ElasticsearchConfig(
|
|
180
|
-
process.env.ELASTICSEARCH_URL,
|
|
180
|
+
process.env.ELASTICSEARCH_URL || "http://elasticsearch:9200",
|
|
181
181
|
process.env.ELASTICSEARCH_PING_INTERVAL_SECONDS || "10"
|
|
182
182
|
);
|
|
183
183
|
}
|
package/src/util/index.ts
CHANGED