@opencrvs/toolkit 1.8.0-rc.fcd89ec → 1.8.0-rc.fcf7cb3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commons/api/router.d.ts +8046 -8610
- package/dist/commons/conditionals/conditionals.d.ts +8 -15
- package/dist/commons/conditionals/validate.d.ts +14 -0
- package/dist/commons/events/ActionConfig.d.ts +68541 -36072
- package/dist/commons/events/ActionDocument.d.ts +3961 -1227
- package/dist/commons/events/ActionInput.d.ts +3138 -966
- package/dist/commons/events/ActionType.d.ts +4 -0
- package/dist/commons/events/AdvancedSearchConfig.d.ts +414 -71
- package/dist/commons/events/CompositeFieldValue.d.ts +37 -9
- package/dist/commons/events/Constants.d.ts +3 -0
- package/dist/commons/events/CountryConfigQueryInput.d.ts +4132 -0
- package/dist/commons/events/CreatedAtLocation.d.ts +1 -2
- package/dist/commons/events/Draft.d.ts +271 -93
- package/dist/commons/events/EventConfig.d.ts +33783 -18386
- package/dist/commons/events/EventDocument.d.ts +2522 -816
- package/dist/commons/events/EventIndex.d.ts +1411 -313
- package/dist/commons/events/EventInput.d.ts +0 -13
- package/dist/commons/events/EventMetadata.d.ts +113 -76
- package/dist/commons/events/FieldConfig.d.ts +4017 -1558
- package/dist/commons/events/FieldType.d.ts +10 -1
- package/dist/commons/events/FieldTypeMapping.d.ts +149 -75
- package/dist/commons/events/FieldValue.d.ts +87 -20
- package/dist/commons/events/FormConfig.d.ts +18663 -8055
- package/dist/commons/events/PageConfig.d.ts +4601 -1945
- package/dist/commons/events/SummaryConfig.d.ts +0 -5
- package/dist/commons/events/User.d.ts +34 -7
- package/dist/commons/events/WorkqueueColumnConfig.d.ts +53 -0
- package/dist/commons/events/WorkqueueConfig.d.ts +7802 -308
- package/dist/commons/events/defineConfig.d.ts +3535 -860
- package/dist/commons/events/event.d.ts +21 -21
- package/dist/commons/events/field.d.ts +36 -10
- package/dist/commons/events/index.d.ts +5 -0
- package/dist/commons/events/scopes.d.ts +1 -2
- package/dist/commons/events/serializer.d.ts +2 -0
- package/dist/commons/events/test.utils.d.ts +206 -52
- package/dist/commons/events/transactions.d.ts +1 -1
- package/dist/commons/events/utils.d.ts +14324 -1570
- package/dist/commons/events/workqueueDefaultColumns.d.ts +3 -0
- package/dist/conditionals/index.js +70 -62
- package/dist/events/index.js +3527 -1656
- package/dist/scopes/index.d.ts +96 -7
- package/dist/scopes/index.js +105 -26
- package/package.json +3 -3
- package/tsconfig.json +1 -1
- package/dist/commons/conditionals/conditionals.test.d.ts +0 -2
- package/dist/commons/conditionals/validate-address.test.d.ts +0 -2
- package/dist/commons/conditionals/validate.test.d.ts +0 -2
- package/dist/commons/events/utils.test.d.ts +0 -2
package/dist/scopes/index.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import { z } from 'zod';
|
2
|
+
import { SearchScopeAccessLevels } from './events';
|
2
3
|
export declare const SCOPES: {
|
3
4
|
readonly NATLSYSADMIN: "natlsysadmin";
|
4
5
|
readonly BYPASSRATELIMIT: "bypassratelimit";
|
@@ -85,8 +86,79 @@ export declare const SCOPES: {
|
|
85
86
|
readonly CONFIG_UPDATE_ALL: "config.update:all";
|
86
87
|
readonly USER_DATA_SEEDING: "user.data-seeding";
|
87
88
|
};
|
88
|
-
declare const
|
89
|
-
declare const
|
89
|
+
export declare const SearchScopes: z.ZodUnion<[z.ZodLiteral<"search.birth:my-jurisdiction">, z.ZodLiteral<"search.birth">, z.ZodLiteral<"search.death:my-jurisdiction">, z.ZodLiteral<"search.death">, z.ZodLiteral<"search.marriage:my-jurisdiction">, z.ZodLiteral<"search.marriage">]>;
|
90
|
+
declare const LiteralScopes: z.ZodUnion<[z.ZodUnion<[z.ZodLiteral<"natlsysadmin">, z.ZodLiteral<"bypassratelimit">, z.ZodLiteral<"declare">, z.ZodLiteral<"register">, z.ZodLiteral<"validate">, z.ZodLiteral<"demo">, z.ZodLiteral<"certify">, z.ZodLiteral<"performance">, z.ZodLiteral<"sysadmin">, z.ZodLiteral<"teams">, z.ZodLiteral<"config">]>, z.ZodUnion<[z.ZodLiteral<"webhook">, z.ZodLiteral<"nationalId">, z.ZodLiteral<"notification-api">, z.ZodLiteral<"recordsearch">]>, z.ZodLiteral<"record.unassign-others">, z.ZodUnion<[z.ZodLiteral<"record.declare-birth">, z.ZodLiteral<"record.import">, z.ZodLiteral<"record.declare-birth">, z.ZodLiteral<"record.declare-birth:my-jurisdiction">, z.ZodLiteral<"record.declare-death">, z.ZodLiteral<"record.declare-death:my-jurisdiction">, z.ZodLiteral<"record.declare-marriage">, z.ZodLiteral<"record.declare-marriage:my-jurisdiction">, z.ZodLiteral<"record.declaration-submit-incomplete">, z.ZodLiteral<"record.declaration-submit-for-review">]>, z.ZodUnion<[z.ZodLiteral<"record.declaration-submit-for-approval">, z.ZodLiteral<"record.declaration-submit-for-updates">, z.ZodLiteral<"record.declaration-edit">, z.ZodLiteral<"record.review-duplicates">, z.ZodLiteral<"record.declaration-archive">, z.ZodLiteral<"record.declaration-reinstate">]>, z.ZodLiteral<"record.register">, z.ZodUnion<[z.ZodLiteral<"record.export-records">, z.ZodLiteral<"record.declaration-print">, z.ZodLiteral<"record.declaration-print-supporting-documents">, z.ZodLiteral<"record.registration-print">, z.ZodLiteral<"record.registration-print&issue-certified-copies">, z.ZodLiteral<"record.registration-print-certified-copies">, z.ZodLiteral<"record.registration-bulk-print-certified-copies">, z.ZodLiteral<"record.registration-verify-certified-copies">]>, z.ZodUnion<[z.ZodLiteral<"record.registration-request-correction">, z.ZodLiteral<"record.registration-correct">, z.ZodLiteral<"record.registration-request-revocation">, z.ZodLiteral<"record.registration-revoke">, z.ZodLiteral<"record.registration-request-reinstatement">, z.ZodLiteral<"record.registration-reinstate">, z.ZodLiteral<"record.confirm-registration">, z.ZodLiteral<"record.reject-registration">]>, z.ZodUnion<[z.ZodLiteral<"search.birth:my-jurisdiction">, z.ZodLiteral<"search.birth">, z.ZodLiteral<"search.death:my-jurisdiction">, z.ZodLiteral<"search.death">, z.ZodLiteral<"search.marriage:my-jurisdiction">, z.ZodLiteral<"search.marriage">]>, z.ZodUnion<[z.ZodLiteral<"record.read">, z.ZodLiteral<"record.read-audit">, z.ZodLiteral<"record.read-comments">, z.ZodLiteral<"record.create-comments">]>, z.ZodUnion<[z.ZodLiteral<"profile.update">, z.ZodLiteral<"profile.electronic-signature">]>, z.ZodUnion<[z.ZodLiteral<"performance.read">, z.ZodLiteral<"performance.read-dashboards">, z.ZodLiteral<"performance.vital-statistics-export">]>, z.ZodUnion<[z.ZodLiteral<"organisation.read-locations:all">, z.ZodLiteral<"organisation.read-locations:my-office">, z.ZodLiteral<"organisation.read-locations:my-jurisdiction">]>, z.ZodUnion<[z.ZodLiteral<"user.read:all">, z.ZodLiteral<"user.read:my-office">, z.ZodLiteral<"user.read:my-jurisdiction">, z.ZodLiteral<"user.read:only-my-audit">, z.ZodLiteral<"user.create:all">, z.ZodLiteral<"user.create:my-jurisdiction">, z.ZodLiteral<"user.update:all">, z.ZodLiteral<"user.update:my-jurisdiction">]>, z.ZodLiteral<"config.update:all">, z.ZodLiteral<"user.data-seeding">]>;
|
91
|
+
declare const NotifyRecordScope: z.ZodObject<{
|
92
|
+
type: z.ZodLiteral<"record.notify">;
|
93
|
+
options: z.ZodObject<{
|
94
|
+
event: z.ZodArray<z.ZodString, "many">;
|
95
|
+
}, "strip", z.ZodTypeAny, {
|
96
|
+
event: string[];
|
97
|
+
}, {
|
98
|
+
event: string[];
|
99
|
+
}>;
|
100
|
+
}, "strip", z.ZodTypeAny, {
|
101
|
+
type: "record.notify";
|
102
|
+
options: {
|
103
|
+
event: string[];
|
104
|
+
};
|
105
|
+
}, {
|
106
|
+
type: "record.notify";
|
107
|
+
options: {
|
108
|
+
event: string[];
|
109
|
+
};
|
110
|
+
}>;
|
111
|
+
declare const SearchScope: z.ZodObject<{
|
112
|
+
type: z.ZodLiteral<"search">;
|
113
|
+
options: z.ZodObject<{
|
114
|
+
event: z.ZodArray<z.ZodString, "many">;
|
115
|
+
access: z.ZodArray<z.ZodEnum<["my-jurisdiction", "all"]>, "many">;
|
116
|
+
}, "strip", z.ZodTypeAny, {
|
117
|
+
event: string[];
|
118
|
+
access: ("my-jurisdiction" | "all")[];
|
119
|
+
}, {
|
120
|
+
event: string[];
|
121
|
+
access: ("my-jurisdiction" | "all")[];
|
122
|
+
}>;
|
123
|
+
}, "strip", z.ZodTypeAny, {
|
124
|
+
type: "search";
|
125
|
+
options: {
|
126
|
+
event: string[];
|
127
|
+
access: ("my-jurisdiction" | "all")[];
|
128
|
+
};
|
129
|
+
}, {
|
130
|
+
type: "search";
|
131
|
+
options: {
|
132
|
+
event: string[];
|
133
|
+
access: ("my-jurisdiction" | "all")[];
|
134
|
+
};
|
135
|
+
}>;
|
136
|
+
export type SearchScope = z.infer<typeof SearchScope>;
|
137
|
+
declare const ConfigurableRawScopes: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
138
|
+
type: z.ZodLiteral<"search">;
|
139
|
+
options: z.ZodObject<{
|
140
|
+
event: z.ZodArray<z.ZodString, "many">;
|
141
|
+
access: z.ZodArray<z.ZodEnum<["my-jurisdiction", "all"]>, "many">;
|
142
|
+
}, "strip", z.ZodTypeAny, {
|
143
|
+
event: string[];
|
144
|
+
access: ("my-jurisdiction" | "all")[];
|
145
|
+
}, {
|
146
|
+
event: string[];
|
147
|
+
access: ("my-jurisdiction" | "all")[];
|
148
|
+
}>;
|
149
|
+
}, "strip", z.ZodTypeAny, {
|
150
|
+
type: "search";
|
151
|
+
options: {
|
152
|
+
event: string[];
|
153
|
+
access: ("my-jurisdiction" | "all")[];
|
154
|
+
};
|
155
|
+
}, {
|
156
|
+
type: "search";
|
157
|
+
options: {
|
158
|
+
event: string[];
|
159
|
+
access: ("my-jurisdiction" | "all")[];
|
160
|
+
};
|
161
|
+
}>, z.ZodObject<{
|
90
162
|
type: z.ZodLiteral<"user.create">;
|
91
163
|
options: z.ZodObject<{
|
92
164
|
role: z.ZodArray<z.ZodString, "many">;
|
@@ -163,8 +235,15 @@ declare const ConfigurableScopes: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
163
235
|
event: string[];
|
164
236
|
};
|
165
237
|
}>]>;
|
166
|
-
|
167
|
-
export type
|
238
|
+
type ConfigurableRawScopes = z.infer<typeof ConfigurableRawScopes>;
|
239
|
+
export type ConfigurableScopeType = ConfigurableRawScopes['type'];
|
240
|
+
type FlattenedSearchScope = {
|
241
|
+
type: 'search';
|
242
|
+
options: Record<string, SearchScopeAccessLevels>;
|
243
|
+
};
|
244
|
+
export type ConfigurableScopes = Exclude<ConfigurableRawScopes, {
|
245
|
+
type: 'search';
|
246
|
+
}> | FlattenedSearchScope;
|
168
247
|
export declare function findScope<T extends ConfigurableScopeType>(scopes: string[], scopeType: T): Extract<{
|
169
248
|
type: "user.create";
|
170
249
|
options: {
|
@@ -193,16 +272,24 @@ export declare function findScope<T extends ConfigurableScopeType>(scopes: strin
|
|
193
272
|
};
|
194
273
|
}, {
|
195
274
|
type: T;
|
275
|
+
}> | Extract<FlattenedSearchScope, {
|
276
|
+
type: T;
|
196
277
|
}> | undefined;
|
197
278
|
/**
|
198
|
-
* Parses a configurable scope string into a
|
279
|
+
* Parses a configurable scope string into a ConfigurableRawScopes object.
|
199
280
|
* @param {string} scope - The scope string to parse
|
200
|
-
* @returns {
|
281
|
+
* @returns {ConfigurableRawScopes | undefined} The parsed scope object if valid, undefined otherwise
|
201
282
|
* @example
|
202
283
|
* parseScope("user.create[role=field-agent|registration-agent]")
|
203
284
|
* // Returns: { type: "user.create", options: { role: ["field-agent", "registration-agent"] } }
|
204
285
|
*/
|
205
286
|
export declare function parseScope(scope: string): {
|
287
|
+
type: "search";
|
288
|
+
options: {
|
289
|
+
event: string[];
|
290
|
+
access: ("my-jurisdiction" | "all")[];
|
291
|
+
};
|
292
|
+
} | {
|
206
293
|
type: "user.create";
|
207
294
|
options: {
|
208
295
|
role: string[];
|
@@ -236,10 +323,12 @@ export declare function parseScope(scope: string): {
|
|
236
323
|
* })
|
237
324
|
* // Returns: "record.notify[event=v2.birth|tennis-club-membership]"
|
238
325
|
*/
|
239
|
-
export declare function stringifyScope(scope:
|
326
|
+
export declare function stringifyScope(scope: z.infer<typeof NotifyRecordScope>): string;
|
240
327
|
export declare const scopes: Scope[];
|
241
328
|
export type ParsedScopes = NonNullable<ReturnType<typeof parseScope>>;
|
242
329
|
export type RawScopes = z.infer<typeof LiteralScopes> | (string & {});
|
243
330
|
export type Scope = RawScopes;
|
331
|
+
export declare const ActionScopes: z.ZodUnion<[z.ZodUnion<[z.ZodLiteral<"record.declare-birth">, z.ZodLiteral<"record.import">, z.ZodLiteral<"record.declare-birth">, z.ZodLiteral<"record.declare-birth:my-jurisdiction">, z.ZodLiteral<"record.declare-death">, z.ZodLiteral<"record.declare-death:my-jurisdiction">, z.ZodLiteral<"record.declare-marriage">, z.ZodLiteral<"record.declare-marriage:my-jurisdiction">, z.ZodLiteral<"record.declaration-submit-incomplete">, z.ZodLiteral<"record.declaration-submit-for-review">]>, z.ZodUnion<[z.ZodLiteral<"record.declaration-submit-for-approval">, z.ZodLiteral<"record.declaration-submit-for-updates">, z.ZodLiteral<"record.declaration-edit">, z.ZodLiteral<"record.review-duplicates">, z.ZodLiteral<"record.declaration-archive">, z.ZodLiteral<"record.declaration-reinstate">]>, z.ZodLiteral<"record.register">, z.ZodUnion<[z.ZodLiteral<"record.export-records">, z.ZodLiteral<"record.declaration-print">, z.ZodLiteral<"record.declaration-print-supporting-documents">, z.ZodLiteral<"record.registration-print">, z.ZodLiteral<"record.registration-print&issue-certified-copies">, z.ZodLiteral<"record.registration-print-certified-copies">, z.ZodLiteral<"record.registration-bulk-print-certified-copies">, z.ZodLiteral<"record.registration-verify-certified-copies">]>, z.ZodUnion<[z.ZodLiteral<"record.registration-request-correction">, z.ZodLiteral<"record.registration-correct">, z.ZodLiteral<"record.registration-request-revocation">, z.ZodLiteral<"record.registration-revoke">, z.ZodLiteral<"record.registration-request-reinstatement">, z.ZodLiteral<"record.registration-reinstate">, z.ZodLiteral<"record.confirm-registration">, z.ZodLiteral<"record.reject-registration">]>]>;
|
332
|
+
export type ActionScopes = z.infer<typeof ActionScopes>;
|
244
333
|
export {};
|
245
334
|
//# sourceMappingURL=scopes.d.ts.map
|
package/dist/scopes/index.js
CHANGED
@@ -20,7 +20,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
20
20
|
// src/scopes/index.ts
|
21
21
|
var scopes_exports = {};
|
22
22
|
__export(scopes_exports, {
|
23
|
+
ActionScopes: () => ActionScopes,
|
23
24
|
SCOPES: () => SCOPES,
|
25
|
+
SearchScopes: () => SearchScopes,
|
24
26
|
findScope: () => findScope,
|
25
27
|
parseScope: () => parseScope,
|
26
28
|
scopes: () => scopes,
|
@@ -142,7 +144,7 @@ var SCOPES = {
|
|
142
144
|
// data seeding
|
143
145
|
USER_DATA_SEEDING: "user.data-seeding"
|
144
146
|
};
|
145
|
-
var
|
147
|
+
var LegacyScopes = import_zod.z.union([
|
146
148
|
import_zod.z.literal(SCOPES.NATLSYSADMIN),
|
147
149
|
import_zod.z.literal(SCOPES.BYPASSRATELIMIT),
|
148
150
|
import_zod.z.literal(SCOPES.DECLARE),
|
@@ -153,11 +155,16 @@ var LiteralScopes = import_zod.z.union([
|
|
153
155
|
import_zod.z.literal(SCOPES.PERFORMANCE),
|
154
156
|
import_zod.z.literal(SCOPES.SYSADMIN),
|
155
157
|
import_zod.z.literal(SCOPES.TEAMS),
|
156
|
-
import_zod.z.literal(SCOPES.CONFIG)
|
158
|
+
import_zod.z.literal(SCOPES.CONFIG)
|
159
|
+
]);
|
160
|
+
var IntegrationScopes = import_zod.z.union([
|
157
161
|
import_zod.z.literal(SCOPES.WEBHOOK),
|
158
162
|
import_zod.z.literal(SCOPES.NATIONALID),
|
159
163
|
import_zod.z.literal(SCOPES.NOTIFICATION_API),
|
160
|
-
import_zod.z.literal(SCOPES.RECORDSEARCH)
|
164
|
+
import_zod.z.literal(SCOPES.RECORDSEARCH)
|
165
|
+
]);
|
166
|
+
var DeclareScopes = import_zod.z.union([
|
167
|
+
import_zod.z.literal(SCOPES.RECORD_DECLARE),
|
161
168
|
import_zod.z.literal(SCOPES.RECORD_IMPORT),
|
162
169
|
import_zod.z.literal(SCOPES.RECORD_DECLARE_BIRTH),
|
163
170
|
import_zod.z.literal(SCOPES.RECORD_DECLARE_BIRTH_MY_JURISDICTION),
|
@@ -166,15 +173,19 @@ var LiteralScopes = import_zod.z.union([
|
|
166
173
|
import_zod.z.literal(SCOPES.RECORD_DECLARE_MARRIAGE),
|
167
174
|
import_zod.z.literal(SCOPES.RECORD_DECLARE_MARRIAGE_MY_JURISDICTION),
|
168
175
|
import_zod.z.literal(SCOPES.RECORD_SUBMIT_INCOMPLETE),
|
169
|
-
import_zod.z.literal(SCOPES.RECORD_SUBMIT_FOR_REVIEW)
|
170
|
-
|
176
|
+
import_zod.z.literal(SCOPES.RECORD_SUBMIT_FOR_REVIEW)
|
177
|
+
]);
|
178
|
+
var UnassignScope = import_zod.z.literal(SCOPES.RECORD_UNASSIGN_OTHERS);
|
179
|
+
var ValidateScopes = import_zod.z.union([
|
171
180
|
import_zod.z.literal(SCOPES.RECORD_SUBMIT_FOR_APPROVAL),
|
172
181
|
import_zod.z.literal(SCOPES.RECORD_SUBMIT_FOR_UPDATES),
|
173
182
|
import_zod.z.literal(SCOPES.RECORD_DECLARATION_EDIT),
|
174
183
|
import_zod.z.literal(SCOPES.RECORD_REVIEW_DUPLICATES),
|
175
184
|
import_zod.z.literal(SCOPES.RECORD_DECLARATION_ARCHIVE),
|
176
|
-
import_zod.z.literal(SCOPES.RECORD_DECLARATION_REINSTATE)
|
177
|
-
|
185
|
+
import_zod.z.literal(SCOPES.RECORD_DECLARATION_REINSTATE)
|
186
|
+
]);
|
187
|
+
var RegisterScope = import_zod.z.literal(SCOPES.RECORD_REGISTER);
|
188
|
+
var CertifyScopes = import_zod.z.union([
|
178
189
|
import_zod.z.literal(SCOPES.RECORD_EXPORT_RECORDS),
|
179
190
|
import_zod.z.literal(SCOPES.RECORD_DECLARATION_PRINT),
|
180
191
|
import_zod.z.literal(SCOPES.RECORD_PRINT_RECORDS_SUPPORTING_DOCUMENTS),
|
@@ -182,7 +193,9 @@ var LiteralScopes = import_zod.z.union([
|
|
182
193
|
import_zod.z.literal(SCOPES.RECORD_PRINT_ISSUE_CERTIFIED_COPIES),
|
183
194
|
import_zod.z.literal(SCOPES.RECORD_PRINT_CERTIFIED_COPIES),
|
184
195
|
import_zod.z.literal(SCOPES.RECORD_BULK_PRINT_CERTIFIED_COPIES),
|
185
|
-
import_zod.z.literal(SCOPES.RECORD_REGISTRATION_VERIFY_CERTIFIED_COPIES)
|
196
|
+
import_zod.z.literal(SCOPES.RECORD_REGISTRATION_VERIFY_CERTIFIED_COPIES)
|
197
|
+
]);
|
198
|
+
var CorrectionScopes = import_zod.z.union([
|
186
199
|
import_zod.z.literal(SCOPES.RECORD_REGISTRATION_REQUEST_CORRECTION),
|
187
200
|
import_zod.z.literal(SCOPES.RECORD_REGISTRATION_CORRECT),
|
188
201
|
import_zod.z.literal(SCOPES.RECORD_REGISTRATION_REQUEST_REVOCATION),
|
@@ -190,25 +203,37 @@ var LiteralScopes = import_zod.z.union([
|
|
190
203
|
import_zod.z.literal(SCOPES.RECORD_REGISTRATION_REQUEST_REINSTATEMENT),
|
191
204
|
import_zod.z.literal(SCOPES.RECORD_REGISTRATION_REINSTATE),
|
192
205
|
import_zod.z.literal(SCOPES.RECORD_CONFIRM_REGISTRATION),
|
193
|
-
import_zod.z.literal(SCOPES.RECORD_REJECT_REGISTRATION)
|
206
|
+
import_zod.z.literal(SCOPES.RECORD_REJECT_REGISTRATION)
|
207
|
+
]);
|
208
|
+
var SearchScopes = import_zod.z.union([
|
194
209
|
import_zod.z.literal(SCOPES.SEARCH_BIRTH_MY_JURISDICTION),
|
195
210
|
import_zod.z.literal(SCOPES.SEARCH_BIRTH),
|
196
211
|
import_zod.z.literal(SCOPES.SEARCH_DEATH_MY_JURISDICTION),
|
197
212
|
import_zod.z.literal(SCOPES.SEARCH_DEATH),
|
198
213
|
import_zod.z.literal(SCOPES.SEARCH_MARRIAGE_MY_JURISDICTION),
|
199
|
-
import_zod.z.literal(SCOPES.SEARCH_MARRIAGE)
|
214
|
+
import_zod.z.literal(SCOPES.SEARCH_MARRIAGE)
|
215
|
+
]);
|
216
|
+
var AuditScopes = import_zod.z.union([
|
200
217
|
import_zod.z.literal(SCOPES.RECORD_READ),
|
201
218
|
import_zod.z.literal(SCOPES.RECORD_READ_AUDIT),
|
202
219
|
import_zod.z.literal(SCOPES.RECORD_READ_COMMENTS),
|
203
|
-
import_zod.z.literal(SCOPES.RECORD_CREATE_COMMENTS)
|
220
|
+
import_zod.z.literal(SCOPES.RECORD_CREATE_COMMENTS)
|
221
|
+
]);
|
222
|
+
var ProfileScopes = import_zod.z.union([
|
204
223
|
import_zod.z.literal(SCOPES.PROFILE_UPDATE),
|
205
|
-
import_zod.z.literal(SCOPES.PROFILE_ELECTRONIC_SIGNATURE)
|
224
|
+
import_zod.z.literal(SCOPES.PROFILE_ELECTRONIC_SIGNATURE)
|
225
|
+
]);
|
226
|
+
var PerformanceScopes = import_zod.z.union([
|
206
227
|
import_zod.z.literal(SCOPES.PERFORMANCE_READ),
|
207
228
|
import_zod.z.literal(SCOPES.PERFORMANCE_READ_DASHBOARDS),
|
208
|
-
import_zod.z.literal(SCOPES.PERFORMANCE_EXPORT_VITAL_STATISTICS)
|
229
|
+
import_zod.z.literal(SCOPES.PERFORMANCE_EXPORT_VITAL_STATISTICS)
|
230
|
+
]);
|
231
|
+
var OrganisationScopes = import_zod.z.union([
|
209
232
|
import_zod.z.literal(SCOPES.ORGANISATION_READ_LOCATIONS),
|
210
233
|
import_zod.z.literal(SCOPES.ORGANISATION_READ_LOCATIONS_MY_OFFICE),
|
211
|
-
import_zod.z.literal(SCOPES.ORGANISATION_READ_LOCATIONS_MY_JURISDICTION)
|
234
|
+
import_zod.z.literal(SCOPES.ORGANISATION_READ_LOCATIONS_MY_JURISDICTION)
|
235
|
+
]);
|
236
|
+
var UserScopes = import_zod.z.union([
|
212
237
|
import_zod.z.literal(SCOPES.USER_READ),
|
213
238
|
import_zod.z.literal(SCOPES.USER_READ_MY_OFFICE),
|
214
239
|
import_zod.z.literal(SCOPES.USER_READ_MY_JURISDICTION),
|
@@ -216,9 +241,27 @@ var LiteralScopes = import_zod.z.union([
|
|
216
241
|
import_zod.z.literal(SCOPES.USER_CREATE),
|
217
242
|
import_zod.z.literal(SCOPES.USER_CREATE_MY_JURISDICTION),
|
218
243
|
import_zod.z.literal(SCOPES.USER_UPDATE),
|
219
|
-
import_zod.z.literal(SCOPES.USER_UPDATE_MY_JURISDICTION)
|
220
|
-
|
221
|
-
|
244
|
+
import_zod.z.literal(SCOPES.USER_UPDATE_MY_JURISDICTION)
|
245
|
+
]);
|
246
|
+
var ConfigScope = import_zod.z.literal(SCOPES.CONFIG_UPDATE_ALL);
|
247
|
+
var DataSeedingScope = import_zod.z.literal(SCOPES.USER_DATA_SEEDING);
|
248
|
+
var LiteralScopes = import_zod.z.union([
|
249
|
+
LegacyScopes,
|
250
|
+
IntegrationScopes,
|
251
|
+
UnassignScope,
|
252
|
+
DeclareScopes,
|
253
|
+
ValidateScopes,
|
254
|
+
RegisterScope,
|
255
|
+
CertifyScopes,
|
256
|
+
CorrectionScopes,
|
257
|
+
SearchScopes,
|
258
|
+
AuditScopes,
|
259
|
+
ProfileScopes,
|
260
|
+
PerformanceScopes,
|
261
|
+
OrganisationScopes,
|
262
|
+
UserScopes,
|
263
|
+
ConfigScope,
|
264
|
+
DataSeedingScope
|
222
265
|
]);
|
223
266
|
var rawConfigurableScopeRegex = /^([a-zA-Z\.]+)\[((?:\w+=[\w.-]+(?:\|[\w.-]+)*)(?:,[\w]+=[\w.-]+(?:\|[\w.-]+)*)*)\]$/;
|
224
267
|
var rawConfigurableScope = import_zod.z.string().regex(rawConfigurableScopeRegex);
|
@@ -246,18 +289,51 @@ var NotifyRecordScope = import_zod.z.object({
|
|
246
289
|
event: import_zod.z.array(import_zod.z.string())
|
247
290
|
})
|
248
291
|
});
|
249
|
-
var
|
292
|
+
var SearchScope = import_zod.z.object({
|
293
|
+
type: import_zod.z.literal("search"),
|
294
|
+
options: import_zod.z.object({
|
295
|
+
event: import_zod.z.array(import_zod.z.string()).length(1),
|
296
|
+
access: import_zod.z.array(import_zod.z.enum(["my-jurisdiction", "all"])).length(1)
|
297
|
+
})
|
298
|
+
});
|
299
|
+
var ConfigurableRawScopes = import_zod.z.discriminatedUnion("type", [
|
300
|
+
SearchScope,
|
250
301
|
CreateUserScope,
|
251
302
|
EditUserScope,
|
252
303
|
WorkqueueScope,
|
253
304
|
NotifyRecordScope
|
254
305
|
]);
|
306
|
+
function flattenAndMergeScopes(scopes2) {
|
307
|
+
if (scopes2.length === 0) return null;
|
308
|
+
const type = scopes2[0].type;
|
309
|
+
const mergedOptions = {};
|
310
|
+
for (const scope of scopes2) {
|
311
|
+
const entries = Object.entries(scope.options);
|
312
|
+
if (entries.length < 2) continue;
|
313
|
+
const sourceValues = entries[0][1];
|
314
|
+
const targetValues = entries[1][1];
|
315
|
+
for (let i = 0; i < sourceValues.length; i++) {
|
316
|
+
mergedOptions[sourceValues[i]] = targetValues[i];
|
317
|
+
}
|
318
|
+
}
|
319
|
+
return { type, options: mergedOptions };
|
320
|
+
}
|
255
321
|
function findScope(scopes2, scopeType) {
|
256
322
|
const parsedScopes = scopes2.map((rawScope) => parseScope(rawScope));
|
257
|
-
|
258
|
-
|
323
|
+
const searchScopes = parsedScopes.filter((scope) => scope?.type === "search");
|
324
|
+
const otherScopes = parsedScopes.filter((scope) => scope?.type !== "search");
|
325
|
+
const mergedSearchScope = flattenAndMergeScopes(searchScopes);
|
326
|
+
return [...otherScopes, mergedSearchScope].find(
|
327
|
+
(scope) => scope?.type === scopeType
|
259
328
|
);
|
260
329
|
}
|
330
|
+
function getScopeOptions(rawOptions) {
|
331
|
+
return rawOptions.split(",").reduce((acc, option) => {
|
332
|
+
const [key, value] = option.split("=");
|
333
|
+
acc[key] = value.split("|");
|
334
|
+
return acc;
|
335
|
+
}, {});
|
336
|
+
}
|
261
337
|
function parseScope(scope) {
|
262
338
|
const maybeLiteralScope = LiteralScopes.safeParse(scope);
|
263
339
|
if (maybeLiteralScope.success) {
|
@@ -271,16 +347,12 @@ function parseScope(scope) {
|
|
271
347
|
}
|
272
348
|
const rawScope = maybeConfigurableScope.data;
|
273
349
|
const [, type, rawOptions] = rawScope.match(rawConfigurableScopeRegex) ?? [];
|
274
|
-
const options = rawOptions
|
275
|
-
const [key, value] = option.split("=");
|
276
|
-
acc[key] = value.split("|");
|
277
|
-
return acc;
|
278
|
-
}, {});
|
350
|
+
const options = getScopeOptions(rawOptions);
|
279
351
|
const parsedScope = {
|
280
352
|
type,
|
281
353
|
options
|
282
354
|
};
|
283
|
-
const result =
|
355
|
+
const result = ConfigurableRawScopes.safeParse(parsedScope);
|
284
356
|
return result.success ? result.data : void 0;
|
285
357
|
}
|
286
358
|
function stringifyScope(scope) {
|
@@ -288,3 +360,10 @@ function stringifyScope(scope) {
|
|
288
360
|
return `${scope.type}[${options}]`;
|
289
361
|
}
|
290
362
|
var scopes = Object.values(SCOPES);
|
363
|
+
var ActionScopes = import_zod.z.union([
|
364
|
+
DeclareScopes,
|
365
|
+
ValidateScopes,
|
366
|
+
RegisterScope,
|
367
|
+
CertifyScopes,
|
368
|
+
CorrectionScopes
|
369
|
+
]);
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@opencrvs/toolkit",
|
3
|
-
"version": "1.8.0-rc.
|
3
|
+
"version": "1.8.0-rc.fcf7cb3",
|
4
4
|
"description": "OpenCRVS toolkit for building country configurations",
|
5
5
|
"license": "MPL-2.0",
|
6
6
|
"exports": {
|
@@ -19,8 +19,8 @@
|
|
19
19
|
"ajv": "^8.17.1",
|
20
20
|
"ajv-formats": "^3.0.1",
|
21
21
|
"superjson": "1.9.0-0",
|
22
|
-
"@trpc/client": "
|
23
|
-
"@trpc/server": "
|
22
|
+
"@trpc/client": "11.4.3",
|
23
|
+
"@trpc/server": "11.4.3",
|
24
24
|
"zod-openapi": "^4.2.4"
|
25
25
|
},
|
26
26
|
"devDependencies": {
|
package/tsconfig.json
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
"@opencrvs/commons/events": ["../commons/src/events/index.ts"]
|
20
20
|
}
|
21
21
|
},
|
22
|
-
"references": [{ "path": "../commons" }],
|
22
|
+
"references": [{ "path": "../commons/tsconfig-commonjs.json" }],
|
23
23
|
"include": ["src/**/*.ts"],
|
24
24
|
"exclude": ["**/node_modules/**", "dist"]
|
25
25
|
}
|