occam-furtle 2.0.329 → 2.0.331

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.
Files changed (44) hide show
  1. package/lib/element/expression/comparison.js +110 -0
  2. package/lib/element/expression.js +13 -13
  3. package/lib/element/term/bracketed.js +85 -0
  4. package/lib/element/term/comparison.js +110 -0
  5. package/lib/element/term/logical.js +118 -0
  6. package/lib/element/term/negated.js +102 -0
  7. package/lib/element/term.js +54 -3
  8. package/lib/element/ternary.js +7 -7
  9. package/lib/node/expression/comparison.js +163 -0
  10. package/lib/node/expression.js +8 -8
  11. package/lib/node/term/bracketed.js +116 -0
  12. package/lib/node/term/comparison.js +163 -0
  13. package/lib/node/term/logical.js +175 -0
  14. package/lib/node/term/negated.js +116 -0
  15. package/lib/node/term.js +39 -3
  16. package/lib/node/ternary.js +11 -18
  17. package/lib/nonTerminalNodeMap.js +10 -6
  18. package/lib/preamble.js +9 -5
  19. package/lib/ruleNames.js +21 -5
  20. package/lib/utilities/element.js +30 -30
  21. package/package.json +4 -4
  22. package/src/element/{comparison.js → expression/comparison.js} +8 -8
  23. package/src/element/expression.js +10 -10
  24. package/src/element/term/bracketed.js +36 -0
  25. package/src/element/term/comparison.js +69 -0
  26. package/src/element/term/logical.js +80 -0
  27. package/src/element/term/negated.js +59 -0
  28. package/src/element/term.js +46 -3
  29. package/src/element/ternary.js +5 -5
  30. package/src/node/{comparison.js → expression/comparison.js} +7 -7
  31. package/src/node/expression.js +9 -9
  32. package/src/node/term/bracketed.js +16 -0
  33. package/src/node/term/comparison.js +68 -0
  34. package/src/node/term/logical.js +80 -0
  35. package/src/node/term/negated.js +16 -0
  36. package/src/node/term.js +51 -2
  37. package/src/node/ternary.js +13 -20
  38. package/src/nonTerminalNodeMap.js +17 -5
  39. package/src/preamble.js +6 -2
  40. package/src/ruleNames.js +7 -2
  41. package/src/utilities/element.js +42 -42
  42. package/test/main.js +113 -0
  43. package/lib/element/comparison.js +0 -110
  44. package/lib/node/comparison.js +0 -163
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ var _exception = /*#__PURE__*/ _interop_require_default(require("../../exception"));
12
+ var _elements = require("../../elements");
13
+ var _term = require("../../utilities/term");
14
+ function _class_call_check(instance, Constructor) {
15
+ if (!(instance instanceof Constructor)) {
16
+ throw new TypeError("Cannot call a class as a function");
17
+ }
18
+ }
19
+ function _defineProperties(target, props) {
20
+ for(var i = 0; i < props.length; i++){
21
+ var descriptor = props[i];
22
+ descriptor.enumerable = descriptor.enumerable || false;
23
+ descriptor.configurable = true;
24
+ if ("value" in descriptor) descriptor.writable = true;
25
+ Object.defineProperty(target, descriptor.key, descriptor);
26
+ }
27
+ }
28
+ function _create_class(Constructor, protoProps, staticProps) {
29
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
30
+ if (staticProps) _defineProperties(Constructor, staticProps);
31
+ return Constructor;
32
+ }
33
+ function _define_property(obj, key, value) {
34
+ if (key in obj) {
35
+ Object.defineProperty(obj, key, {
36
+ value: value,
37
+ enumerable: true,
38
+ configurable: true,
39
+ writable: true
40
+ });
41
+ } else {
42
+ obj[key] = value;
43
+ }
44
+ return obj;
45
+ }
46
+ function _interop_require_default(obj) {
47
+ return obj && obj.__esModule ? obj : {
48
+ default: obj
49
+ };
50
+ }
51
+ var _ComparisonExpression;
52
+ var _default = (0, _elements.define)((_ComparisonExpression = /*#__PURE__*/ function() {
53
+ function ComparisonExpression(string, negated, leftExpression, rightExpression) {
54
+ _class_call_check(this, ComparisonExpression);
55
+ this.string = string;
56
+ this.negated = negated;
57
+ this.leftExpression = leftExpression;
58
+ this.rightExpression = rightExpression;
59
+ }
60
+ _create_class(ComparisonExpression, [
61
+ {
62
+ key: "getString",
63
+ value: function getString() {
64
+ return this.string;
65
+ }
66
+ },
67
+ {
68
+ key: "isNegated",
69
+ value: function isNegated() {
70
+ return this.negated;
71
+ }
72
+ },
73
+ {
74
+ key: "getLeftExpression",
75
+ value: function getLeftExpression() {
76
+ return this.leftExpression;
77
+ }
78
+ },
79
+ {
80
+ key: "getRightExpression",
81
+ value: function getRightExpression() {
82
+ return this.rightExpression;
83
+ }
84
+ },
85
+ {
86
+ key: "evaluate",
87
+ value: function evaluate(context) {
88
+ var term;
89
+ var comparisonExpressionString = this.string; ///
90
+ context.trace("Evaluating the '".concat(comparisonExpressionString, "' comparison expression..."));
91
+ var leftTerm = this.leftExpression.evaluate(context), rightTerm = this.rightExpression.evaluate(context), leftTermType = leftTerm.getType(), rightTermType = rightTerm.getType();
92
+ if (leftTermType !== rightTermType) {
93
+ var leftTermString = leftTerm.getString(), rightTermString = rightTerm.getString(), message = "The '".concat(leftTermString, "' left expression's type is '").concat(leftTermType, "' whereas the '").concat(rightTermString, "' right expression's type is '").concat(rightTermType, "'."), exception = _exception.default.fromMessage(message);
94
+ throw exception;
95
+ }
96
+ var leftTermEqualToRightTerm = leftTerm.isEqualTo(rightTerm);
97
+ var boolean = leftTermEqualToRightTerm; ///
98
+ if (this.negated) {
99
+ boolean = !boolean; ///
100
+ }
101
+ term = (0, _term.termFromBoolean)(boolean, context);
102
+ context.debug("...evaluated the '".concat(comparisonExpressionString, "' comparison expression."));
103
+ return term;
104
+ }
105
+ }
106
+ ]);
107
+ return ComparisonExpression;
108
+ }(), _define_property(_ComparisonExpression, "name", "ComparisonExpression"), _ComparisonExpression));
109
+
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2V4cHJlc3Npb24vY29tcGFyaXNvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdGVybUZyb21Cb29sZWFuIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy90ZXJtXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBDb21wYXJpc29uRXhwcmVzc2lvbiB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgbmVnYXRlZCwgbGVmdEV4cHJlc3Npb24sIHJpZ2h0RXhwcmVzc2lvbikge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMubmVnYXRlZCA9IG5lZ2F0ZWQ7XG4gICAgdGhpcy5sZWZ0RXhwcmVzc2lvbiA9IGxlZnRFeHByZXNzaW9uO1xuICAgIHRoaXMucmlnaHRFeHByZXNzaW9uID0gcmlnaHRFeHByZXNzaW9uO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGlzTmVnYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5uZWdhdGVkO1xuICB9XG5cbiAgZ2V0TGVmdEV4cHJlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdEV4cHJlc3Npb247XG4gIH1cblxuICBnZXRSaWdodEV4cHJlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMucmlnaHRFeHByZXNzaW9uO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB0ZXJtO1xuXG4gICAgY29uc3QgY29tcGFyaXNvbkV4cHJlc3Npb25TdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtjb21wYXJpc29uRXhwcmVzc2lvblN0cmluZ30nIGNvbXBhcmlzb24gZXhwcmVzc2lvbi4uLmApO1xuXG4gICAgY29uc3QgbGVmdFRlcm0gPSB0aGlzLmxlZnRFeHByZXNzaW9uLmV2YWx1YXRlKGNvbnRleHQpLFxuICAgICAgICAgIHJpZ2h0VGVybSA9IHRoaXMucmlnaHRFeHByZXNzaW9uLmV2YWx1YXRlKGNvbnRleHQpLFxuICAgICAgICAgIGxlZnRUZXJtVHlwZSA9IGxlZnRUZXJtLmdldFR5cGUoKSxcbiAgICAgICAgICByaWdodFRlcm1UeXBlID0gcmlnaHRUZXJtLmdldFR5cGUoKTtcblxuICAgIGlmIChsZWZ0VGVybVR5cGUgIT09IHJpZ2h0VGVybVR5cGUpIHtcbiAgICAgIGNvbnN0IGxlZnRUZXJtU3RyaW5nID0gbGVmdFRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICByaWdodFRlcm1TdHJpbmcgPSByaWdodFRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtsZWZ0VGVybVN0cmluZ30nIGxlZnQgZXhwcmVzc2lvbidzIHR5cGUgaXMgJyR7bGVmdFRlcm1UeXBlfScgd2hlcmVhcyB0aGUgJyR7cmlnaHRUZXJtU3RyaW5nfScgcmlnaHQgZXhwcmVzc2lvbidzIHR5cGUgaXMgJyR7cmlnaHRUZXJtVHlwZX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBsZWZ0VGVybUVxdWFsVG9SaWdodFRlcm0gPSBsZWZ0VGVybS5pc0VxdWFsVG8ocmlnaHRUZXJtKTtcblxuICAgIGxldCBib29sZWFuID0gbGVmdFRlcm1FcXVhbFRvUmlnaHRUZXJtOyAvLy9cblxuICAgIGlmICh0aGlzLm5lZ2F0ZWQpIHtcbiAgICAgIGJvb2xlYW4gPSAhYm9vbGVhbjsgLy8vXG4gICAgfVxuXG4gICAgdGVybSA9IHRlcm1Gcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7Y29tcGFyaXNvbkV4cHJlc3Npb25TdHJpbmd9JyBjb21wYXJpc29uIGV4cHJlc3Npb24uYCk7XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJDb21wYXJpc29uRXhwcmVzc2lvblwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiQ29tcGFyaXNvbkV4cHJlc3Npb24iLCJzdHJpbmciLCJuZWdhdGVkIiwibGVmdEV4cHJlc3Npb24iLCJyaWdodEV4cHJlc3Npb24iLCJnZXRTdHJpbmciLCJpc05lZ2F0ZWQiLCJnZXRMZWZ0RXhwcmVzc2lvbiIsImdldFJpZ2h0RXhwcmVzc2lvbiIsImV2YWx1YXRlIiwiY29udGV4dCIsInRlcm0iLCJjb21wYXJpc29uRXhwcmVzc2lvblN0cmluZyIsInRyYWNlIiwibGVmdFRlcm0iLCJyaWdodFRlcm0iLCJsZWZ0VGVybVR5cGUiLCJnZXRUeXBlIiwicmlnaHRUZXJtVHlwZSIsImxlZnRUZXJtU3RyaW5nIiwicmlnaHRUZXJtU3RyaW5nIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwibGVmdFRlcm1FcXVhbFRvUmlnaHRUZXJtIiwiaXNFcXVhbFRvIiwiYm9vbGVhbiIsInRlcm1Gcm9tQm9vbGVhbiIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBT0E7OztlQUFBOzs7Z0VBTHNCO3dCQUVDO29CQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFaEMsV0FBZUEsSUFBQUEsZ0JBQU0seUNBQUM7YUFBTUMscUJBQ2RDLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxjQUFjLEVBQUVDLGVBQWU7Z0NBRGxDSjtRQUV4QixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLGNBQWMsR0FBR0E7UUFDdEIsSUFBSSxDQUFDQyxlQUFlLEdBQUdBOzs7O1lBR3pCQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLE1BQU07WUFDcEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLE9BQU87WUFDckI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLGNBQWM7WUFDNUI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLGVBQWU7WUFDN0I7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsU0FBU0MsT0FBTztnQkFDZCxJQUFJQztnQkFFSixJQUFNQyw2QkFBNkIsSUFBSSxDQUFDWCxNQUFNLEVBQUUsR0FBRztnQkFFbkRTLFFBQVFHLEtBQUssQ0FBQyxBQUFDLG1CQUE2QyxPQUEzQkQsNEJBQTJCO2dCQUU1RCxJQUFNRSxXQUFXLElBQUksQ0FBQ1gsY0FBYyxDQUFDTSxRQUFRLENBQUNDLFVBQ3hDSyxZQUFZLElBQUksQ0FBQ1gsZUFBZSxDQUFDSyxRQUFRLENBQUNDLFVBQzFDTSxlQUFlRixTQUFTRyxPQUFPLElBQy9CQyxnQkFBZ0JILFVBQVVFLE9BQU87Z0JBRXZDLElBQUlELGlCQUFpQkUsZUFBZTtvQkFDbEMsSUFBTUMsaUJBQWlCTCxTQUFTVCxTQUFTLElBQ25DZSxrQkFBa0JMLFVBQVVWLFNBQVMsSUFDckNnQixVQUFVLEFBQUMsUUFBcURMLE9BQTlDRyxnQkFBZSxpQ0FBNkRDLE9BQTlCSixjQUFhLG1CQUFpRUUsT0FBaERFLGlCQUFnQixrQ0FBOEMsT0FBZEYsZUFBYyxPQUM1SkksWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtvQkFFeEMsTUFBTUM7Z0JBQ1I7Z0JBRUEsSUFBTUcsMkJBQTJCWCxTQUFTWSxTQUFTLENBQUNYO2dCQUVwRCxJQUFJWSxVQUFVRiwwQkFBMEIsR0FBRztnQkFFM0MsSUFBSSxJQUFJLENBQUN2QixPQUFPLEVBQUU7b0JBQ2hCeUIsVUFBVSxDQUFDQSxTQUFTLEdBQUc7Z0JBQ3pCO2dCQUVBaEIsT0FBT2lCLElBQUFBLHFCQUFlLEVBQUNELFNBQVNqQjtnQkFFaENBLFFBQVFtQixLQUFLLENBQUMsQUFBQyxxQkFBK0MsT0FBM0JqQiw0QkFBMkI7Z0JBRTlELE9BQU9EO1lBQ1Q7Ozs7S0FFQSx3Q0FBT21CLFFBQU8ifQ==
@@ -43,7 +43,7 @@ function _define_property(obj, key, value) {
43
43
  }
44
44
  var _Expression;
45
45
  var _default = (0, _elements.define)((_Expression = /*#__PURE__*/ function() {
46
- function Expression(string, variable, primitive, some, every, reduce, ternary, nodeQuery, nodesQuery, comparison, returnBlock, procedureCall, negatedExpression, logicalExpression, bracketedExpression) {
46
+ function Expression(string, variable, primitive, some, every, reduce, ternary, nodeQuery, nodesQuery, returnBlock, procedureCall, negatedExpression, logicalExpression, bracketedExpression, comparisonExpression) {
47
47
  _class_call_check(this, Expression);
48
48
  this.string = string;
49
49
  this.variable = variable;
@@ -54,12 +54,12 @@ var _default = (0, _elements.define)((_Expression = /*#__PURE__*/ function() {
54
54
  this.ternary = ternary;
55
55
  this.nodeQuery = nodeQuery;
56
56
  this.nodesQuery = nodesQuery;
57
- this.comparison = comparison;
58
57
  this.returnBlock = returnBlock;
59
58
  this.procedureCall = procedureCall;
60
59
  this.negatedExpression = negatedExpression;
61
60
  this.logicalExpression = logicalExpression;
62
61
  this.bracketedExpression = bracketedExpression;
62
+ this.comparisonExpression = comparisonExpression;
63
63
  }
64
64
  _create_class(Expression, [
65
65
  {
@@ -116,12 +116,6 @@ var _default = (0, _elements.define)((_Expression = /*#__PURE__*/ function() {
116
116
  return this.nodesQuery;
117
117
  }
118
118
  },
119
- {
120
- key: "getComparison",
121
- value: function getComparison() {
122
- return this.comparison;
123
- }
124
- },
125
119
  {
126
120
  key: "getReturnBlock",
127
121
  value: function getReturnBlock() {
@@ -152,6 +146,12 @@ var _default = (0, _elements.define)((_Expression = /*#__PURE__*/ function() {
152
146
  return this.bracketedExpression;
153
147
  }
154
148
  },
149
+ {
150
+ key: "getComparisonExpression",
151
+ value: function getComparisonExpression() {
152
+ return this.comparisonExpression;
153
+ }
154
+ },
155
155
  {
156
156
  key: "getNode",
157
157
  value: function getNode() {
@@ -204,8 +204,6 @@ var _default = (0, _elements.define)((_Expression = /*#__PURE__*/ function() {
204
204
  type = this.nodeQuery.getType();
205
205
  } else if (this.nodesQuery !== null) {
206
206
  type = this.nodesQuery.getType();
207
- } else if (this.comparison !== null) {
208
- type = this.comparison.getType();
209
207
  } else if (this.returnBlock !== null) {
210
208
  type = this.returnBlock.getType();
211
209
  } else if (this.procedureCall !== null) {
@@ -216,6 +214,8 @@ var _default = (0, _elements.define)((_Expression = /*#__PURE__*/ function() {
216
214
  type = this.logicalExpression.getType();
217
215
  } else if (this.bracketedExpression !== null) {
218
216
  type = this.bracketedExpression.getType();
217
+ } else if (this.comparisonExpression !== null) {
218
+ type = this.comparisonExpression.getType();
219
219
  }
220
220
  return type;
221
221
  }
@@ -242,8 +242,6 @@ var _default = (0, _elements.define)((_Expression = /*#__PURE__*/ function() {
242
242
  term = this.nodeQuery.evaluate(context);
243
243
  } else if (this.nodesQuery !== null) {
244
244
  term = this.nodesQuery.evaluate(context);
245
- } else if (this.comparison !== null) {
246
- term = this.comparison.evaluate(context);
247
245
  } else if (this.returnBlock !== null) {
248
246
  term = this.returnBlock.evaluate(context);
249
247
  } else if (this.procedureCall !== null) {
@@ -254,6 +252,8 @@ var _default = (0, _elements.define)((_Expression = /*#__PURE__*/ function() {
254
252
  term = this.logicalExpression.evaluate(context);
255
253
  } else if (this.bracketedExpression !== null) {
256
254
  term = this.bracketedExpression.evaluate(context);
255
+ } else if (this.comparisonExpression !== null) {
256
+ term = this.comparisonExpression.evaluate(context);
257
257
  }
258
258
  return term;
259
259
  }
@@ -262,4 +262,4 @@ var _default = (0, _elements.define)((_Expression = /*#__PURE__*/ function() {
262
262
  return Expression;
263
263
  }(), _define_property(_Expression, "name", "Expression"), _Expression));
264
264
 
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2V4cHJlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXhwcmVzc2lvbiB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgdmFyaWFibGUsIHByaW1pdGl2ZSwgc29tZSwgZXZlcnksIHJlZHVjZSwgdGVybmFyeSwgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5LCBjb21wYXJpc29uLCByZXR1cm5CbG9jaywgcHJvY2VkdXJlQ2FsbCwgbmVnYXRlZEV4cHJlc3Npb24sIGxvZ2ljYWxFeHByZXNzaW9uLCBicmFja2V0ZWRFeHByZXNzaW9uKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICAgIHRoaXMucHJpbWl0aXZlID0gcHJpbWl0aXZlO1xuICAgIHRoaXMuc29tZSA9IHNvbWU7XG4gICAgdGhpcy5ldmVyeSA9IGV2ZXJ5O1xuICAgIHRoaXMucmVkdWNlID0gcmVkdWNlO1xuICAgIHRoaXMudGVybmFyeSA9IHRlcm5hcnk7XG4gICAgdGhpcy5ub2RlUXVlcnkgPSBub2RlUXVlcnk7XG4gICAgdGhpcy5ub2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeTtcbiAgICB0aGlzLmNvbXBhcmlzb24gPSBjb21wYXJpc29uO1xuICAgIHRoaXMucmV0dXJuQmxvY2sgPSByZXR1cm5CbG9jaztcbiAgICB0aGlzLnByb2NlZHVyZUNhbGwgPSBwcm9jZWR1cmVDYWxsO1xuICAgIHRoaXMubmVnYXRlZEV4cHJlc3Npb24gPSBuZWdhdGVkRXhwcmVzc2lvbjtcbiAgICB0aGlzLmxvZ2ljYWxFeHByZXNzaW9uID0gbG9naWNhbEV4cHJlc3Npb247XG4gICAgdGhpcy5icmFja2V0ZWRFeHByZXNzaW9uID0gYnJhY2tldGVkRXhwcmVzc2lvbjtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldFByaW1pdGl2ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcmltaXRpdmU7XG4gIH1cblxuICBnZXRTb21lKCkge1xuICAgIHJldHVybiB0aGlzLnNvbWU7XG4gIH1cblxuICBnZXRFdmVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ldmVyeTtcbiAgfVxuXG4gIGdldFJlZHVjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWR1Y2U7XG4gIH1cblxuICBnZXRUZXJuYXJ5KCkge1xuICAgIHJldHVybiB0aGlzLnRlcm5heTtcbiAgfVxuXG4gIGdldE5vZGVRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlUXVlcnk7XG4gIH1cblxuICBnZXROb2Rlc1F1ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLm5vZGVzUXVlcnk7XG4gIH1cblxuICBnZXRDb21wYXJpc29uKCkge1xuICAgIHJldHVybiB0aGlzLmNvbXBhcmlzb247XG4gIH1cblxuICBnZXRSZXR1cm5CbG9jaygpIHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5CbG9jaztcbiAgfVxuXG4gIGdldFByb2NlZHVyZUNhbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvY2VkdXJlQ2FsbDtcbiAgfVxuXG4gIGdldE5lZ2F0ZWRFeHByZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLm5lZ2F0ZWRFeHByZXNzaW9uO1xuICB9XG5cbiAgZ2V0TG9naWNsRXhwcmVzc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5sb2dpY2FsRXhwcmVzc2lvbjtcbiAgfVxuXG4gIGdldEJyYWNrZXRlZEV4cHJlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuYnJhY2tldGVkRXhwcmVzc2lvbjtcbiAgfVxuXG4gIGdldE5vZGUoKSB7IHJldHVybiB0aGlzLnByaW1pdGl2ZS5nZXROb2RlKCk7IH1cblxuICBnZXROb2RlcygpIHsgcmV0dXJuIHRoaXMucHJpbWl0aXZlLmdldE5vZGVzKCk7IH1cblxuICBnZXROdW1iZXIoKSB7IHJldHVybiB0aGlzLnByaW1pdGl2ZS5nZXROdW1iZXIoKTsgfVxuXG4gIGdldEJvb2xlYW4oKSB7IHJldHVybiB0aGlzLnByaW1pdGl2ZS5nZXRCb29sZWFuKCk7IH1cblxuICBnZXRTdHJpbmdMaXRlcmFsKCkgeyByZXR1cm4gdGhpcy5wcmltaXRpdmUuZ2V0U3RyaW5nTGl0ZXJhbCgpOyB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICBsZXQgdHlwZTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy52YXJpYWJsZS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByaW1pdGl2ZSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMucHJpbWl0aXZlLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc29tZSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuc29tZS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmV2ZXJ5ICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5ldmVyeS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJlZHVjZSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMucmVkdWNlLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybmFyeSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMudGVybmFyeS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVRdWVyeSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMubm9kZVF1ZXJ5LmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZXNRdWVyeSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMubm9kZXNRdWVyeS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbXBhcmlzb24gIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmNvbXBhcmlzb24uZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZXR1cm5CbG9jayAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMucmV0dXJuQmxvY2suZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcm9jZWR1cmVDYWxsICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5wcm9jZWR1cmVDYWxsLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubmVnYXRlZEV4cHJlc3Npb24gIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLm5lZ2F0ZWRFeHByZXNzaW9uLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubG9naWNhbEV4cHJlc3Npb24gIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmxvZ2ljYWxFeHByZXNzaW9uLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYnJhY2tldGVkRXhwcmVzc2lvbiAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuYnJhY2tldGVkRXhwcmVzc2lvbi5nZXRUeXBlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgbGV0IHRlcm07XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgdGVybSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByaW1pdGl2ZSAhPT0gbnVsbCkge1xuICAgICAgdGVybSA9IHRoaXMucHJpbWl0aXZlLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zb21lICE9PSBudWxsKSB7XG4gICAgICB0ZXJtID0gdGhpcy5zb21lLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ldmVyeSAhPT0gbnVsbCkge1xuICAgICAgdGVybSA9IHRoaXMuZXZlcnkuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJlZHVjZSAhPT0gbnVsbCkge1xuICAgICAgdGVybSA9IHRoaXMucmVkdWNlLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50ZXJuYXJ5ICE9PSBudWxsKSB7XG4gICAgICB0ZXJtID0gdGhpcy50ZXJuYXJ5LmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHRlcm0gPSB0aGlzLm5vZGVRdWVyeS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZXNRdWVyeSAhPT0gbnVsbCkge1xuICAgICAgdGVybSA9IHRoaXMubm9kZXNRdWVyeS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29tcGFyaXNvbiAhPT0gbnVsbCkge1xuICAgICAgdGVybSA9IHRoaXMuY29tcGFyaXNvbi5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmV0dXJuQmxvY2sgIT09IG51bGwpIHtcbiAgICAgIHRlcm0gPSB0aGlzLnJldHVybkJsb2NrLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcm9jZWR1cmVDYWxsICE9PSBudWxsKSB7XG4gICAgICB0ZXJtID0gdGhpcy5wcm9jZWR1cmVDYWxsLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5uZWdhdGVkRXhwcmVzc2lvbiAhPT0gbnVsbCkge1xuICAgICAgdGVybSA9IHRoaXMubmVnYXRlZEV4cHJlc3Npb24uZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxvZ2ljYWxFeHByZXNzaW9uICE9PSBudWxsKSB7XG4gICAgICB0ZXJtID0gdGhpcy5sb2dpY2FsRXhwcmVzc2lvbi5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYnJhY2tldGVkRXhwcmVzc2lvbiAhPT0gbnVsbCkge1xuICAgICAgdGVybSA9IHRoaXMuYnJhY2tldGVkRXhwcmVzc2lvbi5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJFeHByZXNzaW9uXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJFeHByZXNzaW9uIiwic3RyaW5nIiwidmFyaWFibGUiLCJwcmltaXRpdmUiLCJzb21lIiwiZXZlcnkiLCJyZWR1Y2UiLCJ0ZXJuYXJ5Iiwibm9kZVF1ZXJ5Iiwibm9kZXNRdWVyeSIsImNvbXBhcmlzb24iLCJyZXR1cm5CbG9jayIsInByb2NlZHVyZUNhbGwiLCJuZWdhdGVkRXhwcmVzc2lvbiIsImxvZ2ljYWxFeHByZXNzaW9uIiwiYnJhY2tldGVkRXhwcmVzc2lvbiIsImdldFN0cmluZyIsImdldFZhcmlhYmxlIiwiZ2V0UHJpbWl0aXZlIiwiZ2V0U29tZSIsImdldEV2ZXJ5IiwiZ2V0UmVkdWNlIiwiZ2V0VGVybmFyeSIsInRlcm5heSIsImdldE5vZGVRdWVyeSIsImdldE5vZGVzUXVlcnkiLCJnZXRDb21wYXJpc29uIiwiZ2V0UmV0dXJuQmxvY2siLCJnZXRQcm9jZWR1cmVDYWxsIiwiZ2V0TmVnYXRlZEV4cHJlc3Npb24iLCJnZXRMb2dpY2xFeHByZXNzaW9uIiwiZ2V0QnJhY2tldGVkRXhwcmVzc2lvbiIsImdldE5vZGUiLCJnZXROb2RlcyIsImdldE51bWJlciIsImdldEJvb2xlYW4iLCJnZXRTdHJpbmdMaXRlcmFsIiwiZ2V0VHlwZSIsInR5cGUiLCJldmFsdWF0ZSIsImNvbnRleHQiLCJ0ZXJtIiwibmFt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
265
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2V4cHJlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXhwcmVzc2lvbiB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgdmFyaWFibGUsIHByaW1pdGl2ZSwgc29tZSwgZXZlcnksIHJlZHVjZSwgdGVybmFyeSwgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5LCByZXR1cm5CbG9jaywgcHJvY2VkdXJlQ2FsbCwgbmVnYXRlZEV4cHJlc3Npb24sIGxvZ2ljYWxFeHByZXNzaW9uLCBicmFja2V0ZWRFeHByZXNzaW9uLCBjb21wYXJpc29uRXhwcmVzc2lvbikge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLnByaW1pdGl2ZSA9IHByaW1pdGl2ZTtcbiAgICB0aGlzLnNvbWUgPSBzb21lO1xuICAgIHRoaXMuZXZlcnkgPSBldmVyeTtcbiAgICB0aGlzLnJlZHVjZSA9IHJlZHVjZTtcbiAgICB0aGlzLnRlcm5hcnkgPSB0ZXJuYXJ5O1xuICAgIHRoaXMubm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5O1xuICAgIHRoaXMubm9kZXNRdWVyeSA9IG5vZGVzUXVlcnk7XG4gICAgdGhpcy5yZXR1cm5CbG9jayA9IHJldHVybkJsb2NrO1xuICAgIHRoaXMucHJvY2VkdXJlQ2FsbCA9IHByb2NlZHVyZUNhbGw7XG4gICAgdGhpcy5uZWdhdGVkRXhwcmVzc2lvbiA9IG5lZ2F0ZWRFeHByZXNzaW9uO1xuICAgIHRoaXMubG9naWNhbEV4cHJlc3Npb24gPSBsb2dpY2FsRXhwcmVzc2lvbjtcbiAgICB0aGlzLmJyYWNrZXRlZEV4cHJlc3Npb24gPSBicmFja2V0ZWRFeHByZXNzaW9uO1xuICAgIHRoaXMuY29tcGFyaXNvbkV4cHJlc3Npb24gPSBjb21wYXJpc29uRXhwcmVzc2lvbjtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldFByaW1pdGl2ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcmltaXRpdmU7XG4gIH1cblxuICBnZXRTb21lKCkge1xuICAgIHJldHVybiB0aGlzLnNvbWU7XG4gIH1cblxuICBnZXRFdmVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ldmVyeTtcbiAgfVxuXG4gIGdldFJlZHVjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWR1Y2U7XG4gIH1cblxuICBnZXRUZXJuYXJ5KCkge1xuICAgIHJldHVybiB0aGlzLnRlcm5heTtcbiAgfVxuXG4gIGdldE5vZGVRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlUXVlcnk7XG4gIH1cblxuICBnZXROb2Rlc1F1ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLm5vZGVzUXVlcnk7XG4gIH1cblxuICBnZXRSZXR1cm5CbG9jaygpIHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5CbG9jaztcbiAgfVxuXG4gIGdldFByb2NlZHVyZUNhbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvY2VkdXJlQ2FsbDtcbiAgfVxuXG4gIGdldE5lZ2F0ZWRFeHByZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLm5lZ2F0ZWRFeHByZXNzaW9uO1xuICB9XG5cbiAgZ2V0TG9naWNsRXhwcmVzc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5sb2dpY2FsRXhwcmVzc2lvbjtcbiAgfVxuXG4gIGdldEJyYWNrZXRlZEV4cHJlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuYnJhY2tldGVkRXhwcmVzc2lvbjtcbiAgfVxuXG4gIGdldENvbXBhcmlzb25FeHByZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLmNvbXBhcmlzb25FeHByZXNzaW9uO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHsgcmV0dXJuIHRoaXMucHJpbWl0aXZlLmdldE5vZGUoKTsgfVxuXG4gIGdldE5vZGVzKCkgeyByZXR1cm4gdGhpcy5wcmltaXRpdmUuZ2V0Tm9kZXMoKTsgfVxuXG4gIGdldE51bWJlcigpIHsgcmV0dXJuIHRoaXMucHJpbWl0aXZlLmdldE51bWJlcigpOyB9XG5cbiAgZ2V0Qm9vbGVhbigpIHsgcmV0dXJuIHRoaXMucHJpbWl0aXZlLmdldEJvb2xlYW4oKTsgfVxuXG4gIGdldFN0cmluZ0xpdGVyYWwoKSB7IHJldHVybiB0aGlzLnByaW1pdGl2ZS5nZXRTdHJpbmdMaXRlcmFsKCk7IH1cblxuICBnZXRUeXBlKCkge1xuICAgIGxldCB0eXBlO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnZhcmlhYmxlLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJpbWl0aXZlICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5wcmltaXRpdmUuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zb21lICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5zb21lLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZXZlcnkgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmV2ZXJ5LmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVkdWNlICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5yZWR1Y2UuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50ZXJuYXJ5ICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy50ZXJuYXJ5LmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZVF1ZXJ5ICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5ub2RlUXVlcnkuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ub2Rlc1F1ZXJ5ICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5ub2Rlc1F1ZXJ5LmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmV0dXJuQmxvY2sgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnJldHVybkJsb2NrLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvY2VkdXJlQ2FsbCAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMucHJvY2VkdXJlQ2FsbC5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5lZ2F0ZWRFeHByZXNzaW9uICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5uZWdhdGVkRXhwcmVzc2lvbi5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxvZ2ljYWxFeHByZXNzaW9uICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5sb2dpY2FsRXhwcmVzc2lvbi5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmJyYWNrZXRlZEV4cHJlc3Npb24gIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmJyYWNrZXRlZEV4cHJlc3Npb24uZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb21wYXJpc29uRXhwcmVzc2lvbiAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuY29tcGFyaXNvbkV4cHJlc3Npb24uZ2V0VHlwZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB0ZXJtO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIHRlcm0gPSB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcmltaXRpdmUgIT09IG51bGwpIHtcbiAgICAgIHRlcm0gPSB0aGlzLnByaW1pdGl2ZS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc29tZSAhPT0gbnVsbCkge1xuICAgICAgdGVybSA9IHRoaXMuc29tZS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZXZlcnkgIT09IG51bGwpIHtcbiAgICAgIHRlcm0gPSB0aGlzLmV2ZXJ5LmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZWR1Y2UgIT09IG51bGwpIHtcbiAgICAgIHRlcm0gPSB0aGlzLnJlZHVjZS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybmFyeSAhPT0gbnVsbCkge1xuICAgICAgdGVybSA9IHRoaXMudGVybmFyeS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZVF1ZXJ5ICE9PSBudWxsKSB7XG4gICAgICB0ZXJtID0gdGhpcy5ub2RlUXVlcnkuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVzUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHRlcm0gPSB0aGlzLm5vZGVzUXVlcnkuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJldHVybkJsb2NrICE9PSBudWxsKSB7XG4gICAgICB0ZXJtID0gdGhpcy5yZXR1cm5CbG9jay5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvY2VkdXJlQ2FsbCAhPT0gbnVsbCkge1xuICAgICAgdGVybSA9IHRoaXMucHJvY2VkdXJlQ2FsbC5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubmVnYXRlZEV4cHJlc3Npb24gIT09IG51bGwpIHtcbiAgICAgIHRlcm0gPSB0aGlzLm5lZ2F0ZWRFeHByZXNzaW9uLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sb2dpY2FsRXhwcmVzc2lvbiAhPT0gbnVsbCkge1xuICAgICAgdGVybSA9IHRoaXMubG9naWNhbEV4cHJlc3Npb24uZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmJyYWNrZXRlZEV4cHJlc3Npb24gIT09IG51bGwpIHtcbiAgICAgIHRlcm0gPSB0aGlzLmJyYWNrZXRlZEV4cHJlc3Npb24uZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbXBhcmlzb25FeHByZXNzaW9uICE9PSBudWxsKSB7XG4gICAgICB0ZXJtID0gdGhpcy5jb21wYXJpc29uRXhwcmVzc2lvbi5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJFeHByZXNzaW9uXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJFeHByZXNzaW9uIiwic3RyaW5nIiwidmFyaWFibGUiLCJwcmltaXRpdmUiLCJzb21lIiwiZXZlcnkiLCJyZWR1Y2UiLCJ0ZXJuYXJ5Iiwibm9kZVF1ZXJ5Iiwibm9kZXNRdWVyeSIsInJldHVybkJsb2NrIiwicHJvY2VkdXJlQ2FsbCIsIm5lZ2F0ZWRFeHByZXNzaW9uIiwibG9naWNhbEV4cHJlc3Npb24iLCJicmFja2V0ZWRFeHByZXNzaW9uIiwiY29tcGFyaXNvbkV4cHJlc3Npb24iLCJnZXRTdHJpbmciLCJnZXRWYXJpYWJsZSIsImdldFByaW1pdGl2ZSIsImdldFNvbWUiLCJnZXRFdmVyeSIsImdldFJlZHVjZSIsImdldFRlcm5hcnkiLCJ0ZXJuYXkiLCJnZXROb2RlUXVlcnkiLCJnZXROb2Rlc1F1ZXJ5IiwiZ2V0UmV0dXJuQmxvY2siLCJnZXRQcm9jZWR1cmVDYWxsIiwiZ2V0TmVnYXRlZEV4cHJlc3Npb24iLCJnZXRMb2dpY2xFeHByZXNzaW9uIiwiZ2V0QnJhY2tldGVkRXhwcmVzc2lvbiIsImdldENvbXBhcmlzb25FeHByZXNzaW9uIiwiZ2V0Tm9kZSIsImdldE5vZGVzIiwiZ2V0TnVtYmVyIiwiZ2V0Qm9vbGVhbiIsImdldFN0cmluZ0xpdGVyYWwiLCJnZXRUeXBlIiwidHlwZSIsImV2YWx1YXRlIiwiY29udGV4dCIsInRlcm0iLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFJQTs7O2VBQUE7Ozt3QkFGdUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFdkIsV0FBZUEsSUFBQUEsZ0JBQU0sK0JBQUM7YUFBTUMsV0FDZEMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxTQUFTLEVBQUVDLFVBQVUsRUFBRUMsV0FBVyxFQUFFQyxhQUFhLEVBQUVDLGlCQUFpQixFQUFFQyxpQkFBaUIsRUFBRUMsbUJBQW1CLEVBQUVDLG9CQUFvQjtnQ0FEL0tmO1FBRXhCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLFNBQVMsR0FBR0E7UUFDakIsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO1FBQ2pCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxhQUFhLEdBQUdBO1FBQ3JCLElBQUksQ0FBQ0MsaUJBQWlCLEdBQUdBO1FBQ3pCLElBQUksQ0FBQ0MsaUJBQWlCLEdBQUdBO1FBQ3pCLElBQUksQ0FBQ0MsbUJBQW1CLEdBQUdBO1FBQzNCLElBQUksQ0FBQ0Msb0JBQW9CLEdBQUdBOzs7O1lBRzlCQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNmLE1BQU07WUFDcEI7OztZQUVBZ0Is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
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ var _elements = require("../../elements");
12
+ function _class_call_check(instance, Constructor) {
13
+ if (!(instance instanceof Constructor)) {
14
+ throw new TypeError("Cannot call a class as a function");
15
+ }
16
+ }
17
+ function _defineProperties(target, props) {
18
+ for(var i = 0; i < props.length; i++){
19
+ var descriptor = props[i];
20
+ descriptor.enumerable = descriptor.enumerable || false;
21
+ descriptor.configurable = true;
22
+ if ("value" in descriptor) descriptor.writable = true;
23
+ Object.defineProperty(target, descriptor.key, descriptor);
24
+ }
25
+ }
26
+ function _create_class(Constructor, protoProps, staticProps) {
27
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
28
+ if (staticProps) _defineProperties(Constructor, staticProps);
29
+ return Constructor;
30
+ }
31
+ function _define_property(obj, key, value) {
32
+ if (key in obj) {
33
+ Object.defineProperty(obj, key, {
34
+ value: value,
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true
38
+ });
39
+ } else {
40
+ obj[key] = value;
41
+ }
42
+ return obj;
43
+ }
44
+ var _BracketedTerm;
45
+ var _default = (0, _elements.define)((_BracketedTerm = /*#__PURE__*/ function() {
46
+ function BracketedTerm(string, term) {
47
+ _class_call_check(this, BracketedTerm);
48
+ this.string = string;
49
+ this.term = term;
50
+ }
51
+ _create_class(BracketedTerm, [
52
+ {
53
+ key: "getString",
54
+ value: function getString() {
55
+ return this.string;
56
+ }
57
+ },
58
+ {
59
+ key: "getTerm",
60
+ value: function getTerm() {
61
+ return this.term;
62
+ }
63
+ },
64
+ {
65
+ key: "getType",
66
+ value: function getType() {
67
+ return this.term.getType();
68
+ }
69
+ },
70
+ {
71
+ key: "evaluate",
72
+ value: function evaluate(context) {
73
+ var term;
74
+ var bracketedTermString = this.string; ///
75
+ context.trace("Evaluating the '".concat(bracketedTermString, "' bracketed term..."));
76
+ term = this.term.evaluate(context);
77
+ context.debug("...evaluated the '".concat(bracketedTermString, "' bracketed term."));
78
+ return term;
79
+ }
80
+ }
81
+ ]);
82
+ return BracketedTerm;
83
+ }(), _define_property(_BracketedTerm, "name", "BracketedTerm"), _BracketedTerm));
84
+
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Rlcm0vYnJhY2tldGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEJyYWNrZXRlZFRlcm0ge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIHRlcm0pIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnRlcm0gPSB0ZXJtO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMudGVybTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7IHJldHVybiB0aGlzLnRlcm0uZ2V0VHlwZSgpOyB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB0ZXJtO1xuXG4gICAgY29uc3QgYnJhY2tldGVkVGVybVN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke2JyYWNrZXRlZFRlcm1TdHJpbmd9JyBicmFja2V0ZWQgdGVybS4uLmApO1xuXG4gICAgdGVybSA9IHRoaXMudGVybS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7YnJhY2tldGVkVGVybVN0cmluZ30nIGJyYWNrZXRlZCB0ZXJtLmApO1xuXG4gICAgcmV0dXJuIHRlcm07XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQnJhY2tldGVkVGVybVwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiQnJhY2tldGVkVGVybSIsInN0cmluZyIsInRlcm0iLCJnZXRTdHJpbmciLCJnZXRUZXJtIiwiZ2V0VHlwZSIsImV2YWx1YXRlIiwiY29udGV4dCIsImJyYWNrZXRlZFRlcm1TdHJpbmciLCJ0cmFjZSIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUFBOzs7d0JBRnVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBRXZCLFdBQWVBLElBQUFBLGdCQUFNLGtDQUFDO2FBQU1DLGNBQ2RDLE1BQU0sRUFBRUMsSUFBSTtnQ0FERUY7UUFFeEIsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxJQUFJLEdBQUdBOzs7O1lBR2RDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsTUFBTTtZQUNwQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsSUFBSTtZQUNsQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFBWSxPQUFPLElBQUksQ0FBQ0gsSUFBSSxDQUFDRyxPQUFPO1lBQUk7OztZQUV4Q0MsS0FBQUE7bUJBQUFBLFNBQUFBLFNBQVNDLE9BQU87Z0JBQ2QsSUFBSUw7Z0JBRUosSUFBTU0sc0JBQXNCLElBQUksQ0FBQ1AsTUFBTSxFQUFFLEdBQUc7Z0JBRTVDTSxRQUFRRSxLQUFLLENBQUMsQUFBQyxtQkFBc0MsT0FBcEJELHFCQUFvQjtnQkFFckROLE9BQU8sSUFBSSxDQUFDQSxJQUFJLENBQUNJLFFBQVEsQ0FBQ0M7Z0JBRTFCQSxRQUFRRyxLQUFLLENBQUMsQUFBQyxxQkFBd0MsT0FBcEJGLHFCQUFvQjtnQkFFdkQsT0FBT047WUFDVDs7OztLQUVBLGlDQUFPUyxRQUFPIn0=
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ var _exception = /*#__PURE__*/ _interop_require_default(require("../../exception"));
12
+ var _elements = require("../../elements");
13
+ var _term = require("../../utilities/term");
14
+ function _class_call_check(instance, Constructor) {
15
+ if (!(instance instanceof Constructor)) {
16
+ throw new TypeError("Cannot call a class as a function");
17
+ }
18
+ }
19
+ function _defineProperties(target, props) {
20
+ for(var i = 0; i < props.length; i++){
21
+ var descriptor = props[i];
22
+ descriptor.enumerable = descriptor.enumerable || false;
23
+ descriptor.configurable = true;
24
+ if ("value" in descriptor) descriptor.writable = true;
25
+ Object.defineProperty(target, descriptor.key, descriptor);
26
+ }
27
+ }
28
+ function _create_class(Constructor, protoProps, staticProps) {
29
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
30
+ if (staticProps) _defineProperties(Constructor, staticProps);
31
+ return Constructor;
32
+ }
33
+ function _define_property(obj, key, value) {
34
+ if (key in obj) {
35
+ Object.defineProperty(obj, key, {
36
+ value: value,
37
+ enumerable: true,
38
+ configurable: true,
39
+ writable: true
40
+ });
41
+ } else {
42
+ obj[key] = value;
43
+ }
44
+ return obj;
45
+ }
46
+ function _interop_require_default(obj) {
47
+ return obj && obj.__esModule ? obj : {
48
+ default: obj
49
+ };
50
+ }
51
+ var _ComparisonTerm;
52
+ var _default = (0, _elements.define)((_ComparisonTerm = /*#__PURE__*/ function() {
53
+ function ComparisonTerm(string, negated, leftTerm, rightTerm) {
54
+ _class_call_check(this, ComparisonTerm);
55
+ this.string = string;
56
+ this.negated = negated;
57
+ this.leftTerm = leftTerm;
58
+ this.rightTerm = rightTerm;
59
+ }
60
+ _create_class(ComparisonTerm, [
61
+ {
62
+ key: "getString",
63
+ value: function getString() {
64
+ return this.string;
65
+ }
66
+ },
67
+ {
68
+ key: "isNegated",
69
+ value: function isNegated() {
70
+ return this.negated;
71
+ }
72
+ },
73
+ {
74
+ key: "getLeftTerm",
75
+ value: function getLeftTerm() {
76
+ return this.leftTerm;
77
+ }
78
+ },
79
+ {
80
+ key: "getRightTerm",
81
+ value: function getRightTerm() {
82
+ return this.rightTerm;
83
+ }
84
+ },
85
+ {
86
+ key: "evaluate",
87
+ value: function evaluate(context) {
88
+ var term;
89
+ var comparisonTermString = this.string; ///
90
+ context.trace("Evaluating the '".concat(comparisonTermString, "' comparison term..."));
91
+ var leftTerm = this.leftTerm.evaluate(context), rightTerm = this.rightTerm.evaluate(context), leftTermType = leftTerm.getType(), rightTermType = rightTerm.getType();
92
+ if (leftTermType !== rightTermType) {
93
+ var leftTermString = leftTerm.getString(), rightTermString = rightTerm.getString(), message = "The '".concat(leftTermString, "' left term's type is '").concat(leftTermType, "' whereas the '").concat(rightTermString, "' right term's type is '").concat(rightTermType, "'."), exception = _exception.default.fromMessage(message);
94
+ throw exception;
95
+ }
96
+ var leftTermEqualToRightTerm = leftTerm.isEqualTo(rightTerm);
97
+ var boolean = leftTermEqualToRightTerm; ///
98
+ if (this.negated) {
99
+ boolean = !boolean; ///
100
+ }
101
+ term = (0, _term.termFromBoolean)(boolean, context);
102
+ context.debug("...evaluated the '".concat(comparisonTermString, "' comparison term."));
103
+ return term;
104
+ }
105
+ }
106
+ ]);
107
+ return ComparisonTerm;
108
+ }(), _define_property(_ComparisonTerm, "name", "ComparisonTerm"), _ComparisonTerm));
109
+
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Rlcm0vY29tcGFyaXNvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdGVybUZyb21Cb29sZWFuIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy90ZXJtXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBDb21wYXJpc29uVGVybSB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgbmVnYXRlZCwgbGVmdFRlcm0sIHJpZ2h0VGVybSkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMubmVnYXRlZCA9IG5lZ2F0ZWQ7XG4gICAgdGhpcy5sZWZ0VGVybSA9IGxlZnRUZXJtO1xuICAgIHRoaXMucmlnaHRUZXJtID0gcmlnaHRUZXJtO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGlzTmVnYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5uZWdhdGVkO1xuICB9XG5cbiAgZ2V0TGVmdFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdFRlcm07XG4gIH1cblxuICBnZXRSaWdodFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMucmlnaHRUZXJtO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB0ZXJtO1xuXG4gICAgY29uc3QgY29tcGFyaXNvblRlcm1TdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtjb21wYXJpc29uVGVybVN0cmluZ30nIGNvbXBhcmlzb24gdGVybS4uLmApO1xuXG4gICAgY29uc3QgbGVmdFRlcm0gPSB0aGlzLmxlZnRUZXJtLmV2YWx1YXRlKGNvbnRleHQpLFxuICAgICAgICAgIHJpZ2h0VGVybSA9IHRoaXMucmlnaHRUZXJtLmV2YWx1YXRlKGNvbnRleHQpLFxuICAgICAgICAgIGxlZnRUZXJtVHlwZSA9IGxlZnRUZXJtLmdldFR5cGUoKSxcbiAgICAgICAgICByaWdodFRlcm1UeXBlID0gcmlnaHRUZXJtLmdldFR5cGUoKTtcblxuICAgIGlmIChsZWZ0VGVybVR5cGUgIT09IHJpZ2h0VGVybVR5cGUpIHtcbiAgICAgIGNvbnN0IGxlZnRUZXJtU3RyaW5nID0gbGVmdFRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICByaWdodFRlcm1TdHJpbmcgPSByaWdodFRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtsZWZ0VGVybVN0cmluZ30nIGxlZnQgdGVybSdzIHR5cGUgaXMgJyR7bGVmdFRlcm1UeXBlfScgd2hlcmVhcyB0aGUgJyR7cmlnaHRUZXJtU3RyaW5nfScgcmlnaHQgdGVybSdzIHR5cGUgaXMgJyR7cmlnaHRUZXJtVHlwZX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBsZWZ0VGVybUVxdWFsVG9SaWdodFRlcm0gPSBsZWZ0VGVybS5pc0VxdWFsVG8ocmlnaHRUZXJtKTtcblxuICAgIGxldCBib29sZWFuID0gbGVmdFRlcm1FcXVhbFRvUmlnaHRUZXJtOyAvLy9cblxuICAgIGlmICh0aGlzLm5lZ2F0ZWQpIHtcbiAgICAgIGJvb2xlYW4gPSAhYm9vbGVhbjsgLy8vXG4gICAgfVxuXG4gICAgdGVybSA9IHRlcm1Gcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7Y29tcGFyaXNvblRlcm1TdHJpbmd9JyBjb21wYXJpc29uIHRlcm0uYCk7XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJDb21wYXJpc29uVGVybVwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiQ29tcGFyaXNvblRlcm0iLCJzdHJpbmciLCJuZWdhdGVkIiwibGVmdFRlcm0iLCJyaWdodFRlcm0iLCJnZXRTdHJpbmciLCJpc05lZ2F0ZWQiLCJnZXRMZWZ0VGVybSIsImdldFJpZ2h0VGVybSIsImV2YWx1YXRlIiwiY29udGV4dCIsInRlcm0iLCJjb21wYXJpc29uVGVybVN0cmluZyIsInRyYWNlIiwibGVmdFRlcm1UeXBlIiwiZ2V0VHlwZSIsInJpZ2h0VGVybVR5cGUiLCJsZWZ0VGVybVN0cmluZyIsInJpZ2h0VGVybVN0cmluZyIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImxlZnRUZXJtRXF1YWxUb1JpZ2h0VGVybSIsImlzRXF1YWxUbyIsImJvb2xlYW4iLCJ0ZXJtRnJvbUJvb2xlYW4iLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU9BOzs7ZUFBQTs7O2dFQUxzQjt3QkFFQztvQkFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBRWhDLFdBQWVBLElBQUFBLGdCQUFNLG1DQUFDO2FBQU1DLGVBQ2RDLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLFNBQVM7Z0NBRHRCSjtRQUV4QixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxTQUFTLEdBQUdBOzs7O1lBR25CQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLE1BQU07WUFDcEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLE9BQU87WUFDckI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLFFBQVE7WUFDdEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLFNBQVM7WUFDdkI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsU0FBU0MsT0FBTztnQkFDZCxJQUFJQztnQkFFSixJQUFNQyx1QkFBdUIsSUFBSSxDQUFDWCxNQUFNLEVBQUUsR0FBRztnQkFFN0NTLFFBQVFHLEtBQUssQ0FBQyxBQUFDLG1CQUF1QyxPQUFyQkQsc0JBQXFCO2dCQUV0RCxJQUFNVCxXQUFXLElBQUksQ0FBQ0EsUUFBUSxDQUFDTSxRQUFRLENBQUNDLFVBQ2xDTixZQUFZLElBQUksQ0FBQ0EsU0FBUyxDQUFDSyxRQUFRLENBQUNDLFVBQ3BDSSxlQUFlWCxTQUFTWSxPQUFPLElBQy9CQyxnQkFBZ0JaLFVBQVVXLE9BQU87Z0JBRXZDLElBQUlELGlCQUFpQkUsZUFBZTtvQkFDbEMsSUFBTUMsaUJBQWlCZCxTQUFTRSxTQUFTLElBQ25DYSxrQkFBa0JkLFVBQVVDLFNBQVMsSUFDckNjLFVBQVUsQUFBQyxRQUErQ0wsT0FBeENHLGdCQUFlLDJCQUF1REMsT0FBOUJKLGNBQWEsbUJBQTJERSxPQUExQ0UsaUJBQWdCLDRCQUF3QyxPQUFkRixlQUFjLE9BQ2hKSSxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO29CQUV4QyxNQUFNQztnQkFDUjtnQkFFQSxJQUFNRywyQkFBMkJwQixTQUFTcUIsU0FBUyxDQUFDcEI7Z0JBRXBELElBQUlxQixVQUFVRiwwQkFBMEIsR0FBRztnQkFFM0MsSUFBSSxJQUFJLENBQUNyQixPQUFPLEVBQUU7b0JBQ2hCdUIsVUFBVSxDQUFDQSxTQUFTLEdBQUc7Z0JBQ3pCO2dCQUVBZCxPQUFPZSxJQUFBQSxxQkFBZSxFQUFDRCxTQUFTZjtnQkFFaENBLFFBQVFpQixLQUFLLENBQUMsQUFBQyxxQkFBeUMsT0FBckJmLHNCQUFxQjtnQkFFeEQsT0FBT0Q7WUFDVDs7OztLQUVBLGtDQUFPaUIsUUFBTyJ9
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ var _exception = /*#__PURE__*/ _interop_require_default(require("../../exception"));
12
+ var _elements = require("../../elements");
13
+ var _types = require("../../types");
14
+ var _term = require("../../utilities/term");
15
+ function _class_call_check(instance, Constructor) {
16
+ if (!(instance instanceof Constructor)) {
17
+ throw new TypeError("Cannot call a class as a function");
18
+ }
19
+ }
20
+ function _defineProperties(target, props) {
21
+ for(var i = 0; i < props.length; i++){
22
+ var descriptor = props[i];
23
+ descriptor.enumerable = descriptor.enumerable || false;
24
+ descriptor.configurable = true;
25
+ if ("value" in descriptor) descriptor.writable = true;
26
+ Object.defineProperty(target, descriptor.key, descriptor);
27
+ }
28
+ }
29
+ function _create_class(Constructor, protoProps, staticProps) {
30
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
31
+ if (staticProps) _defineProperties(Constructor, staticProps);
32
+ return Constructor;
33
+ }
34
+ function _define_property(obj, key, value) {
35
+ if (key in obj) {
36
+ Object.defineProperty(obj, key, {
37
+ value: value,
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true
41
+ });
42
+ } else {
43
+ obj[key] = value;
44
+ }
45
+ return obj;
46
+ }
47
+ function _interop_require_default(obj) {
48
+ return obj && obj.__esModule ? obj : {
49
+ default: obj
50
+ };
51
+ }
52
+ var _LogicaTerm;
53
+ var _default = (0, _elements.define)((_LogicaTerm = /*#__PURE__*/ function() {
54
+ function LogicaTerm(string, type, disjunction, leftTerm, rightTerm) {
55
+ _class_call_check(this, LogicaTerm);
56
+ this.string = string;
57
+ this.type = type;
58
+ this.disjunction = disjunction;
59
+ this.leftTerm = leftTerm;
60
+ this.rightTerm = rightTerm;
61
+ }
62
+ _create_class(LogicaTerm, [
63
+ {
64
+ key: "getString",
65
+ value: function getString() {
66
+ return this.string;
67
+ }
68
+ },
69
+ {
70
+ key: "getType",
71
+ value: function getType() {
72
+ return this.type;
73
+ }
74
+ },
75
+ {
76
+ key: "isDisjunction",
77
+ value: function isDisjunction() {
78
+ return this.disjunction;
79
+ }
80
+ },
81
+ {
82
+ key: "getLeftTerm",
83
+ value: function getLeftTerm() {
84
+ return this.leftTerm;
85
+ }
86
+ },
87
+ {
88
+ key: "getRightTerm",
89
+ value: function getRightTerm() {
90
+ return this.rightTerm;
91
+ }
92
+ },
93
+ {
94
+ key: "evaluate",
95
+ value: function evaluate(context) {
96
+ var term;
97
+ var logicaTermString = this.string; ///
98
+ context.trace("Evaluating the '".concat(logicaTermString, "' logical term..."));
99
+ var leftTerm = this.leftTerm.evaluate(context), rightTerm = this.rightTerm.evaluate(context), leftTermType = leftTerm.getType(), rightTermType = rightTerm.getType();
100
+ if (leftTermType !== _types.BOOLEAN_TYPE) {
101
+ var leftTermString = leftTerm.getString(), message = "The '".concat(leftTermString, "' left term's type is '").concat(leftTermType, "' when it should be of type '").concat(_types.BOOLEAN_TYPE, "'."), exception = _exception.default.fromMessage(message);
102
+ throw exception;
103
+ }
104
+ if (rightTermType !== _types.BOOLEAN_TYPE) {
105
+ var rightTermString = rightTerm.getString(), message1 = "The '".concat(rightTermString, "' right term's type is '").concat(rightTermType, "' when it should be of type '").concat(_types.BOOLEAN_TYPE, "'."), exception1 = _exception.default.fromMessage(message1);
106
+ throw exception1;
107
+ }
108
+ var leftTermBoolean = leftTerm.getBoolean(), rightTermBoolean = rightTerm.getBoolean(), boolean = this.disjunction ? leftTermBoolean || rightTermBoolean : leftTermBoolean && rightTermBoolean;
109
+ term = (0, _term.termFromBoolean)(boolean, context);
110
+ context.debug("...evaluated the '".concat(logicaTermString, "' logical term."));
111
+ return term;
112
+ }
113
+ }
114
+ ]);
115
+ return LogicaTerm;
116
+ }(), _define_property(_LogicaTerm, "name", "LogicaTerm"), _LogicaTerm));
117
+
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Rlcm0vbG9naWNhbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgQk9PTEVBTl9UWVBFIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyB0ZXJtRnJvbUJvb2xlYW4gfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3Rlcm1cIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIExvZ2ljYVRlcm0ge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIHR5cGUsIGRpc2p1bmN0aW9uLCBsZWZ0VGVybSwgcmlnaHRUZXJtKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLmRpc2p1bmN0aW9uID0gZGlzanVuY3Rpb247XG4gICAgdGhpcy5sZWZ0VGVybSA9IGxlZnRUZXJtO1xuICAgIHRoaXMucmlnaHRUZXJtID0gcmlnaHRUZXJtO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGlzRGlzanVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzanVuY3Rpb247XG4gIH1cblxuICBnZXRMZWZ0VGVybSgpIHtcbiAgICByZXR1cm4gdGhpcy5sZWZ0VGVybTtcbiAgfVxuXG4gIGdldFJpZ2h0VGVybSgpIHtcbiAgICByZXR1cm4gdGhpcy5yaWdodFRlcm07XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgbGV0IHRlcm07XG5cbiAgICBjb25zdCBsb2dpY2FUZXJtU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7bG9naWNhVGVybVN0cmluZ30nIGxvZ2ljYWwgdGVybS4uLmApO1xuXG4gICAgY29uc3QgbGVmdFRlcm0gPSB0aGlzLmxlZnRUZXJtLmV2YWx1YXRlKGNvbnRleHQpLFxuICAgICAgICAgIHJpZ2h0VGVybSA9IHRoaXMucmlnaHRUZXJtLmV2YWx1YXRlKGNvbnRleHQpLFxuICAgICAgICAgIGxlZnRUZXJtVHlwZSA9IGxlZnRUZXJtLmdldFR5cGUoKSxcbiAgICAgICAgICByaWdodFRlcm1UeXBlID0gcmlnaHRUZXJtLmdldFR5cGUoKTtcblxuICAgIGlmIChsZWZ0VGVybVR5cGUgIT09IEJPT0xFQU5fVFlQRSkge1xuICAgICAgY29uc3QgbGVmdFRlcm1TdHJpbmcgPSBsZWZ0VGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke2xlZnRUZXJtU3RyaW5nfScgbGVmdCB0ZXJtJ3MgdHlwZSBpcyAnJHtsZWZ0VGVybVR5cGV9JyB3aGVuIGl0IHNob3VsZCBiZSBvZiB0eXBlICcke0JPT0xFQU5fVFlQRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBpZiAocmlnaHRUZXJtVHlwZSAhPT0gQk9PTEVBTl9UWVBFKSB7XG4gICAgICBjb25zdCByaWdodFRlcm1TdHJpbmcgPSByaWdodFRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtyaWdodFRlcm1TdHJpbmd9JyByaWdodCB0ZXJtJ3MgdHlwZSBpcyAnJHtyaWdodFRlcm1UeXBlfScgd2hlbiBpdCBzaG91bGQgYmUgb2YgdHlwZSAnJHtCT09MRUFOX1RZUEV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgbGVmdFRlcm1Cb29sZWFuID0gbGVmdFRlcm0uZ2V0Qm9vbGVhbigpLFxuICAgICAgICAgIHJpZ2h0VGVybUJvb2xlYW4gPSByaWdodFRlcm0uZ2V0Qm9vbGVhbigpLFxuICAgICAgICAgIGJvb2xlYW4gPSB0aGlzLmRpc2p1bmN0aW9uID9cbiAgICAgICAgICAgICAgICAgICAgICAobGVmdFRlcm1Cb29sZWFuIHx8IHJpZ2h0VGVybUJvb2xlYW4pIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIChsZWZ0VGVybUJvb2xlYW4gJiYgcmlnaHRUZXJtQm9vbGVhbik7XG5cbiAgICB0ZXJtID0gdGVybUZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtsb2dpY2FUZXJtU3RyaW5nfScgbG9naWNhbCB0ZXJtLmApO1xuXG4gICAgcmV0dXJuIHRlcm07XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiTG9naWNhVGVybVwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiTG9naWNhVGVybSIsInN0cmluZyIsInR5cGUiLCJkaXNqdW5jdGlvbiIsImxlZnRUZXJtIiwicmlnaHRUZXJtIiwiZ2V0U3RyaW5nIiwiZ2V0VHlwZSIsImlzRGlzanVuY3Rpb24iLCJnZXRMZWZ0VGVybSIsImdldFJpZ2h0VGVybSIsImV2YWx1YXRlIiwiY29udGV4dCIsInRlcm0iLCJsb2dpY2FUZXJtU3RyaW5nIiwidHJhY2UiLCJsZWZ0VGVybVR5cGUiLCJyaWdodFRlcm1UeXBlIiwiQk9PTEVBTl9UWVBFIiwibGVmdFRlcm1TdHJpbmciLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJyaWdodFRlcm1TdHJpbmciLCJsZWZ0VGVybUJvb2xlYW4iLCJnZXRCb29sZWFuIiwicmlnaHRUZXJtQm9vbGVhbiIsImJv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