@opencrvs/toolkit 1.8.0-rc.f8f3eb3 → 1.8.0-rc.f97f8f2
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/README.md +1 -1
- package/dist/commons/api/router.d.ts +11637 -10482
- package/dist/commons/conditionals/conditionals.d.ts +33 -6
- package/dist/commons/conditionals/validate-address.test.d.ts +2 -0
- package/dist/commons/conditionals/validate.d.ts +39 -17
- package/dist/commons/conditionals/validate.test.d.ts +2 -0
- package/dist/commons/events/ActionConfig.d.ts +89415 -2021
- package/dist/commons/events/ActionDocument.d.ts +9820 -313
- package/dist/commons/events/ActionInput.d.ts +5365 -584
- package/dist/commons/events/ActionType.d.ts +27 -12
- package/dist/commons/events/AdvancedSearchConfig.d.ts +369 -25
- package/dist/commons/events/CompositeFieldValue.d.ts +155 -2
- package/dist/commons/events/Conditional.d.ts +21 -5
- package/dist/commons/events/CountryConfigQueryInput.d.ts +1506 -0
- package/dist/commons/events/Draft.d.ts +367 -54
- package/dist/commons/events/EventConfig.d.ts +42573 -1784
- package/dist/commons/events/EventConfigInput.d.ts +6 -3
- package/dist/commons/events/EventDocument.d.ts +3526 -429
- package/dist/commons/events/EventIndex.d.ts +1548 -10
- package/dist/commons/events/EventInput.d.ts +13 -0
- package/dist/commons/events/EventMetadata.d.ts +277 -8
- package/dist/commons/events/FieldConfig.d.ts +4262 -800
- package/dist/commons/events/FieldType.d.ts +7 -2
- package/dist/commons/events/FieldTypeMapping.d.ts +164 -6
- package/dist/commons/events/FieldValue.d.ts +82 -5
- package/dist/commons/events/FormConfig.d.ts +40636 -73
- package/dist/commons/events/PageConfig.d.ts +10209 -0
- package/dist/commons/events/SummaryConfig.d.ts +95 -39
- package/dist/commons/events/TemplateConfig.d.ts +38 -0
- package/dist/commons/events/User.d.ts +31 -2
- package/dist/commons/events/WorkqueueColumnConfig.d.ts +42 -0
- package/dist/commons/events/WorkqueueConfig.d.ts +2834 -19
- package/dist/commons/events/defineConfig.d.ts +7030 -230
- package/dist/commons/events/event.d.ts +27 -0
- package/dist/commons/events/field.d.ts +68 -0
- package/dist/commons/events/index.d.ts +9 -1
- package/dist/commons/events/scopes.d.ts +26 -0
- package/dist/commons/events/serializer.d.ts +2 -0
- package/dist/commons/events/test.utils.d.ts +128 -238
- package/dist/commons/events/utils.d.ts +3679 -69
- package/dist/commons/events/utils.test.d.ts +2 -0
- package/dist/commons/events/workqueueDefaultColumns.d.ts +3 -0
- package/dist/conditionals/index.js +215 -110
- package/dist/events/index.js +3157 -1372
- package/dist/scopes/index.d.ts +105 -1
- package/dist/scopes/index.js +140 -0
- package/package.json +3 -2
@@ -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
|
-
|
27
|
-
|
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
|
-
|
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,149 @@ var user = {
|
|
79
111
|
},
|
80
112
|
required: ["$user"]
|
81
113
|
})
|
82
|
-
};
|
83
|
-
|
84
|
-
|
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
|
-
|
88
|
-
type: "
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
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: [
|
107
|
-
}
|
108
|
-
}
|
109
|
-
function
|
110
|
-
|
161
|
+
required: [fieldId]
|
162
|
+
};
|
163
|
+
}
|
164
|
+
function isFieldReference(value) {
|
165
|
+
return typeof value === "object" && value !== null && "_fieldId" in value;
|
166
|
+
}
|
167
|
+
function createFieldConditionals(fieldId) {
|
111
168
|
const getDateRange = (date, clause) => ({
|
112
169
|
type: "object",
|
113
170
|
properties: {
|
114
|
-
|
115
|
-
type: "
|
116
|
-
|
117
|
-
|
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: [
|
177
|
+
required: [fieldId]
|
127
178
|
});
|
128
179
|
return {
|
129
180
|
isAfter: () => ({
|
130
181
|
days: (days) => ({
|
131
|
-
inPast: () =>
|
182
|
+
inPast: () => defineFormConditional(
|
132
183
|
getDateRange(getDateFromNow(days), "formatMinimum")
|
133
184
|
),
|
134
|
-
inFuture: () =>
|
185
|
+
inFuture: () => defineFormConditional(
|
135
186
|
getDateRange(getDateFromNow(-days), "formatMinimum")
|
136
187
|
)
|
137
188
|
}),
|
138
|
-
date: (date) =>
|
139
|
-
|
189
|
+
date: (date) => {
|
190
|
+
if (isFieldReference(date)) {
|
191
|
+
const comparedFieldId = date._fieldId;
|
192
|
+
return defineFormConditional(
|
193
|
+
getDateRangeToFieldReference(
|
194
|
+
fieldId,
|
195
|
+
comparedFieldId,
|
196
|
+
"formatMinimum"
|
197
|
+
)
|
198
|
+
);
|
199
|
+
}
|
200
|
+
return defineFormConditional(getDateRange(date, "formatMinimum"));
|
201
|
+
},
|
202
|
+
now: () => defineFormConditional(getDateRange(getDateFromNow(0), "formatMinimum"))
|
140
203
|
}),
|
141
204
|
isBefore: () => ({
|
142
205
|
days: (days) => ({
|
143
|
-
inPast: () =>
|
206
|
+
inPast: () => defineFormConditional(
|
144
207
|
getDateRange(getDateFromNow(days), "formatMaximum")
|
145
208
|
),
|
146
|
-
inFuture: () =>
|
209
|
+
inFuture: () => defineFormConditional(
|
147
210
|
getDateRange(getDateFromNow(-days), "formatMaximum")
|
148
211
|
)
|
149
212
|
}),
|
150
|
-
date: (date) =>
|
151
|
-
|
213
|
+
date: (date) => {
|
214
|
+
if (isFieldReference(date)) {
|
215
|
+
const comparedFieldId = date._fieldId;
|
216
|
+
return defineFormConditional(
|
217
|
+
getDateRangeToFieldReference(
|
218
|
+
fieldId,
|
219
|
+
comparedFieldId,
|
220
|
+
"formatMaximum"
|
221
|
+
)
|
222
|
+
);
|
223
|
+
}
|
224
|
+
return defineFormConditional(getDateRange(date, "formatMaximum"));
|
225
|
+
},
|
226
|
+
now: () => defineFormConditional(getDateRange(getDateFromNow(0), "formatMaximum"))
|
152
227
|
}),
|
153
|
-
isEqualTo: (value) =>
|
154
|
-
|
155
|
-
|
156
|
-
|
228
|
+
isEqualTo: (value) => {
|
229
|
+
if (isFieldReference(value)) {
|
230
|
+
const comparedFieldId = value._fieldId;
|
231
|
+
return defineFormConditional({
|
157
232
|
type: "object",
|
158
233
|
properties: {
|
159
234
|
[fieldId]: {
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
const: value
|
165
|
-
}
|
235
|
+
type: ["string", "boolean"],
|
236
|
+
const: { $data: `1/${comparedFieldId}` }
|
237
|
+
},
|
238
|
+
[comparedFieldId]: { type: ["string", "boolean"] }
|
166
239
|
},
|
167
|
-
required: [fieldId]
|
168
|
-
}
|
169
|
-
}
|
170
|
-
|
171
|
-
|
240
|
+
required: [fieldId, comparedFieldId]
|
241
|
+
});
|
242
|
+
}
|
243
|
+
return defineFormConditional({
|
244
|
+
type: "object",
|
245
|
+
properties: {
|
246
|
+
[fieldId]: {
|
247
|
+
oneOf: [
|
248
|
+
{ type: "string", const: value },
|
249
|
+
{ type: "boolean", const: value }
|
250
|
+
],
|
251
|
+
const: value
|
252
|
+
}
|
253
|
+
},
|
254
|
+
required: [fieldId]
|
255
|
+
});
|
256
|
+
},
|
172
257
|
/**
|
173
258
|
* Use case: Some fields are rendered when selection is not made, or boolean false is explicitly selected.
|
174
259
|
* @example field('recommender.none').isFalsy() vs not(field('recommender.none').isEqualTo(true))
|
@@ -177,68 +262,88 @@ function field(fieldId) {
|
|
177
262
|
* NOTE: For now, this only works with string, boolean, and null types. 0 is still allowed.
|
178
263
|
*
|
179
264
|
*/
|
180
|
-
isFalsy: () =>
|
265
|
+
isFalsy: () => defineFormConditional({
|
181
266
|
type: "object",
|
182
267
|
properties: {
|
183
|
-
|
184
|
-
type: "object",
|
185
|
-
properties: {
|
186
|
-
[fieldId]: {
|
187
|
-
anyOf: [
|
188
|
-
{ const: "undefined" },
|
189
|
-
{ const: false },
|
190
|
-
{ const: null },
|
191
|
-
{ const: "" }
|
192
|
-
]
|
193
|
-
}
|
194
|
-
},
|
268
|
+
[fieldId]: {
|
195
269
|
anyOf: [
|
196
|
-
{
|
197
|
-
|
198
|
-
},
|
199
|
-
{
|
200
|
-
not: {
|
201
|
-
required: [fieldId]
|
202
|
-
}
|
203
|
-
}
|
270
|
+
{ const: "undefined" },
|
271
|
+
{ const: false },
|
272
|
+
{ const: null },
|
273
|
+
{ const: "" }
|
204
274
|
]
|
205
275
|
}
|
206
276
|
},
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
$form: {
|
213
|
-
type: "object",
|
214
|
-
properties: {
|
215
|
-
[fieldId]: {
|
216
|
-
type: "string",
|
217
|
-
enum: ["undefined"]
|
218
|
-
}
|
219
|
-
},
|
277
|
+
anyOf: [
|
278
|
+
{
|
279
|
+
required: [fieldId]
|
280
|
+
},
|
281
|
+
{
|
220
282
|
not: {
|
221
283
|
required: [fieldId]
|
222
284
|
}
|
223
285
|
}
|
286
|
+
]
|
287
|
+
}),
|
288
|
+
isUndefined: () => defineFormConditional({
|
289
|
+
type: "object",
|
290
|
+
properties: {
|
291
|
+
[fieldId]: {
|
292
|
+
type: "string",
|
293
|
+
enum: ["undefined"]
|
294
|
+
}
|
224
295
|
},
|
225
|
-
|
296
|
+
not: {
|
297
|
+
required: [fieldId]
|
298
|
+
}
|
226
299
|
}),
|
227
|
-
inArray: (values) =>
|
300
|
+
inArray: (values) => defineFormConditional({
|
228
301
|
type: "object",
|
229
302
|
properties: {
|
230
|
-
|
231
|
-
type: "
|
232
|
-
|
233
|
-
[fieldId]: {
|
234
|
-
type: "string",
|
235
|
-
enum: values
|
236
|
-
}
|
237
|
-
},
|
238
|
-
required: [fieldId]
|
303
|
+
[fieldId]: {
|
304
|
+
type: "string",
|
305
|
+
enum: values
|
239
306
|
}
|
240
307
|
},
|
241
|
-
required: [
|
242
|
-
})
|
308
|
+
required: [fieldId]
|
309
|
+
}),
|
310
|
+
isValidEnglishName: () => defineFormConditional({
|
311
|
+
type: "object",
|
312
|
+
properties: {
|
313
|
+
[fieldId]: {
|
314
|
+
type: "string",
|
315
|
+
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'._-]*)*$",
|
316
|
+
description: "Name must contain only letters, numbers, and allowed special characters ('._-). No double spaces."
|
317
|
+
}
|
318
|
+
},
|
319
|
+
required: [fieldId]
|
320
|
+
}),
|
321
|
+
/**
|
322
|
+
* Checks if the field value matches a given regular expression pattern.
|
323
|
+
* @param pattern - The regular expression pattern to match the field value against.
|
324
|
+
* @returns A JSONSchema conditional that validates the field value against the pattern.
|
325
|
+
*/
|
326
|
+
matches: (pattern) => defineFormConditional({
|
327
|
+
type: "object",
|
328
|
+
properties: {
|
329
|
+
[fieldId]: {
|
330
|
+
type: "string",
|
331
|
+
pattern
|
332
|
+
}
|
333
|
+
},
|
334
|
+
required: [fieldId]
|
335
|
+
}),
|
336
|
+
isBetween: (min, max) => defineFormConditional({
|
337
|
+
type: "object",
|
338
|
+
properties: {
|
339
|
+
[fieldId]: {
|
340
|
+
type: "number",
|
341
|
+
minimum: min,
|
342
|
+
maximum: max
|
343
|
+
}
|
344
|
+
},
|
345
|
+
required: [fieldId]
|
346
|
+
}),
|
347
|
+
getId: () => ({ fieldId })
|
243
348
|
};
|
244
349
|
}
|