@opencrvs/toolkit 2.0.0-rc.fdc585a → 2.0.0-rc.ff04b30
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 +73 -0
- package/create-countryconfig/package.json +11 -0
- package/dist/application-config/index.js +27 -28
- package/dist/cli.js +392 -128
- package/dist/commons/api/router.d.ts +3301 -247
- package/dist/commons/conditionals/validate.d.ts +1 -0
- package/dist/commons/events/ActionInput.d.ts +108 -0
- package/dist/commons/events/Draft.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/WorkqueueConfig.d.ts +146 -146
- package/dist/commons/events/locations.d.ts +21 -0
- 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/index.d.ts +0 -4
- package/dist/commons/events/state/utils.d.ts +0 -2
- package/dist/commons/events/utils.d.ts +1 -1
- package/dist/conditionals/index.js +3 -1
- package/dist/events/index.js +109 -76
- 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 +390 -126
- 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 +41 -46
- package/dist/scopes/index.js +3 -1
- package/opencrvs-toolkit-2.0.0-rc.ff04b30.tgz +0 -0
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/opencrvs-toolkit-2.0.0-rc.fdc585a.tgz +0 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
5
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
|
+
*
|
|
8
|
+
* OpenCRVS is also distributed under the terms of the Civil Registration
|
|
9
|
+
* & Healthcare Disclaimer located at http://opencrvs.org/license.
|
|
10
|
+
*
|
|
11
|
+
* Copyright (C) The OpenCRVS Authors located at https://github.com/opencrvs/opencrvs-core/blob/master/AUTHORS.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
const { execSync } = require('child_process')
|
|
15
|
+
const path = require('path')
|
|
16
|
+
const fs = require('fs')
|
|
17
|
+
|
|
18
|
+
const REPO_URL = 'https://github.com/opencrvs/opencrvs-countryconfig.git'
|
|
19
|
+
|
|
20
|
+
const projectName = process.argv[2]
|
|
21
|
+
|
|
22
|
+
if (!projectName) {
|
|
23
|
+
console.error(
|
|
24
|
+
'Please specify a project name:\n\n npm create @opencrvs/countryconfig <project-name>\n'
|
|
25
|
+
)
|
|
26
|
+
process.exit(1)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const targetDir = path.resolve(process.cwd(), projectName)
|
|
30
|
+
|
|
31
|
+
if (fs.existsSync(targetDir)) {
|
|
32
|
+
console.error(`Error: Directory "${projectName}" already exists.`)
|
|
33
|
+
process.exit(1)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
console.log(`\nScaffolding OpenCRVS country config in ./${projectName}...\n`)
|
|
37
|
+
|
|
38
|
+
try {
|
|
39
|
+
execSync(`git clone --depth 1 ${REPO_URL} ${projectName}`, {
|
|
40
|
+
stdio: 'inherit'
|
|
41
|
+
})
|
|
42
|
+
} catch (err) {
|
|
43
|
+
console.error('Failed to clone the repository:', err.message)
|
|
44
|
+
process.exit(1)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
try {
|
|
48
|
+
fs.rmSync(path.join(targetDir, '.git'), { recursive: true, force: true })
|
|
49
|
+
} catch (err) {
|
|
50
|
+
console.error('Failed to remove .git directory:', err.message)
|
|
51
|
+
process.exit(1)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const pkgPath = path.join(targetDir, 'package.json')
|
|
55
|
+
if (fs.existsSync(pkgPath)) {
|
|
56
|
+
try {
|
|
57
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'))
|
|
58
|
+
pkg.name = projectName
|
|
59
|
+
fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n')
|
|
60
|
+
} catch (err) {
|
|
61
|
+
console.error('Failed to update package.json:', err.message)
|
|
62
|
+
process.exit(1)
|
|
63
|
+
}
|
|
64
|
+
} else {
|
|
65
|
+
console.warn(
|
|
66
|
+
`Warning: No package.json found in the cloned repository. Project name was not updated.`
|
|
67
|
+
)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
console.log(`\nDone! To get started:\n`)
|
|
71
|
+
console.log(` cd ${projectName}`)
|
|
72
|
+
console.log(` git init`)
|
|
73
|
+
console.log(` npm install\n`)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@opencrvs/create-countryconfig",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Scaffold a new OpenCRVS country configuration",
|
|
5
|
+
"bin": {
|
|
6
|
+
"create-countryconfig": "./index.js"
|
|
7
|
+
},
|
|
8
|
+
"files": ["index.js"],
|
|
9
|
+
"keywords": ["opencrvs", "countryconfig", "create"],
|
|
10
|
+
"license": "MPL-2.0"
|
|
11
|
+
}
|
|
@@ -75,7 +75,10 @@ var ActionConditional = z.discriminatedUnion("type", [
|
|
|
75
75
|
ShowConditional,
|
|
76
76
|
// Action can be shown to the user in the list but as disabled
|
|
77
77
|
EnableConditional
|
|
78
|
-
])
|
|
78
|
+
]).meta({
|
|
79
|
+
description: "Action conditional configuration",
|
|
80
|
+
id: "ActionConditional"
|
|
81
|
+
});
|
|
79
82
|
var DisplayOnReviewConditional = z.object({
|
|
80
83
|
type: z.literal(ConditionalType.DISPLAY_ON_REVIEW),
|
|
81
84
|
conditional: Conditional
|
|
@@ -418,28 +421,20 @@ function schemaPriority(schema) {
|
|
|
418
421
|
return idx === -1 ? 9999 : idx;
|
|
419
422
|
}
|
|
420
423
|
function safeUnion(schemas) {
|
|
424
|
+
const sortedSchemas = [...schemas].sort(
|
|
425
|
+
(a, b) => schemaPriority(a) - schemaPriority(b)
|
|
426
|
+
);
|
|
421
427
|
return z7.any().superRefine((val, ctx) => {
|
|
422
|
-
const
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
if (successful.length === 0) {
|
|
427
|
-
ctx.addIssue({
|
|
428
|
-
code: "invalid_type",
|
|
429
|
-
expected: "custom",
|
|
430
|
-
message: "Value does not match any schema"
|
|
431
|
-
});
|
|
432
|
-
return;
|
|
433
|
-
}
|
|
434
|
-
successful.sort((a, b) => schemaPriority(a) - schemaPriority(b));
|
|
435
|
-
const best = successful[0];
|
|
436
|
-
if (!best.safeParse(val).success) {
|
|
437
|
-
ctx.addIssue({
|
|
438
|
-
expected: "custom",
|
|
439
|
-
code: "invalid_type",
|
|
440
|
-
message: "Value did not match the best schema"
|
|
441
|
-
});
|
|
428
|
+
for (const schema of sortedSchemas) {
|
|
429
|
+
if (schema.safeParse(val).success) {
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
442
432
|
}
|
|
433
|
+
ctx.addIssue({
|
|
434
|
+
code: "invalid_type",
|
|
435
|
+
expected: "custom",
|
|
436
|
+
message: "Value does not match any schema"
|
|
437
|
+
});
|
|
443
438
|
}).meta({
|
|
444
439
|
description: "Value that matches exactly one of the possible schema types (TextValue, DateValue, DateRangeFieldValue). The best matching schema is chosen by priority."
|
|
445
440
|
});
|
|
@@ -839,7 +834,9 @@ var ScopeType = z11.enum([
|
|
|
839
834
|
var EncodedScope = z11.string().brand("EncodedScope");
|
|
840
835
|
var DEFAULT_SCOPE_OPTIONS = {
|
|
841
836
|
placeOfEvent: JurisdictionFilter.enum.all,
|
|
842
|
-
accessLevel: JurisdictionFilter.enum.all
|
|
837
|
+
accessLevel: JurisdictionFilter.enum.all,
|
|
838
|
+
registeredIn: JurisdictionFilter.enum.all,
|
|
839
|
+
declaredIn: JurisdictionFilter.enum.all
|
|
843
840
|
};
|
|
844
841
|
|
|
845
842
|
// ../commons/src/authentication.ts
|
|
@@ -1085,6 +1082,9 @@ var FlagConfig = z14.object({
|
|
|
1085
1082
|
"Indicates if this flag expects an action to be performed to be cleared."
|
|
1086
1083
|
),
|
|
1087
1084
|
label: TranslationConfig.describe("Human readable label of the flag.")
|
|
1085
|
+
}).meta({
|
|
1086
|
+
description: "Flag configuration",
|
|
1087
|
+
id: "FlagConfig"
|
|
1088
1088
|
});
|
|
1089
1089
|
var ActionFlagConfig = z14.object({
|
|
1090
1090
|
id: Flag,
|
|
@@ -1092,6 +1092,9 @@ var ActionFlagConfig = z14.object({
|
|
|
1092
1092
|
conditional: Conditional.optional().describe(
|
|
1093
1093
|
"When conditional is met, the operation is performed on the flag. If not provided, the operation is performed unconditionally."
|
|
1094
1094
|
)
|
|
1095
|
+
}).meta({
|
|
1096
|
+
description: "Action flag configuration",
|
|
1097
|
+
id: "ActionFlagConfig"
|
|
1095
1098
|
});
|
|
1096
1099
|
|
|
1097
1100
|
// ../commons/src/events/EventMetadata.ts
|
|
@@ -1113,8 +1116,7 @@ var ActionCreationMetadata = z15.object({
|
|
|
1113
1116
|
),
|
|
1114
1117
|
createdByUserType: z15.enum(["user", "system"]).nullish().describe("Whether the user is a normal user or a system."),
|
|
1115
1118
|
acceptedAt: z15.iso.datetime().describe("Timestamp when the action request was accepted."),
|
|
1116
|
-
createdByRole: z15.string().optional().describe("Role of the user at the time of action request creation.")
|
|
1117
|
-
createdBySignature: z15.string().nullish().describe("Signature of the user who created the action request.")
|
|
1119
|
+
createdByRole: z15.string().optional().describe("Role of the user at the time of action request creation.")
|
|
1118
1120
|
});
|
|
1119
1121
|
var RegistrationCreationMetadata = ActionCreationMetadata.extend({
|
|
1120
1122
|
registrationNumber: z15.string().describe(
|
|
@@ -1142,9 +1144,6 @@ var EventMetadata = z15.object({
|
|
|
1142
1144
|
createdAtLocation: UUID.nullish().describe(
|
|
1143
1145
|
"Location of the user who created the event."
|
|
1144
1146
|
),
|
|
1145
|
-
createdBySignature: DocumentPath.nullish().describe(
|
|
1146
|
-
"Signature of the user who created the event."
|
|
1147
|
-
),
|
|
1148
1147
|
updatedAtLocation: UUID.nullish().describe(
|
|
1149
1148
|
"Location of the user who last changed the status."
|
|
1150
1149
|
),
|
|
@@ -1408,7 +1407,7 @@ var FieldId = import_v43.default.string().superRefine((val, ctx) => {
|
|
|
1408
1407
|
}
|
|
1409
1408
|
}).describe("Unique identifier for the field");
|
|
1410
1409
|
var FieldReference = import_v43.default.object({
|
|
1411
|
-
$$field: FieldId,
|
|
1410
|
+
$$field: FieldId.describe("Id of the field to reference"),
|
|
1412
1411
|
$$subfield: import_v43.default.array(import_v43.default.string()).optional().default([]).describe(
|
|
1413
1412
|
'If the FieldValue is an object, subfield can be used to refer to e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
|
|
1414
1413
|
)
|