@opencrvs/toolkit 2.0.0-rc.ff04b30 → 2.0.0-rc.ff777d6

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.
@@ -58,6 +58,12 @@ export declare const CheckboxFieldValue: z.ZodBoolean;
58
58
  export type CheckboxFieldValue = z.infer<typeof CheckboxFieldValue>;
59
59
  export declare const NumberFieldValue: z.ZodNumber;
60
60
  export type NumberFieldValue = z.infer<typeof NumberFieldValue>;
61
+ export declare const SignatureFieldValue: z.ZodObject<{
62
+ path: z.core.$ZodBranded<z.ZodString, "DocumentPath", "out">;
63
+ originalFilename: z.ZodString;
64
+ type: z.ZodString;
65
+ }, z.core.$strip>;
66
+ export type SignatureFieldValue = z.infer<typeof SignatureFieldValue>;
61
67
  export declare const ButtonFieldValue: z.ZodNumber;
62
68
  export type ButtonFieldValue = z.infer<typeof ButtonFieldValue>;
63
69
  export declare const VerificationStatusValue: z.ZodEnum<{
@@ -677,6 +677,7 @@ export declare const WorkqueueConfig: z.ZodObject<{
677
677
  }, z.core.$strip>;
678
678
  }, z.core.$strip>>>;
679
679
  icon: z.ZodEnum<{
680
+ File: "File";
680
681
  Archived: "Archived";
681
682
  Assigned: "Assigned";
682
683
  Briefcase: "Briefcase";
@@ -722,7 +723,6 @@ export declare const WorkqueueConfig: z.ZodObject<{
722
723
  Eye: "Eye";
723
724
  EyeSlash: "EyeSlash";
724
725
  Envelope: "Envelope";
725
- File: "File";
726
726
  FileSearch: "FileSearch";
727
727
  FileMinus: "FileMinus";
728
728
  FilePlus: "FilePlus";
@@ -786,6 +786,7 @@ export declare const WorkqueueConfig: z.ZodObject<{
786
786
  export declare const WorkqueueConfigWithoutQuery: z.ZodObject<{
787
787
  name: z.ZodObject<import("./TranslationConfig").MessageDescriptorZod, z.core.$strip>;
788
788
  icon: z.ZodEnum<{
789
+ File: "File";
789
790
  Archived: "Archived";
790
791
  Assigned: "Assigned";
791
792
  Briefcase: "Briefcase";
@@ -831,7 +832,6 @@ export declare const WorkqueueConfigWithoutQuery: z.ZodObject<{
831
832
  Eye: "Eye";
832
833
  EyeSlash: "EyeSlash";
833
834
  Envelope: "Envelope";
834
- File: "File";
835
835
  FileSearch: "FileSearch";
836
836
  FileMinus: "FileMinus";
837
837
  FilePlus: "FilePlus";
@@ -951,6 +951,7 @@ export declare const WorkqueueConfigInput: z.ZodObject<{
951
951
  }, z.core.$strip>;
952
952
  }, z.core.$strip>>>;
953
953
  icon: z.ZodEnum<{
954
+ File: "File";
954
955
  Archived: "Archived";
955
956
  Assigned: "Assigned";
956
957
  Briefcase: "Briefcase";
@@ -996,7 +997,6 @@ export declare const WorkqueueConfigInput: z.ZodObject<{
996
997
  Eye: "Eye";
997
998
  EyeSlash: "EyeSlash";
998
999
  Envelope: "Envelope";
999
- File: "File";
1000
1000
  FileSearch: "FileSearch";
1001
1001
  FileMinus: "FileMinus";
1002
1002
  FilePlus: "FilePlus";
@@ -2282,7 +2282,7 @@ export declare function defineWorkqueue(workqueueInput: WorkqueueConfigInput): {
2282
2282
  $event: "id" | "title" | "type" | "updatedAt" | "placeOfEvent" | "createdByUserType" | "createdAt" | "createdBy" | "createdAtLocation" | "status" | "assignedTo" | "trackingId" | "legalStatuses" | "dateOfEvent" | "updatedByUserRole" | "updatedAtLocation" | "updatedBy" | "flags" | "outbox";
2283
2283
  };
2284
2284
  }[];
2285
- icon: "Archived" | "Assigned" | "Briefcase" | "Certified" | "Close" | "Collapse" | "Draft" | "DuplicateYellow" | "Expand" | "ExternalValidate" | "FilledCheck" | "InReview" | "Offline" | "Registered" | "RequiresUpdates" | "Sent" | "Validated" | "WaitingApproval" | "ChartActivity" | "Activity" | "Archive" | "ArchiveTray" | "ArrowLeft" | "ArrowRight" | "Buildings" | "Circle" | "CaretDown" | "CaretLeft" | "CaretRight" | "ChartBar" | "ChartLine" | "ChatCircle" | "CheckSquare" | "Compass" | "Check" | "Copy" | "Database" | "DotsThreeVertical" | "ArrowCounterClockwise" | "MagnifyingGlassMinus" | "MagnifyingGlassPlus" | "Export" | "Eye" | "EyeSlash" | "Envelope" | "File" | "FileSearch" | "FileMinus" | "FilePlus" | "FileText" | "FileX" | "Handshake" | "Gear" | "GitBranch" | "IdentificationCard" | "List" | "ListBullets" | "Lock" | "MagnifyingGlass" | "MapPin" | "Medal" | "NotePencil" | "Paperclip" | "PaperPlaneTilt" | "Pen" | "PenNib" | "Pencil" | "PencilSimpleLine" | "Phone" | "Plus" | "Printer" | "SignOut" | "Stamp" | "Star" | "Target" | "TextT" | "Trash" | "UploadSimple" | "User" | "UserPlus" | "Users" | "WarningCircle" | "X" | "ChatText" | "CircleWavyCheck" | "CircleWavyQuestion" | "ArchiveBox" | "ArrowCircleDown" | "FileArrowUp" | "FileDotted" | "Files" | "PencilLine" | "PencilCircle" | "UserCircle" | "Clock" | "QrCode" | "Webcam" | "Sun" | "DeviceTabletCamera" | "Globe" | "Fingerprint" | "PushPin" | "Timer";
2285
+ icon: "File" | "Archived" | "Assigned" | "Briefcase" | "Certified" | "Close" | "Collapse" | "Draft" | "DuplicateYellow" | "Expand" | "ExternalValidate" | "FilledCheck" | "InReview" | "Offline" | "Registered" | "RequiresUpdates" | "Sent" | "Validated" | "WaitingApproval" | "ChartActivity" | "Activity" | "Archive" | "ArchiveTray" | "ArrowLeft" | "ArrowRight" | "Buildings" | "Circle" | "CaretDown" | "CaretLeft" | "CaretRight" | "ChartBar" | "ChartLine" | "ChatCircle" | "CheckSquare" | "Compass" | "Check" | "Copy" | "Database" | "DotsThreeVertical" | "ArrowCounterClockwise" | "MagnifyingGlassMinus" | "MagnifyingGlassPlus" | "Export" | "Eye" | "EyeSlash" | "Envelope" | "FileSearch" | "FileMinus" | "FilePlus" | "FileText" | "FileX" | "Handshake" | "Gear" | "GitBranch" | "IdentificationCard" | "List" | "ListBullets" | "Lock" | "MagnifyingGlass" | "MapPin" | "Medal" | "NotePencil" | "Paperclip" | "PaperPlaneTilt" | "Pen" | "PenNib" | "Pencil" | "PencilSimpleLine" | "Phone" | "Plus" | "Printer" | "SignOut" | "Stamp" | "Star" | "Target" | "TextT" | "Trash" | "UploadSimple" | "User" | "UserPlus" | "Users" | "WarningCircle" | "X" | "ChatText" | "CircleWavyCheck" | "CircleWavyQuestion" | "ArchiveBox" | "ArrowCircleDown" | "FileArrowUp" | "FileDotted" | "Files" | "PencilLine" | "PencilCircle" | "UserCircle" | "Clock" | "QrCode" | "Webcam" | "Sun" | "DeviceTabletCamera" | "Globe" | "Fingerprint" | "PushPin" | "Timer";
2286
2286
  action?: {
2287
2287
  type: "DELETE" | "DECLARE" | "REGISTER" | "EDIT" | "REJECT" | "MARK_AS_DUPLICATE" | "ARCHIVE" | "PRINT_CERTIFICATE" | "REQUEST_CORRECTION" | "READ";
2288
2288
  } | undefined;
@@ -2591,7 +2591,7 @@ export declare function defineWorkqueues(workqueues: WorkqueueConfigInputWithV19
2591
2591
  $event: "id" | "title" | "type" | "updatedAt" | "placeOfEvent" | "createdByUserType" | "createdAt" | "createdBy" | "createdAtLocation" | "status" | "assignedTo" | "trackingId" | "legalStatuses" | "dateOfEvent" | "updatedByUserRole" | "updatedAtLocation" | "updatedBy" | "flags" | "outbox";
2592
2592
  };
2593
2593
  }[];
2594
- icon: "Archived" | "Assigned" | "Briefcase" | "Certified" | "Close" | "Collapse" | "Draft" | "DuplicateYellow" | "Expand" | "ExternalValidate" | "FilledCheck" | "InReview" | "Offline" | "Registered" | "RequiresUpdates" | "Sent" | "Validated" | "WaitingApproval" | "ChartActivity" | "Activity" | "Archive" | "ArchiveTray" | "ArrowLeft" | "ArrowRight" | "Buildings" | "Circle" | "CaretDown" | "CaretLeft" | "CaretRight" | "ChartBar" | "ChartLine" | "ChatCircle" | "CheckSquare" | "Compass" | "Check" | "Copy" | "Database" | "DotsThreeVertical" | "ArrowCounterClockwise" | "MagnifyingGlassMinus" | "MagnifyingGlassPlus" | "Export" | "Eye" | "EyeSlash" | "Envelope" | "File" | "FileSearch" | "FileMinus" | "FilePlus" | "FileText" | "FileX" | "Handshake" | "Gear" | "GitBranch" | "IdentificationCard" | "List" | "ListBullets" | "Lock" | "MagnifyingGlass" | "MapPin" | "Medal" | "NotePencil" | "Paperclip" | "PaperPlaneTilt" | "Pen" | "PenNib" | "Pencil" | "PencilSimpleLine" | "Phone" | "Plus" | "Printer" | "SignOut" | "Stamp" | "Star" | "Target" | "TextT" | "Trash" | "UploadSimple" | "User" | "UserPlus" | "Users" | "WarningCircle" | "X" | "ChatText" | "CircleWavyCheck" | "CircleWavyQuestion" | "ArchiveBox" | "ArrowCircleDown" | "FileArrowUp" | "FileDotted" | "Files" | "PencilLine" | "PencilCircle" | "UserCircle" | "Clock" | "QrCode" | "Webcam" | "Sun" | "DeviceTabletCamera" | "Globe" | "Fingerprint" | "PushPin" | "Timer";
2594
+ icon: "File" | "Archived" | "Assigned" | "Briefcase" | "Certified" | "Close" | "Collapse" | "Draft" | "DuplicateYellow" | "Expand" | "ExternalValidate" | "FilledCheck" | "InReview" | "Offline" | "Registered" | "RequiresUpdates" | "Sent" | "Validated" | "WaitingApproval" | "ChartActivity" | "Activity" | "Archive" | "ArchiveTray" | "ArrowLeft" | "ArrowRight" | "Buildings" | "Circle" | "CaretDown" | "CaretLeft" | "CaretRight" | "ChartBar" | "ChartLine" | "ChatCircle" | "CheckSquare" | "Compass" | "Check" | "Copy" | "Database" | "DotsThreeVertical" | "ArrowCounterClockwise" | "MagnifyingGlassMinus" | "MagnifyingGlassPlus" | "Export" | "Eye" | "EyeSlash" | "Envelope" | "FileSearch" | "FileMinus" | "FilePlus" | "FileText" | "FileX" | "Handshake" | "Gear" | "GitBranch" | "IdentificationCard" | "List" | "ListBullets" | "Lock" | "MagnifyingGlass" | "MapPin" | "Medal" | "NotePencil" | "Paperclip" | "PaperPlaneTilt" | "Pen" | "PenNib" | "Pencil" | "PencilSimpleLine" | "Phone" | "Plus" | "Printer" | "SignOut" | "Stamp" | "Star" | "Target" | "TextT" | "Trash" | "UploadSimple" | "User" | "UserPlus" | "Users" | "WarningCircle" | "X" | "ChatText" | "CircleWavyCheck" | "CircleWavyQuestion" | "ArchiveBox" | "ArrowCircleDown" | "FileArrowUp" | "FileDotted" | "Files" | "PencilLine" | "PencilCircle" | "UserCircle" | "Clock" | "QrCode" | "Webcam" | "Sun" | "DeviceTabletCamera" | "Globe" | "Fingerprint" | "PushPin" | "Timer";
2595
2595
  action?: {
2596
2596
  type: "DELETE" | "DECLARE" | "REGISTER" | "EDIT" | "REJECT" | "MARK_AS_DUPLICATE" | "ARCHIVE" | "PRINT_CERTIFICATE" | "REQUEST_CORRECTION" | "READ";
2597
2597
  } | undefined;
@@ -1,6 +1,31 @@
1
+ import { FormConditionalParameters } from '../conditionals/conditionals';
1
2
  import { FieldConditional } from './Conditional';
2
3
  import { TranslationConfig } from './TranslationConfig';
3
- import { SelectOption, ValidationConfig } from './FieldConfig';
4
+ import { JurisdictionReference } from '../users/userReferences';
5
+ import { ComputedDefaultValue, SelectOption, ValidationConfig } from './FieldConfig';
6
+ /**
7
+ * Creates a {@link ComputedDefaultValue} descriptor for use in a field's `defaultValue`.
8
+ *
9
+ * Unlike `field(id).customClientEvaluation(fn)`, this builder is **not tied to any
10
+ * specific field**. Use it when the initial value should be derived purely from
11
+ * context variables (`$now`, `$online`, system variables such as `$user`) rather
12
+ * than from another field's current value.
13
+ *
14
+ * The serialised function receives `(undefined, context)` at runtime, where
15
+ * `context` is a {@link FormConditionalParameters} object.
16
+ *
17
+ * External references (e.g. lodash) are **not** available inside the function body —
18
+ * all logic must be self-contained so the code survives serialisation.
19
+ *
20
+ * @example
21
+ * // Default a date field to today
22
+ * defaultValue: evaluate((_, ctx) => ctx.$now)
23
+ *
24
+ * @example
25
+ * // Default to the current user's role
26
+ * defaultValue: evaluate((_, ctx) => ctx.user.role)
27
+ */
28
+ export declare function evaluate(computationFn: (fieldValue: undefined, context: FormConditionalParameters) => unknown): ComputedDefaultValue;
4
29
  /**
5
30
  * Entry point for defining conditional logic or configuration for a form field.
6
31
  * @param fieldId - The ID of the field to define rules or config for.
@@ -11,12 +36,14 @@ export declare function field(fieldId: string, options?: {
11
36
  conditionals?: FieldConditional[];
12
37
  validations?: ValidationConfig[];
13
38
  searchCriteriaLabelPrefix?: TranslationConfig;
39
+ allowedLocations?: JurisdictionReference;
14
40
  }): {
15
41
  range: () => {
16
42
  options?: SelectOption[];
17
43
  conditionals?: FieldConditional[];
18
44
  validations?: ValidationConfig[];
19
45
  searchCriteriaLabelPrefix?: TranslationConfig;
46
+ allowedLocations?: JurisdictionReference;
20
47
  fieldId: string;
21
48
  fieldType: "field";
22
49
  } & {
@@ -29,6 +56,7 @@ export declare function field(fieldId: string, options?: {
29
56
  conditionals?: FieldConditional[];
30
57
  validations?: ValidationConfig[];
31
58
  searchCriteriaLabelPrefix?: TranslationConfig;
59
+ allowedLocations?: JurisdictionReference;
32
60
  fieldId: string;
33
61
  fieldType: "field";
34
62
  } & {
@@ -41,6 +69,7 @@ export declare function field(fieldId: string, options?: {
41
69
  conditionals?: FieldConditional[];
42
70
  validations?: ValidationConfig[];
43
71
  searchCriteriaLabelPrefix?: TranslationConfig;
72
+ allowedLocations?: JurisdictionReference;
44
73
  fieldId: string;
45
74
  fieldType: "field";
46
75
  } & {
@@ -53,6 +82,7 @@ export declare function field(fieldId: string, options?: {
53
82
  conditionals?: FieldConditional[];
54
83
  validations?: ValidationConfig[];
55
84
  searchCriteriaLabelPrefix?: TranslationConfig;
85
+ allowedLocations?: JurisdictionReference;
56
86
  fieldId: string;
57
87
  fieldType: "field";
58
88
  } & {
@@ -107,6 +137,8 @@ export declare function field(fieldId: string, options?: {
107
137
  fieldId: string;
108
138
  };
109
139
  object: (options: Record<string, any>) => import("../conditionals/conditionals").JSONSchema;
140
+ customClientValidator(validationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => boolean): import("../conditionals/conditionals").JSONSchema;
141
+ customClientEvaluation(computationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => unknown): import("./FieldConfig").CodeToEvaluate;
110
142
  };
111
143
  asDob(): any;
112
144
  asAge(): any;
@@ -144,6 +176,8 @@ export declare function field(fieldId: string, options?: {
144
176
  fieldId: string;
145
177
  };
146
178
  object: (options: Record<string, any>) => import("../conditionals/conditionals").JSONSchema;
179
+ customClientValidator(validationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => boolean): import("../conditionals/conditionals").JSONSchema;
180
+ customClientEvaluation(computationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => unknown): import("./FieldConfig").CodeToEvaluate;
147
181
  };
148
182
  getByPath(fieldPath: string[]): {
149
183
  $$subfield: string[];
@@ -189,6 +223,8 @@ export declare function field(fieldId: string, options?: {
189
223
  fieldId: string;
190
224
  };
191
225
  object: (options: Record<string, any>) => import("../conditionals/conditionals").JSONSchema;
226
+ customClientValidator(validationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => boolean): import("../conditionals/conditionals").JSONSchema;
227
+ customClientEvaluation(computationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => unknown): import("./FieldConfig").CodeToEvaluate;
192
228
  };
193
229
  getByPath(fieldPath: string[]): any;
194
230
  asDob(): {
@@ -232,6 +268,8 @@ export declare function field(fieldId: string, options?: {
232
268
  fieldId: string;
233
269
  };
234
270
  object: (options: Record<string, any>) => import("../conditionals/conditionals").JSONSchema;
271
+ customClientValidator(validationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => boolean): import("../conditionals/conditionals").JSONSchema;
272
+ customClientEvaluation(computationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => unknown): import("./FieldConfig").CodeToEvaluate;
235
273
  };
236
274
  asAge(): {
237
275
  $$subfield: string[];
@@ -274,6 +312,8 @@ export declare function field(fieldId: string, options?: {
274
312
  fieldId: string;
275
313
  };
276
314
  object: (options: Record<string, any>) => import("../conditionals/conditionals").JSONSchema;
315
+ customClientValidator(validationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => boolean): import("../conditionals/conditionals").JSONSchema;
316
+ customClientEvaluation(computationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => unknown): import("./FieldConfig").CodeToEvaluate;
277
317
  };
278
318
  isAfter(): {
279
319
  days: (days: number) => {
@@ -309,6 +349,8 @@ export declare function field(fieldId: string, options?: {
309
349
  fieldId: string;
310
350
  };
311
351
  object: (options: Record<string, any>) => import("../conditionals/conditionals").JSONSchema;
352
+ customClientValidator(validationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => boolean): import("../conditionals/conditionals").JSONSchema;
353
+ customClientEvaluation(computationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => unknown): import("./FieldConfig").CodeToEvaluate;
312
354
  };
313
355
  asDob(): {
314
356
  $$subfield: string[];
@@ -355,6 +397,8 @@ export declare function field(fieldId: string, options?: {
355
397
  fieldId: string;
356
398
  };
357
399
  object: (options: Record<string, any>) => import("../conditionals/conditionals").JSONSchema;
400
+ customClientValidator(validationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => boolean): import("../conditionals/conditionals").JSONSchema;
401
+ customClientEvaluation(computationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => unknown): import("./FieldConfig").CodeToEvaluate;
358
402
  };
359
403
  asDob(): any;
360
404
  asAge(): any;
@@ -392,6 +436,8 @@ export declare function field(fieldId: string, options?: {
392
436
  fieldId: string;
393
437
  };
394
438
  object: (options: Record<string, any>) => import("../conditionals/conditionals").JSONSchema;
439
+ customClientValidator(validationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => boolean): import("../conditionals/conditionals").JSONSchema;
440
+ customClientEvaluation(computationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => unknown): import("./FieldConfig").CodeToEvaluate;
395
441
  };
396
442
  asAge(): {
397
443
  $$subfield: string[];
@@ -438,6 +484,8 @@ export declare function field(fieldId: string, options?: {
438
484
  fieldId: string;
439
485
  };
440
486
  object: (options: Record<string, any>) => import("../conditionals/conditionals").JSONSchema;
487
+ customClientValidator(validationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => boolean): import("../conditionals/conditionals").JSONSchema;
488
+ customClientEvaluation(computationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => unknown): import("./FieldConfig").CodeToEvaluate;
441
489
  };
442
490
  asDob(): any;
443
491
  asAge(): any;
@@ -475,6 +523,8 @@ export declare function field(fieldId: string, options?: {
475
523
  fieldId: string;
476
524
  };
477
525
  object: (options: Record<string, any>) => import("../conditionals/conditionals").JSONSchema;
526
+ customClientValidator(validationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => boolean): import("../conditionals/conditionals").JSONSchema;
527
+ customClientEvaluation(computationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => unknown): import("./FieldConfig").CodeToEvaluate;
478
528
  };
479
529
  isAfter(): {
480
530
  days: (days: number) => {
@@ -510,5 +560,7 @@ export declare function field(fieldId: string, options?: {
510
560
  fieldId: string;
511
561
  };
512
562
  object: (options: Record<string, any>) => import("../conditionals/conditionals").JSONSchema;
563
+ customClientValidator(validationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => boolean): import("../conditionals/conditionals").JSONSchema;
564
+ customClientEvaluation(computationFn: (fieldValue: unknown, context: import(".").ClientFunctionContext) => unknown): import("./FieldConfig").CodeToEvaluate;
513
565
  };
514
566
  //# sourceMappingURL=field.d.ts.map
@@ -22,6 +22,7 @@ export * from './FieldValue';
22
22
  export * from './FormConfig';
23
23
  export * from './CompositeFieldValue';
24
24
  export * from './state';
25
+ export * from './state/flags';
25
26
  export * from './utils';
26
27
  export * from './defineConfig';
27
28
  export * from './DeduplicationConfig';
@@ -37,6 +38,7 @@ export * from './scopes';
37
38
  export * from './serializer';
38
39
  export * from './state/availableActions';
39
40
  export * from './FileUtils';
41
+ export * from './mocks.test.utils';
40
42
  export * from '../conditionals/conditionals';
41
43
  export * from '../conditionals/validate';
42
44
  export * from './field';
@@ -1,6 +1,9 @@
1
+ import { Action, RequestedCorrectionAction } from '../ActionDocument';
1
2
  import { Flag, CustomFlag } from '../Flag';
2
3
  import { EventConfig } from '../EventConfig';
3
4
  import { EventDocument } from '../EventDocument';
5
+ export declare function findPendingCorrectionAction(writeActions: Action[]): RequestedCorrectionAction | undefined;
6
+ export declare function isPotentialDuplicate(actions: Action[]): boolean;
4
7
  /**
5
8
  * This function resolves custom flags for an event based on its actions.
6
9
  * Flags are not stored to the event state or any database directly, instead they are always computed/evaluated from the event actions.
@@ -18,5 +21,18 @@ import { EventDocument } from '../EventDocument';
18
21
  * // Returns: ['flag-1', 'flag-3']
19
22
  */
20
23
  export declare function resolveEventCustomFlags(event: EventDocument, eventConfiguration: EventConfig): CustomFlag[];
24
+ /**
25
+ * Computes all flags (inherent, action status, and custom) that should be attached to the given event,
26
+ * based on its actions and event-specific configuration.
27
+ *
28
+ * Flags are determined by combining:
29
+ * - Action status flags (format 'ActionType:ActionStatus')
30
+ * - Inherent flags (e.g. incomplete, rejected, correction requested, potential duplicate, edit in progress)
31
+ * - Event type-specific custom flags defined in the event configuration
32
+ *
33
+ * @param event - The EventDocument containing the action history and payload
34
+ * @param config - The EventConfig providing rules for custom flag evaluation
35
+ * @returns An array of flags currently relevant/applicable to the event
36
+ */
21
37
  export declare function getEventFlags(event: EventDocument, config: EventConfig): Flag[];
22
38
  //# sourceMappingURL=flags.d.ts.map
@@ -1,279 +1,17 @@
1
1
  import { Action } from '../ActionDocument';
2
2
  /**
3
- * Given action type and actions, returns the action creation metadata for the event.
4
- * Since we do not consistently store the request action, we need to check if it exists.
5
- * @returns details of last user who triggered **Declaration** action.
6
- * @see EventIndex for the description of the returned object.
3
+ * Returns the creation metadata of the last update action (Requested or Accepted).
4
+ * Requested actions are included so that async flows (202) correctly reflect the
5
+ * metadata of the user who triggered the action before country config accepts it.
7
6
  *
8
- * */
9
- export declare function getActionUpdateMetadata(actions: Action[]): Partial<{
10
- id: string & import("zod").$brand<"UUID">;
11
- transactionId: string;
12
- createdByUserType: "user" | "system";
13
- createdAt: string;
14
- createdBy: string;
15
- declaration: Record<string, import("..").FieldUpdateValue>;
16
- status: "Requested" | "Accepted" | "Rejected";
17
- type: "REGISTER";
18
- createdByRole?: string | undefined;
19
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
20
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
21
- annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
22
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
23
- registrationNumber?: string | undefined;
24
- } | {
25
- id: string & import("zod").$brand<"UUID">;
26
- transactionId: string;
27
- createdByUserType: "user" | "system";
28
- createdAt: string;
29
- createdBy: string;
30
- declaration: Record<string, import("..").FieldUpdateValue>;
31
- status: "Requested" | "Accepted" | "Rejected";
32
- type: "DUPLICATE_DETECTED";
33
- content: {
34
- duplicates: {
35
- id: string & import("zod").$brand<"UUID">;
36
- trackingId: string;
37
- }[];
38
- };
39
- createdByRole?: string | undefined;
40
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
41
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
42
- annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
43
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
44
- } | {
45
- id: string & import("zod").$brand<"UUID">;
46
- transactionId: string;
47
- createdByUserType: "user" | "system";
48
- createdAt: string;
49
- createdBy: string;
50
- declaration: Record<string, import("..").FieldUpdateValue>;
51
- status: "Requested" | "Accepted" | "Rejected";
52
- type: "EDIT";
53
- content: {
54
- comment?: string | undefined;
55
- };
56
- createdByRole?: string | undefined;
57
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
58
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
59
- annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
60
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
61
- } | {
62
- id: string & import("zod").$brand<"UUID">;
63
- transactionId: string;
64
- createdByUserType: "user" | "system";
65
- createdAt: string;
66
- createdBy: string;
67
- declaration: Record<string, import("..").FieldUpdateValue>;
68
- status: "Requested" | "Accepted" | "Rejected";
69
- type: "PRINT_CERTIFICATE";
70
- createdByRole?: string | undefined;
71
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
72
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
73
- annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
74
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
75
- content?: {
76
- templateId?: string | undefined;
77
- } | null | undefined;
78
- } | {
79
- id: string & import("zod").$brand<"UUID">;
80
- transactionId: string;
81
- createdByUserType: "user" | "system";
82
- createdAt: string;
83
- createdBy: string;
84
- declaration: Record<string, import("..").FieldUpdateValue>;
85
- status: "Requested" | "Accepted" | "Rejected";
86
- type: "REQUEST_CORRECTION";
87
- createdByRole?: string | undefined;
88
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
89
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
90
- annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
91
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
92
- } | {
93
- id: string & import("zod").$brand<"UUID">;
94
- transactionId: string;
95
- createdByUserType: "user" | "system";
96
- createdAt: string;
97
- createdBy: string;
98
- declaration: Record<string, import("..").FieldUpdateValue>;
99
- status: "Requested" | "Accepted" | "Rejected";
100
- type: "CUSTOM";
101
- customActionType: string;
102
- createdByRole?: string | undefined;
103
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
104
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
105
- annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
106
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
107
- } | {
108
- id: string & import("zod").$brand<"UUID">;
109
- transactionId: string;
110
- createdByUserType: "user" | "system";
111
- createdAt: string;
112
- createdBy: string;
113
- declaration: Record<string, import("..").FieldUpdateValue>;
114
- status: "Requested" | "Accepted" | "Rejected";
115
- type: "CREATE";
116
- createdByRole?: string | undefined;
117
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
118
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
119
- annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
120
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
121
- } | {
122
- id: string & import("zod").$brand<"UUID">;
123
- transactionId: string;
124
- createdByUserType: "user" | "system";
125
- createdAt: string;
126
- createdBy: string;
127
- declaration: Record<string, import("..").FieldUpdateValue>;
128
- status: "Requested" | "Accepted" | "Rejected";
129
- type: "REJECT";
130
- content: {
131
- reason: string;
132
- };
133
- createdByRole?: string | undefined;
134
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
135
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
136
- annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
137
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
138
- } | {
139
- id: string & import("zod").$brand<"UUID">;
140
- transactionId: string;
141
- createdByUserType: "user" | "system";
142
- createdAt: string;
143
- createdBy: string;
144
- declaration: Record<string, import("..").FieldUpdateValue>;
145
- status: "Requested" | "Accepted" | "Rejected";
146
- type: "MARK_AS_NOT_DUPLICATE";
147
- createdByRole?: string | undefined;
148
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
149
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
150
- annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
151
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
152
- } | {
153
- id: string & import("zod").$brand<"UUID">;
154
- transactionId: string;
155
- createdByUserType: "user" | "system";
156
- createdAt: string;
157
- createdBy: string;
158
- declaration: Record<string, import("..").FieldUpdateValue>;
159
- status: "Requested" | "Accepted" | "Rejected";
160
- type: "MARK_AS_DUPLICATE";
161
- createdByRole?: string | undefined;
162
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
163
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
164
- annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
165
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
166
- content?: {
167
- duplicateOf: string & import("zod").$brand<"UUID">;
168
- } | undefined;
169
- } | {
170
- id: string & import("zod").$brand<"UUID">;
171
- transactionId: string;
172
- createdByUserType: "user" | "system";
173
- createdAt: string;
174
- createdBy: string;
175
- declaration: Record<string, import("..").FieldUpdateValue>;
176
- status: "Requested" | "Accepted" | "Rejected";
177
- type: "ARCHIVE";
178
- content: {
179
- reason: string;
180
- };
181
- createdByRole?: string | undefined;
182
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
183
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
184
- annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
185
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
186
- } | {
187
- id: string & import("zod").$brand<"UUID">;
188
- transactionId: string;
189
- createdByUserType: "user" | "system";
190
- createdAt: string;
191
- createdBy: string;
192
- declaration: Record<string, import("..").FieldUpdateValue>;
193
- status: "Requested" | "Accepted" | "Rejected";
194
- type: "NOTIFY";
195
- createdByRole?: string | undefined;
196
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
197
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
198
- annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
199
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
200
- } | {
201
- id: string & import("zod").$brand<"UUID">;
202
- transactionId: string;
203
- createdByUserType: "user" | "system";
204
- createdAt: string;
205
- createdBy: string;
206
- declaration: Record<string, import("..").FieldUpdateValue>;
207
- status: "Requested" | "Accepted" | "Rejected";
208
- type: "DECLARE";
209
- createdByRole?: string | undefined;
210
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
211
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
212
- annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
213
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
214
- } | {
215
- id: string & import("zod").$brand<"UUID">;
216
- transactionId: string;
217
- createdByUserType: "user" | "system";
218
- createdAt: string;
219
- createdBy: string;
220
- declaration: Record<string, import("..").FieldUpdateValue>;
221
- status: "Requested" | "Accepted" | "Rejected";
222
- type: "ASSIGN";
223
- assignedTo: string;
224
- createdByRole?: string | undefined;
225
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
226
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
227
- annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
228
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
229
- } | {
230
- id: string & import("zod").$brand<"UUID">;
231
- transactionId: string;
232
- createdByUserType: "user" | "system";
233
- createdAt: string;
234
- createdBy: string;
235
- declaration: Record<string, import("..").FieldUpdateValue>;
236
- status: "Requested" | "Accepted" | "Rejected";
237
- type: "APPROVE_CORRECTION";
238
- requestId: string;
239
- createdByRole?: string | undefined;
240
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
241
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
242
- annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
243
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
244
- } | {
245
- id: string & import("zod").$brand<"UUID">;
246
- transactionId: string;
247
- createdByUserType: "user" | "system";
248
- createdAt: string;
249
- createdBy: string;
250
- declaration: Record<string, import("..").FieldUpdateValue>;
251
- status: "Requested" | "Accepted" | "Rejected";
252
- type: "REJECT_CORRECTION";
253
- requestId: string;
254
- content: {
255
- reason: string;
256
- };
257
- createdByRole?: string | undefined;
258
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
259
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
260
- annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
261
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
262
- } | {
263
- id: string & import("zod").$brand<"UUID">;
264
- transactionId: string;
265
- createdByUserType: "user" | "system";
266
- createdAt: string;
267
- createdBy: string;
268
- declaration: Record<string, import("..").FieldUpdateValue>;
269
- status: "Requested" | "Accepted" | "Rejected";
270
- type: "UNASSIGN";
271
- createdByRole?: string | undefined;
272
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
273
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
274
- annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
275
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
276
- } | {
7
+ * When an Accepted action carries an originalActionId, its metadata is sourced from
8
+ * the original Requested action (the human who triggered it), not from the system
9
+ * or 3rd party that accepted it.
10
+ *
11
+ * @returns metadata of the last user who triggered a status-changing action.
12
+ * @see EventIndex for the description of the returned object.
13
+ */
14
+ export declare function getActionUpdateMetadata(actions: Action[]): Pick<{
277
15
  id: string & import("zod").$brand<"UUID">;
278
16
  transactionId: string;
279
17
  createdByUserType: "user" | "system";
@@ -281,25 +19,12 @@ export declare function getActionUpdateMetadata(actions: Action[]): Partial<{
281
19
  createdBy: string;
282
20
  declaration: Record<string, import("..").FieldUpdateValue>;
283
21
  status: "Requested" | "Accepted" | "Rejected";
284
- type: "READ";
285
22
  createdByRole?: string | undefined;
286
23
  createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
287
24
  createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
288
25
  annotation?: Record<string, import("..").FieldUpdateValue> | null | undefined;
289
26
  originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
290
- } | {
291
- id: string & import("zod").$brand<"UUID">;
292
- transactionId: string;
293
- createdByUserType: "user" | "system";
294
- createdAt: string;
295
- createdBy: string;
296
- type: "CUSTOM" | "NOTIFY" | "DECLARE" | "REGISTER" | "EDIT" | "REJECT" | "ARCHIVE" | "PRINT_CERTIFICATE" | "REQUEST_CORRECTION" | "REJECT_CORRECTION" | "APPROVE_CORRECTION";
297
- status: "Rejected";
298
- createdByRole?: string | undefined;
299
- createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
300
- createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
301
- originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
302
- }>;
27
+ }, "createdByUserType" | "createdAt" | "createdBy" | "createdByRole" | "createdAtLocation">;
303
28
  /**
304
29
  * @returns the legal statuses of the event. Event is considered legal if it has been accepted.
305
30
  * @see EventIndex for the description of the returned object.