@cryptexlabs/codex-nodejs-common 0.14.5 → 0.15.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 +1 -1
- package/lib/src/decorator/api-meta-headers.js +16 -10
- package/lib/src/decorator/api-meta-headers.js.map +1 -1
- package/lib/src/filter/app-http-exception-filter.js +12 -5
- package/lib/src/filter/app-http-exception-filter.js.map +1 -1
- package/lib/src/middleware/api-headers-validation.middleware.js +3 -2
- package/lib/src/middleware/api-headers-validation.middleware.js.map +1 -1
- package/lib/src/util/string.util.d.ts +1 -0
- package/lib/src/util/string.util.js +5 -2
- package/lib/src/util/string.util.js.map +1 -1
- package/package.json +1 -1
- package/src/decorator/api-meta-headers.ts +16 -10
- package/src/filter/app-http-exception-filter.ts +14 -6
- package/src/middleware/api-headers-validation.middleware.ts +5 -2
- package/src/util/string.util.ts +6 -2
package/lib/package.json
CHANGED
|
@@ -23,7 +23,7 @@ function ApiMetaHeaders() {
|
|
|
23
23
|
(0, swagger_1.ApiHeader)({
|
|
24
24
|
name: "X-Started",
|
|
25
25
|
description: "The time that the very first user initiated or time initiated event that eventually lead to this api being called was created",
|
|
26
|
-
required:
|
|
26
|
+
required: true,
|
|
27
27
|
schema: {
|
|
28
28
|
example: new Date().toISOString(),
|
|
29
29
|
},
|
|
@@ -31,7 +31,7 @@ function ApiMetaHeaders() {
|
|
|
31
31
|
(0, swagger_1.ApiHeader)({
|
|
32
32
|
name: "X-Context-Category",
|
|
33
33
|
description: "A category for the context of the request. For example 'test' or 'performance test'",
|
|
34
|
-
required:
|
|
34
|
+
required: true,
|
|
35
35
|
schema: {
|
|
36
36
|
example: "default",
|
|
37
37
|
},
|
|
@@ -39,7 +39,7 @@ function ApiMetaHeaders() {
|
|
|
39
39
|
(0, swagger_1.ApiHeader)({
|
|
40
40
|
name: "X-Context-Id",
|
|
41
41
|
description: "A unique context identifier used for correlating logs and metrics usually for performance or experimental testing",
|
|
42
|
-
required:
|
|
42
|
+
required: true,
|
|
43
43
|
schema: {
|
|
44
44
|
example: "none",
|
|
45
45
|
},
|
|
@@ -47,15 +47,21 @@ function ApiMetaHeaders() {
|
|
|
47
47
|
(0, swagger_1.ApiHeader)({
|
|
48
48
|
name: "X-Client-Id",
|
|
49
49
|
description: "A unique identifier for the client to help identify exactly which application or third party is making the requests",
|
|
50
|
-
required:
|
|
51
|
-
schema: {
|
|
52
|
-
|
|
50
|
+
required: true,
|
|
51
|
+
schema: {},
|
|
52
|
+
examples: {
|
|
53
|
+
UUIDV4: {
|
|
54
|
+
value: "dafae812-6a07-4e4f-8ac5-d5a81bb32cab",
|
|
55
|
+
},
|
|
56
|
+
Integer: {
|
|
57
|
+
value: 1,
|
|
58
|
+
},
|
|
53
59
|
},
|
|
54
60
|
}),
|
|
55
61
|
(0, swagger_1.ApiHeader)({
|
|
56
62
|
name: "X-Client-Name",
|
|
57
63
|
description: "The name of the client",
|
|
58
|
-
required:
|
|
64
|
+
required: true,
|
|
59
65
|
schema: {
|
|
60
66
|
example: "swagger",
|
|
61
67
|
},
|
|
@@ -64,7 +70,7 @@ function ApiMetaHeaders() {
|
|
|
64
70
|
name: "X-Client-Version",
|
|
65
71
|
description: "The version of the client. If the client is making bad requests this helps " +
|
|
66
72
|
"identify which version of the client is making the bad requests",
|
|
67
|
-
required:
|
|
73
|
+
required: true,
|
|
68
74
|
schema: {
|
|
69
75
|
example: "0.3.6",
|
|
70
76
|
},
|
|
@@ -72,7 +78,7 @@ function ApiMetaHeaders() {
|
|
|
72
78
|
(0, swagger_1.ApiHeader)({
|
|
73
79
|
name: "X-Client-Variant",
|
|
74
80
|
description: "Usually an environment or build type such as dev, test, or prod",
|
|
75
|
-
required:
|
|
81
|
+
required: true,
|
|
76
82
|
schema: {
|
|
77
83
|
example: "dev",
|
|
78
84
|
},
|
|
@@ -80,7 +86,7 @@ function ApiMetaHeaders() {
|
|
|
80
86
|
(0, swagger_1.ApiHeader)({
|
|
81
87
|
name: "X-Created",
|
|
82
88
|
description: "The time the client initiated the http request",
|
|
83
|
-
required:
|
|
89
|
+
required: true,
|
|
84
90
|
schema: {
|
|
85
91
|
example: new Date().toISOString(),
|
|
86
92
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-meta-headers.js","sourceRoot":"","sources":["../../../src/decorator/api-meta-headers.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"api-meta-headers.js","sourceRoot":"","sources":["../../../src/decorator/api-meta-headers.ts"],"names":[],"mappings":";;AAIA,wCAwGC;AA5GD,6CAA4C;AAC5C,2CAAiD;AACjD,+BAAoC;AAEpC,SAAgB,cAAc;IAC5B,OAAO,IAAA,wBAAe,EACpB,GAAG;QACD,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,OAAO,EAAE,IAAA,SAAM,GAAE;aAClB;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,OAAO,EAAE,OAAO;aACjB;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,WAAW;YACjB,WAAW,EACT,+HAA+H;YACjI,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAClC;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EACT,qFAAqF;YACvF,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,OAAO,EAAE,SAAS;aACnB;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,cAAc;YACpB,WAAW,EACT,mHAAmH;YACrH,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM;aAChB;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,aAAa;YACnB,WAAW,EACT,qHAAqH;YACvH,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE;gBACR,MAAM,EAAE;oBACN,KAAK,EAAE,sCAAsC;iBAC9C;gBACD,OAAO,EAAE;oBACP,KAAK,EAAE,CAAC;iBACT;aACF;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,wBAAwB;YACrC,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,OAAO,EAAE,SAAS;aACnB;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,kBAAkB;YACxB,WAAW,EACT,6EAA6E;gBAC7E,iEAAiE;YACnE,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,OAAO,EAAE,OAAO;aACjB;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,kBAAkB;YACxB,WAAW,EACT,iEAAiE;YACnE,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,OAAO,EAAE,KAAK;aACf;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,gDAAgD;YAC7D,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAClC;SACF,CAAC;QACF,IAAA,mBAAS,EAAC;YACR,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,gDAAgD;YAC7D,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAClC;SACF,CAAC;KACH,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -112,10 +112,16 @@ let AppHttpExceptionFilter = class AppHttpExceptionFilter extends core_1.BaseExc
|
|
|
112
112
|
exception.stack) {
|
|
113
113
|
logger.error(exception.stack);
|
|
114
114
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
115
|
+
let status;
|
|
116
|
+
if (exception.getStatus) {
|
|
117
|
+
status = exception.getStatus();
|
|
118
|
+
}
|
|
119
|
+
if (!status) {
|
|
120
|
+
status = exception.status;
|
|
121
|
+
}
|
|
122
|
+
if (!status) {
|
|
123
|
+
status = common_1.HttpStatus.INTERNAL_SERVER_ERROR;
|
|
124
|
+
}
|
|
119
125
|
const locale = exception instanceof exception_1.FriendlyHttpException ||
|
|
120
126
|
exception instanceof exception_2.ContextualHttpException
|
|
121
127
|
? exception.context.locale
|
|
@@ -133,7 +139,8 @@ let AppHttpExceptionFilter = class AppHttpExceptionFilter extends core_1.BaseExc
|
|
|
133
139
|
developerText = this.getDeveloperText(exception, locale);
|
|
134
140
|
const userMessage = exception.userMessage ? exception.userMessage : "";
|
|
135
141
|
const path = request.url || request.headers["x-forwarded-uri"];
|
|
136
|
-
const
|
|
142
|
+
const canShowDeveloperText = this.isDebugLevel() || (status >= 400 && status < 500);
|
|
143
|
+
const errorHttpResponse = new response_1.ErrorHttpResponse(status, locale, new response_1.ErrorMessage(locale, locales_1.i18nData, null, null, canShowDeveloperText
|
|
137
144
|
? developerText
|
|
138
145
|
: "Error unavailable in this context", userMessage), this.isDebugLevel() ? exception.stack || null : null, this.config, correlationId, started, path);
|
|
139
146
|
if (errorHttpResponse.meta.context) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-http-exception-filter.js","sourceRoot":"","sources":["../../../src/filter/app-http-exception-filter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"app-http-exception-filter.js","sourceRoot":"","sources":["../../../src/filter/app-http-exception-filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,8 +75,9 @@ let ApiHeadersValidationMiddleware = class ApiHeadersValidationMiddleware {
|
|
|
75
75
|
if (clientId.trim() === "") {
|
|
76
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
77
|
}
|
|
78
|
-
if (!util_1.StringUtil.isValidUUIDv4(clientId)
|
|
79
|
-
|
|
78
|
+
if (!util_1.StringUtil.isValidUUIDv4(clientId) &&
|
|
79
|
+
!util_1.StringUtil.isInteger(clientId)) {
|
|
80
|
+
throw new common_1.BadRequestException(`Invalid X-Client-Id header. Must be UUID V4 format or integer`);
|
|
80
81
|
}
|
|
81
82
|
},
|
|
82
83
|
"x-client-name": (context, clientName) => {
|
|
@@ -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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"}
|
|
@@ -5,7 +5,7 @@ const crypto = require("crypto");
|
|
|
5
5
|
class StringUtil {
|
|
6
6
|
constructor() { }
|
|
7
7
|
static isRegexString(str) {
|
|
8
|
-
return str.
|
|
8
|
+
return str.substring(0, 1) === "/" && str.substring(str.length - 1) === "/";
|
|
9
9
|
}
|
|
10
10
|
static stringMatches(test, str) {
|
|
11
11
|
const testTrimmed = test.trim();
|
|
@@ -14,7 +14,7 @@ class StringUtil {
|
|
|
14
14
|
return true;
|
|
15
15
|
}
|
|
16
16
|
if (this.isRegexString(testTrimmed)) {
|
|
17
|
-
if (new RegExp(testTrimmed.
|
|
17
|
+
if (new RegExp(testTrimmed.substring(1, testTrimmed.length - 2)).test(strTrimmed)) {
|
|
18
18
|
return true;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -39,6 +39,9 @@ class StringUtil {
|
|
|
39
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
40
|
return regex.test(uuid);
|
|
41
41
|
}
|
|
42
|
+
static isInteger(str) {
|
|
43
|
+
return Number.isInteger(Number(str));
|
|
44
|
+
}
|
|
42
45
|
}
|
|
43
46
|
exports.StringUtil = StringUtil;
|
|
44
47
|
//# 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,
|
|
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,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;IAC9E,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,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,IACE,IAAI,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAC/D,UAAU,CACX,EACD,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;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;IAEM,MAAM,CAAC,SAAS,CAAC,GAAW;QACjC,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;CACF;AApDD,gCAoDC"}
|
package/package.json
CHANGED
|
@@ -23,7 +23,7 @@ export function ApiMetaHeaders() {
|
|
|
23
23
|
name: "X-Started",
|
|
24
24
|
description:
|
|
25
25
|
"The time that the very first user initiated or time initiated event that eventually lead to this api being called was created",
|
|
26
|
-
required:
|
|
26
|
+
required: true,
|
|
27
27
|
schema: {
|
|
28
28
|
example: new Date().toISOString(),
|
|
29
29
|
},
|
|
@@ -32,7 +32,7 @@ export function ApiMetaHeaders() {
|
|
|
32
32
|
name: "X-Context-Category",
|
|
33
33
|
description:
|
|
34
34
|
"A category for the context of the request. For example 'test' or 'performance test'",
|
|
35
|
-
required:
|
|
35
|
+
required: true,
|
|
36
36
|
schema: {
|
|
37
37
|
example: "default",
|
|
38
38
|
},
|
|
@@ -41,7 +41,7 @@ export function ApiMetaHeaders() {
|
|
|
41
41
|
name: "X-Context-Id",
|
|
42
42
|
description:
|
|
43
43
|
"A unique context identifier used for correlating logs and metrics usually for performance or experimental testing",
|
|
44
|
-
required:
|
|
44
|
+
required: true,
|
|
45
45
|
schema: {
|
|
46
46
|
example: "none",
|
|
47
47
|
},
|
|
@@ -50,15 +50,21 @@ export function ApiMetaHeaders() {
|
|
|
50
50
|
name: "X-Client-Id",
|
|
51
51
|
description:
|
|
52
52
|
"A unique identifier for the client to help identify exactly which application or third party is making the requests",
|
|
53
|
-
required:
|
|
54
|
-
schema: {
|
|
55
|
-
|
|
53
|
+
required: true,
|
|
54
|
+
schema: {},
|
|
55
|
+
examples: {
|
|
56
|
+
UUIDV4: {
|
|
57
|
+
value: "dafae812-6a07-4e4f-8ac5-d5a81bb32cab",
|
|
58
|
+
},
|
|
59
|
+
Integer: {
|
|
60
|
+
value: 1,
|
|
61
|
+
},
|
|
56
62
|
},
|
|
57
63
|
}),
|
|
58
64
|
ApiHeader({
|
|
59
65
|
name: "X-Client-Name",
|
|
60
66
|
description: "The name of the client",
|
|
61
|
-
required:
|
|
67
|
+
required: true,
|
|
62
68
|
schema: {
|
|
63
69
|
example: "swagger",
|
|
64
70
|
},
|
|
@@ -68,7 +74,7 @@ export function ApiMetaHeaders() {
|
|
|
68
74
|
description:
|
|
69
75
|
"The version of the client. If the client is making bad requests this helps " +
|
|
70
76
|
"identify which version of the client is making the bad requests",
|
|
71
|
-
required:
|
|
77
|
+
required: true,
|
|
72
78
|
schema: {
|
|
73
79
|
example: "0.3.6",
|
|
74
80
|
},
|
|
@@ -77,7 +83,7 @@ export function ApiMetaHeaders() {
|
|
|
77
83
|
name: "X-Client-Variant",
|
|
78
84
|
description:
|
|
79
85
|
"Usually an environment or build type such as dev, test, or prod",
|
|
80
|
-
required:
|
|
86
|
+
required: true,
|
|
81
87
|
schema: {
|
|
82
88
|
example: "dev",
|
|
83
89
|
},
|
|
@@ -85,7 +91,7 @@ export function ApiMetaHeaders() {
|
|
|
85
91
|
ApiHeader({
|
|
86
92
|
name: "X-Created",
|
|
87
93
|
description: "The time the client initiated the http request",
|
|
88
|
-
required:
|
|
94
|
+
required: true,
|
|
89
95
|
schema: {
|
|
90
96
|
example: new Date().toISOString(),
|
|
91
97
|
},
|
|
@@ -136,11 +136,16 @@ export class AppHttpExceptionFilter extends BaseExceptionFilter {
|
|
|
136
136
|
logger.error(exception.stack);
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
139
|
+
let status: number;
|
|
140
|
+
if (exception.getStatus) {
|
|
141
|
+
status = exception.getStatus();
|
|
142
|
+
}
|
|
143
|
+
if (!status) {
|
|
144
|
+
status = exception.status;
|
|
145
|
+
}
|
|
146
|
+
if (!status) {
|
|
147
|
+
status = HttpStatus.INTERNAL_SERVER_ERROR;
|
|
148
|
+
}
|
|
144
149
|
|
|
145
150
|
const locale =
|
|
146
151
|
exception instanceof FriendlyHttpException ||
|
|
@@ -168,6 +173,9 @@ export class AppHttpExceptionFilter extends BaseExceptionFilter {
|
|
|
168
173
|
const path: string =
|
|
169
174
|
request.url || (request.headers["x-forwarded-uri"] as string);
|
|
170
175
|
|
|
176
|
+
const canShowDeveloperText =
|
|
177
|
+
this.isDebugLevel() || (status >= 400 && status < 500);
|
|
178
|
+
|
|
171
179
|
const errorHttpResponse = new ErrorHttpResponse(
|
|
172
180
|
status,
|
|
173
181
|
locale,
|
|
@@ -176,7 +184,7 @@ export class AppHttpExceptionFilter extends BaseExceptionFilter {
|
|
|
176
184
|
i18nData,
|
|
177
185
|
null,
|
|
178
186
|
null,
|
|
179
|
-
|
|
187
|
+
canShowDeveloperText
|
|
180
188
|
? developerText
|
|
181
189
|
: "Error unavailable in this context",
|
|
182
190
|
userMessage
|
|
@@ -126,9 +126,12 @@ export class ApiHeadersValidationMiddleware implements NestMiddleware {
|
|
|
126
126
|
`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.`
|
|
127
127
|
);
|
|
128
128
|
}
|
|
129
|
-
if (
|
|
129
|
+
if (
|
|
130
|
+
!StringUtil.isValidUUIDv4(clientId) &&
|
|
131
|
+
!StringUtil.isInteger(clientId)
|
|
132
|
+
) {
|
|
130
133
|
throw new BadRequestException(
|
|
131
|
-
`Invalid X-Client-Id header. Must be UUID V4 format`
|
|
134
|
+
`Invalid X-Client-Id header. Must be UUID V4 format or integer`
|
|
132
135
|
);
|
|
133
136
|
}
|
|
134
137
|
},
|
package/src/util/string.util.ts
CHANGED
|
@@ -3,7 +3,7 @@ import * as crypto from "crypto";
|
|
|
3
3
|
export class StringUtil {
|
|
4
4
|
private constructor() {}
|
|
5
5
|
public static isRegexString(str: string) {
|
|
6
|
-
return str.
|
|
6
|
+
return str.substring(0, 1) === "/" && str.substring(str.length - 1) === "/";
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
public static stringMatches(test: string, str: string) {
|
|
@@ -14,7 +14,7 @@ export class StringUtil {
|
|
|
14
14
|
}
|
|
15
15
|
if (this.isRegexString(testTrimmed)) {
|
|
16
16
|
if (
|
|
17
|
-
new RegExp(testTrimmed.
|
|
17
|
+
new RegExp(testTrimmed.substring(1, testTrimmed.length - 2)).test(
|
|
18
18
|
strTrimmed
|
|
19
19
|
)
|
|
20
20
|
) {
|
|
@@ -48,4 +48,8 @@ export class StringUtil {
|
|
|
48
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
49
|
return regex.test(uuid);
|
|
50
50
|
}
|
|
51
|
+
|
|
52
|
+
public static isInteger(str: string): boolean {
|
|
53
|
+
return Number.isInteger(Number(str));
|
|
54
|
+
}
|
|
51
55
|
}
|