occam-furtle 3.0.461 → 3.0.462
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/element/assignment/list.js +2 -2
- package/lib/element/assignment/object.js +6 -5
- package/lib/element/binding.js +5 -4
- package/lib/element/bindings/named.js +15 -8
- package/lib/element/bindings.js +15 -9
- package/lib/element/contains.js +4 -4
- package/lib/element/endsWith.js +4 -4
- package/lib/element/lengthOf.js +4 -4
- package/lib/element/nodeQuery.js +7 -7
- package/lib/element/nodesQuery.js +6 -6
- package/lib/element/primitive.js +3 -3
- package/lib/element/returnStatement.js +3 -3
- package/lib/element/startsWith.js +4 -4
- package/lib/element/term/bracketed.js +3 -3
- package/lib/element/term/comparison.js +4 -4
- package/lib/element/term/logical.js +5 -5
- package/lib/element/term/negated.js +4 -4
- package/lib/element/term.js +8 -10
- package/lib/element/terms.js +3 -3
- package/lib/element/toInteger.js +5 -5
- package/lib/element/tryInteger.js +4 -4
- package/lib/element/value.js +4 -6
- package/lib/element/values.js +3 -3
- package/lib/element/variable.js +4 -4
- package/package.json +2 -2
- package/src/element/assignment/list.js +1 -1
- package/src/element/assignment/object.js +6 -6
- package/src/element/binding.js +5 -3
- package/src/element/bindings/named.js +22 -10
- package/src/element/bindings.js +20 -10
- package/src/element/contains.js +3 -3
- package/src/element/endsWith.js +3 -3
- package/src/element/lengthOf.js +3 -3
- package/src/element/nodeQuery.js +6 -6
- package/src/element/nodesQuery.js +5 -5
- package/src/element/primitive.js +2 -2
- package/src/element/returnStatement.js +2 -2
- package/src/element/startsWith.js +3 -3
- package/src/element/term/bracketed.js +2 -2
- package/src/element/term/comparison.js +3 -3
- package/src/element/term/logical.js +4 -4
- package/src/element/term/negated.js +3 -3
- package/src/element/term.js +7 -11
- package/src/element/terms.js +2 -2
- package/src/element/toInteger.js +4 -4
- package/src/element/tryInteger.js +3 -3
- package/src/element/value.js +3 -7
- package/src/element/values.js +2 -2
- package/src/element/variable.js +3 -3
|
@@ -92,7 +92,7 @@ const _default = (0, _elements.define)(class ListAssignment extends _occamlangua
|
|
|
92
92
|
}
|
|
93
93
|
const value = values[index];
|
|
94
94
|
return this.evaluateBinding(binding, value, context, back, forward);
|
|
95
|
-
}, ()=>{
|
|
95
|
+
}, back, ()=>{
|
|
96
96
|
context.debug(`...evaluated the '${listAssignmentString}' list assignment.`);
|
|
97
97
|
return forward();
|
|
98
98
|
});
|
|
@@ -114,4 +114,4 @@ const _default = (0, _elements.define)(class ListAssignment extends _occamlangua
|
|
|
114
114
|
static name = "ListAssignment";
|
|
115
115
|
});
|
|
116
116
|
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvbGlzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcywgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi8uLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi8uLi90eXBlTmFtZXNcIjtcblxuY29uc3QgeyBmb3JFYWNoIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXMsXG4gICAgICB7IGJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIExpc3RBc3NpZ25tZW50IGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIGJpbmRpbmdzKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLmJpbmRpbmdzID0gYmluZGluZ3M7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldEJpbmRpbmdzKCkge1xuICAgIHJldHVybiB0aGlzLmJpbmRpbmdzO1xuICB9XG5cbiAgZXZhbHVhdGUgPSBicmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCBsaXN0QXNzaWdubWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7bGlzdEFzc2lnbm1lbnRTdHJpbmd9JyBsaXN0IGFzc2lnbm1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlTGlzdFR5cGUgPSB2YWx1ZVR5cGUuaXNMaXN0VHlwZSgpO1xuXG4gICAgaWYgKCF2YWx1ZVR5cGVMaXN0VHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtMSVNUX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBiaW5kaW5nc0xlbmd0aCA9IHRoaXMuYmluZGluZ3MuZ2V0TGVuZ3RoKCksXG4gICAgICAgICAgcHJpbWl0aXZlVmFsdWUgPSB2YWx1ZS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIHByaW1pdGl2ZVZhbHVlTGVuZ3RoID0gcHJpbWl0aXZlVmFsdWUubGVuZ3RoO1xuXG4gICAgaWYgKGJpbmRpbmdzTGVuZ3RoID4gcHJpbWl0aXZlVmFsdWVMZW5ndGgpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBiaW5kaW5nc1N0cmluZyA9IHRoaXMuYmluZGluZ3MuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSBsZW5ndGggb2YgdGhlICcke2JpbmRpbmdzU3RyaW5nfScgYmluZGluZ3MgaXMgZ3JlYXRlciB0aGFuIHRoZSBsZW5ndGggb2YgdGhlICcke3ZhbHVlU3RyaW5nfScgbGlzdC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWVzID0gdmFsdWUubGlmdChjb250ZXh0KTtcblxuICAgIHJldHVybiBmb3JFYWNoKHRoaXMuYmluZGluZ3MsIChiaW5kaW5nLCBiYWNrLCBmb3J3YXJkLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgZWxpZGVkID0gYmluZGluZy5pc0VsaWRlZCgpO1xuXG4gICAgICBpZiAoZWxpZGVkKSB7XG4gICAgICAgIHJldHVybiBmb3J3YXJkKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzW2luZGV4XTtcblxuICAgICAgcmV0dXJuIHRoaXMuZXZhbHVhdGVCaW5kaW5nKGJpbmRpbmcsIHZhbHVlLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9LCBiYWNrLCAoKSA9PiB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke2xpc3RBc3NpZ25tZW50U3RyaW5nfScgbGlzdCBhc3NpZ25tZW50LmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBldmFsdWF0ZUJpbmRpbmcoYmluZGluZywgdmFsdWUsIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgIGJpbmRpbmdTdHJpbmcgPSBiaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7YmluZGluZ1N0cmluZ30nIGJpbmRpbmcgYWdhaW5zdCB0aGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZS4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIGJpbmRpbmdUeXBlID0gYmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgYmluZGluZ1R5cGVFcXVhbFRvVmFsdWVUeXBlID0gYmluZGluZ1R5cGUuaXNFcXVhbFRvKHZhbHVlVHlwZSk7XG5cbiAgICBpZiAoIWJpbmRpbmdUeXBlRXF1YWxUb1ZhbHVlVHlwZSkge1xuICAgICAgY29uc3QgYmluZGluZ1R5cGVTdHJpbmcgPSBiaW5kaW5nVHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIHZhbHVlVHlwZVN0cmluZyA9IHZhbHVlVHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtiaW5kaW5nU3RyaW5nfScgYmluZGluZydzICcke2JpbmRpbmdUeXBlU3RyaW5nfScgdHlwZSBpcyBub3QgZXF1YWwgdG8gdGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGVTdHJpbmd9JyB0eXBlLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCB7IFZhcmlhYmxlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21CaW5kaW5nKGJpbmRpbmcsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlLmFzc2lnbih2YWx1ZSwgY29udGV4dCwgYmFjaywgKCkgPT4ge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtiaW5kaW5nU3RyaW5nfScgYmluZGluZyBhZ2FpbnN0IHRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlLmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkxpc3RBc3NpZ25tZW50XCI7XG59KTtcbiJdLCJuYW1lcyI6WyJmb3JFYWNoIiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiYnJlYWthYmxlIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIkxpc3RBc3NpZ25tZW50IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwiYmluZGluZ3MiLCJnZXRWYXJpYWJsZSIsImdldEJpbmRpbmdzIiwiZXZhbHVhdGUiLCJiYWNrIiwiZm9yd2FyZCIsImxpc3RBc3NpZ25tZW50U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZSIsInZhbHVlVHlwZSIsImdldFR5cGUiLCJ2YWx1ZVR5cGVMaXN0VHlwZSIsImlzTGlzdFR5cGUiLCJ2YWx1ZVN0cmluZyIsIm1lc3NhZ2UiLCJMSVNUX1RZUEVfTkFNRSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiYmluZGluZ3NMZW5ndGgiLCJnZXRMZW5ndGgiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwicHJpbWl0aXZlVmFsdWVMZW5ndGgiLCJsZW5ndGgiLCJiaW5kaW5nc1N0cmluZyIsInZhbHVlcyIsImxpZnQiLCJiaW5kaW5nIiwiaW5kZXgiLCJlbGlkZWQiLCJpc0VsaWRlZCIsImV2YWx1YXRlQmluZGluZyIsImRlYnVnIiwiYmluZGluZ1N0cmluZyIsImJpbmRpbmdUeXBlIiwiYmluZGluZ1R5cGVFcXVhbFRvVmFsdWVUeXBlIiwiaXNFcXVhbFRvIiwiYmluZGluZ1R5cGVTdHJpbmciLCJ2YWx1ZVR5cGVTdHJpbmciLCJWYXJpYWJsZSIsImVsZW1lbnRzIiwiZnJvbUJpbmRpbmciLCJhc3NpZ24iLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7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
|
|
@@ -84,11 +84,12 @@ const _default = (0, _elements.define)(class ObjectAssignment extends _occamlang
|
|
|
84
84
|
throw exception;
|
|
85
85
|
}
|
|
86
86
|
_nominalValueProperties.default.compareNamedBindings(this.namedBindings, context);
|
|
87
|
-
this.namedBindings.forEachNamedBinding((namedBinding)=>{
|
|
88
|
-
this.evaluateNamedBinding(namedBinding, value, context);
|
|
87
|
+
return this.namedBindings.forEachNamedBinding((namedBinding, back, forward)=>{
|
|
88
|
+
this.evaluateNamedBinding(namedBinding, value, context, back, forward);
|
|
89
|
+
}, back, ()=>{
|
|
90
|
+
context.debug(`...evaluated the '${objectAssignmentString}' object assignment.`);
|
|
91
|
+
return forward();
|
|
89
92
|
});
|
|
90
|
-
context.debug(`...evaluated the '${objectAssignmentString}' object assignment.`);
|
|
91
|
-
return forward();
|
|
92
93
|
});
|
|
93
94
|
evaluateNamedBinding(namedBinding, term, context, back, forward) {
|
|
94
95
|
const termString = term.getString(), namedBindingString = namedBinding.getString();
|
|
@@ -189,4 +190,4 @@ const _default = (0, _elements.define)(class ObjectAssignment extends _occamlang
|
|
|
189
190
|
static name = "ObjectAssignment";
|
|
190
191
|
});
|
|
191
192
|
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvb2JqZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi8uLi9leGNlcHRpb25cIjtcbmltcG9ydCBub21pbmFsVmFsdWVQcm9wZXJ0aWVzIGZyb20gXCIuLi8uLi9ub21pbmFsVmFsdWVQcm9wZXJ0aWVzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgc3RyaW5nTGl0ZXJhbEZyb21TdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ0xpdGVyYWxcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUJvb2xlYW4sIHZhbHVlRnJvbVN0cmluZ0xpdGVyYWwsIHZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy92YWx1ZVwiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUsIFNUUklOR19UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi8uLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IENPTlRFTlRfUEFSQU1FVEVSX05BTUUsIFRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FLCBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSwgTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRSB9IGZyb20gXCIuLi8uLi9wYXJhbWV0ZXJOYW1lc1wiO1xuXG5jb25zdCB7IGJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIE9iamVjdEFzc2lnbm1lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgbmFtZWRCaW5kaW5ncykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5uYW1lZEJpbmRpbmdzID0gbmFtZWRCaW5kaW5ncztcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0TmFtZWRCaW5kaW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lZEJpbmRpbmdzO1xuICB9XG5cbiAgZXZhbHVhdGUgPSBicmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCBvYmplY3RBc3NpZ25tZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtvYmplY3RBc3NpZ25tZW50U3RyaW5nfScgb2JqZWN0IGFzc2lnbm1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSA9IHZhbHVlVHlwZS5pc05vbWluYWxWYWx1ZVR5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBub21pbmFsVmFsdWVQcm9wZXJ0aWVzLmNvbXBhcmVOYW1lZEJpbmRpbmdzKHRoaXMubmFtZWRCaW5kaW5ncywgY29udGV4dCk7XG5cbiAgICB0aGlzLm5hbWVkQmluZGluZ3MuZm9yRWFjaE5hbWVkQmluZGluZygobmFtZWRCaW5kaW5nKSA9PiB7XG4gICAgICB0aGlzLmV2YWx1YXRlTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdmFsdWUsIGNvbnRleHQpO1xuICAgIH0pO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtvYmplY3RBc3NpZ25tZW50U3RyaW5nfScgb2JqZWN0IGFzc2lnbm1lbnQuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZCgpO1xuICB9KTtcblxuICBldmFsdWF0ZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFnYWluc3QgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLi4uYCk7XG5cbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBuYW1lID0gbmFtZWRCaW5kaW5nLmdldE5hbWUoKTtcblxuICAgIHN3aXRjaCAobmFtZSkge1xuICAgICAgY2FzZSBDT05URU5UX1BBUkFNRVRFUl9OQU1FOiB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5ldmFsdWF0ZUNvbnRlbnROYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBURVJNSU5BTF9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICB2YWx1ZSA9IHRoaXMuZXZhbHVhdGVUZXJtaW5hbE5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIENISUxEX05PREVTX1BBUkFNRVRFUl9OQU1FOiB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5ldmFsdWF0ZUNoaWxkTm9kZXNOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBOT19XSElURVNQQUNFX1BBUkFNRVRFUl9OQU1FOiB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5ldmFsdWF0ZU5vV2hpdGVzcGFjZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHsgVmFyaWFibGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgIHZhcmlhYmxlID0gVmFyaWFibGUuZnJvbU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlLmFzc2lnbih2YWx1ZSwgY29udGV4dCwgYmFjaywgKCkgPT4ge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBwYXJhbWV0ZXIgbmFtZWQgYWdhaW5zdCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0uYCk7XG5cbiAgICAgIGZvcndhcmQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGV2YWx1YXRlQ29udGVudE5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSBjb250ZW50ICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVTdHJpbmdUeXBlID0gdHlwZS5pc1N0cmluZ1R5cGUoKTtcblxuICAgIGlmICghdHlwZVN0cmluZ1R5cGUpIHtcbiAgICAgIGNvbnN0IG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcncyB0eXBlIHNob3VsZCBiZSAnJHtTVFJJTkdfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGVybS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG5vbWluYWxWYWx1ZS5nZXROb2RlKCksXG4gICAgICAgICAgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmICghbm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSdzIG5vZGUgbXVzdCBiZSB0ZXJtaW5hbC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIGNvbnRlbnQgPSB0ZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgIHN0cmluZyA9IGNvbnRlbnQsICAvLy9cbiAgICAgICAgICBzdHJpbmdMaXRlcmFsID0gc3RyaW5nTGl0ZXJhbEZyb21TdHJpbmcoc3RyaW5nKSxcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCwgY29udGV4dCksXG4gICAgICAgICAgdmFsdWVTdHRyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlIGNvbnRlbnQgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhcyAnJHt2YWx1ZVN0dHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGV2YWx1YXRlVGVybWluYWxOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IG5hbWVkQmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgdGVybWluYWwgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZy4uLmApO1xuXG4gICAgY29uc3QgdHlwZUJvb2xlYW5UeXBlID0gdHlwZS5pc0Jvb2xlYW5UeXBlKCk7XG5cbiAgICBpZiAoIXR5cGVCb29sZWFuVHlwZSkge1xuICAgICAgY29uc3QgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZydzIHR5cGUgc2hvdWxkIGJlICcke0JPT0xFQU5fVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGVybS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG5vbWluYWxWYWx1ZS5nZXROb2RlKCksXG4gICAgICAgICAgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICB0ZXJtaW5hbCA9IG5vZGVUZXJtaW5hbE5vZGUsICAvLy9cbiAgICAgICAgICBib29sZWFuID0gdGVybWluYWwsIC8vL1xuICAgICAgICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSwgIC8vL1xuICAgICAgICAgIHZhbHVlU3R0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSB0ZXJtaW5hbCAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFzICcke3ZhbHVlU3R0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgZXZhbHVhdGVDaGlsZE5vZGVzTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdGVybSwgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBuYW1lZEJpbmRpbmcuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlIGNoaWxkIG5vZGVzICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVMaXN0VHlwZSA9IHR5cGUuaXNMaXN0VHlwZSgpO1xuXG4gICAgaWYgKCF0eXBlTGlzdFR5cGUpIHtcbiAgICAgIGNvbnN0IG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcncyB0eXBlIHNob3VsZCBiZSAnJHtMSVNUX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVOb25UZXJtaW5hbE5vZGUgPSBub2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoIW5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dGVybVN0cmluZ30nIHRlcm0ncyBub2RlIG11c3QgYmUgbm9uLXRlcm1pbmFsLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlKG5vZGVzLCBub21pbmFsVmFsdWUpLFxuICAgICAgICAgIHZhbHVlU3R0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSBjaGlsZE5vZGVzICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcgYXMgJyR7dmFsdWVTdHRyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBldmFsdWF0ZU5vV2hpdGVzcGFjZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSBubyB3aGl0ZXNwYWNlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVCb29sZWFuVHlwZSA9IHR5cGUuaXNCb29sZWFuVHlwZSgpO1xuXG4gICAgaWYgKCF0eXBlQm9vbGVhblR5cGUpIHtcbiAgICAgIGNvbnN0IG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcncyB0eXBlIHNob3VsZCBiZSAnJHtCT09MRUFOX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoIW5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dGVybVN0cmluZ30nIHRlcm0ncyBub2RlIG11c3QgYmUgdGVybWluYWwuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICBub1doaXRlYXBjZSA9IHRlcm1pbmFsTm9kZS5pc05vV2hpdGVzcGFjZU5vZGUoKSxcbiAgICAgICAgICBib29sZWFuID0gbm9XaGl0ZWFwY2UsICAvLy9cbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlRnJvbUJvb2xlYW4oYm9vbGVhbiwgY29udGV4dCksXG4gICAgICAgICAgdmFsdWVTdHRyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlIG5vIHdoaXRlc3BhY2UgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhcyAnJHt2YWx1ZVN0dHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJPYmplY3RBc3NpZ25tZW50XCI7XG59KTtcbiJdLCJuYW1lcyI6WyJicmVha2FibGUiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiT2JqZWN0QXNzaWdubWVudCIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YXJpYWJsZSIsIm5hbWVkQmluZGluZ3MiLCJnZXRWYXJpYWJsZSIsImdldE5hbWVkQmluZGluZ3MiLCJldmFsdWF0ZSIsImJhY2siLCJmb3J3YXJkIiwib2JqZWN0QXNzaWdubWVudFN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsdWUiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSIsImlzTm9taW5hbFZhbHVlVHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIk5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJub21pbmFsVmFsdWVQcm9wZXJ0aWVzIiwiY29tcGFyZU5hbWVkQmluZGluZ3MiLCJmb3JFYWNoTmFtZWRCaW5kaW5nIiwibmFtZWRCaW5kaW5nIiwiZXZhbHVhdGVOYW1lZEJpbmRpbmciLCJkZWJ1ZyIsInRlcm0iLCJ0ZXJtU3RyaW5nIiwibmFtZWRCaW5kaW5nU3RyaW5nIiwibmFtZSIsImdldE5hbWUiLCJDT05URU5UX1BBUkFNRVRFUl9OQU1FIiwiZXZhbHVhdGVDb250ZW50TmFtZWRCaW5kaW5nIiwiVEVSTUlOQUxfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZVRlcm1pbmFsTmFtZWRCaW5kaW5nIiwiQ0hJTERfTk9ERVNfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZUNoaWxkTm9kZXNOYW1lZEJpbmRpbmciLCJOT19XSElURVNQQUNFX1BBUkFNRVRFUl9OQU1FIiwiZXZhbHVhdGVOb1doaXRlc3BhY2VOYW1lZEJpbmRpbmciLCJWYXJpYWJsZSIsImVsZW1lbnRzIiwiZnJvbU5hbWVkQmluZGluZyIsImFzc2lnbiIsInR5cGUiLCJ0eXBlU3RyaW5nVHlwZSIsImlzU3RyaW5nVHlwZSIsIlNUUklOR19UWVBFX05BTUUiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwibm9taW5hbFZhbHVlIiwiZ2V0Tm9kZSIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsImNvbnRlbnQiLCJnZXRDb250ZW50Iiwic3RyaW5nTGl0ZXJhbCIsInN0cmluZ0xpdGVyYWxGcm9tU3RyaW5nIiwidmFsdWVGcm9tU3RyaW5nTGl0ZXJhbCIsInZhbHVlU3R0cmluZyIsInR5cGVCb29sZWFuVHlwZSIsImlzQm9vbGVhblR5cGUiLCJCT09MRUFOX1RZUEVfTkFNRSIsInRlcm1pbmFsIiwiYm9vbGVhbiIsInZhbHVlRnJvbUJvb2xlYW4iLCJ0eXBlTGlzdFR5cGUiLCJpc0xpc3RUeXBlIiwiTElTVF9UWVBFX05BTUUiLCJub2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsIm5vZGVzIiwidmFsdWVGcm9tTm9kZXNBbmROb21pbmFsVmFsdWUiLCJub1doaXRlYXBjZSIsImlzTm9XaGl0ZXNwYWNlTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZ0JBOzs7ZUFBQTs7O2dDQWQ2QztrRUFFeEI7a0VBQ0M7K0VBQ2E7K0JBR0s7dUJBQ2dEOzJCQUNLO2dDQUM2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUgsTUFBTSxFQUFFQSxTQUFTLEVBQUUsR0FBR0MsbUNBQW1CO01BRXpDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMseUJBQXlCQyx1QkFBTztJQUMxRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFV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
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvb2JqZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi8uLi9leGNlcHRpb25cIjtcbmltcG9ydCBub21pbmFsVmFsdWVQcm9wZXJ0aWVzIGZyb20gXCIuLi8uLi9ub21pbmFsVmFsdWVQcm9wZXJ0aWVzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgc3RyaW5nTGl0ZXJhbEZyb21TdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ0xpdGVyYWxcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUJvb2xlYW4sIHZhbHVlRnJvbVN0cmluZ0xpdGVyYWwsIHZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy92YWx1ZVwiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUsIFNUUklOR19UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi8uLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IENPTlRFTlRfUEFSQU1FVEVSX05BTUUsIFRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FLCBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSwgTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRSB9IGZyb20gXCIuLi8uLi9wYXJhbWV0ZXJOYW1lc1wiO1xuXG5jb25zdCB7IGJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIE9iamVjdEFzc2lnbm1lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgbmFtZWRCaW5kaW5ncykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5uYW1lZEJpbmRpbmdzID0gbmFtZWRCaW5kaW5ncztcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0TmFtZWRCaW5kaW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lZEJpbmRpbmdzO1xuICB9XG5cbiAgZXZhbHVhdGUgPSBicmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCBvYmplY3RBc3NpZ25tZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtvYmplY3RBc3NpZ25tZW50U3RyaW5nfScgb2JqZWN0IGFzc2lnbm1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSA9IHZhbHVlVHlwZS5pc05vbWluYWxWYWx1ZVR5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBub21pbmFsVmFsdWVQcm9wZXJ0aWVzLmNvbXBhcmVOYW1lZEJpbmRpbmdzKHRoaXMubmFtZWRCaW5kaW5ncywgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdGhpcy5uYW1lZEJpbmRpbmdzLmZvckVhY2hOYW1lZEJpbmRpbmcoKG5hbWVkQmluZGluZywgYmFjaywgZm9yd2FyZCkgPT4ge1xuICAgICAgdGhpcy5ldmFsdWF0ZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHZhbHVlLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9LCBiYWNrLCAoKSA9PiB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke29iamVjdEFzc2lnbm1lbnRTdHJpbmd9JyBvYmplY3QgYXNzaWdubWVudC5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZXZhbHVhdGVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhZ2FpbnN0IHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS4uLmApO1xuXG4gICAgbGV0IHZhbHVlO1xuXG4gICAgY29uc3QgbmFtZSA9IG5hbWVkQmluZGluZy5nZXROYW1lKCk7XG5cbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgQ09OVEVOVF9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICB2YWx1ZSA9IHRoaXMuZXZhbHVhdGVDb250ZW50TmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdGVybSwgY29udGV4dCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVEVSTUlOQUxfUEFSQU1FVEVSX05BTUU6IHtcbiAgICAgICAgdmFsdWUgPSB0aGlzLmV2YWx1YXRlVGVybWluYWxOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRToge1xuICAgICAgICB2YWx1ZSA9IHRoaXMuZXZhbHVhdGVDaGlsZE5vZGVzTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdGVybSwgY29udGV4dCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICB2YWx1ZSA9IHRoaXMuZXZhbHVhdGVOb1doaXRlc3BhY2VOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB7IFZhcmlhYmxlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21OYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZS5hc3NpZ24odmFsdWUsIGNvbnRleHQsIGJhY2ssICgpID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgcGFyYW1ldGVyIG5hbWVkIGFnYWluc3QgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmApO1xuXG4gICAgICBmb3J3YXJkKCk7XG4gICAgfSk7XG4gIH1cblxuICBldmFsdWF0ZUNvbnRlbnROYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IG5hbWVkQmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgY29udGVudCAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlU3RyaW5nVHlwZSA9IHR5cGUuaXNTdHJpbmdUeXBlKCk7XG5cbiAgICBpZiAoIXR5cGVTdHJpbmdUeXBlKSB7XG4gICAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7U1RSSU5HX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoIW5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dGVybVN0cmluZ30nIHRlcm0ncyBub2RlIG11c3QgYmUgdGVybWluYWwuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICBjb250ZW50ID0gdGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICBzdHJpbmcgPSBjb250ZW50LCAgLy8vXG4gICAgICAgICAgc3RyaW5nTGl0ZXJhbCA9IHN0cmluZ0xpdGVyYWxGcm9tU3RyaW5nKHN0cmluZyksXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZUZyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwsIGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlU3R0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSBjb250ZW50ICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcgYXMgJyR7dmFsdWVTdHRyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBldmFsdWF0ZVRlcm1pbmFsTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdGVybSwgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBuYW1lZEJpbmRpbmcuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlIHRlcm1pbmFsICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVCb29sZWFuVHlwZSA9IHR5cGUuaXNCb29sZWFuVHlwZSgpO1xuXG4gICAgaWYgKCF0eXBlQm9vbGVhblR5cGUpIHtcbiAgICAgIGNvbnN0IG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcncyB0eXBlIHNob3VsZCBiZSAnJHtCT09MRUFOX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgdGVybWluYWwgPSBub2RlVGVybWluYWxOb2RlLCAgLy8vXG4gICAgICAgICAgYm9vbGVhbiA9IHRlcm1pbmFsLCAvLy9cbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlRnJvbUJvb2xlYW4oYm9vbGVhbiwgY29udGV4dCksICAvLy9cbiAgICAgICAgICB2YWx1ZVN0dHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgdGVybWluYWwgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhcyAnJHt2YWx1ZVN0dHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGV2YWx1YXRlQ2hpbGROb2Rlc05hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSBjaGlsZCBub2RlcyAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlTGlzdFR5cGUgPSB0eXBlLmlzTGlzdFR5cGUoKTtcblxuICAgIGlmICghdHlwZUxpc3RUeXBlKSB7XG4gICAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7TElTVF9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0ZXJtLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlTm9uVGVybWluYWxOb2RlID0gbm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKCFub2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtJ3Mgbm9kZSBtdXN0IGJlIG5vbi10ZXJtaW5hbC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIG5vZGVzID0gY2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZUZyb21Ob2Rlc0FuZE5vbWluYWxWYWx1ZShub2Rlcywgbm9taW5hbFZhbHVlKSxcbiAgICAgICAgICB2YWx1ZVN0dHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgY2hpbGROb2RlcyAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFzICcke3ZhbHVlU3R0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgZXZhbHVhdGVOb1doaXRlc3BhY2VOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IG5hbWVkQmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgbm8gd2hpdGVzcGFjZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlQm9vbGVhblR5cGUgPSB0eXBlLmlzQm9vbGVhblR5cGUoKTtcblxuICAgIGlmICghdHlwZUJvb2xlYW5UeXBlKSB7XG4gICAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7Qk9PTEVBTl9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0ZXJtLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKCFub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtJ3Mgbm9kZSBtdXN0IGJlIHRlcm1pbmFsLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgbm9XaGl0ZWFwY2UgPSB0ZXJtaW5hbE5vZGUuaXNOb1doaXRlc3BhY2VOb2RlKCksXG4gICAgICAgICAgYm9vbGVhbiA9IG5vV2hpdGVhcGNlLCAgLy8vXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZUZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlU3R0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSBubyB3aGl0ZXNwYWNlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcgYXMgJyR7dmFsdWVTdHRyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiT2JqZWN0QXNzaWdubWVudFwiO1xufSk7XG4iXSwibmFtZXMiOlsiYnJlYWthYmxlIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIk9iamVjdEFzc2lnbm1lbnQiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJuYW1lZEJpbmRpbmdzIiwiZ2V0VmFyaWFibGUiLCJnZXROYW1lZEJpbmRpbmdzIiwiZXZhbHVhdGUiLCJiYWNrIiwiZm9yd2FyZCIsIm9iamVjdEFzc2lnbm1lbnRTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZU5vbWluYWxWYWx1ZVR5cGUiLCJpc05vbWluYWxWYWx1ZVR5cGUiLCJ2YWx1ZVN0cmluZyIsIm1lc3NhZ2UiLCJOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwibm9taW5hbFZhbHVlUHJvcGVydGllcyIsImNvbXBhcmVOYW1lZEJpbmRpbmdzIiwiZm9yRWFjaE5hbWVkQmluZGluZyIsIm5hbWVkQmluZGluZyIsImV2YWx1YXRlTmFtZWRCaW5kaW5nIiwiZGVidWciLCJ0ZXJtIiwidGVybVN0cmluZyIsIm5hbWVkQmluZGluZ1N0cmluZyIsIm5hbWUiLCJnZXROYW1lIiwiQ09OVEVOVF9QQVJBTUVURVJfTkFNRSIsImV2YWx1YXRlQ29udGVudE5hbWVkQmluZGluZyIsIlRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FIiwiZXZhbHVhdGVUZXJtaW5hbE5hbWVkQmluZGluZyIsIkNISUxEX05PREVTX1BBUkFNRVRFUl9OQU1FIiwiZXZhbHVhdGVDaGlsZE5vZGVzTmFtZWRCaW5kaW5nIiwiTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRSIsImV2YWx1YXRlTm9XaGl0ZXNwYWNlTmFtZWRCaW5kaW5nIiwiVmFyaWFibGUiLCJlbGVtZW50cyIsImZyb21OYW1lZEJpbmRpbmciLCJhc3NpZ24iLCJ0eXBlIiwidHlwZVN0cmluZ1R5cGUiLCJpc1N0cmluZ1R5cGUiLCJTVFJJTkdfVFlQRV9OQU1FIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRQcmltaXRpdmVWYWx1ZSIsIm5vbWluYWxWYWx1ZSIsImdldE5vZGUiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsInN0cmluZ0xpdGVyYWwiLCJzdHJpbmdMaXRlcmFsRnJvbVN0cmluZyIsInZhbHVlRnJvbVN0cmluZ0xpdGVyYWwiLCJ2YWx1ZVN0dHJpbmciLCJ0eXBlQm9vbGVhblR5cGUiLCJpc0Jvb2xlYW5UeXBlIiwiQk9PTEVBTl9UWVBFX05BTUUiLCJ0ZXJtaW5hbCIsImJvb2xlYW4iLCJ2YWx1ZUZyb21Cb29sZWFuIiwidHlwZUxpc3RUeXBlIiwiaXNMaXN0VHlwZSIsIkxJU1RfVFlQRV9OQU1FIiwibm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJub2RlcyIsInZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlIiwibm9XaGl0ZWFwY2UiLCJpc05vV2hpdGVzcGFjZU5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWdCQTs7O2VBQUE7OztnQ0FkNkM7a0VBRXhCO2tFQUNDOytFQUNhOytCQUdLO3VCQUNnRDsyQkFDSztnQ0FDNkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTFILE1BQU0sRUFBRUEsU0FBUyxFQUFFLEdBQUdDLG1DQUFtQjtNQUV6QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLHlC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
|
package/lib/element/binding.js
CHANGED
|
@@ -32,20 +32,21 @@ const _default = (0, _elements.define)(class Binding extends _occamlanguages.Ele
|
|
|
32
32
|
isElided() {
|
|
33
33
|
return this.elided;
|
|
34
34
|
}
|
|
35
|
-
compareTerm(term, context) {
|
|
35
|
+
compareTerm(term, context, back, forward) {
|
|
36
36
|
if (this.elided) {
|
|
37
|
-
return;
|
|
37
|
+
return forward();
|
|
38
38
|
}
|
|
39
39
|
const termString = term.getString(), bindingString = this.getString(); ///
|
|
40
40
|
context.trace(`Comparing the '${termString}' term against the '${bindingString}' binding...`);
|
|
41
41
|
const termType = term.getType(), typeEqualToTermType = this.type.isEqualTo(termType);
|
|
42
42
|
if (!typeEqualToTermType) {
|
|
43
43
|
const typeString = this.type.getString(), message = `The '${termString}' term's '${termType}' type is not equal to the '${bindingString}' binding's '${typeString}' type.`, exception = _exception.default.fromMessage(message);
|
|
44
|
-
|
|
44
|
+
return back(exception);
|
|
45
45
|
}
|
|
46
46
|
context.debug(`...comparing the '${termString}' term against the '${bindingString}' binding.`);
|
|
47
|
+
return forward();
|
|
47
48
|
}
|
|
48
49
|
static name = "Binding";
|
|
49
50
|
});
|
|
50
51
|
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2JpbmRpbmcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEJpbmRpbmcgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCBuYW1lLCBlbGlkZWQpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMuZWxpZGVkID0gZWxpZGVkO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgaXNFbGlkZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxpZGVkO1xuICB9XG5cbiAgY29tcGFyZVRlcm0odGVybSwgY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGlmICh0aGlzLmVsaWRlZCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoKTtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBiaW5kaW5nU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ29tcGFyaW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhZ2FpbnN0IHRoZSAnJHtiaW5kaW5nU3RyaW5nfScgYmluZGluZy4uLmApO1xuXG4gICAgY29uc3QgdGVybVR5cGUgPSB0ZXJtLmdldFR5cGUoKSxcbiAgICAgICAgICB0eXBlRXF1YWxUb1Rlcm1UeXBlID0gdGhpcy50eXBlLmlzRXF1YWxUbyh0ZXJtVHlwZSk7XG5cbiAgICBpZiAoIXR5cGVFcXVhbFRvVGVybVR5cGUpIHtcbiAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSdzICcke3Rlcm1UeXBlfScgdHlwZSBpcyBub3QgZXF1YWwgdG8gdGhlICcke2JpbmRpbmdTdHJpbmd9JyBiaW5kaW5nJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5jb21wYXJpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFnYWluc3QgdGhlICcke2JpbmRpbmdTdHJpbmd9JyBiaW5kaW5nLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJCaW5kaW5nXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJCaW5kaW5nIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInR5cGUiLCJuYW1lIiwiZWxpZGVkIiwiZ2V0VHlwZSIsImdldE5hbWUiLCJpc0VsaWRlZCIsImNvbXBhcmVUZXJtIiwidGVybSIsImJhY2siLCJmb3J3YXJkIiwidGVybVN0cmluZyIsImdldFN0cmluZyIsImJpbmRpbmdTdHJpbmciLCJ0cmFjZSIsInRlcm1UeXBlIiwidHlwZUVxdWFsVG9UZXJtVHlwZSIsImlzRXF1YWxUbyIsInR5cGVTdHJpbmciLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFBOzs7Z0NBTndCO2tFQUVGOzBCQUVDOzs7Ozs7TUFFdkIsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxnQkFBZ0JDLHVCQUFPO0lBQ2pELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLE1BQU0sQ0FBRTtRQUNqRSxLQUFLLENBQUNOLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtJQUNoQjtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNILElBQUk7SUFDbEI7SUFFQUksVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDSCxJQUFJO0lBQ2xCO0lBRUFJLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0gsTUFBTTtJQUNwQjtJQUVBSSxZQUFZQyxJQUFJLEVBQUVYLE9BQU8sRUFBRVksSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDeEMsSUFBSSxJQUFJLENBQUNQLE1BQU0sRUFBRTtZQUNmLE9BQU9PO1FBQ1Q7UUFFQSxNQUFNQyxhQUFhSCxLQUFLSSxTQUFTLElBQzNCQyxnQkFBZ0IsSUFBSSxDQUFDRCxTQUFTLElBQUssR0FBRztRQUU1Q2YsUUFBUWlCLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRUgsV0FBVyxvQkFBb0IsRUFBRUUsY0FBYyxZQUFZLENBQUM7UUFFNUYsTUFBTUUsV0FBV1AsS0FBS0osT0FBTyxJQUN2Qlksc0JBQXNCLElBQUksQ0FBQ2YsSUFBSSxDQUFDZ0IsU0FBUyxDQUFDRjtRQUVoRCxJQUFJLENBQUNDLHFCQUFxQjtZQUN4QixNQUFNRSxhQUFhLElBQUksQ0FBQ2pCLElBQUksQ0FBQ1csU0FBUyxJQUNoQ08sVUFBVSxDQUFDLEtBQUssRUFBRVIsV0FBVyxVQUFVLEVBQUVJLFNBQVMsNEJBQTRCLEVBQUVGLGNBQWMsYUFBYSxFQUFFSyxXQUFXLE9BQU8sQ0FBQyxFQUNoSUUsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxPQUFPVixLQUFLVztRQUNkO1FBRUF2QixRQUFRMEIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVaLFdBQVcsb0JBQW9CLEVBQUVFLGNBQWMsVUFBVSxDQUFDO1FBRTdGLE9BQU9IO0lBQ1Q7SUFFQSxPQUFPUixPQUFPLFVBQVU7QUFDMUIifQ==
|
|
@@ -16,6 +16,7 @@ function _interop_require_default(obj) {
|
|
|
16
16
|
default: obj
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
+
const { forEach } = _occamlanguages.continuationUtilities;
|
|
19
20
|
const _default = (0, _elements.define)(class NamedBindings extends _occamlanguages.Element {
|
|
20
21
|
constructor(context, string, node, breakPoint, array){
|
|
21
22
|
super(context, string, node, breakPoint);
|
|
@@ -35,24 +36,30 @@ const _default = (0, _elements.define)(class NamedBindings extends _occamlanguag
|
|
|
35
36
|
someNamedBinding(callback) {
|
|
36
37
|
return this.array.some(callback);
|
|
37
38
|
}
|
|
38
|
-
forEachNamedBinding(callback) {
|
|
39
|
+
forEachNamedBinding(callback, back = null, forward = null) {
|
|
40
|
+
if (forward !== null) {
|
|
41
|
+
return forEach(this.array, callback, back, forward);
|
|
42
|
+
}
|
|
39
43
|
this.array.forEach(callback);
|
|
40
44
|
}
|
|
41
|
-
compareTerms(terms, context) {
|
|
45
|
+
compareTerms(terms, context, back, forward) {
|
|
42
46
|
const termsString = terms.getString(), namedBindingsString = this.getString(); ///
|
|
43
47
|
context.trace(`Comparing the '${termsString}' terms with the '${namedBindingsString}' named bindings...`);
|
|
44
48
|
const termsLength = terms.getLength(), namedBindingsLength = this.getLength();
|
|
45
49
|
if (termsLength !== namedBindingsLength) {
|
|
46
50
|
const message = `The '${termsString}' terms and '${namedBindingsString}' named bindings are not of the same length.`, exception = _exception.default.fromMessage(message);
|
|
47
|
-
|
|
51
|
+
return back(exception);
|
|
48
52
|
}
|
|
49
|
-
this.forEachNamedBinding((namedBinding, index)=>{
|
|
53
|
+
return this.forEachNamedBinding((namedBinding, back, forward, index)=>{
|
|
50
54
|
if (namedBinding !== null) {
|
|
51
|
-
|
|
52
|
-
namedBinding.compareTerm(term, context);
|
|
55
|
+
forward();
|
|
53
56
|
}
|
|
57
|
+
const term = terms.getTerm(index);
|
|
58
|
+
return namedBinding.compareTerm(term, context, back, forward);
|
|
59
|
+
}, back, ()=>{
|
|
60
|
+
context.debug(`...compared the '${termsString}' terms with the '${namedBindingsString}' named bindings.`);
|
|
61
|
+
forward();
|
|
54
62
|
});
|
|
55
|
-
context.debug(`...compared the '${termsString}' terms with the '${namedBindingsString}' named bindings.`);
|
|
56
63
|
}
|
|
57
64
|
compareNamedBinding(namedBinding, context) {
|
|
58
65
|
const namedBindingString = namedBinding.getString(), namedBindingsString = this.getString(); ///
|
|
@@ -81,4 +88,4 @@ const _default = (0, _elements.define)(class NamedBindings extends _occamlanguag
|
|
|
81
88
|
static name = "NamedBindings";
|
|
82
89
|
});
|
|
83
90
|
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2JpbmRpbmdzL25hbWVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uLy4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBmb3JFYWNoIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBOYW1lZEJpbmRpbmdzIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXk7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5hcnJheS5sZW5ndGg7XG5cbiAgICByZXR1cm4gbGVuZ3RoO1xuICB9XG5cbiAgZ2V0TmFtZWRCaW5kaW5nKGluZGV4KSB7XG4gICAgY29uc3QgbmFtZWRCaW5kaW5nID0gdGhpcy5hcnJheVtpbmRleF0gfHwgbnVsbDtcblxuICAgIHJldHVybiBuYW1lZEJpbmRpbmc7XG4gIH1cblxuICBzb21lTmFtZWRCaW5kaW5nKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmFycmF5LnNvbWUoY2FsbGJhY2spOyB9XG5cbiAgZm9yRWFjaE5hbWVkQmluZGluZyhjYWxsYmFjaywgYmFjayA9IG51bGwsIGZvcndhcmQgPSBudWxsKSB7XG4gICAgaWYgKGZvcndhcmQgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBmb3JFYWNoKHRoaXMuYXJyYXksIGNhbGxiYWNrLCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9XG5cbiAgICB0aGlzLmFycmF5LmZvckVhY2goY2FsbGJhY2spO1xuICB9XG5cbiAgY29tcGFyZVRlcm1zKHRlcm1zLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgY29uc3QgdGVybXNTdHJpbmcgPSB0ZXJtcy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke3Rlcm1zU3RyaW5nfScgdGVybXMgd2l0aCB0aGUgJyR7bmFtZWRCaW5kaW5nc1N0cmluZ30nIG5hbWVkIGJpbmRpbmdzLi4uYCk7XG5cbiAgICBjb25zdCB0ZXJtc0xlbmd0aCA9IHRlcm1zLmdldExlbmd0aCgpLFxuICAgICAgICAgIG5hbWVkQmluZGluZ3NMZW5ndGggPSB0aGlzLmdldExlbmd0aCgpO1xuXG4gICAgaWYgKHRlcm1zTGVuZ3RoICE9PSBuYW1lZEJpbmRpbmdzTGVuZ3RoKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtc1N0cmluZ30nIHRlcm1zIGFuZCAnJHtuYW1lZEJpbmRpbmdzU3RyaW5nfScgbmFtZWQgYmluZGluZ3MgYXJlIG5vdCBvZiB0aGUgc2FtZSBsZW5ndGguYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mb3JFYWNoTmFtZWRCaW5kaW5nKChuYW1lZEJpbmRpbmcsIGJhY2ssIGZvcndhcmQsIGluZGV4KSA9PiB7XG4gICAgICBpZiAobmFtZWRCaW5kaW5nICE9PSBudWxsKSB7XG4gICAgICAgIGZvcndhcmQoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdGVybSA9IHRlcm1zLmdldFRlcm0oaW5kZXgpO1xuXG4gICAgICByZXR1cm4gbmFtZWRCaW5kaW5nLmNvbXBhcmVUZXJtKHRlcm0sIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpO1xuICAgIH0sIGJhY2ssICgpID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHt0ZXJtc1N0cmluZ30nIHRlcm1zIHdpdGggdGhlICcke25hbWVkQmluZGluZ3NTdHJpbmd9JyBuYW1lZCBiaW5kaW5ncy5gKTtcblxuICAgICAgZm9yd2FyZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgY29tcGFyZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIGNvbnRleHQpIHtcbiAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nc1N0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ29tcGFyaW5nIHRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZEJpbmRpbmcgd2l0aCB0aGUgJyR7bmFtZWRCaW5kaW5nc1N0cmluZ30nIG5hbWVkIGJpbmRpbmdzLi4uYCk7XG5cbiAgICBjb25zdCBuYW1lZEJpbmRpbmdBID0gbmFtZWRCaW5kaW5nLCAvLy9cbiAgICAgICAgICBuYW1lZEJpbmRpbmdDb21wYXJlcyA9IHRoaXMuc29tZU5hbWVkQmluZGluZygobmFtZWRCaW5kaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAobmFtZWRCaW5kaW5nICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5hbWVkQmluZGluZ0IgPSBuYW1lZEJpbmRpbmcsIC8vL1xuICAgICAgICAgICAgICAgICAgICBuYW1lZEJpbmRpbmdCQ29tcGFyZXNUb05hbWVkQmluZGluZ0EgPSBuYW1lZEJpbmRpbmdBLmNvbXBhcmVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nQiwgY29udGV4dCk7XG5cbiAgICAgICAgICAgICAgaWYgKG5hbWVkQmluZGluZ0JDb21wYXJlc1RvTmFtZWRCaW5kaW5nQSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICBpZiAoIW5hbWVkQmluZGluZ0NvbXBhcmVzKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZEJpbmRpbmcgZG9lcyBub3QgY29tcGFyZSB0byBhbnkgb2YgdGhlICcke25hbWVkQmluZGluZ3NTdHJpbmd9JyBuYW1lZCBiaW5kaW5ncy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyZWQgdGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkQmluZGluZyB3aXRoIHRoZSAnJHtuYW1lZEJpbmRpbmdzU3RyaW5nfScgbmFtZWQgYmluZGluZ3MuYCk7XG4gIH1cblxuICBjb21wYXJlTmFtZWRCaW5kaW5ncyhuYW1lZEJpbmRpbmdzLCBjb250ZXh0KSB7XG4gICAgbmFtZWRCaW5kaW5ncy5mb3JFYWNoTmFtZWRCaW5kaW5nKChuYW1lZEJpbmRpbmcpID0+IHtcbiAgICAgIGlmIChuYW1lZEJpbmRpbmcgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5jb21wYXJlTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgY29udGV4dCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiTmFtZWRCaW5kaW5nc1wiO1xufSk7XG4iXSwibmFtZXMiOlsiZm9yRWFjaCIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImRlZmluZSIsIk5hbWVkQmluZGluZ3MiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwiYXJyYXkiLCJnZXRBcnJheSIsImdldExlbmd0aCIsImxlbmd0aCIsImdldE5hbWVkQmluZGluZyIsImluZGV4IiwibmFtZWRCaW5kaW5nIiwic29tZU5hbWVkQmluZGluZyIsImNhbGxiYWNrIiwic29tZSIsImZvckVhY2hOYW1lZEJpbmRpbmciLCJiYWNrIiwiZm9yd2FyZCIsImNvbXBhcmVUZXJtcyIsInRlcm1zIiwidGVybXNTdHJpbmciLCJnZXRTdHJpbmciLCJuYW1lZEJpbmRpbmdzU3RyaW5nIiwidHJhY2UiLCJ0ZXJtc0xlbmd0aCIsIm5hbWVkQmluZGluZ3NMZW5ndGgiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJ0ZXJtIiwiZ2V0VGVybSIsImNvbXBhcmVUZXJtIiwiZGVidWciLCJjb21wYXJlTmFtZWRCaW5kaW5nIiwibmFtZWRCaW5kaW5nU3RyaW5nIiwibmFtZWRCaW5kaW5nQSIsIm5hbWVkQmluZGluZ0NvbXBhcmVzIiwibmFtZWRCaW5kaW5nQiIsIm5hbWVkQmluZGluZ0JDb21wYXJlc1RvTmFtZWRCaW5kaW5nQSIsImNvbXBhcmVOYW1lZEJpbmRpbmdzIiwibmFtZWRCaW5kaW5ncyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVIrQztrRUFFekI7MEJBRUM7Ozs7OztBQUV2QixNQUFNLEVBQUVBLE9BQU8sRUFBRSxHQUFHQyxxQ0FBcUI7TUFFekMsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxzQkFBc0JDLHVCQUFPO0lBQ3ZELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsS0FBSyxDQUFFO1FBQ3BELEtBQUssQ0FBQ0osU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO0lBQ2Y7SUFFQUMsV0FBVztRQUNULE9B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
|
package/lib/element/bindings.js
CHANGED
|
@@ -32,26 +32,32 @@ const _default = (0, _elements.define)(class Bindings extends _occamlanguages.El
|
|
|
32
32
|
const binding = this.array[index] || null;
|
|
33
33
|
return binding;
|
|
34
34
|
}
|
|
35
|
-
forEachBinding(callback) {
|
|
35
|
+
forEachBinding(callback, back = null, forward = null) {
|
|
36
|
+
if (forward !== null) {
|
|
37
|
+
return forEach(this.array, callback, back, forward);
|
|
38
|
+
}
|
|
36
39
|
this.array.forEach(callback);
|
|
37
40
|
}
|
|
38
|
-
compareTerms(terms, context) {
|
|
41
|
+
compareTerms(terms, context, back, forward) {
|
|
39
42
|
const termsString = terms.getString(), bindingsString = this.getString(); ///
|
|
40
43
|
context.trace(`Comparing the '${termsString}' terms against the '${bindingsString}' bindings...`);
|
|
41
44
|
const termsLength = terms.getLength(), bindingsLength = this.getLength();
|
|
42
45
|
if (termsLength !== bindingsLength) {
|
|
43
46
|
const message = `The '${termsString}' expressions and '${bindingsString}' bindings are not of the same length.`, exception = _exception.default.fromMessage(message);
|
|
44
|
-
|
|
47
|
+
return back(exception);
|
|
45
48
|
}
|
|
46
|
-
this.forEachBinding((binding, index)=>{
|
|
47
|
-
if (binding
|
|
48
|
-
|
|
49
|
-
binding.compareTerm(term, context);
|
|
49
|
+
return this.forEachBinding((binding, back, forward, index)=>{
|
|
50
|
+
if (binding === null) {
|
|
51
|
+
return forward();
|
|
50
52
|
}
|
|
53
|
+
const term = terms.getTerm(index);
|
|
54
|
+
return binding.compareTerm(term, context, back, forward);
|
|
55
|
+
}, back, ()=>{
|
|
56
|
+
context.debug(`...compared the '${termsString}' terms against the '${bindingsString}' bindings.`);
|
|
57
|
+
forward();
|
|
51
58
|
});
|
|
52
|
-
context.debug(`...compared the '${termsString}' terms against the '${bindingsString}' bindings.`);
|
|
53
59
|
}
|
|
54
60
|
static name = "Bindings";
|
|
55
61
|
});
|
|
56
62
|
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2JpbmRpbmdzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBCaW5kaW5ncyBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGFycmF5KSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbiAgfVxuXG4gIGdldEFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLmFycmF5O1xuICB9XG5cbiAgZ2V0TGVuZ3RoKCkge1xuICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMuYXJyYXkubGVuZ3RoO1xuXG4gICAgcmV0dXJuIGxlbmd0aDtcbiAgfVxuXG4gIGdldEJpbmRpbmcoaW5kZXgpIHtcbiAgICBjb25zdCBiaW5kaW5nID0gdGhpcy5hcnJheVtpbmRleF0gfHwgbnVsbDtcblxuICAgIHJldHVybiBiaW5kaW5nO1xuICB9XG5cbiAgZm9yRWFjaEJpbmRpbmcoY2FsbGJhY2ssIGJhY2sgPSBudWxsLCBmb3J3YXJkID0gbnVsbCkge1xuICAgIGlmIChmb3J3YXJkICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gZm9yRWFjaCh0aGlzLmFycmF5LCBjYWxsYmFjaywgYmFjaywgZm9yd2FyZCk7XG4gICAgfVxuXG4gICAgdGhpcy5hcnJheS5mb3JFYWNoKGNhbGxiYWNrKTtcbiAgfVxuXG4gIGNvbXBhcmVUZXJtcyh0ZXJtcywgY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGNvbnN0IHRlcm1zU3RyaW5nID0gdGVybXMuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgYmluZGluZ3NTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENvbXBhcmluZyB0aGUgJyR7dGVybXNTdHJpbmd9JyB0ZXJtcyBhZ2FpbnN0IHRoZSAnJHtiaW5kaW5nc1N0cmluZ30nIGJpbmRpbmdzLi4uYCk7XG5cbiAgICBjb25zdCB0ZXJtc0xlbmd0aCA9IHRlcm1zLmdldExlbmd0aCgpLFxuICAgICAgICAgIGJpbmRpbmdzTGVuZ3RoID0gdGhpcy5nZXRMZW5ndGgoKTtcblxuICAgIGlmICh0ZXJtc0xlbmd0aCAhPT0gYmluZGluZ3NMZW5ndGgpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1zU3RyaW5nfScgZXhwcmVzc2lvbnMgYW5kICcke2JpbmRpbmdzU3RyaW5nfScgYmluZGluZ3MgYXJlIG5vdCBvZiB0aGUgc2FtZSBsZW5ndGguYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mb3JFYWNoQmluZGluZygoYmluZGluZywgYmFjaywgZm9yd2FyZCwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChiaW5kaW5nID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmb3J3YXJkKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRlcm0gPSB0ZXJtcy5nZXRUZXJtKGluZGV4KTtcblxuICAgICAgcmV0dXJuIGJpbmRpbmcuY29tcGFyZVRlcm0odGVybSwgY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfSwgYmFjaywgKCkgPT4ge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyZWQgdGhlICcke3Rlcm1zU3RyaW5nfScgdGVybXMgYWdhaW5zdCB0aGUgJyR7YmluZGluZ3NTdHJpbmd9JyBiaW5kaW5ncy5gKTtcblxuICAgICAgZm9yd2FyZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkJpbmRpbmdzXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJCaW5kaW5ncyIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJhcnJheSIsImdldEFycmF5IiwiZ2V0TGVuZ3RoIiwibGVuZ3RoIiwiZ2V0QmluZGluZyIsImluZGV4IiwiYmluZGluZyIsImZvckVhY2hCaW5kaW5nIiwiY2FsbGJhY2siLCJiYWNrIiwiZm9yd2FyZCIsImZvckVhY2giLCJjb21wYXJlVGVybXMiLCJ0ZXJtcyIsInRlcm1zU3RyaW5nIiwiZ2V0U3RyaW5nIiwiYmluZGluZ3NTdHJpbmciLCJ0cmFjZSIsInRlcm1zTGVuZ3RoIiwiYmluZGluZ3NMZW5ndGgiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJ0ZXJtIiwiZ2V0VGVybSIsImNvbXBhcmVUZXJtIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQUE7OztnQ0FOd0I7a0VBRUY7MEJBRUM7Ozs7OztNQUV2QixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGlCQUFpQkMsdUJBQU87SUFDbEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxLQUFLLENBQUU7UUFDcEQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsWUFBWTtRQUNWLE1BQU1DLFNBQVMsSUFBSSxDQUFDSCxLQUFLLENBQUNHLE1BQU07UUFFaEMsT0FBT0E7SUFDVDtJQUVBQyxXQUFXQyxLQUFLLEVBQUU7UUFDaEIsTUFBTUMsVUFBVSxJQUFJLENBQUNOLEtBQUssQ0FBQ0ssTUFBTSxJQUFJO1FBRXJDLE9BQU9DO0lBQ1Q7SUFFQUMsZUFBZUMsUUFBUSxFQUFFQyxPQUFPLElBQUksRUFBRUMsVUFBVSxJQUFJLEVBQUU7UUFDcEQsSUFBSUEsWUFBWSxNQUFNO1lBQ3BCLE9BQU9DLFFBQVEsSUFBSSxDQUFDWCxLQUFLLEVBQUVRLFVBQVVDLE1BQU1DO1FBQzdDO1FBRUEsSUFBSSxDQUFDVixLQUFLLENBQUNXLE9BQU8sQ0FBQ0g7SUFDckI7SUFFQUksYUFBYUMsS0FBSyxFQUFFakIsT0FBTyxFQUFFYSxJQUFJLEVBQUVDLE9BQU8sRUFBRTtRQUMxQyxNQUFNSSxjQUFjRCxNQUFNRSxTQUFTLElBQzdCQyxpQkFBaUIsSUFBSSxDQUFDRCxTQUFTLElBQUksR0FBRztRQUU1Q25CLFFBQVFxQixLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVILFlBQVkscUJBQXFCLEVBQUVFLGVBQWUsYUFBYSxDQUFDO1FBRWhHLE1BQU1FLGNBQWNMLE1BQU1YLFNBQVMsSUFDN0JpQixpQkFBaUIsSUFBSSxDQUFDakIsU0FBUztRQUVyQyxJQUFJZ0IsZ0JBQWdCQyxnQkFBZ0I7WUFDbEMsTUFBTUMsVUFBVSxDQUFDLEtBQUssRUFBRU4sWUFBWSxtQkFBbUIsRUFBRUUsZUFBZSxzQ0FBc0MsQ0FBQyxFQUN6R0ssWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxPQUFPWCxLQUFLWTtRQUNkO1FBRUEsT0FBTyxJQUFJLENBQUNkLGNBQWMsQ0FBQyxDQUFDRCxTQUFTRyxNQUFNQyxTQUFTTDtZQUNsRCxJQUFJQyxZQUFZLE1BQU07Z0JBQ3BCLE9BQU9JO1lBQ1Q7WUFFQSxNQUFNYyxPQUFPWCxNQUFNWSxPQUFPLENBQUNwQjtZQUUzQixPQUFPQyxRQUFRb0IsV0FBVyxDQUFDRixNQUFNNUIsU0FBU2EsTUFBTUM7UUFDbEQsR0FBR0QsTUFBTTtZQUNQYixRQUFRK0IsS0FBSyxDQUFDLENBQUMsaUJBQWlCLEVBQUViLFlBQVkscUJBQXFCLEVBQUVFLGVBQWUsV0FBVyxDQUFDO1lBRWhHTjtRQUNGO0lBQ0Y7SUFFQSxPQUFPa0IsT0FBTyxXQUFXO0FBQzNCIn0=
|
package/lib/element/contains.js
CHANGED
|
@@ -30,7 +30,7 @@ const _default = (0, _elements.define)(class Contains extends _occamlanguages.El
|
|
|
30
30
|
getSubstring() {
|
|
31
31
|
return this.substring;
|
|
32
32
|
}
|
|
33
|
-
evaluate(context) {
|
|
33
|
+
evaluate(context, back, forward) {
|
|
34
34
|
let value;
|
|
35
35
|
const containsString = this.getString(); ///
|
|
36
36
|
context.trace(`Evaluating the '${containsString}' function...`);
|
|
@@ -38,15 +38,15 @@ const _default = (0, _elements.define)(class Contains extends _occamlanguages.El
|
|
|
38
38
|
const valueType = value.getType(), valueTypeStringType = valueType.isStringType();
|
|
39
39
|
if (!valueTypeStringType) {
|
|
40
40
|
const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.STRING_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
|
|
41
|
-
|
|
41
|
+
return back(exception);
|
|
42
42
|
}
|
|
43
43
|
const string = value.getString(), boolean = string.contains(this.substring);
|
|
44
44
|
value = (0, _value.valueFromBoolean)(boolean);
|
|
45
45
|
const valueString = value.getString();
|
|
46
46
|
context.debug(`...evaluated the '${containsString}' function as '${valueString}'.`);
|
|
47
|
-
return value;
|
|
47
|
+
return forward(value);
|
|
48
48
|
}
|
|
49
49
|
static name = "Contains";
|
|
50
50
|
});
|
|
51
51
|
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2NvbnRhaW5zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBTVFJJTkdfVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tQm9vbGVhbiB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIENvbnRhaW5zIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIHN1YnN0cmluZykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5zdWJzdHJpbmcgPSBzdWJzdHJpbmc7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldFN1YnN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJzdHJpbmc7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgbGV0IHZhbHVlO1xuXG4gICAgY29uc3QgY29udGFpbnNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtjb250YWluc1N0cmluZ30nIGZ1bmN0aW9uLi4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlU3RyaW5nVHlwZSA9IHZhbHVlVHlwZS5pc1N0cmluZ1R5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlU3RyaW5nVHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtTVFJJTkdfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBib29sZWFuID0gc3RyaW5nLmNvbnRhaW5zKHRoaXMuc3Vic3RyaW5nKTtcblxuICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuKTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke2NvbnRhaW5zU3RyaW5nfScgZnVuY3Rpb24gYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJDb250YWluc1wiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiQ29udGFpbnMiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJzdWJzdHJpbmciLCJnZXRWYXJpYWJsZSIsImdldFN1YnN0cmluZyIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJ2YWx1ZSIsImNvbnRhaW5zU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlU3RyaW5nVHlwZSIsImlzU3RyaW5nVHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIlNUUklOR19UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImJvb2xlYW4iLCJjb250YWlucyIsInZhbHVlRnJvbUJvb2xlYW4iLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjtrRUFFRjswQkFFQzsyQkFDVTt1QkFDQTs7Ozs7O01BRWpDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsaUJBQWlCQyx1QkFBTztJQUNsRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxDQUFFO1FBQ2xFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDRixTQUFTO0lBQ3ZCO0lBRUFHLFNBQVNSLE9BQU8sRUFBRVMsSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDL0IsSUFBSUM7UUFFSixNQUFNQyxpQkFBaUIsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUU3Q2IsUUFBUWMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGVBQWUsYUFBYSxDQUFDO1FBRTlERCxRQUFRLElBQUksQ0FBQ1AsUUFBUSxDQUFDSSxRQUFRLENBQUNSO1FBRS9CLE1BQU1lLFlBQVlKLE1BQU1LLE9BQU8sSUFDekJDLHNCQUFzQkYsVUFBVUcsWUFBWTtRQUVsRCxJQUFJLENBQUNELHFCQUFxQjtZQUN4QixNQUFNRSxjQUFjUixNQUFNRSxTQUFTLElBQzdCTyxVQUFVLENBQUMsS0FBSyxFQUFFRCxZQUFZLFdBQVcsRUFBRUosVUFBVSxrQkFBa0IsRUFBRU0sMkJBQWdCLENBQUMsRUFBRSxDQUFDLEVBQzdGQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE9BQU9YLEtBQUthO1FBQ2Q7UUFFQSxNQUFNckIsU0FBU1UsTUFBTUUsU0FBUyxJQUN4QlksVUFBVXhCLE9BQU95QixRQUFRLENBQUMsSUFBSSxDQUFDckIsU0FBUztRQUU5Q00sUUFBUWdCLElBQUFBLHVCQUFnQixFQUFDRjtRQUV6QixNQUFNTixjQUFjUixNQUFNRSxTQUFTO1FBRW5DYixRQUFRNEIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVoQixlQUFlLGVBQWUsRUFBRU8sWUFBWSxFQUFFLENBQUM7UUFFbEYsT0FBT1QsUUFBUUM7SUFDakI7SUFFQSxPQUFPa0IsT0FBTyxXQUFXO0FBQzNCIn0=
|
package/lib/element/endsWith.js
CHANGED
|
@@ -30,7 +30,7 @@ const _default = (0, _elements.define)(class EndsWith extends _occamlanguages.El
|
|
|
30
30
|
getSubstring() {
|
|
31
31
|
return this.substring;
|
|
32
32
|
}
|
|
33
|
-
evaluate(context) {
|
|
33
|
+
evaluate(context, back, forward) {
|
|
34
34
|
let value;
|
|
35
35
|
const endsWithString = this.getString(); ///
|
|
36
36
|
context.trace(`Evaluating the '${endsWithString}' function...`);
|
|
@@ -38,15 +38,15 @@ const _default = (0, _elements.define)(class EndsWith extends _occamlanguages.El
|
|
|
38
38
|
const valueType = value.getType(), valueTypeStringType = valueType.isStringType();
|
|
39
39
|
if (!valueTypeStringType) {
|
|
40
40
|
const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.STRING_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
|
|
41
|
-
|
|
41
|
+
return back(exception);
|
|
42
42
|
}
|
|
43
43
|
const string = value.getString(), boolean = string.endsWith(this.substring);
|
|
44
44
|
value = (0, _value.valueFromBoolean)(boolean);
|
|
45
45
|
const valueString = value.getString();
|
|
46
46
|
context.debug(`...evaluated the '${endsWithString}' function as '${valueString}'.`);
|
|
47
|
-
return value;
|
|
47
|
+
return forward(value);
|
|
48
48
|
}
|
|
49
49
|
static name = "EndsWith";
|
|
50
50
|
});
|
|
51
51
|
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2VuZHNXaXRoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBTVFJJTkdfVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tQm9vbGVhbiB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEVuZHNXaXRoIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIHN1YnN0cmluZykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5zdWJzdHJpbmcgPSBzdWJzdHJpbmc7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldFN1YnN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJzdHJpbmc7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgbGV0IHZhbHVlO1xuXG4gICAgY29uc3QgZW5kc1dpdGhTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtlbmRzV2l0aFN0cmluZ30nIGZ1bmN0aW9uLi4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlU3RyaW5nVHlwZSA9IHZhbHVlVHlwZS5pc1N0cmluZ1R5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlU3RyaW5nVHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtTVFJJTkdfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBib29sZWFuID0gc3RyaW5nLmVuZHNXaXRoKHRoaXMuc3Vic3RyaW5nKTtcblxuICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuKTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke2VuZHNXaXRoU3RyaW5nfScgZnVuY3Rpb24gYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJFbmRzV2l0aFwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiRW5kc1dpdGgiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJzdWJzdHJpbmciLCJnZXRWYXJpYWJsZSIsImdldFN1YnN0cmluZyIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJ2YWx1ZSIsImVuZHNXaXRoU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlU3RyaW5nVHlwZSIsImlzU3RyaW5nVHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIlNUUklOR19UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImJvb2xlYW4iLCJlbmRzV2l0aCIsInZhbHVlRnJvbUJvb2xlYW4iLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjtrRUFFRjswQkFFQzsyQkFDVTt1QkFDQTs7Ozs7O01BRWpDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsaUJBQWlCQyx1QkFBTztJQUNsRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxDQUFFO1FBQ2xFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDRixTQUFTO0lBQ3ZCO0lBRUFHLFNBQVNSLE9BQU8sRUFBRVMsSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDL0IsSUFBSUM7UUFFSixNQUFNQyxpQkFBaUIsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUU3Q2IsUUFBUWMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGVBQWUsYUFBYSxDQUFDO1FBRTlERCxRQUFRLElBQUksQ0FBQ1AsUUFBUSxDQUFDSSxRQUFRLENBQUNSO1FBRS9CLE1BQU1lLFlBQVlKLE1BQU1LLE9BQU8sSUFDekJDLHNCQUFzQkYsVUFBVUcsWUFBWTtRQUVsRCxJQUFJLENBQUNELHFCQUFxQjtZQUN4QixNQUFNRSxjQUFjUixNQUFNRSxTQUFTLElBQzdCTyxVQUFVLENBQUMsS0FBSyxFQUFFRCxZQUFZLFdBQVcsRUFBRUosVUFBVSxrQkFBa0IsRUFBRU0sMkJBQWdCLENBQUMsRUFBRSxDQUFDLEVBQzdGQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE9BQU9YLEtBQUthO1FBQ2Q7UUFFQSxNQUFNckIsU0FBU1UsTUFBTUUsU0FBUyxJQUN4QlksVUFBVXhCLE9BQU95QixRQUFRLENBQUMsSUFBSSxDQUFDckIsU0FBUztRQUU5Q00sUUFBUWdCLElBQUFBLHVCQUFnQixFQUFDRjtRQUV6QixNQUFNTixjQUFjUixNQUFNRSxTQUFTO1FBRW5DYixRQUFRNEIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVoQixlQUFlLGVBQWUsRUFBRU8sWUFBWSxFQUFFLENBQUM7UUFFbEYsT0FBT1QsUUFBUUM7SUFDakI7SUFFQSxPQUFPa0IsT0FBTyxXQUFXO0FBQzNCIn0=
|
package/lib/element/lengthOf.js
CHANGED
|
@@ -26,7 +26,7 @@ const _default = (0, _elements.define)(class LengthOf extends _occamlanguages.El
|
|
|
26
26
|
getVariable() {
|
|
27
27
|
return this.variable;
|
|
28
28
|
}
|
|
29
|
-
evaluate(context) {
|
|
29
|
+
evaluate(context, back, forward) {
|
|
30
30
|
let value;
|
|
31
31
|
const lengthOfString = this.getString(); ///
|
|
32
32
|
context.trace(`Evaluating the '${lengthOfString}' function...`);
|
|
@@ -34,15 +34,15 @@ const _default = (0, _elements.define)(class LengthOf extends _occamlanguages.El
|
|
|
34
34
|
const valueType = value.getType(), valueTypeListType = valueType.isListType();
|
|
35
35
|
if (!valueTypeListType) {
|
|
36
36
|
const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.LIST_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
|
|
37
|
-
|
|
37
|
+
return back(exception);
|
|
38
38
|
}
|
|
39
39
|
const primitiveValue = value.getPrimitiveValue(), length = primitiveValue.length, integer = length; ///
|
|
40
40
|
value = (0, _value.valueFromInteger)(integer, context);
|
|
41
41
|
const valueString = value.getString();
|
|
42
42
|
context.debug(`...evaluated the '${lengthOfString}' function as '${valueString}'.`);
|
|
43
|
-
return value;
|
|
43
|
+
return forward(value);
|
|
44
44
|
}
|
|
45
45
|
static name = "LengthOf";
|
|
46
46
|
});
|
|
47
47
|
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xlbmd0aE9mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUludGVnZXIgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBMZW5ndGhPZiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IGxlbmd0aE9mU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7bGVuZ3RoT2ZTdHJpbmd9JyBmdW5jdGlvbi4uLmApO1xuXG4gICAgdmFsdWUgPSB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHZhbHVlVHlwZUxpc3RUeXBlID0gdmFsdWVUeXBlLmlzTGlzdFR5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlTGlzdFR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7TElTVF9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBsZW5ndGggPSBwcmltaXRpdmVWYWx1ZS5sZW5ndGgsXG4gICAgICAgICAgaW50ZWdlciA9IGxlbmd0aDsgLy8vXG5cbiAgICB2YWx1ZSA9IHZhbHVlRnJvbUludGVnZXIoaW50ZWdlciwgY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtsZW5ndGhPZlN0cmluZ30nIGZ1bmN0aW9uIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiTGVuZ3RoT2ZcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkxlbmd0aE9mIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwiZ2V0VmFyaWFibGUiLCJldmFsdWF0ZSIsImJhY2siLCJmb3J3YXJkIiwidmFsdWUiLCJsZW5ndGhPZlN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZUxpc3RUeXBlIiwiaXNMaXN0VHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIkxJU1RfVFlQRV9OQU1FIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwibGVuZ3RoIiwiaW50ZWdlciIsInZhbHVlRnJvbUludGVnZXIiLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjtrRUFFRjswQkFFQzsyQkFDUTt1QkFDRTs7Ozs7O01BRWpDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsaUJBQWlCQyx1QkFBTztJQUNsRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsQ0FBRTtRQUN2RCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtJQUNsQjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNELFFBQVE7SUFDdEI7SUFFQUUsU0FBU04sT0FBTyxFQUFFTyxJQUFJLEVBQUVDLE9BQU8sRUFBRTtRQUMvQixJQUFJQztRQUVKLE1BQU1DLGlCQUFpQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRTdDWCxRQUFRWSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsZUFBZSxhQUFhLENBQUM7UUFFOURELFFBQVEsSUFBSSxDQUFDTCxRQUFRLENBQUNFLFFBQVEsQ0FBQ047UUFFL0IsTUFBTWEsWUFBWUosTUFBTUssT0FBTyxJQUN6QkMsb0JBQW9CRixVQUFVRyxVQUFVO1FBRTlDLElBQUksQ0FBQ0QsbUJBQW1CO1lBQ3RCLE1BQU1FLGNBQWNSLE1BQU1FLFNBQVMsSUFDN0JPLFVBQVUsQ0FBQyxLQUFLLEVBQUVELFlBQVksV0FBVyxFQUFFSixVQUFVLGtCQUFrQixFQUFFTSx5QkFBYyxDQUFDLEVBQUUsQ0FBQyxFQUMzRkMsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSjtZQUV4QyxPQUFPWCxLQUFLYTtRQUNkO1FBRUEsTUFBTUcsaUJBQWlCZCxNQUFNZSxpQkFBaUIsSUFDeENDLFNBQVNGLGVBQWVFLE1BQU0sRUFDOUJDLFVBQVVELFFBQVEsR0FBRztRQUUzQmhCLFFBQVFrQixJQUFBQSx1QkFBZ0IsRUFBQ0QsU0FBUzFCO1FBRWxDLE1BQU1pQixjQUFjUixNQUFNRSxTQUFTO1FBRW5DWCxRQUFRNEIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVsQixlQUFlLGVBQWUsRUFBRU8sWUFBWSxFQUFFLENBQUM7UUFFbEYsT0FBT1QsUUFBUUM7SUFDakI7SUFFQSxPQUFPb0IsT0FBTyxXQUFXO0FBQzNCIn0=
|
package/lib/element/nodeQuery.js
CHANGED
|
@@ -33,26 +33,26 @@ const _default = (0, _elements.define)(class NodeQuery extends _occamlanguages.E
|
|
|
33
33
|
getQuery() {
|
|
34
34
|
return this.query;
|
|
35
35
|
}
|
|
36
|
-
evaluate(context) {
|
|
36
|
+
evaluate(context, back, forward) {
|
|
37
37
|
let value;
|
|
38
38
|
const nodeQueryString = this.getString(); ///
|
|
39
39
|
context.trace(`Evaluating the '${nodeQueryString}' function...`);
|
|
40
40
|
if (this.query === null) {
|
|
41
41
|
const message = `Cannot evaluate the '${nodeQueryString}' function because its expression is malformed.`, exception = _exception.default.fromMessage(message);
|
|
42
|
-
|
|
42
|
+
return back(exception);
|
|
43
43
|
}
|
|
44
44
|
value = this.variable.evaluate(context);
|
|
45
45
|
const valueType = value.getType(), valueTypeNominalValueType = valueType.isNominalValueType();
|
|
46
46
|
if (!valueTypeNominalValueType) {
|
|
47
47
|
const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.NOMINAL_VALUE_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
|
|
48
|
-
|
|
48
|
+
return back(exception);
|
|
49
49
|
}
|
|
50
50
|
let node;
|
|
51
51
|
const primitiveValue = value.getPrimitiveValue(), nominalValue = primitiveValue; ///
|
|
52
52
|
node = nominalValue.getNode();
|
|
53
53
|
if (node === null) {
|
|
54
54
|
const valueString = value.getString(), message = `The '${valueString}' value's node is null.`, exception = _exception.default.fromMessage(message);
|
|
55
|
-
|
|
55
|
+
return back(exception);
|
|
56
56
|
}
|
|
57
57
|
const nodes = this.query.execute(node), nodesLength = nodes.length;
|
|
58
58
|
if (false) {
|
|
@@ -66,13 +66,13 @@ const _default = (0, _elements.define)(class NodeQuery extends _occamlanguages.E
|
|
|
66
66
|
value = (0, _value.valueFromNodeAndNominalValue)(node, nominalValue);
|
|
67
67
|
} else {
|
|
68
68
|
const message = `The length of the returned nodes is ${nodesLength} when it should be 0 or 1.`, exception = _exception.default.fromMessage(message);
|
|
69
|
-
|
|
69
|
+
return back(exception);
|
|
70
70
|
}
|
|
71
71
|
const valueString = value.getString();
|
|
72
72
|
context.debug(`...evaluated the '${nodeQueryString}' function as '${valueString}'.`);
|
|
73
|
-
return value;
|
|
73
|
+
return forward(value);
|
|
74
74
|
}
|
|
75
75
|
static name = "NodeQuery";
|
|
76
76
|
});
|
|
77
77
|
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L25vZGVRdWVyeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcbmltcG9ydCBOb21pbmFsVmFsdWUgZnJvbSBcIi4uL25vbWluYWxWYWx1ZVwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tTm9taW5hbFZhbHVlLCB2YWx1ZUZyb21Ob2RlQW5kTm9taW5hbFZhbHVlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy92YWx1ZVwiO1xuXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIE5vZGVRdWVyeSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBxdWVyeSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICB9XG5cbiAgZ2V0VmFyaWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGU7XG4gIH1cblxuICBnZXRRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeTtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBub2RlUXVlcnlTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtub2RlUXVlcnlTdHJpbmd9JyBmdW5jdGlvbi4uLmApO1xuXG4gICAgaWYgKHRoaXMucXVlcnkgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQ2Fubm90IGV2YWx1YXRlIHRoZSAnJHtub2RlUXVlcnlTdHJpbmd9JyBmdW5jdGlvbiBiZWNhdXNlIGl0cyBleHByZXNzaW9uIGlzIG1hbGZvcm1lZC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YWx1ZVR5cGVOb21pbmFsVmFsdWVUeXBlID0gdmFsdWVUeXBlLmlzTm9taW5hbFZhbHVlVHlwZSgpO1xuXG4gICAgaWYgKCF2YWx1ZVR5cGVOb21pbmFsVmFsdWVUeXBlKSB7XG4gICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3ZhbHVlVHlwZX0nIHR5cGUgc2hvdWxkIGJlICcke05PTUlOQUxfVkFMVUVfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBsZXQgbm9kZTtcblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZTsgIC8vL1xuXG4gICAgbm9kZSA9IG5vbWluYWxWYWx1ZS5nZXROb2RlKCk7XG5cbiAgICBpZiAobm9kZSA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyBub2RlIGlzIG51bGwuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlcyA9IHRoaXMucXVlcnkuZXhlY3V0ZShub2RlKSxcbiAgICAgICAgICBub2Rlc0xlbmd0aCA9IG5vZGVzLmxlbmd0aDtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmIChub2Rlc0xlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3Qgbm9taW5hbFZhbHVlID0gTm9taW5hbFZhbHVlLmZyb21Ob3RoaW5nKCk7XG5cbiAgICAgIHZhbHVlID0gdmFsdWVGcm9tTm9taW5hbFZhbHVlKG5vbWluYWxWYWx1ZSk7XG4gICAgfSBlbHNlIGlmIChub2Rlc0xlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZmlyc3ROb2RlID0gZmlyc3Qobm9kZXMpO1xuXG4gICAgICBub2RlID0gZmlyc3ROb2RlIC8vL1xuXG4gICAgICB2YWx1ZSA9IHZhbHVlRnJvbU5vZGVBbmROb21pbmFsVmFsdWUobm9kZSwgbm9taW5hbFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgbGVuZ3RoIG9mIHRoZSByZXR1cm5lZCBub2RlcyBpcyAke25vZGVzTGVuZ3RofSB3aGVuIGl0IHNob3VsZCBiZSAwIG9yIDEuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtub2RlUXVlcnlTdHJpbmd9JyBmdW5jdGlvbiBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQodmFsdWUpO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk5vZGVRdWVyeVwiO1xufSk7XG4iXSwibmFtZXMiOlsiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsImRlZmluZSIsIk5vZGVRdWVyeSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YXJpYWJsZSIsInF1ZXJ5IiwiZ2V0VmFyaWFibGUiLCJnZXRRdWVyeSIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJ2YWx1ZSIsIm5vZGVRdWVyeVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZU5vbWluYWxWYWx1ZVR5cGUiLCJpc05vbWluYWxWYWx1ZVR5cGUiLCJ2YWx1ZVN0cmluZyIsIk5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRQcmltaXRpdmVWYWx1ZSIsIm5vbWluYWxWYWx1ZSIsImdldE5vZGUiLCJub2RlcyIsImV4ZWN1dGUiLCJub2Rlc0xlbmd0aCIsImxlbmd0aCIsIk5vbWluYWxWYWx1ZSIsImZyb21Ob3RoaW5nIiwidmFsdWVGcm9tTm9taW5hbFZhbHVlIiwiZmlyc3ROb2RlIiwidmFsdWVGcm9tTm9kZUFuZE5vbWluYWxWYWx1ZSIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUFBOzs7Z0NBWndCOzJCQUNPO2tFQUVUO3FFQUNHOzBCQUVGOzJCQUNpQjt1QkFDNEI7Ozs7OztBQUVwRSxNQUFNLEVBQUVBLEtBQUssRUFBRSxHQUFHQyx5QkFBYztNQUVoQyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGtCQUFrQkMsdUJBQU87SUFDbkQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxRQUFRLEVBQUVDLEtBQUssQ0FBRTtRQUM5RCxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDRixLQUFLO0lBQ25CO0lBRUFHLFNBQVNSLE9BQU8sRUFBRVMsSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDL0IsSUFBSUM7UUFFSixNQUFNQyxrQkFBa0IsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUU5Q2IsUUFBUWMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGdCQUFnQixhQUFhLENBQUM7UUFFL0QsSUFBSSxJQUFJLENBQUNQLEtBQUssS0FBSyxNQUFNO1lBQ3ZCLE1BQU1VLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRUgsZ0JBQWdCLCtDQUErQyxDQUFDLEVBQ2xHSSxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO1lBRXhDLE9BQU9OLEtBQUtPO1FBQ2Q7UUFFQUwsUUFBUSxJQUFJLENBQUNQLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDUjtRQUUvQixNQUFNbUIsWUFBWVIsTUFBTVMsT0FBTyxJQUN6QkMsNEJBQTRCRixVQUFVRyxrQkFBa0I7UUFFOUQsSUFBSSxDQUFDRCwyQkFBMkI7WUFDOUIsTUFBTUUsY0FBY1osTUFBTUUsU0FBUyxJQUM3QkUsVUFBVSxDQUFDLEtBQUssRUFBRVEsWUFBWSxXQUFXLEVBQUVKLFVBQVUsa0JBQWtCLEVBQUVLLGtDQUF1QixDQUFDLEVBQUUsQ0FBQyxFQUNwR1IsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxPQUFPTixLQUFLTztRQUNkO1FBRUEsSUFBSWQ7UUFFSixNQUFNdUIsaUJBQWlCZCxNQUFNZSxpQkFBaUIsSUFDeENDLGVBQWVGLGdCQUFpQixHQUFHO1FBRXpDdkIsT0FBT3lCLGFBQWFDLE9BQU87UUFFM0IsSUFBSTFCLFNBQVMsTUFBTTtZQUNqQixNQUFNcUIsY0FBY1osTUFBTUUsU0FBUyxJQUM3QkUsVUFBVSxDQUFDLEtBQUssRUFBRVEsWUFBWSx1QkFBdUIsQ0FBQyxFQUN0RFAsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxPQUFPTixLQUFLTztRQUNkO1FBRUEsTUFBTWEsUUFBUSxJQUFJLENBQUN4QixLQUFLLENBQUN5QixPQUFPLENBQUM1QixPQUMzQjZCLGNBQWNGLE1BQU1HLE1BQU07UUFFaEMsSUFBSSxPQUFPO1FBQ1QsR0FBRztRQUNMLE9BQU8sSUFBSUQsZ0JBQWdCLEdBQUc7WUFDNUIsTUFBTUosZUFBZU0scUJBQVksQ0FBQ0MsV0FBVztZQUU3Q3ZCLFFBQVF3QixJQUFBQSw0QkFBcUIsRUFBQ1I7UUFDaEMsT0FBTyxJQUFJSSxnQkFBZ0IsR0FBRztZQUM1QixNQUFNSyxZQUFZekMsTUFBTWtDO1lBRXhCM0IsT0FBT2tDLFdBQVUsR0FBRztZQUVwQnpCLFFBQVEwQixJQUFBQSxtQ0FBNEIsRUFBQ25DLE1BQU15QjtRQUM3QyxPQUFPO1lBQ0wsTUFBTVosVUFBVSxDQUFDLG9DQUFvQyxFQUFFZ0IsWUFBWSwwQkFBMEIsQ0FBQyxFQUN4RmYsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxPQUFPTixLQUFLTztRQUNkO1FBRUEsTUFBTU8sY0FBY1osTUFBTUUsU0FBUztRQUVuQ2IsUUFBUXNDLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFMUIsZ0JBQWdCLGVBQWUsRUFBRVcsWUFBWSxFQUFFLENBQUM7UUFFbkYsT0FBT2IsUUFBUUM7SUFDakI7SUFFQSxPQUFPNEIsT0FBTyxZQUFZO0FBQzVCIn0=
|