@opencrvs/toolkit 1.9.2-rc.ebb7011 → 1.9.2-rc.f0b9560

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/commons/api/router.d.ts +537 -605
  2. package/dist/commons/events/ActionConfig.d.ts +52 -336
  3. package/dist/commons/events/ActionDocument.d.ts +163 -130
  4. package/dist/commons/events/ActionInput.d.ts +93 -87
  5. package/dist/commons/events/ActionType.d.ts +7 -7
  6. package/dist/commons/events/AdvancedSearchConfig.d.ts +8 -7
  7. package/dist/commons/events/CompositeFieldValue.d.ts +0 -2
  8. package/dist/commons/events/CountryConfigQueryInput.d.ts +12 -0
  9. package/dist/commons/events/Draft.d.ts +6 -6
  10. package/dist/commons/events/EventConfig.d.ts +44 -191
  11. package/dist/commons/events/EventDocument.d.ts +59 -56
  12. package/dist/commons/events/EventIndex.d.ts +7 -1
  13. package/dist/commons/events/EventMetadata.d.ts +4 -1
  14. package/dist/commons/events/FieldConfig.d.ts +14 -22
  15. package/dist/commons/events/FieldType.d.ts +3 -3
  16. package/dist/commons/events/FieldTypeMapping.d.ts +8 -8
  17. package/dist/commons/events/FieldValue.d.ts +6 -5
  18. package/dist/commons/events/Flag.d.ts +21 -0
  19. package/dist/commons/events/FormConfig.d.ts +18 -42
  20. package/dist/commons/events/PageConfig.d.ts +12 -28
  21. package/dist/commons/events/WorkqueueColumnConfig.d.ts +5 -2
  22. package/dist/commons/events/WorkqueueConfig.d.ts +26 -11
  23. package/dist/commons/events/defineConfig.d.ts +101 -200
  24. package/dist/commons/events/scopes.d.ts +4 -4
  25. package/dist/commons/events/state/index.d.ts +7 -1
  26. package/dist/commons/events/state/utils.d.ts +49 -46
  27. package/dist/commons/events/test.utils.d.ts +14 -11
  28. package/dist/commons/events/utils.d.ts +441 -495
  29. package/dist/events/index.js +206 -152
  30. package/dist/notification/index.js +82 -112
  31. package/dist/scopes/index.d.ts +46 -7
  32. package/dist/scopes/index.js +11 -1
  33. package/package.json +1 -1
@@ -77,8 +77,8 @@ var ActionType = {
77
77
  NOTIFY: "NOTIFY",
78
78
  // Declaration actions
79
79
  DECLARE: "DECLARE",
80
- VALIDATE: "VALIDATE",
81
80
  REGISTER: "REGISTER",
81
+ EDIT: "EDIT",
82
82
  // Declaration system actions. Non-configurable.
83
83
  DUPLICATE_DETECTED: "DUPLICATE_DETECTED",
84
84
  REJECT: "REJECT",
@@ -101,7 +101,7 @@ var ActionType = {
101
101
  var ConfirmableActions = [
102
102
  ActionType.NOTIFY,
103
103
  ActionType.DECLARE,
104
- ActionType.VALIDATE,
104
+ ActionType.EDIT,
105
105
  ActionType.REGISTER,
106
106
  ActionType.REJECT,
107
107
  ActionType.ARCHIVE,
@@ -116,7 +116,7 @@ var ActionTypes = z2.enum([
116
116
  "CREATE",
117
117
  "NOTIFY",
118
118
  "DECLARE",
119
- "VALIDATE",
119
+ "EDIT",
120
120
  "REGISTER",
121
121
  "DUPLICATE_DETECTED",
122
122
  "REJECT",
@@ -137,7 +137,7 @@ var ClientSpecificAction = {
137
137
  };
138
138
  var declarationActionValues = [
139
139
  ActionTypes.enum.DECLARE,
140
- ActionTypes.enum.VALIDATE,
140
+ ActionTypes.enum.EDIT,
141
141
  ActionTypes.enum.REGISTER,
142
142
  ActionTypes.enum.NOTIFY,
143
143
  ActionTypes.enum.DUPLICATE_DETECTED
@@ -267,7 +267,7 @@ var FieldType = {
267
267
  QR_READER: "QR_READER",
268
268
  ID_READER: "ID_READER",
269
269
  LOADER: "LOADER",
270
- CUSTOM: "CUSTOM"
270
+ ALPHA_HIDDEN: "ALPHA_HIDDEN"
271
271
  };
272
272
  var FileFieldType = z4.enum([
273
273
  FieldType.FILE,
@@ -292,7 +292,8 @@ var FieldTypesToHideInReview = [
292
292
  FieldType.LOADER,
293
293
  FieldType.HTTP,
294
294
  FieldType.QUERY_PARAM_READER,
295
- FieldType.DATA
295
+ FieldType.DATA,
296
+ FieldType.ALPHA_HIDDEN
296
297
  ];
297
298
 
298
299
  // ../commons/src/events/FieldValue.ts
@@ -394,10 +395,10 @@ var ReadDataValue = z6.object({
394
395
  });
395
396
  var QrReaderFieldValue = ReadDataValue;
396
397
  var IdReaderFieldValue = ReadDataValue;
397
- var CustomFieldValue = z6.unknown();
398
398
 
399
399
  // ../commons/src/events/FieldValue.ts
400
400
  var TextValue = z7.string();
401
+ var HiddenFieldValue = z7.string();
401
402
  var NonEmptyTextValue = TextValue.min(1);
402
403
  var DateValue = z7.iso.date().describe("Date in the format YYYY-MM-DD");
403
404
  var AgeValue = z7.object({
@@ -449,8 +450,7 @@ var FieldValuesWithoutDataField = z7.union([
449
450
  VerificationStatusValue,
450
451
  QueryParamReaderFieldValue,
451
452
  QrReaderFieldValue,
452
- IdReaderFieldValue,
453
- CustomFieldValue
453
+ IdReaderFieldValue
454
454
  ]);
455
455
  var DataFieldValue = z7.object({
456
456
  data: z7.record(z7.string(), FieldValuesWithoutDataField)
@@ -525,7 +525,7 @@ var FieldUpdateValue = safeUnion([
525
525
  NameFieldUpdateValue.describe("NameFieldUpdateValue"),
526
526
  HttpFieldUpdateValue.describe("HttpFieldUpdateValue"),
527
527
  QueryParamReaderFieldUpdateValue.describe("QueryParamReaderFieldUpdateValue"),
528
- CustomFieldValue.describe("CustomFieldValue")
528
+ HiddenFieldValue.describe("HiddenFieldValue")
529
529
  ]);
530
530
 
531
531
  // ../commons/src/uuid.ts
@@ -786,7 +786,7 @@ var RecordScopeType = z10.enum([
786
786
  "record.read",
787
787
  "record.declare",
788
788
  "record.notify",
789
- "record.declared.validate",
789
+ "record.declared.edit",
790
790
  "record.declared.reject",
791
791
  "record.declared.archive",
792
792
  "record.declared.review-duplicates",
@@ -1032,11 +1032,6 @@ var DeclareAction = ActionBase.extend(
1032
1032
  type: z12.literal(ActionType.DECLARE)
1033
1033
  }).shape
1034
1034
  );
1035
- var ValidateAction = ActionBase.extend(
1036
- z12.object({
1037
- type: z12.literal(ActionType.VALIDATE)
1038
- }).shape
1039
- );
1040
1035
  var ReasonContent = z12.object({
1041
1036
  reason: z12.string().min(1, { error: "Message cannot be empty" }).describe(
1042
1037
  "Message describing the reason for rejecting or archiving the event."
@@ -1089,6 +1084,14 @@ var NotifiedAction = ActionBase.extend(
1089
1084
  type: z12.literal(ActionType.NOTIFY)
1090
1085
  }).shape
1091
1086
  );
1087
+ var EditAction = ActionBase.extend(
1088
+ z12.object({
1089
+ type: z12.literal(ActionType.EDIT),
1090
+ content: z12.object({
1091
+ comment: z12.string().describe("Comment for the edit action.").optional()
1092
+ })
1093
+ }).shape
1094
+ );
1092
1095
  var PrintContent = z12.object({
1093
1096
  templateId: z12.string().optional()
1094
1097
  });
@@ -1131,7 +1134,6 @@ var CustomAction = ActionBase.merge(
1131
1134
  );
1132
1135
  var ActionDocument = z12.discriminatedUnion("type", [
1133
1136
  CreatedAction.meta({ id: "CreatedAction" }),
1134
- ValidateAction.meta({ id: "ValidateAction" }),
1135
1137
  RejectAction.meta({ id: "RejectAction" }),
1136
1138
  DuplicateDetectedAction.meta({ id: "DuplicateDetectedAction" }),
1137
1139
  MarkNotDuplicateAction.meta({ id: "MarkNotDuplicateAction" }),
@@ -1147,6 +1149,7 @@ var ActionDocument = z12.discriminatedUnion("type", [
1147
1149
  UnassignedAction.meta({ id: "UnassignedAction" }),
1148
1150
  PrintCertificateAction.meta({ id: "PrintCertificateAction" }),
1149
1151
  ReadAction.meta({ id: "ReadAction" }),
1152
+ EditAction.meta({ id: "EditAction" }),
1150
1153
  CustomAction.meta({ id: "CustomAction" })
1151
1154
  ]).meta({
1152
1155
  id: "ActionDocument"
@@ -1169,7 +1172,14 @@ var InherentFlags = {
1169
1172
  INCOMPLETE: "incomplete",
1170
1173
  REJECTED: "rejected",
1171
1174
  CORRECTION_REQUESTED: "correction-requested",
1172
- POTENTIAL_DUPLICATE: "potential-duplicate"
1175
+ POTENTIAL_DUPLICATE: "potential-duplicate",
1176
+ /**
1177
+ * This flag is set by the Edit-action and removed after the declaration or registration.
1178
+ * A record should never stay with the EDIT_IN_PROGRESS flag, since it should always be declared or registered right after.
1179
+ *
1180
+ * We only use this flag to determine that a NOTIFY, DECLARE or REGISTER action is allowed next.
1181
+ */
1182
+ EDIT_IN_PROGRESS: "edit-in-progress"
1173
1183
  };
1174
1184
  var ActionFlag = z13.string().regex(
1175
1185
  new RegExp(
@@ -1240,6 +1250,7 @@ var EventMetadata = z14.object({
1240
1250
  ),
1241
1251
  createdAt: z14.iso.datetime().describe("The timestamp when the event was first created and saved."),
1242
1252
  dateOfEvent: ZodDate.nullish(),
1253
+ placeOfEvent: CreatedAtLocation,
1243
1254
  createdBy: z14.string().describe("ID of the user who created the event."),
1244
1255
  createdByUserType: z14.enum(["user", "system"]).nullish().describe("Whether the user is a normal user or a system."),
1245
1256
  updatedByUserRole: z14.string().describe("Role of the user who last changed the status."),
@@ -1269,6 +1280,7 @@ var EventMetadataKeysArray = [
1269
1280
  "status",
1270
1281
  "createdAt",
1271
1282
  "dateOfEvent",
1283
+ "placeOfEvent",
1272
1284
  "createdBy",
1273
1285
  "createdByUserType",
1274
1286
  "updatedByUserRole",
@@ -1954,12 +1966,6 @@ var IdReaderField = BaseField.extend({
1954
1966
  z16.union([QrReaderField, LinkButtonField]).describe("Methods for reading an ID")
1955
1967
  )
1956
1968
  });
1957
- var CustomField = BaseField.extend({
1958
- type: z16.literal(FieldType.CUSTOM),
1959
- defaultValue: CustomFieldValue.optional(),
1960
- src: z16.string().describe("Module source path for the custom field component"),
1961
- configuration: z16.unknown().optional()
1962
- });
1963
1969
  var LoaderField = BaseField.extend({
1964
1970
  type: z16.literal(FieldType.LOADER),
1965
1971
  configuration: z16.object({
@@ -1968,6 +1974,13 @@ var LoaderField = BaseField.extend({
1968
1974
  }).describe(
1969
1975
  "A non-interactive field that indicates an in progress operation in form"
1970
1976
  );
1977
+ var HiddenField = BaseField.extend({
1978
+ type: z16.literal(FieldType.ALPHA_HIDDEN),
1979
+ required: z16.boolean().default(false).optional(),
1980
+ defaultValue: TextValue.optional()
1981
+ }).describe(
1982
+ "A non-interactive, hidden field that only hold a value in the form"
1983
+ );
1971
1984
  var FieldConfig = z16.discriminatedUnion("type", [
1972
1985
  Address,
1973
1986
  TextField,
@@ -2008,7 +2021,7 @@ var FieldConfig = z16.discriminatedUnion("type", [
2008
2021
  QueryParamReaderField,
2009
2022
  LoaderField,
2010
2023
  SearchField,
2011
- CustomField
2024
+ HiddenField
2012
2025
  ]).meta({
2013
2026
  description: "Form field configuration",
2014
2027
  id: "FieldConfig"
@@ -2247,6 +2260,7 @@ var AvailableIcons = z20.enum([
2247
2260
  "Users",
2248
2261
  "WarningCircle",
2249
2262
  "X",
2263
+ "ChatText",
2250
2264
  "CircleWavyCheck",
2251
2265
  "CircleWavyQuestion",
2252
2266
  "ArchiveBox",
@@ -2312,11 +2326,6 @@ var RejectConfig = ActionConfigBase.extend(
2312
2326
  type: z21.literal(ActionType.REJECT)
2313
2327
  }).shape
2314
2328
  );
2315
- var ValidateConfig = DeclarationActionBase.extend(
2316
- z21.object({
2317
- type: z21.literal(ActionType.VALIDATE)
2318
- }).shape
2319
- );
2320
2329
  var RegisterConfig = DeclarationActionBase.extend(
2321
2330
  z21.object({
2322
2331
  type: z21.literal(ActionType.REGISTER)
@@ -2352,7 +2361,6 @@ var ActionConfig = z21.discriminatedUnion("type", [
2352
2361
  ReadActionConfig.meta({ id: "ReadActionConfig" }),
2353
2362
  DeclareConfig.meta({ id: "DeclareActionConfig" }),
2354
2363
  RejectConfig.meta({ id: "RejectActionConfig" }),
2355
- ValidateConfig.meta({ id: "ValidateActionConfig" }),
2356
2364
  RegisterConfig.meta({ id: "RegisterActionConfig" }),
2357
2365
  PrintCertificateActionConfig.meta({
2358
2366
  id: "PrintCertificateActionConfig"
@@ -2367,7 +2375,6 @@ var actionConfigTypes = new Set(
2367
2375
  );
2368
2376
  var DeclarationActionConfig = z21.discriminatedUnion("type", [
2369
2377
  DeclareConfig,
2370
- ValidateConfig,
2371
2378
  RegisterConfig
2372
2379
  ]);
2373
2380
 
@@ -2688,6 +2695,9 @@ var EventConfig = z29.object({
2688
2695
  dateOfEvent: FieldReference.optional().describe(
2689
2696
  "Reference to the field capturing the date of the event (e.g. date of birth). Defaults to the event creation date if unspecified."
2690
2697
  ),
2698
+ placeOfEvent: FieldReference.optional().describe(
2699
+ "Reference to the field capturing the place of the event (e.g. place of birth). Defaults to the meta.createdAtLocation if unspecified."
2700
+ ),
2691
2701
  title: TranslationConfig.describe(
2692
2702
  'Title template for the singular event, supporting variables (e.g. "{applicant.name.firstname} {applicant.name.surname}").'
2693
2703
  ),
@@ -2762,10 +2772,23 @@ var EventConfig = z29.object({
2762
2772
  });
2763
2773
  }
2764
2774
  }
2775
+ if (event2.placeOfEvent) {
2776
+ const eventPlaceFieldId = getDeclarationFields(event2).find(
2777
+ ({ id }) => id === event2.placeOfEvent?.$$field
2778
+ );
2779
+ if (!eventPlaceFieldId) {
2780
+ ctx.addIssue({
2781
+ code: "custom",
2782
+ message: `Place of event field id must match a field id in the event.declaration fields.
2783
+ Invalid place of event field ID for event ${event2.id}: ${event2.placeOfEvent.$$field}`,
2784
+ path: ["placeOfEvent"]
2785
+ });
2786
+ }
2787
+ }
2765
2788
  const isInherentFlag = (value) => Object.values(InherentFlags).includes(value);
2766
- const configuredFlagIds = event2.flags.map((flag2) => flag2.id);
2789
+ const configuredFlagIds = event2.flags.map((flag) => flag.id);
2767
2790
  const actionFlagIds = event2.actions.flatMap(
2768
- (action) => action.flags.map((flag2) => flag2.id)
2791
+ (action) => action.flags.map((flag) => flag.id)
2769
2792
  );
2770
2793
  for (const actionFlagId of actionFlagIds) {
2771
2794
  const isConfigured = configuredFlagIds.includes(actionFlagId);
@@ -2968,21 +2991,6 @@ function defineComparison(field3, value, keyword) {
2968
2991
  required: [field3.$$field]
2969
2992
  });
2970
2993
  }
2971
- function flag(flagvalue) {
2972
- return defineConditional({
2973
- type: "object",
2974
- properties: {
2975
- $flags: {
2976
- type: "array",
2977
- contains: {
2978
- type: "string",
2979
- const: flagvalue
2980
- }
2981
- }
2982
- },
2983
- required: ["$flags"]
2984
- });
2985
- }
2986
2994
  function createFieldConditionals(fieldId) {
2987
2995
  const getDayRange = (field3, days, clause) => ({
2988
2996
  type: "object",
@@ -3674,11 +3682,6 @@ var RegisterActionInput = BaseActionInput.extend(
3674
3682
  registrationNumber: z33.string().optional()
3675
3683
  }).shape
3676
3684
  );
3677
- var ValidateActionInput = BaseActionInput.extend(
3678
- z33.object({
3679
- type: z33.literal(ActionType.VALIDATE).default(ActionType.VALIDATE)
3680
- }).shape
3681
- );
3682
3685
  var NotifyActionInput = BaseActionInput.extend(
3683
3686
  z33.object({
3684
3687
  type: z33.literal(ActionType.NOTIFY).default(ActionType.NOTIFY)
@@ -3697,6 +3700,14 @@ var DeclareActionInput = BaseActionInput.extend(
3697
3700
  type: z33.literal(ActionType.DECLARE).default(ActionType.DECLARE)
3698
3701
  }).shape
3699
3702
  );
3703
+ var EditActionInput = BaseActionInput.extend(
3704
+ z33.object({
3705
+ type: z33.literal(ActionType.EDIT).default(ActionType.EDIT),
3706
+ content: z33.object({
3707
+ comment: z33.string().describe("Comment for the edit action.").optional()
3708
+ })
3709
+ }).shape
3710
+ );
3700
3711
  var PrintCertificateActionInput = BaseActionInput.extend(
3701
3712
  z33.object({
3702
3713
  type: z33.literal(ActionType.PRINT_CERTIFICATE).default(ActionType.PRINT_CERTIFICATE),
@@ -3780,7 +3791,6 @@ var CustomActionInput = BaseActionInput.extend(
3780
3791
  );
3781
3792
  var ActionInput = z33.discriminatedUnion("type", [
3782
3793
  CreateActionInput.meta({ id: "CreateActionInput" }),
3783
- ValidateActionInput.meta({ id: "ValidateActionInput" }),
3784
3794
  RegisterActionInput.meta({ id: "RegisterActionInput" }),
3785
3795
  NotifyActionInput.meta({ id: "NotifyActionInput" }),
3786
3796
  DeclareActionInput.meta({ id: "DeclareActionInput" }),
@@ -3808,7 +3818,8 @@ var ActionInput = z33.discriminatedUnion("type", [
3808
3818
  id: "ApproveCorrectionActionInput"
3809
3819
  }),
3810
3820
  ReadActionInput.meta({ id: "ReadActionInput" }),
3811
- CustomActionInput.meta({ id: "CustomActionInput" })
3821
+ CustomActionInput.meta({ id: "CustomActionInput" }),
3822
+ EditActionInput.meta({ id: "EditActionInput" })
3812
3823
  ]).meta({
3813
3824
  id: "ActionInput"
3814
3825
  });
@@ -3866,7 +3877,6 @@ var updateActions = ActionTypes.extract([
3866
3877
  ActionType.CREATE,
3867
3878
  ActionType.NOTIFY,
3868
3879
  ActionType.DECLARE,
3869
- ActionType.VALIDATE,
3870
3880
  ActionType.REGISTER,
3871
3881
  ActionType.REJECT,
3872
3882
  ActionType.ARCHIVE,
@@ -5128,17 +5138,6 @@ var tennisClubMembershipEvent = defineConfig({
5128
5138
  }
5129
5139
  ]
5130
5140
  },
5131
- flags: [
5132
- {
5133
- id: "validated",
5134
- label: {
5135
- id: "event.tennis-club-membership.flag.validated",
5136
- defaultMessage: "Validated",
5137
- description: "Flag label for validated"
5138
- },
5139
- requiresAction: true
5140
- }
5141
- ],
5142
5141
  actions: [
5143
5142
  {
5144
5143
  type: ActionType.READ,
@@ -5158,26 +5157,13 @@ var tennisClubMembershipEvent = defineConfig({
5158
5157
  },
5159
5158
  review: TENNIS_CLUB_DECLARATION_REVIEW
5160
5159
  },
5161
- {
5162
- type: ActionType.VALIDATE,
5163
- label: {
5164
- defaultMessage: "Validate",
5165
- description: "This is shown as the action name anywhere the user can trigger the action from",
5166
- id: "event.tennis-club-membership.action.validate.label"
5167
- },
5168
- flags: [{ id: "validated", operation: "add" }],
5169
- conditionals: [
5170
- { type: ConditionalType.SHOW, conditional: not(flag("validated")) }
5171
- ]
5172
- },
5173
5160
  {
5174
5161
  type: ActionType.REJECT,
5175
5162
  label: {
5176
5163
  defaultMessage: "Reject",
5177
5164
  description: "This is shown as the action name anywhere the user can trigger the action from",
5178
5165
  id: "event.tennis-club-membership.action.reject.label"
5179
- },
5180
- flags: [{ id: "validated", operation: "remove" }]
5166
+ }
5181
5167
  },
5182
5168
  {
5183
5169
  type: ActionType.REGISTER,
@@ -5500,14 +5486,6 @@ var footballClubMembershipEvent = defineConfig({
5500
5486
  },
5501
5487
  review: TENNIS_CLUB_DECLARATION_REVIEW
5502
5488
  },
5503
- {
5504
- type: ActionType.VALIDATE,
5505
- label: {
5506
- defaultMessage: "Validate",
5507
- description: "This is shown as the action name anywhere the user can trigger the action from",
5508
- id: "event.football-club-membership.action.validate.label"
5509
- }
5510
- },
5511
5489
  {
5512
5490
  type: ActionType.REGISTER,
5513
5491
  label: {
@@ -6032,10 +6010,6 @@ var ChildOnboardingEvent = defineConfig({
6032
6010
  label: generateTranslationConfig("Declare"),
6033
6011
  review: CHILD_ONBOARDING_DECLARATION_REVIEW
6034
6012
  },
6035
- {
6036
- type: ActionType.VALIDATE,
6037
- label: generateTranslationConfig("Validate")
6038
- },
6039
6013
  {
6040
6014
  type: ActionType.REGISTER,
6041
6015
  label: generateTranslationConfig("Register")
@@ -6062,13 +6036,9 @@ var ACTION_SCOPE_MAP = {
6062
6036
  [ActionType.READ]: ["record.read"],
6063
6037
  [ActionType.CREATE]: ["record.create"],
6064
6038
  [ActionType.NOTIFY]: ["record.notify"],
6065
- [ActionType.DECLARE]: [
6066
- "record.declare",
6067
- "record.declared.validate",
6068
- "record.register"
6069
- ],
6039
+ [ActionType.DECLARE]: ["record.declare", "record.register"],
6040
+ [ActionType.EDIT]: ["record.declared.edit"],
6070
6041
  [ActionType.DELETE]: ["record.declare"],
6071
- [ActionType.VALIDATE]: ["record.declared.validate", "record.register"],
6072
6042
  [ActionType.REGISTER]: ["record.register"],
6073
6043
  [ActionType.PRINT_CERTIFICATE]: ["record.registered.print-certified-copies"],
6074
6044
  [ActionType.REQUEST_CORRECTION]: [
@@ -6109,12 +6079,12 @@ var AVAILABLE_ACTIONS_BY_EVENT_STATUS = {
6109
6079
  ],
6110
6080
  [EventStatus.enum.DECLARED]: [
6111
6081
  ActionType.READ,
6112
- ActionType.VALIDATE,
6113
6082
  ActionType.REGISTER,
6114
6083
  ActionType.MARK_AS_DUPLICATE,
6115
6084
  ActionType.ARCHIVE,
6116
6085
  ActionType.REJECT,
6117
- ActionType.CUSTOM
6086
+ ActionType.CUSTOM,
6087
+ ActionType.EDIT
6118
6088
  ],
6119
6089
  [EventStatus.enum.REGISTERED]: [
6120
6090
  ActionType.READ,
@@ -6133,16 +6103,16 @@ var AVAILABLE_ACTIONS_BY_EVENT_STATUS = {
6133
6103
  ]
6134
6104
  };
6135
6105
  var ACTION_FILTERS = {
6136
- [ActionType.PRINT_CERTIFICATE]: (flags) => !flags.includes(InherentFlags.CORRECTION_REQUESTED) && !flags.some((flag2) => flag2.endsWith(":requested")),
6137
- [ActionType.REQUEST_CORRECTION]: (flags) => !flags.includes(InherentFlags.CORRECTION_REQUESTED) && !flags.some((flag2) => flag2.endsWith(":requested")),
6138
- [ClientSpecificAction.REVIEW_CORRECTION_REQUEST]: (flags) => flags.includes(InherentFlags.CORRECTION_REQUESTED) && !flags.some((flag2) => flag2.endsWith(":requested")),
6139
- [ActionType.APPROVE_CORRECTION]: (flags) => flags.includes(InherentFlags.CORRECTION_REQUESTED) && !flags.some((flag2) => flag2.endsWith(":requested")),
6140
- [ActionType.REJECT_CORRECTION]: (flags) => flags.includes(InherentFlags.CORRECTION_REQUESTED) && !flags.some((flag2) => flag2.endsWith(":requested")),
6141
- [ActionType.MARK_AS_DUPLICATE]: (flags) => flags.includes(InherentFlags.POTENTIAL_DUPLICATE) && !flags.some((flag2) => flag2.endsWith(":requested")),
6142
- [ActionType.VALIDATE]: (flags) => !flags.includes(InherentFlags.POTENTIAL_DUPLICATE) && !flags.some((flag2) => flag2.endsWith(":requested")),
6143
- [ActionType.REGISTER]: (flags) => !flags.includes(InherentFlags.POTENTIAL_DUPLICATE) && !flags.some((flag2) => flag2.endsWith(":requested")),
6144
- [ActionType.REJECT]: (flags) => !flags.includes(InherentFlags.REJECTED) && !flags.some((flag2) => flag2.endsWith(":requested")),
6145
- [ActionType.ARCHIVE]: (flags) => !flags.some((flag2) => flag2.endsWith(":requested"))
6106
+ [ActionType.PRINT_CERTIFICATE]: (flags) => !flags.includes(InherentFlags.CORRECTION_REQUESTED) && !flags.some((flag) => flag.endsWith(":requested")),
6107
+ [ActionType.REQUEST_CORRECTION]: (flags) => !flags.includes(InherentFlags.CORRECTION_REQUESTED) && !flags.some((flag) => flag.endsWith(":requested")),
6108
+ [ClientSpecificAction.REVIEW_CORRECTION_REQUEST]: (flags) => flags.includes(InherentFlags.CORRECTION_REQUESTED) && !flags.some((flag) => flag.endsWith(":requested")),
6109
+ [ActionType.APPROVE_CORRECTION]: (flags) => flags.includes(InherentFlags.CORRECTION_REQUESTED) && !flags.some((flag) => flag.endsWith(":requested")),
6110
+ [ActionType.REJECT_CORRECTION]: (flags) => flags.includes(InherentFlags.CORRECTION_REQUESTED) && !flags.some((flag) => flag.endsWith(":requested")),
6111
+ [ActionType.MARK_AS_DUPLICATE]: (flags) => flags.includes(InherentFlags.POTENTIAL_DUPLICATE) && !flags.some((flag) => flag.endsWith(":requested")),
6112
+ [ActionType.EDIT]: (flags) => !flags.includes(InherentFlags.POTENTIAL_DUPLICATE) && !flags.some((flag) => flag.endsWith(":requested")),
6113
+ [ActionType.REGISTER]: (flags) => !flags.includes(InherentFlags.POTENTIAL_DUPLICATE) && !flags.some((flag) => flag.endsWith(":requested")),
6114
+ [ActionType.REJECT]: (flags) => !flags.includes(InherentFlags.REJECTED) && !flags.some((flag) => flag.endsWith(":requested")),
6115
+ [ActionType.ARCHIVE]: (flags) => !flags.some((flag) => flag.endsWith(":requested"))
6146
6116
  };
6147
6117
 
6148
6118
  // ../commons/src/events/FileUtils.ts
@@ -82,7 +82,7 @@ export declare const RecordScopeType: z.ZodEnum<{
82
82
  "record.create": "record.create";
83
83
  "record.declare": "record.declare";
84
84
  "record.notify": "record.notify";
85
- "record.declared.validate": "record.declared.validate";
85
+ "record.declared.edit": "record.declared.edit";
86
86
  "record.declared.reject": "record.declared.reject";
87
87
  "record.declared.archive": "record.declared.archive";
88
88
  "record.declared.review-duplicates": "record.declared.review-duplicates";
@@ -99,7 +99,7 @@ export declare const RecordScope: z.ZodObject<{
99
99
  "record.create": "record.create";
100
100
  "record.declare": "record.declare";
101
101
  "record.notify": "record.notify";
102
- "record.declared.validate": "record.declared.validate";
102
+ "record.declared.edit": "record.declared.edit";
103
103
  "record.declared.reject": "record.declared.reject";
104
104
  "record.declared.archive": "record.declared.archive";
105
105
  "record.declared.review-duplicates": "record.declared.review-duplicates";
@@ -152,7 +152,7 @@ declare const ConfigurableRawScopes: z.ZodDiscriminatedUnion<[z.ZodObject<{
152
152
  "record.create": "record.create";
153
153
  "record.declare": "record.declare";
154
154
  "record.notify": "record.notify";
155
- "record.declared.validate": "record.declared.validate";
155
+ "record.declared.edit": "record.declared.edit";
156
156
  "record.declared.reject": "record.declared.reject";
157
157
  "record.declared.archive": "record.declared.archive";
158
158
  "record.declared.review-duplicates": "record.declared.review-duplicates";
@@ -178,7 +178,7 @@ export declare const ConfigurableActionScopes: z.ZodDiscriminatedUnion<[z.ZodObj
178
178
  "record.create": "record.create";
179
179
  "record.declare": "record.declare";
180
180
  "record.notify": "record.notify";
181
- "record.declared.validate": "record.declared.validate";
181
+ "record.declared.edit": "record.declared.edit";
182
182
  "record.declared.reject": "record.declared.reject";
183
183
  "record.declared.archive": "record.declared.archive";
184
184
  "record.declared.review-duplicates": "record.declared.review-duplicates";
@@ -196,7 +196,7 @@ export declare const ConfigurableActionScopes: z.ZodDiscriminatedUnion<[z.ZodObj
196
196
  customActionType: z.ZodArray<z.ZodString>;
197
197
  }, z.core.$strip>;
198
198
  }, z.core.$strip>], "type">;
199
- type ConfigurableRawScopes = z.infer<typeof ConfigurableRawScopes>;
199
+ export type ConfigurableRawScopes = z.infer<typeof ConfigurableRawScopes>;
200
200
  export type ConfigurableScopeType = ConfigurableRawScopes['type'];
201
201
  type FlattenedSearchScope = {
202
202
  type: 'search';
@@ -227,7 +227,7 @@ export declare function findScope<T extends ConfigurableScopeType>(scopes: strin
227
227
  }, {
228
228
  type: T;
229
229
  }> | Extract<{
230
- type: "record.unassign-others" | "record.register" | "record.read" | "record.create" | "record.declare" | "record.notify" | "record.declared.validate" | "record.declared.reject" | "record.declared.archive" | "record.declared.review-duplicates" | "record.registered.print-certified-copies" | "record.registered.request-correction" | "record.registered.correct";
230
+ type: "record.unassign-others" | "record.register" | "record.read" | "record.create" | "record.declare" | "record.notify" | "record.declared.edit" | "record.declared.reject" | "record.declared.archive" | "record.declared.review-duplicates" | "record.registered.print-certified-copies" | "record.registered.request-correction" | "record.registered.correct";
231
231
  options: {
232
232
  event: string[];
233
233
  };
@@ -244,6 +244,45 @@ export declare function findScope<T extends ConfigurableScopeType>(scopes: strin
244
244
  }> | Extract<FlattenedSearchScope, {
245
245
  type: T;
246
246
  }> | undefined;
247
+ export declare function findScopes<T extends ConfigurableScopeType>(scopes: string[], scopeType: T): (Extract<{
248
+ type: "user.create";
249
+ options: {
250
+ role: string[];
251
+ };
252
+ }, {
253
+ type: T;
254
+ }> | Extract<{
255
+ type: "user.edit";
256
+ options: {
257
+ role: string[];
258
+ };
259
+ }, {
260
+ type: T;
261
+ }> | Extract<{
262
+ type: "workqueue";
263
+ options: {
264
+ id: string[];
265
+ };
266
+ }, {
267
+ type: T;
268
+ }> | Extract<{
269
+ type: "record.unassign-others" | "record.register" | "record.read" | "record.create" | "record.declare" | "record.notify" | "record.declared.edit" | "record.declared.reject" | "record.declared.archive" | "record.declared.review-duplicates" | "record.registered.print-certified-copies" | "record.registered.request-correction" | "record.registered.correct";
270
+ options: {
271
+ event: string[];
272
+ };
273
+ }, {
274
+ type: T;
275
+ }> | Extract<{
276
+ type: "record.custom-action";
277
+ options: {
278
+ event: string[];
279
+ customActionType: string[];
280
+ };
281
+ }, {
282
+ type: T;
283
+ }> | Extract<FlattenedSearchScope, {
284
+ type: T;
285
+ }>)[];
247
286
  /**
248
287
  * Parses a configurable scope string into a ConfigurableRawScopes object.
249
288
  * @param {string} scope - The scope string to parse
@@ -274,7 +313,7 @@ export declare function parseConfigurableScope(scope: string): {
274
313
  id: string[];
275
314
  };
276
315
  } | {
277
- type: "record.unassign-others" | "record.register" | "record.read" | "record.create" | "record.declare" | "record.notify" | "record.declared.validate" | "record.declared.reject" | "record.declared.archive" | "record.declared.review-duplicates" | "record.registered.print-certified-copies" | "record.registered.request-correction" | "record.registered.correct";
316
+ type: "record.unassign-others" | "record.register" | "record.read" | "record.create" | "record.declare" | "record.notify" | "record.declared.edit" | "record.declared.reject" | "record.declared.archive" | "record.declared.review-duplicates" | "record.registered.print-certified-copies" | "record.registered.request-correction" | "record.registered.correct";
278
317
  options: {
279
318
  event: string[];
280
319
  };
@@ -38,6 +38,7 @@ __export(scopes_exports, {
38
38
  SCOPES: () => SCOPES,
39
39
  SearchScopes: () => SearchScopes,
40
40
  findScope: () => findScope,
41
+ findScopes: () => findScopes,
41
42
  getAuthorizedEventsFromScopes: () => getAuthorizedEventsFromScopes,
42
43
  parseConfigurableScope: () => parseConfigurableScope,
43
44
  parseLiteralScope: () => parseLiteralScope,
@@ -251,7 +252,7 @@ var RecordScopeType = z.enum([
251
252
  "record.read",
252
253
  "record.declare",
253
254
  "record.notify",
254
- "record.declared.validate",
255
+ "record.declared.edit",
255
256
  "record.declared.reject",
256
257
  "record.declared.archive",
257
258
  "record.declared.review-duplicates",
@@ -313,6 +314,15 @@ function findScope(scopes2, scopeType) {
313
314
  (scope) => scope?.type === scopeType
314
315
  );
315
316
  }
317
+ function findScopes(scopes2, scopeType) {
318
+ const parsedScopes = scopes2.map(parseConfigurableScope);
319
+ const searchScopes = parsedScopes.filter((scope) => scope?.type === "search");
320
+ const otherScopes = parsedScopes.filter((scope) => scope?.type !== "search");
321
+ const mergedSearchScope = flattenAndMergeScopes(searchScopes);
322
+ return [...otherScopes, mergedSearchScope].filter(
323
+ (scope) => scope?.type === scopeType
324
+ );
325
+ }
316
326
  function getScopeOptions(rawOptions) {
317
327
  return rawOptions.split(",").reduce((acc, option) => {
318
328
  const [key, value] = option.split("=");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opencrvs/toolkit",
3
- "version": "1.9.2-rc.ebb7011",
3
+ "version": "1.9.2-rc.f0b9560",
4
4
  "description": "OpenCRVS toolkit for building country configurations",
5
5
  "license": "MPL-2.0",
6
6
  "exports": {