occam-verify-cli 1.0.371 → 1.0.374
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/action/verify.js +3 -2
- package/lib/index.js +2 -60
- package/lib/preamble.js +70 -0
- package/lib/utilities/fileSystem.js +53 -0
- package/lib/utilities/releaseContext.js +25 -55
- package/package.json +2 -2
- package/src/action/verify.js +1 -1
- package/src/index.js +1 -59
- package/src/preamble.js +61 -0
- package/src/utilities/fileSystem.js +60 -0
- package/src/utilities/releaseContext.js +46 -97
package/lib/action/verify.js
CHANGED
|
@@ -11,13 +11,14 @@ Object.defineProperty(exports, "default", {
|
|
|
11
11
|
var _occamentities = require("occam-entities");
|
|
12
12
|
var _release = require("../utilities/release");
|
|
13
13
|
var _string = require("../utilities/string");
|
|
14
|
+
var _fileSystem = require("../utilities/fileSystem");
|
|
14
15
|
var _releaseContext = require("../utilities/releaseContext");
|
|
15
16
|
function verifyAction(argument, log) {
|
|
16
17
|
var name = (0, _string.trimTrailingSlash)(argument), context = {}, dependency = _occamentities.Dependency.fromName(name), dependentNames = [], releaseContextMap = {};
|
|
17
18
|
Object.assign(context, {
|
|
18
19
|
log: log,
|
|
19
20
|
releaseContextMap: releaseContextMap,
|
|
20
|
-
releaseContextFromDependency:
|
|
21
|
+
releaseContextFromDependency: _fileSystem.releaseContextFromDependency
|
|
21
22
|
});
|
|
22
23
|
var now = startClock();
|
|
23
24
|
(0, _releaseContext.createReleaseContext)(dependency, dependentNames, context, function(error, success) {
|
|
@@ -55,4 +56,4 @@ function stopClock(now, log) {
|
|
|
55
56
|
log.info("Time ".concat(seconds, " seconds."));
|
|
56
57
|
}
|
|
57
58
|
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3Rpb24vdmVyaWZ5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBEZXBlbmRlbmN5IH0gZnJvbSBcIm9jY2FtLWVudGl0aWVzXCI7XG5cbmltcG9ydCB7IHZlcmlmeVJlbGVhc2UgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3JlbGVhc2VcIjtcbmltcG9ydCB7IHRyaW1UcmFpbGluZ1NsYXNoIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IHJlbGVhc2VDb250ZXh0RnJvbURlcGVuZGVuY3kgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2ZpbGVTeXN0ZW1cIjtcbmltcG9ydCB7IGNyZWF0ZVJlbGVhc2VDb250ZXh0LCBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3JlbGVhc2VDb250ZXh0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeUFjdGlvbihhcmd1bWVudCwgbG9nKSB7XG4gIGNvbnN0IG5hbWUgPSB0cmltVHJhaWxpbmdTbGFzaChhcmd1bWVudCksIC8vL1xuICAgICAgICBjb250ZXh0ID0ge30sXG4gICAgICAgIGRlcGVuZGVuY3kgPSBEZXBlbmRlbmN5LmZyb21OYW1lKG5hbWUpLFxuICAgICAgICBkZXBlbmRlbnROYW1lcyA9IFtdLFxuICAgICAgICByZWxlYXNlQ29udGV4dE1hcCA9IHt9O1xuXG4gIE9iamVjdC5hc3NpZ24oY29udGV4dCwge1xuICAgIGxvZyxcbiAgICByZWxlYXNlQ29udGV4dE1hcCxcbiAgICByZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5XG4gIH0pO1xuXG4gIGxldCBub3cgPSBzdGFydENsb2NrKCk7XG5cbiAgY3JlYXRlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQsIChlcnJvciwgc3VjY2VzcykgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgbG9nLmVycm9yKGVycm9yKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgbG9nLndhcm5pbmcoYFRoZSAnJHtuYW1lfScgcHJvamVjdCBvciBwYWNrYWdlIGNhbm5vdCBiZSBjcmVhdGVkLmApO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVsZWFzZU5hbWUgPSBuYW1lLCAvLy9cbiAgICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSxcbiAgICAgICAgICByZWxlYXNlZCA9IHJlbGVhc2VDb250ZXh0LmlzUmVsZWFzZWQoKTtcblxuICAgIGlmIChyZWxlYXNlZCkge1xuICAgICAgbG9nLndhcm5pbmcoYFRoZSAnJHtuYW1lfScgcGFja2FnZSBkb2VzIG5vdCBuZWVkIHRvIGJlIHZlcmlmaWVkLmApO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGNvbnRleHQpO1xuXG4gICAgY29uc3QgZGVwZW5kZW50TmFtZSA9IG51bGwsXG4gICAgICAgICAgZGVwZW5kZW50UmVsZWFzZWQgPSBmYWxzZSxcbiAgICAgICAgICByZWxlYXNlVmVyaWZpZWQgPSB2ZXJpZnlSZWxlYXNlKHJlbGVhc2VOYW1lLCBkZXBlbmRlbnROYW1lLCBkZXBlbmRlbnRSZWxlYXNlZCwgcmVsZWFzZUNvbnRleHRNYXApO1xuXG4gICAgaWYgKCFyZWxlYXNlVmVyaWZpZWQpIHtcbiAgICAgIGxvZy53YXJuaW5nKGBUaGUgJyR7bmFtZX0nIHByb2plY3Qgb3IgcGFja2FnZSBjYW5ub3QgYmUgdmVyaWZpZWQuYCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdG9wQ2xvY2sobm93LCBsb2cpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gc3RhcnRDbG9jaygpIHtcbiAgbGV0IG5vdztcblxuICBub3cgPSBEYXRlLm5vdygpO1xuXG4gIHJldHVybiBub3c7XG59XG5cbmZ1bmN0aW9uIHN0b3BDbG9jayhub3csIGxvZykge1xuICBjb25zdCB0aGVuID0gbm93OyAvLy9cblxuICBub3cgPSBEYXRlLm5vdygpO1xuXG4gIGNvbnN0IHNlY29uZHMgPSBNYXRoLmZsb29yKG5vdyAtIHRoZW4pIC8gMTAwMDtcblxuICBsb2cuaW5mbyhgVGltZSAke3NlY29uZHN9IHNlY29uZHMuYCk7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5QWN0aW9uIiwiYXJndW1lbnQiLCJsb2ciLCJuYW1lIiwidHJpbVRyYWlsaW5nU2xhc2giLCJjb250ZXh0IiwiZGVwZW5kZW5jeSIsIkRlcGVuZGVuY3kiLCJmcm9tTmFtZSIsImRlcGVuZGVudE5hbWVzIiwicmVsZWFzZUNvbnRleHRNYXAiLCJPYmplY3QiLCJhc3NpZ24iLCJyZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5Iiwibm93Iiwic3RhcnRDbG9jayIsImNyZWF0ZVJlbGVhc2VDb250ZXh0IiwiZXJyb3IiLCJzdWNjZXNzIiwid2FybmluZyIsInJlbGVhc2VOYW1lIiwicmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlZCIsImlzUmVsZWFzZWQiLCJpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQiLCJkZXBlbmRlbnROYW1lIiwiZGVwZW5kZW50UmVsZWFzZWQiLCJyZWxlYXNlVmVyaWZpZWQiLCJ2ZXJpZnlSZWxlYXNlIiwic3RvcENsb2NrIiwiRGF0ZSIsInRoZW4iLCJzZWNvbmRzIiwiTWF0aCIsImZsb29yIiwiaW5mbyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUF3QkE7Ozs2QkFQRzt1QkFFRztzQkFDSTswQkFDVzs4QkFDa0I7QUFFaEQsU0FBU0EsYUFBYUMsUUFBUSxFQUFFQyxHQUFHO0lBQ2hELElBQU1DLE9BQU9DLElBQUFBLHlCQUFpQixFQUFDSCxXQUN6QkksVUFBVSxDQUFDLEdBQ1hDLGFBQWFDLHlCQUFVLENBQUNDLFFBQVEsQ0FBQ0wsT0FDakNNLGlCQUFpQixFQUFFLEVBQ25CQyxvQkFBb0IsQ0FBQztJQUUzQkMsT0FBT0MsTUFBTSxDQUFDUCxTQUFTO1FBQ3JCSCxLQUFBQTtRQUNBUSxtQkFBQUE7UUFDQUcsOEJBQUFBLHdDQUE0QjtJQUM5QjtJQUVBLElBQUlDLE1BQU1DO0lBRVZDLElBQUFBLG9DQUFvQixFQUFDVixZQUFZRyxnQkFBZ0JKLFNBQVMsU0FBQ1ksT0FBT0M7UUFDaEUsSUFBSUQsT0FBTztZQUNUZixJQUFJZSxLQUFLLENBQUNBO1lBRVY7UUFDRjtRQUVBLElBQUksQ0FBQ0MsU0FBUztZQUNaaEIsSUFBSWlCLE9BQU8sQ0FBQyxBQUFDLFFBQVksT0FBTGhCLE1BQUs7WUFFekI7UUFDRjtRQUVBLElBQU1pQixjQUFjakIsTUFDZGtCLGlCQUFpQlgsaUJBQWlCLENBQUNVLFlBQVksRUFDL0NFLFdBQVdELGVBQWVFLFVBQVU7UUFFMUMsSUFBSUQsVUFBVTtZQUNacEIsSUFBSWlCLE9BQU8sQ0FBQyxBQUFDLFFBQVksT0FBTGhCLE1BQUs7WUFFekI7UUFDRjtRQUVBcUIsSUFBQUEsd0NBQXdCLEVBQUNsQixZQUFZRDtRQUVyQyxJQUFNb0IsZ0JBQWdCLE1BQ2hCQyxvQkFBb0IsT0FDcEJDLGtCQUFrQkMsSUFBQUEsc0JBQWEsRUFBQ1IsYUFBYUssZUFBZUMsbUJBQW1CaEI7UUFFckYsSUFBSSxDQUFDaUIsaUJBQWlCO1lBQ3BCekIsSUFBSWlCLE9BQU8sQ0FBQyxBQUFDLFFBQVksT0FBTGhCLE1BQUs7WUFFekI7UUFDRjtRQUVBMEIsVUFBVWYsS0FBS1o7SUFDakI7QUFDRjtBQUVBLFNBQVNhO0lBQ1AsSUFBSUQ7SUFFSkEsTUFBTWdCLEtBQUtoQixHQUFHO0lBRWQsT0FBT0E7QUFDVDtBQUVBLFNBQVNlLFVBQVVmLEdBQUcsRUFBRVosR0FBRztJQUN6QixJQUFNNkIsT0FBT2pCLEtBQUssR0FBRztJQUVyQkEsTUFBTWdCLEtBQUtoQixHQUFHO0lBRWQsSUFBTWtCLFVBQVVDLEtBQUtDLEtBQUssQ0FBQ3BCLE1BQU1pQixRQUFRO0lBRXpDN0IsSUFBSWlDLElBQUksQ0FBQyxBQUFDLFFBQWUsT0FBUkgsU0FBUTtBQUMzQiJ9
|
package/lib/index.js
CHANGED
|
@@ -25,65 +25,7 @@ _export(exports, {
|
|
|
25
25
|
return _release1.default;
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
|
-
|
|
29
|
-
var _term = /*#__PURE__*/ _interop_require_default(require("./dom/term"));
|
|
30
|
-
var _rule = /*#__PURE__*/ _interop_require_default(require("./dom/rule"));
|
|
31
|
-
var _step = /*#__PURE__*/ _interop_require_default(require("./dom/step"));
|
|
32
|
-
var _label = /*#__PURE__*/ _interop_require_default(require("./dom/label"));
|
|
33
|
-
var _axiom = /*#__PURE__*/ _interop_require_default(require("./dom/axiom"));
|
|
34
|
-
var _lemma = /*#__PURE__*/ _interop_require_default(require("./dom/lemma"));
|
|
35
|
-
var _frame = /*#__PURE__*/ _interop_require_default(require("./dom/frame"));
|
|
36
|
-
var _proof = /*#__PURE__*/ _interop_require_default(require("./dom/proof"));
|
|
37
|
-
var _error = /*#__PURE__*/ _interop_require_default(require("./dom/error"));
|
|
38
|
-
var _premise = /*#__PURE__*/ _interop_require_default(require("./dom/premise"));
|
|
39
|
-
var _theorem = /*#__PURE__*/ _interop_require_default(require("./dom/theorem"));
|
|
40
|
-
var _section = /*#__PURE__*/ _interop_require_default(require("./dom/section"));
|
|
41
|
-
var _equality = /*#__PURE__*/ _interop_require_default(require("./dom/equality"));
|
|
42
|
-
var _metaType = /*#__PURE__*/ _interop_require_default(require("./dom/metaType"));
|
|
43
|
-
var _subproof = /*#__PURE__*/ _interop_require_default(require("./dom/subproof"));
|
|
44
|
-
var _variable = /*#__PURE__*/ _interop_require_default(require("./dom/variable"));
|
|
45
|
-
var _property = /*#__PURE__*/ _interop_require_default(require("./dom/property"));
|
|
46
|
-
var _parameter = /*#__PURE__*/ _interop_require_default(require("./dom/parameter"));
|
|
47
|
-
var _reference = /*#__PURE__*/ _interop_require_default(require("./dom/reference"));
|
|
48
|
-
var _statement = /*#__PURE__*/ _interop_require_default(require("./dom/statement"));
|
|
49
|
-
var _judgement = /*#__PURE__*/ _interop_require_default(require("./dom/judgement"));
|
|
50
|
-
var _metaLemma = /*#__PURE__*/ _interop_require_default(require("./dom/metaLemma"));
|
|
51
|
-
var _deduction = /*#__PURE__*/ _interop_require_default(require("./dom/deduction"));
|
|
52
|
-
var _signature = /*#__PURE__*/ _interop_require_default(require("./dom/signature"));
|
|
53
|
-
var _typePrefix = /*#__PURE__*/ _interop_require_default(require("./dom/typePrefix"));
|
|
54
|
-
var _conjecture = /*#__PURE__*/ _interop_require_default(require("./dom/conjecture"));
|
|
55
|
-
var _conclusion = /*#__PURE__*/ _interop_require_default(require("./dom/conclusion"));
|
|
56
|
-
var _derivation = /*#__PURE__*/ _interop_require_default(require("./dom/derivation"));
|
|
57
|
-
var _combinator = /*#__PURE__*/ _interop_require_default(require("./dom/combinator"));
|
|
58
|
-
var _hypothesis = /*#__PURE__*/ _interop_require_default(require("./dom/hypothesis"));
|
|
59
|
-
var _constructor = /*#__PURE__*/ _interop_require_default(require("./dom/constructor"));
|
|
60
|
-
var _declaration = /*#__PURE__*/ _interop_require_default(require("./dom/declaration"));
|
|
61
|
-
var _supposition = /*#__PURE__*/ _interop_require_default(require("./dom/supposition"));
|
|
62
|
-
var _metatheorem = /*#__PURE__*/ _interop_require_default(require("./dom/metatheorem"));
|
|
63
|
-
var _metavariable = /*#__PURE__*/ _interop_require_default(require("./dom/metavariable"));
|
|
64
|
-
var _procedureCall = /*#__PURE__*/ _interop_require_default(require("./dom/procedureCall"));
|
|
65
|
-
var _subDerivation = /*#__PURE__*/ _interop_require_default(require("./dom/subDerivation"));
|
|
66
|
-
var _type1 = /*#__PURE__*/ _interop_require_default(require("./dom/assertion/type"));
|
|
67
|
-
var _defined = /*#__PURE__*/ _interop_require_default(require("./dom/assertion/defined"));
|
|
68
|
-
var _propertyRelation = /*#__PURE__*/ _interop_require_default(require("./dom/propertyRelation"));
|
|
69
|
-
var _term1 = /*#__PURE__*/ _interop_require_default(require("./dom/substitution/term"));
|
|
70
|
-
var _frame1 = /*#__PURE__*/ _interop_require_default(require("./dom/substitution/frame"));
|
|
71
|
-
var _subproof1 = /*#__PURE__*/ _interop_require_default(require("./dom/assertion/subproof"));
|
|
72
|
-
var _property1 = /*#__PURE__*/ _interop_require_default(require("./dom/assertion/property"));
|
|
73
|
-
var _contained = /*#__PURE__*/ _interop_require_default(require("./dom/assertion/contained"));
|
|
74
|
-
var _satisfies = /*#__PURE__*/ _interop_require_default(require("./dom/assertion/satisfies"));
|
|
75
|
-
var _procedureReference = /*#__PURE__*/ _interop_require_default(require("./dom/procedureReference"));
|
|
76
|
-
var _variable1 = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/variable"));
|
|
77
|
-
var _bracketed = /*#__PURE__*/ _interop_require_default(require("./dom/combinator/bracketed"));
|
|
78
|
-
var _bracketed1 = /*#__PURE__*/ _interop_require_default(require("./dom/constructor/bracketed"));
|
|
79
|
-
var _simpleType = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/simpleType"));
|
|
80
|
-
var _statement1 = /*#__PURE__*/ _interop_require_default(require("./dom/substitution/statement"));
|
|
81
|
-
var _reference1 = /*#__PURE__*/ _interop_require_default(require("./dom/substitution/reference"));
|
|
82
|
-
var _combinator1 = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/combinator"));
|
|
83
|
-
var _typePrefix1 = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/typePrefix"));
|
|
84
|
-
var _constructor1 = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/constructor"));
|
|
85
|
-
var _complexType = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/complexType"));
|
|
86
|
-
var _metavariable1 = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/metavariable"));
|
|
28
|
+
require("./preamble");
|
|
87
29
|
var _log = /*#__PURE__*/ _interop_require_default(require("./log"));
|
|
88
30
|
var _release = /*#__PURE__*/ _interop_require_default(require("./context/release"));
|
|
89
31
|
var _release1 = /*#__PURE__*/ _interop_require_default(require("./utilities/release"));
|
|
@@ -95,4 +37,4 @@ function _interop_require_default(obj) {
|
|
|
95
37
|
};
|
|
96
38
|
}
|
|
97
39
|
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFwiLi9wcmVhbWJsZVwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIExvZyB9IGZyb20gXCIuL2xvZ1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZWxlYXNlQ29udGV4dCB9IGZyb20gXCIuL2NvbnRleHQvcmVsZWFzZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByZWxlYXNlVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3JlbGVhc2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgY3VzdG9tR3JhbW1hclV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9jdXN0b21HcmFtbWFyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJlbGVhc2VDb250ZXh0VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3JlbGVhc2VDb250ZXh0XCI7XG4iXSwibmFtZXMiOlsiTG9nIiwiUmVsZWFzZUNvbnRleHQiLCJjdXN0b21HcmFtbWFyVXRpbGl0aWVzIiwicmVsZWFzZUNvbnRleHRVdGlsaXRpZXMiLCJyZWxlYXNlVXRpbGl0aWVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFJb0JBO2VBQUFBLFlBQUc7O1FBQ0hDO2VBQUFBLGdCQUFjOztRQUVkQztlQUFBQSxzQkFBc0I7O1FBQ3RCQztlQUFBQSx1QkFBdUI7O1FBRnZCQztlQUFBQSxpQkFBZ0I7OztRQUo3QjswREFFd0I7OERBQ1c7K0RBQ0U7b0VBQ007cUVBQ0MifQ==
|
package/lib/preamble.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
var _type = /*#__PURE__*/ _interop_require_default(require("./dom/type"));
|
|
6
|
+
var _term = /*#__PURE__*/ _interop_require_default(require("./dom/term"));
|
|
7
|
+
var _rule = /*#__PURE__*/ _interop_require_default(require("./dom/rule"));
|
|
8
|
+
var _step = /*#__PURE__*/ _interop_require_default(require("./dom/step"));
|
|
9
|
+
var _label = /*#__PURE__*/ _interop_require_default(require("./dom/label"));
|
|
10
|
+
var _axiom = /*#__PURE__*/ _interop_require_default(require("./dom/axiom"));
|
|
11
|
+
var _lemma = /*#__PURE__*/ _interop_require_default(require("./dom/lemma"));
|
|
12
|
+
var _frame = /*#__PURE__*/ _interop_require_default(require("./dom/frame"));
|
|
13
|
+
var _proof = /*#__PURE__*/ _interop_require_default(require("./dom/proof"));
|
|
14
|
+
var _error = /*#__PURE__*/ _interop_require_default(require("./dom/error"));
|
|
15
|
+
var _premise = /*#__PURE__*/ _interop_require_default(require("./dom/premise"));
|
|
16
|
+
var _theorem = /*#__PURE__*/ _interop_require_default(require("./dom/theorem"));
|
|
17
|
+
var _section = /*#__PURE__*/ _interop_require_default(require("./dom/section"));
|
|
18
|
+
var _equality = /*#__PURE__*/ _interop_require_default(require("./dom/equality"));
|
|
19
|
+
var _metaType = /*#__PURE__*/ _interop_require_default(require("./dom/metaType"));
|
|
20
|
+
var _subproof = /*#__PURE__*/ _interop_require_default(require("./dom/subproof"));
|
|
21
|
+
var _variable = /*#__PURE__*/ _interop_require_default(require("./dom/variable"));
|
|
22
|
+
var _property = /*#__PURE__*/ _interop_require_default(require("./dom/property"));
|
|
23
|
+
var _parameter = /*#__PURE__*/ _interop_require_default(require("./dom/parameter"));
|
|
24
|
+
var _reference = /*#__PURE__*/ _interop_require_default(require("./dom/reference"));
|
|
25
|
+
var _statement = /*#__PURE__*/ _interop_require_default(require("./dom/statement"));
|
|
26
|
+
var _judgement = /*#__PURE__*/ _interop_require_default(require("./dom/judgement"));
|
|
27
|
+
var _metaLemma = /*#__PURE__*/ _interop_require_default(require("./dom/metaLemma"));
|
|
28
|
+
var _deduction = /*#__PURE__*/ _interop_require_default(require("./dom/deduction"));
|
|
29
|
+
var _signature = /*#__PURE__*/ _interop_require_default(require("./dom/signature"));
|
|
30
|
+
var _typePrefix = /*#__PURE__*/ _interop_require_default(require("./dom/typePrefix"));
|
|
31
|
+
var _conjecture = /*#__PURE__*/ _interop_require_default(require("./dom/conjecture"));
|
|
32
|
+
var _conclusion = /*#__PURE__*/ _interop_require_default(require("./dom/conclusion"));
|
|
33
|
+
var _derivation = /*#__PURE__*/ _interop_require_default(require("./dom/derivation"));
|
|
34
|
+
var _combinator = /*#__PURE__*/ _interop_require_default(require("./dom/combinator"));
|
|
35
|
+
var _hypothesis = /*#__PURE__*/ _interop_require_default(require("./dom/hypothesis"));
|
|
36
|
+
var _constructor = /*#__PURE__*/ _interop_require_default(require("./dom/constructor"));
|
|
37
|
+
var _declaration = /*#__PURE__*/ _interop_require_default(require("./dom/declaration"));
|
|
38
|
+
var _supposition = /*#__PURE__*/ _interop_require_default(require("./dom/supposition"));
|
|
39
|
+
var _metatheorem = /*#__PURE__*/ _interop_require_default(require("./dom/metatheorem"));
|
|
40
|
+
var _metavariable = /*#__PURE__*/ _interop_require_default(require("./dom/metavariable"));
|
|
41
|
+
var _procedureCall = /*#__PURE__*/ _interop_require_default(require("./dom/procedureCall"));
|
|
42
|
+
var _subDerivation = /*#__PURE__*/ _interop_require_default(require("./dom/subDerivation"));
|
|
43
|
+
var _type1 = /*#__PURE__*/ _interop_require_default(require("./dom/assertion/type"));
|
|
44
|
+
var _defined = /*#__PURE__*/ _interop_require_default(require("./dom/assertion/defined"));
|
|
45
|
+
var _propertyRelation = /*#__PURE__*/ _interop_require_default(require("./dom/propertyRelation"));
|
|
46
|
+
var _term1 = /*#__PURE__*/ _interop_require_default(require("./dom/substitution/term"));
|
|
47
|
+
var _frame1 = /*#__PURE__*/ _interop_require_default(require("./dom/substitution/frame"));
|
|
48
|
+
var _subproof1 = /*#__PURE__*/ _interop_require_default(require("./dom/assertion/subproof"));
|
|
49
|
+
var _property1 = /*#__PURE__*/ _interop_require_default(require("./dom/assertion/property"));
|
|
50
|
+
var _contained = /*#__PURE__*/ _interop_require_default(require("./dom/assertion/contained"));
|
|
51
|
+
var _satisfies = /*#__PURE__*/ _interop_require_default(require("./dom/assertion/satisfies"));
|
|
52
|
+
var _procedureReference = /*#__PURE__*/ _interop_require_default(require("./dom/procedureReference"));
|
|
53
|
+
var _variable1 = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/variable"));
|
|
54
|
+
var _bracketed = /*#__PURE__*/ _interop_require_default(require("./dom/combinator/bracketed"));
|
|
55
|
+
var _bracketed1 = /*#__PURE__*/ _interop_require_default(require("./dom/constructor/bracketed"));
|
|
56
|
+
var _simpleType = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/simpleType"));
|
|
57
|
+
var _statement1 = /*#__PURE__*/ _interop_require_default(require("./dom/substitution/statement"));
|
|
58
|
+
var _reference1 = /*#__PURE__*/ _interop_require_default(require("./dom/substitution/reference"));
|
|
59
|
+
var _combinator1 = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/combinator"));
|
|
60
|
+
var _typePrefix1 = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/typePrefix"));
|
|
61
|
+
var _constructor1 = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/constructor"));
|
|
62
|
+
var _complexType = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/complexType"));
|
|
63
|
+
var _metavariable1 = /*#__PURE__*/ _interop_require_default(require("./dom/declaration/metavariable"));
|
|
64
|
+
function _interop_require_default(obj) {
|
|
65
|
+
return obj && obj.__esModule ? obj : {
|
|
66
|
+
default: obj
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmVhbWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFR5cGUgZnJvbSBcIi4vZG9tL3R5cGVcIjtcbmltcG9ydCBUZXJtIGZyb20gXCIuL2RvbS90ZXJtXCI7XG5pbXBvcnQgUnVsZSBmcm9tIFwiLi9kb20vcnVsZVwiO1xuaW1wb3J0IFN0ZXAgZnJvbSBcIi4vZG9tL3N0ZXBcIjtcbmltcG9ydCBMYWJlbCBmcm9tIFwiLi9kb20vbGFiZWxcIjtcbmltcG9ydCBBeGlvbSBmcm9tIFwiLi9kb20vYXhpb21cIjtcbmltcG9ydCBMZW1tYSBmcm9tIFwiLi9kb20vbGVtbWFcIjtcbmltcG9ydCBGcmFtZSBmcm9tIFwiLi9kb20vZnJhbWVcIjtcbmltcG9ydCBQcm9vZiBmcm9tIFwiLi9kb20vcHJvb2ZcIjtcbmltcG9ydCBFcnJvciBmcm9tIFwiLi9kb20vZXJyb3JcIjtcbmltcG9ydCBQcmVtaXNlIGZyb20gXCIuL2RvbS9wcmVtaXNlXCI7XG5pbXBvcnQgVGhlb3JlbSBmcm9tIFwiLi9kb20vdGhlb3JlbVwiO1xuaW1wb3J0IFNlY3Rpb24gZnJvbSBcIi4vZG9tL3NlY3Rpb25cIjtcbmltcG9ydCBFcXVhbGl0eSBmcm9tIFwiLi9kb20vZXF1YWxpdHlcIjtcbmltcG9ydCBNZXRhVHlwZSBmcm9tIFwiLi9kb20vbWV0YVR5cGVcIjtcbmltcG9ydCBTdWJwcm9vZiBmcm9tIFwiLi9kb20vc3VicHJvb2ZcIjtcbmltcG9ydCBWYXJpYWJsZSBmcm9tIFwiLi9kb20vdmFyaWFibGVcIjtcbmltcG9ydCBQcm9wZXJ0eSBmcm9tIFwiLi9kb20vcHJvcGVydHlcIjtcbmltcG9ydCBQYXJhbWV0ZXIgZnJvbSBcIi4vZG9tL3BhcmFtZXRlclwiO1xuaW1wb3J0IFJlZmVyZW5jZSBmcm9tIFwiLi9kb20vcmVmZXJlbmNlXCI7XG5pbXBvcnQgU3RhdGVtZW50IGZyb20gXCIuL2RvbS9zdGF0ZW1lbnRcIjtcbmltcG9ydCBKdWRnZW1lbnQgZnJvbSBcIi4vZG9tL2p1ZGdlbWVudFwiO1xuaW1wb3J0IE1ldGFMZW1tYSBmcm9tIFwiLi9kb20vbWV0YUxlbW1hXCI7XG5pbXBvcnQgRGVkdWN0aW9uIGZyb20gXCIuL2RvbS9kZWR1Y3Rpb25cIjtcbmltcG9ydCBTaWduYXR1cmUgZnJvbSBcIi4vZG9tL3NpZ25hdHVyZVwiO1xuaW1wb3J0IFR5cGVQcmVmaXggZnJvbSBcIi4vZG9tL3R5cGVQcmVmaXhcIjtcbmltcG9ydCBDb25qZWN0dXJlIGZyb20gXCIuL2RvbS9jb25qZWN0dXJlXCI7XG5pbXBvcnQgQ29uY2x1c2lvbiBmcm9tIFwiLi9kb20vY29uY2x1c2lvblwiO1xuaW1wb3J0IERlcml2YXRpb24gZnJvbSBcIi4vZG9tL2Rlcml2YXRpb25cIjtcbmltcG9ydCBDb21iaW5hdG9yIGZyb20gXCIuL2RvbS9jb21iaW5hdG9yXCI7XG5pbXBvcnQgSHlwb3RoZXNpcyBmcm9tIFwiLi9kb20vaHlwb3RoZXNpc1wiO1xuaW1wb3J0IENvbnN0cnVjdG9yIGZyb20gXCIuL2RvbS9jb25zdHJ1Y3RvclwiO1xuaW1wb3J0IERlY2xhcmF0aW9uIGZyb20gXCIuL2RvbS9kZWNsYXJhdGlvblwiO1xuaW1wb3J0IFN1cHBvc2l0aW9uIGZyb20gXCIuL2RvbS9zdXBwb3NpdGlvblwiO1xuaW1wb3J0IE1ldGF0aGVvcmVtIGZyb20gXCIuL2RvbS9tZXRhdGhlb3JlbVwiO1xuaW1wb3J0IE1ldGF2YXJpYWJsZSBmcm9tIFwiLi9kb20vbWV0YXZhcmlhYmxlXCI7XG5pbXBvcnQgUHJvY2VkdXJlQ2FsbCBmcm9tIFwiLi9kb20vcHJvY2VkdXJlQ2FsbFwiO1xuaW1wb3J0IFN1YkRlcml2YXRpb24gZnJvbSBcIi4vZG9tL3N1YkRlcml2YXRpb25cIjtcbmltcG9ydCBUeXBlQXNzZXJ0aW9uIGZyb20gXCIuL2RvbS9hc3NlcnRpb24vdHlwZVwiO1xuaW1wb3J0IERlZmluZWRBc3NlcnRpb24gZnJvbSBcIi4vZG9tL2Fzc2VydGlvbi9kZWZpbmVkXCI7XG5pbXBvcnQgUHJvcGVydHlSZWxhdGlvbiBmcm9tIFwiLi9kb20vcHJvcGVydHlSZWxhdGlvblwiO1xuaW1wb3J0IFRlcm1TdWJzdGl0dXRpb24gZnJvbSBcIi4vZG9tL3N1YnN0aXR1dGlvbi90ZXJtXCI7XG5pbXBvcnQgRnJhbWVTdWJzdGl0dXRpb24gZnJvbSBcIi4vZG9tL3N1YnN0aXR1dGlvbi9mcmFtZVwiO1xuaW1wb3J0IFN1YnByb29mQXNzZXJ0aW9uIGZyb20gXCIuL2RvbS9hc3NlcnRpb24vc3VicHJvb2ZcIjtcbmltcG9ydCBQcm9wZXJ0eUFzc2VydGlvbiBmcm9tIFwiLi9kb20vYXNzZXJ0aW9uL3Byb3BlcnR5XCI7XG5pbXBvcnQgQ29udGFpbmVkQXNzZXJ0aW9uIGZyb20gXCIuL2RvbS9hc3NlcnRpb24vY29udGFpbmVkXCI7XG5pbXBvcnQgU2F0aXNmaWVzQXNzZXJ0aW9uIGZyb20gXCIuL2RvbS9hc3NlcnRpb24vc2F0aXNmaWVzXCI7XG5pbXBvcnQgUHJvY2VkdXJlUmVmZXJlbmNlIGZyb20gXCIuL2RvbS9wcm9jZWR1cmVSZWZlcmVuY2VcIjtcbmltcG9ydCBWYXJpYWJsZURlY2xhcmF0aW9uIGZyb20gXCIuL2RvbS9kZWNsYXJhdGlvbi92YXJpYWJsZVwiO1xuaW1wb3J0IEJyYWNrZXRlZENvbWJpbmF0b3IgZnJvbSBcIi4vZG9tL2NvbWJpbmF0b3IvYnJhY2tldGVkXCI7XG5pbXBvcnQgQnJhY2tldGVkQ29uc3RydWN0b3IgZnJvbSBcIi4vZG9tL2NvbnN0cnVjdG9yL2JyYWNrZXRlZFwiO1xuaW1wb3J0IFNpbXBsZVR5cGVEZWNsYXJhdGlvbiBmcm9tIFwiLi9kb20vZGVjbGFyYXRpb24vc2ltcGxlVHlwZVwiO1xuaW1wb3J0IFN0YXRlbWVudFN1YnN0aXR1dGlvbiBmcm9tIFwiLi9kb20vc3Vic3RpdHV0aW9uL3N0YXRlbWVudFwiO1xuaW1wb3J0IFJlZmVyZW5jZVN1YnN0aXR1dGlvbiBmcm9tIFwiLi9kb20vc3Vic3RpdHV0aW9uL3JlZmVyZW5jZVwiO1xuaW1wb3J0IENvbWJpbmF0b3JEZWNsYXJhdGlvbiBmcm9tIFwiLi9kb20vZGVjbGFyYXRpb24vY29tYmluYXRvclwiO1xuaW1wb3J0IFR5cGVQcmVmaXhEZWNsYXJhdGlvbiBmcm9tIFwiLi9kb20vZGVjbGFyYXRpb24vdHlwZVByZWZpeFwiO1xuaW1wb3J0IENvbnN0cnVjdG9yRGVjbGFyYXRpb24gZnJvbSBcIi4vZG9tL2RlY2xhcmF0aW9uL2NvbnN0cnVjdG9yXCI7XG5pbXBvcnQgQ29tcGxleFR5cGVEZWNsYXJhdGlvbiBmcm9tIFwiLi9kb20vZGVjbGFyYXRpb24vY29tcGxleFR5cGVcIjtcbmltcG9ydCBNZXRhdmFyaWFibGVEZWNsYXJhdGlvbiBmcm9tIFwiLi9kb20vZGVjbGFyYXRpb24vbWV0YXZhcmlhYmxlXCI7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7MkRBRWlCOzJEQUNBOzJEQUNBOzJEQUNBOzREQUNDOzREQUNBOzREQUNBOzREQUNBOzREQUNBOzREQUNBOzhEQUNFOzhEQUNBOzhEQUNBOytEQUNDOytEQUNBOytEQUNBOytEQUNBOytEQUNBO2dFQUNDO2dFQUNBO2dFQUNBO2dFQUNBO2dFQUNBO2dFQUNBO2dFQUNBO2lFQUNDO2lFQUNBO2lFQUNBO2lFQUNBO2lFQUNBO2lFQUNBO2tFQUNDO2tFQUNBO2tFQUNBO2tFQUNBO21FQUNDO29FQUNDO29FQUNBOzREQUNBOzhEQUNHO3VFQUNBOzREQUNBOzZEQUNDO2dFQUNBO2dFQUNBO2dFQUNDO2dFQUNBO3lFQUNBO2dFQUNDO2dFQUNBO2lFQUNDO2lFQUNDO2lFQUNBO2lFQUNBO2tFQUNBO2tFQUNBO21FQUNDO2tFQUNBO29FQUNDIn0=
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get default () {
|
|
13
|
+
return _default;
|
|
14
|
+
},
|
|
15
|
+
get releaseContextFromDependency () {
|
|
16
|
+
return releaseContextFromDependency;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
var _occamfilesystem = require("occam-file-system");
|
|
20
|
+
var _necessary = require("necessary");
|
|
21
|
+
var _releaseContext = require("../utilities/releaseContext");
|
|
22
|
+
var loadProject = _occamfilesystem.fileSystemUtilities.loadProject, concatenatePaths = _necessary.pathUtilities.concatenatePaths, readFile = _necessary.fileSystemUtilities.readFile, isEntryFile = _necessary.fileSystemUtilities.isEntryFile, checkEntryExists = _necessary.fileSystemUtilities.checkEntryExists;
|
|
23
|
+
function releaseContextFromDependency(dependency, context, callback) {
|
|
24
|
+
var projectsDirectoryPath = process.cwd(), dependencyName = dependency.getName(), entryPath = concatenatePaths(projectsDirectoryPath, dependencyName), entryExists = checkEntryExists(entryPath);
|
|
25
|
+
if (!entryExists) {
|
|
26
|
+
var _$error = null, releaseContext = null;
|
|
27
|
+
callback(_$error, releaseContext);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
var releaseContext1 = null;
|
|
31
|
+
try {
|
|
32
|
+
var entryFile = isEntryFile(entryPath);
|
|
33
|
+
if (entryFile) {
|
|
34
|
+
var filePath = entryPath, content = readFile(filePath), jsonString = content, json = JSON.parse(jsonString);
|
|
35
|
+
releaseContext1 = (0, _releaseContext.releaseContextFromJSON)(json, context);
|
|
36
|
+
} else {
|
|
37
|
+
var projectName = dependencyName, project = loadProject(projectName, projectsDirectoryPath);
|
|
38
|
+
if (project !== null) {
|
|
39
|
+
releaseContext1 = releaseContextFromProject(project, context);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
} catch (error) {
|
|
43
|
+
callback(error, releaseContext1);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
var _$error1 = null;
|
|
47
|
+
callback(_$error1, releaseContext1);
|
|
48
|
+
}
|
|
49
|
+
var _default = {
|
|
50
|
+
releaseContextFromDependency: releaseContextFromDependency
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZmlsZVN5c3RlbVV0aWxpdGllcyBhcyBvY2NhbUZpbGVTeXN0ZW1VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tZmlsZS1zeXN0ZW1cIjtcbmltcG9ydCB7IHBhdGhVdGlsaXRpZXMsIGZpbGVTeXN0ZW1VdGlsaXRpZXMgYXMgbmVjZXNzYXJ5RmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgcmVsZWFzZUNvbnRleHRGcm9tSlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvcmVsZWFzZUNvbnRleHRcIjtcblxuY29uc3QgeyBsb2FkUHJvamVjdCB9ID0gb2NjYW1GaWxlU3lzdGVtVXRpbGl0aWVzLFxuICAgICAgeyBjb25jYXRlbmF0ZVBhdGhzIH0gPSBwYXRoVXRpbGl0aWVzLFxuICAgICAgeyByZWFkRmlsZSwgaXNFbnRyeUZpbGUsIGNoZWNrRW50cnlFeGlzdHMgfSA9IG5lY2Vzc2FyeUZpbGVTeXN0ZW1VdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5KGRlcGVuZGVuY3ksIGNvbnRleHQsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHByb2plY3RzRGlyZWN0b3J5UGF0aCA9IHByb2Nlc3MuY3dkKCksIC8vL1xuICAgICAgICBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICBlbnRyeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgZGVwZW5kZW5jeU5hbWUpLFxuICAgICAgICBlbnRyeUV4aXN0cyA9IGNoZWNrRW50cnlFeGlzdHMoZW50cnlQYXRoKTtcblxuICBpZiAoIWVudHJ5RXhpc3RzKSB7XG4gICAgY29uc3QgZXJyb3IgPSBudWxsLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0ID0gbnVsbDtcblxuICAgIGNhbGxiYWNrKGVycm9yLCByZWxlYXNlQ29udGV4dCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBsZXQgcmVsZWFzZUNvbnRleHQgPSBudWxsO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgZW50cnlGaWxlID0gaXNFbnRyeUZpbGUoZW50cnlQYXRoKTtcblxuICAgIGlmIChlbnRyeUZpbGUpIHtcbiAgICAgIGNvbnN0IGZpbGVQYXRoID0gZW50cnlQYXRoLCAvLy9cbiAgICAgICAgICAgIGNvbnRlbnQgPSByZWFkRmlsZShmaWxlUGF0aCksXG4gICAgICAgICAgICBqc29uU3RyaW5nID0gY29udGVudCwgLy8vXG4gICAgICAgICAgICBqc29uID0gSlNPTi5wYXJzZShqc29uU3RyaW5nKTtcblxuICAgICAgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dEZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwcm9qZWN0TmFtZSA9IGRlcGVuZGVuY3lOYW1lLCAvLy9cbiAgICAgICAgcHJvamVjdCA9IGxvYWRQcm9qZWN0KHByb2plY3ROYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xuXG4gICAgICBpZiAocHJvamVjdCAhPT0gbnVsbCkge1xuICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0RnJvbVByb2plY3QocHJvamVjdCwgY29udGV4dCk7XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNhbGxiYWNrKGVycm9yLCByZWxlYXNlQ29udGV4dCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgY2FsbGJhY2soZXJyb3IsIHJlbGVhc2VDb250ZXh0KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICByZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5XG59O1xuIl0sIm5hbWVzIjpbInJlbGVhc2VDb250ZXh0RnJvbURlcGVuZGVuY3kiLCJsb2FkUHJvamVjdCIsIm9jY2FtRmlsZVN5c3RlbVV0aWxpdGllcyIsImNvbmNhdGVuYXRlUGF0aHMiLCJwYXRoVXRpbGl0aWVzIiwicmVhZEZpbGUiLCJuZWNlc3NhcnlGaWxlU3lzdGVtVXRpbGl0aWVzIiwiaXNFbnRyeUZpbGUiLCJjaGVja0VudHJ5RXhpc3RzIiwiZGVwZW5kZW5jeSIsImNvbnRleHQiLCJjYWxsYmFjayIsInByb2plY3RzRGlyZWN0b3J5UGF0aCIsInByb2Nlc3MiLCJjd2QiLCJkZXBlbmRlbmN5TmFtZSIsImdldE5hbWUiLCJlbnRyeVBhdGgiLCJlbnRyeUV4aXN0cyIsImVycm9yIiwicmVsZWFzZUNvbnRleHQiLCJlbnRyeUZpbGUiLCJmaWxlUGF0aCIsImNvbnRlbnQiLCJqc29uU3RyaW5nIiwianNvbiIsIkpTT04iLCJwYXJzZSIsInJlbGVhc2VDb250ZXh0RnJvbUpTT04iLCJwcm9qZWN0TmFtZSIsInByb2plY3QiLCJyZWxlYXNlQ29udGV4dEZyb21Qcm9qZWN0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUF5REE7ZUFBQTs7UUE5Q2dCQTtlQUFBQTs7OytCQVRnRDt5QkFDbUI7OEJBRTVDO0FBRXZDLElBQU0sQUFBRUMsY0FBZ0JDLG9DQUF3QixDQUF4Q0QsYUFDRixBQUFFRSxtQkFBcUJDLHdCQUFhLENBQWxDRCxrQkFDQUUsV0FBNENDLDhCQUE0QixDQUF4RUQsVUFBVUUsY0FBa0NELDhCQUE0QixDQUE5REMsYUFBYUMsbUJBQXFCRiw4QkFBNEIsQ0FBakRFO0FBRXhCLFNBQVNSLDZCQUE2QlMsVUFBVSxFQUFFQyxPQUFPLEVBQUVDLFFBQVE7SUFDeEUsSUFBTUMsd0JBQXdCQyxRQUFRQyxHQUFHLElBQ25DQyxpQkFBaUJOLFdBQVdPLE9BQU8sSUFDbkNDLFlBQVlkLGlCQUFpQlMsdUJBQXVCRyxpQkFDcERHLGNBQWNWLGlCQUFpQlM7SUFFckMsSUFBSSxDQUFDQyxhQUFhO1FBQ2hCLElBQU1DLFVBQVEsTUFDUkMsaUJBQWlCO1FBRXZCVCxTQUFTUSxTQUFPQztRQUVoQjtJQUNGO0lBRUEsSUFBSUEsa0JBQWlCO0lBRXJCLElBQUk7UUFDRixJQUFNQyxZQUFZZCxZQUFZVTtRQUU5QixJQUFJSSxXQUFXO1lBQ2IsSUFBTUMsV0FBV0wsV0FDWE0sVUFBVWxCLFNBQVNpQixXQUNuQkUsYUFBYUQsU0FDYkUsT0FBT0MsS0FBS0MsS0FBSyxDQUFDSDtZQUV4Qkosa0JBQWlCUSxJQUFBQSxzQ0FBc0IsRUFBQ0gsTUFBTWY7UUFDaEQsT0FBTztZQUNMLElBQU1tQixjQUFjZCxnQkFDbEJlLFVBQVU3QixZQUFZNEIsYUFBYWpCO1lBRXJDLElBQUlrQixZQUFZLE1BQU07Z0JBQ3BCVixrQkFBaUJXLDBCQUEwQkQsU0FBU3BCO1lBQ3REO1FBQ0Y7SUFDRixFQUFFLE9BQU9TLE9BQU87UUFDZFIsU0FBU1EsT0FBT0M7UUFFaEI7SUFDRjtJQUVBLElBQU1ELFdBQVE7SUFFZFIsU0FBU1EsVUFBT0M7QUFDbEI7SUFFQSxXQUFlO0lBQ2JwQiw4QkFBQUE7QUFDRiJ9
|
|
@@ -15,9 +15,6 @@ _export(exports, {
|
|
|
15
15
|
get initialiseReleaseContext () {
|
|
16
16
|
return initialiseReleaseContext;
|
|
17
17
|
},
|
|
18
|
-
get releaseContextFromDependency () {
|
|
19
|
-
return releaseContextFromDependency;
|
|
20
|
-
},
|
|
21
18
|
get releaseContextFromJSON () {
|
|
22
19
|
return releaseContextFromJSON;
|
|
23
20
|
},
|
|
@@ -27,7 +24,6 @@ _export(exports, {
|
|
|
27
24
|
});
|
|
28
25
|
var _necessary = require("necessary");
|
|
29
26
|
var _occamentities = require("occam-entities");
|
|
30
|
-
var _occamfilesystem = require("occam-file-system");
|
|
31
27
|
var _release = /*#__PURE__*/ _interop_require_default(require("../context/release"));
|
|
32
28
|
function _array_like_to_array(arr, len) {
|
|
33
29
|
if (len == null || len > arr.length) len = arr.length;
|
|
@@ -59,56 +55,7 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
59
55
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
60
56
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
61
57
|
}
|
|
62
|
-
var last = _necessary.arrayUtilities.last,
|
|
63
|
-
function releaseContextFromDependency(dependency, context, callback) {
|
|
64
|
-
var projectsDirectoryPath = process.cwd(), dependencyName = dependency.getName(), entryPath = concatenatePaths(projectsDirectoryPath, dependencyName), entryExists = checkEntryExists(entryPath);
|
|
65
|
-
if (!entryExists) {
|
|
66
|
-
var _$error = null, releaseContext = null;
|
|
67
|
-
callback(_$error, releaseContext);
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
var releaseContext1 = null;
|
|
71
|
-
try {
|
|
72
|
-
var entryFile = isEntryFile(entryPath);
|
|
73
|
-
if (entryFile) {
|
|
74
|
-
var filePath = entryPath, content = readFile(filePath), jsonString = content, json = JSON.parse(jsonString);
|
|
75
|
-
releaseContext1 = releaseContextFromJSON(json, context);
|
|
76
|
-
} else {
|
|
77
|
-
var projectName = dependencyName, project = loadProject(projectName, projectsDirectoryPath);
|
|
78
|
-
if (project !== null) {
|
|
79
|
-
releaseContext1 = releaseContextFromProject(project, context);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
} catch (error) {
|
|
83
|
-
callback(error, releaseContext1);
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
var _$error1 = null;
|
|
87
|
-
callback(_$error1, releaseContext1);
|
|
88
|
-
}
|
|
89
|
-
function releaseContextFromJSON(json, context) {
|
|
90
|
-
var log = context.log, name = json.name;
|
|
91
|
-
context = json.context; ///
|
|
92
|
-
var entries = json.entries;
|
|
93
|
-
json = entries; ///
|
|
94
|
-
entries = _occamentities.Entries.fromJSON(json);
|
|
95
|
-
var contextJSON = context; ///
|
|
96
|
-
json = contextJSON; ///
|
|
97
|
-
var releaseContext = _release.default.fromLogNameJSONAndEntries(log, name, json, entries);
|
|
98
|
-
return releaseContext;
|
|
99
|
-
}
|
|
100
|
-
function releaseContextFromProject(project, context) {
|
|
101
|
-
var releaseContext = null;
|
|
102
|
-
var metaJSONFile = project.getMetaJSONFile();
|
|
103
|
-
if (metaJSONFile !== null) {
|
|
104
|
-
var metaJSONFileValid = isMetaJSONFileValid(metaJSONFile);
|
|
105
|
-
if (metaJSONFileValid) {
|
|
106
|
-
var log = context.log, name = project.getName(), json = null, entries = project.getEntries();
|
|
107
|
-
releaseContext = _release.default.fromLogNameJSONAndEntries(log, name, json, entries);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return releaseContext;
|
|
111
|
-
}
|
|
58
|
+
var last = _necessary.arrayUtilities.last, isMetaJSONFileValid = _occamentities.metaJSONUtilities.isMetaJSONFileValid;
|
|
112
59
|
function createReleaseContext(dependency, dependentNames, context, callback) {
|
|
113
60
|
var log = context.log, releaseContextMap = context.releaseContextMap, dependencyName = dependency.getName(), releaseName = dependencyName, releaseContext = releaseContextMap[releaseName] || null;
|
|
114
61
|
if (releaseContext !== null) {
|
|
@@ -179,6 +126,29 @@ function initialiseReleaseContext(dependency, context) {
|
|
|
179
126
|
}
|
|
180
127
|
}
|
|
181
128
|
}
|
|
129
|
+
function releaseContextFromJSON(json, context) {
|
|
130
|
+
var log = context.log, name = json.name;
|
|
131
|
+
context = json.context; ///
|
|
132
|
+
var entries = json.entries;
|
|
133
|
+
json = entries; ///
|
|
134
|
+
entries = _occamentities.Entries.fromJSON(json);
|
|
135
|
+
var contextJSON = context; ///
|
|
136
|
+
json = contextJSON; ///
|
|
137
|
+
var releaseContext = _release.default.fromLogNameJSONAndEntries(log, name, json, entries);
|
|
138
|
+
return releaseContext;
|
|
139
|
+
}
|
|
140
|
+
function releaseContextFromProject(project, context) {
|
|
141
|
+
var releaseContext = null;
|
|
142
|
+
var metaJSONFile = project.getMetaJSONFile();
|
|
143
|
+
if (metaJSONFile !== null) {
|
|
144
|
+
var metaJSONFileValid = isMetaJSONFileValid(metaJSONFile);
|
|
145
|
+
if (metaJSONFileValid) {
|
|
146
|
+
var log = context.log, name = project.getName(), json = null, entries = project.getEntries();
|
|
147
|
+
releaseContext = _release.default.fromLogNameJSONAndEntries(log, name, json, entries);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return releaseContext;
|
|
151
|
+
}
|
|
182
152
|
function retrieveReleaseContexts(releaseContext, releaseContextMap) {
|
|
183
153
|
var releaseContexts = [], remainingReleaseContext = releaseContext, remainingReleaseContexts = [
|
|
184
154
|
remainingReleaseContext
|
|
@@ -274,4 +244,4 @@ function initialiseDependencyReleaseContexts(dependency, releaseContext, context
|
|
|
274
244
|
});
|
|
275
245
|
}
|
|
276
246
|
|
|
277
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVsZWFzZUNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgRW50cmllcywgbWV0YUpTT05VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tZW50aXRpZXNcIjtcbmltcG9ydCB7IGZpbGVTeXN0ZW1VdGlsaXRpZXMgYXMgb2NjYW1GaWxlU3lzdGVtVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWZpbGUtc3lzdGVtXCI7XG5pbXBvcnQgeyBwYXRoVXRpbGl0aWVzLCBmaWxlU3lzdGVtVXRpbGl0aWVzIGFzIG5lY2Vzc2FyeUZpbGVTeXN0ZW1VdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBSZWxlYXNlQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9yZWxlYXNlXCI7XG5cbmNvbnN0IHsgbGFzdCB9ID0gYXJyYXlVdGlsaXRpZXMsXG4gICAgICB7IGxvYWRQcm9qZWN0IH0gPSBvY2NhbUZpbGVTeXN0ZW1VdGlsaXRpZXMsXG4gICAgICB7IGNvbmNhdGVuYXRlUGF0aHMgfSA9IHBhdGhVdGlsaXRpZXMsXG4gICAgICB7IGlzTWV0YUpTT05GaWxlVmFsaWQgfSA9IG1ldGFKU09OVXRpbGl0aWVzLFxuICAgICAgeyByZWFkRmlsZSwgaXNFbnRyeUZpbGUsIGNoZWNrRW50cnlFeGlzdHMgfSA9IG5lY2Vzc2FyeUZpbGVTeXN0ZW1VdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5KGRlcGVuZGVuY3ksIGNvbnRleHQsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHByb2plY3RzRGlyZWN0b3J5UGF0aCA9IHByb2Nlc3MuY3dkKCksIC8vL1xuICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgZW50cnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGRlcGVuZGVuY3lOYW1lKSxcbiAgICBlbnRyeUV4aXN0cyA9IGNoZWNrRW50cnlFeGlzdHMoZW50cnlQYXRoKTtcblxuICBpZiAoIWVudHJ5RXhpc3RzKSB7XG4gICAgY29uc3QgZXJyb3IgPSBudWxsLFxuICAgICAgcmVsZWFzZUNvbnRleHQgPSBudWxsO1xuXG4gICAgY2FsbGJhY2soZXJyb3IsIHJlbGVhc2VDb250ZXh0KTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCByZWxlYXNlQ29udGV4dCA9IG51bGw7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBlbnRyeUZpbGUgPSBpc0VudHJ5RmlsZShlbnRyeVBhdGgpO1xuXG4gICAgaWYgKGVudHJ5RmlsZSkge1xuICAgICAgY29uc3QgZmlsZVBhdGggPSBlbnRyeVBhdGgsIC8vL1xuICAgICAgICBjb250ZW50ID0gcmVhZEZpbGUoZmlsZVBhdGgpLFxuICAgICAgICBqc29uU3RyaW5nID0gY29udGVudCwgLy8vXG4gICAgICAgIGpzb24gPSBKU09OLnBhcnNlKGpzb25TdHJpbmcpO1xuXG4gICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0RnJvbUpTT04oanNvbiwgY29udGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHByb2plY3ROYW1lID0gZGVwZW5kZW5jeU5hbWUsIC8vL1xuICAgICAgICBwcm9qZWN0ID0gbG9hZFByb2plY3QocHJvamVjdE5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XG5cbiAgICAgIGlmIChwcm9qZWN0ICE9PSBudWxsKSB7XG4gICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRGcm9tUHJvamVjdChwcm9qZWN0LCBjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY2FsbGJhY2soZXJyb3IsIHJlbGVhc2VDb250ZXh0KTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGVycm9yID0gbnVsbDtcblxuICBjYWxsYmFjayhlcnJvciwgcmVsZWFzZUNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVsZWFzZUNvbnRleHRGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgbG9nIH0gPSBjb250ZXh0LFxuICAgIHsgbmFtZSB9ID0ganNvbjtcblxuICAoe2NvbnRleHR9ID0ganNvbik7IC8vL1xuXG4gIGxldCB7IGVudHJpZXMgfSA9IGpzb247XG5cbiAganNvbiA9IGVudHJpZXM7IC8vL1xuXG4gIGVudHJpZXMgPSBFbnRyaWVzLmZyb21KU09OKGpzb24pO1xuXG4gIGNvbnN0IGNvbnRleHRKU09OID0gY29udGV4dDsgIC8vL1xuXG4gIGpzb24gPSBjb250ZXh0SlNPTjsgLy8vXG5cbiAgY29uc3QgcmVsZWFzZUNvbnRleHQgPSBSZWxlYXNlQ29udGV4dC5mcm9tTG9nTmFtZUpTT05BbmRFbnRyaWVzKGxvZywgbmFtZSwganNvbiwgZW50cmllcyk7XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVsZWFzZUNvbnRleHRGcm9tUHJvamVjdChwcm9qZWN0LCBjb250ZXh0KSB7XG4gIGxldCByZWxlYXNlQ29udGV4dCA9IG51bGw7XG5cbiAgY29uc3QgbWV0YUpTT05GaWxlID0gcHJvamVjdC5nZXRNZXRhSlNPTkZpbGUoKTtcblxuICBpZiAobWV0YUpTT05GaWxlICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YUpTT05GaWxlVmFsaWQgPSBpc01ldGFKU09ORmlsZVZhbGlkKG1ldGFKU09ORmlsZSk7XG5cbiAgICBpZiAobWV0YUpTT05GaWxlVmFsaWQpIHtcbiAgICAgIGNvbnN0IHsgbG9nIH0gPSBjb250ZXh0LFxuICAgICAgICBuYW1lID0gcHJvamVjdC5nZXROYW1lKCksXG4gICAgICAgIGpzb24gPSBudWxsLFxuICAgICAgICBlbnRyaWVzID0gcHJvamVjdC5nZXRFbnRyaWVzKCk7XG5cbiAgICAgIHJlbGVhc2VDb250ZXh0ID0gUmVsZWFzZUNvbnRleHQuZnJvbUxvZ05hbWVKU09OQW5kRW50cmllcyhsb2csIG5hbWUsIGpzb24sIGVudHJpZXMpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZWxlYXNlQ29udGV4dDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0LCBjYWxsYmFjaykge1xuICBjb25zdCB7IGxvZywgcmVsZWFzZUNvbnRleHRNYXAgfSA9IGNvbnRleHQsXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWUsIC8vL1xuICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSB8fCBudWxsO1xuXG4gIGlmIChyZWxlYXNlQ29udGV4dCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGVycm9yID0gbnVsbCxcbiAgICAgICAgICByZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kgPSBjaGVja1JlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeShyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpO1xuXG4gICAgbGV0IHN1Y2Nlc3M7XG5cbiAgICBpZiAocmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5KSB7XG4gICAgICBsb2cuZGVidWcoYEFscmVhZHkgY3JlYXRlZCB0aGUgJyR7cmVsZWFzZU5hbWV9JyBjb250ZXh0LmApO1xuXG4gICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGNhbGxiYWNrKGVycm9yLCBzdWNjZXNzKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeSB9ID0gY29udGV4dCxcbiAgICAgICAgZGVwZW5kZW5jeVN0cmluZyA9IGRlcGVuZGVuY3kuYXNTdHJpbmcoKSxcbiAgICAgICAgZGVwZW5kZW50TmFtZXNMZW5ndGggPSBkZXBlbmRlbnROYW1lcy5sZW5ndGg7XG5cbiAgaWYgKGRlcGVuZGVudE5hbWVzTGVuZ3RoID09PSAwKSB7XG4gICAgbG9nLmluZm8oYENyZWF0aW5nIHRoZSAnJHtyZWxlYXNlTmFtZX0nIGNvbnRleHQuLi5gKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBsYXN0RGVwZW5kZW50TmFtZSA9IGxhc3QoZGVwZW5kZW50TmFtZXMpLFxuICAgICAgICAgIGRlcGVuZGVudE5hbWUgPSBsYXN0RGVwZW5kZW50TmFtZTsgIC8vL1xuXG4gICAgbG9nLmluZm8oYENyZWF0aW5nIHRoZSAnJHtyZWxlYXNlTmFtZX0nIGNvbnRleHQgZ2l2ZW4gdGhlICcke2RlcGVuZGVudE5hbWV9JyBkZXBlbmRhbnQncyAnJHtkZXBlbmRlbmN5U3RyaW5nfScgZGVwZW5kZW5jeS4uLmApO1xuICB9XG5cbiAgcmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeShkZXBlbmRlbmN5LCBjb250ZXh0LCAoZXJyb3IsIHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICBjYWxsYmFjayhlcnJvcik7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZWxlYXNlQ29udGV4dENyZWF0ZWQgPSBjaGVja1JlbGVhc2VDb250ZXh0Q3JlYXRlZChyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgY29udGV4dCk7XG5cbiAgICBpZiAoIXJlbGVhc2VDb250ZXh0Q3JlYXRlZCkge1xuICAgICAgY29uc3QgZXJyb3IgPSBudWxsLFxuICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICBjYWxsYmFjayhlcnJvciwgc3VjY2Vzcyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kgPSBjaGVja1JlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeShyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpO1xuXG4gICAgaWYgKCFyZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gbnVsbCxcbiAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgY2FsbGJhY2soZXJyb3IsIHN1Y2Nlc3MpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdID0gcmVsZWFzZUNvbnRleHQ7XG5cbiAgICBjcmVhdGVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKGRlcGVuZGVuY3ksIHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgKGVycm9yLCBzdWNjZXNzKSA9PiB7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGxvZy53YXJuaW5nKGAuLi51bmFibGUgdG8gY3JlYXRlIHRoZSAnJHtyZWxlYXNlTmFtZX0nIGNvbnRleHQuYCk7XG5cbiAgICAgICAgY2FsbGJhY2soZXJyb3IsIHN1Y2Nlc3MpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbG9nLmRlYnVnKGAuLi5jcmVhdGVkIHRoZSAnJHtyZWxlYXNlTmFtZX0nIGNvbnRleHQuYCk7XG5cbiAgICAgIGNhbGxiYWNrKGVycm9yLCBzdWNjZXNzKTtcbiAgICB9KTtcbiAgfSwgY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgY29udGV4dCkge1xuICBjb25zdCB7IHJlbGVhc2VDb250ZXh0TWFwIH0gPSBjb250ZXh0LFxuICAgICAgICBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICByZWxlYXNlTmFtZSA9IGRlcGVuZGVuY3lOYW1lLCAvLy9cbiAgICAgICAgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0gfHwgbnVsbDtcblxuICBpZiAocmVsZWFzZUNvbnRleHQgPT09IG51bGwpIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dDtcblxuICAgIGxvZy53YXJuaW5nKGBVbmFibGUgdG8gaW5pdGlhbGlzZSB0aGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBjb250ZXh0IGJlY2F1c2UgaXQgaGFzIG5vdCBiZWVuIGNyZWF0ZWQuYCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZCA9IHJlbGVhc2VDb250ZXh0LmlzSW5pdGlhbGlzZWQoKTtcblxuICAgIGlmICghcmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZCkge1xuICAgICAgaW5pdGlhbGlzZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoZGVwZW5kZW5jeSwgcmVsZWFzZUNvbnRleHQsIGNvbnRleHQpO1xuXG4gICAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0cyA9IHJldHJpZXZlUmVsZWFzZUNvbnRleHRzKHJlbGVhc2VDb250ZXh0LCByZWxlYXNlQ29udGV4dE1hcCk7XG5cbiAgICAgIGxvZy5pbmZvKGBJbml0aWFsaXNpbmcgdGhlICcke2RlcGVuZGVuY3lOYW1lfScgY29udGV4dC4uLmApO1xuXG4gICAgICByZWxlYXNlQ29udGV4dC5pbml0aWFsaXNlKHJlbGVhc2VDb250ZXh0cyk7XG5cbiAgICAgIGxvZy5kZWJ1ZyhgLi4uaW5pdGlhbGlzZWQgdGhlICcke2RlcGVuZGVuY3lOYW1lfScgY29udGV4dC5gKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmV0cmlldmVSZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHQsIHJlbGVhc2VDb250ZXh0TWFwKSB7XG4gIGNvbnN0IHJlbGVhc2VDb250ZXh0cyA9IFtdLFxuICAgICAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0LCAgLy8vXG4gICAgICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0cyA9IFtcbiAgICAgICAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dFxuICAgICAgICBdO1xuXG4gIGxldCByZW1haW5pbmdSZWxlYXNlQ29udGV4dHNMZW5ndGggPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMubGVuZ3RoO1xuXG4gIHdoaWxlIChyZW1haW5pbmdSZWxlYXNlQ29udGV4dHNMZW5ndGggPiAwKSB7XG4gICAgY29uc3QgcmVtYWluaW5nUmVsZWFzZUNvbnRleHQgPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMuc2hpZnQoKSxcbiAgICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0OyAgLy8vXG5cbiAgICByZWxlYXNlQ29udGV4dHMucHVzaChyZWxlYXNlQ29udGV4dCk7XG5cbiAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKTtcblxuICAgIGRlcGVuZGVuY2llcy5mb3JFYWNoRGVwZW5kZW5jeSgoZGVwZW5kZW5jeSkgPT4ge1xuICAgICAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWUsIC8vL1xuICAgICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0sXG4gICAgICAgICAgICByZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRzLmluY2x1ZGVzKHJlbGVhc2VDb250ZXh0KSxcbiAgICAgICAgICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQgPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMuaW5jbHVkZXMocmVsZWFzZUNvbnRleHQpO1xuXG4gICAgICBpZiAoIXJlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQgJiYgIXJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVtYWluaW5nUmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dDsgLy8vXG5cbiAgICAgICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzLnB1c2gocmVtYWluaW5nUmVsZWFzZUNvbnRleHQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzTGVuZ3RoID0gcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzLmxlbmd0aDtcbiAgfVxuXG4gIHJldHVybiByZWxlYXNlQ29udGV4dHM7XG59XG5cbmZ1bmN0aW9uIGNoZWNrUmVsZWFzZUNvbnRleHRDcmVhdGVkKHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBjb250ZXh0KSB7XG4gIGNvbnN0IHJlbGVhc2VDb250ZXh0Q3JlYXRlZCA9IChyZWxlYXNlQ29udGV4dCAhPT0gbnVsbCk7XG5cbiAgaWYgKCFyZWxlYXNlQ29udGV4dENyZWF0ZWQpIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWU7IC8vL1xuXG4gICAgbG9nLndhcm5pbmcoYFRoZSAnJHtyZWxlYXNlTmFtZX0nIGNvbnRleHQgY291bGQgbm90IGJlIGNyZWF0ZWQuIFBlcmhhcHMgdGhlICdtZXRhLmpzb24nIGZpbGUgaXMgbWlzc2luZyBvciBpbnZhbGlkLiBPciB0aGVyZSBjb3VsZCBiZSBhIGRlcGVuZGVuY3kgbWlzbWF0Y2guYCk7XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZUNvbnRleHRDcmVhdGVkO1xufVxuXG5mdW5jdGlvbiBjaGVja0N5Y2xpY0RlcGVuZGVuY3lFeGlzdHMoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgZGVwZW5kZW50TmFtZXNJbmNsdWRlc0RlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW50TmFtZXMuaW5jbHVkZXMoZGVwZW5kZW5jeU5hbWUpLFxuICAgICAgICBjeWNsaWNEZXBlbmRlbmN5RXhpc3RzID0gZGVwZW5kZW50TmFtZXNJbmNsdWRlc0RlcGVuZGVuY3lOYW1lOyAgLy8vXG5cbiAgaWYgKGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMpIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICBmaXJzdERlcGVuZGVudE5hbWUgPSBmaXJzdChkZXBlbmRlbnROYW1lcyksXG4gICAgICAgICAgZGVwZW5kZW5jeU5hbWVzID0gWyAgLy8vXG4gICAgICAgICAgICAuLi5kZXBlbmRlbnROYW1lcyxcbiAgICAgICAgICAgIGZpcnN0RGVwZW5kZW50TmFtZVxuICAgICAgICAgIF0sXG4gICAgICAgICAgZGVwZW5kZW5jeU5hbWVzU3RyaW5nID0gZGVwZW5kZW5jeU5hbWVzLmpvaW4oYCcgLT4gJ2ApO1xuXG4gICAgbG9nLndhcm5pbmcoYFRoZXJlIGlzIGEgY3ljbGljIGRlcGVuZGVuY3ksICcke2RlcGVuZGVuY3lOYW1lc1N0cmluZ30nLmApO1xuICB9XG5cbiAgcmV0dXJuIGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHM7XG59XG5cbmZ1bmN0aW9uIGNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5KHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCkge1xuICBsZXQgcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5ID0gdHJ1ZTtcblxuICBjb25zdCBlbnRyaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RW50cmllcygpLFxuICAgICAgICBzaG9ydGVuZWRWZXJzaW9uID0gZGVwZW5kZW5jeS5nZXRTaG9ydGVkVmVyc2lvbigpO1xuXG4gIGlmIChzaG9ydGVuZWRWZXJzaW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbiA9IGVudHJpZXMubWF0Y2hTaG9ydGVuZWRWZXJzaW9uKHNob3J0ZW5lZFZlcnNpb24pO1xuXG4gICAgaWYgKCFlbnRyaWVzTWF0Y2hTaG9ydGVuZWRWZXJzaW9uKSB7XG4gICAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICAgIHZlcnNpb24gPSByZWxlYXNlQ29udGV4dC5nZXRWZXJzaW9uKCksXG4gICAgICAgICAgICBsYXN0RGVwZW5kZW50TmFtZSA9IGxhc3QoZGVwZW5kZW50TmFtZXMpLFxuICAgICAgICAgICAgZGVwZW5kZW50TmFtZSA9IGxhc3REZXBlbmRlbnROYW1lLCAgLy8vXG4gICAgICAgICAgICB2ZXJzaW9uU3RyaW5nID0gdmVyc2lvbi50b1N0cmluZygpLFxuICAgICAgICAgICAgZGVwZW5kZW5jeVN0cmluZyA9IGRlcGVuZGVuY3kuYXNTdHJpbmcoKTtcblxuICAgICAgbG9nLndhcm5pbmcoYFRoZSAnJHtkZXBlbmRlbnROYW1lfScgZGVwZW5kZW50IHJlcXVpcmVzIHRoZSAnJHtkZXBlbmRlbmN5U3RyaW5nfScgZGVwZW5kZW5jeSBidXQgYSBjb250ZXh0IHdpdGggdmVyc2lvbiAnJHt2ZXJzaW9uU3RyaW5nfScgd2FzIHByb3ZpZGVkLmApO1xuXG4gICAgICByZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKGRlcGVuZGVuY3ksIHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spIHtcbiAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgZGVwZW5kZW50TmFtZXMgPSBbIC4uLmRlcGVuZGVudE5hbWVzLCBkZXBlbmRlbmN5TmFtZSBdOyAgLy8vXG5cbiAgZGVwZW5kZW5jaWVzLmFzeW5jaHJvbm91c0ZvckVhY2hEZXBlbmRlbmN5KChkZXBlbmRlbmN5LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY29uc3QgY3ljbGljRGVwZW5kZW5jeUV4aXN0cyA9IGNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcyk7XG5cbiAgICBpZiAoY3ljbGljRGVwZW5kZW5jeUV4aXN0cykge1xuICAgICAgY29uc3QgZXJyb3IgPSBudWxsLFxuICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICBjYWxsYmFjayhlcnJvciwgc3VjY2Vzcyk7XG5cbiAgICAgIGNhbGxiYWNrID0gbnVsbDtcblxuICAgICAgZG9uZSgpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY3JlYXRlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQsIChlcnJvciwgc3VjY2VzcykgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgICBjYWxsYmFjayA9IG51bGw7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yLCBzdWNjZXNzKTtcblxuICAgICAgICBjYWxsYmFjayA9IG51bGw7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCBkb25lKTtcblxuICBmdW5jdGlvbiBkb25lKCkge1xuICAgIGlmIChjYWxsYmFjayAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZXJyb3IgPSBudWxsLFxuICAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgIGNhbGxiYWNrKGVycm9yLCBzdWNjZXNzKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdGlhbGlzZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoZGVwZW5kZW5jeSwgcmVsZWFzZUNvbnRleHQsIGNvbnRleHQpIHtcbiAgY29uc3QgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgZGVwZW5kZW5jaWVzLmZvckVhY2hEZXBlbmRlbmN5KChkZXBlbmRlbmN5KSA9PiB7ICAvLy9cbiAgICBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgY29udGV4dCk7XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImNyZWF0ZVJlbGVhc2VDb250ZXh0IiwiaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0IiwicmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeSIsInJlbGVhc2VDb250ZXh0RnJvbUpTT04iLCJyZWxlYXNlQ29udGV4dEZyb21Qcm9qZWN0IiwibGFzdCIsImFycmF5VXRpbGl0aWVzIiwibG9hZFByb2plY3QiLCJvY2NhbUZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJjb25jYXRlbmF0ZVBhdGhzIiwicGF0aFV0aWxpdGllcyIsImlzTWV0YUpTT05GaWxlVmFsaWQiLCJtZXRhSlNPTlV0aWxpdGllcyIsInJlYWRGaWxlIiwibmVjZXNzYXJ5RmlsZVN5c3RlbVV0aWxpdGllcyIsImlzRW50cnlGaWxlIiwiY2hlY2tFbnRyeUV4aXN0cyIsImRlcGVuZGVuY3kiLCJjb250ZXh0IiwiY2FsbGJhY2siLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJwcm9jZXNzIiwiY3dkIiwiZGVwZW5kZW5jeU5hbWUiLCJnZXROYW1lIiwiZW50cnlQYXRoIiwiZW50cnlFeGlzdHMiLCJlcnJvciIsInJlbGVhc2VDb250ZXh0IiwiZW50cnlGaWxlIiwiZmlsZVBhdGgiLCJjb250ZW50IiwianNvblN0cmluZyIsImpzb24iLCJKU09OIiwicGFyc2UiLCJwcm9qZWN0TmFtZSIsInByb2plY3QiLCJsb2ciLCJuYW1lIiwiZW50cmllcyIsIkVudHJpZXMiLCJmcm9tSlNPTiIsImNvbnRleHRKU09OIiwiUmVsZWFzZUNvbnRleHQiLCJmcm9tTG9nTmFtZUpTT05BbmRFbnRyaWVzIiwibWV0YUpTT05GaWxlIiwiZ2V0TWV0YUpTT05GaWxlIiwibWV0YUpTT05GaWxlVmFsaWQiLCJnZXRFbnRyaWVzIiwiZGVwZW5kZW50TmFtZXMiLCJyZWxlYXNlQ29udGV4dE1hcCIsInJlbGVhc2VOYW1lIiwicmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5IiwiY2hlY2tSZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kiLCJzdWNjZXNzIiwiZGVidWciLCJkZXBlbmRlbmN5U3RyaW5nIiwiYXNTdHJpbmciLCJkZXBlbmRlbnROYW1lc0xlbmd0aCIsImxlbmd0aCIsImluZm8iLCJsYXN0RGVwZW5kZW50TmFtZSIsImRlcGVuZGVudE5hbWUiLCJyZWxlYXNlQ29udGV4dENyZWF0ZWQiLCJjaGVja1JlbGVhc2VDb250ZXh0Q3JlYXRlZCIsImNyZWF0ZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMiLCJ3YXJuaW5nIiwicmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZCIsImlzSW5pdGlhbGlzZWQiLCJpbml0aWFsaXNlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsInJlbGVhc2VDb250ZXh0cyIsInJldHJpZXZlUmVsZWFzZUNvbnRleHRzIiwiaW5pdGlhbGlzZSIsInJlbWFpbmluZ1JlbGVhc2VDb250ZXh0IiwicmVtYWluaW5nUmVsZWFzZUNvbnRleHRzIiwicmVtYWluaW5nUmVsZWFzZUNvbnRleHRzTGVuZ3RoIiwic2hpZnQiLCJwdXNoIiwiZGVwZW5kZW5jaWVzIiwiZ2V0RGVwZW5kZW5jaWVzIiwiZm9yRWFjaERlcGVuZGVuY3kiLCJyZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0IiwiaW5jbHVkZXMiLCJyZW1haW5pbmdSZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0IiwiY2hlY2tDeWNsaWNEZXBlbmRlbmN5RXhpc3RzIiwiZGVwZW5kZW50TmFtZXNJbmNsdWRlc0RlcGVuZGVuY3lOYW1lIiwiY3ljbGljRGVwZW5kZW5jeUV4aXN0cyIsImZpcnN0RGVwZW5kZW50TmFtZSIsImZpcnN0IiwiZGVwZW5kZW5jeU5hbWVzIiwiZGVwZW5kZW5jeU5hbWVzU3RyaW5nIiwiam9pbiIsInNob3J0ZW5lZFZlcnNpb24iLCJnZXRTaG9ydGVkVmVyc2lvbiIsImVudHJpZXNNYXRjaFNob3J0ZW5lZFZlcnNpb24iLCJtYXRjaFNob3J0ZW5lZFZlcnNpb24iLCJ2ZXJzaW9uIiwiZ2V0VmVyc2lvbiIsInZlcnNpb25TdHJpbmciLCJ0b1N0cmluZyIsImFzeW5jaHJvbm91c0ZvckVhY2hEZXBlbmRlbmN5IiwibmV4dCIsImRvbmUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQXVHZ0JBO2VBQUFBOztRQTJGQUM7ZUFBQUE7O1FBbkxBQztlQUFBQTs7UUE4Q0FDO2VBQUFBOztRQXFCQUM7ZUFBQUE7Ozt5QkFoRmU7NkJBQ1k7K0JBQ3FCOzhEQUdyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUzQixJQUFNLEFBQUVDLE9BQVNDLHlCQUFjLENBQXZCRCxNQUNGLEFBQUVFLGNBQWdCQyxvQ0FBd0IsQ0FBeENELGFBQ0YsQUFBRUUsbUJBQXFCQyx3QkFBYSxDQUFsQ0Qsa0JBQ0YsQUFBRUUsc0JBQXdCQyxnQ0FBaUIsQ0FB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
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVsZWFzZUNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgRW50cmllcywgbWV0YUpTT05VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tZW50aXRpZXNcIjtcblxuaW1wb3J0IFJlbGVhc2VDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L3JlbGVhc2VcIjtcblxuY29uc3QgeyBsYXN0IH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgaXNNZXRhSlNPTkZpbGVWYWxpZCB9ID0gbWV0YUpTT05VdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spIHtcbiAgY29uc3QgeyBsb2csIHJlbGVhc2VDb250ZXh0TWFwIH0gPSBjb250ZXh0LFxuICAgICAgICBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICByZWxlYXNlTmFtZSA9IGRlcGVuZGVuY3lOYW1lLCAvLy9cbiAgICAgICAgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0gfHwgbnVsbDtcblxuICBpZiAocmVsZWFzZUNvbnRleHQgIT09IG51bGwpIHtcbiAgICBjb25zdCBlcnJvciA9IG51bGwsXG4gICAgICAgICAgcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5ID0gY2hlY2tSZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kocmVsZWFzZUNvbnRleHQsIGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcblxuICAgIGxldCBzdWNjZXNzO1xuXG4gICAgaWYgKHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSkge1xuICAgICAgbG9nLmRlYnVnKGBBbHJlYWR5IGNyZWF0ZWQgdGhlICcke3JlbGVhc2VOYW1lfScgY29udGV4dC5gKTtcblxuICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBjYWxsYmFjayhlcnJvciwgc3VjY2Vzcyk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7IHJlbGVhc2VDb250ZXh0RnJvbURlcGVuZGVuY3kgfSA9IGNvbnRleHQsXG4gICAgICAgIGRlcGVuZGVuY3lTdHJpbmcgPSBkZXBlbmRlbmN5LmFzU3RyaW5nKCksXG4gICAgICAgIGRlcGVuZGVudE5hbWVzTGVuZ3RoID0gZGVwZW5kZW50TmFtZXMubGVuZ3RoO1xuXG4gIGlmIChkZXBlbmRlbnROYW1lc0xlbmd0aCA9PT0gMCkge1xuICAgIGxvZy5pbmZvKGBDcmVhdGluZyB0aGUgJyR7cmVsZWFzZU5hbWV9JyBjb250ZXh0Li4uYCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbGFzdERlcGVuZGVudE5hbWUgPSBsYXN0KGRlcGVuZGVudE5hbWVzKSxcbiAgICAgICAgICBkZXBlbmRlbnROYW1lID0gbGFzdERlcGVuZGVudE5hbWU7ICAvLy9cblxuICAgIGxvZy5pbmZvKGBDcmVhdGluZyB0aGUgJyR7cmVsZWFzZU5hbWV9JyBjb250ZXh0IGdpdmVuIHRoZSAnJHtkZXBlbmRlbnROYW1lfScgZGVwZW5kYW50J3MgJyR7ZGVwZW5kZW5jeVN0cmluZ30nIGRlcGVuZGVuY3kuLi5gKTtcbiAgfVxuXG4gIHJlbGVhc2VDb250ZXh0RnJvbURlcGVuZGVuY3koZGVwZW5kZW5jeSwgY29udGV4dCwgKGVycm9yLCByZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVsZWFzZUNvbnRleHRDcmVhdGVkID0gY2hlY2tSZWxlYXNlQ29udGV4dENyZWF0ZWQocmVsZWFzZUNvbnRleHQsIGRlcGVuZGVuY3ksIGNvbnRleHQpO1xuXG4gICAgaWYgKCFyZWxlYXNlQ29udGV4dENyZWF0ZWQpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gbnVsbCxcbiAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICBjYWxsYmFjayhlcnJvciwgc3VjY2Vzcyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kgPSBjaGVja1JlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeShyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpO1xuXG4gICAgaWYgKCFyZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gbnVsbCxcbiAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICBjYWxsYmFjayhlcnJvciwgc3VjY2Vzcyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0gPSByZWxlYXNlQ29udGV4dDtcblxuICAgIGNyZWF0ZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoZGVwZW5kZW5jeSwgcmVsZWFzZUNvbnRleHQsIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0LCAoZXJyb3IsIHN1Y2Nlc3MpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICBjYWxsYmFjayhlcnJvcik7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgbG9nLndhcm5pbmcoYC4uLnVuYWJsZSB0byBjcmVhdGUgdGhlICcke3JlbGVhc2VOYW1lfScgY29udGV4dC5gKTtcblxuICAgICAgICBjYWxsYmFjayhlcnJvciwgc3VjY2Vzcyk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBsb2cuZGVidWcoYC4uLmNyZWF0ZWQgdGhlICcke3JlbGVhc2VOYW1lfScgY29udGV4dC5gKTtcblxuICAgICAgY2FsbGJhY2soZXJyb3IsIHN1Y2Nlc3MpO1xuICAgIH0pO1xuICB9LCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRNYXAgfSA9IGNvbnRleHQsXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWUsIC8vL1xuICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSB8fCBudWxsO1xuXG4gIGlmIChyZWxlYXNlQ29udGV4dCA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHsgbG9nIH0gPSBjb250ZXh0O1xuXG4gICAgbG9nLndhcm5pbmcoYFVuYWJsZSB0byBpbml0aWFsaXNlIHRoZSAnJHtkZXBlbmRlbmN5TmFtZX0nIGNvbnRleHQgYmVjYXVzZSBpdCBoYXMgbm90IGJlZW4gY3JlYXRlZC5gKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCByZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkID0gcmVsZWFzZUNvbnRleHQuaXNJbml0aWFsaXNlZCgpO1xuXG4gICAgaWYgKCFyZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkKSB7XG4gICAgICBpbml0aWFsaXNlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCByZWxlYXNlQ29udGV4dCwgY29udGV4dCk7XG5cbiAgICAgIGNvbnN0IHsgbG9nIH0gPSBjb250ZXh0LFxuICAgICAgICByZWxlYXNlQ29udGV4dHMgPSByZXRyaWV2ZVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgcmVsZWFzZUNvbnRleHRNYXApO1xuXG4gICAgICBsb2cuaW5mbyhgSW5pdGlhbGlzaW5nIHRoZSAnJHtkZXBlbmRlbmN5TmFtZX0nIGNvbnRleHQuLi5gKTtcblxuICAgICAgcmVsZWFzZUNvbnRleHQuaW5pdGlhbGlzZShyZWxlYXNlQ29udGV4dHMpO1xuXG4gICAgICBsb2cuZGVidWcoYC4uLmluaXRpYWxpc2VkIHRoZSAnJHtkZXBlbmRlbmN5TmFtZX0nIGNvbnRleHQuYCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWxlYXNlQ29udGV4dEZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQsXG4gICAgICAgIHsgbmFtZSB9ID0ganNvbjtcblxuICAoe2NvbnRleHR9ID0ganNvbik7IC8vL1xuXG4gIGxldCB7IGVudHJpZXMgfSA9IGpzb247XG5cbiAganNvbiA9IGVudHJpZXM7IC8vL1xuXG4gIGVudHJpZXMgPSBFbnRyaWVzLmZyb21KU09OKGpzb24pO1xuXG4gIGNvbnN0IGNvbnRleHRKU09OID0gY29udGV4dDsgIC8vL1xuXG4gIGpzb24gPSBjb250ZXh0SlNPTjsgLy8vXG5cbiAgY29uc3QgcmVsZWFzZUNvbnRleHQgPSBSZWxlYXNlQ29udGV4dC5mcm9tTG9nTmFtZUpTT05BbmRFbnRyaWVzKGxvZywgbmFtZSwganNvbiwgZW50cmllcyk7XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVsZWFzZUNvbnRleHRGcm9tUHJvamVjdChwcm9qZWN0LCBjb250ZXh0KSB7XG4gIGxldCByZWxlYXNlQ29udGV4dCA9IG51bGw7XG5cbiAgY29uc3QgbWV0YUpTT05GaWxlID0gcHJvamVjdC5nZXRNZXRhSlNPTkZpbGUoKTtcblxuICBpZiAobWV0YUpTT05GaWxlICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YUpTT05GaWxlVmFsaWQgPSBpc01ldGFKU09ORmlsZVZhbGlkKG1ldGFKU09ORmlsZSk7XG5cbiAgICBpZiAobWV0YUpTT05GaWxlVmFsaWQpIHtcbiAgICAgIGNvbnN0IHsgbG9nIH0gPSBjb250ZXh0LFxuICAgICAgICAgICAgbmFtZSA9IHByb2plY3QuZ2V0TmFtZSgpLFxuICAgICAgICAgICAganNvbiA9IG51bGwsXG4gICAgICAgICAgICBlbnRyaWVzID0gcHJvamVjdC5nZXRFbnRyaWVzKCk7XG5cbiAgICAgIHJlbGVhc2VDb250ZXh0ID0gUmVsZWFzZUNvbnRleHQuZnJvbUxvZ05hbWVKU09OQW5kRW50cmllcyhsb2csIG5hbWUsIGpzb24sIGVudHJpZXMpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZWxlYXNlQ29udGV4dDtcbn1cblxuZnVuY3Rpb24gcmV0cmlldmVSZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHQsIHJlbGVhc2VDb250ZXh0TWFwKSB7XG4gIGNvbnN0IHJlbGVhc2VDb250ZXh0cyA9IFtdLFxuICAgICAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0LCAgLy8vXG4gICAgICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0cyA9IFtcbiAgICAgICAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dFxuICAgICAgICBdO1xuXG4gIGxldCByZW1haW5pbmdSZWxlYXNlQ29udGV4dHNMZW5ndGggPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMubGVuZ3RoO1xuXG4gIHdoaWxlIChyZW1haW5pbmdSZWxlYXNlQ29udGV4dHNMZW5ndGggPiAwKSB7XG4gICAgY29uc3QgcmVtYWluaW5nUmVsZWFzZUNvbnRleHQgPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMuc2hpZnQoKSxcbiAgICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0OyAgLy8vXG5cbiAgICByZWxlYXNlQ29udGV4dHMucHVzaChyZWxlYXNlQ29udGV4dCk7XG5cbiAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKTtcblxuICAgIGRlcGVuZGVuY2llcy5mb3JFYWNoRGVwZW5kZW5jeSgoZGVwZW5kZW5jeSkgPT4ge1xuICAgICAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWUsIC8vL1xuICAgICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0sXG4gICAgICAgICAgICByZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRzLmluY2x1ZGVzKHJlbGVhc2VDb250ZXh0KSxcbiAgICAgICAgICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQgPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMuaW5jbHVkZXMocmVsZWFzZUNvbnRleHQpO1xuXG4gICAgICBpZiAoIXJlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQgJiYgIXJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVtYWluaW5nUmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dDsgLy8vXG5cbiAgICAgICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzLnB1c2gocmVtYWluaW5nUmVsZWFzZUNvbnRleHQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzTGVuZ3RoID0gcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzLmxlbmd0aDtcbiAgfVxuXG4gIHJldHVybiByZWxlYXNlQ29udGV4dHM7XG59XG5cbmZ1bmN0aW9uIGNoZWNrUmVsZWFzZUNvbnRleHRDcmVhdGVkKHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBjb250ZXh0KSB7XG4gIGNvbnN0IHJlbGVhc2VDb250ZXh0Q3JlYXRlZCA9IChyZWxlYXNlQ29udGV4dCAhPT0gbnVsbCk7XG5cbiAgaWYgKCFyZWxlYXNlQ29udGV4dENyZWF0ZWQpIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWU7IC8vL1xuXG4gICAgbG9nLndhcm5pbmcoYFRoZSAnJHtyZWxlYXNlTmFtZX0nIGNvbnRleHQgY291bGQgbm90IGJlIGNyZWF0ZWQuIFBlcmhhcHMgdGhlICdtZXRhLmpzb24nIGZpbGUgaXMgbWlzc2luZyBvciBpbnZhbGlkLiBPciB0aGVyZSBjb3VsZCBiZSBhIGRlcGVuZGVuY3kgbWlzbWF0Y2guYCk7XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZUNvbnRleHRDcmVhdGVkO1xufVxuXG5mdW5jdGlvbiBjaGVja0N5Y2xpY0RlcGVuZGVuY3lFeGlzdHMoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgZGVwZW5kZW50TmFtZXNJbmNsdWRlc0RlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW50TmFtZXMuaW5jbHVkZXMoZGVwZW5kZW5jeU5hbWUpLFxuICAgICAgICBjeWNsaWNEZXBlbmRlbmN5RXhpc3RzID0gZGVwZW5kZW50TmFtZXNJbmNsdWRlc0RlcGVuZGVuY3lOYW1lOyAgLy8vXG5cbiAgaWYgKGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMpIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICBmaXJzdERlcGVuZGVudE5hbWUgPSBmaXJzdChkZXBlbmRlbnROYW1lcyksXG4gICAgICAgICAgZGVwZW5kZW5jeU5hbWVzID0gWyAgLy8vXG4gICAgICAgICAgICAuLi5kZXBlbmRlbnROYW1lcyxcbiAgICAgICAgICAgIGZpcnN0RGVwZW5kZW50TmFtZVxuICAgICAgICAgIF0sXG4gICAgICAgICAgZGVwZW5kZW5jeU5hbWVzU3RyaW5nID0gZGVwZW5kZW5jeU5hbWVzLmpvaW4oYCcgLT4gJ2ApO1xuXG4gICAgbG9nLndhcm5pbmcoYFRoZXJlIGlzIGEgY3ljbGljIGRlcGVuZGVuY3ksICcke2RlcGVuZGVuY3lOYW1lc1N0cmluZ30nLmApO1xuICB9XG5cbiAgcmV0dXJuIGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHM7XG59XG5cbmZ1bmN0aW9uIGNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5KHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCkge1xuICBsZXQgcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5ID0gdHJ1ZTtcblxuICBjb25zdCBlbnRyaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RW50cmllcygpLFxuICAgICAgICBzaG9ydGVuZWRWZXJzaW9uID0gZGVwZW5kZW5jeS5nZXRTaG9ydGVkVmVyc2lvbigpO1xuXG4gIGlmIChzaG9ydGVuZWRWZXJzaW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbiA9IGVudHJpZXMubWF0Y2hTaG9ydGVuZWRWZXJzaW9uKHNob3J0ZW5lZFZlcnNpb24pO1xuXG4gICAgaWYgKCFlbnRyaWVzTWF0Y2hTaG9ydGVuZWRWZXJzaW9uKSB7XG4gICAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICAgIHZlcnNpb24gPSByZWxlYXNlQ29udGV4dC5nZXRWZXJzaW9uKCksXG4gICAgICAgICAgICBsYXN0RGVwZW5kZW50TmFtZSA9IGxhc3QoZGVwZW5kZW50TmFtZXMpLFxuICAgICAgICAgICAgZGVwZW5kZW50TmFtZSA9IGxhc3REZXBlbmRlbnROYW1lLCAgLy8vXG4gICAgICAgICAgICB2ZXJzaW9uU3RyaW5nID0gdmVyc2lvbi50b1N0cmluZygpLFxuICAgICAgICAgICAgZGVwZW5kZW5jeVN0cmluZyA9IGRlcGVuZGVuY3kuYXNTdHJpbmcoKTtcblxuICAgICAgbG9nLndhcm5pbmcoYFRoZSAnJHtkZXBlbmRlbnROYW1lfScgZGVwZW5kZW50IHJlcXVpcmVzIHRoZSAnJHtkZXBlbmRlbmN5U3RyaW5nfScgZGVwZW5kZW5jeSBidXQgYSBjb250ZXh0IHdpdGggdmVyc2lvbiAnJHt2ZXJzaW9uU3RyaW5nfScgd2FzIHByb3ZpZGVkLmApO1xuXG4gICAgICByZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKGRlcGVuZGVuY3ksIHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCwgY2FsbGJhY2spIHtcbiAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgZGVwZW5kZW50TmFtZXMgPSBbIC4uLmRlcGVuZGVudE5hbWVzLCBkZXBlbmRlbmN5TmFtZSBdOyAgLy8vXG5cbiAgZGVwZW5kZW5jaWVzLmFzeW5jaHJvbm91c0ZvckVhY2hEZXBlbmRlbmN5KChkZXBlbmRlbmN5LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY29uc3QgY3ljbGljRGVwZW5kZW5jeUV4aXN0cyA9IGNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcyk7XG5cbiAgICBpZiAoY3ljbGljRGVwZW5kZW5jeUV4aXN0cykge1xuICAgICAgY29uc3QgZXJyb3IgPSBudWxsLFxuICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICBjYWxsYmFjayhlcnJvciwgc3VjY2Vzcyk7XG5cbiAgICAgIGNhbGxiYWNrID0gbnVsbDtcblxuICAgICAgZG9uZSgpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY3JlYXRlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQsIChlcnJvciwgc3VjY2VzcykgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yKTtcblxuICAgICAgICBjYWxsYmFjayA9IG51bGw7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGNhbGxiYWNrKGVycm9yLCBzdWNjZXNzKTtcblxuICAgICAgICBjYWxsYmFjayA9IG51bGw7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCBkb25lKTtcblxuICBmdW5jdGlvbiBkb25lKCkge1xuICAgIGlmIChjYWxsYmFjayAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZXJyb3IgPSBudWxsLFxuICAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgIGNhbGxiYWNrKGVycm9yLCBzdWNjZXNzKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdGlhbGlzZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoZGVwZW5kZW5jeSwgcmVsZWFzZUNvbnRleHQsIGNvbnRleHQpIHtcbiAgY29uc3QgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgZGVwZW5kZW5jaWVzLmZvckVhY2hEZXBlbmRlbmN5KChkZXBlbmRlbmN5KSA9PiB7ICAvLy9cbiAgICBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgY29udGV4dCk7XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImNyZWF0ZVJlbGVhc2VDb250ZXh0IiwiaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0IiwicmVsZWFzZUNvbnRleHRGcm9tSlNPTiIsInJlbGVhc2VDb250ZXh0RnJvbVByb2plY3QiLCJsYXN0IiwiYXJyYXlVdGlsaXRpZXMiLCJpc01ldGFKU09ORmlsZVZhbGlkIiwibWV0YUpTT05VdGlsaXRpZXMiLCJkZXBlbmRlbmN5IiwiZGVwZW5kZW50TmFtZXMiLCJjb250ZXh0IiwiY2FsbGJhY2siLCJsb2ciLCJyZWxlYXNlQ29udGV4dE1hcCIsImRlcGVuZGVuY3lOYW1lIiwiZ2V0TmFtZSIsInJlbGVhc2VOYW1lIiwicmVsZWFzZUNvbnRleHQiLCJlcnJvciIsInJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSIsImNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5Iiwic3VjY2VzcyIsImRlYnVnIiwicmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeSIsImRlcGVuZGVuY3lTdHJpbmciLCJhc1N0cmluZyIsImRlcGVuZGVudE5hbWVzTGVuZ3RoIiwibGVuZ3RoIiwiaW5mbyIsImxhc3REZXBlbmRlbnROYW1lIiwiZGVwZW5kZW50TmFtZSIsInJlbGVhc2VDb250ZXh0Q3JlYXRlZCIsImNoZWNrUmVsZWFzZUNvbnRleHRDcmVhdGVkIiwiY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsIndhcm5pbmciLCJyZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkIiwiaXNJbml0aWFsaXNlZCIsImluaXRpYWxpc2VEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwicmVsZWFzZUNvbnRleHRzIiwicmV0cmlldmVSZWxlYXNlQ29udGV4dHMiLCJpbml0aWFsaXNlIiwianNvbiIsIm5hbWUiLCJlbnRyaWVzIiwiRW50cmllcyIsImZyb21KU09OIiwiY29udGV4dEpTT04iLCJSZWxlYXNlQ29udGV4dCIsImZyb21Mb2dOYW1lSlNPTkFuZEVudHJpZXMiLCJwcm9qZWN0IiwibWV0YUpTT05GaWxlIiwiZ2V0TWV0YUpTT05GaWxlIiwibWV0YUpTT05GaWxlVmFsaWQiLCJnZXRFbnRyaWVzIiwicmVtYWluaW5nUmVsZWFzZUNvbnRleHQiLCJyZW1haW5pbmdSZWxlYXNlQ29udGV4dHMiLCJyZW1haW5pbmdSZWxlYXNlQ29udGV4dHNMZW5ndGgiLCJzaGlmdCIsInB1c2giLCJkZXBlbmRlbmNpZXMiLCJnZXREZXBlbmRlbmNpZXMiLCJmb3JFYWNoRGVwZW5kZW5jeSIsInJlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQiLCJpbmNsdWRlcyIsInJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQiLCJjaGVja0N5Y2xpY0RlcGVuZGVuY3lFeGlzdHMiLCJkZXBlbmRlbnROYW1lc0luY2x1ZGVzRGVwZW5kZW5jeU5hbWUiLCJjeWNsaWNEZXBlbmRlbmN5RXhpc3RzIiwiZmlyc3REZXBlbmRlbnROYW1lIiwiZmlyc3QiLCJkZXBlbmRlbmN5TmFtZXMiLCJkZXBlbmRlbmN5TmFtZXNTdHJpbmciLCJqb2luIiwic2hvcnRlbmVkVmVyc2lvbiIsImdldFNob3J0ZWRWZXJzaW9uIiwiZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbiIsIm1hdGNoU2hvcnRlbmVkVmVyc2lvbiIsInZlcnNpb24iLCJnZXRWZXJzaW9uIiwidmVyc2lvblN0cmluZyIsInRvU3RyaW5nIiwiYXN5bmNocm9ub3VzRm9yRWFjaERlcGVuZGVuY3kiLCJuZXh0IiwiZG9uZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBVWdCQTtlQUFBQTs7UUEyRkFDO2VBQUFBOztRQTRCQUM7ZUFBQUE7O1FBcUJBQztlQUFBQTs7O3lCQXBKZTs2QkFDWTs4REFFaEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFM0IsSUFBTSxBQUFFQyxPQUFTQyx5QkFBYyxDQUF2QkQsTUFDRixBQUFFRSxzQkFBd0JDLGdDQUFpQixDQUF6Q0Q7QUFFRCxTQUFTTixxQkFBcUJRLFVBQVUsRUFBRUMsY0FBYyxFQUFFQyxPQUFPLEVBQUVDLFFBQVE7SUFDaEYsSUFBUUMsTUFBMkJGLFFBQTNCRSxLQUFLQyxvQkFBc0JILFFBQXRC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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-verify-cli",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.374",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-verify-cli",
|
|
7
7
|
"description": "Occam's Verifier",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@swc/core": "1.13.20",
|
|
26
|
-
"watchful-cli": "^1.7.
|
|
26
|
+
"watchful-cli": "^1.7.61"
|
|
27
27
|
},
|
|
28
28
|
"scripts": {
|
|
29
29
|
"clean": "rm -rf ./lib",
|
package/src/action/verify.js
CHANGED
|
@@ -4,7 +4,7 @@ import { Dependency } from "occam-entities";
|
|
|
4
4
|
|
|
5
5
|
import { verifyRelease } from "../utilities/release";
|
|
6
6
|
import { trimTrailingSlash } from "../utilities/string";
|
|
7
|
-
import { releaseContextFromDependency } from "../utilities/
|
|
7
|
+
import { releaseContextFromDependency } from "../utilities/fileSystem";
|
|
8
8
|
import { createReleaseContext, initialiseReleaseContext } from "../utilities/releaseContext";
|
|
9
9
|
|
|
10
10
|
export default function verifyAction(argument, log) {
|
package/src/index.js
CHANGED
|
@@ -1,64 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import Term from "./dom/term";
|
|
5
|
-
import Rule from "./dom/rule";
|
|
6
|
-
import Step from "./dom/step";
|
|
7
|
-
import Label from "./dom/label";
|
|
8
|
-
import Axiom from "./dom/axiom";
|
|
9
|
-
import Lemma from "./dom/lemma";
|
|
10
|
-
import Frame from "./dom/frame";
|
|
11
|
-
import Proof from "./dom/proof";
|
|
12
|
-
import Error from "./dom/error";
|
|
13
|
-
import Premise from "./dom/premise";
|
|
14
|
-
import Theorem from "./dom/theorem";
|
|
15
|
-
import Section from "./dom/section";
|
|
16
|
-
import Equality from "./dom/equality";
|
|
17
|
-
import MetaType from "./dom/metaType";
|
|
18
|
-
import Subproof from "./dom/subproof";
|
|
19
|
-
import Variable from "./dom/variable";
|
|
20
|
-
import Property from "./dom/property";
|
|
21
|
-
import Parameter from "./dom/parameter";
|
|
22
|
-
import Reference from "./dom/reference";
|
|
23
|
-
import Statement from "./dom/statement";
|
|
24
|
-
import Judgement from "./dom/judgement";
|
|
25
|
-
import MetaLemma from "./dom/metaLemma";
|
|
26
|
-
import Deduction from "./dom/deduction";
|
|
27
|
-
import Signature from "./dom/signature";
|
|
28
|
-
import TypePrefix from "./dom/typePrefix";
|
|
29
|
-
import Conjecture from "./dom/conjecture";
|
|
30
|
-
import Conclusion from "./dom/conclusion";
|
|
31
|
-
import Derivation from "./dom/derivation";
|
|
32
|
-
import Combinator from "./dom/combinator";
|
|
33
|
-
import Hypothesis from "./dom/hypothesis";
|
|
34
|
-
import Constructor from "./dom/constructor";
|
|
35
|
-
import Declaration from "./dom/declaration";
|
|
36
|
-
import Supposition from "./dom/supposition";
|
|
37
|
-
import Metatheorem from "./dom/metatheorem";
|
|
38
|
-
import Metavariable from "./dom/metavariable";
|
|
39
|
-
import ProcedureCall from "./dom/procedureCall";
|
|
40
|
-
import SubDerivation from "./dom/subDerivation";
|
|
41
|
-
import TypeAssertion from "./dom/assertion/type";
|
|
42
|
-
import DefinedAssertion from "./dom/assertion/defined";
|
|
43
|
-
import PropertyRelation from "./dom/propertyRelation";
|
|
44
|
-
import TermSubstitution from "./dom/substitution/term";
|
|
45
|
-
import FrameSubstitution from "./dom/substitution/frame";
|
|
46
|
-
import SubproofAssertion from "./dom/assertion/subproof";
|
|
47
|
-
import PropertyAssertion from "./dom/assertion/property";
|
|
48
|
-
import ContainedAssertion from "./dom/assertion/contained";
|
|
49
|
-
import SatisfiesAssertion from "./dom/assertion/satisfies";
|
|
50
|
-
import ProcedureReference from "./dom/procedureReference";
|
|
51
|
-
import VariableDeclaration from "./dom/declaration/variable";
|
|
52
|
-
import BracketedCombinator from "./dom/combinator/bracketed";
|
|
53
|
-
import BracketedConstructor from "./dom/constructor/bracketed";
|
|
54
|
-
import SimpleTypeDeclaration from "./dom/declaration/simpleType";
|
|
55
|
-
import StatementSubstitution from "./dom/substitution/statement";
|
|
56
|
-
import ReferenceSubstitution from "./dom/substitution/reference";
|
|
57
|
-
import CombinatorDeclaration from "./dom/declaration/combinator";
|
|
58
|
-
import TypePrefixDeclaration from "./dom/declaration/typePrefix";
|
|
59
|
-
import ConstructorDeclaration from "./dom/declaration/constructor";
|
|
60
|
-
import ComplexTypeDeclaration from "./dom/declaration/complexType";
|
|
61
|
-
import MetavariableDeclaration from "./dom/declaration/metavariable";
|
|
3
|
+
import "./preamble";
|
|
62
4
|
|
|
63
5
|
export { default as Log } from "./log";
|
|
64
6
|
export { default as ReleaseContext } from "./context/release";
|
package/src/preamble.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Type from "./dom/type";
|
|
4
|
+
import Term from "./dom/term";
|
|
5
|
+
import Rule from "./dom/rule";
|
|
6
|
+
import Step from "./dom/step";
|
|
7
|
+
import Label from "./dom/label";
|
|
8
|
+
import Axiom from "./dom/axiom";
|
|
9
|
+
import Lemma from "./dom/lemma";
|
|
10
|
+
import Frame from "./dom/frame";
|
|
11
|
+
import Proof from "./dom/proof";
|
|
12
|
+
import Error from "./dom/error";
|
|
13
|
+
import Premise from "./dom/premise";
|
|
14
|
+
import Theorem from "./dom/theorem";
|
|
15
|
+
import Section from "./dom/section";
|
|
16
|
+
import Equality from "./dom/equality";
|
|
17
|
+
import MetaType from "./dom/metaType";
|
|
18
|
+
import Subproof from "./dom/subproof";
|
|
19
|
+
import Variable from "./dom/variable";
|
|
20
|
+
import Property from "./dom/property";
|
|
21
|
+
import Parameter from "./dom/parameter";
|
|
22
|
+
import Reference from "./dom/reference";
|
|
23
|
+
import Statement from "./dom/statement";
|
|
24
|
+
import Judgement from "./dom/judgement";
|
|
25
|
+
import MetaLemma from "./dom/metaLemma";
|
|
26
|
+
import Deduction from "./dom/deduction";
|
|
27
|
+
import Signature from "./dom/signature";
|
|
28
|
+
import TypePrefix from "./dom/typePrefix";
|
|
29
|
+
import Conjecture from "./dom/conjecture";
|
|
30
|
+
import Conclusion from "./dom/conclusion";
|
|
31
|
+
import Derivation from "./dom/derivation";
|
|
32
|
+
import Combinator from "./dom/combinator";
|
|
33
|
+
import Hypothesis from "./dom/hypothesis";
|
|
34
|
+
import Constructor from "./dom/constructor";
|
|
35
|
+
import Declaration from "./dom/declaration";
|
|
36
|
+
import Supposition from "./dom/supposition";
|
|
37
|
+
import Metatheorem from "./dom/metatheorem";
|
|
38
|
+
import Metavariable from "./dom/metavariable";
|
|
39
|
+
import ProcedureCall from "./dom/procedureCall";
|
|
40
|
+
import SubDerivation from "./dom/subDerivation";
|
|
41
|
+
import TypeAssertion from "./dom/assertion/type";
|
|
42
|
+
import DefinedAssertion from "./dom/assertion/defined";
|
|
43
|
+
import PropertyRelation from "./dom/propertyRelation";
|
|
44
|
+
import TermSubstitution from "./dom/substitution/term";
|
|
45
|
+
import FrameSubstitution from "./dom/substitution/frame";
|
|
46
|
+
import SubproofAssertion from "./dom/assertion/subproof";
|
|
47
|
+
import PropertyAssertion from "./dom/assertion/property";
|
|
48
|
+
import ContainedAssertion from "./dom/assertion/contained";
|
|
49
|
+
import SatisfiesAssertion from "./dom/assertion/satisfies";
|
|
50
|
+
import ProcedureReference from "./dom/procedureReference";
|
|
51
|
+
import VariableDeclaration from "./dom/declaration/variable";
|
|
52
|
+
import BracketedCombinator from "./dom/combinator/bracketed";
|
|
53
|
+
import BracketedConstructor from "./dom/constructor/bracketed";
|
|
54
|
+
import SimpleTypeDeclaration from "./dom/declaration/simpleType";
|
|
55
|
+
import StatementSubstitution from "./dom/substitution/statement";
|
|
56
|
+
import ReferenceSubstitution from "./dom/substitution/reference";
|
|
57
|
+
import CombinatorDeclaration from "./dom/declaration/combinator";
|
|
58
|
+
import TypePrefixDeclaration from "./dom/declaration/typePrefix";
|
|
59
|
+
import ConstructorDeclaration from "./dom/declaration/constructor";
|
|
60
|
+
import ComplexTypeDeclaration from "./dom/declaration/complexType";
|
|
61
|
+
import MetavariableDeclaration from "./dom/declaration/metavariable";
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { fileSystemUtilities as occamFileSystemUtilities } from "occam-file-system";
|
|
4
|
+
import { pathUtilities, fileSystemUtilities as necessaryFileSystemUtilities } from "necessary";
|
|
5
|
+
|
|
6
|
+
import { releaseContextFromJSON } from "../utilities/releaseContext";
|
|
7
|
+
|
|
8
|
+
const { loadProject } = occamFileSystemUtilities,
|
|
9
|
+
{ concatenatePaths } = pathUtilities,
|
|
10
|
+
{ readFile, isEntryFile, checkEntryExists } = necessaryFileSystemUtilities;
|
|
11
|
+
|
|
12
|
+
export function releaseContextFromDependency(dependency, context, callback) {
|
|
13
|
+
const projectsDirectoryPath = process.cwd(), ///
|
|
14
|
+
dependencyName = dependency.getName(),
|
|
15
|
+
entryPath = concatenatePaths(projectsDirectoryPath, dependencyName),
|
|
16
|
+
entryExists = checkEntryExists(entryPath);
|
|
17
|
+
|
|
18
|
+
if (!entryExists) {
|
|
19
|
+
const error = null,
|
|
20
|
+
releaseContext = null;
|
|
21
|
+
|
|
22
|
+
callback(error, releaseContext);
|
|
23
|
+
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
let releaseContext = null;
|
|
28
|
+
|
|
29
|
+
try {
|
|
30
|
+
const entryFile = isEntryFile(entryPath);
|
|
31
|
+
|
|
32
|
+
if (entryFile) {
|
|
33
|
+
const filePath = entryPath, ///
|
|
34
|
+
content = readFile(filePath),
|
|
35
|
+
jsonString = content, ///
|
|
36
|
+
json = JSON.parse(jsonString);
|
|
37
|
+
|
|
38
|
+
releaseContext = releaseContextFromJSON(json, context);
|
|
39
|
+
} else {
|
|
40
|
+
const projectName = dependencyName, ///
|
|
41
|
+
project = loadProject(projectName, projectsDirectoryPath);
|
|
42
|
+
|
|
43
|
+
if (project !== null) {
|
|
44
|
+
releaseContext = releaseContextFromProject(project, context);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
} catch (error) {
|
|
48
|
+
callback(error, releaseContext);
|
|
49
|
+
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const error = null;
|
|
54
|
+
|
|
55
|
+
callback(error, releaseContext);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export default {
|
|
59
|
+
releaseContextFromDependency
|
|
60
|
+
};
|
|
@@ -2,104 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
import { Entries, metaJSONUtilities } from "occam-entities";
|
|
5
|
-
import { fileSystemUtilities as occamFileSystemUtilities } from "occam-file-system";
|
|
6
|
-
import { pathUtilities, fileSystemUtilities as necessaryFileSystemUtilities } from "necessary";
|
|
7
5
|
|
|
8
6
|
import ReleaseContext from "../context/release";
|
|
9
7
|
|
|
10
8
|
const { last } = arrayUtilities,
|
|
11
|
-
{
|
|
12
|
-
{ concatenatePaths } = pathUtilities,
|
|
13
|
-
{ isMetaJSONFileValid } = metaJSONUtilities,
|
|
14
|
-
{ readFile, isEntryFile, checkEntryExists } = necessaryFileSystemUtilities;
|
|
15
|
-
|
|
16
|
-
export function releaseContextFromDependency(dependency, context, callback) {
|
|
17
|
-
const projectsDirectoryPath = process.cwd(), ///
|
|
18
|
-
dependencyName = dependency.getName(),
|
|
19
|
-
entryPath = concatenatePaths(projectsDirectoryPath, dependencyName),
|
|
20
|
-
entryExists = checkEntryExists(entryPath);
|
|
21
|
-
|
|
22
|
-
if (!entryExists) {
|
|
23
|
-
const error = null,
|
|
24
|
-
releaseContext = null;
|
|
25
|
-
|
|
26
|
-
callback(error, releaseContext);
|
|
27
|
-
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
let releaseContext = null;
|
|
32
|
-
|
|
33
|
-
try {
|
|
34
|
-
const entryFile = isEntryFile(entryPath);
|
|
35
|
-
|
|
36
|
-
if (entryFile) {
|
|
37
|
-
const filePath = entryPath, ///
|
|
38
|
-
content = readFile(filePath),
|
|
39
|
-
jsonString = content, ///
|
|
40
|
-
json = JSON.parse(jsonString);
|
|
41
|
-
|
|
42
|
-
releaseContext = releaseContextFromJSON(json, context);
|
|
43
|
-
} else {
|
|
44
|
-
const projectName = dependencyName, ///
|
|
45
|
-
project = loadProject(projectName, projectsDirectoryPath);
|
|
46
|
-
|
|
47
|
-
if (project !== null) {
|
|
48
|
-
releaseContext = releaseContextFromProject(project, context);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
} catch (error) {
|
|
52
|
-
callback(error, releaseContext);
|
|
53
|
-
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
const error = null;
|
|
58
|
-
|
|
59
|
-
callback(error, releaseContext);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export function releaseContextFromJSON(json, context) {
|
|
63
|
-
const { log } = context,
|
|
64
|
-
{ name } = json;
|
|
65
|
-
|
|
66
|
-
({context} = json); ///
|
|
67
|
-
|
|
68
|
-
let { entries } = json;
|
|
69
|
-
|
|
70
|
-
json = entries; ///
|
|
71
|
-
|
|
72
|
-
entries = Entries.fromJSON(json);
|
|
73
|
-
|
|
74
|
-
const contextJSON = context; ///
|
|
75
|
-
|
|
76
|
-
json = contextJSON; ///
|
|
77
|
-
|
|
78
|
-
const releaseContext = ReleaseContext.fromLogNameJSONAndEntries(log, name, json, entries);
|
|
79
|
-
|
|
80
|
-
return releaseContext;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
export function releaseContextFromProject(project, context) {
|
|
84
|
-
let releaseContext = null;
|
|
85
|
-
|
|
86
|
-
const metaJSONFile = project.getMetaJSONFile();
|
|
87
|
-
|
|
88
|
-
if (metaJSONFile !== null) {
|
|
89
|
-
const metaJSONFileValid = isMetaJSONFileValid(metaJSONFile);
|
|
90
|
-
|
|
91
|
-
if (metaJSONFileValid) {
|
|
92
|
-
const { log } = context,
|
|
93
|
-
name = project.getName(),
|
|
94
|
-
json = null,
|
|
95
|
-
entries = project.getEntries();
|
|
96
|
-
|
|
97
|
-
releaseContext = ReleaseContext.fromLogNameJSONAndEntries(log, name, json, entries);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return releaseContext;
|
|
102
|
-
}
|
|
9
|
+
{ isMetaJSONFileValid } = metaJSONUtilities;
|
|
103
10
|
|
|
104
11
|
export function createReleaseContext(dependency, dependentNames, context, callback) {
|
|
105
12
|
const { log, releaseContextMap } = context,
|
|
@@ -150,7 +57,7 @@ export function createReleaseContext(dependency, dependentNames, context, callba
|
|
|
150
57
|
|
|
151
58
|
if (!releaseContextCreated) {
|
|
152
59
|
const error = null,
|
|
153
|
-
|
|
60
|
+
success = false;
|
|
154
61
|
|
|
155
62
|
callback(error, success);
|
|
156
63
|
|
|
@@ -161,7 +68,7 @@ export function createReleaseContext(dependency, dependentNames, context, callba
|
|
|
161
68
|
|
|
162
69
|
if (!releaseMatchesDependency) {
|
|
163
70
|
const error = null,
|
|
164
|
-
|
|
71
|
+
success = false;
|
|
165
72
|
|
|
166
73
|
callback(error, success);
|
|
167
74
|
|
|
@@ -209,7 +116,7 @@ export function initialiseReleaseContext(dependency, context) {
|
|
|
209
116
|
initialiseDependencyReleaseContexts(dependency, releaseContext, context);
|
|
210
117
|
|
|
211
118
|
const { log } = context,
|
|
212
|
-
|
|
119
|
+
releaseContexts = retrieveReleaseContexts(releaseContext, releaseContextMap);
|
|
213
120
|
|
|
214
121
|
log.info(`Initialising the '${dependencyName}' context...`);
|
|
215
122
|
|
|
@@ -220,6 +127,48 @@ export function initialiseReleaseContext(dependency, context) {
|
|
|
220
127
|
}
|
|
221
128
|
}
|
|
222
129
|
|
|
130
|
+
export function releaseContextFromJSON(json, context) {
|
|
131
|
+
const { log } = context,
|
|
132
|
+
{ name } = json;
|
|
133
|
+
|
|
134
|
+
({context} = json); ///
|
|
135
|
+
|
|
136
|
+
let { entries } = json;
|
|
137
|
+
|
|
138
|
+
json = entries; ///
|
|
139
|
+
|
|
140
|
+
entries = Entries.fromJSON(json);
|
|
141
|
+
|
|
142
|
+
const contextJSON = context; ///
|
|
143
|
+
|
|
144
|
+
json = contextJSON; ///
|
|
145
|
+
|
|
146
|
+
const releaseContext = ReleaseContext.fromLogNameJSONAndEntries(log, name, json, entries);
|
|
147
|
+
|
|
148
|
+
return releaseContext;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export function releaseContextFromProject(project, context) {
|
|
152
|
+
let releaseContext = null;
|
|
153
|
+
|
|
154
|
+
const metaJSONFile = project.getMetaJSONFile();
|
|
155
|
+
|
|
156
|
+
if (metaJSONFile !== null) {
|
|
157
|
+
const metaJSONFileValid = isMetaJSONFileValid(metaJSONFile);
|
|
158
|
+
|
|
159
|
+
if (metaJSONFileValid) {
|
|
160
|
+
const { log } = context,
|
|
161
|
+
name = project.getName(),
|
|
162
|
+
json = null,
|
|
163
|
+
entries = project.getEntries();
|
|
164
|
+
|
|
165
|
+
releaseContext = ReleaseContext.fromLogNameJSONAndEntries(log, name, json, entries);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
return releaseContext;
|
|
170
|
+
}
|
|
171
|
+
|
|
223
172
|
function retrieveReleaseContexts(releaseContext, releaseContextMap) {
|
|
224
173
|
const releaseContexts = [],
|
|
225
174
|
remainingReleaseContext = releaseContext, ///
|