@iapps/d2-web-sdk 1.1.7 → 1.1.9
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/package.json +1 -1
- package/src/lib/modules/engine/program-rule/program-rule.engine.d.ts +33 -5
- package/src/lib/modules/engine/program-rule/program-rule.engine.js +183 -47
- package/src/lib/modules/engine/program-rule/program-rule.engine.js.map +1 -1
- package/src/lib/modules/engine/program-rule/utils/d2-functions.util.d.ts +6 -2
- package/src/lib/modules/engine/program-rule/utils/d2-functions.util.js +750 -293
- package/src/lib/modules/engine/program-rule/utils/d2-functions.util.js.map +1 -1
- package/src/lib/modules/engine/program-rule/utils/run-d2-expression.util.d.ts +12 -4
- package/src/lib/modules/engine/program-rule/utils/run-d2-expression.util.js +363 -67
- package/src/lib/modules/engine/program-rule/utils/run-d2-expression.util.js.map +1 -1
- package/src/lib/modules/event/models/data-value.model.d.ts +1 -0
- package/src/lib/modules/event/models/event.model.d.ts +11 -0
- package/src/lib/modules/event/models/event.model.js +32 -0
- package/src/lib/modules/event/models/event.model.js.map +1 -1
- package/src/lib/modules/program/models/program-section.model.d.ts +2 -1
- package/src/lib/modules/program/models/program-section.model.js +1 -0
- package/src/lib/modules/program/models/program-section.model.js.map +1 -1
- package/src/lib/modules/program/models/program-stage-section.model.d.ts +2 -1
- package/src/lib/modules/program/models/program-stage-section.model.js +1 -0
- package/src/lib/modules/program/models/program-stage-section.model.js.map +1 -1
- package/src/lib/modules/tracker/helpers/form.helper.d.ts +17 -0
- package/src/lib/modules/tracker/helpers/form.helper.js +64 -0
- package/src/lib/modules/tracker/helpers/form.helper.js.map +1 -0
- package/src/lib/modules/tracker/models/enrollment.model.d.ts +1 -0
- package/src/lib/modules/tracker/models/enrollment.model.js +1 -0
- package/src/lib/modules/tracker/models/enrollment.model.js.map +1 -1
- package/src/lib/modules/tracker/models/tracked-entity-instance.model.d.ts +3 -1
- package/src/lib/modules/tracker/models/tracked-entity-instance.model.js +166 -31
- package/src/lib/modules/tracker/models/tracked-entity-instance.model.js.map +1 -1
- package/src/lib/modules/user/user.module.js +1 -1
- package/src/lib/modules/user/user.module.js.map +1 -1
- package/src/lib/shared/models/pager.model.d.ts +5 -0
- package/src/lib/shared/models/pager.model.js +48 -8
- package/src/lib/shared/models/pager.model.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,8 +1,36 @@
|
|
|
1
|
+
import { Option } from '../../option-set';
|
|
2
|
+
export interface IMetadataRuleAction {
|
|
3
|
+
field: string;
|
|
4
|
+
actionType: string;
|
|
5
|
+
assignedData?: string;
|
|
6
|
+
displayedContent?: string;
|
|
7
|
+
options?: Partial<Option>[];
|
|
8
|
+
programRule?: {
|
|
9
|
+
id: string;
|
|
10
|
+
};
|
|
11
|
+
evaluationTime?: 'ALWAYS' | 'ON_COMPLETE' | 'ON_CREATE' | string;
|
|
12
|
+
}
|
|
13
|
+
type Rule = {
|
|
14
|
+
condition?: string;
|
|
15
|
+
actions?: IMetadataRuleAction[];
|
|
16
|
+
};
|
|
17
|
+
type ExecuteOptions = {
|
|
18
|
+
/** return only triggered actions */
|
|
19
|
+
triggeredOnly?: boolean;
|
|
20
|
+
/** resolve duplicates by field (last wins) */
|
|
21
|
+
dedupeByField?: boolean;
|
|
22
|
+
/** include debug metadata */
|
|
23
|
+
debug?: boolean;
|
|
24
|
+
};
|
|
1
25
|
export declare class ProgramRuleEngine {
|
|
2
|
-
rules
|
|
3
|
-
dataValues
|
|
4
|
-
setRules(rules:
|
|
26
|
+
private rules;
|
|
27
|
+
private dataValues;
|
|
28
|
+
setRules(rules: Rule[]): this;
|
|
5
29
|
setDataValues(dataValues: Record<string, unknown>): this;
|
|
6
|
-
|
|
7
|
-
|
|
30
|
+
execute(options?: ExecuteOptions): IMetadataRuleAction[];
|
|
31
|
+
/** Replace {var} with safe JS literals + resolve d2: functions */
|
|
32
|
+
private prepareExpression;
|
|
33
|
+
private safeEvalBoolean;
|
|
34
|
+
private safeEvalAny;
|
|
8
35
|
}
|
|
36
|
+
export {};
|
|
@@ -1,15 +1,92 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
//
|
|
3
|
-
//
|
|
2
|
+
// /* eslint-disable no-constant-condition */
|
|
3
|
+
// // Copyright 2024 UDSM DHIS2 Lab. All rights reserved.
|
|
4
|
+
// // Use of this source code is governed by a BSD-style
|
|
4
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
6
|
exports.ProgramRuleEngine = void 0;
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
// import { flatten } from 'lodash';
|
|
8
|
+
// import { dhisD2Functions } from './utils';
|
|
9
|
+
// import { format } from 'date-fns';
|
|
10
|
+
// // license that can be found in the LICENSE file.
|
|
11
|
+
// export class ProgramRuleEngine {
|
|
12
|
+
// rules!: any[];
|
|
13
|
+
// dataValues!: Record<string, unknown>;
|
|
14
|
+
// setRules(rules: any[]) {
|
|
15
|
+
// this.rules = rules;
|
|
16
|
+
// return this;
|
|
17
|
+
// }
|
|
18
|
+
// setDataValues(dataValues: Record<string, unknown>) {
|
|
19
|
+
// const currentDate = format(new Date(), 'yyyy-MM-dd');
|
|
20
|
+
// this.dataValues = { ...(dataValues || {}), current_date: currentDate };
|
|
21
|
+
// return this;
|
|
22
|
+
// }
|
|
23
|
+
// getAssignedData(assignedDataExpression: string): string | undefined {
|
|
24
|
+
// let assignedData = assignedDataExpression || '';
|
|
25
|
+
// try {
|
|
26
|
+
// Object.keys(this.dataValues).forEach((key) => {
|
|
27
|
+
// assignedData = assignedData.replace(
|
|
28
|
+
// new RegExp(`{${key}}`, 'g'),
|
|
29
|
+
// `'${this.dataValues[key]}'`
|
|
30
|
+
// );
|
|
31
|
+
// });
|
|
32
|
+
// if (assignedData.includes('d2:')) {
|
|
33
|
+
// assignedData = dhisD2Functions(assignedData, {});
|
|
34
|
+
// }
|
|
35
|
+
// } catch (err: any) {
|
|
36
|
+
// console.warn('Problem processing assigned value', err);
|
|
37
|
+
// return undefined;
|
|
38
|
+
// }
|
|
39
|
+
// return assignedData !== 'NaN' ? assignedData : undefined;
|
|
40
|
+
// }
|
|
41
|
+
// execute(): any[] {
|
|
42
|
+
// return flatten(
|
|
43
|
+
// (this.rules || []).map((rule) => {
|
|
44
|
+
// if (!rule) {
|
|
45
|
+
// return [];
|
|
46
|
+
// }
|
|
47
|
+
// let ruleCondition = rule.condition || '';
|
|
48
|
+
// Object.keys(this.dataValues).forEach((key) => {
|
|
49
|
+
// ruleCondition = ruleCondition.replace(
|
|
50
|
+
// new RegExp(`{${key}}`, 'g'),
|
|
51
|
+
// `'${this.dataValues[key]}'`
|
|
52
|
+
// );
|
|
53
|
+
// });
|
|
54
|
+
// if (ruleCondition.includes('d2:')) {
|
|
55
|
+
// ruleCondition = dhisD2Functions(ruleCondition, {});
|
|
56
|
+
// }
|
|
57
|
+
// let evaluationResult: boolean;
|
|
58
|
+
// try {
|
|
59
|
+
// evaluationResult = eval(ruleCondition);
|
|
60
|
+
// } catch (e) {
|
|
61
|
+
// //
|
|
62
|
+
// }
|
|
63
|
+
// return (rule.actions || []).map((action: Record<string, unknown>) => {
|
|
64
|
+
// const actionType = evaluationResult ? action['actionType'] : '';
|
|
65
|
+
// let assignedData;
|
|
66
|
+
// if (actionType === 'ASSIGN') {
|
|
67
|
+
// assignedData = this.getAssignedData(
|
|
68
|
+
// action['assignedData'] as string
|
|
69
|
+
// );
|
|
70
|
+
// }
|
|
71
|
+
// return {
|
|
72
|
+
// ...action,
|
|
73
|
+
// assignedData,
|
|
74
|
+
// actionType,
|
|
75
|
+
// };
|
|
76
|
+
// });
|
|
77
|
+
// })
|
|
78
|
+
// );
|
|
79
|
+
// }
|
|
80
|
+
// }
|
|
8
81
|
const date_fns_1 = require("date-fns");
|
|
9
|
-
|
|
82
|
+
const run_d2_expression_util_1 = require("./utils/run-d2-expression.util");
|
|
10
83
|
class ProgramRuleEngine {
|
|
84
|
+
constructor() {
|
|
85
|
+
this.rules = [];
|
|
86
|
+
this.dataValues = {};
|
|
87
|
+
}
|
|
11
88
|
setRules(rules) {
|
|
12
|
-
this.rules = rules;
|
|
89
|
+
this.rules = Array.isArray(rules) ? rules : [];
|
|
13
90
|
return this;
|
|
14
91
|
}
|
|
15
92
|
setDataValues(dataValues) {
|
|
@@ -17,52 +94,111 @@ class ProgramRuleEngine {
|
|
|
17
94
|
this.dataValues = Object.assign(Object.assign({}, (dataValues || {})), { current_date: currentDate });
|
|
18
95
|
return this;
|
|
19
96
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
97
|
+
execute(options = {}) {
|
|
98
|
+
var _a, _b, _c, _d;
|
|
99
|
+
const triggeredOnly = options.triggeredOnly !== false;
|
|
100
|
+
const dedupeByField = options.dedupeByField !== false;
|
|
101
|
+
const debug = !!options.debug;
|
|
102
|
+
const out = [];
|
|
103
|
+
const byField = new Map();
|
|
104
|
+
for (const rule of this.rules) {
|
|
105
|
+
if (!rule)
|
|
106
|
+
continue;
|
|
107
|
+
const rawCond = ((_a = rule.condition) !== null && _a !== void 0 ? _a : '').trim();
|
|
108
|
+
const preparedCond = this.prepareExpression(rawCond);
|
|
109
|
+
const evalRes = this.safeEvalBoolean(preparedCond);
|
|
110
|
+
for (const action of (_b = rule.actions) !== null && _b !== void 0 ? _b : []) {
|
|
111
|
+
if (!action)
|
|
112
|
+
continue;
|
|
113
|
+
const triggered = evalRes.ok ? evalRes.value : false;
|
|
114
|
+
if (triggeredOnly && !triggered)
|
|
115
|
+
continue;
|
|
116
|
+
const actionType = triggered ? (_c = action.actionType) !== null && _c !== void 0 ? _c : '' : '';
|
|
117
|
+
let assignedData = undefined;
|
|
118
|
+
if (triggered && actionType === 'ASSIGN') {
|
|
119
|
+
const expr = this.prepareExpression(String((_d = action.assignedData) !== null && _d !== void 0 ? _d : ''));
|
|
120
|
+
// If you want the computed VALUE, evaluate it:
|
|
121
|
+
const valRes = this.safeEvalAny(expr);
|
|
122
|
+
assignedData = valRes.ok ? valRes.value : undefined;
|
|
123
|
+
}
|
|
124
|
+
const result = Object.assign(Object.assign(Object.assign(Object.assign({}, action), { actionType }), (actionType === 'ASSIGN' ? { assignedData } : {})), (debug
|
|
125
|
+
? {
|
|
126
|
+
__debug: {
|
|
127
|
+
rawCondition: rawCond,
|
|
128
|
+
preparedCondition: preparedCond,
|
|
129
|
+
evalOk: evalRes.ok,
|
|
130
|
+
evalError: evalRes.ok ? undefined : evalRes.error,
|
|
131
|
+
triggered,
|
|
132
|
+
},
|
|
133
|
+
}
|
|
134
|
+
: {}));
|
|
135
|
+
// dedupe by field if field exists
|
|
136
|
+
const field = action.field;
|
|
137
|
+
if (dedupeByField && field) {
|
|
138
|
+
byField.set(field, result);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
out.push(result);
|
|
142
|
+
}
|
|
28
143
|
}
|
|
29
144
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
145
|
+
return dedupeByField ? [...byField.values()] : out;
|
|
146
|
+
// const resolvedActions = dedupeByField ? [...byField.values()] : out;
|
|
147
|
+
// return resolvedActions.filter((action) => {
|
|
148
|
+
// const normalizedActionType = String(action.actionType ?? '').trim();
|
|
149
|
+
// return normalizedActionType.length > 0;
|
|
150
|
+
// });
|
|
151
|
+
}
|
|
152
|
+
/** Replace {var} with safe JS literals + resolve d2: functions */
|
|
153
|
+
prepareExpression(expression) {
|
|
154
|
+
let exp = expression !== null && expression !== void 0 ? expression : '';
|
|
155
|
+
// Replace {key} placeholders
|
|
156
|
+
exp = exp.replace(/\{([^}]+)\}/g, (_m, keyRaw) => {
|
|
157
|
+
const key = String(keyRaw).trim();
|
|
158
|
+
const val = this.dataValues[key];
|
|
159
|
+
// Decide how to treat missing values:
|
|
160
|
+
// In DHIS2 rules, missing often behaves like empty string
|
|
161
|
+
if (val === undefined)
|
|
162
|
+
return "''";
|
|
163
|
+
return toJsLiteral(val);
|
|
164
|
+
});
|
|
165
|
+
// Resolve d2: functions (after placeholders are resolved)
|
|
166
|
+
if (exp.includes('d2:')) {
|
|
167
|
+
exp = (0, run_d2_expression_util_1.dhisD2Functions)(exp, {}); // your util (fix its bugs below)
|
|
33
168
|
}
|
|
34
|
-
return
|
|
169
|
+
return exp;
|
|
35
170
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
//
|
|
54
|
-
}
|
|
55
|
-
return (rule.actions || []).map((action) => {
|
|
56
|
-
const actionType = evaluationResult ? action['actionType'] : '';
|
|
57
|
-
let assignedData;
|
|
58
|
-
if (actionType === 'ASSIGN') {
|
|
59
|
-
assignedData = this.getAssignedData(action['assignedData']);
|
|
60
|
-
}
|
|
61
|
-
return Object.assign(Object.assign({}, action), { assignedData,
|
|
62
|
-
actionType });
|
|
63
|
-
});
|
|
64
|
-
}));
|
|
171
|
+
safeEvalBoolean(expression) {
|
|
172
|
+
const res = this.safeEvalAny(expression);
|
|
173
|
+
return res.ok
|
|
174
|
+
? { ok: true, value: !!res.value }
|
|
175
|
+
: { ok: false, error: res.error };
|
|
176
|
+
}
|
|
177
|
+
safeEvalAny(expression) {
|
|
178
|
+
var _a;
|
|
179
|
+
try {
|
|
180
|
+
// NOTE: still evaluates JS, but does not capture outer scope.
|
|
181
|
+
// Upgrade later to AST evaluation for full safety.
|
|
182
|
+
const fn = new Function(`"use strict"; return (${expression});`);
|
|
183
|
+
return { ok: true, value: fn() };
|
|
184
|
+
}
|
|
185
|
+
catch (e) {
|
|
186
|
+
return { ok: false, error: (_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : String(e) };
|
|
187
|
+
}
|
|
65
188
|
}
|
|
66
189
|
}
|
|
67
190
|
exports.ProgramRuleEngine = ProgramRuleEngine;
|
|
191
|
+
function toJsLiteral(v) {
|
|
192
|
+
if (v === null)
|
|
193
|
+
return 'null';
|
|
194
|
+
if (v === undefined)
|
|
195
|
+
return "''";
|
|
196
|
+
if (typeof v === 'number' || typeof v === 'boolean')
|
|
197
|
+
return String(v);
|
|
198
|
+
// Date strings and normal strings → quoted & escaped
|
|
199
|
+
const s = String(v);
|
|
200
|
+
// escape backslash and single quotes
|
|
201
|
+
const escaped = s.replace(/\\/g, '\\\\').replace(/'/g, "\\'");
|
|
202
|
+
return `'${escaped}'`;
|
|
203
|
+
}
|
|
68
204
|
//# sourceMappingURL=program-rule.engine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program-rule.engine.js","sourceRoot":"","sources":["../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/engine/program-rule/program-rule.engine.ts"],"names":[],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"program-rule.engine.js","sourceRoot":"","sources":["../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/engine/program-rule/program-rule.engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,10 @@ export declare const d2FuctionsVariables: Array<{
|
|
|
2
2
|
name: string;
|
|
3
3
|
parameters?: number;
|
|
4
4
|
}>;
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
type D2EvalResult = {
|
|
6
|
+
expression: string;
|
|
7
|
+
expressionUpdated: boolean;
|
|
7
8
|
};
|
|
9
|
+
type D2EvalFn = (expression: string, parameters: string[], variableHash: Record<string, any>, regexFunct: string) => D2EvalResult;
|
|
10
|
+
export declare const d2FunctionsEval: Record<string, D2EvalFn>;
|
|
11
|
+
export {};
|