occam-verify-cli 0.0.1032 → 0.0.1035
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/argument.js +2 -3
- package/lib/assertion/subproof.js +50 -11
- package/lib/assertion/type.js +180 -0
- package/lib/constructor.js +3 -2
- package/lib/context/file.js +32 -13
- package/lib/context/local.js +15 -15
- package/lib/context/release.js +9 -24
- package/lib/equality.js +5 -5
- package/lib/mixins/statement/verify.js +3 -3
- package/lib/premise.js +21 -12
- package/lib/substitution/termForVariable.js +15 -18
- package/lib/supposition.js +19 -10
- package/lib/term.js +21 -16
- package/lib/theorem.js +107 -6
- package/lib/unifier/intrinsicLevel.js +9 -4
- package/lib/unifier/metaLevel.js +10 -4
- package/lib/unifier/statementWithCombinator.js +2 -2
- package/lib/utilities/array.js +5 -2
- package/lib/utilities/unify.js +2 -14
- package/lib/variable.js +65 -13
- package/lib/verifier/topLevel.js +3 -3
- package/package.json +1 -1
- package/src/argument.js +1 -3
- package/src/assertion/subproof.js +74 -15
- package/src/assertion/type.js +176 -0
- package/src/constructor.js +3 -1
- package/src/context/file.js +48 -14
- package/src/context/local.js +17 -7
- package/src/context/release.js +11 -35
- package/src/equality.js +4 -4
- package/src/mixins/statement/verify.js +3 -2
- package/src/premise.js +29 -16
- package/src/substitution/termForVariable.js +21 -21
- package/src/supposition.js +24 -11
- package/src/term.js +22 -17
- package/src/theorem.js +87 -1
- package/src/unifier/intrinsicLevel.js +16 -3
- package/src/unifier/metaLevel.js +18 -3
- package/src/unifier/statementWithCombinator.js +1 -1
- package/src/utilities/array.js +1 -1
- package/src/utilities/unify.js +1 -16
- package/src/variable.js +88 -18
- package/src/verifier/topLevel.js +3 -2
- package/lib/unify/variableWithTerm.js +0 -39
- package/lib/verify/assertion/type.js +0 -99
- package/lib/verify/lemma.js +0 -48
- package/lib/verify/theorem.js +0 -47
- package/src/unify/variableWithTerm.js +0 -37
- package/src/verify/assertion/type.js +0 -139
- package/src/verify/lemma.js +0 -70
- package/src/verify/theorem.js +0 -65
package/lib/argument.js
CHANGED
|
@@ -76,8 +76,7 @@ var Argument = /*#__PURE__*/ function() {
|
|
|
76
76
|
if (typePresent) {
|
|
77
77
|
verifiedAtTopLevel = true;
|
|
78
78
|
} else {
|
|
79
|
-
|
|
80
|
-
this.fileContext.debug("The '".concat(typeString, "' type is not present."));
|
|
79
|
+
this.fileContext.debug("The '".concat(typeName, "' type is not present."));
|
|
81
80
|
}
|
|
82
81
|
}
|
|
83
82
|
}
|
|
@@ -104,4 +103,4 @@ var Argument = /*#__PURE__*/ function() {
|
|
|
104
103
|
return Argument;
|
|
105
104
|
}();
|
|
106
105
|
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcmd1bWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyB0eXBlTmFtZUZyb21UeXBlTm9kZSB9IGZyb20gXCIuL3V0aWxpdGllcy9uYW1lXCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYXJndW1lbnQvdGVybVwiKSxcbiAgICAgIHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYXJndW1lbnQvL3R5cGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFyZ3VtZW50IHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCBub2RlLCBmaWxlQ29udGV4dCkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gICAgdGhpcy5maWxlQ29udGV4dCA9IGZpbGVDb250ZXh0O1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIGdldEZpbGVDb250ZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVDb250ZXh0O1xuICB9XG5cbiAgdmVyaWZ5QXRUb3BMZXZlbChmaWxlQ29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllZEF0VG9wTGV2ZWwgPSBmYWxzZTtcblxuICAgIGNvbnN0IGFyZ3VtZW50U3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7YXJndW1lbnRTdHJpbmd9JyBhcmd1bWVudCBhdCB0b3AgbGV2ZWwuLi5gKTtcblxuICAgIGlmICh0aGlzLm5vZGUgPT09IG51bGwpIHtcbiAgICAgIHZlcmlmaWVkQXRUb3BMZXZlbCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeSh0aGlzLm5vZGUpO1xuXG4gICAgICBpZiAodGVybU5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRoaXMuZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKHRlcm1Ob2RlKTtcblxuICAgICAgICB0aGlzLmZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2FzIGZvdW5kIHdoZW4gYSB0eXBlIHNob3VsZCBoYXZlIGJlZW4gcHJlc2VudC5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeSh0aGlzLm5vZGUpO1xuXG4gICAgICAgIGlmICh0eXBlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUpLFxuICAgICAgICAgICAgICAgIHR5cGVQcmVzZW50ID0gdGhpcy5maWxlQ29udGV4dC5pc1R5cGVQcmVzZW50QnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgICAgICAgICBpZiAodHlwZVByZXNlbnQpIHtcbiAgICAgICAgICAgIHZlcmlmaWVkQXRUb3BMZXZlbCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlTmFtZX0nIHR5cGUgaXMgbm90IHByZXNlbnQuYCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkQXRUb3BMZXZlbCkge1xuICAgICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHthcmd1bWVudFN0cmluZ30nIGFyZ3VtZW50IGF0IHRvcCBsZXZlbC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWRBdFRvcExldmVsO1xuICB9XG5cbiAgc3RhdGljIGZyb21Bcmd1bWVudE5vZGUoYXJndW1lbnROb2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGxldCBhcmd1bWVudCA9IG51bGw7XG5cbiAgICBpZiAoYXJndW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlID0gYXJndW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgICBzdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSk7XG5cbiAgICAgIGFyZ3VtZW50ID0gbmV3IEFyZ3VtZW50KHN0cmluZywgbm9kZSwgZmlsZUNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiBhcmd1bWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkFyZ3VtZW50IiwidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVOb2RlUXVlcnkiLCJzdHJpbmciLCJub2RlIiwiZmlsZUNvbnRleHQiLCJnZXRTdHJpbmciLCJnZXROb2RlIiwiZ2V0RmlsZUNvbnRleHQiLCJ2ZXJpZnlBdFRvcExldmVsIiwidmVyaWZpZWRBdFRvcExldmVsIiwiYXJndW1lbnRTdHJpbmciLCJ0cmFjZSIsInRlcm1Ob2RlIiwidGVybVN0cmluZyIsIm5vZGVBc1N0cmluZyIsImRlYnVnIiwidHlwZU5vZGUiLCJ0eXBlTmFtZSIsInR5cGVOYW1lRnJvbVR5cGVOb2RlIiwidHlwZVByZXNlbnQiLCJpc1R5cGVQcmVzZW50QnlUeXBlTmFtZSIsImZyb21Bcmd1bWVudE5vZGUiLCJhcmd1bWVudE5vZGUiLCJhcmd1bWVudCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFRcUJBOzs7cUJBTks7b0JBQ1c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXJDLElBQU1DLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyxtQkFDMUJDLGdCQUFnQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUVqQixJQUFBLEFBQU1GLHlCQUFOO2FBQU1BLFNBQ1BJLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxXQUFXO2dDQURsQk47UUFFakIsSUFBSSxDQUFDSSxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxXQUFXLEdBQUdBOztrQkFKRk47O1lBT25CTyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILE1BQU07WUFDcEI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILElBQUk7WUFDbEI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILFdBQVc7WUFDekI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUEsaUJBQWlCSixXQUFXO2dCQUMxQixJQUFJSyxxQkFBcUI7Z0JBRXpCLElBQU1DLGlCQUFpQixJQUFJLENBQUNSLE1BQU0sRUFBRSxHQUFHO2dCQUV2Q0UsWUFBWU8sS0FBSyxDQUFDLEFBQUMsa0JBQWdDLE9BQWZELGdCQUFlO2dCQUVuRCxJQUFJLElBQUksQ0FBQ1AsSUFBSSxLQUFLLE1BQU07b0JBQ3RCTSxxQkFBcUI7Z0JBQ3ZCLE9BQU87b0JBQ0wsSUFBTUcsV0FBV2IsY0FBYyxJQUFJLENBQUNJLElBQUk7b0JBRXhDLElBQUlTLGFBQWEsTUFBTTt3QkFDckIsSUFBTUMsYUFBYSxJQUFJLENBQUNULFdBQVcsQ0FBQ1UsWUFBWSxDQUFDRjt3QkFFakQsSUFBSSxDQUFDUixXQUFXLENBQUNXLEtBQUssQ0FBQyxBQUFDLFFBQWtCLE9BQVhGLFlBQVc7b0JBQzVDLE9BQU87d0JBQ0wsSUFBTUcsV0FBV2YsY0FBYyxJQUFJLENBQUNFLElBQUk7d0JBRXhDLElBQUlhLGFBQWEsTUFBTTs0QkFDckIsSUFBTUMsV0FBV0MsSUFBQUEsMEJBQW9CLEVBQUNGLFdBQ2hDRyxjQUFjLElBQUksQ0FBQ2YsV0FBVyxDQUFDZ0IsdUJBQXVCLENBQUNIOzRCQUU3RCxJQUFJRSxhQUFhO2dDQUNmVixxQkFBcUI7NEJBQ3ZCLE9BQU87Z0NBQ0wsSUFBSSxDQUFDTCxXQUFXLENBQUNXLEtBQUssQ0FBQyxBQUFDLFFBQWdCLE9BQVRFLFVBQVM7NEJBQzFDO3dCQUNGO29CQUNGO2dCQUNGO2dCQUVBLElBQUlSLG9CQUFvQjtvQkFDdEJMLFlBQVlXLEtBQUssQ0FBQyxBQUFDLG9CQUFrQyxPQUFmTCxnQkFBZTtnQkFDdkQ7Z0JBRUEsT0FBT0Q7WUFDVDs7OztZQUVPWSxLQUFBQTttQkFBUCxTQUFPQSxpQkFBaUJDLFlBQVksRUFBRWxCLFdBQVc7Z0JBQy9DLElBQUltQixXQUFXO2dCQUVmLElBQUlELGlCQUFpQixNQUFNO29CQUN6QixJQUFNbkIsT0FBT21CLGNBQ1BwQixTQUFTRSxZQUFZVSxZQUFZLENBQUNYO29CQUV4Q29CLFdBQVcsSUFqRUl6QixTQWlFU0ksUUFBUUMsTUFBTUM7Z0JBQ3hDO2dCQUVBLE9BQU9tQjtZQUNUOzs7V0FyRW1CekIifQ==
|
|
@@ -37,7 +37,7 @@ function _interop_require_default(obj) {
|
|
|
37
37
|
default: obj
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
var statementNodesQuery = (0, _query.nodesQuery)("/subproofAssertion/statement"), subproofAssertionNodeQuery = (0, _query.nodeQuery)("/statement/subproofAssertion");
|
|
40
|
+
var statementNodeQuery = (0, _query.nodeQuery)("/unqualifiedStatement/statement"), statementNodesQuery = (0, _query.nodesQuery)("/subproofAssertion/statement"), subproofAssertionNodeQuery = (0, _query.nodeQuery)("/statement/subproofAssertion");
|
|
41
41
|
var SubproofAssertion = /*#__PURE__*/ function() {
|
|
42
42
|
function SubproofAssertion(fileContext, string, statements) {
|
|
43
43
|
_class_call_check(this, SubproofAssertion);
|
|
@@ -82,19 +82,46 @@ var SubproofAssertion = /*#__PURE__*/ function() {
|
|
|
82
82
|
}
|
|
83
83
|
return subproofUnified;
|
|
84
84
|
}
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
key: "toJSON",
|
|
88
|
+
value: function toJSON() {
|
|
89
|
+
var statementStings = this.statements.map(function(statement) {
|
|
90
|
+
var statementString = statement.getString();
|
|
91
|
+
return statementString;
|
|
92
|
+
}), statements = statementStings, json = {
|
|
93
|
+
statements: statements
|
|
94
|
+
};
|
|
95
|
+
return json;
|
|
96
|
+
}
|
|
85
97
|
}
|
|
86
98
|
], [
|
|
87
99
|
{
|
|
88
|
-
key: "
|
|
89
|
-
value: function
|
|
100
|
+
key: "fromJSON",
|
|
101
|
+
value: function fromJSON(json, fileContext) {
|
|
102
|
+
var statements = json.statements;
|
|
103
|
+
var statementsJSON = statements; ///
|
|
104
|
+
statements = statementsJSON.map(function(statementJSON) {
|
|
105
|
+
var _$json = statementJSON, statement = Statement.fromJSON(_$json, fileContext);
|
|
106
|
+
return statement;
|
|
107
|
+
});
|
|
108
|
+
var string = stringFromStatements(statements), subproofAssertion = new SubproofAssertion(fileContext, string, statements);
|
|
109
|
+
return subproofAssertion;
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
key: "fromUnqualifiedStatementNode",
|
|
114
|
+
value: function fromUnqualifiedStatementNode(unqualifiedStatementNode, fileContext) {
|
|
90
115
|
var subproofAssertion = null;
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
var
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
116
|
+
if (unqualifiedStatementNode !== null) {
|
|
117
|
+
var statementNode = statementNodeQuery(unqualifiedStatementNode), subproofAssertionNode = subproofAssertionNodeQuery(statementNode);
|
|
118
|
+
if (subproofAssertionNode !== null) {
|
|
119
|
+
var Statement1 = _shim.default.Statement, localContext = _local.default.fromFileContext(fileContext), statementNodes = statementNodesQuery(subproofAssertionNode), statements = statementNodes.map(function(statementNode) {
|
|
120
|
+
var statement = Statement1.fromStatementNode(statementNode, localContext);
|
|
121
|
+
return statement;
|
|
122
|
+
}), string = stringFromStatements(statements);
|
|
123
|
+
subproofAssertion = new SubproofAssertion(fileContext, string, statements);
|
|
124
|
+
}
|
|
98
125
|
}
|
|
99
126
|
return subproofAssertion;
|
|
100
127
|
}
|
|
@@ -102,5 +129,17 @@ var SubproofAssertion = /*#__PURE__*/ function() {
|
|
|
102
129
|
]);
|
|
103
130
|
return SubproofAssertion;
|
|
104
131
|
}();
|
|
132
|
+
function stringFromStatements(statements) {
|
|
133
|
+
var frontStatements = (0, _array.front)(statements), lastStatement = (0, _array.last)(statements), frontStatementsString = statementsStringtatements(frontStatements), lastStatementString = lastStatement.getString(), string = "[".concat(frontStatementsString, "] ... ").concat(lastStatementString);
|
|
134
|
+
return string;
|
|
135
|
+
}
|
|
136
|
+
function statementsStringtatements(statements) {
|
|
137
|
+
var statementsString = statements.reduce(function(statementsString, statement) {
|
|
138
|
+
var statementString = statement.getString();
|
|
139
|
+
statementsString = statementsString !== null ? "".concat(statementsString, ", ").concat(statementString) : statementString; ///
|
|
140
|
+
return statementsString;
|
|
141
|
+
}, null);
|
|
142
|
+
return statementsString;
|
|
143
|
+
}
|
|
105
144
|
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hc3NlcnRpb24vc3VicHJvb2YuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBzaGltIGZyb20gXCIuLi9zaGltXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgbWV0YUxldmVsVW5pZmllciBmcm9tIFwiLi4vdW5pZmllci9tZXRhTGV2ZWxcIjtcblxuaW1wb3J0IHsgbWF0Y2ggfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3N1YnByb29mQXNzZXJ0aW9uL3N0YXRlbWVudFwiKSxcbiAgICAgIHN1YnByb29mQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9zdWJwcm9vZkFzc2VydGlvblwiKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3VicHJvb2ZBc3NlcnRpb24ge1xuICBjb25zdHJ1Y3RvcihmaWxlQ29udGV4dCwgc3RyaW5nLCBzdGF0ZW1lbnRzKSB7XG4gICAgdGhpcy5maWxlQ29udGV4dCA9IGZpbGVDb250ZXh0O1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMuc3RhdGVtZW50cyA9IHN0YXRlbWVudHM7XG4gIH1cblxuICBnZXRGaWxlQ29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlQ29udGV4dDtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRTdGF0ZW1lbnRzKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudHM7XG4gIH1cblxuICB1bmlmeVN1YnByb29mKHN1YnByb29mLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgc3VicHJvb2ZVbmlmaWVkO1xuXG4gICAgY29uc3Qgc3VicHJvb2ZTdHJpbmcgPSBzdWJwcm9vZi5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzdWJwcm9vZlN0YXRlbWVudHMgPSBzdWJwcm9vZi5nZXRTdGF0ZW1lbnRzKCksXG4gICAgICAgICAgc3VicHJvb2ZBc3NlcnRpb25TdHJpbmcgPSB0aGlzLnN0cmluZzsgIC8vL1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3VicHJvb2ZTdHJpbmd9JyBzdWJwcm9vZiB3aXRoIHRoZSAnJHtzdWJwcm9vZkFzc2VydGlvblN0cmluZ30nIHN1YnByb29mIGFzc2VydGlvbi4uLmApO1xuXG4gICAgc3VicHJvb2ZVbmlmaWVkID0gbWF0Y2godGhpcy5zdGF0ZW1lbnRzLCBzdWJwcm9vZlN0YXRlbWVudHMsIChzdGF0ZW1lbnQsIHN1YnByb29mU3RhdGVtZW50KSA9PiB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgICAgIHN1YnByb29mU3RhdGVtZW50Tm9kZSA9IHN1YnByb29mU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgICAgIG5vZGVBID0gc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgbm9kZUIgPSBzdWJwcm9vZlN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICAgIGZpbGVDb250ZXh0QSA9IHRoaXMuZmlsZUNvbnRleHQsICAvLy9cbiAgICAgICAgICAgIGxvY2FsQ29udGV4dEEgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0QSksXG4gICAgICAgICAgICBsb2NhbENvbnRleHRCID0gbG9jYWxDb250ZXh0LCAvLy9cbiAgICAgICAgICAgIHVuaWZpZWQgPSBtZXRhTGV2ZWxVbmlmaWVyLnVuaWZ5KG5vZGVBLCBub2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICAgIGlmICh1bmlmaWVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHN1YnByb29mVW5pZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdWJwcm9vZlN0cmluZ30nIHN1YnByb29mIHdpdGggdGhlICcke3N1YnByb29mQXNzZXJ0aW9uU3RyaW5nfScgc3VicHJvb2YgYXNzZXJ0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdWJwcm9vZlVuaWZpZWQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgc3VicHJvb2ZBc3NlcnRpb24gPSBudWxsO1xuXG4gICAgY29uc3Qgc3VicHJvb2ZBc3NlcnRpb25Ob2RlID0gc3VicHJvb2ZBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBpZiAoc3VicHJvb2ZBc3NlcnRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB7IFN0YXRlbWVudCB9ID0gc2hpbSxcbiAgICAgICAgICAgIG5vZGUgPSBzdWJwcm9vZkFzc2VydGlvbk5vZGUsIC8vL1xuICAgICAgICAgICAgc3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgICAgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCksXG4gICAgICAgICAgICBzdGF0ZW1lbnROb2RlcyA9IHN0YXRlbWVudE5vZGVzUXVlcnkoc3VicHJvb2ZBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICAgIHN0YXRlbWVudHMgPSBzdGF0ZW1lbnROb2Rlcy5tYXAoKHN0YXRlbWVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgc3RhdGVtZW50ID0gU3RhdGVtZW50LmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHN0YXRlbWVudDtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBzdWJwcm9vZkFzc2VydGlvbiA9IG5ldyBTdWJwcm9vZkFzc2VydGlvbihmaWxlQ29udGV4dCwgc3RyaW5nLCBzdGF0ZW1lbnRzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VicHJvb2ZBc3NlcnRpb247XG4gIH1cbn0iXSwibmFtZXMiOlsiU3VicHJvb2ZBc3NlcnRpb24iLCJzdGF0ZW1lbnROb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInN1YnByb29mQXNzZXJ0aW9uTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiZmlsZUNvbnRleHQiLCJzdHJpbmciLCJzdGF0ZW1lbnRzIiwiZ2V0RmlsZUNvbnRleHQiLCJnZXRTdHJpbmciLCJnZXRTdGF0ZW1lbnRzIiwidW5pZnlTdWJwcm9vZiIsInN1YnByb29mIiwic3Vic3RpdHV0aW9ucyIsImxvY2FsQ29udGV4dCIsInN1YnByb29mVW5pZmllZCIsInN1YnByb29mU3RyaW5nIiwic3VicHJvb2ZTdGF0ZW1lbnRzIiwic3VicHJvb2ZBc3NlcnRpb25TdHJpbmciLCJ0cmFjZSIsIm1hdGNoIiwic3RhdGVtZW50Iiwic3VicHJvb2ZTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwiZ2V0Tm9kZSIsInN1YnByb29mU3RhdGVtZW50Tm9kZSIsIm5vZGVBIiwibm9kZUIiLCJmaWxlQ29udGV4dEEiLCJsb2NhbENvbnRleHRBIiwiTG9jYWxDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwibG9jYWxDb250ZXh0QiIsInVuaWZpZWQiLCJtZXRhTGV2ZWxVbmlmaWVyIiwidW5pZnkiLCJkZWJ1ZyIsImZyb21TdGF0ZW1lbnROb2RlIiwic3VicHJvb2ZBc3NlcnRpb24iLCJzdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJTdGF0ZW1lbnQiLCJzaGltIiwibm9k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
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hc3NlcnRpb24vc3VicHJvb2YuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBzaGltIGZyb20gXCIuLi9zaGltXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgbWV0YUxldmVsVW5pZmllciBmcm9tIFwiLi4vdW5pZmllci9tZXRhTGV2ZWxcIjtcblxuaW1wb3J0IHsgZnJvbnQsIGxhc3QsIG1hdGNoIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdW5xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50XCIpLFxuICAgICAgc3RhdGVtZW50Tm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvc3VicHJvb2ZBc3NlcnRpb24vc3RhdGVtZW50XCIpLFxuICAgICAgc3VicHJvb2ZBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L3N1YnByb29mQXNzZXJ0aW9uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdWJwcm9vZkFzc2VydGlvbiB7XG4gIGNvbnN0cnVjdG9yKGZpbGVDb250ZXh0LCBzdHJpbmcsIHN0YXRlbWVudHMpIHtcbiAgICB0aGlzLmZpbGVDb250ZXh0ID0gZmlsZUNvbnRleHQ7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5zdGF0ZW1lbnRzID0gc3RhdGVtZW50cztcbiAgfVxuXG4gIGdldEZpbGVDb250ZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVDb250ZXh0O1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldFN0YXRlbWVudHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50cztcbiAgfVxuXG4gIHVuaWZ5U3VicHJvb2Yoc3VicHJvb2YsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCkge1xuICAgIGxldCBzdWJwcm9vZlVuaWZpZWQ7XG5cbiAgICBjb25zdCBzdWJwcm9vZlN0cmluZyA9IHN1YnByb29mLmdldFN0cmluZygpLFxuICAgICAgICAgIHN1YnByb29mU3RhdGVtZW50cyA9IHN1YnByb29mLmdldFN0YXRlbWVudHMoKSxcbiAgICAgICAgICBzdWJwcm9vZkFzc2VydGlvblN0cmluZyA9IHRoaXMuc3RyaW5nOyAgLy8vXG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdWJwcm9vZlN0cmluZ30nIHN1YnByb29mIHdpdGggdGhlICcke3N1YnByb29mQXNzZXJ0aW9uU3RyaW5nfScgc3VicHJvb2YgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgICBzdWJwcm9vZlVuaWZpZWQgPSBtYXRjaCh0aGlzLnN0YXRlbWVudHMsIHN1YnByb29mU3RhdGVtZW50cywgKHN0YXRlbWVudCwgc3VicHJvb2ZTdGF0ZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgICAgc3VicHJvb2ZTdGF0ZW1lbnROb2RlID0gc3VicHJvb2ZTdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgICAgbm9kZUEgPSBzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgICBub2RlQiA9IHN1YnByb29mU3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgZmlsZUNvbnRleHRBID0gdGhpcy5maWxlQ29udGV4dCwgIC8vL1xuICAgICAgICAgICAgbG9jYWxDb250ZXh0QSA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHRBKSxcbiAgICAgICAgICAgIGxvY2FsQ29udGV4dEIgPSBsb2NhbENvbnRleHQsIC8vL1xuICAgICAgICAgICAgdW5pZmllZCA9IG1ldGFMZXZlbFVuaWZpZXIudW5pZnkobm9kZUEsIG5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgICAgaWYgKHVuaWZpZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoc3VicHJvb2ZVbmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N1YnByb29mU3RyaW5nfScgc3VicHJvb2Ygd2l0aCB0aGUgJyR7c3VicHJvb2ZBc3NlcnRpb25TdHJpbmd9JyBzdWJwcm9vZiBhc3NlcnRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnByb29mVW5pZmllZDtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdGluZ3MgPSB0aGlzLnN0YXRlbWVudHMubWFwKChzdGF0ZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgICAgICAgICAgcmV0dXJuIHN0YXRlbWVudFN0cmluZztcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzdGF0ZW1lbnRzID0gc3RhdGVtZW50U3RpbmdzLCAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgc3RhdGVtZW50c1xuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICAgIGxldCB7IHN0YXRlbWVudHMgfSA9IGpzb247XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRzSlNPTiA9IHN0YXRlbWVudHM7ICAvLy9cblxuICAgIHN0YXRlbWVudHMgPSBzdGF0ZW1lbnRzSlNPTi5tYXAoKHN0YXRlbWVudEpTT04pID0+IHtcbiAgICAgIGNvbnN0IGpzb24gPSBzdGF0ZW1lbnRKU09OLFxuICAgICAgICAgICAgc3RhdGVtZW50ID0gU3RhdGVtZW50LmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgICAgcmV0dXJuIHN0YXRlbWVudDtcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0cmluZyA9IHN0cmluZ0Zyb21TdGF0ZW1lbnRzKHN0YXRlbWVudHMpLFxuICAgICAgICAgIHN1YnByb29mQXNzZXJ0aW9uID0gbmV3IFN1YnByb29mQXNzZXJ0aW9uKGZpbGVDb250ZXh0LCBzdHJpbmcsIHN0YXRlbWVudHMpO1xuXG4gICAgcmV0dXJuIHN1YnByb29mQXNzZXJ0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21VbnF1YWxpZmllZFN0YXRlbWVudE5vZGUodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGxldCBzdWJwcm9vZkFzc2VydGlvbiA9IG51bGw7XG5cbiAgICBpZiAodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICBzdWJwcm9vZkFzc2VydGlvbk5vZGUgPSBzdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgaWYgKHN1YnByb29mQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB7IFN0YXRlbWVudCB9ID0gc2hpbSxcbiAgICAgICAgICAgICAgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCksXG4gICAgICAgICAgICAgIHN0YXRlbWVudE5vZGVzID0gc3RhdGVtZW50Tm9kZXNRdWVyeShzdWJwcm9vZkFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgICAgICBzdGF0ZW1lbnRzID0gc3RhdGVtZW50Tm9kZXMubWFwKChzdGF0ZW1lbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhdGVtZW50ID0gU3RhdGVtZW50LmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGVtZW50O1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbVN0YXRlbWVudHMoc3RhdGVtZW50cyk7XG5cbiAgICAgICAgc3VicHJvb2ZBc3NlcnRpb24gPSBuZXcgU3VicHJvb2ZBc3NlcnRpb24oZmlsZUNvbnRleHQsIHN0cmluZywgc3RhdGVtZW50cyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnByb29mQXNzZXJ0aW9uO1xuICB9XG59XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21TdGF0ZW1lbnRzKHN0YXRlbWVudHMpIHtcbiAgY29uc3QgZnJvbnRTdGF0ZW1lbnRzID0gZnJvbnQoc3RhdGVtZW50cyksXG4gICAgICAgIGxhc3RTdGF0ZW1lbnQgPSBsYXN0KHN0YXRlbWVudHMpLFxuICAgICAgICBmcm9udFN0YXRlbWVudHNTdHJpbmcgPSBzdGF0ZW1lbnRzU3RyaW5ndGF0ZW1lbnRzKGZyb250U3RhdGVtZW50cyksXG4gICAgICAgIGxhc3RTdGF0ZW1lbnRTdHJpbmcgPSBsYXN0U3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICBzdHJpbmcgPSBgWyR7ZnJvbnRTdGF0ZW1lbnRzU3RyaW5nfV0gLi4uICR7bGFzdFN0YXRlbWVudFN0cmluZ31gO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHN0YXRlbWVudHNTdHJpbmd0YXRlbWVudHMoc3RhdGVtZW50cykge1xuICBjb25zdCBzdGF0ZW1lbnRzU3RyaW5nID0gc3RhdGVtZW50cy5yZWR1Y2UoKHN0YXRlbWVudHNTdHJpbmcsIHN0YXRlbWVudCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIHN0YXRlbWVudHNTdHJpbmcgPSAoc3RhdGVtZW50c1N0cmluZyAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgYCR7c3RhdGVtZW50c1N0cmluZ30sICR7c3RhdGVtZW50U3RyaW5nfWAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVtZW50U3RyaW5nOyAgLy8vXG5cbiAgICByZXR1cm4gc3RhdGVtZW50c1N0cmluZztcbiAgfSwgbnVsbCk7XG5cbiAgcmV0dXJuIHN0YXRlbWVudHNTdHJpbmdcbn0iXSwibmFtZXMiOlsiU3VicHJvb2ZBc3NlcnRpb24iLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJzdGF0ZW1lbnROb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInN1YnByb29mQXNzZXJ0aW9uTm9kZVF1ZXJ5IiwiZmlsZUNvbnRleHQiLCJzdHJpbmciLCJzdGF0ZW1lbnRzIiwiZ2V0RmlsZUNvbnRleHQiLCJnZXRTdHJpbmciLCJnZXRTdGF0ZW1lbnRzIiwidW5pZnlTdWJwcm9vZiIsInN1YnByb29mIiwic3Vic3RpdHV0aW9ucyIsImxvY2FsQ29udGV4dCIsInN1YnByb29mVW5pZmllZCIsInN1YnByb29mU3RyaW5nIiwic3VicHJvb2ZTdGF0ZW1lbnRzIiwic3VicHJvb2ZBc3NlcnRpb25TdHJpbmciLCJ0cmFjZSIsIm1hdGNoIiwic3RhdGVtZW50Iiwic3VicHJvb2ZTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwiZ2V0Tm9kZSIsInN1YnByb29mU3RhdGVtZW50Tm9kZSIsIm5vZGVBIiwibm9kZUIiLCJmaWxlQ29udGV4dEEiLCJsb2NhbENvbnRleHRBIiwiTG9jYWxDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwibG9jYWxDb250ZXh0QiIsInVuaWZpZWQiLCJtZXRhTGV2ZWxVbmlmaWVyIiwidW5pZnkiLCJkZWJ1ZyIsInRvSlNPTiIsInN0YXRlbWVudFN0aW5ncyIsIm1hcCIsInN0YXRlbWVudFN0cmluZyIsImpzb24iLCJmcm9tSlNPTiIsInN0YXRlbWVudHNKU09OIiwic3RhdGVtZW50SlNPTiIsIlN0YXRlbWVudCIsInN0cmluZ0Zyb21TdGF0ZW1lbnRzIiwic3VicHJvb2ZBc3NlcnRpb24iLCJmcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwic3VicHJvb2ZBc3NlcnRpb25Ob2RlIiwic2hpbSIsInN0YXRlbWVudE5vZGVzIiwiZnJvbVN0YXRlbWVudE5vZGUiLCJmcm9udFN0YXRlbWVudHMiLCJmcm9udCIsImxhc3RTdGF0ZW1lbnQiLCJsYXN0IiwiZnJvbnRTdGF0ZW1lbnRzU3RyaW5nIiwic3RhdGVtZW50c1N0cmluZ3RhdGVtZW50cyIsImxhc3RTdGF0ZW1lbnRTdHJpbmciLCJzdGF0ZW1lbnRzU3RyaW5nIiwicmVkdWNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQWFxQkE7OzsyREFYSjs0REFDUTtnRUFDSTtxQkFFTTtxQkFDRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV0QyxJQUFNQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUMsb0NBQy9CQyxzQkFBc0JDLElBQUFBLGlCQUFVLEVBQUMsaUNBQ2pDQyw2QkFBNkJILElBQUFBLGdCQUFTLEVBQUM7QUFFOUIsSUFBQSxBQUFNRixrQ0FBTjthQUFNQSxrQkFDUE0sV0FBVyxFQUFFQyxNQUFNLEVBQUVDLFVBQVU7Z0NBRHhCUjtRQUVqQixJQUFJLENBQUNNLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxVQUFVLEdBQUdBOztrQkFKRFI7O1lBT25CUyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILFdBQVc7WUFDekI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILE1BQU07WUFDcEI7OztZQUVBSSxLQUFBQTtt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
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return TypeAssertion;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _shim = /*#__PURE__*/ _interop_require_default(require("../shim"));
|
|
12
|
+
var _variable = /*#__PURE__*/ _interop_require_default(require("../variable"));
|
|
13
|
+
var _variable1 = /*#__PURE__*/ _interop_require_default(require("../assignment/variable"));
|
|
14
|
+
var _query = require("../utilities/query");
|
|
15
|
+
var _type = require("../type");
|
|
16
|
+
function _class_call_check(instance, Constructor) {
|
|
17
|
+
if (!(instance instanceof Constructor)) {
|
|
18
|
+
throw new TypeError("Cannot call a class as a function");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function _defineProperties(target, props) {
|
|
22
|
+
for(var i = 0; i < props.length; i++){
|
|
23
|
+
var descriptor = props[i];
|
|
24
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
25
|
+
descriptor.configurable = true;
|
|
26
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
27
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
31
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
32
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
33
|
+
return Constructor;
|
|
34
|
+
}
|
|
35
|
+
function _interop_require_default(obj) {
|
|
36
|
+
return obj && obj.__esModule ? obj : {
|
|
37
|
+
default: obj
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
var termNodeQuery = (0, _query.nodeQuery)("/typeAssertion/term"), typeNodeQuery = (0, _query.nodeQuery)("/typeAssertion/type"), variableNodeQuery = (0, _query.nodeQuery)("/term/variable");
|
|
41
|
+
var TypeAssertion = /*#__PURE__*/ function() {
|
|
42
|
+
function TypeAssertion(string, term, type, variable) {
|
|
43
|
+
_class_call_check(this, TypeAssertion);
|
|
44
|
+
this.string = string;
|
|
45
|
+
this.term = term;
|
|
46
|
+
this.type = type;
|
|
47
|
+
this.variable = variable;
|
|
48
|
+
}
|
|
49
|
+
_create_class(TypeAssertion, [
|
|
50
|
+
{
|
|
51
|
+
key: "getString",
|
|
52
|
+
value: function getString() {
|
|
53
|
+
return this.string;
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
key: "getTerm",
|
|
58
|
+
value: function getTerm() {
|
|
59
|
+
return this.term;
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
key: "getType",
|
|
64
|
+
value: function getType() {
|
|
65
|
+
return this.type;
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
key: "getVariable",
|
|
70
|
+
value: function getVariable() {
|
|
71
|
+
return this.variable;
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
key: "verify",
|
|
76
|
+
value: function verify(assignments, stated, localContext) {
|
|
77
|
+
var verified;
|
|
78
|
+
if (stated) {
|
|
79
|
+
var verifiedWhenStated = this.verifyWhenStated(assignments, localContext);
|
|
80
|
+
verified = verifiedWhenStated; ///
|
|
81
|
+
} else {
|
|
82
|
+
var verifiedWhenDerived = this.verifyWhenDerived(localContext);
|
|
83
|
+
verified = verifiedWhenDerived; ///
|
|
84
|
+
}
|
|
85
|
+
return verified;
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
key: "verifyType",
|
|
90
|
+
value: function verifyType(localContext) {
|
|
91
|
+
var typeVerified;
|
|
92
|
+
if (this.type === _type.objectType) {
|
|
93
|
+
typeVerified = true;
|
|
94
|
+
} else {
|
|
95
|
+
var typeName = this.type.getName();
|
|
96
|
+
localContext.trace("Verifying the '".concat(typeName, "' type..."));
|
|
97
|
+
var type = localContext.findTypeByTypeName(typeName);
|
|
98
|
+
if (type === null) {
|
|
99
|
+
localContext.debug("The '".concat(typeName, "' type is missing."));
|
|
100
|
+
} else {
|
|
101
|
+
this.type = type; ///
|
|
102
|
+
typeVerified = true;
|
|
103
|
+
}
|
|
104
|
+
if (typeVerified) {
|
|
105
|
+
localContext.debug("...verified the '".concat(typeName, "' type."));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return typeVerified;
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
key: "verifyWhenStated",
|
|
113
|
+
value: function verifyWhenStated(assignments, localContext) {
|
|
114
|
+
var _this = this;
|
|
115
|
+
var verifiedWhenStated = false;
|
|
116
|
+
var typeAssertionString = this.string; ///
|
|
117
|
+
localContext.trace("Verifying the stated '".concat(typeAssertionString, "' type assertion..."));
|
|
118
|
+
var typeVerified = this.verifyType(localContext);
|
|
119
|
+
if (typeVerified) {
|
|
120
|
+
var termVerified = this.term.verify(localContext, function() {
|
|
121
|
+
var verifiedAhead;
|
|
122
|
+
var termType = _this.term.getType(), typeEqualToOrSuperTypeOfTermType = _this.type.isEqualToOrSubTypeOf(termType);
|
|
123
|
+
if (typeEqualToOrSuperTypeOfTermType) {
|
|
124
|
+
if (_this.variable !== null) {
|
|
125
|
+
_this.variable.setType(_this.type);
|
|
126
|
+
var variableAssignment = _variable1.default.fromVariable(_this.variable), assignment = variableAssignment; ///
|
|
127
|
+
assignments.push(assignment);
|
|
128
|
+
}
|
|
129
|
+
verifiedAhead = true;
|
|
130
|
+
}
|
|
131
|
+
return verifiedAhead;
|
|
132
|
+
});
|
|
133
|
+
verifiedWhenStated = termVerified; ///
|
|
134
|
+
}
|
|
135
|
+
if (verifiedWhenStated) {
|
|
136
|
+
localContext.debug("...verified the stated '".concat(typeAssertionString, "' type assertion."));
|
|
137
|
+
}
|
|
138
|
+
return verifiedWhenStated;
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
key: "verifyWhenDerived",
|
|
143
|
+
value: function verifyWhenDerived(localContext) {
|
|
144
|
+
var _this = this;
|
|
145
|
+
var verifiedWhenDerived = false;
|
|
146
|
+
var typeAssertionString = this.string; ///
|
|
147
|
+
localContext.trace("Verifying the derived '".concat(typeAssertionString, "' type assertion..."));
|
|
148
|
+
var typeVerified = this.verifyType(localContext);
|
|
149
|
+
if (typeVerified) {
|
|
150
|
+
var termVerified = this.term.verify(localContext, function() {
|
|
151
|
+
var verifiedAhead;
|
|
152
|
+
var termType = _this.term.getType(), typeEqualToOrSuperTypeOfTermType = _this.type.isEqualToOrSuperTypeOf(termType);
|
|
153
|
+
verifiedAhead = typeEqualToOrSuperTypeOfTermType; ///
|
|
154
|
+
return verifiedAhead;
|
|
155
|
+
});
|
|
156
|
+
verifiedWhenDerived = termVerified; ///
|
|
157
|
+
}
|
|
158
|
+
if (verifiedWhenDerived) {
|
|
159
|
+
localContext.debug("...verified the derived '".concat(typeAssertionString, "' type assertion."));
|
|
160
|
+
}
|
|
161
|
+
return verifiedWhenDerived;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
], [
|
|
165
|
+
{
|
|
166
|
+
key: "fromTypeAssertionNode",
|
|
167
|
+
value: function fromTypeAssertionNode(typeAssertionNode, localContext) {
|
|
168
|
+
var Term = _shim.default.Term, Type = _shim.default.Type, termNode = termNodeQuery(typeAssertionNode), typeNode = typeNodeQuery(typeAssertionNode), variableNode = variableNodeQuery(termNode), term = Term.fromTermNode(termNode, localContext), type = Type.fromTypeNode(typeNode, localContext), variable = _variable.default.fromVariableNode(variableNode, localContext), string = stringFromTermAndType(term, type), typeAssertion = new TypeAssertion(string, term, type, variable);
|
|
169
|
+
return typeAssertion;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
]);
|
|
173
|
+
return TypeAssertion;
|
|
174
|
+
}();
|
|
175
|
+
function stringFromTermAndType(term, type) {
|
|
176
|
+
var termString = term.getString(), typeName = type.getName(), string = "".concat(termString, ":").concat(typeName);
|
|
177
|
+
return string;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hc3NlcnRpb24vdHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4uL3NoaW1cIjtcbmltcG9ydCBWYXJpYWJsZSBmcm9tIFwiLi4vdmFyaWFibGVcIjtcbmltcG9ydCBWYXJpYWJsZUFzc2lnbm1lbnQgZnJvbSBcIi4uL2Fzc2lnbm1lbnQvdmFyaWFibGVcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHtvYmplY3RUeXBlfSBmcm9tIFwiLi4vdHlwZVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVBc3NlcnRpb24vdGVybVwiKSxcbiAgICAgIHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdHlwZUFzc2VydGlvbi90eXBlXCIpLFxuICAgICAgdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybS92YXJpYWJsZVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVHlwZUFzc2VydGlvbiB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgdGVybSwgdHlwZSwgdmFyaWFibGUpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnRlcm0gPSB0ZXJtO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMudGVybTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgdmVyaWZ5KGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllZDtcblxuICAgIGlmIChzdGF0ZWQpIHtcbiAgICAgIGNvbnN0IHZlcmlmaWVkV2hlblN0YXRlZCA9IHRoaXMudmVyaWZ5V2hlblN0YXRlZChhc3NpZ25tZW50cywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgdmVyaWZpZWQgPSB2ZXJpZmllZFdoZW5TdGF0ZWQ7ICAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdmVyaWZpZWRXaGVuRGVyaXZlZCA9IHRoaXMudmVyaWZ5V2hlbkRlcml2ZWQobG9jYWxDb250ZXh0KTtcblxuICAgICAgdmVyaWZpZWQgPSB2ZXJpZmllZFdoZW5EZXJpdmVkOyAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlUeXBlKGxvY2FsQ29udGV4dCkge1xuICAgIGxldCB0eXBlVmVyaWZpZWQ7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSBvYmplY3RUeXBlKSB7XG4gICAgICB0eXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eXBlTmFtZSA9IHRoaXMudHlwZS5nZXROYW1lKCk7XG5cbiAgICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlTmFtZX0nIHR5cGUuLi5gKTtcblxuICAgICAgY29uc3QgdHlwZSA9IGxvY2FsQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gICAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgICBsb2NhbENvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlTmFtZX0nIHR5cGUgaXMgbWlzc2luZy5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7IC8vL1xuXG4gICAgICAgIHR5cGVWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlVmVyaWZpZWQpIHtcbiAgICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZU5hbWV9JyB0eXBlLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0eXBlVmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlXaGVuU3RhdGVkKGFzc2lnbm1lbnRzLCBsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWRXaGVuU3RhdGVkID0gZmFsc2U7XG5cbiAgICBjb25zdCB0eXBlQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlIHN0YXRlZCAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgdHlwZSBhc3NlcnRpb24uLi5gKTtcblxuICAgIGNvbnN0IHR5cGVWZXJpZmllZCA9IHRoaXMudmVyaWZ5VHlwZShsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHR5cGVWZXJpZmllZCkge1xuICAgICAgY29uc3QgdGVybVZlcmlmaWVkID0gdGhpcy50ZXJtLnZlcmlmeShsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgbGV0IHZlcmlmaWVkQWhlYWQ7XG5cbiAgICAgICAgY29uc3QgdGVybVR5cGUgPSB0aGlzLnRlcm0uZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICB0eXBlRXF1YWxUb09yU3VwZXJUeXBlT2ZUZXJtVHlwZSA9IHRoaXMudHlwZS5pc0VxdWFsVG9PclN1YlR5cGVPZih0ZXJtVHlwZSk7XG5cbiAgICAgICAgaWYgKHR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlRlcm1UeXBlKSB7XG4gICAgICAgICAgaWYgKHRoaXMudmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMudmFyaWFibGUuc2V0VHlwZSh0aGlzLnR5cGUpO1xuXG4gICAgICAgICAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnQgPSBWYXJpYWJsZUFzc2lnbm1lbnQuZnJvbVZhcmlhYmxlKHRoaXMudmFyaWFibGUpLFxuICAgICAgICAgICAgICAgICAgYXNzaWdubWVudCA9IHZhcmlhYmxlQXNzaWdubWVudDsgIC8vL1xuXG4gICAgICAgICAgICBhc3NpZ25tZW50cy5wdXNoKGFzc2lnbm1lbnQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICB9KTtcblxuICAgICAgdmVyaWZpZWRXaGVuU3RhdGVkID0gdGVybVZlcmlmaWVkOyAvLy9cbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZWRXaGVuU3RhdGVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSBzdGF0ZWQgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIHR5cGUgYXNzZXJ0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZFdoZW5TdGF0ZWQ7XG4gIH1cblxuICB2ZXJpZnlXaGVuRGVyaXZlZChsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWRXaGVuRGVyaXZlZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgdHlwZUFzc2VydGlvblN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSBkZXJpdmVkICcke3R5cGVBc3NlcnRpb25TdHJpbmd9JyB0eXBlIGFzc2VydGlvbi4uLmApO1xuXG4gICAgY29uc3QgdHlwZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlUeXBlKGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAodHlwZVZlcmlmaWVkKSB7XG4gICAgICBjb25zdCB0ZXJtVmVyaWZpZWQgPSB0aGlzLnRlcm0udmVyaWZ5KGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgICBsZXQgdmVyaWZpZWRBaGVhZDtcblxuICAgICAgICBjb25zdCB0ZXJtVHlwZSA9IHRoaXMudGVybS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgIHR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlRlcm1UeXBlID0gdGhpcy50eXBlLmlzRXF1YWxUb09yU3VwZXJUeXBlT2YodGVybVR5cGUpO1xuXG4gICAgICAgIHZlcmlmaWVkQWhlYWQgPSB0eXBlRXF1YWxUb09yU3VwZXJUeXBlT2ZUZXJtVHlwZTsgLy8vXG5cbiAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICB9KTtcblxuICAgICAgdmVyaWZpZWRXaGVuRGVyaXZlZCA9IHRlcm1WZXJpZmllZDsgLy8vXG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkV2hlbkRlcml2ZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlIGRlcml2ZWQgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIHR5cGUgYXNzZXJ0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZFdoZW5EZXJpdmVkO1xuICB9XG5cbiAgc3RhdGljIGZyb21UeXBlQXNzZXJ0aW9uTm9kZSh0eXBlQXNzZXJ0aW9uTm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gICAgY29uc3QgeyBUZXJtLCBUeXBlIH0gPSBzaGltLFxuICAgICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeSh0eXBlQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgdHlwZU5vZGUgPSB0eXBlTm9kZVF1ZXJ5KHR5cGVBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVRdWVyeSh0ZXJtTm9kZSksXG4gICAgICAgICAgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBsb2NhbENvbnRleHQpLFxuICAgICAgICAgIHR5cGUgPSBUeXBlLmZyb21UeXBlTm9kZSh0eXBlTm9kZSwgbG9jYWxDb250ZXh0KSxcbiAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBsb2NhbENvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21UZXJtQW5kVHlwZSh0ZXJtLCB0eXBlKSxcbiAgICAgICAgICB0eXBlQXNzZXJ0aW9uID0gbmV3IFR5cGVBc3NlcnRpb24oc3RyaW5nLCB0ZXJtLCB0eXBlLCB2YXJpYWJsZSk7XG5cbiAgICByZXR1cm4gdHlwZUFzc2VydGlvbjtcbiAgfVxufVxuXG5mdW5jdGlvbiBzdHJpbmdGcm9tVGVybUFuZFR5cGUodGVybSwgdHlwZSkge1xuICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgdHlwZU5hbWUgPSB0eXBlLmdldE5hbWUoKSxcbiAgICAgICAgc3RyaW5nID0gYCR7dGVybVN0cmluZ306JHt0eXBlTmFtZX1gO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOlsiVHlwZUFzc2VydGlvbiIsInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ0eXBlTm9kZVF1ZXJ5IiwidmFyaWFibGVOb2RlUXVlcnkiLCJzdHJpbmciLCJ0ZXJtIiwidHlwZSIsInZhcmlhYmxlIiwiZ2V0U3RyaW5nIiwiZ2V0VGVybSIsImdldFR5cGUiLCJnZXRWYXJpYWJsZSIsInZlcmlmeSIsImFzc2lnbm1lbnRzIiwic3RhdGVkIiwibG9jYWxDb250ZXh0IiwidmVyaWZpZWQiLCJ2ZXJpZmllZFdoZW5TdGF0ZWQiLCJ2ZXJpZnlXaGVuU3RhdGVkIiwidmVyaWZpZWRXaGVuRGVyaXZlZCIsInZlcmlmeVdoZW5EZXJpdmVkIiwidmVyaWZ5VHlwZSIsInR5cGVWZXJpZmllZCIsIm9iamVjdFR5cGUiLCJ0eXBlTmFtZSIsImdldE5hbWUiLCJ0cmFjZSIsImZpbmRUeXBlQnlUeXBlTmFtZSIsImRlYnVnIiwidHlwZUFzc2VydGlvblN0cmluZyIsInRlcm1WZXJpZmllZCIsInZlcmlmaWVkQWhlYWQiLCJ0ZXJtVHlwZSIsInR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlRlcm1UeXBlIiwiaXNFcXVhbFRvT3JTdWJUeXBlT2YiLCJzZXRUeXBlIiwidmFyaWFibGVBc3NpZ25tZW50IiwiVmFyaWFibGVBc3NpZ25tZW50IiwiZnJvbVZhcmlhYmxlIiwiYXNzaWdubWVudCIsInB1c2giLCJpc0VxdWFsVG9PclN1cGVyVHlwZU9mIiwiZnJvbVR5cGVBc3NlcnRpb25Ob2RlIiwidHlwZUFzc2VydGlvbk5vZGUiLCJUZXJtIiwic2hpbSIsIlR5cGUiLCJ0ZXJtTm9kZSIsInR5cGVOb2RlIiwidmFyaWFibGVOb2RlIiwiZnJvbVRlcm1Ob2RlIiwiZnJvbVR5cGVOb2RlIiwiVmFyaWFibGUiLCJmcm9tVmFyaWFibGVOb2RlIiwic3RyaW5nRnJvbVRlcm1BbmRUeXBlIiwidHlwZUFzc2VydGlvbiIsInRlcm1TdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBYXFCQTs7OzJEQVhKOytEQUNJO2dFQUNVO3FCQUVMO29CQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXpCLElBQU1DLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyx3QkFDMUJDLGdCQUFnQkQsSUFBQUEsZ0JBQVMsRUFBQyx3QkFDMUJFLG9CQUFvQkYsSUFBQUEsZ0JBQVMsRUFBQztBQUVyQixJQUFBLEFBQU1GLDhCQUFOO2FBQU1BLGNBQ1BLLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLFFBQVE7Z0NBRHJCUjtRQUVqQixJQUFJLENBQUNLLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLFFBQVEsR0FBR0E7O2tCQUxDUjs7WUFRbkJTLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0osTUFBTTtZQUNwQjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0osSUFBSTtZQUNsQjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0osSUFBSTtZQUNsQjs7O1lBRUFLLEtBQUFBO21CQUFBQSxT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
|
package/lib/constructor.js
CHANGED
|
@@ -17,6 +17,7 @@ _export(exports, {
|
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
19
|
var _shim = /*#__PURE__*/ _interop_require_default(require("./shim"));
|
|
20
|
+
var _local = /*#__PURE__*/ _interop_require_default(require("./context/local"));
|
|
20
21
|
var _query = require("./utilities/query");
|
|
21
22
|
var _type = require("./type");
|
|
22
23
|
function _class_call_check(instance, Constructor) {
|
|
@@ -110,7 +111,7 @@ var Constructor = /*#__PURE__*/ function() {
|
|
|
110
111
|
{
|
|
111
112
|
key: "fromConstructorDeclarationNode",
|
|
112
113
|
value: function fromConstructorDeclarationNode(constructorDeclarationNode, fileContext) {
|
|
113
|
-
var Term = _shim.default.Term, Type = _shim.default.Type, termNode = termNodeQuery(constructorDeclarationNode), typeNode = typeNodeQuery(constructorDeclarationNode), type = typeNode === null ? _type.objectType : Type.fromTypeNode(typeNode), term = Term.fromTermNodeAndType(termNode, type,
|
|
114
|
+
var Term = _shim.default.Term, Type = _shim.default.Type, termNode = termNodeQuery(constructorDeclarationNode), typeNode = typeNodeQuery(constructorDeclarationNode), type = typeNode === null ? _type.objectType : Type.fromTypeNode(typeNode), localContext = _local.default.fromFileContext(fileContext), term = Term.fromTermNodeAndType(termNode, type, localContext), string = stringFromTermAndType(term, type), constructor = new Constructor(string, term);
|
|
114
115
|
return constructor;
|
|
115
116
|
}
|
|
116
117
|
}
|
|
@@ -129,4 +130,4 @@ function stringFromTermAndType(term, type) {
|
|
|
129
130
|
return string;
|
|
130
131
|
}
|
|
131
132
|
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdHJ1Y3Rvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4vc2hpbVwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi9jb250ZXh0L2xvY2FsXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgb2JqZWN0VHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb25zdHJ1Y3RvckRlY2xhcmF0aW9uL3Rlcm1cIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbnN0cnVjdG9yRGVjbGFyYXRpb24vdHlwZVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29uc3RydWN0b3Ige1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIHRlcm0pIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnRlcm0gPSB0ZXJtO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMudGVybTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7IHJldHVybiB0aGlzLnRlcm0uZ2V0VHlwZSgpOyB9XG5cbiAgdmVyaWZ5QXRUb3BMZXZlbChmaWxlQ29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllZEF0VG9wTGV2ZWw7XG5cbiAgICBjb25zdCBjb25zdHJ1Y3RvclN0cmluZyA9IHRoaXMuc3RyaW5nOyAgLy8vXG5cbiAgICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtjb25zdHJ1Y3RvclN0cmluZ30nIGNvbnN0cnVjdG9yIGF0IHRvcCBsZXZlbC4uLmApO1xuXG4gICAgY29uc3QgdGVybVZlcmlmaWVkQXRUb3BMZXZlbCA9IHRoaXMudGVybS52ZXJpZnlBdFRvcExldmVsKGZpbGVDb250ZXh0KTtcblxuICAgIGlmICh0ZXJtVmVyaWZpZWRBdFRvcExldmVsKSB7XG4gICAgICB2ZXJpZmllZEF0VG9wTGV2ZWwgPSB0cnVlOyAvLy9cbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZWRBdFRvcExldmVsKSB7XG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IgYXQgdG9wIGxldmVsLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZEF0VG9wTGV2ZWw7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdGVybUpTT04gPSB0aGlzLnRlcm0udG9KU09OKCksXG4gICAgICAgICAgdGVybSA9IHRlcm1KU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHRlcm1cbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgeyB0ZXJtIH0gPSBqc29uO1xuXG4gICAgY29uc3QgdGVybUpTT04gPSB0ZXJtOyAgLy8vXG5cbiAgICBqc29uID0gdGVybUpTT047ICAvLy9cblxuICAgIGNvbnN0IHsgVGVybSB9ID0gc2hpbTtcblxuICAgIHRlcm0gPSBUZXJtLmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIGNvbnN0IHR5cGUgPSB0ZXJtLmdldFR5cGUoKSxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tVGVybUFuZFR5cGUodGVybSwgdHlwZSksXG4gICAgICAgICAgY29uc3RydWN0b3IgPSBuZXcgQ29uc3RydWN0b3Ioc3RyaW5nLCB0ZXJtKTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUoY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgeyBUZXJtLCBUeXBlIH0gPSBzaGltLFxuICAgICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeShjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgICAgdHlwZU5vZGUgPSB0eXBlTm9kZVF1ZXJ5KGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgICB0eXBlID0gKHR5cGVOb2RlID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgb2JqZWN0VHlwZSA6XG4gICAgICAgICAgICAgICAgICAgICBUeXBlLmZyb21UeXBlTm9kZSh0eXBlTm9kZSksXG4gICAgICAgICAgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCksXG4gICAgICAgICAgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlQW5kVHlwZSh0ZXJtTm9kZSwgdHlwZSwgbG9jYWxDb250ZXh0KSxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tVGVybUFuZFR5cGUodGVybSwgdHlwZSksXG4gICAgICAgICAgY29uc3RydWN0b3IgPSBuZXcgQ29uc3RydWN0b3Ioc3RyaW5nLCB0ZXJtKTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nRnJvbVRlcm1BbmRUeXBlKHRlcm0sIHR5cGUpIHtcbiAgbGV0IHN0cmluZztcblxuICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKTtcblxuICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgIHN0cmluZyA9IGAke3Rlcm1TdHJpbmd9YDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgc3RyaW5nID0gYCR7dGVybVN0cmluZ306JHt0eXBlTmFtZX1gO1xuICB9XG5cbiAgcmV0dXJuIHN0cmluZztcbn1cbiJdLCJuYW1lcyI6WyJDb25zdHJ1Y3RvciIsInN0cmluZ0Zyb21UZXJtQW5kVHlwZSIsInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ0eXBlTm9kZVF1ZXJ5Iiwic3RyaW5nIiwidGVybSIsImdldFN0cmluZyIsImdldFRlcm0iLCJnZXRUeXBlIiwidmVyaWZ5QXRUb3BMZXZlbCIsImZpbGVDb250ZXh0IiwidmVyaWZpZWRBdFRvcExldmVsIiwiY29uc3RydWN0b3JTdHJpbmciLCJ0cmFjZSIsInRlcm1WZXJpZmllZEF0VG9wTGV2ZWwiLCJkZWJ1ZyIsInRvSlNPTiIsInRlcm1KU09OIiwianNvbiIsImZyb21KU09OIiwiVGVybSIsInNoaW0iLCJ0eXBlIiwiY29uc3RydWN0b3IiLCJmcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSIsIlR5cGUiLCJ0ZXJtTm9kZSIsInR5cGVOb2RlIiwib2JqZWN0VHlwZSIsImZyb21UeXBlTm9kZSIsImxvY2FsQ29udGV4dCIsIkxvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsImZyb21UZXJtTm9kZUFuZFR5cGUiLCJ0ZXJtU3RyaW5nIiwidHlwZU5hbWUiLCJnZXROYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O2VBV3FCQTs7SUFnRkxDLHFCQUFxQjtlQUFyQkE7OzsyREF6RkM7NERBQ1E7cUJBRUM7b0JBQ0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFM0IsSUFBTUMsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLGlDQUMxQkMsZ0JBQWdCRCxJQUFBQSxnQkFBUyxFQUFDO0FBRWpCLElBQUEsQUFBTUgsNEJBQU47YUFBTUEsWUFDUEssTUFBTSxFQUFFQyxJQUFJO2dDQURMTjtRQUVqQixJQUFJLENBQUNLLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7O2tCQUhLTjs7WUFNbkJPLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFD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
|