@6thbridge/utils 1.9.0-1 → 1.9.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/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.js +19 -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.js +17 -7
- 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/validator.js
CHANGED
|
@@ -15,25 +15,37 @@ 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
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.Joi = exports.ValidatorUtil =
|
|
36
|
+
exports.Joi = exports.ValidatorUtil = void 0;
|
|
27
37
|
const Joi = __importStar(require("joi"));
|
|
28
38
|
exports.Joi = Joi;
|
|
29
|
-
|
|
30
|
-
|
|
39
|
+
const zod_validation_error_1 = require("zod-validation-error");
|
|
40
|
+
const zod_1 = require("zod");
|
|
41
|
+
function getZodSchema(schema) {
|
|
42
|
+
if (schema instanceof zod_1.ZodType)
|
|
43
|
+
return schema;
|
|
44
|
+
return zod_1.z.object(schema).passthrough();
|
|
31
45
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return ValidatorUtil.validateStrict(schema, payload, options);
|
|
46
|
+
function getZodErrorMessage(error) {
|
|
47
|
+
return (0, zod_validation_error_1.fromZodError)(error).message.replace(/['"]/g, '');
|
|
35
48
|
}
|
|
36
|
-
exports.validateStrict = validateStrict;
|
|
37
49
|
class ValidatorUtil {
|
|
38
50
|
static validate(schema, payload) {
|
|
39
51
|
const parsedSchema = Joi.object(schema);
|
|
@@ -51,6 +63,20 @@ class ValidatorUtil {
|
|
|
51
63
|
return { error: error.details[0].message.replace(/['"]/g, '') };
|
|
52
64
|
return { data: value };
|
|
53
65
|
}
|
|
66
|
+
static validateWithZod(schema, payload) {
|
|
67
|
+
const parsedSchema = getZodSchema(schema);
|
|
68
|
+
const result = parsedSchema.safeParse(payload);
|
|
69
|
+
if (!result.success)
|
|
70
|
+
return getZodErrorMessage(result.error);
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
static validateStrictWithZod(schema, payload) {
|
|
74
|
+
const parsedSchema = getZodSchema(schema);
|
|
75
|
+
const result = parsedSchema.safeParse(payload);
|
|
76
|
+
if (!result.success)
|
|
77
|
+
return { error: getZodErrorMessage(result.error), statusCode: 422, errorCode: "ValidationError" };
|
|
78
|
+
return { data: result.data };
|
|
79
|
+
}
|
|
54
80
|
}
|
|
55
81
|
exports.ValidatorUtil = ValidatorUtil;
|
|
56
82
|
//# sourceMappingURL=validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA2B;AAyDlB,kBAAG;AAxDZ,+DAAoD;AACpD,6BAAiC;AAGjC,SAAS,YAAY,CAAC,MAA+B;IACnD,IAAI,MAAM,YAAY,aAAO;QAAE,OAAO,MAAM,CAAC;IAC7C,OAAO,OAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAU;IACpC,OAAO,IAAA,mCAAY,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,MAAa,aAAa;IACxB,MAAM,CAAC,QAAQ,CAAC,MAAqB,EAAE,OAA4B;QACjE,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC/C,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QAEH,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAEhE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAqB,EAAE,OAA4B,EAAE,OAA+B;QACxG,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,kBACpD,YAAY,EAAE,IAAI,IAAK,OAAO,EAC9B,CAAC;QAEH,IAAI,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QAE3E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,eAAe,CAAoC,MAAS,EAAE,OAA4B;QAC/F,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAoC,MAAS,EAAE,OAA4B;QACrG,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;QAEvH,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAA2B,EAAE,CAAC;IACtD,CAAC;CAEF;AAzCD,sCAyCC"}
|
|
@@ -15,15 +15,27 @@ 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
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
const Joi = __importStar(require("joi"));
|
|
37
|
+
const zod_1 = require("zod");
|
|
38
|
+
const schemas_1 = require("../schemas");
|
|
27
39
|
const validator_1 = require("./validator");
|
|
28
40
|
describe('Validator', () => {
|
|
29
41
|
describe('validate function', () => {
|
|
@@ -39,7 +51,7 @@ describe('Validator', () => {
|
|
|
39
51
|
extraField: 'This is allowed due to allowUnknown: true',
|
|
40
52
|
};
|
|
41
53
|
// Act
|
|
42
|
-
const result =
|
|
54
|
+
const result = validator_1.ValidatorUtil.validate(schema, payload);
|
|
43
55
|
// Assert
|
|
44
56
|
expect(result).toBeNull();
|
|
45
57
|
});
|
|
@@ -54,7 +66,7 @@ describe('Validator', () => {
|
|
|
54
66
|
// Missing required age field
|
|
55
67
|
};
|
|
56
68
|
// Act
|
|
57
|
-
const result =
|
|
69
|
+
const result = validator_1.ValidatorUtil.validate(schema, payload);
|
|
58
70
|
// Assert
|
|
59
71
|
expect(result).toBeDefined();
|
|
60
72
|
expect(typeof result).toBe('string');
|
|
@@ -70,7 +82,7 @@ describe('Validator', () => {
|
|
|
70
82
|
email: 'invalid-email',
|
|
71
83
|
};
|
|
72
84
|
// Act
|
|
73
|
-
const result =
|
|
85
|
+
const result = validator_1.ValidatorUtil.validate(schema, payload);
|
|
74
86
|
// Assert
|
|
75
87
|
expect(result).toBeDefined();
|
|
76
88
|
expect(result).not.toContain('"');
|
|
@@ -91,7 +103,7 @@ describe('Validator', () => {
|
|
|
91
103
|
extraField: 'This is allowed due to allowUnknown: true',
|
|
92
104
|
};
|
|
93
105
|
// Act
|
|
94
|
-
const result =
|
|
106
|
+
const result = validator_1.ValidatorUtil.validateStrict(schema, payload);
|
|
95
107
|
// Assert
|
|
96
108
|
expect(result).toHaveProperty('data');
|
|
97
109
|
expect(result.data).toEqual(expect.objectContaining({
|
|
@@ -111,7 +123,7 @@ describe('Validator', () => {
|
|
|
111
123
|
// Missing required age field
|
|
112
124
|
};
|
|
113
125
|
// Act
|
|
114
|
-
const result =
|
|
126
|
+
const result = validator_1.ValidatorUtil.validateStrict(schema, payload);
|
|
115
127
|
// Assert
|
|
116
128
|
expect(result).toHaveProperty('error');
|
|
117
129
|
expect(typeof result.error).toBe('string');
|
|
@@ -133,7 +145,7 @@ describe('Validator', () => {
|
|
|
133
145
|
stripUnknown: true,
|
|
134
146
|
};
|
|
135
147
|
// Act
|
|
136
|
-
const result =
|
|
148
|
+
const result = validator_1.ValidatorUtil.validateStrict(schema, payload, options);
|
|
137
149
|
// Assert
|
|
138
150
|
expect(result).toHaveProperty('error');
|
|
139
151
|
expect(result.error).toContain('age');
|
|
@@ -148,7 +160,7 @@ describe('Validator', () => {
|
|
|
148
160
|
email: 'invalid-email',
|
|
149
161
|
};
|
|
150
162
|
// Act
|
|
151
|
-
const result =
|
|
163
|
+
const result = validator_1.ValidatorUtil.validateStrict(schema, payload);
|
|
152
164
|
// Assert
|
|
153
165
|
expect(result).toHaveProperty('error');
|
|
154
166
|
expect(result.error).not.toContain('"');
|
|
@@ -156,6 +168,67 @@ describe('Validator', () => {
|
|
|
156
168
|
expect(result.error).toContain('email');
|
|
157
169
|
});
|
|
158
170
|
});
|
|
171
|
+
describe('validateWithZod function', () => {
|
|
172
|
+
it('should return null for valid data', () => {
|
|
173
|
+
const schema = zod_1.z.object({
|
|
174
|
+
name: zod_1.z.string(),
|
|
175
|
+
age: zod_1.z.number(),
|
|
176
|
+
});
|
|
177
|
+
const payload = {
|
|
178
|
+
name: 'John Doe',
|
|
179
|
+
age: 30,
|
|
180
|
+
extraField: 'This is allowed due to passthrough',
|
|
181
|
+
};
|
|
182
|
+
const result = validator_1.ValidatorUtil.validateWithZod(schema, payload);
|
|
183
|
+
expect(result).toBeNull();
|
|
184
|
+
});
|
|
185
|
+
it('should return error message for invalid data', () => {
|
|
186
|
+
const schema = zod_1.z.object({
|
|
187
|
+
name: zod_1.z.string(),
|
|
188
|
+
age: zod_1.z.number(),
|
|
189
|
+
}).passthrough();
|
|
190
|
+
const payload = {
|
|
191
|
+
name: 'John Doe',
|
|
192
|
+
};
|
|
193
|
+
const result = validator_1.ValidatorUtil.validateWithZod(schema, payload);
|
|
194
|
+
expect(result).toBeDefined();
|
|
195
|
+
expect(typeof result).toBe('string');
|
|
196
|
+
expect(result).toContain('expected number');
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
describe('validateStrictWithZod function', () => {
|
|
200
|
+
it('should return data object for valid data', () => {
|
|
201
|
+
const schema = zod_1.z.object({
|
|
202
|
+
name: zod_1.z.string(),
|
|
203
|
+
age: zod_1.z.number(),
|
|
204
|
+
}).passthrough();
|
|
205
|
+
const payload = {
|
|
206
|
+
name: 'John Doe',
|
|
207
|
+
age: 30,
|
|
208
|
+
extraField: 'This is allowed due to passthrough',
|
|
209
|
+
};
|
|
210
|
+
const result = validator_1.ValidatorUtil.validateStrictWithZod(schema, payload);
|
|
211
|
+
expect(result).toHaveProperty('data');
|
|
212
|
+
expect(result.data).toEqual(expect.objectContaining({
|
|
213
|
+
name: 'John Doe',
|
|
214
|
+
age: 30,
|
|
215
|
+
extraField: 'This is allowed due to passthrough',
|
|
216
|
+
}));
|
|
217
|
+
});
|
|
218
|
+
it('should return error object for invalid data', () => {
|
|
219
|
+
const schema = zod_1.z.object({
|
|
220
|
+
name: zod_1.z.string(),
|
|
221
|
+
age: zod_1.z.number(),
|
|
222
|
+
}).passthrough();
|
|
223
|
+
const payload = {
|
|
224
|
+
name: 'John Doe',
|
|
225
|
+
};
|
|
226
|
+
const result = validator_1.ValidatorUtil.validateStrictWithZod(schema, payload);
|
|
227
|
+
expect(result).toHaveProperty('error');
|
|
228
|
+
expect(typeof result.error).toBe('string');
|
|
229
|
+
expect(result.error).toContain('expected number');
|
|
230
|
+
});
|
|
231
|
+
});
|
|
159
232
|
describe('ValidatorUtil', () => {
|
|
160
233
|
describe('validate', () => {
|
|
161
234
|
it('should return null for valid data', () => {
|
|
@@ -283,6 +356,49 @@ describe('Validator', () => {
|
|
|
283
356
|
expect(result.error).toContain('unknown');
|
|
284
357
|
});
|
|
285
358
|
});
|
|
359
|
+
describe('validateWithZod', () => {
|
|
360
|
+
it('should allow unknown fields by default when a raw shape is provided', () => {
|
|
361
|
+
const schema = {
|
|
362
|
+
name: zod_1.z.string(),
|
|
363
|
+
};
|
|
364
|
+
const payload = {
|
|
365
|
+
name: 'John Doe',
|
|
366
|
+
unknown: 'value',
|
|
367
|
+
};
|
|
368
|
+
const result = validator_1.ValidatorUtil.validateWithZod(schema, payload);
|
|
369
|
+
expect(result).toBeNull();
|
|
370
|
+
});
|
|
371
|
+
});
|
|
372
|
+
describe('validateStrictWithZod', () => {
|
|
373
|
+
it('should return parsed zod data for valid country payloads', () => {
|
|
374
|
+
const payload = 'ng';
|
|
375
|
+
const result = schemas_1.countrySchema.parse(payload);
|
|
376
|
+
expect(result).toBe('NG');
|
|
377
|
+
});
|
|
378
|
+
it('should return parsed zod data for valid country payloads', () => {
|
|
379
|
+
const payload = 'GLOBAL';
|
|
380
|
+
const result = schemas_1.countrySchema.parse(payload);
|
|
381
|
+
expect(result).toBe('GLOBAL');
|
|
382
|
+
});
|
|
383
|
+
it('should validate the currency schema export', () => {
|
|
384
|
+
const result = validator_1.ValidatorUtil.validateStrictWithZod(schemas_1.currencySchema, 'xof');
|
|
385
|
+
expect(result.data).toBe('XOF');
|
|
386
|
+
});
|
|
387
|
+
it('should return an error for invalid country payloads', () => {
|
|
388
|
+
const schema = zod_1.z.object({
|
|
389
|
+
country: schemas_1.countrySchema,
|
|
390
|
+
currency: schemas_1.currencySchema,
|
|
391
|
+
});
|
|
392
|
+
const payload = {
|
|
393
|
+
country: 'nigeria',
|
|
394
|
+
currency: 'xof',
|
|
395
|
+
};
|
|
396
|
+
const result = validator_1.ValidatorUtil.validateStrictWithZod(schema, payload);
|
|
397
|
+
expect(result).toHaveProperty('error');
|
|
398
|
+
expect(typeof result.error).toBe('string');
|
|
399
|
+
expect(result.error).toContain('Validation error: Too big');
|
|
400
|
+
});
|
|
401
|
+
});
|
|
286
402
|
});
|
|
287
403
|
});
|
|
288
404
|
//# sourceMappingURL=validator.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.spec.js","sourceRoot":"","sources":["../../src/utils/validator.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validator.spec.js","sourceRoot":"","sources":["../../src/utils/validator.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@6thbridge/utils",
|
|
3
|
-
"version": "1.9.0
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "simple interface for the our commonly used functions",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -9,11 +9,9 @@
|
|
|
9
9
|
],
|
|
10
10
|
"scripts": {
|
|
11
11
|
"test": "jest --verbose -c jest.config.ts",
|
|
12
|
+
"test:logger": "ts-node src/logger/logger-test.ts",
|
|
12
13
|
"build": "rm -rf lib && tsc -p tsconfig.json",
|
|
13
14
|
"prepare": "npm run build",
|
|
14
|
-
"format": "",
|
|
15
|
-
"version": "npm run format && git add -A src",
|
|
16
|
-
"postversion": "git push && git push --tags",
|
|
17
15
|
"bump-patch": "npm version patch",
|
|
18
16
|
"bump-minor": "npm version minor",
|
|
19
17
|
"bump-alpha": "npm --no-git-tag-version version prerelease"
|
|
@@ -25,38 +23,47 @@
|
|
|
25
23
|
"license": "ISC",
|
|
26
24
|
"dependencies": {
|
|
27
25
|
"@opentelemetry/api": "^1.9.1",
|
|
28
|
-
"@opentelemetry/auto-instrumentations-node": "^0.
|
|
29
|
-
"amqp-connection-manager": "^
|
|
30
|
-
"amqplib": "^
|
|
31
|
-
"axios": "1.
|
|
26
|
+
"@opentelemetry/auto-instrumentations-node": "^0.80.0",
|
|
27
|
+
"amqp-connection-manager": "^5.0.0",
|
|
28
|
+
"amqplib": "^2.0.1",
|
|
29
|
+
"axios": "^1.20.0",
|
|
32
30
|
"axios-better-stacktrace": "^2.1.7",
|
|
33
|
-
"bignumber.js": "^
|
|
34
|
-
"csv-parse": "^
|
|
35
|
-
"dayjs": "^1.11.
|
|
36
|
-
"ioredis": "^
|
|
37
|
-
"joi": "^
|
|
38
|
-
"libphonenumber-js": "^1.
|
|
39
|
-
"lodash": "4.
|
|
40
|
-
"mongoose": "^9.
|
|
41
|
-
"mongoose-paginate-v2": "^1.9.
|
|
42
|
-
"path-to-regexp": "^8.4.
|
|
31
|
+
"bignumber.js": "^11.1.5",
|
|
32
|
+
"csv-parse": "^7.0.2",
|
|
33
|
+
"dayjs": "^1.11.23",
|
|
34
|
+
"ioredis": "^6.0.0",
|
|
35
|
+
"joi": "^18.2.9",
|
|
36
|
+
"libphonenumber-js": "^1.13.13",
|
|
37
|
+
"lodash": "^4.18.1",
|
|
38
|
+
"mongoose": "^9.10.2",
|
|
39
|
+
"mongoose-paginate-v2": "^1.9.5",
|
|
40
|
+
"path-to-regexp": "^8.4.2",
|
|
43
41
|
"randomstring": "^1.3.1",
|
|
42
|
+
"redlock": "^5.0.0-beta.2",
|
|
44
43
|
"rollbar": "^3.1.0",
|
|
45
|
-
"xlsx": "
|
|
44
|
+
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz",
|
|
45
|
+
"zod": "^4.6.5",
|
|
46
|
+
"zod-validation-error": "^5.0.0"
|
|
46
47
|
},
|
|
47
48
|
"devDependencies": {
|
|
48
49
|
"@types/amqplib": "^0.10.8",
|
|
49
|
-
"@types/express": "^
|
|
50
|
+
"@types/express": "^5.0.6",
|
|
50
51
|
"@types/jest": "^29.5.14",
|
|
51
|
-
"@types/lodash": "^4.17.
|
|
52
|
+
"@types/lodash": "^4.17.25",
|
|
52
53
|
"@types/randomstring": "^1.3.0",
|
|
53
|
-
"@types/xlsx": "^0.0.36",
|
|
54
54
|
"jest": "^30.3.0",
|
|
55
55
|
"ts-jest": "^29.4.6",
|
|
56
56
|
"ts-node": "^10.9.2",
|
|
57
57
|
"typescript": "^5.4.3"
|
|
58
58
|
},
|
|
59
59
|
"engines": {
|
|
60
|
-
"node": ">=
|
|
60
|
+
"node": ">=24"
|
|
61
|
+
},
|
|
62
|
+
"resolutions": {
|
|
63
|
+
"minimatch": "^10.2.5"
|
|
64
|
+
},
|
|
65
|
+
"repository": {
|
|
66
|
+
"type": "git",
|
|
67
|
+
"url": "git+https://github.com/DexlerNG/bridge-utils-package.git"
|
|
61
68
|
}
|
|
62
69
|
}
|
package/readme.md
CHANGED
|
@@ -358,7 +358,7 @@ try {
|
|
|
358
358
|
### Development Setup
|
|
359
359
|
``` bash
|
|
360
360
|
# Clone repository
|
|
361
|
-
git clone https://github.com/
|
|
361
|
+
git clone https://github.com/DexlerNG/bridge-utils-package.git
|
|
362
362
|
|
|
363
363
|
# Install dependencies
|
|
364
364
|
yarn install
|
|
@@ -376,4 +376,39 @@ This project is licensed under the ISC License.
|
|
|
376
376
|
|
|
377
377
|
## Support
|
|
378
378
|
For support and questions, please open an issue on the GitHub repository.
|
|
379
|
-
**Note**: This library is actively maintained and used in production environments. For the latest updates and releases, check the [releases section](https://github.com/
|
|
379
|
+
**Note**: This library is actively maintained and used in production environments. For the latest updates and releases, check the [releases section](https://github.com/DexlerNG/bridge-utils-package/releases).
|
|
380
|
+
|
|
381
|
+
## Publishing
|
|
382
|
+
|
|
383
|
+
Merging a pull request into `main` publishes the package to npm and GitHub Packages, unless the pull request has the `skip-publish` label. Bump the version before merging. Add `publish-test-version` to a pull request from this repository to publish a test version to GitHub Packages.
|
|
384
|
+
|
|
385
|
+
Repository Actions secrets required:
|
|
386
|
+
|
|
387
|
+
- `NPM_TOKEN`: npm token with permission to publish `@6thbridge/utils`.
|
|
388
|
+
- `GH_PACKAGES_TOKEN`: GitHub personal access token (classic) with `write:packages` permission for the `6thbridge` package namespace. The repository currently belongs to `DexlerNG`, so its automatic `GITHUB_TOKEN` cannot publish to that separate namespace.
|
|
389
|
+
|
|
390
|
+
To install the GitHub Packages copy, authenticate to `npm.pkg.github.com` and configure `@6thbridge:registry=https://npm.pkg.github.com` in your npm configuration. The normal `npm install @6thbridge/utils` command uses npm.
|
|
391
|
+
|
|
392
|
+
## Log batching
|
|
393
|
+
|
|
394
|
+
Keep calling `logger.info()`, `logger.error()`, etc. Logs share an array and flush
|
|
395
|
+
at 100 messages or after 1 second. `configureLogBatching({ batchSize: 100,
|
|
396
|
+
flushIntervalMs: 1000 })` changes those defaults. Each flush sends a plain array
|
|
397
|
+
to the existing RabbitMQ instance, or to `POST /v1/logs` when none exists.
|
|
398
|
+
Transport selection happens during flushing. Transport failures are reported to
|
|
399
|
+
stderr; there is no background retry mechanism.
|
|
400
|
+
|
|
401
|
+
Call `registerLoggingShutdown()` once to register SIGTERM/SIGINT flushing, or
|
|
402
|
+
`await flushLogs()` explicitly before closing transports or exiting. Registration
|
|
403
|
+
only flushes the library buffer; it does not close providers or exit the process.
|
|
404
|
+
There are no automatic signal listeners when shutdown is not registered.
|
|
405
|
+
Deploy array support in utility-service before releasing the updated logger.
|
|
406
|
+
|
|
407
|
+
To send 10,000 test logs to your utility service:
|
|
408
|
+
|
|
409
|
+
```bash
|
|
410
|
+
UTILITY_SERVICE_URL=https://your-utility-service yarn test:logger
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
The script uses two logger instances and batches of 100. It does not start a
|
|
414
|
+
server or verify receipt; check utility-service for the received logs.
|