occam-verify-cli 1.0.382 → 1.0.385

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 (227) hide show
  1. package/lib/action/verify.js +2 -1
  2. package/lib/context/file.js +2 -2
  3. package/lib/context/release.js +2 -2
  4. package/lib/mixins/statement/verify.js +3 -3
  5. package/lib/mixins/step/unify.js +4 -4
  6. package/lib/mixins/term/verify.js +4 -4
  7. package/lib/ontology/assertion/contained.js +316 -0
  8. package/lib/ontology/assertion/defined.js +290 -0
  9. package/lib/ontology/assertion/property.js +271 -0
  10. package/lib/ontology/assertion/satisfies.js +254 -0
  11. package/lib/ontology/assertion/subproof.js +186 -0
  12. package/lib/ontology/assertion/type.js +252 -0
  13. package/lib/{dom → ontology}/axiom.js +3 -3
  14. package/lib/{dom → ontology}/combinator/bracketed.js +4 -4
  15. package/lib/ontology/combinator.js +141 -0
  16. package/lib/ontology/conclusion.js +172 -0
  17. package/lib/{dom → ontology}/conjecture.js +3 -3
  18. package/lib/{dom → ontology}/constructor/bracketed.js +5 -5
  19. package/lib/ontology/constructor.js +171 -0
  20. package/lib/ontology/declaration/combinator.js +168 -0
  21. package/lib/ontology/declaration/complexType.js +346 -0
  22. package/lib/ontology/declaration/constructor.js +199 -0
  23. package/lib/ontology/declaration/metavariable.js +209 -0
  24. package/lib/ontology/declaration/simpleType.js +243 -0
  25. package/lib/ontology/declaration/typePrefix.js +181 -0
  26. package/lib/ontology/declaration/variable.js +197 -0
  27. package/lib/ontology/declaration.js +360 -0
  28. package/lib/ontology/deduction.js +186 -0
  29. package/lib/ontology/derivation.js +155 -0
  30. package/lib/ontology/equality.js +288 -0
  31. package/lib/{dom → ontology}/error.js +3 -3
  32. package/lib/ontology/frame.js +362 -0
  33. package/lib/ontology/hypothesis.js +190 -0
  34. package/lib/ontology/judgement.js +241 -0
  35. package/lib/ontology/label.js +199 -0
  36. package/lib/{dom → ontology}/lemma.js +3 -3
  37. package/lib/{dom → ontology}/metaLemma.js +3 -3
  38. package/lib/{dom → ontology}/metaType.js +3 -3
  39. package/lib/{dom → ontology}/metatheorem.js +3 -3
  40. package/lib/ontology/metavariable.js +504 -0
  41. package/lib/{dom → ontology}/parameter.js +3 -3
  42. package/lib/ontology/premise.js +271 -0
  43. package/lib/ontology/procedureCall.js +243 -0
  44. package/lib/{dom → ontology}/procedureReference.js +3 -3
  45. package/lib/{dom → ontology}/proof.js +4 -4
  46. package/lib/ontology/property.js +166 -0
  47. package/lib/ontology/propertyRelation.js +202 -0
  48. package/lib/ontology/reference.js +293 -0
  49. package/lib/ontology/rule.js +375 -0
  50. package/lib/ontology/section.js +255 -0
  51. package/lib/ontology/signature.js +220 -0
  52. package/lib/{dom → ontology}/statement.js +3 -3
  53. package/lib/ontology/step.js +283 -0
  54. package/lib/ontology/subDerivation.js +147 -0
  55. package/lib/ontology/subproof.js +266 -0
  56. package/lib/ontology/substitution/frame.js +216 -0
  57. package/lib/{dom → ontology}/substitution/reference.js +3 -3
  58. package/lib/{dom → ontology}/substitution/statement.js +3 -3
  59. package/lib/ontology/substitution/term.js +230 -0
  60. package/lib/ontology/substitution.js +207 -0
  61. package/lib/ontology/supposition.js +283 -0
  62. package/lib/ontology/term.js +339 -0
  63. package/lib/{dom → ontology}/theorem.js +3 -3
  64. package/lib/ontology/topLevelAssertion.js +432 -0
  65. package/lib/ontology/topLevelMetaAssertion.js +235 -0
  66. package/lib/ontology/type.js +556 -0
  67. package/lib/ontology/typePrefix.js +99 -0
  68. package/lib/ontology/variable.js +331 -0
  69. package/lib/ontology.js +27 -0
  70. package/lib/preamble.js +60 -60
  71. package/lib/prepare.js +25 -0
  72. package/lib/unifier/intrinsicLevel.js +3 -3
  73. package/lib/unifier/metaLevel.js +7 -7
  74. package/lib/unifier/metavariable.js +3 -3
  75. package/lib/unifier/statementWithCombinator.js +5 -5
  76. package/lib/unifier/termWithConstructor.js +3 -3
  77. package/lib/utilities/brackets.js +5 -5
  78. package/lib/utilities/context.js +12 -12
  79. package/lib/utilities/fileSystem.js +2 -2
  80. package/lib/utilities/json.js +30 -30
  81. package/lib/utilities/node.js +7 -7
  82. package/lib/utilities/release.js +12 -4
  83. package/lib/utilities/releaseContext.js +1 -1
  84. package/lib/utilities/substitutions.js +6 -6
  85. package/lib/utilities/type.js +2 -2
  86. package/lib/verifier/combinator.js +4 -4
  87. package/lib/verifier/constructor.js +3 -3
  88. package/lib/verifier/topLevel.js +18 -18
  89. package/package.json +1 -1
  90. package/src/action/verify.js +2 -0
  91. package/src/context/file.js +1 -1
  92. package/src/context/release.js +1 -1
  93. package/src/mixins/statement/verify.js +2 -2
  94. package/src/mixins/step/unify.js +3 -3
  95. package/src/mixins/term/verify.js +3 -3
  96. package/src/{dom → ontology}/assertion/contained.js +4 -4
  97. package/src/{dom → ontology}/assertion/defined.js +6 -6
  98. package/src/{dom → ontology}/assertion/property.js +5 -5
  99. package/src/{dom → ontology}/assertion/satisfies.js +5 -5
  100. package/src/{dom → ontology}/assertion/subproof.js +4 -4
  101. package/src/{dom → ontology}/assertion/type.js +5 -5
  102. package/src/{dom → ontology}/axiom.js +2 -2
  103. package/src/{dom → ontology}/combinator/bracketed.js +4 -4
  104. package/src/{dom → ontology}/combinator.js +4 -4
  105. package/src/{dom → ontology}/conclusion.js +4 -4
  106. package/src/{dom → ontology}/conjecture.js +2 -2
  107. package/src/{dom → ontology}/constructor/bracketed.js +5 -5
  108. package/src/{dom → ontology}/constructor.js +5 -5
  109. package/src/{dom → ontology}/declaration/combinator.js +4 -4
  110. package/src/{dom → ontology}/declaration/complexType.js +4 -4
  111. package/src/{dom → ontology}/declaration/constructor.js +4 -4
  112. package/src/{dom → ontology}/declaration/metavariable.js +5 -5
  113. package/src/{dom → ontology}/declaration/simpleType.js +4 -4
  114. package/src/{dom → ontology}/declaration/typePrefix.js +4 -4
  115. package/src/{dom → ontology}/declaration/variable.js +4 -4
  116. package/src/{dom → ontology}/declaration.js +5 -5
  117. package/src/{dom → ontology}/deduction.js +4 -4
  118. package/src/{dom → ontology}/derivation.js +4 -4
  119. package/src/{dom → ontology}/equality.js +6 -6
  120. package/src/{dom → ontology}/error.js +2 -2
  121. package/src/{dom → ontology}/frame.js +6 -6
  122. package/src/{dom → ontology}/hypothesis.js +5 -6
  123. package/src/{dom → ontology}/judgement.js +5 -5
  124. package/src/{dom → ontology}/label.js +4 -4
  125. package/src/{dom → ontology}/lemma.js +2 -2
  126. package/src/{dom → ontology}/metaLemma.js +2 -2
  127. package/src/{dom → ontology}/metaType.js +2 -2
  128. package/src/{dom → ontology}/metatheorem.js +2 -2
  129. package/src/{dom → ontology}/metavariable.js +8 -8
  130. package/src/{dom → ontology}/parameter.js +2 -2
  131. package/src/{dom → ontology}/premise.js +5 -5
  132. package/src/{dom → ontology}/procedureCall.js +5 -5
  133. package/src/{dom → ontology}/procedureReference.js +2 -2
  134. package/src/{dom → ontology}/proof.js +4 -4
  135. package/src/{dom → ontology}/property.js +4 -4
  136. package/src/{dom → ontology}/propertyRelation.js +4 -4
  137. package/src/{dom → ontology}/reference.js +6 -6
  138. package/src/{dom → ontology}/rule.js +7 -7
  139. package/src/{dom → ontology}/section.js +8 -8
  140. package/src/{dom → ontology}/signature.js +4 -4
  141. package/src/{dom → ontology}/statement.js +2 -2
  142. package/src/{dom → ontology}/step.js +4 -4
  143. package/src/{dom → ontology}/subDerivation.js +4 -4
  144. package/src/{dom → ontology}/subproof.js +5 -5
  145. package/src/{dom → ontology}/substitution/frame.js +4 -4
  146. package/src/{dom → ontology}/substitution/reference.js +2 -2
  147. package/src/{dom → ontology}/substitution/statement.js +2 -2
  148. package/src/{dom → ontology}/substitution/term.js +5 -5
  149. package/src/{dom → ontology}/supposition.js +5 -5
  150. package/src/{dom → ontology}/term.js +6 -6
  151. package/src/{dom → ontology}/theorem.js +2 -2
  152. package/src/{dom → ontology}/topLevelAssertion.js +6 -6
  153. package/src/{dom → ontology}/topLevelMetaAssertion.js +2 -2
  154. package/src/{dom → ontology}/type.js +4 -4
  155. package/src/{dom → ontology}/typePrefix.js +3 -5
  156. package/src/{dom → ontology}/variable.js +6 -6
  157. package/src/ontology.js +13 -0
  158. package/src/preamble.js +59 -59
  159. package/src/{configure.js → prepare.js} +1 -1
  160. package/src/unifier/intrinsicLevel.js +2 -2
  161. package/src/unifier/metaLevel.js +6 -6
  162. package/src/unifier/metavariable.js +2 -2
  163. package/src/unifier/statementWithCombinator.js +4 -4
  164. package/src/unifier/termWithConstructor.js +2 -2
  165. package/src/utilities/brackets.js +4 -4
  166. package/src/utilities/context.js +11 -11
  167. package/src/utilities/fileSystem.js +1 -1
  168. package/src/utilities/json.js +29 -29
  169. package/src/utilities/node.js +6 -6
  170. package/src/utilities/release.js +1 -1
  171. package/src/utilities/releaseContext.js +3 -3
  172. package/src/utilities/substitutions.js +5 -5
  173. package/src/utilities/type.js +1 -1
  174. package/src/verifier/combinator.js +3 -3
  175. package/src/verifier/constructor.js +2 -2
  176. package/src/verifier/topLevel.js +17 -17
  177. package/verify.js +2 -2
  178. package/lib/configure.js +0 -25
  179. package/lib/dom/assertion/contained.js +0 -316
  180. package/lib/dom/assertion/defined.js +0 -290
  181. package/lib/dom/assertion/property.js +0 -271
  182. package/lib/dom/assertion/satisfies.js +0 -254
  183. package/lib/dom/assertion/subproof.js +0 -186
  184. package/lib/dom/assertion/type.js +0 -252
  185. package/lib/dom/combinator.js +0 -141
  186. package/lib/dom/conclusion.js +0 -172
  187. package/lib/dom/constructor.js +0 -171
  188. package/lib/dom/declaration/combinator.js +0 -168
  189. package/lib/dom/declaration/complexType.js +0 -346
  190. package/lib/dom/declaration/constructor.js +0 -199
  191. package/lib/dom/declaration/metavariable.js +0 -209
  192. package/lib/dom/declaration/simpleType.js +0 -243
  193. package/lib/dom/declaration/typePrefix.js +0 -181
  194. package/lib/dom/declaration/variable.js +0 -197
  195. package/lib/dom/declaration.js +0 -360
  196. package/lib/dom/deduction.js +0 -186
  197. package/lib/dom/derivation.js +0 -155
  198. package/lib/dom/equality.js +0 -288
  199. package/lib/dom/frame.js +0 -362
  200. package/lib/dom/hypothesis.js +0 -191
  201. package/lib/dom/judgement.js +0 -241
  202. package/lib/dom/label.js +0 -199
  203. package/lib/dom/metavariable.js +0 -504
  204. package/lib/dom/premise.js +0 -271
  205. package/lib/dom/procedureCall.js +0 -243
  206. package/lib/dom/property.js +0 -166
  207. package/lib/dom/propertyRelation.js +0 -202
  208. package/lib/dom/reference.js +0 -293
  209. package/lib/dom/rule.js +0 -375
  210. package/lib/dom/section.js +0 -255
  211. package/lib/dom/signature.js +0 -220
  212. package/lib/dom/step.js +0 -283
  213. package/lib/dom/subDerivation.js +0 -147
  214. package/lib/dom/subproof.js +0 -266
  215. package/lib/dom/substitution/frame.js +0 -216
  216. package/lib/dom/substitution/term.js +0 -230
  217. package/lib/dom/substitution.js +0 -207
  218. package/lib/dom/supposition.js +0 -283
  219. package/lib/dom/term.js +0 -339
  220. package/lib/dom/topLevelAssertion.js +0 -432
  221. package/lib/dom/topLevelMetaAssertion.js +0 -235
  222. package/lib/dom/type.js +0 -556
  223. package/lib/dom/typePrefix.js +0 -100
  224. package/lib/dom/variable.js +0 -331
  225. package/lib/dom.js +0 -27
  226. package/src/dom.js +0 -13
  227. /package/src/{dom → ontology}/substitution.js +0 -0
@@ -1,266 +0,0 @@
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 _dom = /*#__PURE__*/ _interop_require_wildcard(require("../dom"));
12
- var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
13
- var _substitutions = /*#__PURE__*/ _interop_require_default(require("../substitutions"));
14
- var _subproof = require("../utilities/subproof");
15
- function _array_like_to_array(arr, len) {
16
- if (len == null || len > arr.length) len = arr.length;
17
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
18
- return arr2;
19
- }
20
- function _array_without_holes(arr) {
21
- if (Array.isArray(arr)) return _array_like_to_array(arr);
22
- }
23
- function _class_call_check(instance, Constructor) {
24
- if (!(instance instanceof Constructor)) {
25
- throw new TypeError("Cannot call a class as a function");
26
- }
27
- }
28
- function _defineProperties(target, props) {
29
- for(var i = 0; i < props.length; i++){
30
- var descriptor = props[i];
31
- descriptor.enumerable = descriptor.enumerable || false;
32
- descriptor.configurable = true;
33
- if ("value" in descriptor) descriptor.writable = true;
34
- Object.defineProperty(target, descriptor.key, descriptor);
35
- }
36
- }
37
- function _create_class(Constructor, protoProps, staticProps) {
38
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
39
- if (staticProps) _defineProperties(Constructor, staticProps);
40
- return Constructor;
41
- }
42
- function _define_property(obj, key, value) {
43
- if (key in obj) {
44
- Object.defineProperty(obj, key, {
45
- value: value,
46
- enumerable: true,
47
- configurable: true,
48
- writable: true
49
- });
50
- } else {
51
- obj[key] = value;
52
- }
53
- return obj;
54
- }
55
- function _interop_require_default(obj) {
56
- return obj && obj.__esModule ? obj : {
57
- default: obj
58
- };
59
- }
60
- function _getRequireWildcardCache(nodeInterop) {
61
- if (typeof WeakMap !== "function") return null;
62
- var cacheBabelInterop = new WeakMap();
63
- var cacheNodeInterop = new WeakMap();
64
- return (_getRequireWildcardCache = function(nodeInterop) {
65
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
66
- })(nodeInterop);
67
- }
68
- function _interop_require_wildcard(obj, nodeInterop) {
69
- if (!nodeInterop && obj && obj.__esModule) {
70
- return obj;
71
- }
72
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
73
- return {
74
- default: obj
75
- };
76
- }
77
- var cache = _getRequireWildcardCache(nodeInterop);
78
- if (cache && cache.has(obj)) {
79
- return cache.get(obj);
80
- }
81
- var newObj = {
82
- __proto__: null
83
- };
84
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
85
- for(var key in obj){
86
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
87
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
88
- if (desc && (desc.get || desc.set)) {
89
- Object.defineProperty(newObj, key, desc);
90
- } else {
91
- newObj[key] = obj[key];
92
- }
93
- }
94
- }
95
- newObj.default = obj;
96
- if (cache) {
97
- cache.set(obj, newObj);
98
- }
99
- return newObj;
100
- }
101
- function _iterable_to_array(iter) {
102
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
103
- }
104
- function _non_iterable_spread() {
105
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
106
- }
107
- function _to_consumable_array(arr) {
108
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
109
- }
110
- function _unsupported_iterable_to_array(o, minLen) {
111
- if (!o) return;
112
- if (typeof o === "string") return _array_like_to_array(o, minLen);
113
- var n = Object.prototype.toString.call(o).slice(8, -1);
114
- if (n === "Object" && o.constructor) n = o.constructor.name;
115
- if (n === "Map" || n === "Set") return Array.from(n);
116
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
117
- }
118
- var _Subproof;
119
- var _default = (0, _dom.domAssigned)((_Subproof = /*#__PURE__*/ function() {
120
- function Subproof(node, string, suppositions, subDerivation) {
121
- _class_call_check(this, Subproof);
122
- this.node = node;
123
- this.string = string;
124
- this.suppositions = suppositions;
125
- this.subDerivation = subDerivation;
126
- }
127
- _create_class(Subproof, [
128
- {
129
- key: "getNode",
130
- value: function getNode() {
131
- return this.node;
132
- }
133
- },
134
- {
135
- key: "getString",
136
- value: function getString() {
137
- return this.string;
138
- }
139
- },
140
- {
141
- key: "getSuppositions",
142
- value: function getSuppositions() {
143
- return this.suppositions;
144
- }
145
- },
146
- {
147
- key: "getSubDerivation",
148
- value: function getSubDerivation() {
149
- return this.subDerivation;
150
- }
151
- },
152
- {
153
- key: "getLastStep",
154
- value: function getLastStep() {
155
- return this.subDerivation.getLastStep();
156
- }
157
- },
158
- {
159
- key: "getStatements",
160
- value: function getStatements() {
161
- var lastStep = this.getLastStep(), suppositionStatements = this.suppositions.map(function(supposition) {
162
- var suppositionStatement = supposition.getStatement();
163
- return suppositionStatement;
164
- }), lastStepStatement = lastStep.getStatement(), statements = _to_consumable_array(suppositionStatements).concat([
165
- lastStepStatement
166
- ]);
167
- return statements;
168
- }
169
- },
170
- {
171
- key: "isStep",
172
- value: function isStep() {
173
- var sStep = false;
174
- return sStep;
175
- }
176
- },
177
- {
178
- key: "unify",
179
- value: function unify(substitutions, context) {
180
- var unifies;
181
- unifies = true; ///
182
- return unifies;
183
- }
184
- },
185
- {
186
- key: "verify",
187
- value: function verify(substitutions, assignments, context) {
188
- var subproofVerifies = false;
189
- var localContext = _local.default.fromContext(context); ///
190
- context = localContext; ///
191
- var suppositionsVerify = this.suppositions.every(function(supposition) {
192
- var suppositionVerifies = supposition.verify(context);
193
- if (suppositionVerifies) {
194
- return true;
195
- }
196
- });
197
- if (suppositionsVerify) {
198
- var subDerivationVerifies = this.subDerivation.verify(substitutions, context);
199
- if (subDerivationVerifies) {
200
- subproofVerifies = true;
201
- }
202
- }
203
- return subproofVerifies;
204
- }
205
- },
206
- {
207
- key: "equateWithStatement",
208
- value: function equateWithStatement(statement, context) {
209
- var statementUnifies = false;
210
- return statementUnifies;
211
- }
212
- },
213
- {
214
- key: "unifyWithSatisfiesAssertion",
215
- value: function unifyWithSatisfiesAssertion(satisfiesAssertion, context) {
216
- var unifiesWithSatisfiesAssertion = false;
217
- var subproofString = this.string, satisfiesAssertionString = satisfiesAssertion.getString();
218
- context.trace("Unifying the '".concat(subproofString, "' subproof with the '").concat(satisfiesAssertionString, "' satisfies assertion..."));
219
- var reference = satisfiesAssertion.getReference(), axiom = context.findAxiomByReference(reference);
220
- if (axiom !== null) {
221
- var axiomSatisfiable = axiom.isSatisfiable();
222
- if (axiomSatisfiable) {
223
- var subproof = this, substitutions = _substitutions.default.fromNothing(), statementUnifies = axiom.unifySubproof(subproof, substitutions, context);
224
- if (statementUnifies) {
225
- var substitutionsCompare = satisfiesAssertion.compareSubstitutions(substitutions, context);
226
- if (substitutionsCompare) {
227
- unifiesWithSatisfiesAssertion = true;
228
- }
229
- }
230
- }
231
- }
232
- if (unifiesWithSatisfiesAssertion) {
233
- context.debug("...unified the '".concat(subproofString, "' subproof with the '").concat(satisfiesAssertionString, "' satisfies assertion."));
234
- }
235
- return unifiesWithSatisfiesAssertion;
236
- }
237
- }
238
- ], [
239
- {
240
- key: "fromStepOrSubproofNode",
241
- value: function fromStepOrSubproofNode(sStepOrSubproofNode, context) {
242
- var subproof = null;
243
- var subproofNode = sStepOrSubproofNode.isSubproofNode();
244
- if (subproofNode) {
245
- var subproofNode1 = sStepOrSubproofNode, suppositions = suppositionsFromSubproofNode(subproofNode1, context), subDerivation = subDerivationFromSubproofNode(subproofNode1, context), subproofString = (0, _subproof.subproofStringFromSubproofNode)(subproofNode1, context), node = subproofNode1, string = subproofString; ///
246
- subproof = new Subproof(node, string, suppositions, subDerivation);
247
- }
248
- return subproof;
249
- }
250
- }
251
- ]);
252
- return Subproof;
253
- }(), _define_property(_Subproof, "name", "Subproof"), _Subproof));
254
- function suppositionsFromSubproofNode(subproofNode, context) {
255
- var Supposition = _dom.default.Supposition, suppositionNodes = subproofNode.getSuppositionNodes(), suppositions = suppositionNodes.map(function(suppositionNode) {
256
- var supposition = Supposition.fromSuppositionNode(suppositionNode, context);
257
- return supposition;
258
- });
259
- return suppositions;
260
- }
261
- function subDerivationFromSubproofNode(subproofNode, context) {
262
- var SubDerivation = _dom.default.SubDerivation, subDerivationNode = subproofNode.getSubDerivationNode(), subDerivation = SubDerivation.fromSubDerivationNode(subDerivationNode, context);
263
- return subDerivation;
264
- }
265
-
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vc3VicHJvb2YuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbFwiO1xuaW1wb3J0IFN1YnN0aXR1dGlvbnMgZnJvbSBcIi4uL3N1YnN0aXR1dGlvbnNcIjtcblxuaW1wb3J0IHsgZG9tQXNzaWduZWQgfSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgeyBzdWJwcm9vZlN0cmluZ0Zyb21TdWJwcm9vZk5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N1YnByb29mXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIFN1YnByb29mIHtcbiAgY29uc3RydWN0b3Iobm9kZSwgc3RyaW5nLCBzdXBwb3NpdGlvbnMsIHN1YkRlcml2YXRpb24pIHtcbiAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMuc3VwcG9zaXRpb25zID0gc3VwcG9zaXRpb25zO1xuICAgIHRoaXMuc3ViRGVyaXZhdGlvbiA9IHN1YkRlcml2YXRpb247XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0U3VwcG9zaXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnN1cHBvc2l0aW9ucztcbiAgfVxuXG4gIGdldFN1YkRlcml2YXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ViRGVyaXZhdGlvbjtcbiAgfVxuXG4gIGdldExhc3RTdGVwKCkgeyByZXR1cm4gdGhpcy5zdWJEZXJpdmF0aW9uLmdldExhc3RTdGVwKCk7IH1cblxuICBnZXRTdGF0ZW1lbnRzKCkge1xuICAgIGNvbnN0IGxhc3RTdGVwID0gdGhpcy5nZXRMYXN0U3RlcCgpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uU3RhdGVtZW50cyA9IHRoaXMuc3VwcG9zaXRpb25zLm1hcCgoc3VwcG9zaXRpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN1cHBvc2l0aW9uU3RhdGVtZW50ID0gc3VwcG9zaXRpb24uZ2V0U3RhdGVtZW50KCk7XG5cbiAgICAgICAgICAgIHJldHVybiBzdXBwb3NpdGlvblN0YXRlbWVudDtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBsYXN0U3RlcFN0YXRlbWVudCA9IGxhc3RTdGVwLmdldFN0YXRlbWVudCgpLFxuICAgICAgICAgIHN0YXRlbWVudHMgPSBbXG4gICAgICAgICAgICAuLi5zdXBwb3NpdGlvblN0YXRlbWVudHMsXG4gICAgICAgICAgICBsYXN0U3RlcFN0YXRlbWVudFxuICAgICAgICAgIF07XG5cbiAgICByZXR1cm4gc3RhdGVtZW50cztcbiAgfVxuXG4gIGlzU3RlcCgpIHtcbiAgICBjb25zdCBzU3RlcCA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIHNTdGVwO1xuICB9XG5cbiAgdW5pZnkoc3Vic3RpdHV0aW9ucywgY29udGV4dCkge1xuICAgIGxldCB1bmlmaWVzO1xuXG4gICAgdW5pZmllcyA9IHRydWU7IC8vL1xuXG4gICAgcmV0dXJuIHVuaWZpZXM7XG4gIH1cblxuICB2ZXJpZnkoc3Vic3RpdHV0aW9ucywgYXNzaWdubWVudHMsIGNvbnRleHQpIHtcbiAgICBsZXQgc3VicHJvb2ZWZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21Db250ZXh0KGNvbnRleHQpOyAgLy8vXG5cbiAgICBjb250ZXh0ID0gbG9jYWxDb250ZXh0OyAvLy9cblxuICAgIGNvbnN0IHN1cHBvc2l0aW9uc1ZlcmlmeSA9IHRoaXMuc3VwcG9zaXRpb25zLmV2ZXJ5KChzdXBwb3NpdGlvbikgPT4ge1xuICAgICAgY29uc3Qgc3VwcG9zaXRpb25WZXJpZmllcyA9IHN1cHBvc2l0aW9uLnZlcmlmeShjb250ZXh0KTtcblxuICAgICAgaWYgKHN1cHBvc2l0aW9uVmVyaWZpZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoc3VwcG9zaXRpb25zVmVyaWZ5KSB7XG4gICAgICBjb25zdCBzdWJEZXJpdmF0aW9uVmVyaWZpZXMgPSB0aGlzLnN1YkRlcml2YXRpb24udmVyaWZ5KHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpO1xuXG4gICAgICBpZiAoc3ViRGVyaXZhdGlvblZlcmlmaWVzKSB7XG4gICAgICAgIHN1YnByb29mVmVyaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdWJwcm9vZlZlcmlmaWVzO1xuICB9XG5cbiAgZXF1YXRlV2l0aFN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRVbmlmaWVzID0gZmFsc2U7XG5cbiAgICByZXR1cm4gc3RhdGVtZW50VW5pZmllcztcbiAgfVxuXG4gIHVuaWZ5V2l0aFNhdGlzZmllc0Fzc2VydGlvbihzYXRpc2ZpZXNBc3NlcnRpb24sIGNvbnRleHQpIHtcbiAgICBsZXQgdW5pZmllc1dpdGhTYXRpc2ZpZXNBc3NlcnRpb24gPSBmYWxzZTtcblxuICAgIGNvbnN0IHN1YnByb29mU3RyaW5nID0gdGhpcy5zdHJpbmcsIC8vL1xuICAgICAgICAgIHNhdGlzZmllc0Fzc2VydGlvblN0cmluZyA9IHNhdGlzZmllc0Fzc2VydGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdWJwcm9vZlN0cmluZ30nIHN1YnByb29mIHdpdGggdGhlICcke3NhdGlzZmllc0Fzc2VydGlvblN0cmluZ30nIHNhdGlzZmllcyBhc3NlcnRpb24uLi5gKVxuXG4gICAgY29uc3QgcmVmZXJlbmNlID0gc2F0aXNmaWVzQXNzZXJ0aW9uLmdldFJlZmVyZW5jZSgpLFxuICAgICAgICAgIGF4aW9tID0gY29udGV4dC5maW5kQXhpb21CeVJlZmVyZW5jZShyZWZlcmVuY2UpO1xuXG4gICAgaWYgKGF4aW9tICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBheGlvbVNhdGlzZmlhYmxlID0gYXhpb20uaXNTYXRpc2ZpYWJsZSgpO1xuXG4gICAgICBpZiAoYXhpb21TYXRpc2ZpYWJsZSkge1xuICAgICAgICBjb25zdCBzdWJwcm9vZiA9IHRoaXMsICAvLy9cbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IFN1YnN0aXR1dGlvbnMuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICAgICAgc3RhdGVtZW50VW5pZmllcyA9IGF4aW9tLnVuaWZ5U3VicHJvb2Yoc3VicHJvb2YsIHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uc0NvbXBhcmUgPSBzYXRpc2ZpZXNBc3NlcnRpb24uY29tcGFyZVN1YnN0aXR1dGlvbnMoc3Vic3RpdHV0aW9ucywgY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAoc3Vic3RpdHV0aW9uc0NvbXBhcmUpIHtcbiAgICAgICAgICAgIHVuaWZpZXNXaXRoU2F0aXNmaWVzQXNzZXJ0aW9uID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodW5pZmllc1dpdGhTYXRpc2ZpZXNBc3NlcnRpb24pIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N1YnByb29mU3RyaW5nfScgc3VicHJvb2Ygd2l0aCB0aGUgJyR7c2F0aXNmaWVzQXNzZXJ0aW9uU3RyaW5nfScgc2F0aXNmaWVzIGFzc2VydGlvbi5gKVxuICAgIH1cblxuICAgIHJldHVybiB1bmlmaWVzV2l0aFNhdGlzZmllc0Fzc2VydGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJTdWJwcm9vZlwiO1xuXG4gIHN0YXRpYyBmcm9tU3RlcE9yU3VicHJvb2ZOb2RlKHNTdGVwT3JTdWJwcm9vZk5vZGUsIGNvbnRleHQpIHtcbiAgICBsZXQgc3VicHJvb2YgPSBudWxsO1xuXG4gICAgY29uc3Qgc3VicHJvb2ZOb2RlID0gc1N0ZXBPclN1YnByb29mTm9kZS5pc1N1YnByb29mTm9kZSgpO1xuXG4gICAgaWYgKHN1YnByb29mTm9kZSkge1xuICAgICAgY29uc3Qgc3VicHJvb2ZOb2RlID0gc1N0ZXBPclN1YnByb29mTm9kZSwgLy8vXG4gICAgICAgICAgICBzdXBwb3NpdGlvbnMgPSBzdXBwb3NpdGlvbnNGcm9tU3VicHJvb2ZOb2RlKHN1YnByb29mTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICBzdWJEZXJpdmF0aW9uID0gc3ViRGVyaXZhdGlvbkZyb21TdWJwcm9vZk5vZGUoc3VicHJvb2ZOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgIHN1YnByb29mU3RyaW5nID0gc3VicHJvb2ZTdHJpbmdGcm9tU3VicHJvb2ZOb2RlKHN1YnByb29mTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICBub2RlID0gc3VicHJvb2ZOb2RlLCAgLy8vXG4gICAgICAgICAgICBzdHJpbmcgPSBzdWJwcm9vZlN0cmluZzsgIC8vL1xuXG4gICAgICBzdWJwcm9vZiA9IG5ldyBTdWJwcm9vZihub2RlLCBzdHJpbmcsIHN1cHBvc2l0aW9ucywgc3ViRGVyaXZhdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnByb29mO1xuICB9XG59KTtcblxuZnVuY3Rpb24gc3VwcG9zaXRpb25zRnJvbVN1YnByb29mTm9kZShzdWJwcm9vZk5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBTdXBwb3NpdGlvbiB9ID0gZG9tLFxuICAgICAgICBzdXBwb3NpdGlvbk5vZGVzID0gc3VicHJvb2ZOb2RlLmdldFN1cHBvc2l0aW9uTm9kZXMoKSxcbiAgICAgICAgc3VwcG9zaXRpb25zID0gc3VwcG9zaXRpb25Ob2Rlcy5tYXAoKHN1cHBvc2l0aW9uTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHN1cHBvc2l0aW9uID0gU3VwcG9zaXRpb24uZnJvbVN1cHBvc2l0aW9uTm9kZShzdXBwb3NpdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgICAgcmV0dXJuIHN1cHBvc2l0aW9uO1xuICAgICAgICB9KTtcblxuICByZXR1cm4gc3VwcG9zaXRpb25zO1xufVxuXG5mdW5jdGlvbiBzdWJEZXJpdmF0aW9uRnJvbVN1YnByb29mTm9kZShzdWJwcm9vZk5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBTdWJEZXJpdmF0aW9uIH0gPSBkb20sXG4gICAgICAgIHN1YkRlcml2YXRpb25Ob2RlID0gc3VicHJvb2ZOb2RlLmdldFN1YkRlcml2YXRpb25Ob2RlKCksXG4gICAgICAgIHN1YkRlcml2YXRpb24gPSBTdWJEZXJpdmF0aW9uLmZyb21TdWJEZXJpdmF0aW9uTm9kZShzdWJEZXJpdmF0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIHN1YkRlcml2YXRpb247XG59XG4iXSwibmFtZXMiOlsiZG9tQXNzaWduZWQiLCJTdWJwcm9vZiIsIm5vZGUiLCJzdHJpbmciLCJzdXBwb3NpdGlvbnMiLCJzdWJEZXJpdmF0aW9uIiwiZ2V0Tm9kZSIsImdldFN0cmluZyIsImdldFN1cHBvc2l0aW9ucyIsImdldFN1YkRlcml2YXRpb24iLCJnZXRMYXN0U3RlcCIsImdldFN0YXRlbWVudHMiLCJsYXN0U3RlcCIsInN1cHBvc2l0aW9uU3RhdGVtZW50cyIsIm1hcCIsInN1cHBvc2l0aW9uIiwic3VwcG9zaXRpb25TdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnQiLCJsYXN0U3RlcFN0YXRlbWVudCIsInN0YXRlbWVudHMiLCJpc1N0ZXAiLCJzU3RlcCIsInVuaWZ5Iiwic3Vic3RpdHV0aW9ucyIsImNvbnRleHQiLCJ1bmlmaWVzIiwidmVyaWZ5IiwiYXNzaWdubWVudHMiLCJzdWJwcm9vZlZlcmlmaWVzIiwibG9jYWxDb250ZXh0IiwiTG9jYWxDb250ZXh0IiwiZnJvbUNvbnRleHQiLCJzdXBwb3NpdGlvbnNWZXJpZnkiLCJldmVyeSIsInN1cHBvc2l0aW9uVmVyaWZpZXMiLCJzdWJEZXJpdmF0aW9uVmVyaWZpZXMiLCJlcXVhdGVXaXRoU3RhdGVtZW50Iiwic3RhdGVtZW50Iiwic3RhdGVtZW50VW5pZmllcyIsInVuaWZ5V2l0aFNhdGlzZmllc0Fzc2VydGlvbiIsInNhdGlzZmllc0Fzc2VydGlvbiIsInVuaWZpZXNXaXRoU2F0aXNmaWVzQXNzZXJ0aW9uIiwic3VicHJvb2ZTdHJpbmciLCJzYXRpc2ZpZXNBc3NlcnRpb25TdHJpbmciLCJ0cmFjZSIsInJlZmVyZW5jZSIsImdldFJlZmVyZW5jZSIsImF4aW9tIiwiZmluZEF4aW9tQnlSZWZlcmVuY2UiLCJheGlvbVNhdGlzZmlhYmxlIiwiaXNTYXRpc2ZpYWJsZSIsInN1YnByb29mIiwiU3Vic3RpdHV0aW9ucyIsImZyb21Ob3RoaW5nIiwidW5pZnlTdWJwcm9vZiIsInN1YnN0aXR1dGlvbnNDb21wYXJlIiwiY29tcGFyZVN1YnN0aXR1dGlvbnMiLCJkZWJ1ZyIsImZyb21TdGVwT3JTdWJwcm9vZk5vZGUiLCJzU3RlcE9yU3VicHJvb2ZOb2RlIiwic3VicHJvb2ZOb2RlIiwiaXNTdWJwcm9vZk5vZGUiLCJzdXBwb3NpdGlvbnNGcm9tU3VicHJvb2ZOb2RlIiwic3ViRGVyaXZhdGlvbkZyb21TdWJwcm9vZk5vZGUiLCJzdWJwcm9vZlN0cmluZ0Zyb21TdWJwcm9vZk5vZGUiLCJuYW1lIiwiU3VwcG9zaXRpb24iLCJkb20iLCJzdXBwb3NpdGlvbk5vZGVzIiwiZ2V0U3VwcG9zaXRpb25Ob2RlcyIsInN1cHBvc2l0aW9uTm9kZSIsImZyb21TdXBwb3NpdGlvbk5vZGUiLCJTdWJEZXJpdmF0aW9uIiwic3ViRGVyaXZhdGlvbk5vZGUiLCJnZXRTdWJEZXJpdmF0aW9uTm9kZSIsImZyb21TdWJEZXJpdmF0aW9uTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFBOzs7MkRBUGdCOzREQUNTO29FQUNDO3dCQUdx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
@@ -1,216 +0,0 @@
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 _dom = /*#__PURE__*/ _interop_require_wildcard(require("../../dom"));
12
- var _substitution = /*#__PURE__*/ _interop_require_default(require("../substitution"));
13
- var _frame = /*#__PURE__*/ _interop_require_default(require("../../context/partial/substitution/frame"));
14
- function _assert_this_initialized(self) {
15
- if (self === void 0) {
16
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
17
- }
18
- return self;
19
- }
20
- function _call_super(_this, derived, args) {
21
- derived = _get_prototype_of(derived);
22
- return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
23
- }
24
- function _class_call_check(instance, Constructor) {
25
- if (!(instance instanceof Constructor)) {
26
- throw new TypeError("Cannot call a class as a function");
27
- }
28
- }
29
- function _defineProperties(target, props) {
30
- for(var i = 0; i < props.length; i++){
31
- var descriptor = props[i];
32
- descriptor.enumerable = descriptor.enumerable || false;
33
- descriptor.configurable = true;
34
- if ("value" in descriptor) descriptor.writable = true;
35
- Object.defineProperty(target, descriptor.key, descriptor);
36
- }
37
- }
38
- function _create_class(Constructor, protoProps, staticProps) {
39
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
40
- if (staticProps) _defineProperties(Constructor, staticProps);
41
- return Constructor;
42
- }
43
- function _get_prototype_of(o) {
44
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
45
- return o.__proto__ || Object.getPrototypeOf(o);
46
- };
47
- return _get_prototype_of(o);
48
- }
49
- function _inherits(subClass, superClass) {
50
- if (typeof superClass !== "function" && superClass !== null) {
51
- throw new TypeError("Super expression must either be null or a function");
52
- }
53
- subClass.prototype = Object.create(superClass && superClass.prototype, {
54
- constructor: {
55
- value: subClass,
56
- writable: true,
57
- configurable: true
58
- }
59
- });
60
- if (superClass) _set_prototype_of(subClass, superClass);
61
- }
62
- function _interop_require_default(obj) {
63
- return obj && obj.__esModule ? obj : {
64
- default: obj
65
- };
66
- }
67
- function _getRequireWildcardCache(nodeInterop) {
68
- if (typeof WeakMap !== "function") return null;
69
- var cacheBabelInterop = new WeakMap();
70
- var cacheNodeInterop = new WeakMap();
71
- return (_getRequireWildcardCache = function(nodeInterop) {
72
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
73
- })(nodeInterop);
74
- }
75
- function _interop_require_wildcard(obj, nodeInterop) {
76
- if (!nodeInterop && obj && obj.__esModule) {
77
- return obj;
78
- }
79
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
80
- return {
81
- default: obj
82
- };
83
- }
84
- var cache = _getRequireWildcardCache(nodeInterop);
85
- if (cache && cache.has(obj)) {
86
- return cache.get(obj);
87
- }
88
- var newObj = {
89
- __proto__: null
90
- };
91
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
92
- for(var key in obj){
93
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
94
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
95
- if (desc && (desc.get || desc.set)) {
96
- Object.defineProperty(newObj, key, desc);
97
- } else {
98
- newObj[key] = obj[key];
99
- }
100
- }
101
- }
102
- newObj.default = obj;
103
- if (cache) {
104
- cache.set(obj, newObj);
105
- }
106
- return newObj;
107
- }
108
- function _possible_constructor_return(self, call) {
109
- if (call && (_type_of(call) === "object" || typeof call === "function")) {
110
- return call;
111
- }
112
- return _assert_this_initialized(self);
113
- }
114
- function _set_prototype_of(o, p) {
115
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
116
- o.__proto__ = p;
117
- return o;
118
- };
119
- return _set_prototype_of(o, p);
120
- }
121
- function _type_of(obj) {
122
- "@swc/helpers - typeof";
123
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
124
- }
125
- function _is_native_reflect_construct() {
126
- try {
127
- var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
128
- } catch (_) {}
129
- return (_is_native_reflect_construct = function() {
130
- return !!result;
131
- })();
132
- }
133
- var _default = (0, _dom.domAssigned)(/*#__PURE__*/ function(Substitution) {
134
- _inherits(FrameSubstitution, Substitution);
135
- function FrameSubstitution(string, node, tokens, frame, metavariable) {
136
- _class_call_check(this, FrameSubstitution);
137
- var _this;
138
- _this = _call_super(this, FrameSubstitution, [
139
- string,
140
- node,
141
- tokens
142
- ]);
143
- _this.frame = frame;
144
- _this.metavariable = metavariable;
145
- return _this;
146
- }
147
- _create_class(FrameSubstitution, [
148
- {
149
- key: "getFrame",
150
- value: function getFrame() {
151
- return this.frame;
152
- }
153
- },
154
- {
155
- key: "getMetavariable",
156
- value: function getMetavariable() {
157
- return this.metavariable;
158
- }
159
- },
160
- {
161
- key: "isFrameEqualTo",
162
- value: function isFrameEqualTo(frame) {
163
- return this.frame.isEqualTo(frame);
164
- }
165
- },
166
- {
167
- key: "isMetavariableEqualTo",
168
- value: function isMetavariableEqualTo(metavariable) {
169
- return this.metavariable.isEqualTo(metavariable);
170
- }
171
- },
172
- {
173
- key: "matchParameter",
174
- value: function matchParameter(parameter) {
175
- return this.metavariable.matchParameter(parameter);
176
- }
177
- },
178
- {
179
- key: "getReplacementNode",
180
- value: function getReplacementNode() {
181
- var frameNode = this.frame.getNode(), replacementNode = frameNode; ///
182
- return replacementNode;
183
- }
184
- }
185
- ], [
186
- {
187
- key: "fromStatementNode",
188
- value: function fromStatementNode(statementNode, context) {
189
- var frameSubstitution = null;
190
- var frameSubstitutionNode = statementNode.getFrameSubstitutionNode();
191
- if (frameSubstitutionNode !== null) {
192
- var lastFrameNode = frameSubstitutionNode.getLastFrameNode(), firstFrameNode = frameSubstitutionNode.getFirstFrameNode(), singularMetavariableNode = lastFrameNode.getSingularMetavariableNode();
193
- if (singularMetavariableNode !== null) {
194
- var Frame = _dom.default.Frame, Metavariable = _dom.default.Metavariable, frameNode = firstFrameNode, metavariableNode = singularMetavariableNode, frame = Frame.fromFrameNode(frameNode, context), metavariable = Metavariable.fromMetavariableNode(metavariableNode, context), node = frameSubstitutionNode, tokens = context.nodeAsTokens(node), string = stringFromFrameAndMetavariable(frame, metavariable);
195
- frameSubstitution = new FrameSubstitution(string, node, tokens, frame, metavariable);
196
- }
197
- }
198
- return frameSubstitution;
199
- }
200
- },
201
- {
202
- key: "fromFrameAndMetavariable",
203
- value: function fromFrameAndMetavariable(frame, metavariable, context) {
204
- var string = stringFromFrameAndMetavariable(frame, metavariable), lexer = context.getLexer(), parser = context.getParser(), frameSubstitutionPartialContext = _frame.default.fromStringLexerAndParser(string, lexer, parser), node = frameSubstitutionPartialContext.getNode(), tokens = frameSubstitutionPartialContext.getTokens(), frameSubstitution = new FrameSubstitution(string, node, tokens, frame, metavariable);
205
- return frameSubstitution;
206
- }
207
- }
208
- ]);
209
- return FrameSubstitution;
210
- }(_substitution.default));
211
- function stringFromFrameAndMetavariable(frame, metavariable) {
212
- var frameString = frame.getString(), metavariableString = metavariable.getString(), string = "[".concat(frameString, " for [").concat(metavariableString, "]]");
213
- return string;
214
- }
215
-
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb20vc3Vic3RpdHV0aW9uL2ZyYW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZG9tIGZyb20gXCIuLi8uLi9kb21cIjtcbmltcG9ydCBTdWJzdGl0dXRpb24gZnJvbSBcIi4uL3N1YnN0aXR1dGlvblwiO1xuaW1wb3J0IEZyYW1lU3Vic3RpdHV0aW9uUGFydGlhbENvbnRleHQgZnJvbSBcIi4uLy4uL2NvbnRleHQvcGFydGlhbC9zdWJzdGl0dXRpb24vZnJhbWVcIjtcblxuaW1wb3J0IHsgZG9tQXNzaWduZWQgfSBmcm9tIFwiLi4vLi4vZG9tXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIEZyYW1lU3Vic3RpdHV0aW9uIGV4dGVuZHMgU3Vic3RpdHV0aW9uIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCBub2RlLCB0b2tlbnMsIGZyYW1lLCBtZXRhdmFyaWFibGUpIHtcbiAgICBzdXBlcihzdHJpbmcsIG5vZGUsIHRva2Vucyk7XG5cbiAgICB0aGlzLmZyYW1lID0gZnJhbWU7XG4gICAgdGhpcy5tZXRhdmFyaWFibGUgPSBtZXRhdmFyaWFibGU7XG4gIH1cblxuICBnZXRGcmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5mcmFtZTtcbiAgfVxuXG4gIGdldE1ldGF2YXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGU7XG4gIH1cblxuICBpc0ZyYW1lRXF1YWxUbyhmcmFtZSkgeyByZXR1cm4gdGhpcy5mcmFtZS5pc0VxdWFsVG8oZnJhbWUpOyB9XG5cbiAgaXNNZXRhdmFyaWFibGVFcXVhbFRvKG1ldGF2YXJpYWJsZSkgeyByZXR1cm4gdGhpcy5tZXRhdmFyaWFibGUuaXNFcXVhbFRvKG1ldGF2YXJpYWJsZSk7IH1cblxuICBtYXRjaFBhcmFtZXRlcihwYXJhbWV0ZXIpIHsgcmV0dXJuIHRoaXMubWV0YXZhcmlhYmxlLm1hdGNoUGFyYW1ldGVyKHBhcmFtZXRlcik7IH1cblxuICBnZXRSZXBsYWNlbWVudE5vZGUoKSB7XG4gICAgY29uc3QgZnJhbWVOb2RlID0gdGhpcy5mcmFtZS5nZXROb2RlKCksXG4gICAgICAgICAgcmVwbGFjZW1lbnROb2RlID0gZnJhbWVOb2RlOyAvLy9cblxuICAgIHJldHVybiByZXBsYWNlbWVudE5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGxldCBmcmFtZVN1YnN0aXR1dGlvbiA9IG51bGw7XG5cbiAgICBjb25zdCBmcmFtZVN1YnN0aXR1dGlvbk5vZGUgPSBzdGF0ZW1lbnROb2RlLmdldEZyYW1lU3Vic3RpdHV0aW9uTm9kZSgpO1xuXG4gICAgaWYgKGZyYW1lU3Vic3RpdHV0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgbGFzdEZyYW1lTm9kZSA9IGZyYW1lU3Vic3RpdHV0aW9uTm9kZS5nZXRMYXN0RnJhbWVOb2RlKCksXG4gICAgICAgICAgICBmaXJzdEZyYW1lTm9kZSA9IGZyYW1lU3Vic3RpdHV0aW9uTm9kZS5nZXRGaXJzdEZyYW1lTm9kZSgpLFxuICAgICAgICAgICAgc2luZ3VsYXJNZXRhdmFyaWFibGVOb2RlID0gbGFzdEZyYW1lTm9kZS5nZXRTaW5ndWxhck1ldGF2YXJpYWJsZU5vZGUoKTtcblxuICAgICAgaWYgKHNpbmd1bGFyTWV0YXZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB7IEZyYW1lLCBNZXRhdmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgICAgICAgZnJhbWVOb2RlID0gZmlyc3RGcmFtZU5vZGUsIC8vL1xuICAgICAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gc2luZ3VsYXJNZXRhdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgICAgIGZyYW1lID0gRnJhbWUuZnJvbUZyYW1lTm9kZShmcmFtZU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBtZXRhdmFyaWFibGUgPSBNZXRhdmFyaWFibGUuZnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIG5vZGUgPSBmcmFtZVN1YnN0aXR1dGlvbk5vZGUsICAvLy9cbiAgICAgICAgICAgICAgdG9rZW5zID0gY29udGV4dC5ub2RlQXNUb2tlbnMobm9kZSksXG4gICAgICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21GcmFtZUFuZE1ldGF2YXJpYWJsZShmcmFtZSwgbWV0YXZhcmlhYmxlKTtcblxuICAgICAgICBmcmFtZVN1YnN0aXR1dGlvbiA9IG5ldyBGcmFtZVN1YnN0aXR1dGlvbihzdHJpbmcsIG5vZGUsIHRva2VucywgZnJhbWUsIG1ldGF2YXJpYWJsZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZyYW1lU3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21GcmFtZUFuZE1ldGF2YXJpYWJsZShmcmFtZSwgbWV0YXZhcmlhYmxlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RyaW5nID0gc3RyaW5nRnJvbUZyYW1lQW5kTWV0YXZhcmlhYmxlKGZyYW1lLCBtZXRhdmFyaWFibGUpLFxuICAgICAgICAgIGxleGVyID0gY29udGV4dC5nZXRMZXhlcigpLFxuICAgICAgICAgIHBhcnNlciA9IGNvbnRleHQuZ2V0UGFyc2VyKCksXG4gICAgICAgICAgZnJhbWVTdWJzdGl0dXRpb25QYXJ0aWFsQ29udGV4dCA9IEZyYW1lU3Vic3RpdHV0aW9uUGFydGlhbENvbnRleHQuZnJvbVN0cmluZ0xleGVyQW5kUGFyc2VyKHN0cmluZywgbGV4ZXIsIHBhcnNlciksXG4gICAgICAgICAgbm9kZSA9IGZyYW1lU3Vic3RpdHV0aW9uUGFydGlhbENvbnRleHQuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHRva2VucyA9IGZyYW1lU3Vic3RpdHV0aW9uUGFydGlhbENvbnRleHQuZ2V0VG9rZW5zKCksXG4gICAgICAgICAgZnJhbWVTdWJzdGl0dXRpb24gPSBuZXcgRnJhbWVTdWJzdGl0dXRpb24oc3RyaW5nLCBub2RlLCB0b2tlbnMsIGZyYW1lLCBtZXRhdmFyaWFibGUpO1xuXG4gICAgcmV0dXJuIGZyYW1lU3Vic3RpdHV0aW9uO1xuICB9XG59KTtcblxuZnVuY3Rpb24gc3RyaW5nRnJvbUZyYW1lQW5kTWV0YXZhcmlhYmxlKGZyYW1lLCBtZXRhdmFyaWFibGUpIHtcbiAgY29uc3QgZnJhbWVTdHJpbmcgPSBmcmFtZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbWV0YXZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICBzdHJpbmcgPSBgWyR7ZnJhbWVTdHJpbmd9IGZvciBbJHttZXRhdmFyaWFibGVTdHJpbmd9XV1gO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOlsiZG9tQXNzaWduZWQiLCJGcmFtZVN1YnN0aXR1dGlvbiIsInN0cmluZyIsIm5vZGUiLCJ0b2tlbnMiLCJmcmFtZSIsIm1ldGF2YXJpYWJsZSIsImdldEZyYW1lIiwiZ2V0TWV0YXZhcmlhYmxlIiwiaXNGcmFtZUVxdWFsVG8iLCJpc0VxdWFsVG8iLCJpc01ldGF2YXJpYWJsZUVxdWFsVG8iLCJtYXRjaFBhcmFtZXRlciIsInBhcmFtZXRlciIsImdldFJlcGxhY2VtZW50Tm9kZSIsImZyYW1lTm9kZSIsImdldE5vZGUiLCJyZXBsYWNlbWVudE5vZGUiLCJmcm9tU3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudE5vZGUiLCJjb250ZXh0IiwiZnJhbWVTdWJzdGl0dXRpb24iLCJmcmFtZVN1YnN0aXR1dGlvbk5vZGUiLCJnZXRGcmFtZVN1YnN0aXR1dGlvbk5vZGUiLCJsYXN0RnJhbWVOb2RlIiwiZ2V0TGFzdEZyYW1lTm9kZSIsImZpcnN0RnJhbWVOb2RlIiwiZ2V0Rmlyc3RGcmFtZU5vZGUiLCJzaW5ndWxhck1ldGF2YXJpYWJsZU5vZGUiLCJnZXRTaW5ndWxhck1ldGF2YXJpYWJsZU5vZGUiLCJGcmFtZSIsImRvbSIsIk1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJmcm9tRnJhbWVOb2RlIiwiZnJvbU1ldGF2YXJpYWJsZU5vZGUiLCJub2RlQXNUb2tlbnMiLCJzdHJpbmdGcm9tRnJhbWVBbmRNZXRhdmFyaWFibGUiLCJmcm9tRnJhbWVBbmRNZXRhdmFyaWFibGUiLCJsZXhlciIsImdldExleGVyIiwicGFyc2VyIiwiZ2V0UGFyc2VyIiwiZnJhbWVTdWJzdGl0dXRpb25QYXJ0aWFsQ29udGV4dCIsIkZyYW1lU3Vic3RpdHV0aW9uUGFydGlhbENvbnRleHQiLCJmcm9tU3RyaW5nTGV4ZXJBbmRQYXJzZXIiLCJnZXRUb2tlbnMiLCJTdWJzdGl0dXRpb24iLCJmcmFtZVN0cmluZyIsImdldFN0cmluZyIsIm1ldGF2YXJpYWJsZVN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFBOzs7MkRBTmdCO21FQUNTOzREQUNtQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBSTVDLFdBQWVBLElBQUFBLGdCQUFXLGdCQUFDOzthQUFNQyxrQkFDbkJDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxNQUFNLEVBQUVDLEtBQUssRUFBRUMsWUFBWTtnQ0FEdEJMOztnQkFFN0Isa0JBRjZCQTtZQUV2QkM7WUFBUUM7WUFBTUM7O1FBRXBCLE1BQUtDLEtBQUssR0FBR0E7UUFDYixNQUFLQyxZQUFZLEdBQUdBOzs7OztZQUd0QkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixLQUFLO1lBQ25COzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixZQUFZO1lBQzFCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLGVBQWVKLEtBQUs7Z0JBQUksT0FBTyxJQUFJLENBQUNBLEtBQUssQ0FBQ0ssU0FBUyxDQUFDTDtZQUFROzs7WUFFNURNLEtBQUFBO21CQUFBQSxTQUFBQSxzQkFBc0JMLFlBQVk7Z0JBQUksT0FBTyxJQUFJLENBQUNBLFlBQVksQ0FBQ0ksU0FBUyxDQUFDSjtZQUFlOzs7WUFFeEZNLEtBQUFBO21CQUFBQSxTQUFBQSxlQUFlQyxTQUFTO2dCQUFJLE9BQU8sSUFBSSxDQUFDUCxZQUFZLENBQUNNLGNBQWMsQ0FBQ0M7WUFBWTs7O1lBRWhGQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsWUFBWSxJQUFJLENBQUNWLEtBQUssQ0FBQ1csT0FBTyxJQUM5QkMsa0JBQWtCRixXQUFXLEdBQUc7Z0JBRXRDLE9BQU9FO1lBQ1Q7Ozs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0Esa0JBQWtCQyxhQUFhLEVBQUVDLE9BQU87Z0JBQzdDLElBQUlDLG9CQUFvQjtnQkFFeEIsSUFBTUMsd0JBQXdCSCxjQUFjSSx3QkFBd0I7Z0JBRXBFLElBQUlELDBCQUEwQixNQUFNO29CQUNsQyxJQUFNRSxnQkFBZ0JGLHNCQUFzQkcsZ0JBQWdCLElBQ3REQyxpQkFBaUJKLHNCQUFzQkssaUJBQWlCLElBQ3hEQywyQkFBMkJKLGNBQWNLLDJCQUEyQjtvQkFFMUUsSUFBSUQsNkJBQTZCLE1BQU07d0JBQ3JDLElBQVFFLFFBQXdCQyxZQUFHLENBQTNCRCxPQUFPRSxlQUFpQkQsWUFBRyxDQUFwQkMsY0FDVGpCLFlBQVlXLGdCQUNaTyxtQkFBbUJMLDBCQUNuQnZCLFFBQVF5QixNQUFNSSxhQUFhLENBQUNuQixXQUFXSyxVQUN2Q2QsZUFBZTBCLGFBQWFHLG9CQUFvQixDQUFDRixrQkFBa0JiLFVBQ25FakIsT0FBT21CLHVCQUNQbEIsU0FBU2dCLFFBQVFnQixZQUFZLENBQUNqQyxPQUM5QkQsU0FBU21DLCtCQUErQmhDLE9BQU9DO3dCQUVyRGUsb0JBQW9CLElBQUlwQixrQkFBa0JDLFFBQVFDLE1BQU1DLFFBQVFDLE9BQU9DO29CQUN6RTtnQkFDRjtnQkFFQSxPQUFPZTtZQUNUOzs7WUFFT2lCLEtBQUFBO21CQUFQLFNBQU9BLHlCQUF5QmpDLEtBQUssRUFBRUMsWUFBWSxFQUFFYyxPQUFPO2dCQUMxRCxJQUFNbEIsU0FBU21DLCtCQUErQmhDLE9BQU9DLGVBQy9DaUMsUUFBUW5CLFFBQVFvQixRQUFRLElBQ3hCQyxTQUFTckIsUUFBUXNCLFNBQVMsSUFDMUJDLGtDQUFrQ0MsY0FBK0IsQ0FBQ0Msd0JBQXdCLENBQUMzQyxRQUFRcUMsT0FBT0UsU0FDMUd0QyxPQUFPd0MsZ0NBQWdDM0IsT0FBTyxJQUM5Q1osU0FBU3VDLGdDQUFnQ0csU0FBUyxJQUNsRHpCLG9CQUFvQixJQUFJcEIsa0JBQWtCQyxRQUFRQyxNQUFNQyxRQUFRQyxPQUFPQztnQkFFN0UsT0FBT2U7WUFDVDs7OztFQWxFeUQwQixxQkFBWTtBQXFFdkUsU0FBU1YsK0JBQStCaEMsS0FBSyxFQUFFQyxZQUFZO0lBQ3pELElBQU0wQyxjQUFjM0MsTUFBTTRDLFNBQVMsSUFDN0JDLHFCQUFxQjVDLGFBQWEyQyxTQUFTLElBQzNDL0MsU0FBUyxBQUFDLElBQXVCZ0QsT0FBcEJGLGFBQVksVUFBMkIsT0FBbkJFLG9CQUFtQjtJQUUxRCxPQUFPaEQ7QUFDVCJ9