occam-furtle 2.0.78 → 2.0.82

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 (53) hide show
  1. package/lib/constants.js +9 -1
  2. package/lib/dom/assignment/array.js +6 -2
  3. package/lib/dom/assignment/object.js +6 -2
  4. package/lib/dom/assignment/variable.js +6 -2
  5. package/lib/dom/assignments/variable.js +10 -2
  6. package/lib/dom/block/return.js +8 -4
  7. package/lib/dom/block.js +6 -2
  8. package/lib/dom/comparison.js +7 -3
  9. package/lib/dom/conditionalBlocks.js +8 -8
  10. package/lib/dom/declaration/procedure.js +6 -2
  11. package/lib/dom/every.js +175 -0
  12. package/lib/dom/parameter/named.js +10 -2
  13. package/lib/dom/parameters/named.js +10 -2
  14. package/lib/dom/procedure/anonymous.js +16 -2
  15. package/lib/dom/procedureCall/anonymous.js +6 -2
  16. package/lib/dom/reduce.js +177 -0
  17. package/lib/dom/statement/return.js +6 -2
  18. package/lib/dom/ternary.js +5 -7
  19. package/lib/dom/value/bitwise.js +7 -3
  20. package/lib/dom/value/bracketed.js +6 -2
  21. package/lib/dom/value/negated.js +6 -2
  22. package/lib/dom/value.js +58 -25
  23. package/lib/dom/values.js +7 -1
  24. package/lib/dom/variable.js +18 -4
  25. package/lib/index.js +3 -1
  26. package/lib/nodeProperty.js +2 -2
  27. package/package.json +5 -5
  28. package/src/constants.js +2 -0
  29. package/src/dom/assignment/array.js +10 -3
  30. package/src/dom/assignment/object.js +10 -3
  31. package/src/dom/assignment/variable.js +9 -2
  32. package/src/dom/assignments/variable.js +18 -4
  33. package/src/dom/block/return.js +12 -6
  34. package/src/dom/block.js +9 -4
  35. package/src/dom/comparison.js +15 -5
  36. package/src/dom/conditionalBlocks.js +10 -10
  37. package/src/dom/declaration/procedure.js +8 -2
  38. package/src/dom/every.js +117 -0
  39. package/src/dom/parameter/named.js +14 -2
  40. package/src/dom/parameters/named.js +16 -2
  41. package/src/dom/procedure/anonymous.js +18 -0
  42. package/src/dom/procedureCall/anonymous.js +10 -3
  43. package/src/dom/reduce.js +117 -0
  44. package/src/dom/statement/return.js +8 -2
  45. package/src/dom/ternary.js +8 -15
  46. package/src/dom/value/bitwise.js +14 -4
  47. package/src/dom/value/bracketed.js +9 -3
  48. package/src/dom/value/negated.js +9 -3
  49. package/src/dom/value.js +66 -25
  50. package/src/dom/values.js +4 -0
  51. package/src/dom/variable.js +20 -2
  52. package/src/index.js +2 -0
  53. package/src/nodeProperty.js +1 -1
@@ -90,7 +90,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
90
90
  return newObj;
91
91
  }
92
92
  var _Variable;
93
- var someVariableNodeQuery = (0, _query.nodeQuery)("/some/variable"), valueVariableNodeQuery = (0, _query.nodeQuery)("/value/variable"), nodeQueryVariableNodeQuery = (0, _query.nodeQuery)("/nodeQuery/variable"), nodesQueryVariableNodeQuery = (0, _query.nodeQuery)("/nodesQuery/variable"), variableNameTerminalNodeQuery = (0, _query.nodeQuery)("/variable/@name"), arrayAssignmentVariableNodeQuery = (0, _query.nodeQuery)("/arrayAssignment/variable"), objectAssignmentVariableNodeQuery = (0, _query.nodeQuery)("/objectAssignment/variable"), variableAssignmentVariableNodeQuery = (0, _query.nodeQuery)("/variableAssignment/variable");
93
+ var someVariableNodeQuery = (0, _query.nodeQuery)("/some/variable"), valueVariableNodeQuery = (0, _query.nodeQuery)("/value/variable"), everyVariableNodeQuery = (0, _query.nodeQuery)("/every/variable"), reduceVariableNodeQuery = (0, _query.nodeQuery)("/reduce/variable"), nodeQueryVariableNodeQuery = (0, _query.nodeQuery)("/nodeQuery/variable"), nodesQueryVariableNodeQuery = (0, _query.nodeQuery)("/nodesQuery/variable"), variableNameTerminalNodeQuery = (0, _query.nodeQuery)("/variable/@name"), arrayAssignmentVariableNodeQuery = (0, _query.nodeQuery)("/arrayAssignment/variable"), objectAssignmentVariableNodeQuery = (0, _query.nodeQuery)("/objectAssignment/variable"), variableAssignmentVariableNodeQuery = (0, _query.nodeQuery)("/variableAssignment/variable");
94
94
  var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
95
95
  function Variable(string, type, name, value) {
96
96
  _class_call_check(this, Variable);
@@ -169,8 +169,8 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
169
169
  ], [
170
170
  {
171
171
  key: "fromSomeNode",
172
- value: function fromSomeNode(someLoopNode, context) {
173
- var someVariableNode = someVariableNodeQuery(someLoopNode), variableNode = someVariableNode, variable = variableFromVariableNode(variableNode, context);
172
+ value: function fromSomeNode(someNode, context) {
173
+ var someVariableNode = someVariableNodeQuery(someNode), variableNode = someVariableNode, variable = variableFromVariableNode(variableNode, context);
174
174
  return variable;
175
175
  }
176
176
  },
@@ -186,6 +186,13 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
186
186
  return variable;
187
187
  }
188
188
  },
189
+ {
190
+ key: "fromEveryNode",
191
+ value: function fromEveryNode(everyNode, context) {
192
+ var everyVariableNode = everyVariableNodeQuery(everyNode), variableNode = everyVariableNode, variable = variableFromVariableNode(variableNode, context);
193
+ return variable;
194
+ }
195
+ },
189
196
  {
190
197
  key: "fromParameter",
191
198
  value: function fromParameter(parameter, context) {
@@ -193,6 +200,13 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
193
200
  return variable;
194
201
  }
195
202
  },
203
+ {
204
+ key: "fromReduceNode",
205
+ value: function fromReduceNode(reduceNode, context) {
206
+ var reduceVariableNode = reduceVariableNodeQuery(reduceNode), variableNode = reduceVariableNode, variable = variableFromVariableNode(variableNode, context);
207
+ return variable;
208
+ }
209
+ },
196
210
  {
197
211
  key: "fromNodeQueryNode",
198
212
  value: function fromNodeQueryNode(nodeQueryNode, context) {
@@ -265,4 +279,4 @@ function nameFromVariableNode(variableNode) {
265
279
  return name;
266
280
  }
267
281
 
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuXG5jb25zdCBzb21lVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc29tZS92YXJpYWJsZVwiKSxcbiAgICAgIHZhbHVlVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFsdWUvdmFyaWFibGVcIiksXG4gICAgICBub2RlUXVlcnlWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ub2RlUXVlcnkvdmFyaWFibGVcIiksXG4gICAgICBub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbm9kZXNRdWVyeS92YXJpYWJsZVwiKSxcbiAgICAgIHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlL0BuYW1lXCIpLFxuICAgICAgYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYXJyYXlBc3NpZ25tZW50L3ZhcmlhYmxlXCIpLFxuICAgICAgb2JqZWN0QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL29iamVjdEFzc2lnbm1lbnQvdmFyaWFibGVcIiksXG4gICAgICB2YXJpYWJsZUFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi92YXJpYWJsZUFzc2lnbm1lbnQvdmFyaWFibGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIFZhcmlhYmxlIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0VmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBtYXRjaFZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCBuYW1lTWF0Y2hlcyA9ICh0aGlzLm5hbWUgPT09IHZhcmlhYmxlTmFtZSk7XG5cbiAgICByZXR1cm4gbmFtZU1hdGNoZXM7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlUHJlc2VudCA9IGNvbnRleHQuaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpO1xuXG4gICAgaWYgKCF2YXJpYWJsZVByZXNlbnQpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke3ZhcmlhYmxlU3RyaW5nfTsgdmFyaWFibGUgaXMgbm90IHByZXNlbnQuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCB2YXJpYWJsZSA9IGNvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKSxcbiAgICAgICAgICB2YWx1ZSA9IHZhcmlhYmxlLmdldFZhbHVlKCksXG4gICAgICAgICAgdmFsdWVTdHJpbmcgPSB2YWx1ZS5hc1N0cmluZyhjb250ZXh0KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSB0byB0aGUgJHt2YWx1ZVN0cmluZ30gdmFsdWUuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBhc3NpZ24odmFsdWUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmFzU3RyaW5nKGNvbnRleHQpLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdGhpcy5zdHJpbmcsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlUHJlc2VudCA9IGNvbnRleHQuaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpO1xuXG4gICAgY29udGV4dC50cmFjZShgQXNzaWduaW5nIHRoZSAke3ZhbHVlU3RyaW5nfSB2YWx1ZSB0byB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgaWYgKHZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBpcyBhbHJlYWR5IHByZXNlbnQuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YXJpYWJsZVR5cGUgPSB0aGlzLnR5cGU7XG5cbiAgICBpZiAodmFsdWVUeXBlICE9PSB2YXJpYWJsZVR5cGUpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke3ZhcmlhYmxlU3RyaW5nfSB2YXJpYWJsZSdzICcke3ZhcmlhYmxlVHlwZX0nIHR5cGUgZG9lcyBub3QgbWF0Y2ggdGhlIHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZS4nYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcblxuICAgIGNvbnN0IHZhcmlhYmxlID0gdGhpczsgIC8vL1xuXG4gICAgY29udGV4dC5hZGRWYXJpYWJsZSh2YXJpYWJsZSk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5hc3NpZ25lZCB0aGUgJHt2YWx1ZVN0cmluZ30gdmFsdWUgdG8gdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuYCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVmFyaWFibGVcIjtcblxuICBzdGF0aWMgZnJvbVNvbWVOb2RlKHNvbWVMb29wTm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHNvbWVWYXJpYWJsZU5vZGUgPSBzb21lVmFyaWFibGVOb2RlUXVlcnkoc29tZUxvb3BOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBzb21lVmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYWx1ZU5vZGUodmFsdWVOb2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IHZhcmlhYmxlID0gbnVsbDtcblxuICAgIGNvbnN0IHZhbHVlVmFyaWFibGVOb2RlID0gdmFsdWVWYXJpYWJsZU5vZGVRdWVyeSh2YWx1ZU5vZGUpO1xuXG4gICAgaWYgKHZhbHVlVmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZU5vZGUgPSB2YWx1ZVZhcmlhYmxlTm9kZTsgLy8vXG5cbiAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXJhbWV0ZXIocGFyYW1ldGVyLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IHBhcmFtZXRlci5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZSA9IHBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgdmFsdWUgPSBudWxsLFxuICAgICAgICAgIHN0cmluZyA9IG5hbWUsICAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIHR5cGUsIG5hbWUsIHZhbHVlKTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm9kZVF1ZXJ5Tm9kZShub2RlUXVlcnlOb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZVF1ZXJ5VmFyaWFibGVOb2RlID0gbm9kZVF1ZXJ5VmFyaWFibGVOb2RlUXVlcnkobm9kZVF1ZXJ5Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gbm9kZVF1ZXJ5VmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob2Rlc1F1ZXJ5Tm9kZShub2Rlc1F1ZXJ5Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IG5vZGVzUXVlcnlWYXJpYWJsZU5vZGUgPSBub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlUXVlcnkobm9kZXNRdWVyeU5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IG5vZGVzUXVlcnlWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5hbWVkUGFyYW1ldGVyKG5hbWVkUGFyYW1ldGVyLCBjb250ZXh0KSB7XG4gICAgY29uc3QgYXNOYW1lID0gbmFtZWRQYXJhbWV0ZXIuZ2V0QXNOYW1lKCksXG4gICAgICAgICAgdHlwZSA9IG5hbWVkUGFyYW1ldGVyLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lID0gKGFzTmFtZSAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgIGFzTmFtZSA6IC8vL1xuICAgICAgICAgICAgICAgICAgICAgbmFtZWRQYXJhbWV0ZXIuZ2V0TmFtZSgpLFxuICAgICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgICBzdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhbHVlQW5kUGFyYW1ldGVyKHZhbHVlLCBwYXJhbWV0ZXIsIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gcGFyYW1ldGVyLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lID0gcGFyYW1ldGVyLmdldE5hbWUoKSxcbiAgICAgICAgICBzdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUodmFyaWFibGVOb2RlLCB0eXBlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgIG5hbWUgPSBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIHR5cGUsIG5hbWUsIHZhbHVlKTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQXJyYXlBc3NpZ25tZW50Tm9kZShhcnJheUFzc2lnbm1lbnROb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlID0gYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkoYXJyYXlBc3NpZ25tZW50Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21PYmplY3RBc3NpZ25tZW50Tm9kZShvYmplY3RBc3NpZ25tZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IG9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGUgPSBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkob2JqZWN0QXNzaWdubWVudE5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IG9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVR5cGVBbmRWYXJpYWJsZUFzc2lnbm1lbnROb2RlKHR5cGUsIHZhcmlhYmxlQXNzaWdubWVudE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnRWYXJpYWJsZU5vZGUgPSB2YXJpYWJsZUFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSh2YXJpYWJsZUFzc2lnbm1lbnROb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZUFzc2lnbm1lbnRWYXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVR5cGVBbmRWYXJpYWJsZU5vZGUodHlwZSwgdmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIHZhcmlhYmxlRnJvbVR5cGVBbmRWYXJpYWJsZU5vZGUodHlwZSwgdmFyaWFibGVOb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgbmFtZSA9IG5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSk7XG5cbiAgcmV0dXJuIHZhcmlhYmxlO1xufVxuXG5mdW5jdGlvbiB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgdHlwZSA9IG51bGwsXG4gICAgICAgIG5hbWUgPSBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICB2YWx1ZSA9IG51bGwsXG4gICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUpO1xuXG4gIHJldHVybiB2YXJpYWJsZTtcbn1cblxuZnVuY3Rpb24gbmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSB7XG4gIGNvbnN0IHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZSA9IHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5KHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZUNvbnRlbnQgPSB2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICBuYW1lID0gdmFyaWFibGVOYW1lVGVybWluYWxOb2RlQ29udGVudDsgLy8vXG5cbiAgcmV0dXJuIG5hbWU7XG59XG4iXSwibmFtZXMiOlsic29tZVZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidmFsdWVWYXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZXNRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5IiwidmFyaWFibGVOYW1lVGVybWluYWxOb2RlUXVlcnkiLCJhcnJheUFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSIsIm9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSIsInZhcmlhYmxlQXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5IiwiZG9tQXNzaWduZWQiLCJWYXJpYWJsZSIsInN0cmluZyIsInR5cGUiLCJuYW1lIiwidmFsdWUiLCJnZXRTdHJpbmciLCJnZXRUeXBlIiwiZ2V0TmFtZSIsImdldFZhbHVlIiwibWF0Y2hWYXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWUiLCJuYW1lTWF0Y2hlcyIsImV2YWx1YXRlIiwiY29udGV4dCIsInZhcmlhYmxlU3RyaW5nIiwidHJhY2UiLCJ2YXJpYWJsZVByZXNlbnQiLCJpc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsInZhbHVlU3RyaW5nIiwiYXNTdHJpbmciLCJkZWJ1ZyIsImFzc2lnbiIsInZhbHVlVHlwZSIsInZhcmlhYmxlVHlwZSIsImFkZFZhcmlhYmxlIiwiZnJvbVNvbWVOb2RlIiwic29tZUxvb3BOb2RlIiwic29tZVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSIsImZyb21WYWx1ZU5vZGUiLCJ2YWx1ZU5vZGUiLCJ2YWx1ZVZhcmlhYmxlTm9kZSIsImZyb21QYXJhbWV0ZXIiLCJwYXJhbWV0ZXIiLCJmcm9tTm9kZVF1ZXJ5Tm9kZSIsIm5vZGVRdWVyeU5vZGUiLCJub2RlUXVlcnlWYXJpYWJsZU5vZGUiLCJmcm9tTm9kZXNRdWVyeU5vZGUiLCJub2Rlc1F1ZXJ5Tm9kZSIsIm5vZGVzUXVlcnlWYXJpYWJsZU5vZGUiLCJmcm9tTmFtZWRQYXJhbWV0ZXIiLCJuYW1lZFBhcmFtZXRlciIsImFzTmFtZSIsImdldEFzTmFtZSIsImZyb21WYWx1ZUFuZFBhcmFtZXRlciIsImZyb21WYXJpYWJsZU5vZGVBbmRUeXBlIiwibm9kZSIsIm5vZGVBc1N0cmluZyIsIm5hbWVGcm9tVmFyaWFibGVOb2RlIiwiZnJvbUFycmF5QXNzaWdubWVudE5vZGUiLCJhcnJheUFzc2lnbm1lbnROb2RlIiwiYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlIiwiZnJvbU9iamVjdEFzc2lnbm1lbnROb2RlIiwib2JqZWN0QXNzaWdubWVudE5vZGUiLCJvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlIiwiZnJvbVR5cGVBbmRWYXJpYWJsZUFzc2lnbm1lbnROb2RlIiwidmFyaWFibGVBc3NpZ25tZW50Tm9kZSIsInZhcmlhYmxlQXNzaWdubWVudFZhcmlhYmxlTm9kZSIsInZhcmlhYmxlRnJvbVR5cGVBbmRWYXJpYWJsZU5vZGUiLCJkb20iLCJ2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGUiLCJ2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGVDb250ZW50IiwiZ2V0Q29udGVudCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBQTs7OzJEQWZnQjtnRUFDTTtxQkFFSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHMUIsSUFBTUEsd0JBQXdCQyxJQUFBQSxnQkFBUyxFQUFDLG1CQUNsQ0MseUJBQXlCRCxJQUFBQSxnQkFBUyxFQUFDLG9CQUNuQ0UsNkJBQTZCRixJQUFBQSxnQkFBUyxFQUFDLHdCQUN2Q0csOEJBQThCSCxJQUFBQSxnQkFBUyxFQUFDLHlCQUN4Q0ksZ0NBQWdDSixJQUFBQSxnQkFBUyxFQUFDLG9CQUMxQ0ssbUNBQW1DTCxJQUFBQSxnQkFBUyxFQUFDLDhCQUM3Q00sb0NBQW9DTixJQUFBQSxnQkFBUyxFQUFDLCtCQUM5Q08sc0NBQXNDUCxJQUFBQSxnQkFBUyxFQUFDO0lBRXRELFdBQWVRLElBQUFBLGdCQUFXLDZCQUFDO2FBQU1DLFNBQ25CQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxLQUFLO2dDQUROSjtRQUU3QixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLEtBQUssR0FBR0E7Ozs7WUFHZkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixNQUFNO1lBQ3BCOzs7WUFFQUssS0FB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
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuXG5jb25zdCBzb21lVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc29tZS92YXJpYWJsZVwiKSxcbiAgICAgIHZhbHVlVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFsdWUvdmFyaWFibGVcIiksXG4gICAgICBldmVyeVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2V2ZXJ5L3ZhcmlhYmxlXCIpLFxuICAgICAgcmVkdWNlVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcmVkdWNlL3ZhcmlhYmxlXCIpLFxuICAgICAgbm9kZVF1ZXJ5VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbm9kZVF1ZXJ5L3ZhcmlhYmxlXCIpLFxuICAgICAgbm9kZXNRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL25vZGVzUXVlcnkvdmFyaWFibGVcIiksXG4gICAgICB2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi92YXJpYWJsZS9AbmFtZVwiKSxcbiAgICAgIGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2FycmF5QXNzaWdubWVudC92YXJpYWJsZVwiKSxcbiAgICAgIG9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9vYmplY3RBc3NpZ25tZW50L3ZhcmlhYmxlXCIpLFxuICAgICAgdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGVBc3NpZ25tZW50L3ZhcmlhYmxlXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBkb21Bc3NpZ25lZChjbGFzcyBWYXJpYWJsZSB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgbWF0Y2hWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKSB7XG4gICAgY29uc3QgbmFtZU1hdGNoZXMgPSAodGhpcy5uYW1lID09PSB2YXJpYWJsZU5hbWUpO1xuXG4gICAgcmV0dXJuIG5hbWVNYXRjaGVzO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgY29uc3QgdmFyaWFibGVOYW1lID0gdGhpcy5uYW1lLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSBjb250ZXh0LmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcblxuICAgIGlmICghdmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ307IHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50LidgLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgdmFyaWFibGUgPSBjb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSksXG4gICAgICAgICAgdmFsdWUgPSB2YXJpYWJsZS5nZXRWYWx1ZSgpLFxuICAgICAgICAgIHZhbHVlU3RyaW5nID0gdmFsdWUuYXNTdHJpbmcoY29udGV4dCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgdG8gdGhlICR7dmFsdWVTdHJpbmd9IHZhbHVlLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgYXNzaWduKHZhbHVlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5hc1N0cmluZyhjb250ZXh0KSwgLy8vXG4gICAgICAgICAgdmFyaWFibGVOYW1lID0gdGhpcy5uYW1lLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZVN0cmluZyA9IHRoaXMuc3RyaW5nLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSBjb250ZXh0LmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEFzc2lnbmluZyB0aGUgJHt2YWx1ZVN0cmluZ30gdmFsdWUgdG8gdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuLi5gKTtcblxuICAgIGlmICh2YXJpYWJsZVByZXNlbnQpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgaXMgYWxyZWFkeSBwcmVzZW50LmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFyaWFibGVUeXBlID0gdGhpcy50eXBlO1xuXG4gICAgaWYgKHZhbHVlVHlwZSAhPT0gdmFyaWFibGVUeXBlKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30gdmFyaWFibGUncyAnJHt2YXJpYWJsZVR5cGV9JyB0eXBlIGRvZXMgbm90IG1hdGNoIHRoZSB2YWx1ZSdzICcke3ZhbHVlVHlwZX0nIHR5cGUuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG5cbiAgICBjb25zdCB2YXJpYWJsZSA9IHRoaXM7ICAvLy9cblxuICAgIGNvbnRleHQuYWRkVmFyaWFibGUodmFyaWFibGUpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uYXNzaWduZWQgdGhlICR7dmFsdWVTdHJpbmd9IHZhbHVlIHRvIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlZhcmlhYmxlXCI7XG5cbiAgc3RhdGljIGZyb21Tb21lTm9kZShzb21lTm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHNvbWVWYXJpYWJsZU5vZGUgPSBzb21lVmFyaWFibGVOb2RlUXVlcnkoc29tZU5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHNvbWVWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhbHVlTm9kZSh2YWx1ZU5vZGUsIGNvbnRleHQpIHtcbiAgICBsZXQgdmFyaWFibGUgPSBudWxsO1xuXG4gICAgY29uc3QgdmFsdWVWYXJpYWJsZU5vZGUgPSB2YWx1ZVZhcmlhYmxlTm9kZVF1ZXJ5KHZhbHVlTm9kZSk7XG5cbiAgICBpZiAodmFsdWVWYXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlTm9kZSA9IHZhbHVlVmFyaWFibGVOb2RlOyAvLy9cblxuICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUV2ZXJ5Tm9kZShldmVyeU5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBldmVyeVZhcmlhYmxlTm9kZSA9IGV2ZXJ5VmFyaWFibGVOb2RlUXVlcnkoZXZlcnlOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBldmVyeVZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFyYW1ldGVyKHBhcmFtZXRlciwgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBwYXJhbWV0ZXIuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWUgPSBwYXJhbWV0ZXIuZ2V0TmFtZSgpLFxuICAgICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgICBzdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJlZHVjZU5vZGUocmVkdWNlTm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHJlZHVjZVZhcmlhYmxlTm9kZSA9IHJlZHVjZVZhcmlhYmxlTm9kZVF1ZXJ5KHJlZHVjZU5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHJlZHVjZVZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm9kZVF1ZXJ5Tm9kZShub2RlUXVlcnlOb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZVF1ZXJ5VmFyaWFibGVOb2RlID0gbm9kZVF1ZXJ5VmFyaWFibGVOb2RlUXVlcnkobm9kZVF1ZXJ5Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gbm9kZVF1ZXJ5VmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob2Rlc1F1ZXJ5Tm9kZShub2Rlc1F1ZXJ5Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IG5vZGVzUXVlcnlWYXJpYWJsZU5vZGUgPSBub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlUXVlcnkobm9kZXNRdWVyeU5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IG5vZGVzUXVlcnlWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5hbWVkUGFyYW1ldGVyKG5hbWVkUGFyYW1ldGVyLCBjb250ZXh0KSB7XG4gICAgY29uc3QgYXNOYW1lID0gbmFtZWRQYXJhbWV0ZXIuZ2V0QXNOYW1lKCksXG4gICAgICAgICAgdHlwZSA9IG5hbWVkUGFyYW1ldGVyLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lID0gKGFzTmFtZSAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgIGFzTmFtZSA6IC8vL1xuICAgICAgICAgICAgICAgICAgICAgbmFtZWRQYXJhbWV0ZXIuZ2V0TmFtZSgpLFxuICAgICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgICBzdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhbHVlQW5kUGFyYW1ldGVyKHZhbHVlLCBwYXJhbWV0ZXIsIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gcGFyYW1ldGVyLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lID0gcGFyYW1ldGVyLmdldE5hbWUoKSxcbiAgICAgICAgICBzdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUodmFyaWFibGVOb2RlLCB0eXBlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgIG5hbWUgPSBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIHR5cGUsIG5hbWUsIHZhbHVlKTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQXJyYXlBc3NpZ25tZW50Tm9kZShhcnJheUFzc2lnbm1lbnROb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlID0gYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkoYXJyYXlBc3NpZ25tZW50Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21PYmplY3RBc3NpZ25tZW50Tm9kZShvYmplY3RBc3NpZ25tZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IG9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGUgPSBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkob2JqZWN0QXNzaWdubWVudE5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IG9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVR5cGVBbmRWYXJpYWJsZUFzc2lnbm1lbnROb2RlKHR5cGUsIHZhcmlhYmxlQXNzaWdubWVudE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnRWYXJpYWJsZU5vZGUgPSB2YXJpYWJsZUFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSh2YXJpYWJsZUFzc2lnbm1lbnROb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZUFzc2lnbm1lbnRWYXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVR5cGVBbmRWYXJpYWJsZU5vZGUodHlwZSwgdmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIHZhcmlhYmxlRnJvbVR5cGVBbmRWYXJpYWJsZU5vZGUodHlwZSwgdmFyaWFibGVOb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgbmFtZSA9IG5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSk7XG5cbiAgcmV0dXJuIHZhcmlhYmxlO1xufVxuXG5mdW5jdGlvbiB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgdHlwZSA9IG51bGwsXG4gICAgICAgIG5hbWUgPSBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICB2YWx1ZSA9IG51bGwsXG4gICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUpO1xuXG4gIHJldHVybiB2YXJpYWJsZTtcbn1cblxuZnVuY3Rpb24gbmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSB7XG4gIGNvbnN0IHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZSA9IHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5KHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZUNvbnRlbnQgPSB2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICBuYW1lID0gdmFyaWFibGVOYW1lVGVybWluYWxOb2RlQ29udGVudDsgLy8vXG5cbiAgcmV0dXJuIG5hbWU7XG59XG4iXSwibmFtZXMiOlsic29tZVZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidmFsdWVWYXJpYWJsZU5vZGVRdWVyeSIsImV2ZXJ5VmFyaWFibGVOb2RlUXVlcnkiLCJyZWR1Y2VWYXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZXNRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5IiwidmFyaWFibGVOYW1lVGVybWluYWxOb2RlUXVlcnkiLCJhcnJheUFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSIsIm9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSIsInZhcmlhYmxlQXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5IiwiZG9tQXNzaWduZWQiLCJWYXJpYWJsZSIsInN0cmluZyIsInR5cGUiLCJuYW1lIiwidmFsdWUiLCJnZXRTdHJpbmciLCJnZXRUeXBlIiwiZ2V0TmFtZSIsImdldFZhbHVlIiwibWF0Y2hWYXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWUiLCJuYW1lTWF0Y2hlcyIsImV2YWx1YXRlIiwiY29udGV4dCIsInZhcmlhYmxlU3RyaW5nIiwidHJhY2UiLCJ2YXJpYWJsZVByZXNlbnQiLCJpc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsInZhbHVlU3RyaW5nIiwiYXNTdHJpbmciLCJkZWJ1ZyIsImFzc2lnbiIsInZhbHVlVHlwZSIsInZhcmlhYmxlVHlwZSIsImFkZFZhcmlhYmxlIiwiZnJvbVNvbWVOb2RlIiwic29tZU5vZGUiLCJzb21lVmFyaWFibGVOb2RlIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGVGcm9tVmFyaWFibGVOb2RlIiwiZnJvbVZhbHVlTm9kZSIsInZhbHVlTm9kZSIsInZhbHVlVmFyaWFibGVOb2RlIiwiZnJvbUV2ZXJ5Tm9kZSIsImV2ZXJ5Tm9kZSIsImV2ZXJ5VmFyaWFibGVOb2RlIiwiZnJvbVBhcmFtZXRlciIsInBhcmFtZXRlciIsImZyb21SZWR1Y2VOb2RlIiwicmVkdWNlTm9kZSIsInJlZHVjZVZhcmlhYmxlTm9kZSIsImZyb21Ob2RlUXVlcnlOb2RlIiwibm9kZVF1ZXJ5Tm9kZSIsIm5vZGVRdWVyeVZhcmlhYmxlTm9kZSIsImZyb21Ob2Rlc1F1ZXJ5Tm9kZSIsIm5vZGVzUXVlcnlOb2RlIiwibm9kZXNRdWVyeVZhcmlhYmxlTm9kZSIsImZyb21OYW1lZFBhcmFtZXRlciIsIm5hbWVkUGFyYW1ldGVyIiwiYXNOYW1lIiwiZ2V0QXNOYW1lIiwiZnJvbVZhbHVlQW5kUGFyYW1ldGVyIiwiZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUiLCJub2RlIiwibm9kZUFzU3RyaW5nIiwibmFtZUZyb21WYXJpYWJsZU5vZGUiLCJmcm9tQXJyYXlBc3NpZ25tZW50Tm9kZSIsImFycmF5QXNzaWdubWVudE5vZGUiLCJhcnJheUFzc2lnbm1lbnRWYXJpYWJsZU5vZGUiLCJmcm9tT2JqZWN0QXNzaWdubWVudE5vZGUiLCJvYmplY3RBc3NpZ25tZW50Tm9kZSIsIm9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGUiLCJmcm9tVHlwZUFuZFZhcmlhYmxlQXNzaWdubWVudE5vZGUiLCJ2YXJpYWJsZUFzc2lnbm1lbnROb2RlIiwidmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlIiwidmFyaWFibGVGcm9tVHlwZUFuZFZhcmlhYmxlTm9kZSIsImRvbSIsInZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZSIsInZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZUNvbnRlbnQiLCJnZXRDb250ZW50Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFtQkE7OztlQUFBOzs7MkRBakJnQjtnRUFDTTtxQkFFSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHMUIsSUFBTUEsd0JBQXdCQyxJQUFBQSxnQkFBUyxFQUFDLG1CQUNsQ0MseUJBQXlCRCxJQUFBQSxnQkFBUyxFQUFDLG9CQUNuQ0UseUJBQXlCRixJQUFBQSxnQkFBUyxFQUFDLG9CQUNuQ0csMEJBQTBCSCxJQUFBQSxnQkFBUyxFQUFDLHFCQUNwQ0ksNkJBQTZCSixJQUFBQSxnQkFBUyxFQUFDLHdCQUN2Q0ssOEJBQThCTCxJQUFBQSxnQkFBUyxFQUFDLHlCQUN4Q00sZ0NBQWdDTixJQUFBQSxnQkFBUyxFQUFDLG9CQUMxQ08sbUNBQW1DUCxJQUFBQSxnQkFBUyxFQUFDLDhCQUM3Q1Esb0NBQW9DUixJQUFBQSxnQkFBUyxFQUFDLCtCQUM5Q1Msc0NBQXNDVCxJQUFBQSxnQkFBUyxFQUFDO0lBRXRELFdBQWVVLElBQUFBLGdCQUFXLDZCQUFDO2FBQU1DLFNBQ25CQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxLQUFLO2dDQUROSjtRQUU3QixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLEtBQUssR0FBR0E7Ozs7WUFHZkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixNQUFNO1lBQ3BCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxD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
package/lib/index.js CHANGED
@@ -25,7 +25,9 @@ var _label = /*#__PURE__*/ _interop_require_default(require("./dom/label"));
25
25
  var _block = /*#__PURE__*/ _interop_require_default(require("./dom/block"));
26
26
  var _error = /*#__PURE__*/ _interop_require_default(require("./dom/error"));
27
27
  var _value = /*#__PURE__*/ _interop_require_default(require("./dom/value"));
28
+ var _every = /*#__PURE__*/ _interop_require_default(require("./dom/every"));
28
29
  var _values = /*#__PURE__*/ _interop_require_default(require("./dom/values"));
30
+ var _reduce = /*#__PURE__*/ _interop_require_default(require("./dom/reduce"));
29
31
  var _ternary = /*#__PURE__*/ _interop_require_default(require("./dom/ternary"));
30
32
  var _variable = /*#__PURE__*/ _interop_require_default(require("./dom/variable"));
31
33
  var _reference = /*#__PURE__*/ _interop_require_default(require("./dom/reference"));
@@ -59,4 +61,4 @@ function _interop_require_default(obj) {
59
61
  };
60
62
  }
61
63
 
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFN0ZXAgZnJvbSBcIi4vZG9tL3N0ZXBcIjtcbmltcG9ydCBTb21lIGZyb20gXCIuL2RvbS9zb21lXCI7XG5pbXBvcnQgTGFiZWwgZnJvbSBcIi4vZG9tL2xhYmVsXCI7XG5pbXBvcnQgQmxvY2sgZnJvbSBcIi4vZG9tL2Jsb2NrXCI7XG5pbXBvcnQgRXJyb3IgZnJvbSBcIi4vZG9tL2Vycm9yXCI7XG5pbXBvcnQgVmFsdWUgZnJvbSBcIi4vZG9tL3ZhbHVlXCI7XG5pbXBvcnQgVmFsdWVzIGZyb20gXCIuL2RvbS92YWx1ZXNcIjtcbmltcG9ydCBUZXJuYXJ5IGZyb20gXCIuL2RvbS90ZXJuYXJ5XCI7XG5pbXBvcnQgVmFyaWFibGUgZnJvbSBcIi4vZG9tL3ZhcmlhYmxlXCI7XG5pbXBvcnQgUmVmZXJlbmNlIGZyb20gXCIuL2RvbS9yZWZlcmVuY2VcIjtcbmltcG9ydCBQcm9jZWR1cmUgZnJvbSBcIi4vZG9tL3Byb2NlZHVyZVwiO1xuaW1wb3J0IE5vZGVRdWVyeSBmcm9tIFwiLi9kb20vcXVlcnkvbm9kZVwiO1xuaW1wb3J0IFBhcmFtZXRlciBmcm9tIFwiLi9kb20vcGFyYW1ldGVyXCI7XG5pbXBvcnQgUGFyYW1ldGVycyBmcm9tIFwiLi9kb20vcGFyYW1ldGVyc1wiO1xuaW1wb3J0IE5vZGVzUXVlcnkgZnJvbSBcIi4vZG9tL3F1ZXJ5L25vZGVzXCI7XG5pbXBvcnQgQ29tcGFyaXNvbiBmcm9tIFwiLi9kb20vY29tcGFyaXNvblwiO1xuaW1wb3J0IFJldHVybkJsb2NrIGZyb20gXCIuL2RvbS9ibG9jay9yZXR1cm5cIjtcbmltcG9ydCBOZWdhdGVkVmFsdWUgZnJvbSBcIi4vZG9tL3ZhbHVlL25lZ2F0ZWRcIjtcbmltcG9ydCBCaXR3aXNlVmFsdWUgZnJvbSBcIi4vZG9tL3ZhbHVlL2JpdHdpc2VcIjtcbmltcG9ydCBQcm9jZWR1cmVDYWxsIGZyb20gXCIuL2RvbS9wcm9jZWR1cmVDYWxsXCI7XG5pbXBvcnQgTmFtZWRQYXJhbWV0ZXIgZnJvbSBcIi4vZG9tL3BhcmFtZXRlci9uYW1lZFwiO1xuaW1wb3J0IEJyYWNrZXRlZFZhbHVlIGZyb20gXCIuL2RvbS92YWx1ZS9icmFja2V0ZWRcIjtcbmltcG9ydCBBcnJheUFzc2lnbWVudCBmcm9tIFwiLi9kb20vYXNzaWdubWVudC9hcnJheVwiO1xuaW1wb3J0IFJldHVyblN0YXRlbWVudCBmcm9tIFwiLi9kb20vc3RhdGVtZW50L3JldHVyblwiO1xuaW1wb3J0IE5hbWVkUGFyYW1ldGVycyBmcm9tIFwiLi9kb20vcGFyYW1ldGVycy9uYW1lZFwiO1xuaW1wb3J0IE9iamVjdEFzc2lnbm1lbnQgZnJvbSBcIi4vZG9tL2Fzc2lnbm1lbnQvb2JqZWN0XCI7XG5pbXBvcnQgQ29uZGl0aW9uYWxCbG9ja3MgZnJvbSBcIi4vZG9tL2NvbmRpdGlvbmFsQmxvY2tzXCI7XG5pbXBvcnQgQW5vbnltb3VzUHJvY2VkdXJlIGZyb20gXCIuL2RvbS9wcm9jZWR1cmUvYW5vbnltb3VzXCI7XG5pbXBvcnQgVmFyaWFibGVBc3NpZ25tZW50IGZyb20gXCIuL2RvbS9hc3NpZ25tZW50L3ZhcmlhYmxlXCI7XG5pbXBvcnQgVmFyaWFibGVBc3NpZ25tZW50cyBmcm9tIFwiLi9kb20vYXNzaWdubWVudHMvdmFyaWFibGVcIjtcbmltcG9ydCBQcm9jZWR1cmVEZWNsYXJhdGlvbiBmcm9tIFwiLi9kb20vZGVjbGFyYXRpb24vcHJvY2VkdXJlXCI7XG5pbXBvcnQgQW5vbnltb3VzUHJvY2VkdXJlQ2FsbCBmcm9tIFwiLi9kb20vcHJvY2VkdXJlQ2FsbC9hbm9ueW1vdXNcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBWYWx1ZXMgfSBmcm9tIFwiLi9kb20vdmFsdWVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVDb250ZXh0IH0gZnJvbSBcIi4vY29udGV4dC9maWxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHN0cmluZ1V0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9zdHJpbmdcIjtcbiJdLCJuYW1lcyI6WyJGaWxlQ29udGV4dCIsIlZhbHVlcyIsInN0cmluZ1V0aWxpdGllcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBb0NvQkEsV0FBVztlQUFYQSxhQUFXOztJQURYQyxNQUFNO2VBQU5BLGVBQU07O0lBRU5DLGVBQWU7ZUFBZkEsZUFBZTs7OzJEQW5DbEI7MkRBQ0E7NERBQ0M7NERBQ0E7NERBQ0E7NERBQ0E7NkRBQ0M7OERBQ0M7K0RBQ0M7Z0VBQ0M7Z0VBQ0E7MkRBQ0E7Z0VBQ0E7aUVBQ0M7NERBQ0E7aUVBQ0E7NkRBQ0M7OERBQ0M7OERBQ0E7b0VBQ0M7NERBQ0M7Z0VBQ0E7NERBQ0E7OERBQ0M7NkRBQ0E7NkRBQ0M7d0VBQ0M7Z0VBQ0M7Z0VBQ0E7Z0VBQ0M7aUVBQ0M7aUVBQ0U7MkRBR0k7NkRBQ0kifQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFN0ZXAgZnJvbSBcIi4vZG9tL3N0ZXBcIjtcbmltcG9ydCBTb21lIGZyb20gXCIuL2RvbS9zb21lXCI7XG5pbXBvcnQgTGFiZWwgZnJvbSBcIi4vZG9tL2xhYmVsXCI7XG5pbXBvcnQgQmxvY2sgZnJvbSBcIi4vZG9tL2Jsb2NrXCI7XG5pbXBvcnQgRXJyb3IgZnJvbSBcIi4vZG9tL2Vycm9yXCI7XG5pbXBvcnQgVmFsdWUgZnJvbSBcIi4vZG9tL3ZhbHVlXCI7XG5pbXBvcnQgRXZlcnkgZnJvbSBcIi4vZG9tL2V2ZXJ5XCI7XG5pbXBvcnQgVmFsdWVzIGZyb20gXCIuL2RvbS92YWx1ZXNcIjtcbmltcG9ydCBSZWR1Y2UgZnJvbSBcIi4vZG9tL3JlZHVjZVwiO1xuaW1wb3J0IFRlcm5hcnkgZnJvbSBcIi4vZG9tL3Rlcm5hcnlcIjtcbmltcG9ydCBWYXJpYWJsZSBmcm9tIFwiLi9kb20vdmFyaWFibGVcIjtcbmltcG9ydCBSZWZlcmVuY2UgZnJvbSBcIi4vZG9tL3JlZmVyZW5jZVwiO1xuaW1wb3J0IFByb2NlZHVyZSBmcm9tIFwiLi9kb20vcHJvY2VkdXJlXCI7XG5pbXBvcnQgTm9kZVF1ZXJ5IGZyb20gXCIuL2RvbS9xdWVyeS9ub2RlXCI7XG5pbXBvcnQgUGFyYW1ldGVyIGZyb20gXCIuL2RvbS9wYXJhbWV0ZXJcIjtcbmltcG9ydCBQYXJhbWV0ZXJzIGZyb20gXCIuL2RvbS9wYXJhbWV0ZXJzXCI7XG5pbXBvcnQgTm9kZXNRdWVyeSBmcm9tIFwiLi9kb20vcXVlcnkvbm9kZXNcIjtcbmltcG9ydCBDb21wYXJpc29uIGZyb20gXCIuL2RvbS9jb21wYXJpc29uXCI7XG5pbXBvcnQgUmV0dXJuQmxvY2sgZnJvbSBcIi4vZG9tL2Jsb2NrL3JldHVyblwiO1xuaW1wb3J0IE5lZ2F0ZWRWYWx1ZSBmcm9tIFwiLi9kb20vdmFsdWUvbmVnYXRlZFwiO1xuaW1wb3J0IEJpdHdpc2VWYWx1ZSBmcm9tIFwiLi9kb20vdmFsdWUvYml0d2lzZVwiO1xuaW1wb3J0IFByb2NlZHVyZUNhbGwgZnJvbSBcIi4vZG9tL3Byb2NlZHVyZUNhbGxcIjtcbmltcG9ydCBOYW1lZFBhcmFtZXRlciBmcm9tIFwiLi9kb20vcGFyYW1ldGVyL25hbWVkXCI7XG5pbXBvcnQgQnJhY2tldGVkVmFsdWUgZnJvbSBcIi4vZG9tL3ZhbHVlL2JyYWNrZXRlZFwiO1xuaW1wb3J0IEFycmF5QXNzaWdtZW50IGZyb20gXCIuL2RvbS9hc3NpZ25tZW50L2FycmF5XCI7XG5pbXBvcnQgUmV0dXJuU3RhdGVtZW50IGZyb20gXCIuL2RvbS9zdGF0ZW1lbnQvcmV0dXJuXCI7XG5pbXBvcnQgTmFtZWRQYXJhbWV0ZXJzIGZyb20gXCIuL2RvbS9wYXJhbWV0ZXJzL25hbWVkXCI7XG5pbXBvcnQgT2JqZWN0QXNzaWdubWVudCBmcm9tIFwiLi9kb20vYXNzaWdubWVudC9vYmplY3RcIjtcbmltcG9ydCBDb25kaXRpb25hbEJsb2NrcyBmcm9tIFwiLi9kb20vY29uZGl0aW9uYWxCbG9ja3NcIjtcbmltcG9ydCBBbm9ueW1vdXNQcm9jZWR1cmUgZnJvbSBcIi4vZG9tL3Byb2NlZHVyZS9hbm9ueW1vdXNcIjtcbmltcG9ydCBWYXJpYWJsZUFzc2lnbm1lbnQgZnJvbSBcIi4vZG9tL2Fzc2lnbm1lbnQvdmFyaWFibGVcIjtcbmltcG9ydCBWYXJpYWJsZUFzc2lnbm1lbnRzIGZyb20gXCIuL2RvbS9hc3NpZ25tZW50cy92YXJpYWJsZVwiO1xuaW1wb3J0IFByb2NlZHVyZURlY2xhcmF0aW9uIGZyb20gXCIuL2RvbS9kZWNsYXJhdGlvbi9wcm9jZWR1cmVcIjtcbmltcG9ydCBBbm9ueW1vdXNQcm9jZWR1cmVDYWxsIGZyb20gXCIuL2RvbS9wcm9jZWR1cmVDYWxsL2Fub255bW91c1wiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIFZhbHVlcyB9IGZyb20gXCIuL2RvbS92YWx1ZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L2ZpbGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgc3RyaW5nVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuIl0sIm5hbWVzIjpbIkZpbGVDb250ZXh0IiwiVmFsdWVzIiwic3RyaW5nVXRpbGl0aWVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFzQ29CQSxXQUFXO2VBQVhBLGFBQVc7O0lBRFhDLE1BQU07ZUFBTkEsZUFBTTs7SUFFTkMsZUFBZTtlQUFmQSxlQUFlOzs7MkRBckNsQjsyREFDQTs0REFDQzs0REFDQTs0REFDQTs0REFDQTs0REFDQTs2REFDQzs2REFDQTs4REFDQzsrREFDQztnRUFDQztnRUFDQTsyREFDQTtnRUFDQTtpRUFDQzs0REFDQTtpRUFDQTs2REFDQzs4REFDQzs4REFDQTtvRUFDQzs0REFDQztnRUFDQTs0REFDQTs4REFDQzs2REFDQTs2REFDQzt3RUFDQztnRUFDQztnRUFDQTtnRUFDQztpRUFDQztpRUFDRTsyREFHSTs2REFDSSJ9
@@ -92,9 +92,9 @@ var NodeProperty = /*#__PURE__*/ function() {
92
92
  return NodeProperty;
93
93
  }();
94
94
  _define_property(NodeProperty, "name", "Parameter");
95
- function stringFromNameAndType(name, type) {
95
+ function stringFromNameAndType(name, type, context) {
96
96
  var string = "".concat(type, " ").concat(name);
97
97
  return string;
98
98
  }
99
99
 
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlUHJvcGVydHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5vZGVQcm9wZXJ0eSB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgdHlwZSwgbmFtZSkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBtYXRjaE5hbWVkUGFyYW1ldGVyKG5hbWVkUGFyYW1ldGVyLCBjb250ZXh0KSB7XG4gICAgbGV0IG5hbWVkUGFyYW1ldGVyTWF0Y2hlcztcblxuICAgIGNvbnN0IG5vZGVQcm9wZXJ0eVN0cmluZyA9IHRoaXMuc3RyaW5nLCAvLy9cbiAgICAgICAgICBuYW1lZFBhcmFtZXRlclN0cmluZyA9IG5hbWVkUGFyYW1ldGVyLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgTWF0Y2hpbmcgdGhlICcke25vZGVQcm9wZXJ0eVN0cmluZ30nIG5vZGUgcHJvcGVydHkgYWdhaW5zdCB0aGUgJyR7bmFtZWRQYXJhbWV0ZXJTdHJpbmd9JyBuYW1lZCBwYXJhbWV0ZXIuLi5gKTtcblxuICAgIGNvbnN0IG5hbWUgPSBuYW1lZFBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgdHlwZSA9IG5hbWVkUGFyYW1ldGVyLmdldFR5cGUoKTtcblxuICAgIG5hbWVkUGFyYW1ldGVyTWF0Y2hlcyA9ICgodGhpcy5uYW1lID09PSBuYW1lKSAmJiAodGhpcy50eXBlID09PSB0eXBlKSk7XG5cbiAgICBpZiAobmFtZWRQYXJhbWV0ZXJNYXRjaGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5tYXRjaGVkIHRoZSAnJHtub2RlUHJvcGVydHlTdHJpbmd9JyBub2RlIHByb3BlcnR5IGFnYWluc3QgdGhlICcke25hbWVkUGFyYW1ldGVyU3RyaW5nfScgbmFtZWQgcGFyYW1ldGVyLmApO1xuICAgIH1cblxuICAgIHJldHVybiBuYW1lZFBhcmFtZXRlck1hdGNoZXM7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUGFyYW1ldGVyXCI7XG5cbiAgc3RhdGljIGZyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWVBbmRUeXBlKG5hbWUsIHR5cGUsIGNvbnRleHQpLFxuICAgICAgICAgIG5vZGVQcm9wZXJ0eSA9IG5ldyBOb2RlUHJvcGVydHkoc3RyaW5nLCB0eXBlLCBuYW1lKTtcblxuICAgIHJldHVybiBub2RlUHJvcGVydHk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlKSB7XG4gIGNvbnN0IHN0cmluZyA9IGAke3R5cGV9ICR7bmFtZX1gO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOlsiTm9kZVByb3BlcnR5Iiwic3RyaW5nIiwidHlwZSIsIm5hbWUiLCJnZXRTdHJpbmciLCJnZXRUeXBlIiwiZ2V0TmFtZSIsIm1hdGNoTmFtZWRQYXJhbWV0ZXIiLCJuYW1lZFBhcmFtZXRlciIsImNvbnRleHQiLCJuYW1lZFBhcmFtZXRlck1hdGNoZXMiLCJub2RlUHJvcGVydHlTdHJpbmciLCJuYW1lZFBhcmFtZXRlclN0cmluZyIsInRyYWNlIiwiZGVidWciLCJmcm9tTmFtZUFuZFR5cGUiLCJzdHJpbmdGcm9tTmFtZUFuZFR5cGUiLCJub2RlUHJvcGVydHkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBRXFCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTixJQUFBLEFBQU1BLDZCQUFOO2FBQU1BLGFBQ1BDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJO2dDQURYSDtRQUVqQixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7O2tCQUpLSDs7WUFPbkJJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsTUFBTTtZQUNwQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsSUFBSTtZQUNsQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsSUFBSTtZQUNsQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQSxvQkFBb0JDLGNBQWMsRUFBRUMsT0FBTztnQkFDekMsSUFBSUM7Z0JBRUosSUFBTUMscUJBQXFCLElBQUksQ0FBQ1YsTUFBTSxFQUNoQ1csdUJBQXVCSixlQUFlSixTQUFTO2dCQUVyREssUUFBUUksS0FBSyxDQUFDLEFBQUMsaUJBQWtFRCxPQUFsREQsb0JBQW1CLGlDQUFvRCxPQUFyQkMsc0JBQXFCO2dCQUV0RyxJQUFNVCxPQUFPSyxlQUFlRixPQUFPLElBQzdCSixPQUFPTSxlQUFlSCxPQUFPO2dCQUVuQ0ssd0JBQXlCLEFBQUMsSUFBSSxDQUFDUCxJQUFJLEtBQUtBLFFBQVUsSUFBSSxDQUFDRCxJQUFJLEtBQUtBO2dCQUVoRSxJQUFJUSx1QkFBdUI7b0JBQ3pCRCxRQUFRSyxLQUFLLENBQUMsQUFBQyxtQkFBb0VGLE9BQWxERCxvQkFBbUIsaUNBQW9ELE9BQXJCQyxzQkFBcUI7Z0JBQzFHO2dCQUVBLE9BQU9GO1lBQ1Q7Ozs7WUFJT0ssS0FBQUE7bUJBQVAsU0FBT0EsZ0JBQWdCWixJQUFJLEVBQUVELElBQUksRUFBRU8sT0FBTztnQkFDeEMsSUFBTVIsU0FBU2Usc0JBQXNCYixNQUFNRCxNQUFNTyxVQUMzQ1EsZUFBZSxJQTNDSmpCLGFBMkNxQkMsUUFBUUMsTUFBTUM7Z0JBRXBELE9BQU9jO1lBQ1Q7OztXQTlDbUJqQjs7QUF1Q25CLGlCQXZDbUJBLGNBdUNaRyxRQUFPO0FBVWhCLFNBQVNhLHNCQUFzQmIsSUFBSSxFQUFFRCxJQUFJO0lBQ3ZDLElBQU1ELFNBQVMsQUFBQyxHQUFVRSxPQUFSRCxNQUFLLEtBQVEsT0FBTEM7SUFFMUIsT0FBT0Y7QUFDVCJ9
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlUHJvcGVydHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5vZGVQcm9wZXJ0eSB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgdHlwZSwgbmFtZSkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBtYXRjaE5hbWVkUGFyYW1ldGVyKG5hbWVkUGFyYW1ldGVyLCBjb250ZXh0KSB7XG4gICAgbGV0IG5hbWVkUGFyYW1ldGVyTWF0Y2hlcztcblxuICAgIGNvbnN0IG5vZGVQcm9wZXJ0eVN0cmluZyA9IHRoaXMuc3RyaW5nLCAvLy9cbiAgICAgICAgICBuYW1lZFBhcmFtZXRlclN0cmluZyA9IG5hbWVkUGFyYW1ldGVyLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgTWF0Y2hpbmcgdGhlICcke25vZGVQcm9wZXJ0eVN0cmluZ30nIG5vZGUgcHJvcGVydHkgYWdhaW5zdCB0aGUgJyR7bmFtZWRQYXJhbWV0ZXJTdHJpbmd9JyBuYW1lZCBwYXJhbWV0ZXIuLi5gKTtcblxuICAgIGNvbnN0IG5hbWUgPSBuYW1lZFBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgdHlwZSA9IG5hbWVkUGFyYW1ldGVyLmdldFR5cGUoKTtcblxuICAgIG5hbWVkUGFyYW1ldGVyTWF0Y2hlcyA9ICgodGhpcy5uYW1lID09PSBuYW1lKSAmJiAodGhpcy50eXBlID09PSB0eXBlKSk7XG5cbiAgICBpZiAobmFtZWRQYXJhbWV0ZXJNYXRjaGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5tYXRjaGVkIHRoZSAnJHtub2RlUHJvcGVydHlTdHJpbmd9JyBub2RlIHByb3BlcnR5IGFnYWluc3QgdGhlICcke25hbWVkUGFyYW1ldGVyU3RyaW5nfScgbmFtZWQgcGFyYW1ldGVyLmApO1xuICAgIH1cblxuICAgIHJldHVybiBuYW1lZFBhcmFtZXRlck1hdGNoZXM7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUGFyYW1ldGVyXCI7XG5cbiAgc3RhdGljIGZyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWVBbmRUeXBlKG5hbWUsIHR5cGUsIGNvbnRleHQpLFxuICAgICAgICAgIG5vZGVQcm9wZXJ0eSA9IG5ldyBOb2RlUHJvcGVydHkoc3RyaW5nLCB0eXBlLCBuYW1lKTtcblxuICAgIHJldHVybiBub2RlUHJvcGVydHk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0cmluZyA9IGAke3R5cGV9ICR7bmFtZX1gO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOlsiTm9kZVByb3BlcnR5Iiwic3RyaW5nIiwidHlwZSIsIm5hbWUiLCJnZXRTdHJpbmciLCJnZXRUeXBlIiwiZ2V0TmFtZSIsIm1hdGNoTmFtZWRQYXJhbWV0ZXIiLCJuYW1lZFBhcmFtZXRlciIsImNvbnRleHQiLCJuYW1lZFBhcmFtZXRlck1hdGNoZXMiLCJub2RlUHJvcGVydHlTdHJpbmciLCJuYW1lZFBhcmFtZXRlclN0cmluZyIsInRyYWNlIiwiZGVidWciLCJmcm9tTmFtZUFuZFR5cGUiLCJzdHJpbmdGcm9tTmFtZUFuZFR5cGUiLCJub2RlUHJvcGVydHkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBRXFCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTixJQUFBLEFBQU1BLDZCQUFOO2FBQU1BLGFBQ1BDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJO2dDQURYSDtRQUVqQixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7O2tCQUpLSDs7WUFPbkJJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsTUFBTTtZQUNwQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsSUFBSTtZQUNsQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsSUFBSTtZQUNsQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQSxvQkFBb0JDLGNBQWMsRUFBRUMsT0FBTztnQkFDekMsSUFBSUM7Z0JBRUosSUFBTUMscUJBQXFCLElBQUksQ0FBQ1YsTUFBTSxFQUNoQ1csdUJBQXVCSixlQUFlSixTQUFTO2dCQUVyREssUUFBUUksS0FBSyxDQUFDLEFBQUMsaUJBQWtFRCxPQUFsREQsb0JBQW1CLGlDQUFvRCxPQUFyQkMsc0JBQXFCO2dCQUV0RyxJQUFNVCxPQUFPSyxlQUFlRixPQUFPLElBQzdCSixPQUFPTSxlQUFlSCxPQUFPO2dCQUVuQ0ssd0JBQXlCLEFBQUMsSUFBSSxDQUFDUCxJQUFJLEtBQUtBLFFBQVUsSUFBSSxDQUFDRCxJQUFJLEtBQUtBO2dCQUVoRSxJQUFJUSx1QkFBdUI7b0JBQ3pCRCxRQUFRSyxLQUFLLENBQUMsQUFBQyxtQkFBb0VGLE9BQWxERCxvQkFBbUIsaUNBQW9ELE9BQXJCQyxzQkFBcUI7Z0JBQzFHO2dCQUVBLE9BQU9GO1lBQ1Q7Ozs7WUFJT0ssS0FBQUE7bUJBQVAsU0FBT0EsZ0JBQWdCWixJQUFJLEVBQUVELElBQUksRUFBRU8sT0FBTztnQkFDeEMsSUFBTVIsU0FBU2Usc0JBQXNCYixNQUFNRCxNQUFNTyxVQUMzQ1EsZUFBZSxJQTNDSmpCLGFBMkNxQkMsUUFBUUMsTUFBTUM7Z0JBRXBELE9BQU9jO1lBQ1Q7OztXQTlDbUJqQjs7QUF1Q25CLGlCQXZDbUJBLGNBdUNaRyxRQUFPO0FBVWhCLFNBQVNhLHNCQUFzQmIsSUFBSSxFQUFFRCxJQUFJLEVBQUVPLE9BQU87SUFDaEQsSUFBTVIsU0FBUyxBQUFDLEdBQVVFLE9BQVJELE1BQUssS0FBUSxPQUFMQztJQUUxQixPQUFPRjtBQUNUIn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-furtle",
3
3
  "author": "James Smith",
4
- "version": "2.0.78",
4
+ "version": "2.0.82",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-furtle",
7
7
  "description": "Occam's Furtle language.",
@@ -11,13 +11,13 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "necessary": "^14.3.2",
14
- "occam-grammars": "^1.3.176"
14
+ "occam-grammars": "^1.3.179"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@swc/core": "^1.5.6",
18
- "occam-custom-grammars": "^5.0.1092",
19
- "occam-entities": "^1.0.301",
20
- "occam-query": "^4.1.33",
18
+ "occam-custom-grammars": "^5.0.1094",
19
+ "occam-entities": "^1.0.303",
20
+ "occam-query": "^4.1.35",
21
21
  "watchful-cli": "^1.7.56"
22
22
  },
23
23
  "scripts": {
package/src/constants.js CHANGED
@@ -5,5 +5,7 @@ export const TRUE = "true";
5
5
  export const FALSE = "false";
6
6
  export const FUNCTION = "function";
7
7
  export const EQUAL_TO = "==";
8
+ export const CONJUNCTION = "&&";
8
9
  export const DISJUNCTION = "||";
9
10
  export const EMPTY_STRING = "";
11
+ export const NOT_EQUAL_TO = "!=";
@@ -102,10 +102,9 @@ export default domAssigned(class ArrayAssigment {
102
102
 
103
103
  if (arrayAssignmentNode !== null) {
104
104
  const { Variable, Parameters } = dom,
105
- node = arrayAssignmentNode, ///
106
- string = context.nodeAsString(node),
105
+ parameters = Parameters.fromArrayAssignmentNode(arrayAssignmentNode, context),
107
106
  variable = Variable.fromArrayAssignmentNode(arrayAssignmentNode, context),
108
- parameters = Parameters.fromArrayAssignmentNode(arrayAssignmentNode, context);
107
+ string = stringFromVariableAndParameters(variable, parameters, context);
109
108
 
110
109
  arrayAssignment = new ArrayAssigment(string, variable, parameters);
111
110
  }
@@ -113,3 +112,11 @@ export default domAssigned(class ArrayAssigment {
113
112
  return arrayAssignment;
114
113
  }
115
114
  });
115
+
116
+ function stringFromVariableAndParameters(variable, parameters, context) {
117
+ const variableString = variable.getString(),
118
+ parametersString = parameters.getString(),
119
+ string = `[ ${parametersString} ] = ${variableString};`;
120
+
121
+ return string;
122
+ }
@@ -187,10 +187,9 @@ export default domAssigned(class ObjectAssigment {
187
187
 
188
188
  if (objectAssignmentNode !== null) {
189
189
  const { Variable, NamedParameters } = dom,
190
- node = objectAssignmentNode, ///
191
- string = context.nodeAsString(node),
190
+ namedParameters = NamedParameters.fromObjectAssignmentNode(objectAssignmentNode, context),
192
191
  variable = Variable.fromObjectAssignmentNode(objectAssignmentNode, context),
193
- namedParameters = NamedParameters.fromObjectAssignmentNode(objectAssignmentNode, context);
192
+ string = stringFromVariableAndNamesParameters(variable, namedParameters, context);
194
193
 
195
194
  objectAssignment = new ObjectAssigment(string, variable, namedParameters);
196
195
  }
@@ -198,3 +197,11 @@ export default domAssigned(class ObjectAssigment {
198
197
  return objectAssignment;
199
198
  }
200
199
  });
200
+
201
+ function stringFromVariableAndNamesParameters(variable, namedParameters, context) {
202
+ const namedParametersString = namedParameters.getString(),
203
+ variableString = variable.getString(),
204
+ string = `{ ${namedParametersString} } = ${variableString};`;
205
+
206
+ return string;
207
+ }
@@ -50,11 +50,18 @@ export default domAssigned(class VariableAssignment {
50
50
 
51
51
  function variableAssignmentFromTypeAndVariableAssignmentNode(type, variableAssignmentNode, context) {
52
52
  const { Variable, Value, VariableAssignment } = dom,
53
- node = variableAssignmentNode, ///
54
- string = context.nodeAsString(node),
55
53
  value = Value.fromVariableAssignmentNode(variableAssignmentNode, context),
56
54
  variable = Variable.fromTypeAndVariableAssignmentNode(type, variableAssignmentNode, context),
55
+ string = stringFromValueAndVariable(value, variable, context),
57
56
  assignment = new VariableAssignment(string, variable, value);
58
57
 
59
58
  return assignment;
60
59
  }
60
+
61
+ function stringFromValueAndVariable(value, variable, context) {
62
+ const variableString = variable.getString(),
63
+ valueString = value.getString(),
64
+ string = `${variableString} = ${valueString};`;
65
+
66
+ return string;
67
+ }
@@ -43,10 +43,9 @@ export default domAssigned(class VariableAssignments {
43
43
  const variableAssignmentsNode = variableAssignmentsNodeQuery(stepNode);
44
44
 
45
45
  if (variableAssignmentsNode !== null) {
46
- const node = variableAssignmentsNode, ////
47
- string = context.nodeAsString(node),
48
- type = typeFromVariableAssignmentsNode(variableAssignmentsNode, context),
49
- array = arrayFromTypeAndVariableAssignmentsNode(type, variableAssignmentsNode, context);
46
+ const type = typeFromVariableAssignmentsNode(variableAssignmentsNode, context),
47
+ array = arrayFromTypeAndVariableAssignmentsNode(type, variableAssignmentsNode, context),
48
+ string = stringFromArray(array, context);
50
49
 
51
50
  variableAssignments = new VariableAssignments(string, array);
52
51
  }
@@ -55,6 +54,21 @@ export default domAssigned(class VariableAssignments {
55
54
  }
56
55
  });
57
56
 
57
+ function stringFromArray(array, context) {
58
+ const variableAssignmentsString = array.reduce((variableAssignmentsString, variableAssignment) => {
59
+ const variableAssignmentString = variableAssignment.getString();
60
+
61
+ variableAssignmentsString = (variableAssignmentsString === null) ?
62
+ variableAssignmentString :
63
+ `${variableAssignmentsString}, ${variableAssignmentString}`;
64
+
65
+ return variableAssignmentsString;
66
+ }, null),
67
+ string = variableAssignmentsString; ///
68
+
69
+ return string;
70
+ }
71
+
58
72
  function typeFromVariableAssignmentsNode(variableAssignmentsNode, context) {
59
73
  const typeTerminalNode = typeTerminalNodeQuery(variableAssignmentsNode),
60
74
  typeTerminalNodeContent = typeTerminalNode.getContent(),
@@ -76,8 +76,16 @@ export default domAssigned(class ReturnBlock {
76
76
  }
77
77
  });
78
78
 
79
- function stepsFromStepNodes(stepNodes, context) {
79
+ function stringFromReturnStatement(returnStatement, context) {
80
+ const returnStatementString = returnStatement.getString(),
81
+ string = `{ ... ${returnStatementString} }`;
82
+
83
+ return string;
84
+ }
85
+
86
+ function stepsFromReturnBlockNode(returnBlockNode, context) {
80
87
  const { Step } = dom,
88
+ stepNodes = stepNodesQuery(returnBlockNode),
81
89
  steps = stepNodes.map((stepNode) => {
82
90
  const step = Step.fromStepNode(stepNode, context);
83
91
 
@@ -89,12 +97,10 @@ function stepsFromStepNodes(stepNodes, context) {
89
97
 
90
98
  function returnBlockFromReturnBlockNode(returnBlockNode, context) {
91
99
  const { ReturnBlock, ReturnStatement } = dom,
92
- node = returnBlockNode, ///
93
- string = context.nodeAsString(node),
94
- stepNodes = stepNodesQuery(returnBlockNode),
95
- steps = stepsFromStepNodes(stepNodes, context),
96
- nonsensical = nonsensicalFromReturnBlockNode(returnBlockNode, context),
97
100
  returnStatement = ReturnStatement.fromReturnBlockNode(returnBlockNode, context),
101
+ nonsensical = nonsensicalFromReturnBlockNode(returnBlockNode, context),
102
+ steps = stepsFromReturnBlockNode(returnBlockNode, context),
103
+ string = stringFromReturnStatement(returnStatement, context),
98
104
  returnBlock = new ReturnBlock(string, steps, nonsensical, returnStatement);
99
105
 
100
106
  return returnBlock;
package/src/dom/block.js CHANGED
@@ -44,10 +44,9 @@ export default domAssigned(class Block {
44
44
  let block = null;
45
45
 
46
46
  if (blockNode !== null) {
47
- const node = blockNode, ///
48
- string = context.nodeAsString(node),
49
- stepNodes = stepNodesQuery(blockNode),
50
- steps = stepsFromStepNodes(stepNodes, context);
47
+ const stepNodes = stepNodesQuery(blockNode),
48
+ steps = stepsFromStepNodes(stepNodes, context),
49
+ string = stringFromSteps(steps, context);
51
50
 
52
51
  block = new Block(string, steps);
53
52
  }
@@ -56,6 +55,12 @@ export default domAssigned(class Block {
56
55
  }
57
56
  });
58
57
 
58
+ function stringFromSteps(steps, context) {
59
+ const string = `{ ... }`;
60
+
61
+ return string;
62
+ }
63
+
59
64
  function stepsFromStepNodes(stepNodes, context) {
60
65
  const { Step } = dom,
61
66
  steps = stepNodes.map((stepNode) => {
@@ -3,9 +3,9 @@
3
3
  import dom from "../dom";
4
4
  import Exception from "../exception";
5
5
 
6
- import { EQUAL_TO } from "../constants";
7
6
  import { nodeQuery } from "../utilities/query";
8
7
  import { domAssigned } from "../dom";
8
+ import { EQUAL_TO, NOT_EQUAL_TO } from "../constants";
9
9
 
10
10
  const terminalNodeQuery = nodeQuery("/comparison/@*"),
11
11
  leftValueNodeQuery = nodeQuery("/comparison/value[0]"),
@@ -116,14 +116,24 @@ function negatedFromComparisonNode(comparisonNode) {
116
116
 
117
117
  function comparisonFromComparisonNode(comparisonNode, context) {
118
118
  const { Value, Comparison } = dom,
119
- node = comparisonNode, ///
120
- string = context.nodeAsString(node),
121
119
  leftValueNode = leftValueNodeQuery(comparisonNode),
122
120
  rightValueNode = rightValueNodeQuery(comparisonNode),
123
- negated = negatedFromComparisonNode(comparisonNode, context),
124
- leftValue = Value.fromValueNode(leftValueNode, context),
125
121
  rightValue = Value.fromValueNode(rightValueNode, context),
122
+ leftValue = Value.fromValueNode(leftValueNode, context),
123
+ negated = negatedFromComparisonNode(comparisonNode, context),
124
+ string = stringFromNegatedLeftValueAndRightValue(negated, leftValue, rightValue, context),
126
125
  comparison = new Comparison(string, negated, leftValue, rightValue);
127
126
 
128
127
  return comparison;
129
128
  }
129
+
130
+ function stringFromNegatedLeftValueAndRightValue(negated, leftValue, rightValue, context) {
131
+ const operatorString = negated ?
132
+ EQUAL_TO :
133
+ NOT_EQUAL_TO,
134
+ leftValueString = leftValue.asString(context),
135
+ rightValueString = rightValue.asString(context),
136
+ string = `${leftValueString} ${operatorString} ${rightValueString}`;
137
+
138
+ return string;
139
+ }
@@ -74,12 +74,12 @@ export default domAssigned(class ConditionalBlocks {
74
74
 
75
75
  if (conditionalBlocksNode !== null) {
76
76
  const { Block, Value } = dom,
77
- string = stringFromConditionalBlocksNode(conditionalBlocksNode, context),
78
77
  ifBlockNode = ifBlockNodeQuery(conditionalBlocksNode),
79
78
  elseBlockNode = elseBlockNodeQuery(conditionalBlocksNode),
80
79
  value = Value.fromConditionalBlocksNode(conditionalBlocksNode, context),
81
80
  ifBlock = Block.fromBlockNode(ifBlockNode, context),
82
- elseBlock = Block.fromBlockNode(elseBlockNode, context);
81
+ elseBlock = Block.fromBlockNode(elseBlockNode, context),
82
+ string = stringFromValueIfBockAndElseBock(value, ifBlock, elseBlock, context);
83
83
 
84
84
  conditionalBlocks = new ConditionalBlocks(string, value, ifBlock, elseBlock);
85
85
  }
@@ -88,19 +88,19 @@ export default domAssigned(class ConditionalBlocks {
88
88
  }
89
89
  });
90
90
 
91
- function stringFromConditionalBlocksNode(conditionalBlocksNode, context) {
91
+ function stringFromValueIfBockAndElseBock(value, ifBlock, elseBlock, context) {
92
92
  let string;
93
93
 
94
- const valueNode = valueNodeQuery(conditionalBlocksNode),
95
- conditionString = context.nodeAsString(valueNode);
94
+ const valueString = value.asString(context),
95
+ ifBlockString = ifBlock.getString();
96
96
 
97
- string = `If (${conditionString}) { ... }`;
97
+ string = `If (${valueString}) ${ifBlockString}`;
98
98
 
99
- const elseBlockNode = elseBlockNodeQuery(conditionalBlocksNode);
99
+ if (elseBlock !== null) {
100
+ const elseBlockString = elseBlock.getString();
100
101
 
101
- if (elseBlockNode !== null) {
102
- string = `${string} Else { ... }`;
102
+ string = `${string} Else ${elseBlockString}`;
103
103
  }
104
104
 
105
105
  return string;
106
- }
106
+ }
@@ -22,11 +22,17 @@ export default domAssigned(class ProcedureDeclaration {
22
22
 
23
23
  static fromProcedureDeclarationNode(procedureDeclarationNode, context) {
24
24
  const { Procedure } = dom,
25
- node = procedureDeclarationNode, ///
26
- string = context.nodeAsString(node),
27
25
  procedure = Procedure.fromProcedureDeclarationNode(procedureDeclarationNode, context),
26
+ string = stringFromProcedure(procedure, context),
28
27
  procedureDeclaration = new ProcedureDeclaration(string, procedure);
29
28
 
30
29
  return procedureDeclaration;
31
30
  }
32
31
  });
32
+
33
+ function stringFromProcedure(procedure, context) {
34
+ const procedureString = procedure.getString(),
35
+ string = `${procedureString};`;
36
+
37
+ return string;
38
+ }
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+
3
+ import dom from "../dom";
4
+ import Exception from "../exception";
5
+
6
+ import { nodeQuery } from "../utilities/query";
7
+ import { domAssigned } from "../dom";
8
+ import { NODES_TYPE, BOOLEAN_TYPE } from "../types";
9
+
10
+ const variableNodeQuery = nodeQuery("/every/variable"),
11
+ valueEveryNodeQuery = nodeQuery("/value/every"),
12
+ parametersNodeQuery = nodeQuery("/every/anonymousProcedure/parameters");
13
+
14
+ export default domAssigned(class Every {
15
+ constructor(string, variable, anonymousProcedure) {
16
+ this.string = string;
17
+ this.variable = variable;
18
+ this.anonymousProcedure = anonymousProcedure;
19
+ }
20
+
21
+ getString() {
22
+ return this.string;
23
+ }
24
+
25
+ getVariable() {
26
+ return this.variable;
27
+ }
28
+
29
+ getAnonymousProcedure() {
30
+ return this.anonymousProcedure;
31
+ }
32
+
33
+ evaluate(context) {
34
+ let value;
35
+
36
+ const everyString = this.getString();
37
+
38
+ context.trace(`Evaluating the '${everyString}' every...`);
39
+
40
+ value = this.variable.evaluate(context);
41
+
42
+ const valueType = value.getType();
43
+
44
+ if (valueType !== NODES_TYPE) {
45
+ const valueString = value.asString(context),
46
+ message = `The ${valueString} value's '${valueType}' type should be '${NODES_TYPE}'.`,
47
+ exception = Exception.fromMessage(message);
48
+
49
+ throw exception;
50
+ }
51
+
52
+ const nodes = value.getNodes(),
53
+ boolean = nodes.every((node) => {
54
+ let value;
55
+
56
+ const { Value, Values } = dom;
57
+
58
+ value = Value.fromNode(node, context);
59
+
60
+ const values = Values.fromValue(value, context);
61
+
62
+ value = this.anonymousProcedure.call(values, context);
63
+
64
+ const valueType = value.getType();
65
+
66
+ if (valueType !== BOOLEAN_TYPE) {
67
+ const valueString = value.asString(context),
68
+ message = `The ${valueString} value's type is '${valueType}' when it should be of type '${BOOLEAN_TYPE}'.`,
69
+ exception = Exception.fromMessage(message);
70
+
71
+ throw exception;
72
+ }
73
+
74
+ const boolean = value.getBoolean();
75
+
76
+ return boolean;
77
+ });
78
+
79
+ const { Value } = dom;
80
+
81
+ value = Value.fromBoolean(boolean, context);
82
+
83
+ context.trace(`...evaluated the '${everyString}' every.`);
84
+
85
+ return value;
86
+ }
87
+
88
+ static name = "Every";
89
+
90
+ static fromValueNode(valueNode, context) {
91
+ let every = null;
92
+
93
+ const valueEveryNode = valueEveryNodeQuery(valueNode);
94
+
95
+ if (valueEveryNode !== null) {
96
+ const { Variable, AnonymousProcedure } = dom,
97
+ everyNode = valueEveryNode, ///
98
+ string = stringFromEveryNode(everyNode, context),
99
+ variable = Variable.fromEveryNode(everyNode, context),
100
+ anonymousProcedure = AnonymousProcedure.fromEveryNode(everyNode, context);
101
+
102
+ every = new Every(string, variable, anonymousProcedure);
103
+ }
104
+
105
+ return every;
106
+ }
107
+ });
108
+
109
+ function stringFromEveryNode(everyNode, context) {
110
+ const variableNode = variableNodeQuery(everyNode),
111
+ parametersNode = parametersNodeQuery(everyNode),
112
+ variableString = context.nodeAsString(variableNode),
113
+ parametersString = context.nodeAsString(parametersNode),
114
+ string = `Every(${variableString}, (${parametersString}) { ... })`;
115
+
116
+ return string;
117
+ }