occam-nominal 1.0.382 → 1.0.384
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/generator.js +2 -2
- package/lib/element/property.js +2 -2
- package/lib/element/signature.js +2 -2
- package/lib/process/validate.js +71 -60
- package/package.json +5 -5
- package/src/element/generator.js +1 -1
- package/src/element/property.js +1 -1
- package/src/element/signature.js +1 -1
- package/src/process/validate.js +105 -63
package/lib/element/generator.js
CHANGED
|
@@ -95,7 +95,7 @@ const _default = (0, _elements.define)(class Generator extends _occamlanguages.E
|
|
|
95
95
|
termValidates = true;
|
|
96
96
|
}
|
|
97
97
|
} else {
|
|
98
|
-
const termValidatesAsGenerator =
|
|
98
|
+
const termValidatesAsGenerator = (0, _validate.validateTermAsGenerator)(this.term, context);
|
|
99
99
|
if (termValidatesAsGenerator) {
|
|
100
100
|
termValidates = true;
|
|
101
101
|
}
|
|
@@ -179,4 +179,4 @@ const _default = (0, _elements.define)(class Generator extends _occamlanguages.E
|
|
|
179
179
|
}
|
|
180
180
|
});
|
|
181
181
|
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2dlbmVyYXRvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcywgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGJhc2VUeXBlRnJvbU5vdGhpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3R5cGVcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlR2VuZXJhdG9yIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IHRlcm1Gcm9tR2VuZXJhdG9yTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgdmFsaWRhdGVUZXJtQXNWYXJpYWJsZSB9IGZyb20gXCIuLi9wcm9jZXNzL3ZhbGlkYXRpb25cIjtcbmltcG9ydCB7IHVuaWZ5VGVybVdpdGhHZW5lcmF0b3IgfSBmcm9tIFwiLi4vcHJvY2Vzcy91bmlmeVwiO1xuaW1wb3J0IHsgdmFsaWRhdGVUZXJtQXNHZW5lcmF0b3IgfSBmcm9tIFwiLi4vcHJvY2Vzcy92YWxpZGF0ZVwiO1xuaW1wb3J0IHsgdHlwZUZyb21KU09OLCB0eXBlVG9UeXBlSlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuaW1wb3J0IHsgYXR0ZW1wdCwgc2VyaWFsaXNlLCB1bnNlcmlhbGlzZSwgaW5zdGFudGlhdGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgeyBhc3luY2hyb25vdXNFdmVyeSB9ID0gY29udGludWF0aW9uVXRpbGl0aWVzLFxuICAgICAgeyBicmVha1BvaW50RnJvbUpTT04sIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgR2VuZXJhdG9yIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdGVybSwgdHlwZSwgaHlwb3RoZXNlcykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnRlcm0gPSB0ZXJtO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5oeXBvdGhlc2VzID0gaHlwb3RoZXNlcztcbiAgfVxuXG4gIGdldFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMudGVybTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldEh5cG90aGVzZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHlwb3RoZXNlcztcbiAgfVxuXG4gIHNldEh5cG90aGVzZXMoaHlwb3RoZXNlcykge1xuICAgIHRoaXMuaHlwb3RoZXNlcyA9IGh5cG90aGVzZXM7XG4gIH1cblxuICBnZXRHZW5lcmF0b3JOb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBnZW5lcmF0b3JOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIGdlbmVyYXRvck5vZGU7XG4gIH1cblxuICBpc0h5cG90aGV0aWNhbCgpIHtcbiAgICBjb25zdCBoeXBvdGhlc2VzTGVuZ3RoID0gdGhpcy5oeXBvdGhlc2VzLmxlbmd0aCxcbiAgICAgICAgICBoeXBvdGhldGljYWwgPSAoaHlwb3RoZXNlc0xlbmd0aCA+IDApO1xuXG4gICAgcmV0dXJuIGh5cG90aGV0aWNhbDtcbiAgfVxuXG4gIGdldFN0cmluZyhpbmNsdWRlVHlwZSA9IHRydWUpIHtcbiAgICBsZXQgc3RyaW5nO1xuXG4gICAgaWYgKGluY2x1ZGVUeXBlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGhpcy50ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgICAgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKTtcblxuICAgICAgc3RyaW5nID0gYCR7dGVybVN0cmluZ30uJHt0eXBlU3RyaW5nfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0cmluZyA9IHN1cGVyLmdldFN0cmluZygpO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzZXRUeXBlKHR5cGUpIHtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5KGNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGluY2x1ZGVUeXBlID0gZmFsc2UsXG4gICAgICAgICAgZ2VuZXJhdG9yU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoaW5jbHVkZVR5cGUpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtnZW5lcmF0b3JTdHJpbmd9JyBnZW5lcmF0b3IuLi5gKTtcblxuICAgIGF3YWl0IGF0dGVtcHQoYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHRlcm1WYWxpZGF0ZXMgPSBhd2FpdCB0aGlzLnZhbGlkYXRlVGVybShjb250ZXh0KTtcblxuICAgICAgaWYgKHRlcm1WYWxpZGF0ZXMpIHtcbiAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgICAgdGhpcy5jb21taXQoY29udGV4dCk7XG4gICAgICB9XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtnZW5lcmF0b3JTdHJpbmd9JyBnZW5lcmF0b3IuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgYXN5bmMgdmFsaWRhdGVUZXJtKGNvbnRleHQpIHtcbiAgICBsZXQgdGVybVZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgaW5jbHVkZVR5cGUgPSBmYWxzZSxcbiAgICAgICAgICBnZW5lcmF0b3JTdHJpbmcgPSB0aGlzLmdldFN0cmluZyhpbmNsdWRlVHlwZSk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtnZW5lcmF0b3JTdHJpbmd9JyBnZW5lcmF0b3IncyB0ZXJtLi4uYCk7XG5cbiAgICBjb25zdCBoeXBvdGhldGljYWwgPSB0aGlzLmlzSHlwb3RoZXRpY2FsKCk7XG5cbiAgICBpZiAoaHlwb3RoZXRpY2FsKSB7XG4gICAgICBjb25zdCB0ZXJtVmFsaWRhdGVzQXNWYXJpYWJsZSA9IGF3YWl0IHZhbGlkYXRlVGVybUFzVmFyaWFibGUodGhpcy50ZXJtLCBjb250ZXh0LCBhc3luYyAodGVybSwgY29udGV4dCkgPT4geyAvLy9cbiAgICAgICAgbGV0IHZhbGlkYXRlc0ZvcndhcmRzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdHlwZSA9IHRlcm0uZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICBiYXNlVHlwZSA9IGJhc2VUeXBlRnJvbU5vdGhpbmcoKTtcblxuICAgICAgICBpZiAodHlwZSA9PT0gYmFzZVR5cGUpIHtcbiAgICAgICAgICB2YWxpZGF0ZXNGb3J3YXJkcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsaWRhdGVzRm9yd2FyZHM7XG4gICAgICB9KTtcblxuICAgICAgaWYgKHRlcm1WYWxpZGF0ZXNBc1ZhcmlhYmxlKSB7XG4gICAgICAgIHRlcm1WYWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0ZXJtVmFsaWRhdGVzQXNHZW5lcmF0b3IgPSBhd2FpdCB2YWxpZGF0ZVRlcm1Bc0dlbmVyYXRvcih0aGlzLnRlcm0sIGNvbnRleHQpO1xuXG4gICAgICBpZiAodGVybVZhbGlkYXRlc0FzR2VuZXJhdG9yKSB7XG4gICAgICAgIHRlcm1WYWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0ZXJtVmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2dlbmVyYXRvclN0cmluZ30nIGdlbmVyYXRvcidzIHRlcm0uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlcm1WYWxpZGF0ZXM7XG4gIH1cblxuICBhc3luYyB1bmlmeVRlcm0odGVybSwgY29udGV4dCwgdmFsaWRhdGVGb3J3YXJkcykge1xuICAgIGxldCB0ZXJtVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgaW5jbHVkZVR5cGUgPSBmYWxzZSxcbiAgICAgICAgICBnZW5lcmF0b3JTdHJpbmcgPSB0aGlzLmdldFN0cmluZyhpbmNsdWRlVHlwZSk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSAnJHtnZW5lcmF0b3JTdHJpbmd9JyBnZW5lcmF0b3IuLi5gKTtcblxuICAgIGNvbnN0IGh5cG90aGVzZXNEaXNjYXJkZWRHaXZlblRlcm0gPSBhd2FpdCB0aGlzLmRpc2NoYXJnZUh5cG90aGVzZXNHaXZlblRlcm0odGVybSwgY29udGV4dCk7XG5cbiAgICBpZiAoaHlwb3RoZXNlc0Rpc2NhcmRlZEdpdmVuVGVybSkge1xuICAgICAgY29uc3QgZ2VuZXJhdG9yID0gdGhpcywgLy8vXG4gICAgICAgICAgICBnZW5lcmF0b3JDb250ZXh0ID0gZ2VuZXJhdG9yLmdldENvbnRleHQoKSxcbiAgICAgICAgICAgIGdlbmVyYWxDb250ZXh0ID0gZ2VuZXJhdG9yQ29udGV4dCwgIC8vL1xuICAgICAgICAgICAgc3BlY2lmaUNvbnRleHQgPSBjb250ZXh0LCAvLy9cbiAgICAgICAgICAgIHRlcm1VbmlmaWVzV2l0aEdlbmVyYXRvciA9IHVuaWZ5VGVybVdpdGhHZW5lcmF0b3IodGVybSwgZ2VuZXJhdG9yLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaUNvbnRleHQpO1xuXG4gICAgICBpZiAodGVybVVuaWZpZXNXaXRoR2VuZXJhdG9yKSB7XG4gICAgICAgIGNvbnN0IHByb3Zpc2lvbmFsID0gdGhpcy50eXBlLmlzUHJvdmlzaW9uYWwoKTtcblxuICAgICAgICB0ZXJtLnNldFR5cGUodGhpcy50eXBlKTtcblxuICAgICAgICB0ZXJtLnNldFByb3Zpc2lvbmFsKHByb3Zpc2lvbmFsKTtcblxuICAgICAgICBjb25zdCB2YWxpZGF0ZXNGb3J3YXJkcyA9IGF3YWl0IHZhbGlkYXRlRm9yd2FyZHModGVybSwgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKHZhbGlkYXRlc0ZvcndhcmRzKSB7XG4gICAgICAgICAgdGVybVVuaWZpZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRlcm1VbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSAnJHtnZW5lcmF0b3JTdHJpbmd9JyBnZW5lcmF0b3IuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlcm1VbmlmaWVzO1xuICB9XG5cbiAgYXN5bmMgZGlzY2hhcmdlSHlwb3RoZXNpc0dpdmVuVGVybShoeXBvdGhlc2lzLCB0ZXJtLCBjb250ZXh0KSB7XG4gICAgbGV0IGh5cG90aGVzaXNEaXNjaGFyZ2VzR2l2ZW5UZXJtO1xuXG4gICAgYXdhaXQgdGhpcy5icmVhayhjb250ZXh0KTtcblxuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgIGh5cG90aGVzaXNTdHJpbmcgPSBoeXBvdGhlc2lzLmdldFN0cmluZygpLFxuICAgICAgICAgIGdlbmVyYXRvclN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRGlzY2hhcmRpbmcgdGhlICcke2dlbmVyYXRvclN0cmluZ30nIGdlbmVyYXRvcidzICcke2h5cG90aGVzaXNTdHJpbmd9JyBoeXBvdGhlc2lzIGdpdmVuIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS4uLmApO1xuXG4gICAgaHlwb3RoZXNpc0Rpc2NoYXJnZXNHaXZlblRlcm0gPSBhd2FpdCBoeXBvdGhlc2lzLmRpc2NoYXJnZUdpdmVuVGVybSh0ZXJtLCBjb250ZXh0KTtcblxuICAgIGlmIChoeXBvdGhlc2lzRGlzY2hhcmdlc0dpdmVuVGVybSkge1xuICAgICAgY29udGV4dC50cmFjZShgLi4uZGlzY2hhcmdlcyB0aGUgJyR7Z2VuZXJhdG9yU3RyaW5nfScgZ2VuZXJhdG9yJ3MgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMgZ2l2ZW4gdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmApO1xuICAgIH1cblxuICAgIHJldHVybiBoeXBvdGhlc2lzRGlzY2hhcmdlc0dpdmVuVGVybTtcbiAgfVxuXG4gIGFzeW5jIGRpc2NoYXJnZUh5cG90aGVzZXNHaXZlblRlcm0odGVybSwgY29udGV4dCkge1xuICAgIGxldCBoeXBvdGhlc2VzRGlzY2hhcmdlc0dpdmVuVGVybSA9IHRydWU7ICAvLy9cblxuICAgIGNvbnN0IGh5cG90aGV0aWNhbCA9IHRoaXMuaXNIeXBvdGhldGljYWwoKTtcblxuICAgIGlmIChoeXBvdGhldGljYWwpIHtcbiAgICAgIGh5cG90aGVzZXNEaXNjaGFyZ2VzR2l2ZW5UZXJtID0gYXdhaXQgYXN5bmNocm9ub3VzRXZlcnkodGhpcy5oeXBvdGhlc2VzLCBhc3luYyAoaHlwb3RoZXNpcykgPT4ge1xuICAgICAgICBjb25zdCBoeXBvdGhlc2lzRGlzY2hhcmdlcyA9IGF3YWl0IHRoaXMuZGlzY2hhcmdlSHlwb3RoZXNpc0dpdmVuVGVybShoeXBvdGhlc2lzLCB0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgICBpZiAoaHlwb3RoZXNpc0Rpc2NoYXJnZXMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh5cG90aGVzZXNEaXNjaGFyZ2VzR2l2ZW5UZXJtO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIHJldHVybiBzZXJpYWxpc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVUeXBlID0gZmFsc2UsXG4gICAgICAgICAgICB0eXBlSlNPTiA9IHR5cGVUb1R5cGVKU09OKHRoaXMudHlwZSksXG4gICAgICAgICAgICBzdHJpbmcgPSB0aGlzLmdldFN0cmluZyhpbmNsdWRlVHlwZSk7XG5cbiAgICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgICBjb25zdCB0eXBlID0gdHlwZUpTT04sICAvLy9cbiAgICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgICAgYnJlYWtQb2ludCxcbiAgICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICAgfTtcblxuICAgICAgcmV0dXJuIGpzb247XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiR2VuZXJhdG9yXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICByZXR1cm4gaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiB1bnNlcmlhbGlzZSgoanNvbiwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgICAgZ2VuZXJhdG9yTm9kZSA9IGluc3RhbnRpYXRlR2VuZXJhdG9yKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICAgIG5vZGUgPSBnZW5lcmF0b3JOb2RlLCAvLy9cbiAgICAgICAgICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSxcbiAgICAgICAgICAgICAgdGVybSA9IHRlcm1Gcm9tR2VuZXJhdG9yTm9kZShnZW5lcmF0b3JOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgdHlwZSA9IHR5cGVGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgZ2VuZXJhdG9yID0gbmV3IEdlbmVyYXRvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm0sIHR5cGUpO1xuXG4gICAgICAgIHJldHVybiBnZW5lcmF0b3I7XG4gICAgICB9LCBqc29uLCBjb250ZXh0KTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiYXN5bmNocm9ub3VzRXZlcnkiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJHZW5lcmF0b3IiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidGVybSIsInR5cGUiLCJoeXBvdGhlc2VzIiwiZ2V0VGVybSIsImdldFR5cGUiLCJnZXRIeXBvdGhlc2VzIiwic2V0SHlwb3RoZXNlcyIsImdldEdlbmVyYXRvck5vZGUiLCJnZXROb2RlIiwiZ2VuZXJhdG9yTm9kZSIsImlzSHlwb3RoZXRpY2FsIiwiaHlwb3RoZXNlc0xlbmd0aCIsImxlbmd0aCIsImh5cG90aGV0aWNhbCIsImdldFN0cmluZyIsImluY2x1ZGVUeXBlIiwidGVybVN0cmluZyIsInR5cGVTdHJpbmciLCJzZXRUeXBlIiwidmVyaWZ5IiwidmVyaWZpZXMiLCJnZW5lcmF0b3JTdHJpbmciLCJ0cmFjZSIsImF0dGVtcHQiLCJ0ZXJtVmFsaWRhdGVzIiwidmFsaWRhdGVUZXJtIiwiY29tbWl0IiwiZGVidWciLCJ0ZXJtVmFsaWRhdGVzQXNWYXJpYWJsZSIsInZhbGlkYXRlVGVybUFzVmFyaWFibGUiLCJ2YWxpZGF0ZXNGb3J3YXJkcyIsImJhc2VUeXBlIiwiYmFzZVR5cGVGcm9tTm90aGluZyIsInRlcm1WYWxpZGF0ZXNBc0dlbmVyYXRvciIsInZhbGlkYXRlVGVybUFzR2VuZXJhdG9yIiwidW5pZnlUZXJtIiwidmFsaWRhdGVGb3J3YXJkcyIsInRlcm1VbmlmaWVzIiwiaHlwb3RoZXNlc0Rpc2NhcmRlZEdpdmVuVGVybSIsImRpc2NoYXJnZUh5cG90aGVzZXNHaXZlblRlcm0iLCJnZW5lcmF0b3IiLCJnZW5lcmF0b3JDb250ZXh0IiwiZ2V0Q29udGV4dCIsImdlbmVyYWxDb250ZXh0Iiwic3BlY2lmaUNvbnRleHQiLCJ0ZXJtVW5pZmllc1dpdGhHZW5lcmF0b3IiLCJ1bmlmeVRlcm1XaXRoR2VuZXJhdG9yIiwicHJvdmlzaW9uYWwiLCJpc1Byb3Zpc2lvbmFsIiwic2V0UHJvdmlzaW9uYWwiLCJkaXNjaGFyZ2VIeXBvdGhlc2lzR2l2ZW5UZXJtIiwiaHlwb3RoZXNpcyIsImh5cG90aGVzaXNEaXNjaGFyZ2VzR2l2ZW5UZXJtIiwiYnJlYWsiLCJoeXBvdGhlc2lzU3RyaW5nIiwiZGlzY2hhcmdlR2l2ZW5UZXJtIiwiaHlwb3RoZXNlc0Rpc2NoYXJnZXNHaXZlblRlcm0iLCJoeXBvdGhlc2lzRGlzY2hhcmdlcyIsInRvSlNPTiIsInNlcmlhbGlzZSIsInR5cGVKU09OIiwidHlwZVRvVHlwZUpTT04iLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIiwibmFtZSIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJ1bnNlcmlhbGlzZSIsImluc3RhbnRpYXRlR2VuZXJhdG9yIiwidGVybUZyb21HZW5lcmF0b3JOb2RlIiwidHlw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
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2dlbmVyYXRvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcywgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGJhc2VUeXBlRnJvbU5vdGhpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3R5cGVcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlR2VuZXJhdG9yIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IHRlcm1Gcm9tR2VuZXJhdG9yTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgdmFsaWRhdGVUZXJtQXNWYXJpYWJsZSB9IGZyb20gXCIuLi9wcm9jZXNzL3ZhbGlkYXRpb25cIjtcbmltcG9ydCB7IHVuaWZ5VGVybVdpdGhHZW5lcmF0b3IgfSBmcm9tIFwiLi4vcHJvY2Vzcy91bmlmeVwiO1xuaW1wb3J0IHsgdmFsaWRhdGVUZXJtQXNHZW5lcmF0b3IgfSBmcm9tIFwiLi4vcHJvY2Vzcy92YWxpZGF0ZVwiO1xuaW1wb3J0IHsgdHlwZUZyb21KU09OLCB0eXBlVG9UeXBlSlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuaW1wb3J0IHsgYXR0ZW1wdCwgc2VyaWFsaXNlLCB1bnNlcmlhbGlzZSwgaW5zdGFudGlhdGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgeyBhc3luY2hyb25vdXNFdmVyeSB9ID0gY29udGludWF0aW9uVXRpbGl0aWVzLFxuICAgICAgeyBicmVha1BvaW50RnJvbUpTT04sIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgR2VuZXJhdG9yIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdGVybSwgdHlwZSwgaHlwb3RoZXNlcykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnRlcm0gPSB0ZXJtO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5oeXBvdGhlc2VzID0gaHlwb3RoZXNlcztcbiAgfVxuXG4gIGdldFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMudGVybTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldEh5cG90aGVzZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHlwb3RoZXNlcztcbiAgfVxuXG4gIHNldEh5cG90aGVzZXMoaHlwb3RoZXNlcykge1xuICAgIHRoaXMuaHlwb3RoZXNlcyA9IGh5cG90aGVzZXM7XG4gIH1cblxuICBnZXRHZW5lcmF0b3JOb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBnZW5lcmF0b3JOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIGdlbmVyYXRvck5vZGU7XG4gIH1cblxuICBpc0h5cG90aGV0aWNhbCgpIHtcbiAgICBjb25zdCBoeXBvdGhlc2VzTGVuZ3RoID0gdGhpcy5oeXBvdGhlc2VzLmxlbmd0aCxcbiAgICAgICAgICBoeXBvdGhldGljYWwgPSAoaHlwb3RoZXNlc0xlbmd0aCA+IDApO1xuXG4gICAgcmV0dXJuIGh5cG90aGV0aWNhbDtcbiAgfVxuXG4gIGdldFN0cmluZyhpbmNsdWRlVHlwZSA9IHRydWUpIHtcbiAgICBsZXQgc3RyaW5nO1xuXG4gICAgaWYgKGluY2x1ZGVUeXBlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGhpcy50ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgICAgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKTtcblxuICAgICAgc3RyaW5nID0gYCR7dGVybVN0cmluZ30uJHt0eXBlU3RyaW5nfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0cmluZyA9IHN1cGVyLmdldFN0cmluZygpO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzZXRUeXBlKHR5cGUpIHtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5KGNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGluY2x1ZGVUeXBlID0gZmFsc2UsXG4gICAgICAgICAgZ2VuZXJhdG9yU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoaW5jbHVkZVR5cGUpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtnZW5lcmF0b3JTdHJpbmd9JyBnZW5lcmF0b3IuLi5gKTtcblxuICAgIGF3YWl0IGF0dGVtcHQoYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHRlcm1WYWxpZGF0ZXMgPSBhd2FpdCB0aGlzLnZhbGlkYXRlVGVybShjb250ZXh0KTtcblxuICAgICAgaWYgKHRlcm1WYWxpZGF0ZXMpIHtcbiAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgICAgdGhpcy5jb21taXQoY29udGV4dCk7XG4gICAgICB9XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtnZW5lcmF0b3JTdHJpbmd9JyBnZW5lcmF0b3IuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgYXN5bmMgdmFsaWRhdGVUZXJtKGNvbnRleHQpIHtcbiAgICBsZXQgdGVybVZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgaW5jbHVkZVR5cGUgPSBmYWxzZSxcbiAgICAgICAgICBnZW5lcmF0b3JTdHJpbmcgPSB0aGlzLmdldFN0cmluZyhpbmNsdWRlVHlwZSk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtnZW5lcmF0b3JTdHJpbmd9JyBnZW5lcmF0b3IncyB0ZXJtLi4uYCk7XG5cbiAgICBjb25zdCBoeXBvdGhldGljYWwgPSB0aGlzLmlzSHlwb3RoZXRpY2FsKCk7XG5cbiAgICBpZiAoaHlwb3RoZXRpY2FsKSB7XG4gICAgICBjb25zdCB0ZXJtVmFsaWRhdGVzQXNWYXJpYWJsZSA9IGF3YWl0IHZhbGlkYXRlVGVybUFzVmFyaWFibGUodGhpcy50ZXJtLCBjb250ZXh0LCBhc3luYyAodGVybSwgY29udGV4dCkgPT4geyAvLy9cbiAgICAgICAgbGV0IHZhbGlkYXRlc0ZvcndhcmRzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdHlwZSA9IHRlcm0uZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICBiYXNlVHlwZSA9IGJhc2VUeXBlRnJvbU5vdGhpbmcoKTtcblxuICAgICAgICBpZiAodHlwZSA9PT0gYmFzZVR5cGUpIHtcbiAgICAgICAgICB2YWxpZGF0ZXNGb3J3YXJkcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsaWRhdGVzRm9yd2FyZHM7XG4gICAgICB9KTtcblxuICAgICAgaWYgKHRlcm1WYWxpZGF0ZXNBc1ZhcmlhYmxlKSB7XG4gICAgICAgIHRlcm1WYWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0ZXJtVmFsaWRhdGVzQXNHZW5lcmF0b3IgPSB2YWxpZGF0ZVRlcm1Bc0dlbmVyYXRvcih0aGlzLnRlcm0sIGNvbnRleHQpO1xuXG4gICAgICBpZiAodGVybVZhbGlkYXRlc0FzR2VuZXJhdG9yKSB7XG4gICAgICAgIHRlcm1WYWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0ZXJtVmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke2dlbmVyYXRvclN0cmluZ30nIGdlbmVyYXRvcidzIHRlcm0uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlcm1WYWxpZGF0ZXM7XG4gIH1cblxuICBhc3luYyB1bmlmeVRlcm0odGVybSwgY29udGV4dCwgdmFsaWRhdGVGb3J3YXJkcykge1xuICAgIGxldCB0ZXJtVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgaW5jbHVkZVR5cGUgPSBmYWxzZSxcbiAgICAgICAgICBnZW5lcmF0b3JTdHJpbmcgPSB0aGlzLmdldFN0cmluZyhpbmNsdWRlVHlwZSk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSAnJHtnZW5lcmF0b3JTdHJpbmd9JyBnZW5lcmF0b3IuLi5gKTtcblxuICAgIGNvbnN0IGh5cG90aGVzZXNEaXNjYXJkZWRHaXZlblRlcm0gPSBhd2FpdCB0aGlzLmRpc2NoYXJnZUh5cG90aGVzZXNHaXZlblRlcm0odGVybSwgY29udGV4dCk7XG5cbiAgICBpZiAoaHlwb3RoZXNlc0Rpc2NhcmRlZEdpdmVuVGVybSkge1xuICAgICAgY29uc3QgZ2VuZXJhdG9yID0gdGhpcywgLy8vXG4gICAgICAgICAgICBnZW5lcmF0b3JDb250ZXh0ID0gZ2VuZXJhdG9yLmdldENvbnRleHQoKSxcbiAgICAgICAgICAgIGdlbmVyYWxDb250ZXh0ID0gZ2VuZXJhdG9yQ29udGV4dCwgIC8vL1xuICAgICAgICAgICAgc3BlY2lmaUNvbnRleHQgPSBjb250ZXh0LCAvLy9cbiAgICAgICAgICAgIHRlcm1VbmlmaWVzV2l0aEdlbmVyYXRvciA9IHVuaWZ5VGVybVdpdGhHZW5lcmF0b3IodGVybSwgZ2VuZXJhdG9yLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaUNvbnRleHQpO1xuXG4gICAgICBpZiAodGVybVVuaWZpZXNXaXRoR2VuZXJhdG9yKSB7XG4gICAgICAgIGNvbnN0IHByb3Zpc2lvbmFsID0gdGhpcy50eXBlLmlzUHJvdmlzaW9uYWwoKTtcblxuICAgICAgICB0ZXJtLnNldFR5cGUodGhpcy50eXBlKTtcblxuICAgICAgICB0ZXJtLnNldFByb3Zpc2lvbmFsKHByb3Zpc2lvbmFsKTtcblxuICAgICAgICBjb25zdCB2YWxpZGF0ZXNGb3J3YXJkcyA9IGF3YWl0IHZhbGlkYXRlRm9yd2FyZHModGVybSwgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKHZhbGlkYXRlc0ZvcndhcmRzKSB7XG4gICAgICAgICAgdGVybVVuaWZpZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRlcm1VbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSAnJHtnZW5lcmF0b3JTdHJpbmd9JyBnZW5lcmF0b3IuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlcm1VbmlmaWVzO1xuICB9XG5cbiAgYXN5bmMgZGlzY2hhcmdlSHlwb3RoZXNpc0dpdmVuVGVybShoeXBvdGhlc2lzLCB0ZXJtLCBjb250ZXh0KSB7XG4gICAgbGV0IGh5cG90aGVzaXNEaXNjaGFyZ2VzR2l2ZW5UZXJtO1xuXG4gICAgYXdhaXQgdGhpcy5icmVhayhjb250ZXh0KTtcblxuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgIGh5cG90aGVzaXNTdHJpbmcgPSBoeXBvdGhlc2lzLmdldFN0cmluZygpLFxuICAgICAgICAgIGdlbmVyYXRvclN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRGlzY2hhcmRpbmcgdGhlICcke2dlbmVyYXRvclN0cmluZ30nIGdlbmVyYXRvcidzICcke2h5cG90aGVzaXNTdHJpbmd9JyBoeXBvdGhlc2lzIGdpdmVuIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS4uLmApO1xuXG4gICAgaHlwb3RoZXNpc0Rpc2NoYXJnZXNHaXZlblRlcm0gPSBhd2FpdCBoeXBvdGhlc2lzLmRpc2NoYXJnZUdpdmVuVGVybSh0ZXJtLCBjb250ZXh0KTtcblxuICAgIGlmIChoeXBvdGhlc2lzRGlzY2hhcmdlc0dpdmVuVGVybSkge1xuICAgICAgY29udGV4dC50cmFjZShgLi4uZGlzY2hhcmdlcyB0aGUgJyR7Z2VuZXJhdG9yU3RyaW5nfScgZ2VuZXJhdG9yJ3MgJyR7aHlwb3RoZXNpc1N0cmluZ30nIGh5cG90aGVzaXMgZ2l2ZW4gdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmApO1xuICAgIH1cblxuICAgIHJldHVybiBoeXBvdGhlc2lzRGlzY2hhcmdlc0dpdmVuVGVybTtcbiAgfVxuXG4gIGFzeW5jIGRpc2NoYXJnZUh5cG90aGVzZXNHaXZlblRlcm0odGVybSwgY29udGV4dCkge1xuICAgIGxldCBoeXBvdGhlc2VzRGlzY2hhcmdlc0dpdmVuVGVybSA9IHRydWU7ICAvLy9cblxuICAgIGNvbnN0IGh5cG90aGV0aWNhbCA9IHRoaXMuaXNIeXBvdGhldGljYWwoKTtcblxuICAgIGlmIChoeXBvdGhldGljYWwpIHtcbiAgICAgIGh5cG90aGVzZXNEaXNjaGFyZ2VzR2l2ZW5UZXJtID0gYXdhaXQgYXN5bmNocm9ub3VzRXZlcnkodGhpcy5oeXBvdGhlc2VzLCBhc3luYyAoaHlwb3RoZXNpcykgPT4ge1xuICAgICAgICBjb25zdCBoeXBvdGhlc2lzRGlzY2hhcmdlcyA9IGF3YWl0IHRoaXMuZGlzY2hhcmdlSHlwb3RoZXNpc0dpdmVuVGVybShoeXBvdGhlc2lzLCB0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgICBpZiAoaHlwb3RoZXNpc0Rpc2NoYXJnZXMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh5cG90aGVzZXNEaXNjaGFyZ2VzR2l2ZW5UZXJtO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIHJldHVybiBzZXJpYWxpc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVUeXBlID0gZmFsc2UsXG4gICAgICAgICAgICB0eXBlSlNPTiA9IHR5cGVUb1R5cGVKU09OKHRoaXMudHlwZSksXG4gICAgICAgICAgICBzdHJpbmcgPSB0aGlzLmdldFN0cmluZyhpbmNsdWRlVHlwZSk7XG5cbiAgICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgICBjb25zdCB0eXBlID0gdHlwZUpTT04sICAvLy9cbiAgICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgICAgYnJlYWtQb2ludCxcbiAgICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICAgfTtcblxuICAgICAgcmV0dXJuIGpzb247XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiR2VuZXJhdG9yXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICByZXR1cm4gaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiB1bnNlcmlhbGlzZSgoanNvbiwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgICAgZ2VuZXJhdG9yTm9kZSA9IGluc3RhbnRpYXRlR2VuZXJhdG9yKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICAgIG5vZGUgPSBnZW5lcmF0b3JOb2RlLCAvLy9cbiAgICAgICAgICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSxcbiAgICAgICAgICAgICAgdGVybSA9IHRlcm1Gcm9tR2VuZXJhdG9yTm9kZShnZW5lcmF0b3JOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgdHlwZSA9IHR5cGVGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgZ2VuZXJhdG9yID0gbmV3IEdlbmVyYXRvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm0sIHR5cGUpO1xuXG4gICAgICAgIHJldHVybiBnZW5lcmF0b3I7XG4gICAgICB9LCBqc29uLCBjb250ZXh0KTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiYXN5bmNocm9ub3VzRXZlcnkiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJHZW5lcmF0b3IiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidGVybSIsInR5cGUiLCJoeXBvdGhlc2VzIiwiZ2V0VGVybSIsImdldFR5cGUiLCJnZXRIeXBvdGhlc2VzIiwic2V0SHlwb3RoZXNlcyIsImdldEdlbmVyYXRvck5vZGUiLCJnZXROb2RlIiwiZ2VuZXJhdG9yTm9kZSIsImlzSHlwb3RoZXRpY2FsIiwiaHlwb3RoZXNlc0xlbmd0aCIsImxlbmd0aCIsImh5cG90aGV0aWNhbCIsImdldFN0cmluZyIsImluY2x1ZGVUeXBlIiwidGVybVN0cmluZyIsInR5cGVTdHJpbmciLCJzZXRUeXBlIiwidmVyaWZ5IiwidmVyaWZpZXMiLCJnZW5lcmF0b3JTdHJpbmciLCJ0cmFjZSIsImF0dGVtcHQiLCJ0ZXJtVmFsaWRhdGVzIiwidmFsaWRhdGVUZXJtIiwiY29tbWl0IiwiZGVidWciLCJ0ZXJtVmFsaWRhdGVzQXNWYXJpYWJsZSIsInZhbGlkYXRlVGVybUFzVmFyaWFibGUiLCJ2YWxpZGF0ZXNGb3J3YXJkcyIsImJhc2VUeXBlIiwiYmFzZVR5cGVGcm9tTm90aGluZyIsInRlcm1WYWxpZGF0ZXNBc0dlbmVyYXRvciIsInZhbGlkYXRlVGVybUFzR2VuZXJhdG9yIiwidW5pZnlUZXJtIiwidmFsaWRhdGVGb3J3YXJkcyIsInRlcm1VbmlmaWVzIiwiaHlwb3RoZXNlc0Rpc2NhcmRlZEdpdmVuVGVybSIsImRpc2NoYXJnZUh5cG90aGVzZXNHaXZlblRlcm0iLCJnZW5lcmF0b3IiLCJnZW5lcmF0b3JDb250ZXh0IiwiZ2V0Q29udGV4dCIsImdlbmVyYWxDb250ZXh0Iiwic3BlY2lmaUNvbnRleHQiLCJ0ZXJtVW5pZmllc1dpdGhHZW5lcmF0b3IiLCJ1bmlmeVRlcm1XaXRoR2VuZXJhdG9yIiwicHJvdmlzaW9uYWwiLCJpc1Byb3Zpc2lvbmFsIiwic2V0UHJvdmlzaW9uYWwiLCJkaXNjaGFyZ2VIeXBvdGhlc2lzR2l2ZW5UZXJtIiwiaHlwb3RoZXNpcyIsImh5cG90aGVzaXNEaXNjaGFyZ2VzR2l2ZW5UZXJtIiwiYnJlYWsiLCJoeXBvdGhlc2lzU3RyaW5nIiwiZGlzY2hhcmdlR2l2ZW5UZXJtIiwiaHlwb3RoZXNlc0Rpc2NoYXJnZXNHaXZlblRlcm0iLCJoeXBvdGhlc2lzRGlzY2hhcmdlcyIsInRvSlNPTiIsInNlcmlhbGlzZSIsInR5cGVKU09OIiwidHlwZVRvVHlwZUpTT04iLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIiwibmFtZSIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJ1bnNlcmlhbGlzZSIsImluc3RhbnRpYXRlR2VuZXJhdG9yIiwidGVybUZyb21HZW5lcmF0b3JOb2RlIiwidHlwZUZyb21K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
|
package/lib/element/property.js
CHANGED
|
@@ -68,7 +68,7 @@ const _default = (0, _elements.define)(class Property extends _occamlanguages.El
|
|
|
68
68
|
let termValidates = false;
|
|
69
69
|
const includeType = false, propertyString = this.getString(includeType); ///
|
|
70
70
|
context.trace(`Validating the '${propertyString}' property's term...`);
|
|
71
|
-
const termValidatesAsProperty =
|
|
71
|
+
const termValidatesAsProperty = (0, _validate.validateTermAsProperty)(this.term, context);
|
|
72
72
|
if (termValidatesAsProperty) {
|
|
73
73
|
termValidates = true;
|
|
74
74
|
}
|
|
@@ -124,4 +124,4 @@ const _default = (0, _elements.define)(class Property extends _occamlanguages.El
|
|
|
124
124
|
}
|
|
125
125
|
});
|
|
126
126
|
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb3BlcnR5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlUHJvcGVydHkgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgdGVybUZyb21Qcm9wZXJ0eU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7IHVuaWZ5VGVybVdpdGhQcm9wZXJ0eSB9IGZyb20gXCIuLi9wcm9jZXNzL3VuaWZ5XCI7XG5pbXBvcnQgeyB2YWxpZGF0ZVRlcm1Bc1Byb3BlcnR5IH0gZnJvbSBcIi4uL3Byb2Nlc3MvdmFsaWRhdGVcIjtcbmltcG9ydCB7IHR5cGVGcm9tSlNPTiwgdHlwZVRvVHlwZUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcbmltcG9ydCB7IGF0dGVtcHQsIHNlcmlhbGlzZSwgdW5zZXJpYWxpc2UsIGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5cbmNvbnN0IHsgYnJlYWtQb2ludEZyb21KU09OLCBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFByb3BlcnR5IGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdGVybSwgdHlwZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnRlcm0gPSB0ZXJtO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXRUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm07XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXRQcm9wZXJ0eU5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHByb3BlcnR5Tm9kZSA9IG5vZGU7ICAvLy9cblxuICAgIHJldHVybiBwcm9wZXJ0eU5vZGU7XG4gIH1cblxuICBnZXRTdHJpbmcoaW5jbHVkZVR5cGUgPSB0cnVlKSB7XG4gICAgbGV0IHN0cmluZztcblxuICAgIGlmIChpbmNsdWRlVHlwZSkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRoaXMudGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIHN0cmluZyA9IGAke3Rlcm1TdHJpbmd9LiR7dHlwZVN0cmluZ31gO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHJpbmcgPSBzdXBlci5nZXRTdHJpbmcoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc2V0VHlwZSh0eXBlKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIGFzeW5jIHZlcmlmeShjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBpbmNsdWRlVHlwZSA9IGZhbHNlLFxuICAgICAgICAgIHByb3BlcnR5U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoaW5jbHVkZVR5cGUpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7cHJvcGVydHlTdHJpbmd9JyBwcm9wZXJ0eS4uLmApO1xuXG4gICAgYXdhaXQgYXR0ZW1wdChhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgdGVybVZhbGlkYXRlcyA9IGF3YWl0IHRoaXMudmFsaWRhdGVUZXJtKGNvbnRleHQpO1xuXG4gICAgICBpZiAodGVybVZhbGlkYXRlcykge1xuICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgICB0aGlzLmNvbW1pdChjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9LCBjb250ZXh0KTtcblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Byb3BlcnR5U3RyaW5nfScgcHJvcGVydHkuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgYXN5bmMgdmFsaWRhdGVUZXJtKGNvbnRleHQpIHtcbiAgICBsZXQgdGVybVZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgaW5jbHVkZVR5cGUgPSBmYWxzZSxcbiAgICAgICAgICBwcm9wZXJ0eVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKGluY2x1ZGVUeXBlKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtwcm9wZXJ0eVN0cmluZ30nIHByb3BlcnR5J3MgdGVybS4uLmApO1xuXG4gICAgY29uc3QgdGVybVZhbGlkYXRlc0FzUHJvcGVydHkgPSBhd2FpdCB2YWxpZGF0ZVRlcm1Bc1Byb3BlcnR5KHRoaXMudGVybSwgY29udGV4dCk7XG5cbiAgICBpZiAodGVybVZhbGlkYXRlc0FzUHJvcGVydHkpIHtcbiAgICAgIHRlcm1WYWxpZGF0ZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0ZXJtVmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3Byb3BlcnR5U3RyaW5nfScgcHJvcGVydHkncyB0ZXJtLmApO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtVmFsaWRhdGVzO1xuICB9XG5cbiAgYXN5bmMgdW5pZnlUZXJtKHRlcm0sIGNvbnRleHQsIHZhbGlkYXRlRm9yd2FyZHMpIHtcbiAgICBsZXQgdGVybVVuaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgIGluY2x1ZGVUeXBlID0gZmFsc2UsXG4gICAgICAgICAgcHJvcGVydHlTdHJpbmcgPSB0aGlzLmdldFN0cmluZyhpbmNsdWRlVHlwZSk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSAnJHtwcm9wZXJ0eVN0cmluZ30nIHByb3BlcnR5Li4uYCk7XG5cbiAgICBjb25zdCBwcm9wZXJ0eSA9IHRoaXMsIC8vL1xuICAgICAgICAgIHByb3BlcnR5Q29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLCAgLy8vXG4gICAgICAgICAgZ2VuZXJhbENvbnRleHQgPSBwcm9wZXJ0eUNvbnRleHQsICAvLy9cbiAgICAgICAgICBzcGVjaWZpQ29udGV4dCA9IGNvbnRleHQsIC8vL1xuICAgICAgICAgIHRlcm1VbmlmaWVzV2l0aFByb3BlcnR5ID0gdW5pZnlUZXJtV2l0aFByb3BlcnR5KHRlcm0sIHByb3BlcnR5LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaUNvbnRleHQpO1xuXG4gICAgaWYgKHRlcm1VbmlmaWVzV2l0aFByb3BlcnR5KSB7XG4gICAgICBjb25zdCBwcm92aXNpb25hbCA9IHRoaXMudHlwZS5pc1Byb3Zpc2lvbmFsKCk7XG5cbiAgICAgIHRlcm0uc2V0VHlwZSh0aGlzLnR5cGUpO1xuXG4gICAgICB0ZXJtLnNldFByb3Zpc2lvbmFsKHByb3Zpc2lvbmFsKTtcblxuICAgICAgY29uc3QgdmFsaWRhdGVzRm9yd2FyZHMgPSBhd2FpdCB2YWxpZGF0ZUZvcndhcmRzKHRlcm0sIGNvbnRleHQpO1xuXG4gICAgICBpZiAodmFsaWRhdGVzRm9yd2FyZHMpIHtcbiAgICAgICAgdGVybVVuaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0ZXJtVW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCB0aGUgJyR7cHJvcGVydHlTdHJpbmd9JyBwcm9wZXJ0eS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybVVuaWZpZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgcmV0dXJuIHNlcmlhbGlzZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVR5cGUgPSBmYWxzZSxcbiAgICAgICAgICAgIHR5cGVKU09OID0gdHlwZVRvVHlwZUpTT04odGhpcy50eXBlKSxcbiAgICAgICAgICAgIHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKGluY2x1ZGVUeXBlKTtcblxuICAgICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICAgIGNvbnN0IHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgICBicmVha1BvaW50LFxuICAgICAgICAgICAgICB0eXBlXG4gICAgICAgICAgICB9O1xuXG4gICAgICByZXR1cm4ganNvbjtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJQcm9wZXJ0eVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgcmV0dXJuIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gdW5zZXJpYWxpc2UoKGpzb24sIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICAgIHByb3BlcnR5Tm9kZSA9IGluc3RhbnRpYXRlUHJvcGVydHkoc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbm9kZSA9IHByb3BlcnR5Tm9kZSwgLy8vXG4gICAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgICAgIHRlcm0gPSB0ZXJtRnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICB0eXBlID0gdHlwZUZyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgICAgICBwcm9wZXJ0eSA9IG5ldyBQcm9wZXJ0eShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm0sIHR5cGUpO1xuXG4gICAgICAgIHJldHVybiBwcm9wZXJ0eTtcbiAgICAgIH0sIGpzb24sIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJQcm9wZXJ0eSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0ZXJtIiwidHlwZSIsImdldFRlcm0iLCJnZXRUeXBlIiwiZ2V0UHJvcGVydHlOb2RlIiwiZ2V0Tm9kZSIsInByb3BlcnR5Tm9kZSIsImdldFN0cmluZyIsImluY2x1ZGVUeXBlIiwidGVybVN0cmluZyIsInR5cGVTdHJpbmciLCJzZXRUeXBlIiwidmVyaWZ5IiwidmVyaWZpZXMiLCJwcm9wZXJ0eVN0cmluZyIsInRyYWNlIiwiYXR0ZW1wdCIsInRlcm1WYWxpZGF0ZXMiLCJ2YWxpZGF0ZVRlcm0iLCJjb21taXQiLCJkZWJ1ZyIsInRlcm1WYWxpZGF0ZXNBc1Byb3BlcnR5IiwidmFsaWRhdGVUZXJtQXNQcm9wZXJ0eSIsInVuaWZ5VGVybSIsInZhbGlkYXRlRm9yd2FyZHMiLCJ0ZXJtVW5pZmllcyIsInByb3BlcnR5IiwicHJvcGVydHlDb250ZXh0IiwiZ2V0Q29udGV4dCIsImdlbmVyYWxDb250ZXh0Iiwic3BlY2lmaUNvbnRleHQiLCJ0ZXJtVW5pZmllc1dpdGhQcm9wZXJ0eSIsInVuaWZ5VGVybVdpdGhQcm9wZXJ0eSIsInByb3Zpc2lvbmFsIiwiaXNQcm92aXNpb25hbCIsInNldFByb3Zpc2lvbmFsIiwidmFsaWRhdGVzRm9yd2FyZHMiLCJ0b0pTT04iLCJzZXJpYWxpc2UiLCJ0eXBlSlNPTiIsInR5cGVUb1R5cGVKU09OIiwiZ2V0QnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwianNvbiIsIm5hbWUiLCJmcm9tSlNPTiIsImluc3RhbnRpYXRlIiwidW5zZXJpYWxpc2UiLCJpbnN0YW50aWF0ZVByb3BlcnR5IiwidGVybUZyb21Qcm9wZXJ0eU5vZGUiLCJ0eXBlRnJvbUpTT04iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNBOzs7ZUFBQTs7O2dDQVo2QzswQkFFdEI7NkJBQ2E7eUJBQ0M7dUJBQ0M7MEJBQ0M7c0JBQ007eUJBQ2dCO0FBRTdELE1BQU0sRUFBRUEsa0JBQWtCLEVBQUVDLDBCQUEwQixFQUFFLEdBQUdDLG1DQUFtQjtNQUU5RSxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGlCQUFpQkMsdUJBQU87SUFDbEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLElBQUksQ0FBRTtRQUN6RCxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0YsSUFB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
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb3BlcnR5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlUHJvcGVydHkgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgdGVybUZyb21Qcm9wZXJ0eU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7IHVuaWZ5VGVybVdpdGhQcm9wZXJ0eSB9IGZyb20gXCIuLi9wcm9jZXNzL3VuaWZ5XCI7XG5pbXBvcnQgeyB2YWxpZGF0ZVRlcm1Bc1Byb3BlcnR5IH0gZnJvbSBcIi4uL3Byb2Nlc3MvdmFsaWRhdGVcIjtcbmltcG9ydCB7IHR5cGVGcm9tSlNPTiwgdHlwZVRvVHlwZUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcbmltcG9ydCB7IGF0dGVtcHQsIHNlcmlhbGlzZSwgdW5zZXJpYWxpc2UsIGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5cbmNvbnN0IHsgYnJlYWtQb2ludEZyb21KU09OLCBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFByb3BlcnR5IGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdGVybSwgdHlwZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnRlcm0gPSB0ZXJtO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXRUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm07XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXRQcm9wZXJ0eU5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHByb3BlcnR5Tm9kZSA9IG5vZGU7ICAvLy9cblxuICAgIHJldHVybiBwcm9wZXJ0eU5vZGU7XG4gIH1cblxuICBnZXRTdHJpbmcoaW5jbHVkZVR5cGUgPSB0cnVlKSB7XG4gICAgbGV0IHN0cmluZztcblxuICAgIGlmIChpbmNsdWRlVHlwZSkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRoaXMudGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIHN0cmluZyA9IGAke3Rlcm1TdHJpbmd9LiR7dHlwZVN0cmluZ31gO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHJpbmcgPSBzdXBlci5nZXRTdHJpbmcoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgc2V0VHlwZSh0eXBlKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIGFzeW5jIHZlcmlmeShjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBpbmNsdWRlVHlwZSA9IGZhbHNlLFxuICAgICAgICAgIHByb3BlcnR5U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoaW5jbHVkZVR5cGUpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7cHJvcGVydHlTdHJpbmd9JyBwcm9wZXJ0eS4uLmApO1xuXG4gICAgYXdhaXQgYXR0ZW1wdChhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgdGVybVZhbGlkYXRlcyA9IGF3YWl0IHRoaXMudmFsaWRhdGVUZXJtKGNvbnRleHQpO1xuXG4gICAgICBpZiAodGVybVZhbGlkYXRlcykge1xuICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgICB0aGlzLmNvbW1pdChjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9LCBjb250ZXh0KTtcblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Byb3BlcnR5U3RyaW5nfScgcHJvcGVydHkuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgYXN5bmMgdmFsaWRhdGVUZXJtKGNvbnRleHQpIHtcbiAgICBsZXQgdGVybVZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgaW5jbHVkZVR5cGUgPSBmYWxzZSxcbiAgICAgICAgICBwcm9wZXJ0eVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKGluY2x1ZGVUeXBlKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtwcm9wZXJ0eVN0cmluZ30nIHByb3BlcnR5J3MgdGVybS4uLmApO1xuXG4gICAgY29uc3QgdGVybVZhbGlkYXRlc0FzUHJvcGVydHkgPSB2YWxpZGF0ZVRlcm1Bc1Byb3BlcnR5KHRoaXMudGVybSwgY29udGV4dCk7XG5cbiAgICBpZiAodGVybVZhbGlkYXRlc0FzUHJvcGVydHkpIHtcbiAgICAgIHRlcm1WYWxpZGF0ZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0ZXJtVmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3Byb3BlcnR5U3RyaW5nfScgcHJvcGVydHkncyB0ZXJtLmApO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtVmFsaWRhdGVzO1xuICB9XG5cbiAgYXN5bmMgdW5pZnlUZXJtKHRlcm0sIGNvbnRleHQsIHZhbGlkYXRlRm9yd2FyZHMpIHtcbiAgICBsZXQgdGVybVVuaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgIGluY2x1ZGVUeXBlID0gZmFsc2UsXG4gICAgICAgICAgcHJvcGVydHlTdHJpbmcgPSB0aGlzLmdldFN0cmluZyhpbmNsdWRlVHlwZSk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSAnJHtwcm9wZXJ0eVN0cmluZ30nIHByb3BlcnR5Li4uYCk7XG5cbiAgICBjb25zdCBwcm9wZXJ0eSA9IHRoaXMsIC8vL1xuICAgICAgICAgIHByb3BlcnR5Q29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLCAgLy8vXG4gICAgICAgICAgZ2VuZXJhbENvbnRleHQgPSBwcm9wZXJ0eUNvbnRleHQsICAvLy9cbiAgICAgICAgICBzcGVjaWZpQ29udGV4dCA9IGNvbnRleHQsIC8vL1xuICAgICAgICAgIHRlcm1VbmlmaWVzV2l0aFByb3BlcnR5ID0gdW5pZnlUZXJtV2l0aFByb3BlcnR5KHRlcm0sIHByb3BlcnR5LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaUNvbnRleHQpO1xuXG4gICAgaWYgKHRlcm1VbmlmaWVzV2l0aFByb3BlcnR5KSB7XG4gICAgICBjb25zdCBwcm92aXNpb25hbCA9IHRoaXMudHlwZS5pc1Byb3Zpc2lvbmFsKCk7XG5cbiAgICAgIHRlcm0uc2V0VHlwZSh0aGlzLnR5cGUpO1xuXG4gICAgICB0ZXJtLnNldFByb3Zpc2lvbmFsKHByb3Zpc2lvbmFsKTtcblxuICAgICAgY29uc3QgdmFsaWRhdGVzRm9yd2FyZHMgPSBhd2FpdCB2YWxpZGF0ZUZvcndhcmRzKHRlcm0sIGNvbnRleHQpO1xuXG4gICAgICBpZiAodmFsaWRhdGVzRm9yd2FyZHMpIHtcbiAgICAgICAgdGVybVVuaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0ZXJtVW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCB0aGUgJyR7cHJvcGVydHlTdHJpbmd9JyBwcm9wZXJ0eS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybVVuaWZpZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgcmV0dXJuIHNlcmlhbGlzZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVR5cGUgPSBmYWxzZSxcbiAgICAgICAgICAgIHR5cGVKU09OID0gdHlwZVRvVHlwZUpTT04odGhpcy50eXBlKSxcbiAgICAgICAgICAgIHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKGluY2x1ZGVUeXBlKTtcblxuICAgICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICAgIGNvbnN0IHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgICBicmVha1BvaW50LFxuICAgICAgICAgICAgICB0eXBlXG4gICAgICAgICAgICB9O1xuXG4gICAgICByZXR1cm4ganNvbjtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJQcm9wZXJ0eVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgcmV0dXJuIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gdW5zZXJpYWxpc2UoKGpzb24sIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICAgIHByb3BlcnR5Tm9kZSA9IGluc3RhbnRpYXRlUHJvcGVydHkoc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbm9kZSA9IHByb3BlcnR5Tm9kZSwgLy8vXG4gICAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgICAgIHRlcm0gPSB0ZXJtRnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICB0eXBlID0gdHlwZUZyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgICAgICBwcm9wZXJ0eSA9IG5ldyBQcm9wZXJ0eShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm0sIHR5cGUpO1xuXG4gICAgICAgIHJldHVybiBwcm9wZXJ0eTtcbiAgICAgIH0sIGpzb24sIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJQcm9wZXJ0eSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0ZXJtIiwidHlwZSIsImdldFRlcm0iLCJnZXRUeXBlIiwiZ2V0UHJvcGVydHlOb2RlIiwiZ2V0Tm9kZSIsInByb3BlcnR5Tm9kZSIsImdldFN0cmluZyIsImluY2x1ZGVUeXBlIiwidGVybVN0cmluZyIsInR5cGVTdHJpbmciLCJzZXRUeXBlIiwidmVyaWZ5IiwidmVyaWZpZXMiLCJwcm9wZXJ0eVN0cmluZyIsInRyYWNlIiwiYXR0ZW1wdCIsInRlcm1WYWxpZGF0ZXMiLCJ2YWxpZGF0ZVRlcm0iLCJjb21taXQiLCJkZWJ1ZyIsInRlcm1WYWxpZGF0ZXNBc1Byb3BlcnR5IiwidmFsaWRhdGVUZXJtQXNQcm9wZXJ0eSIsInVuaWZ5VGVybSIsInZhbGlkYXRlRm9yd2FyZHMiLCJ0ZXJtVW5pZmllcyIsInByb3BlcnR5IiwicHJvcGVydHlDb250ZXh0IiwiZ2V0Q29udGV4dCIsImdlbmVyYWxDb250ZXh0Iiwic3BlY2lmaUNvbnRleHQiLCJ0ZXJtVW5pZmllc1dpdGhQcm9wZXJ0eSIsInVuaWZ5VGVybVdpdGhQcm9wZXJ0eSIsInByb3Zpc2lvbmFsIiwiaXNQcm92aXNpb25hbCIsInNldFByb3Zpc2lvbmFsIiwidmFsaWRhdGVzRm9yd2FyZHMiLCJ0b0pTT04iLCJzZXJpYWxpc2UiLCJ0eXBlSlNPTiIsInR5cGVUb1R5cGVKU09OIiwiZ2V0QnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwianNvbiIsIm5hbWUiLCJmcm9tSlNPTiIsImluc3RhbnRpYXRlIiwidW5zZXJpYWxpc2UiLCJpbnN0YW50aWF0ZVByb3BlcnR5IiwidGVybUZyb21Qcm9wZXJ0eU5vZGUiLCJ0eXBlRnJvbUpTT04iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNBOzs7ZUFBQTs7O2dDQVo2QzswQkFFdEI7NkJBQ2E7eUJBQ0M7dUJBQ0M7MEJBQ0M7c0JBQ007eUJBQ2dCO0FBRTdELE1BQU0sRUFBRUEsa0JBQWtCLEVBQUVDLDBCQUEwQixFQUFFLEdBQUdDLG1DQUFtQjtNQUU5RSxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGlCQUFpQkMsdUJBQU87SUFDbEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLElBQUksQ0FBRTtRQUN6RCxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0YsSUFBSTtJQUNs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
|
package/lib/element/signature.js
CHANGED
|
@@ -87,7 +87,7 @@ const _default = (0, _elements.define)(class Signature extends _occamlanguages.E
|
|
|
87
87
|
}, context);
|
|
88
88
|
context = temporaryContext; ///
|
|
89
89
|
if (validates) {
|
|
90
|
-
signature = this; ///
|
|
90
|
+
const signature = this; ///
|
|
91
91
|
context.addSignature(signature);
|
|
92
92
|
}
|
|
93
93
|
}
|
|
@@ -184,4 +184,4 @@ function termsFromSignatureNode(signatureNode, context) {
|
|
|
184
184
|
return terms;
|
|
185
185
|
}
|
|
186
186
|
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3NpZ25hdHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzLCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVTaWduYXR1cmUgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgc2lnbmF0dXJlRnJvbVNpZ25hdHVyZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7IGFibGF0ZSwgYXR0ZW1wdCwgcmVjb25jaWxlLCBzZXJpYWxpc2UsIHVuc2VyaWFsaXNlLCBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuXG5jb25zdCB7IG1hdGNoIH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgYXN5bmNocm9ub3VzRXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgYnJlYWtQb2ludEZyb21KU09OLCBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFNpZ25hdHVyZSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm1zKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudGVybXMgPSB0ZXJtcztcbiAgfVxuXG4gIGdldFRlcm1zKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm1zO1xuICB9XG5cbiAgZ2V0U2lnbmF0dXJlTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgc2lnbmF0dXJlTm9kZSA9IG5vZGU7IC8vL1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZU5vZGU7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgY29uc3QgdGVybXNMZW5ndGggPSB0aGlzLnRlcm1zLmxlbmd0aCxcbiAgICAgICAgICBsZW5ndGggPSB0ZXJtc0xlbmd0aDsgLy8vXG5cbiAgICByZXR1cm4gbGVuZ3RoO1xuICB9XG5cbiAgZ2V0VGVybShpbmRleCkge1xuICAgIGNvbnN0IHRlcm0gPSB0aGlzLnRlcm1zW2luZGV4XTtcblxuICAgIHJldHVybiB0ZXJtO1xuICB9XG5cbiAgaXNFcXVhbFRvKHNpZ25hdHVyZSkge1xuICAgIGNvbnN0IHNpZ25hdHVyZU5vZGUgPSBzaWduYXR1cmUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHNpZ25hdHVyZU5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaFNpZ25hdHVyZU5vZGUoc2lnbmF0dXJlTm9kZSksXG4gICAgICAgICAgZXF1YWxUbyA9IHNpZ25hdHVyZU5vZGVNYXRjaGVzOyAgLy8vXG5cbiAgICByZXR1cm4gZXF1YWxUbztcbiAgfVxuXG4gIG1hdGNoU2lnbmF0dXJlTm9kZShzaWduYXR1cmVOb2RlKSB7XG4gICAgY29uc3Qgbm9kZSA9IHNpZ25hdHVyZU5vZGUsIC8vL1xuICAgICAgICAgIG5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaE5vZGUobm9kZSksXG4gICAgICAgICAgc2lnbmF0dXJlTm9kZU1hdGNoZXMgPSBub2RlTWF0Y2hlczsgLy8vXG5cbiAgICByZXR1cm4gc2lnbmF0dXJlTm9kZU1hdGNoZXM7XG4gIH1cblxuICBmaW5kU2lnbmF0dXJlKGNvbnRleHQpIHtcbiAgICBjb25zdCBzaWduYXR1cmVOb2RlID0gdGhpcy5nZXRTaWduYXR1cmVOb2RlKCksXG4gICAgICAgICAgc2lnbmF0dXJlID0gY29udGV4dC5maW5kU2lnbmF0dXJlQnlTaWduYXR1cmVOb2RlKHNpZ25hdHVyZU5vZGUpO1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZTtcbiAgfVxuXG4gIHZlcmlmeShjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBzaWduYXR1cmVTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3NpZ25hdHVyZVN0cmluZ30nIHNpZ25hdHVyZS4uLmApO1xuXG4gICAgYXR0ZW1wdCgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgdGVybXNWYWxpZGF0ZSA9IHRoaXMudmFsaWRhdGVUZXJtcyhjb250ZXh0KTtcblxuICAgICAgaWYgKHRlcm1zVmFsaWRhdGUgIT09IG51bGwpIHtcbiAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgICAgdGhpcy5jb21taXQoY29udGV4dCk7XG4gICAgICB9XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllcztcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBzaWduYXR1cmVTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUuLi5gKTtcblxuICAgIGxldCB2YWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHNpZ25hdHVyZSA9IHRoaXMuZmluZFNpZ25hdHVyZShjb250ZXh0KTtcblxuICAgIGlmIChzaWduYXR1cmUgIT09IG51bGwpIHtcbiAgICAgIHZhbGlkYXRlcyA9IHRydWU7XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnRoZSAnJHtzaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUgaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0ZW1wb3JhcnlDb250ZXh0ID0gY29udGV4dDsgLy8vXG5cbiAgICAgIGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgICAgYXR0ZW1wdCgoY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB0ZXJtc1ZhbGlkYXRlID0gdGhpcy52YWxpZGF0ZVRlcm1zKGNvbnRleHQpO1xuXG4gICAgICAgIGlmICh0ZXJtc1ZhbGlkYXRlICE9PSBudWxsKSB7XG4gICAgICAgICAgdmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgICB0aGlzLmNvbW1pdChjb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgfSwgY29udGV4dCk7XG5cbiAgICAgIGNvbnRleHQgPSB0ZW1wb3JhcnlDb250ZXh0OyAvLy9cblxuICAgICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgICBzaWduYXR1cmUgPSB0aGlzOyAvLy9cblxuICAgICAgICBjb250ZXh0LmFkZFNpZ25hdHVyZShzaWduYXR1cmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzaWduYXR1cmU7XG4gIH1cblxuICB2YWxpZGF0ZVRlcm1zKGNvbnRleHQpIHtcbiAgICBsZXQgdGVybXNWYWxpZGF0ZTtcblxuICAgIGNvbnN0IHNpZ25hdHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3NpZ25hdHVyZVN0cmluZ30nIHNpZ25hdHVyZSdzIHRlcm1zLi4uYCk7XG5cbiAgICBjb25zdCB0ZXJtcyA9IFtdO1xuXG4gICAgdGVybXNWYWxpZGF0ZSA9IGFzeW5jaHJvbm91c0V2ZXJ5KHRoaXMudGVybXMsICh0ZXJtKSA9PiB7XG4gICAgICB0ZXJtID0gdGVybS52YWxpZGF0ZShjb250ZXh0LCAodGVybSwgY29udGV4dCkgPT4geyAvLy9cbiAgICAgICAgY29uc3QgdmFsaWRhdGVzRm9yd2FyZHMgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB2YWxpZGF0ZXNGb3J3YXJkcztcbiAgICAgIH0pO1xuXG4gICAgICBpZiAodGVybSAhPT0gbnVsbCkge1xuICAgICAgICB0ZXJtcy5wdXNoKHRlcm0pO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRlcm1zVmFsaWRhdGUpIHtcbiAgICAgIHRoaXMudGVybXMgPSB0ZXJtcztcbiAgICB9XG5cbiAgICBpZiAodGVybXNWYWxpZGF0ZSl7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3NpZ25hdHVyZVN0cmluZ30nIHNpZ25hdHVyZSdzIHRlcm1zLmApO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtc1ZhbGlkYXRlXG4gIH1cblxuICB1bmlmeVNpZ25hdHVyZShzaWduYXR1cmUsIGNvbnRleHQpIHtcbiAgICBsZXQgc2lnbmF0dXJlVW5pZmllcztcblxuICAgIGNvbnN0IGdlbmVyYWxTaWduYXR1cmUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgc3BlY2lmaWNTaWduYXR1cmUgPSBzaWduYXR1cmUsICAvLy9cbiAgICAgICAgICBnZW5lcmFsU2lnbmF0dXJlU3RyaW5nID0gZ2VuZXJhbFNpZ25hdHVyZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzcGVjaWZpY1NpZ25hdHVyZVN0cmluZyA9IHNwZWNpZmljU2lnbmF0dXJlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3NwZWNpZmljU2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlIHdpdGggdGhlICcke2dlbmVyYWxTaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUuLi5gKTtcblxuICAgIGNvbnN0IGdlbmVyYWxTaWduYXR1cmVUZXJtcyA9IGdlbmVyYWxTaWduYXR1cmUuZ2V0VGVybXMoKSxcbiAgICAgICAgICBzcGVjaWZpY1NpZ25hdHVyZVRlcm1zID0gc3BlY2lmaWNTaWduYXR1cmUuZ2V0VGVybXMoKSxcbiAgICAgICAgICBnZW5lcmFsU2lnbmF0dXJlQ29udGV4dCA9IGdlbmVyYWxTaWduYXR1cmUuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHNwZWNpZmljU2lnbmF0dXJlQ29udGV4dCA9IHNwZWNpZmljU2lnbmF0dXJlLmdldENvbnRleHQoKSxcbiAgICAgICAgICBnZW5lcmFsVGVybXMgPSBnZW5lcmFsU2lnbmF0dXJlVGVybXMsICAvLy9cbiAgICAgICAgICBzcGVjaWZpY1Rlcm1zID0gc3BlY2lmaWNTaWduYXR1cmVUZXJtcywgLy8vXG4gICAgICAgICAgZ2VuZXJhbENvbnRleHQgPSBnZW5lcmFsU2lnbmF0dXJlQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gc3BlY2lmaWNTaWduYXR1cmVDb250ZXh0OyAgLy8vXG5cbiAgICBkZWJ1Z2dlclxuXG4gICAgc2lnbmF0dXJlVW5pZmllcyA9IHJlY29uY2lsZSgoc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICBtYXRjaChnZW5lcmFsVGVybXMsIHNwZWNpZmljVGVybXMsIChnZW5lcmFsVGVybSwgc3BlY2lmaWNUZXJtKSA9PiB7XG4gICAgICAgIGxldCB0ZXJtVW5pZmllcztcblxuICAgICAgICB0ZXJtVW5pZmllcyA9IGdlbmVyYWxUZXJtLnVuaWZ5VGVybShzcGVjaWZpY1Rlcm0sIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgIGlmICh0ZXJtVW5pZmllcykge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHNpZ25hdHVyZVVuaWZpZXMpIHtcbiAgICAgICAgc3BlY2lmaWNDb250ZXh0LmNvbW1pdChjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgaWYgKHNpZ25hdHVyZVVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3NwZWNpZmljU2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlIHdpdGggdGhlICcke2dlbmVyYWxTaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpZ25hdHVyZVVuaWZpZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgcmV0dXJuIHNlcmlhbGlzZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIHN0cmluZyxcbiAgICAgICAgYnJlYWtQb2ludFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGpzb247XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiU2lnbmF0dXJlXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICByZXR1cm4gaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiB1bnNlcmlhbGlzZSgoanNvbiwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgICAgc2lnbmF0dXJlTm9kZSA9IGluc3RhbnRpYXRlU2lnbmF0dXJlKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICAgIG5vZGUgPSBzaWduYXR1cmVOb2RlLCAgLy8vXG4gICAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgICAgIHRlcm1zID0gdGVybXNGcm9tU2lnbmF0dXJlTm9kZShzaWduYXR1cmVOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgc2lnbmF0dXJlID0gbmV3IFNpZ25hdHVyZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm1zKTtcblxuICAgICAgICByZXR1cm4gc2lnbmF0dXJlO1xuICAgICAgfSwganNvbiwgY29udGV4dCk7XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBzdGF0aWMgZnJvbVNpZ25hdHVyZVN0cmluZyhzaWduYXR1cmVTdHJpbmcsIGNvbnRleHQpIHtcbiAgICByZXR1cm4gYWJsYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3Qgc3RyaW5nID0gc2lnbmF0dXJlU3RyaW5nLCAgLy8vXG4gICAgICAgICAgICAgIHNpZ25hdHVyZU5vZGUgPSBpbnN0YW50aWF0ZVNpZ25hdHVyZShzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBzaWduYXR1cmUgPSBzaWduYXR1cmVGcm9tU2lnbmF0dXJlTm9kZShzaWduYXR1cmVOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gc2lnbmF0dXJlO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfSwgY29udGV4dCk7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiB0ZXJtc0Zyb21TaWduYXR1cmVOb2RlKHNpZ25hdHVyZU5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgdGVybU5vZGVzID0gc2lnbmF0dXJlTm9kZS5nZXRUZXJtTm9kZXMoKSxcbiAgICAgICAgdGVybXMgPSB0ZXJtTm9kZXMubWFwKCh0ZXJtTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRlcm0gPSBjb250ZXh0LmZpbmRUZXJtQnlUZXJtTm9kZSh0ZXJtTm9kZSk7XG5cbiAgICAgICAgICByZXR1cm4gdGVybTtcbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIHRlcm1zO1xufVxuIl0sIm5hbWVzIjpbIm1hdGNoIiwiYXJyYXlVdGlsaXRpZXMiLCJhc3luY2hyb25vdXNFdmVyeSIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImJyZWFrUG9pbnRGcm9tSlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIlNpZ25hdHVyZSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0ZXJtcyIsImdldFRlcm1zIiwiZ2V0U2lnbmF0dXJlTm9kZSIsImdldE5vZGUiLCJzaWduYXR1cmVOb2RlIiwiZ2V0TGVuZ3RoIiwidGVybXNMZW5ndGgiLCJsZW5ndGgiLCJnZXRUZXJtIiwiaW5kZXgiLCJ0ZXJtIiwiaXNFcXVhbFRvIiwic2lnbmF0dXJlIiwic2lnbmF0dXJlTm9kZU1hdGNoZXMiLCJtYXRjaFNpZ25hdHVyZU5vZGUiLCJlcXVhbFRvIiwibm9kZU1hdGNoZXMiLCJtYXRjaE5vZGUiLCJmaW5kU2lnbmF0dXJlIiwiZmluZFNpZ25hdHVyZUJ5U2lnbmF0dXJlTm9kZSIsInZlcmlmeSIsInZlcmlmaWVzIiwic2lnbmF0dXJlU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJhdHRlbXB0IiwidGVybXNWYWxpZGF0ZSIsInZhbGlkYXRlVGVybXMiLCJjb21taXQiLCJkZWJ1ZyIsInZhbGlkYXRlIiwidmFsaWRhdGVzIiwidGVtcG9yYXJ5Q29udGV4dCIsImdldENvbnRleHQiLCJhZGRTaWduYXR1cmUiLCJ2YWxpZGF0ZXNGb3J3YXJkcyIsInB1c2giLCJ1bmlmeVNpZ25hdHVyZSIsInNpZ25hdHVyZVVuaWZpZXMiLCJnZW5lcmFsU2lnbmF0dXJlIiwic3BlY2lmaWNTaWduYXR1cmUiLCJnZW5lcmFsU2lnbmF0dXJlU3RyaW5nIiwic3BlY2lmaWNTaWduYXR1cmVTdHJpbmciLCJnZW5lcmFsU2lnbmF0dXJlVGVybXMiLCJzcGVjaWZpY1NpZ25hdHVyZVRlcm1zIiwiZ2VuZXJhbFNpZ25hdHVyZUNvbnRleHQiLCJzcGVjaWZpY1NpZ25hdHVyZUNvbnRleHQiLCJnZW5lcmFsVGVybXMiLCJzcGVjaWZpY1Rlcm1zIiwiZ2VuZXJhbENvbnRleHQiLCJzcGVjaWZpY0NvbnRleHQiLCJyZWNvbmNpbGUiLCJnZW5lcmFsVGVybSIsInNwZWNpZmljVGVybSIsInRlcm1VbmlmaWVzIiwidW5pZnlUZXJtIiwidG9KU09OIiwic2VyaWFsaXNlIiwiZ2V0QnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwianNvbiIsIm5hbWUiLCJmcm9tSlNPTiIsImluc3RhbnRpYXRlIiwidW5zZXJpYWxpc2UiLCJpbnN0YW50aWF0ZVNpZ25hdHVyZSIsInRlcm1zRnJvbVNpZ25hdHVyZU5vZGUiLCJmcm9tU2lnbmF0dXJlU3RyaW5nIiwiYWJsYXRlIiwic2lnbmF0dXJlRnJvbVNpZ25hdHVyZU5vZGUiLCJ0ZXJtTm9kZXMiLCJnZXRUZXJtTm9kZXMiLCJtYXAiLCJ0ZXJtTm9kZSIsImZpbmRUZXJtQnlUZXJtTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUFBOzs7MkJBWitCO2dDQUNxQzswQkFFN0M7NkJBQ2M7eUJBQ007eUJBQ3FDO0FBRWhGLE1BQU0sRUFBRUEsS0FBSyxFQUFF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
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3NpZ25hdHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzLCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVTaWduYXR1cmUgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgc2lnbmF0dXJlRnJvbVNpZ25hdHVyZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7IGFibGF0ZSwgYXR0ZW1wdCwgcmVjb25jaWxlLCBzZXJpYWxpc2UsIHVuc2VyaWFsaXNlLCBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuXG5jb25zdCB7IG1hdGNoIH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgYXN5bmNocm9ub3VzRXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgYnJlYWtQb2ludEZyb21KU09OLCBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFNpZ25hdHVyZSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm1zKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudGVybXMgPSB0ZXJtcztcbiAgfVxuXG4gIGdldFRlcm1zKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm1zO1xuICB9XG5cbiAgZ2V0U2lnbmF0dXJlTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgc2lnbmF0dXJlTm9kZSA9IG5vZGU7IC8vL1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZU5vZGU7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgY29uc3QgdGVybXNMZW5ndGggPSB0aGlzLnRlcm1zLmxlbmd0aCxcbiAgICAgICAgICBsZW5ndGggPSB0ZXJtc0xlbmd0aDsgLy8vXG5cbiAgICByZXR1cm4gbGVuZ3RoO1xuICB9XG5cbiAgZ2V0VGVybShpbmRleCkge1xuICAgIGNvbnN0IHRlcm0gPSB0aGlzLnRlcm1zW2luZGV4XTtcblxuICAgIHJldHVybiB0ZXJtO1xuICB9XG5cbiAgaXNFcXVhbFRvKHNpZ25hdHVyZSkge1xuICAgIGNvbnN0IHNpZ25hdHVyZU5vZGUgPSBzaWduYXR1cmUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHNpZ25hdHVyZU5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaFNpZ25hdHVyZU5vZGUoc2lnbmF0dXJlTm9kZSksXG4gICAgICAgICAgZXF1YWxUbyA9IHNpZ25hdHVyZU5vZGVNYXRjaGVzOyAgLy8vXG5cbiAgICByZXR1cm4gZXF1YWxUbztcbiAgfVxuXG4gIG1hdGNoU2lnbmF0dXJlTm9kZShzaWduYXR1cmVOb2RlKSB7XG4gICAgY29uc3Qgbm9kZSA9IHNpZ25hdHVyZU5vZGUsIC8vL1xuICAgICAgICAgIG5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaE5vZGUobm9kZSksXG4gICAgICAgICAgc2lnbmF0dXJlTm9kZU1hdGNoZXMgPSBub2RlTWF0Y2hlczsgLy8vXG5cbiAgICByZXR1cm4gc2lnbmF0dXJlTm9kZU1hdGNoZXM7XG4gIH1cblxuICBmaW5kU2lnbmF0dXJlKGNvbnRleHQpIHtcbiAgICBjb25zdCBzaWduYXR1cmVOb2RlID0gdGhpcy5nZXRTaWduYXR1cmVOb2RlKCksXG4gICAgICAgICAgc2lnbmF0dXJlID0gY29udGV4dC5maW5kU2lnbmF0dXJlQnlTaWduYXR1cmVOb2RlKHNpZ25hdHVyZU5vZGUpO1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZTtcbiAgfVxuXG4gIHZlcmlmeShjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBzaWduYXR1cmVTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3NpZ25hdHVyZVN0cmluZ30nIHNpZ25hdHVyZS4uLmApO1xuXG4gICAgYXR0ZW1wdCgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgdGVybXNWYWxpZGF0ZSA9IHRoaXMudmFsaWRhdGVUZXJtcyhjb250ZXh0KTtcblxuICAgICAgaWYgKHRlcm1zVmFsaWRhdGUgIT09IG51bGwpIHtcbiAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgICAgdGhpcy5jb21taXQoY29udGV4dCk7XG4gICAgICB9XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllcztcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBzaWduYXR1cmVTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUuLi5gKTtcblxuICAgIGxldCB2YWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHNpZ25hdHVyZSA9IHRoaXMuZmluZFNpZ25hdHVyZShjb250ZXh0KTtcblxuICAgIGlmIChzaWduYXR1cmUgIT09IG51bGwpIHtcbiAgICAgIHZhbGlkYXRlcyA9IHRydWU7XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnRoZSAnJHtzaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUgaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0ZW1wb3JhcnlDb250ZXh0ID0gY29udGV4dDsgLy8vXG5cbiAgICAgIGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgICAgYXR0ZW1wdCgoY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB0ZXJtc1ZhbGlkYXRlID0gdGhpcy52YWxpZGF0ZVRlcm1zKGNvbnRleHQpO1xuXG4gICAgICAgIGlmICh0ZXJtc1ZhbGlkYXRlICE9PSBudWxsKSB7XG4gICAgICAgICAgdmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgICB0aGlzLmNvbW1pdChjb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgfSwgY29udGV4dCk7XG5cbiAgICAgIGNvbnRleHQgPSB0ZW1wb3JhcnlDb250ZXh0OyAvLy9cblxuICAgICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgICBjb25zdCBzaWduYXR1cmUgPSB0aGlzOyAvLy9cblxuICAgICAgICBjb250ZXh0LmFkZFNpZ25hdHVyZShzaWduYXR1cmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzaWduYXR1cmU7XG4gIH1cblxuICB2YWxpZGF0ZVRlcm1zKGNvbnRleHQpIHtcbiAgICBsZXQgdGVybXNWYWxpZGF0ZTtcblxuICAgIGNvbnN0IHNpZ25hdHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3NpZ25hdHVyZVN0cmluZ30nIHNpZ25hdHVyZSdzIHRlcm1zLi4uYCk7XG5cbiAgICBjb25zdCB0ZXJtcyA9IFtdO1xuXG4gICAgdGVybXNWYWxpZGF0ZSA9IGFzeW5jaHJvbm91c0V2ZXJ5KHRoaXMudGVybXMsICh0ZXJtKSA9PiB7XG4gICAgICB0ZXJtID0gdGVybS52YWxpZGF0ZShjb250ZXh0LCAodGVybSwgY29udGV4dCkgPT4geyAvLy9cbiAgICAgICAgY29uc3QgdmFsaWRhdGVzRm9yd2FyZHMgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB2YWxpZGF0ZXNGb3J3YXJkcztcbiAgICAgIH0pO1xuXG4gICAgICBpZiAodGVybSAhPT0gbnVsbCkge1xuICAgICAgICB0ZXJtcy5wdXNoKHRlcm0pO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRlcm1zVmFsaWRhdGUpIHtcbiAgICAgIHRoaXMudGVybXMgPSB0ZXJtcztcbiAgICB9XG5cbiAgICBpZiAodGVybXNWYWxpZGF0ZSl7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3NpZ25hdHVyZVN0cmluZ30nIHNpZ25hdHVyZSdzIHRlcm1zLmApO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtc1ZhbGlkYXRlXG4gIH1cblxuICB1bmlmeVNpZ25hdHVyZShzaWduYXR1cmUsIGNvbnRleHQpIHtcbiAgICBsZXQgc2lnbmF0dXJlVW5pZmllcztcblxuICAgIGNvbnN0IGdlbmVyYWxTaWduYXR1cmUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgc3BlY2lmaWNTaWduYXR1cmUgPSBzaWduYXR1cmUsICAvLy9cbiAgICAgICAgICBnZW5lcmFsU2lnbmF0dXJlU3RyaW5nID0gZ2VuZXJhbFNpZ25hdHVyZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzcGVjaWZpY1NpZ25hdHVyZVN0cmluZyA9IHNwZWNpZmljU2lnbmF0dXJlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3NwZWNpZmljU2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlIHdpdGggdGhlICcke2dlbmVyYWxTaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUuLi5gKTtcblxuICAgIGNvbnN0IGdlbmVyYWxTaWduYXR1cmVUZXJtcyA9IGdlbmVyYWxTaWduYXR1cmUuZ2V0VGVybXMoKSxcbiAgICAgICAgICBzcGVjaWZpY1NpZ25hdHVyZVRlcm1zID0gc3BlY2lmaWNTaWduYXR1cmUuZ2V0VGVybXMoKSxcbiAgICAgICAgICBnZW5lcmFsU2lnbmF0dXJlQ29udGV4dCA9IGdlbmVyYWxTaWduYXR1cmUuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHNwZWNpZmljU2lnbmF0dXJlQ29udGV4dCA9IHNwZWNpZmljU2lnbmF0dXJlLmdldENvbnRleHQoKSxcbiAgICAgICAgICBnZW5lcmFsVGVybXMgPSBnZW5lcmFsU2lnbmF0dXJlVGVybXMsICAvLy9cbiAgICAgICAgICBzcGVjaWZpY1Rlcm1zID0gc3BlY2lmaWNTaWduYXR1cmVUZXJtcywgLy8vXG4gICAgICAgICAgZ2VuZXJhbENvbnRleHQgPSBnZW5lcmFsU2lnbmF0dXJlQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0ID0gc3BlY2lmaWNTaWduYXR1cmVDb250ZXh0OyAgLy8vXG5cbiAgICBkZWJ1Z2dlclxuXG4gICAgc2lnbmF0dXJlVW5pZmllcyA9IHJlY29uY2lsZSgoc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICBtYXRjaChnZW5lcmFsVGVybXMsIHNwZWNpZmljVGVybXMsIChnZW5lcmFsVGVybSwgc3BlY2lmaWNUZXJtKSA9PiB7XG4gICAgICAgIGxldCB0ZXJtVW5pZmllcztcblxuICAgICAgICB0ZXJtVW5pZmllcyA9IGdlbmVyYWxUZXJtLnVuaWZ5VGVybShzcGVjaWZpY1Rlcm0sIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgIGlmICh0ZXJtVW5pZmllcykge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHNpZ25hdHVyZVVuaWZpZXMpIHtcbiAgICAgICAgc3BlY2lmaWNDb250ZXh0LmNvbW1pdChjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgaWYgKHNpZ25hdHVyZVVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3NwZWNpZmljU2lnbmF0dXJlU3RyaW5nfScgc2lnbmF0dXJlIHdpdGggdGhlICcke2dlbmVyYWxTaWduYXR1cmVTdHJpbmd9JyBzaWduYXR1cmUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpZ25hdHVyZVVuaWZpZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgcmV0dXJuIHNlcmlhbGlzZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIHN0cmluZyxcbiAgICAgICAgYnJlYWtQb2ludFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGpzb247XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiU2lnbmF0dXJlXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICByZXR1cm4gaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiB1bnNlcmlhbGlzZSgoanNvbiwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgICAgc2lnbmF0dXJlTm9kZSA9IGluc3RhbnRpYXRlU2lnbmF0dXJlKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICAgIG5vZGUgPSBzaWduYXR1cmVOb2RlLCAgLy8vXG4gICAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgICAgIHRlcm1zID0gdGVybXNGcm9tU2lnbmF0dXJlTm9kZShzaWduYXR1cmVOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgc2lnbmF0dXJlID0gbmV3IFNpZ25hdHVyZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm1zKTtcblxuICAgICAgICByZXR1cm4gc2lnbmF0dXJlO1xuICAgICAgfSwganNvbiwgY29udGV4dCk7XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBzdGF0aWMgZnJvbVNpZ25hdHVyZVN0cmluZyhzaWduYXR1cmVTdHJpbmcsIGNvbnRleHQpIHtcbiAgICByZXR1cm4gYWJsYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3Qgc3RyaW5nID0gc2lnbmF0dXJlU3RyaW5nLCAgLy8vXG4gICAgICAgICAgICAgIHNpZ25hdHVyZU5vZGUgPSBpbnN0YW50aWF0ZVNpZ25hdHVyZShzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBzaWduYXR1cmUgPSBzaWduYXR1cmVGcm9tU2lnbmF0dXJlTm9kZShzaWduYXR1cmVOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gc2lnbmF0dXJlO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfSwgY29udGV4dCk7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiB0ZXJtc0Zyb21TaWduYXR1cmVOb2RlKHNpZ25hdHVyZU5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgdGVybU5vZGVzID0gc2lnbmF0dXJlTm9kZS5nZXRUZXJtTm9kZXMoKSxcbiAgICAgICAgdGVybXMgPSB0ZXJtTm9kZXMubWFwKCh0ZXJtTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRlcm0gPSBjb250ZXh0LmZpbmRUZXJtQnlUZXJtTm9kZSh0ZXJtTm9kZSk7XG5cbiAgICAgICAgICByZXR1cm4gdGVybTtcbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIHRlcm1zO1xufVxuIl0sIm5hbWVzIjpbIm1hdGNoIiwiYXJyYXlVdGlsaXRpZXMiLCJhc3luY2hyb25vdXNFdmVyeSIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImJyZWFrUG9pbnRGcm9tSlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIlNpZ25hdHVyZSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0ZXJtcyIsImdldFRlcm1zIiwiZ2V0U2lnbmF0dXJlTm9kZSIsImdldE5vZGUiLCJzaWduYXR1cmVOb2RlIiwiZ2V0TGVuZ3RoIiwidGVybXNMZW5ndGgiLCJsZW5ndGgiLCJnZXRUZXJtIiwiaW5kZXgiLCJ0ZXJtIiwiaXNFcXVhbFRvIiwic2lnbmF0dXJlIiwic2lnbmF0dXJlTm9kZU1hdGNoZXMiLCJtYXRjaFNpZ25hdHVyZU5vZGUiLCJlcXVhbFRvIiwibm9kZU1hdGNoZXMiLCJtYXRjaE5vZGUiLCJmaW5kU2lnbmF0dXJlIiwiZmluZFNpZ25hdHVyZUJ5U2lnbmF0dXJlTm9kZSIsInZlcmlmeSIsInZlcmlmaWVzIiwic2lnbmF0dXJlU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJhdHRlbXB0IiwidGVybXNWYWxpZGF0ZSIsInZhbGlkYXRlVGVybXMiLCJjb21taXQiLCJkZWJ1ZyIsInZhbGlkYXRlIiwidmFsaWRhdGVzIiwidGVtcG9yYXJ5Q29udGV4dCIsImdldENvbnRleHQiLCJhZGRTaWduYXR1cmUiLCJ2YWxpZGF0ZXNGb3J3YXJkcyIsInB1c2giLCJ1bmlmeVNpZ25hdHVyZSIsInNpZ25hdHVyZVVuaWZpZXMiLCJnZW5lcmFsU2lnbmF0dXJlIiwic3BlY2lmaWNTaWduYXR1cmUiLCJnZW5lcmFsU2lnbmF0dXJlU3RyaW5nIiwic3BlY2lmaWNTaWduYXR1cmVTdHJpbmciLCJnZW5lcmFsU2lnbmF0dXJlVGVybXMiLCJzcGVjaWZpY1NpZ25hdHVyZVRlcm1zIiwiZ2VuZXJhbFNpZ25hdHVyZUNvbnRleHQiLCJzcGVjaWZpY1NpZ25hdHVyZUNvbnRleHQiLCJnZW5lcmFsVGVybXMiLCJzcGVjaWZpY1Rlcm1zIiwiZ2VuZXJhbENvbnRleHQiLCJzcGVjaWZpY0NvbnRleHQiLCJyZWNvbmNpbGUiLCJnZW5lcmFsVGVybSIsInNwZWNpZmljVGVybSIsInRlcm1VbmlmaWVzIiwidW5pZnlUZXJtIiwidG9KU09OIiwic2VyaWFsaXNlIiwiZ2V0QnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwianNvbiIsIm5hbWUiLCJmcm9tSlNPTiIsImluc3RhbnRpYXRlIiwidW5zZXJpYWxpc2UiLCJpbnN0YW50aWF0ZVNpZ25hdHVyZSIsInRlcm1zRnJvbVNpZ25hdHVyZU5vZGUiLCJmcm9tU2lnbmF0dXJlU3RyaW5nIiwiYWJsYXRlIiwic2lnbmF0dXJlRnJvbVNpZ25hdHVyZU5vZGUiLCJ0ZXJtTm9kZXMiLCJnZXRUZXJtTm9kZXMiLCJtYXAiLCJ0ZXJtTm9kZSIsImZpbmRUZXJtQnlUZXJtTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUFBOzs7MkJBWitCO2dDQUNxQzswQkFFN0M7NkJBQ2M7eUJBQ007eUJBQ3FDO0FBRWhGLE1BQU0sRUFBRUEsS0FB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
|
package/lib/process/validate.js
CHANGED
|
@@ -35,21 +35,23 @@ const { nodeQuery } = _occamquery.queryUtilities;
|
|
|
35
35
|
const termNodeQuery = nodeQuery("/term"), typeNodeQuery = nodeQuery("/type"), statementNodeQuery = nodeQuery("/statement");
|
|
36
36
|
class ValidateTermAsPropertyPass extends _continuation.default {
|
|
37
37
|
run(termNode, context, continuation) {
|
|
38
|
-
const nonTerminalNode = termNode, childNodes = nonTerminalNode.getChildNodes();
|
|
39
|
-
return
|
|
38
|
+
const nonTerminalNode = termNode, childNodes = nonTerminalNode.getChildNodes(), descended = this.descend(childNodes, context, continuation), success = descended; ///
|
|
39
|
+
return success;
|
|
40
40
|
}
|
|
41
41
|
static maps = [
|
|
42
42
|
{
|
|
43
43
|
nodeQuery: termNodeQuery,
|
|
44
44
|
run: (termNode, context, continuation)=>{
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
let
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
return continuation(success);
|
|
45
|
+
let success = false;
|
|
46
|
+
const term = (0, _element.termFromTermNode)(termNode, context), termValidates = term.validate(context, (term, context)=>{
|
|
47
|
+
let validates;
|
|
48
|
+
validates = continuation(context);
|
|
49
|
+
return validates;
|
|
52
50
|
});
|
|
51
|
+
if (termValidates) {
|
|
52
|
+
success = true;
|
|
53
|
+
}
|
|
54
|
+
return success;
|
|
53
55
|
}
|
|
54
56
|
},
|
|
55
57
|
{
|
|
@@ -58,30 +60,32 @@ class ValidateTermAsPropertyPass extends _continuation.default {
|
|
|
58
60
|
let success = false;
|
|
59
61
|
const nominalTypeName = typeNode.getNominalTypeName(), typePresent = context.isTypePresentByNominalTypeName(nominalTypeName);
|
|
60
62
|
if (typePresent) {
|
|
61
|
-
success =
|
|
63
|
+
success = continuation(ontext);
|
|
62
64
|
}
|
|
63
|
-
return
|
|
65
|
+
return success;
|
|
64
66
|
}
|
|
65
67
|
}
|
|
66
68
|
];
|
|
67
69
|
}
|
|
68
70
|
class ValidateTermAsGeneratorPass extends _continuation.default {
|
|
69
71
|
run(termNode, context, continuation) {
|
|
70
|
-
const nonTerminalNode = termNode, childNodes = nonTerminalNode.getChildNodes();
|
|
71
|
-
return
|
|
72
|
+
const nonTerminalNode = termNode, childNodes = nonTerminalNode.getChildNodes(), descended = this.descend(childNodes, context, continuation), success = descended; ///
|
|
73
|
+
return success;
|
|
72
74
|
}
|
|
73
75
|
static maps = [
|
|
74
76
|
{
|
|
75
77
|
nodeQuery: termNodeQuery,
|
|
76
78
|
run: (termNode, context, continuation)=>{
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
let
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
return continuation(success);
|
|
79
|
+
let success = false;
|
|
80
|
+
const term = (0, _element.termFromTermNode)(termNode, context), termValidates = term.validate(context, (term, context)=>{
|
|
81
|
+
let validates;
|
|
82
|
+
validates = continuation(context);
|
|
83
|
+
return validates;
|
|
84
84
|
});
|
|
85
|
+
if (termValidates) {
|
|
86
|
+
success = true;
|
|
87
|
+
}
|
|
88
|
+
return success;
|
|
85
89
|
}
|
|
86
90
|
},
|
|
87
91
|
{
|
|
@@ -90,30 +94,32 @@ class ValidateTermAsGeneratorPass extends _continuation.default {
|
|
|
90
94
|
let success = false;
|
|
91
95
|
const nominalTypeName = typeNode.getNominalTypeName(), typePresent = context.isTypePresentByNominalTypeName(nominalTypeName);
|
|
92
96
|
if (typePresent) {
|
|
93
|
-
success =
|
|
97
|
+
success = continuation(context);
|
|
94
98
|
}
|
|
95
|
-
return
|
|
99
|
+
return success;
|
|
96
100
|
}
|
|
97
101
|
}
|
|
98
102
|
];
|
|
99
103
|
}
|
|
100
104
|
class ValidateTermAsConstructorPass extends _continuation.default {
|
|
101
105
|
run(termNode, context, continuation) {
|
|
102
|
-
const nonTerminalNode = termNode, childNodes = nonTerminalNode.getChildNodes();
|
|
103
|
-
return
|
|
106
|
+
const nonTerminalNode = termNode, childNodes = nonTerminalNode.getChildNodes(), descended = this.descend(childNodes, context, continuation), success = descended; ///
|
|
107
|
+
return success;
|
|
104
108
|
}
|
|
105
109
|
static maps = [
|
|
106
110
|
{
|
|
107
111
|
nodeQuery: termNodeQuery,
|
|
108
112
|
run: (termNode, context, continuation)=>{
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
let
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
115
|
-
return continuation(success);
|
|
113
|
+
let success = false;
|
|
114
|
+
const term = (0, _element.termFromTermNode)(termNode, context), termValidates = term.validate(context, (term, context)=>{
|
|
115
|
+
let validates;
|
|
116
|
+
validates = continuation(context);
|
|
117
|
+
return validates;
|
|
116
118
|
});
|
|
119
|
+
if (termValidates) {
|
|
120
|
+
success = true;
|
|
121
|
+
}
|
|
122
|
+
return success;
|
|
117
123
|
}
|
|
118
124
|
},
|
|
119
125
|
{
|
|
@@ -122,45 +128,50 @@ class ValidateTermAsConstructorPass extends _continuation.default {
|
|
|
122
128
|
let success = false;
|
|
123
129
|
const nominalTypeName = typeNode.getNominalTypeName(), typePresent = context.isTypePresentByNominalTypeName(nominalTypeName);
|
|
124
130
|
if (typePresent) {
|
|
125
|
-
success =
|
|
131
|
+
success = continuation(context);
|
|
126
132
|
}
|
|
127
|
-
return
|
|
133
|
+
return success;
|
|
128
134
|
}
|
|
129
135
|
}
|
|
130
136
|
];
|
|
131
137
|
}
|
|
132
138
|
class ValidateStatementAsCombinatorPass extends _continuation.default {
|
|
133
139
|
run(statementNode, context, continuation) {
|
|
134
|
-
const nonTerminalNode = statementNode, childNodes = nonTerminalNode.getChildNodes();
|
|
135
|
-
return
|
|
140
|
+
const nonTerminalNode = statementNode, childNodes = nonTerminalNode.getChildNodes(), descended = this.descend(childNodes, context, continuation), success = descended; ///
|
|
141
|
+
return success;
|
|
136
142
|
}
|
|
137
143
|
static maps = [
|
|
138
144
|
{
|
|
139
145
|
nodeQuery: statementNodeQuery,
|
|
140
146
|
run: (statementNode, context, continuation)=>{
|
|
147
|
+
let success;
|
|
141
148
|
const statement = (0, _element.statementFromStatementNode)(statementNode, context);
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
let
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
}
|
|
148
|
-
return continuation(success);
|
|
149
|
+
(0, _context.descend)((context)=>{
|
|
150
|
+
const statementValidates = statement.validate(context, (statement)=>{
|
|
151
|
+
let validates;
|
|
152
|
+
validates = continuation(success);
|
|
153
|
+
return validates;
|
|
149
154
|
});
|
|
155
|
+
if (statementValidates) {
|
|
156
|
+
success = true;
|
|
157
|
+
}
|
|
150
158
|
}, context);
|
|
159
|
+
return true;
|
|
151
160
|
}
|
|
152
161
|
},
|
|
153
162
|
{
|
|
154
163
|
nodeQuery: termNodeQuery,
|
|
155
164
|
run: (termNode, context, continuation)=>{
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
let
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
return continuation(success);
|
|
165
|
+
let success = false;
|
|
166
|
+
const term = (0, _element.termFromTermNode)(termNode, context), termValidates = term.validate(context, (term, context)=>{
|
|
167
|
+
let validates;
|
|
168
|
+
validates = continuation(context);
|
|
169
|
+
return validates;
|
|
163
170
|
});
|
|
171
|
+
if (termValidates) {
|
|
172
|
+
success = true;
|
|
173
|
+
}
|
|
174
|
+
return success;
|
|
164
175
|
}
|
|
165
176
|
},
|
|
166
177
|
{
|
|
@@ -169,29 +180,29 @@ class ValidateStatementAsCombinatorPass extends _continuation.default {
|
|
|
169
180
|
let success = false;
|
|
170
181
|
const nominalTypeName = typeNode.getNominalTypeName(), typePresent = context.isTypePresentByNominalTypeName(nominalTypeName);
|
|
171
182
|
if (typePresent) {
|
|
172
|
-
success =
|
|
183
|
+
success = continuation(context);
|
|
173
184
|
}
|
|
174
|
-
return
|
|
185
|
+
return success;
|
|
175
186
|
}
|
|
176
187
|
}
|
|
177
188
|
];
|
|
178
189
|
}
|
|
179
190
|
const validateTermAsPropertyPass = new ValidateTermAsPropertyPass(), validateTermAsGeneratorPass = new ValidateTermAsGeneratorPass(), validateTermAsConstructorPass = new ValidateTermAsConstructorPass(), validateStatementAsCombinatorPass = new ValidateStatementAsCombinatorPass();
|
|
180
191
|
function validateTermAsProperty(term, context, continuation) {
|
|
181
|
-
const termNode = term.getNode();
|
|
182
|
-
return
|
|
192
|
+
const termNode = term.getNode(), success = validateTermAsPropertyPass.run(termNode, context, continuation), termValidatesAsProperty = success; ///
|
|
193
|
+
return termValidatesAsProperty;
|
|
183
194
|
}
|
|
184
195
|
function validateTermAsGenerator(term, context, continuation) {
|
|
185
|
-
const termNode = term.getNode();
|
|
186
|
-
return
|
|
196
|
+
const termNode = term.getNode(), success = validateTermAsGeneratorPass.run(termNode, context, continuation), termValidatesAsGenerator = success; ///
|
|
197
|
+
return termValidatesAsGenerator;
|
|
187
198
|
}
|
|
188
199
|
function validateTermAsConstructor(term, context, continuation) {
|
|
189
|
-
const termNode = term.getNode();
|
|
190
|
-
return
|
|
200
|
+
const termNode = term.getNode(), success = validateTermAsConstructorPass.run(termNode, context, continuation), termValidatesAsConstructor = success; ///
|
|
201
|
+
return termValidatesAsConstructor;
|
|
191
202
|
}
|
|
192
203
|
function validateStatementAsCombinator(statement, context, continuation) {
|
|
193
|
-
const statementNode = statement.getNode();
|
|
194
|
-
return
|
|
204
|
+
const statementNode = statement.getNode(), success = validateStatementAsCombinatorPass.run(statementNode, context, continuation), statementValidatesAsCombinator = success; ///
|
|
205
|
+
return statementValidatesAsCombinator;
|
|
195
206
|
}
|
|
196
207
|
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3ZhbGlkYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBxdWVyeVV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1xdWVyeVwiO1xuXG5pbXBvcnQgQ29udGludWF0aW9uUGFzcyBmcm9tIFwiLi4vcGFzcy9jb250aW51YXRpb25cIjtcblxuaW1wb3J0IHsgZGVzY2VuZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgdGVybUZyb21UZXJtTm9kZSwgc3RhdGVtZW50RnJvbVN0YXRlbWVudE5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuY29uc3QgeyBub2RlUXVlcnkgfSA9IHF1ZXJ5VXRpbGl0aWVzO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm1cIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVcIiksXG4gICAgICBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50XCIpO1xuXG5jbGFzcyBWYWxpZGF0ZVRlcm1Bc1Byb3BlcnR5UGFzcyBleHRlbmRzIENvbnRpbnVhdGlvblBhc3Mge1xuICBydW4odGVybU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IHRlcm1Ob2RlLCAgLy8vXG4gICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCk7XG5cbiAgICByZXR1cm4gdGhpcy5kZXNjZW5kKGNoaWxkTm9kZXMsIGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gIH1cblxuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHRlcm1Ob2RlUXVlcnksXG4gICAgICBydW46ICh0ZXJtTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlcm0gPSB0ZXJtRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gdGVybS52YWxpZGF0ZShjb250ZXh0LCAodGVybSwgY29udGV4dCkgPT4ge1xuICAgICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgICBpZiAodGVybSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHR5cGVOb2RlUXVlcnksXG4gICAgICBydW46ICh0eXBlTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3Qgbm9taW5hbFR5cGVOYW1lID0gdHlwZU5vZGUuZ2V0Tm9taW5hbFR5cGVOYW1lKCksXG4gICAgICAgICAgICAgIHR5cGVQcmVzZW50ID0gY29udGV4dC5pc1R5cGVQcmVzZW50QnlOb21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKTtcblxuICAgICAgICBpZiAodHlwZVByZXNlbnQpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jbGFzcyBWYWxpZGF0ZVRlcm1Bc0dlbmVyYXRvclBhc3MgZXh0ZW5kcyBDb250aW51YXRpb25QYXNzIHtcbiAgcnVuKHRlcm1Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSB0ZXJtTm9kZSwgIC8vL1xuICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpO1xuXG4gICAgcmV0dXJuIHRoaXMuZGVzY2VuZChjaGlsZE5vZGVzLCBjb250ZXh0LCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAodGVybU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCB0ZXJtID0gdGVybUZyb21UZXJtTm9kZSh0ZXJtTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHRlcm0udmFsaWRhdGUoY29udGV4dCwgKHRlcm0sIGNvbnRleHQpID0+IHtcbiAgICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgICAgaWYgKHRlcm0gIT09IG51bGwpIHtcbiAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0eXBlTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAodHlwZU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IG5vbWluYWxUeXBlTmFtZSA9IHR5cGVOb2RlLmdldE5vbWluYWxUeXBlTmFtZSgpLFxuICAgICAgICAgICAgICB0eXBlUHJlc2VudCA9IGNvbnRleHQuaXNUeXBlUHJlc2VudEJ5Tm9taW5hbFR5cGVOYW1lKG5vbWluYWxUeXBlTmFtZSk7XG5cbiAgICAgICAgaWYgKHR5cGVQcmVzZW50KSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY2xhc3MgVmFsaWRhdGVUZXJtQXNDb25zdHJ1Y3RvclBhc3MgZXh0ZW5kcyBDb250aW51YXRpb25QYXNzIHtcbiAgcnVuKHRlcm1Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSB0ZXJtTm9kZSwgIC8vL1xuICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpO1xuXG4gICAgcmV0dXJuIHRoaXMuZGVzY2VuZChjaGlsZE5vZGVzLCBjb250ZXh0LCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAodGVybU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCB0ZXJtID0gdGVybUZyb21UZXJtTm9kZSh0ZXJtTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHRlcm0udmFsaWRhdGUoY29udGV4dCwgKHRlcm0sIGNvbnRleHQpID0+IHtcbiAgICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgICAgaWYgKHRlcm0gIT09IG51bGwpIHtcbiAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0eXBlTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAodHlwZU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IG5vbWluYWxUeXBlTmFtZSA9IHR5cGVOb2RlLmdldE5vbWluYWxUeXBlTmFtZSgpLFxuICAgICAgICAgICAgICB0eXBlUHJlc2VudCA9IGNvbnRleHQuaXNUeXBlUHJlc2VudEJ5Tm9taW5hbFR5cGVOYW1lKG5vbWluYWxUeXBlTmFtZSk7XG5cbiAgICAgICAgaWYgKHR5cGVQcmVzZW50KSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY2xhc3MgVmFsaWRhdGVTdGF0ZW1lbnRBc0NvbWJpbmF0b3JQYXNzIGV4dGVuZHMgQ29udGludWF0aW9uUGFzcyB7XG4gIHJ1bihzdGF0ZW1lbnROb2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKTtcblxuICAgIHJldHVybiB0aGlzLmRlc2NlbmQoY2hpbGROb2RlcywgY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgfVxuXG4gIHN0YXRpYyBtYXBzID0gW1xuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogc3RhdGVtZW50Tm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoc3RhdGVtZW50Tm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRlbWVudCA9IHN0YXRlbWVudEZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiBkZXNjZW5kKChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlbWVudC52YWxpZGF0ZShjb250ZXh0LCAoc3RhdGVtZW50KSA9PiB7XG4gICAgICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAoc3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LCBjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogdGVybU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKHRlcm1Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgdGVybSA9IHRlcm1Gcm9tVGVybU5vZGUodGVybU5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiB0ZXJtLnZhbGlkYXRlKGNvbnRleHQsICh0ZXJtLCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICAgIGlmICh0ZXJtICE9PSBudWxsKSB7XG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogdHlwZU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKHR5cGVOb2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBub21pbmFsVHlwZU5hbWUgPSB0eXBlTm9kZS5nZXROb21pbmFsVHlwZU5hbWUoKSxcbiAgICAgICAgICAgICAgdHlwZVByZXNlbnQgPSBjb250ZXh0LmlzVHlwZVByZXNlbnRCeU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpO1xuXG4gICAgICAgIGlmICh0eXBlUHJlc2VudCkge1xuICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNvbnN0IHZhbGlkYXRlVGVybUFzUHJvcGVydHlQYXNzID0gbmV3IFZhbGlkYXRlVGVybUFzUHJvcGVydHlQYXNzKCksXG4gICAgICB2YWxpZGF0ZVRlcm1Bc0dlbmVyYXRvclBhc3MgPSBuZXcgVmFsaWRhdGVUZXJtQXNHZW5lcmF0b3JQYXNzKCksXG4gICAgICB2YWxpZGF0ZVRlcm1Bc0NvbnN0cnVjdG9yUGFzcyA9IG5ldyBWYWxpZGF0ZVRlcm1Bc0NvbnN0cnVjdG9yUGFzcygpLFxuICAgICAgdmFsaWRhdGVTdGF0ZW1lbnRBc0NvbWJpbmF0b3JQYXNzID0gbmV3IFZhbGlkYXRlU3RhdGVtZW50QXNDb21iaW5hdG9yUGFzcygpO1xuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVUZXJtQXNQcm9wZXJ0eSh0ZXJtLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgY29uc3QgdGVybU5vZGUgPSB0ZXJtLmdldE5vZGUoKTtcblxuICByZXR1cm4gdmFsaWRhdGVUZXJtQXNQcm9wZXJ0eVBhc3MucnVuKHRlcm1Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVUZXJtQXNHZW5lcmF0b3IodGVybSwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGNvbnN0IHRlcm1Ob2RlID0gdGVybS5nZXROb2RlKCk7XG5cbiAgcmV0dXJuIHZhbGlkYXRlVGVybUFzR2VuZXJhdG9yUGFzcy5ydW4odGVybU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVRlcm1Bc0NvbnN0cnVjdG9yKHRlcm0sIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICBjb25zdCB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpO1xuXG4gIHJldHVybiB2YWxpZGF0ZVRlcm1Bc0NvbnN0cnVjdG9yUGFzcy5ydW4odGVybU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVN0YXRlbWVudEFzQ29tYmluYXRvcihzdGF0ZW1lbnQsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKTtcblxuICByZXR1cm4gdmFsaWRhdGVTdGF0ZW1lbnRBc0NvbWJpbmF0b3JQYXNzLnJ1bihzdGF0ZW1lbnROb2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pO1xufVxuIl0sIm5hbWVzIjpbInZhbGlkYXRlU3RhdGVtZW50QXNDb21iaW5hdG9yIiwidmFsaWRhdGVUZXJtQXNDb25zdHJ1Y3RvciIsInZhbGlkYXRlVGVybUFzR2VuZXJhdG9yIiwidmFsaWRhdGVUZXJtQXNQcm9wZXJ0eSIsIm5vZGVRdWVyeSIsInF1ZXJ5VXRpbGl0aWVzIiwidGVybU5vZGVRdWVyeSIsInR5cGVOb2RlUXVlcnkiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJWYWxpZGF0ZVRlcm1Bc1Byb3BlcnR5UGFzcyIsIkNvbnRpbnVhdGlvblBhc3MiLCJydW4iLCJ0ZXJtTm9kZSIsImNvbnRleHQiLCJjb250aW51YXRpb24iLCJub25UZXJtaW5hbE5vZGUiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsImRlc2NlbmQiLCJtYXBzIiwidGVybSIsInRlcm1Gcm9tVGVybU5vZGUiLCJ2YWxpZGF0ZSIsInN1Y2Nlc3MiLCJ0eXBlTm9kZSIsIm5vbWluYWxUeXBlTmFtZSIsImdldE5vbWluYWxUeXBlTmFtZSIsInR5cGVQcmVzZW50IiwiaXNUeXBlUHJlc2VudEJ5Tm9taW5hbFR5cGVOYW1lIiwiVmFsaWRhdGVUZXJtQXNHZW5lcmF0b3JQYXNzIiwiVmFsaWRhdGVUZXJtQXNDb25zdHJ1Y3RvclBhc3MiLCJWYWxpZGF0ZVN0YXRlbWVudEFzQ29tYmluYXRvclBhc3MiLCJzdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50Iiwic3RhdGVtZW50RnJvbVN0YXRlbWVudE5vZGUiLCJ2YWxpZGF0ZVRlcm1Bc1Byb3BlcnR5UGFzcyIsInZhbGlkYXRlVGVybUFzR2VuZXJhdG9yUGFzcyIsInZhbGlkYXRlVGVybUFzQ29uc3RydWN0b3JQYXNzIiwidmFsaWRhdGVTdGF0ZW1lbnRBc0NvbWJpbmF0b3JQYXNzIiwiZ2V0Tm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBb09nQkE7ZUFBQUE7O1FBTkFDO2VBQUFBOztRQU5BQztlQUFBQTs7UUFOQUM7ZUFBQUE7Ozs0QkFoTmU7cUVBRUY7eUJBRUw7eUJBQ3FDOzs7Ozs7QUFFN0QsTUFBTSxFQUFFQyxTQUFTLEVBQUUsR0FBR0MsMEJBQWM7QUFFcEMsTUFBTUMsZ0JBQWdCRixVQUFVLFVBQzFCRyxnQkFBZ0JILFVBQVUsVUFDMUJJLHFCQUFxQkosVUFBVTtBQUVyQyxNQUFNSyxtQ0FBbUNDLHFCQUFnQjtJQUN2REMsSUFBSUMsUUFBUSxFQUFFQyxPQUFPLEVBQUVDLFlBQVksRUFBRTtRQUNuQyxNQUFNQyxrQkFBa0JILFVBQ2xCSSxhQUFhRCxnQkFBZ0JFLGFBQWE7UUFFaEQsT0FBTyxJQUFJLENBQUNDLE9BQU8sQ0FBQ0YsWUFBWUgsU0FBU0M7SUFDM0M7SUFFQSxPQUFPSyxPQUFPO1FBQ1o7WUFDRWYsV0FBV0U7WUFDWEssS0FBSyxDQUFDQyxVQUFVQyxTQUFTQztnQkFDdkIsTUFBTU0sT0FBT0MsSUFBQUEseUJBQWdCLEVBQUNULFVBQVVDO2dCQUV4QyxPQUFPTyxLQUFLRSxRQUFRLENBQUNULFNBQVMsQ0FBQ08sTUFBTVA7b0JBQ25DLElBQUlVLFVBQVU7b0JBRWQsSUFBSUgsU0FBUyxNQUFNO3dCQUNqQkcsVUFBVTtvQkFDWjtvQkFFQSxPQUFPVCxhQUFhUztnQkFDdEI7WUFDRjtRQUNGO1FBQ0E7WUFDRW5CLFdBQVdHO1lBQ1hJLEtBQUssQ0FBQ2EsVUFBVVgsU0FBU0M7Z0JBQ3ZCLElBQUlTLFVBQVU7Z0JBRWQsTUFBTUUsa0JBQWtCRCxTQUFTRSxrQkFBa0IsSUFDN0NDLGNBQWNkLFFBQVFlLDhCQUE4QixDQUFDSDtnQkFFM0Qs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
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3ZhbGlkYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBxdWVyeVV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1xdWVyeVwiO1xuXG5pbXBvcnQgQ29udGludWF0aW9uUGFzcyBmcm9tIFwiLi4vcGFzcy9jb250aW51YXRpb25cIjtcblxuaW1wb3J0IHsgZGVzY2VuZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgdGVybUZyb21UZXJtTm9kZSwgc3RhdGVtZW50RnJvbVN0YXRlbWVudE5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuY29uc3QgeyBub2RlUXVlcnkgfSA9IHF1ZXJ5VXRpbGl0aWVzO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm1cIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVcIiksXG4gICAgICBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50XCIpO1xuXG5jbGFzcyBWYWxpZGF0ZVRlcm1Bc1Byb3BlcnR5UGFzcyBleHRlbmRzIENvbnRpbnVhdGlvblBhc3Mge1xuICBydW4odGVybU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IHRlcm1Ob2RlLCAgLy8vXG4gICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgZGVzY2VuZGVkID0gdGhpcy5kZXNjZW5kKGNoaWxkTm9kZXMsIGNvbnRleHQsIGNvbnRpbnVhdGlvbiksXG4gICAgICAgICAgc3VjY2VzcyA9IGRlc2NlbmRlZDsgIC8vL1xuXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH1cblxuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHRlcm1Ob2RlUXVlcnksXG4gICAgICBydW46ICh0ZXJtTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdGVybSA9IHRlcm1Gcm9tVGVybU5vZGUodGVybU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICB0ZXJtVmFsaWRhdGVzID0gdGVybS52YWxpZGF0ZShjb250ZXh0LCAodGVybSwgY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCB2YWxpZGF0ZXM7XG5cbiAgICAgICAgICAgICAgICB2YWxpZGF0ZXMgPSBjb250aW51YXRpb24oY29udGV4dCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsaWRhdGVzO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGVybVZhbGlkYXRlcykge1xuICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHR5cGVOb2RlUXVlcnksXG4gICAgICBydW46ICh0eXBlTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3Qgbm9taW5hbFR5cGVOYW1lID0gdHlwZU5vZGUuZ2V0Tm9taW5hbFR5cGVOYW1lKCksXG4gICAgICAgICAgICAgIHR5cGVQcmVzZW50ID0gY29udGV4dC5pc1R5cGVQcmVzZW50QnlOb21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKTtcblxuICAgICAgICBpZiAodHlwZVByZXNlbnQpIHtcbiAgICAgICAgICBzdWNjZXNzID0gY29udGludWF0aW9uKCBvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jbGFzcyBWYWxpZGF0ZVRlcm1Bc0dlbmVyYXRvclBhc3MgZXh0ZW5kcyBDb250aW51YXRpb25QYXNzIHtcbiAgcnVuKHRlcm1Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSB0ZXJtTm9kZSwgIC8vL1xuICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIGRlc2NlbmRlZCA9IHRoaXMuZGVzY2VuZChjaGlsZE5vZGVzLCBjb250ZXh0LCBjb250aW51YXRpb24pLFxuICAgICAgICAgIHN1Y2Nlc3MgPSBkZXNjZW5kZWQ7ICAvLy9cblxuICAgIHJldHVybiBzdWNjZXNzO1xuICB9XG5cbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAodGVybU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHRlcm0gPSB0ZXJtRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgdGVybVZhbGlkYXRlcyA9IHRlcm0udmFsaWRhdGUoY29udGV4dCwgKHRlcm0sIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsaWRhdGVzO1xuXG4gICAgICAgICAgICAgICAgdmFsaWRhdGVzID0gY29udGludWF0aW9uKGNvbnRleHQpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRlcztcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRlcm1WYWxpZGF0ZXMpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0eXBlTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAodHlwZU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IG5vbWluYWxUeXBlTmFtZSA9IHR5cGVOb2RlLmdldE5vbWluYWxUeXBlTmFtZSgpLFxuICAgICAgICAgICAgICB0eXBlUHJlc2VudCA9IGNvbnRleHQuaXNUeXBlUHJlc2VudEJ5Tm9taW5hbFR5cGVOYW1lKG5vbWluYWxUeXBlTmFtZSk7XG5cbiAgICAgICAgaWYgKHR5cGVQcmVzZW50KSB7XG4gICAgICAgICAgc3VjY2VzcyA9IGNvbnRpbnVhdGlvbihjb250ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY2xhc3MgVmFsaWRhdGVUZXJtQXNDb25zdHJ1Y3RvclBhc3MgZXh0ZW5kcyBDb250aW51YXRpb25QYXNzIHtcbiAgcnVuKHRlcm1Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSB0ZXJtTm9kZSwgIC8vL1xuICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIGRlc2NlbmRlZCA9IHRoaXMuZGVzY2VuZChjaGlsZE5vZGVzLCBjb250ZXh0LCBjb250aW51YXRpb24pLFxuICAgICAgICAgIHN1Y2Nlc3MgPSBkZXNjZW5kZWQ7ICAvLy9cblxuICAgIHJldHVybiBzdWNjZXNzO1xuICB9XG5cbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAodGVybU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHRlcm0gPSB0ZXJtRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgdGVybVZhbGlkYXRlcyA9IHRlcm0udmFsaWRhdGUoY29udGV4dCwgKHRlcm0sIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsaWRhdGVzO1xuXG4gICAgICAgICAgICAgICAgdmFsaWRhdGVzID0gY29udGludWF0aW9uKGNvbnRleHQpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRlcztcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRlcm1WYWxpZGF0ZXMpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0eXBlTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAodHlwZU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IG5vbWluYWxUeXBlTmFtZSA9IHR5cGVOb2RlLmdldE5vbWluYWxUeXBlTmFtZSgpLFxuICAgICAgICAgICAgICB0eXBlUHJlc2VudCA9IGNvbnRleHQuaXNUeXBlUHJlc2VudEJ5Tm9taW5hbFR5cGVOYW1lKG5vbWluYWxUeXBlTmFtZSk7XG5cbiAgICAgICAgaWYgKHR5cGVQcmVzZW50KSB7XG4gICAgICAgICAgc3VjY2VzcyA9IGNvbnRpbnVhdGlvbihjb250ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY2xhc3MgVmFsaWRhdGVTdGF0ZW1lbnRBc0NvbWJpbmF0b3JQYXNzIGV4dGVuZHMgQ29udGludWF0aW9uUGFzcyB7XG4gIHJ1bihzdGF0ZW1lbnROb2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgZGVzY2VuZGVkID0gdGhpcy5kZXNjZW5kKGNoaWxkTm9kZXMsIGNvbnRleHQsIGNvbnRpbnVhdGlvbiksXG4gICAgICAgICAgc3VjY2VzcyA9IGRlc2NlbmRlZDsgIC8vL1xuXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH1cblxuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHN0YXRlbWVudE5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKHN0YXRlbWVudE5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcztcblxuICAgICAgICBjb25zdCBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBkZXNjZW5kKChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3RhdGVtZW50VmFsaWRhdGVzID0gc3RhdGVtZW50LnZhbGlkYXRlKGNvbnRleHQsIChzdGF0ZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGxldCB2YWxpZGF0ZXM7XG5cbiAgICAgICAgICAgIHZhbGlkYXRlcyA9IGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcblxuICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRlcztcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXMpIHtcbiAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHRlcm1Ob2RlUXVlcnksXG4gICAgICBydW46ICh0ZXJtTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdGVybSA9IHRlcm1Gcm9tVGVybU5vZGUodGVybU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICB0ZXJtVmFsaWRhdGVzID0gdGVybS52YWxpZGF0ZShjb250ZXh0LCAodGVybSwgY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCB2YWxpZGF0ZXM7XG5cbiAgICAgICAgICAgICAgICB2YWxpZGF0ZXMgPSBjb250aW51YXRpb24oY29udGV4dCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsaWRhdGVzO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGVybVZhbGlkYXRlcykge1xuICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHR5cGVOb2RlUXVlcnksXG4gICAgICBydW46ICh0eXBlTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3Qgbm9taW5hbFR5cGVOYW1lID0gdHlwZU5vZGUuZ2V0Tm9taW5hbFR5cGVOYW1lKCksXG4gICAgICAgICAgICAgIHR5cGVQcmVzZW50ID0gY29udGV4dC5pc1R5cGVQcmVzZW50QnlOb21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKTtcblxuICAgICAgICBpZiAodHlwZVByZXNlbnQpIHtcbiAgICAgICAgICBzdWNjZXNzID0gY29udGludWF0aW9uKGNvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jb25zdCB2YWxpZGF0ZVRlcm1Bc1Byb3BlcnR5UGFzcyA9IG5ldyBWYWxpZGF0ZVRlcm1Bc1Byb3BlcnR5UGFzcygpLFxuICAgICAgdmFsaWRhdGVUZXJtQXNHZW5lcmF0b3JQYXNzID0gbmV3IFZhbGlkYXRlVGVybUFzR2VuZXJhdG9yUGFzcygpLFxuICAgICAgdmFsaWRhdGVUZXJtQXNDb25zdHJ1Y3RvclBhc3MgPSBuZXcgVmFsaWRhdGVUZXJtQXNDb25zdHJ1Y3RvclBhc3MoKSxcbiAgICAgIHZhbGlkYXRlU3RhdGVtZW50QXNDb21iaW5hdG9yUGFzcyA9IG5ldyBWYWxpZGF0ZVN0YXRlbWVudEFzQ29tYmluYXRvclBhc3MoKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVGVybUFzUHJvcGVydHkodGVybSwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGNvbnN0IHRlcm1Ob2RlID0gdGVybS5nZXROb2RlKCksXG4gICAgICAgIHN1Y2Nlc3MgPSB2YWxpZGF0ZVRlcm1Bc1Byb3BlcnR5UGFzcy5ydW4odGVybU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbiksXG4gICAgICAgIHRlcm1WYWxpZGF0ZXNBc1Byb3BlcnR5ID0gc3VjY2VzczsgIC8vL1xuXG4gIHJldHVybiB0ZXJtVmFsaWRhdGVzQXNQcm9wZXJ0eTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVGVybUFzR2VuZXJhdG9yKHRlcm0sIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICBjb25zdCB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICBzdWNjZXNzID0gdmFsaWRhdGVUZXJtQXNHZW5lcmF0b3JQYXNzLnJ1bih0ZXJtTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSxcbiAgICAgICAgdGVybVZhbGlkYXRlc0FzR2VuZXJhdG9yID0gc3VjY2VzczsgLy8vXG5cbiAgcmV0dXJuIHRlcm1WYWxpZGF0ZXNBc0dlbmVyYXRvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVGVybUFzQ29uc3RydWN0b3IodGVybSwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGNvbnN0IHRlcm1Ob2RlID0gdGVybS5nZXROb2RlKCksXG4gICAgICAgIHN1Y2Nlc3MgPSB2YWxpZGF0ZVRlcm1Bc0NvbnN0cnVjdG9yUGFzcy5ydW4odGVybU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbiksXG4gICAgICAgIHRlcm1WYWxpZGF0ZXNBc0NvbnN0cnVjdG9yID0gc3VjY2VzczsgLy8vXG5cbiAgcmV0dXJuIHRlcm1WYWxpZGF0ZXNBc0NvbnN0cnVjdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc0NvbWJpbmF0b3Ioc3RhdGVtZW50LCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHN1Y2Nlc3MgPSB2YWxpZGF0ZVN0YXRlbWVudEFzQ29tYmluYXRvclBhc3MucnVuKHN0YXRlbWVudE5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbiksXG4gICAgICAgIHN0YXRlbWVudFZhbGlkYXRlc0FzQ29tYmluYXRvciA9IHN1Y2Nlc3M7IC8vL1xuXG4gIHJldHVybiBzdGF0ZW1lbnRWYWxpZGF0ZXNBc0NvbWJpbmF0b3I7XG59XG4iXSwibmFtZXMiOlsidmFsaWRhdGVTdGF0ZW1lbnRBc0NvbWJpbmF0b3IiLCJ2YWxpZGF0ZVRlcm1Bc0NvbnN0cnVjdG9yIiwidmFsaWRhdGVUZXJtQXNHZW5lcmF0b3IiLCJ2YWxpZGF0ZVRlcm1Bc1Byb3BlcnR5Iiwibm9kZVF1ZXJ5IiwicXVlcnlVdGlsaXRpZXMiLCJ0ZXJtTm9kZVF1ZXJ5IiwidHlwZU5vZGVRdWVyeSIsInN0YXRlbWVudE5vZGVRdWVyeSIsIlZhbGlkYXRlVGVybUFzUHJvcGVydHlQYXNzIiwiQ29udGludWF0aW9uUGFzcyIsInJ1biIsInRlcm1Ob2RlIiwiY29udGV4dCIsImNvbnRpbnVhdGlvbiIsIm5vblRlcm1pbmFsTm9kZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiZGVzY2VuZGVkIiwiZGVzY2VuZCIsInN1Y2Nlc3MiLCJtYXBzIiwidGVybSIsInRlcm1Gcm9tVGVybU5vZGUiLCJ0ZXJtVmFsaWRhdGVzIiwidmFsaWRhdGUiLCJ2YWxpZGF0ZXMiLCJ0eXBlTm9kZSIsIm5vbWluYWxUeXBlTmFtZSIsImdldE5vbWluYWxUeXBlTmFtZSIsInR5cGVQcmVzZW50IiwiaXNUeXBlUHJlc2VudEJ5Tm9taW5hbFR5cGVOYW1lIiwib250ZXh0IiwiVmFsaWRhdGVUZXJtQXNHZW5lcmF0b3JQYXNzIiwiVmFsaWRhdGVUZXJtQXNDb25zdHJ1Y3RvclBhc3MiLCJWYWxpZGF0ZVN0YXRlbWVudEFzQ29tYmluYXRvclBhc3MiLCJzdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50Iiwic3RhdGVtZW50RnJvbVN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRWYWxpZGF0ZXMiLCJ2YWxpZGF0ZVRlcm1Bc1Byb3BlcnR5UGFzcyIsInZhbGlkYXRlVGVybUFzR2VuZXJhdG9yUGFzcyIsInZhbGlkYXRlVGVybUFzQ29uc3RydWN0b3JQYXNzIiwidmFsaWRhdGVTdGF0ZW1lbnRBc0NvbWJpbmF0b3JQYXNzIiwiZ2V0Tm9kZSIsInRlcm1WYWxpZGF0ZXNBc1Byb3BlcnR5IiwidGVybVZhbGlkYXRlc0FzR2VuZXJhdG9yIiwidGVybVZhbGlkYXRlc0FzQ29uc3RydWN0b3IiLCJzdGF0ZW1lbnRWYWxpZGF0ZXNBc0NvbWJpbmF0b3IiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQTRRZ0JBO2VBQUFBOztRQVJBQztlQUFBQTs7UUFSQUM7ZUFBQUE7O1FBUkFDO2VBQUFBOzs7NEJBbFBlO3FFQUVGO3lCQUVMO3lCQUNxQzs7Ozs7O0FBRTdELE1BQU0sRUFBRUMsU0FBUyxFQUFFLEdBQUdDLDBCQUFjO0FBRXBDLE1BQU1DLGdCQUFnQkYsVUFBVSxVQUMxQkcsZ0JBQWdCSCxVQUFVLFVBQzFCSSxxQkFBcUJKLFVBQVU7QUFFckMsTUFBTUssbUNBQW1D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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-nominal",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.384",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-nominal",
|
|
7
7
|
"description": "Occam's Nominal language.",
|
|
@@ -11,16 +11,16 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"necessary": "^17.6.3",
|
|
14
|
-
"occam-furtle": "^3.0.
|
|
14
|
+
"occam-furtle": "^3.0.431",
|
|
15
15
|
"occam-grammar-utilities": "^8.1.22",
|
|
16
|
-
"occam-languages": "^2.2.
|
|
16
|
+
"occam-languages": "^2.2.46",
|
|
17
17
|
"occam-query": "^4.1.203"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
20
|
"@swc/core": "1.13.20",
|
|
21
21
|
"decaf-cli": "^1.0.37",
|
|
22
|
-
"occam-model": "^1.0.
|
|
23
|
-
"occam-server": "^7.0.
|
|
22
|
+
"occam-model": "^1.0.566",
|
|
23
|
+
"occam-server": "^7.0.66",
|
|
24
24
|
"watchful-cli": "^1.7.102"
|
|
25
25
|
},
|
|
26
26
|
"scripts": {
|
package/src/element/generator.js
CHANGED
|
@@ -128,7 +128,7 @@ export default define(class Generator extends Element {
|
|
|
128
128
|
termValidates = true;
|
|
129
129
|
}
|
|
130
130
|
} else {
|
|
131
|
-
const termValidatesAsGenerator =
|
|
131
|
+
const termValidatesAsGenerator = validateTermAsGenerator(this.term, context);
|
|
132
132
|
|
|
133
133
|
if (termValidatesAsGenerator) {
|
|
134
134
|
termValidates = true;
|
package/src/element/property.js
CHANGED
|
@@ -89,7 +89,7 @@ export default define(class Property extends Element {
|
|
|
89
89
|
|
|
90
90
|
context.trace(`Validating the '${propertyString}' property's term...`);
|
|
91
91
|
|
|
92
|
-
const termValidatesAsProperty =
|
|
92
|
+
const termValidatesAsProperty = validateTermAsProperty(this.term, context);
|
|
93
93
|
|
|
94
94
|
if (termValidatesAsProperty) {
|
|
95
95
|
termValidates = true;
|
package/src/element/signature.js
CHANGED
package/src/process/validate.js
CHANGED
|
@@ -16,26 +16,33 @@ const termNodeQuery = nodeQuery("/term"),
|
|
|
16
16
|
class ValidateTermAsPropertyPass extends ContinuationPass {
|
|
17
17
|
run(termNode, context, continuation) {
|
|
18
18
|
const nonTerminalNode = termNode, ///
|
|
19
|
-
childNodes = nonTerminalNode.getChildNodes()
|
|
19
|
+
childNodes = nonTerminalNode.getChildNodes(),
|
|
20
|
+
descended = this.descend(childNodes, context, continuation),
|
|
21
|
+
success = descended; ///
|
|
20
22
|
|
|
21
|
-
return
|
|
23
|
+
return success;
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
static maps = [
|
|
25
27
|
{
|
|
26
28
|
nodeQuery: termNodeQuery,
|
|
27
29
|
run: (termNode, context, continuation) => {
|
|
28
|
-
|
|
30
|
+
let success = false;
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
const term = termFromTermNode(termNode, context),
|
|
33
|
+
termValidates = term.validate(context, (term, context) => {
|
|
34
|
+
let validates;
|
|
32
35
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
validates = continuation(context);
|
|
37
|
+
|
|
38
|
+
return validates;
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
if (termValidates) {
|
|
42
|
+
success = true;
|
|
43
|
+
}
|
|
36
44
|
|
|
37
|
-
|
|
38
|
-
});
|
|
45
|
+
return success;
|
|
39
46
|
}
|
|
40
47
|
},
|
|
41
48
|
{
|
|
@@ -47,10 +54,10 @@ class ValidateTermAsPropertyPass extends ContinuationPass {
|
|
|
47
54
|
typePresent = context.isTypePresentByNominalTypeName(nominalTypeName);
|
|
48
55
|
|
|
49
56
|
if (typePresent) {
|
|
50
|
-
success =
|
|
57
|
+
success = continuation( ontext);
|
|
51
58
|
}
|
|
52
59
|
|
|
53
|
-
return
|
|
60
|
+
return success;
|
|
54
61
|
}
|
|
55
62
|
}
|
|
56
63
|
];
|
|
@@ -59,26 +66,33 @@ class ValidateTermAsPropertyPass extends ContinuationPass {
|
|
|
59
66
|
class ValidateTermAsGeneratorPass extends ContinuationPass {
|
|
60
67
|
run(termNode, context, continuation) {
|
|
61
68
|
const nonTerminalNode = termNode, ///
|
|
62
|
-
childNodes = nonTerminalNode.getChildNodes()
|
|
69
|
+
childNodes = nonTerminalNode.getChildNodes(),
|
|
70
|
+
descended = this.descend(childNodes, context, continuation),
|
|
71
|
+
success = descended; ///
|
|
63
72
|
|
|
64
|
-
return
|
|
73
|
+
return success;
|
|
65
74
|
}
|
|
66
75
|
|
|
67
76
|
static maps = [
|
|
68
77
|
{
|
|
69
78
|
nodeQuery: termNodeQuery,
|
|
70
79
|
run: (termNode, context, continuation) => {
|
|
71
|
-
|
|
80
|
+
let success = false;
|
|
72
81
|
|
|
73
|
-
|
|
74
|
-
|
|
82
|
+
const term = termFromTermNode(termNode, context),
|
|
83
|
+
termValidates = term.validate(context, (term, context) => {
|
|
84
|
+
let validates;
|
|
75
85
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
86
|
+
validates = continuation(context);
|
|
87
|
+
|
|
88
|
+
return validates;
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
if (termValidates) {
|
|
92
|
+
success = true;
|
|
93
|
+
}
|
|
79
94
|
|
|
80
|
-
|
|
81
|
-
});
|
|
95
|
+
return success;
|
|
82
96
|
}
|
|
83
97
|
},
|
|
84
98
|
{
|
|
@@ -90,10 +104,10 @@ class ValidateTermAsGeneratorPass extends ContinuationPass {
|
|
|
90
104
|
typePresent = context.isTypePresentByNominalTypeName(nominalTypeName);
|
|
91
105
|
|
|
92
106
|
if (typePresent) {
|
|
93
|
-
success =
|
|
107
|
+
success = continuation(context);
|
|
94
108
|
}
|
|
95
109
|
|
|
96
|
-
return
|
|
110
|
+
return success;
|
|
97
111
|
}
|
|
98
112
|
}
|
|
99
113
|
];
|
|
@@ -102,26 +116,33 @@ class ValidateTermAsGeneratorPass extends ContinuationPass {
|
|
|
102
116
|
class ValidateTermAsConstructorPass extends ContinuationPass {
|
|
103
117
|
run(termNode, context, continuation) {
|
|
104
118
|
const nonTerminalNode = termNode, ///
|
|
105
|
-
childNodes = nonTerminalNode.getChildNodes()
|
|
119
|
+
childNodes = nonTerminalNode.getChildNodes(),
|
|
120
|
+
descended = this.descend(childNodes, context, continuation),
|
|
121
|
+
success = descended; ///
|
|
106
122
|
|
|
107
|
-
return
|
|
123
|
+
return success;
|
|
108
124
|
}
|
|
109
125
|
|
|
110
126
|
static maps = [
|
|
111
127
|
{
|
|
112
128
|
nodeQuery: termNodeQuery,
|
|
113
129
|
run: (termNode, context, continuation) => {
|
|
114
|
-
|
|
130
|
+
let success = false;
|
|
115
131
|
|
|
116
|
-
|
|
117
|
-
|
|
132
|
+
const term = termFromTermNode(termNode, context),
|
|
133
|
+
termValidates = term.validate(context, (term, context) => {
|
|
134
|
+
let validates;
|
|
118
135
|
|
|
119
|
-
|
|
120
|
-
success = true;
|
|
121
|
-
}
|
|
136
|
+
validates = continuation(context);
|
|
122
137
|
|
|
123
|
-
|
|
124
|
-
|
|
138
|
+
return validates;
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
if (termValidates) {
|
|
142
|
+
success = true;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
return success;
|
|
125
146
|
}
|
|
126
147
|
},
|
|
127
148
|
{
|
|
@@ -133,10 +154,10 @@ class ValidateTermAsConstructorPass extends ContinuationPass {
|
|
|
133
154
|
typePresent = context.isTypePresentByNominalTypeName(nominalTypeName);
|
|
134
155
|
|
|
135
156
|
if (typePresent) {
|
|
136
|
-
success =
|
|
157
|
+
success = continuation(context);
|
|
137
158
|
}
|
|
138
159
|
|
|
139
|
-
return
|
|
160
|
+
return success;
|
|
140
161
|
}
|
|
141
162
|
}
|
|
142
163
|
];
|
|
@@ -145,44 +166,57 @@ class ValidateTermAsConstructorPass extends ContinuationPass {
|
|
|
145
166
|
class ValidateStatementAsCombinatorPass extends ContinuationPass {
|
|
146
167
|
run(statementNode, context, continuation) {
|
|
147
168
|
const nonTerminalNode = statementNode, ///
|
|
148
|
-
|
|
169
|
+
childNodes = nonTerminalNode.getChildNodes(),
|
|
170
|
+
descended = this.descend(childNodes, context, continuation),
|
|
171
|
+
success = descended; ///
|
|
149
172
|
|
|
150
|
-
return
|
|
173
|
+
return success;
|
|
151
174
|
}
|
|
152
175
|
|
|
153
176
|
static maps = [
|
|
154
177
|
{
|
|
155
178
|
nodeQuery: statementNodeQuery,
|
|
156
179
|
run: (statementNode, context, continuation) => {
|
|
180
|
+
let success;
|
|
181
|
+
|
|
157
182
|
const statement = statementFromStatementNode(statementNode, context);
|
|
158
183
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
let
|
|
184
|
+
descend((context) => {
|
|
185
|
+
const statementValidates = statement.validate(context, (statement) => {
|
|
186
|
+
let validates;
|
|
162
187
|
|
|
163
|
-
|
|
164
|
-
success = true;
|
|
165
|
-
}
|
|
188
|
+
validates = continuation(success);
|
|
166
189
|
|
|
167
|
-
return
|
|
190
|
+
return validates;
|
|
168
191
|
});
|
|
192
|
+
|
|
193
|
+
if (statementValidates) {
|
|
194
|
+
success = true;
|
|
195
|
+
}
|
|
169
196
|
}, context);
|
|
197
|
+
|
|
198
|
+
return true;
|
|
170
199
|
}
|
|
171
200
|
},
|
|
172
201
|
{
|
|
173
202
|
nodeQuery: termNodeQuery,
|
|
174
203
|
run: (termNode, context, continuation) => {
|
|
175
|
-
|
|
204
|
+
let success = false;
|
|
176
205
|
|
|
177
|
-
|
|
178
|
-
|
|
206
|
+
const term = termFromTermNode(termNode, context),
|
|
207
|
+
termValidates = term.validate(context, (term, context) => {
|
|
208
|
+
let validates;
|
|
179
209
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
210
|
+
validates = continuation(context);
|
|
211
|
+
|
|
212
|
+
return validates;
|
|
213
|
+
});
|
|
183
214
|
|
|
184
|
-
|
|
185
|
-
|
|
215
|
+
if (termValidates) {
|
|
216
|
+
success = true;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
return success;
|
|
186
220
|
}
|
|
187
221
|
},
|
|
188
222
|
{
|
|
@@ -194,10 +228,10 @@ class ValidateStatementAsCombinatorPass extends ContinuationPass {
|
|
|
194
228
|
typePresent = context.isTypePresentByNominalTypeName(nominalTypeName);
|
|
195
229
|
|
|
196
230
|
if (typePresent) {
|
|
197
|
-
success =
|
|
231
|
+
success = continuation(context);
|
|
198
232
|
}
|
|
199
233
|
|
|
200
|
-
return
|
|
234
|
+
return success;
|
|
201
235
|
}
|
|
202
236
|
}
|
|
203
237
|
];
|
|
@@ -209,25 +243,33 @@ const validateTermAsPropertyPass = new ValidateTermAsPropertyPass(),
|
|
|
209
243
|
validateStatementAsCombinatorPass = new ValidateStatementAsCombinatorPass();
|
|
210
244
|
|
|
211
245
|
export function validateTermAsProperty(term, context, continuation) {
|
|
212
|
-
const termNode = term.getNode()
|
|
246
|
+
const termNode = term.getNode(),
|
|
247
|
+
success = validateTermAsPropertyPass.run(termNode, context, continuation),
|
|
248
|
+
termValidatesAsProperty = success; ///
|
|
213
249
|
|
|
214
|
-
return
|
|
250
|
+
return termValidatesAsProperty;
|
|
215
251
|
}
|
|
216
252
|
|
|
217
253
|
export function validateTermAsGenerator(term, context, continuation) {
|
|
218
|
-
const termNode = term.getNode()
|
|
254
|
+
const termNode = term.getNode(),
|
|
255
|
+
success = validateTermAsGeneratorPass.run(termNode, context, continuation),
|
|
256
|
+
termValidatesAsGenerator = success; ///
|
|
219
257
|
|
|
220
|
-
return
|
|
258
|
+
return termValidatesAsGenerator;
|
|
221
259
|
}
|
|
222
260
|
|
|
223
261
|
export function validateTermAsConstructor(term, context, continuation) {
|
|
224
|
-
const termNode = term.getNode()
|
|
262
|
+
const termNode = term.getNode(),
|
|
263
|
+
success = validateTermAsConstructorPass.run(termNode, context, continuation),
|
|
264
|
+
termValidatesAsConstructor = success; ///
|
|
225
265
|
|
|
226
|
-
return
|
|
266
|
+
return termValidatesAsConstructor;
|
|
227
267
|
}
|
|
228
268
|
|
|
229
269
|
export function validateStatementAsCombinator(statement, context, continuation) {
|
|
230
|
-
const statementNode = statement.getNode()
|
|
270
|
+
const statementNode = statement.getNode(),
|
|
271
|
+
success = validateStatementAsCombinatorPass.run(statementNode, context, continuation),
|
|
272
|
+
statementValidatesAsCombinator = success; ///
|
|
231
273
|
|
|
232
|
-
return
|
|
274
|
+
return statementValidatesAsCombinator;
|
|
233
275
|
}
|