@6thbridge/utils 1.9.0-1 → 1.9.0-2

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.
Files changed (139) hide show
  1. package/lib/actions/database-session.action.d.ts +13 -0
  2. package/lib/actions/database-session.action.js +77 -0
  3. package/lib/actions/database-session.action.js.map +1 -0
  4. package/lib/actions/database-session.action.test.d.ts +1 -0
  5. package/lib/actions/database-session.action.test.js +137 -0
  6. package/lib/actions/database-session.action.test.js.map +1 -0
  7. package/lib/actions/index.d.ts +2 -0
  8. package/lib/actions/index.js +2 -0
  9. package/lib/actions/index.js.map +1 -1
  10. package/lib/actions/lock.action.d.ts +16 -0
  11. package/lib/actions/lock.action.js +171 -0
  12. package/lib/actions/lock.action.js.map +1 -0
  13. package/lib/actions/lock.action.test.d.ts +1 -0
  14. package/lib/actions/lock.action.test.js +63 -0
  15. package/lib/actions/lock.action.test.js.map +1 -0
  16. package/lib/data/rabbitmq/index.d.ts +3 -2
  17. package/lib/data/rabbitmq/index.js +3 -0
  18. package/lib/data/rabbitmq/index.js.map +1 -1
  19. package/lib/database/MongoDBRepository.d.ts +27 -120
  20. package/lib/database/MongoDBRepository.js +49 -41
  21. package/lib/database/MongoDBRepository.js.map +1 -1
  22. package/lib/database/MongoDBTypeRepository.d.ts +51 -0
  23. package/lib/database/MongoDBTypeRepository.js +90 -0
  24. package/lib/database/MongoDBTypeRepository.js.map +1 -0
  25. package/lib/database/index.d.ts +2 -0
  26. package/lib/database/index.js +4 -0
  27. package/lib/database/index.js.map +1 -1
  28. package/lib/index.d.ts +4 -1
  29. package/lib/index.js +25 -16
  30. package/lib/index.js.map +1 -1
  31. package/lib/logger/batching.d.ts +7 -0
  32. package/lib/logger/batching.js +90 -0
  33. package/lib/logger/batching.js.map +1 -0
  34. package/lib/logger/batching.spec.d.ts +1 -0
  35. package/lib/logger/batching.spec.js +108 -0
  36. package/lib/logger/batching.spec.js.map +1 -0
  37. package/lib/logger/index.d.ts +1 -0
  38. package/lib/logger/index.js +5 -1
  39. package/lib/logger/index.js.map +1 -1
  40. package/lib/logger/logger-test.js +53 -24
  41. package/lib/logger/logger-test.js.map +1 -1
  42. package/lib/logger/logger.js +8 -23
  43. package/lib/logger/logger.js.map +1 -1
  44. package/lib/logger/redact.js +1 -1
  45. package/lib/logger/redact.js.map +1 -1
  46. package/lib/logger/test.spec.js +57 -0
  47. package/lib/logger/test.spec.js.map +1 -1
  48. package/lib/middlewares/common.js +7 -7
  49. package/lib/middlewares/common.js.map +1 -1
  50. package/lib/middlewares/error.middleware.d.ts +12 -0
  51. package/lib/middlewares/error.middleware.js +57 -0
  52. package/lib/middlewares/error.middleware.js.map +1 -0
  53. package/lib/middlewares/error.middleware.test.d.ts +1 -0
  54. package/lib/middlewares/error.middleware.test.js +45 -0
  55. package/lib/middlewares/error.middleware.test.js.map +1 -0
  56. package/lib/middlewares/express.d.ts +1 -0
  57. package/lib/middlewares/express.js +43 -9
  58. package/lib/middlewares/express.js.map +1 -1
  59. package/lib/middlewares/index.js +17 -7
  60. package/lib/middlewares/index.js.map +1 -1
  61. package/lib/monitoring/index.js +3 -3
  62. package/lib/monitoring/index.js.map +1 -1
  63. package/lib/monitoring/rollbar.js +2 -2
  64. package/lib/monitoring/rollbar.js.map +1 -1
  65. package/lib/pipelines/index.d.ts +3 -0
  66. package/lib/pipelines/index.js +20 -0
  67. package/lib/pipelines/index.js.map +1 -0
  68. package/lib/pipelines/parallel-pipeline.d.ts +7 -0
  69. package/lib/pipelines/parallel-pipeline.js +49 -0
  70. package/lib/pipelines/parallel-pipeline.js.map +1 -0
  71. package/lib/pipelines/pipeline-step.d.ts +5 -0
  72. package/lib/pipelines/pipeline-step.js +3 -0
  73. package/lib/pipelines/pipeline-step.js.map +1 -0
  74. package/lib/pipelines/pipeline.example.d.ts +2 -0
  75. package/lib/pipelines/pipeline.example.js +96 -0
  76. package/lib/pipelines/pipeline.example.js.map +1 -0
  77. package/lib/pipelines/pipelines.test.d.ts +1 -0
  78. package/lib/pipelines/pipelines.test.js +204 -0
  79. package/lib/pipelines/pipelines.test.js.map +1 -0
  80. package/lib/pipelines/pipelines.typecheck.d.ts +1 -0
  81. package/lib/pipelines/pipelines.typecheck.js +68 -0
  82. package/lib/pipelines/pipelines.typecheck.js.map +1 -0
  83. package/lib/pipelines/serial-pipeline.d.ts +7 -0
  84. package/lib/pipelines/serial-pipeline.js +39 -0
  85. package/lib/pipelines/serial-pipeline.js.map +1 -0
  86. package/lib/responses/express.d.ts +1 -1
  87. package/lib/responses/express.js +4 -4
  88. package/lib/responses/express.js.map +1 -1
  89. package/lib/responses/index.js +17 -7
  90. package/lib/responses/index.js.map +1 -1
  91. package/lib/schemas/country.schema.d.ts +5 -0
  92. package/lib/schemas/country.schema.js +15 -0
  93. package/lib/schemas/country.schema.js.map +1 -0
  94. package/lib/schemas/index.d.ts +2 -0
  95. package/lib/schemas/index.js +21 -0
  96. package/lib/schemas/index.js.map +1 -0
  97. package/lib/tsconfig.tsbuildinfo +1 -1
  98. package/lib/types/context.entity.d.ts +20 -0
  99. package/lib/types/context.entity.js +64 -8
  100. package/lib/types/context.entity.js.map +1 -1
  101. package/lib/types/integrations/credential.entity.d.ts +1 -0
  102. package/lib/types/integrations/credential.entity.js +5 -0
  103. package/lib/types/integrations/credential.entity.js.map +1 -1
  104. package/lib/types/integrations/integration.entity.d.ts +5 -1
  105. package/lib/types/integrations/integration.entity.js +10 -1
  106. package/lib/types/integrations/integration.entity.js.map +1 -1
  107. package/lib/types/route.entity.d.ts +1 -1
  108. package/lib/utils/amount.js +0 -1
  109. package/lib/utils/amount.js.map +1 -1
  110. package/lib/utils/database.d.ts +2 -0
  111. package/lib/utils/database.js +35 -6
  112. package/lib/utils/database.js.map +1 -1
  113. package/lib/utils/database.spec.js +229 -185
  114. package/lib/utils/database.spec.js.map +1 -1
  115. package/lib/utils/file.d.ts +3 -2
  116. package/lib/utils/file.js.map +1 -1
  117. package/lib/utils/helper.d.ts +2 -0
  118. package/lib/utils/helper.js +20 -0
  119. package/lib/utils/helper.js.map +1 -1
  120. package/lib/utils/helper.spec.js +56 -0
  121. package/lib/utils/helper.spec.js.map +1 -1
  122. package/lib/utils/http.d.ts +3 -4
  123. package/lib/utils/http.js +68 -44
  124. package/lib/utils/http.js.map +1 -1
  125. package/lib/utils/http.spec.d.ts +1 -0
  126. package/lib/utils/http.spec.js +121 -0
  127. package/lib/utils/http.spec.js.map +1 -0
  128. package/lib/utils/phoneNumber.d.ts +2 -2
  129. package/lib/utils/phoneNumber.js +17 -7
  130. package/lib/utils/phoneNumber.js.map +1 -1
  131. package/lib/utils/phoneNumber.spec.js +20 -0
  132. package/lib/utils/phoneNumber.spec.js.map +1 -1
  133. package/lib/utils/validator.d.ts +3 -2
  134. package/lib/utils/validator.js +40 -14
  135. package/lib/utils/validator.js.map +1 -1
  136. package/lib/utils/validator.spec.js +130 -14
  137. package/lib/utils/validator.spec.js.map +1 -1
  138. package/package.json +30 -23
  139. package/readme.md +37 -2
@@ -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 (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
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 = exports.validateStrict = exports.validate = void 0;
36
+ exports.Joi = exports.ValidatorUtil = void 0;
27
37
  const Joi = __importStar(require("joi"));
28
38
  exports.Joi = Joi;
29
- function validate(schema, payload) {
30
- return ValidatorUtil.validate(schema, payload);
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
- exports.validate = validate;
33
- function validateStrict(schema, payload, options = {}) {
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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA2B;AAoClB,kBAAG;AAjCZ,SAAgB,QAAQ,CAAC,MAAW,EAAE,OAAY;IAChD,OAAO,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAFD,4BAEC;AAED,SAAgB,cAAc,CAAC,MAAW,EAAE,OAAY,EAAE,UAAe,EAAE;IACzE,OAAO,aAAa,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;AAFD,wCAEC;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;CAEF;AAvBD,sCAuBC"}
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 (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
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 = (0, validator_1.validate)(schema, payload);
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 = (0, validator_1.validate)(schema, payload);
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 = (0, validator_1.validate)(schema, payload);
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 = (0, validator_1.validateStrict)(schema, payload);
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 = (0, validator_1.validateStrict)(schema, payload);
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 = (0, validator_1.validateStrict)(schema, payload, options);
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 = (0, validator_1.validateStrict)(schema, payload);
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-1",
3
+ "version": "1.9.0-2",
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.72.0",
29
- "amqp-connection-manager": "^4.1.15",
30
- "amqplib": "^1.0.2",
31
- "axios": "1.14.0",
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": "^10.0.2",
34
- "csv-parse": "^5.6.0",
35
- "dayjs": "^1.11.20",
36
- "ioredis": "^5.10.1",
37
- "joi": "^17.13.3",
38
- "libphonenumber-js": "^1.12.41",
39
- "lodash": "4.17.23",
40
- "mongoose": "^9.3.3",
41
- "mongoose-paginate-v2": "^1.9.4",
42
- "path-to-regexp": "^8.4.1",
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": "^0.18.5"
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": "^4.17.25",
50
+ "@types/express": "^5.0.6",
50
51
  "@types/jest": "^29.5.14",
51
- "@types/lodash": "^4.17.24",
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": ">=20"
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/6thbridge/utils.git
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/6thbridge/utils/releases).
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.