occam-verify-cli 0.0.317 → 0.0.319

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 (94) hide show
  1. package/bin/callbacks.js +27 -0
  2. package/bin/main.js +2 -5
  3. package/bin/messages.js +11 -0
  4. package/bin/utilities/logging.js +2 -10
  5. package/bin/utilities/release.js +47 -46
  6. package/lib/callbacks.js +68 -0
  7. package/lib/context/file.js +58 -81
  8. package/lib/context/metaproof.js +30 -118
  9. package/lib/context/proof.js +73 -137
  10. package/lib/context/release.js +81 -15
  11. package/lib/index.js +9 -1
  12. package/lib/mixins/callbacks.js +27 -0
  13. package/lib/mixins/file.js +23 -0
  14. package/lib/mixins/logging.js +39 -0
  15. package/lib/rule.js +3 -3
  16. package/lib/utilities/verification.js +45 -0
  17. package/lib/verify/IndicativeConditional.js +9 -5
  18. package/lib/verify/assertion/type.js +12 -10
  19. package/lib/verify/axiom.js +10 -14
  20. package/lib/verify/conclusion.js +5 -3
  21. package/lib/verify/conditinalInference.js +7 -5
  22. package/lib/verify/declaration/combinator.js +7 -3
  23. package/lib/verify/declaration/constructor.js +7 -3
  24. package/lib/verify/declaration/topLevel.js +11 -9
  25. package/lib/verify/declaration/type.js +8 -3
  26. package/lib/verify/declaration/variable.js +7 -3
  27. package/lib/verify/equality.js +8 -6
  28. package/lib/verify/file.js +7 -9
  29. package/lib/verify/label.js +6 -4
  30. package/lib/verify/labels.js +5 -4
  31. package/lib/verify/metaDerivation.js +21 -18
  32. package/lib/verify/metaproof.js +6 -4
  33. package/lib/verify/metastatement/qualified.js +7 -5
  34. package/lib/verify/metastatement/unqualified.js +7 -5
  35. package/lib/verify/premiseOrPremises.js +11 -12
  36. package/lib/verify/release.js +28 -18
  37. package/lib/verify/rule.js +11 -14
  38. package/lib/verify/statement/qualified.js +7 -3
  39. package/lib/verify/statement/unqualified.js +6 -4
  40. package/lib/verify/statement.js +8 -10
  41. package/lib/verify/statementAsCombinator.js +33 -36
  42. package/lib/verify/term.js +4 -2
  43. package/lib/verify/termAsConstructor.js +38 -39
  44. package/lib/verify/termAsVariable.js +4 -2
  45. package/lib/verify/type.js +18 -14
  46. package/lib/verify/unconditionalInference.js +5 -3
  47. package/lib/verify/variable.js +13 -10
  48. package/package.json +1 -1
  49. package/src/callbacks.js +27 -0
  50. package/src/context/file.js +62 -61
  51. package/src/context/metaproof.js +29 -44
  52. package/src/context/proof.js +51 -64
  53. package/src/context/release.js +33 -11
  54. package/src/index.js +3 -0
  55. package/src/mixins/callbacks.js +15 -0
  56. package/src/mixins/file.js +12 -0
  57. package/src/mixins/logging.js +24 -0
  58. package/src/rule.js +2 -2
  59. package/src/utilities/verification.js +41 -0
  60. package/src/verify/IndicativeConditional.js +18 -9
  61. package/src/verify/assertion/type.js +15 -8
  62. package/src/verify/axiom.js +15 -17
  63. package/src/verify/conclusion.js +8 -2
  64. package/src/verify/conditinalInference.js +10 -4
  65. package/src/verify/declaration/combinator.js +12 -3
  66. package/src/verify/declaration/constructor.js +12 -3
  67. package/src/verify/declaration/topLevel.js +15 -9
  68. package/src/verify/declaration/type.js +14 -4
  69. package/src/verify/declaration/variable.js +12 -3
  70. package/src/verify/equality.js +11 -4
  71. package/src/verify/file.js +6 -8
  72. package/src/verify/label.js +9 -3
  73. package/src/verify/labels.js +5 -3
  74. package/src/verify/metaDerivation.js +26 -19
  75. package/src/verify/metaproof.js +9 -3
  76. package/src/verify/metastatement/qualified.js +10 -4
  77. package/src/verify/metastatement/unqualified.js +10 -4
  78. package/src/verify/premiseOrPremises.js +18 -14
  79. package/src/verify/release.js +45 -27
  80. package/src/verify/rule.js +15 -16
  81. package/src/verify/statement/qualified.js +12 -3
  82. package/src/verify/statement/unqualified.js +9 -3
  83. package/src/verify/statement.js +10 -9
  84. package/src/verify/statementAsCombinator.js +45 -46
  85. package/src/verify/term.js +7 -1
  86. package/src/verify/termAsConstructor.js +48 -45
  87. package/src/verify/termAsVariable.js +7 -1
  88. package/src/verify/type.js +25 -21
  89. package/src/verify/unconditionalInference.js +8 -2
  90. package/src/verify/variable.js +18 -11
  91. package/lib/mixins/log.js +0 -41
  92. package/lib/verify/supposition.js +0 -29
  93. package/src/mixins/log.js +0 -28
  94. package/src/verify/supposition.js +0 -22
@@ -5,9 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  Object.defineProperty(exports, "default", {
6
6
  enumerable: true,
7
7
  get: function() {
8
- return MetaproofContext;
8
+ return _default;
9
9
  }
10
10
  });
11
+ var _file = /*#__PURE__*/ _interopRequireDefault(require("../mixins/file"));
12
+ var _logging = /*#__PURE__*/ _interopRequireDefault(require("../mixins/logging"));
13
+ var _callbacks = /*#__PURE__*/ _interopRequireDefault(require("../mixins/callbacks"));
11
14
  function _arrayLikeToArray(arr, len) {
12
15
  if (len == null || len > arr.length) len = arr.length;
13
16
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -35,6 +38,11 @@ function _createClass(Constructor, protoProps, staticProps) {
35
38
  if (staticProps) _defineProperties(Constructor, staticProps);
36
39
  return Constructor;
37
40
  }
41
+ function _interopRequireDefault(obj) {
42
+ return obj && obj.__esModule ? obj : {
43
+ default: obj
44
+ };
45
+ }
38
46
  function _iterableToArray(iter) {
39
47
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
40
48
  }
@@ -81,63 +89,15 @@ var MetaproofContext = /*#__PURE__*/ function() {
81
89
  }
82
90
  },
83
91
  {
84
- key: "getRules",
85
- value: function getRules() {
86
- return this.context.getRules();
87
- }
88
- },
89
- {
90
- key: "getTypes",
91
- value: function getTypes() {
92
- return this.context.getTypes();
93
- }
94
- },
95
- {
96
- key: "getAxioms",
97
- value: function getAxioms() {
98
- return this.context.getAxioms();
99
- }
100
- },
101
- {
102
- key: "getCombinators",
103
- value: function getCombinators() {
104
- return this.context.getCombinators();
105
- }
106
- },
107
- {
108
- key: "getConstructors",
109
- value: function getConstructors() {
110
- return this.context.getConstructors();
111
- }
112
- },
113
- {
114
- key: "findTypeByTypeName",
115
- value: function findTypeByTypeName(typeName) {
116
- return this.context.findTypeByTypeName(typeName);
117
- }
118
- },
119
- {
120
- key: "findRuleByReferenceName",
121
- value: function findRuleByReferenceName(referenceName) {
122
- return this.context.findRuleByReferenceName(referenceName);
123
- }
124
- },
125
- {
126
- key: "findVariableByVariableName",
127
- value: function findVariableByVariableName(variableName) {
128
- return this.context.findVariableByVariableName(variableName);
129
- }
130
- },
131
- {
132
- key: "isLabelPresent",
133
- value: function isLabelPresent(label) {
134
- return this.context.isLabelPresent(label);
92
+ key: "setDerived",
93
+ value: function setDerived(derived) {
94
+ this.derived = derived;
135
95
  }
136
96
  },
137
97
  {
138
- key: "isTypePresentByTypeName",
139
- value: function isTypePresentByTypeName(typeName) {
140
- return this.context.isTypePresentByTypeName(typeName);
98
+ key: "addMetaAssertion",
99
+ value: function addMetaAssertion(metaAssertion) {
100
+ this.metaAssertions.push(metaAssertion);
141
101
  }
142
102
  },
143
103
  {
@@ -156,77 +116,29 @@ var MetaproofContext = /*#__PURE__*/ function() {
156
116
  }
157
117
  return metaAssertionMatches;
158
118
  }
159
- },
160
- {
161
- key: "isVariablePresentByVariableName",
162
- value: function isVariablePresentByVariableName(variableName) {
163
- return this.context.isVariablePresentByVariableName(variableName);
164
- }
165
- },
166
- {
167
- key: "setDerived",
168
- value: function setDerived(derived) {
169
- this.derived = derived;
170
- }
171
- },
172
- {
173
- key: "addRule",
174
- value: function addRule(rule) {
175
- this.context.addRule(rule);
176
- }
177
- },
178
- {
179
- key: "addMetaAssertion",
180
- value: function addMetaAssertion(metaAssertion) {
181
- this.metaAssertions.push(metaAssertion);
182
- }
183
- },
184
- {
185
- key: "trace",
186
- value: function trace(message, node) {
187
- this.context.trace(message, node);
188
- }
189
- },
190
- {
191
- key: "debug",
192
- value: function debug(message, node) {
193
- this.context.debug(message, node);
194
- }
195
- },
196
- {
197
- key: "info",
198
- value: function info(message, node) {
199
- this.context.info(message, node);
200
- }
201
- },
202
- {
203
- key: "warning",
204
- value: function warning(message, node) {
205
- this.context.warning(message, node);
206
- }
207
- },
119
+ }
120
+ ], [
208
121
  {
209
- key: "error",
210
- value: function error(message, node) {
211
- this.context.error(message, node);
122
+ key: "fromFileContext",
123
+ value: function fromFileContext(fileContext) {
124
+ var context = fileContext, derived = false, metaAssertions = [], metaproofContext = new MetaproofContext(context, derived, metaAssertions);
125
+ return metaproofContext;
212
126
  }
213
127
  },
214
128
  {
215
- key: "fatal",
216
- value: function fatal(message, node) {
217
- this.context.fatal(message, node);
218
- }
219
- }
220
- ], [
221
- {
222
- key: "fromContext",
223
- value: function fromContext(context) {
224
- var derived = false, metaAssertions = [], metaproofContext = new MetaproofContext(context, derived, metaAssertions);
129
+ key: "fromMetaproofContext",
130
+ value: function fromMetaproofContext(metaproofContext) {
131
+ var context = metaproofContext, derived = false, metaAssertions = [];
132
+ metaproofContext = new MetaproofContext(context, derived, metaAssertions); ///
225
133
  return metaproofContext;
226
134
  }
227
135
  }
228
136
  ]);
229
137
  return MetaproofContext;
230
138
  }();
139
+ Object.assign(MetaproofContext.prototype, _file.default);
140
+ Object.assign(MetaproofContext.prototype, _logging.default);
141
+ Object.assign(MetaproofContext.prototype, _callbacks.default);
142
+ var _default = MetaproofContext;
231
143
 
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L21ldGFwcm9vZi5qcyIsIjw8anN4LWNvbmZpZy1wcmFnbWEuanM+PiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWV0YXByb29mQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIGRlcml2ZWQsIG1ldGFBc3NlcnRpb25zKSB7XG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICB0aGlzLmRlcml2ZWQgPSBkZXJpdmVkO1xuICAgIHRoaXMubWV0YUFzc2VydGlvbnMgPSBtZXRhQXNzZXJ0aW9ucztcbiAgfVxuXG4gIGdldENvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dDtcbiAgfVxuXG4gIGlzRGVyaXZlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5kZXJpdmVkO1xuICB9XG5cbiAgZ2V0TWV0YUFzc2VydGlvbnMoKSB7XG4gICAgbGV0IG1ldGFBc3NlcnRpb25zID0gdGhpcy5jb250ZXh0LmdldE1ldGFBc3NlcnRpb25zKCk7XG5cbiAgICBtZXRhQXNzZXJ0aW9ucyA9IFtcbiAgICAgIC4uLm1ldGFBc3NlcnRpb25zLFxuICAgICAgLi4udGhpcy5tZXRhQXNzZXJ0aW9uc1xuICAgIF07XG5cbiAgICByZXR1cm4gbWV0YUFzc2VydGlvbnM7XG4gIH1cblxuICBnZXRSdWxlcygpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5nZXRSdWxlcygpOyB9XG5cbiAgZ2V0VHlwZXMoKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZ2V0VHlwZXMoKTsgfVxuXG4gIGdldEF4aW9tcygpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5nZXRBeGlvbXMoKTsgfVxuXG4gIGdldENvbWJpbmF0b3JzKCkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmdldENvbWJpbmF0b3JzKCk7IH1cblxuICBnZXRDb25zdHJ1Y3RvcnMoKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZ2V0Q29uc3RydWN0b3JzKCk7IH1cblxuICBmaW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpOyB9XG5cbiAgZmluZFJ1bGVCeVJlZmVyZW5jZU5hbWUocmVmZXJlbmNlTmFtZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmZpbmRSdWxlQnlSZWZlcmVuY2VOYW1lKHJlZmVyZW5jZU5hbWUpOyB9XG5cbiAgZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTsgfVxuXG4gIGlzTGFiZWxQcmVzZW50KGxhYmVsKSB7IHJldHVybiB0aGlzLmNvbnRleHQuaXNMYWJlbFByZXNlbnQobGFiZWwpOyB9XG5cbiAgaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5pc1R5cGVQcmVzZW50QnlUeXBlTmFtZSh0eXBlTmFtZSk7IH1cblxuICBtYXRjaE1ldGFBc3NlcnRpb24obWV0YUFzc2VydGlvbikge1xuICAgIGxldCBtZXRhQXNzZXJ0aW9uTWF0Y2hlcztcblxuICAgIGNvbnN0IG1ldGFBc3NlcnRpb25CID0gbWV0YUFzc2VydGlvbjsgLy8vXG5cbiAgICBtZXRhQXNzZXJ0aW9uTWF0Y2hlcyA9IHRoaXMubWV0YUFzc2VydGlvbnMuc29tZSgobWV0YUFzc2VydGlvbikgPT4ge1xuICAgICAgY29uc3QgbWV0YUFzc2VydGlvbkEgPSBtZXRhQXNzZXJ0aW9uLCAvLy9cbiAgICAgICAgICAgIG1hdGNoZXMgPSBtZXRhQXNzZXJ0aW9uQS5tYXRjaChtZXRhQXNzZXJ0aW9uQik7XG5cbiAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFtZXRhQXNzZXJ0aW9uTWF0Y2hlcykge1xuICAgICAgbWV0YUFzc2VydGlvbk1hdGNoZXMgPSB0aGlzLmNvbnRleHQubWF0Y2hNZXRhQXNzZXJ0aW9uKG1ldGFBc3NlcnRpb24pO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhQXNzZXJ0aW9uTWF0Y2hlcztcbiAgfVxuXG4gIGlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKSB7IHJldHVybiB0aGlzLmNvbnRleHQuaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpOyB9XG5cbiAgc2V0RGVyaXZlZChkZXJpdmVkKSB7XG4gICAgdGhpcy5kZXJpdmVkID0gZGVyaXZlZDtcbiAgfVxuXG4gIGFkZFJ1bGUocnVsZSkgeyB0aGlzLmNvbnRleHQuYWRkUnVsZShydWxlKTsgfVxuXG4gIGFkZE1ldGFBc3NlcnRpb24obWV0YUFzc2VydGlvbikge1xuICAgIHRoaXMubWV0YUFzc2VydGlvbnMucHVzaChtZXRhQXNzZXJ0aW9uKTtcbiAgfVxuXG4gIHRyYWNlKG1lc3NhZ2UsIG5vZGUpIHsgdGhpcy5jb250ZXh0LnRyYWNlKG1lc3NhZ2UsIG5vZGUpOyB9XG5cbiAgZGVidWcobWVzc2FnZSwgbm9kZSkgeyB0aGlzLmNvbnRleHQuZGVidWcobWVzc2FnZSwgbm9kZSk7IH1cblxuICBpbmZvKG1lc3NhZ2UsIG5vZGUpIHsgdGhpcy5jb250ZXh0LmluZm8obWVzc2FnZSwgbm9kZSk7IH1cblxuICB3YXJuaW5nKG1lc3NhZ2UsIG5vZGUpIHsgdGhpcy5jb250ZXh0Lndhcm5pbmcobWVzc2FnZSwgbm9kZSk7IH1cblxuICBlcnJvcihtZXNzYWdlLCBub2RlKSB7IHRoaXMuY29udGV4dC5lcnJvcihtZXNzYWdlLCBub2RlKTsgfVxuXG4gIGZhdGFsKG1lc3NhZ2UsIG5vZGUpIHsgdGhpcy5jb250ZXh0LmZhdGFsKG1lc3NhZ2UsIG5vZGUpOyB9XG5cbiAgc3RhdGljIGZyb21Db250ZXh0KGNvbnRleHQpIHtcbiAgICBjb25zdCBkZXJpdmVkID0gZmFsc2UsXG4gICAgICAgICAgbWV0YUFzc2VydGlvbnMgPSBbXSxcbiAgICAgICAgICBtZXRhcHJvb2ZDb250ZXh0ID0gbmV3IE1ldGFwcm9vZkNvbnRleHQoY29udGV4dCwgZGVyaXZlZCwgbWV0YUFzc2VydGlvbnMpO1xuXG4gICAgcmV0dXJuIG1ldGFwcm9vZkNvbnRleHQ7XG4gIH1cbn1cbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiTWV0YXByb29mQ29udGV4dCIsImNvbnRleHQiLCJkZXJpdmVkIiwibWV0YUFzc2VydGlvbnMiLCJnZXRDb250ZXh0IiwiaXNEZXJpdmVkIiwiZ2V0TWV0YUFzc2VydGlvbnMiLCJnZXRSdWxlcyIsImdldFR5cGVzIiwiZ2V0QXhpb21zIiwiZ2V0Q29tYmluYXRvcnMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJ0eXBlTmFtZSIsImZpbmRSdWxlQnlSZWZlcmVuY2VOYW1lIiwicmVmZXJlbmNlTmFtZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lIiwidmFyaWFibGVOYW1lIiwiaXNMYWJlbFByZXNlbnQiLCJsYWJlbCIsImlzVHlwZVByZXNlbnRCeVR5cGVOYW1lIiwibWF0Y2hNZXRhQXNzZXJ0aW9uIiwibWV0YUFzc2VydGlvbiIsIm1ldGFBc3NlcnRpb25NYXRjaGVzIiwibWV0YUFzc2VydGlvbkIiLCJzb21lIiwibWV0YUFzc2VydGlvbkEiLCJtYXRjaGVzIiwibWF0Y2giLCJpc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lIiwic2V0RGVyaXZlZCIsImFkZFJ1bGUiLCJydWxlIiwiYWRkTWV0YUFzc2VydGlvbiIsInB1c2giLCJ0cmFjZSIsIm1lc3NhZ2UiLCJub2RlIiwiZGVidWciLCJpbmZvIiwid2FybmluZyIsImVycm9yIiwiZmF0YWwiLCJmcm9tQ29udGV4dCIsIm1ldGFwcm9vZkNvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBRXFCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7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
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L21ldGFwcm9vZi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGZpbGVNaXhpbnMgZnJvbSBcIi4uL21peGlucy9maWxlXCI7XG5pbXBvcnQgbG9nZ2luZ01peGlucyBmcm9tIFwiLi4vbWl4aW5zL2xvZ2dpbmdcIjtcbmltcG9ydCBjYWxsYmFja3NNaXhpbnMgZnJvbSBcIi4uL21peGlucy9jYWxsYmFja3NcIjtcblxuY2xhc3MgTWV0YXByb29mQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIGRlcml2ZWQsIG1ldGFBc3NlcnRpb25zKSB7XG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICB0aGlzLmRlcml2ZWQgPSBkZXJpdmVkO1xuICAgIHRoaXMubWV0YUFzc2VydGlvbnMgPSBtZXRhQXNzZXJ0aW9ucztcbiAgfVxuXG4gIGdldENvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dDtcbiAgfVxuXG4gIGlzRGVyaXZlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5kZXJpdmVkO1xuICB9XG5cbiAgZ2V0TWV0YUFzc2VydGlvbnMoKSB7XG4gICAgbGV0IG1ldGFBc3NlcnRpb25zID0gdGhpcy5jb250ZXh0LmdldE1ldGFBc3NlcnRpb25zKCk7XG5cbiAgICBtZXRhQXNzZXJ0aW9ucyA9IFsgIC8vL1xuICAgICAgLi4ubWV0YUFzc2VydGlvbnMsXG4gICAgICAuLi50aGlzLm1ldGFBc3NlcnRpb25zXG4gICAgXTtcblxuICAgIHJldHVybiBtZXRhQXNzZXJ0aW9ucztcbiAgfVxuXG4gIHNldERlcml2ZWQoZGVyaXZlZCkge1xuICAgIHRoaXMuZGVyaXZlZCA9IGRlcml2ZWQ7XG4gIH1cblxuICBhZGRNZXRhQXNzZXJ0aW9uKG1ldGFBc3NlcnRpb24pIHtcbiAgICB0aGlzLm1ldGFBc3NlcnRpb25zLnB1c2gobWV0YUFzc2VydGlvbik7XG4gIH1cblxuICBtYXRjaE1ldGFBc3NlcnRpb24obWV0YUFzc2VydGlvbikge1xuICAgIGxldCBtZXRhQXNzZXJ0aW9uTWF0Y2hlcztcblxuICAgIGNvbnN0IG1ldGFBc3NlcnRpb25CID0gbWV0YUFzc2VydGlvbjsgLy8vXG5cbiAgICBtZXRhQXNzZXJ0aW9uTWF0Y2hlcyA9IHRoaXMubWV0YUFzc2VydGlvbnMuc29tZSgobWV0YUFzc2VydGlvbikgPT4ge1xuICAgICAgY29uc3QgbWV0YUFzc2VydGlvbkEgPSBtZXRhQXNzZXJ0aW9uLCAvLy9cbiAgICAgICAgICAgIG1hdGNoZXMgPSBtZXRhQXNzZXJ0aW9uQS5tYXRjaChtZXRhQXNzZXJ0aW9uQik7XG5cbiAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFtZXRhQXNzZXJ0aW9uTWF0Y2hlcykge1xuICAgICAgbWV0YUFzc2VydGlvbk1hdGNoZXMgPSB0aGlzLmNvbnRleHQubWF0Y2hNZXRhQXNzZXJ0aW9uKG1ldGFBc3NlcnRpb24pO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhQXNzZXJ0aW9uTWF0Y2hlcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gZmlsZUNvbnRleHQsICAvLy9cbiAgICAgICAgICBkZXJpdmVkID0gZmFsc2UsXG4gICAgICAgICAgbWV0YUFzc2VydGlvbnMgPSBbXSxcbiAgICAgICAgICBtZXRhcHJvb2ZDb250ZXh0ID0gbmV3IE1ldGFwcm9vZkNvbnRleHQoY29udGV4dCwgZGVyaXZlZCwgbWV0YUFzc2VydGlvbnMpO1xuXG4gICAgcmV0dXJuIG1ldGFwcm9vZkNvbnRleHQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbU1ldGFwcm9vZkNvbnRleHQobWV0YXByb29mQ29udGV4dCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSBtZXRhcHJvb2ZDb250ZXh0LCAgLy8vXG4gICAgICAgICAgZGVyaXZlZCA9IGZhbHNlLFxuICAgICAgICAgIG1ldGFBc3NlcnRpb25zID0gW107XG5cbiAgICBtZXRhcHJvb2ZDb250ZXh0ID0gbmV3IE1ldGFwcm9vZkNvbnRleHQoY29udGV4dCwgZGVyaXZlZCwgbWV0YUFzc2VydGlvbnMpOyAgLy8vXG5cbiAgICByZXR1cm4gbWV0YXByb29mQ29udGV4dDtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKE1ldGFwcm9vZkNvbnRleHQucHJvdG90eXBlLCBmaWxlTWl4aW5zKTtcbk9iamVjdC5hc3NpZ24oTWV0YXByb29mQ29udGV4dC5wcm90b3R5cGUsIGxvZ2dpbmdNaXhpbnMpO1xuT2JqZWN0LmFzc2lnbihNZXRhcHJvb2ZDb250ZXh0LnByb3RvdHlwZSwgY2FsbGJhY2tzTWl4aW5zKTtcblxuZXhwb3J0IGRlZmF1bHQgTWV0YXByb29mQ29udGV4dDsiXSwibmFtZXMiOlsiTWV0YXByb29mQ29udGV4dCIsImNvbnRleHQiLCJkZXJpdmVkIiwibWV0YUFzc2VydGlvbnMiLCJnZXRDb250ZXh0IiwiaXNEZXJpdmVkIiwiZ2V0TWV0YUFzc2VydGlvbnMiLCJzZXREZXJpdmVkIiwiYWRkTWV0YUFzc2VydGlvbiIsIm1ldGFBc3NlcnRpb24iLCJwdXNoIiwibWF0Y2hNZXRhQXNzZXJ0aW9uIiwibWV0YUFzc2VydGlvbk1hdGNoZXMiLCJtZXRhQXNzZXJ0aW9uQiIsInNvbWUiLCJtZXRhQXNzZXJ0aW9uQSIsIm1hdGNoZXMiLCJtYXRjaCIsImZyb21GaWxlQ29udGV4dCIsImZpbGVDb250ZXh0IiwibWV0YXByb29mQ29udGV4dCIsImZyb21NZXRhcHJvb2ZDb250ZXh0IiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwiZmlsZU1peGlucyIsImxvZ2dpbmdNaXhpbnMiLCJjYWxsYmFja3NNaXhpbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXFGQTs7O2VBQUE7Ozt5REFuRnVCOzREQUNHOzhEQUNFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -5,9 +5,20 @@ Object.defineProperty(exports, "__esModule", {
5
5
  Object.defineProperty(exports, "default", {
6
6
  enumerable: true,
7
7
  get: function() {
8
- return ProofContext;
8
+ return _default;
9
9
  }
10
10
  });
11
+ var _file = /*#__PURE__*/ _interopRequireDefault(require("../mixins/file"));
12
+ var _logging = /*#__PURE__*/ _interopRequireDefault(require("../mixins/logging"));
13
+ var _callbacks = /*#__PURE__*/ _interopRequireDefault(require("../mixins/callbacks"));
14
+ function _arrayLikeToArray(arr, len) {
15
+ if (len == null || len > arr.length) len = arr.length;
16
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
17
+ return arr2;
18
+ }
19
+ function _arrayWithoutHoles(arr) {
20
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
21
+ }
11
22
  function _classCallCheck(instance, Constructor) {
12
23
  if (!(instance instanceof Constructor)) {
13
24
  throw new TypeError("Cannot call a class as a function");
@@ -27,13 +38,34 @@ function _createClass(Constructor, protoProps, staticProps) {
27
38
  if (staticProps) _defineProperties(Constructor, staticProps);
28
39
  return Constructor;
29
40
  }
41
+ function _interopRequireDefault(obj) {
42
+ return obj && obj.__esModule ? obj : {
43
+ default: obj
44
+ };
45
+ }
46
+ function _iterableToArray(iter) {
47
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
48
+ }
49
+ function _nonIterableSpread() {
50
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
51
+ }
52
+ function _toConsumableArray(arr) {
53
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
54
+ }
55
+ function _unsupportedIterableToArray(o, minLen) {
56
+ if (!o) return;
57
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
58
+ var n = Object.prototype.toString.call(o).slice(8, -1);
59
+ if (n === "Object" && o.constructor) n = o.constructor.name;
60
+ if (n === "Map" || n === "Set") return Array.from(n);
61
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
62
+ }
30
63
  var ProofContext = /*#__PURE__*/ function() {
31
- function ProofContext(context, derived, variables, statementNodes) {
64
+ function ProofContext(context, derived, assertions) {
32
65
  _classCallCheck(this, ProofContext);
33
66
  this.context = context;
34
67
  this.derived = derived;
35
- this.variables = variables;
36
- this.statementNodes = statementNodes;
68
+ this.assertions = assertions;
37
69
  }
38
70
  _createClass(ProofContext, [
39
71
  {
@@ -49,88 +81,11 @@ var ProofContext = /*#__PURE__*/ function() {
49
81
  }
50
82
  },
51
83
  {
52
- key: "getVariables",
53
- value: function getVariables() {
54
- return this.variables;
55
- }
56
- },
57
- {
58
- key: "getStatementNodes",
59
- value: function getStatementNodes() {
60
- return this.statementNodes;
61
- }
62
- },
63
- {
64
- key: "getRules",
65
- value: function getRules() {
66
- return this.context.getRules();
67
- }
68
- },
69
- {
70
- key: "getTypes",
71
- value: function getTypes() {
72
- return this.context.getTypes();
73
- }
74
- },
75
- {
76
- key: "getAxioms",
77
- value: function getAxioms() {
78
- return this.context.getAxioms();
79
- }
80
- },
81
- {
82
- key: "getCombinators",
83
- value: function getCombinators() {
84
- return this.context.getCombinators();
85
- }
86
- },
87
- {
88
- key: "getConstructors",
89
- value: function getConstructors() {
90
- return this.context.getConstructors();
91
- }
92
- },
93
- {
94
- key: "findTypeByTypeName",
95
- value: function findTypeByTypeName(typeName) {
96
- return this.context.findTypeByTypeName(typeName);
97
- }
98
- },
99
- {
100
- key: "findRuleByReferenceName",
101
- value: function findRuleByReferenceName(referenceName) {
102
- return this.context.findRuleByReferenceName(referenceName);
103
- }
104
- },
105
- {
106
- key: "findVariableByVariableName",
107
- value: function findVariableByVariableName(variableName) {
108
- var name = variableName, variable = this.variables.find(function(variable) {
109
- var matches = variable.matchName(name);
110
- if (matches) {
111
- return true;
112
- }
113
- }) || this.context.findVariableByVariableName(variableName); ///
114
- return variable;
115
- }
116
- },
117
- {
118
- key: "isLabelPresent",
119
- value: function isLabelPresent(label) {
120
- return this.context.isLabelPresent(label);
121
- }
122
- },
123
- {
124
- key: "isTypePresentByTypeName",
125
- value: function isTypePresentByTypeName(typeName) {
126
- return this.context.isTypePresentByTypeName(typeName);
127
- }
128
- },
129
- {
130
- key: "isVariablePresentByVariableName",
131
- value: function isVariablePresentByVariableName(variableName) {
132
- var variable = this.findVariableByVariableName(variableName), variablePresent = variable !== null;
133
- return variablePresent;
84
+ key: "getAssertions",
85
+ value: function getAssertions() {
86
+ var assertions = this.context.getAssertions();
87
+ assertions = _toConsumableArray(assertions).concat(_toConsumableArray(this.assertions));
88
+ return assertions;
134
89
  }
135
90
  },
136
91
  {
@@ -143,69 +98,50 @@ var ProofContext = /*#__PURE__*/ function() {
143
98
  }
144
99
  },
145
100
  {
146
- key: "addAxiom",
147
- value: function addAxiom(axiom) {
148
- this.context.addAxiom(axiom);
149
- }
150
- },
151
- {
152
- key: "addVariable",
153
- value: function addVariable(variable) {
154
- this.variables.push(variable);
155
- }
156
- },
157
- {
158
- key: "addStatementNode",
159
- value: function addStatementNode(statementNode) {
160
- this.statementNodes.push(statementNode);
161
- }
162
- },
163
- {
164
- key: "trace",
165
- value: function trace(message, node) {
166
- this.context.trace(message, node);
101
+ key: "addAssertion",
102
+ value: function addAssertion(assertion) {
103
+ this.assertions.push(assertion);
167
104
  }
168
105
  },
169
106
  {
170
- key: "debug",
171
- value: function debug(message, node) {
172
- this.context.debug(message, node);
173
- }
174
- },
175
- {
176
- key: "info",
177
- value: function info(message, node) {
178
- this.context.info(message, node);
179
- }
180
- },
181
- {
182
- key: "warning",
183
- value: function warning(message, node) {
184
- this.context.warning(message, node);
107
+ key: "matchAssertion",
108
+ value: function matchAssertion(assertion) {
109
+ var assertionMatches;
110
+ var assertionB = assertion; ///
111
+ assertionMatches = this.assertions.some(function(assertion) {
112
+ var assertionA = assertion, matches = assertionA.match(assertionB);
113
+ if (matches) {
114
+ return true;
115
+ }
116
+ });
117
+ if (!assertionMatches) {
118
+ assertionMatches = this.context.matchAssertion(assertion);
119
+ }
120
+ return assertionMatches;
185
121
  }
186
- },
122
+ }
123
+ ], [
187
124
  {
188
- key: "error",
189
- value: function error(message, node) {
190
- this.context.error(message, node);
125
+ key: "fromFileContext",
126
+ value: function fromFileContext(fileContext) {
127
+ var context = fileContext, derived = false, assertions = [], proofContext = new ProofContext(context, derived, assertions);
128
+ return proofContext;
191
129
  }
192
130
  },
193
131
  {
194
- key: "fatal",
195
- value: function fatal(message, node) {
196
- this.context.fatal(message, node);
197
- }
198
- }
199
- ], [
200
- {
201
- key: "fromContext",
202
- value: function fromContext(context) {
203
- var derived = false, variables = [], statementNodes = [], proofContext = new ProofContext(context, derived, variables, statementNodes);
132
+ key: "fromProofContext",
133
+ value: function fromProofContext(proofContext) {
134
+ var context = proofContext, derived = false, assertions = [];
135
+ proofContext = new ProofContext(context, derived, assertions); ///
204
136
  return proofContext;
205
137
  }
206
138
  }
207
139
  ]);
208
140
  return ProofContext;
209
141
  }();
142
+ Object.assign(ProofContext.prototype, _file.default);
143
+ Object.assign(ProofContext.prototype, _logging.default);
144
+ Object.assign(ProofContext.prototype, _callbacks.default);
145
+ var _default = ProofContext;
210
146
 
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L3Byb29mLmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcm9vZkNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBkZXJpdmVkLCB2YXJpYWJsZXMsIHN0YXRlbWVudE5vZGVzKSB7XG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICB0aGlzLmRlcml2ZWQgPSBkZXJpdmVkO1xuICAgIHRoaXMudmFyaWFibGVzID0gdmFyaWFibGVzO1xuICAgIHRoaXMuc3RhdGVtZW50Tm9kZXMgPSBzdGF0ZW1lbnROb2RlcztcbiAgfVxuXG4gIGdldENvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dDtcbiAgfVxuXG4gIGlzRGVyaXZlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5kZXJpdmVkO1xuICB9XG5cbiAgZ2V0VmFyaWFibGVzKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFN0YXRlbWVudE5vZGVzKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudE5vZGVzO1xuICB9XG5cbiAgZ2V0UnVsZXMoKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZ2V0UnVsZXMoKTsgfVxuXG4gIGdldFR5cGVzKCkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmdldFR5cGVzKCk7IH1cblxuICBnZXRBeGlvbXMoKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZ2V0QXhpb21zKCk7IH1cblxuICBnZXRDb21iaW5hdG9ycygpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5nZXRDb21iaW5hdG9ycygpOyB9XG5cbiAgZ2V0Q29uc3RydWN0b3JzKCkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmdldENvbnN0cnVjdG9ycygpOyB9XG5cbiAgZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKTsgfVxuXG4gIGZpbmRSdWxlQnlSZWZlcmVuY2VOYW1lKHJlZmVyZW5jZU5hbWUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5maW5kUnVsZUJ5UmVmZXJlbmNlTmFtZShyZWZlcmVuY2VOYW1lKTsgfVxuXG4gIGZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSkge1xuICAgIGNvbnN0IG5hbWUgPSB2YXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHRoaXMudmFyaWFibGVzLmZpbmQoKHZhcmlhYmxlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVzID0gdmFyaWFibGUubWF0Y2hOYW1lKG5hbWUpO1xuXG4gICAgICAgICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCB0aGlzLmNvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTsgIC8vL1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgaXNMYWJlbFByZXNlbnQobGFiZWwpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5pc0xhYmVsUHJlc2VudChsYWJlbCk7IH1cblxuICBpc1R5cGVQcmVzZW50QnlUeXBlTmFtZSh0eXBlTmFtZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmlzVHlwZVByZXNlbnRCeVR5cGVOYW1lKHR5cGVOYW1lKTsgfVxuXG4gIGlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKSB7XG4gICAgY29uc3QgdmFyaWFibGUgPSB0aGlzLmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSksXG4gICAgICAgICAgdmFyaWFibGVQcmVzZW50ID0gKHZhcmlhYmxlICE9PSBudWxsKTtcblxuICAgIHJldHVybiB2YXJpYWJsZVByZXNlbnQ7XG4gIH1cblxuICBzZXREZXJpdmVkKGRlcml2ZWQpIHtcbiAgICBpZiAoZGVyaXZlZCkge1xuICAgICAgdGhpcy5zdGF0ZW1lbnROb2Rlcy5wb3AoKTtcbiAgICB9XG5cbiAgICB0aGlzLmRlcml2ZWQgPSBkZXJpdmVkO1xuICB9XG5cbiAgYWRkQXhpb20oYXhpb20pIHsgdGhpcy5jb250ZXh0LmFkZEF4aW9tKGF4aW9tKTsgfVxuXG4gIGFkZFZhcmlhYmxlKHZhcmlhYmxlKSB7XG4gICAgdGhpcy52YXJpYWJsZXMucHVzaCh2YXJpYWJsZSk7XG4gIH1cblxuICBhZGRTdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpIHtcbiAgICB0aGlzLnN0YXRlbWVudE5vZGVzLnB1c2goc3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICB0cmFjZShtZXNzYWdlLCBub2RlKSB7IHRoaXMuY29udGV4dC50cmFjZShtZXNzYWdlLCBub2RlKTsgfVxuXG4gIGRlYnVnKG1lc3NhZ2UsIG5vZGUpIHsgdGhpcy5jb250ZXh0LmRlYnVnKG1lc3NhZ2UsIG5vZGUpOyB9XG5cbiAgaW5mbyhtZXNzYWdlLCBub2RlKSB7IHRoaXMuY29udGV4dC5pbmZvKG1lc3NhZ2UsIG5vZGUpOyB9XG5cbiAgd2FybmluZyhtZXNzYWdlLCBub2RlKSB7IHRoaXMuY29udGV4dC53YXJuaW5nKG1lc3NhZ2UsIG5vZGUpOyB9XG5cbiAgZXJyb3IobWVzc2FnZSwgbm9kZSkgeyB0aGlzLmNvbnRleHQuZXJyb3IobWVzc2FnZSwgbm9kZSk7IH1cblxuICBmYXRhbChtZXNzYWdlLCBub2RlKSB7IHRoaXMuY29udGV4dC5mYXRhbChtZXNzYWdlLCBub2RlKTsgfVxuXG4gIHN0YXRpYyBmcm9tQ29udGV4dChjb250ZXh0KSB7XG4gICAgY29uc3QgZGVyaXZlZCA9IGZhbHNlLFxuICAgICAgICAgIHZhcmlhYmxlcyA9IFtdLFxuICAgICAgICAgIHN0YXRlbWVudE5vZGVzID0gW10sXG4gICAgICAgICAgcHJvb2ZDb250ZXh0ID0gbmV3IFByb29mQ29udGV4dChjb250ZXh0LCBkZXJpdmVkLCB2YXJpYWJsZXMsIHN0YXRlbWVudE5vZGVzKTtcblxuICAgIHJldHVybiBwcm9vZkNvbnRleHQ7XG4gIH1cbn1cbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiUHJvb2ZDb250ZXh0IiwiY29udGV4dCIsImRlcml2ZWQiLCJ2YXJpYWJsZXMiLCJzdGF0ZW1lbnROb2RlcyIsImdldENvbnRleHQiLCJpc0Rlcml2ZWQiLCJnZXRWYXJpYWJsZXMiLCJnZXRTdGF0ZW1lbnROb2RlcyIsImdldFJ1bGVzIiwiZ2V0VHlwZXMiLCJnZXRBeGlvbXMiLCJnZXRDb21iaW5hdG9ycyIsImdldENvbnN0cnVjdG9ycyIsImZpbmRUeXBlQnlUeXBlTmFtZSIsInR5cGVOYW1lIiwiZmluZFJ1bGVCeVJlZmVyZW5jZU5hbWUiLCJyZWZlcmVuY2VOYW1lIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWUiLCJuYW1lIiwidmFyaWFibGUiLCJmaW5kIiwibWF0Y2hlcyIsIm1hdGNoTmFtZSIsImlzTGFiZWxQcmVzZW50IiwibGFiZWwiLCJpc1R5cGVQcmVzZW50QnlUeXBlTmFtZSIsImlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUiLCJ2YXJpYWJsZVByZXNlbnQiLCJzZXREZXJpdmVkIiwicG9wIiwiYWRkQXhpb20iLCJheGlvbSIsImFkZFZhcmlhYmxlIiwicHVzaCIsImFkZFN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlIiwidHJhY2UiLCJtZXNzYWdlIiwibm9kZSIsImRlYnVnIiwiaW5mbyIsIndhcm5pbmciLCJlcnJvciIsImZhdGFsIiwiZnJvbUNvbnRleHQiLCJwcm9vZkNvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBRXFCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFOLElBQUEsQUFBTUEsNkJBQU47YUFBTUEsYUFDUEMsT0FBTyxFQUFFQyxPQUFPLEVBQUVDLFNBQVMsRUFBRUMs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
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L3Byb29mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZmlsZU1peGlucyBmcm9tIFwiLi4vbWl4aW5zL2ZpbGVcIjtcbmltcG9ydCBsb2dnaW5nTWl4aW5zIGZyb20gXCIuLi9taXhpbnMvbG9nZ2luZ1wiO1xuaW1wb3J0IGNhbGxiYWNrc01peGlucyBmcm9tIFwiLi4vbWl4aW5zL2NhbGxiYWNrc1wiO1xuXG5jbGFzcyBQcm9vZkNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBkZXJpdmVkLCBhc3NlcnRpb25zKSB7XG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICB0aGlzLmRlcml2ZWQgPSBkZXJpdmVkO1xuICAgIHRoaXMuYXNzZXJ0aW9ucyA9IGFzc2VydGlvbnM7XG4gIH1cblxuICBnZXRDb250ZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQ7XG4gIH1cblxuICBpc0Rlcml2ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVyaXZlZDtcbiAgfVxuXG4gIGdldEFzc2VydGlvbnMoKSB7XG4gICAgbGV0IGFzc2VydGlvbnMgPSB0aGlzLmNvbnRleHQuZ2V0QXNzZXJ0aW9ucygpO1xuXG4gICAgYXNzZXJ0aW9ucyA9IFtcbiAgICAgIC4uLmFzc2VydGlvbnMsXG4gICAgICAuLi50aGlzLmFzc2VydGlvbnNcbiAgICBdO1xuXG4gICAgcmV0dXJuIGFzc2VydGlvbnM7XG4gIH1cblxuICBzZXREZXJpdmVkKGRlcml2ZWQpIHtcbiAgICBpZiAoZGVyaXZlZCkge1xuICAgICAgdGhpcy5zdGF0ZW1lbnROb2Rlcy5wb3AoKTtcbiAgICB9XG5cbiAgICB0aGlzLmRlcml2ZWQgPSBkZXJpdmVkO1xuICB9XG5cbiAgYWRkQXNzZXJ0aW9uKGFzc2VydGlvbikge1xuICAgIHRoaXMuYXNzZXJ0aW9ucy5wdXNoKGFzc2VydGlvbik7XG4gIH1cblxuICBtYXRjaEFzc2VydGlvbihhc3NlcnRpb24pIHtcbiAgICBsZXQgYXNzZXJ0aW9uTWF0Y2hlcztcblxuICAgIGNvbnN0IGFzc2VydGlvbkIgPSBhc3NlcnRpb247IC8vL1xuXG4gICAgYXNzZXJ0aW9uTWF0Y2hlcyA9IHRoaXMuYXNzZXJ0aW9ucy5zb21lKChhc3NlcnRpb24pID0+IHtcbiAgICAgIGNvbnN0IGFzc2VydGlvbkEgPSBhc3NlcnRpb24sIC8vL1xuICAgICAgICAgICAgbWF0Y2hlcyA9IGFzc2VydGlvbkEubWF0Y2goYXNzZXJ0aW9uQik7XG5cbiAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFhc3NlcnRpb25NYXRjaGVzKSB7XG4gICAgICBhc3NlcnRpb25NYXRjaGVzID0gdGhpcy5jb250ZXh0Lm1hdGNoQXNzZXJ0aW9uKGFzc2VydGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzc2VydGlvbk1hdGNoZXM7XG4gIH1cblxuICBzdGF0aWMgZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgY29udGV4dCA9IGZpbGVDb250ZXh0LCAgLy8vXG4gICAgICAgICAgZGVyaXZlZCA9IGZhbHNlLFxuICAgICAgICAgIGFzc2VydGlvbnMgPSBbXSxcbiAgICAgICAgICBwcm9vZkNvbnRleHQgPSBuZXcgUHJvb2ZDb250ZXh0KGNvbnRleHQsIGRlcml2ZWQsIGFzc2VydGlvbnMpO1xuXG4gICAgcmV0dXJuIHByb29mQ29udGV4dDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUHJvb2ZDb250ZXh0KHByb29mQ29udGV4dCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSBwcm9vZkNvbnRleHQsICAvLy9cbiAgICAgICAgICBkZXJpdmVkID0gZmFsc2UsXG4gICAgICAgICAgYXNzZXJ0aW9ucyA9IFtdO1xuXG4gICAgcHJvb2ZDb250ZXh0ID0gbmV3IFByb29mQ29udGV4dChjb250ZXh0LCBkZXJpdmVkLCBhc3NlcnRpb25zKTsgIC8vL1xuXG4gICAgcmV0dXJuIHByb29mQ29udGV4dDtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKFByb29mQ29udGV4dC5wcm90b3R5cGUsIGZpbGVNaXhpbnMpO1xuT2JqZWN0LmFzc2lnbihQcm9vZkNvbnRleHQucHJvdG90eXBlLCBsb2dnaW5nTWl4aW5zKTtcbk9iamVjdC5hc3NpZ24oUHJvb2ZDb250ZXh0LnByb3RvdHlwZSwgY2FsbGJhY2tzTWl4aW5zKTtcblxuZXhwb3J0IGRlZmF1bHQgUHJvb2ZDb250ZXh0O1xuIl0sIm5hbWVzIjpbIlByb29mQ29udGV4dCIsImNvbnRleHQiLCJkZXJpdmVkIiwiYXNzZXJ0aW9ucyIsImdldENvbnRleHQiLCJpc0Rlcml2ZWQiLCJnZXRBc3NlcnRpb25zIiwic2V0RGVyaXZlZCIsInN0YXRlbWVudE5vZGVzIiwicG9wIiwiYWRkQXNzZXJ0aW9uIiwiYXNzZXJ0aW9uIiwicHVzaCIsIm1hdGNoQXNzZXJ0aW9uIiwiYXNzZXJ0aW9uTWF0Y2hlcyIsImFzc2VydGlvbkIiLCJzb21lIiwiYXNzZXJ0aW9uQSIsIm1hdGNoZXMiLCJtYXRjaCIsImZyb21GaWxlQ29udGV4dCIsImZpbGVDb250ZXh0IiwicHJvb2ZDb250ZXh0IiwiZnJvbVByb29mQ29udGV4dCIsIk9iamVjdCIsImFzc2lnbiIsInByb3RvdHlwZSIsImZpbGVNaXhpbnMiLCJsb2dnaW5nTWl4aW5zIiwiY2FsbGJhY2tzTWl4aW5zIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkF5RkE7OztlQUFBOzs7eURBdkZ1Qjs0REFDRzs4REFDRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNUIsSUFBQSxBQUFNQSw2QkErRUgsQUEvRUg7YUFBTUEsYUFDUUMsT0FBTyxFQUFFQyxPQUFPLEVBQUVDLFVBQVU7OEJBRHBDSDtRQUVGLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTs7aUJBSmhCSDs7WUFPSkksS0FBQUE7bUJBQUFBLFNBQUFBLGFBQWE7Z0JBQ1gsT0FBTyxJQUFJLENBQUNILE9BQU87WUFDckI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUEsWUFBWTtnQkFDVixPQUFPLElBQUksQ0FBQ0gsT0FBTztZQUNyQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQSxnQkFBZ0I7Z0JBQ2QsSUFBSUgsYUFBYSxJQUFJLENBQUNGLE9BQU8sQ0FBQ0ssYUFBYTtnQkFFM0NILGFBQWEsQUFDWCxtQkFBR0EsbUJBQ0gsbUJBQUcsSUFBSSxDQUFDQSxVQUFVO2dCQUdwQixPQUFPQTtZQUNUOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBLFdBQVdMLE9BQU8sRUFBRTtnQkFDbEIsSUFBSUEsU0FBUztvQkFDWCxJQUFJLENBQUNNLGNBQWMsQ0FBQ0MsR0FBRztnQkFDekIsQ0FBQztnQkFFRCxJQUFJLENBQUNQLE9BQU8sR0FBR0E7WUFDakI7OztZQUVBUSxLQUFBQTttQkFBQUEsU0FBQUEsYUFBYUMsU0FBUyxFQUFFO2dCQUN0QixJQUFJLENBQUNSLFVBQVUsQ0FBQ1MsSUFBSSxDQUFDRDtZQUN2Qjs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQSxlQUFlRixTQUFTLEVBQUU7Z0JBQ3hCLElBQUlHO2dCQUVKLElBQU1DLGFBQWFKLFdBQVcsR0FBRztnQkFFakNHLG1CQUFtQixJQUFJLENBQUNYLFVBQVUsQ0FBQ2EsSUFBSSxDQUFDLFNBQUNMLFdBQWM7b0JBQ3JELElBQU1NLGFBQWFOLFdBQ2JPLFVBQVVELFdBQVdFLEtBQUssQ0FBQ0o7b0JBRWpDLElBQUlHLFNBQVM7d0JBQ1gsT0FBTyxJQUFJO29CQUNiLENBQUM7Z0JBQ0g7Z0JBRUEsSUFBSSxDQUFDSixrQkFBa0I7b0JBQ3JCQSxtQkFBbUIsSUFBSSxDQUFDYixPQUFPLENBQUNZLGNBQWMsQ0FBQ0Y7Z0JBQ2pELENBQUM7Z0JBRUQsT0FBT0c7WUFDVDs7OztZQUVPTSxLQUFBQTttQkFBUCxTQUFPQSxnQkFBZ0JDLFdBQVcsRUFBRTtnQkFDbEMsSUFBTXBCLFVBQVVvQixhQUNWbkIsVUFBVSxLQUFLLEVBQ2ZDLGFBQWEsRUFBRSxFQUNmbUIsZUFBZSxJQS9EbkJ0QixhQStEb0NDLFNBQVNDLFNBQVNDO2dCQUV4RCxPQUFPbUI7WUFDVDs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLGlCQUFpQkQsWUFBWSxFQUFFO2dCQUNwQyxJQUFNckIsVUFBVXFCLGNBQ1ZwQixVQUFVLEtBQUssRUFDZkMsYUFBYSxFQUFFO2dCQUVyQm1CLGVBQWUsSUF6RWJ0QixhQXlFOEJDLFNBQVNDLFNBQVNDLGFBQWMsR0FBRztnQkFFbkUsT0FBT21CO1lBQ1Q7OztXQTVFSXRCOztBQStFTndCLE9BQU9DLE1BQU0sQ0FBQ3pCLGFBQWEwQixTQUFTLEVBQUVDLGFBQVU7QUFDaERILE9BQU9DLE1BQU0sQ0FBQ3pCLGFBQWEwQixTQUFTLEVBQUVFLGdCQUFhO0FBQ25ESixPQUFPQyxNQUFNLENBQUN6QixhQUFhMEIsU0FBUyxFQUFFRyxrQkFBZTtJQUVyRCxXQUFlN0IifQ==