@opencrvs/toolkit 1.8.0-rc.faacbde → 1.8.0-rc.facf9d6

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 (44) hide show
  1. package/dist/commons/api/router.d.ts +12657 -13930
  2. package/dist/commons/conditionals/conditionals.d.ts +25 -6
  3. package/dist/commons/conditionals/validate.d.ts +12 -17
  4. package/dist/commons/events/ActionConfig.d.ts +94298 -1733
  5. package/dist/commons/events/ActionDocument.d.ts +7848 -230
  6. package/dist/commons/events/ActionInput.d.ts +1417 -388
  7. package/dist/commons/events/ActionType.d.ts +6 -3
  8. package/dist/commons/events/AdvancedSearchConfig.d.ts +957 -22
  9. package/dist/commons/events/CompositeFieldValue.d.ts +3 -0
  10. package/dist/commons/events/Conditional.d.ts +21 -5
  11. package/dist/commons/events/Constants.d.ts +2 -0
  12. package/dist/commons/events/CountryConfigQueryInput.d.ts +2982 -0
  13. package/dist/commons/events/CreatedAtLocation.d.ts +3 -0
  14. package/dist/commons/events/Draft.d.ts +62 -28
  15. package/dist/commons/events/EventConfig.d.ts +42895 -1350
  16. package/dist/commons/events/EventDocument.d.ts +950 -254
  17. package/dist/commons/events/EventIndex.d.ts +1342 -13
  18. package/dist/commons/events/EventMetadata.d.ts +300 -11
  19. package/dist/commons/events/FieldConfig.d.ts +4549 -802
  20. package/dist/commons/events/FieldType.d.ts +3 -3
  21. package/dist/commons/events/FieldTypeMapping.d.ts +16 -6
  22. package/dist/commons/events/FieldValue.d.ts +9 -4
  23. package/dist/commons/events/FormConfig.d.ts +43951 -439
  24. package/dist/commons/events/PageConfig.d.ts +10954 -234
  25. package/dist/commons/events/SummaryConfig.d.ts +95 -39
  26. package/dist/commons/events/TemplateConfig.d.ts +5 -5
  27. package/dist/commons/events/User.d.ts +31 -2
  28. package/dist/commons/events/WorkqueueColumnConfig.d.ts +53 -0
  29. package/dist/commons/events/WorkqueueConfig.d.ts +4525 -20
  30. package/dist/commons/events/defineConfig.d.ts +6600 -66
  31. package/dist/commons/events/event.d.ts +54 -0
  32. package/dist/commons/events/field.d.ts +73 -0
  33. package/dist/commons/events/index.d.ts +7 -0
  34. package/dist/commons/events/scopes.d.ts +45 -0
  35. package/dist/commons/events/serializer.d.ts +2 -0
  36. package/dist/commons/events/test.utils.d.ts +52 -160
  37. package/dist/commons/events/utils.d.ts +3726 -39
  38. package/dist/commons/events/utils.test.d.ts +2 -0
  39. package/dist/commons/events/workqueueDefaultColumns.d.ts +3 -0
  40. package/dist/conditionals/index.js +197 -144
  41. package/dist/events/index.js +4233 -2017
  42. package/dist/scopes/index.d.ts +158 -1
  43. package/dist/scopes/index.js +152 -1
  44. package/package.json +3 -2
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.test.d.ts.map
@@ -0,0 +1,3 @@
1
+ import { WorkqueueColumn } from './WorkqueueColumnConfig';
2
+ export declare const defaultWorkqueueColumns: WorkqueueColumn[];
3
+ //# sourceMappingURL=workqueueDefaultColumns.d.ts.map
@@ -22,19 +22,48 @@ var conditionals_exports = {};
22
22
  __export(conditionals_exports, {
23
23
  alwaysTrue: () => alwaysTrue,
24
24
  and: () => and,
25
+ createEventConditionals: () => createEventConditionals,
26
+ createFieldConditionals: () => createFieldConditionals,
25
27
  defineConditional: () => defineConditional,
26
- event: () => event,
27
- field: () => field,
28
+ defineFormConditional: () => defineFormConditional,
29
+ never: () => never,
28
30
  not: () => not,
29
31
  or: () => or,
30
32
  user: () => user
31
33
  });
32
34
  module.exports = __toCommonJS(conditionals_exports);
33
35
 
36
+ // ../commons/src/events/serializers/user/serializer.ts
37
+ var import_zod = require("zod");
38
+ var SerializedUserField = import_zod.z.object({
39
+ $userField: import_zod.z.enum([
40
+ "id",
41
+ "name",
42
+ "role",
43
+ "signatureFilename",
44
+ "primaryOfficeId"
45
+ ])
46
+ });
47
+ function userSerializer(userField) {
48
+ return {
49
+ $userField: userField
50
+ };
51
+ }
52
+
34
53
  // ../commons/src/conditionals/conditionals.ts
35
54
  function defineConditional(schema) {
36
55
  return schema;
37
56
  }
57
+ function defineFormConditional(schema) {
58
+ const schemaWithForm = {
59
+ type: "object",
60
+ properties: {
61
+ $form: schema
62
+ },
63
+ required: ["$form"]
64
+ };
65
+ return defineConditional(schemaWithForm);
66
+ }
38
67
  function alwaysTrue() {
39
68
  return {};
40
69
  }
@@ -59,7 +88,10 @@ function not(condition) {
59
88
  required: []
60
89
  });
61
90
  }
62
- var user = {
91
+ function never() {
92
+ return not(alwaysTrue());
93
+ }
94
+ var user = Object.assign(userSerializer, {
63
95
  hasScope: (scope) => defineConditional({
64
96
  type: "object",
65
97
  properties: {
@@ -79,96 +111,153 @@ var user = {
79
111
  },
80
112
  required: ["$user"]
81
113
  })
82
- };
83
- var event = {
84
- hasAction: (action) => defineConditional({
114
+ });
115
+ function createEventConditionals() {
116
+ return {
117
+ /**
118
+ * Checks if the event contains a specific action type.
119
+ * @param action - The action type to check for.
120
+ */
121
+ hasAction: (action) => defineConditional({
122
+ type: "object",
123
+ properties: {
124
+ $event: {
125
+ type: "object",
126
+ properties: {
127
+ actions: {
128
+ type: "array",
129
+ contains: {
130
+ type: "object",
131
+ properties: {
132
+ type: {
133
+ const: action
134
+ }
135
+ },
136
+ required: ["type"]
137
+ }
138
+ }
139
+ },
140
+ required: ["actions"]
141
+ }
142
+ },
143
+ required: ["$event"]
144
+ })
145
+ };
146
+ }
147
+ function getDateFromNow(days) {
148
+ return new Date(Date.now() - days * 24 * 60 * 60 * 1e3).toISOString().split("T")[0];
149
+ }
150
+ function getDateRangeToFieldReference(fieldId, comparedFieldId, clause) {
151
+ return {
85
152
  type: "object",
86
153
  properties: {
87
- $event: {
88
- type: "object",
89
- properties: {
90
- actions: {
91
- type: "array",
92
- contains: {
93
- type: "object",
94
- properties: {
95
- type: {
96
- const: action
97
- }
98
- },
99
- required: ["type"]
100
- }
101
- }
102
- },
103
- required: ["actions"]
104
- }
154
+ [fieldId]: {
155
+ type: "string",
156
+ format: "date",
157
+ [clause]: { $data: `1/${comparedFieldId}` }
158
+ },
159
+ [comparedFieldId]: { type: "string", format: "date" }
105
160
  },
106
- required: ["$event"]
107
- })
108
- };
109
- function field(fieldId) {
110
- const getDateFromNow = (days) => new Date(Date.now() - days * 24 * 60 * 60 * 1e3).toISOString().split("T")[0];
161
+ required: [fieldId]
162
+ };
163
+ }
164
+ function isFieldReference(value) {
165
+ return typeof value === "object" && value !== null && "$$field" in value;
166
+ }
167
+ function createFieldConditionals(fieldId) {
111
168
  const getDateRange = (date, clause) => ({
112
169
  type: "object",
113
170
  properties: {
114
- $form: {
115
- type: "object",
116
- properties: {
117
- [fieldId]: {
118
- type: "string",
119
- format: "date",
120
- [clause]: date
121
- }
122
- },
123
- required: [fieldId]
171
+ [fieldId]: {
172
+ type: "string",
173
+ format: "date",
174
+ [clause]: date
124
175
  }
125
176
  },
126
- required: ["$form"]
177
+ required: [fieldId]
127
178
  });
128
179
  return {
180
+ /**
181
+ * @private Internal property used for field reference tracking.
182
+ */
183
+ $$field: fieldId,
129
184
  isAfter: () => ({
130
185
  days: (days) => ({
131
- inPast: () => defineConditional(
186
+ inPast: () => defineFormConditional(
132
187
  getDateRange(getDateFromNow(days), "formatMinimum")
133
188
  ),
134
- inFuture: () => defineConditional(
189
+ inFuture: () => defineFormConditional(
135
190
  getDateRange(getDateFromNow(-days), "formatMinimum")
136
191
  )
137
192
  }),
138
- date: (date) => defineConditional(getDateRange(date, "formatMinimum")),
139
- now: () => defineConditional(getDateRange(getDateFromNow(0), "formatMinimum"))
193
+ date: (date) => {
194
+ if (isFieldReference(date)) {
195
+ const comparedFieldId = date.$$field;
196
+ return defineFormConditional(
197
+ getDateRangeToFieldReference(
198
+ fieldId,
199
+ comparedFieldId,
200
+ "formatMinimum"
201
+ )
202
+ );
203
+ }
204
+ return defineFormConditional(getDateRange(date, "formatMinimum"));
205
+ },
206
+ now: () => defineFormConditional(getDateRange(getDateFromNow(0), "formatMinimum"))
140
207
  }),
141
208
  isBefore: () => ({
142
209
  days: (days) => ({
143
- inPast: () => defineConditional(
210
+ inPast: () => defineFormConditional(
144
211
  getDateRange(getDateFromNow(days), "formatMaximum")
145
212
  ),
146
- inFuture: () => defineConditional(
213
+ inFuture: () => defineFormConditional(
147
214
  getDateRange(getDateFromNow(-days), "formatMaximum")
148
215
  )
149
216
  }),
150
- date: (date) => defineConditional(getDateRange(date, "formatMaximum")),
151
- now: () => defineConditional(getDateRange(getDateFromNow(0), "formatMaximum"))
217
+ date: (date) => {
218
+ if (isFieldReference(date)) {
219
+ const comparedFieldId = date.$$field;
220
+ return defineFormConditional(
221
+ getDateRangeToFieldReference(
222
+ fieldId,
223
+ comparedFieldId,
224
+ "formatMaximum"
225
+ )
226
+ );
227
+ }
228
+ return defineFormConditional(getDateRange(date, "formatMaximum"));
229
+ },
230
+ now: () => defineFormConditional(getDateRange(getDateFromNow(0), "formatMaximum"))
152
231
  }),
153
- isEqualTo: (value) => defineConditional({
154
- type: "object",
155
- properties: {
156
- $form: {
232
+ isEqualTo: (value) => {
233
+ if (isFieldReference(value)) {
234
+ const comparedFieldId = value.$$field;
235
+ return defineFormConditional({
157
236
  type: "object",
158
237
  properties: {
159
238
  [fieldId]: {
160
- oneOf: [
161
- { type: "string", const: value },
162
- { type: "boolean", const: value }
163
- ],
164
- const: value
165
- }
239
+ type: ["string", "boolean"],
240
+ const: { $data: `1/${comparedFieldId}` }
241
+ },
242
+ [comparedFieldId]: { type: ["string", "boolean"] }
166
243
  },
167
- required: [fieldId]
168
- }
169
- },
170
- required: ["$form"]
171
- }),
244
+ required: [fieldId, comparedFieldId]
245
+ });
246
+ }
247
+ return defineFormConditional({
248
+ type: "object",
249
+ properties: {
250
+ [fieldId]: {
251
+ oneOf: [
252
+ { type: "string", const: value },
253
+ { type: "boolean", const: value }
254
+ ],
255
+ const: value
256
+ }
257
+ },
258
+ required: [fieldId]
259
+ });
260
+ },
172
261
  /**
173
262
  * Use case: Some fields are rendered when selection is not made, or boolean false is explicitly selected.
174
263
  * @example field('recommender.none').isFalsy() vs not(field('recommender.none').isEqualTo(true))
@@ -177,123 +266,87 @@ function field(fieldId) {
177
266
  * NOTE: For now, this only works with string, boolean, and null types. 0 is still allowed.
178
267
  *
179
268
  */
180
- isFalsy: () => defineConditional({
269
+ isFalsy: () => defineFormConditional({
181
270
  type: "object",
182
271
  properties: {
183
- $form: {
184
- type: "object",
185
- properties: {
186
- [fieldId]: {
187
- anyOf: [
188
- { const: "undefined" },
189
- { const: false },
190
- { const: null },
191
- { const: "" }
192
- ]
193
- }
194
- },
272
+ [fieldId]: {
195
273
  anyOf: [
196
- {
197
- required: [fieldId]
198
- },
199
- {
200
- not: {
201
- required: [fieldId]
202
- }
203
- }
274
+ { const: "undefined" },
275
+ { const: false },
276
+ { const: null },
277
+ { const: "" }
204
278
  ]
205
279
  }
206
280
  },
207
- required: ["$form"]
208
- }),
209
- isUndefined: () => defineConditional({
210
- type: "object",
211
- properties: {
212
- $form: {
213
- type: "object",
214
- properties: {
215
- [fieldId]: {
216
- type: "string",
217
- enum: ["undefined"]
218
- }
219
- },
281
+ anyOf: [
282
+ {
283
+ required: [fieldId]
284
+ },
285
+ {
220
286
  not: {
221
287
  required: [fieldId]
222
288
  }
223
289
  }
290
+ ]
291
+ }),
292
+ isUndefined: () => defineFormConditional({
293
+ type: "object",
294
+ properties: {
295
+ [fieldId]: {
296
+ type: "string",
297
+ enum: ["undefined"]
298
+ }
224
299
  },
225
- required: ["$form"]
300
+ not: {
301
+ required: [fieldId]
302
+ }
226
303
  }),
227
- inArray: (values) => defineConditional({
304
+ inArray: (values) => defineFormConditional({
228
305
  type: "object",
229
306
  properties: {
230
- $form: {
231
- type: "object",
232
- properties: {
233
- [fieldId]: {
234
- type: "string",
235
- enum: values
236
- }
237
- },
238
- required: [fieldId]
307
+ [fieldId]: {
308
+ type: "string",
309
+ enum: values
239
310
  }
240
311
  },
241
- required: ["$form"]
312
+ required: [fieldId]
242
313
  }),
243
- isValidEnglishName: () => defineConditional({
314
+ isValidEnglishName: () => defineFormConditional({
244
315
  type: "object",
245
316
  properties: {
246
- $form: {
247
- type: "object",
248
- properties: {
249
- [fieldId]: {
250
- type: "string",
251
- pattern: "^[\\p{Script=Latin}0-9'._-]*(\\([\\p{Script=Latin}0-9'._-]+\\))?[\\p{Script=Latin}0-9'._-]*( [\\p{Script=Latin}0-9'._-]*(\\([\\p{Script=Latin}0-9'._-]+\\))?[\\p{Script=Latin}0-9'._-]*)*$",
252
- description: "Name must contain only letters, numbers, and allowed special characters ('._-). No double spaces."
253
- }
254
- },
255
- required: [fieldId]
317
+ [fieldId]: {
318
+ type: "string",
319
+ pattern: "^[\\p{Script=Latin}0-9'._-]*(\\([\\p{Script=Latin}0-9'._-]+\\))?[\\p{Script=Latin}0-9'._-]*( [\\p{Script=Latin}0-9'._-]*(\\([\\p{Script=Latin}0-9'._-]+\\))?[\\p{Script=Latin}0-9'._-]*)*$",
320
+ description: "Name must contain only letters, numbers, and allowed special characters ('._-). No double spaces."
256
321
  }
257
322
  },
258
- required: ["$form"]
323
+ required: [fieldId]
259
324
  }),
260
325
  /**
261
326
  * Checks if the field value matches a given regular expression pattern.
262
327
  * @param pattern - The regular expression pattern to match the field value against.
263
328
  * @returns A JSONSchema conditional that validates the field value against the pattern.
264
329
  */
265
- matches: (pattern) => defineConditional({
330
+ matches: (pattern) => defineFormConditional({
266
331
  type: "object",
267
332
  properties: {
268
- $form: {
269
- type: "object",
270
- properties: {
271
- [fieldId]: {
272
- type: "string",
273
- pattern
274
- }
275
- },
276
- required: [fieldId]
333
+ [fieldId]: {
334
+ type: "string",
335
+ pattern
277
336
  }
278
337
  },
279
- required: ["$form"]
338
+ required: [fieldId]
280
339
  }),
281
- isBetween: (min, max) => defineConditional({
340
+ isBetween: (min, max) => defineFormConditional({
282
341
  type: "object",
283
342
  properties: {
284
- $form: {
285
- type: "object",
286
- properties: {
287
- [fieldId]: {
288
- type: "number",
289
- minimum: min,
290
- maximum: max
291
- }
292
- },
293
- required: [fieldId]
343
+ [fieldId]: {
344
+ type: "number",
345
+ minimum: min,
346
+ maximum: max
294
347
  }
295
348
  },
296
- required: ["$form"]
349
+ required: [fieldId]
297
350
  })
298
351
  };
299
352
  }