@opencrvs/toolkit 2.0.0-rc.fef9d21 → 2.0.0-rc.ff99998
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/create-countryconfig/index.js +103 -0
- package/create-countryconfig/package.json +21 -0
- package/dist/application-config/index.js +305 -129
- package/dist/cli.js +548 -178
- package/dist/commons/api/router.d.ts +3379 -239
- package/dist/commons/application-config/index.d.ts +17 -4
- package/dist/commons/conditionals/conditionals.d.ts +360 -10
- package/dist/commons/conditionals/validate.d.ts +52 -2
- package/dist/commons/events/ActionDocument.d.ts +6 -0
- package/dist/commons/events/ActionInput.d.ts +114 -0
- package/dist/commons/events/AdvancedSearchConfig.d.ts +342 -0
- package/dist/commons/events/Draft.d.ts +4 -2
- package/dist/commons/events/EventDocument.d.ts +3 -0
- package/dist/commons/events/EventIndex.d.ts +0 -3
- package/dist/commons/events/EventMetadata.d.ts +0 -7
- package/dist/commons/events/FieldConfig.d.ts +387 -50
- package/dist/commons/events/FieldValue.d.ts +6 -0
- package/dist/commons/events/WorkqueueConfig.d.ts +150 -150
- package/dist/commons/events/field.d.ts +53 -1
- package/dist/commons/events/index.d.ts +2 -0
- package/dist/commons/events/locations.d.ts +38 -1
- package/dist/commons/events/mocks.test.utils.d.ts +19 -0
- package/dist/commons/events/scopes.d.ts +24 -1
- package/dist/commons/events/state/flags.d.ts +16 -0
- package/dist/commons/events/state/index.d.ts +0 -4
- package/dist/commons/events/state/utils.d.ts +12 -289
- package/dist/commons/events/utils.d.ts +13 -2
- package/dist/conditionals/index.js +92 -9
- package/dist/events/index.js +1084 -261
- package/dist/migrations/v2.0/add-birth-certificate-issuance-flag.d.ts.map +1 -1
- package/dist/migrations/v2.0/add-birth-certificate-issuance-flag.js +60 -35
- package/dist/migrations/v2.0/checkout-upstream-files.d.ts +1 -1
- package/dist/migrations/v2.0/checkout-upstream-files.d.ts.map +1 -1
- package/dist/migrations/v2.0/checkout-upstream-files.js +1 -2
- package/dist/migrations/v2.0/delete-infrastructure-directory.d.ts +9 -1
- package/dist/migrations/v2.0/delete-infrastructure-directory.d.ts.map +1 -1
- package/dist/migrations/v2.0/delete-infrastructure-directory.js +66 -20
- package/dist/migrations/v2.0/fix-accept-requested-registration-function-type.d.ts +3 -0
- package/dist/migrations/v2.0/fix-accept-requested-registration-function-type.d.ts.map +1 -0
- package/dist/migrations/v2.0/fix-accept-requested-registration-function-type.js +110 -0
- package/dist/migrations/v2.0/index.d.ts +5 -3
- package/dist/migrations/v2.0/index.d.ts.map +1 -1
- package/dist/migrations/v2.0/index.js +546 -176
- package/dist/migrations/v2.0/make-built-in-validate-actions-custom.d.ts.map +1 -1
- package/dist/migrations/v2.0/make-built-in-validate-actions-custom.js +90 -1
- package/dist/migrations/v2.0/merge-infrastructure-directory.d.ts +11 -1
- package/dist/migrations/v2.0/merge-infrastructure-directory.d.ts.map +1 -1
- package/dist/migrations/v2.0/merge-infrastructure-directory.js +17 -16
- package/dist/migrations/v2.0/migrate-scopes.d.ts.map +1 -1
- package/dist/migrations/v2.0/migrate-scopes.js +54 -30
- package/dist/migrations/v2.0/migrate-workqueue-configs.d.ts.map +1 -1
- package/dist/migrations/v2.0/migrate-workqueue-configs.js +140 -59
- package/dist/notification/index.js +841 -160
- package/dist/scopes/index.d.ts +91 -16
- package/dist/scopes/index.js +55 -12
- package/opencrvs-toolkit-2.0.0-rc.ff99998.tgz +0 -0
- package/package.json +6 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/opencrvs-toolkit-2.0.0-rc.fef9d21.tgz +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { DisplayableAction } from './ActionType';
|
|
2
|
-
import { EncodedScope } from '../scopes';
|
|
2
|
+
import { EncodedScope, UserScopeV2 } from '../scopes';
|
|
3
3
|
import { EventIndexWithAdministrativeHierarchy } from './locations';
|
|
4
4
|
import { UserContext } from '../users/User';
|
|
5
5
|
import { EventIndex } from './EventIndex';
|
|
6
|
+
import { UUID } from 'src/uuid';
|
|
6
7
|
export declare const ACTION_SCOPE_MAP: {
|
|
7
8
|
READ: "record.read"[];
|
|
8
9
|
CREATE: "record.create"[];
|
|
@@ -53,4 +54,26 @@ export declare function isActionInScope({ scopes, action, event, currentUser }:
|
|
|
53
54
|
event: EventIndexWithAdministrativeHierarchy;
|
|
54
55
|
currentUser: UserContext;
|
|
55
56
|
}): boolean;
|
|
57
|
+
/**
|
|
58
|
+
*
|
|
59
|
+
*
|
|
60
|
+
* @param allRoles - All possible roles in the system
|
|
61
|
+
* @param userLocation - The location and role information of the user whose role options are being determined
|
|
62
|
+
* @param acceptedScopes - The scopes of the user requesting the role update, used to determine which roles they can assign.
|
|
63
|
+
* @param userRequesting - The user context of the user requesting the role update, used to check location-based access to the target user's location.
|
|
64
|
+
*
|
|
65
|
+
* @returns An array of roles that the requesting user is allowed to assign to the target user based on their scopes and location
|
|
66
|
+
*
|
|
67
|
+
* 1) Used to determine which roles should be available in the dropdown when a user is editing another user's role in the user management interface.
|
|
68
|
+
* 2) Used to check if payload includes valid role.
|
|
69
|
+
*/
|
|
70
|
+
export declare function getAvailableRolesForUserUpdatePayload({ allRoles, userLocation, acceptedScopes, userRequesting }: {
|
|
71
|
+
allRoles: string[];
|
|
72
|
+
userRequesting: UserContext;
|
|
73
|
+
acceptedScopes: UserScopeV2[];
|
|
74
|
+
userLocation: {
|
|
75
|
+
administrativeHierarchy: UUID[];
|
|
76
|
+
primaryOfficeId: UUID;
|
|
77
|
+
};
|
|
78
|
+
}): string[];
|
|
56
79
|
//# sourceMappingURL=scopes.d.ts.map
|
|
@@ -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
|
|
@@ -9,7 +9,6 @@ import { UUID } from '../../uuid';
|
|
|
9
9
|
import { DocumentPath } from '../../documents';
|
|
10
10
|
export declare function getStatusFromActions(actions: Array<Action>): "CREATED" | "NOTIFIED" | "DECLARED" | "REGISTERED" | "ARCHIVED";
|
|
11
11
|
export declare function getAssignedUserFromActions(actions: Array<ActionDocument>): string | null;
|
|
12
|
-
export declare function getAssignedUserSignatureFromActions(actions: Array<ActionDocument>): string | null;
|
|
13
12
|
type NonNullableDeep<T> = T extends [unknown, ...unknown[]] ? {
|
|
14
13
|
[K in keyof T]: NonNullableDeep<NonNullable<T[K]>>;
|
|
15
14
|
} : T extends UUID ? T : T extends DocumentPath ? T : T extends string ? NonNullable<T> : T extends (infer U)[] ? NonNullableDeep<U>[] : T extends object ? {
|
|
@@ -73,7 +72,6 @@ export declare function applyDraftToEventIndex(eventIndex: EventIndex, draft: Dr
|
|
|
73
72
|
createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
|
|
74
73
|
createdByUserType?: "user" | "system" | null | undefined;
|
|
75
74
|
createdByRole?: string | undefined;
|
|
76
|
-
createdBySignature?: string | null | undefined;
|
|
77
75
|
} | null | undefined;
|
|
78
76
|
REGISTERED?: {
|
|
79
77
|
createdAt: string;
|
|
@@ -83,7 +81,6 @@ export declare function applyDraftToEventIndex(eventIndex: EventIndex, draft: Dr
|
|
|
83
81
|
createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
|
|
84
82
|
createdByUserType?: "user" | "system" | null | undefined;
|
|
85
83
|
createdByRole?: string | undefined;
|
|
86
|
-
createdBySignature?: string | null | undefined;
|
|
87
84
|
} | null | undefined;
|
|
88
85
|
};
|
|
89
86
|
createdAt: string;
|
|
@@ -101,7 +98,6 @@ export declare function applyDraftToEventIndex(eventIndex: EventIndex, draft: Dr
|
|
|
101
98
|
createdByUserType?: "user" | "system" | null | undefined;
|
|
102
99
|
updatedByUserRole?: string | null | undefined;
|
|
103
100
|
createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
|
|
104
|
-
createdBySignature?: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
|
|
105
101
|
updatedAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
|
|
106
102
|
assignedTo?: string | null | undefined;
|
|
107
103
|
updatedBy?: string | null | undefined;
|
|
@@ -1,279 +1,17 @@
|
|
|
1
1
|
import { Action } from '../ActionDocument';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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.
|
|
@@ -312,7 +37,6 @@ export declare function getLegalStatuses(actions: Action[]): {
|
|
|
312
37
|
createdAtLocation: (string & import("zod").$brand<"UUID">) | null | undefined;
|
|
313
38
|
acceptedAt: string;
|
|
314
39
|
createdByRole: string | undefined;
|
|
315
|
-
createdBySignature: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
|
|
316
40
|
registrationNumber: string | null | undefined;
|
|
317
41
|
} | null;
|
|
318
42
|
REGISTERED: {
|
|
@@ -322,7 +46,6 @@ export declare function getLegalStatuses(actions: Action[]): {
|
|
|
322
46
|
createdAtLocation: (string & import("zod").$brand<"UUID">) | null | undefined;
|
|
323
47
|
acceptedAt: string;
|
|
324
48
|
createdByRole: string | undefined;
|
|
325
|
-
createdBySignature: (string & import("zod").$brand<"DocumentPath">) | null | undefined;
|
|
326
49
|
registrationNumber: string | null | undefined;
|
|
327
50
|
} | null;
|
|
328
51
|
};
|
|
@@ -131,7 +131,7 @@ export declare function isPageVisible(page: PageConfig, formValues: ActionUpdate
|
|
|
131
131
|
* * @param validatorContext - custom validation context
|
|
132
132
|
* @returns {Partial<T>} A new object containing only the values for visible fields
|
|
133
133
|
*/
|
|
134
|
-
export declare function omitHiddenFields<T extends EventState | ActionUpdate>(fields: FieldConfig[], formValues: T, validatorContext: ValidatorContext, includeHiddenFieldsWithNullValues?: boolean
|
|
134
|
+
export declare function omitHiddenFields<T extends EventState | ActionUpdate>(fields: FieldConfig[], formValues: T, validatorContext: ValidatorContext, includeHiddenFieldsWithNullValues?: boolean): Partial<T>;
|
|
135
135
|
export declare function omitHiddenPaginatedFields<T extends EventState | ActionUpdate>(formConfig: FormConfig, values: T, validatorContext: ValidatorContext, includeHiddenFieldsWithNullValues?: boolean): Partial<Partial<T>>;
|
|
136
136
|
/**
|
|
137
137
|
*
|
|
@@ -386,6 +386,9 @@ export declare function findLastAssignmentAction(actions: Action[]): {
|
|
|
386
386
|
createdAtLocation?: (string & import("zod").$brand<"UUID">) | null | undefined;
|
|
387
387
|
annotation?: Record<string, import("./FieldValue").FieldUpdateValue> | null | undefined;
|
|
388
388
|
originalActionId?: (string & import("zod").$brand<"UUID">) | null | undefined;
|
|
389
|
+
content?: {
|
|
390
|
+
immediateCorrection?: boolean | undefined;
|
|
391
|
+
} | undefined;
|
|
389
392
|
} | {
|
|
390
393
|
id: string & import("zod").$brand<"UUID">;
|
|
391
394
|
transactionId: string;
|
|
@@ -559,7 +562,15 @@ export declare function timePeriodToDateRange(value: SelectDateRangeValue): {
|
|
|
559
562
|
};
|
|
560
563
|
export declare function mergeDrafts(currentDraft: Draft, incomingDraft: Draft): Draft;
|
|
561
564
|
export declare function getPendingAction(actions: Action[]): ActionDocument;
|
|
562
|
-
export declare function getCompleteActionAnnotation(
|
|
565
|
+
export declare function getCompleteActionAnnotation(event: EventDocument, action: ActionDocument): ActionUpdate;
|
|
566
|
+
/**
|
|
567
|
+
* Resolves the complete content for an action, inheriting from its original
|
|
568
|
+
* Requested action when the Accepted action carries no content of its own.
|
|
569
|
+
*
|
|
570
|
+
* Mirrors the same "originalActionId → merge from Requested" pattern used by
|
|
571
|
+
* getCompleteActionAnnotation and getCompleteActionDeclaration.
|
|
572
|
+
*/
|
|
573
|
+
export declare function getCompleteActionContent(event: EventDocument, action: ActionDocument): Record<string, unknown> | null | undefined;
|
|
563
574
|
export declare function getCompleteActionDeclaration<T extends EventState | ActionUpdate>(declaration: T, event: EventDocument, action: ActionDocument): T;
|
|
564
575
|
export declare function getAcceptedActions(event: EventDocument): ActionDocument[];
|
|
565
576
|
export declare function aggregateActionDeclarations(event: EventDocument): EventState;
|
|
@@ -30,6 +30,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// src/conditionals/index.ts
|
|
31
31
|
var conditionals_exports = {};
|
|
32
32
|
__export(conditionals_exports, {
|
|
33
|
+
always: () => always,
|
|
33
34
|
alwaysTrue: () => alwaysTrue,
|
|
34
35
|
and: () => and,
|
|
35
36
|
createFieldConditionals: () => createFieldConditionals,
|
|
@@ -182,6 +183,10 @@ var scopeByEvent = z6.preprocess(
|
|
|
182
183
|
(val) => val === void 0 ? void 0 : [val].flat(),
|
|
183
184
|
z6.array(z6.string()).optional()
|
|
184
185
|
).describe("Event type, e.g. birth, death");
|
|
186
|
+
var userRole = z6.preprocess(
|
|
187
|
+
(val) => val === void 0 ? void 0 : [val].flat(),
|
|
188
|
+
z6.array(z6.string()).optional()
|
|
189
|
+
).describe("User role, e.g. admin, field agent");
|
|
185
190
|
var scopeOptionsPlaceEvent = z6.object({
|
|
186
191
|
event: scopeByEvent,
|
|
187
192
|
placeOfEvent: JurisdictionFilter.optional()
|
|
@@ -205,6 +210,9 @@ var CustomActionScopeOptions = AllRecordScopeOptions.extend({
|
|
|
205
210
|
var AccessLevelOptions = z6.object({
|
|
206
211
|
accessLevel: JurisdictionFilter.optional()
|
|
207
212
|
});
|
|
213
|
+
var AllUserScopeOptions = AccessLevelOptions.extend({
|
|
214
|
+
role: userRole.optional()
|
|
215
|
+
});
|
|
208
216
|
var WorkqueueOrDashboardOptions = z6.object({
|
|
209
217
|
ids: z6.preprocess(
|
|
210
218
|
(val) => val === void 0 ? void 0 : [val].flat(),
|
|
@@ -214,6 +222,7 @@ var WorkqueueOrDashboardOptions = z6.object({
|
|
|
214
222
|
var AllScopeOptions = z6.object({
|
|
215
223
|
...AllRecordScopeOptions.shape,
|
|
216
224
|
...AccessLevelOptions.shape,
|
|
225
|
+
...AllUserScopeOptions.shape,
|
|
217
226
|
...WorkqueueOrDashboardOptions.shape
|
|
218
227
|
});
|
|
219
228
|
var ScopeOptionKey = AllScopeOptions.keyof();
|
|
@@ -286,6 +295,30 @@ var RecordScopeV2 = z6.discriminatedUnion("type", [
|
|
|
286
295
|
]).describe(
|
|
287
296
|
"Scopes used to check user's permission to perform actions on a record."
|
|
288
297
|
);
|
|
298
|
+
var SystemScopeType = z6.enum([
|
|
299
|
+
"organisation.read-locations",
|
|
300
|
+
"user.read",
|
|
301
|
+
"user.create",
|
|
302
|
+
"user.edit",
|
|
303
|
+
"user.search"
|
|
304
|
+
]);
|
|
305
|
+
var UserScopeType = SystemScopeType.extract([
|
|
306
|
+
"user.read",
|
|
307
|
+
"user.create",
|
|
308
|
+
"user.edit",
|
|
309
|
+
"user.search"
|
|
310
|
+
]);
|
|
311
|
+
var ScopesWithRoleOption = UserScopeType.extract(["user.edit", "user.create"]);
|
|
312
|
+
var UserScopeV2 = z6.discriminatedUnion("type", [
|
|
313
|
+
z6.object({
|
|
314
|
+
type: ScopesWithRoleOption,
|
|
315
|
+
options: AllUserScopeOptions.optional()
|
|
316
|
+
}),
|
|
317
|
+
z6.object({
|
|
318
|
+
type: UserScopeType.extract(["user.read", "user.search"]),
|
|
319
|
+
options: AccessLevelOptions.optional()
|
|
320
|
+
})
|
|
321
|
+
]);
|
|
289
322
|
var ResolvedRecordScopeV2 = z6.discriminatedUnion("type", [
|
|
290
323
|
z6.object({
|
|
291
324
|
type: ScopesWithPlaceEventOptions,
|
|
@@ -306,16 +339,14 @@ var ResolvedRecordScopeV2 = z6.discriminatedUnion("type", [
|
|
|
306
339
|
}).optional()
|
|
307
340
|
})
|
|
308
341
|
]).describe("Resolved scope with location/user IDs instead of filters.");
|
|
309
|
-
var SystemScopeType = z6.enum([
|
|
310
|
-
"organisation.read-locations",
|
|
311
|
-
"user.read",
|
|
312
|
-
"user.create",
|
|
313
|
-
"user.edit"
|
|
314
|
-
]);
|
|
315
342
|
var Scope2 = z6.discriminatedUnion("type", [
|
|
316
343
|
z6.object({ type: PlainScopeType }),
|
|
317
344
|
...RecordScopeV2.options,
|
|
318
|
-
|
|
345
|
+
...UserScopeV2.options,
|
|
346
|
+
z6.object({
|
|
347
|
+
type: z6.literal("organisation.read-locations"),
|
|
348
|
+
options: AccessLevelOptions.optional()
|
|
349
|
+
}),
|
|
319
350
|
z6.object({
|
|
320
351
|
type: z6.literal("workqueue"),
|
|
321
352
|
options: WorkqueueOrDashboardOptions
|
|
@@ -335,7 +366,9 @@ var ScopeType2 = z6.enum([
|
|
|
335
366
|
var EncodedScope2 = z6.string().brand("EncodedScope");
|
|
336
367
|
var DEFAULT_SCOPE_OPTIONS = {
|
|
337
368
|
placeOfEvent: JurisdictionFilter.enum.all,
|
|
338
|
-
accessLevel: JurisdictionFilter.enum.all
|
|
369
|
+
accessLevel: JurisdictionFilter.enum.all,
|
|
370
|
+
registeredIn: JurisdictionFilter.enum.all,
|
|
371
|
+
declaredIn: JurisdictionFilter.enum.all
|
|
339
372
|
};
|
|
340
373
|
|
|
341
374
|
// ../commons/src/users/userReferences.ts
|
|
@@ -422,6 +455,9 @@ function not(condition) {
|
|
|
422
455
|
function never() {
|
|
423
456
|
return not(alwaysTrue());
|
|
424
457
|
}
|
|
458
|
+
function always() {
|
|
459
|
+
return defineConditional(alwaysTrue());
|
|
460
|
+
}
|
|
425
461
|
function jsonFieldPath(field) {
|
|
426
462
|
return [field.$$field, ...field.$$subfield].join("/");
|
|
427
463
|
}
|
|
@@ -969,7 +1005,54 @@ function createFieldConditionals(fieldId) {
|
|
|
969
1005
|
}
|
|
970
1006
|
},
|
|
971
1007
|
required: [fieldId]
|
|
972
|
-
})
|
|
1008
|
+
}),
|
|
1009
|
+
/**
|
|
1010
|
+
* Custom client-side validator. The provided function is serialised and executed
|
|
1011
|
+
* just-in-time on the client only. External references (e.g. lodash) are not
|
|
1012
|
+
* available inside the function body — all logic must be self-contained.
|
|
1013
|
+
*
|
|
1014
|
+
* @example
|
|
1015
|
+
* field('nid').customClientValidator((value) => {
|
|
1016
|
+
* // LUHN check — all logic must be inline
|
|
1017
|
+
* const digits = String(value).split('').map(Number)
|
|
1018
|
+
* // ...
|
|
1019
|
+
* return isValid
|
|
1020
|
+
* })
|
|
1021
|
+
*/
|
|
1022
|
+
customClientValidator(validationFn) {
|
|
1023
|
+
const code = validationFn.toString();
|
|
1024
|
+
return defineFormConditional({
|
|
1025
|
+
type: "object",
|
|
1026
|
+
properties: wrapToPath(
|
|
1027
|
+
{ [fieldId]: { customClientValidator: { code } } },
|
|
1028
|
+
this.$$subfield
|
|
1029
|
+
),
|
|
1030
|
+
required: [fieldId]
|
|
1031
|
+
});
|
|
1032
|
+
},
|
|
1033
|
+
/**
|
|
1034
|
+
* Custom client-side evaluation. Returns a {@link FieldReference} descriptor
|
|
1035
|
+
* that can be used as the `value` property or a DATA component entry.
|
|
1036
|
+
* The function receives the referenced field's value as the first argument and
|
|
1037
|
+
* the full form context as the second; its return value replaces the field reference.
|
|
1038
|
+
* The function is serialised and executed just-in-time on the client only.
|
|
1039
|
+
* External references (e.g. lodash) are not available inside the function body.
|
|
1040
|
+
*
|
|
1041
|
+
* For computing a default value without referencing a specific field, use
|
|
1042
|
+
* `evaluate(fn)` in the `defaultValue` property instead.
|
|
1043
|
+
*
|
|
1044
|
+
* @example
|
|
1045
|
+
* field('a').customClientEvaluation((aValue, ctx) =>
|
|
1046
|
+
* Number(aValue) + Number(ctx.$form.b)
|
|
1047
|
+
* )
|
|
1048
|
+
*/
|
|
1049
|
+
customClientEvaluation(computationFn) {
|
|
1050
|
+
return {
|
|
1051
|
+
$$code: computationFn.toString(),
|
|
1052
|
+
$$field: fieldId,
|
|
1053
|
+
$$subfield: this.$$subfield
|
|
1054
|
+
};
|
|
1055
|
+
}
|
|
973
1056
|
};
|
|
974
1057
|
}
|
|
975
1058
|
|