occam-furtle 2.0.120 → 2.0.122
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/dom/assignment/array.js +12 -12
- package/lib/dom/assignment/object.js +30 -30
- package/lib/dom/assignment/variable.js +13 -13
- package/lib/dom/block/return.js +9 -9
- package/lib/dom/comparison.js +28 -28
- package/lib/dom/every.js +25 -25
- package/lib/dom/expression/bitwise.js +186 -0
- package/lib/dom/expression/bracketed.js +149 -0
- package/lib/dom/expression/negated.js +166 -0
- package/lib/dom/expression.js +578 -0
- package/lib/dom/expressions.js +210 -0
- package/lib/dom/parameter/named.js +9 -9
- package/lib/dom/parameter.js +9 -9
- package/lib/dom/parameters/named.js +11 -11
- package/lib/dom/parameters.js +11 -11
- package/lib/dom/procedure/anonymous.js +7 -7
- package/lib/dom/procedure.js +12 -12
- package/lib/dom/procedureCall.js +17 -17
- package/lib/dom/query/node.js +19 -19
- package/lib/dom/query/nodes.js +19 -19
- package/lib/dom/reduce.js +32 -32
- package/lib/dom/some.js +25 -25
- package/lib/dom/statement/return.js +12 -12
- package/lib/dom/ternary.js +27 -27
- package/lib/dom/variable.js +30 -30
- package/lib/example/utilities/expressions.js +29 -0
- package/lib/example.js +4 -4
- package/lib/index.js +9 -9
- package/package.json +1 -1
- package/src/dom/assignment/array.js +14 -14
- package/src/dom/assignment/object.js +33 -33
- package/src/dom/assignment/variable.js +15 -15
- package/src/dom/block/return.js +7 -7
- package/src/dom/comparison.js +39 -39
- package/src/dom/every.js +25 -25
- package/src/dom/expression/bitwise.js +135 -0
- package/src/dom/expression/bracketed.js +73 -0
- package/src/dom/expression/negated.js +97 -0
- package/src/dom/{value.js → expression.js} +128 -128
- package/src/dom/expressions.js +138 -0
- package/src/dom/parameter/named.js +7 -7
- package/src/dom/parameter.js +7 -7
- package/src/dom/parameters/named.js +9 -9
- package/src/dom/parameters.js +9 -9
- package/src/dom/procedure/anonymous.js +10 -10
- package/src/dom/procedure.js +12 -12
- package/src/dom/procedureCall.js +19 -19
- package/src/dom/query/node.js +19 -19
- package/src/dom/query/nodes.js +19 -19
- package/src/dom/reduce.js +36 -36
- package/src/dom/some.js +25 -25
- package/src/dom/statement/return.js +14 -14
- package/src/dom/ternary.js +39 -39
- package/src/dom/variable.js +31 -31
- package/src/example/utilities/{values.js → expressions.js} +4 -4
- package/src/example.js +4 -4
- package/src/index.js +6 -6
- package/lib/dom/value/bitwise.js +0 -186
- package/lib/dom/value/bracketed.js +0 -149
- package/lib/dom/value/negated.js +0 -166
- package/lib/dom/value.js +0 -578
- package/lib/dom/values.js +0 -210
- package/lib/example/utilities/values.js +0 -29
- package/src/dom/value/bitwise.js +0 -135
- package/src/dom/value/bracketed.js +0 -73
- package/src/dom/value/negated.js +0 -97
- package/src/dom/values.js +0 -138
package/lib/dom/variable.js
CHANGED
|
@@ -90,14 +90,14 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
90
90
|
return newObj;
|
|
91
91
|
}
|
|
92
92
|
var _Variable;
|
|
93
|
-
var someVariableNodeQuery = (0, _query.nodeQuery)("/some/variable"),
|
|
93
|
+
var someVariableNodeQuery = (0, _query.nodeQuery)("/some/variable"), everyVariableNodeQuery = (0, _query.nodeQuery)("/every/variable"), reduceVariableNodeQuery = (0, _query.nodeQuery)("/reduce/variable"), nodeQueryVariableNodeQuery = (0, _query.nodeQuery)("/nodeQuery/variable"), expressionVariableNodeQuery = (0, _query.nodeQuery)("/expression/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
|
-
function Variable(string, type, name,
|
|
95
|
+
function Variable(string, type, name, expression) {
|
|
96
96
|
_class_call_check(this, Variable);
|
|
97
97
|
this.string = string;
|
|
98
98
|
this.type = type;
|
|
99
99
|
this.name = name;
|
|
100
|
-
this.
|
|
100
|
+
this.expression = expression;
|
|
101
101
|
}
|
|
102
102
|
_create_class(Variable, [
|
|
103
103
|
{
|
|
@@ -119,9 +119,9 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
|
119
119
|
}
|
|
120
120
|
},
|
|
121
121
|
{
|
|
122
|
-
key: "
|
|
123
|
-
value: function
|
|
124
|
-
return this.
|
|
122
|
+
key: "getExpression",
|
|
123
|
+
value: function getExpression() {
|
|
124
|
+
return this.expression;
|
|
125
125
|
}
|
|
126
126
|
},
|
|
127
127
|
{
|
|
@@ -141,29 +141,29 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
|
141
141
|
var message = "The '".concat(variableString, "; variable is not present.'"), exception = _exception.default.fromMessage(message);
|
|
142
142
|
throw exception;
|
|
143
143
|
}
|
|
144
|
-
var variable = context.findVariableByVariableName(variableName),
|
|
145
|
-
context.debug("...evaluated the '".concat(variableString, "' variable to the ").concat(
|
|
146
|
-
return
|
|
144
|
+
var variable = context.findVariableByVariableName(variableName), expression = variable.getExpression(), expressionString = expression.asString(context);
|
|
145
|
+
context.debug("...evaluated the '".concat(variableString, "' variable to the ").concat(expressionString, " expression."));
|
|
146
|
+
return expression;
|
|
147
147
|
}
|
|
148
148
|
},
|
|
149
149
|
{
|
|
150
150
|
key: "assign",
|
|
151
|
-
value: function assign(
|
|
152
|
-
var nested = false,
|
|
153
|
-
context.trace("Assigning the ".concat(
|
|
151
|
+
value: function assign(expression, context) {
|
|
152
|
+
var nested = false, expressionString = expression.asString(context), variableName = this.name, variableString = this.string, variablePresent = context.isVariablePresentByVariableName(variableName, nested);
|
|
153
|
+
context.trace("Assigning the ".concat(expressionString, " expression to the '").concat(variableString, "' variable..."));
|
|
154
154
|
if (variablePresent) {
|
|
155
155
|
var message = "The '".concat(variableString, "' variable is already present."), exception = _exception.default.fromMessage(message);
|
|
156
156
|
throw exception;
|
|
157
157
|
}
|
|
158
|
-
var
|
|
159
|
-
if (
|
|
160
|
-
var message1 = "The '".concat(variableString, " variable's '").concat(variableType, "' type does not match the
|
|
158
|
+
var expressionType = expression.getType(), variableType = this.type;
|
|
159
|
+
if (expressionType !== variableType) {
|
|
160
|
+
var message1 = "The '".concat(variableString, " variable's '").concat(variableType, "' type does not match the expression's '").concat(expressionType, "' type.'"), exception1 = _exception.default.fromMessage(message1);
|
|
161
161
|
throw exception1;
|
|
162
162
|
}
|
|
163
|
-
this.
|
|
163
|
+
this.expression = expression;
|
|
164
164
|
var variable = this; ///
|
|
165
165
|
context.addVariable(variable);
|
|
166
|
-
context.debug("...assigned the ".concat(
|
|
166
|
+
context.debug("...assigned the ".concat(expressionString, " expression to the '").concat(variableString, "' variable."));
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
169
|
], [
|
|
@@ -175,12 +175,12 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
|
175
175
|
}
|
|
176
176
|
},
|
|
177
177
|
{
|
|
178
|
-
key: "
|
|
179
|
-
value: function
|
|
178
|
+
key: "fromExpressionNode",
|
|
179
|
+
value: function fromExpressionNode(expressionNode, context) {
|
|
180
180
|
var variable = null;
|
|
181
|
-
var
|
|
182
|
-
if (
|
|
183
|
-
var variableNode =
|
|
181
|
+
var expressionVariableNode = expressionVariableNodeQuery(expressionNode);
|
|
182
|
+
if (expressionVariableNode !== null) {
|
|
183
|
+
var variableNode = expressionVariableNode; ///
|
|
184
184
|
variable = variableFromVariableNode(variableNode, context);
|
|
185
185
|
}
|
|
186
186
|
return variable;
|
|
@@ -196,7 +196,7 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
|
196
196
|
{
|
|
197
197
|
key: "fromParameter",
|
|
198
198
|
value: function fromParameter(parameter, context) {
|
|
199
|
-
var type = parameter.getType(), name = parameter.getName(),
|
|
199
|
+
var type = parameter.getType(), name = parameter.getName(), expression = null, string = stringFromName(name, context), variable = new Variable(string, type, name, expression);
|
|
200
200
|
return variable;
|
|
201
201
|
}
|
|
202
202
|
},
|
|
@@ -224,14 +224,14 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
|
224
224
|
{
|
|
225
225
|
key: "fromNamedParameter",
|
|
226
226
|
value: function fromNamedParameter(namedParameter, context) {
|
|
227
|
-
var asName = namedParameter.getAsName(), type = namedParameter.getType(), name = asName !== null ? asName : namedParameter.getName(),
|
|
227
|
+
var asName = namedParameter.getAsName(), type = namedParameter.getType(), name = asName !== null ? asName : namedParameter.getName(), expression = null, string = stringFromName(name, context), variable = new Variable(string, type, name, expression);
|
|
228
228
|
return variable;
|
|
229
229
|
}
|
|
230
230
|
},
|
|
231
231
|
{
|
|
232
|
-
key: "
|
|
233
|
-
value: function
|
|
234
|
-
var type = parameter.getType(), name = parameter.getName(), string = stringFromName(name, context), variable = new Variable(string, type, name,
|
|
232
|
+
key: "fromExpressionAndParameter",
|
|
233
|
+
value: function fromExpressionAndParameter(expression, parameter, context) {
|
|
234
|
+
var type = parameter.getType(), name = parameter.getName(), string = stringFromName(name, context), variable = new Variable(string, type, name, expression);
|
|
235
235
|
return variable;
|
|
236
236
|
}
|
|
237
237
|
},
|
|
@@ -260,11 +260,11 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
|
260
260
|
return Variable;
|
|
261
261
|
}(), _define_property(_Variable, "name", "Variable"), _Variable));
|
|
262
262
|
function variableFromTypeAndVariableNode(type, variableNode, context) {
|
|
263
|
-
var Variable = _dom.default.Variable, name = nameFromVariableNode(variableNode),
|
|
263
|
+
var Variable = _dom.default.Variable, name = nameFromVariableNode(variableNode), expression = null, string = stringFromName(name, context), variable = new Variable(string, type, name, expression);
|
|
264
264
|
return variable;
|
|
265
265
|
}
|
|
266
266
|
function variableFromVariableNode(variableNode, context) {
|
|
267
|
-
var Variable = _dom.default.Variable, type = null, name = nameFromVariableNode(variableNode),
|
|
267
|
+
var Variable = _dom.default.Variable, type = null, name = nameFromVariableNode(variableNode), expression = null, string = stringFromName(name, context), variable = new Variable(string, type, name, expression);
|
|
268
268
|
return variable;
|
|
269
269
|
}
|
|
270
270
|
function nameFromVariableNode(variableNode) {
|
|
@@ -276,4 +276,4 @@ function stringFromName(name, context) {
|
|
|
276
276
|
return string;
|
|
277
277
|
}
|
|
278
278
|
|
|
279
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuXG5jb25zdCBzb21lVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc29tZS92YXJpYWJsZVwiKSxcbiAgICAgIHZhbHVlVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFsdWUvdmFyaWFibGVcIiksXG4gICAgICBldmVyeVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2V2ZXJ5L3ZhcmlhYmxlXCIpLFxuICAgICAgcmVkdWNlVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcmVkdWNlL3ZhcmlhYmxlXCIpLFxuICAgICAgbm9kZVF1ZXJ5VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbm9kZVF1ZXJ5L3ZhcmlhYmxlXCIpLFxuICAgICAgbm9kZXNRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL25vZGVzUXVlcnkvdmFyaWFibGVcIiksXG4gICAgICB2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi92YXJpYWJsZS9AbmFtZVwiKSxcbiAgICAgIGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2FycmF5QXNzaWdubWVudC92YXJpYWJsZVwiKSxcbiAgICAgIG9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9vYmplY3RBc3NpZ25tZW50L3ZhcmlhYmxlXCIpLFxuICAgICAgdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGVBc3NpZ25tZW50L3ZhcmlhYmxlXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBkb21Bc3NpZ25lZChjbGFzcyBWYXJpYWJsZSB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgbWF0Y2hWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKSB7XG4gICAgY29uc3QgbmFtZU1hdGNoZXMgPSAodGhpcy5uYW1lID09PSB2YXJpYWJsZU5hbWUpO1xuXG4gICAgcmV0dXJuIG5hbWVNYXRjaGVzO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgY29uc3QgbmVzdGVkID0gdHJ1ZSxcbiAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlUHJlc2VudCA9IGNvbnRleHQuaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUsIG5lc3RlZCk7XG5cbiAgICBpZiAoIXZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9OyB2YXJpYWJsZSBpcyBub3QgcHJlc2VudC4nYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHZhcmlhYmxlID0gY29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpLFxuICAgICAgICAgIHZhbHVlID0gdmFyaWFibGUuZ2V0VmFsdWUoKSxcbiAgICAgICAgICB2YWx1ZVN0cmluZyA9IHZhbHVlLmFzU3RyaW5nKGNvbnRleHQpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIHRvIHRoZSAke3ZhbHVlU3RyaW5nfSB2YWx1ZS5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGFzc2lnbih2YWx1ZSwgY29udGV4dCkge1xuICAgIGNvbnN0IG5lc3RlZCA9IGZhbHNlLFxuICAgICAgICAgIHZhbHVlU3RyaW5nID0gdmFsdWUuYXNTdHJpbmcoY29udGV4dCksIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB0aGlzLnN0cmluZywgLy8vXG4gICAgICAgICAgdmFyaWFibGVQcmVzZW50ID0gY29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEFzc2lnbmluZyB0aGUgJHt2YWx1ZVN0cmluZ30gdmFsdWUgdG8gdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuLi5gKTtcblxuICAgIGlmICh2YXJpYWJsZVByZXNlbnQpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgaXMgYWxyZWFkeSBwcmVzZW50LmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFyaWFibGVUeXBlID0gdGhpcy50eXBlO1xuXG4gICAgaWYgKHZhbHVlVHlwZSAhPT0gdmFyaWFibGVUeXBlKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30gdmFyaWFibGUncyAnJHt2YXJpYWJsZVR5cGV9JyB0eXBlIGRvZXMgbm90IG1hdGNoIHRoZSB2YWx1ZSdzICcke3ZhbHVlVHlwZX0nIHR5cGUuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG5cbiAgICBjb25zdCB2YXJpYWJsZSA9IHRoaXM7ICAvLy9cblxuICAgIGNvbnRleHQuYWRkVmFyaWFibGUodmFyaWFibGUpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uYXNzaWduZWQgdGhlICR7dmFsdWVTdHJpbmd9IHZhbHVlIHRvIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlZhcmlhYmxlXCI7XG5cbiAgc3RhdGljIGZyb21Tb21lTm9kZShzb21lTm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHNvbWVWYXJpYWJsZU5vZGUgPSBzb21lVmFyaWFibGVOb2RlUXVlcnkoc29tZU5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHNvbWVWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhbHVlTm9kZSh2YWx1ZU5vZGUsIGNvbnRleHQpIHtcbiAgICBsZXQgdmFyaWFibGUgPSBudWxsO1xuXG4gICAgY29uc3QgdmFsdWVWYXJpYWJsZU5vZGUgPSB2YWx1ZVZhcmlhYmxlTm9kZVF1ZXJ5KHZhbHVlTm9kZSk7XG5cbiAgICBpZiAodmFsdWVWYXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlTm9kZSA9IHZhbHVlVmFyaWFibGVOb2RlOyAvLy9cblxuICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUV2ZXJ5Tm9kZShldmVyeU5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBldmVyeVZhcmlhYmxlTm9kZSA9IGV2ZXJ5VmFyaWFibGVOb2RlUXVlcnkoZXZlcnlOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBldmVyeVZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUGFyYW1ldGVyKHBhcmFtZXRlciwgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBwYXJhbWV0ZXIuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWUgPSBwYXJhbWV0ZXIuZ2V0TmFtZSgpLFxuICAgICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tTmFtZShuYW1lLCBjb250ZXh0KSxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIHR5cGUsIG5hbWUsIHZhbHVlKTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUmVkdWNlTm9kZShyZWR1Y2VOb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgcmVkdWNlVmFyaWFibGVOb2RlID0gcmVkdWNlVmFyaWFibGVOb2RlUXVlcnkocmVkdWNlTm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gcmVkdWNlVmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob2RlUXVlcnlOb2RlKG5vZGVRdWVyeU5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBub2RlUXVlcnlWYXJpYWJsZU5vZGUgPSBub2RlUXVlcnlWYXJpYWJsZU5vZGVRdWVyeShub2RlUXVlcnlOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBub2RlUXVlcnlWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vZGVzUXVlcnlOb2RlKG5vZGVzUXVlcnlOb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZXNRdWVyeVZhcmlhYmxlTm9kZSA9IG5vZGVzUXVlcnlWYXJpYWJsZU5vZGVRdWVyeShub2Rlc1F1ZXJ5Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gbm9kZXNRdWVyeVZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTmFtZWRQYXJhbWV0ZXIobmFtZWRQYXJhbWV0ZXIsIGNvbnRleHQpIHtcbiAgICBjb25zdCBhc05hbWUgPSBuYW1lZFBhcmFtZXRlci5nZXRBc05hbWUoKSxcbiAgICAgICAgICB0eXBlID0gbmFtZWRQYXJhbWV0ZXIuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWUgPSAoYXNOYW1lICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgYXNOYW1lIDogLy8vXG4gICAgICAgICAgICAgICAgICAgICBuYW1lZFBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgdmFsdWUgPSBudWxsLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21OYW1lKG5hbWUsIGNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYWx1ZUFuZFBhcmFtZXRlcih2YWx1ZSwgcGFyYW1ldGVyLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IHBhcmFtZXRlci5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZSA9IHBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWUobmFtZSwgY29udGV4dCksXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCB0eXBlLCBuYW1lLCB2YWx1ZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUFycmF5QXNzaWdubWVudE5vZGUoYXJyYXlBc3NpZ25tZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZSA9IGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5KGFycmF5QXNzaWdubWVudE5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tT2JqZWN0QXNzaWdubWVudE5vZGUob2JqZWN0QXNzaWdubWVudE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlID0gb2JqZWN0QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5KG9iamVjdEFzc2lnbm1lbnROb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21UeXBlQW5kVmFyaWFibGVBc3NpZ25tZW50Tm9kZSh0eXBlLCB2YXJpYWJsZUFzc2lnbm1lbnROb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlID0gdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkodmFyaWFibGVBc3NpZ25tZW50Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21UeXBlQW5kVmFyaWFibGVOb2RlKHR5cGUsIHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiB2YXJpYWJsZUZyb21UeXBlQW5kVmFyaWFibGVOb2RlKHR5cGUsIHZhcmlhYmxlTm9kZSwgY29udGV4dCkge1xuICBjb25zdCB7IFZhcmlhYmxlIH0gPSBkb20sXG4gICAgICAgIG5hbWUgPSBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICB2YWx1ZSA9IG51bGwsXG4gICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21OYW1lKG5hbWUsIGNvbnRleHQpLFxuICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIHR5cGUsIG5hbWUsIHZhbHVlKTtcblxuICByZXR1cm4gdmFyaWFibGU7XG59XG5cbmZ1bmN0aW9uIHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBWYXJpYWJsZSB9ID0gZG9tLFxuICAgICAgICB0eXBlID0gbnVsbCxcbiAgICAgICAgbmFtZSA9IG5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhbHVlID0gbnVsbCxcbiAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWUobmFtZSwgY29udGV4dCksXG4gICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgdmFsdWUpO1xuXG4gIHJldHVybiB2YXJpYWJsZTtcbn1cblxuZnVuY3Rpb24gbmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSB7XG4gIGNvbnN0IHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZSA9IHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5KHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZUNvbnRlbnQgPSB2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICBuYW1lID0gdmFyaWFibGVOYW1lVGVybWluYWxOb2RlQ29udGVudDsgLy8vXG5cbiAgcmV0dXJuIG5hbWU7XG59XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21OYW1lKG5hbWUsIGNvbnRleHQpIHtcbiAgY29uc3QgbmFtZVN0cmluZyA9IG5hbWUsICAvLy9cbiAgICAgICAgc3RyaW5nID0gbmFtZVN0cmluZzsgIC8vL1xuXG4gIHJldHVybiBzdHJpbmc7XG59Il0sIm5hbWVzIjpbInNvbWVWYXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInZhbHVlVmFyaWFibGVOb2RlUXVlcnkiLCJldmVyeVZhcmlhYmxlTm9kZVF1ZXJ5IiwicmVkdWNlVmFyaWFibGVOb2RlUXVlcnkiLCJub2RlUXVlcnlWYXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVzUXVlcnlWYXJpYWJsZU5vZGVRdWVyeSIsInZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5IiwiYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkiLCJvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkiLCJ2YXJpYWJsZUFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSIsImRvbUFzc2lnbmVkIiwiVmFyaWFibGUiLCJzdHJpbmciLCJ0eXBlIiwibmFtZSIsInZhbHVlIiwiZ2V0U3RyaW5nIiwiZ2V0VHlwZSIsImdldE5hbWUiLCJnZXRWYWx1ZSIsIm1hdGNoVmFyaWFibGVOYW1lIiwidmFyaWFibGVOYW1lIiwibmFtZU1hdGNoZXMiLCJldmFsdWF0ZSIsImNvbnRleHQiLCJ2YXJpYWJsZVN0cmluZyIsInRyYWNlIiwibmVzdGVkIiwidmFyaWFibGVQcmVzZW50IiwiaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsInZhcmlhYmxlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUiLCJ2YWx1ZVN0cmluZyIsImFzU3RyaW5nIiwiZGVidWciLCJhc3NpZ24iLCJ2YWx1ZVR5cGUiLCJ2YXJpYWJsZVR5cGUiLCJhZGRWYXJpYWJsZSIsImZyb21Tb21lTm9kZSIsInNvbWVOb2RlIiwic29tZVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSIsImZyb21WYWx1ZU5vZGUiLCJ2YWx1ZU5vZGUiLCJ2YWx1ZVZhcmlhYmxlTm9kZSIsImZyb21FdmVyeU5vZGUiLCJldmVyeU5vZGUiLCJldmVyeVZhcmlhYmxlTm9kZSIsImZyb21QYXJhbWV0ZXIiLCJwYXJhbWV0ZXIiLCJzdHJpbmdGcm9tTmFtZSIsImZyb21SZWR1Y2VOb2RlIiwicmVkdWNlTm9kZSIsInJlZHVjZVZhcmlhYmxlTm9kZSIsImZyb21Ob2RlUXVlcnlOb2RlIiwibm9kZVF1ZXJ5Tm9kZSIsIm5vZGVRdWVyeVZhcmlhYmxlTm9kZSIsImZyb21Ob2Rlc1F1ZXJ5Tm9kZSIsIm5vZGVzUXVlcnlOb2RlIiwibm9kZXNRdWVyeVZhcmlhYmxlTm9kZSIsImZyb21OYW1lZFBhcmFtZXRlciIsIm5hbWVkUGFyYW1ldGVyIiwiYXNOYW1lIiwiZ2V0QXNOYW1lIiwiZnJvbVZhbHVlQW5kUGFyYW1ldGVyIiwiZnJvbUFycmF5QXNzaWdubWVudE5vZGUiLCJhcnJheUFzc2lnbm1lbnROb2RlIiwiYXJyYXlBc3NpZ25tZW50VmFyaWFibGVOb2RlIiwiZnJvbU9iamVjdEFzc2lnbm1lbnROb2RlIiwib2JqZWN0QXNzaWdubWVudE5vZGUiLCJvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlIiwiZnJvbVR5cGVBbmRWYXJpYWJsZUFzc2lnbm1lbnROb2RlIiwidmFyaWFibGVBc3NpZ25tZW50Tm9kZSIsInZhcmlhYmxlQXNzaWdubWVudFZhcmlhYmxlTm9kZSIsInZhcmlhYmxlRnJvbVR5cGVBbmRWYXJpYWJsZU5vZGUiLCJkb20iLCJuYW1lRnJvbVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZSIsInZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZUNvbnRlbnQiLCJnZXRDb250ZW50IiwibmFtZVN0cmluZyJdLCJtYXBw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
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuXG5jb25zdCBzb21lVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc29tZS92YXJpYWJsZVwiKSxcbiAgICAgIGV2ZXJ5VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZXZlcnkvdmFyaWFibGVcIiksXG4gICAgICByZWR1Y2VWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9yZWR1Y2UvdmFyaWFibGVcIiksXG4gICAgICBub2RlUXVlcnlWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ub2RlUXVlcnkvdmFyaWFibGVcIiksXG4gICAgICBleHByZXNzaW9uVmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZXhwcmVzc2lvbi92YXJpYWJsZVwiKSxcbiAgICAgIG5vZGVzUXVlcnlWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ub2Rlc1F1ZXJ5L3ZhcmlhYmxlXCIpLFxuICAgICAgdmFyaWFibGVOYW1lVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGUvQG5hbWVcIiksXG4gICAgICBhcnJheUFzc2lnbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hcnJheUFzc2lnbm1lbnQvdmFyaWFibGVcIiksXG4gICAgICBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvb2JqZWN0QXNzaWdubWVudC92YXJpYWJsZVwiKSxcbiAgICAgIHZhcmlhYmxlQXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlQXNzaWdubWVudC92YXJpYWJsZVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoY2xhc3MgVmFyaWFibGUge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIHR5cGUsIG5hbWUsIGV4cHJlc3Npb24pIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5leHByZXNzaW9uID0gZXhwcmVzc2lvbjtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRFeHByZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLmV4cHJlc3Npb247XG4gIH1cblxuICBtYXRjaFZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCBuYW1lTWF0Y2hlcyA9ICh0aGlzLm5hbWUgPT09IHZhcmlhYmxlTmFtZSk7XG5cbiAgICByZXR1cm4gbmFtZU1hdGNoZXM7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCBuZXN0ZWQgPSB0cnVlLFxuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHRoaXMubmFtZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGVQcmVzZW50ID0gY29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkKTtcblxuICAgIGlmICghdmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YXJpYWJsZVN0cmluZ307IHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50LidgLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgdmFyaWFibGUgPSBjb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSksXG4gICAgICAgICAgZXhwcmVzc2lvbiA9IHZhcmlhYmxlLmdldEV4cHJlc3Npb24oKSxcbiAgICAgICAgICBleHByZXNzaW9uU3RyaW5nID0gZXhwcmVzc2lvbi5hc1N0cmluZyhjb250ZXh0KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSB0byB0aGUgJHtleHByZXNzaW9uU3RyaW5nfSBleHByZXNzaW9uLmApO1xuXG4gICAgcmV0dXJuIGV4cHJlc3Npb247XG4gIH1cblxuICBhc3NpZ24oZXhwcmVzc2lvbiwgY29udGV4dCkge1xuICAgIGNvbnN0IG5lc3RlZCA9IGZhbHNlLFxuICAgICAgICAgIGV4cHJlc3Npb25TdHJpbmcgPSBleHByZXNzaW9uLmFzU3RyaW5nKGNvbnRleHQpLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdGhpcy5zdHJpbmcsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlUHJlc2VudCA9IGNvbnRleHQuaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUsIG5lc3RlZCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBBc3NpZ25pbmcgdGhlICR7ZXhwcmVzc2lvblN0cmluZ30gZXhwcmVzc2lvbiB0byB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgaWYgKHZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBpcyBhbHJlYWR5IHByZXNlbnQuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IGV4cHJlc3Npb25UeXBlID0gZXhwcmVzc2lvbi5nZXRUeXBlKCksXG4gICAgICAgICAgdmFyaWFibGVUeXBlID0gdGhpcy50eXBlO1xuXG4gICAgaWYgKGV4cHJlc3Npb25UeXBlICE9PSB2YXJpYWJsZVR5cGUpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke3ZhcmlhYmxlU3RyaW5nfSB2YXJpYWJsZSdzICcke3ZhcmlhYmxlVHlwZX0nIHR5cGUgZG9lcyBub3QgbWF0Y2ggdGhlIGV4cHJlc3Npb24ncyAnJHtleHByZXNzaW9uVHlwZX0nIHR5cGUuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICB0aGlzLmV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuXG4gICAgY29uc3QgdmFyaWFibGUgPSB0aGlzOyAgLy8vXG5cbiAgICBjb250ZXh0LmFkZFZhcmlhYmxlKHZhcmlhYmxlKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmFzc2lnbmVkIHRoZSAke2V4cHJlc3Npb25TdHJpbmd9IGV4cHJlc3Npb24gdG8gdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuYCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVmFyaWFibGVcIjtcblxuICBzdGF0aWMgZnJvbVNvbWVOb2RlKHNvbWVOb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc29tZVZhcmlhYmxlTm9kZSA9IHNvbWVWYXJpYWJsZU5vZGVRdWVyeShzb21lTm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gc29tZVZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRXhwcmVzc2lvbk5vZGUoZXhwcmVzc2lvbk5vZGUsIGNvbnRleHQpIHtcbiAgICBsZXQgdmFyaWFibGUgPSBudWxsO1xuXG4gICAgY29uc3QgZXhwcmVzc2lvblZhcmlhYmxlTm9kZSA9IGV4cHJlc3Npb25WYXJpYWJsZU5vZGVRdWVyeShleHByZXNzaW9uTm9kZSk7XG5cbiAgICBpZiAoZXhwcmVzc2lvblZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdmFyaWFibGVOb2RlID0gZXhwcmVzc2lvblZhcmlhYmxlTm9kZTsgLy8vXG5cbiAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21FdmVyeU5vZGUoZXZlcnlOb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgZXZlcnlWYXJpYWJsZU5vZGUgPSBldmVyeVZhcmlhYmxlTm9kZVF1ZXJ5KGV2ZXJ5Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gZXZlcnlWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVBhcmFtZXRlcihwYXJhbWV0ZXIsIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gcGFyYW1ldGVyLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lID0gcGFyYW1ldGVyLmdldE5hbWUoKSxcbiAgICAgICAgICBleHByZXNzaW9uID0gbnVsbCxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tTmFtZShuYW1lLCBjb250ZXh0KSxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIHR5cGUsIG5hbWUsIGV4cHJlc3Npb24pO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21SZWR1Y2VOb2RlKHJlZHVjZU5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCByZWR1Y2VWYXJpYWJsZU5vZGUgPSByZWR1Y2VWYXJpYWJsZU5vZGVRdWVyeShyZWR1Y2VOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSByZWR1Y2VWYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vZGVRdWVyeU5vZGUobm9kZVF1ZXJ5Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IG5vZGVRdWVyeVZhcmlhYmxlTm9kZSA9IG5vZGVRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5KG5vZGVRdWVyeU5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IG5vZGVRdWVyeVZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm9kZXNRdWVyeU5vZGUobm9kZXNRdWVyeU5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlID0gbm9kZXNRdWVyeVZhcmlhYmxlTm9kZVF1ZXJ5KG5vZGVzUXVlcnlOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21OYW1lZFBhcmFtZXRlcihuYW1lZFBhcmFtZXRlciwgY29udGV4dCkge1xuICAgIGNvbnN0IGFzTmFtZSA9IG5hbWVkUGFyYW1ldGVyLmdldEFzTmFtZSgpLFxuICAgICAgICAgIHR5cGUgPSBuYW1lZFBhcmFtZXRlci5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZSA9IChhc05hbWUgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICBhc05hbWUgOiAvLy9cbiAgICAgICAgICAgICAgICAgICAgIG5hbWVkUGFyYW1ldGVyLmdldE5hbWUoKSxcbiAgICAgICAgICBleHByZXNzaW9uID0gbnVsbCxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tTmFtZShuYW1lLCBjb250ZXh0KSxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIHR5cGUsIG5hbWUsIGV4cHJlc3Npb24pO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21FeHByZXNzaW9uQW5kUGFyYW1ldGVyKGV4cHJlc3Npb24sIHBhcmFtZXRlciwgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBwYXJhbWV0ZXIuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWUgPSBwYXJhbWV0ZXIuZ2V0TmFtZSgpLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21OYW1lKG5hbWUsIGNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgZXhwcmVzc2lvbik7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUFycmF5QXNzaWdubWVudE5vZGUoYXJyYXlBc3NpZ25tZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZSA9IGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5KGFycmF5QXNzaWdubWVudE5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IGFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tT2JqZWN0QXNzaWdubWVudE5vZGUob2JqZWN0QXNzaWdubWVudE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlID0gb2JqZWN0QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5KG9iamVjdEFzc2lnbm1lbnROb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBvYmplY3RBc3NpZ25tZW50VmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21UeXBlQW5kVmFyaWFibGVBc3NpZ25tZW50Tm9kZSh0eXBlLCB2YXJpYWJsZUFzc2lnbm1lbnROb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlID0gdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkodmFyaWFibGVBc3NpZ25tZW50Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21UeXBlQW5kVmFyaWFibGVOb2RlKHR5cGUsIHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiB2YXJpYWJsZUZyb21UeXBlQW5kVmFyaWFibGVOb2RlKHR5cGUsIHZhcmlhYmxlTm9kZSwgY29udGV4dCkge1xuICBjb25zdCB7IFZhcmlhYmxlIH0gPSBkb20sXG4gICAgICAgIG5hbWUgPSBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICBleHByZXNzaW9uID0gbnVsbCxcbiAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWUobmFtZSwgY29udGV4dCksXG4gICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgZXhwcmVzc2lvbik7XG5cbiAgcmV0dXJuIHZhcmlhYmxlO1xufVxuXG5mdW5jdGlvbiB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgdHlwZSA9IG51bGwsXG4gICAgICAgIG5hbWUgPSBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICBleHByZXNzaW9uID0gbnVsbCxcbiAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWUobmFtZSwgY29udGV4dCksXG4gICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgdHlwZSwgbmFtZSwgZXhwcmVzc2lvbik7XG5cbiAgcmV0dXJuIHZhcmlhYmxlO1xufVxuXG5mdW5jdGlvbiBuYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpIHtcbiAgY29uc3QgdmFyaWFibGVOYW1lVGVybWluYWxOb2RlID0gdmFyaWFibGVOYW1lVGVybWluYWxOb2RlUXVlcnkodmFyaWFibGVOb2RlKSxcbiAgICAgICAgdmFyaWFibGVOYW1lVGVybWluYWxOb2RlQ29udGVudCA9IHZhcmlhYmxlTmFtZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGVDb250ZW50OyAvLy9cblxuICByZXR1cm4gbmFtZTtcbn1cblxuZnVuY3Rpb24gc3RyaW5nRnJvbU5hbWUobmFtZSwgY29udGV4dCkge1xuICBjb25zdCBuYW1lU3RyaW5nID0gbmFtZSwgIC8vL1xuICAgICAgICBzdHJpbmcgPSBuYW1lU3RyaW5nOyAgLy8vXG5cbiAgcmV0dXJuIHN0cmluZztcbn0iXSwibmFtZXMiOlsic29tZVZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiZXZlcnlWYXJpYWJsZU5vZGVRdWVyeSIsInJlZHVjZVZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5VmFyaWFibGVOb2RlUXVlcnkiLCJleHByZXNzaW9uVmFyaWFibGVOb2RlUXVlcnkiLCJub2Rlc1F1ZXJ5VmFyaWFibGVOb2RlUXVlcnkiLCJ2YXJpYWJsZU5hbWVUZXJtaW5hbE5vZGVRdWVyeSIsImFycmF5QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5Iiwib2JqZWN0QXNzaWdubWVudFZhcmlhYmxlTm9kZVF1ZXJ5IiwidmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlUXVlcnkiLCJkb21Bc3NpZ25lZCIsIlZhcmlhYmxlIiwic3RyaW5nIiwidHlwZSIsIm5hbWUiLCJleHByZXNzaW9uIiwiZ2V0U3RyaW5nIiwiZ2V0VHlwZSIsImdldE5hbWUiLCJnZXRFeHByZXNzaW9uIiwibWF0Y2hWYXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWUiLCJuYW1lTWF0Y2hlcyIsImV2YWx1YXRlIiwiY29udGV4dCIsInZhcmlhYmxlU3RyaW5nIiwidHJhY2UiLCJuZXN0ZWQiLCJ2YXJpYWJsZVByZXNlbnQiLCJpc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsImV4cHJlc3Npb25TdHJpbmciLCJhc1N0cmluZyIsImRlYnVnIiwiYXNzaWduIiwiZXhwcmVzc2lvblR5cGUiLCJ2YXJpYWJsZVR5cGUiLCJhZGRWYXJpYWJsZSIsImZyb21Tb21lTm9kZSIsInNvbWVOb2RlIiwic29tZVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSIsImZyb21FeHByZXNzaW9uTm9kZSIsImV4cHJlc3Npb25Ob2RlIiwiZXhwcmVzc2lvblZhcmlhYmxlTm9kZSIsImZyb21FdmVyeU5vZGUiLCJldmVyeU5vZGUiLCJldmVyeVZhcmlhYmxlTm9kZSIsImZyb21QYXJhbWV0ZXIiLCJwYXJhbWV0ZXIiLCJzdHJpbmdGcm9tTmFtZSIsImZyb21SZWR1Y2VOb2RlIiwicmVkdWNlTm9kZSIsInJlZHVjZVZhcmlhYmxlTm9kZSIsImZyb21Ob2RlUXVlcnlOb2RlIiwibm9kZVF1ZXJ5Tm9kZSIsIm5vZGVRdWVyeVZhcmlhYmxlTm9kZSIsImZyb21Ob2Rlc1F1ZXJ5Tm9kZSIsIm5vZGVzUXVlcnlOb2RlIiwibm9kZXNRdWVyeVZhcmlhYmxlTm9kZSIsImZyb21OYW1lZFBhcmFtZXRlciIsIm5hbWVkUGFyYW1ldGVyIiwiYXNOYW1lIiwiZ2V0QXNOYW1lIiwiZnJvbUV4cHJlc3Npb25BbmRQYXJhbWV0ZXIiLCJmcm9tQXJyYXlBc3NpZ25tZW50Tm9kZSIsImFycmF5QXNzaWdubWVudE5vZGUiLCJhcnJheUFzc2lnbm1lbnRWYXJpYWJsZU5vZGUiLCJmcm9tT2JqZWN0QXNzaWdubWVudE5vZGUiLCJvYmplY3RBc3NpZ25tZW50Tm9kZSIsIm9iamVjdEFzc2lnbm1lbnRWYXJpYWJsZU5vZGUiLCJmcm9tVHlwZUFuZFZhcmlhYmxlQXNzaWdubWVudE5vZGUiLCJ2YXJpYWJsZUFzc2lnbm1lbnROb2RlIiwidmFyaWFibGVBc3NpZ25tZW50VmFyaWFibGVOb2RlIiwidmFyaWFibGVGcm9tVHlwZUFuZFZhcmlhYmxlTm9kZSIsImRvbSIsIm5hbWVGcm9tVmFyaWFibGVOb2RlIiwidmFyaWFibGVOYW1lVGVybWluYWxOb2RlIiwidmFyaWFibGVOYW1lVGVybWluYWxOb2RlQ29udGVudCIsImdldENvbnRlbnQiLCJuYW1lU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFtQkE7OztlQUFBOzs7MkRBakJnQjtnRUFDTTtxQkFFSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHMUIsSUFBTUEsd0JBQXdCQyxJQUFBQSxnQkFBUyxFQUFDLG1CQUNsQ0MseUJBQXlCRCxJQUFBQSxnQkFBUyxFQUFDLG9CQUNuQ0UsMEJBQTBCRixJQUFBQSxnQkFBUyxFQUFDLHFCQUNwQ0csNkJBQTZCSCxJQUFBQSxnQkFBUyxFQUFDLHdCQUN2Q0ksOEJBQThCSixJQUFBQSxnQkFBUyxFQUFDLHlCQUN4Q0ssOEJBQThCTCxJQUFBQSxnQkFBUyxFQUFDLHlCQUN4Q00sZ0NBQWdDTixJQUFBQSxnQkFBUyxFQUFDLG9CQUMxQ08sbUNBQW1DUCxJQUFBQSxnQkFBUyxFQUFDLDhCQUM3Q1Esb0NBQW9DUixJQUFBQSxnQkFBUyxFQUFDLCtCQUM5Q1Msc0NBQXNDVCxJQUFBQSxnQkFBUyxFQUFDO0lBRXRELFdBQWVVLElBQUFBLGdCQUFXLDZCQUFDO2FBQU1DLFNBQ25CQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxVQUFVO2dDQURYSjtRQUU3QixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElB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
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "expressionsFromFileContext", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return expressionsFromFileContext;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _occamquery = require("occam-query");
|
|
12
|
+
var _index = require("../../index");
|
|
13
|
+
var _necessary = require("necessary");
|
|
14
|
+
var first = _necessary.arrayUtilities.first;
|
|
15
|
+
var freeTermNodeQuery = _occamquery.Query.fromExpressionString("//term[1]"), boundTermNodeQuery = _occamquery.Query.fromExpressionString("//term[0]");
|
|
16
|
+
function expressionsFromFileContext(fileContext) {
|
|
17
|
+
var free = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
|
|
18
|
+
var context = fileContext, nodes = nodesFromFileContext(fileContext, free), expressions = _index.Expressions.fromNodes(nodes, context);
|
|
19
|
+
return expressions;
|
|
20
|
+
}
|
|
21
|
+
function nodesFromFileContext(fileContext, free) {
|
|
22
|
+
var termNodeQuery = free ? freeTermNodeQuery : boundTermNodeQuery, node = fileContext.getNode(), termNodes = termNodeQuery.execute(node), firstTermNode = first(termNodes), termNode = firstTermNode, statementNode = node, nodes = [
|
|
23
|
+
termNode,
|
|
24
|
+
statementNode
|
|
25
|
+
];
|
|
26
|
+
return nodes;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3V0aWxpdGllcy9leHByZXNzaW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgUXVlcnkgfSBmcm9tIFwib2NjYW0tcXVlcnlcIjtcbmltcG9ydCB7IEV4cHJlc3Npb25zIH0gZnJvbSBcIi4uLy4uL2luZGV4XCI7IC8vL1xuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgZmlyc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5jb25zdCBmcmVlVGVybU5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiLy90ZXJtWzFdXCIpLFxuICAgICAgYm91bmRUZXJtTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoXCIvL3Rlcm1bMF1cIik7XG5cbmV4cG9ydCBmdW5jdGlvbiBleHByZXNzaW9uc0Zyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCwgZnJlZSA9IHRydWUpIHtcbiAgY29uc3QgY29udGV4dCA9IGZpbGVDb250ZXh0LCAgLy8vXG4gICAgICAgIG5vZGVzID0gbm9kZXNGcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQsIGZyZWUpLFxuICAgICAgICBleHByZXNzaW9ucyA9IEV4cHJlc3Npb25zLmZyb21Ob2Rlcyhub2RlcywgY29udGV4dCk7XG5cbiAgcmV0dXJuIGV4cHJlc3Npb25zO1xufVxuXG5mdW5jdGlvbiBub2Rlc0Zyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCwgZnJlZSkge1xuICBjb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gZnJlZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWVUZXJtTm9kZVF1ZXJ5IDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3VuZFRlcm1Ob2RlUXVlcnksXG4gICAgICAgIG5vZGUgPSBmaWxlQ29udGV4dC5nZXROb2RlKCksXG4gICAgICAgIHRlcm1Ob2RlcyA9IHRlcm1Ob2RlUXVlcnkuZXhlY3V0ZShub2RlKSxcbiAgICAgICAgZmlyc3RUZXJtTm9kZSA9IGZpcnN0KHRlcm1Ob2RlcyksXG4gICAgICAgIHRlcm1Ob2RlID0gZmlyc3RUZXJtTm9kZSwgLy8vXG4gICAgICAgIHN0YXRlbWVudE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgbm9kZXMgPSBbXG4gICAgICAgICAgdGVybU5vZGUsXG4gICAgICAgICAgc3RhdGVtZW50Tm9kZVxuICAgICAgICBdO1xuXG4gIHJldHVybiBub2Rlcztcbn1cbiJdLCJuYW1lcyI6WyJleHByZXNzaW9uc0Zyb21GaWxlQ29udGV4dCIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJmcmVlVGVybU5vZGVRdWVyeSIsIlF1ZXJ5IiwiZnJvbUV4cHJlc3Npb25TdHJpbmciLCJib3VuZFRlcm1Ob2RlUXVlcnkiLCJmaWxlQ29udGV4dCIsImZyZWUiLCJjb250ZXh0Iiwibm9kZXMiLCJub2Rlc0Zyb21GaWxlQ29udGV4dCIsImV4cHJlc3Npb25zIiwiRXhwcmVzc2lvbnMiLCJmcm9tTm9kZXMiLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZSIsImdldE5vZGUiLCJ0ZXJtTm9kZXMiLCJleGVjdXRlIiwiZmlyc3RUZXJtTm9kZSIsInRlcm1Ob2RlIiwic3RhdGVtZW50Tm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV2dCQTs7O2VBQUFBOzs7MEJBVE07cUJBQ007eUJBQ0c7QUFFL0IsSUFBTSxBQUFFQyxRQUFVQyx5QkFBYyxDQUF4QkQ7QUFFUixJQUFNRSxvQkFBb0JDLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDLGNBQy9DQyxxQkFBcUJGLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDO0FBRS9DLFNBQVNMLDJCQUEyQk8sV0FBVztRQUFFQyxPQUFBQSxpRUFBTztJQUM3RCxJQUFNQyxVQUFVRixhQUNWRyxRQUFRQyxxQkFBcUJKLGFBQWFDLE9BQzFDSSxjQUFjQyxrQkFBVyxDQUFDQyxTQUFTLENBQUNKLE9BQU9EO0lBRWpELE9BQU9HO0FBQ1Q7QUFFQSxTQUFTRCxxQkFBcUJKLFdBQVcsRUFBRUMsSUFBSTtJQUM3QyxJQUFNTyxnQkFBZ0JQLE9BQ0VMLG9CQUNFRyxvQkFDcEJVLE9BQU9ULFlBQVlVLE9BQU8sSUFDMUJDLFlBQVlILGNBQWNJLE9BQU8sQ0FBQ0gsT0FDbENJLGdCQUFnQm5CLE1BQU1pQixZQUN0QkcsV0FBV0QsZUFDWEUsZ0JBQWdCTixNQUNoQk4sUUFBUTtRQUNOVztRQUNBQztLQUNEO0lBRVAsT0FBT1o7QUFDVCJ9
|
package/lib/example.js
CHANGED
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
require("./index");
|
|
6
6
|
var _release = require("./example/context/release");
|
|
7
7
|
var _furtle = require("./example/utilities/furtle");
|
|
8
|
-
var
|
|
8
|
+
var _expressions = require("./example/utilities/expressions");
|
|
9
9
|
var _procedure = require("./example/utilities/procedure");
|
|
10
10
|
var _nominal = require("./example/utilities/nominal");
|
|
11
11
|
var releaseContext = _release.ReleaseContext.fromNothing(), furtleFile = (0, _furtle.furtleFileFromNothing)(), file = furtleFile; ///
|
|
@@ -13,13 +13,13 @@ releaseContext.addFile(file);
|
|
|
13
13
|
releaseContext.verify();
|
|
14
14
|
var nominalFileContext = (0, _nominal.nominalFileContextFromReleaseContext)(releaseContext), fileContext = nominalFileContext; ///
|
|
15
15
|
releaseContext.addFileContext(fileContext);
|
|
16
|
-
var free = true,
|
|
16
|
+
var free = true, expressions = (0, _expressions.expressionsFromFileContext)(fileContext, free), procedure = (0, _procedure.procedureFromReleaseContext)(releaseContext);
|
|
17
17
|
// try {
|
|
18
|
-
var
|
|
18
|
+
var expression = procedure.call(expressions, fileContext), boolean = expression.getBoolean();
|
|
19
19
|
console.log(boolean); // } catch (exception) {
|
|
20
20
|
// const message = exception.getMessage();
|
|
21
21
|
//
|
|
22
22
|
// console.log(message);
|
|
23
23
|
// }
|
|
24
24
|
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9leGFtcGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgXCIuL2luZGV4XCI7XG5cbmltcG9ydCB7IFJlbGVhc2VDb250ZXh0IH0gZnJvbSBcIi4vZXhhbXBsZS9jb250ZXh0L3JlbGVhc2VcIjtcblxuaW1wb3J0IHsgZnVydGxlRmlsZUZyb21Ob3RoaW5nIH0gZnJvbSBcIi4vZXhhbXBsZS91dGlsaXRpZXMvZnVydGxlXCI7XG5pbXBvcnQgeyBleHByZXNzaW9uc0Zyb21GaWxlQ29udGV4dCB9IGZyb20gXCIuL2V4YW1wbGUvdXRpbGl0aWVzL2V4cHJlc3Npb25zXCI7XG5pbXBvcnQgeyBwcm9jZWR1cmVGcm9tUmVsZWFzZUNvbnRleHQgfSBmcm9tIFwiLi9leGFtcGxlL3V0aWxpdGllcy9wcm9jZWR1cmVcIjtcbmltcG9ydCB7IG5vbWluYWxGaWxlQ29udGV4dEZyb21SZWxlYXNlQ29udGV4dCB9IGZyb20gXCIuL2V4YW1wbGUvdXRpbGl0aWVzL25vbWluYWxcIjtcblxuY29uc3QgcmVsZWFzZUNvbnRleHQgPSBSZWxlYXNlQ29udGV4dC5mcm9tTm90aGluZygpLFxuICAgICAgZnVydGxlRmlsZSA9IGZ1cnRsZUZpbGVGcm9tTm90aGluZygpLFxuICAgICAgZmlsZSA9IGZ1cnRsZUZpbGU7ICAvLy9cblxucmVsZWFzZUNvbnRleHQuYWRkRmlsZShmaWxlKTtcblxucmVsZWFzZUNvbnRleHQudmVyaWZ5KCk7XG5cbmNvbnN0IG5vbWluYWxGaWxlQ29udGV4dCA9IG5vbWluYWxGaWxlQ29udGV4dEZyb21SZWxlYXNlQ29udGV4dChyZWxlYXNlQ29udGV4dCksXG4gICAgICBmaWxlQ29udGV4dCA9IG5vbWluYWxGaWxlQ29udGV4dDsgLy8vXG5cbnJlbGVhc2VDb250ZXh0LmFkZEZpbGVDb250ZXh0KGZpbGVDb250ZXh0KTtcblxuY29uc3QgZnJlZSA9IHRydWUsXG4gICAgICBleHByZXNzaW9ucyA9IGV4cHJlc3Npb25zRnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0LCBmcmVlKSxcbiAgICAgIHByb2NlZHVyZSA9IHByb2NlZHVyZUZyb21SZWxlYXNlQ29udGV4dChyZWxlYXNlQ29udGV4dCk7XG5cbi8vIHRyeSB7XG4gIGNvbnN0IGV4cHJlc3Npb24gPSBwcm9jZWR1cmUuY2FsbChleHByZXNzaW9ucywgZmlsZUNvbnRleHQpLFxuICAgICAgICBib29sZWFuID0gZXhwcmVzc2lvbi5nZXRCb29sZWFuKCk7XG5cbiAgY29uc29sZS5sb2coYm9vbGVhbik7XG4vLyB9IGNhdGNoIChleGNlcHRpb24pIHtcbi8vICAgY29uc3QgbWVzc2FnZSA9IGV4Y2VwdGlvbi5nZXRNZXNzYWdlKCk7XG4vL1xuLy8gICBjb25zb2xlLmxvZyhtZXNzYWdlKTtcbi8vIH1cbiJdLCJuYW1lcyI6WyJyZWxlYXNlQ29udGV4dCIsIlJlbGVhc2VDb250ZXh0IiwiZnJvbU5vdGhpbmciLCJmdXJ0bGVGaWxlIiwiZnVydGxlRmlsZUZyb21Ob3RoaW5nIiwiZmlsZSIsImFkZEZpbGUiLCJ2ZXJpZnkiLCJub21pbmFsRmlsZUNvbnRleHQiLCJub21pbmFsRmlsZUNvbnRleHRGcm9tUmVsZWFzZUNvbnRleHQiLCJmaWxlQ29udGV4dCIsImFkZEZpbGVDb250ZXh0IiwiZnJlZSIsImV4cHJlc3Npb25zIiwiZXhwcmVzc2lvbnNGcm9tRmlsZUNvbnRleHQiLCJwcm9jZWR1cmUiLCJwcm9jZWR1cmVGcm9tUmVsZWFzZUNvbnRleHQiLCJleHByZXNzaW9uIiwiY2FsbCIsImJvb2xlYW4iLCJnZXRCb29sZWFuIiwiY29uc29sZSIsImxvZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7UUFFTzt1QkFFd0I7c0JBRU87MkJBQ0s7eUJBQ0M7dUJBQ1M7QUFFckQsSUFBTUEsaUJBQWlCQyx1QkFBYyxDQUFDQyxXQUFXLElBQzNDQyxhQUFhQyxJQUFBQSw2QkFBcUIsS0FDbENDLE9BQU9GLFlBQWEsR0FBRztBQUU3QkgsZUFBZU0sT0FBTyxDQUFDRDtBQUV2QkwsZUFBZU8sTUFBTTtBQUVyQixJQUFNQyxxQkFBcUJDLElBQUFBLDZDQUFvQyxFQUFDVCxpQkFDMURVLGNBQWNGLG9CQUFvQixHQUFHO0FBRTNDUixlQUFlVyxjQUFjLENBQUNEO0FBRTlCLElBQU1FLE9BQU8sTUFDUEMsY0FBY0MsSUFBQUEsdUNBQTBCLEVBQUNKLGFBQWFFLE9BQ3RERyxZQUFZQyxJQUFBQSxzQ0FBMkIsRUFBQ2hCO0FBRTlDLFFBQVE7QUFDTixJQUFNaUIsYUFBYUYsVUFBVUcsSUFBSSxDQUFDTCxhQUFhSCxjQUN6Q1MsVUFBVUYsV0FBV0csVUFBVTtBQUVyQ0MsUUFBUUMsR0FBRyxDQUFDSCxVQUNkLHdCQUF3QjtDQUN4Qiw0Q0FBNEM7Q0FDNUMsRUFBRTtDQUNGLDBCQUEwQjtDQUMxQixJQUFJIn0=
|
package/lib/index.js
CHANGED
|
@@ -9,12 +9,12 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
+
Expressions: function() {
|
|
13
|
+
return _expressions.default;
|
|
14
|
+
},
|
|
12
15
|
FileContext: function() {
|
|
13
16
|
return _file.default;
|
|
14
17
|
},
|
|
15
|
-
Values: function() {
|
|
16
|
-
return _values.default;
|
|
17
|
-
},
|
|
18
18
|
stringUtilities: function() {
|
|
19
19
|
return _string.default;
|
|
20
20
|
}
|
|
@@ -23,9 +23,7 @@ var _step = /*#__PURE__*/ _interop_require_default(require("./dom/step"));
|
|
|
23
23
|
var _some = /*#__PURE__*/ _interop_require_default(require("./dom/some"));
|
|
24
24
|
var _label = /*#__PURE__*/ _interop_require_default(require("./dom/label"));
|
|
25
25
|
var _error = /*#__PURE__*/ _interop_require_default(require("./dom/error"));
|
|
26
|
-
var _value = /*#__PURE__*/ _interop_require_default(require("./dom/value"));
|
|
27
26
|
var _every = /*#__PURE__*/ _interop_require_default(require("./dom/every"));
|
|
28
|
-
var _values = /*#__PURE__*/ _interop_require_default(require("./dom/values"));
|
|
29
27
|
var _reduce = /*#__PURE__*/ _interop_require_default(require("./dom/reduce"));
|
|
30
28
|
var _ternary = /*#__PURE__*/ _interop_require_default(require("./dom/ternary"));
|
|
31
29
|
var _variable = /*#__PURE__*/ _interop_require_default(require("./dom/variable"));
|
|
@@ -36,18 +34,20 @@ var _parameter = /*#__PURE__*/ _interop_require_default(require("./dom/parameter
|
|
|
36
34
|
var _parameters = /*#__PURE__*/ _interop_require_default(require("./dom/parameters"));
|
|
37
35
|
var _nodes = /*#__PURE__*/ _interop_require_default(require("./dom/query/nodes"));
|
|
38
36
|
var _comparison = /*#__PURE__*/ _interop_require_default(require("./dom/comparison"));
|
|
37
|
+
var _expression = /*#__PURE__*/ _interop_require_default(require("./dom/expression"));
|
|
38
|
+
var _expressions = /*#__PURE__*/ _interop_require_default(require("./dom/expressions"));
|
|
39
39
|
var _return = /*#__PURE__*/ _interop_require_default(require("./dom/block/return"));
|
|
40
|
-
var _negated = /*#__PURE__*/ _interop_require_default(require("./dom/value/negated"));
|
|
41
|
-
var _bitwise = /*#__PURE__*/ _interop_require_default(require("./dom/value/bitwise"));
|
|
42
40
|
var _procedureCall = /*#__PURE__*/ _interop_require_default(require("./dom/procedureCall"));
|
|
43
41
|
var _named = /*#__PURE__*/ _interop_require_default(require("./dom/parameter/named"));
|
|
44
|
-
var _bracketed = /*#__PURE__*/ _interop_require_default(require("./dom/value/bracketed"));
|
|
45
42
|
var _array = /*#__PURE__*/ _interop_require_default(require("./dom/assignment/array"));
|
|
46
43
|
var _return1 = /*#__PURE__*/ _interop_require_default(require("./dom/statement/return"));
|
|
47
44
|
var _named1 = /*#__PURE__*/ _interop_require_default(require("./dom/parameters/named"));
|
|
48
45
|
var _object = /*#__PURE__*/ _interop_require_default(require("./dom/assignment/object"));
|
|
46
|
+
var _negated = /*#__PURE__*/ _interop_require_default(require("./dom/expression/negated"));
|
|
47
|
+
var _bitwise = /*#__PURE__*/ _interop_require_default(require("./dom/expression/bitwise"));
|
|
49
48
|
var _anonymous = /*#__PURE__*/ _interop_require_default(require("./dom/procedure/anonymous"));
|
|
50
49
|
var _variable1 = /*#__PURE__*/ _interop_require_default(require("./dom/assignment/variable"));
|
|
50
|
+
var _bracketed = /*#__PURE__*/ _interop_require_default(require("./dom/expression/bracketed"));
|
|
51
51
|
var _variable2 = /*#__PURE__*/ _interop_require_default(require("./dom/assignments/variable"));
|
|
52
52
|
var _procedure1 = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/procedure"));
|
|
53
53
|
var _file = /*#__PURE__*/ _interop_require_default(require("./context/file"));
|
|
@@ -58,4 +58,4 @@ function _interop_require_default(obj) {
|
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFN0ZXAgZnJvbSBcIi4vZG9tL3N0ZXBcIjtcbmltcG9ydCBTb21lIGZyb20gXCIuL2RvbS9zb21lXCI7XG5pbXBvcnQgTGFiZWwgZnJvbSBcIi4vZG9tL2xhYmVsXCI7XG5pbXBvcnQgRXJyb3IgZnJvbSBcIi4vZG9tL2Vycm9yXCI7XG5pbXBvcnQgRXZlcnkgZnJvbSBcIi4vZG9tL2V2ZXJ5XCI7XG5pbXBvcnQgUmVkdWNlIGZyb20gXCIuL2RvbS9yZWR1Y2VcIjtcbmltcG9ydCBUZXJuYXJ5IGZyb20gXCIuL2RvbS90ZXJuYXJ5XCI7XG5pbXBvcnQgVmFyaWFibGUgZnJvbSBcIi4vZG9tL3ZhcmlhYmxlXCI7XG5pbXBvcnQgUmVmZXJlbmNlIGZyb20gXCIuL2RvbS9yZWZlcmVuY2VcIjtcbmltcG9ydCBQcm9jZWR1cmUgZnJvbSBcIi4vZG9tL3Byb2NlZHVyZVwiO1xuaW1wb3J0IE5vZGVRdWVyeSBmcm9tIFwiLi9kb20vcXVlcnkvbm9kZVwiO1xuaW1wb3J0IFBhcmFtZXRlciBmcm9tIFwiLi9kb20vcGFyYW1ldGVyXCI7XG5pbXBvcnQgUGFyYW1ldGVycyBmcm9tIFwiLi9kb20vcGFyYW1ldGVyc1wiO1xuaW1wb3J0IE5vZGVzUXVlcnkgZnJvbSBcIi4vZG9tL3F1ZXJ5L25vZGVzXCI7XG5pbXBvcnQgQ29tcGFyaXNvbiBmcm9tIFwiLi9kb20vY29tcGFyaXNvblwiO1xuaW1wb3J0IEV4cHJlc3Npb24gZnJvbSBcIi4vZG9tL2V4cHJlc3Npb25cIjtcbmltcG9ydCBFeHByZXNzaW9ucyBmcm9tIFwiLi9kb20vZXhwcmVzc2lvbnNcIjtcbmltcG9ydCBSZXR1cm5CbG9jayBmcm9tIFwiLi9kb20vYmxvY2svcmV0dXJuXCI7XG5pbXBvcnQgUHJvY2VkdXJlQ2FsbCBmcm9tIFwiLi9kb20vcHJvY2VkdXJlQ2FsbFwiO1xuaW1wb3J0IE5hbWVkUGFyYW1ldGVyIGZyb20gXCIuL2RvbS9wYXJhbWV0ZXIvbmFtZWRcIjtcbmltcG9ydCBBcnJheUFzc2lnbWVudCBmcm9tIFwiLi9kb20vYXNzaWdubWVudC9hcnJheVwiO1xuaW1wb3J0IFJldHVyblN0YXRlbWVudCBmcm9tIFwiLi9kb20vc3RhdGVtZW50L3JldHVyblwiO1xuaW1wb3J0IE5hbWVkUGFyYW1ldGVycyBmcm9tIFwiLi9kb20vcGFyYW1ldGVycy9uYW1lZFwiO1xuaW1wb3J0IE9iamVjdEFzc2lnbm1lbnQgZnJvbSBcIi4vZG9tL2Fzc2lnbm1lbnQvb2JqZWN0XCI7XG5pbXBvcnQgTmVnYXRlZEV4cHJlc3Npb24gZnJvbSBcIi4vZG9tL2V4cHJlc3Npb24vbmVnYXRlZFwiO1xuaW1wb3J0IEJpdHdpc2VFeHByZXNzaW9uIGZyb20gXCIuL2RvbS9leHByZXNzaW9uL2JpdHdpc2VcIjtcbmltcG9ydCBBbm9ueW1vdXNQcm9jZWR1cmUgZnJvbSBcIi4vZG9tL3Byb2NlZHVyZS9hbm9ueW1vdXNcIjtcbmltcG9ydCBWYXJpYWJsZUFzc2lnbm1lbnQgZnJvbSBcIi4vZG9tL2Fzc2lnbm1lbnQvdmFyaWFibGVcIjtcbmltcG9ydCBCcmFja2V0ZWRFeHByZXNzaW9uIGZyb20gXCIuL2RvbS9leHByZXNzaW9uL2JyYWNrZXRlZFwiO1xuaW1wb3J0IFZhcmlhYmxlQXNzaWdubWVudHMgZnJvbSBcIi4vZG9tL2Fzc2lnbm1lbnRzL3ZhcmlhYmxlXCI7XG5pbXBvcnQgUHJvY2VkdXJlRGVjbGFyYXRpb24gZnJvbSBcIi4vZG9tL2RlY2xhcmF0aW9uL3Byb2NlZHVyZVwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEV4cHJlc3Npb25zIH0gZnJvbSBcIi4vZG9tL2V4cHJlc3Npb25zXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVDb250ZXh0IH0gZnJvbSBcIi4vY29udGV4dC9maWxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHN0cmluZ1V0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9zdHJpbmdcIjtcbiJdLCJuYW1lcyI6WyJFeHByZXNzaW9ucyIsIkZpbGVDb250ZXh0Iiwic3RyaW5nVXRpbGl0aWVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFrQ29CQSxXQUFXO2VBQVhBLG9CQUFXOztJQUNYQyxXQUFXO2VBQVhBLGFBQVc7O0lBQ1hDLGVBQWU7ZUFBZkEsZUFBZTs7OzJEQWxDbEI7MkRBQ0E7NERBQ0M7NERBQ0E7NERBQ0E7NkRBQ0M7OERBQ0M7K0RBQ0M7Z0VBQ0M7Z0VBQ0E7MkRBQ0E7Z0VBQ0E7aUVBQ0M7NERBQ0E7aUVBQ0E7aUVBQ0E7a0VBQ0M7NkRBQ0E7b0VBQ0U7NERBQ0M7NERBQ0E7OERBQ0M7NkRBQ0E7NkRBQ0M7OERBQ0M7OERBQ0E7Z0VBQ0M7Z0VBQ0E7Z0VBQ0M7Z0VBQ0E7aUVBQ0M7MkRBR007NkRBQ0kifQ==
|
package/package.json
CHANGED
|
@@ -33,18 +33,18 @@ export default domAssigned(class ArrayAssigment {
|
|
|
33
33
|
|
|
34
34
|
context.trace(`Evaluating the '${arrayAssignmentString}' array assignment...`);
|
|
35
35
|
|
|
36
|
-
const
|
|
37
|
-
|
|
36
|
+
const expression = this.variable.evaluate(context),
|
|
37
|
+
expressionType = expression.getType();
|
|
38
38
|
|
|
39
|
-
if (
|
|
40
|
-
const
|
|
41
|
-
message = `The ${
|
|
39
|
+
if (expressionType !== NODES_TYPE) {
|
|
40
|
+
const expressionString = expression.asString(context),
|
|
41
|
+
message = `The ${expressionString} expression's '${expressionType}' type should be '${NODES_TYPE}'.`,
|
|
42
42
|
exception = Exception.fromMessage(message);
|
|
43
43
|
|
|
44
44
|
throw exception;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
const nodes =
|
|
47
|
+
const nodes = expression.getNodes(),
|
|
48
48
|
nodesLength = nodes.length,
|
|
49
49
|
parametersLength = this.parameters.getLength();
|
|
50
50
|
|
|
@@ -59,22 +59,22 @@ export default domAssigned(class ArrayAssigment {
|
|
|
59
59
|
|
|
60
60
|
this.parameters.forEachParameter((parameter, index) => {
|
|
61
61
|
if (parameter !== null) {
|
|
62
|
-
const {
|
|
62
|
+
const { Expression } = dom,
|
|
63
63
|
node = nodes[index],
|
|
64
|
-
|
|
64
|
+
expression = Expression.fromNode(node, context);
|
|
65
65
|
|
|
66
|
-
this.evaluateParameter(parameter,
|
|
66
|
+
this.evaluateParameter(parameter, expression, context);
|
|
67
67
|
}
|
|
68
68
|
});
|
|
69
69
|
|
|
70
70
|
context.debug(`...evaluated the '${arrayAssignmentString}' array assignment.`);
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
evaluateParameter(parameter,
|
|
74
|
-
const
|
|
73
|
+
evaluateParameter(parameter, expression, context) {
|
|
74
|
+
const expressionString = expression.asString(context),
|
|
75
75
|
parameterString = parameter.getString();
|
|
76
76
|
|
|
77
|
-
context.trace(`Evaluating the '${parameterString}' parameter against the ${
|
|
77
|
+
context.trace(`Evaluating the '${parameterString}' parameter against the ${expressionString} expression...`);
|
|
78
78
|
|
|
79
79
|
const parameterType = parameter.getType();
|
|
80
80
|
|
|
@@ -88,9 +88,9 @@ export default domAssigned(class ArrayAssigment {
|
|
|
88
88
|
const { Variable } = dom,
|
|
89
89
|
variable = Variable.fromParameter(parameter, context);
|
|
90
90
|
|
|
91
|
-
variable.assign(
|
|
91
|
+
variable.assign(expression, context);
|
|
92
92
|
|
|
93
|
-
context.debug(`...evaluated the '${parameterString}' parameter against the ${
|
|
93
|
+
context.debug(`...evaluated the '${parameterString}' parameter against the ${expressionString} expression.`);
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
static name = "ArrayAssignment";
|
|
@@ -35,12 +35,12 @@ export default domAssigned(class ObjectAssigment {
|
|
|
35
35
|
|
|
36
36
|
context.trace(`Evaluating the '${objectAssignmentString}' object assignment...`);
|
|
37
37
|
|
|
38
|
-
const
|
|
39
|
-
|
|
38
|
+
const expression = this.variable.evaluate(context),
|
|
39
|
+
expressionType = expression.getType();
|
|
40
40
|
|
|
41
|
-
if (
|
|
42
|
-
const
|
|
43
|
-
message = `The ${
|
|
41
|
+
if (expressionType !== NODE_TYPE) {
|
|
42
|
+
const expressionString = expression.asString(context),
|
|
43
|
+
message = `The ${expressionString} expression's '${expressionType}' type should be '${NODE_TYPE}'.`,
|
|
44
44
|
exception = Exception.fromMessage(message);
|
|
45
45
|
|
|
46
46
|
throw exception;
|
|
@@ -49,35 +49,35 @@ export default domAssigned(class ObjectAssigment {
|
|
|
49
49
|
nodeProperties.matchNamedParameters(this.namedParameters, context);
|
|
50
50
|
|
|
51
51
|
this.namedParameters.forEachNamedParameter((namedParameter) => {
|
|
52
|
-
this.evaluateNamedParameter(namedParameter,
|
|
52
|
+
this.evaluateNamedParameter(namedParameter, expression, context);
|
|
53
53
|
});
|
|
54
54
|
|
|
55
55
|
context.debug(`...evaluated the '${objectAssignmentString}' object assignment.`);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
evaluateNamedParameter(namedParameter,
|
|
59
|
-
const
|
|
58
|
+
evaluateNamedParameter(namedParameter, expression, context) {
|
|
59
|
+
const expressionString = expression.asString(context),
|
|
60
60
|
namedParameterString = namedParameter.getString();
|
|
61
61
|
|
|
62
|
-
context.trace(`Evaluating the '${namedParameterString}' named parameter against the ${
|
|
62
|
+
context.trace(`Evaluating the '${namedParameterString}' named parameter against the ${expressionString} expression...`);
|
|
63
63
|
|
|
64
64
|
const name = namedParameter.getName();
|
|
65
65
|
|
|
66
66
|
switch (name) {
|
|
67
67
|
case CONTENT_PARAMETER_NAME: {
|
|
68
|
-
|
|
68
|
+
expression = this.evaluateContentNamedParameter(namedParameter, expression, context);
|
|
69
69
|
|
|
70
70
|
break;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
case TERMINAL_PARAMETER_NAME: {
|
|
74
|
-
|
|
74
|
+
expression = this.evaluateTerminalNamedParameter(namedParameter, expression, context);
|
|
75
75
|
|
|
76
76
|
break;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
case CHILD_NODES_PARAMETER_NAME: {
|
|
80
|
-
|
|
80
|
+
expression = this.evaluateChildNodesNamedParameter(namedParameter, expression, context);
|
|
81
81
|
|
|
82
82
|
break;
|
|
83
83
|
}
|
|
@@ -86,12 +86,12 @@ export default domAssigned(class ObjectAssigment {
|
|
|
86
86
|
const { Variable } = dom,
|
|
87
87
|
variable = Variable.fromNamedParameter(namedParameter, context);
|
|
88
88
|
|
|
89
|
-
variable.assign(
|
|
89
|
+
variable.assign(expression, context);
|
|
90
90
|
|
|
91
|
-
context.debug(`...evaluated the '${namedParameterString}' parameter named against the ${
|
|
91
|
+
context.debug(`...evaluated the '${namedParameterString}' parameter named against the ${expressionString} expression.`);
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
evaluateContentNamedParameter(namedParameter,
|
|
94
|
+
evaluateContentNamedParameter(namedParameter, expression, context) {
|
|
95
95
|
const type = namedParameter.getType();
|
|
96
96
|
|
|
97
97
|
if (type !== STRING_TYPE) {
|
|
@@ -102,28 +102,28 @@ export default domAssigned(class ObjectAssigment {
|
|
|
102
102
|
throw exception;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
const node =
|
|
105
|
+
const node = expression.getNode(),
|
|
106
106
|
nodeTerminalNode = node.isTerminalNode();
|
|
107
107
|
|
|
108
108
|
if (!nodeTerminalNode) {
|
|
109
|
-
const
|
|
110
|
-
message = `The ${
|
|
109
|
+
const expressionString = expression.asString(context),
|
|
110
|
+
message = `The ${expressionString} expression's node must be terminal.`,
|
|
111
111
|
exception = Exception.fromMessage(message);
|
|
112
112
|
|
|
113
113
|
throw exception;
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
-
const {
|
|
116
|
+
const { Expression } = dom,
|
|
117
117
|
terminalNode = node, ///
|
|
118
118
|
content = terminalNode.getContent(),
|
|
119
119
|
string = content; ///
|
|
120
120
|
|
|
121
|
-
|
|
121
|
+
expression = Expression.fromString(string, context); ///
|
|
122
122
|
|
|
123
|
-
return
|
|
123
|
+
return expression;
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
-
evaluateTerminalNamedParameter(namedParameter,
|
|
126
|
+
evaluateTerminalNamedParameter(namedParameter, expression, context) {
|
|
127
127
|
const type = namedParameter.getType();
|
|
128
128
|
|
|
129
129
|
if (type !== BOOLEAN_TYPE) {
|
|
@@ -134,19 +134,19 @@ export default domAssigned(class ObjectAssigment {
|
|
|
134
134
|
throw exception;
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
const node =
|
|
137
|
+
const node = expression.getNode(),
|
|
138
138
|
nodeTerminalNode = node.isTerminalNode(),
|
|
139
139
|
terminal = nodeTerminalNode; ///
|
|
140
140
|
|
|
141
|
-
const {
|
|
141
|
+
const { Expression } = dom,
|
|
142
142
|
boolean = terminal; ///
|
|
143
143
|
|
|
144
|
-
|
|
144
|
+
expression = Expression.fromBoolean(boolean, context); ///
|
|
145
145
|
|
|
146
|
-
return
|
|
146
|
+
return expression;
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
evaluateChildNodesNamedParameter(namedParameter,
|
|
149
|
+
evaluateChildNodesNamedParameter(namedParameter, expression, context) {
|
|
150
150
|
const type = namedParameter.getType();
|
|
151
151
|
|
|
152
152
|
if (type !== NODES_TYPE) {
|
|
@@ -157,25 +157,25 @@ export default domAssigned(class ObjectAssigment {
|
|
|
157
157
|
throw exception;
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
-
const node =
|
|
160
|
+
const node = expression.getNode(),
|
|
161
161
|
nodeNonTerminalNode = node.isNonTerminalNode();
|
|
162
162
|
|
|
163
163
|
if (!nodeNonTerminalNode) {
|
|
164
|
-
const
|
|
165
|
-
message = `The ${
|
|
164
|
+
const expressionString = expression.asString(context),
|
|
165
|
+
message = `The ${expressionString} expression's node must be non-terminal.`,
|
|
166
166
|
exception = Exception.fromMessage(message);
|
|
167
167
|
|
|
168
168
|
throw exception;
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
-
const {
|
|
171
|
+
const { Expression } = dom,
|
|
172
172
|
nonTerminalNode = node, ///
|
|
173
173
|
childNodes = nonTerminalNode.getChildNodes(),
|
|
174
174
|
nodes = childNodes; ///
|
|
175
175
|
|
|
176
|
-
|
|
176
|
+
expression = Expression.fromNodes(nodes, context); ///
|
|
177
177
|
|
|
178
|
-
return
|
|
178
|
+
return expression;
|
|
179
179
|
}
|
|
180
180
|
|
|
181
181
|
static name = "ObjectAssigment";
|