@o3r/rules-engine 12.0.0-next.2 → 12.0.0-next.21
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/builders/package.json +3 -0
- package/components/rules-engine/rule-actions/rule-actions-pres.component.d.ts +1 -1
- package/components/rules-engine/rule-actions/rule-actions-pres.component.d.ts.map +1 -1
- package/components/rules-engine/rule-condition/rule-condition-pres.component.d.ts +1 -1
- package/components/rules-engine/rule-condition/rule-condition-pres.component.d.ts.map +1 -1
- package/components/rules-engine/rule-key-value/rule-key-value-pres.component.d.ts +1 -1
- package/components/rules-engine/rule-key-value/rule-key-value-pres.component.d.ts.map +1 -1
- package/components/rules-engine/rule-tree/rule-tree-pres.component.d.ts +1 -1
- package/components/rules-engine/rule-tree/rule-tree-pres.component.d.ts.map +1 -1
- package/components/rules-engine/ruleset-history/ruleset-history-pres.component.d.ts +1 -1
- package/components/rules-engine/ruleset-history/ruleset-history-pres.component.d.ts.map +1 -1
- package/components/rules-engine/ruleset-history/ruleset-history-pres.module.d.ts +7 -9
- package/components/rules-engine/ruleset-history/ruleset-history-pres.module.d.ts.map +1 -1
- package/components/rules-engine/shared/fallback-to.pipe.d.ts +0 -7
- package/components/rules-engine/shared/fallback-to.pipe.d.ts.map +1 -1
- package/components/rules-engine/shared/json-or-string.pipe.d.ts.map +1 -1
- package/engine/debug/helpers.d.ts +3 -2
- package/engine/debug/helpers.d.ts.map +1 -1
- package/engine/engine.interface.d.ts +2 -8
- package/engine/engine.interface.d.ts.map +1 -1
- package/engine/helpers/filter-ruleset-event.operator.d.ts.map +1 -1
- package/engine/ruleset-executor.d.ts.map +1 -1
- package/engine/structure.d.ts +0 -8
- package/engine/structure.d.ts.map +1 -1
- package/fesm2022/o3r-rules-engine.mjs +186 -218
- package/fesm2022/o3r-rules-engine.mjs.map +1 -1
- package/fixtures/jasmine/package.json +3 -0
- package/fixtures/jest/package.json +3 -0
- package/interfaces/index.d.ts +0 -1
- package/interfaces/index.d.ts.map +1 -1
- package/package.json +17 -22
- package/schemas/rulesets.schema.json +0 -13
- package/schematics/package.json +3 -0
- package/stores/rulesets/rulesets.selectors.d.ts +0 -5
- package/stores/rulesets/rulesets.selectors.d.ts.map +1 -1
- package/esm2022/components/index.mjs +0 -2
- package/esm2022/components/rules-engine/index.mjs +0 -4
- package/esm2022/components/rules-engine/rule-actions/rule-actions-pres.component.mjs +0 -35
- package/esm2022/components/rules-engine/rule-condition/rule-condition-pres.component.mjs +0 -36
- package/esm2022/components/rules-engine/rule-key-value/rule-key-value-pres.component.mjs +0 -63
- package/esm2022/components/rules-engine/rule-tree/rule-tree-pres.component.mjs +0 -48
- package/esm2022/components/rules-engine/ruleset-history/ruleset-history-pres.component.mjs +0 -50
- package/esm2022/components/rules-engine/ruleset-history/ruleset-history-pres.module.mjs +0 -23
- package/esm2022/components/rules-engine/shared/fallback-to.pipe.mjs +0 -25
- package/esm2022/components/rules-engine/shared/index.mjs +0 -4
- package/esm2022/components/rules-engine/shared/json-or-string.pipe.mjs +0 -23
- package/esm2022/components/rules-engine/shared/ruleset-history.helper.mjs +0 -51
- package/esm2022/devkit/index.mjs +0 -7
- package/esm2022/devkit/rules-engine-devkit.interface.mjs +0 -6
- package/esm2022/devkit/rules-engine-devtools.console.service.mjs +0 -111
- package/esm2022/devkit/rules-engine-devtools.message.service.mjs +0 -115
- package/esm2022/devkit/rules-engine-devtools.module.mjs +0 -47
- package/esm2022/devkit/rules-engine-devtools.service.mjs +0 -130
- package/esm2022/devkit/rules-engine-devtools.token.mjs +0 -6
- package/esm2022/engine/debug/engine.debug.mjs +0 -195
- package/esm2022/engine/debug/helpers.mjs +0 -91
- package/esm2022/engine/engine.interface.mjs +0 -2
- package/esm2022/engine/engine.mjs +0 -134
- package/esm2022/engine/fact/fact.interfaces.mjs +0 -2
- package/esm2022/engine/fact/index.mjs +0 -2
- package/esm2022/engine/helpers/filter-ruleset-event.operator.mjs +0 -19
- package/esm2022/engine/index.mjs +0 -8
- package/esm2022/engine/operator/index.mjs +0 -4
- package/esm2022/engine/operator/operator.helpers.mjs +0 -107
- package/esm2022/engine/operator/operator.interface.mjs +0 -2
- package/esm2022/engine/operator/operators/array-based.operators.mjs +0 -266
- package/esm2022/engine/operator/operators/basic.operators.mjs +0 -93
- package/esm2022/engine/operator/operators/date-based.operators.mjs +0 -119
- package/esm2022/engine/operator/operators/index.mjs +0 -10
- package/esm2022/engine/operator/operators/number-based.operators.mjs +0 -44
- package/esm2022/engine/rule/index.mjs +0 -2
- package/esm2022/engine/rule/rule.helpers.mjs +0 -50
- package/esm2022/engine/ruleset-executor.mjs +0 -256
- package/esm2022/engine/structure.mjs +0 -2
- package/esm2022/fact/fact.abstract-service.mjs +0 -12
- package/esm2022/fact/index.mjs +0 -3
- package/esm2022/fact/reserved.facts.mjs +0 -2
- package/esm2022/fixtures/jasmine/index.mjs +0 -2
- package/esm2022/fixtures/jasmine/o3r-rules-engine-fixtures-jasmine.mjs +0 -5
- package/esm2022/fixtures/jasmine/rules-engine.runner.service.fixture.jasmine.mjs +0 -14
- package/esm2022/fixtures/jest/index.mjs +0 -2
- package/esm2022/fixtures/jest/o3r-rules-engine-fixtures-jest.mjs +0 -5
- package/esm2022/fixtures/jest/rules-engine.runner.service.fixture.jest.mjs +0 -14
- package/esm2022/inner-facts/current-time/current-time-fact.service.mjs +0 -29
- package/esm2022/inner-facts/current-time/current-time.facts.mjs +0 -2
- package/esm2022/inner-facts/current-time/index.mjs +0 -3
- package/esm2022/inner-facts/index.mjs +0 -2
- package/esm2022/interfaces/action.interfaces.mjs +0 -2
- package/esm2022/interfaces/index.mjs +0 -3
- package/esm2022/interfaces/linkable-to-ruleset.interfaces.mjs +0 -2
- package/esm2022/o3r-rules-engine.mjs +0 -5
- package/esm2022/public_api.mjs +0 -9
- package/esm2022/services/index.mjs +0 -3
- package/esm2022/services/rules-engine.token.mjs +0 -9
- package/esm2022/services/runner/index.mjs +0 -3
- package/esm2022/services/runner/rules-engine.runner.module.mjs +0 -37
- package/esm2022/services/runner/rules-engine.runner.service.mjs +0 -132
- package/esm2022/stores/index.mjs +0 -2
- package/esm2022/stores/rulesets/index.mjs +0 -8
- package/esm2022/stores/rulesets/rulesets.actions.mjs +0 -42
- package/esm2022/stores/rulesets/rulesets.effect.mjs +0 -30
- package/esm2022/stores/rulesets/rulesets.module.mjs +0 -42
- package/esm2022/stores/rulesets/rulesets.reducer.mjs +0 -35
- package/esm2022/stores/rulesets/rulesets.selectors.mjs +0 -115
- package/esm2022/stores/rulesets/rulesets.state.mjs +0 -5
- package/esm2022/stores/rulesets/rulesets.sync.mjs +0 -20
- package/interfaces/action.interfaces.d.ts +0 -44
- package/interfaces/action.interfaces.d.ts.map +0 -1
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Determine if the condition is a properties condition
|
|
3
|
-
* @param condition Condition to analyze
|
|
4
|
-
*/
|
|
5
|
-
export function isConditionProperties(condition) {
|
|
6
|
-
return condition && typeof condition.operator !== 'undefined' && typeof condition.lhs !== 'undefined';
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Determine if the given operand is a Fact operand
|
|
10
|
-
* @param operand Operand to analyze
|
|
11
|
-
*/
|
|
12
|
-
export function isOperandFact(operand) {
|
|
13
|
-
return operand && operand.type === 'FACT';
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Determine if the given operand is a Inner Fact operand
|
|
17
|
-
* @param operand Operand to analyze
|
|
18
|
-
*/
|
|
19
|
-
export function isOperandRuntimeFact(operand) {
|
|
20
|
-
return operand && operand.type === 'RUNTIME_FACT';
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Determine if the given operand is a Static Value operand
|
|
24
|
-
* @param operand Operand to analyze
|
|
25
|
-
*/
|
|
26
|
-
export function isOperandLiteral(operand) {
|
|
27
|
-
return operand && operand.type === 'LITERAL';
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Determine if the given condition is All based child conditions
|
|
31
|
-
* @param condition Condition node
|
|
32
|
-
*/
|
|
33
|
-
export function isAllConditions(condition) {
|
|
34
|
-
return condition && typeof condition.all !== 'undefined';
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Determine if the given condition is Any based child conditions
|
|
38
|
-
* @param condition Condition node
|
|
39
|
-
*/
|
|
40
|
-
export function isAnyConditions(condition) {
|
|
41
|
-
return condition && typeof condition.any !== 'undefined';
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Determine if the given condition is Not based child conditions
|
|
45
|
-
* @param condition Condition node
|
|
46
|
-
*/
|
|
47
|
-
export function isNotCondition(condition) {
|
|
48
|
-
return condition && typeof condition.not !== 'undefined';
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VuZ2luZS9ydWxlL3J1bGUuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUMsU0FBYztJQUNsRCxPQUFPLFNBQVMsSUFBSSxPQUFPLFNBQVMsQ0FBQyxRQUFRLEtBQUssV0FBVyxJQUFJLE9BQU8sU0FBUyxDQUFDLEdBQUcsS0FBSyxXQUFXLENBQUM7QUFDeEcsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsT0FBWTtJQUN4QyxPQUFPLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQztBQUM1QyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE9BQVk7SUFDL0MsT0FBTyxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxjQUFjLENBQUM7QUFDcEQsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxPQUFZO0lBQzNDLE9BQU8sT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDO0FBQy9DLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLFNBQWM7SUFDNUMsT0FBTyxTQUFTLElBQUksT0FBTyxTQUFTLENBQUMsR0FBRyxLQUFLLFdBQVcsQ0FBQztBQUMzRCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxTQUFjO0lBQzVDLE9BQU8sU0FBUyxJQUFJLE9BQU8sU0FBUyxDQUFDLEdBQUcsS0FBSyxXQUFXLENBQUM7QUFDM0QsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsU0FBYztJQUMzQyxPQUFPLFNBQVMsSUFBSSxPQUFPLFNBQVMsQ0FBQyxHQUFHLEtBQUssV0FBVyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBbGxDb25kaXRpb25zLFxuICBBbnlDb25kaXRpb25zLFxuICBCaW5hcnlPcGVyYXRpb24sXG4gIE5vdENvbmRpdGlvbixcbiAgT3BlcmFuZCxcbiAgT3BlcmFuZEZhY3QsXG4gIFVuYXJ5T3BlcmF0aW9uLFxufSBmcm9tICcuLi9zdHJ1Y3R1cmUnO1xuXG4vKipcbiAqIERldGVybWluZSBpZiB0aGUgY29uZGl0aW9uIGlzIGEgcHJvcGVydGllcyBjb25kaXRpb25cbiAqIEBwYXJhbSBjb25kaXRpb24gQ29uZGl0aW9uIHRvIGFuYWx5emVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uZGl0aW9uUHJvcGVydGllcyhjb25kaXRpb246IGFueSk6IGNvbmRpdGlvbiBpcyBCaW5hcnlPcGVyYXRpb24gfCBVbmFyeU9wZXJhdGlvbiB7XG4gIHJldHVybiBjb25kaXRpb24gJiYgdHlwZW9mIGNvbmRpdGlvbi5vcGVyYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGNvbmRpdGlvbi5saHMgIT09ICd1bmRlZmluZWQnO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiB0aGUgZ2l2ZW4gb3BlcmFuZCBpcyBhIEZhY3Qgb3BlcmFuZFxuICogQHBhcmFtIG9wZXJhbmQgT3BlcmFuZCB0byBhbmFseXplXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc09wZXJhbmRGYWN0KG9wZXJhbmQ6IGFueSk6IG9wZXJhbmQgaXMgT3BlcmFuZEZhY3Qge1xuICByZXR1cm4gb3BlcmFuZCAmJiBvcGVyYW5kLnR5cGUgPT09ICdGQUNUJztcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgdGhlIGdpdmVuIG9wZXJhbmQgaXMgYSBJbm5lciBGYWN0IG9wZXJhbmRcbiAqIEBwYXJhbSBvcGVyYW5kIE9wZXJhbmQgdG8gYW5hbHl6ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPcGVyYW5kUnVudGltZUZhY3Qob3BlcmFuZDogYW55KTogb3BlcmFuZCBpcyBPcGVyYW5kPCdSVU5USU1FX0ZBQ1QnLCBzdHJpbmc+IHtcbiAgcmV0dXJuIG9wZXJhbmQgJiYgb3BlcmFuZC50eXBlID09PSAnUlVOVElNRV9GQUNUJztcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgdGhlIGdpdmVuIG9wZXJhbmQgaXMgYSBTdGF0aWMgVmFsdWUgb3BlcmFuZFxuICogQHBhcmFtIG9wZXJhbmQgT3BlcmFuZCB0byBhbmFseXplXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc09wZXJhbmRMaXRlcmFsKG9wZXJhbmQ6IGFueSk6IG9wZXJhbmQgaXMgT3BlcmFuZDwnTElURVJBTCc+IHtcbiAgcmV0dXJuIG9wZXJhbmQgJiYgb3BlcmFuZC50eXBlID09PSAnTElURVJBTCc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIHRoZSBnaXZlbiBjb25kaXRpb24gaXMgQWxsIGJhc2VkIGNoaWxkIGNvbmRpdGlvbnNcbiAqIEBwYXJhbSBjb25kaXRpb24gQ29uZGl0aW9uIG5vZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQWxsQ29uZGl0aW9ucyhjb25kaXRpb246IGFueSk6IGNvbmRpdGlvbiBpcyBBbGxDb25kaXRpb25zIHtcbiAgcmV0dXJuIGNvbmRpdGlvbiAmJiB0eXBlb2YgY29uZGl0aW9uLmFsbCAhPT0gJ3VuZGVmaW5lZCc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIHRoZSBnaXZlbiBjb25kaXRpb24gaXMgQW55IGJhc2VkIGNoaWxkIGNvbmRpdGlvbnNcbiAqIEBwYXJhbSBjb25kaXRpb24gQ29uZGl0aW9uIG5vZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQW55Q29uZGl0aW9ucyhjb25kaXRpb246IGFueSk6IGNvbmRpdGlvbiBpcyBBbnlDb25kaXRpb25zIHtcbiAgcmV0dXJuIGNvbmRpdGlvbiAmJiB0eXBlb2YgY29uZGl0aW9uLmFueSAhPT0gJ3VuZGVmaW5lZCc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIHRoZSBnaXZlbiBjb25kaXRpb24gaXMgTm90IGJhc2VkIGNoaWxkIGNvbmRpdGlvbnNcbiAqIEBwYXJhbSBjb25kaXRpb24gQ29uZGl0aW9uIG5vZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTm90Q29uZGl0aW9uKGNvbmRpdGlvbjogYW55KTogY29uZGl0aW9uIGlzIE5vdENvbmRpdGlvbiB7XG4gIHJldHVybiBjb25kaXRpb24gJiYgdHlwZW9mIGNvbmRpdGlvbi5ub3QgIT09ICd1bmRlZmluZWQnO1xufVxuIl19
|
|
@@ -1,256 +0,0 @@
|
|
|
1
|
-
/** Ruleset executor */
|
|
2
|
-
import { JSONPath, } from 'jsonpath-plus';
|
|
3
|
-
import { combineLatest, of, } from 'rxjs';
|
|
4
|
-
import { distinctUntilChanged, map, pairwise, shareReplay, startWith, switchMap, tap, } from 'rxjs/operators';
|
|
5
|
-
import { handleRuleEvaluationDebug, } from './debug/helpers';
|
|
6
|
-
import { executeOperator, } from './operator/operator.helpers';
|
|
7
|
-
import { isAllConditions, isConditionProperties, isNotCondition, isOperandFact, isOperandLiteral, isOperandRuntimeFact, } from './rule/rule.helpers';
|
|
8
|
-
export class RulesetExecutor {
|
|
9
|
-
/**
|
|
10
|
-
* Create a new ruleset executor
|
|
11
|
-
* @param ruleset Ruleset to evaluate
|
|
12
|
-
* @param rulesEngine Instance of the rules engine
|
|
13
|
-
*/
|
|
14
|
-
constructor(ruleset, rulesEngine) {
|
|
15
|
-
this.executionCounter = 0;
|
|
16
|
-
/**
|
|
17
|
-
* Find rule input facts
|
|
18
|
-
* @param obj
|
|
19
|
-
*/
|
|
20
|
-
this.findRuleInputFacts = (obj) => {
|
|
21
|
-
const ruleInputFacts = new Set();
|
|
22
|
-
this.collectRuleInputFacts(obj, ruleInputFacts);
|
|
23
|
-
return Array.from(ruleInputFacts);
|
|
24
|
-
};
|
|
25
|
-
this.ruleset = ruleset;
|
|
26
|
-
this.rulesEngine = rulesEngine;
|
|
27
|
-
this.operators = rulesEngine.operators;
|
|
28
|
-
this.engineRuleset = this.plugRuleset();
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Recursively explores a rule to identify and collect input facts.
|
|
32
|
-
* Input facts are identified based on the 'FACT' type and operator-specific implicit dependencies.
|
|
33
|
-
* @param currentObject The current object being explored.
|
|
34
|
-
* @param ruleInputFacts A set to store the identified input facts for the rule.
|
|
35
|
-
*/
|
|
36
|
-
collectRuleInputFacts(currentObject, ruleInputFacts) {
|
|
37
|
-
if (currentObject && isOperandFact(currentObject)) {
|
|
38
|
-
ruleInputFacts.add(currentObject.value);
|
|
39
|
-
}
|
|
40
|
-
else if (Array.isArray(currentObject)) {
|
|
41
|
-
currentObject.forEach((elem) => this.collectRuleInputFacts(elem, ruleInputFacts));
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
for (const key in currentObject) {
|
|
45
|
-
if ((key === 'operator') && isConditionProperties(currentObject)) {
|
|
46
|
-
const op = this.operators[currentObject[key]];
|
|
47
|
-
if (op && op.factImplicitDependencies) {
|
|
48
|
-
op.factImplicitDependencies.forEach((dep) => ruleInputFacts.add(dep));
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
else if (typeof currentObject[key] === 'object') {
|
|
52
|
-
this.collectRuleInputFacts(currentObject[key], ruleInputFacts);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Report performance mark for a rule run
|
|
59
|
-
* @param rule Rule to measure
|
|
60
|
-
* @param status status of the rule evaluation
|
|
61
|
-
*/
|
|
62
|
-
performanceMark(rule, status) {
|
|
63
|
-
if (this.rulesEngine.performance) {
|
|
64
|
-
const markName = `rules-engine:${this.rulesEngine.rulesEngineInstanceName}:${this.ruleset.name}:${rule.name}`;
|
|
65
|
-
this.rulesEngine.performance.mark(`${markName}:${status}`);
|
|
66
|
-
if (status === 'end') {
|
|
67
|
-
this.rulesEngine.performance.measure(markName, `${markName}:start`, `${markName}:end`);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Get operand value stream according to its type
|
|
73
|
-
* @param operand operand of the condition
|
|
74
|
-
* @param factsValue
|
|
75
|
-
* @param runtimeFactValues
|
|
76
|
-
*/
|
|
77
|
-
getOperandValue(operand, factsValue, runtimeFactValues) {
|
|
78
|
-
if (typeof operand === 'undefined') {
|
|
79
|
-
return undefined;
|
|
80
|
-
}
|
|
81
|
-
else if (isOperandFact(operand)) {
|
|
82
|
-
const factValue = factsValue[operand.value];
|
|
83
|
-
// eslint-disable-next-line new-cap -- convention for JSONPath
|
|
84
|
-
return operand.path ? factValue && JSONPath({ wrap: false, json: factValue, path: operand.path }) : factValue;
|
|
85
|
-
}
|
|
86
|
-
else if (isOperandLiteral(operand)) {
|
|
87
|
-
return operand.value;
|
|
88
|
-
}
|
|
89
|
-
else if (isOperandRuntimeFact(operand)) {
|
|
90
|
-
return runtimeFactValues[operand.value];
|
|
91
|
-
}
|
|
92
|
-
return undefined;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Process a root rule from a ruleset, and return the associated actions to be processed
|
|
96
|
-
* Will also update the runtimeFactValues map that is ruleset wise
|
|
97
|
-
* Note that runtimeFactValues will be mutated by all the runtime facts actions executed
|
|
98
|
-
* @param rule
|
|
99
|
-
* @param factsValue
|
|
100
|
-
* @param runtimeFactValues
|
|
101
|
-
* @protected
|
|
102
|
-
*/
|
|
103
|
-
evaluateRule(rule, factsValue, runtimeFactValues) {
|
|
104
|
-
return this.evaluateBlock(rule.rootElement, factsValue, runtimeFactValues);
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Recursively process a block to extract all the actions keeping the order
|
|
108
|
-
* Note that runtimeFactValues will be mutated by all the runtime facts actions executed
|
|
109
|
-
* @param element
|
|
110
|
-
* @param factsValue
|
|
111
|
-
* @param runtimeFactValues This runtime fact map will be mutated by all the runtime facts actions executed
|
|
112
|
-
* @param actions
|
|
113
|
-
* @protected
|
|
114
|
-
*/
|
|
115
|
-
evaluateBlock(element, factsValue, runtimeFactValues, actions = []) {
|
|
116
|
-
if (this.isIfElseBlock(element)) {
|
|
117
|
-
(!element.condition || this.evaluateCondition(element.condition, factsValue, runtimeFactValues) ? element.successElements : element.failureElements)
|
|
118
|
-
.forEach((elementResult) => this.evaluateBlock(elementResult, factsValue, runtimeFactValues, actions));
|
|
119
|
-
}
|
|
120
|
-
else if (this.isActionBlock(element)) {
|
|
121
|
-
if (this.isActionSetTemporaryFactBlock(element)) {
|
|
122
|
-
runtimeFactValues[element.fact] = element.value;
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
actions.push(element);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
return actions;
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Returns true if the element is a IfElse block
|
|
132
|
-
* @param element
|
|
133
|
-
* @protected
|
|
134
|
-
*/
|
|
135
|
-
isIfElseBlock(element) {
|
|
136
|
-
return element.blockType === 'IF_ELSE';
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Returns true if the element is an action block
|
|
140
|
-
* @param element
|
|
141
|
-
* @protected
|
|
142
|
-
*/
|
|
143
|
-
isActionBlock(element) {
|
|
144
|
-
return 'elementType' in element && element.elementType === 'ACTION';
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Returns true if the action sets a temporary fact
|
|
148
|
-
* @param element
|
|
149
|
-
* @protected
|
|
150
|
-
*/
|
|
151
|
-
isActionSetTemporaryFactBlock(element) {
|
|
152
|
-
return 'actionType' in element && element.actionType === 'SET_FACT';
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Evaluate a condition block
|
|
156
|
-
* @param nestedCondition
|
|
157
|
-
* @param factsValue
|
|
158
|
-
* @param runtimeFactValues
|
|
159
|
-
* @protected
|
|
160
|
-
*/
|
|
161
|
-
evaluateCondition(nestedCondition, factsValue, runtimeFactValues) {
|
|
162
|
-
if (isConditionProperties(nestedCondition)) {
|
|
163
|
-
const operator = this.operators[nestedCondition.operator];
|
|
164
|
-
if (operator === undefined) {
|
|
165
|
-
throw new Error(`Unknown operator : ${nestedCondition.operator}, skipping the rule execution...`);
|
|
166
|
-
}
|
|
167
|
-
return executeOperator(this.getOperandValue(nestedCondition.lhs, factsValue, runtimeFactValues), this.getOperandValue('rhs' in nestedCondition ? nestedCondition.rhs : undefined, factsValue, runtimeFactValues), operator, factsValue);
|
|
168
|
-
}
|
|
169
|
-
if (isNotCondition(nestedCondition)) {
|
|
170
|
-
return !this.evaluateCondition(nestedCondition.not, factsValue, runtimeFactValues);
|
|
171
|
-
}
|
|
172
|
-
if (nestedCondition.all || nestedCondition.any) {
|
|
173
|
-
const evaluate = (condition) => this.evaluateCondition(condition, factsValue, runtimeFactValues);
|
|
174
|
-
return isAllConditions(nestedCondition) ? nestedCondition.all.every((element) => evaluate(element)) : nestedCondition.any.some((element) => evaluate(element));
|
|
175
|
-
}
|
|
176
|
-
throw new Error(`Unknown condition block met : ${JSON.stringify(nestedCondition)}`);
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Plug ruleset to fact streams and trigger a first evaluation
|
|
180
|
-
*/
|
|
181
|
-
plugRuleset() {
|
|
182
|
-
const inputFactsForRule = {};
|
|
183
|
-
this.ruleset.rules.forEach((rule) => inputFactsForRule[rule.id] = this.findRuleInputFacts(rule.rootElement));
|
|
184
|
-
const factsThatRerunEverything = [];
|
|
185
|
-
this.ruleset.rules.forEach((rule) => {
|
|
186
|
-
if (rule.outputRuntimeFacts.length > 0 || rule.inputRuntimeFacts.length > 0) {
|
|
187
|
-
factsThatRerunEverything.push(...inputFactsForRule[rule.id]);
|
|
188
|
-
}
|
|
189
|
-
else { }
|
|
190
|
-
});
|
|
191
|
-
const triggerFull$ = factsThatRerunEverything.length === 0
|
|
192
|
-
? of([])
|
|
193
|
-
: combineLatest(factsThatRerunEverything.map((fact) => this.rulesEngine.retrieveOrCreateFactStream(fact)));
|
|
194
|
-
const result$ = triggerFull$.pipe(switchMap(() => {
|
|
195
|
-
const runtimeFactValues = {};
|
|
196
|
-
let rulesetInputFacts;
|
|
197
|
-
if (this.rulesEngine.debugMode) {
|
|
198
|
-
rulesetInputFacts = Array.from(this.ruleset.rules.reduce((acc, rule) => {
|
|
199
|
-
inputFactsForRule[rule.id].forEach((factName) => acc.add(factName));
|
|
200
|
-
return acc;
|
|
201
|
-
}, new Set()));
|
|
202
|
-
}
|
|
203
|
-
return combineLatest(this.ruleset.rules.map((rule) => {
|
|
204
|
-
const inputFacts = inputFactsForRule[rule.id];
|
|
205
|
-
const values$ = inputFacts.map((fact) => this.rulesEngine.retrieveOrCreateFactStream(fact));
|
|
206
|
-
return (values$.length > 0 ? combineLatest(values$) : of([[]]))
|
|
207
|
-
.pipe(startWith(undefined), pairwise(), tap(() => this.performanceMark(rule, 'start')), map(([oldFactValues, factValues]) => {
|
|
208
|
-
const output = { actions: undefined };
|
|
209
|
-
try {
|
|
210
|
-
output.actions = this.evaluateRule(rule, inputFacts.reduce((acc, id, index) => {
|
|
211
|
-
acc[id] = factValues[index];
|
|
212
|
-
return acc;
|
|
213
|
-
}, {}), runtimeFactValues);
|
|
214
|
-
}
|
|
215
|
-
catch (error) {
|
|
216
|
-
output.actions = undefined;
|
|
217
|
-
output.error = error;
|
|
218
|
-
}
|
|
219
|
-
if (this.rulesEngine.debugMode) {
|
|
220
|
-
output.evaluation = handleRuleEvaluationDebug({ ...rule, inputFacts }, this.ruleset.name, output.actions, output.error, runtimeFactValues, factValues, oldFactValues);
|
|
221
|
-
}
|
|
222
|
-
else if (output.error) {
|
|
223
|
-
this.rulesEngine.logger?.error(output.error);
|
|
224
|
-
this.rulesEngine.logger?.warn(`Skipping rule ${rule.name}, and the associated ruleset`);
|
|
225
|
-
}
|
|
226
|
-
return output;
|
|
227
|
-
}), tap(() => this.performanceMark(rule, 'end')));
|
|
228
|
-
})).pipe(startWith(undefined), pairwise(), map(([prevRes, currRes]) => {
|
|
229
|
-
const actionsLists = currRes.map((r) => r.actions);
|
|
230
|
-
const allExecutionsValid = actionsLists.every((actions) => !!actions);
|
|
231
|
-
let execInfo = { actionsLists: (allExecutionsValid ? actionsLists : [[]]) };
|
|
232
|
-
if (this.rulesEngine.engineDebug) {
|
|
233
|
-
execInfo = {
|
|
234
|
-
...execInfo,
|
|
235
|
-
...this.rulesEngine.engineDebug.handleDebugRulesetExecutionInfo(currRes, prevRes, allExecutionsValid, rulesetInputFacts, runtimeFactValues, ++this.executionCounter, this.ruleset)
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
|
-
return execInfo;
|
|
239
|
-
}), map((output) => {
|
|
240
|
-
const outputActions = [].concat(...output.actionsLists);
|
|
241
|
-
if (this.rulesEngine.engineDebug && output.allExecutionsValid) {
|
|
242
|
-
this.rulesEngine.engineDebug.addRulesetExecutionEvent(this.ruleset, output.executionCounter, rulesetInputFacts, outputActions, runtimeFactValues, output.rulesetTriggers, output.rulesetOutputExecution);
|
|
243
|
-
}
|
|
244
|
-
return outputActions;
|
|
245
|
-
}), distinctUntilChanged((prev, curr) => prev.length === 0 && curr.length === 0));
|
|
246
|
-
}), shareReplay({ bufferSize: 1, refCount: true }));
|
|
247
|
-
return {
|
|
248
|
-
id: this.ruleset.id,
|
|
249
|
-
validityRange: this.ruleset.validityRange,
|
|
250
|
-
linkedComponent: this.ruleset.linkedComponent,
|
|
251
|
-
linkedComponents: this.ruleset.linkedComponents,
|
|
252
|
-
rulesResultsSubject$: result$
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXNldC1leGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbmdpbmUvcnVsZXNldC1leGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1QkFBdUI7QUFDdkIsT0FBTyxFQUNMLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsYUFBYSxFQUViLEVBQUUsR0FDSCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsR0FBRyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wseUJBQXlCLEdBQzFCLE1BQU0saUJBQWlCLENBQUM7QUFhekIsT0FBTyxFQUNMLGVBQWUsR0FDaEIsTUFBTSw2QkFBNkIsQ0FBQztBQUlyQyxPQUFPLEVBQ0wsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixvQkFBb0IsR0FDckIsTUFBTSxxQkFBcUIsQ0FBQztBQWU3QixNQUFNLE9BQU8sZUFBZTtJQWtCMUI7Ozs7T0FJRztJQUNILFlBQVksT0FBZ0IsRUFBRSxXQUF3QjtRQVA5QyxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFxSzdCOzs7V0FHRztRQUNnQix1QkFBa0IsR0FBRyxDQUFDLEdBQWEsRUFBWSxFQUFFO1lBQ2xFLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7WUFDekMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNoRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDO1FBcktBLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FB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Qyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBaUIsRUFDMUYsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxlQUFnQixFQUM1RSxNQUFNLENBQUMsc0JBQXVCLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztnQkFFRCxPQUFPLGFBQWEsQ0FBQztZQUN2QixDQUFDLENBQUMsRUFDRixvQkFBb0IsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQzdFLENBQUM7UUFDSixDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFcEQsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbkIsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYTtZQUN6QyxlQUFlLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlO1lBQzdDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCO1lBQy9DLG9CQUFvQixFQUFFLE9BQU87U0FDYixDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBSdWxlc2V0IGV4ZWN1dG9yICovXG5pbXBvcnQge1xuICBKU09OUGF0aCxcbn0gZnJvbSAnanNvbnBhdGgtcGx1cyc7XG5pbXBvcnQge1xuICBjb21iaW5lTGF0ZXN0LFxuICBPYnNlcnZhYmxlLFxuICBvZixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgbWFwLFxuICBwYWlyd2lzZSxcbiAgc2hhcmVSZXBsYXksXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIGhhbmRsZVJ1bGVFdmFsdWF0aW9uRGVidWcsXG59IGZyb20gJy4vZGVidWcvaGVscGVycyc7XG5pbXBvcnQgdHlwZSB7XG4gIFJ1bGVzRW5naW5lLFxufSBmcm9tICcuL2VuZ2luZSc7XG5pbXBvcnQge1xuICBFbmdpbmVSdWxlc2V0LFxuICBFdmFsdWF0aW9uUmVhc29uLFxuICBSdWxlRXZhbHVhdGlvbixcbiAgUnVsZUV2YWx1YXRpb25PdXRwdXQsXG59IGZyb20gJy4vZW5naW5lLmludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7XG4gIEZhY3RzLFxufSBmcm9tICcuL2ZhY3QnO1xuaW1wb3J0IHtcbiAgZXhlY3V0ZU9wZXJhdG9yLFxufSBmcm9tICcuL29wZXJhdG9yL29wZXJhdG9yLmhlbHBlcnMnO1xuaW1wb3J0IHtcbiAgT3BlcmF0b3IsXG59IGZyb20gJy4vb3BlcmF0b3Ivb3BlcmF0b3IuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIGlzQWxsQ29uZGl0aW9ucyxcbiAgaXNDb25kaXRpb25Qcm9wZXJ0aWVzLFxuICBpc05vdENvbmRpdGlvbixcbiAgaXNPcGVyYW5kRmFjdCxcbiAgaXNPcGVyYW5kTGl0ZXJhbCxcbiAgaXNPcGVyYW5kUnVudGltZUZhY3QsXG59IGZyb20gJy4vcnVsZS9ydWxlLmhlbHBlcnMnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQmxvY2ssXG4gIEFjdGlvblNldFRlbXBvcmFyeUZhY3RCbG9jayxcbiAgQWxsQmxvY2ssXG4gIEdlbmVyaWNPcGVyYW5kLFxuICBJZkVsc2VCbG9jayxcbiAgTmVzdGVkQ29uZGl0aW9uLFxuICBSdWxlLFxuICBSdWxlc2V0LFxufSBmcm9tICcuL3N0cnVjdHVyZSc7XG5cbi8qKiBUeXBlIG9mIHRoZSByZXRyaWV2ZSBmYWN0IGZ1bmN0aW9uICovXG5leHBvcnQgdHlwZSBSZXRyaWV2ZUZhY3RGdW5jVHlwZSA9IDxUID0gdW5rbm93bj4gKGlkOiBzdHJpbmcpID0+IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD47XG5cbmV4cG9ydCBjbGFzcyBSdWxlc2V0RXhlY3V0b3Ige1xuICAvKiogcmV0cmlldmVGYWN0RnVuYyAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcnVsZXNFbmdpbmU6IFJ1bGVzRW5naW5lO1xuXG4gIC8qKiBNYXAgb2YgYXZhaWxhYmxlIG9wZXJhdG9ycyAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3BlcmF0b3JzOiBSZWNvcmQ8c3RyaW5nLCBPcGVyYXRvcjx1bmtub3duLCB1bmtub3duPj47XG5cbiAgLyoqIERlbGF5IGJlZm9yZSBmYWN0IHN0cmVhbSBkZWZhdWx0aW5nIHZhbHVlICovXG4gIHB1YmxpYyByZWFkb25seSBmYWN0RGVmYXVsdERlbGF5PzogbnVtYmVyO1xuXG4gIC8qKiBSdWxlc2V0IGFzc29jaWF0ZWQgdG8gdGhlIGN1cnJlbnQgZXhlY3V0b3IqL1xuICBwdWJsaWMgcmVhZG9ubHkgcnVsZXNldDogUnVsZXNldDtcblxuICAvKiogUnVsZXNldCBwbHVnZ2VkIHRvIHRoZSBmYWN0IHN0cmVhbSwgdGhhdCBjb250YWlucyBhY3Rpb25zIHN0cmVhbSByZXN1bHQgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVuZ2luZVJ1bGVzZXQ6IEVuZ2luZVJ1bGVzZXQ7XG5cbiAgcHJpdmF0ZSBleGVjdXRpb25Db3VudGVyID0gMDtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IHJ1bGVzZXQgZXhlY3V0b3JcbiAgICogQHBhcmFtIHJ1bGVzZXQgUnVsZXNldCB0byBldmFsdWF0ZVxuICAgKiBAcGFyYW0gcnVsZXNFbmdpbmUgSW5zdGFuY2Ugb2YgdGhlIHJ1bGVzIGVuZ2luZVxuICAgKi9cbiAgY29uc3RydWN0b3IocnVsZXNldDogUnVsZXNldCwgcnVsZXNFbmdpbmU6IFJ1bGVzRW5naW5lKSB7XG4gICAgdGhpcy5ydWxlc2V0ID0gcnVsZXNldDtcbiAgICB0aGlzLnJ1bGVzRW5naW5lID0gcnVsZXNFbmdpbmU7XG4gICAgdGhpcy5vcGVyYXRvcnMgPSBydWxlc0VuZ2luZS5vcGVyYXRvcnM7XG4gICAgdGhpcy5lbmdpbmVSdWxlc2V0ID0gdGhpcy5wbHVnUnVsZXNldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZWx5IGV4cGxvcmVzIGEgcnVsZSB0byBpZGVudGlmeSBhbmQgY29sbGVjdCBpbnB1dCBmYWN0cy5cbiAgICogSW5wdXQgZmFjdHMgYXJlIGlkZW50aWZpZWQgYmFzZWQgb24gdGhlICdGQUNUJyB0eXBlIGFuZCBvcGVyYXRvci1zcGVjaWZpYyBpbXBsaWNpdCBkZXBlbmRlbmNpZXMuXG4gICAqIEBwYXJhbSBjdXJyZW50T2JqZWN0IFRoZSBjdXJyZW50IG9iamVjdCBiZWluZyBleHBsb3JlZC5cbiAgICogQHBhcmFtIHJ1bGVJbnB1dEZhY3RzIEEgc2V0IHRvIHN0b3JlIHRoZSBpZGVudGlmaWVkIGlucHV0IGZhY3RzIGZvciB0aGUgcnVsZS5cbiAgICovXG4gIHByaXZhdGUgY29sbGVjdFJ1bGVJbnB1dEZhY3RzKGN1cnJlbnRPYmplY3Q6IEFsbEJsb2NrIHwgTmVzdGVkQ29uZGl0aW9uIHwgTmVzdGVkQ29uZGl0aW9uW10sIHJ1bGVJbnB1dEZhY3RzOiBTZXQ8c3RyaW5nPikge1xuICAgIGlmIChjdXJyZW50T2JqZWN0ICYmIGlzT3BlcmFuZEZhY3QoY3VycmVudE9iamVjdCkpIHtcbiAgICAgIHJ1bGVJbnB1dEZhY3RzLmFkZChjdXJyZW50T2JqZWN0LnZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY3VycmVudE9iamVjdCkpIHtcbiAgICAgIGN1cnJlbnRPYmplY3QuZm9yRWFjaCgoZWxlbSkgPT4gdGhpcy5jb2xsZWN0UnVsZUlucHV0RmFjdHMoZWxlbSwgcnVsZUlucHV0RmFjdHMpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gY3VycmVudE9iamVjdCkge1xuICAgICAgICBpZiAoKGtleSA9PT0gJ29wZXJhdG9yJykgJiYgaXNDb25kaXRpb25Qcm9wZXJ0aWVzKGN1cnJlbnRPYmplY3QpKSB7XG4gICAgICAgICAgY29uc3Qgb3AgPSB0aGlzLm9wZXJhdG9yc1tjdXJyZW50T2JqZWN0W2tleV1dO1xuICAgICAgICAgIGlmIChvcCAmJiBvcC5mYWN0SW1wbGljaXREZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgIG9wLmZhY3RJbXBsaWNpdERlcGVuZGVuY2llcy5mb3JFYWNoKChkZXApID0+IHJ1bGVJbnB1dEZhY3RzLmFkZChkZXApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGN1cnJlbnRPYmplY3Rba2V5IGFzIGtleW9mIChBbGxCbG9jayB8IE5lc3RlZENvbmRpdGlvbildID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHRoaXMuY29sbGVjdFJ1bGVJbnB1dEZhY3RzKGN1cnJlbnRPYmplY3Rba2V5IGFzIGtleW9mIChBbGxCbG9jayB8IE5lc3RlZENvbmRpdGlvbildLCBydWxlSW5wdXRGYWN0cyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVwb3J0IHBlcmZvcm1hbmNlIG1hcmsgZm9yIGEgcnVsZSBydW5cbiAgICogQHBhcmFtIHJ1bGUgUnVsZSB0byBtZWFzdXJlXG4gICAqIEBwYXJhbSBzdGF0dXMgc3RhdHVzIG9mIHRoZSBydWxlIGV2YWx1YXRpb25cbiAgICovXG4gIHByb3RlY3RlZCBwZXJmb3JtYW5jZU1hcmsocnVsZTogUnVsZSwgc3RhdHVzOiAnc3RhcnQnIHwgJ2VuZCcpIHtcbiAgICBpZiAodGhpcy5ydWxlc0VuZ2luZS5wZXJmb3JtYW5jZSkge1xuICAgICAgY29uc3QgbWFya05hbWUgPSBgcnVsZXMtZW5naW5lOiR7dGhpcy5ydWxlc0VuZ2luZS5ydWxlc0VuZ2luZUluc3RhbmNlTmFtZX06JHt0aGlzLnJ1bGVzZXQubmFtZX06JHtydWxlLm5hbWV9YDtcbiAgICAgIHRoaXMucnVsZXNFbmdpbmUucGVyZm9ybWFuY2UubWFyayhgJHttYXJrTmFtZX06JHtzdGF0dXN9YCk7XG4gICAgICBpZiAoc3RhdHVzID09PSAnZW5kJykge1xuICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLnBlcmZvcm1hbmNlLm1lYXN1cmUobWFya05hbWUsIGAke21hcmtOYW1lfTpzdGFydGAsIGAke21hcmtOYW1lfTplbmRgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IG9wZXJhbmQgdmFsdWUgc3RyZWFtIGFjY29yZGluZyB0byBpdHMgdHlwZVxuICAgKiBAcGFyYW0gb3BlcmFuZCBvcGVyYW5kIG9mIHRoZSBjb25kaXRpb25cbiAgICogQHBhcmFtIGZhY3RzVmFsdWVcbiAgICogQHBhcmFtIHJ1bnRpbWVGYWN0VmFsdWVzXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0T3BlcmFuZFZhbHVlKG9wZXJhbmQ6IEdlbmVyaWNPcGVyYW5kIHwgdW5kZWZpbmVkLCBmYWN0c1ZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cyB8IHVuZGVmaW5lZD4sIHJ1bnRpbWVGYWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cz4pOiB1bmtub3duIHtcbiAgICBpZiAodHlwZW9mIG9wZXJhbmQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSBpZiAoaXNPcGVyYW5kRmFjdChvcGVyYW5kKSkge1xuICAgICAgY29uc3QgZmFjdFZhbHVlID0gZmFjdHNWYWx1ZVtvcGVyYW5kLnZhbHVlXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwIC0tIGNvbnZlbnRpb24gZm9yIEpTT05QYXRoXG4gICAgICByZXR1cm4gb3BlcmFuZC5wYXRoID8gZmFjdFZhbHVlICYmIEpTT05QYXRoKHsgd3JhcDogZmFsc2UsIGpzb246IGZhY3RWYWx1ZSwgcGF0aDogb3BlcmFuZC5wYXRoIH0pIDogZmFjdFZhbHVlO1xuICAgIH0gZWxzZSBpZiAoaXNPcGVyYW5kTGl0ZXJhbChvcGVyYW5kKSkge1xuICAgICAgcmV0dXJuIG9wZXJhbmQudmFsdWU7XG4gICAgfSBlbHNlIGlmIChpc09wZXJhbmRSdW50aW1lRmFjdChvcGVyYW5kKSkge1xuICAgICAgcmV0dXJuIHJ1bnRpbWVGYWN0VmFsdWVzW29wZXJhbmQudmFsdWVdO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb2Nlc3MgYSByb290IHJ1bGUgZnJvbSBhIHJ1bGVzZXQsIGFuZCByZXR1cm4gdGhlIGFzc29jaWF0ZWQgYWN0aW9ucyB0byBiZSBwcm9jZXNzZWRcbiAgICogV2lsbCBhbHNvIHVwZGF0ZSB0aGUgcnVudGltZUZhY3RWYWx1ZXMgbWFwIHRoYXQgaXMgcnVsZXNldCB3aXNlXG4gICAqIE5vdGUgdGhhdCBydW50aW1lRmFjdFZhbHVlcyB3aWxsIGJlIG11dGF0ZWQgYnkgYWxsIHRoZSBydW50aW1lIGZhY3RzIGFjdGlvbnMgZXhlY3V0ZWRcbiAgICogQHBhcmFtIHJ1bGVcbiAgICogQHBhcmFtIGZhY3RzVmFsdWVcbiAgICogQHBhcmFtIHJ1bnRpbWVGYWN0VmFsdWVzXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBldmFsdWF0ZVJ1bGUocnVsZTogUnVsZSwgZmFjdHNWYWx1ZTogUmVjb3JkPHN0cmluZywgRmFjdHMgfCB1bmRlZmluZWQ+LCBydW50aW1lRmFjdFZhbHVlczogUmVjb3JkPHN0cmluZywgRmFjdHM+KSB7XG4gICAgcmV0dXJuIHRoaXMuZXZhbHVhdGVCbG9jayhydWxlLnJvb3RFbGVtZW50LCBmYWN0c1ZhbHVlLCBydW50aW1lRmFjdFZhbHVlcyk7XG4gIH1cblxuICAvKipcbiAgICogUmVjdXJzaXZlbHkgcHJvY2VzcyBhIGJsb2NrIHRvIGV4dHJhY3QgYWxsIHRoZSBhY3Rpb25zIGtlZXBpbmcgdGhlIG9yZGVyXG4gICAqIE5vdGUgdGhhdCBydW50aW1lRmFjdFZhbHVlcyB3aWxsIGJlIG11dGF0ZWQgYnkgYWxsIHRoZSBydW50aW1lIGZhY3RzIGFjdGlvbnMgZXhlY3V0ZWRcbiAgICogQHBhcmFtIGVsZW1lbnRcbiAgICogQHBhcmFtIGZhY3RzVmFsdWVcbiAgICogQHBhcmFtIHJ1bnRpbWVGYWN0VmFsdWVzIFRoaXMgcnVudGltZSBmYWN0IG1hcCB3aWxsIGJlIG11dGF0ZWQgYnkgYWxsIHRoZSBydW50aW1lIGZhY3RzIGFjdGlvbnMgZXhlY3V0ZWRcbiAgICogQHBhcmFtIGFjdGlvbnNcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGV2YWx1YXRlQmxvY2soZWxlbWVudDogQWxsQmxvY2ssIGZhY3RzVmFsdWU6IFJlY29yZDxzdHJpbmcsIEZhY3RzIHwgdW5kZWZpbmVkPiwgcnVudGltZUZhY3RWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIEZhY3RzPiwgYWN0aW9uczogQWN0aW9uQmxvY2tbXSA9IFtdKSB7XG4gICAgaWYgKHRoaXMuaXNJZkVsc2VCbG9jayhlbGVtZW50KSkge1xuICAgICAgKCFlbGVtZW50LmNvbmRpdGlvbiB8fCB0aGlzLmV2YWx1YXRlQ29uZGl0aW9uKGVsZW1lbnQuY29uZGl0aW9uLCBmYWN0c1ZhbHVlLCBydW50aW1lRmFjdFZhbHVlcykgPyBlbGVtZW50LnN1Y2Nlc3NFbGVtZW50cyA6IGVsZW1lbnQuZmFpbHVyZUVsZW1lbnRzKVxuICAgICAgICAuZm9yRWFjaCgoZWxlbWVudFJlc3VsdCkgPT4gdGhpcy5ldmFsdWF0ZUJsb2NrKGVsZW1lbnRSZXN1bHQsIGZhY3RzVmFsdWUsIHJ1bnRpbWVGYWN0VmFsdWVzLCBhY3Rpb25zKSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzQWN0aW9uQmxvY2soZWxlbWVudCkpIHtcbiAgICAgIGlmICh0aGlzLmlzQWN0aW9uU2V0VGVtcG9yYXJ5RmFjdEJsb2NrKGVsZW1lbnQpKSB7XG4gICAgICAgIHJ1bnRpbWVGYWN0VmFsdWVzW2VsZW1lbnQuZmFjdF0gPSBlbGVtZW50LnZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWN0aW9ucy5wdXNoKGVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYWN0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGVsZW1lbnQgaXMgYSBJZkVsc2UgYmxvY2tcbiAgICogQHBhcmFtIGVsZW1lbnRcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGlzSWZFbHNlQmxvY2soZWxlbWVudDogQWxsQmxvY2spOiBlbGVtZW50IGlzIElmRWxzZUJsb2NrIHtcbiAgICByZXR1cm4gZWxlbWVudC5ibG9ja1R5cGUgPT09ICdJRl9FTFNFJztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGVsZW1lbnQgaXMgYW4gYWN0aW9uIGJsb2NrXG4gICAqIEBwYXJhbSBlbGVtZW50XG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBpc0FjdGlvbkJsb2NrKGVsZW1lbnQ6IEFsbEJsb2NrKTogZWxlbWVudCBpcyBBY3Rpb25CbG9jayB7XG4gICAgcmV0dXJuICdlbGVtZW50VHlwZScgaW4gZWxlbWVudCAmJiBlbGVtZW50LmVsZW1lbnRUeXBlID09PSAnQUNUSU9OJztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGFjdGlvbiBzZXRzIGEgdGVtcG9yYXJ5IGZhY3RcbiAgICogQHBhcmFtIGVsZW1lbnRcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGlzQWN0aW9uU2V0VGVtcG9yYXJ5RmFjdEJsb2NrKGVsZW1lbnQ6IEFjdGlvbkJsb2NrKTogZWxlbWVudCBpcyBBY3Rpb25TZXRUZW1wb3JhcnlGYWN0QmxvY2sge1xuICAgIHJldHVybiAnYWN0aW9uVHlwZScgaW4gZWxlbWVudCAmJiBlbGVtZW50LmFjdGlvblR5cGUgPT09ICdTRVRfRkFDVCc7XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGUgYSBjb25kaXRpb24gYmxvY2tcbiAgICogQHBhcmFtIG5lc3RlZENvbmRpdGlvblxuICAgKiBAcGFyYW0gZmFjdHNWYWx1ZVxuICAgKiBAcGFyYW0gcnVudGltZUZhY3RWYWx1ZXNcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGV2YWx1YXRlQ29uZGl0aW9uKG5lc3RlZENvbmRpdGlvbjogTmVzdGVkQ29uZGl0aW9uLCBmYWN0c1ZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cyB8IHVuZGVmaW5lZD4sIHJ1bnRpbWVGYWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cz4pOiBib29sZWFuIHtcbiAgICBpZiAoaXNDb25kaXRpb25Qcm9wZXJ0aWVzKG5lc3RlZENvbmRpdGlvbikpIHtcbiAgICAgIGNvbnN0IG9wZXJhdG9yID0gdGhpcy5vcGVyYXRvcnNbbmVzdGVkQ29uZGl0aW9uLm9wZXJhdG9yXTtcbiAgICAgIGlmIChvcGVyYXRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBvcGVyYXRvciA6ICR7bmVzdGVkQ29uZGl0aW9uLm9wZXJhdG9yfSwgc2tpcHBpbmcgdGhlIHJ1bGUgZXhlY3V0aW9uLi4uYCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXhlY3V0ZU9wZXJhdG9yKHRoaXMuZ2V0T3BlcmFuZFZhbHVlKG5lc3RlZENvbmRpdGlvbi5saHMsIGZhY3RzVmFsdWUsIHJ1bnRpbWVGYWN0VmFsdWVzKSxcbiAgICAgICAgdGhpcy5nZXRPcGVyYW5kVmFsdWUoJ3JocycgaW4gbmVzdGVkQ29uZGl0aW9uID8gbmVzdGVkQ29uZGl0aW9uLnJocyA6IHVuZGVmaW5lZCwgZmFjdHNWYWx1ZSwgcnVudGltZUZhY3RWYWx1ZXMpLCBvcGVyYXRvciwgZmFjdHNWYWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKGlzTm90Q29uZGl0aW9uKG5lc3RlZENvbmRpdGlvbikpIHtcbiAgICAgIHJldHVybiAhdGhpcy5ldmFsdWF0ZUNvbmRpdGlvbihuZXN0ZWRDb25kaXRpb24ubm90LCBmYWN0c1ZhbHVlLCBydW50aW1lRmFjdFZhbHVlcyk7XG4gICAgfVxuICAgIGlmIChuZXN0ZWRDb25kaXRpb24uYWxsIHx8IG5lc3RlZENvbmRpdGlvbi5hbnkpIHtcbiAgICAgIGNvbnN0IGV2YWx1YXRlID0gKGNvbmRpdGlvbjogTmVzdGVkQ29uZGl0aW9uKSA9PiB0aGlzLmV2YWx1YXRlQ29uZGl0aW9uKGNvbmRpdGlvbiwgZmFjdHNWYWx1ZSwgcnVudGltZUZhY3RWYWx1ZXMpO1xuICAgICAgcmV0dXJuIGlzQWxsQ29uZGl0aW9ucyhuZXN0ZWRDb25kaXRpb24pID8gbmVzdGVkQ29uZGl0aW9uLmFsbC5ldmVyeSgoZWxlbWVudCkgPT4gZXZhbHVhdGUoZWxlbWVudCkpIDogbmVzdGVkQ29uZGl0aW9uLmFueS5zb21lKChlbGVtZW50KSA9PiBldmFsdWF0ZShlbGVtZW50KSk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBjb25kaXRpb24gYmxvY2sgbWV0IDogJHtKU09OLnN0cmluZ2lmeShuZXN0ZWRDb25kaXRpb24pfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgcnVsZSBpbnB1dCBmYWN0c1xuICAgKiBAcGFyYW0gb2JqXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmluZFJ1bGVJbnB1dEZhY3RzID0gKG9iajogQWxsQmxvY2spOiBzdHJpbmdbXSA9PiB7XG4gICAgY29uc3QgcnVsZUlucHV0RmFjdHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICB0aGlzLmNvbGxlY3RSdWxlSW5wdXRGYWN0cyhvYmosIHJ1bGVJbnB1dEZhY3RzKTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShydWxlSW5wdXRGYWN0cyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFBsdWcgcnVsZXNldCB0byBmYWN0IHN0cmVhbXMgYW5kIHRyaWdnZXIgYSBmaXJzdCBldmFsdWF0aW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgcGx1Z1J1bGVzZXQoKSB7XG4gICAgY29uc3QgaW5wdXRGYWN0c0ZvclJ1bGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9O1xuICAgIHRoaXMucnVsZXNldC5ydWxlcy5mb3JFYWNoKChydWxlKSA9PiBpbnB1dEZhY3RzRm9yUnVsZVtydWxlLmlkXSA9IHRoaXMuZmluZFJ1bGVJbnB1dEZhY3RzKHJ1bGUucm9vdEVsZW1lbnQpKTtcbiAgICBjb25zdCBmYWN0c1RoYXRSZXJ1bkV2ZXJ5dGhpbmc6IHN0cmluZ1tdID0gW107XG4gICAgdGhpcy5ydWxlc2V0LnJ1bGVzLmZvckVhY2goKHJ1bGUpID0+IHtcbiAgICAgIGlmIChydWxlLm91dHB1dFJ1bnRpbWVGYWN0cy5sZW5ndGggPiAwIHx8IHJ1bGUuaW5wdXRSdW50aW1lRmFjdHMubGVuZ3RoID4gMCkge1xuICAgICAgICBmYWN0c1RoYXRSZXJ1bkV2ZXJ5dGhpbmcucHVzaCguLi5pbnB1dEZhY3RzRm9yUnVsZVtydWxlLmlkXSk7XG4gICAgICB9IGVsc2Uge31cbiAgICB9KTtcbiAgICBjb25zdCB0cmlnZ2VyRnVsbCQ6IE9ic2VydmFibGU8dW5rbm93bltdPiA9IGZhY3RzVGhhdFJlcnVuRXZlcnl0aGluZy5sZW5ndGggPT09IDBcbiAgICAgID8gb2YoW10pXG4gICAgICA6IGNvbWJpbmVMYXRlc3QoZmFjdHNUaGF0UmVydW5FdmVyeXRoaW5nLm1hcCgoZmFjdCkgPT4gdGhpcy5ydWxlc0VuZ2luZS5yZXRyaWV2ZU9yQ3JlYXRlRmFjdFN0cmVhbShmYWN0KSkpO1xuICAgIGNvbnN0IHJlc3VsdCQgPSB0cmlnZ2VyRnVsbCQucGlwZShzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgY29uc3QgcnVudGltZUZhY3RWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIEZhY3RzPiA9IHt9O1xuXG4gICAgICBsZXQgcnVsZXNldElucHV0RmFjdHM6IHN0cmluZ1tdO1xuICAgICAgaWYgKHRoaXMucnVsZXNFbmdpbmUuZGVidWdNb2RlKSB7XG4gICAgICAgIHJ1bGVzZXRJbnB1dEZhY3RzID0gQXJyYXkuZnJvbSh0aGlzLnJ1bGVzZXQucnVsZXMucmVkdWNlKChhY2MsIHJ1bGUpID0+IHtcbiAgICAgICAgICBpbnB1dEZhY3RzRm9yUnVsZVtydWxlLmlkXS5mb3JFYWNoKChmYWN0TmFtZSkgPT4gYWNjLmFkZChmYWN0TmFtZSkpO1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIG5ldyBTZXQ8c3RyaW5nPigpKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHRoaXMucnVsZXNldC5ydWxlcy5tYXAoKHJ1bGUpID0+IHtcbiAgICAgICAgY29uc3QgaW5wdXRGYWN0cyA9IGlucHV0RmFjdHNGb3JSdWxlW3J1bGUuaWRdO1xuICAgICAgICBjb25zdCB2YWx1ZXMkID0gaW5wdXRGYWN0cy5tYXAoKGZhY3QpID0+IHRoaXMucnVsZXNFbmdpbmUucmV0cmlldmVPckNyZWF0ZUZhY3RTdHJlYW0oZmFjdCkpO1xuICAgICAgICByZXR1cm4gKHZhbHVlcyQubGVuZ3RoID4gMCA/IGNvbWJpbmVMYXRlc3QodmFsdWVzJCkgOiBvZihbW11dIGFzIChGYWN0cyB8IHVuZGVmaW5lZClbXSkpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgodW5kZWZpbmVkKSxcbiAgICAgICAgICAgIHBhaXJ3aXNlKCksXG4gICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5wZXJmb3JtYW5jZU1hcmsocnVsZSwgJ3N0YXJ0JykpLFxuICAgICAgICAgICAgbWFwKChbb2xkRmFjdFZhbHVlcywgZmFjdFZhbHVlc10pID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgb3V0cHV0OiBSdWxlRXZhbHVhdGlvbk91dHB1dCA9IHsgYWN0aW9uczogdW5kZWZpbmVkIH07XG5cbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBvdXRwdXQuYWN0aW9ucyA9IHRoaXMuZXZhbHVhdGVSdWxlKHJ1bGUsIGlucHV0RmFjdHMucmVkdWNlPFJlY29yZDxzdHJpbmcsIEZhY3RzIHwgdW5kZWZpbmVkPj4oKGFjYywgaWQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICBhY2NbaWRdID0gZmFjdFZhbHVlcyFbaW5kZXhdO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9LCB7fSksIHJ1bnRpbWVGYWN0VmFsdWVzKTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQuYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBvdXRwdXQuZXJyb3IgPSBlcnJvcjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICh0aGlzLnJ1bGVzRW5naW5lLmRlYnVnTW9kZSkge1xuICAgICAgICAgICAgICAgIG91dHB1dC5ldmFsdWF0aW9uID0gaGFuZGxlUnVsZUV2YWx1YXRpb25EZWJ1Zyh7IC4uLnJ1bGUsIGlucHV0RmFjdHMgfSwgdGhpcy5ydWxlc2V0Lm5hbWUsIG91dHB1dC5hY3Rpb25zLCBvdXRwdXQuZXJyb3IsIHJ1bnRpbWVGYWN0VmFsdWVzLCBmYWN0VmFsdWVzLCBvbGRGYWN0VmFsdWVzKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChvdXRwdXQuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLmxvZ2dlcj8uZXJyb3Iob3V0cHV0LmVycm9yKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLmxvZ2dlcj8ud2FybihgU2tpcHBpbmcgcnVsZSAke3J1bGUubmFtZX0sIGFuZCB0aGUgYXNzb2NpYXRlZCBydWxlc2V0YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMucGVyZm9ybWFuY2VNYXJrKHJ1bGUsICdlbmQnKSlcbiAgICAgICAgICApO1xuICAgICAgfSkpLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh1bmRlZmluZWQpLFxuICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICBtYXAoKFtwcmV2UmVzLCBjdXJyUmVzXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFjdGlvbnNMaXN0cyA9IGN1cnJSZXMhLm1hcCgocikgPT4gci5hY3Rpb25zKTtcbiAgICAgICAgICBjb25zdCBhbGxFeGVjdXRpb25zVmFsaWQgPSBhY3Rpb25zTGlzdHMuZXZlcnkoKGFjdGlvbnMpID0+ICEhYWN0aW9ucyk7XG5cbiAgICAgICAgICBsZXQgZXhlY0luZm86IHtcbiAgICAgICAgICAgIGV4ZWN1dGlvbkNvdW50ZXI/OiBudW1iZXI7XG4gICAgICAgICAgICBhY3Rpb25zTGlzdHM6IEFjdGlvbkJsb2NrW11bXTtcbiAgICAgICAgICAgIHJ1bGVzZXRPdXRwdXRFeGVjdXRpb24/OiBSdWxlRXZhbHVhdGlvbltdO1xuICAgICAgICAgICAgYWxsRXhlY3V0aW9uc1ZhbGlkPzogYm9vbGVhbjtcbiAgICAgICAgICAgIHJ1bGVzZXRUcmlnZ2Vycz86IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIEV2YWx1YXRpb25SZWFzb24+PjtcbiAgICAgICAgICB9ID0geyBhY3Rpb25zTGlzdHM6IChhbGxFeGVjdXRpb25zVmFsaWQgPyBhY3Rpb25zTGlzdHMgOiBbW11dKSB9O1xuXG4gICAgICAgICAgaWYgKHRoaXMucnVsZXNFbmdpbmUuZW5naW5lRGVidWcpIHtcbiAgICAgICAgICAgIGV4ZWNJbmZvID0ge1xuICAgICAgICAgICAgICAuLi5leGVjSW5mbyxcbiAgICAgICAgICAgICAgLi4udGhpcy5ydWxlc0VuZ2luZS5lbmdpbmVEZWJ1Zy5oYW5kbGVEZWJ1Z1J1bGVzZXRFeGVjdXRpb25JbmZvKFxuICAgICAgICAgICAgICAgIGN1cnJSZXMhLCBwcmV2UmVzLCBhbGxFeGVjdXRpb25zVmFsaWQsIHJ1bGVzZXRJbnB1dEZhY3RzLCBydW50aW1lRmFjdFZhbHVlcywgKyt0aGlzLmV4ZWN1dGlvbkNvdW50ZXIsIHRoaXMucnVsZXNldClcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBleGVjSW5mbztcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgob3V0cHV0KSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3V0cHV0QWN0aW9ucyA9IChbXSBhcyBBY3Rpb25CbG9ja1tdKS5jb25jYXQoLi4ub3V0cHV0LmFjdGlvbnNMaXN0cyk7XG5cbiAgICAgICAgICBpZiAodGhpcy5ydWxlc0VuZ2luZS5lbmdpbmVEZWJ1ZyAmJiBvdXRwdXQuYWxsRXhlY3V0aW9uc1ZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLmVuZ2luZURlYnVnLmFkZFJ1bGVzZXRFeGVjdXRpb25FdmVudCh0aGlzLnJ1bGVzZXQsIG91dHB1dC5leGVjdXRpb25Db3VudGVyISxcbiAgICAgICAgICAgICAgcnVsZXNldElucHV0RmFjdHMsIG91dHB1dEFjdGlvbnMsIHJ1bnRpbWVGYWN0VmFsdWVzLCBvdXRwdXQucnVsZXNldFRyaWdnZXJzISxcbiAgICAgICAgICAgICAgb3V0cHV0LnJ1bGVzZXRPdXRwdXRFeGVjdXRpb24hKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gb3V0cHV0QWN0aW9ucztcbiAgICAgICAgfSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2LCBjdXJyKSA9PiBwcmV2Lmxlbmd0aCA9PT0gMCAmJiBjdXJyLmxlbmd0aCA9PT0gMClcbiAgICAgICk7XG4gICAgfSksIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB0aGlzLnJ1bGVzZXQuaWQsXG4gICAgICB2YWxpZGl0eVJhbmdlOiB0aGlzLnJ1bGVzZXQudmFsaWRpdHlSYW5nZSxcbiAgICAgIGxpbmtlZENvbXBvbmVudDogdGhpcy5ydWxlc2V0LmxpbmtlZENvbXBvbmVudCxcbiAgICAgIGxpbmtlZENvbXBvbmVudHM6IHRoaXMucnVsZXNldC5saW5rZWRDb21wb25lbnRzLFxuICAgICAgcnVsZXNSZXN1bHRzU3ViamVjdCQ6IHJlc3VsdCRcbiAgICB9IGFzIEVuZ2luZVJ1bGVzZXQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VuZ2luZS9zdHJ1Y3R1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgSXRlbUlkZW50aWZpZXIsXG4gIFJ1bGVzRW5naW5lQWN0aW9uLFxufSBmcm9tICdAbzNyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBOYXRpdmVUeXBlcyA9IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXI7XG4vKiogR2VuZXJpYyBvcGVyYW5kICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhbmQ8VCBleHRlbmRzIHN0cmluZywgVSBleHRlbmRzIE5hdGl2ZVR5cGVzID0gTmF0aXZlVHlwZXM+IHtcbiAgLyoqIE9wZXJhbmQgdHlwZSAqL1xuICB0eXBlOiBUO1xuICAvKiogU3RhdGljIHZhbHVlICovXG4gIHZhbHVlOiBVO1xufVxuXG4vKiogT3BlcmFuZCBiYXNlZCBvbiBmYWN0ICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhbmRGYWN0IGV4dGVuZHMgT3BlcmFuZDwnRkFDVCcsIHN0cmluZz4ge1xuICAvKiogSlNPTlBhdGggdG8gZGVlcCByZWFkIHRoZSBmYWN0IHZhbHVlICovXG4gIHBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKiBDb25kaXRpb24gYXZhaWxhYmxlIG9wZXJhbmQgdHlwZXMgKi9cbmV4cG9ydCB0eXBlIEdlbmVyaWNPcGVyYW5kID0gT3BlcmFuZEZhY3QgfCBPcGVyYW5kPCdSVU5USU1FX0ZBQ1QnLCBzdHJpbmc+IHwgT3BlcmFuZDwnTElURVJBTCc+O1xuXG4vKiogQ29uZGl0aW9uIG9iamVjdCBpbnRlcmZhY2Ugd2l0aCB1bmFyeSBvcGVyYXRvciAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmFyeU9wZXJhdGlvbiB7XG4gIC8qKiBMZWZ0IEhhbmQgU2lkZSAqL1xuICBsaHM6IEdlbmVyaWNPcGVyYW5kO1xuICAvKiogT3BlcmF0b3IgKi9cbiAgb3BlcmF0b3I6IHN0cmluZztcbn1cblxuLyoqIENvbmRpdGlvbiBvYmplY3QgaW50ZXJmYWNlICovXG5leHBvcnQgaW50ZXJmYWNlIEJpbmFyeU9wZXJhdGlvbiB7XG4gIC8qKiBMZWZ0IEhhbmQgU2lkZSAqL1xuICBsaHM6IEdlbmVyaWNPcGVyYW5kO1xuICAvKiogUmlnaHQgSGFuZCBTaWRlICovXG4gIHJoczogR2VuZXJpY09wZXJhbmQ7XG4gIC8qKiBPcGVyYXRvciAqL1xuICBvcGVyYXRvcjogc3RyaW5nO1xufVxuXG4vKiogTmVzdGVkIENvbmRpdGlvbiAqL1xuXG5leHBvcnQgdHlwZSBOZXN0ZWRDb25kaXRpb24gPSBVbmFyeU9wZXJhdGlvbiB8IEJpbmFyeU9wZXJhdGlvbiB8IFRvcExldmVsQ29uZGl0aW9uO1xuLyoqIEFsbCBDb25kaXRpb24gKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGlkLWRlbnlsaXN0IC0tIGBhbnlgIGlzIGEgY29uZGl0aW9uYWwga2V5d29yZCBlbmZvcmNlZCBieSB0aGUgcnVsZSBpbnRlcmZhY2VcbmV4cG9ydCB0eXBlIEFsbENvbmRpdGlvbnMgPSB7IGFsbDogTmVzdGVkQ29uZGl0aW9uW107IGFueT86IG5ldmVyOyBub3Q/OiBuZXZlciB9O1xuLyoqIEFueSBDb25kaXRpb24gKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGlkLWRlbnlsaXN0IC0tIGBhbnlgIGlzIGEgY29uZGl0aW9uYWwga2V5d29yZCBlbmZvcmNlZCBieSB0aGUgcnVsZSBpbnRlcmZhY2VcbmV4cG9ydCB0eXBlIEFueUNvbmRpdGlvbnMgPSB7IGFueTogTmVzdGVkQ29uZGl0aW9uW107IGFsbD86IG5ldmVyOyBub3Q/OiBuZXZlciB9O1xuLyoqIE5vdCBDb25kaXRpb24gKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGlkLWRlbnlsaXN0IC0tIGBhbnlgIGlzIGEgY29uZGl0aW9uYWwga2V5d29yZCBlbmZvcmNlZCBieSB0aGUgcnVsZSBpbnRlcmZhY2VcbmV4cG9ydCB0eXBlIE5vdENvbmRpdGlvbiA9IHsgbm90OiBOZXN0ZWRDb25kaXRpb247IGFsbD86IG5ldmVyOyBhbnk/OiBuZXZlciB9O1xuLyoqIFRvcCBsZXZlbCBDb25kaXRpb24gaW4gdGhlIHJ1bGUgZGVmaW5pdGlvbiAqL1xuZXhwb3J0IHR5cGUgVG9wTGV2ZWxDb25kaXRpb24gPSBBbGxDb25kaXRpb25zIHwgQW55Q29uZGl0aW9ucyB8IE5vdENvbmRpdGlvbiB8IFVuYXJ5T3BlcmF0aW9uIHwgQmluYXJ5T3BlcmF0aW9uO1xuXG4vKiogRXZlbnQgZW1pdHRlZCBpbiBjYXNlIHRoZSBydWxlIGNvbmRpdGlvbiBpcyBwYXNzZWQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZUV2ZW50IHtcbiAgLyoqIFR5cGUgKG9yIG5hbWUpIG9mIHRoZSBldmVudCAqL1xuICB0eXBlOiBzdHJpbmc7XG4gIC8qKiBsaXN0IG9mIHBhcmFtZXRlciBhc3NvY2lhdGVkIHRvIHRoZSBldmVudCAqL1xuICBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG4vKiogQmFzZSBmb3IgdGhlIFJ1bGUgZGVmaW5pdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdWxlIHtcbiAgLyoqIFVuaXF1ZSBpZCBhc3NvY2lhdGVkIHRvIGEgcnVsZSovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBSdW50aW1lIGZhY3RzIHRoYXQgYXJlIG5lZWRlZCBmb3IgdGhlIHJ1bGUgZXhlY3V0aW9uIChzZW50IGJ5IHRoZSBDTVMpICovXG4gIGlucHV0UnVudGltZUZhY3RzOiBzdHJpbmdbXTtcbiAgLyoqIEBkZXByZWNhdGVkIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MTIuIEZhY3RzIHRoYXQgYXJlIG5lZWRlZCBmb3IgdGhlIHJ1bGUgZXhlY3V0aW9uIChzZW50IGJ5IHRoZSBDTVMpICovXG4gIGlucHV0RmFjdHM6IHN0cmluZ1tdO1xuICAvKiogUnVudGltZSBmYWN0cyB0aGF0IGFyZSBjcmVhdGVkL3VwZGF0ZWQgYnkgdGhlIHJ1bGUqL1xuICBvdXRwdXRSdW50aW1lRmFjdHM6IHN0cmluZ1tdO1xuICAvKiogTmFtZSBvZiB0aGUgcnVsZSovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIHJvb3RFbGVtZW50IG9mIHRoZSBydWxlLCB0aGF0IGNvbnRhaW5zIGVpdGhlciBhIGJsb2NrLCBlaXRoZXIgYW4gYWN0aW9uIGxpc3QgKi9cbiAgcm9vdEVsZW1lbnQ6IEFsbEJsb2NrO1xufVxuXG4vKipcbiAqIExpc3Qgb2YgcG9zc2libGUgdHlwZXMgb2YgYWN0aW9ucyByZXN1bHRlZCBhcyBvdXRwdXQgb2YgYSBydWxlIGV4ZWN1dGlvblxuICogQGRlcHJlY2F0ZWQgdGhlIGFjdGlvbnMgYXJlIG5vdyBkZXBlbmRpbmcgb2YgZXhlY3V0aW5nIG1vZHVsZXNcbiAqL1xuZXhwb3J0IHR5cGUgQWN0aW9uVHlwZXMgPSAnU0VUX0ZBQ1QnIHwgJ1VQREFURV9DT05GSUcnIHwgJ1VQREFURV9BU1NFVCcgfCAnVVBEQVRFX0xPQ0FMSVNBVElPTicgfCAnVVBEQVRFX1BMQUNFSE9MREVSJztcblxuLyoqIFR5cGVzIGFzc29jaWF0ZWQgdG8gdGhlIGNvbmRpdGlvbiBibG9ja3MgdGhhdCBhcmUgc3VwcG9ydGVkICovXG5leHBvcnQgdHlwZSBDb25kaXRpb25CbG9ja1R5cGVzID0gJ0lGX0VMU0UnO1xuXG4vKiogSW50ZXJmYWNlIGNvbW1vbiB0byBhbGwgZWxlbWVudHMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZUVsZW1lbnQge1xuICAvKiogVHlwZSBvZiB0aGUgZWxlbWVudCovXG4gIGVsZW1lbnRUeXBlOiBzdHJpbmc7XG59XG5cbi8qKiBJbnRlcmZhY2UgY29tbW9uIHRvIGFsbCBhY3Rpb25zICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkJsb2NrIGV4dGVuZHMgUnVsZUVsZW1lbnQsIFJ1bGVzRW5naW5lQWN0aW9uIHtcbiAgZWxlbWVudFR5cGU6ICdBQ1RJT04nO1xuICBhY3Rpb25UeXBlOiBzdHJpbmc7XG4gIHZhbHVlOiBhbnk7XG59XG5cbi8qKiBJbnRlcmZhY2Ugb2YgYWN0aW9uIHRoYXQgc2V0cyBvciB1cGRhdGVzIGEgdGVtcG9yYXJ5IGZhY3QgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uU2V0VGVtcG9yYXJ5RmFjdEJsb2NrIGV4dGVuZHMgQWN0aW9uQmxvY2sge1xuICBhY3Rpb25UeXBlOiAnU0VUX0ZBQ1QnO1xuICBmYWN0OiBzdHJpbmc7XG59XG5cbi8qKiBJbnRlcmZhY2Ugb2YgYmxvY2sgUnVsZSAqL1xuZXhwb3J0IGludGVyZmFjZSBSdWxlQmxvY2sgZXh0ZW5kcyBSdWxlRWxlbWVudCB7XG4gIGVsZW1lbnRUeXBlOiAnUlVMRV9CTE9DSyc7XG4gIGJsb2NrVHlwZTogQ29uZGl0aW9uQmxvY2tUeXBlcztcbn1cblxuLyoqIEFsbCBzdXBwb3J0ZWQgYmxvY2tzIChzdXBwb3J0aW5nIG5lc3RlZCBzdHJ1Y3R1cmUpICovXG5leHBvcnQgdHlwZSBBbGxCbG9jayA9XG4gIElmRWxzZUJsb2NrXG4gIHwgKEFjdGlvbkJsb2NrICYgUmVjb3JkPHN0cmluZywgYW55Pik7XG5cbi8qKiBCbG9jayByZXByZXNlbnRpbmcgYW4gJ2lmIGVsc2UnIGNvbmRpdGlvbi4gSWYgbm8gY29uZGl0aW9uIHNwZWNpZmllZCBpdCB3aWxsIGV4ZWN1dGUgc3VjY2VzcyBlbGVtZW50cyBvbmx5ICovXG5leHBvcnQgaW50ZXJmYWNlIElmRWxzZUJsb2NrIGV4dGVuZHMgUnVsZUJsb2NrIHtcbiAgYmxvY2tUeXBlOiAnSUZfRUxTRSc7XG4gIHN1Y2Nlc3NFbGVtZW50czogQWxsQmxvY2tbXTtcbiAgZmFpbHVyZUVsZW1lbnRzOiBBbGxCbG9ja1tdO1xuICBjb25kaXRpb24/OiBUb3BMZXZlbENvbmRpdGlvbjtcbn1cblxuLyoqIEludGVyZmFjZSBvZiBhIHJ1bGVzZXQgYXMgaXQncyBzcGVjaWZpZWQgaW4gdGhlIGpzb24gZmlsZSAqL1xuZXhwb3J0IGludGVyZmFjZSBSdWxlc2V0IHtcbiAgLyoqIFVuaXF1ZSBpZCBvZiB0aGUgcnVsZXNldCovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBOYW1lIG9mIHRoZSBydWxlc2V0ICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIHJ1bGVzZXQgZGVzY3JpcHRpb24gKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBMaXN0IG9mIHJ1bGVzIGFzc29jaWF0ZWQgdG8gdGhlIHJ1bGVzZXQgKi9cbiAgcnVsZXM6IFJ1bGVbXTtcbiAgLyoqIE9wdGlvbmFsIGRhdGUgcmFuZ2Ugd2hlcmUgdGhlIHJ1bGVzZXQgd2lsbCBiZSBleGVjdXRlZCovXG4gIHZhbGlkaXR5UmFuZ2U/OiB7IGZyb20/OiBzdHJpbmc7IHRvPzogc3RyaW5nIH07XG4gIC8qKlxuICAgKiBDb21wb25lbnRzIGxpbmtlZCB0byB0aGUgcnVsZXNldC4gSWYgcHJlc2VudCB0aGUgcnVsZXNldCB3aWxsIG5vdCBiZSBhY3RpdmUgYnkgZGVmYXVsdC5cbiAgICogJ29yJyBjb25kaXRpb246IElmIGF0IGxlYXN0IG9uZSBjb21wb25lbnQgaGFzIHN1YnNjcmliZWQsIHRoZSBydWxlc2V0IHdpbGwgYmVjb21lIGFjdGl2ZS5cbiAgICogSWYgcHJvdmlkZWQsIHRoZSB7QGxpbmsgbGlua2VkQ29tcG9uZW50fSBwcm9wZXJ0eSB3aWxsIG5vdCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb25cbiAgICovXG4gIGxpbmtlZENvbXBvbmVudHM/OiB7IG9yOiBJdGVtSWRlbnRpZmllcltdIH07XG4gIC8qKlxuICAgKiBDb21wb25lbnQgbGlua2VkIHRvIHRoZSBydWxlc2V0LCBpZiBzZXQgaXQgd2lsbCBkaXNhYmxlIHRoZSBydWxlc2V0IGV4ZWN1dGlvbiBwZXIgZGVmYXVsdCwgd2FpdGluZyB0byBhIHN1YnNjcmlwdGlvblxuICAgKiBAZGVwcmVjYXRlZCBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdjEyLCB1c2Uge0BsaW5rIGxpbmtlZENvbXBvbmVudHN9IGluc3RlYWRcbiAgICovXG4gIGxpbmtlZENvbXBvbmVudD86IEl0ZW1JZGVudGlmaWVyO1xufVxuIl19
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/** Abstract fact set service */
|
|
2
|
-
export class FactsService {
|
|
3
|
-
constructor(rulesEngine) {
|
|
4
|
-
this.rulesEngine = rulesEngine;
|
|
5
|
-
}
|
|
6
|
-
/** Register the set of facts */
|
|
7
|
-
register() {
|
|
8
|
-
this.rulesEngine.upsertFacts(Object.entries(this.facts)
|
|
9
|
-
.map(([id, factValue]) => ({ id, value$: factValue })));
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdC5hYnN0cmFjdC1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZhY3QvZmFjdC5hYnN0cmFjdC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLGdDQUFnQztBQUNoQyxNQUFNLE9BQWdCLFlBQVk7SUFJaEMsWUFBNkIsV0FBcUM7UUFBckMsZ0JBQVcsR0FBWCxXQUFXLENBQTBCO0lBQUcsQ0FBQztJQUV0RSxnQ0FBZ0M7SUFDekIsUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUMxQixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDdkIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FDekQsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEZhY3REZWZpbml0aW9ucyxcbiAgRmFjdFNldCxcbn0gZnJvbSAnLi4vZW5naW5lL2luZGV4JztcbmltcG9ydCB7XG4gIFJ1bGVzRW5naW5lUnVubmVyU2VydmljZSxcbn0gZnJvbSAnLi4vc2VydmljZXMvcnVubmVyL3J1bGVzLWVuZ2luZS5ydW5uZXIuc2VydmljZSc7XG5cbi8qKiBBYnN0cmFjdCBmYWN0IHNldCBzZXJ2aWNlICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmFjdHNTZXJ2aWNlPFQgZXh0ZW5kcyBGYWN0RGVmaW5pdGlvbnM+IHtcbiAgLyoqIFNldCBvZiBmYWN0cyBwcm92aWRlZCAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZmFjdHM6IEZhY3RTZXQ8VD47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBydWxlc0VuZ2luZTogUnVsZXNFbmdpbmVSdW5uZXJTZXJ2aWNlKSB7fVxuXG4gIC8qKiBSZWdpc3RlciB0aGUgc2V0IG9mIGZhY3RzICovXG4gIHB1YmxpYyByZWdpc3RlcigpIHtcbiAgICB0aGlzLnJ1bGVzRW5naW5lLnVwc2VydEZhY3RzKFxuICAgICAgT2JqZWN0LmVudHJpZXModGhpcy5mYWN0cylcbiAgICAgICAgLm1hcCgoW2lkLCBmYWN0VmFsdWVdKSA9PiAoeyBpZCwgdmFsdWUkOiBmYWN0VmFsdWUgfSkpXG4gICAgKTtcbiAgfVxufVxuIl19
|
package/esm2022/fact/index.mjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './fact.abstract-service';
|
|
2
|
-
export * from './reserved.facts';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmFjdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZhY3QuYWJzdHJhY3Qtc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc2VydmVkLmZhY3RzJztcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXJ2ZWQuZmFjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmFjdC9yZXNlcnZlZC5mYWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBGYWN0RGVmaW5pdGlvbnMsXG59IGZyb20gJy4uL2VuZ2luZS9pbmRleCc7XG5cbi8qKlxuICogSW50ZXJmYWNlIHRoYXQgY29udGFpbnMgdGhlIHBvcnRhbEZhY3RzIGRlZmluaXRpb25cbiAqIFRoaXMgaXMgb25lIG9mIHRoZSByZXNlcnZlZCBmYWN0IG5hbWVzLCBpdCB3b24ndCBiZSBwYXJ0IG9mIG1ldGFkYXRhXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9ydGFsRmFjdHMgZXh0ZW5kcyBGYWN0RGVmaW5pdGlvbnMge1xuICAvKipcbiAgICogTWFwIG9mIGZhY3RzIGNvbWluZyBmcm9tIHRoZSBwb3J0YWxcbiAgICovXG4gIHBvcnRhbEZhY3RzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './rules-engine.runner.service.fixture.jasmine';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZml4dHVyZXMvamFzbWluZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtDQUErQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ydWxlcy1lbmdpbmUucnVubmVyLnNlcnZpY2UuZml4dHVyZS5qYXNtaW5lJztcbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibzNyLXJ1bGVzLWVuZ2luZS1maXh0dXJlcy1qYXNtaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ZpeHR1cmVzL2phc21pbmUvbzNyLXJ1bGVzLWVuZ2luZS1maXh0dXJlcy1qYXNtaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/** Jasmine Fixture class for RulesEngineRunnerService */
|
|
2
|
-
export class RulesEngineRunnerServiceFixture {
|
|
3
|
-
constructor() {
|
|
4
|
-
/** @inheritDoc */
|
|
5
|
-
this.upsertFacts = jasmine.createSpy('upsertFacts');
|
|
6
|
-
/** @inheritDoc */
|
|
7
|
-
this.upsertOperators = jasmine.createSpy('upsertOperators');
|
|
8
|
-
/** @inheritDoc */
|
|
9
|
-
this.enableRuleSetFor = jasmine.createSpy('enableRuleSetFor');
|
|
10
|
-
/** @inheritDoc */
|
|
11
|
-
this.disableRuleSetFor = jasmine.createSpy('disableRuleSetFor');
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtZW5naW5lLnJ1bm5lci5zZXJ2aWNlLmZpeHR1cmUuamFzbWluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maXh0dXJlcy9qYXNtaW5lL3J1bGVzLWVuZ2luZS5ydW5uZXIuc2VydmljZS5maXh0dXJlLmphc21pbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEseURBQXlEO0FBQ3pELE1BQU0sT0FBTywrQkFBK0I7SUFBNUM7UUFDRSxrQkFBa0I7UUFDWCxnQkFBVyxHQUFnQixPQUFPLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRW5FLGtCQUFrQjtRQUNYLG9CQUFlLEdBQWdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUUzRSxrQkFBa0I7UUFDWCxxQkFBZ0IsR0FBZ0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTdFLGtCQUFrQjtRQUNYLHNCQUFpQixHQUFnQixPQUFPLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDakYsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSdWxlc0VuZ2luZVJ1bm5lclNlcnZpY2UsXG59IGZyb20gJ0BvM3IvcnVsZXMtZW5naW5lJztcblxuLyoqIEphc21pbmUgRml4dHVyZSBjbGFzcyBmb3IgUnVsZXNFbmdpbmVSdW5uZXJTZXJ2aWNlICovXG5leHBvcnQgY2xhc3MgUnVsZXNFbmdpbmVSdW5uZXJTZXJ2aWNlRml4dHVyZSBpbXBsZW1lbnRzIFJlYWRvbmx5PFBhcnRpYWw8UnVsZXNFbmdpbmVSdW5uZXJTZXJ2aWNlPj4ge1xuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIHVwc2VydEZhY3RzOiBqYXNtaW5lLlNweSA9IGphc21pbmUuY3JlYXRlU3B5KCd1cHNlcnRGYWN0cycpO1xuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgdXBzZXJ0T3BlcmF0b3JzOiBqYXNtaW5lLlNweSA9IGphc21pbmUuY3JlYXRlU3B5KCd1cHNlcnRPcGVyYXRvcnMnKTtcblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGVuYWJsZVJ1bGVTZXRGb3I6IGphc21pbmUuU3B5ID0gamFzbWluZS5jcmVhdGVTcHkoJ2VuYWJsZVJ1bGVTZXRGb3InKTtcblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGRpc2FibGVSdWxlU2V0Rm9yOiBqYXNtaW5lLlNweSA9IGphc21pbmUuY3JlYXRlU3B5KCdkaXNhYmxlUnVsZVNldEZvcicpO1xufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './rules-engine.runner.service.fixture.jest';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZml4dHVyZXMvamVzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRDQUE0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ydWxlcy1lbmdpbmUucnVubmVyLnNlcnZpY2UuZml4dHVyZS5qZXN0JztcbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibzNyLXJ1bGVzLWVuZ2luZS1maXh0dXJlcy1qZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ZpeHR1cmVzL2plc3QvbzNyLXJ1bGVzLWVuZ2luZS1maXh0dXJlcy1qZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/** Jest Fixture class for RulesEngineRunnerService */
|
|
2
|
-
export class RulesEngineRunnerServiceFixture {
|
|
3
|
-
constructor() {
|
|
4
|
-
/** @inheritDoc */
|
|
5
|
-
this.upsertFacts = jest.fn();
|
|
6
|
-
/** @inheritDoc */
|
|
7
|
-
this.upsertOperators = jest.fn();
|
|
8
|
-
/** @inheritDoc */
|
|
9
|
-
this.enableRuleSetFor = jest.fn();
|
|
10
|
-
/** @inheritDoc */
|
|
11
|
-
this.disableRuleSetFor = jest.fn();
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtZW5naW5lLnJ1bm5lci5zZXJ2aWNlLmZpeHR1cmUuamVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maXh0dXJlcy9qZXN0L3J1bGVzLWVuZ2luZS5ydW5uZXIuc2VydmljZS5maXh0dXJlLmplc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0Esc0RBQXNEO0FBQ3RELE1BQU0sT0FBTywrQkFBK0I7SUFBNUM7UUFDRSxrQkFBa0I7UUFDWCxnQkFBVyxHQUF1RCxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFFbkYsa0JBQWtCO1FBQ1gsb0JBQWUsR0FBbUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBRW5HLGtCQUFrQjtRQUNYLHFCQUFnQixHQUE4QixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFFL0Qsa0JBQWtCO1FBQ1gsc0JBQWlCLEdBQThCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEZhY3QsXG4gIE9wZXJhdG9yLFxuICBSdWxlc0VuZ2luZVJ1bm5lclNlcnZpY2UsXG4gIFVuYXJ5T3BlcmF0b3IsXG59IGZyb20gJ0BvM3IvcnVsZXMtZW5naW5lJztcblxuLyoqIEplc3QgRml4dHVyZSBjbGFzcyBmb3IgUnVsZXNFbmdpbmVSdW5uZXJTZXJ2aWNlICovXG5leHBvcnQgY2xhc3MgUnVsZXNFbmdpbmVSdW5uZXJTZXJ2aWNlRml4dHVyZSBpbXBsZW1lbnRzIFJlYWRvbmx5PFBhcnRpYWw8UnVsZXNFbmdpbmVSdW5uZXJTZXJ2aWNlPj4ge1xuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIHVwc2VydEZhY3RzOiBqZXN0Lk1vY2s8dm9pZCwgW0ZhY3Q8dW5rbm93bj4gfCBGYWN0PHVua25vd24+W11dPiA9IGplc3QuZm4oKTtcblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIHVwc2VydE9wZXJhdG9yczogamVzdC5Nb2NrPHZvaWQsIFsoT3BlcmF0b3I8YW55LCBhbnk+IHwgVW5hcnlPcGVyYXRvcjxhbnk+KVtdXT4gPSBqZXN0LmZuKCk7XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBlbmFibGVSdWxlU2V0Rm9yOiBqZXN0Lk1vY2s8dm9pZCwgW3N0cmluZ10+ID0gamVzdC5mbigpO1xuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgZGlzYWJsZVJ1bGVTZXRGb3I6IGplc3QuTW9jazx2b2lkLCBbc3RyaW5nXT4gPSBqZXN0LmZuKCk7XG59XG4iXX0=
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Injectable, } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, } from 'rxjs';
|
|
3
|
-
import { FactsService, } from '../../fact';
|
|
4
|
-
import { RulesEngineRunnerService, } from '../../services';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../../services";
|
|
7
|
-
export class CurrentTimeFactsService extends FactsService {
|
|
8
|
-
constructor(rulesEngine) {
|
|
9
|
-
super(rulesEngine);
|
|
10
|
-
this.currentTimeSubject$ = new BehaviorSubject(Date.now());
|
|
11
|
-
/** @inheritDoc */
|
|
12
|
-
this.facts = {
|
|
13
|
-
o3rCurrentTime: this.currentTimeSubject$.asObservable()
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
/** Compute the current time */
|
|
17
|
-
tick() {
|
|
18
|
-
this.currentTimeSubject$.next(Date.now());
|
|
19
|
-
}
|
|
20
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CurrentTimeFactsService, deps: [{ token: i1.RulesEngineRunnerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CurrentTimeFactsService, providedIn: 'root' }); }
|
|
22
|
-
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CurrentTimeFactsService, decorators: [{
|
|
24
|
-
type: Injectable,
|
|
25
|
-
args: [{
|
|
26
|
-
providedIn: 'root'
|
|
27
|
-
}]
|
|
28
|
-
}], ctorParameters: () => [{ type: i1.RulesEngineRunnerService }] });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVudC10aW1lLWZhY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbm5lci1mYWN0cy9jdXJyZW50LXRpbWUvY3VycmVudC10aW1lLWZhY3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxlQUFlLEdBQ2hCLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLFlBQVksR0FDYixNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQ0wsd0JBQXdCLEdBQ3pCLE1BQU0sZ0JBQWdCLENBQUM7OztBQVF4QixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsWUFBOEI7SUFPekUsWUFBWSxXQUFxQztRQUMvQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFQSix3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN2RSxrQkFBa0I7UUFDWCxVQUFLLEdBQUc7WUFDYixjQUFjLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRTtTQUN4RCxDQUFDO0lBSUYsQ0FBQztJQUVELCtCQUErQjtJQUN4QixJQUFJO1FBQ1QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO2tJQWRVLHVCQUF1QjtzSUFBdkIsdUJBQXVCLGNBRnRCLE1BQU07OzRGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBGYWN0c1NlcnZpY2UsXG59IGZyb20gJy4uLy4uL2ZhY3QnO1xuaW1wb3J0IHtcbiAgUnVsZXNFbmdpbmVSdW5uZXJTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICBDdXJyZW50VGltZUZhY3RzLFxufSBmcm9tICcuL2N1cnJlbnQtdGltZS5mYWN0cyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEN1cnJlbnRUaW1lRmFjdHNTZXJ2aWNlIGV4dGVuZHMgRmFjdHNTZXJ2aWNlPEN1cnJlbnRUaW1lRmFjdHM+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW50VGltZVN1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdChEYXRlLm5vdygpKTtcbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBmYWN0cyA9IHtcbiAgICBvM3JDdXJyZW50VGltZTogdGhpcy5jdXJyZW50VGltZVN1YmplY3QkLmFzT2JzZXJ2YWJsZSgpXG4gIH07XG5cbiAgY29uc3RydWN0b3IocnVsZXNFbmdpbmU6IFJ1bGVzRW5naW5lUnVubmVyU2VydmljZSkge1xuICAgIHN1cGVyKHJ1bGVzRW5naW5lKTtcbiAgfVxuXG4gIC8qKiBDb21wdXRlIHRoZSBjdXJyZW50IHRpbWUgKi9cbiAgcHVibGljIHRpY2soKSB7XG4gICAgdGhpcy5jdXJyZW50VGltZVN1YmplY3QkLm5leHQoRGF0ZS5ub3coKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVudC10aW1lLmZhY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2lubmVyLWZhY3RzL2N1cnJlbnQtdGltZS9jdXJyZW50LXRpbWUuZmFjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRmFjdERlZmluaXRpb25zLFxufSBmcm9tICcuLi8uLi9lbmdpbmUnO1xuXG4vKipcbiAqIE9wZXJhdG9yIGZhY3RzIHRoYXQgcHJvdmlkZSB0aGUgY3VycmVudCB0aW1lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVudFRpbWVGYWN0cyBleHRlbmRzIEZhY3REZWZpbml0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCB0aW1lIGFzIGEgdGltZXN0YW1wXG4gICAqL1xuICBvM3JDdXJyZW50VGltZTogbnVtYmVyO1xufVxuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './current-time-fact.service';
|
|
2
|
-
export * from './current-time.facts';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW5uZXItZmFjdHMvY3VycmVudC10aW1lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3VycmVudC10aW1lLWZhY3Quc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2N1cnJlbnQtdGltZS5mYWN0cyc7XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './current-time/index';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5uZXItZmFjdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3VycmVudC10aW1lL2luZGV4JztcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW50ZXJmYWNlcy9hY3Rpb24uaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBBY3Rpb25CbG9jayxcbn0gZnJvbSAnLi4vZW5naW5lL2luZGV4JztcblxuLyoqXG4gKiBDb250ZW50IG9mIGFjdGlvbiB0aGF0IHVwZGF0ZXMgdGhlIGNvbmZpZ3VyYXRpb25cbiAqIEBkZXByZWNhdGVkIHVzZSB0aGUgb25lIGV4cG9zZWQgYnkgYEBvM3IvY29uZmlndXJhdGlvbmAgbW9kdWxlLiBXaWxsIGJlIHJlbW92ZWQgaW4gT3R0ZXIgdjEyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvblVwZGF0ZUNvbmZpZ0Jsb2NrIGV4dGVuZHMgQWN0aW9uQmxvY2sge1xuICBhY3Rpb25UeXBlOiAnVVBEQVRFX0NPTkZJRyc7XG4gIGxpYnJhcnk6IHN0cmluZztcbiAgY29tcG9uZW50OiBzdHJpbmc7XG4gIHByb3BlcnR5OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29udGVudCBvZiBhY3Rpb24gdGhhdCB1cGRhdGVzIGFuIGFzc2V0XG4gKiBAZGVwcmVjYXRlZCB1c2UgdGhlIG9uZSBleHBvc2VkIGJ5IGBAbzNyL2R5bmFtaWMtY29udGVudGAgbW9kdWxlLiBXaWxsIGJlIHJlbW92ZWQgaW4gT3R0ZXIgdjEyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvblVwZGF0ZUFzc2V0QmxvY2sgZXh0ZW5kcyBBY3Rpb25CbG9jayB7XG4gIGFjdGlvblR5cGU6ICdVUERBVEVfQVNTRVQnO1xuICBhc3NldDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnRlbnQgb2YgYWN0aW9uIHRoYXQgdXBkYXRlcyBsb2NhbGl6YXRpb25cbiAqIEBkZXByZWNhdGVkIHVzZSB0aGUgb25lIGV4cG9zZWQgYnkgYEBvM3IvbG9jYWxpemF0aW9uYCBtb2R1bGUuIFdpbGwgYmUgcmVtb3ZlZCBpbiBPdHRlciB2MTIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uVXBkYXRlTG9jYWxpc2F0aW9uQmxvY2sgZXh0ZW5kcyBBY3Rpb25CbG9jayB7XG4gIGFjdGlvblR5cGU6ICdVUERBVEVfTE9DQUxJU0FUSU9OJztcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29udGVudCBvZiBhY3Rpb24gdGhhdCB1cGRhdGVzIGEgcGxhY2Vob2xkZXJcbiAqIEBkZXByZWNhdGVkIHVzZSB0aGUgb25lIGV4cG9zZWQgYnkgYEBvM3IvY29tcG9uZW50c2AgbW9kdWxlLiBXaWxsIGJlIHJlbW92ZWQgaW4gT3R0ZXIgdjEyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvblVwZGF0ZVBsYWNlaG9sZGVyQmxvY2sgZXh0ZW5kcyBBY3Rpb25CbG9jayB7XG4gIGFjdGlvblR5cGU6ICdVUERBVEVfUExBQ0VIT0xERVInO1xuICBwbGFjZWhvbGRlcklkOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHlwZSB0aGF0IHJlZ3JvdXBzIGFsbCBkaWZmZXJlbnQga2luZCBvZiBhY3Rpb25zXG4gKiBAZGVwcmVjYXRlZCB3aWxsIGJlIHJlbW92ZWQgaW4gT3R0ZXIgdjEyLlxuICovXG5leHBvcnQgdHlwZSBBY3Rpb25PdmVycmlkZUJsb2NrID1cbiAgQWN0aW9uVXBkYXRlQ29uZmlnQmxvY2sgfFxuICBBY3Rpb25VcGRhdGVBc3NldEJsb2NrIHxcbiAgQWN0aW9uVXBkYXRlTG9jYWxpc2F0aW9uQmxvY2sgfFxuICBBY3Rpb25VcGRhdGVQbGFjZWhvbGRlckJsb2NrO1xuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './action.interfaces';
|
|
2
|
-
export * from './linkable-to-ruleset.interfaces';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsa0NBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjdGlvbi5pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGlua2FibGUtdG8tcnVsZXNldC5pbnRlcmZhY2VzJztcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2FibGUtdG8tcnVsZXNldC5pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVyZmFjZXMvbGlua2FibGUtdG8tcnVsZXNldC5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXBvbmVudHMgd2hpY2ggYXJlIGFjdGl2YXRpbmcgcnVsZXNldCBzaG91bGQgaW1wbGVtZW50IHRoaXMgdG8gYmUgaWRlbnRpZmllZCBieSBDTVMgZXh0cmFjdG9yXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlua2FibGVUb1J1bGVzZXQge31cbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public_api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibzNyLXJ1bGVzLWVuZ2luZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vM3ItcnVsZXMtZW5naW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
|
package/esm2022/public_api.mjs
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export * from './components/index';
|
|
2
|
-
export * from './devkit/index';
|
|
3
|
-
export * from './engine/index';
|
|
4
|
-
export * from './fact/index';
|
|
5
|
-
export * from './inner-facts/index';
|
|
6
|
-
export * from './interfaces/index';
|
|
7
|
-
export * from './services/index';
|
|
8
|
-
export * from './stores/index';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9kZXZraXQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9lbmdpbmUvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9mYWN0L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vaW5uZXItZmFjdHMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZXMvaW5kZXgnO1xuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './rules-engine.token';
|
|
2
|
-
export * from './runner/index';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ydWxlcy1lbmdpbmUudG9rZW4nO1xuZXhwb3J0ICogZnJvbSAnLi9ydW5uZXIvaW5kZXgnO1xuIl19
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { InjectionToken, } from '@angular/core';
|
|
2
|
-
/** Determine if the action should be executed */
|
|
3
|
-
export const RULES_ENGINE_OPTIONS = new InjectionToken('Rules Engine Options');
|
|
4
|
-
/** Default Rules engine options */
|
|
5
|
-
export const DEFAULT_RULES_ENGINE_OPTIONS = {
|
|
6
|
-
dryRun: false,
|
|
7
|
-
debug: false
|
|
8
|
-
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtZW5naW5lLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3J1bGVzLWVuZ2luZS50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsY0FBYyxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLGlEQUFpRDtBQUNqRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBVSxzQkFBc0IsQ0FBQyxDQUFDO0FBWXhGLG1DQUFtQztBQUNuQyxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBd0M7SUFDL0UsTUFBTSxFQUFFLEtBQUs7SUFDYixLQUFLLEVBQUUsS0FBSztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3Rpb25Ub2tlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKiBEZXRlcm1pbmUgaWYgdGhlIGFjdGlvbiBzaG91bGQgYmUgZXhlY3V0ZWQgKi9cbmV4cG9ydCBjb25zdCBSVUxFU19FTkdJTkVfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPignUnVsZXMgRW5naW5lIE9wdGlvbnMnKTtcblxuLyoqIFJ1bGVzIGVuZ2luZSBjb25maWd1cmF0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVzRW5naW5lU2VydmljZU9wdGlvbnMge1xuICAvKiogRGV0ZXJtaW5lIGlmIHRoZSBhY3Rpb25zIHJlc3VsdGluZyBvZiB0aGUgcnVsZSBlbmdpbmUgc2hvdWxkIGJlIGV4ZWN1dGVkICovXG4gIGRyeVJ1bjogYm9vbGVhbjtcbiAgLyoqIEZsYWcgdG8gYWN0aXZhdGUgdGhlIHJ1biBvZiBSdWxlcyBFbmdpbmUgaW4gZGVidWcgbW9kZSAqL1xuICBkZWJ1ZzogYm9vbGVhbjtcbiAgLyoqIExpbWl0IHRoZSBudW1iZXIgb2YgZGVidWcgZXZlbnRzIGtlcHQgaW4gc3RhY2sgKi9cbiAgZGVidWdFdmVudHNTdGFja0xpbWl0PzogbnVtYmVyO1xufVxuXG4vKiogRGVmYXVsdCBSdWxlcyBlbmdpbmUgb3B0aW9ucyAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUlVMRVNfRU5HSU5FX09QVElPTlM6IFJlYWRvbmx5PFJ1bGVzRW5naW5lU2VydmljZU9wdGlvbnM+ID0ge1xuICBkcnlSdW46IGZhbHNlLFxuICBkZWJ1ZzogZmFsc2Vcbn0gYXMgY29uc3Q7XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './rules-engine.runner.module';
|
|
2
|
-
export * from './rules-engine.runner.service';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcnVubmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcnVsZXMtZW5naW5lLnJ1bm5lci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9ydWxlcy1lbmdpbmUucnVubmVyLnNlcnZpY2UnO1xuIl19
|