@rytass/bpm-core-nestjs-module 0.19.0 → 0.20.0
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 +36 -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 +105 -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-engine.service.d.ts +24 -0
- package/src/lib/workflow-engine/workflow-engine.service.js +240 -65
- package/src/lib/workflow-engine/workflow-engine.service.js.map +1 -1
- 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":"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"}
|
|
@@ -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":";;;;;AAAA,2CAQwB;AACxB,uCAAyC;AACzC,8GAAsG;AACtG,6CAAmD;AACnD,qCAAwE;AACxE,sEAAkE;AAClE,mEAA+D;AAK/D,qEAAgE;AAChE,yDAG4B;AA8B5B;;;;GAIG;AACH,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAE1C,+EAA+E;AAC/E,SAAS,cAAc,CACrB,OAAwB,EACxB,SAAiB;IAEjB,IAAI,SAAoD,CAAC;IAEzD,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,OAAO;QACP,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;YACtC,SAAS,GAAG,UAAU,CACpB,GAAS,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,SAAS,KAAK,CAAC,CAAC,EACjE,SAAS,CACV,CAAC;QACJ,CAAC,CAAC;KACH,CAAC,CAAC,OAAO,CAAC,GAAS,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,CAAC;AA6BM,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAG5B,YAEE,wBAA2E,EAC1D,gBAAkC,EACvC,SAAsC;QAFjC,6BAAwB,GAAxB,wBAAwB,CAAkC;QAC1D,qBAAgB,GAAhB,gBAAgB,CAAkB;QACtB,cAAS,GAAT,SAAS,CAAY;QANnC,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IAO1D,CAAC;IAEJ,KAAK,CAAC,mBAAmB,CACvB,UAAsC,EAAE;QAExC,MAAM,WAAW,GACf,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;QAC3E,MAAM,kBAAkB,GAAG,WAAW;YACpC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC3C,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;YACxC,oEAAoE;YACpE,KAAK,EAAE;gBACL,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,MAAM;aAClB;YACD,GAAG,CAAC,kBAAkB;gBACpB,CAAC,CAAC;oBACE,IAAI,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,kBAAkB;oBACjE,IAAI,EAAE,kBAAkB;iBACzB;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,UAOI,EAAE;QAEN,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;YACzC,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,KAAgC;QAEhC,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEtD,MAAM,IAAI,CAAC,mBAAmB,CAC5B,cAAc,CAAC,iBAAiB,EAChC,cAAc,CAAC,aAAa,CAC7B,CAAC;QAEF,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CACvC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC;YACnC,GAAG,cAAc;YACjB,SAAS,EAAE,IAAI;YACf,iBAAiB,EAAE,IAAI;YACvB,MAAM,EAAE,2CAAwB,CAAC,MAAM;SACxC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,KAAgC;QAEhC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzD,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC7C,GAAG,KAAK;YACR,iBAAiB,EAAE,WAAW,CAAC,iBAAiB;YAChD,iBAAiB,EAAE,WAAW,CAAC,iBAAiB;SACjD,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,mBAAmB,CAC5B,cAAc,CAAC,iBAAiB,EAChC,cAAc,CAAC,aAAa,EAC5B,WAAW,CAAC,EAAE,CACf,CAAC;QAEF,4EAA4E;QAC5E,2EAA2E;QAC3E,uEAAuE;QACvE,sEAAsE;QACtE,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CACvC,MAAM,CAAC,MAAM,CAAC,IAAI,6CAAoB,EAAE,EAAE,WAAW,EAAE,cAAc,CAAC,CACvE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,EAAU;QAChC,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,EACzB,EAAE,EACF,iBAAiB,GAIlB;QACC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAE5C,IAAI,IAAI,CAAC,MAAM,KAAK,2CAAwB,CAAC,OAAO,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CACvC,MAAM,CAAC,MAAM,CAAC,IAAI,6CAAoB,EAAE,EAAE,IAAI,EAAE;YAC9C,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,IAAI;YACpD,MAAM,EAAE,2CAAwB,CAAC,OAAO;SACzC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,wBAAgC,EAChC,OAAoC,EACpC,KAAW,IAAI,IAAI,EAAE;QAErB,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC9C,CAAC,wBAAwB,CAAC,EAC1B,OAAO,EACP,EAAE,CACH,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB,CACpB,yBAA4C,EAC5C,OAAoC,EACpC,KAAW,IAAI,IAAI,EAAE;QAErB,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,GAAG,CACxC,yBAAyB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACzC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,CAC5C,CACF,CAAC;QACF,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACtD,gBAAgB,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAChD,CAAC;QAEF,OAAO,OAAO,CAAC,GAAG,CAChB,yBAAyB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAChD,IAAI,CAAC,mBAAmB,CACtB,QAAQ,EACR,OAAO,EACP,EAAE,EACF,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EACnB,EAAE,EACF,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,CACrD,CACF,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,iBAAyB,EACzB,OAAoC,EACpC,EAAQ,EACR,gBAAqC,EACrC,KAAgC,EAChC,YAAqC;QAErC,MAAM,YAAY,GAChB,YAAY,EAAE,KAAK;YACnB,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,gBAAgB,GACpB,YAAY,EAAE,gBAAgB;YAC9B,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1E,yEAAyE;QACzE,0EAA0E;QAC1E,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAClC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CACxD,CAAC;QAEF,yEAAyE;QACzE,2EAA2E;QAC3E,IAAI,UAAU,EAAE,UAAU,EAAE,CAAC;YAC3B,MAAM,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;QACpC,CAAC;QAED,MAAM,cAAc,GAAG,UAAU,EAAE,IAAI,CAAC;QAExC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,qBAAqB,EAAE,iBAAiB;aACzC,CAAC;QACJ,CAAC;QAED,IAAI,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,0BAAiB,CACzB,wCAAwC,cAAc,CAAC,aAAa,EAAE,CACvE,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAA8B;YAC3C,GAAG,KAAK;YACR;gBACE,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,cAAc,CAAC,SAAS;gBAChC,MAAM,EAAE,cAAc,CAAC,EAAE;gBACzB,EAAE,EAAE,cAAc,CAAC,aAAa;aACjC;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,mBAAmB,CAC7B,cAAc,CAAC,aAAa,EAC5B,OAAO,EACP,EAAE,EACF,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,EAC3D,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,eAAe,CAC3B,iBAAyB,EACzB,OAAoC,EACpC,EAAQ;QAER,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAEjE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAmC,EAAE;YAC7D,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC;oBACzC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;oBAC9B,CAAC,CAAC,EAAE,CAAC;YACT,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wEAAwE;IAChE,KAAK,CAAC,gBAAgB,CAC5B,iBAAyB,EACzB,EAAQ;QAER,OAAO,CACL,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;YACvC,sEAAsE;YACtE,8DAA8D;YAC9D,kEAAkE;YAClE,6DAA6D;YAC7D,KAAK,EAAE;gBACL,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,KAAK;aACjB;YACD,KAAK,EAAE;gBACL,iBAAiB;gBACjB,OAAO,EAAE,IAAA,yBAAe,EAAC,EAAE,CAAC;gBAC5B,MAAM,EAAE,2CAAwB,CAAC,MAAM;aACxC;SACF,CAAC,CACH,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,oBAAoB,CAChC,KAAsC;QAEtC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAEzE,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,cAAc,GAAG;YACrB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACpD,CAAC;QAEF,OAAO,cAAc,CACnB,eAAe,CAAC,sBAAsB,CAAC,cAAc,CAAC,EACtD,2BAA2B,CAC5B,CAAC,IAAI,CACJ,CAAC,eAAe,EAAuB,EAAE,CACvC,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAC3D,CAAC,KAAc,EAAS,EAAE;YACxB,iEAAiE;YACjE,sEAAsE;YACtE,0DAA0D;YAC1D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kEAAkE;gBAChE,UAAU,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B;gBAC/D,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC9D,CAAC;YAEF,MAAM,IAAI,oCAA2B,CACnC,iEAAiE;gBAC/D,4DAA4D;gBAC5D,gEAAgE,EAClE,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kCAAe,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qEAAqE;YACrE,6DAA6D;YAC7D,IAAI,KAAK,YAAY,sDAAuB,EAAE,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,gBAAgB,CACtB,IAA0B,EAC1B,OAAoC;QAEpC,IAAI,IAAI,CAAC,SAAS,KAAK,0CAAuB,CAAC,GAAG,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,0CAAuB,CAAC,aAAa,EAAE,CAAC;YAC7D,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAC1C,IAAI,CAAC,iBAAiB,EACtB,gCAAgC,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,EACjE,mBAAmB,IAAI,CAAC,EAAE,oBAAoB,CAC/C,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,iBAAyB,EACzB,aAAqB,EACrB,gBAA+B,IAAI;QAEnC,IAAI,iBAAiB,KAAK,aAAa,EAAE,CAAC;YACxC,MAAM,IAAI,0BAAiB,CAAC,uCAAuC,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;YAC3D,KAAK,EAAE;gBACL,MAAM,EAAE,2CAAwB,CAAC,MAAM;aACxC;SACF,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,WAAW;aAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,aAAa,CAAC;aAC3C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACd,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C,CAAC,CAAC,CAAC;QAEN,+BAA+B,CAC7B;YACE,GAAG,SAAS;YACZ;gBACE,aAAa;gBACb,iBAAiB;aAClB;SACF,EACD,iBAAiB,CAClB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,EAAU;QACtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE5E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,0BAAiB,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,kBAAkB,CACxB,KAGI;QAUJ,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QACzD,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QACrE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEzD,IAAI,CAAC,iBAAiB,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,MAAM,IAAI,4BAAmB,CAAC,kCAAkC,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,4BAAmB,CAAC,oBAAoB,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,4BAAmB,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,MAAM,IAAI,4BAAmB,CAAC,6BAA6B,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC;QACtD,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;QAElE,IACE,KAAK,CAAC,SAAS,KAAK,0CAAuB,CAAC,aAAa;YACzD,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAC7B,CAAC;YACD,MAAM,IAAI,4BAAmB,CAC3B,+CAA+C,CAChD,CAAC;QACJ,CAAC;QAED,IACE,KAAK,CAAC,SAAS,KAAK,0CAAuB,CAAC,eAAe;YAC3D,CAAC,iBAAiB,EAClB,CAAC;YACD,MAAM,IAAI,4BAAmB,CAAC,0CAA0C,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CACrD,iBAAiB,EACjB,mBAAmB,EACnB,EAAE,sBAAsB,EAAE,sCAAsC,EAAE,CACnE,CAAC;QAEF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,4BAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,OAAO;YACL,aAAa;YACb,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,IAAI;YAC1D,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,GAAG;YAC/B,iBAAiB;YACjB,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,IAAI,KAAK;YACzD,iBAAiB,EACf,KAAK,CAAC,SAAS,KAAK,0CAAuB,CAAC,eAAe;gBACzD,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,IAAI;YACV,gBAAgB,EACd,KAAK,CAAC,SAAS,KAAK,0CAAuB,CAAC,aAAa;gBACvD,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,EAAE;YACR,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO;YACP,KAAK;SACN,CAAC;IACJ,CAAC;CACF,CAAA;AAlfY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;IAKR,mBAAA,IAAA,0BAAgB,EAAC,6CAAoB,CAAC,CAAA;IAGtC,mBAAA,IAAA,iBAAQ,GAAE,CAAA;6CAFgC,oBAAU;QAClB,oCAAgB;QACV,gBAAS;GAPzC,iBAAiB,CAkf7B;AAED,+EAA+E;AAC/E,6EAA6E;AAC7E,qBAAqB;AACrB,MAAM,sCAAsC,GAAG;IAC7C,KAAK;IACL,MAAM;IACN,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;CACH,CAAC;AAEX,SAAS,gCAAgC,CACvC,iBAAyB,EACzB,OAAoC;IAIpC,OAAO;QACL,GAAG,EAAE;YACH,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAC9B;QACD,IAAI,EAAE,OAAO,CAAC,QAAQ;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE;YACT,GAAG,OAAO,CAAC,yBAAyB;YACpC,QAAQ,EAAE,OAAO,CAAC,iBAAiB;SACpC;QACD,QAAQ,EAAE;YACR,EAAE,EAAE,OAAO,CAAC,UAAU;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC5C,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,iBAAiB;SAC5B;KACF,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CACtC,KAGI,EACJ,gBAAwB;IAExB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CACxB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACf,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE;QAC1C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,aAAa;KACnB,CAAC,EACJ,IAAI,GAAG,EAAE,CACV,CAAC;IAEF,mBAAmB,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAgB,EAChB,KAA6C,EAC7C,IAAyB;IAEzB,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,0BAAiB,CACzB,wCAAwC,QAAQ,EAAE,CACnD,CAAC;IACJ,CAAC;IAED,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CACnD,mBAAmB,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CACtE,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,EACjC,aAAa,EACb,eAAe,GAAG,KAAK,EACvB,iBAAiB,EACjB,SAAS,EACT,MAAM,GAQP;IACC,OAAO;QACL,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,MAAM;YACR,CAAC,CAAC,EAAE,MAAM,EAAE;YACZ,CAAC,CAAC,eAAe;gBACf,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,MAAM,EAAE,2CAAwB,CAAC,MAAM,EAAE,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC"}
|
|
1
|
+
{"version":3,"file":"delegation.service.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/delegation/delegation.service.ts"],"names":[],"mappings":";;;;;AAAA,2CAQwB;AACxB,uCAAyC;AACzC,8GAAsG;AACtG,6CAAmD;AACnD,qCAKiB;AACjB,sEAAkE;AAClE,wEAAwE;AACxE,mEAA+D;AAK/D,qEAAgE;AAChE,yDAG4B;AAoC5B;;;;GAIG;AACH,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAE1C,+EAA+E;AAC/E,SAAS,cAAc,CACrB,OAAwB,EACxB,SAAiB;IAEjB,IAAI,SAAoD,CAAC;IAEzD,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,OAAO;QACP,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;YACtC,SAAS,GAAG,UAAU,CACpB,GAAS,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,SAAS,KAAK,CAAC,CAAC,EACjE,SAAS,CACV,CAAC;QACJ,CAAC,CAAC;KACH,CAAC,CAAC,OAAO,CAAC,GAAS,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,CAAC;AA6BM,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAG5B,YAEE,wBAA2E,EAC1D,gBAAkC,EACvC,SAAsC;QAFjC,6BAAwB,GAAxB,wBAAwB,CAAkC;QAC1D,qBAAgB,GAAhB,gBAAgB,CAAkB;QACtB,cAAS,GAAT,SAAS,CAAY;QANnC,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IAO1D,CAAC;IAEJ,KAAK,CAAC,mBAAmB,CACvB,UAAsC,EAAE;QAExC,MAAM,WAAW,GACf,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;QAC3E,MAAM,kBAAkB,GAAG,WAAW;YACpC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC3C,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;YACxC,oEAAoE;YACpE,KAAK,EAAE;gBACL,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,MAAM;aAClB;YACD,GAAG,CAAC,kBAAkB;gBACpB,CAAC,CAAC;oBACE,IAAI,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,kBAAkB;oBACjE,IAAI,EAAE,kBAAkB;iBACzB;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,UAOI,EAAE;QAEN,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;YACzC,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,KAAgC;QAEhC,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEtD,MAAM,IAAI,CAAC,mBAAmB,CAC5B,cAAc,CAAC,iBAAiB,EAChC,cAAc,CAAC,aAAa,CAC7B,CAAC;QAEF,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CACvC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC;YACnC,GAAG,cAAc;YACjB,SAAS,EAAE,IAAI;YACf,iBAAiB,EAAE,IAAI;YACvB,MAAM,EAAE,2CAAwB,CAAC,MAAM;SACxC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,KAAgC;QAEhC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzD,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC7C,GAAG,KAAK;YACR,iBAAiB,EAAE,WAAW,CAAC,iBAAiB;YAChD,iBAAiB,EAAE,WAAW,CAAC,iBAAiB;YAChD,sEAAsE;YACtE,6DAA6D;YAC7D,qBAAqB,EAAE,IAAA,0CAAqB,EAC1C,WAAW,CAAC,qBAAqB,EACjC,mBAAmB,WAAW,CAAC,EAAE,wBAAwB,CAC1D;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,mBAAmB,CAC5B,cAAc,CAAC,iBAAiB,EAChC,cAAc,CAAC,aAAa,EAC5B,WAAW,CAAC,EAAE,CACf,CAAC;QAEF,4EAA4E;QAC5E,2EAA2E;QAC3E,uEAAuE;QACvE,sEAAsE;QACtE,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CACvC,MAAM,CAAC,MAAM,CAAC,IAAI,6CAAoB,EAAE,EAAE,WAAW,EAAE,cAAc,CAAC,CACvE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,EAAU;QAChC,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,EACzB,EAAE,EACF,iBAAiB,GAIlB;QACC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAE5C,IAAI,IAAI,CAAC,MAAM,KAAK,2CAAwB,CAAC,OAAO,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CACvC,MAAM,CAAC,MAAM,CAAC,IAAI,6CAAoB,EAAE,EAAE,IAAI,EAAE;YAC9C,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,IAAI;YACpD,MAAM,EAAE,2CAAwB,CAAC,OAAO;SACzC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,wBAAgC,EAChC,OAAoC,EACpC,KAAW,IAAI,IAAI,EAAE;QAErB,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC9C,CAAC,wBAAwB,CAAC,EAC1B,OAAO,EACP,EAAE,CACH,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB,CACpB,yBAA4C,EAC5C,OAAoC,EACpC,KAAW,IAAI,IAAI,EAAE;QAErB,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,GAAG,CACxC,yBAAyB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACzC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,CAC5C,CACF,CAAC;QACF,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACtD,gBAAgB,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAChD,CAAC;QAEF,OAAO,OAAO,CAAC,GAAG,CAChB,yBAAyB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAChD,IAAI,CAAC,mBAAmB,CACtB,QAAQ,EACR,OAAO,EACP,EAAE,EACF,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EACnB,EAAE,EACF,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,CACrD,CACF,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,iBAAyB,EACzB,OAAoC,EACpC,EAAQ,EACR,gBAAqC,EACrC,KAAgC,EAChC,YAAqC;QAErC,MAAM,YAAY,GAChB,YAAY,EAAE,KAAK;YACnB,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,gBAAgB,GACpB,YAAY,EAAE,gBAAgB;YAC9B,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1E,yEAAyE;QACzE,0EAA0E;QAC1E,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAClC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CACxD,CAAC;QAEF,yEAAyE;QACzE,2EAA2E;QAC3E,IAAI,UAAU,EAAE,UAAU,EAAE,CAAC;YAC3B,MAAM,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;QACpC,CAAC;QAED,MAAM,cAAc,GAAG,UAAU,EAAE,IAAI,CAAC;QAExC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,qBAAqB,EAAE,iBAAiB;aACzC,CAAC;QACJ,CAAC;QAED,IAAI,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,0BAAiB,CACzB,wCAAwC,cAAc,CAAC,aAAa,EAAE,CACvE,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAA8B;YAC3C,GAAG,KAAK;YACR;gBACE,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,cAAc,CAAC,SAAS;gBAChC,MAAM,EAAE,cAAc,CAAC,EAAE;gBACzB,EAAE,EAAE,cAAc,CAAC,aAAa;aACjC;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,mBAAmB,CAC7B,cAAc,CAAC,aAAa,EAC5B,OAAO,EACP,EAAE,EACF,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,EAC3D,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,eAAe,CAC3B,iBAAyB,EACzB,OAAoC,EACpC,EAAQ;QAER,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACvC,iBAAiB,EACjB,EAAE,EACF,OAAO,CAAC,OAAO,CAChB,CAAC;QAEF,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAmC,EAAE;YAC7D,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC;oBACzC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;oBAC9B,CAAC,CAAC,EAAE,CAAC;YACT,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wEAAwE;IAChE,KAAK,CAAC,gBAAgB,CAC5B,iBAAyB,EACzB,EAAQ,EACR,OAAuB;QAEvB,MAAM,UAAU,GACd,OAAO,EAAE,aAAa,CAAC,6CAAoB,CAAC;YAC5C,IAAI,CAAC,wBAAwB,CAAC;QAEhC,OAAO,CACL,MAAM,UAAU,CAAC,IAAI,CAAC;YACpB,sEAAsE;YACtE,8DAA8D;YAC9D,kEAAkE;YAClE,6DAA6D;YAC7D,KAAK,EAAE;gBACL,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,KAAK;aACjB;YACD,KAAK,EAAE;gBACL,iBAAiB;gBACjB,OAAO,EAAE,IAAA,yBAAe,EAAC,EAAE,CAAC;gBAC5B,MAAM,EAAE,2CAAwB,CAAC,MAAM;aACxC;SACF,CAAC,CACH,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,oBAAoB,CAChC,KAAsC;QAEtC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAEzE,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,cAAc,GAAG;YACrB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACpD,CAAC;QAEF,OAAO,cAAc,CACnB,eAAe,CAAC,sBAAsB,CAAC,cAAc,CAAC,EACtD,2BAA2B,CAC5B,CAAC,IAAI,CACJ,CAAC,eAAe,EAAuB,EAAE,CACvC,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAC3D,CAAC,KAAc,EAAS,EAAE;YACxB,iEAAiE;YACjE,sEAAsE;YACtE,0DAA0D;YAC1D,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kEAAkE;gBAChE,UAAU,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B;gBAC/D,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC9D,CAAC;YAEF,MAAM,IAAI,oCAA2B,CACnC,iEAAiE;gBAC/D,4DAA4D;gBAC5D,gEAAgE,EAClE,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kCAAe,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qEAAqE;YACrE,6DAA6D;YAC7D,IAAI,KAAK,YAAY,sDAAuB,EAAE,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,gBAAgB,CACtB,IAA0B,EAC1B,OAAoC;QAEpC,IAAI,IAAI,CAAC,SAAS,KAAK,0CAAuB,CAAC,GAAG,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,0CAAuB,CAAC,aAAa,EAAE,CAAC;YAC7D,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAC1C,IAAI,CAAC,iBAAiB,EACtB,gCAAgC,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,EACjE,mBAAmB,IAAI,CAAC,EAAE,oBAAoB,EAC9C;YACE,OAAO,EAAE,IAAA,0CAAqB,EAC5B,IAAI,CAAC,qBAAqB,EAC1B,mBAAmB,IAAI,CAAC,EAAE,wBAAwB,CACnD;SACF,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,iBAAyB,EACzB,aAAqB,EACrB,gBAA+B,IAAI;QAEnC,IAAI,iBAAiB,KAAK,aAAa,EAAE,CAAC;YACxC,MAAM,IAAI,0BAAiB,CAAC,uCAAuC,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;YAC3D,KAAK,EAAE;gBACL,MAAM,EAAE,2CAAwB,CAAC,MAAM;aACxC;SACF,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,WAAW;aAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,aAAa,CAAC;aAC3C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACd,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C,CAAC,CAAC,CAAC;QAEN,+BAA+B,CAC7B;YACE,GAAG,SAAS;YACZ;gBACE,aAAa;gBACb,iBAAiB;aAClB;SACF,EACD,iBAAiB,CAClB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,EAAU;QACtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE5E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,0BAAiB,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,kBAAkB,CACxB,KAGI;QAUJ,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QACzD,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QACrE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEzD,IAAI,CAAC,iBAAiB,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,MAAM,IAAI,4BAAmB,CAAC,kCAAkC,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,4BAAmB,CAAC,oBAAoB,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,4BAAmB,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,MAAM,IAAI,4BAAmB,CAAC,6BAA6B,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC;QACtD,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;QAClE,MAAM,qBAAqB,GAAG,IAAA,0CAAqB,EACjD,KAAK,CAAC,qBAAqB,EAC3B,uBAAuB,CACxB,CAAC;QAEF,IACE,KAAK,CAAC,SAAS,KAAK,0CAAuB,CAAC,aAAa;YACzD,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAC7B,CAAC;YACD,MAAM,IAAI,4BAAmB,CAC3B,+CAA+C,CAChD,CAAC;QACJ,CAAC;QAED,IACE,KAAK,CAAC,SAAS,KAAK,0CAAuB,CAAC,eAAe;YAC3D,CAAC,iBAAiB,EAClB,CAAC;YACD,MAAM,IAAI,4BAAmB,CAAC,0CAA0C,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CACrD,iBAAiB,EACjB,mBAAmB,EACnB;YACE,sBAAsB,EAAE,sCAAsC;YAC9D,OAAO,EAAE,qBAAqB;YAC9B,sEAAsE;YACtE,qEAAqE;YACrE,6CAA6C;YAC7C,UAAU,EAAE,sBAAsB;SACnC,CACF,CAAC;QAEF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,4BAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,OAAO;YACL,aAAa;YACb,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,IAAI;YAC1D,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,GAAG;YAC/B,iBAAiB;YACjB,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,IAAI,KAAK;YACzD,iBAAiB,EACf,KAAK,CAAC,SAAS,KAAK,0CAAuB,CAAC,eAAe;gBACzD,CAAC,CAAC,iBAAiB;gBACnB,CAAC,CAAC,IAAI;YACV,qBAAqB;YACrB,gBAAgB,EACd,KAAK,CAAC,SAAS,KAAK,0CAAuB,CAAC,aAAa;gBACvD,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,EAAE;YACR,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO;YACP,KAAK;SACN,CAAC;IACJ,CAAC;CACF,CAAA;AAnhBY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;IAKR,mBAAA,IAAA,0BAAgB,EAAC,6CAAoB,CAAC,CAAA;IAGtC,mBAAA,IAAA,iBAAQ,GAAE,CAAA;6CAFgC,oBAAU;QAClB,oCAAgB;QACV,gBAAS;GAPzC,iBAAiB,CAmhB7B;AAED,+EAA+E;AAC/E,6EAA6E;AAC7E,qBAAqB;AACrB,MAAM,sCAAsC,GAAG;IAC7C,KAAK;IACL,MAAM;IACN,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;CACH,CAAC;AAEX,SAAS,gCAAgC,CACvC,iBAAyB,EACzB,OAAoC;IAIpC,OAAO;QACL,GAAG,EAAE;YACH,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAC9B;QACD,IAAI,EAAE,OAAO,CAAC,QAAQ;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE;YACT,GAAG,OAAO,CAAC,yBAAyB;YACpC,QAAQ,EAAE,OAAO,CAAC,iBAAiB;SACpC;QACD,QAAQ,EAAE;YACR,EAAE,EAAE,OAAO,CAAC,UAAU;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC5C,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,iBAAiB;SAC5B;KACF,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CACtC,KAGI,EACJ,gBAAwB;IAExB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CACxB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACf,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE;QAC1C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,aAAa;KACnB,CAAC,EACJ,IAAI,GAAG,EAAE,CACV,CAAC;IAEF,mBAAmB,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAgB,EAChB,KAA6C,EAC7C,IAAyB;IAEzB,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,0BAAiB,CACzB,wCAAwC,QAAQ,EAAE,CACnD,CAAC;IACJ,CAAC;IAED,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CACnD,mBAAmB,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CACtE,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,EACjC,aAAa,EACb,eAAe,GAAG,KAAK,EACvB,iBAAiB,EACjB,SAAS,EACT,MAAM,GAQP;IACC,OAAO;QACL,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,MAAM;YACR,CAAC,CAAC,EAAE,MAAM,EAAE;YACZ,CAAC,CAAC,eAAe;gBACf,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,MAAM,EAAE,2CAAwB,CAAC,MAAM,EAAE,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -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
|
+
}
|