@rytass/bpm-core-nestjs-module 0.19.0 → 0.20.1
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/CHANGELOG.md +55 -0
- package/package.json +3 -2
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/lib/bpm/bpm-root-options.d.ts +13 -0
- package/src/lib/bpm/bpm-root-options.js.map +1 -1
- package/src/lib/bpm/bpm-root.module.d.ts +12 -0
- package/src/lib/bpm/bpm-root.module.js +5 -0
- package/src/lib/bpm/bpm-root.module.js.map +1 -1
- package/src/lib/condition/adapters/cel-legacy.adapter.d.ts +62 -0
- package/src/lib/condition/adapters/cel-legacy.adapter.js +141 -0
- package/src/lib/condition/adapters/cel-legacy.adapter.js.map +1 -0
- package/src/lib/condition/adapters/cel-v2.adapter.d.ts +76 -0
- package/src/lib/condition/adapters/cel-v2.adapter.js +371 -0
- package/src/lib/condition/adapters/cel-v2.adapter.js.map +1 -0
- package/src/lib/condition/condition.service.d.ts +90 -5
- package/src/lib/condition/condition.service.js +287 -71
- package/src/lib/condition/condition.service.js.map +1 -1
- package/src/lib/condition/expression-ast.d.ts +176 -0
- package/src/lib/condition/expression-ast.js +1254 -0
- package/src/lib/condition/expression-ast.js.map +1 -0
- package/src/lib/condition/expression-budget.d.ts +44 -0
- package/src/lib/condition/expression-budget.js +61 -0
- package/src/lib/condition/expression-budget.js.map +1 -0
- package/src/lib/condition/expression-dialect.d.ts +29 -0
- package/src/lib/condition/expression-dialect.js +44 -0
- package/src/lib/condition/expression-dialect.js.map +1 -0
- package/src/lib/condition/expression-differential.corpus.d.ts +34 -0
- package/src/lib/condition/expression-differential.corpus.js +995 -0
- package/src/lib/condition/expression-differential.corpus.js.map +1 -0
- package/src/lib/condition/expression-differential.d.ts +33 -0
- package/src/lib/condition/expression-differential.js +48 -0
- package/src/lib/condition/expression-differential.js.map +1 -0
- package/src/lib/condition/expression-engine-failure.d.ts +15 -0
- package/src/lib/condition/expression-engine-failure.js +22 -0
- package/src/lib/condition/expression-engine-failure.js.map +1 -0
- package/src/lib/condition/expression-errors.d.ts +40 -0
- package/src/lib/condition/expression-errors.js +121 -0
- package/src/lib/condition/expression-errors.js.map +1 -0
- package/src/lib/condition/expression-function-invocation.d.ts +50 -0
- package/src/lib/condition/expression-function-invocation.js +290 -0
- package/src/lib/condition/expression-function-invocation.js.map +1 -0
- package/src/lib/condition/expression-result.walker.d.ts +18 -0
- package/src/lib/condition/expression-result.walker.js +152 -0
- package/src/lib/condition/expression-result.walker.js.map +1 -0
- package/src/lib/condition/expression-runtime.d.ts +70 -0
- package/src/lib/condition/expression-runtime.js +134 -0
- package/src/lib/condition/expression-runtime.js.map +1 -0
- package/src/lib/condition/index.d.ts +4 -0
- package/src/lib/condition/index.js +8 -0
- package/src/lib/condition/index.js.map +1 -1
- package/src/lib/delegation/delegation-rule.entity.d.ts +7 -0
- package/src/lib/delegation/delegation-rule.entity.js +10 -0
- package/src/lib/delegation/delegation-rule.entity.js.map +1 -1
- package/src/lib/delegation/delegation.service.d.ts +7 -1
- package/src/lib/delegation/delegation.service.js +22 -5
- package/src/lib/delegation/delegation.service.js.map +1 -1
- package/src/lib/delegation/dto/delegation-rule.input.d.ts +2 -0
- package/src/lib/delegation/dto/delegation-rule.input.js +10 -0
- package/src/lib/delegation/dto/delegation-rule.input.js.map +1 -1
- package/src/lib/expression-function/expression-function.built-ins.d.ts +9 -0
- package/src/lib/expression-function/expression-function.built-ins.js +117 -0
- package/src/lib/expression-function/expression-function.built-ins.js.map +1 -0
- package/src/lib/expression-function/expression-function.module.d.ts +19 -0
- package/src/lib/expression-function/expression-function.module.js +34 -0
- package/src/lib/expression-function/expression-function.module.js.map +1 -0
- package/src/lib/expression-function/expression-function.provider.d.ts +17 -0
- package/src/lib/expression-function/expression-function.provider.js +39 -0
- package/src/lib/expression-function/expression-function.provider.js.map +1 -0
- package/src/lib/expression-function/expression-function.registry.d.ts +36 -0
- package/src/lib/expression-function/expression-function.registry.js +231 -0
- package/src/lib/expression-function/expression-function.registry.js.map +1 -0
- package/src/lib/expression-function/expression-function.types.d.ts +30 -0
- package/src/lib/expression-function/expression-function.types.js +8 -0
- package/src/lib/expression-function/expression-function.types.js.map +1 -0
- package/src/lib/expression-function/index.d.ts +5 -0
- package/src/lib/expression-function/index.js +9 -0
- package/src/lib/expression-function/index.js.map +1 -0
- package/src/lib/form/form-schema.validator.js +53 -6
- package/src/lib/form/form-schema.validator.js.map +1 -1
- package/src/lib/form-data-source/form-data-source-value-resolver.service.d.ts +12 -1
- package/src/lib/form-data-source/form-data-source-value-resolver.service.js +45 -26
- package/src/lib/form-data-source/form-data-source-value-resolver.service.js.map +1 -1
- package/src/lib/form-data-source/form-data-source.expression.d.ts +95 -0
- package/src/lib/form-data-source/form-data-source.expression.js +267 -0
- package/src/lib/form-data-source/form-data-source.expression.js.map +1 -0
- package/src/lib/form-data-source/form-data-source.module.js +4 -0
- package/src/lib/form-data-source/form-data-source.module.js.map +1 -1
- package/src/lib/form-data-source/form-data-source.service.d.ts +22 -3
- package/src/lib/form-data-source/form-data-source.service.js +78 -18
- package/src/lib/form-data-source/form-data-source.service.js.map +1 -1
- package/src/lib/form-data-source/form-data-source.validation.d.ts +47 -4
- package/src/lib/form-data-source/form-data-source.validation.js +151 -23
- package/src/lib/form-data-source/form-data-source.validation.js.map +1 -1
- package/src/lib/migrations/0000000030000-delegation-scope-condition-dialect.d.ts +22 -0
- package/src/lib/migrations/0000000030000-delegation-scope-condition-dialect.js +76 -0
- package/src/lib/migrations/0000000030000-delegation-scope-condition-dialect.js.map +1 -0
- package/src/lib/migrations/index.d.ts +1 -0
- package/src/lib/migrations/index.js +3 -0
- package/src/lib/migrations/index.js.map +1 -1
- package/src/lib/notification/notification.service.d.ts +1 -1
- package/src/lib/notification/notification.service.js +7 -3
- package/src/lib/notification/notification.service.js.map +1 -1
- package/src/lib/template/dto/expression-designer.dto.d.ts +107 -0
- package/src/lib/template/dto/expression-designer.dto.js +415 -0
- package/src/lib/template/dto/expression-designer.dto.js.map +1 -0
- package/src/lib/template/expression-designer.queries.d.ts +16 -0
- package/src/lib/template/expression-designer.queries.js +66 -0
- package/src/lib/template/expression-designer.queries.js.map +1 -0
- package/src/lib/template/expression-designer.service.d.ts +72 -0
- package/src/lib/template/expression-designer.service.js +543 -0
- package/src/lib/template/expression-designer.service.js.map +1 -0
- package/src/lib/template/index.d.ts +2 -0
- package/src/lib/template/index.js +2 -0
- package/src/lib/template/index.js.map +1 -1
- package/src/lib/template/template.module.js +4 -0
- package/src/lib/template/template.module.js.map +1 -1
- package/src/lib/template/template.service.d.ts +37 -1
- package/src/lib/template/template.service.js +317 -29
- package/src/lib/template/template.service.js.map +1 -1
- package/src/lib/template/workflow-definition.validator.d.ts +7 -0
- package/src/lib/template/workflow-definition.validator.js +26 -2
- package/src/lib/template/workflow-definition.validator.js.map +1 -1
- package/src/lib/workflow-engine/time-budget.d.ts +13 -0
- package/src/lib/workflow-engine/time-budget.js +58 -0
- package/src/lib/workflow-engine/time-budget.js.map +1 -0
- package/src/lib/workflow-engine/workflow-condition-evaluator.js +12 -12
- package/src/lib/workflow-engine/workflow-condition-evaluator.js.map +1 -1
- package/src/lib/workflow-engine/workflow-engine.service.d.ts +24 -0
- package/src/lib/workflow-engine/workflow-engine.service.js +311 -88
- package/src/lib/workflow-engine/workflow-engine.service.js.map +1 -1
- package/src/lib/workflow-engine/workflow-form-value.d.ts +11 -0
- package/src/lib/workflow-engine/workflow-form-value.js +33 -0
- package/src/lib/workflow-engine/workflow-form-value.js.map +1 -0
- package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.js +4 -0
- package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.js.map +1 -1
- package/src/lib/workflow-webhook/workflow-webhook-delivery.service.d.ts +3 -1
- package/src/lib/workflow-webhook/workflow-webhook-delivery.service.js +11 -2
- package/src/lib/workflow-webhook/workflow-webhook-delivery.service.js.map +1 -1
- package/src/lib/workflow-webhook/workflow-webhook-enqueue.d.ts +8 -1
- package/src/lib/workflow-webhook/workflow-webhook-enqueue.js +70 -27
- package/src/lib/workflow-webhook/workflow-webhook-enqueue.js.map +1 -1
- package/src/lib/workflow-webhook/workflow-webhook-expression.d.ts +57 -0
- package/src/lib/workflow-webhook/workflow-webhook-expression.js +123 -0
- package/src/lib/workflow-webhook/workflow-webhook-expression.js.map +1 -0
- package/src/lib/workflow-webhook/workflow-webhook.module.js +4 -0
- package/src/lib/workflow-webhook/workflow-webhook.module.js.map +1 -1
- package/src/lib/workflow-webhook/workflow-webhook.validator.d.ts +7 -0
- package/src/lib/workflow-webhook/workflow-webhook.validator.js +29 -6
- package/src/lib/workflow-webhook/workflow-webhook.validator.js.map +1 -1
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExpressionRuntime = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const time_budget_1 = require("../workflow-engine/time-budget");
|
|
6
|
+
const expression_errors_1 = require("./expression-errors");
|
|
7
|
+
const expression_engine_failure_1 = require("./expression-engine-failure");
|
|
8
|
+
const expression_result_walker_1 = require("./expression-result.walker");
|
|
9
|
+
const cel_legacy_adapter_1 = require("./adapters/cel-legacy.adapter");
|
|
10
|
+
const cel_v2_adapter_1 = require("./adapters/cel-v2.adapter");
|
|
11
|
+
const expression_function_registry_1 = require("../expression-function/expression-function.registry");
|
|
12
|
+
const expression_dialect_1 = require("./expression-dialect");
|
|
13
|
+
const logger = new common_1.Logger('ExpressionRuntime');
|
|
14
|
+
const runtimesByRegistry = new WeakMap();
|
|
15
|
+
/**
|
|
16
|
+
* The single place where an expression is compiled and evaluated (ADR 22 §3.2).
|
|
17
|
+
* Every caller goes through here: nothing reaches an engine directly.
|
|
18
|
+
*
|
|
19
|
+
* Order: compile (outside any budget, so an interrupt cannot land in module
|
|
20
|
+
* loading), check the budget, evaluate under `runWithinTimeBudget`, normalize
|
|
21
|
+
* the result, and map any failure to an {@link ExpressionRuntimeError}.
|
|
22
|
+
*
|
|
23
|
+
* A timeout raises `EXPRESSION_BUDGET_EXCEEDED`. It never returns `false`: an
|
|
24
|
+
* expression that did not finish is not the same as one that is false.
|
|
25
|
+
*/
|
|
26
|
+
class ExpressionRuntime {
|
|
27
|
+
/**
|
|
28
|
+
* Without arguments the runtime calls the nine built-in functions only
|
|
29
|
+
* (ADR 22 §3.5); use {@link ExpressionRuntime.withFunctions} for a host's.
|
|
30
|
+
*/
|
|
31
|
+
constructor(legacyAdapter = cel_legacy_adapter_1.celLegacyAdapter, v2Adapter = cel_v2_adapter_1.celV2Adapter) {
|
|
32
|
+
this.legacyAdapter = legacyAdapter;
|
|
33
|
+
this.v2Adapter = v2Adapter;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The runtime for a function registry: both dialects call the functions it
|
|
37
|
+
* lists, through the same argument, result and failure rules. One runtime
|
|
38
|
+
* per registry, cached, so every caller shares its compiled environments.
|
|
39
|
+
* The built-ins-only registry gets the default adapters.
|
|
40
|
+
*/
|
|
41
|
+
static withFunctions(registry) {
|
|
42
|
+
if (registry === expression_function_registry_1.BUILT_IN_EXPRESSION_FUNCTION_REGISTRY) {
|
|
43
|
+
return new ExpressionRuntime();
|
|
44
|
+
}
|
|
45
|
+
const cached = runtimesByRegistry.get(registry);
|
|
46
|
+
if (cached) {
|
|
47
|
+
return cached;
|
|
48
|
+
}
|
|
49
|
+
const runtime = new ExpressionRuntime((0, cel_legacy_adapter_1.createCelLegacyAdapter)(registry), (0, cel_v2_adapter_1.createCelV2Adapter)(registry));
|
|
50
|
+
runtimesByRegistry.set(registry, runtime);
|
|
51
|
+
return runtime;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Compiles with the dialect's engine. This is also what loads that engine,
|
|
55
|
+
* so callers that compile before starting a budget never have an interrupt
|
|
56
|
+
* land inside module loading.
|
|
57
|
+
*/
|
|
58
|
+
compile(expression, label, dialect = expression_dialect_1.DEFAULT_EXPRESSION_DIALECT) {
|
|
59
|
+
const adapter = this.readAdapter(dialect, label);
|
|
60
|
+
let handle;
|
|
61
|
+
try {
|
|
62
|
+
handle = adapter.compile(expression);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
// A classified failure (the function registry could not be read while
|
|
66
|
+
// the cel-v2 environment was built) is mapped like one at evaluation.
|
|
67
|
+
// Anything else — the engine failing to load — is a configuration
|
|
68
|
+
// error and passes through.
|
|
69
|
+
if (error instanceof expression_engine_failure_1.ExpressionEngineFailure) {
|
|
70
|
+
throw (0, expression_errors_1.toExpressionRuntimeError)(error, label, expression);
|
|
71
|
+
}
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
if (handle === null) {
|
|
75
|
+
throw new expression_errors_1.ExpressionRuntimeError('EXPRESSION_SYNTAX_ERROR', label);
|
|
76
|
+
}
|
|
77
|
+
return handle;
|
|
78
|
+
}
|
|
79
|
+
evaluate(request) {
|
|
80
|
+
const dialect = request.dialect ?? expression_dialect_1.DEFAULT_EXPRESSION_DIALECT;
|
|
81
|
+
const adapter = this.readAdapter(dialect, request.label);
|
|
82
|
+
const handle = this.compile(request.expression, request.label, dialect);
|
|
83
|
+
const timeoutMs = request.budget.nextTimeoutMs();
|
|
84
|
+
// Below one whole millisecond nothing useful can run, and `vm` would reject
|
|
85
|
+
// the timeout as a range error rather than report an exhausted budget.
|
|
86
|
+
if (timeoutMs < 1) {
|
|
87
|
+
const exhausted = new expression_errors_1.ExpressionRuntimeError('EXPRESSION_BUDGET_EXCEEDED', request.label);
|
|
88
|
+
this.logFailure(exhausted, dialect, performance.now());
|
|
89
|
+
throw exhausted;
|
|
90
|
+
}
|
|
91
|
+
const startedAt = performance.now();
|
|
92
|
+
try {
|
|
93
|
+
const raw = (0, time_budget_1.runWithinTimeBudget)(() => adapter.evaluate(handle, request.roots), timeoutMs);
|
|
94
|
+
return (0, expression_result_walker_1.normalizeExpressionResult)(raw, request.label, expression_result_walker_1.DEFAULT_EXPRESSION_RESULT_LIMITS);
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
const mapped = (0, expression_errors_1.toExpressionRuntimeError)(error, request.label, request.expression);
|
|
98
|
+
this.logFailure(mapped, dialect, startedAt);
|
|
99
|
+
throw mapped;
|
|
100
|
+
}
|
|
101
|
+
finally {
|
|
102
|
+
request.budget.record(performance.now() - startedAt);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
readAdapter(dialect, label) {
|
|
106
|
+
switch (dialect) {
|
|
107
|
+
case 'cel-legacy':
|
|
108
|
+
return this.legacyAdapter;
|
|
109
|
+
case 'cel-v2':
|
|
110
|
+
return this.v2Adapter;
|
|
111
|
+
default:
|
|
112
|
+
// Unreachable for typed callers; a value cast or read from storage
|
|
113
|
+
// could still get here, and is refused rather than guessed at.
|
|
114
|
+
throw new expression_errors_1.ExpressionRuntimeError('EXPRESSION_SYNTAX_ERROR', label, {
|
|
115
|
+
detail: 'names an unknown expression dialect',
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Logs only the label, the dialect, the code and the elapsed time. The message, the key
|
|
121
|
+
* name and the expression are not logged: they can carry case data.
|
|
122
|
+
*/
|
|
123
|
+
logFailure(error, dialect, startedAt) {
|
|
124
|
+
const elapsedMs = Math.round(performance.now() - startedAt);
|
|
125
|
+
const line = `label=${error.label} dialect=${dialect} code=${error.code} elapsedMs=${elapsedMs}`;
|
|
126
|
+
if (error.code === 'EXPRESSION_BUDGET_EXCEEDED') {
|
|
127
|
+
logger.warn(line);
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
logger.debug(line);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
exports.ExpressionRuntime = ExpressionRuntime;
|
|
134
|
+
//# sourceMappingURL=expression-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression-runtime.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/condition/expression-runtime.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,gEAAqE;AACrE,2DAG6B;AAE7B,2EAAsE;AACtE,yEAIoC;AACpC,sEAGuC;AACvC,8DAA6E;AAC7E,sGAA4G;AAE5G,6DAG8B;AAkC9B,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,mBAAmB,CAAC,CAAC;AAE/C,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAGnC,CAAC;AAEJ;;;;;;;;;;GAUG;AACH,MAAa,iBAAiB;IAC5B;;;OAGG;IACH,YACmB,gBAAyC,qCAAgB,EACzD,YAAqC,6BAAY;QADjD,kBAAa,GAAb,aAAa,CAA4C;QACzD,cAAS,GAAT,SAAS,CAAwC;IACjE,CAAC;IAEJ;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAClB,QAAuC;QAEvC,IAAI,QAAQ,KAAK,oEAAqC,EAAE,CAAC;YACvD,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACjC,CAAC;QAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,IAAA,2CAAsB,EAAC,QAAQ,CAAC,EAChC,IAAA,mCAAkB,EAAC,QAAQ,CAAC,CAC7B,CAAC;QAEF,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE1C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,OAAO,CACL,UAAkB,EAClB,KAAa,EACb,UAA6B,+CAA0B;QAEvD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjD,IAAI,MAA+B,CAAC;QAEpC,IAAI,CAAC;YACH,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,sEAAsE;YACtE,sEAAsE;YACtE,kEAAkE;YAClE,4BAA4B;YAC5B,IAAI,KAAK,YAAY,mDAAuB,EAAE,CAAC;gBAC7C,MAAM,IAAA,4CAAwB,EAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,0CAAsB,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,OAA8B;QACrC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,+CAA0B,CAAC;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAEjD,4EAA4E;QAC5E,uEAAuE;QACvE,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,IAAI,0CAAsB,CAC1C,4BAA4B,EAC5B,OAAO,CAAC,KAAK,CACd,CAAC;YAEF,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;YAEvD,MAAM,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAA,iCAAmB,EAC7B,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAC7C,SAAS,CACV,CAAC;YAEF,OAAO,IAAA,oDAAyB,EAC9B,GAAG,EACH,OAAO,CAAC,KAAK,EACb,2DAAgC,CACjC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,IAAA,4CAAwB,EACrC,KAAK,EACL,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,UAAU,CACnB,CAAC;YAEF,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAE5C,MAAM,MAAM,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAEO,WAAW,CACjB,OAA0B,EAC1B,KAAa;QAEb,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,aAAa,CAAC;YAC5B,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,SAAS,CAAC;YACxB;gBACE,mEAAmE;gBACnE,+DAA+D;gBAC/D,MAAM,IAAI,0CAAsB,CAAC,yBAAyB,EAAE,KAAK,EAAE;oBACjE,MAAM,EAAE,qCAAqC;iBAC9C,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,UAAU,CAChB,KAA6B,EAC7B,OAA0B,EAC1B,SAAiB;QAEjB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,SAAS,KAAK,CAAC,KAAK,YAAY,OAAO,SAAS,KAAK,CAAC,IAAI,cAAc,SAAS,EAAE,CAAC;QAEjG,IAAI,KAAK,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAElB,OAAO;QACT,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;CACF;AA9JD,8CA8JC"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
1
|
export * from './condition.module';
|
|
2
2
|
export * from './condition.service';
|
|
3
|
+
export * from './expression-errors';
|
|
4
|
+
export { DEFAULT_EXPRESSION_DIALECT, EXPRESSION_DIALECTS, isExpressionDialect, readExpressionDialect, readWorkflowExpressionDialect, } from './expression-dialect';
|
|
5
|
+
export type { ExpressionDialect } from './expression-dialect';
|
|
6
|
+
export type { ExpressionBudget, ExpressionBudgetOptions, } from './expression-budget';
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readWorkflowExpressionDialect = exports.readExpressionDialect = exports.isExpressionDialect = exports.EXPRESSION_DIALECTS = exports.DEFAULT_EXPRESSION_DIALECT = void 0;
|
|
3
4
|
const tslib_1 = require("tslib");
|
|
4
5
|
tslib_1.__exportStar(require("./condition.module"), exports);
|
|
5
6
|
tslib_1.__exportStar(require("./condition.service"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./expression-errors"), exports);
|
|
8
|
+
var expression_dialect_1 = require("./expression-dialect");
|
|
9
|
+
Object.defineProperty(exports, "DEFAULT_EXPRESSION_DIALECT", { enumerable: true, get: function () { return expression_dialect_1.DEFAULT_EXPRESSION_DIALECT; } });
|
|
10
|
+
Object.defineProperty(exports, "EXPRESSION_DIALECTS", { enumerable: true, get: function () { return expression_dialect_1.EXPRESSION_DIALECTS; } });
|
|
11
|
+
Object.defineProperty(exports, "isExpressionDialect", { enumerable: true, get: function () { return expression_dialect_1.isExpressionDialect; } });
|
|
12
|
+
Object.defineProperty(exports, "readExpressionDialect", { enumerable: true, get: function () { return expression_dialect_1.readExpressionDialect; } });
|
|
13
|
+
Object.defineProperty(exports, "readWorkflowExpressionDialect", { enumerable: true, get: function () { return expression_dialect_1.readWorkflowExpressionDialect; } });
|
|
6
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/condition/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/condition/index.ts"],"names":[],"mappings":";;;;AAAA,6DAAmC;AACnC,8DAAoC;AACpC,8DAAoC;AACpC,2DAM8B;AAL5B,gIAAA,0BAA0B,OAAA;AAC1B,yHAAA,mBAAmB,OAAA;AACnB,yHAAA,mBAAmB,OAAA;AACnB,2HAAA,qBAAqB,OAAA;AACrB,mIAAA,6BAA6B,OAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ExpressionDialect } from '../condition/expression-dialect';
|
|
1
2
|
import { DelegationRuleStatusEnum, DelegationScopeTypeEnum } from './delegation.enums';
|
|
2
3
|
export declare class DelegationRuleEntity {
|
|
3
4
|
id: string;
|
|
@@ -6,6 +7,12 @@ export declare class DelegationRuleEntity {
|
|
|
6
7
|
scopeType: DelegationScopeTypeEnum;
|
|
7
8
|
scopeTemplateIds: readonly string[];
|
|
8
9
|
scopeConditionCel: string | null;
|
|
10
|
+
/**
|
|
11
|
+
* The engine `scopeConditionCel` is evaluated with (ADR 22 §3.3). Rows
|
|
12
|
+
* written before the column existed are `cel-legacy` (migration
|
|
13
|
+
* `DelegationScopeConditionDialect0000000030000`).
|
|
14
|
+
*/
|
|
15
|
+
scopeConditionDialect: ExpressionDialect;
|
|
9
16
|
priority: number;
|
|
10
17
|
startAt: Date;
|
|
11
18
|
endAt: Date | null;
|
|
@@ -42,6 +42,16 @@ tslib_1.__decorate([
|
|
|
42
42
|
(0, graphql_1.Field)(() => String, { nullable: true }),
|
|
43
43
|
tslib_1.__metadata("design:type", Object)
|
|
44
44
|
], DelegationRuleEntity.prototype, "scopeConditionCel", void 0);
|
|
45
|
+
tslib_1.__decorate([
|
|
46
|
+
(0, typeorm_1.Column)('text', {
|
|
47
|
+
default: 'cel-legacy',
|
|
48
|
+
name: 'scope_condition_dialect',
|
|
49
|
+
}),
|
|
50
|
+
(0, graphql_1.Field)(() => String, {
|
|
51
|
+
description: 'Expression dialect of scopeConditionCel: cel-legacy or cel-v2.',
|
|
52
|
+
}),
|
|
53
|
+
tslib_1.__metadata("design:type", String)
|
|
54
|
+
], DelegationRuleEntity.prototype, "scopeConditionDialect", void 0);
|
|
45
55
|
tslib_1.__decorate([
|
|
46
56
|
(0, typeorm_1.Column)('int', { default: 100 }),
|
|
47
57
|
(0, graphql_1.Field)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegation-rule.entity.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/delegation/delegation-rule.entity.ts"],"names":[],"mappings":";;;;AAAA,6CAAwD;AACxD,qCAMiB;
|
|
1
|
+
{"version":3,"file":"delegation-rule.entity.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/delegation/delegation-rule.entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ModuleRef } from '@nestjs/core';
|
|
2
|
-
import { Repository } from 'typeorm';
|
|
2
|
+
import { EntityManager, Repository } from 'typeorm';
|
|
3
3
|
import { ConditionService } from '../condition/condition.service';
|
|
4
4
|
import { CreateDelegationRuleInput, UpdateDelegationRuleInput } from './dto/delegation-rule.input';
|
|
5
5
|
import { DelegationRuleEntity } from './delegation-rule.entity';
|
|
@@ -9,6 +9,12 @@ export interface DelegationResolutionContext {
|
|
|
9
9
|
readonly initiatorMemberId: string;
|
|
10
10
|
readonly initiatorMetadataSnapshot: Readonly<Record<string, unknown>>;
|
|
11
11
|
readonly instanceId: string;
|
|
12
|
+
/**
|
|
13
|
+
* The open transaction to read rules through. A caller inside one must pass
|
|
14
|
+
* it: reading on a second pooled connection while holding the first lets
|
|
15
|
+
* concurrent transactions wait on each other until the pool never recovers.
|
|
16
|
+
*/
|
|
17
|
+
readonly manager?: EntityManager;
|
|
12
18
|
readonly nodeId: string;
|
|
13
19
|
readonly state: string;
|
|
14
20
|
readonly templateId: string;
|
|
@@ -9,6 +9,7 @@ const unknown_element_exception_js_1 = require("@nestjs/core/errors/exceptions/u
|
|
|
9
9
|
const typeorm_1 = require("@nestjs/typeorm");
|
|
10
10
|
const typeorm_2 = require("typeorm");
|
|
11
11
|
const condition_service_1 = require("../condition/condition.service");
|
|
12
|
+
const expression_dialect_1 = require("../condition/expression-dialect");
|
|
12
13
|
const identity_service_1 = require("../identity/identity.service");
|
|
13
14
|
const delegation_rule_entity_1 = require("./delegation-rule.entity");
|
|
14
15
|
const delegation_enums_1 = require("./delegation.enums");
|
|
@@ -76,6 +77,9 @@ let DelegationService = DelegationService_1 = class DelegationService {
|
|
|
76
77
|
...input,
|
|
77
78
|
principalMemberId: currentRule.principalMemberId,
|
|
78
79
|
createdByMemberId: currentRule.createdByMemberId,
|
|
80
|
+
// An update cannot change the dialect: the condition keeps being read
|
|
81
|
+
// by the engine it was written and tested for (ADR 22 §3.3).
|
|
82
|
+
scopeConditionDialect: (0, expression_dialect_1.readExpressionDialect)(currentRule.scopeConditionDialect, `delegationRules.${currentRule.id}.scopeConditionDialect`),
|
|
79
83
|
});
|
|
80
84
|
await this.assertNoActiveCycle(normalizedRule.principalMemberId, normalizedRule.agentMemberId, currentRule.id);
|
|
81
85
|
// Assigning onto a fresh entity keeps the prototype. `DelegationRuleEntity`
|
|
@@ -155,7 +159,7 @@ let DelegationService = DelegationService_1 = class DelegationService {
|
|
|
155
159
|
* of scope never waits on, or is refused by, the host directory.
|
|
156
160
|
*/
|
|
157
161
|
async readScopedRules(principalMemberId, context, at) {
|
|
158
|
-
const rules = await this.readCurrentRules(principalMemberId, at);
|
|
162
|
+
const rules = await this.readCurrentRules(principalMemberId, at, context.manager);
|
|
159
163
|
return rules.flatMap((rule) => {
|
|
160
164
|
try {
|
|
161
165
|
return this.matchesRuleScope(rule, context)
|
|
@@ -168,8 +172,10 @@ let DelegationService = DelegationService_1 = class DelegationService {
|
|
|
168
172
|
});
|
|
169
173
|
}
|
|
170
174
|
/** The principal's rules in force at `at`, the applicable one first. */
|
|
171
|
-
async readCurrentRules(principalMemberId, at) {
|
|
172
|
-
|
|
175
|
+
async readCurrentRules(principalMemberId, at, manager) {
|
|
176
|
+
const repository = manager?.getRepository(delegation_rule_entity_1.DelegationRuleEntity) ??
|
|
177
|
+
this.delegationRuleRepository;
|
|
178
|
+
return (await repository.find({
|
|
173
179
|
// Higher priority wins, as with manager rules; among equal priorities
|
|
174
180
|
// the rule created first wins. TypeORM sorts by key order, so
|
|
175
181
|
// `priority` has to be the first key — it used to come second and
|
|
@@ -246,7 +252,9 @@ let DelegationService = DelegationService_1 = class DelegationService {
|
|
|
246
252
|
if (rule.scopeType === delegation_enums_1.DelegationScopeTypeEnum.TEMPLATE_LIST) {
|
|
247
253
|
return rule.scopeTemplateIds.includes(context.templateId);
|
|
248
254
|
}
|
|
249
|
-
return this.conditionService.evaluateBoolean(rule.scopeConditionCel, buildDelegationExpressionContext(rule.principalMemberId, context), `delegationRules.${rule.id}.scopeConditionCel
|
|
255
|
+
return this.conditionService.evaluateBoolean(rule.scopeConditionCel, buildDelegationExpressionContext(rule.principalMemberId, context), `delegationRules.${rule.id}.scopeConditionCel`, {
|
|
256
|
+
dialect: (0, expression_dialect_1.readExpressionDialect)(rule.scopeConditionDialect, `delegationRules.${rule.id}.scopeConditionDialect`),
|
|
257
|
+
});
|
|
250
258
|
}
|
|
251
259
|
async assertNoActiveCycle(principalMemberId, agentMemberId, ignoredRuleId = null) {
|
|
252
260
|
if (principalMemberId === agentMemberId) {
|
|
@@ -297,6 +305,7 @@ let DelegationService = DelegationService_1 = class DelegationService {
|
|
|
297
305
|
}
|
|
298
306
|
const scopeTemplateIds = input.scopeTemplateIds ?? [];
|
|
299
307
|
const scopeConditionCel = input.scopeConditionCel?.trim() || null;
|
|
308
|
+
const scopeConditionDialect = (0, expression_dialect_1.readExpressionDialect)(input.scopeConditionDialect, 'scopeConditionDialect');
|
|
300
309
|
if (input.scopeType === delegation_enums_1.DelegationScopeTypeEnum.TEMPLATE_LIST &&
|
|
301
310
|
scopeTemplateIds.length === 0) {
|
|
302
311
|
throw new common_1.BadRequestException('Template scoped delegation requires templates');
|
|
@@ -305,7 +314,14 @@ let DelegationService = DelegationService_1 = class DelegationService {
|
|
|
305
314
|
!scopeConditionCel) {
|
|
306
315
|
throw new common_1.BadRequestException('Condition scoped delegation requires CEL');
|
|
307
316
|
}
|
|
308
|
-
const lintErrors = this.conditionService.lintExpression(scopeConditionCel, 'scopeConditionCel', {
|
|
317
|
+
const lintErrors = this.conditionService.lintExpression(scopeConditionCel, 'scopeConditionCel', {
|
|
318
|
+
allowedRootIdentifiers: DELEGATION_EXPRESSION_ROOT_IDENTIFIERS,
|
|
319
|
+
dialect: scopeConditionDialect,
|
|
320
|
+
// The use point brings the cel-v2 result type (bool) and the function
|
|
321
|
+
// rules (host functions allowed); its roots equal the list above, so
|
|
322
|
+
// cel-legacy reads the same roots as before.
|
|
323
|
+
usagePoint: 'DELEGATION_CONDITION',
|
|
324
|
+
});
|
|
309
325
|
if (lintErrors.length > 0) {
|
|
310
326
|
throw new common_1.BadRequestException(lintErrors.join('; '));
|
|
311
327
|
}
|
|
@@ -318,6 +334,7 @@ let DelegationService = DelegationService_1 = class DelegationService {
|
|
|
318
334
|
scopeConditionCel: input.scopeType === delegation_enums_1.DelegationScopeTypeEnum.CONDITION_BASED
|
|
319
335
|
? scopeConditionCel
|
|
320
336
|
: null,
|
|
337
|
+
scopeConditionDialect,
|
|
321
338
|
scopeTemplateIds: input.scopeType === delegation_enums_1.DelegationScopeTypeEnum.TEMPLATE_LIST
|
|
322
339
|
? scopeTemplateIds
|
|
323
340
|
: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegation.service.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/delegation/delegation.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"delegation.service.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/delegation/delegation.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ExpressionDialect } from '../../condition/expression-dialect';
|
|
1
2
|
import { DelegationScopeTypeEnum } from '../delegation.enums';
|
|
2
3
|
export declare class CreateDelegationRuleInput {
|
|
3
4
|
principalMemberId: string;
|
|
@@ -5,6 +6,7 @@ export declare class CreateDelegationRuleInput {
|
|
|
5
6
|
scopeType: DelegationScopeTypeEnum;
|
|
6
7
|
scopeTemplateIds?: readonly string[] | null;
|
|
7
8
|
scopeConditionCel?: string | null;
|
|
9
|
+
scopeConditionDialect?: ExpressionDialect | null;
|
|
8
10
|
priority?: number | null;
|
|
9
11
|
startAt?: string | null;
|
|
10
12
|
endAt?: string | null;
|
|
@@ -4,6 +4,7 @@ exports.UpdateDelegationRuleInput = exports.CreateDelegationRuleInput = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const graphql_1 = require("@nestjs/graphql");
|
|
6
6
|
const class_validator_1 = require("class-validator");
|
|
7
|
+
const expression_dialect_1 = require("../../condition/expression-dialect");
|
|
7
8
|
const delegation_enums_1 = require("../delegation.enums");
|
|
8
9
|
const PRIORITY_DESCRIPTION = 'Higher wins when several active rules of one principal match; ties go to the rule created first.';
|
|
9
10
|
const ISO_DATE_TIME_WITH_TIME_ZONE_PATTERN = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d{3})?)?(?:Z|[+-]\d{2}:\d{2})$/;
|
|
@@ -38,6 +39,15 @@ tslib_1.__decorate([
|
|
|
38
39
|
(0, class_validator_1.IsString)(),
|
|
39
40
|
tslib_1.__metadata("design:type", Object)
|
|
40
41
|
], CreateDelegationRuleInput.prototype, "scopeConditionCel", void 0);
|
|
42
|
+
tslib_1.__decorate([
|
|
43
|
+
(0, graphql_1.Field)(() => String, {
|
|
44
|
+
description: 'Expression dialect of scopeConditionCel: cel-legacy (default) or cel-v2. Fixed once the rule exists; updating a rule keeps it.',
|
|
45
|
+
nullable: true,
|
|
46
|
+
}),
|
|
47
|
+
(0, class_validator_1.IsOptional)(),
|
|
48
|
+
(0, class_validator_1.IsIn)(expression_dialect_1.EXPRESSION_DIALECTS),
|
|
49
|
+
tslib_1.__metadata("design:type", Object)
|
|
50
|
+
], CreateDelegationRuleInput.prototype, "scopeConditionDialect", void 0);
|
|
41
51
|
tslib_1.__decorate([
|
|
42
52
|
(0, graphql_1.Field)(() => graphql_1.Int, {
|
|
43
53
|
description: `${PRIORITY_DESCRIPTION} Defaults to 100.`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegation-rule.input.js","sourceRoot":"","sources":["../../../../../../../libs/bpm-core/src/lib/delegation/dto/delegation-rule.input.ts"],"names":[],"mappings":";;;;AAAA,6CAA4D;AAC5D,
|
|
1
|
+
{"version":3,"file":"delegation-rule.input.js","sourceRoot":"","sources":["../../../../../../../libs/bpm-core/src/lib/delegation/dto/delegation-rule.input.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BPMBuiltInExpressionFunctionName } from '@rytass/bpm-core-shared';
|
|
2
|
+
import type { BPMExpressionFunction } from './expression-function.types';
|
|
3
|
+
/**
|
|
4
|
+
* The built-ins, in the order `list()` reports them (alphabetical, matching
|
|
5
|
+
* `BPM_BUILT_IN_EXPRESSION_FUNCTION_NAMES`).
|
|
6
|
+
*/
|
|
7
|
+
export declare const BPM_BUILT_IN_EXPRESSION_FUNCTIONS: readonly (BPMExpressionFunction & {
|
|
8
|
+
readonly name: BPMBuiltInExpressionFunctionName;
|
|
9
|
+
})[];
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BPM_BUILT_IN_EXPRESSION_FUNCTIONS = void 0;
|
|
4
|
+
/*
|
|
5
|
+
* The nine core functions (ADR 22 §3.5). Pure computation only: no time, no
|
|
6
|
+
* randomness, no I/O, so a dry run, a preview and the real evaluation always
|
|
7
|
+
* agree. Their names are reserved and carry no version suffix.
|
|
8
|
+
*
|
|
9
|
+
* Every handler receives arguments the runtime has already checked against
|
|
10
|
+
* `parameters` (a `double` is a finite JS number, a `string` a string), so the
|
|
11
|
+
* casts below only restate that check.
|
|
12
|
+
*
|
|
13
|
+
* Numeric results are always `double`, in both dialects: cel-legacy only has JS
|
|
14
|
+
* numbers, and in cel-v2 `round(form.amount) == 2` still holds through the
|
|
15
|
+
* exact `int == double` operator the adapter registers.
|
|
16
|
+
*/
|
|
17
|
+
const NUMBER_PARAMETER = {
|
|
18
|
+
name: 'value',
|
|
19
|
+
type: 'double',
|
|
20
|
+
};
|
|
21
|
+
const STRING_PARAMETER = {
|
|
22
|
+
name: 'value',
|
|
23
|
+
type: 'string',
|
|
24
|
+
};
|
|
25
|
+
const PAIR_PARAMETERS = [
|
|
26
|
+
{ name: 'left', type: 'double' },
|
|
27
|
+
{ name: 'right', type: 'double' },
|
|
28
|
+
];
|
|
29
|
+
/** `-0` reads as `0` in JSON but not to `Object.is`; results never carry it. */
|
|
30
|
+
const withoutNegativeZero = (value) => value === 0 ? 0 : value;
|
|
31
|
+
const unaryNumber = (operation) => (...args) => withoutNegativeZero(operation(args[0]));
|
|
32
|
+
const binaryNumber = (operation) => (...args) => withoutNegativeZero(operation(args[0], args[1]));
|
|
33
|
+
const unaryString = (operation) => (...args) => operation(args[0]);
|
|
34
|
+
/**
|
|
35
|
+
* Rounds half away from zero, as spreadsheets and most business rules do:
|
|
36
|
+
* `round(2.5)` is 3 and `round(-2.5)` is -3. `Math.round` alone would give -2.
|
|
37
|
+
*/
|
|
38
|
+
const roundHalfAwayFromZero = (value) => Math.sign(value) * Math.round(Math.abs(value));
|
|
39
|
+
/**
|
|
40
|
+
* The built-ins, in the order `list()` reports them (alphabetical, matching
|
|
41
|
+
* `BPM_BUILT_IN_EXPRESSION_FUNCTION_NAMES`).
|
|
42
|
+
*/
|
|
43
|
+
exports.BPM_BUILT_IN_EXPRESSION_FUNCTIONS = Object.freeze([
|
|
44
|
+
{
|
|
45
|
+
description: 'The absolute value of a number.',
|
|
46
|
+
handler: unaryNumber(Math.abs),
|
|
47
|
+
label: '絕對值',
|
|
48
|
+
name: 'abs',
|
|
49
|
+
parameters: [NUMBER_PARAMETER],
|
|
50
|
+
returnType: 'double',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
description: 'The smallest integer not less than a number.',
|
|
54
|
+
handler: unaryNumber(Math.ceil),
|
|
55
|
+
label: '無條件進位',
|
|
56
|
+
name: 'ceil',
|
|
57
|
+
parameters: [NUMBER_PARAMETER],
|
|
58
|
+
returnType: 'double',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
description: 'The largest integer not greater than a number.',
|
|
62
|
+
handler: unaryNumber(Math.floor),
|
|
63
|
+
label: '無條件捨去',
|
|
64
|
+
name: 'floor',
|
|
65
|
+
parameters: [NUMBER_PARAMETER],
|
|
66
|
+
returnType: 'double',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
description: 'A string in lower case. Locale independent: the same input always gives the same result.',
|
|
70
|
+
handler: unaryString((value) => value.toLowerCase()),
|
|
71
|
+
label: '轉小寫',
|
|
72
|
+
name: 'lower',
|
|
73
|
+
parameters: [STRING_PARAMETER],
|
|
74
|
+
returnType: 'string',
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
description: 'The larger of two numbers.',
|
|
78
|
+
handler: binaryNumber(Math.max),
|
|
79
|
+
label: '較大值',
|
|
80
|
+
name: 'max',
|
|
81
|
+
parameters: PAIR_PARAMETERS,
|
|
82
|
+
returnType: 'double',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
description: 'The smaller of two numbers.',
|
|
86
|
+
handler: binaryNumber(Math.min),
|
|
87
|
+
label: '較小值',
|
|
88
|
+
name: 'min',
|
|
89
|
+
parameters: PAIR_PARAMETERS,
|
|
90
|
+
returnType: 'double',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
description: 'A number rounded to the nearest integer; halves round away from zero.',
|
|
94
|
+
handler: unaryNumber(roundHalfAwayFromZero),
|
|
95
|
+
label: '四捨五入',
|
|
96
|
+
name: 'round',
|
|
97
|
+
parameters: [NUMBER_PARAMETER],
|
|
98
|
+
returnType: 'double',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
description: 'A string without leading and trailing whitespace.',
|
|
102
|
+
handler: unaryString((value) => value.trim()),
|
|
103
|
+
label: '去除前後空白',
|
|
104
|
+
name: 'trim',
|
|
105
|
+
parameters: [STRING_PARAMETER],
|
|
106
|
+
returnType: 'string',
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
description: 'A string in upper case. Locale independent: the same input always gives the same result.',
|
|
110
|
+
handler: unaryString((value) => value.toUpperCase()),
|
|
111
|
+
label: '轉大寫',
|
|
112
|
+
name: 'upper',
|
|
113
|
+
parameters: [STRING_PARAMETER],
|
|
114
|
+
returnType: 'string',
|
|
115
|
+
},
|
|
116
|
+
]);
|
|
117
|
+
//# sourceMappingURL=expression-function.built-ins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression-function.built-ins.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/expression-function/expression-function.built-ins.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DynamicModule, ModuleMetadata, Provider } from '@nestjs/common';
|
|
2
|
+
import { BPMExpressionFunction } from './expression-function.types';
|
|
3
|
+
export interface ExpressionFunctionModuleOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
4
|
+
/**
|
|
5
|
+
* Host functions as a Nest provider for `BPM_EXPRESSION_FUNCTIONS`, for
|
|
6
|
+
* functions that need injected dependencies to be built. Added after the
|
|
7
|
+
* `expressionFunctions` runtime option; a name in both is a boot error.
|
|
8
|
+
*/
|
|
9
|
+
readonly functionsProvider?: Provider<readonly BPMExpressionFunction[]>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Publishes the expression function registry (ADR 22 §3.5) under
|
|
13
|
+
* `BPM_EXPRESSION_FUNCTION_REGISTRY`. Global, because every module that
|
|
14
|
+
* evaluates or lints an expression (`ConditionModule` consumers: templates,
|
|
15
|
+
* the workflow engine, delegation) reads the same registry.
|
|
16
|
+
*/
|
|
17
|
+
export declare class ExpressionFunctionModule {
|
|
18
|
+
static forRoot(options?: ExpressionFunctionModuleOptions): DynamicModule;
|
|
19
|
+
}
|