@opencrvs/toolkit 1.8.0-rc.f9c5526 → 1.8.0-rc.f9d33b7
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/dist/commons/api/router.d.ts +7290 -4133
- package/dist/commons/conditionals/conditionals.d.ts +9 -6
- package/dist/commons/conditionals/validate.d.ts +4 -6
- package/dist/commons/events/ActionConfig.d.ts +86380 -1682
- package/dist/commons/events/ActionDocument.d.ts +420 -103
- package/dist/commons/events/ActionInput.d.ts +158 -60
- package/dist/commons/events/ActionType.d.ts +2 -0
- package/dist/commons/events/AdvancedSearchConfig.d.ts +371 -25
- package/dist/commons/events/CompositeFieldValue.d.ts +3 -0
- package/dist/commons/events/Draft.d.ts +27 -9
- package/dist/commons/events/EventConfig.d.ts +41061 -1337
- package/dist/commons/events/EventDocument.d.ts +334 -77
- package/dist/commons/events/EventIndex.d.ts +915 -4
- package/dist/commons/events/EventInput.d.ts +13 -0
- package/dist/commons/events/EventMetadata.d.ts +13 -3
- package/dist/commons/events/FieldConfig.d.ts +3466 -721
- package/dist/commons/events/FieldType.d.ts +1 -2
- package/dist/commons/events/FieldValue.d.ts +1 -1
- package/dist/commons/events/FormConfig.d.ts +38845 -517
- package/dist/commons/events/PageConfig.d.ts +9671 -203
- package/dist/commons/events/SummaryConfig.d.ts +81 -42
- package/dist/commons/events/User.d.ts +5 -0
- package/dist/commons/events/WorkqueueConfig.d.ts +44 -20
- package/dist/commons/events/defineConfig.d.ts +6681 -31
- package/dist/commons/events/event.d.ts +25 -0
- package/dist/commons/events/field.d.ts +68 -0
- package/dist/commons/events/index.d.ts +3 -0
- package/dist/commons/events/scopes.d.ts +26 -0
- package/dist/commons/events/test.utils.d.ts +1 -38
- package/dist/commons/events/utils.d.ts +3404 -91
- package/dist/commons/events/utils.test.d.ts +2 -0
- package/dist/conditionals/index.js +36 -33
- package/dist/events/index.js +975 -625
- package/package.json +3 -2
package/dist/events/index.js
CHANGED
@@ -30,6 +30,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
30
30
|
// src/events/index.ts
|
31
31
|
var events_exports = {};
|
32
32
|
__export(events_exports, {
|
33
|
+
ACTION_ALLOWED_SCOPES: () => ACTION_ALLOWED_SCOPES,
|
33
34
|
Action: () => Action,
|
34
35
|
ActionBase: () => ActionBase,
|
35
36
|
ActionConditional: () => ActionConditional,
|
@@ -52,6 +53,8 @@ __export(events_exports, {
|
|
52
53
|
AssignActionInput: () => AssignActionInput,
|
53
54
|
AsyncRejectActionDocument: () => AsyncRejectActionDocument,
|
54
55
|
BaseActionInput: () => BaseActionInput,
|
56
|
+
CONFIG_GET_ALLOWED_SCOPES: () => CONFIG_GET_ALLOWED_SCOPES,
|
57
|
+
CONFIG_SEARCH_ALLOWED_SCOPES: () => CONFIG_SEARCH_ALLOWED_SCOPES,
|
55
58
|
CertificateConfig: () => CertificateConfig,
|
56
59
|
CertificateTemplateConfig: () => CertificateTemplateConfig,
|
57
60
|
CheckboxFieldValue: () => CheckboxFieldValue,
|
@@ -69,6 +72,7 @@ __export(events_exports, {
|
|
69
72
|
DeclarationUpdateActions: () => DeclarationUpdateActions,
|
70
73
|
DeclareActionInput: () => DeclareActionInput,
|
71
74
|
DeduplicationConfig: () => DeduplicationConfig,
|
75
|
+
DeleteActionInput: () => DeleteActionInput,
|
72
76
|
DisplayOnReviewConditional: () => DisplayOnReviewConditional,
|
73
77
|
Draft: () => Draft,
|
74
78
|
DraftInput: () => DraftInput,
|
@@ -77,6 +81,8 @@ __export(events_exports, {
|
|
77
81
|
EnableConditional: () => EnableConditional,
|
78
82
|
EventConfig: () => EventConfig,
|
79
83
|
EventDocument: () => EventDocument,
|
84
|
+
EventFieldConfigSchema: () => EventFieldConfigSchema,
|
85
|
+
EventFieldId: () => EventFieldId,
|
80
86
|
EventIndex: () => EventIndex,
|
81
87
|
EventInput: () => EventInput,
|
82
88
|
EventMetadata: () => EventMetadata,
|
@@ -85,6 +91,7 @@ __export(events_exports, {
|
|
85
91
|
EventStatuses: () => EventStatuses,
|
86
92
|
FieldConditional: () => FieldConditional,
|
87
93
|
FieldConfig: () => FieldConfig,
|
94
|
+
FieldConfigSchema: () => FieldConfigSchema,
|
88
95
|
FieldType: () => FieldType,
|
89
96
|
FieldUpdateValue: () => FieldUpdateValue,
|
90
97
|
FieldValue: () => FieldValue,
|
@@ -99,22 +106,27 @@ __export(events_exports, {
|
|
99
106
|
ImageMimeType: () => ImageMimeType,
|
100
107
|
LanguageConfig: () => LanguageConfig,
|
101
108
|
MarkedAsDuplicateActionInput: () => MarkedAsDuplicateActionInput,
|
109
|
+
MatchType: () => MatchType,
|
102
110
|
MimeType: () => MimeType,
|
111
|
+
NonEmptyTextValue: () => NonEmptyTextValue,
|
103
112
|
NotifyActionInput: () => NotifyActionInput,
|
104
113
|
NumberFieldValue: () => NumberFieldValue,
|
105
114
|
PageConfig: () => PageConfig,
|
106
115
|
PageTypes: () => PageTypes,
|
107
116
|
PrintCertificateActionInput: () => PrintCertificateActionInput,
|
117
|
+
QueryInput: () => QueryInput,
|
118
|
+
QueryType: () => QueryType,
|
108
119
|
ReadActionInput: () => ReadActionInput,
|
109
120
|
RegisterAction: () => RegisterAction,
|
110
121
|
RegisterActionInput: () => RegisterActionInput,
|
111
122
|
RejectCorrectionActionInput: () => RejectCorrectionActionInput,
|
112
123
|
RejectDeclarationActionInput: () => RejectDeclarationActionInput,
|
113
124
|
RequestCorrectionActionInput: () => RequestCorrectionActionInput,
|
114
|
-
RequiredTextValue: () => RequiredTextValue,
|
115
125
|
ResolvedUser: () => ResolvedUser,
|
116
126
|
RuralAddressUpdateValue: () => RuralAddressUpdateValue,
|
117
127
|
RuralAddressValue: () => RuralAddressValue,
|
128
|
+
SearchField: () => SearchField,
|
129
|
+
SelectOption: () => SelectOption,
|
118
130
|
ShowConditional: () => ShowConditional,
|
119
131
|
SummaryConfig: () => SummaryConfig,
|
120
132
|
TextValue: () => TextValue,
|
@@ -126,12 +138,16 @@ __export(events_exports, {
|
|
126
138
|
VerificationActionConfig: () => VerificationActionConfig,
|
127
139
|
VerificationPageConfig: () => VerificationPageConfig,
|
128
140
|
WorkqueueConfig: () => WorkqueueConfig,
|
141
|
+
ZodDate: () => ZodDate,
|
129
142
|
alwaysTrue: () => alwaysTrue,
|
130
143
|
and: () => and,
|
131
144
|
annotationActions: () => annotationActions,
|
132
145
|
applyDraftsToEventIndex: () => applyDraftsToEventIndex,
|
146
|
+
areConditionsMet: () => areConditionsMet,
|
133
147
|
compositeFieldTypes: () => compositeFieldTypes,
|
134
148
|
createEmptyDraft: () => createEmptyDraft,
|
149
|
+
createEventConditionals: () => createEventConditionals,
|
150
|
+
createFieldConditionals: () => createFieldConditionals,
|
135
151
|
createValidationSchema: () => createValidationSchema,
|
136
152
|
deepDropNulls: () => deepDropNulls,
|
137
153
|
deepMerge: () => deepMerge,
|
@@ -142,6 +158,7 @@ __export(events_exports, {
|
|
142
158
|
defineFormConditional: () => defineFormConditional,
|
143
159
|
defineFormPage: () => defineFormPage,
|
144
160
|
definePage: () => definePage,
|
161
|
+
defineWorkqueue: () => defineWorkqueue,
|
145
162
|
errorMessages: () => errorMessages,
|
146
163
|
event: () => event,
|
147
164
|
eventMetadataLabelMap: () => eventMetadataLabelMap,
|
@@ -150,8 +167,10 @@ __export(events_exports, {
|
|
150
167
|
eventStatuses: () => eventStatuses,
|
151
168
|
field: () => field,
|
152
169
|
fieldTypes: () => fieldTypes,
|
170
|
+
filterUnallowedActions: () => filterUnallowedActions,
|
153
171
|
findActiveDrafts: () => findActiveDrafts,
|
154
172
|
findAllFields: () => findAllFields,
|
173
|
+
findLastAssignmentAction: () => findLastAssignmentAction,
|
155
174
|
findRecordActionPages: () => findRecordActionPages,
|
156
175
|
generateActionAnnotationInput: () => generateActionAnnotationInput,
|
157
176
|
generateActionDeclarationInput: () => generateActionDeclarationInput,
|
@@ -165,18 +184,21 @@ __export(events_exports, {
|
|
165
184
|
getActionAnnotationFields: () => getActionAnnotationFields,
|
166
185
|
getActionReview: () => getActionReview,
|
167
186
|
getActionReviewFields: () => getActionReviewFields,
|
168
|
-
|
187
|
+
getActionVerificationPageIds: () => getActionVerificationPageIds,
|
169
188
|
getAnnotationFromDrafts: () => getAnnotationFromDrafts,
|
189
|
+
getAssignedUserFromActions: () => getAssignedUserFromActions,
|
170
190
|
getCurrentEventState: () => getCurrentEventState,
|
171
191
|
getCurrentEventStateWithDrafts: () => getCurrentEventStateWithDrafts,
|
172
192
|
getDeclaration: () => getDeclaration,
|
173
193
|
getDeclarationFields: () => getDeclarationFields,
|
174
194
|
getDeclarationPages: () => getDeclarationPages,
|
175
|
-
|
195
|
+
getVisibleVerificationPageIds: () => getVisibleVerificationPageIds,
|
196
|
+
hasAnyOfScopes: () => hasAnyOfScopes,
|
176
197
|
isAddressFieldType: () => isAddressFieldType,
|
177
198
|
isAdministrativeAreaFieldType: () => isAdministrativeAreaFieldType,
|
178
199
|
isBulletListFieldType: () => isBulletListFieldType,
|
179
200
|
isCheckboxFieldType: () => isCheckboxFieldType,
|
201
|
+
isConditionMet: () => isConditionMet,
|
180
202
|
isCountryFieldType: () => isCountryFieldType,
|
181
203
|
isDataFieldType: () => isDataFieldType,
|
182
204
|
isDateFieldType: () => isDateFieldType,
|
@@ -205,18 +227,21 @@ __export(events_exports, {
|
|
205
227
|
isTextFieldType: () => isTextFieldType,
|
206
228
|
isUndeclaredDraft: () => isUndeclaredDraft,
|
207
229
|
isVerificationPage: () => isVerificationPage,
|
230
|
+
isWriteAction: () => isWriteAction,
|
208
231
|
mapFieldTypeToEmptyValue: () => mapFieldTypeToEmptyValue,
|
209
232
|
mapFieldTypeToMockValue: () => mapFieldTypeToMockValue,
|
210
233
|
mapFieldTypeToZod: () => mapFieldTypeToZod,
|
211
234
|
never: () => never,
|
212
235
|
not: () => not,
|
236
|
+
omitHiddenAnnotationFields: () => omitHiddenAnnotationFields,
|
213
237
|
omitHiddenFields: () => omitHiddenFields,
|
214
238
|
omitHiddenPaginatedFields: () => omitHiddenPaginatedFields,
|
215
239
|
or: () => or,
|
240
|
+
runFieldValidations: () => runFieldValidations,
|
216
241
|
user: () => user,
|
217
242
|
validate: () => validate,
|
218
243
|
validateFieldInput: () => validateFieldInput,
|
219
|
-
|
244
|
+
writeActions: () => writeActions
|
220
245
|
});
|
221
246
|
module.exports = __toCommonJS(events_exports);
|
222
247
|
|
@@ -297,7 +322,6 @@ var FieldType = {
|
|
297
322
|
RADIO_GROUP: "RADIO_GROUP",
|
298
323
|
FILE: "FILE",
|
299
324
|
FILE_WITH_OPTIONS: "FILE_WITH_OPTIONS",
|
300
|
-
HIDDEN: "HIDDEN",
|
301
325
|
BULLET_LIST: "BULLET_LIST",
|
302
326
|
CHECKBOX: "CHECKBOX",
|
303
327
|
SELECT: "SELECT",
|
@@ -402,7 +426,7 @@ var FileFieldWithOptionValue = import_zod3.z.array(FileFieldValueWithOption);
|
|
402
426
|
|
403
427
|
// ../commons/src/events/FieldValue.ts
|
404
428
|
var TextValue = import_zod4.z.string();
|
405
|
-
var
|
429
|
+
var NonEmptyTextValue = TextValue.min(1);
|
406
430
|
var DateValue = import_zod4.z.string().date().describe("Date in the format YYYY-MM-DD");
|
407
431
|
var EmailValue = import_zod4.z.string().email();
|
408
432
|
var CheckboxFieldValue = import_zod4.z.boolean();
|
@@ -435,27 +459,21 @@ var FieldUpdateValue = import_zod4.z.union([
|
|
435
459
|
|
436
460
|
// ../commons/src/events/FieldConfig.ts
|
437
461
|
var FieldId = import_zod5.z.string();
|
438
|
-
var
|
439
|
-
|
440
|
-
|
441
|
-
});
|
462
|
+
var ParentReference = import_zod5.z.object({
|
463
|
+
_fieldId: FieldId.optional()
|
464
|
+
}).optional();
|
442
465
|
var BaseField = import_zod5.z.object({
|
443
466
|
id: FieldId,
|
444
467
|
defaultValue: import_zod5.z.union([
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
NumberFieldValue,
|
451
|
-
CheckboxFieldValue
|
452
|
-
]),
|
453
|
-
DependencyExpression
|
468
|
+
TextValue,
|
469
|
+
NonEmptyTextValue,
|
470
|
+
DateValue,
|
471
|
+
NumberFieldValue,
|
472
|
+
CheckboxFieldValue
|
454
473
|
]).optional(),
|
474
|
+
parent: ParentReference,
|
455
475
|
conditionals: import_zod5.z.array(FieldConditional).default([]).optional(),
|
456
476
|
required: import_zod5.z.boolean().default(false).optional(),
|
457
|
-
disabled: import_zod5.z.boolean().default(false).optional(),
|
458
|
-
hidden: import_zod5.z.boolean().default(false).optional(),
|
459
477
|
placeholder: TranslationConfig.optional(),
|
460
478
|
validation: import_zod5.z.array(
|
461
479
|
import_zod5.z.object({
|
@@ -463,7 +481,6 @@ var BaseField = import_zod5.z.object({
|
|
463
481
|
message: TranslationConfig
|
464
482
|
})
|
465
483
|
).default([]).optional(),
|
466
|
-
dependsOn: import_zod5.z.array(FieldId).default([]).optional(),
|
467
484
|
label: TranslationConfig,
|
468
485
|
hideLabel: import_zod5.z.boolean().default(false).optional()
|
469
486
|
});
|
@@ -472,7 +489,7 @@ var Divider = BaseField.extend({
|
|
472
489
|
});
|
473
490
|
var TextField = BaseField.extend({
|
474
491
|
type: import_zod5.z.literal(FieldType.TEXT),
|
475
|
-
defaultValue:
|
492
|
+
defaultValue: NonEmptyTextValue.optional(),
|
476
493
|
configuration: import_zod5.z.object({
|
477
494
|
maxLength: import_zod5.z.number().optional().describe("Maximum length of the text"),
|
478
495
|
type: import_zod5.z.enum(["text", "password"]).optional(),
|
@@ -482,7 +499,7 @@ var TextField = BaseField.extend({
|
|
482
499
|
}).describe("Text input");
|
483
500
|
var NumberField = BaseField.extend({
|
484
501
|
type: import_zod5.z.literal(FieldType.NUMBER),
|
485
|
-
defaultValue:
|
502
|
+
defaultValue: NumberFieldValue.optional(),
|
486
503
|
configuration: import_zod5.z.object({
|
487
504
|
min: import_zod5.z.number().optional().describe("Minimum value"),
|
488
505
|
max: import_zod5.z.number().optional().describe("Maximum value"),
|
@@ -492,7 +509,7 @@ var NumberField = BaseField.extend({
|
|
492
509
|
}).describe("Number input");
|
493
510
|
var TextAreaField = BaseField.extend({
|
494
511
|
type: import_zod5.z.literal(FieldType.TEXTAREA),
|
495
|
-
defaultValue:
|
512
|
+
defaultValue: NonEmptyTextValue.optional(),
|
496
513
|
configuration: import_zod5.z.object({
|
497
514
|
maxLength: import_zod5.z.number().optional().describe("Maximum length of the text"),
|
498
515
|
rows: import_zod5.z.number().optional().describe("Number of visible text lines"),
|
@@ -526,11 +543,11 @@ var EmailField = BaseField.extend({
|
|
526
543
|
configuration: import_zod5.z.object({
|
527
544
|
maxLength: import_zod5.z.number().optional().describe("Maximum length of the text")
|
528
545
|
}).default({ maxLength: 10 }).optional(),
|
529
|
-
defaultValue:
|
546
|
+
defaultValue: NonEmptyTextValue.optional()
|
530
547
|
});
|
531
548
|
var DateField = BaseField.extend({
|
532
549
|
type: import_zod5.z.literal(FieldType.DATE),
|
533
|
-
defaultValue:
|
550
|
+
defaultValue: DateValue.optional(),
|
534
551
|
configuration: import_zod5.z.object({
|
535
552
|
notice: TranslationConfig.describe(
|
536
553
|
"Text to display above the date input"
|
@@ -549,7 +566,7 @@ var HtmlFontVariant = import_zod5.z.enum([
|
|
549
566
|
]);
|
550
567
|
var Paragraph = BaseField.extend({
|
551
568
|
type: import_zod5.z.literal(FieldType.PARAGRAPH),
|
552
|
-
defaultValue:
|
569
|
+
defaultValue: NonEmptyTextValue.optional(),
|
553
570
|
configuration: import_zod5.z.object({
|
554
571
|
styles: import_zod5.z.object({
|
555
572
|
fontVariant: HtmlFontVariant.optional()
|
@@ -558,7 +575,7 @@ var Paragraph = BaseField.extend({
|
|
558
575
|
}).describe("A read-only HTML <p> paragraph");
|
559
576
|
var PageHeader = BaseField.extend({
|
560
577
|
type: import_zod5.z.literal(FieldType.PAGE_HEADER),
|
561
|
-
defaultValue:
|
578
|
+
defaultValue: NonEmptyTextValue.optional()
|
562
579
|
}).describe("A read-only header component for form pages");
|
563
580
|
var File = BaseField.extend({
|
564
581
|
type: import_zod5.z.literal(FieldType.FILE),
|
@@ -569,7 +586,8 @@ var File = BaseField.extend({
|
|
569
586
|
width: import_zod5.z.enum(["full", "auto"]).optional().describe(
|
570
587
|
"Whether the file upload button should take the full width of the container or not"
|
571
588
|
)
|
572
|
-
}).optional()
|
589
|
+
}).optional(),
|
590
|
+
fileName: TranslationConfig.optional()
|
573
591
|
}).default({
|
574
592
|
maxFileSize: DEFAULT_MAX_FILE_SIZE_BYTES
|
575
593
|
})
|
@@ -580,7 +598,7 @@ var SelectOption = import_zod5.z.object({
|
|
580
598
|
});
|
581
599
|
var RadioGroup = BaseField.extend({
|
582
600
|
type: import_zod5.z.literal(FieldType.RADIO_GROUP),
|
583
|
-
defaultValue:
|
601
|
+
defaultValue: TextValue.optional(),
|
584
602
|
options: import_zod5.z.array(SelectOption).describe("A list of options"),
|
585
603
|
configuration: import_zod5.z.object({
|
586
604
|
styles: import_zod5.z.object({
|
@@ -590,7 +608,7 @@ var RadioGroup = BaseField.extend({
|
|
590
608
|
}).describe("Grouped radio options");
|
591
609
|
var BulletList = BaseField.extend({
|
592
610
|
type: import_zod5.z.literal(FieldType.BULLET_LIST),
|
593
|
-
defaultValue:
|
611
|
+
defaultValue: TextValue.optional(),
|
594
612
|
items: import_zod5.z.array(TranslationConfig).describe("A list of items"),
|
595
613
|
configuration: import_zod5.z.object({
|
596
614
|
styles: import_zod5.z.object({
|
@@ -600,16 +618,16 @@ var BulletList = BaseField.extend({
|
|
600
618
|
}).describe("A list of bullet points");
|
601
619
|
var Select = BaseField.extend({
|
602
620
|
type: import_zod5.z.literal(FieldType.SELECT),
|
603
|
-
defaultValue:
|
621
|
+
defaultValue: TextValue.optional(),
|
604
622
|
options: import_zod5.z.array(SelectOption).describe("A list of options")
|
605
623
|
}).describe("Select input");
|
606
624
|
var Checkbox = BaseField.extend({
|
607
625
|
type: import_zod5.z.literal(FieldType.CHECKBOX),
|
608
|
-
defaultValue:
|
626
|
+
defaultValue: CheckboxFieldValue.optional()
|
609
627
|
}).describe("Boolean checkbox field");
|
610
628
|
var Country = BaseField.extend({
|
611
629
|
type: import_zod5.z.literal(FieldType.COUNTRY),
|
612
|
-
defaultValue:
|
630
|
+
defaultValue: NonEmptyTextValue.optional()
|
613
631
|
}).describe("Country select field");
|
614
632
|
var AdministrativeAreas = import_zod5.z.enum([
|
615
633
|
"ADMIN_STRUCTURE",
|
@@ -624,12 +642,12 @@ var AdministrativeAreaConfiguration = import_zod5.z.object({
|
|
624
642
|
}).describe("Administrative area options");
|
625
643
|
var AdministrativeArea = BaseField.extend({
|
626
644
|
type: import_zod5.z.literal(FieldType.ADMINISTRATIVE_AREA),
|
627
|
-
defaultValue:
|
645
|
+
defaultValue: NonEmptyTextValue.optional(),
|
628
646
|
configuration: AdministrativeAreaConfiguration
|
629
647
|
}).describe("Administrative area input field e.g. facility, office");
|
630
648
|
var Location = BaseField.extend({
|
631
649
|
type: import_zod5.z.literal(FieldType.LOCATION),
|
632
|
-
defaultValue:
|
650
|
+
defaultValue: NonEmptyTextValue.optional()
|
633
651
|
}).describe("Input field for a location");
|
634
652
|
var FileUploadWithOptions = BaseField.extend({
|
635
653
|
type: import_zod5.z.literal(FieldType.FILE_WITH_OPTIONS),
|
@@ -643,11 +661,11 @@ var FileUploadWithOptions = BaseField.extend({
|
|
643
661
|
});
|
644
662
|
var Facility = BaseField.extend({
|
645
663
|
type: import_zod5.z.literal(FieldType.FACILITY),
|
646
|
-
defaultValue:
|
664
|
+
defaultValue: NonEmptyTextValue.optional()
|
647
665
|
}).describe("Input field for a facility");
|
648
666
|
var Office = BaseField.extend({
|
649
667
|
type: import_zod5.z.literal(FieldType.OFFICE),
|
650
|
-
defaultValue:
|
668
|
+
defaultValue: NonEmptyTextValue.optional()
|
651
669
|
}).describe("Input field for an office");
|
652
670
|
var Address = BaseField.extend({
|
653
671
|
type: import_zod5.z.literal(FieldType.ADDRESS),
|
@@ -656,7 +674,7 @@ var Address = BaseField.extend({
|
|
656
674
|
var DataEntry = import_zod5.z.union([
|
657
675
|
import_zod5.z.object({
|
658
676
|
label: TranslationConfig,
|
659
|
-
value: import_zod5.z.string()
|
677
|
+
value: TranslationConfig.or(import_zod5.z.string())
|
660
678
|
}),
|
661
679
|
import_zod5.z.object({
|
662
680
|
fieldId: import_zod5.z.string()
|
@@ -692,7 +710,6 @@ var FieldConfig = import_zod5.z.discriminatedUnion("type", [
|
|
692
710
|
EmailField,
|
693
711
|
FileUploadWithOptions,
|
694
712
|
DataField
|
695
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
696
713
|
]);
|
697
714
|
|
698
715
|
// ../commons/src/events/PageConfig.ts
|
@@ -797,6 +814,12 @@ var DeclarationUpdateActions = ActionTypes.extract(
|
|
797
814
|
declarationUpdateActionValues
|
798
815
|
);
|
799
816
|
var annotationActions = ActionTypes.exclude(declarationActionValues);
|
817
|
+
var writeActions = ActionTypes.exclude([
|
818
|
+
ActionType.CREATE,
|
819
|
+
ActionType.READ,
|
820
|
+
ActionType.ASSIGN,
|
821
|
+
ActionType.UNASSIGN
|
822
|
+
]);
|
800
823
|
|
801
824
|
// ../commons/src/events/FormConfig.ts
|
802
825
|
var import_zod8 = require("zod");
|
@@ -811,6 +834,8 @@ var ActionFormConfig = import_zod8.z.object({
|
|
811
834
|
var FormConfig = import_zod8.z.union([DeclarationFormConfig, ActionFormConfig]);
|
812
835
|
|
813
836
|
// ../commons/src/events/ActionConfig.ts
|
837
|
+
var import_zod_openapi = require("zod-openapi");
|
838
|
+
(0, import_zod_openapi.extendZodWithOpenApi)(import_zod9.z);
|
814
839
|
var ActionConditional2 = import_zod9.z.discriminatedUnion("type", [
|
815
840
|
/** If conditional is defined, the action is shown to the user only if the condition is met */
|
816
841
|
ShowConditional,
|
@@ -888,18 +913,24 @@ var ApproveCorrectionConfig = ActionConfigBase.merge(
|
|
888
913
|
})
|
889
914
|
);
|
890
915
|
var ActionConfig = import_zod9.z.discriminatedUnion("type", [
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
916
|
+
/*
|
917
|
+
* OpenAPI references are defined here so our generated OpenAPI spec knows to reuse the models
|
918
|
+
* and treat them as "models" instead of duplicating the data structure in each endpoint.
|
919
|
+
*/
|
920
|
+
DeclareConfig.openapi({ ref: "DeclareActionConfig" }),
|
921
|
+
ValidateConfig.openapi({ ref: "ValidateActionConfig" }),
|
922
|
+
RejectDeclarationConfig.openapi({ ref: "RejectDeclarationActionConfig" }),
|
923
|
+
MarkedAsDuplicateConfig.openapi({ ref: "MarkedAsDuplicateActionConfig" }),
|
924
|
+
ArchiveConfig.openapi({ ref: "ArchiveActionConfig" }),
|
925
|
+
RegisterConfig.openapi({ ref: "RegisterActionConfig" }),
|
926
|
+
DeleteConfig.openapi({ ref: "DeleteActionConfig" }),
|
927
|
+
PrintCertificateActionConfig.openapi({
|
928
|
+
ref: "PrintCertificateActionConfig"
|
929
|
+
}),
|
930
|
+
RequestCorrectionConfig.openapi({ ref: "RequestCorrectionActionConfig" }),
|
931
|
+
RejectCorrectionConfig.openapi({ ref: "RejectCorrectionActionConfig" }),
|
932
|
+
ApproveCorrectionConfig.openapi({ ref: "ApproveCorrectionActionConfig" })
|
933
|
+
]).openapi({ ref: "ActionConfig" });
|
903
934
|
var DeclarationActionConfig = import_zod9.z.discriminatedUnion("type", [
|
904
935
|
DeclareConfig,
|
905
936
|
ValidateConfig,
|
@@ -943,10 +974,12 @@ var LanguageConfig = import_zod11.z.object({
|
|
943
974
|
});
|
944
975
|
|
945
976
|
// ../commons/src/events/EventConfig.ts
|
946
|
-
var
|
977
|
+
var import_zod16 = require("zod");
|
947
978
|
|
948
979
|
// ../commons/src/events/DeduplicationConfig.ts
|
949
980
|
var import_zod12 = require("zod");
|
981
|
+
var import_zod_openapi2 = require("zod-openapi");
|
982
|
+
(0, import_zod_openapi2.extendZodWithOpenApi)(import_zod12.z);
|
950
983
|
var FieldReference = import_zod12.z.string();
|
951
984
|
var Matcher = import_zod12.z.object({
|
952
985
|
fieldId: import_zod12.z.string(),
|
@@ -1007,7 +1040,9 @@ var Clause = import_zod12.z.lazy(
|
|
1007
1040
|
DateRangeMatcher,
|
1008
1041
|
DateDistanceMatcher
|
1009
1042
|
])
|
1010
|
-
)
|
1043
|
+
).openapi({
|
1044
|
+
ref: "Clause"
|
1045
|
+
});
|
1011
1046
|
var DeduplicationConfig = import_zod12.z.object({
|
1012
1047
|
id: import_zod12.z.string(),
|
1013
1048
|
label: TranslationConfig,
|
@@ -1016,272 +1051,62 @@ var DeduplicationConfig = import_zod12.z.object({
|
|
1016
1051
|
|
1017
1052
|
// ../commons/src/events/SummaryConfig.ts
|
1018
1053
|
var import_zod13 = require("zod");
|
1019
|
-
var
|
1054
|
+
var BaseField2 = import_zod13.z.object({
|
1055
|
+
emptyValueMessage: TranslationConfig.optional(),
|
1056
|
+
conditionals: import_zod13.z.array(ShowConditional).default([]).optional()
|
1057
|
+
});
|
1058
|
+
var ReferenceField = BaseField2.extend({
|
1059
|
+
fieldId: import_zod13.z.string()
|
1060
|
+
}).describe("Field directly referencing event data with field id");
|
1061
|
+
var Field = BaseField2.extend({
|
1020
1062
|
id: import_zod13.z.string().describe("Id of summary field"),
|
1021
1063
|
value: TranslationConfig.describe(
|
1022
1064
|
"Summary field value. Can utilise values defined in configuration and EventMetadata"
|
1023
1065
|
),
|
1024
1066
|
label: TranslationConfig,
|
1025
1067
|
emptyValueMessage: TranslationConfig.optional()
|
1026
|
-
});
|
1027
|
-
var Title = import_zod13.z.object({
|
1028
|
-
id: import_zod13.z.string(),
|
1029
|
-
label: TranslationConfig.describe("Title content"),
|
1030
|
-
emptyValueMessage: TranslationConfig.optional()
|
1031
|
-
});
|
1068
|
+
}).describe("Custom configured field");
|
1032
1069
|
var SummaryConfig = import_zod13.z.object({
|
1033
|
-
|
1034
|
-
fields: import_zod13.z.array(Field).describe("Fields rendered in summary view.")
|
1070
|
+
fields: import_zod13.z.array(import_zod13.z.union([Field, ReferenceField])).describe("Fields rendered in summary view.")
|
1035
1071
|
}).describe("Configuration for summary in event.");
|
1036
1072
|
|
1037
|
-
// ../commons/src/events/
|
1038
|
-
var import_zod15 = require("zod");
|
1039
|
-
|
1040
|
-
// ../commons/src/events/EventMetadata.ts
|
1073
|
+
// ../commons/src/events/AdvancedSearchConfig.ts
|
1041
1074
|
var import_zod14 = require("zod");
|
1042
|
-
var
|
1043
|
-
|
1044
|
-
|
1045
|
-
|
1046
|
-
|
1047
|
-
|
1048
|
-
CERTIFIED: "CERTIFIED",
|
1049
|
-
REJECTED: "REJECTED",
|
1050
|
-
ARCHIVED: "ARCHIVED"
|
1051
|
-
};
|
1052
|
-
var eventStatuses = Object.values(EventStatus);
|
1053
|
-
var EventStatuses = import_zod14.z.nativeEnum(EventStatus);
|
1054
|
-
var EventMetadata = import_zod14.z.object({
|
1055
|
-
id: import_zod14.z.string(),
|
1056
|
-
type: import_zod14.z.string(),
|
1057
|
-
status: EventStatuses,
|
1058
|
-
createdAt: import_zod14.z.string().datetime(),
|
1059
|
-
createdBy: import_zod14.z.string(),
|
1060
|
-
createdAtLocation: import_zod14.z.string(),
|
1061
|
-
modifiedAt: import_zod14.z.string().datetime(),
|
1062
|
-
assignedTo: import_zod14.z.string().nullish(),
|
1063
|
-
updatedBy: import_zod14.z.string(),
|
1064
|
-
trackingId: import_zod14.z.string(),
|
1065
|
-
registrationNumber: import_zod14.z.string().nullish()
|
1075
|
+
var MatchType = import_zod14.z.enum(["FUZZY", "EXACT", "RANGE", "ANY_OF"]);
|
1076
|
+
var BaseField3 = import_zod14.z.object({
|
1077
|
+
config: import_zod14.z.object({
|
1078
|
+
type: MatchType.describe("Determines the type of field")
|
1079
|
+
}),
|
1080
|
+
options: import_zod14.z.array(SelectOption).optional()
|
1066
1081
|
});
|
1067
|
-
var
|
1068
|
-
|
1069
|
-
|
1070
|
-
|
1071
|
-
|
1072
|
-
|
1073
|
-
|
1074
|
-
|
1075
|
-
|
1076
|
-
|
1077
|
-
|
1078
|
-
|
1079
|
-
|
1080
|
-
|
1081
|
-
description: "Created At Location"
|
1082
|
-
},
|
1083
|
-
"event.createdBy": {
|
1084
|
-
id: "event.createdBy.label",
|
1085
|
-
defaultMessage: "Created By",
|
1086
|
-
description: "Created By"
|
1087
|
-
},
|
1088
|
-
"event.id": {
|
1089
|
-
id: "event.id.label",
|
1090
|
-
defaultMessage: "ID",
|
1091
|
-
description: "ID"
|
1092
|
-
},
|
1093
|
-
"event.modifiedAt": {
|
1094
|
-
id: "event.modifiedAt.label",
|
1095
|
-
defaultMessage: "Updated",
|
1096
|
-
description: "Modified At"
|
1097
|
-
},
|
1098
|
-
"event.status": {
|
1099
|
-
id: "event.status.label",
|
1100
|
-
defaultMessage: "Status",
|
1101
|
-
description: "Status"
|
1102
|
-
},
|
1103
|
-
"event.type": {
|
1104
|
-
id: "event.type.label",
|
1105
|
-
defaultMessage: "Type",
|
1106
|
-
description: "Type"
|
1107
|
-
},
|
1108
|
-
"event.updatedBy": {
|
1109
|
-
id: "event.updatedBy.label",
|
1110
|
-
defaultMessage: "Updated By",
|
1111
|
-
description: "Updated By"
|
1112
|
-
},
|
1113
|
-
"event.trackingId": {
|
1114
|
-
id: "event.trackingId.label",
|
1115
|
-
defaultMessage: "Tracking ID",
|
1116
|
-
description: "Tracking ID"
|
1117
|
-
},
|
1118
|
-
"event.registrationNumber": {
|
1119
|
-
id: "event.registrationNumber.label",
|
1120
|
-
defaultMessage: "Registration Number",
|
1121
|
-
description: "Registration Number"
|
1122
|
-
}
|
1123
|
-
};
|
1124
|
-
|
1125
|
-
// ../commons/src/events/WorkqueueConfig.ts
|
1126
|
-
var WorkqueueConfig = import_zod15.z.object({
|
1127
|
-
id: import_zod15.z.string().describe("Unique identifier for workqueue."),
|
1128
|
-
filters: import_zod15.z.array(
|
1129
|
-
import_zod15.z.object({
|
1130
|
-
status: import_zod15.z.array(EventStatuses).describe("Defines which statusese are included in the workqueue.")
|
1131
|
-
})
|
1132
|
-
).describe("Filters to be applied to workqueue.")
|
1133
|
-
}).describe("Configuration for workqueue.");
|
1134
|
-
|
1135
|
-
// ../commons/src/events/AdvancedSearchConfig.ts
|
1136
|
-
var import_zod16 = require("zod");
|
1137
|
-
var AdvancedSearchConfig = import_zod16.z.object({
|
1082
|
+
var FieldConfigSchema = BaseField3.extend({
|
1083
|
+
fieldId: import_zod14.z.string(),
|
1084
|
+
fieldType: import_zod14.z.literal("field")
|
1085
|
+
});
|
1086
|
+
var EventFieldId = import_zod14.z.enum(["trackingId", "status"]);
|
1087
|
+
var EventFieldConfigSchema = BaseField3.extend({
|
1088
|
+
fieldId: EventFieldId,
|
1089
|
+
fieldType: import_zod14.z.literal("event")
|
1090
|
+
});
|
1091
|
+
var SearchField = import_zod14.z.discriminatedUnion("fieldType", [
|
1092
|
+
FieldConfigSchema,
|
1093
|
+
EventFieldConfigSchema
|
1094
|
+
]);
|
1095
|
+
var AdvancedSearchConfig = import_zod14.z.object({
|
1138
1096
|
title: TranslationConfig.describe("Advanced search tab title"),
|
1139
|
-
fields:
|
1140
|
-
import_zod16.z.object({
|
1141
|
-
fieldId: import_zod16.z.string(),
|
1142
|
-
config: import_zod16.z.object({
|
1143
|
-
type: import_zod16.z.enum(["FUZZY", "EXACT", "RANGE"]).describe("Determines the type of field")
|
1144
|
-
}).optional().describe("Configuration options for the field")
|
1145
|
-
})
|
1146
|
-
).optional().default([]).describe("Advanced search fields.")
|
1097
|
+
fields: import_zod14.z.array(SearchField).describe("Advanced search fields.")
|
1147
1098
|
});
|
1148
1099
|
|
1149
1100
|
// ../commons/src/events/utils.ts
|
1150
1101
|
var import_lodash = require("lodash");
|
1151
1102
|
|
1152
|
-
// ../commons/src/workqueues/WorkqueueConfig.ts
|
1153
|
-
var import_zod18 = require("zod");
|
1154
|
-
|
1155
|
-
// ../commons/src/workqueues/defaultColumns.ts
|
1156
|
-
var import_zod17 = require("zod");
|
1157
|
-
var WorkQueueColumnConfig = import_zod17.z.object({
|
1158
|
-
id: import_zod17.z.string(),
|
1159
|
-
label: TranslationConfig
|
1160
|
-
});
|
1161
|
-
var defaultColumns = {
|
1162
|
-
event: {
|
1163
|
-
id: "event",
|
1164
|
-
label: {
|
1165
|
-
defaultMessage: "Event",
|
1166
|
-
description: "This is the label for the workqueue column",
|
1167
|
-
id: "workqueue.default.column.event"
|
1168
|
-
}
|
1169
|
-
},
|
1170
|
-
status: {
|
1171
|
-
id: "status",
|
1172
|
-
label: {
|
1173
|
-
defaultMessage: "Status",
|
1174
|
-
description: "This is the label for the workqueue column",
|
1175
|
-
id: "workqueue.default.column.status"
|
1176
|
-
}
|
1177
|
-
},
|
1178
|
-
createdAt: {
|
1179
|
-
id: "createdAt",
|
1180
|
-
label: {
|
1181
|
-
defaultMessage: "Created",
|
1182
|
-
description: "This is the label for the workqueue column",
|
1183
|
-
id: "workqueue.default.column.createdAt"
|
1184
|
-
}
|
1185
|
-
},
|
1186
|
-
modifiedAt: {
|
1187
|
-
id: "modifiedAt",
|
1188
|
-
label: {
|
1189
|
-
defaultMessage: "Modified",
|
1190
|
-
description: "This is the label for the workqueue column",
|
1191
|
-
id: "workqueue.default.column.modifiedAt"
|
1192
|
-
}
|
1193
|
-
}
|
1194
|
-
};
|
1195
|
-
var DefaultColumnKeys = import_zod17.z.enum(
|
1196
|
-
Object.keys(defaultColumns)
|
1197
|
-
);
|
1198
|
-
|
1199
|
-
// ../commons/src/workqueues/WorkqueueConfig.ts
|
1200
|
-
var rootWorkqueueConfig = import_zod18.z.object({
|
1201
|
-
id: import_zod18.z.string(),
|
1202
|
-
title: TranslationConfig,
|
1203
|
-
columns: import_zod18.z.array(WorkQueueColumnConfig),
|
1204
|
-
defaultColumns: import_zod18.z.array(DefaultColumnKeys)
|
1205
|
-
});
|
1206
|
-
var defineWorkqueue = (config) => rootWorkqueueConfig.parse(config);
|
1207
|
-
|
1208
|
-
// ../commons/src/workqueues/all.ts
|
1209
|
-
var allWorkqueue = defineWorkqueue({
|
1210
|
-
id: "all",
|
1211
|
-
title: {
|
1212
|
-
defaultMessage: "All events",
|
1213
|
-
description: "This is the label for the workqueue",
|
1214
|
-
id: "workqueue.all.label"
|
1215
|
-
},
|
1216
|
-
columns: [
|
1217
|
-
{
|
1218
|
-
id: "title",
|
1219
|
-
label: {
|
1220
|
-
defaultMessage: "Title",
|
1221
|
-
description: "This is the label for the workqueue column",
|
1222
|
-
id: "workqueue.all.column.title"
|
1223
|
-
}
|
1224
|
-
}
|
1225
|
-
],
|
1226
|
-
defaultColumns: ["event", "status", "createdAt", "modifiedAt"]
|
1227
|
-
});
|
1228
|
-
|
1229
|
-
// ../commons/src/workqueues/readyForReview.ts
|
1230
|
-
var inReviewWorkqueue = defineWorkqueue({
|
1231
|
-
id: "ready-for-review",
|
1232
|
-
title: {
|
1233
|
-
defaultMessage: "Ready for review",
|
1234
|
-
description: "Label for in review workqueue",
|
1235
|
-
id: "event.workqueue.in-review.label"
|
1236
|
-
},
|
1237
|
-
columns: [
|
1238
|
-
{
|
1239
|
-
id: "title",
|
1240
|
-
label: {
|
1241
|
-
defaultMessage: "Title",
|
1242
|
-
description: "This is the label for the workqueue column",
|
1243
|
-
id: "workqueue.in-reveiw.column.title"
|
1244
|
-
}
|
1245
|
-
}
|
1246
|
-
],
|
1247
|
-
defaultColumns: ["event", "createdAt", "modifiedAt"]
|
1248
|
-
});
|
1249
|
-
|
1250
|
-
// ../commons/src/workqueues/readyToPrint.ts
|
1251
|
-
var registeredWorkqueue = defineWorkqueue({
|
1252
|
-
id: "registered",
|
1253
|
-
title: {
|
1254
|
-
defaultMessage: "Ready to print",
|
1255
|
-
description: "Label for registered workqueue",
|
1256
|
-
id: "event.workqueue.registered.label"
|
1257
|
-
},
|
1258
|
-
columns: [
|
1259
|
-
{
|
1260
|
-
id: "title",
|
1261
|
-
label: {
|
1262
|
-
defaultMessage: "Title",
|
1263
|
-
description: "This is the label for the workqueue column",
|
1264
|
-
id: "workqueue.registered.column.title"
|
1265
|
-
}
|
1266
|
-
}
|
1267
|
-
],
|
1268
|
-
defaultColumns: ["event", "createdAt", "modifiedAt"]
|
1269
|
-
});
|
1270
|
-
|
1271
|
-
// ../commons/src/workqueues/index.ts
|
1272
|
-
var workqueues = {
|
1273
|
-
all: allWorkqueue,
|
1274
|
-
registered: registeredWorkqueue,
|
1275
|
-
inReview: inReviewWorkqueue
|
1276
|
-
};
|
1277
|
-
|
1278
1103
|
// ../commons/src/conditionals/validate.ts
|
1279
1104
|
var import_ajv = __toESM(require("ajv"));
|
1280
1105
|
var import_ajv_formats = __toESM(require("ajv-formats"));
|
1281
1106
|
var import_date_fns = require("date-fns");
|
1282
1107
|
|
1283
1108
|
// ../commons/src/events/FieldTypeMapping.ts
|
1284
|
-
var
|
1109
|
+
var import_zod15 = require("zod");
|
1285
1110
|
function mapFieldTypeToZod(type, required) {
|
1286
1111
|
let schema;
|
1287
1112
|
switch (type) {
|
@@ -1305,8 +1130,7 @@ function mapFieldTypeToZod(type, required) {
|
|
1305
1130
|
case FieldType.FACILITY:
|
1306
1131
|
case FieldType.OFFICE:
|
1307
1132
|
case FieldType.SIGNATURE:
|
1308
|
-
|
1309
|
-
schema = required ? RequiredTextValue : TextValue;
|
1133
|
+
schema = required ? NonEmptyTextValue : TextValue;
|
1310
1134
|
break;
|
1311
1135
|
case FieldType.NUMBER:
|
1312
1136
|
schema = NumberFieldValue;
|
@@ -1334,7 +1158,7 @@ function createValidationSchema(config) {
|
|
1334
1158
|
for (const field2 of config) {
|
1335
1159
|
shape[field2.id] = mapFieldTypeToZod(field2.type, field2.required);
|
1336
1160
|
}
|
1337
|
-
return
|
1161
|
+
return import_zod15.z.object(shape);
|
1338
1162
|
}
|
1339
1163
|
function mapFieldTypeToMockValue(field2, i) {
|
1340
1164
|
switch (field2.type) {
|
@@ -1508,12 +1332,23 @@ var ajv = new import_ajv.default({
|
|
1508
1332
|
function validate(schema, data) {
|
1509
1333
|
return ajv.validate(schema, data);
|
1510
1334
|
}
|
1335
|
+
function isConditionMet(conditional, values) {
|
1336
|
+
return validate(conditional, {
|
1337
|
+
$form: values,
|
1338
|
+
$now: (0, import_date_fns.formatISO)(/* @__PURE__ */ new Date(), { representation: "date" })
|
1339
|
+
});
|
1340
|
+
}
|
1511
1341
|
function getConditionalActionsForField(field2, values) {
|
1512
1342
|
if (!field2.conditionals) {
|
1513
1343
|
return [];
|
1514
1344
|
}
|
1515
1345
|
return field2.conditionals.filter((conditional) => validate(conditional.conditional, values)).map((conditional) => conditional.type);
|
1516
1346
|
}
|
1347
|
+
function areConditionsMet(conditions, values) {
|
1348
|
+
return conditions.every(
|
1349
|
+
(condition) => isConditionMet(condition.conditional, values)
|
1350
|
+
);
|
1351
|
+
}
|
1517
1352
|
function isFieldConditionMet(field2, form, conditionalType) {
|
1518
1353
|
const hasRule = (field2.conditionals ?? []).some(
|
1519
1354
|
(conditional) => conditional.type === conditionalType
|
@@ -1532,6 +1367,10 @@ function isFieldConditionMet(field2, form, conditionalType) {
|
|
1532
1367
|
function isFieldVisible(field2, form) {
|
1533
1368
|
return isFieldConditionMet(field2, form, ConditionalType.SHOW);
|
1534
1369
|
}
|
1370
|
+
function isFieldEmptyAndNotRequired(field2, form) {
|
1371
|
+
const fieldValue = form[field2.id];
|
1372
|
+
return !field2.required && (fieldValue === void 0 || fieldValue === "");
|
1373
|
+
}
|
1535
1374
|
function isFieldEnabled(field2, form) {
|
1536
1375
|
return isFieldConditionMet(field2, form, ConditionalType.ENABLE);
|
1537
1376
|
}
|
@@ -1636,6 +1475,11 @@ function runFieldValidations({
|
|
1636
1475
|
field: field2,
|
1637
1476
|
values
|
1638
1477
|
}) {
|
1478
|
+
if (!isFieldVisible(field2, values) || isFieldEmptyAndNotRequired(field2, values)) {
|
1479
|
+
return {
|
1480
|
+
errors: []
|
1481
|
+
};
|
1482
|
+
}
|
1639
1483
|
const conditionalParameters = {
|
1640
1484
|
$form: values,
|
1641
1485
|
$now: (0, import_date_fns.formatISO)(/* @__PURE__ */ new Date(), { representation: "date" })
|
@@ -1653,29 +1497,6 @@ function runFieldValidations({
|
|
1653
1497
|
errors: [...fieldValidationResult, ...customValidationResults]
|
1654
1498
|
};
|
1655
1499
|
}
|
1656
|
-
function getFieldValidationErrors({
|
1657
|
-
field: field2,
|
1658
|
-
values
|
1659
|
-
}) {
|
1660
|
-
if (!isFieldVisible(field2, values) || !isFieldEnabled(field2, values)) {
|
1661
|
-
if (values[field2.id]) {
|
1662
|
-
return {
|
1663
|
-
errors: [
|
1664
|
-
{
|
1665
|
-
message: errorMessages.hiddenField
|
1666
|
-
}
|
1667
|
-
]
|
1668
|
-
};
|
1669
|
-
}
|
1670
|
-
return {
|
1671
|
-
errors: []
|
1672
|
-
};
|
1673
|
-
}
|
1674
|
-
return runFieldValidations({
|
1675
|
-
field: field2,
|
1676
|
-
values
|
1677
|
-
});
|
1678
|
-
}
|
1679
1500
|
|
1680
1501
|
// ../commons/src/uuid.ts
|
1681
1502
|
var import_uuid = require("uuid");
|
@@ -1683,9 +1504,6 @@ function getUUID() {
|
|
1683
1504
|
return (0, import_uuid.v4)();
|
1684
1505
|
}
|
1685
1506
|
|
1686
|
-
// ../commons/src/events/utils.ts
|
1687
|
-
var import_date_fns2 = require("date-fns");
|
1688
|
-
|
1689
1507
|
// ../commons/src/utils.ts
|
1690
1508
|
function getOrThrow(x, message) {
|
1691
1509
|
if (x === void 0 || x === null) {
|
@@ -1722,15 +1540,9 @@ var getActionAnnotationFields = (actionConfig) => {
|
|
1722
1540
|
}
|
1723
1541
|
return [];
|
1724
1542
|
};
|
1725
|
-
|
1543
|
+
function getAllAnnotationFields(config) {
|
1726
1544
|
return (0, import_lodash.flattenDeep)(config.actions.map(getActionAnnotationFields));
|
1727
|
-
}
|
1728
|
-
var findAllFields = (config) => {
|
1729
|
-
return (0, import_lodash.flattenDeep)([
|
1730
|
-
...getDeclarationFields(config),
|
1731
|
-
...getAllAnnotationFields(config)
|
1732
|
-
]);
|
1733
|
-
};
|
1545
|
+
}
|
1734
1546
|
var findRecordActionPages = (config, actionType) => {
|
1735
1547
|
const action = config.actions.find((a) => a.type === actionType);
|
1736
1548
|
if (action?.type === ActionType.REQUEST_CORRECTION) {
|
@@ -1753,34 +1565,22 @@ function getActionReview(configuration, actionType) {
|
|
1753
1565
|
function getActionReviewFields(configuration, actionType) {
|
1754
1566
|
return getActionReview(configuration, actionType).fields;
|
1755
1567
|
}
|
1756
|
-
function validateWorkqueueConfig(workqueueConfigs) {
|
1757
|
-
workqueueConfigs.map((workqueue) => {
|
1758
|
-
const rootWorkqueue = Object.values(workqueues).find(
|
1759
|
-
(wq) => wq.id === workqueue.id
|
1760
|
-
);
|
1761
|
-
if (!rootWorkqueue) {
|
1762
|
-
throw new Error(
|
1763
|
-
`Invalid workqueue configuration: workqueue not found with id: ${workqueue.id}`
|
1764
|
-
);
|
1765
|
-
}
|
1766
|
-
});
|
1767
|
-
}
|
1768
1568
|
function isPageVisible(page, formValues) {
|
1769
1569
|
if (!page.conditional) {
|
1770
1570
|
return true;
|
1771
1571
|
}
|
1772
|
-
return
|
1773
|
-
$form: formValues,
|
1774
|
-
$now: (0, import_date_fns2.formatISO)(/* @__PURE__ */ new Date(), { representation: "date" })
|
1775
|
-
});
|
1572
|
+
return isConditionMet(page.conditional, formValues);
|
1776
1573
|
}
|
1777
|
-
function omitHiddenFields(fields, values) {
|
1574
|
+
function omitHiddenFields(fields, values, visibleVerificationPageIds = []) {
|
1778
1575
|
return (0, import_lodash.omitBy)(values, (_, fieldId) => {
|
1779
|
-
|
1780
|
-
|
1576
|
+
if (visibleVerificationPageIds.includes(fieldId)) {
|
1577
|
+
return false;
|
1578
|
+
}
|
1579
|
+
const fieldConfigs = fields.filter((f) => f.id === fieldId);
|
1580
|
+
if (!fieldConfigs.length) {
|
1781
1581
|
return true;
|
1782
1582
|
}
|
1783
|
-
return !isFieldVisible(
|
1583
|
+
return fieldConfigs.every((f) => !isFieldVisible(f, values));
|
1784
1584
|
});
|
1785
1585
|
}
|
1786
1586
|
function omitHiddenPaginatedFields(formConfig, declaration) {
|
@@ -1811,6 +1611,39 @@ function createEmptyDraft(eventId, draftId, actionType) {
|
|
1811
1611
|
function isVerificationPage(page) {
|
1812
1612
|
return page.type === PageTypes.enum.VERIFICATION;
|
1813
1613
|
}
|
1614
|
+
function getVisibleVerificationPageIds(pages, annotation) {
|
1615
|
+
return pages.filter((page) => isVerificationPage(page)).filter((page) => isPageVisible(page, annotation)).map((page) => page.id);
|
1616
|
+
}
|
1617
|
+
function getActionVerificationPageIds(actionConfig, annotation) {
|
1618
|
+
if (actionConfig.type === ActionType.REQUEST_CORRECTION) {
|
1619
|
+
return [
|
1620
|
+
...getVisibleVerificationPageIds(actionConfig.onboardingForm, annotation),
|
1621
|
+
...getVisibleVerificationPageIds(
|
1622
|
+
actionConfig.additionalDetailsForm,
|
1623
|
+
annotation
|
1624
|
+
)
|
1625
|
+
];
|
1626
|
+
}
|
1627
|
+
if (actionConfig.type === ActionType.PRINT_CERTIFICATE) {
|
1628
|
+
return getVisibleVerificationPageIds(
|
1629
|
+
actionConfig.printForm.pages,
|
1630
|
+
annotation
|
1631
|
+
);
|
1632
|
+
}
|
1633
|
+
return [];
|
1634
|
+
}
|
1635
|
+
function omitHiddenAnnotationFields(actionConfig, declaration, annotation) {
|
1636
|
+
const annotationFields = getActionAnnotationFields(actionConfig);
|
1637
|
+
const visibleVerificationPageIds = getActionVerificationPageIds(
|
1638
|
+
actionConfig,
|
1639
|
+
annotation
|
1640
|
+
);
|
1641
|
+
return omitHiddenFields(
|
1642
|
+
annotationFields,
|
1643
|
+
{ ...declaration, ...annotation },
|
1644
|
+
visibleVerificationPageIds
|
1645
|
+
);
|
1646
|
+
}
|
1814
1647
|
function deepMerge(currentDocument, actionDocument) {
|
1815
1648
|
return (0, import_lodash.mergeWith)(
|
1816
1649
|
currentDocument,
|
@@ -1829,19 +1662,39 @@ function deepMerge(currentDocument, actionDocument) {
|
|
1829
1662
|
}
|
1830
1663
|
);
|
1831
1664
|
}
|
1665
|
+
function findLastAssignmentAction(actions) {
|
1666
|
+
return actions.filter(
|
1667
|
+
({ type }) => type === ActionType.ASSIGN || type === ActionType.UNASSIGN
|
1668
|
+
).reduce((latestAction, action) => !latestAction || action.createdAt > latestAction.createdAt ? action : latestAction, void 0);
|
1669
|
+
}
|
1670
|
+
function isWriteAction(actionType) {
|
1671
|
+
return writeActions.safeParse(actionType).success;
|
1672
|
+
}
|
1673
|
+
var findAllFields = (config) => {
|
1674
|
+
return (0, import_lodash.flattenDeep)([
|
1675
|
+
...getDeclarationFields(config),
|
1676
|
+
...getAllAnnotationFields(config)
|
1677
|
+
]);
|
1678
|
+
};
|
1832
1679
|
|
1833
1680
|
// ../commons/src/events/EventConfig.ts
|
1834
|
-
var
|
1835
|
-
|
1681
|
+
var import_zod_openapi3 = require("zod-openapi");
|
1682
|
+
(0, import_zod_openapi3.extendZodWithOpenApi)(import_zod16.z);
|
1683
|
+
var EventConfig = import_zod16.z.object({
|
1684
|
+
id: import_zod16.z.string().describe(
|
1836
1685
|
'A machine-readable identifier for the event, e.g. "birth" or "death"'
|
1837
1686
|
),
|
1687
|
+
dateOfEvent: import_zod16.z.object({ fieldId: import_zod16.z.string() }).optional(),
|
1688
|
+
title: TranslationConfig,
|
1689
|
+
fallbackTitle: TranslationConfig.optional().describe(
|
1690
|
+
"This is a fallback title if actual title resolves to empty string"
|
1691
|
+
),
|
1838
1692
|
summary: SummaryConfig,
|
1839
1693
|
label: TranslationConfig,
|
1840
|
-
actions:
|
1694
|
+
actions: import_zod16.z.array(ActionConfig),
|
1841
1695
|
declaration: DeclarationFormConfig,
|
1842
|
-
|
1843
|
-
|
1844
|
-
advancedSearch: import_zod20.z.array(AdvancedSearchConfig).optional().default([])
|
1696
|
+
deduplication: import_zod16.z.array(DeduplicationConfig).optional().default([]),
|
1697
|
+
advancedSearch: import_zod16.z.array(AdvancedSearchConfig).optional().default([])
|
1845
1698
|
}).superRefine((event2, ctx) => {
|
1846
1699
|
const allFields = findAllFields(event2);
|
1847
1700
|
const fieldIds = allFields.map((field2) => field2.id);
|
@@ -1857,16 +1710,43 @@ var EventConfig = import_zod20.z.object({
|
|
1857
1710
|
});
|
1858
1711
|
}
|
1859
1712
|
const invalidFields = event2.advancedSearch.flatMap(
|
1860
|
-
(section) =>
|
1713
|
+
(section) => (
|
1714
|
+
// Check if the fieldId is not in the fieldIds array
|
1715
|
+
// and also not in the metadataFields array
|
1716
|
+
section.fields.filter(
|
1717
|
+
(field2) => !(fieldIds.includes(field2.fieldId) || EventFieldId.options.includes(field2.fieldId))
|
1718
|
+
)
|
1719
|
+
)
|
1861
1720
|
);
|
1862
1721
|
if (invalidFields.length > 0) {
|
1863
1722
|
ctx.addIssue({
|
1864
1723
|
code: "custom",
|
1865
|
-
message: `Advanced search id must match a field id
|
1724
|
+
message: `Advanced search id must match a field id of form fields or pre-defined metadata fields.
|
1866
1725
|
Invalid AdvancedSearch field IDs for event ${event2.id}: ${invalidFields.map((f) => f.fieldId).join(", ")}`,
|
1867
1726
|
path: ["advancedSearch"]
|
1868
1727
|
});
|
1869
1728
|
}
|
1729
|
+
if (event2.dateOfEvent) {
|
1730
|
+
const eventDateFieldId = getDeclarationFields(event2).find(
|
1731
|
+
({ id }) => id === event2.dateOfEvent?.fieldId
|
1732
|
+
);
|
1733
|
+
if (!eventDateFieldId) {
|
1734
|
+
ctx.addIssue({
|
1735
|
+
code: "custom",
|
1736
|
+
message: `Date of event field id must match a field id in fields array.
|
1737
|
+
Invalid date of event field ID for event ${event2.id}: ${event2.dateOfEvent.fieldId}`,
|
1738
|
+
path: ["dateOfEvent"]
|
1739
|
+
});
|
1740
|
+
} else if (eventDateFieldId.type !== FieldType.DATE) {
|
1741
|
+
ctx.addIssue({
|
1742
|
+
code: "custom",
|
1743
|
+
message: `Field specified for date of event is of type: ${eventDateFieldId.type}, but it needs to be of type: ${FieldType.DATE}`,
|
1744
|
+
path: ["dateOfEvent.fieldType"]
|
1745
|
+
});
|
1746
|
+
}
|
1747
|
+
}
|
1748
|
+
}).openapi({
|
1749
|
+
ref: "EventConfig"
|
1870
1750
|
});
|
1871
1751
|
|
1872
1752
|
// ../commons/src/events/EventConfigInput.ts
|
@@ -1875,267 +1755,313 @@ var defineActionForm = (actionForm) => ActionFormConfig.parse(actionForm);
|
|
1875
1755
|
var definePage = (page) => PageConfig.parse(page);
|
1876
1756
|
var defineFormPage = (formPage) => FormPageConfig.parse(formPage);
|
1877
1757
|
|
1758
|
+
// ../commons/src/events/WorkqueueConfig.ts
|
1759
|
+
var import_zod17 = require("zod");
|
1760
|
+
var WorkqueueConfig = import_zod17.z.object({
|
1761
|
+
slug: import_zod17.z.string().describe("Determines the url of the workqueue."),
|
1762
|
+
name: TranslationConfig.describe(
|
1763
|
+
"Title of the workflow (both in navigation and on the page)"
|
1764
|
+
),
|
1765
|
+
/**
|
1766
|
+
* Placeholder untill the following gets merged to develop
|
1767
|
+
* https://github.com/opencrvs/opencrvs-core/blob/5fbe9854a88504a7a13fcc856b3e82594b70c38c/packages/commons/src/events/EventIndex.ts#L92-L93
|
1768
|
+
*/
|
1769
|
+
query: import_zod17.z.string(),
|
1770
|
+
actions: import_zod17.z.array(
|
1771
|
+
import_zod17.z.object({
|
1772
|
+
type: import_zod17.z.string(),
|
1773
|
+
conditionals: import_zod17.z.array(Conditional).optional()
|
1774
|
+
})
|
1775
|
+
)
|
1776
|
+
}).describe("Configuration for workqueue.");
|
1777
|
+
function defineWorkqueue(workqueues) {
|
1778
|
+
return workqueues.map((workqueue) => WorkqueueConfig.parse(workqueue));
|
1779
|
+
}
|
1780
|
+
|
1878
1781
|
// ../commons/src/events/Draft.ts
|
1879
|
-
var
|
1782
|
+
var import_zod20 = require("zod");
|
1880
1783
|
|
1881
1784
|
// ../commons/src/events/ActionDocument.ts
|
1882
|
-
var
|
1883
|
-
var
|
1785
|
+
var import_zod18 = require("zod");
|
1786
|
+
var import_zod_openapi4 = require("zod-openapi");
|
1787
|
+
(0, import_zod_openapi4.extendZodWithOpenApi)(import_zod18.z);
|
1788
|
+
var ActionUpdate = import_zod18.z.record(import_zod18.z.string(), FieldUpdateValue);
|
1884
1789
|
var ActionStatus = {
|
1885
1790
|
Requested: "Requested",
|
1886
1791
|
Accepted: "Accepted",
|
1887
1792
|
Rejected: "Rejected"
|
1888
1793
|
};
|
1889
|
-
var ActionBase =
|
1890
|
-
id:
|
1891
|
-
|
1892
|
-
|
1794
|
+
var ActionBase = import_zod18.z.object({
|
1795
|
+
id: import_zod18.z.string(),
|
1796
|
+
transactionId: import_zod18.z.string(),
|
1797
|
+
createdAt: import_zod18.z.string().datetime(),
|
1798
|
+
createdBy: import_zod18.z.string(),
|
1799
|
+
createdByRole: import_zod18.z.string(),
|
1893
1800
|
declaration: ActionUpdate,
|
1894
1801
|
annotation: ActionUpdate.optional(),
|
1895
|
-
createdAtLocation:
|
1896
|
-
|
1802
|
+
createdAtLocation: import_zod18.z.string().optional(),
|
1803
|
+
updatedAtLocation: import_zod18.z.string().optional(),
|
1804
|
+
status: import_zod18.z.enum([
|
1897
1805
|
ActionStatus.Requested,
|
1898
1806
|
ActionStatus.Accepted,
|
1899
1807
|
ActionStatus.Rejected
|
1900
1808
|
]),
|
1901
1809
|
// If the action is an asynchronous confirmation for another action, we will save the original action id here.
|
1902
|
-
originalActionId:
|
1810
|
+
originalActionId: import_zod18.z.string().optional()
|
1903
1811
|
});
|
1904
1812
|
var AssignedAction = ActionBase.merge(
|
1905
|
-
|
1906
|
-
type:
|
1907
|
-
assignedTo:
|
1813
|
+
import_zod18.z.object({
|
1814
|
+
type: import_zod18.z.literal(ActionType.ASSIGN),
|
1815
|
+
assignedTo: import_zod18.z.string()
|
1908
1816
|
})
|
1909
1817
|
);
|
1910
1818
|
var UnassignedAction = ActionBase.merge(
|
1911
|
-
|
1912
|
-
type:
|
1819
|
+
import_zod18.z.object({
|
1820
|
+
type: import_zod18.z.literal(ActionType.UNASSIGN),
|
1821
|
+
assignedTo: import_zod18.z.literal(null)
|
1913
1822
|
})
|
1914
1823
|
);
|
1915
1824
|
var RegisterAction = ActionBase.merge(
|
1916
|
-
|
1917
|
-
type:
|
1918
|
-
registrationNumber:
|
1825
|
+
import_zod18.z.object({
|
1826
|
+
type: import_zod18.z.literal(ActionType.REGISTER),
|
1827
|
+
registrationNumber: import_zod18.z.string().optional()
|
1919
1828
|
})
|
1920
1829
|
);
|
1921
1830
|
var DeclareAction = ActionBase.merge(
|
1922
|
-
|
1923
|
-
type:
|
1831
|
+
import_zod18.z.object({
|
1832
|
+
type: import_zod18.z.literal(ActionType.DECLARE)
|
1924
1833
|
})
|
1925
1834
|
);
|
1926
1835
|
var ValidateAction = ActionBase.merge(
|
1927
|
-
|
1928
|
-
type:
|
1836
|
+
import_zod18.z.object({
|
1837
|
+
type: import_zod18.z.literal(ActionType.VALIDATE)
|
1929
1838
|
})
|
1930
1839
|
);
|
1931
1840
|
var RejectAction = ActionBase.merge(
|
1932
|
-
|
1933
|
-
type:
|
1841
|
+
import_zod18.z.object({
|
1842
|
+
type: import_zod18.z.literal(ActionType.REJECT)
|
1934
1843
|
})
|
1935
1844
|
);
|
1936
1845
|
var MarkAsDuplicateAction = ActionBase.merge(
|
1937
|
-
|
1938
|
-
type:
|
1846
|
+
import_zod18.z.object({
|
1847
|
+
type: import_zod18.z.literal(ActionType.MARKED_AS_DUPLICATE)
|
1939
1848
|
})
|
1940
1849
|
);
|
1941
1850
|
var ArchiveAction = ActionBase.merge(
|
1942
|
-
|
1943
|
-
type:
|
1851
|
+
import_zod18.z.object({
|
1852
|
+
type: import_zod18.z.literal(ActionType.ARCHIVE)
|
1944
1853
|
})
|
1945
1854
|
);
|
1946
1855
|
var CreatedAction = ActionBase.merge(
|
1947
|
-
|
1948
|
-
type:
|
1856
|
+
import_zod18.z.object({
|
1857
|
+
type: import_zod18.z.literal(ActionType.CREATE)
|
1949
1858
|
})
|
1950
1859
|
);
|
1951
1860
|
var NotifiedAction = ActionBase.merge(
|
1952
|
-
|
1953
|
-
type:
|
1861
|
+
import_zod18.z.object({
|
1862
|
+
type: import_zod18.z.literal(ActionType.NOTIFY)
|
1954
1863
|
})
|
1955
1864
|
);
|
1956
1865
|
var PrintCertificateAction = ActionBase.merge(
|
1957
|
-
|
1958
|
-
type:
|
1866
|
+
import_zod18.z.object({
|
1867
|
+
type: import_zod18.z.literal(ActionType.PRINT_CERTIFICATE)
|
1959
1868
|
})
|
1960
1869
|
);
|
1961
1870
|
var RequestedCorrectionAction = ActionBase.merge(
|
1962
|
-
|
1963
|
-
type:
|
1871
|
+
import_zod18.z.object({
|
1872
|
+
type: import_zod18.z.literal(ActionType.REQUEST_CORRECTION)
|
1964
1873
|
})
|
1965
1874
|
);
|
1966
1875
|
var ApprovedCorrectionAction = ActionBase.merge(
|
1967
|
-
|
1968
|
-
type:
|
1969
|
-
requestId:
|
1876
|
+
import_zod18.z.object({
|
1877
|
+
type: import_zod18.z.literal(ActionType.APPROVE_CORRECTION),
|
1878
|
+
requestId: import_zod18.z.string()
|
1970
1879
|
})
|
1971
1880
|
);
|
1972
1881
|
var RejectedCorrectionAction = ActionBase.merge(
|
1973
|
-
|
1974
|
-
type:
|
1975
|
-
requestId:
|
1882
|
+
import_zod18.z.object({
|
1883
|
+
type: import_zod18.z.literal(ActionType.REJECT_CORRECTION),
|
1884
|
+
requestId: import_zod18.z.string()
|
1976
1885
|
})
|
1977
1886
|
);
|
1978
1887
|
var ReadAction = ActionBase.merge(
|
1979
|
-
|
1980
|
-
type:
|
1888
|
+
import_zod18.z.object({
|
1889
|
+
type: import_zod18.z.literal(ActionType.READ)
|
1981
1890
|
})
|
1982
1891
|
);
|
1983
|
-
var ActionDocument =
|
1984
|
-
CreatedAction,
|
1985
|
-
ValidateAction,
|
1986
|
-
RejectAction,
|
1987
|
-
MarkAsDuplicateAction,
|
1988
|
-
ArchiveAction,
|
1989
|
-
NotifiedAction,
|
1990
|
-
RegisterAction,
|
1991
|
-
DeclareAction,
|
1992
|
-
AssignedAction,
|
1993
|
-
RequestedCorrectionAction,
|
1994
|
-
ApprovedCorrectionAction,
|
1995
|
-
RejectedCorrectionAction,
|
1996
|
-
UnassignedAction,
|
1997
|
-
PrintCertificateAction,
|
1998
|
-
ReadAction
|
1999
|
-
])
|
1892
|
+
var ActionDocument = import_zod18.z.discriminatedUnion("type", [
|
1893
|
+
CreatedAction.openapi({ ref: "CreatedAction" }),
|
1894
|
+
ValidateAction.openapi({ ref: "ValidateAction" }),
|
1895
|
+
RejectAction.openapi({ ref: "RejectAction" }),
|
1896
|
+
MarkAsDuplicateAction.openapi({ ref: "MarkAsDuplicateAction" }),
|
1897
|
+
ArchiveAction.openapi({ ref: "ArchiveAction" }),
|
1898
|
+
NotifiedAction.openapi({ ref: "NotifiedAction" }),
|
1899
|
+
RegisterAction.openapi({ ref: "RegisterAction" }),
|
1900
|
+
DeclareAction.openapi({ ref: "DeclareAction" }),
|
1901
|
+
AssignedAction.openapi({ ref: "AssignedAction" }),
|
1902
|
+
RequestedCorrectionAction.openapi({ ref: "RequestedCorrectionAction" }),
|
1903
|
+
ApprovedCorrectionAction.openapi({ ref: "ApprovedCorrectionAction" }),
|
1904
|
+
RejectedCorrectionAction.openapi({ ref: "RejectedCorrectionAction" }),
|
1905
|
+
UnassignedAction.openapi({ ref: "UnassignedAction" }),
|
1906
|
+
PrintCertificateAction.openapi({ ref: "PrintCertificateAction" }),
|
1907
|
+
ReadAction.openapi({ ref: "ReadAction" })
|
1908
|
+
]).openapi({
|
1909
|
+
ref: "ActionDocument"
|
1910
|
+
});
|
2000
1911
|
var AsyncRejectActionDocument = ActionBase.omit({
|
2001
1912
|
declaration: true,
|
2002
1913
|
annotation: true,
|
2003
1914
|
createdBy: true,
|
1915
|
+
createdByRole: true,
|
2004
1916
|
createdAtLocation: true
|
2005
1917
|
}).merge(
|
2006
|
-
|
2007
|
-
type:
|
2008
|
-
status:
|
1918
|
+
import_zod18.z.object({
|
1919
|
+
type: import_zod18.z.enum(ConfirmableActions),
|
1920
|
+
status: import_zod18.z.literal(ActionStatus.Rejected)
|
2009
1921
|
})
|
2010
1922
|
);
|
2011
|
-
var Action =
|
2012
|
-
var ResolvedUser =
|
2013
|
-
id:
|
2014
|
-
role:
|
2015
|
-
name:
|
2016
|
-
|
2017
|
-
use:
|
2018
|
-
given:
|
2019
|
-
family:
|
1923
|
+
var Action = import_zod18.z.union([ActionDocument, AsyncRejectActionDocument]);
|
1924
|
+
var ResolvedUser = import_zod18.z.object({
|
1925
|
+
id: import_zod18.z.string(),
|
1926
|
+
role: import_zod18.z.string(),
|
1927
|
+
name: import_zod18.z.array(
|
1928
|
+
import_zod18.z.object({
|
1929
|
+
use: import_zod18.z.string(),
|
1930
|
+
given: import_zod18.z.array(import_zod18.z.string()),
|
1931
|
+
family: import_zod18.z.string()
|
2020
1932
|
})
|
2021
1933
|
)
|
2022
1934
|
});
|
2023
1935
|
|
2024
1936
|
// ../commons/src/events/ActionInput.ts
|
2025
|
-
var
|
2026
|
-
var
|
2027
|
-
|
2028
|
-
|
1937
|
+
var import_zod19 = require("zod");
|
1938
|
+
var import_zod_openapi5 = require("zod-openapi");
|
1939
|
+
(0, import_zod_openapi5.extendZodWithOpenApi)(import_zod19.z);
|
1940
|
+
var BaseActionInput = import_zod19.z.object({
|
1941
|
+
eventId: import_zod19.z.string(),
|
1942
|
+
transactionId: import_zod19.z.string(),
|
2029
1943
|
declaration: ActionUpdate.default({}),
|
2030
1944
|
annotation: ActionUpdate.optional(),
|
2031
|
-
originalActionId:
|
1945
|
+
originalActionId: import_zod19.z.string().optional(),
|
1946
|
+
keepAssignment: import_zod19.z.boolean().optional()
|
2032
1947
|
});
|
2033
1948
|
var CreateActionInput = BaseActionInput.merge(
|
2034
|
-
|
2035
|
-
type:
|
2036
|
-
createdAtLocation:
|
1949
|
+
import_zod19.z.object({
|
1950
|
+
type: import_zod19.z.literal(ActionType.CREATE).default(ActionType.CREATE),
|
1951
|
+
createdAtLocation: import_zod19.z.string()
|
2037
1952
|
})
|
2038
1953
|
);
|
2039
1954
|
var RegisterActionInput = BaseActionInput.merge(
|
2040
|
-
|
2041
|
-
type:
|
2042
|
-
registrationNumber:
|
1955
|
+
import_zod19.z.object({
|
1956
|
+
type: import_zod19.z.literal(ActionType.REGISTER).default(ActionType.REGISTER),
|
1957
|
+
registrationNumber: import_zod19.z.string().optional()
|
2043
1958
|
})
|
2044
1959
|
);
|
2045
1960
|
var ValidateActionInput = BaseActionInput.merge(
|
2046
|
-
|
2047
|
-
type:
|
2048
|
-
duplicates:
|
1961
|
+
import_zod19.z.object({
|
1962
|
+
type: import_zod19.z.literal(ActionType.VALIDATE).default(ActionType.VALIDATE),
|
1963
|
+
duplicates: import_zod19.z.array(import_zod19.z.string())
|
2049
1964
|
})
|
2050
1965
|
);
|
2051
1966
|
var NotifyActionInput = BaseActionInput.merge(
|
2052
|
-
|
2053
|
-
type:
|
1967
|
+
import_zod19.z.object({
|
1968
|
+
type: import_zod19.z.literal(ActionType.NOTIFY).default(ActionType.NOTIFY)
|
2054
1969
|
})
|
2055
1970
|
);
|
2056
1971
|
var DeclareActionInput = BaseActionInput.merge(
|
2057
|
-
|
2058
|
-
type:
|
1972
|
+
import_zod19.z.object({
|
1973
|
+
type: import_zod19.z.literal(ActionType.DECLARE).default(ActionType.DECLARE)
|
2059
1974
|
})
|
2060
1975
|
);
|
2061
1976
|
var PrintCertificateActionInput = BaseActionInput.merge(
|
2062
|
-
|
2063
|
-
type:
|
1977
|
+
import_zod19.z.object({
|
1978
|
+
type: import_zod19.z.literal(ActionType.PRINT_CERTIFICATE).default(ActionType.PRINT_CERTIFICATE)
|
2064
1979
|
})
|
2065
1980
|
);
|
2066
1981
|
var RejectDeclarationActionInput = BaseActionInput.merge(
|
2067
|
-
|
2068
|
-
type:
|
1982
|
+
import_zod19.z.object({
|
1983
|
+
type: import_zod19.z.literal(ActionType.REJECT).default(ActionType.REJECT)
|
2069
1984
|
})
|
2070
1985
|
);
|
2071
1986
|
var MarkedAsDuplicateActionInput = BaseActionInput.merge(
|
2072
|
-
|
2073
|
-
type:
|
1987
|
+
import_zod19.z.object({
|
1988
|
+
type: import_zod19.z.literal(ActionType.MARKED_AS_DUPLICATE).default(ActionType.MARKED_AS_DUPLICATE)
|
2074
1989
|
})
|
2075
1990
|
);
|
2076
1991
|
var ArchiveActionInput = BaseActionInput.merge(
|
2077
|
-
|
2078
|
-
type:
|
1992
|
+
import_zod19.z.object({
|
1993
|
+
type: import_zod19.z.literal(ActionType.ARCHIVE).default(ActionType.ARCHIVE)
|
2079
1994
|
})
|
2080
1995
|
);
|
2081
1996
|
var AssignActionInput = BaseActionInput.merge(
|
2082
|
-
|
2083
|
-
type:
|
2084
|
-
assignedTo:
|
1997
|
+
import_zod19.z.object({
|
1998
|
+
type: import_zod19.z.literal(ActionType.ASSIGN).default(ActionType.ASSIGN),
|
1999
|
+
assignedTo: import_zod19.z.string()
|
2085
2000
|
})
|
2086
2001
|
);
|
2087
2002
|
var UnassignActionInput = BaseActionInput.merge(
|
2088
|
-
|
2089
|
-
type:
|
2090
|
-
assignedTo:
|
2003
|
+
import_zod19.z.object({
|
2004
|
+
type: import_zod19.z.literal(ActionType.UNASSIGN).default(ActionType.UNASSIGN),
|
2005
|
+
assignedTo: import_zod19.z.literal(null).default(null)
|
2091
2006
|
})
|
2092
2007
|
);
|
2093
2008
|
var RequestCorrectionActionInput = BaseActionInput.merge(
|
2094
|
-
|
2095
|
-
type:
|
2009
|
+
import_zod19.z.object({
|
2010
|
+
type: import_zod19.z.literal(ActionType.REQUEST_CORRECTION).default(ActionType.REQUEST_CORRECTION)
|
2096
2011
|
})
|
2097
2012
|
);
|
2098
2013
|
var RejectCorrectionActionInput = BaseActionInput.merge(
|
2099
|
-
|
2100
|
-
requestId:
|
2101
|
-
type:
|
2014
|
+
import_zod19.z.object({
|
2015
|
+
requestId: import_zod19.z.string(),
|
2016
|
+
type: import_zod19.z.literal(ActionType.REJECT_CORRECTION).default(ActionType.REJECT_CORRECTION)
|
2102
2017
|
})
|
2103
2018
|
);
|
2104
2019
|
var ApproveCorrectionActionInput = BaseActionInput.merge(
|
2105
|
-
|
2106
|
-
requestId:
|
2107
|
-
type:
|
2020
|
+
import_zod19.z.object({
|
2021
|
+
requestId: import_zod19.z.string(),
|
2022
|
+
type: import_zod19.z.literal(ActionType.APPROVE_CORRECTION).default(ActionType.APPROVE_CORRECTION)
|
2108
2023
|
})
|
2109
2024
|
);
|
2110
2025
|
var ReadActionInput = BaseActionInput.merge(
|
2111
|
-
|
2112
|
-
type:
|
2026
|
+
import_zod19.z.object({
|
2027
|
+
type: import_zod19.z.literal(ActionType.READ).default(ActionType.READ)
|
2113
2028
|
})
|
2114
2029
|
);
|
2115
|
-
var
|
2116
|
-
|
2117
|
-
|
2118
|
-
|
2119
|
-
|
2120
|
-
|
2121
|
-
|
2122
|
-
|
2123
|
-
|
2124
|
-
|
2125
|
-
|
2126
|
-
|
2127
|
-
|
2128
|
-
|
2129
|
-
|
2130
|
-
|
2131
|
-
|
2030
|
+
var DeleteActionInput = import_zod19.z.object({ eventId: import_zod19.z.string() });
|
2031
|
+
var ActionInput = import_zod19.z.discriminatedUnion("type", [
|
2032
|
+
CreateActionInput.openapi({ ref: "CreateActionInput" }),
|
2033
|
+
ValidateActionInput.openapi({ ref: "ValidateActionInput" }),
|
2034
|
+
RegisterActionInput.openapi({ ref: "RegisterActionInput" }),
|
2035
|
+
NotifyActionInput.openapi({ ref: "NotifyActionInput" }),
|
2036
|
+
DeclareActionInput.openapi({ ref: "DeclareActionInput" }),
|
2037
|
+
RejectDeclarationActionInput.openapi({
|
2038
|
+
ref: "RejectDeclarationActionInput"
|
2039
|
+
}),
|
2040
|
+
MarkedAsDuplicateActionInput.openapi({
|
2041
|
+
ref: "MarkedAsDuplicateActionInput"
|
2042
|
+
}),
|
2043
|
+
ArchiveActionInput.openapi({ ref: "ArchiveActionInput" }),
|
2044
|
+
AssignActionInput.openapi({ ref: "AssignActionInput" }),
|
2045
|
+
UnassignActionInput.openapi({ ref: "UnassignActionInput" }),
|
2046
|
+
PrintCertificateActionInput.openapi({ ref: "PrintCertificateActionInput" }),
|
2047
|
+
RequestCorrectionActionInput.openapi({
|
2048
|
+
ref: "RequestCorrectionActionInput"
|
2049
|
+
}),
|
2050
|
+
RejectCorrectionActionInput.openapi({ ref: "RejectCorrectionActionInput" }),
|
2051
|
+
ApproveCorrectionActionInput.openapi({
|
2052
|
+
ref: "ApproveCorrectionActionInput"
|
2053
|
+
}),
|
2054
|
+
ReadActionInput.openapi({ ref: "ReadActionInput" })
|
2055
|
+
]).openapi({
|
2056
|
+
ref: "ActionInput"
|
2057
|
+
});
|
2132
2058
|
|
2133
2059
|
// ../commons/src/events/Draft.ts
|
2134
|
-
var Draft =
|
2135
|
-
id:
|
2136
|
-
eventId:
|
2137
|
-
transactionId:
|
2138
|
-
createdAt:
|
2060
|
+
var Draft = import_zod20.z.object({
|
2061
|
+
id: import_zod20.z.string(),
|
2062
|
+
eventId: import_zod20.z.string(),
|
2063
|
+
transactionId: import_zod20.z.string(),
|
2064
|
+
createdAt: import_zod20.z.string().datetime(),
|
2139
2065
|
action: ActionBase.extend({
|
2140
2066
|
type: ActionTypes
|
2141
2067
|
}).omit({ id: true })
|
@@ -2144,35 +2070,181 @@ var DraftInput = BaseActionInput.extend({
|
|
2144
2070
|
type: ActionTypes
|
2145
2071
|
});
|
2146
2072
|
|
2073
|
+
// ../commons/src/events/EventMetadata.ts
|
2074
|
+
var import_zod21 = require("zod");
|
2075
|
+
var EventStatus = {
|
2076
|
+
CREATED: "CREATED",
|
2077
|
+
NOTIFIED: "NOTIFIED",
|
2078
|
+
DECLARED: "DECLARED",
|
2079
|
+
VALIDATED: "VALIDATED",
|
2080
|
+
REGISTERED: "REGISTERED",
|
2081
|
+
CERTIFIED: "CERTIFIED",
|
2082
|
+
REJECTED: "REJECTED",
|
2083
|
+
ARCHIVED: "ARCHIVED"
|
2084
|
+
};
|
2085
|
+
var eventStatuses = Object.values(EventStatus);
|
2086
|
+
var EventStatuses = import_zod21.z.nativeEnum(EventStatus);
|
2087
|
+
var ZodDate = import_zod21.z.string().date();
|
2088
|
+
var EventMetadata = import_zod21.z.object({
|
2089
|
+
id: import_zod21.z.string(),
|
2090
|
+
type: import_zod21.z.string(),
|
2091
|
+
status: EventStatuses,
|
2092
|
+
createdAt: import_zod21.z.string().datetime(),
|
2093
|
+
dateOfEvent: ZodDate.nullish(),
|
2094
|
+
createdBy: import_zod21.z.string(),
|
2095
|
+
updatedByUserRole: import_zod21.z.string(),
|
2096
|
+
createdAtLocation: import_zod21.z.string(),
|
2097
|
+
updatedAtLocation: import_zod21.z.string(),
|
2098
|
+
updatedAt: import_zod21.z.string().datetime(),
|
2099
|
+
assignedTo: import_zod21.z.string().nullish(),
|
2100
|
+
updatedBy: import_zod21.z.string(),
|
2101
|
+
trackingId: import_zod21.z.string(),
|
2102
|
+
registrationNumber: import_zod21.z.string().nullish()
|
2103
|
+
});
|
2104
|
+
var eventMetadataLabelMap = {
|
2105
|
+
"event.assignedTo": {
|
2106
|
+
id: "event.assignedTo.label",
|
2107
|
+
defaultMessage: "Assigned To",
|
2108
|
+
description: "Assigned To"
|
2109
|
+
},
|
2110
|
+
"event.createdAt": {
|
2111
|
+
id: "event.createdAt.label",
|
2112
|
+
defaultMessage: "Created",
|
2113
|
+
description: "Created At"
|
2114
|
+
},
|
2115
|
+
"event.dateOfEvent": {
|
2116
|
+
id: "event.dateOfEvent.label",
|
2117
|
+
defaultMessage: "Date of Event",
|
2118
|
+
description: "Date of Event"
|
2119
|
+
},
|
2120
|
+
"event.createdAtLocation": {
|
2121
|
+
id: "event.createdAtLocation.label",
|
2122
|
+
defaultMessage: "Location",
|
2123
|
+
description: "Created At Location"
|
2124
|
+
},
|
2125
|
+
"event.updatedAtLocation": {
|
2126
|
+
id: "event.updatedAtLocation.label",
|
2127
|
+
defaultMessage: "Location",
|
2128
|
+
description: "Updated At Location"
|
2129
|
+
},
|
2130
|
+
"event.createdBy": {
|
2131
|
+
id: "event.createdBy.label",
|
2132
|
+
defaultMessage: "Created By",
|
2133
|
+
description: "Created By"
|
2134
|
+
},
|
2135
|
+
"event.updatedByUserRole": {
|
2136
|
+
id: "event.updatedByUserRole.label",
|
2137
|
+
defaultMessage: "Updated By Role",
|
2138
|
+
description: "Updated By Role"
|
2139
|
+
},
|
2140
|
+
"event.id": {
|
2141
|
+
id: "event.id.label",
|
2142
|
+
defaultMessage: "ID",
|
2143
|
+
description: "ID"
|
2144
|
+
},
|
2145
|
+
"event.updatedAt": {
|
2146
|
+
id: "event.modifiedAt.label",
|
2147
|
+
defaultMessage: "Updated",
|
2148
|
+
description: "Modified At"
|
2149
|
+
},
|
2150
|
+
"event.status": {
|
2151
|
+
id: "event.status.label",
|
2152
|
+
defaultMessage: "Status",
|
2153
|
+
description: "Status"
|
2154
|
+
},
|
2155
|
+
"event.type": {
|
2156
|
+
id: "event.type.label",
|
2157
|
+
defaultMessage: "Type",
|
2158
|
+
description: "Type"
|
2159
|
+
},
|
2160
|
+
"event.updatedBy": {
|
2161
|
+
id: "event.updatedBy.label",
|
2162
|
+
defaultMessage: "Updated By",
|
2163
|
+
description: "Updated By"
|
2164
|
+
},
|
2165
|
+
"event.trackingId": {
|
2166
|
+
id: "event.trackingId.label",
|
2167
|
+
defaultMessage: "Tracking ID",
|
2168
|
+
description: "Tracking ID"
|
2169
|
+
},
|
2170
|
+
"event.registrationNumber": {
|
2171
|
+
id: "event.registrationNumber.label",
|
2172
|
+
defaultMessage: "Registration Number",
|
2173
|
+
description: "Registration Number"
|
2174
|
+
}
|
2175
|
+
};
|
2176
|
+
|
2147
2177
|
// ../commons/src/events/EventInput.ts
|
2148
|
-
var
|
2149
|
-
var EventInput =
|
2150
|
-
transactionId:
|
2151
|
-
type:
|
2178
|
+
var import_zod22 = require("zod");
|
2179
|
+
var EventInput = import_zod22.z.object({
|
2180
|
+
transactionId: import_zod22.z.string(),
|
2181
|
+
type: import_zod22.z.string(),
|
2182
|
+
dateOfEvent: import_zod22.z.object({ fieldId: import_zod22.z.string() }).optional()
|
2152
2183
|
});
|
2153
2184
|
|
2154
2185
|
// ../commons/src/events/EventDocument.ts
|
2155
|
-
var
|
2156
|
-
var
|
2157
|
-
|
2158
|
-
|
2159
|
-
|
2160
|
-
|
2161
|
-
|
2162
|
-
|
2163
|
-
|
2186
|
+
var import_zod23 = require("zod");
|
2187
|
+
var import_zod_openapi6 = require("zod-openapi");
|
2188
|
+
(0, import_zod_openapi6.extendZodWithOpenApi)(import_zod23.z);
|
2189
|
+
var EventDocument = import_zod23.z.object({
|
2190
|
+
id: import_zod23.z.string(),
|
2191
|
+
type: import_zod23.z.string(),
|
2192
|
+
dateOfEvent: import_zod23.z.object({ fieldId: import_zod23.z.string() }).optional(),
|
2193
|
+
createdAt: import_zod23.z.string().datetime(),
|
2194
|
+
updatedAt: import_zod23.z.string().datetime(),
|
2195
|
+
updatedAtLocation: import_zod23.z.string(),
|
2196
|
+
actions: import_zod23.z.array(Action),
|
2197
|
+
trackingId: import_zod23.z.string()
|
2198
|
+
}).openapi({ ref: "EventDocument" });
|
2164
2199
|
|
2165
2200
|
// ../commons/src/events/EventIndex.ts
|
2166
|
-
var
|
2201
|
+
var import_zod24 = require("zod");
|
2167
2202
|
var EventIndex = EventMetadata.extend({
|
2168
|
-
declaration:
|
2203
|
+
declaration: import_zod24.z.record(import_zod24.z.string(), import_zod24.z.any())
|
2169
2204
|
});
|
2170
|
-
var EventSearchIndex =
|
2171
|
-
|
2172
|
-
type:
|
2205
|
+
var EventSearchIndex = import_zod24.z.record(import_zod24.z.string(), import_zod24.z.any()).and(
|
2206
|
+
import_zod24.z.object({
|
2207
|
+
type: import_zod24.z.string()
|
2173
2208
|
// Ensures "type" (event-id) exists and is a string
|
2174
2209
|
})
|
2175
2210
|
);
|
2211
|
+
var Fuzzy = import_zod24.z.object({ type: import_zod24.z.literal("fuzzy"), term: import_zod24.z.string() });
|
2212
|
+
var Exact = import_zod24.z.object({ type: import_zod24.z.literal("exact"), term: import_zod24.z.string() });
|
2213
|
+
var AnyOf = import_zod24.z.object({
|
2214
|
+
type: import_zod24.z.literal("anyOf"),
|
2215
|
+
terms: import_zod24.z.array(import_zod24.z.string())
|
2216
|
+
});
|
2217
|
+
var Range = import_zod24.z.object({
|
2218
|
+
type: import_zod24.z.literal("range"),
|
2219
|
+
gte: import_zod24.z.string(),
|
2220
|
+
lte: import_zod24.z.string()
|
2221
|
+
});
|
2222
|
+
var Within = import_zod24.z.object({ type: import_zod24.z.literal("within"), location: import_zod24.z.string() });
|
2223
|
+
var DateCondition = import_zod24.z.union([Exact, Range]);
|
2224
|
+
var QueryInput = import_zod24.z.lazy(
|
2225
|
+
() => import_zod24.z.union([
|
2226
|
+
import_zod24.z.discriminatedUnion("type", [Fuzzy, Exact, Range, Within, AnyOf]),
|
2227
|
+
import_zod24.z.record(import_zod24.z.string(), QueryInput)
|
2228
|
+
])
|
2229
|
+
);
|
2230
|
+
var QueryExpression = import_zod24.z.object({
|
2231
|
+
type: import_zod24.z.literal("and"),
|
2232
|
+
eventType: import_zod24.z.string(),
|
2233
|
+
status: import_zod24.z.optional(import_zod24.z.union([AnyOf, Exact])),
|
2234
|
+
createdAt: import_zod24.z.optional(DateCondition),
|
2235
|
+
updatedAt: import_zod24.z.optional(DateCondition),
|
2236
|
+
createAtLocation: import_zod24.z.optional(import_zod24.z.union([Within, Exact])),
|
2237
|
+
updatedAtLocation: import_zod24.z.optional(import_zod24.z.union([Within, Exact])),
|
2238
|
+
createdBy: import_zod24.z.optional(Exact),
|
2239
|
+
updatedBy: import_zod24.z.optional(Exact),
|
2240
|
+
trackingId: import_zod24.z.optional(Exact),
|
2241
|
+
data: QueryInput
|
2242
|
+
}).partial();
|
2243
|
+
var Or2 = import_zod24.z.object({
|
2244
|
+
type: import_zod24.z.literal("or"),
|
2245
|
+
clauses: import_zod24.z.array(QueryExpression)
|
2246
|
+
});
|
2247
|
+
var QueryType = import_zod24.z.discriminatedUnion("type", [QueryExpression, Or2]);
|
2176
2248
|
|
2177
2249
|
// ../commons/src/events/state/index.ts
|
2178
2250
|
function getStatusFromActions(actions) {
|
@@ -2183,30 +2255,47 @@ function getStatusFromActions(actions) {
|
|
2183
2255
|
return EventStatus.REJECTED;
|
2184
2256
|
}
|
2185
2257
|
return actions.reduce((status, action) => {
|
2186
|
-
|
2187
|
-
|
2188
|
-
|
2189
|
-
|
2190
|
-
|
2191
|
-
|
2192
|
-
|
2193
|
-
|
2194
|
-
|
2195
|
-
|
2196
|
-
|
2197
|
-
|
2198
|
-
|
2199
|
-
|
2200
|
-
|
2201
|
-
|
2202
|
-
|
2203
|
-
|
2204
|
-
|
2205
|
-
|
2258
|
+
switch (action.type) {
|
2259
|
+
case ActionType.CREATE:
|
2260
|
+
return EventStatus.CREATED;
|
2261
|
+
case ActionType.DECLARE:
|
2262
|
+
return EventStatus.DECLARED;
|
2263
|
+
case ActionType.VALIDATE:
|
2264
|
+
return EventStatus.VALIDATED;
|
2265
|
+
case ActionType.REGISTER:
|
2266
|
+
return EventStatus.REGISTERED;
|
2267
|
+
case ActionType.REJECT:
|
2268
|
+
return EventStatus.REJECTED;
|
2269
|
+
case ActionType.ARCHIVE:
|
2270
|
+
return EventStatus.ARCHIVED;
|
2271
|
+
case ActionType.NOTIFY:
|
2272
|
+
return EventStatus.NOTIFIED;
|
2273
|
+
case ActionType.PRINT_CERTIFICATE:
|
2274
|
+
return EventStatus.CERTIFIED;
|
2275
|
+
case ActionType.ASSIGN:
|
2276
|
+
case ActionType.UNASSIGN:
|
2277
|
+
case ActionType.REQUEST_CORRECTION:
|
2278
|
+
case ActionType.APPROVE_CORRECTION:
|
2279
|
+
case ActionType.MARKED_AS_DUPLICATE:
|
2280
|
+
case ActionType.REJECT_CORRECTION:
|
2281
|
+
case ActionType.READ:
|
2282
|
+
default:
|
2283
|
+
return status;
|
2206
2284
|
}
|
2207
|
-
return status;
|
2208
2285
|
}, EventStatus.CREATED);
|
2209
2286
|
}
|
2287
|
+
function getLastUpdatedByUserRoleFromActions(actions) {
|
2288
|
+
const actionsWithRoles = actions.filter(
|
2289
|
+
(action) => !isWriteAction(action.type) && action.status !== ActionStatus.Rejected
|
2290
|
+
).sort((a, b) => a.createdAt.localeCompare(b.createdAt));
|
2291
|
+
const lastAction = actionsWithRoles.at(-1);
|
2292
|
+
if (!lastAction) {
|
2293
|
+
throw new Error(
|
2294
|
+
"Should never happen, at least CREATE action should be present"
|
2295
|
+
);
|
2296
|
+
}
|
2297
|
+
return ActionDocument.parse(lastAction).createdByRole;
|
2298
|
+
}
|
2210
2299
|
function getAssignedUserFromActions(actions) {
|
2211
2300
|
return actions.reduce((user2, action) => {
|
2212
2301
|
if (action.type === ActionType.ASSIGN) {
|
@@ -2274,19 +2363,29 @@ function getCurrentEventState(event2) {
|
|
2274
2363
|
(a) => a.type === ActionType.REGISTER && a.status === ActionStatus.Accepted
|
2275
2364
|
);
|
2276
2365
|
const registrationNumber = registrationAction?.registrationNumber ?? null;
|
2366
|
+
const declaration = aggregateActionDeclarations(activeActions);
|
2367
|
+
let dateOfEvent = event2.createdAt.split("T")[0];
|
2368
|
+
if (event2.dateOfEvent) {
|
2369
|
+
const parsedDate = ZodDate.safeParse(declaration[event2.dateOfEvent.fieldId]);
|
2370
|
+
dateOfEvent = parsedDate.success ? parsedDate.data : null;
|
2371
|
+
}
|
2277
2372
|
return deepDropNulls({
|
2278
2373
|
id: event2.id,
|
2279
2374
|
type: event2.type,
|
2280
2375
|
status: getStatusFromActions(event2.actions),
|
2281
2376
|
createdAt: event2.createdAt,
|
2282
2377
|
createdBy: creationAction.createdBy,
|
2283
|
-
createdAtLocation: creationAction.createdAtLocation,
|
2284
|
-
|
2378
|
+
createdAtLocation: creationAction.createdAtLocation ?? "",
|
2379
|
+
// @todo remove using empty string
|
2380
|
+
updatedAt: latestAction.createdAt,
|
2285
2381
|
assignedTo: getAssignedUserFromActions(activeActions),
|
2286
2382
|
updatedBy: latestAction.createdBy,
|
2287
|
-
|
2383
|
+
updatedAtLocation: event2.updatedAtLocation,
|
2384
|
+
declaration,
|
2288
2385
|
trackingId: event2.trackingId,
|
2289
|
-
registrationNumber
|
2386
|
+
registrationNumber,
|
2387
|
+
updatedByUserRole: getLastUpdatedByUserRoleFromActions(event2.actions),
|
2388
|
+
dateOfEvent
|
2290
2389
|
});
|
2291
2390
|
}
|
2292
2391
|
function getCurrentEventStateWithDrafts(event2, drafts) {
|
@@ -2311,7 +2410,7 @@ function getCurrentEventStateWithDrafts(event2, drafts) {
|
|
2311
2410
|
return getCurrentEventState(withDrafts);
|
2312
2411
|
}
|
2313
2412
|
function applyDraftsToEventIndex(eventIndex, drafts) {
|
2314
|
-
const indexedAt = eventIndex.
|
2413
|
+
const indexedAt = eventIndex.updatedAt;
|
2315
2414
|
const activeDrafts = drafts.filter(({ createdAt }) => new Date(createdAt) > new Date(indexedAt)).map((draft) => draft.action).sort();
|
2316
2415
|
if (activeDrafts.length === 0) {
|
2317
2416
|
return eventIndex;
|
@@ -2334,7 +2433,7 @@ function getAnnotationFromDrafts(drafts) {
|
|
2334
2433
|
function getActionAnnotation({
|
2335
2434
|
event: event2,
|
2336
2435
|
actionType,
|
2337
|
-
drafts
|
2436
|
+
drafts = []
|
2338
2437
|
}) {
|
2339
2438
|
const activeActions = getAcceptedActions(event2);
|
2340
2439
|
const action = activeActions.find(
|
@@ -2353,7 +2452,6 @@ function getActionAnnotation({
|
|
2353
2452
|
|
2354
2453
|
// ../commons/src/events/defineConfig.ts
|
2355
2454
|
var defineConfig = (config) => {
|
2356
|
-
validateWorkqueueConfig(config.workqueues);
|
2357
2455
|
const input = EventConfig.parse(config);
|
2358
2456
|
return input;
|
2359
2457
|
};
|
@@ -2428,32 +2526,38 @@ var user = {
|
|
2428
2526
|
required: ["$user"]
|
2429
2527
|
})
|
2430
2528
|
};
|
2431
|
-
|
2432
|
-
|
2433
|
-
|
2434
|
-
|
2435
|
-
|
2436
|
-
|
2437
|
-
|
2438
|
-
|
2439
|
-
|
2440
|
-
|
2441
|
-
|
2442
|
-
|
2443
|
-
|
2444
|
-
|
2445
|
-
|
2446
|
-
|
2447
|
-
|
2529
|
+
function createEventConditionals() {
|
2530
|
+
return {
|
2531
|
+
/**
|
2532
|
+
* Checks if the event contains a specific action type.
|
2533
|
+
* @param action - The action type to check for.
|
2534
|
+
*/
|
2535
|
+
hasAction: (action) => defineConditional({
|
2536
|
+
type: "object",
|
2537
|
+
properties: {
|
2538
|
+
$event: {
|
2539
|
+
type: "object",
|
2540
|
+
properties: {
|
2541
|
+
actions: {
|
2542
|
+
type: "array",
|
2543
|
+
contains: {
|
2544
|
+
type: "object",
|
2545
|
+
properties: {
|
2546
|
+
type: {
|
2547
|
+
const: action
|
2548
|
+
}
|
2549
|
+
},
|
2550
|
+
required: ["type"]
|
2551
|
+
}
|
2448
2552
|
}
|
2449
|
-
}
|
2450
|
-
|
2451
|
-
|
2452
|
-
}
|
2453
|
-
|
2454
|
-
|
2455
|
-
}
|
2456
|
-
}
|
2553
|
+
},
|
2554
|
+
required: ["actions"]
|
2555
|
+
}
|
2556
|
+
},
|
2557
|
+
required: ["$event"]
|
2558
|
+
})
|
2559
|
+
};
|
2560
|
+
}
|
2457
2561
|
function getDateFromNow(days) {
|
2458
2562
|
return new Date(Date.now() - days * 24 * 60 * 60 * 1e3).toISOString().split("T")[0];
|
2459
2563
|
}
|
@@ -2474,7 +2578,7 @@ function getDateRangeToFieldReference(fieldId, comparedFieldId, clause) {
|
|
2474
2578
|
function isFieldReference(value) {
|
2475
2579
|
return typeof value === "object" && value !== null && "_fieldId" in value;
|
2476
2580
|
}
|
2477
|
-
function
|
2581
|
+
function createFieldConditionals(fieldId) {
|
2478
2582
|
const getDateRange = (date, clause) => ({
|
2479
2583
|
type: "object",
|
2480
2584
|
properties: {
|
@@ -2487,10 +2591,6 @@ function field(fieldId) {
|
|
2487
2591
|
required: [fieldId]
|
2488
2592
|
});
|
2489
2593
|
return {
|
2490
|
-
/**
|
2491
|
-
* @private Internal property used for field reference tracking.
|
2492
|
-
*/
|
2493
|
-
_fieldId: fieldId,
|
2494
2594
|
isAfter: () => ({
|
2495
2595
|
days: (days) => ({
|
2496
2596
|
inPast: () => defineFormConditional(
|
@@ -2657,10 +2757,74 @@ function field(fieldId) {
|
|
2657
2757
|
}
|
2658
2758
|
},
|
2659
2759
|
required: [fieldId]
|
2760
|
+
}),
|
2761
|
+
getId: () => ({ fieldId })
|
2762
|
+
};
|
2763
|
+
}
|
2764
|
+
|
2765
|
+
// ../commons/src/field-config/field-configuration.ts
|
2766
|
+
function createFieldConfigs(fieldId) {
|
2767
|
+
const baseField = {
|
2768
|
+
fieldId,
|
2769
|
+
fieldType: "field"
|
2770
|
+
};
|
2771
|
+
return {
|
2772
|
+
/**
|
2773
|
+
* Creates a range configuration for the specified field.
|
2774
|
+
*
|
2775
|
+
* @returns An object containing the field ID and a configuration object with a type of 'RANGE'.
|
2776
|
+
*
|
2777
|
+
* @example field('age').range()
|
2778
|
+
* // {
|
2779
|
+
* // fieldId: 'age',
|
2780
|
+
* // config: { type: 'RANGE' }
|
2781
|
+
* // }
|
2782
|
+
*/
|
2783
|
+
range: () => ({
|
2784
|
+
...baseField,
|
2785
|
+
config: { type: "RANGE" }
|
2786
|
+
}),
|
2787
|
+
/**
|
2788
|
+
* Creates a configuration for exact matching of the specified field.
|
2789
|
+
* @returns An object containing the field ID and a configuration object with a type of 'EXACT'.
|
2790
|
+
* @example field('dob').exact()
|
2791
|
+
* // {
|
2792
|
+
* // fieldId: 'dob',
|
2793
|
+
* // config: { type: 'EXACT' }
|
2794
|
+
* // }
|
2795
|
+
*/
|
2796
|
+
exact: () => ({
|
2797
|
+
...baseField,
|
2798
|
+
config: { type: "EXACT" }
|
2799
|
+
}),
|
2800
|
+
/**
|
2801
|
+
* Creates a configuration for fuzzy matching of the specified field.
|
2802
|
+
* @returns An object containing the field ID and a configuration object with a type of 'EXACT'.
|
2803
|
+
* @example field('name').fuzzy()
|
2804
|
+
* // {
|
2805
|
+
* // fieldId: 'name',
|
2806
|
+
* // config: { type: 'FUZZY' }
|
2807
|
+
* // }
|
2808
|
+
*/
|
2809
|
+
fuzzy: () => ({
|
2810
|
+
...baseField,
|
2811
|
+
config: { type: "FUZZY" }
|
2660
2812
|
})
|
2661
2813
|
};
|
2662
2814
|
}
|
2663
2815
|
|
2816
|
+
// ../commons/src/events/field.ts
|
2817
|
+
function field(fieldId) {
|
2818
|
+
return {
|
2819
|
+
/**
|
2820
|
+
* @private Internal property used for field reference tracking.
|
2821
|
+
*/
|
2822
|
+
_fieldId: fieldId,
|
2823
|
+
...createFieldConditionals(fieldId),
|
2824
|
+
...createFieldConfigs(fieldId)
|
2825
|
+
};
|
2826
|
+
}
|
2827
|
+
|
2664
2828
|
// ../commons/src/fixtures/tennis-club-membership-event.ts
|
2665
2829
|
var PRINT_CERTIFICATE_FORM = defineActionForm({
|
2666
2830
|
label: {
|
@@ -3577,20 +3741,12 @@ var tennisClubMembershipEvent = defineConfig({
|
|
3577
3741
|
description: "This is what this event is referred as in the system",
|
3578
3742
|
id: "event.tennis-club-membership.label"
|
3579
3743
|
},
|
3744
|
+
title: {
|
3745
|
+
defaultMessage: "{applicant.firstname} {applicant.surname}",
|
3746
|
+
description: "This is the title of the summary",
|
3747
|
+
id: "v2.event.tennis-club-membership.title"
|
3748
|
+
},
|
3580
3749
|
summary: {
|
3581
|
-
title: {
|
3582
|
-
id: "event.tennis-club-membership.summary.title",
|
3583
|
-
label: {
|
3584
|
-
defaultMessage: "{applicant.firstname} {applicant.surname}",
|
3585
|
-
description: "This is the title of the summary",
|
3586
|
-
id: "v2.event.tennis-club-membership.summary.title"
|
3587
|
-
},
|
3588
|
-
emptyValueMessage: {
|
3589
|
-
defaultMessage: "Membership application",
|
3590
|
-
description: "This is the message shown when the applicant name is missing",
|
3591
|
-
id: "event.tennis-club-membership.summary.title.empty"
|
3592
|
-
}
|
3593
|
-
},
|
3594
3750
|
fields: [
|
3595
3751
|
{
|
3596
3752
|
id: "applicant.firstname",
|
@@ -3630,28 +3786,6 @@ var tennisClubMembershipEvent = defineConfig({
|
|
3630
3786
|
}
|
3631
3787
|
]
|
3632
3788
|
},
|
3633
|
-
workqueues: [
|
3634
|
-
{
|
3635
|
-
id: "all",
|
3636
|
-
filters: []
|
3637
|
-
},
|
3638
|
-
{
|
3639
|
-
id: "ready-for-review",
|
3640
|
-
filters: [
|
3641
|
-
{
|
3642
|
-
status: ["DECLARED"]
|
3643
|
-
}
|
3644
|
-
]
|
3645
|
-
},
|
3646
|
-
{
|
3647
|
-
id: "registered",
|
3648
|
-
filters: [
|
3649
|
-
{
|
3650
|
-
status: ["REGISTERED"]
|
3651
|
-
}
|
3652
|
-
]
|
3653
|
-
}
|
3654
|
-
],
|
3655
3789
|
actions: [
|
3656
3790
|
{
|
3657
3791
|
type: ActionType.DECLARE,
|
@@ -3959,11 +4093,7 @@ var tennisClubMembershipEvent = defineConfig({
|
|
3959
4093
|
description: "This is what this event is referred as in the system",
|
3960
4094
|
id: "v2.event.tennis-club-membership.search"
|
3961
4095
|
},
|
3962
|
-
fields: [
|
3963
|
-
{
|
3964
|
-
fieldId: "applicant.dob"
|
3965
|
-
}
|
3966
|
-
]
|
4096
|
+
fields: [field("applicant.dob").exact()]
|
3967
4097
|
}
|
3968
4098
|
],
|
3969
4099
|
declaration: TENNIS_CLUB_DECLARATION_FORM
|
@@ -3996,10 +4126,10 @@ function generateActionAnnotationInput(configuration, action) {
|
|
3996
4126
|
);
|
3997
4127
|
const annotationFields = actionConfig ? getActionAnnotationFields(actionConfig) : [];
|
3998
4128
|
const annotation = fieldConfigsToActionPayload(annotationFields);
|
3999
|
-
const visibleVerificationPageIds =
|
4000
|
-
configuration,
|
4001
|
-
|
4002
|
-
)
|
4129
|
+
const visibleVerificationPageIds = getVisibleVerificationPageIds(
|
4130
|
+
findRecordActionPages(configuration, action),
|
4131
|
+
annotation
|
4132
|
+
);
|
4003
4133
|
const visiblePageVerificationMap = visibleVerificationPageIds.reduce(
|
4004
4134
|
(acc, pageId) => ({
|
4005
4135
|
...acc,
|
@@ -4030,6 +4160,7 @@ var eventPayloadGenerator = {
|
|
4030
4160
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
4031
4161
|
transactionId: getUUID(),
|
4032
4162
|
action: {
|
4163
|
+
transactionId: getUUID(),
|
4033
4164
|
type: actionType,
|
4034
4165
|
status: ActionStatus.Accepted,
|
4035
4166
|
declaration: {
|
@@ -4044,7 +4175,9 @@ var eventPayloadGenerator = {
|
|
4044
4175
|
},
|
4045
4176
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
4046
4177
|
createdBy: "@todo",
|
4047
|
-
|
4178
|
+
createdByRole: "@todo",
|
4179
|
+
createdAtLocation: "@todo",
|
4180
|
+
updatedAtLocation: "@todo"
|
4048
4181
|
}
|
4049
4182
|
},
|
4050
4183
|
input
|
@@ -4205,12 +4338,15 @@ function generateActionDocument({
|
|
4205
4338
|
// @TODO: This should be fixed in the future.
|
4206
4339
|
createdAt: new Date(Date.now() - 500).toISOString(),
|
4207
4340
|
createdBy: getUUID(),
|
4341
|
+
createdByRole: "FIELD_AGENT",
|
4208
4342
|
id: getUUID(),
|
4209
4343
|
createdAtLocation: "TODO",
|
4344
|
+
updatedAtLocation: "TODO",
|
4210
4345
|
declaration: generateActionDeclarationInput(configuration, action),
|
4211
4346
|
annotation: {},
|
4212
4347
|
...defaults,
|
4213
|
-
status: ActionStatus.Accepted
|
4348
|
+
status: ActionStatus.Accepted,
|
4349
|
+
transactionId: getUUID()
|
4214
4350
|
};
|
4215
4351
|
switch (action) {
|
4216
4352
|
case ActionType.READ:
|
@@ -4220,7 +4356,7 @@ function generateActionDocument({
|
|
4220
4356
|
case ActionType.DECLARE:
|
4221
4357
|
return { ...actionBase, type: action };
|
4222
4358
|
case ActionType.UNASSIGN:
|
4223
|
-
return { ...actionBase, type: action };
|
4359
|
+
return { ...actionBase, type: action, assignedTo: null };
|
4224
4360
|
case ActionType.ASSIGN:
|
4225
4361
|
return { ...actionBase, assignedTo: getUUID(), type: action };
|
4226
4362
|
case ActionType.VALIDATE:
|
@@ -4268,7 +4404,9 @@ function generateEventDocument({
|
|
4268
4404
|
id: getUUID(),
|
4269
4405
|
// Offset is needed so the createdAt timestamps for events, actions and drafts make logical sense in storybook tests.
|
4270
4406
|
// @TODO: This should be fixed in the future.
|
4271
|
-
updatedAt: new Date(Date.now() - 1e3).toISOString()
|
4407
|
+
updatedAt: new Date(Date.now() - 1e3).toISOString(),
|
4408
|
+
dateOfEvent: configuration.dateOfEvent,
|
4409
|
+
updatedAtLocation: getUUID()
|
4272
4410
|
};
|
4273
4411
|
}
|
4274
4412
|
function generateEventDraftDocument(eventId, actionType = ActionType.DECLARE, declaration = {}) {
|
@@ -4297,9 +4435,11 @@ var eventQueryDataGenerator = (overrides = {}) => ({
|
|
4297
4435
|
createdAt: overrides.createdAt ?? (/* @__PURE__ */ new Date()).toISOString(),
|
4298
4436
|
createdBy: overrides.createdBy ?? getUUID(),
|
4299
4437
|
createdAtLocation: overrides.createdAtLocation ?? getUUID(),
|
4300
|
-
|
4438
|
+
updatedAtLocation: overrides.updatedAtLocation ?? getUUID(),
|
4439
|
+
updatedAt: overrides.updatedAt ?? (/* @__PURE__ */ new Date()).toISOString(),
|
4301
4440
|
assignedTo: overrides.assignedTo ?? null,
|
4302
4441
|
updatedBy: overrides.updatedBy ?? getUUID(),
|
4442
|
+
updatedByUserRole: overrides.updatedByUserRole ?? "FIELD_AGENT",
|
4303
4443
|
declaration: overrides.declaration ?? {
|
4304
4444
|
"recommender.none": true,
|
4305
4445
|
"applicant.firstname": "Danny",
|
@@ -4345,3 +4485,213 @@ function isFieldConfigDefaultValue(value) {
|
|
4345
4485
|
}
|
4346
4486
|
return false;
|
4347
4487
|
}
|
4488
|
+
|
4489
|
+
// ../commons/src/events/scopes.ts
|
4490
|
+
var import_lodash3 = require("lodash");
|
4491
|
+
|
4492
|
+
// ../commons/src/scopes.ts
|
4493
|
+
var SCOPES = {
|
4494
|
+
// TODO v1.8 legacy scopes
|
4495
|
+
NATLSYSADMIN: "natlsysadmin",
|
4496
|
+
BYPASSRATELIMIT: "bypassratelimit",
|
4497
|
+
DECLARE: "declare",
|
4498
|
+
REGISTER: "register",
|
4499
|
+
VALIDATE: "validate",
|
4500
|
+
DEMO: "demo",
|
4501
|
+
CERTIFY: "certify",
|
4502
|
+
PERFORMANCE: "performance",
|
4503
|
+
SYSADMIN: "sysadmin",
|
4504
|
+
TEAMS: "teams",
|
4505
|
+
CONFIG: "config",
|
4506
|
+
// systems / integrations
|
4507
|
+
WEBHOOK: "webhook",
|
4508
|
+
NATIONALID: "nationalId",
|
4509
|
+
NOTIFICATION_API: "notification-api",
|
4510
|
+
RECORDSEARCH: "recordsearch",
|
4511
|
+
/**
|
4512
|
+
* @TODO This is a temporary scope to be used for V2 Events custom events declaration
|
4513
|
+
*/
|
4514
|
+
RECORD_DECLARE: "record.declare-birth",
|
4515
|
+
// declare
|
4516
|
+
RECORD_DECLARE_BIRTH: "record.declare-birth",
|
4517
|
+
RECORD_DECLARE_BIRTH_MY_JURISDICTION: "record.declare-birth:my-jurisdiction",
|
4518
|
+
RECORD_DECLARE_DEATH: "record.declare-death",
|
4519
|
+
RECORD_DECLARE_DEATH_MY_JURISDICTION: "record.declare-death:my-jurisdiction",
|
4520
|
+
RECORD_DECLARE_MARRIAGE: "record.declare-marriage",
|
4521
|
+
RECORD_DECLARE_MARRIAGE_MY_JURISDICTION: "record.declare-marriage:my-jurisdiction",
|
4522
|
+
RECORD_SUBMIT_INCOMPLETE: "record.declaration-submit-incomplete",
|
4523
|
+
RECORD_SUBMIT_FOR_REVIEW: "record.declaration-submit-for-review",
|
4524
|
+
RECORD_UNASSIGN_OTHERS: "record.unassign-others",
|
4525
|
+
// validate
|
4526
|
+
RECORD_SUBMIT_FOR_APPROVAL: "record.declaration-submit-for-approval",
|
4527
|
+
RECORD_SUBMIT_FOR_UPDATES: "record.declaration-submit-for-updates",
|
4528
|
+
RECORD_DECLARATION_EDIT: "record.declaration-edit",
|
4529
|
+
RECORD_REVIEW_DUPLICATES: "record.review-duplicates",
|
4530
|
+
RECORD_DECLARATION_ARCHIVE: "record.declaration-archive",
|
4531
|
+
RECORD_DECLARATION_REINSTATE: "record.declaration-reinstate",
|
4532
|
+
// register
|
4533
|
+
RECORD_REGISTER: "record.register",
|
4534
|
+
// certify
|
4535
|
+
RECORD_EXPORT_RECORDS: "record.export-records",
|
4536
|
+
RECORD_DECLARATION_PRINT: "record.declaration-print",
|
4537
|
+
RECORD_PRINT_RECORDS_SUPPORTING_DOCUMENTS: "record.declaration-print-supporting-documents",
|
4538
|
+
RECORD_REGISTRATION_PRINT: "record.registration-print",
|
4539
|
+
// v1.8
|
4540
|
+
/**
|
4541
|
+
* This scope is used to **print and **issue certified copies of a record
|
4542
|
+
* after it has been registered. Previously Registrars had this permission.
|
4543
|
+
*/
|
4544
|
+
RECORD_PRINT_ISSUE_CERTIFIED_COPIES: "record.registration-print&issue-certified-copies",
|
4545
|
+
RECORD_PRINT_CERTIFIED_COPIES: "record.registration-print-certified-copies",
|
4546
|
+
// v1.8
|
4547
|
+
RECORD_BULK_PRINT_CERTIFIED_COPIES: "record.registration-bulk-print-certified-copies",
|
4548
|
+
// v1.8
|
4549
|
+
RECORD_REGISTRATION_VERIFY_CERTIFIED_COPIES: "record.registration-verify-certified-copies",
|
4550
|
+
// v1.8
|
4551
|
+
// correct
|
4552
|
+
RECORD_REGISTRATION_REQUEST_CORRECTION: "record.registration-request-correction",
|
4553
|
+
RECORD_REGISTRATION_CORRECT: "record.registration-correct",
|
4554
|
+
RECORD_REGISTRATION_REQUEST_REVOCATION: "record.registration-request-revocation",
|
4555
|
+
// v1.8
|
4556
|
+
RECORD_REGISTRATION_REVOKE: "record.registration-revoke",
|
4557
|
+
// v1.8
|
4558
|
+
RECORD_REGISTRATION_REQUEST_REINSTATEMENT: "record.registration-request-reinstatement",
|
4559
|
+
// v1.8
|
4560
|
+
RECORD_REGISTRATION_REINSTATE: "record.registration-reinstate",
|
4561
|
+
// v1.8
|
4562
|
+
RECORD_CONFIRM_REGISTRATION: "record.confirm-registration",
|
4563
|
+
RECORD_REJECT_REGISTRATION: "record.reject-registration",
|
4564
|
+
// search
|
4565
|
+
SEARCH_BIRTH_MY_JURISDICTION: "search.birth:my-jurisdiction",
|
4566
|
+
SEARCH_BIRTH: "search.birth",
|
4567
|
+
SEARCH_DEATH_MY_JURISDICTION: "search.death:my-jurisdiction",
|
4568
|
+
SEARCH_DEATH: "search.death",
|
4569
|
+
SEARCH_MARRIAGE_MY_JURISDICTION: "search.marriage:my-jurisdiction",
|
4570
|
+
SEARCH_MARRIAGE: "search.marriage",
|
4571
|
+
// audit v1.8
|
4572
|
+
RECORD_READ: "record.read",
|
4573
|
+
RECORD_READ_AUDIT: "record.read-audit",
|
4574
|
+
RECORD_READ_COMMENTS: "record.read-comments",
|
4575
|
+
RECORD_CREATE_COMMENTS: "record.create-comments",
|
4576
|
+
// profile
|
4577
|
+
PROFILE_UPDATE: "profile.update",
|
4578
|
+
//v1.8
|
4579
|
+
PROFILE_ELECTRONIC_SIGNATURE: "profile.electronic-signature",
|
4580
|
+
// performance
|
4581
|
+
PERFORMANCE_READ: "performance.read",
|
4582
|
+
PERFORMANCE_READ_DASHBOARDS: "performance.read-dashboards",
|
4583
|
+
PERFORMANCE_EXPORT_VITAL_STATISTICS: "performance.vital-statistics-export",
|
4584
|
+
// organisation
|
4585
|
+
ORGANISATION_READ_LOCATIONS: "organisation.read-locations:all",
|
4586
|
+
ORGANISATION_READ_LOCATIONS_MY_OFFICE: "organisation.read-locations:my-office",
|
4587
|
+
ORGANISATION_READ_LOCATIONS_MY_JURISDICTION: "organisation.read-locations:my-jurisdiction",
|
4588
|
+
// user
|
4589
|
+
USER_READ: "user.read:all",
|
4590
|
+
USER_READ_MY_OFFICE: "user.read:my-office",
|
4591
|
+
USER_READ_MY_JURISDICTION: "user.read:my-jurisdiction",
|
4592
|
+
USER_READ_ONLY_MY_AUDIT: "user.read:only-my-audit",
|
4593
|
+
//v1.8
|
4594
|
+
USER_CREATE: "user.create:all",
|
4595
|
+
USER_CREATE_MY_JURISDICTION: "user.create:my-jurisdiction",
|
4596
|
+
USER_UPDATE: "user.update:all",
|
4597
|
+
USER_UPDATE_MY_JURISDICTION: "user.update:my-jurisdiction",
|
4598
|
+
// config
|
4599
|
+
CONFIG_UPDATE_ALL: "config.update:all",
|
4600
|
+
// data seeding
|
4601
|
+
USER_DATA_SEEDING: "user.data-seeding"
|
4602
|
+
};
|
4603
|
+
var scopes = Object.values(SCOPES);
|
4604
|
+
|
4605
|
+
// ../commons/src/events/scopes.ts
|
4606
|
+
function hasAnyOfScopes(a, b) {
|
4607
|
+
return (0, import_lodash3.intersection)(a, b).length > 0;
|
4608
|
+
}
|
4609
|
+
var CONFIG_GET_ALLOWED_SCOPES = [
|
4610
|
+
SCOPES.RECORD_DECLARE,
|
4611
|
+
SCOPES.RECORD_READ,
|
4612
|
+
SCOPES.RECORD_SUBMIT_INCOMPLETE,
|
4613
|
+
SCOPES.RECORD_SUBMIT_FOR_REVIEW,
|
4614
|
+
SCOPES.RECORD_REGISTER,
|
4615
|
+
SCOPES.RECORD_EXPORT_RECORDS,
|
4616
|
+
SCOPES.CONFIG,
|
4617
|
+
SCOPES.CONFIG_UPDATE_ALL
|
4618
|
+
];
|
4619
|
+
var CONFIG_SEARCH_ALLOWED_SCOPES = [
|
4620
|
+
SCOPES.SEARCH_BIRTH,
|
4621
|
+
SCOPES.SEARCH_DEATH,
|
4622
|
+
SCOPES.SEARCH_MARRIAGE,
|
4623
|
+
SCOPES.SEARCH_BIRTH_MY_JURISDICTION,
|
4624
|
+
SCOPES.SEARCH_DEATH_MY_JURISDICTION,
|
4625
|
+
SCOPES.SEARCH_MARRIAGE_MY_JURISDICTION
|
4626
|
+
];
|
4627
|
+
var ACTION_ALLOWED_SCOPES = {
|
4628
|
+
[ActionType.READ]: [
|
4629
|
+
SCOPES.RECORD_DECLARE,
|
4630
|
+
SCOPES.RECORD_READ,
|
4631
|
+
SCOPES.RECORD_SUBMIT_INCOMPLETE,
|
4632
|
+
SCOPES.RECORD_SUBMIT_FOR_REVIEW,
|
4633
|
+
SCOPES.RECORD_REGISTER,
|
4634
|
+
SCOPES.RECORD_EXPORT_RECORDS
|
4635
|
+
],
|
4636
|
+
[ActionType.CREATE]: [
|
4637
|
+
SCOPES.RECORD_DECLARE,
|
4638
|
+
SCOPES.RECORD_SUBMIT_INCOMPLETE,
|
4639
|
+
SCOPES.RECORD_SUBMIT_FOR_REVIEW
|
4640
|
+
],
|
4641
|
+
[ActionType.NOTIFY]: [SCOPES.RECORD_SUBMIT_INCOMPLETE],
|
4642
|
+
[ActionType.DECLARE]: [
|
4643
|
+
SCOPES.RECORD_DECLARE,
|
4644
|
+
SCOPES.RECORD_SUBMIT_FOR_APPROVAL,
|
4645
|
+
SCOPES.RECORD_REGISTER
|
4646
|
+
],
|
4647
|
+
[ActionType.DELETE]: [SCOPES.RECORD_DECLARE],
|
4648
|
+
[ActionType.VALIDATE]: [
|
4649
|
+
SCOPES.RECORD_SUBMIT_FOR_APPROVAL,
|
4650
|
+
SCOPES.RECORD_REGISTER
|
4651
|
+
],
|
4652
|
+
[ActionType.REGISTER]: [SCOPES.RECORD_REGISTER],
|
4653
|
+
[ActionType.PRINT_CERTIFICATE]: [SCOPES.RECORD_PRINT_ISSUE_CERTIFIED_COPIES],
|
4654
|
+
[ActionType.REQUEST_CORRECTION]: [
|
4655
|
+
SCOPES.RECORD_REGISTRATION_REQUEST_CORRECTION
|
4656
|
+
],
|
4657
|
+
[ActionType.REJECT_CORRECTION]: [SCOPES.RECORD_REGISTRATION_CORRECT],
|
4658
|
+
[ActionType.APPROVE_CORRECTION]: [SCOPES.RECORD_REGISTRATION_CORRECT],
|
4659
|
+
[ActionType.MARKED_AS_DUPLICATE]: [SCOPES.RECORD_DECLARATION_ARCHIVE],
|
4660
|
+
[ActionType.ARCHIVE]: [SCOPES.RECORD_DECLARATION_ARCHIVE],
|
4661
|
+
[ActionType.REJECT]: [SCOPES.RECORD_SUBMIT_FOR_UPDATES],
|
4662
|
+
[ActionType.ASSIGN]: null,
|
4663
|
+
[ActionType.UNASSIGN]: null,
|
4664
|
+
[ActionType.DETECT_DUPLICATE]: []
|
4665
|
+
};
|
4666
|
+
function filterUnallowedActions(actions, userScopes) {
|
4667
|
+
const allowedActions = actions.filter((action) => {
|
4668
|
+
const requiredScopes = ACTION_ALLOWED_SCOPES[action];
|
4669
|
+
if (requiredScopes === null) {
|
4670
|
+
return true;
|
4671
|
+
}
|
4672
|
+
return hasAnyOfScopes(userScopes, requiredScopes);
|
4673
|
+
});
|
4674
|
+
const hasOtherAllowedActions = allowedActions.some(
|
4675
|
+
(action) => action !== ActionType.READ && action !== ActionType.ASSIGN && action !== ActionType.UNASSIGN
|
4676
|
+
);
|
4677
|
+
if (hasOtherAllowedActions) {
|
4678
|
+
return allowedActions;
|
4679
|
+
}
|
4680
|
+
return [ActionType.READ];
|
4681
|
+
}
|
4682
|
+
|
4683
|
+
// ../commons/src/event-config/event-configuration.ts
|
4684
|
+
function createEventFieldConfig(fieldId, options) {
|
4685
|
+
return {
|
4686
|
+
fieldId,
|
4687
|
+
options,
|
4688
|
+
config: { type: "EXACT" },
|
4689
|
+
fieldType: "event"
|
4690
|
+
};
|
4691
|
+
}
|
4692
|
+
|
4693
|
+
// ../commons/src/events/event.ts
|
4694
|
+
function eventFn(fieldId, options) {
|
4695
|
+
return createEventFieldConfig(fieldId, options);
|
4696
|
+
}
|
4697
|
+
var event = Object.assign(eventFn, createEventConditionals());
|