@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
@@ -3,167 +3,244 @@ 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
- const database_1 = require("./database");
7
6
  const dayjs_1 = __importDefault(require("dayjs"));
8
- // Mock the dependencies
9
- // jest.mock('../helpers', () => ({
10
- // dayjs: jest.fn().mockImplementation((date, format) => {
11
- // const mockDayjs = {
12
- // startOf: jest.fn().mockReturnThis(),
13
- // endOf: jest.fn().mockReturnThis(),
14
- // toDate: jest.fn().mockReturnValue(new Date(date))
15
- // };
16
- // return mockDayjs;
17
- // })
18
- // }));
19
- describe('DatabaseAction', () => {
20
- describe('resolveObjectToMongoDBQuery', () => {
21
- afterEach(() => {
22
- jest.clearAllMocks();
23
- });
24
- it('should return default values when empty request query is provided', () => {
25
- const requestQuery = {};
26
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery);
27
- expect(result).toEqual({
7
+ const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
8
+ const database_1 = require("./database");
9
+ dayjs_1.default.extend(customParseFormat_1.default);
10
+ const expectRegex = (value, source, flags = 'gi') => {
11
+ expect(value).toBeInstanceOf(RegExp);
12
+ expect(value.source).toBe(source);
13
+ expect(value.flags).toBe(flags);
14
+ };
15
+ const expectDayBounds = (value, expected, format = 'DD-MM-YYYY', bound = 'startOf') => {
16
+ const expectedDate = (0, dayjs_1.default)(expected, format)[bound]('day').toDate();
17
+ expect(value).toEqual(expectedDate);
18
+ };
19
+ describe('DatabaseUtil.resolveObjectToMongoDBQuery', () => {
20
+ describe('base query controls', () => {
21
+ it('returns the default query shape for an empty request query', () => {
22
+ expect(database_1.DatabaseUtil.resolveObjectToMongoDBQuery({})).toEqual({
28
23
  page: 1,
29
24
  limit: 50,
30
25
  filter: {},
31
26
  expand: [],
32
- sort: { _id: -1 }
27
+ sort: { _id: -1 },
28
+ populate: undefined,
33
29
  });
34
30
  });
35
- it('should use default options when options parameter is not provided', () => {
36
- const requestQuery = { dateFrom: '01-01-2023', dateTo: '31-01-2023' };
37
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery);
38
- expect(result.filter.createdAt).toBeDefined();
31
+ it('parses page, limit, sort, and expand controls without adding them to the filter', () => {
32
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({
33
+ page: '2',
34
+ limit: '25',
35
+ sort: 'createdAt,1',
36
+ expand: 'author,comments',
37
+ });
38
+ expect(result).toMatchObject({
39
+ page: 2,
40
+ limit: 25,
41
+ sort: { createdAt: '1' },
42
+ expand: ['author', 'comments'],
43
+ filter: {},
44
+ });
39
45
  });
40
- it('should parse page and limit parameters correctly', () => {
41
- const requestQuery = { page: '2', limit: '25' };
42
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery);
43
- expect(result.page).toBe(2);
44
- expect(result.limit).toBe(25);
46
+ it('uses descending sort when only a sort field is provided', () => {
47
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({ sort: 'name' });
48
+ expect(result.sort).toEqual({ name: -1 });
45
49
  });
46
- it('should handle non-numeric page and limit parameters', () => {
47
- const requestQuery = { page: 'abc', limit: 'xyz' };
48
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery);
49
- expect(result.page).toBe(NaN);
50
- expect(result.limit).toBe(NaN);
50
+ it('keeps parseInt results for invalid numeric controls', () => {
51
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({
52
+ page: 'not-a-page',
53
+ limit: 'not-a-limit',
54
+ });
55
+ expect(result.page).toBeNaN();
56
+ expect(result.limit).toBeNaN();
51
57
  });
52
- it('should parse sort parameters correctly with provided sortValue', () => {
53
- const requestQuery = { sort: 'name,1' };
54
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery);
55
- expect(result.sort).toEqual({ name: '1' });
58
+ it('splits an empty expand value using native string split behavior', () => {
59
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({ expand: '' });
60
+ expect(result.expand).toEqual(['']);
56
61
  });
57
- it('should parse sort parameters correctly with default sortValue', () => {
58
- const requestQuery = { sort: 'name' };
59
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery);
60
- expect(result.sort).toEqual({ name: -1 });
62
+ });
63
+ describe('date filters', () => {
64
+ it('adds dateFrom as an inclusive start-of-day lower bound on createdAt by default', () => {
65
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({ dateFrom: '01-01-2023' });
66
+ expectDayBounds(result.filter.createdAt.$gte, '01-01-2023');
67
+ expect(result.filter.createdAt.$lte).toBeUndefined();
61
68
  });
62
- it('should handle expand parameter correctly', () => {
63
- const requestQuery = { expand: 'user,profile,settings' };
64
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery);
65
- expect(result.expand).toEqual(['user', 'profile', 'settings']);
69
+ it('adds dateTo as an inclusive end-of-day upper bound on createdAt by default', () => {
70
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({ dateTo: '31-01-2023' });
71
+ expect(result.filter.createdAt.$gte).toBeUndefined();
72
+ expectDayBounds(result.filter.createdAt.$lte, '31-01-2023', 'DD-MM-YYYY', 'endOf');
66
73
  });
67
- it('should handle empty expand parameter', () => {
68
- const requestQuery = { expand: '' };
69
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery);
70
- expect(result.expand).toEqual(['']);
74
+ it('combines dateFrom and dateTo on the same date field', () => {
75
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({
76
+ dateFrom: '01-01-2023',
77
+ dateTo: '31-01-2023',
78
+ });
79
+ expectDayBounds(result.filter.createdAt.$gte, '01-01-2023');
80
+ expectDayBounds(result.filter.createdAt.$lte, '31-01-2023', 'DD-MM-YYYY', 'endOf');
81
+ });
82
+ it('uses a custom date field when provided', () => {
83
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({
84
+ dateFrom: '01-01-2023',
85
+ dateTo: '31-01-2023',
86
+ }, { dateField: 'updatedAt' });
87
+ expect(result.filter.createdAt).toBeUndefined();
88
+ expectDayBounds(result.filter.updatedAt.$gte, '01-01-2023');
89
+ expectDayBounds(result.filter.updatedAt.$lte, '31-01-2023', 'DD-MM-YYYY', 'endOf');
71
90
  });
72
- it('should handle dateFrom parameter correctly', () => {
73
- const requestQuery = { dateFrom: '01-01-2023' };
74
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery);
75
- expect(result.filter.createdAt.$gte).toEqual(new Date('01-01-2023'));
76
- });
77
- it('should handle dateTo parameter correctly', () => {
78
- const requestQuery = { dateTo: '31-01-2023' };
79
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery);
80
- expect(result.filter.createdAt.$lte).toEqual((0, dayjs_1.default)(requestQuery.dateTo, 'DD-MM-YYYY').endOf('day').toDate());
81
- });
82
- it('should handle both dateFrom and dateTo parameters correctly', () => {
83
- const requestQuery = { dateFrom: '01-01-2023', dateTo: '31-01-2023' };
84
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery);
85
- expect(result.filter.createdAt.$gte).toEqual((0, dayjs_1.default)(requestQuery.dateFrom, 'DD-MM-YYYY').startOf('day').toDate());
86
- expect(result.filter.createdAt.$lte).toEqual((0, dayjs_1.default)(requestQuery.dateTo, 'DD-MM-YYYY').endOf('day').toDate());
87
- });
88
- it('should use custom dateField from options', () => {
89
- const requestQuery = { dateFrom: '01-01-2023', dateTo: '31-01-2023' };
90
- const options = { dateField: 'updatedAt' };
91
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery, options);
92
- expect(result.filter.updatedAt.$gte).toEqual((0, dayjs_1.default)(requestQuery.dateFrom, 'DD-MM-YYYY').startOf('day').toDate());
93
- expect(result.filter.updatedAt.$lte).toEqual((0, dayjs_1.default)(requestQuery.dateTo, 'DD-MM-YYYY').endOf('day').toDate());
94
- });
95
- it('should use custom dateFormat from options', () => {
96
- const requestQuery = { dateFrom: '2023-01-01', dateTo: '2023-01-31' };
97
- const options = { dateFormat: 'YYYY-MM-DD' };
98
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery, options);
99
- });
100
- it('should ignore empty dateFrom and dateTo parameters', () => {
101
- const requestQuery = { dateFrom: '', dateTo: '' };
102
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery);
91
+ it('uses a custom date format when provided', () => {
92
+ const options = { dateFormat: 'YYYY/MM/DD' };
93
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({
94
+ dateFrom: '2023/01/01',
95
+ dateTo: '2023/01/31',
96
+ }, options);
97
+ expectDayBounds(result.filter.createdAt.$gte, '2023/01/01', options.dateFormat);
98
+ expectDayBounds(result.filter.createdAt.$lte, '2023/01/31', options.dateFormat, 'endOf');
99
+ });
100
+ it.each([
101
+ ['unix timestamp seconds', '1672531200'],
102
+ ['ISO date', '2023-01-01'],
103
+ ['ISO timestamp with offset', '2023-01-01T13:30:00.000+00:00'],
104
+ ['DD-MM-YYYY date', '01-01-2023'],
105
+ ])('parses the default %s date format', (_label, dateFrom) => {
106
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({ dateFrom });
107
+ expect(result.filter.createdAt.$gte).toBeInstanceOf(Date);
108
+ expect(result.filter.createdAt.$gte.toString()).not.toBe('Invalid Date');
109
+ });
110
+ it('ignores empty date boundaries', () => {
111
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({
112
+ dateFrom: '',
113
+ dateTo: '',
114
+ });
103
115
  expect(result.filter.createdAt).toBeUndefined();
104
116
  });
105
- it('should handle search query with no searchFields', () => {
106
- const requestQuery = { q: 'test-query' };
107
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery);
108
- // Should sanitize the query
109
- const sanitizedQuery = 'testquery';
117
+ });
118
+ describe('search filters', () => {
119
+ it('creates a text search filter when no search fields are configured', () => {
120
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({ q: 'test-query' });
110
121
  expect(result.filter.$text).toEqual({
111
122
  $search: expect.any(RegExp),
112
- $caseSensitive: false
113
- });
114
- // Check the regex pattern
115
- const regex = result.filter.$text.$search;
116
- expect(regex.source).toBe(sanitizedQuery);
117
- expect(regex.flags).toBe('gi');
118
- });
119
- it('should sanitize special characters from search query', () => {
120
- const requestQuery = { q: '+test-query with $pecial ch@racters!' };
121
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery);
122
- // The sanitized query should only contain alphanumeric characters and spaces
123
- expect(result.filter.$text.$search.source).toBe('testquery with pecial chracters');
124
- });
125
- it('should handle search query with provided searchFields', () => {
126
- const requestQuery = { q: 'test-query' };
127
- const options = {
128
- searchFields: ['name', 'description', 'tags']
129
- };
130
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery, options);
131
- // Should sanitize the query
132
- const sanitizedQuery = 'testquery';
123
+ $caseSensitive: false,
124
+ });
125
+ expectRegex(result.filter.$text.$search, 'testquery');
126
+ });
127
+ it('sanitizes special characters from text search input', () => {
128
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({
129
+ q: '+test-query with $pecial ch@racters!',
130
+ });
131
+ expectRegex(result.filter.$text.$search, 'testquery with pecial chracters');
132
+ });
133
+ it('creates a field search $or group when search fields are configured', () => {
134
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({ q: 'Harry Potter' }, { searchFields: ['title', 'description', 'tags'] });
133
135
  expect(result.filter.$or).toEqual([
134
- { name: expect.any(RegExp) },
136
+ { title: expect.any(RegExp) },
135
137
  { description: expect.any(RegExp) },
136
- { tags: expect.any(RegExp) }
138
+ { tags: expect.any(RegExp) },
139
+ ]);
140
+ result.filter.$or.forEach((condition) => {
141
+ expectRegex(condition[Object.keys(condition)[0]], 'Harry Potter');
142
+ });
143
+ expect(result.filter.$text).toBeUndefined();
144
+ });
145
+ it('does not add an $or group for search when searchFields is empty', () => {
146
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({ q: 'Harry Potter' }, { searchFields: [] });
147
+ expect(result.filter.$or).toBeUndefined();
148
+ expectRegex(result.filter.$text.$search, 'Harry Potter');
149
+ });
150
+ });
151
+ describe('parent client search', () => {
152
+ it('passes clientId through as a direct filter when parent client search is disabled', () => {
153
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({ clientId: 'client-1' });
154
+ expect(result.filter).toEqual({ clientId: 'client-1' });
155
+ });
156
+ it('expands clientId into clientId or parentClientId when enabled', () => {
157
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({ clientId: 'client-1' }, { enableParentClientSearch: true });
158
+ expect(result.filter).toEqual({
159
+ $or: [{ clientId: 'client-1' }, { parentClientId: 'client-1' }],
160
+ });
161
+ });
162
+ it('combines parent client search and field search with $and when q is processed first', () => {
163
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({
164
+ q: 'Harry Potter',
165
+ clientId: 'client-1',
166
+ }, {
167
+ enableParentClientSearch: true,
168
+ searchFields: ['title', 'description'],
169
+ });
170
+ expect(result.filter.$or).toBeUndefined();
171
+ expect(result.filter.$and).toEqual([
172
+ {
173
+ $or: [{ title: expect.any(RegExp) }, { description: expect.any(RegExp) }],
174
+ },
175
+ {
176
+ $or: [{ clientId: 'client-1' }, { parentClientId: 'client-1' }],
177
+ },
178
+ ]);
179
+ });
180
+ it('combines parent client search and field search with $and when clientId is processed first', () => {
181
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({
182
+ clientId: 'client-1',
183
+ q: 'Harry Potter',
184
+ }, {
185
+ enableParentClientSearch: true,
186
+ searchFields: ['title', 'description'],
187
+ });
188
+ expect(result.filter.$or).toBeUndefined();
189
+ expect(result.filter.$and).toEqual([
190
+ {
191
+ $or: [{ clientId: 'client-1' }, { parentClientId: 'client-1' }],
192
+ },
193
+ {
194
+ $or: [{ title: expect.any(RegExp) }, { description: expect.any(RegExp) }],
195
+ },
196
+ ]);
197
+ });
198
+ it('appends additional $or groups to an existing $and group', () => {
199
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({
200
+ clientId: 'client-1',
201
+ q: 'Harry Potter',
202
+ accountId: 'account-1',
203
+ }, {
204
+ enableParentClientSearch: true,
205
+ searchFields: ['title'],
206
+ });
207
+ expect(result.filter.$and).toEqual([
208
+ {
209
+ $or: [{ clientId: 'client-1' }, { parentClientId: 'client-1' }],
210
+ },
211
+ {
212
+ $or: [{ title: expect.any(RegExp) }],
213
+ },
137
214
  ]);
138
- // Check the regex patterns
139
- result.filter.$or.forEach((item) => {
140
- const field = Object.keys(item)[0];
141
- const regex = item[field];
142
- expect(regex.source).toBe(sanitizedQuery);
143
- expect(regex.flags).toBe('gi');
144
- });
145
- });
146
- it('should append to existing $or array when handling search with searchFields', () => {
147
- const requestQuery = { q: 'test-query', status: 'active' };
148
- const existingOr = [{ type: 'special' }];
149
- const options = {
150
- searchFields: ['name']
151
- };
152
- // First add an $or condition
153
- const initialResult = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({ $or: existingOr }, options);
154
- // Then process the search query
155
- const finalResult = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery, options);
156
- expect(finalResult.filter.$or.length).toBe(1);
157
- });
158
- it('should add other query parameters to filter directly', () => {
159
- const requestQuery = { status: 'active', category: 'books', isPublished: true };
160
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery);
161
- expect(result.filter.status).toBe('active');
162
- expect(result.filter.category).toBe('books');
163
- expect(result.filter.isPublished).toBe(true);
164
- });
165
- it('should handle mixed query parameters correctly', () => {
166
- const requestQuery = {
215
+ expect(result.filter.accountId).toBe('account-1');
216
+ });
217
+ });
218
+ describe('populate and direct filters', () => {
219
+ it('maps configured populate fields to include flags', () => {
220
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({}, { populate: ['client', 'wallet'] });
221
+ expect(result.populate).toEqual({
222
+ client: 1,
223
+ wallet: 1,
224
+ });
225
+ });
226
+ it('passes unreserved query parameters through to the filter unchanged', () => {
227
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({
228
+ status: 'active',
229
+ category: undefined,
230
+ isPublished: true,
231
+ metadata: { source: 'api' },
232
+ tags: [],
233
+ });
234
+ expect(result.filter).toEqual({
235
+ status: 'active',
236
+ category: undefined,
237
+ isPublished: true,
238
+ metadata: { source: 'api' },
239
+ tags: [],
240
+ });
241
+ });
242
+ it('resolves a mixed request query', () => {
243
+ const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery({
167
244
  page: '2',
168
245
  limit: '25',
169
246
  sort: 'createdAt,-1',
@@ -172,57 +249,24 @@ describe('DatabaseAction', () => {
172
249
  dateTo: '31-01-2023',
173
250
  q: 'Harry Potter',
174
251
  status: 'published',
175
- category: 'fiction'
176
- };
177
- const options = {
178
- searchFields: ['title', 'description']
179
- };
180
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery, options);
252
+ category: 'fiction',
253
+ }, {
254
+ searchFields: ['title', 'description'],
255
+ populate: ['author'],
256
+ });
181
257
  expect(result.page).toBe(2);
182
258
  expect(result.limit).toBe(25);
183
259
  expect(result.sort).toEqual({ createdAt: '-1' });
184
260
  expect(result.expand).toEqual(['author', 'comments']);
185
- expect(result.filter.createdAt.$gte).toEqual((0, dayjs_1.default)(requestQuery.dateFrom, 'DD-MM-YYYY').startOf('day').toDate());
186
- expect(result.filter.createdAt.$lte).toEqual((0, dayjs_1.default)(requestQuery.dateTo, 'DD-MM-YYYY').endOf('day').toDate());
187
- expect(result.filter.$or).toHaveLength(2);
261
+ expectDayBounds(result.filter.createdAt.$gte, '01-01-2023');
262
+ expectDayBounds(result.filter.createdAt.$lte, '31-01-2023', 'DD-MM-YYYY', 'endOf');
263
+ expect(result.filter.$or).toEqual([
264
+ { title: expect.any(RegExp) },
265
+ { description: expect.any(RegExp) },
266
+ ]);
188
267
  expect(result.filter.status).toBe('published');
189
268
  expect(result.filter.category).toBe('fiction');
190
- });
191
- it('should handle null or undefined values in request query', () => {
192
- const requestQuery = {
193
- status: null,
194
- category: undefined,
195
- tags: []
196
- };
197
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery);
198
- expect(result.filter.status).toBe(null);
199
- expect(result.filter.category).toBe(undefined);
200
- expect(result.filter.tags).toEqual([]);
201
- });
202
- });
203
- describe('enableParentClientSearch', () => {
204
- it('should enable search by clientId', () => {
205
- const requestQuery = {
206
- page: '2',
207
- limit: '25',
208
- sort: 'createdAt,-1',
209
- expand: 'author,comments',
210
- dateFrom: '01-01-2023',
211
- dateTo: '31-01-2023',
212
- q: 'Harry Potter',
213
- status: 'published',
214
- category: 'fiction',
215
- clientId: '1234567890'
216
- };
217
- const options = {
218
- enableParentClientSearch: true
219
- };
220
- const result = database_1.DatabaseUtil.resolveObjectToMongoDBQuery(requestQuery, options);
221
- expect(result.filter["$or"]).toHaveLength(2);
222
- expect(result.filter["$or"][0]).toEqual({ clientId: "1234567890" });
223
- expect(result.filter["$or"][1]).toEqual({ parentClientId: "1234567890" });
224
- expect(result.filter.clientId).toBe(undefined);
225
- console.log("Result", JSON.stringify(result.filter));
269
+ expect(result.populate).toEqual({ author: 1 });
226
270
  });
227
271
  });
228
272
  });
@@ -1 +1 @@
1
- {"version":3,"file":"database.spec.js","sourceRoot":"","sources":["../../src/utils/database.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.spec.js","sourceRoot":"","sources":["../../src/utils/database.spec.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- /// <reference types="node" />
2
1
  import { PFunctionResult } from '../types';
2
+ import { Options } from 'csv-parse/sync';
3
+ import { Sheet2JSONOpts } from 'xlsx';
3
4
  export declare enum FileType {
4
5
  csv = "csv",
5
6
  xlsx = "xlsx",
@@ -16,7 +17,7 @@ export type ConvertFilePayload = {
16
17
  destination: FileSourceOrDestination;
17
18
  fileType: FileType;
18
19
  sourceFile?: string | Buffer;
19
- destinationFileParams?: Record<string, any>;
20
+ destinationFileParams?: Options | Sheet2JSONOpts | Record<string, any>;
20
21
  };
21
22
  export declare class FileUtil {
22
23
  static getFileFromURL(url: string): Promise<Buffer>;
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,yCAAuC;AACvC,gDAAwB;AAExB,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,uBAAW,CAAA;IACX,yBAAa,CAAA;IACb,uBAAW,CAAA;AACb,CAAC,EAJW,QAAQ,wBAAR,QAAQ,QAInB;AAED,IAAY,uBAIX;AAJD,WAAY,uBAAuB;IACjC,sCAAW,CAAA;IACX,sCAAW,CAAA;IACX,wCAAa,CAAA;AACf,CAAC,EAJW,uBAAuB,uCAAvB,uBAAuB,QAIlC;AAWD,MAAa,QAAQ;IACnB,MAAM,CAAO,cAAc,CAAC,GAAW;;YACrC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC;KAAA;IAED,MAAM,CAAO,WAAW,CAAC,OAA2B;;YAClD,IAAI,IAAkB,CAAC;YACvB,IAAI,OAAO,CAAC,MAAM,KAAK,uBAAuB,CAAC,GAAG,EAAE,CAAC;gBACnD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,UAAoB,CAAC,CAAC;gBACzD,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YACpC,CAAC;YAED,IAAI,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,WAAW,KAAK,uBAAuB,CAAC,IAAI,EAAE,CAAC;gBAC7F,OAAO;oBACL,IAAI,EAAE,IAAA,YAAK,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,qBAAqB,CAAC;iBACzE,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,WAAW,KAAK,uBAAuB,CAAC,IAAI,EAAE,CAAC;gBACrH,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,cAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,kBAC3C,MAAM,EAAE,CAAC,EACT,GAAG,EAAE,KAAK,EACV,MAAM,EAAE,EAAE,EACV,SAAS,EAAE,KAAK,IACb,OAAO,CAAC,qBAAqB,EAEnC,CAAC;gBAEF,OAAO;oBACL,IAAI,EAAE,IAAI;iBACX,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,IAAI;aACX,CAAC;QACJ,CAAC;KAAA;CACF;AA1CD,4BA0CC;AAID,MAAM;AACN,2BAA2B;AAC3B,2BAA2B;AAC3B,yCAAyC;AACzC,4BAA4B;AAC5B,0GAA0G;AAC1G,+CAA+C;AAC/C,6BAA6B;AAC7B,qBAAqB;AACrB,sBAAsB;AACtB,8BAA8B;AAC9B,OAAO;AACP,uBAAuB;AACvB,2BAA2B;AAG3B,2BAA2B;AAC3B,2BAA2B;AAC3B,yCAAyC;AACzC,6BAA6B;AAC7B,0GAA0G;AAC1G,+CAA+C;AAC/C,6BAA6B;AAC7B,qBAAqB;AACrB,oBAAoB;AACpB,8BAA8B;AAC9B,OAAO;AACP,uBAAuB;AACvB,2BAA2B"}
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,yCAAgD;AAChD,gDAA0C;AAE1C,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,uBAAW,CAAA;IACX,yBAAa,CAAA;IACb,uBAAW,CAAA;AACb,CAAC,EAJW,QAAQ,wBAAR,QAAQ,QAInB;AAED,IAAY,uBAIX;AAJD,WAAY,uBAAuB;IACjC,sCAAW,CAAA;IACX,sCAAW,CAAA;IACX,wCAAa,CAAA;AACf,CAAC,EAJW,uBAAuB,uCAAvB,uBAAuB,QAIlC;AAWD,MAAa,QAAQ;IACnB,MAAM,CAAO,cAAc,CAAC,GAAW;;YACrC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC;KAAA;IAED,MAAM,CAAO,WAAW,CAAC,OAA2B;;YAClD,IAAI,IAAkB,CAAC;YACvB,IAAI,OAAO,CAAC,MAAM,KAAK,uBAAuB,CAAC,GAAG,EAAE,CAAC;gBACnD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,UAAoB,CAAC,CAAC;gBACzD,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YACpC,CAAC;YAED,IAAI,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,WAAW,KAAK,uBAAuB,CAAC,IAAI,EAAE,CAAC;gBAC7F,OAAO;oBACL,IAAI,EAAE,IAAA,YAAK,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,qBAAgC,CAAC;iBACpF,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,WAAW,KAAK,uBAAuB,CAAC,IAAI,EAAE,CAAC;gBACrH,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,cAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,kBAC3C,MAAM,EAAE,CAAC,EACT,GAAG,EAAE,KAAK,EACV,MAAM,EAAE,EAAE,EACV,SAAS,EAAE,KAAK,IACb,OAAO,CAAC,qBAAuC,EAErD,CAAC;gBAEF,OAAO;oBACL,IAAI,EAAE,IAAI;iBACX,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,IAAI;aACX,CAAC;QACJ,CAAC;KAAA;CACF;AA1CD,4BA0CC;AAID,MAAM;AACN,2BAA2B;AAC3B,2BAA2B;AAC3B,yCAAyC;AACzC,4BAA4B;AAC5B,0GAA0G;AAC1G,+CAA+C;AAC/C,6BAA6B;AAC7B,qBAAqB;AACrB,sBAAsB;AACtB,8BAA8B;AAC9B,OAAO;AACP,uBAAuB;AACvB,2BAA2B;AAG3B,2BAA2B;AAC3B,2BAA2B;AAC3B,yCAAyC;AACzC,6BAA6B;AAC7B,0GAA0G;AAC1G,+CAA+C;AAC/C,6BAA6B;AAC7B,qBAAqB;AACrB,oBAAoB;AACpB,8BAA8B;AAC9B,OAAO;AACP,uBAAuB;AACvB,2BAA2B"}
@@ -7,4 +7,6 @@ export declare class HelperUtil {
7
7
  static sleep(durationInMs?: number): Promise<unknown>;
8
8
  static saveActivityLog(activityLog: SaveActivityLogDTO, options?: any): Promise<void>;
9
9
  static removeFieldsWithEmptyValue(value: any): any;
10
+ static getUniqueStringItemsFromArray(items: Array<string | undefined | null>): string[];
11
+ static getUniqueObjectItemsFromArray<T extends Record<string, any>>(items: T[], keys: Array<keyof T>): T[];
10
12
  }
@@ -87,6 +87,26 @@ class HelperUtil {
87
87
  }
88
88
  return objectTobeWorkingOn;
89
89
  }
90
+ static getUniqueStringItemsFromArray(items) {
91
+ return [...new Set(items.filter(Boolean).map(String))];
92
+ }
93
+ static getUniqueObjectItemsFromArray(items, keys) {
94
+ if (!keys.length)
95
+ return items;
96
+ const uniqueItems = new Set();
97
+ return items.filter(item => {
98
+ const uniqueKey = keys
99
+ .map(key => {
100
+ const value = item[key];
101
+ return `${String(key)}:${typeof value}:${String(value)}`;
102
+ })
103
+ .join('|');
104
+ if (uniqueItems.has(uniqueKey))
105
+ return false;
106
+ uniqueItems.add(uniqueKey);
107
+ return true;
108
+ });
109
+ }
90
110
  }
91
111
  exports.HelperUtil = HelperUtil;
92
112
  //# sourceMappingURL=helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/utils/helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/utils/helper.ts"],"names":[],"mappings":"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"}