@cryptexlabs/codex-nodejs-common 0.6.11 → 0.7.0
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 +4 -2
- package/lib/src/decorator/api-meta-headers.js +1 -1
- package/lib/src/logger/custom.logger.js +6 -0
- package/lib/src/logger/custom.logger.js.map +1 -1
- package/lib/src/middleware/api-headers-validation.middleware.d.ts +9 -0
- package/lib/src/middleware/api-headers-validation.middleware.js +124 -0
- package/lib/src/middleware/api-headers-validation.middleware.js.map +1 -0
- package/lib/src/response/rest.paginated.response.d.ts +4 -4
- package/lib/src/response/rest.response.d.ts +4 -4
- package/lib/src/response/rest.response.js.map +1 -1
- package/lib/src/service/elasticsearch/elasticsearch.pinger.js +1 -1
- package/lib/src/service/elasticsearch/elasticsearch.pinger.js.map +1 -1
- package/lib/src/service/kafka/kafka.service.js +3 -1
- package/lib/src/service/kafka/kafka.service.js.map +1 -1
- package/lib/src/service/socket/websocket.gateway.js +1 -1
- package/lib/src/service/socket/websocket.gateway.js.map +1 -1
- package/lib/src/util/date.util.d.ts +3 -0
- package/lib/src/util/date.util.js +11 -0
- package/lib/src/util/date.util.js.map +1 -0
- package/lib/src/util/locale.util.d.ts +1 -1
- package/lib/src/util/locale.util.js +5 -3
- package/lib/src/util/locale.util.js.map +1 -1
- package/lib/src/util/string.util.d.ts +1 -0
- package/lib/src/util/string.util.js +4 -0
- package/lib/src/util/string.util.js.map +1 -1
- package/package.json +4 -2
- package/src/decorator/api-meta-headers.ts +1 -1
- package/src/logger/custom.logger.ts +6 -0
- package/src/middleware/api-headers-validation.middleware.ts +197 -0
- package/src/response/rest.paginated.response.ts +4 -4
- package/src/response/rest.response.ts +4 -4
- package/src/service/elasticsearch/elasticsearch.pinger.ts +4 -1
- package/src/service/kafka/kafka.service.ts +3 -1
- package/src/service/socket/websocket.gateway.ts +1 -1
- package/src/util/date.util.ts +6 -0
- package/src/util/locale.util.ts +11 -6
- package/src/util/string.util.ts +5 -0
package/lib/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cryptexlabs/codex-nodejs-common",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Common code for Assistant applications",
|
|
5
5
|
"main": "lib/src/index.js",
|
|
6
6
|
"repository": "git@gitlab.com:cryptexlabs/public/codex-nodejs-common.git",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"Josh Woodcock <josh.woodcock@cryptexlabs.com>"
|
|
13
13
|
],
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"@cryptexlabs/codex-data-model": "0.1.
|
|
15
|
+
"@cryptexlabs/codex-data-model": "0.1.5"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@elastic/elasticsearch": "8.2.1",
|
|
@@ -29,6 +29,8 @@
|
|
|
29
29
|
"@types/joi": "14.3.4",
|
|
30
30
|
"@types/jsonwebtoken": "8.5.5",
|
|
31
31
|
"@types/node": "16.11.7",
|
|
32
|
+
"class-transformer": "^0.5.1",
|
|
33
|
+
"class-validator": "^0.14.1",
|
|
32
34
|
"dotenv": "8.2.0",
|
|
33
35
|
"express": "4.17.1",
|
|
34
36
|
"fastq": "1.13.0",
|
|
@@ -48,6 +48,12 @@ let CustomLogger = class CustomLogger {
|
|
|
48
48
|
message = error;
|
|
49
49
|
useTrace = trace;
|
|
50
50
|
}
|
|
51
|
+
if (!message && error.message) {
|
|
52
|
+
message = error.message;
|
|
53
|
+
}
|
|
54
|
+
if (!useTrace && error.stack) {
|
|
55
|
+
useTrace = error.stack;
|
|
56
|
+
}
|
|
51
57
|
if (this.filterContext.length > 0) {
|
|
52
58
|
if (this.filterContext.includes(context)) {
|
|
53
59
|
this.logger.error(message, useTrace, context);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom.logger.js","sourceRoot":"","sources":["../../../src/logger/custom.logger.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAmE;AAGnE,IAAa,YAAY,GAAzB,MAAa,YAAY;IAIvB,YACU,iBAAyB,MAAM,EACvC,gBAA0B,EAAE,EAC5B,kBAA4B,EAC5B,MAAsB;QAHd,mBAAc,GAAd,cAAc,CAAiB;QAKvC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,cAAc,EAAE;gBACvC,SAAS,EAAE,kBAAkB;aAC9B,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,GAAG,CAAC,OAAe,EAAE,UAAkB,EAAE;QAC9C,IAAI,OAAO,KAAK,EAAE,EAAE;YAClB,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;SAC/B;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aACnC;SACF;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACnC;IACH,CAAC;IAEM,KAAK,CACV,KAAqB,EACrB,KAAa,EACb,UAAkB,OAAO;QAEzB,IAAI,OAAO,CAAC;QACZ,IAAI,QAAQ,CAAC;QACb,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YACxB,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;SACxB;aAAM;YACL,OAAO,GAAG,KAAK,CAAC;YAChB,QAAQ,GAAG,KAAK,CAAC;SAClB;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;aAC/C;SACF;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SAC/C;IACH,CAAC;IAEM,KAAK,CAAC,OAAY,EAAE,UAAkB,OAAO;QAClD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IAEM,OAAO,CAAC,OAAY,EAAE,UAAkB,SAAS;QACtD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IAEM,IAAI,CAAC,OAAY,EAAE,UAAkB,MAAM;QAChD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IAEM,IAAI,CAAC,OAAY,EAAE,UAAkB,MAAM;QAChD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;CACF,CAAA;
|
|
1
|
+
{"version":3,"file":"custom.logger.js","sourceRoot":"","sources":["../../../src/logger/custom.logger.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAmE;AAGnE,IAAa,YAAY,GAAzB,MAAa,YAAY;IAIvB,YACU,iBAAyB,MAAM,EACvC,gBAA0B,EAAE,EAC5B,kBAA4B,EAC5B,MAAsB;QAHd,mBAAc,GAAd,cAAc,CAAiB;QAKvC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,cAAc,EAAE;gBACvC,SAAS,EAAE,kBAAkB;aAC9B,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,GAAG,CAAC,OAAe,EAAE,UAAkB,EAAE;QAC9C,IAAI,OAAO,KAAK,EAAE,EAAE;YAClB,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;SAC/B;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aACnC;SACF;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACnC;IACH,CAAC;IAEM,KAAK,CACV,KAAqB,EACrB,KAAa,EACb,UAAkB,OAAO;QAEzB,IAAI,OAAO,CAAC;QACZ,IAAI,QAAQ,CAAC;QACb,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YACxB,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;SACxB;aAAM;YACL,OAAO,GAAG,KAAK,CAAC;YAChB,QAAQ,GAAG,KAAK,CAAC;SAClB;QACD,IAAI,CAAC,OAAO,IAAM,KAAa,CAAC,OAAe,EAAE;YAC/C,OAAO,GAAI,KAAa,CAAC,OAAO,CAAC;SAClC;QACD,IAAI,CAAC,QAAQ,IAAM,KAAa,CAAC,KAAa,EAAE;YAC9C,QAAQ,GAAI,KAAa,CAAC,KAAK,CAAC;SACjC;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;aAC/C;SACF;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SAC/C;IACH,CAAC;IAEM,KAAK,CAAC,OAAY,EAAE,UAAkB,OAAO;QAClD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IAEM,OAAO,CAAC,OAAY,EAAE,UAAkB,SAAS;QACtD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IAEM,IAAI,CAAC,OAAY,EAAE,UAAkB,MAAM;QAChD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IAEM,IAAI,CAAC,OAAY,EAAE,UAAkB,MAAM;QAChD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;CACF,CAAA;AA/EY,YAAY;IADxB,mBAAU,EAAE;;GACA,YAAY,CA+ExB;AA/EY,oCAAY"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { NestMiddleware } from "@nestjs/common";
|
|
2
|
+
import { DefaultConfig } from "../config";
|
|
3
|
+
import { ContextBuilder } from "../context";
|
|
4
|
+
export declare class ApiHeadersValidationMiddleware implements NestMiddleware {
|
|
5
|
+
private readonly config;
|
|
6
|
+
private readonly contextBuilder;
|
|
7
|
+
constructor(config: DefaultConfig, contextBuilder: ContextBuilder);
|
|
8
|
+
use(req: any, res: any, next: () => void): any;
|
|
9
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ApiHeadersValidationMiddleware = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const config_1 = require("../config");
|
|
18
|
+
const util_1 = require("../util");
|
|
19
|
+
const context_1 = require("../context");
|
|
20
|
+
const date_util_1 = require("../util/date.util");
|
|
21
|
+
let ApiHeadersValidationMiddleware = class ApiHeadersValidationMiddleware {
|
|
22
|
+
constructor(config, contextBuilder) {
|
|
23
|
+
this.config = config;
|
|
24
|
+
this.contextBuilder = contextBuilder;
|
|
25
|
+
}
|
|
26
|
+
use(req, res, next) {
|
|
27
|
+
const requiredHeaders = {
|
|
28
|
+
"x-correlation-id": (context, correlationId) => {
|
|
29
|
+
if (correlationId.trim() === "") {
|
|
30
|
+
throw new common_1.BadRequestException(`X-Correlation-Id header is empty. Correlation Id is Unique identifier generated when a person takes an action or a system time based event is triggered. This correlation id should be passed between systems and should be only created if none exists. Stops being re-used when an action is required from a person. Format is UUID V4`);
|
|
31
|
+
}
|
|
32
|
+
if (!util_1.StringUtil.isValidUUIDv4(correlationId)) {
|
|
33
|
+
throw new common_1.BadRequestException(`Invalid X-Correlation-Id header. Must be UUID V4. For example: '57d7f725-420d-45b5-9f92-101c6c0cffc3'`);
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"accept-language": (context, acceptLanguage) => {
|
|
37
|
+
if (acceptLanguage.trim() === "") {
|
|
38
|
+
throw new common_1.BadRequestException(`Accept-Language header is empty. For example 'en-US'`);
|
|
39
|
+
}
|
|
40
|
+
const parsedLanguage = util_1.LocaleUtil.getLocaleFromAcceptLanguageHeader(context, acceptLanguage);
|
|
41
|
+
if (!parsedLanguage) {
|
|
42
|
+
throw new common_1.BadRequestException(`Invalid Accept-Language header. Must be ISO 639 alpha-1 language code. Or standard language supported by a web browser. For example: 'en-US' or 'en-US,en;q=0.9'`);
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"x-started": (context, started) => {
|
|
46
|
+
if (started.trim() === "") {
|
|
47
|
+
throw new common_1.BadRequestException(`X-Started header is empty`);
|
|
48
|
+
}
|
|
49
|
+
if (!date_util_1.DateUtil.isValidISO8601Date(started)) {
|
|
50
|
+
throw new common_1.BadRequestException(`Invalid date format for X-Started header. Must be ISO 8601 format. For example '2024-02-29T19:47:57.366Z'`);
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"x-created": (context, created) => {
|
|
54
|
+
if (created.trim() === "") {
|
|
55
|
+
throw new common_1.BadRequestException(`X-Created header is empty`);
|
|
56
|
+
}
|
|
57
|
+
if (!date_util_1.DateUtil.isValidISO8601Date(created)) {
|
|
58
|
+
throw new common_1.BadRequestException(`Invalid date format for X-Created header. Must be ISO 8601 format. For example '2024-02-29T19:47:57.366Z'`);
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"x-context-category": (context, contextCategory) => {
|
|
62
|
+
if (contextCategory.trim() === "") {
|
|
63
|
+
throw new common_1.BadRequestException(`X-Context-Category header is empty. A category for the context of the request. For example 'test', 'performance test' or 'debug'`);
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"x-context-id": (context, contextId) => {
|
|
67
|
+
if (contextId.trim() === "") {
|
|
68
|
+
throw new common_1.BadRequestException(`X-Context-Id header is empty`);
|
|
69
|
+
}
|
|
70
|
+
if (!util_1.StringUtil.isValidUUIDv4(contextId) && contextId !== "none") {
|
|
71
|
+
throw new common_1.BadRequestException(`Invalid X-Context-Id header. Must be UUID V4 or 'none'. A unique context identifier used for correlating logs and metrics usually for performance or experimental testing`);
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"x-client-id": (context, clientId) => {
|
|
75
|
+
if (clientId.trim() === "") {
|
|
76
|
+
throw new common_1.BadRequestException(`X-Client-Id header is empty. A unique identifier for the client to help identify exactly which application or third party is making the requests. Should be identical for every client. Used to uniquely identify projects. You can hard code this string in your project. Its not a secret. Should NOT be different for every request.`);
|
|
77
|
+
}
|
|
78
|
+
if (!util_1.StringUtil.isValidUUIDv4(clientId)) {
|
|
79
|
+
throw new common_1.BadRequestException(`Invalid X-Client-Id header. Must be UUID V4 format`);
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"x-client-name": (context, clientName) => {
|
|
83
|
+
if (clientName.trim() === "") {
|
|
84
|
+
throw new common_1.BadRequestException(`X-Client-Name header is empty. Canonical name of the client that is making the API call. Such as "BlueBerry Picker App"`);
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"x-client-version": (context, clientVersion) => {
|
|
88
|
+
if (clientVersion.trim() === "") {
|
|
89
|
+
throw new common_1.BadRequestException(`X-Client-Version header is empty. Version of the client that is making the API call. Such as '1.3.8'`);
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"x-client-variant": (context, clientVariant) => {
|
|
93
|
+
if (clientVariant.trim() === "") {
|
|
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
|
+
}
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
if (req.path.startsWith(`/${this.config.appPrefix}`)) {
|
|
99
|
+
const missingHeaders = Object.keys(requiredHeaders).filter((header) => !req.headers[header.toLowerCase()]);
|
|
100
|
+
if (missingHeaders.length > 0) {
|
|
101
|
+
throw new common_1.BadRequestException(`Missing required headers: ${missingHeaders.join(", ")}`);
|
|
102
|
+
}
|
|
103
|
+
const validationContext = this.contextBuilder
|
|
104
|
+
.build()
|
|
105
|
+
.setMetaFromHeaders(req.headers)
|
|
106
|
+
.getResult();
|
|
107
|
+
for (const headerName of Object.keys(requiredHeaders)) {
|
|
108
|
+
const validator = requiredHeaders[headerName];
|
|
109
|
+
const header = req[headerName];
|
|
110
|
+
validator(validationContext, header);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
next();
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
ApiHeadersValidationMiddleware = __decorate([
|
|
117
|
+
common_1.Injectable(),
|
|
118
|
+
__param(0, common_1.Inject("CONFIG")),
|
|
119
|
+
__param(1, common_1.Inject("CONTEXT_BUILDER")),
|
|
120
|
+
__metadata("design:paramtypes", [config_1.DefaultConfig,
|
|
121
|
+
context_1.ContextBuilder])
|
|
122
|
+
], ApiHeadersValidationMiddleware);
|
|
123
|
+
exports.ApiHeadersValidationMiddleware = ApiHeadersValidationMiddleware;
|
|
124
|
+
//# sourceMappingURL=api-headers-validation.middleware.js.map
|
|
@@ -0,0 +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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"}
|
|
@@ -2,9 +2,9 @@ import { HttpStatus } from "@nestjs/common";
|
|
|
2
2
|
import { MessageInterface, MessageMetaInterface } from "@cryptexlabs/codex-data-model";
|
|
3
3
|
import { JsonSerializableInterface } from "../message";
|
|
4
4
|
import { Context } from "../context";
|
|
5
|
-
export declare class RestPaginatedResponse implements JsonSerializableInterface<MessageInterface<
|
|
6
|
-
readonly data:
|
|
5
|
+
export declare class RestPaginatedResponse<L> implements JsonSerializableInterface<MessageInterface<L[]>> {
|
|
6
|
+
readonly data: L[];
|
|
7
7
|
readonly meta: MessageMetaInterface;
|
|
8
|
-
constructor(context: Context, status: HttpStatus, totalRecords: number, type: string, data:
|
|
9
|
-
toJSON(): MessageInterface<
|
|
8
|
+
constructor(context: Context, status: HttpStatus, totalRecords: number, type: string, data: L[]);
|
|
9
|
+
toJSON(): MessageInterface<L[]>;
|
|
10
10
|
}
|
|
@@ -2,9 +2,9 @@ import { HttpStatus } from "@nestjs/common";
|
|
|
2
2
|
import { MessageInterface, MessageMetaInterface } from "@cryptexlabs/codex-data-model";
|
|
3
3
|
import { JsonSerializableInterface } from "../message";
|
|
4
4
|
import { Context } from "../context";
|
|
5
|
-
export declare class RestResponse implements JsonSerializableInterface<MessageInterface<
|
|
6
|
-
readonly data:
|
|
5
|
+
export declare class RestResponse<T> implements JsonSerializableInterface<MessageInterface<T>> {
|
|
6
|
+
readonly data: T;
|
|
7
7
|
readonly meta: MessageMetaInterface;
|
|
8
|
-
constructor(context: Context, status: HttpStatus, type: string, data:
|
|
9
|
-
toJSON(): MessageInterface<
|
|
8
|
+
constructor(context: Context, status: HttpStatus, type: string, data: T);
|
|
9
|
+
toJSON(): MessageInterface<T>;
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.response.js","sourceRoot":"","sources":["../../../src/response/rest.response.ts"],"names":[],"mappings":";;;AAOA,6DAAwD;AAExD,MAAa,YAAY;IAIvB,YACE,OAAgB,EAChB,MAAkB,EAClB,IAAY,EACI,
|
|
1
|
+
{"version":3,"file":"rest.response.js","sourceRoot":"","sources":["../../../src/response/rest.response.ts"],"names":[],"mappings":";;;AAOA,6DAAwD;AAExD,MAAa,YAAY;IAIvB,YACE,OAAgB,EAChB,MAAkB,EAClB,IAAY,EACI,IAAO;QAAP,SAAI,GAAJ,IAAI,CAAG;QAEvB,IAAI,CAAC,IAAI,GAAG,IAAI,qCAAgB,CAC9B,MAAM,EACN,IAAI,EACJ,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,OAAO,CACQ,CAAC;IAC5B,CAAC;IAEM,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;CACF;AA1BD,oCA0BC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elasticsearch.pinger.js","sourceRoot":"","sources":["../../../../src/service/elasticsearch/elasticsearch.pinger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,yCAA4C;AAG5C,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAO9B,YACoD,oBAAoB,EACnC,MAAoB;QADL,yBAAoB,GAApB,oBAAoB,CAAA;QACnC,WAAM,GAAN,MAAM,CAAc;QAEvD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,OAAO;SACR;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;aAC3D;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAEM,KAAK,CAAC,YAAY;QACvB,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;gBAClC,IAAI,IAAI,CAAC,KAAK,EAAE;oBACd,aAAa,CAAC,UAAU,CAAC,CAAC;oBAC1B,OAAO,CAAC,SAAS,CAAC,CAAC;iBACpB;YACH,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;IACL,CAAC;IACD,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACnC,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;gBACtD,OAAO,CAAC,MAAM,CAAC,CAAC;aACjB;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,MAAM,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"elasticsearch.pinger.js","sourceRoot":"","sources":["../../../../src/service/elasticsearch/elasticsearch.pinger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,yCAA4C;AAG5C,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAO9B,YACoD,oBAAoB,EACnC,MAAoB;QADL,yBAAoB,GAApB,oBAAoB,CAAA;QACnC,WAAM,GAAN,MAAM,CAAc;QAEvD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,OAAO;SACR;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;aAC3D;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAEM,KAAK,CAAC,YAAY;QACvB,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;gBAClC,IAAI,IAAI,CAAC,KAAK,EAAE;oBACd,aAAa,CAAC,UAAU,CAAC,CAAC;oBAC1B,OAAO,CAAC,SAAS,CAAC,CAAC;iBACpB;YACH,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;IACL,CAAC;IACD,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACnC,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;gBACtD,OAAO,CAAC,MAAM,CAAC,CAAC;aACjB;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,CAAC,CAAC,OAAO,IAAI,iCAAiC,EAC9C,CAAC,CAAC,KAAK,IAAI,EAAE,CACd,CAAC;gBACF,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA9DY,mBAAmB;IAD/B,mBAAU,EAAE;IASR,WAAA,eAAM,CAAC,uBAAuB,CAAC,CAAA;IAC/B,WAAA,eAAM,CAAC,QAAQ,CAAC,CAAA;6CAA0B,qBAAY;GAT9C,mBAAmB,CA8D/B;AA9DY,kDAAmB"}
|
|
@@ -92,7 +92,9 @@ let KafkaService = class KafkaService {
|
|
|
92
92
|
var _a;
|
|
93
93
|
const error = (_a = event === null || event === void 0 ? void 0 : event.payload) === null || _a === void 0 ? void 0 : _a.error;
|
|
94
94
|
this.logger.log("Consumer is crashing!");
|
|
95
|
-
|
|
95
|
+
if (error) {
|
|
96
|
+
this.logger.error(JSON.stringify(error));
|
|
97
|
+
}
|
|
96
98
|
await err("Consumer crashed");
|
|
97
99
|
});
|
|
98
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kafka.service.js","sourceRoot":"","sources":["../../../../src/service/kafka/kafka.service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"kafka.service.js","sourceRoot":"","sources":["../../../../src/service/kafka/kafka.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AACnE,qCASiB;AACjB,yCAA6C;AAE7C,iDAA6C;AAG7C,IAAa,YAAY,GAAzB,MAAa,YAAY;IAMvB,YACqC,MAAqB,EACrB,MAAqB,EACxD,cAAmB,EAAE;QAFc,WAAM,GAAN,MAAM,CAAe;QACrB,WAAM,GAAN,MAAM,CAAe;QAGxD,MAAM,iBAAiB,mBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAChC,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,SAAS,IACX,WAAW,CACf,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;YACzB,iBAAiB,CAAC,IAAI,GAAG;gBACvB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAmB;gBACpE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;gBAC/B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;aAChC,CAAC;YACF,iBAAiB,CAAC,GAAG,GAAG,IAAI,CAAC;SAC9B;QAED,MAAM,WAAW,GAAG,IAAI,0BAAW,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAK,iCAClB,iBAAiB,KACpB,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACvB,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,CAAC,IACD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACrC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACrC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACvC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;SACxC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;SACxC;IACH,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC7B,aAAqB,EACrB,MAAM,GAAG,EAAE;QAEX,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,iBACxC,OAAO,EAAE,aAAa,IACnB,MAAM,EACT,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,kBAAkB;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,MAA2B,EAC3B,QAA4D,EAC5D,GAAsC;QAEtC,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAC/D,CAAC;SACH;QACD,IAAI;YACF,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SAC7B;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;SACvC;QAED,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;YAC5B,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;gBACnD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBACd,KAAK;oBACL,SAAS;oBACT,OAAO,EAAE;wBACP,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;qBAChC;iBACF,CAAC,CAAC;gBACH,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACjC,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;YACvE,MAAM,KAAK,SAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,0CAAE,KAAK,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACzC,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;aAC1C;YACD,MAAM,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC9B,MAA2B,EAC3B,QAA4D;QAE5D,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE/B,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC9D,CAAC;SACH;QACD,IAAI;YACF,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE5B,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAEtC,MAAM,OAAO,GAAG;gBACd,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;oBACtB,WAAW,EAAE,KAAK,EAAE,cAAkC,EAAE,EAAE;wBACxD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;wBACrD,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBACjC,CAAC;iBACF,CAAC;aACH,CAAC;YACF,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC5B;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;SACvC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAA2B;QAC1D,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1B;SACF;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAC1D,MAAM,YAAY,GAAmB,EAAE,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;YAChC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAClC,MAAM,WAAW,GAAiB;oBAChC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB;oBAClD,KAAK;iBACN,CAAC;gBACF,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAChC;SACF;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;gBAClC,cAAc,EAAE,IAAI;gBACpB,MAAM,EAAE,YAAY;aACrB,CAAC,CAAC;SACJ;IACH,CAAC;IAGM,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,OAAY;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,IAAI,aAAa,KAAK,EAAE,CAAC,CAAC;QACzE,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAC7B,KAAK;YACL,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,QAAe;QACrD,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;SAC/D;QAED,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAC7B,KAAK;YACL,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAoB7B,IAAI,uBAAuB,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,cAAc,CAAC,EAAE,CACpB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,EACrC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YACpB,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;YAErC,uBAAuB,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAC/D,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE;gBAC9B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;oBAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;oBAChE,MAAM,CAAC,GAAG,KAAK,IAAI,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC;iBACzC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC,EACD,EAAE,CACH,CAAC;QACJ,CAAC,CACF,CAAC;QAYF,IAAI,cAAc,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;YACxE,IAAI,cAAc,KAAK,KAAK,EAAE;gBAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjB;YAED,cAAc,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;QAMH,IAAI,CAAC,cAAc,CAAC,EAAE,CACpB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,iBAAiB,EAC5C,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YACpB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;YAEhD,uBAAuB,CAAC,GAAG,KAAK,IAAI,SAAS,EAAE,CAAC,GAAG,SAAS,KAAK,GAAG,CAAC;YAErE,IACE,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CACxD,OAAO,CAAC,QAAQ,CAAC,CAClB,EACD;gBACA,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjB;YAED,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC,CACF,CAAC;QAGF,MAAM,UAAU,GAAG,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEvE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACtB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC3B,IAAI;oBACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;oBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACrB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;oBACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACjB;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACjB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACvB,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;gBAC5B,IAAI;oBACF,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;iBACzB;wBAAS;oBACR,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;iBACjC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAvTY,YAAY;IADxB,mBAAU,EAAE;IAQR,WAAA,eAAM,CAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,eAAM,CAAC,QAAQ,CAAC,CAAA;qCAD0B,sBAAa;GAP/C,YAAY,CAuTxB;AAvTY,oCAAY"}
|
|
@@ -96,7 +96,7 @@ let WebsocketGateway = class WebsocketGateway {
|
|
|
96
96
|
phrase: "unknown-error",
|
|
97
97
|
locale: locale.i18n,
|
|
98
98
|
});
|
|
99
|
-
const developerErrorMessage = e.message;
|
|
99
|
+
const developerErrorMessage = e.message || "Unknown Websocket Error";
|
|
100
100
|
this.logger.error(developerErrorMessage, e.trace);
|
|
101
101
|
const errorMessage = new response_1.ErrorHttpResponse(common_1.HttpStatus.BAD_REQUEST, locale, { user: userMessage, developer: developerErrorMessage }, new Error().stack, this.config, message.meta.correlationId, now);
|
|
102
102
|
client.send(JSON.stringify(errorMessage));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.gateway.js","sourceRoot":"","sources":["../../../../src/service/socket/websocket.gateway.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"websocket.gateway.js","sourceRoot":"","sources":["../../../../src/service/socket/websocket.gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateUtil = void 0;
|
|
4
|
+
class DateUtil {
|
|
5
|
+
static isValidISO8601Date(dateString) {
|
|
6
|
+
const regex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(.\d+)?(Z|[+-]\d{2}:\d{2})$/;
|
|
7
|
+
return regex.test(dateString);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.DateUtil = DateUtil;
|
|
11
|
+
//# sourceMappingURL=date.util.js.map
|
|
@@ -0,0 +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,UAAU;QACzC,MAAM,KAAK,GAAG,iEAAiE,CAAC;QAChF,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;CACF;AALD,4BAKC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Locale } from "@cryptexlabs/codex-data-model";
|
|
2
2
|
import { Context } from "../context";
|
|
3
3
|
export declare class LocaleUtil {
|
|
4
|
-
|
|
4
|
+
static getLocaleFromAcceptLanguageHeader(context: Context, langCode: string): Locale;
|
|
5
5
|
static getLocaleFromHeaders(headers: Record<string, string>, context: Context): Locale;
|
|
6
6
|
}
|
|
@@ -6,9 +6,7 @@ const common_1 = require("@nestjs/common");
|
|
|
6
6
|
const exception_1 = require("../exception");
|
|
7
7
|
const locales_1 = require("../locales/locales");
|
|
8
8
|
class LocaleUtil {
|
|
9
|
-
|
|
10
|
-
static getLocaleFromHeaders(headers, context) {
|
|
11
|
-
const langCode = headers["accept-language"] || headers["Accept-Language"];
|
|
9
|
+
static getLocaleFromAcceptLanguageHeader(context, langCode) {
|
|
12
10
|
if (!langCode) {
|
|
13
11
|
throw new exception_1.FriendlyHttpException(`Accept language header is not set`, context, locales_1.i18nData.__({ phrase: "an-error-occurred", locale: "en-US" }), common_1.HttpStatus.BAD_REQUEST);
|
|
14
12
|
}
|
|
@@ -48,6 +46,10 @@ class LocaleUtil {
|
|
|
48
46
|
}
|
|
49
47
|
return new codex_data_model_1.Locale(language, country);
|
|
50
48
|
}
|
|
49
|
+
static getLocaleFromHeaders(headers, context) {
|
|
50
|
+
const langCode = headers["accept-language"] || headers["Accept-Language"];
|
|
51
|
+
return this.getLocaleFromAcceptLanguageHeader(context, langCode);
|
|
52
|
+
}
|
|
51
53
|
}
|
|
52
54
|
exports.LocaleUtil = LocaleUtil;
|
|
53
55
|
//# sourceMappingURL=locale.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale.util.js","sourceRoot":"","sources":["../../../src/util/locale.util.ts"],"names":[],"mappings":";;;AAAA,oEAMuC;AACvC,2CAA4C;AAC5C,4CAAqD;AAErD,gDAA8C;AAE9C,MAAa,UAAU;
|
|
1
|
+
{"version":3,"file":"locale.util.js","sourceRoot":"","sources":["../../../src/util/locale.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,10 @@ class StringUtil {
|
|
|
35
35
|
static byteArray(str) {
|
|
36
36
|
return [...Buffer.from(str)];
|
|
37
37
|
}
|
|
38
|
+
static isValidUUIDv4(uuid) {
|
|
39
|
+
const regex = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
40
|
+
return regex.test(uuid);
|
|
41
|
+
}
|
|
38
42
|
}
|
|
39
43
|
exports.StringUtil = StringUtil;
|
|
40
44
|
//# sourceMappingURL=string.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.util.js","sourceRoot":"","sources":["../../../src/util/string.util.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AAEjC,MAAa,UAAU;IACrB,gBAAuB,CAAC;IACjB,MAAM,CAAC,aAAa,CAAC,GAAW;QACrC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC;IAC3E,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,IAAY,EAAE,GAAW;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE;YAC9B,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE;YACnC,IACE,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAC5D,UAAU,CACX,EACD;gBACA,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,GAAW;QACpC,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,GAAW;QAC9B,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,GAAW;QAC9B,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,GAAW;QACjC,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"string.util.js","sourceRoot":"","sources":["../../../src/util/string.util.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AAEjC,MAAa,UAAU;IACrB,gBAAuB,CAAC;IACjB,MAAM,CAAC,aAAa,CAAC,GAAW;QACrC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC;IAC3E,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,IAAY,EAAE,GAAW;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE;YAC9B,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE;YACnC,IACE,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAC5D,UAAU,CACX,EACD;gBACA,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,GAAW;QACpC,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,GAAW;QAC9B,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,GAAW;QAC9B,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,GAAW;QACjC,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,IAAI;QAC9B,MAAM,KAAK,GAAG,wEAAwE,CAAC;QACvF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF;AAhDD,gCAgDC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cryptexlabs/codex-nodejs-common",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Common code for Assistant applications",
|
|
5
5
|
"main": "lib/src/index.js",
|
|
6
6
|
"repository": "git@gitlab.com:cryptexlabs/public/codex-nodejs-common.git",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"Josh Woodcock <josh.woodcock@cryptexlabs.com>"
|
|
13
13
|
],
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"@cryptexlabs/codex-data-model": "0.1.
|
|
15
|
+
"@cryptexlabs/codex-data-model": "0.1.5"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@elastic/elasticsearch": "8.2.1",
|
|
@@ -29,6 +29,8 @@
|
|
|
29
29
|
"@types/joi": "14.3.4",
|
|
30
30
|
"@types/jsonwebtoken": "8.5.5",
|
|
31
31
|
"@types/node": "16.11.7",
|
|
32
|
+
"class-transformer": "^0.5.1",
|
|
33
|
+
"class-validator": "^0.14.1",
|
|
32
34
|
"dotenv": "8.2.0",
|
|
33
35
|
"express": "4.17.1",
|
|
34
36
|
"fastq": "1.13.0",
|
|
@@ -49,6 +49,12 @@ export class CustomLogger implements LoggerService {
|
|
|
49
49
|
message = error;
|
|
50
50
|
useTrace = trace;
|
|
51
51
|
}
|
|
52
|
+
if (!message && ((error as any).message as any)) {
|
|
53
|
+
message = (error as any).message;
|
|
54
|
+
}
|
|
55
|
+
if (!useTrace && ((error as any).stack as any)) {
|
|
56
|
+
useTrace = (error as any).stack;
|
|
57
|
+
}
|
|
52
58
|
|
|
53
59
|
if (this.filterContext.length > 0) {
|
|
54
60
|
if (this.filterContext.includes(context)) {
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BadRequestException,
|
|
3
|
+
Inject,
|
|
4
|
+
Injectable,
|
|
5
|
+
NestMiddleware,
|
|
6
|
+
} from "@nestjs/common";
|
|
7
|
+
import { DefaultConfig } from "../config";
|
|
8
|
+
import { ValidLanguageCodes } from "@cryptexlabs/codex-data-model";
|
|
9
|
+
import { LocaleUtil, StringUtil } from "../util";
|
|
10
|
+
import { Context, ContextBuilder } from "../context";
|
|
11
|
+
import { DateUtil } from "../util/date.util";
|
|
12
|
+
|
|
13
|
+
@Injectable()
|
|
14
|
+
export class ApiHeadersValidationMiddleware implements NestMiddleware {
|
|
15
|
+
constructor(
|
|
16
|
+
@Inject("CONFIG") private readonly config: DefaultConfig,
|
|
17
|
+
@Inject("CONTEXT_BUILDER") private readonly contextBuilder: ContextBuilder
|
|
18
|
+
) {}
|
|
19
|
+
|
|
20
|
+
use(req: any, res: any, next: () => void): any {
|
|
21
|
+
const requiredHeaders = {
|
|
22
|
+
/**
|
|
23
|
+
* Unique identifier generated when a person takes an action or a system time based event is triggered
|
|
24
|
+
* This correlation id should be passed between systems and should be only created if none exists
|
|
25
|
+
* Stops being re-used when an action is required from a person
|
|
26
|
+
* Format is UUID V4
|
|
27
|
+
*/
|
|
28
|
+
"x-correlation-id": (context: Context, correlationId: string): void => {
|
|
29
|
+
if (correlationId.trim() === "") {
|
|
30
|
+
throw new BadRequestException(
|
|
31
|
+
`X-Correlation-Id header is empty. Correlation Id is Unique identifier generated when a person takes an action or a system time based event is triggered. This correlation id should be passed between systems and should be only created if none exists. Stops being re-used when an action is required from a person. Format is UUID V4`
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
if (!StringUtil.isValidUUIDv4(correlationId)) {
|
|
35
|
+
throw new BadRequestException(
|
|
36
|
+
`Invalid X-Correlation-Id header. Must be UUID V4. For example: '57d7f725-420d-45b5-9f92-101c6c0cffc3'`
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* ISO 639 alpha-1 language code
|
|
43
|
+
* Every endpoint must be able to receive and pass along this property
|
|
44
|
+
*/
|
|
45
|
+
"accept-language": (context: Context, acceptLanguage: string): void => {
|
|
46
|
+
if (acceptLanguage.trim() === "") {
|
|
47
|
+
throw new BadRequestException(
|
|
48
|
+
`Accept-Language header is empty. For example 'en-US'`
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
const parsedLanguage = LocaleUtil.getLocaleFromAcceptLanguageHeader(
|
|
52
|
+
context,
|
|
53
|
+
acceptLanguage
|
|
54
|
+
);
|
|
55
|
+
if (!parsedLanguage) {
|
|
56
|
+
throw new BadRequestException(
|
|
57
|
+
`Invalid Accept-Language header. Must be ISO 639 alpha-1 language code. Or standard language supported by a web browser. For example: 'en-US' or 'en-US,en;q=0.9'`
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* UTC timestamp in ISO 8601 format for when the correlation id was created
|
|
64
|
+
* This timestamp should be passed between systems and should be only created if none exists
|
|
65
|
+
*/
|
|
66
|
+
"x-started": (context: Context, started: string): void => {
|
|
67
|
+
if (started.trim() === "") {
|
|
68
|
+
throw new BadRequestException(`X-Started header is empty`);
|
|
69
|
+
}
|
|
70
|
+
if (!DateUtil.isValidISO8601Date(started)) {
|
|
71
|
+
throw new BadRequestException(
|
|
72
|
+
`Invalid date format for X-Started header. Must be ISO 8601 format. For example '2024-02-29T19:47:57.366Z'`
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* UTC timestamp in ISO 8601 format for when this particular message was created
|
|
79
|
+
*/
|
|
80
|
+
"x-created": (context: Context, created: string): void => {
|
|
81
|
+
if (created.trim() === "") {
|
|
82
|
+
throw new BadRequestException(`X-Created header is empty`);
|
|
83
|
+
}
|
|
84
|
+
if (!DateUtil.isValidISO8601Date(created)) {
|
|
85
|
+
throw new BadRequestException(
|
|
86
|
+
`Invalid date format for X-Created header. Must be ISO 8601 format. For example '2024-02-29T19:47:57.366Z'`
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* A category for the context of the request. For example 'test', 'performance test' or 'debug'
|
|
93
|
+
*/
|
|
94
|
+
"x-context-category": (
|
|
95
|
+
context: Context,
|
|
96
|
+
contextCategory: string
|
|
97
|
+
): void => {
|
|
98
|
+
if (contextCategory.trim() === "") {
|
|
99
|
+
throw new BadRequestException(
|
|
100
|
+
`X-Context-Category header is empty. A category for the context of the request. For example 'test', 'performance test' or 'debug'`
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* A unique context identifier used for correlating logs and metrics usually for performance or experimental testing
|
|
107
|
+
* UUID v4 format
|
|
108
|
+
*/
|
|
109
|
+
"x-context-id": (context: Context, contextId: string): void => {
|
|
110
|
+
if (contextId.trim() === "") {
|
|
111
|
+
throw new BadRequestException(`X-Context-Id header is empty`);
|
|
112
|
+
}
|
|
113
|
+
if (!StringUtil.isValidUUIDv4(contextId) && contextId !== "none") {
|
|
114
|
+
throw new BadRequestException(
|
|
115
|
+
`Invalid X-Context-Id header. Must be UUID V4 or 'none'. A unique context identifier used for correlating logs and metrics usually for performance or experimental testing`
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* A unique identifier for the client to help identify exactly which application or third party is making the requests
|
|
122
|
+
* Must be UUID V4 format
|
|
123
|
+
*/
|
|
124
|
+
"x-client-id": (context: Context, clientId: string): void => {
|
|
125
|
+
if (clientId.trim() === "") {
|
|
126
|
+
throw new BadRequestException(
|
|
127
|
+
`X-Client-Id header is empty. A unique identifier for the client to help identify exactly which application or third party is making the requests. Should be identical for every client. Used to uniquely identify projects. You can hard code this string in your project. Its not a secret. Should NOT be different for every request.`
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
if (!StringUtil.isValidUUIDv4(clientId)) {
|
|
131
|
+
throw new BadRequestException(
|
|
132
|
+
`Invalid X-Client-Id header. Must be UUID V4 format`
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Canonical name of the client that is making the API call. Such as "BlueBerry Picker App"
|
|
139
|
+
*/
|
|
140
|
+
"x-client-name": (context: Context, clientName: string): void => {
|
|
141
|
+
if (clientName.trim() === "") {
|
|
142
|
+
throw new BadRequestException(
|
|
143
|
+
`X-Client-Name header is empty. Canonical name of the client that is making the API call. Such as "BlueBerry Picker App"`
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Version of the client that is making the API call. Such as '1.3.8'
|
|
150
|
+
*/
|
|
151
|
+
"x-client-version": (context: Context, clientVersion: string): void => {
|
|
152
|
+
if (clientVersion.trim() === "") {
|
|
153
|
+
throw new BadRequestException(
|
|
154
|
+
`X-Client-Version header is empty. Version of the client that is making the API call. Such as '1.3.8'`
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Variation of the client build. There can be different builds of the same version of a client such as 'dev', 'test' or 'demo'
|
|
161
|
+
* Typically these variations would be configured to interact with different backends and have different debugging levels
|
|
162
|
+
*/
|
|
163
|
+
"x-client-variant": (context: Context, clientVariant: string): void => {
|
|
164
|
+
if (clientVariant.trim() === "") {
|
|
165
|
+
throw new BadRequestException(
|
|
166
|
+
"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"
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
if (req.path.startsWith(`/${this.config.appPrefix}`)) {
|
|
173
|
+
const missingHeaders = Object.keys(requiredHeaders).filter(
|
|
174
|
+
(header) => !req.headers[header.toLowerCase()]
|
|
175
|
+
);
|
|
176
|
+
|
|
177
|
+
if (missingHeaders.length > 0) {
|
|
178
|
+
throw new BadRequestException(
|
|
179
|
+
`Missing required headers: ${missingHeaders.join(", ")}`
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
const validationContext = this.contextBuilder
|
|
184
|
+
.build()
|
|
185
|
+
.setMetaFromHeaders(req.headers)
|
|
186
|
+
.getResult();
|
|
187
|
+
|
|
188
|
+
for (const headerName of Object.keys(requiredHeaders)) {
|
|
189
|
+
const validator = requiredHeaders[headerName];
|
|
190
|
+
const header = req[headerName];
|
|
191
|
+
validator(validationContext, header);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
next();
|
|
196
|
+
}
|
|
197
|
+
}
|
|
@@ -7,8 +7,8 @@ import { JsonSerializableInterface } from "../message";
|
|
|
7
7
|
import { Context } from "../context";
|
|
8
8
|
import { HttpPaginatedResponseMeta } from "./http-paginated-response-meta";
|
|
9
9
|
|
|
10
|
-
export class RestPaginatedResponse
|
|
11
|
-
implements JsonSerializableInterface<MessageInterface<
|
|
10
|
+
export class RestPaginatedResponse<L>
|
|
11
|
+
implements JsonSerializableInterface<MessageInterface<L[]>> {
|
|
12
12
|
public readonly meta: MessageMetaInterface;
|
|
13
13
|
|
|
14
14
|
constructor(
|
|
@@ -16,7 +16,7 @@ export class RestPaginatedResponse
|
|
|
16
16
|
status: HttpStatus,
|
|
17
17
|
totalRecords: number,
|
|
18
18
|
type: string,
|
|
19
|
-
public readonly data:
|
|
19
|
+
public readonly data: L[]
|
|
20
20
|
) {
|
|
21
21
|
this.meta = new HttpPaginatedResponseMeta(
|
|
22
22
|
status,
|
|
@@ -29,7 +29,7 @@ export class RestPaginatedResponse
|
|
|
29
29
|
) as MessageMetaInterface;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
public toJSON(): MessageInterface<
|
|
32
|
+
public toJSON(): MessageInterface<L[]> {
|
|
33
33
|
return {
|
|
34
34
|
meta: this.meta,
|
|
35
35
|
data: this.data,
|
|
@@ -7,15 +7,15 @@ import { JsonSerializableInterface } from "../message";
|
|
|
7
7
|
import { Context } from "../context";
|
|
8
8
|
import { HttpResponseMeta } from "./http-response-meta";
|
|
9
9
|
|
|
10
|
-
export class RestResponse
|
|
11
|
-
implements JsonSerializableInterface<MessageInterface<
|
|
10
|
+
export class RestResponse<T>
|
|
11
|
+
implements JsonSerializableInterface<MessageInterface<T>> {
|
|
12
12
|
public readonly meta: MessageMetaInterface;
|
|
13
13
|
|
|
14
14
|
constructor(
|
|
15
15
|
context: Context,
|
|
16
16
|
status: HttpStatus,
|
|
17
17
|
type: string,
|
|
18
|
-
public readonly data:
|
|
18
|
+
public readonly data: T
|
|
19
19
|
) {
|
|
20
20
|
this.meta = new HttpResponseMeta(
|
|
21
21
|
status,
|
|
@@ -27,7 +27,7 @@ export class RestResponse
|
|
|
27
27
|
) as MessageMetaInterface;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
public toJSON(): MessageInterface<
|
|
30
|
+
public toJSON(): MessageInterface<T> {
|
|
31
31
|
return {
|
|
32
32
|
meta: this.meta,
|
|
33
33
|
data: this.data,
|
|
@@ -56,7 +56,10 @@ export class ElasticsearchPinger {
|
|
|
56
56
|
const result = await this.elasticsearchService.ping();
|
|
57
57
|
resolve(result);
|
|
58
58
|
} catch (e) {
|
|
59
|
-
this.logger.error(
|
|
59
|
+
this.logger.error(
|
|
60
|
+
e.message || "Elasticsearch cannot be reached",
|
|
61
|
+
e.trace || ""
|
|
62
|
+
);
|
|
60
63
|
resolve(false);
|
|
61
64
|
}
|
|
62
65
|
});
|
|
@@ -126,7 +126,9 @@ export class KafkaService implements ConsumerServiceDelegateInterface {
|
|
|
126
126
|
this._kafkaConsumer.on(this._kafkaConsumer.events.CRASH, async (event) => {
|
|
127
127
|
const error = event?.payload?.error;
|
|
128
128
|
this.logger.log("Consumer is crashing!");
|
|
129
|
-
|
|
129
|
+
if (error) {
|
|
130
|
+
this.logger.error(JSON.stringify(error));
|
|
131
|
+
}
|
|
130
132
|
await err("Consumer crashed");
|
|
131
133
|
});
|
|
132
134
|
}
|
|
@@ -158,7 +158,7 @@ export class WebsocketGateway
|
|
|
158
158
|
phrase: "unknown-error",
|
|
159
159
|
locale: locale.i18n,
|
|
160
160
|
});
|
|
161
|
-
const developerErrorMessage = e.message;
|
|
161
|
+
const developerErrorMessage = e.message || "Unknown Websocket Error";
|
|
162
162
|
|
|
163
163
|
this.logger.error(developerErrorMessage, e.trace);
|
|
164
164
|
|
package/src/util/locale.util.ts
CHANGED
|
@@ -11,13 +11,10 @@ import { Context } from "../context";
|
|
|
11
11
|
import { i18nData } from "../locales/locales";
|
|
12
12
|
|
|
13
13
|
export class LocaleUtil {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
headers: Record<string, string>,
|
|
18
|
-
context: Context
|
|
14
|
+
public static getLocaleFromAcceptLanguageHeader(
|
|
15
|
+
context: Context,
|
|
16
|
+
langCode: string
|
|
19
17
|
) {
|
|
20
|
-
const langCode = headers["accept-language"] || headers["Accept-Language"];
|
|
21
18
|
if (!langCode) {
|
|
22
19
|
throw new FriendlyHttpException(
|
|
23
20
|
`Accept language header is not set`,
|
|
@@ -81,4 +78,12 @@ export class LocaleUtil {
|
|
|
81
78
|
|
|
82
79
|
return new Locale(language as LanguageCode, country as CountryCode);
|
|
83
80
|
}
|
|
81
|
+
|
|
82
|
+
public static getLocaleFromHeaders(
|
|
83
|
+
headers: Record<string, string>,
|
|
84
|
+
context: Context
|
|
85
|
+
) {
|
|
86
|
+
const langCode = headers["accept-language"] || headers["Accept-Language"];
|
|
87
|
+
return this.getLocaleFromAcceptLanguageHeader(context, langCode);
|
|
88
|
+
}
|
|
84
89
|
}
|
package/src/util/string.util.ts
CHANGED
|
@@ -43,4 +43,9 @@ export class StringUtil {
|
|
|
43
43
|
public static byteArray(str: string): number[] {
|
|
44
44
|
return [...Buffer.from(str)];
|
|
45
45
|
}
|
|
46
|
+
|
|
47
|
+
public static isValidUUIDv4(uuid) {
|
|
48
|
+
const regex = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
49
|
+
return regex.test(uuid);
|
|
50
|
+
}
|
|
46
51
|
}
|