@cryptexlabs/codex-nodejs-common 0.12.9 → 0.12.11
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 +2 -1
- package/lib/src/middleware/api-headers-validation.middleware.js +11 -2
- package/lib/src/middleware/api-headers-validation.middleware.js.map +1 -1
- package/lib/src/util/date.util.d.ts +3 -1
- package/lib/src/util/date.util.js +15 -0
- package/lib/src/util/date.util.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 +2 -1
- package/src/middleware/api-headers-validation.middleware.ts +14 -4
- package/src/util/date.util.ts +21 -1
- package/src/util/index.ts +1 -0
package/lib/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cryptexlabs/codex-nodejs-common",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.11",
|
|
4
4
|
"description": "Common code for Codex framework",
|
|
5
5
|
"main": "lib/src/index.js",
|
|
6
6
|
"type": "commonjs",
|
|
@@ -53,6 +53,7 @@
|
|
|
53
53
|
"jsonwebtoken": "8.5.1",
|
|
54
54
|
"jwk-to-pem": "^2.0.6",
|
|
55
55
|
"kafkajs": "^2.2.4",
|
|
56
|
+
"moment": "^2.30.1",
|
|
56
57
|
"randomstring": "1.2.1",
|
|
57
58
|
"reflect-metadata": "0.1.13",
|
|
58
59
|
"uuid": "8.3.2",
|
|
@@ -94,12 +94,16 @@ let ApiHeadersValidationMiddleware = class ApiHeadersValidationMiddleware {
|
|
|
94
94
|
throw new common_1.BadRequestException("X-Client-Variant header is Empty. Variation of the client build. There can be different builds of the same version of a client such as 'dev', 'test' or 'demo'. Typically these variations would be configured to interact with different backends and have different debugging levels");
|
|
95
95
|
}
|
|
96
96
|
},
|
|
97
|
+
};
|
|
98
|
+
const optionalHeaders = {
|
|
97
99
|
"x-now": (context, now) => {
|
|
98
100
|
try {
|
|
99
|
-
|
|
101
|
+
if (now) {
|
|
102
|
+
new Date(now);
|
|
103
|
+
}
|
|
100
104
|
}
|
|
101
105
|
catch (e) {
|
|
102
|
-
throw new common_1.BadRequestException(
|
|
106
|
+
throw new common_1.BadRequestException(`X-Now header is invalid: '${now}'`);
|
|
103
107
|
}
|
|
104
108
|
},
|
|
105
109
|
};
|
|
@@ -119,6 +123,11 @@ let ApiHeadersValidationMiddleware = class ApiHeadersValidationMiddleware {
|
|
|
119
123
|
const header = req.headers[headerName];
|
|
120
124
|
validator(validationContext, header);
|
|
121
125
|
}
|
|
126
|
+
for (const headerName of Object.keys(optionalHeaders)) {
|
|
127
|
+
const validator = optionalHeaders[headerName];
|
|
128
|
+
const header = req.headers[headerName];
|
|
129
|
+
validator(validationContext, header);
|
|
130
|
+
}
|
|
122
131
|
}
|
|
123
132
|
next();
|
|
124
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-headers-validation.middleware.js","sourceRoot":"","sources":["../../../src/middleware/api-headers-validation.middleware.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api-headers-validation.middleware.js","sourceRoot":"","sources":["../../../src/middleware/api-headers-validation.middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DateUtil = void 0;
|
|
4
|
+
const moment_1 = require("moment");
|
|
4
5
|
class DateUtil {
|
|
5
6
|
static isValidISO8601Date(dateString) {
|
|
6
7
|
const regex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(.\d+)?(Z|[+-]\d{2}:\d{2})$/;
|
|
7
8
|
return regex.test(dateString);
|
|
8
9
|
}
|
|
10
|
+
static fromMysqlStringToISOString(date) {
|
|
11
|
+
if (!date) {
|
|
12
|
+
return date;
|
|
13
|
+
}
|
|
14
|
+
return ((0, moment_1.default)(date, "YYYY-MM-DD HH:mm:ss").toISOString(true).slice(0, 23) + "Z");
|
|
15
|
+
}
|
|
16
|
+
static toMysqlString(date) {
|
|
17
|
+
if (!date) {
|
|
18
|
+
return date;
|
|
19
|
+
}
|
|
20
|
+
return (0, moment_1.default)(date, "YYYY-MM-DDThh:mm:ssZ")
|
|
21
|
+
.utcOffset(0)
|
|
22
|
+
.format("YYYY-MM-DD HH:mm:ss");
|
|
23
|
+
}
|
|
9
24
|
}
|
|
10
25
|
exports.DateUtil = DateUtil;
|
|
11
26
|
//# sourceMappingURL=date.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.util.js","sourceRoot":"","sources":["../../../src/util/date.util.ts"],"names":[],"mappings":";;;AAAA,MAAa,QAAQ;IACZ,MAAM,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"date.util.js","sourceRoot":"","sources":["../../../src/util/date.util.ts"],"names":[],"mappings":";;;AAAA,mCAA4B;AAE5B,MAAa,QAAQ;IACZ,MAAM,CAAC,kBAAkB,CAAC,UAAkB;QACjD,MAAM,KAAK,GAAG,iEAAiE,CAAC;QAChF,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,0BAA0B,CAAC,IAAmB;QACnD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAW,CAAC;QACrB,CAAC;QACD,OAAO,CACL,IAAA,gBAAM,EAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CACzE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,IAAmB;QACtC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAW,CAAC;QACrB,CAAC;QACD,OAAO,IAAA,gBAAM,EAAC,IAAI,EAAE,sBAAsB,CAAC;aACxC,SAAS,CAAC,CAAC,CAAC;aACZ,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACnC,CAAC;CACF;AAvBD,4BAuBC"}
|
package/lib/src/util/index.d.ts
CHANGED
package/lib/src/util/index.js
CHANGED
|
@@ -18,4 +18,5 @@ __exportStar(require("./string.util"), exports);
|
|
|
18
18
|
__exportStar(require("./array.util"), exports);
|
|
19
19
|
__exportStar(require("./locale.util"), exports);
|
|
20
20
|
__exportStar(require("./time.util"), exports);
|
|
21
|
+
__exportStar(require("./date.util"), exports);
|
|
21
22
|
//# 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;AAC9B,8CAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B;AAC7B,gDAA8B;AAC9B,8CAA4B;AAC5B,8CAA4B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cryptexlabs/codex-nodejs-common",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.11",
|
|
4
4
|
"description": "Common code for Codex framework",
|
|
5
5
|
"main": "lib/src/index.js",
|
|
6
6
|
"type": "commonjs",
|
|
@@ -53,6 +53,7 @@
|
|
|
53
53
|
"jsonwebtoken": "8.5.1",
|
|
54
54
|
"jwk-to-pem": "^2.0.6",
|
|
55
55
|
"kafkajs": "^2.2.4",
|
|
56
|
+
"moment": "^2.30.1",
|
|
56
57
|
"randomstring": "1.2.1",
|
|
57
58
|
"reflect-metadata": "0.1.13",
|
|
58
59
|
"uuid": "8.3.2",
|
|
@@ -166,16 +166,20 @@ export class ApiHeadersValidationMiddleware implements NestMiddleware {
|
|
|
166
166
|
);
|
|
167
167
|
}
|
|
168
168
|
},
|
|
169
|
+
};
|
|
169
170
|
|
|
171
|
+
const optionalHeaders = {
|
|
170
172
|
/**
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
+
* Override the servers understanding of what "now" is. Allows you to go forward or backwards in time.
|
|
174
|
+
* Optional
|
|
173
175
|
*/
|
|
174
176
|
"x-now": (context: Context, now: string): void => {
|
|
175
177
|
try {
|
|
176
|
-
|
|
178
|
+
if (now) {
|
|
179
|
+
new Date(now);
|
|
180
|
+
}
|
|
177
181
|
} catch (e) {
|
|
178
|
-
throw new BadRequestException(
|
|
182
|
+
throw new BadRequestException(`X-Now header is invalid: '${now}'`);
|
|
179
183
|
}
|
|
180
184
|
},
|
|
181
185
|
};
|
|
@@ -205,6 +209,12 @@ export class ApiHeadersValidationMiddleware implements NestMiddleware {
|
|
|
205
209
|
const header = req.headers[headerName];
|
|
206
210
|
validator(validationContext, header);
|
|
207
211
|
}
|
|
212
|
+
|
|
213
|
+
for (const headerName of Object.keys(optionalHeaders)) {
|
|
214
|
+
const validator = optionalHeaders[headerName];
|
|
215
|
+
const header = req.headers[headerName];
|
|
216
|
+
validator(validationContext, header);
|
|
217
|
+
}
|
|
208
218
|
}
|
|
209
219
|
|
|
210
220
|
next();
|
package/src/util/date.util.ts
CHANGED
|
@@ -1,6 +1,26 @@
|
|
|
1
|
+
import moment from "moment";
|
|
2
|
+
|
|
1
3
|
export class DateUtil {
|
|
2
|
-
public static isValidISO8601Date(dateString) {
|
|
4
|
+
public static isValidISO8601Date(dateString: string) {
|
|
3
5
|
const regex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(.\d+)?(Z|[+-]\d{2}:\d{2})$/;
|
|
4
6
|
return regex.test(dateString);
|
|
5
7
|
}
|
|
8
|
+
|
|
9
|
+
static fromMysqlStringToISOString(date: string | Date): string {
|
|
10
|
+
if (!date) {
|
|
11
|
+
return date as any;
|
|
12
|
+
}
|
|
13
|
+
return (
|
|
14
|
+
moment(date, "YYYY-MM-DD HH:mm:ss").toISOString(true).slice(0, 23) + "Z"
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
static toMysqlString(date: string | Date): string {
|
|
19
|
+
if (!date) {
|
|
20
|
+
return date as any;
|
|
21
|
+
}
|
|
22
|
+
return moment(date, "YYYY-MM-DDThh:mm:ssZ")
|
|
23
|
+
.utcOffset(0)
|
|
24
|
+
.format("YYYY-MM-DD HH:mm:ss");
|
|
25
|
+
}
|
|
6
26
|
}
|
package/src/util/index.ts
CHANGED