@6thbridge/utils 1.9.0-1 → 1.9.0-3
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/actions/database-session.action.d.ts +13 -0
- package/lib/actions/database-session.action.js +77 -0
- package/lib/actions/database-session.action.js.map +1 -0
- package/lib/actions/database-session.action.test.d.ts +1 -0
- package/lib/actions/database-session.action.test.js +137 -0
- package/lib/actions/database-session.action.test.js.map +1 -0
- package/lib/actions/index.d.ts +2 -0
- package/lib/actions/index.js +2 -0
- package/lib/actions/index.js.map +1 -1
- package/lib/actions/lock.action.d.ts +16 -0
- package/lib/actions/lock.action.js +171 -0
- package/lib/actions/lock.action.js.map +1 -0
- package/lib/actions/lock.action.test.d.ts +1 -0
- package/lib/actions/lock.action.test.js +63 -0
- package/lib/actions/lock.action.test.js.map +1 -0
- package/lib/data/rabbitmq/index.d.ts +3 -2
- package/lib/data/rabbitmq/index.js +3 -0
- package/lib/data/rabbitmq/index.js.map +1 -1
- package/lib/database/MongoDBRepository.d.ts +27 -120
- package/lib/database/MongoDBRepository.js +49 -41
- package/lib/database/MongoDBRepository.js.map +1 -1
- package/lib/database/MongoDBTypeRepository.d.ts +51 -0
- package/lib/database/MongoDBTypeRepository.js +90 -0
- package/lib/database/MongoDBTypeRepository.js.map +1 -0
- package/lib/database/index.d.ts +2 -0
- package/lib/database/index.js +4 -0
- package/lib/database/index.js.map +1 -1
- package/lib/index.d.ts +4 -1
- package/lib/index.js +25 -16
- package/lib/index.js.map +1 -1
- package/lib/logger/batching.d.ts +7 -0
- package/lib/logger/batching.js +90 -0
- package/lib/logger/batching.js.map +1 -0
- package/lib/logger/batching.spec.d.ts +1 -0
- package/lib/logger/batching.spec.js +108 -0
- package/lib/logger/batching.spec.js.map +1 -0
- package/lib/logger/index.d.ts +1 -0
- package/lib/logger/index.js +5 -1
- package/lib/logger/index.js.map +1 -1
- package/lib/logger/logger-test.js +53 -24
- package/lib/logger/logger-test.js.map +1 -1
- package/lib/logger/logger.js +8 -23
- package/lib/logger/logger.js.map +1 -1
- package/lib/logger/redact.js +1 -1
- package/lib/logger/redact.js.map +1 -1
- package/lib/logger/test.spec.js +57 -0
- package/lib/logger/test.spec.js.map +1 -1
- package/lib/middlewares/common.js +7 -7
- package/lib/middlewares/common.js.map +1 -1
- package/lib/middlewares/error.middleware.d.ts +12 -0
- package/lib/middlewares/error.middleware.js +57 -0
- package/lib/middlewares/error.middleware.js.map +1 -0
- package/lib/middlewares/error.middleware.test.d.ts +1 -0
- package/lib/middlewares/error.middleware.test.js +45 -0
- package/lib/middlewares/error.middleware.test.js.map +1 -0
- package/lib/middlewares/express.d.ts +1 -0
- package/lib/middlewares/express.js +43 -9
- package/lib/middlewares/express.js.map +1 -1
- package/lib/middlewares/index.js +17 -7
- package/lib/middlewares/index.js.map +1 -1
- package/lib/monitoring/index.js +3 -3
- package/lib/monitoring/index.js.map +1 -1
- package/lib/monitoring/rollbar.js +2 -2
- package/lib/monitoring/rollbar.js.map +1 -1
- package/lib/pipelines/index.d.ts +3 -0
- package/lib/pipelines/index.js +20 -0
- package/lib/pipelines/index.js.map +1 -0
- package/lib/pipelines/parallel-pipeline.d.ts +7 -0
- package/lib/pipelines/parallel-pipeline.js +49 -0
- package/lib/pipelines/parallel-pipeline.js.map +1 -0
- package/lib/pipelines/pipeline-step.d.ts +5 -0
- package/lib/pipelines/pipeline-step.js +3 -0
- package/lib/pipelines/pipeline-step.js.map +1 -0
- package/lib/pipelines/pipeline.example.d.ts +2 -0
- package/lib/pipelines/pipeline.example.js +96 -0
- package/lib/pipelines/pipeline.example.js.map +1 -0
- package/lib/pipelines/pipelines.test.d.ts +1 -0
- package/lib/pipelines/pipelines.test.js +204 -0
- package/lib/pipelines/pipelines.test.js.map +1 -0
- package/lib/pipelines/pipelines.typecheck.d.ts +1 -0
- package/lib/pipelines/pipelines.typecheck.js +68 -0
- package/lib/pipelines/pipelines.typecheck.js.map +1 -0
- package/lib/pipelines/serial-pipeline.d.ts +7 -0
- package/lib/pipelines/serial-pipeline.js +39 -0
- package/lib/pipelines/serial-pipeline.js.map +1 -0
- package/lib/responses/express.d.ts +1 -1
- package/lib/responses/express.js +4 -4
- package/lib/responses/express.js.map +1 -1
- package/lib/responses/index.js +17 -7
- package/lib/responses/index.js.map +1 -1
- package/lib/schemas/country.schema.d.ts +5 -0
- package/lib/schemas/country.schema.js +15 -0
- package/lib/schemas/country.schema.js.map +1 -0
- package/lib/schemas/index.d.ts +2 -0
- package/lib/schemas/index.js +21 -0
- package/lib/schemas/index.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/context.entity.d.ts +16 -0
- package/lib/types/context.entity.js +61 -8
- package/lib/types/context.entity.js.map +1 -1
- package/lib/types/integrations/credential.entity.d.ts +1 -0
- package/lib/types/integrations/credential.entity.js +5 -0
- package/lib/types/integrations/credential.entity.js.map +1 -1
- package/lib/types/integrations/integration.entity.d.ts +5 -1
- package/lib/types/integrations/integration.entity.js +10 -1
- package/lib/types/integrations/integration.entity.js.map +1 -1
- package/lib/types/route.entity.d.ts +1 -1
- package/lib/utils/amount.js +0 -1
- package/lib/utils/amount.js.map +1 -1
- package/lib/utils/database.d.ts +2 -0
- package/lib/utils/database.js +35 -6
- package/lib/utils/database.js.map +1 -1
- package/lib/utils/database.spec.js +229 -185
- package/lib/utils/database.spec.js.map +1 -1
- package/lib/utils/file.d.ts +3 -2
- package/lib/utils/file.js.map +1 -1
- package/lib/utils/helper.d.ts +2 -0
- package/lib/utils/helper.js +20 -0
- package/lib/utils/helper.js.map +1 -1
- package/lib/utils/helper.spec.js +56 -0
- package/lib/utils/helper.spec.js.map +1 -1
- package/lib/utils/http.d.ts +3 -4
- package/lib/utils/http.js +68 -44
- package/lib/utils/http.js.map +1 -1
- package/lib/utils/http.spec.d.ts +1 -0
- package/lib/utils/http.spec.js +121 -0
- package/lib/utils/http.spec.js.map +1 -0
- package/lib/utils/phoneNumber.d.ts +2 -2
- package/lib/utils/phoneNumber.js +17 -7
- package/lib/utils/phoneNumber.js.map +1 -1
- package/lib/utils/phoneNumber.spec.js +20 -0
- package/lib/utils/phoneNumber.spec.js.map +1 -1
- package/lib/utils/validator.d.ts +3 -2
- package/lib/utils/validator.js +40 -14
- package/lib/utils/validator.js.map +1 -1
- package/lib/utils/validator.spec.js +130 -14
- package/lib/utils/validator.spec.js.map +1 -1
- package/package.json +30 -23
- package/readme.md +37 -2
package/lib/utils/helper.spec.js
CHANGED
|
@@ -199,5 +199,61 @@ describe('HelperUtil', () => {
|
|
|
199
199
|
expect(original).not.toBe(result);
|
|
200
200
|
});
|
|
201
201
|
});
|
|
202
|
+
describe('getUniqueStringItemsFromArray', () => {
|
|
203
|
+
it('should return unique string items while preserving first-seen order', () => {
|
|
204
|
+
const input = ['email', 'sms', 'email', 'push', 'sms'];
|
|
205
|
+
expect(helper_1.HelperUtil.getUniqueStringItemsFromArray(input)).toEqual(['email', 'sms', 'push']);
|
|
206
|
+
});
|
|
207
|
+
it('should remove null, undefined, and empty string values', () => {
|
|
208
|
+
const input = ['email', null, undefined, '', 'sms', 'email'];
|
|
209
|
+
expect(helper_1.HelperUtil.getUniqueStringItemsFromArray(input)).toEqual(['email', 'sms']);
|
|
210
|
+
});
|
|
211
|
+
it('should return an empty array when all values are empty', () => {
|
|
212
|
+
const input = [null, undefined, ''];
|
|
213
|
+
expect(helper_1.HelperUtil.getUniqueStringItemsFromArray(input)).toEqual([]);
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
describe('getUniqueObjectItemsFromArray', () => {
|
|
217
|
+
it('should return unique object items by a single key while preserving first-seen order', () => {
|
|
218
|
+
const input = [
|
|
219
|
+
{ id: 'user-1', name: 'Ada' },
|
|
220
|
+
{ id: 'user-2', name: 'Grace' },
|
|
221
|
+
{ id: 'user-1', name: 'Ada Duplicate' }
|
|
222
|
+
];
|
|
223
|
+
expect(helper_1.HelperUtil.getUniqueObjectItemsFromArray(input, ['id'])).toEqual([
|
|
224
|
+
{ id: 'user-1', name: 'Ada' },
|
|
225
|
+
{ id: 'user-2', name: 'Grace' }
|
|
226
|
+
]);
|
|
227
|
+
});
|
|
228
|
+
it('should use all provided keys to determine uniqueness', () => {
|
|
229
|
+
const input = [
|
|
230
|
+
{ country: 'NG', phone: '8012345678', name: 'Ada' },
|
|
231
|
+
{ country: 'GH', phone: '8012345678', name: 'Grace' },
|
|
232
|
+
{ country: 'NG', phone: '8012345678', name: 'Ada Duplicate' }
|
|
233
|
+
];
|
|
234
|
+
expect(helper_1.HelperUtil.getUniqueObjectItemsFromArray(input, ['country', 'phone'])).toEqual([
|
|
235
|
+
{ country: 'NG', phone: '8012345678', name: 'Ada' },
|
|
236
|
+
{ country: 'GH', phone: '8012345678', name: 'Grace' }
|
|
237
|
+
]);
|
|
238
|
+
});
|
|
239
|
+
it('should treat missing key values as part of the uniqueness check', () => {
|
|
240
|
+
const input = [
|
|
241
|
+
{ id: 'user-1', email: 'ada@example.com' },
|
|
242
|
+
{ id: 'user-2' },
|
|
243
|
+
{ id: 'user-3' }
|
|
244
|
+
];
|
|
245
|
+
expect(helper_1.HelperUtil.getUniqueObjectItemsFromArray(input, ['email'])).toEqual([
|
|
246
|
+
{ id: 'user-1', email: 'ada@example.com' },
|
|
247
|
+
{ id: 'user-2' }
|
|
248
|
+
]);
|
|
249
|
+
});
|
|
250
|
+
it('should return the original items when no keys are provided', () => {
|
|
251
|
+
const input = [
|
|
252
|
+
{ id: 'user-1' },
|
|
253
|
+
{ id: 'user-1' }
|
|
254
|
+
];
|
|
255
|
+
expect(helper_1.HelperUtil.getUniqueObjectItemsFromArray(input, [])).toEqual(input);
|
|
256
|
+
});
|
|
257
|
+
});
|
|
202
258
|
});
|
|
203
259
|
//# sourceMappingURL=helper.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.spec.js","sourceRoot":"","sources":["../../src/utils/helper.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helper.spec.js","sourceRoot":"","sources":["../../src/utils/helper.spec.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/http.d.ts
CHANGED
|
@@ -12,16 +12,15 @@ export interface FormattedAxiosError {
|
|
|
12
12
|
trace?: string | undefined;
|
|
13
13
|
[x: string]: any;
|
|
14
14
|
}
|
|
15
|
-
export declare class AxiosClass {
|
|
16
|
-
static resolveAxiosError(error: Error | AxiosError | any): FormattedAxiosError;
|
|
17
|
-
static getAxiosInstance(config?: CreateAxiosDefaults): import("axios").AxiosInstance;
|
|
18
|
-
}
|
|
19
15
|
export declare class HttpUtil {
|
|
20
16
|
private static getRequestTag;
|
|
17
|
+
private static getLoggableRequestData;
|
|
21
18
|
private static withRequestTag;
|
|
22
19
|
static resolveAxiosError(error: Error | AxiosError | any): FormattedAxiosError;
|
|
23
20
|
private static getRequestIdFromContext;
|
|
24
21
|
private static getRequestIdHeader;
|
|
22
|
+
private static shouldSkipLogging;
|
|
23
|
+
private static buildRequestLog;
|
|
25
24
|
static getAxiosInstance(config?: CreateAxiosDefaults): import("axios").AxiosInstance;
|
|
26
25
|
static getMonitoredAxios(config?: CreateAxiosDefaults): import("axios").AxiosInstance;
|
|
27
26
|
}
|
package/lib/utils/http.js
CHANGED
|
@@ -3,20 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.HttpUtil =
|
|
6
|
+
exports.HttpUtil = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const axios_better_stacktrace_1 = __importDefault(require("axios-better-stacktrace"));
|
|
9
9
|
const logger_1 = require("../logger");
|
|
10
10
|
const storage_1 = require("./storage");
|
|
11
|
-
class AxiosClass {
|
|
12
|
-
static resolveAxiosError(error) {
|
|
13
|
-
return HttpUtil.resolveAxiosError(error);
|
|
14
|
-
}
|
|
15
|
-
static getAxiosInstance(config) {
|
|
16
|
-
return HttpUtil.getAxiosInstance(config);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
exports.AxiosClass = AxiosClass;
|
|
20
11
|
class HttpUtil {
|
|
21
12
|
static getRequestTag(headers) {
|
|
22
13
|
var _a;
|
|
@@ -24,6 +15,17 @@ class HttpUtil {
|
|
|
24
15
|
return undefined;
|
|
25
16
|
return (_a = headers['x-request-tag']) !== null && _a !== void 0 ? _a : headers['X-Request-Tag'];
|
|
26
17
|
}
|
|
18
|
+
static getLoggableRequestData(data) {
|
|
19
|
+
if (typeof data !== 'string')
|
|
20
|
+
return data;
|
|
21
|
+
const trimmed = data.trim();
|
|
22
|
+
try {
|
|
23
|
+
return JSON.parse(trimmed);
|
|
24
|
+
}
|
|
25
|
+
catch (_a) {
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
27
29
|
static withRequestTag(tag, message) {
|
|
28
30
|
return tag ? `[${tag}] ${message}` : message;
|
|
29
31
|
}
|
|
@@ -60,6 +62,28 @@ class HttpUtil {
|
|
|
60
62
|
return undefined;
|
|
61
63
|
return (_b = (_a = headers['x-request-id']) !== null && _a !== void 0 ? _a : headers['X-Request-Id']) !== null && _b !== void 0 ? _b : headers['X-Request-ID'];
|
|
62
64
|
}
|
|
65
|
+
static shouldSkipLogging(config) {
|
|
66
|
+
var _a, _b;
|
|
67
|
+
const headerSource = ((_a = config === null || config === void 0 ? void 0 : config.headers) === null || _a === void 0 ? void 0 : _a["x-authentication-source"]) || ((_b = config === null || config === void 0 ? void 0 : config.headers) === null || _b === void 0 ? void 0 : _b["source"]);
|
|
68
|
+
return headerSource === 'internal' || String((config === null || config === void 0 ? void 0 : config.url) || '').includes('/v1/logs');
|
|
69
|
+
}
|
|
70
|
+
static buildRequestLog(config) {
|
|
71
|
+
var _a;
|
|
72
|
+
const endpoint = ((_a = axios_1.default.getUri(Object.assign(Object.assign({}, config), { params: null }))) !== null && _a !== void 0 ? _a : '')
|
|
73
|
+
.replace(/^(?:[a-z][a-z\d+.-]*:)?\/\/[^/?#]*/i, '')
|
|
74
|
+
.split(/[?#]/, 1)[0];
|
|
75
|
+
return {
|
|
76
|
+
requestId: HttpUtil.getRequestIdHeader(config === null || config === void 0 ? void 0 : config.headers),
|
|
77
|
+
requestTag: HttpUtil.getRequestTag(config === null || config === void 0 ? void 0 : config.headers),
|
|
78
|
+
method: config === null || config === void 0 ? void 0 : config.method,
|
|
79
|
+
baseURL: config === null || config === void 0 ? void 0 : config.baseURL,
|
|
80
|
+
url: config === null || config === void 0 ? void 0 : config.url,
|
|
81
|
+
endpoint: endpoint.startsWith('/') ? endpoint : `/${endpoint}`,
|
|
82
|
+
headers: config === null || config === void 0 ? void 0 : config.headers,
|
|
83
|
+
params: config === null || config === void 0 ? void 0 : config.params,
|
|
84
|
+
data: HttpUtil.getLoggableRequestData(config === null || config === void 0 ? void 0 : config.data),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
63
87
|
static getAxiosInstance(config) {
|
|
64
88
|
const instance = axios_1.default.create(config);
|
|
65
89
|
// Ensure every request carries the current requestId (if present in AsyncLocalStorage)
|
|
@@ -84,29 +108,18 @@ class HttpUtil {
|
|
|
84
108
|
const instance = HttpUtil.getAxiosInstance(config);
|
|
85
109
|
// Request interceptor
|
|
86
110
|
instance.interceptors.request.use((cfg) => {
|
|
87
|
-
var _a, _b;
|
|
88
|
-
const requestTag = HttpUtil.getRequestTag(cfg === null || cfg === void 0 ? void 0 : cfg.headers);
|
|
89
|
-
const requestId = HttpUtil.getRequestIdHeader(cfg === null || cfg === void 0 ? void 0 : cfg.headers);
|
|
90
111
|
try {
|
|
91
112
|
cfg.logger = cfg.logger || logger_1.logger;
|
|
92
|
-
cfg.__meta = { start:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
if (!skipInternal) {
|
|
97
|
-
cfg.logger.info(HttpUtil.withRequestTag(requestTag, 'HTTP Request'), {
|
|
98
|
-
requestId,
|
|
99
|
-
method: cfg === null || cfg === void 0 ? void 0 : cfg.method,
|
|
100
|
-
baseURL: cfg === null || cfg === void 0 ? void 0 : cfg.baseURL,
|
|
101
|
-
url: cfg === null || cfg === void 0 ? void 0 : cfg.url,
|
|
102
|
-
headers: cfg === null || cfg === void 0 ? void 0 : cfg.headers,
|
|
103
|
-
params: cfg === null || cfg === void 0 ? void 0 : cfg.params,
|
|
104
|
-
data: cfg === null || cfg === void 0 ? void 0 : cfg.data,
|
|
113
|
+
cfg.__meta = { start: performance.now(), logger: cfg.logger };
|
|
114
|
+
if (!HttpUtil.shouldSkipLogging(cfg)) {
|
|
115
|
+
cfg.logger.info(HttpUtil.withRequestTag(HttpUtil.getRequestTag(cfg.headers), 'HTTP Request Started'), {
|
|
116
|
+
request: HttpUtil.buildRequestLog(cfg),
|
|
105
117
|
});
|
|
106
118
|
}
|
|
107
119
|
}
|
|
108
120
|
catch (e) {
|
|
109
|
-
|
|
121
|
+
const requestTag = HttpUtil.getRequestTag(cfg === null || cfg === void 0 ? void 0 : cfg.headers);
|
|
122
|
+
(cfg.logger || logger_1.logger).debug(HttpUtil.withRequestTag(requestTag, 'Failed to prepare HTTP Request logging'), { message: e === null || e === void 0 ? void 0 : e.message });
|
|
110
123
|
}
|
|
111
124
|
return cfg;
|
|
112
125
|
}, (error) => {
|
|
@@ -124,37 +137,48 @@ class HttpUtil {
|
|
|
124
137
|
});
|
|
125
138
|
// Response interceptor
|
|
126
139
|
instance.interceptors.response.use((response) => {
|
|
127
|
-
var _a, _b, _c, _d
|
|
140
|
+
var _a, _b, _c, _d;
|
|
128
141
|
const requestTag = HttpUtil.getRequestTag((_a = response === null || response === void 0 ? void 0 : response.config) === null || _a === void 0 ? void 0 : _a.headers);
|
|
129
142
|
const requestLogger = ((_b = response.config.__meta) === null || _b === void 0 ? void 0 : _b.logger) || logger_1.logger;
|
|
130
143
|
try {
|
|
131
144
|
const start = (_d = (_c = response === null || response === void 0 ? void 0 : response.config) === null || _c === void 0 ? void 0 : _c.__meta) === null || _d === void 0 ? void 0 : _d.start;
|
|
132
|
-
const durationMs = start ?
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
requestLogger.info(HttpUtil.withRequestTag(requestTag, 'HTTP Response'), {
|
|
137
|
-
method: (_k = response === null || response === void 0 ? void 0 : response.config) === null || _k === void 0 ? void 0 : _k.method,
|
|
138
|
-
baseURL: (_l = response === null || response === void 0 ? void 0 : response.config) === null || _l === void 0 ? void 0 : _l.baseURL,
|
|
139
|
-
url: (_m = response === null || response === void 0 ? void 0 : response.config) === null || _m === void 0 ? void 0 : _m.url,
|
|
140
|
-
status: response === null || response === void 0 ? void 0 : response.status,
|
|
141
|
-
statusText: response === null || response === void 0 ? void 0 : response.statusText,
|
|
145
|
+
const durationMs = typeof start === 'number' ? performance.now() - start : undefined;
|
|
146
|
+
if (!HttpUtil.shouldSkipLogging(response === null || response === void 0 ? void 0 : response.config)) {
|
|
147
|
+
requestLogger.info(HttpUtil.withRequestTag(requestTag, 'HTTP Response Received'), {
|
|
148
|
+
logType: 'http-metrics',
|
|
142
149
|
durationMs,
|
|
143
|
-
|
|
144
|
-
|
|
150
|
+
request: HttpUtil.buildRequestLog(response === null || response === void 0 ? void 0 : response.config),
|
|
151
|
+
response: {
|
|
152
|
+
status: response === null || response === void 0 ? void 0 : response.status,
|
|
153
|
+
statusText: response === null || response === void 0 ? void 0 : response.statusText,
|
|
154
|
+
headers: response === null || response === void 0 ? void 0 : response.headers,
|
|
155
|
+
data: response === null || response === void 0 ? void 0 : response.data,
|
|
156
|
+
},
|
|
145
157
|
});
|
|
146
158
|
}
|
|
147
159
|
}
|
|
148
160
|
catch (e) {
|
|
149
|
-
requestLogger.debug(HttpUtil.withRequestTag(requestTag, 'Failed to log HTTP
|
|
161
|
+
requestLogger.debug(HttpUtil.withRequestTag(requestTag, 'Failed to log HTTP Transaction'), { message: e === null || e === void 0 ? void 0 : e.message });
|
|
150
162
|
}
|
|
151
163
|
return response;
|
|
152
164
|
}, (error) => {
|
|
153
165
|
var _a, _b, _c;
|
|
154
|
-
const
|
|
166
|
+
const config = (error === null || error === void 0 ? void 0 : error.config) || ((_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.config);
|
|
167
|
+
const requestTag = HttpUtil.getRequestTag(config === null || config === void 0 ? void 0 : config.headers);
|
|
155
168
|
try {
|
|
156
|
-
|
|
157
|
-
|
|
169
|
+
if (!HttpUtil.shouldSkipLogging(config)) {
|
|
170
|
+
const formatted = HttpUtil.resolveAxiosError(error);
|
|
171
|
+
const start = (_b = config === null || config === void 0 ? void 0 : config.__meta) === null || _b === void 0 ? void 0 : _b.start;
|
|
172
|
+
const durationMs = typeof start === 'number' ? performance.now() - start : undefined;
|
|
173
|
+
const requestLogger = ((_c = config === null || config === void 0 ? void 0 : config.__meta) === null || _c === void 0 ? void 0 : _c.logger) || logger_1.logger;
|
|
174
|
+
const timedOut = (error === null || error === void 0 ? void 0 : error.code) === 'ECONNABORTED' || (error === null || error === void 0 ? void 0 : error.code) === 'ETIMEDOUT' || /timeout/i.test((error === null || error === void 0 ? void 0 : error.message) || '');
|
|
175
|
+
requestLogger.error(HttpUtil.withRequestTag(requestTag, timedOut ? 'HTTP Request Timed Out' : 'HTTP Request Failed'), Object.assign(Object.assign({ logType: 'http-metrics', durationMs, request: HttpUtil.buildRequestLog(config) }, ((error === null || error === void 0 ? void 0 : error.response) ? { response: {
|
|
176
|
+
status: error.response.status,
|
|
177
|
+
statusText: error.response.statusText,
|
|
178
|
+
headers: error.response.headers,
|
|
179
|
+
data: error.response.data,
|
|
180
|
+
} } : {})), { error: formatted }));
|
|
181
|
+
}
|
|
158
182
|
}
|
|
159
183
|
catch (e) {
|
|
160
184
|
// swallow
|
package/lib/utils/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/utils/http.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA6D;AAC7D,sFAA4D;AAC5D,sCAAiC;AACjC,uCAA2C;AAiB3C,MAAa,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/utils/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
jest.mock('../logger', () => ({
|
|
13
|
+
logger: {
|
|
14
|
+
info: jest.fn(),
|
|
15
|
+
error: jest.fn(),
|
|
16
|
+
debug: jest.fn(),
|
|
17
|
+
},
|
|
18
|
+
}));
|
|
19
|
+
jest.mock('axios-better-stacktrace', () => jest.fn());
|
|
20
|
+
const http_1 = require("./http");
|
|
21
|
+
const logger_1 = require("../logger");
|
|
22
|
+
describe('HttpUtil', () => {
|
|
23
|
+
beforeEach(() => jest.clearAllMocks());
|
|
24
|
+
const requestConfig = {
|
|
25
|
+
method: 'post',
|
|
26
|
+
url: '/v1/test',
|
|
27
|
+
headers: {
|
|
28
|
+
'x-request-id': 'request-1',
|
|
29
|
+
'x-request-tag': 'test-request',
|
|
30
|
+
authorization: 'Bearer secret',
|
|
31
|
+
},
|
|
32
|
+
data: { pin: '1234', amount: 100 },
|
|
33
|
+
};
|
|
34
|
+
it('logs separate start and response events with redacted data', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
|
+
const instance = http_1.HttpUtil.getMonitoredAxios({
|
|
36
|
+
adapter: (config) => __awaiter(void 0, void 0, void 0, function* () {
|
|
37
|
+
return ({
|
|
38
|
+
data: { pin: '5678', result: 'ok' },
|
|
39
|
+
status: 200,
|
|
40
|
+
statusText: 'OK',
|
|
41
|
+
headers: {},
|
|
42
|
+
config,
|
|
43
|
+
});
|
|
44
|
+
}),
|
|
45
|
+
});
|
|
46
|
+
yield instance.request(requestConfig);
|
|
47
|
+
expect(logger_1.logger.info).toHaveBeenCalledTimes(2);
|
|
48
|
+
expect(logger_1.logger.info.mock.calls[0][0]).toContain('HTTP Request Started');
|
|
49
|
+
expect(logger_1.logger.info.mock.calls[1][0]).toContain('HTTP Response Received');
|
|
50
|
+
expect(logger_1.logger.info.mock.calls[0][1]).not.toHaveProperty('logType');
|
|
51
|
+
expect(logger_1.logger.info.mock.calls[1][1].logType).toBe('http-metrics');
|
|
52
|
+
}));
|
|
53
|
+
it('logs timeout failures without a response event', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
54
|
+
const instance = http_1.HttpUtil.getMonitoredAxios({
|
|
55
|
+
adapter: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
56
|
+
const error = new Error('timeout of 100ms exceeded');
|
|
57
|
+
error.code = 'ECONNABORTED';
|
|
58
|
+
return Promise.reject(error);
|
|
59
|
+
}),
|
|
60
|
+
});
|
|
61
|
+
yield expect(instance.request(requestConfig)).rejects.toThrow('timeout');
|
|
62
|
+
expect(logger_1.logger.info).toHaveBeenCalledTimes(1);
|
|
63
|
+
expect(logger_1.logger.info.mock.calls[0][0]).toContain('HTTP Request Started');
|
|
64
|
+
expect(logger_1.logger.error.mock.calls[0][0]).toContain('HTTP Request Timed Out');
|
|
65
|
+
expect(logger_1.logger.error.mock.calls[0][1]).not.toHaveProperty('response');
|
|
66
|
+
expect(logger_1.logger.error.mock.calls[0][1].logType).toBe('http-metrics');
|
|
67
|
+
}));
|
|
68
|
+
it('logs non-timeout rejections as failed requests', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
69
|
+
const instance = http_1.HttpUtil.getMonitoredAxios({
|
|
70
|
+
adapter: () => __awaiter(void 0, void 0, void 0, function* () { return Promise.reject(new Error('connection refused')); }),
|
|
71
|
+
});
|
|
72
|
+
yield expect(instance.request(requestConfig)).rejects.toThrow('connection refused');
|
|
73
|
+
expect(logger_1.logger.error.mock.calls[0][0]).toContain('HTTP Request Failed');
|
|
74
|
+
expect(logger_1.logger.error.mock.calls[0][1].logType).toBe('http-metrics');
|
|
75
|
+
}));
|
|
76
|
+
describe('buildRequestLog', () => {
|
|
77
|
+
it.each([
|
|
78
|
+
['https://example.com/api', '/Payments/123/?q=1#detail', '/api/Payments/123/'],
|
|
79
|
+
['https://example.com/api', 'https://other.example/a%2Fb?q=1#detail', '/a%2Fb'],
|
|
80
|
+
[undefined, 'relative/path?q=1#detail', '/relative/path'],
|
|
81
|
+
[undefined, '//example.com/path?q=1', '/path'],
|
|
82
|
+
[undefined, 'https://example.com', '/'],
|
|
83
|
+
[undefined, undefined, '/'],
|
|
84
|
+
])('derives endpoint from Axios (%s, %s)', (baseURL, url, endpoint) => {
|
|
85
|
+
const requestLog = http_1.HttpUtil.buildRequestLog({
|
|
86
|
+
baseURL, url, httpLogContext: { endpoint: '/ignored' },
|
|
87
|
+
});
|
|
88
|
+
expect(requestLog.endpoint).toBe(endpoint);
|
|
89
|
+
expect(requestLog.url).toBe(url);
|
|
90
|
+
});
|
|
91
|
+
it('parses stringified JSON request bodies before logging', () => {
|
|
92
|
+
const requestLog = http_1.HttpUtil.buildRequestLog({
|
|
93
|
+
method: 'post',
|
|
94
|
+
baseURL: 'https://example.com',
|
|
95
|
+
url: '/v1/test',
|
|
96
|
+
headers: { 'content-type': 'application/json' },
|
|
97
|
+
params: { page: 1 },
|
|
98
|
+
data: JSON.stringify({
|
|
99
|
+
amount: 1000,
|
|
100
|
+
currency: 'USD',
|
|
101
|
+
}),
|
|
102
|
+
});
|
|
103
|
+
expect(requestLog.data).toEqual({
|
|
104
|
+
amount: 1000,
|
|
105
|
+
currency: 'USD',
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
it('keeps non-JSON string request bodies unchanged', () => {
|
|
109
|
+
const requestLog = http_1.HttpUtil.buildRequestLog({
|
|
110
|
+
method: 'post',
|
|
111
|
+
baseURL: 'https://example.com',
|
|
112
|
+
url: '/v1/test',
|
|
113
|
+
headers: { 'content-type': 'text/plain' },
|
|
114
|
+
params: {},
|
|
115
|
+
data: 'raw-body=value',
|
|
116
|
+
});
|
|
117
|
+
expect(requestLog.data).toBe('raw-body=value');
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
//# sourceMappingURL=http.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.spec.js","sourceRoot":"","sources":["../../src/utils/http.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,9 +8,9 @@ export declare class ProcessPhoneNumberDTO {
|
|
|
8
8
|
}
|
|
9
9
|
export declare class PhoneNumberUtil {
|
|
10
10
|
static formatPhoneNumber(payload: ProcessPhoneNumberDTO, options: Record<string, any>): Promise<{
|
|
11
|
-
phoneNumberPrefix:
|
|
11
|
+
phoneNumberPrefix: string;
|
|
12
12
|
phoneNumber: string;
|
|
13
|
-
phoneNumberWithPrefix:
|
|
13
|
+
phoneNumberWithPrefix: string;
|
|
14
14
|
countryCode: CountryCode | undefined;
|
|
15
15
|
meta: libphonenumber.PhoneNumber;
|
|
16
16
|
} | {
|
package/lib/utils/phoneNumber.js
CHANGED
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
36
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
37
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phoneNumber.js","sourceRoot":"","sources":["../../src/utils/phoneNumber.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"phoneNumber.js","sourceRoot":"","sources":["../../src/utils/phoneNumber.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
const phoneNumber_1 = require("./phoneNumber");
|
|
4
13
|
describe('Phone Number Test', () => {
|
|
@@ -64,6 +73,17 @@ describe('Phone Number Test', () => {
|
|
|
64
73
|
console.log("formattedPhoneNumber", formattedPhoneNumber);
|
|
65
74
|
// expect(isPhoneNumberValid).toBe(true);
|
|
66
75
|
});
|
|
76
|
+
it('should format ghana number', function () {
|
|
77
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
78
|
+
let phoneNumber = '233540796263';
|
|
79
|
+
const formattedPhoneNumber = yield phoneNumber_1.PhoneNumberUtil.formatPhoneNumber({
|
|
80
|
+
phoneNumber,
|
|
81
|
+
countryCode: "GH"
|
|
82
|
+
}, {});
|
|
83
|
+
console.log("formattedPhoneNumber", formattedPhoneNumber);
|
|
84
|
+
expect(formattedPhoneNumber.phoneNumberWithPrefix).toBe("+233540796263");
|
|
85
|
+
});
|
|
86
|
+
});
|
|
67
87
|
});
|
|
68
88
|
});
|
|
69
89
|
//# sourceMappingURL=phoneNumber.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phoneNumber.spec.js","sourceRoot":"","sources":["../../src/utils/phoneNumber.spec.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"phoneNumber.spec.js","sourceRoot":"","sources":["../../src/utils/phoneNumber.spec.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/validator.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as Joi from 'joi';
|
|
2
|
+
import { z, ZodType } from 'zod';
|
|
2
3
|
import { FunctionResult } from '../types';
|
|
3
|
-
export declare function validate(schema: any, payload: any): string | null;
|
|
4
|
-
export declare function validateStrict(schema: any, payload: any, options?: any): FunctionResult<Record<string, any>>;
|
|
5
4
|
export declare class ValidatorUtil {
|
|
6
5
|
static validate(schema: Joi.SchemaMap, payload: Record<string, any>): string | null;
|
|
7
6
|
static validateStrict(schema: Joi.SchemaMap, payload: Record<string, any>, options?: Joi.ValidationOptions): FunctionResult<Record<string, any>>;
|
|
7
|
+
static validateWithZod<T extends ZodType | z.ZodRawShape>(schema: T, payload: Record<string, any>): string | null;
|
|
8
|
+
static validateStrictWithZod<T extends ZodType | z.ZodRawShape>(schema: T, payload: Record<string, any>): FunctionResult<Record<string, any>>;
|
|
8
9
|
}
|
|
9
10
|
export { Joi };
|