occam-verify-cli 0.0.369 → 0.0.370
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/bin/utilities/fileSystem.js +14 -5
- package/lib/context/release/directory.js +314 -0
- package/lib/context/release.js +7 -196
- package/lib/index.js +13 -5
- package/lib/utilities/customGrammar.js +8 -1
- package/package.json +2 -2
- package/src/context/release/directory.js +223 -0
- package/src/context/release.js +5 -204
- package/src/index.js +4 -1
- package/src/utilities/customGrammar.js +6 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
const {
|
|
4
|
-
{ fileSystemUtilities : occamFileSystemUtilities } = require("occam-file-system"),
|
|
3
|
+
const { DirectoryReleaseContext } = require("../../lib/index"), ///
|
|
4
|
+
{ Entries, fileSystemUtilities : occamFileSystemUtilities } = require("occam-file-system"),
|
|
5
5
|
{ loggingUtilities, fileSystemUtilities : necessaryFileSystemUtilities } = require("necessary");
|
|
6
6
|
|
|
7
7
|
const callbacks = require("../callbacks");
|
|
@@ -29,9 +29,16 @@ function releaseContextFromFile(name, projectsDirectoryPath) {
|
|
|
29
29
|
let releaseContext = null;
|
|
30
30
|
|
|
31
31
|
const filePath = `${projectsDirectoryPath}/${name}`,
|
|
32
|
-
content = readFile(filePath)
|
|
32
|
+
content = readFile(filePath),
|
|
33
|
+
releaseJSONString = content, ///
|
|
34
|
+
releaseJSON = JSON.parse(releaseJSONString);
|
|
35
|
+
|
|
36
|
+
let { entries } = releaseJSON;
|
|
37
|
+
|
|
38
|
+
const json = entries; ///
|
|
39
|
+
|
|
40
|
+
entries = Entries.fromJSON(json);
|
|
33
41
|
|
|
34
|
-
debugger
|
|
35
42
|
|
|
36
43
|
return releaseContext;
|
|
37
44
|
}
|
|
@@ -43,7 +50,9 @@ function releaseContextFromDirectory(name, projectsDirectoryPath) {
|
|
|
43
50
|
release = loadRelease(topmostDirectoryName, projectsDirectoryPath);
|
|
44
51
|
|
|
45
52
|
if (release !== null) {
|
|
46
|
-
|
|
53
|
+
const directoryReleaseContext = DirectoryReleaseContext.fromLogReleaseAndCallbacks(log, release, callbacks);
|
|
54
|
+
|
|
55
|
+
releaseContext = directoryReleaseContext; ///
|
|
47
56
|
}
|
|
48
57
|
|
|
49
58
|
return releaseContext;
|
|
@@ -0,0 +1,314 @@
|
|
|
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 DirectoryReleaseContext;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _release = /*#__PURE__*/ _interopRequireDefault(require("../../context/release"));
|
|
12
|
+
var _array = require("../../utilities/array");
|
|
13
|
+
var _customGrammar = require("../../utilities/customGrammar");
|
|
14
|
+
function _assertThisInitialized(self) {
|
|
15
|
+
if (self === void 0) {
|
|
16
|
+
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
17
|
+
}
|
|
18
|
+
return self;
|
|
19
|
+
}
|
|
20
|
+
function _classCallCheck(instance, Constructor) {
|
|
21
|
+
if (!(instance instanceof Constructor)) {
|
|
22
|
+
throw new TypeError("Cannot call a class as a function");
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function _defineProperties(target, props) {
|
|
26
|
+
for(var i = 0; i < props.length; i++){
|
|
27
|
+
var descriptor = props[i];
|
|
28
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
29
|
+
descriptor.configurable = true;
|
|
30
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
31
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function _createClass(Constructor, protoProps, staticProps) {
|
|
35
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
36
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
37
|
+
return Constructor;
|
|
38
|
+
}
|
|
39
|
+
function _getPrototypeOf(o) {
|
|
40
|
+
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
|
|
41
|
+
return o.__proto__ || Object.getPrototypeOf(o);
|
|
42
|
+
};
|
|
43
|
+
return _getPrototypeOf(o);
|
|
44
|
+
}
|
|
45
|
+
function _inherits(subClass, superClass) {
|
|
46
|
+
if (typeof superClass !== "function" && superClass !== null) {
|
|
47
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
48
|
+
}
|
|
49
|
+
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
50
|
+
constructor: {
|
|
51
|
+
value: subClass,
|
|
52
|
+
writable: true,
|
|
53
|
+
configurable: true
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
if (superClass) _setPrototypeOf(subClass, superClass);
|
|
57
|
+
}
|
|
58
|
+
function _interopRequireDefault(obj) {
|
|
59
|
+
return obj && obj.__esModule ? obj : {
|
|
60
|
+
default: obj
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function _possibleConstructorReturn(self, call) {
|
|
64
|
+
if (call && (_typeof(call) === "object" || typeof call === "function")) {
|
|
65
|
+
return call;
|
|
66
|
+
}
|
|
67
|
+
return _assertThisInitialized(self);
|
|
68
|
+
}
|
|
69
|
+
function _setPrototypeOf(o, p) {
|
|
70
|
+
_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
|
|
71
|
+
o.__proto__ = p;
|
|
72
|
+
return o;
|
|
73
|
+
};
|
|
74
|
+
return _setPrototypeOf(o, p);
|
|
75
|
+
}
|
|
76
|
+
var _typeof = function(obj) {
|
|
77
|
+
"@swc/helpers - typeof";
|
|
78
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
79
|
+
};
|
|
80
|
+
function _isNativeReflectConstruct() {
|
|
81
|
+
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
|
|
82
|
+
if (Reflect.construct.sham) return false;
|
|
83
|
+
if (typeof Proxy === "function") return true;
|
|
84
|
+
try {
|
|
85
|
+
Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
86
|
+
return true;
|
|
87
|
+
} catch (e) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function _createSuper(Derived) {
|
|
92
|
+
var hasNativeReflectConstruct = _isNativeReflectConstruct();
|
|
93
|
+
return function _createSuperInternal() {
|
|
94
|
+
var Super = _getPrototypeOf(Derived), result;
|
|
95
|
+
if (hasNativeReflectConstruct) {
|
|
96
|
+
var NewTarget = _getPrototypeOf(this).constructor;
|
|
97
|
+
result = Reflect.construct(Super, arguments, NewTarget);
|
|
98
|
+
} else {
|
|
99
|
+
result = Super.apply(this, arguments);
|
|
100
|
+
}
|
|
101
|
+
return _possibleConstructorReturn(this, result);
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
var DirectoryReleaseContext = /*#__PURE__*/ function(ReleaseContext) {
|
|
105
|
+
_inherits(DirectoryReleaseContext, ReleaseContext);
|
|
106
|
+
var _super = _createSuper(DirectoryReleaseContext);
|
|
107
|
+
function DirectoryReleaseContext(log, verified, callbacks, customGrammar, florenceLexer, florenceParser, releaseContexts, fileContexts, release) {
|
|
108
|
+
_classCallCheck(this, DirectoryReleaseContext);
|
|
109
|
+
var _this;
|
|
110
|
+
_this = _super.call(this, log, verified, callbacks, customGrammar, florenceLexer, florenceParser, releaseContexts);
|
|
111
|
+
_this.fileContexts = fileContexts;
|
|
112
|
+
_this.release = release;
|
|
113
|
+
return _this;
|
|
114
|
+
}
|
|
115
|
+
_createClass(DirectoryReleaseContext, [
|
|
116
|
+
{
|
|
117
|
+
key: "getFileContexts",
|
|
118
|
+
value: function getFileContexts() {
|
|
119
|
+
return this.fileContexts;
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
key: "getRelease",
|
|
124
|
+
value: function getRelease() {
|
|
125
|
+
return this.release;
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
key: "getReleaseName",
|
|
130
|
+
value: function getReleaseName() {
|
|
131
|
+
var releaseName = this.release.getName();
|
|
132
|
+
return releaseName;
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
key: "getFile",
|
|
137
|
+
value: function getFile(filePath) {
|
|
138
|
+
return this.release.getFile(filePath);
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
key: "getVersion",
|
|
143
|
+
value: function getVersion() {
|
|
144
|
+
return this.release.getVersion();
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
key: "getFilePaths",
|
|
149
|
+
value: function getFilePaths() {
|
|
150
|
+
return this.release.getFilePaths();
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
key: "getDependencies",
|
|
155
|
+
value: function getDependencies() {
|
|
156
|
+
return this.release.getDependencies();
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
key: "matchShortenedVersion",
|
|
161
|
+
value: function matchShortenedVersion(shortenedVersion) {
|
|
162
|
+
return this.release.matchShortenedVersion(shortenedVersion);
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
key: "getRules",
|
|
167
|
+
value: function getRules() {
|
|
168
|
+
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
169
|
+
var rules = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
170
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
171
|
+
releaseNames.push(releaseName);
|
|
172
|
+
var bubble = false;
|
|
173
|
+
this.fileContexts.forEach(function(fileContext) {
|
|
174
|
+
var fileContextRules = fileContext.getRules(bubble);
|
|
175
|
+
(0, _array.push)(rules, fileContextRules);
|
|
176
|
+
});
|
|
177
|
+
this.releaseContexts.forEach(function(releaseContext) {
|
|
178
|
+
var releaseContextRules = releaseContext.getRules(releaseNames);
|
|
179
|
+
(0, _array.push)(rules, releaseContextRules);
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
return rules;
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
key: "getTypes",
|
|
187
|
+
value: function getTypes() {
|
|
188
|
+
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
189
|
+
var types = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
190
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
191
|
+
releaseNames.push(releaseName);
|
|
192
|
+
var bubble = false;
|
|
193
|
+
this.fileContexts.forEach(function(fileContext) {
|
|
194
|
+
var fileContextTypes = fileContext.getTypes(bubble);
|
|
195
|
+
(0, _array.push)(types, fileContextTypes);
|
|
196
|
+
});
|
|
197
|
+
this.releaseContexts.forEach(function(releaseContext) {
|
|
198
|
+
var releaseContextTypes = releaseContext.getTypes(releaseNames);
|
|
199
|
+
(0, _array.push)(types, releaseContextTypes);
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
return types;
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
key: "getAxioms",
|
|
207
|
+
value: function getAxioms() {
|
|
208
|
+
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
209
|
+
var axioms = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
210
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
211
|
+
releaseNames.push(releaseName);
|
|
212
|
+
var bubble = false;
|
|
213
|
+
this.fileContexts.forEach(function(fileContext) {
|
|
214
|
+
var fileContextAxioms = fileContext.getAxioms(bubble);
|
|
215
|
+
(0, _array.push)(axioms, fileContextAxioms);
|
|
216
|
+
});
|
|
217
|
+
this.releaseContexts.forEach(function(releaseContext) {
|
|
218
|
+
var releaseContextAxioms = releaseContext.getAxioms(releaseNames);
|
|
219
|
+
(0, _array.push)(axioms, releaseContextAxioms);
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
return axioms;
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
key: "getLabels",
|
|
227
|
+
value: function getLabels() {
|
|
228
|
+
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
229
|
+
var labels = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
230
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
231
|
+
releaseNames.push(releaseName);
|
|
232
|
+
var bubble = false;
|
|
233
|
+
this.fileContexts.forEach(function(fileContext) {
|
|
234
|
+
var fileContextLabels = fileContext.getLabels(bubble);
|
|
235
|
+
(0, _array.push)(labels, fileContextLabels);
|
|
236
|
+
});
|
|
237
|
+
this.releaseContexts.forEach(function(releaseContext) {
|
|
238
|
+
var releaseContextLabels = releaseContext.getLabels(releaseNames);
|
|
239
|
+
(0, _array.push)(labels, releaseContextLabels);
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
return labels;
|
|
243
|
+
}
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
key: "getCombinators",
|
|
247
|
+
value: function getCombinators() {
|
|
248
|
+
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
249
|
+
var combinators = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
250
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
251
|
+
releaseNames.push(releaseName);
|
|
252
|
+
var bubble = false;
|
|
253
|
+
this.fileContexts.forEach(function(fileContext) {
|
|
254
|
+
var fileContextCombinators = fileContext.getCombinators(bubble);
|
|
255
|
+
(0, _array.push)(combinators, fileContextCombinators);
|
|
256
|
+
});
|
|
257
|
+
this.releaseContexts.forEach(function(releaseContext) {
|
|
258
|
+
var releaseContextCombinators = releaseContext.getCombinators(releaseNames);
|
|
259
|
+
(0, _array.push)(combinators, releaseContextCombinators);
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
return combinators;
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
key: "getConstructors",
|
|
267
|
+
value: function getConstructors() {
|
|
268
|
+
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
269
|
+
var constructors = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
270
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
271
|
+
releaseNames.push(releaseName);
|
|
272
|
+
var bubble = false;
|
|
273
|
+
this.fileContexts.forEach(function(fileContext) {
|
|
274
|
+
var fileContextConstructors = fileContext.getConstructors(bubble);
|
|
275
|
+
(0, _array.push)(constructors, fileContextConstructors);
|
|
276
|
+
});
|
|
277
|
+
this.releaseContexts.forEach(function(releaseContext) {
|
|
278
|
+
var releaseContextConstructors = releaseContext.getConstructors(releaseNames);
|
|
279
|
+
(0, _array.push)(constructors, releaseContextConstructors);
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
return constructors;
|
|
283
|
+
}
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
key: "addFileContext",
|
|
287
|
+
value: function addFileContext(fileContext) {
|
|
288
|
+
this.fileContexts.push(fileContext);
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
key: "toJSON",
|
|
293
|
+
value: function toJSON() {
|
|
294
|
+
var json = [];
|
|
295
|
+
this.fileContexts.forEach(function(fileContext) {
|
|
296
|
+
var fileContextJSON = fileContext.toJSON();
|
|
297
|
+
(0, _array.push)(json, fileContextJSON);
|
|
298
|
+
});
|
|
299
|
+
return json;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
], [
|
|
303
|
+
{
|
|
304
|
+
key: "fromLogReleaseAndCallbacks",
|
|
305
|
+
value: function fromLogReleaseAndCallbacks(log, release, callbacks) {
|
|
306
|
+
var verified = false, customGrammar = (0, _customGrammar.customGrammarFromRelease)(release), florenceLexer = null, florenceParser = null, releaseContexts = null, fileContexts = [], releaseContext = new DirectoryReleaseContext(log, verified, callbacks, customGrammar, florenceLexer, florenceParser, releaseContexts, fileContexts, release);
|
|
307
|
+
return releaseContext;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
]);
|
|
311
|
+
return DirectoryReleaseContext;
|
|
312
|
+
}(_release.default);
|
|
313
|
+
|
|
314
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L3JlbGVhc2UvZGlyZWN0b3J5LmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgUmVsZWFzZUNvbnRleHQgZnJvbSBcIi4uLy4uL2NvbnRleHQvcmVsZWFzZVwiO1xuXG5pbXBvcnQgeyBwdXNoIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgY3VzdG9tR3JhbW1hckZyb21SZWxlYXNlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9jdXN0b21HcmFtbWFyXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERpcmVjdG9yeVJlbGVhc2VDb250ZXh0IGV4dGVuZHMgUmVsZWFzZUNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihsb2csIHZlcmlmaWVkLCBjYWxsYmFja3MsIGN1c3RvbUdyYW1tYXIsIGZsb3JlbmNlTGV4ZXIsIGZsb3JlbmNlUGFyc2VyLCByZWxlYXNlQ29udGV4dHMsIGZpbGVDb250ZXh0cywgcmVsZWFzZSkge1xuICAgIHN1cGVyKGxvZywgdmVyaWZpZWQsIGNhbGxiYWNrcywgY3VzdG9tR3JhbW1hciwgZmxvcmVuY2VMZXhlciwgZmxvcmVuY2VQYXJzZXIsIHJlbGVhc2VDb250ZXh0cyk7XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cyA9IGZpbGVDb250ZXh0cztcbiAgICB0aGlzLnJlbGVhc2UgPSByZWxlYXNlO1xuICB9XG5cbiAgZ2V0RmlsZUNvbnRleHRzKCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVDb250ZXh0cztcbiAgfVxuXG4gIGdldFJlbGVhc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVsZWFzZTtcbiAgfVxuXG4gIGdldFJlbGVhc2VOYW1lKCkge1xuICAgIGNvbnN0IHJlbGVhc2VOYW1lID0gdGhpcy5yZWxlYXNlLmdldE5hbWUoKTtcblxuICAgIHJldHVybiByZWxlYXNlTmFtZTtcbiAgfVxuXG4gIGdldEZpbGUoZmlsZVBhdGgpIHsgcmV0dXJuIHRoaXMucmVsZWFzZS5nZXRGaWxlKGZpbGVQYXRoKTsgfVxuXG4gIGdldFZlcnNpb24oKSB7IHJldHVybiB0aGlzLnJlbGVhc2UuZ2V0VmVyc2lvbigpOyB9XG5cbiAgZ2V0RmlsZVBhdGhzKCkgeyByZXR1cm4gdGhpcy5yZWxlYXNlLmdldEZpbGVQYXRocygpOyB9XG5cbiAgZ2V0RGVwZW5kZW5jaWVzKCkgeyByZXR1cm4gdGhpcy5yZWxlYXNlLmdldERlcGVuZGVuY2llcygpOyB9XG5cbiAgbWF0Y2hTaG9ydGVuZWRWZXJzaW9uKHNob3J0ZW5lZFZlcnNpb24pIHsgcmV0dXJuIHRoaXMucmVsZWFzZS5tYXRjaFNob3J0ZW5lZFZlcnNpb24oc2hvcnRlbmVkVmVyc2lvbik7IH1cblxuICBnZXRSdWxlcyhyZWxlYXNlTmFtZXMgPSBbXSkge1xuICAgIGNvbnN0IHJ1bGVzID0gW10sXG4gICAgICAgIHJlbGVhc2VOYW1lID0gdGhpcy5nZXRSZWxlYXNlTmFtZSgpLFxuICAgICAgICByZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lID0gcmVsZWFzZU5hbWVzLmluY2x1ZGVzKHJlbGVhc2VOYW1lKTtcblxuICAgIGlmICghcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSkge1xuICAgICAgcmVsZWFzZU5hbWVzLnB1c2gocmVsZWFzZU5hbWUpO1xuXG4gICAgICBjb25zdCBidWJibGUgPSBmYWxzZTtcblxuICAgICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgZmlsZUNvbnRleHRSdWxlcyA9IGZpbGVDb250ZXh0LmdldFJ1bGVzKGJ1YmJsZSk7XG5cbiAgICAgICAgcHVzaChydWxlcywgZmlsZUNvbnRleHRSdWxlcyk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRSdWxlcyA9IHJlbGVhc2VDb250ZXh0LmdldFJ1bGVzKHJlbGVhc2VOYW1lcyk7XG5cbiAgICAgICAgcHVzaChydWxlcywgcmVsZWFzZUNvbnRleHRSdWxlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBnZXRUeXBlcyhyZWxlYXNlTmFtZXMgPSBbXSkge1xuICAgIGNvbnN0IHR5cGVzID0gW10sXG4gICAgICAgIHJlbGVhc2VOYW1lID0gdGhpcy5nZXRSZWxlYXNlTmFtZSgpLFxuICAgICAgICByZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lID0gcmVsZWFzZU5hbWVzLmluY2x1ZGVzKHJlbGVhc2VOYW1lKTtcblxuICAgIGlmICghcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSkge1xuICAgICAgcmVsZWFzZU5hbWVzLnB1c2gocmVsZWFzZU5hbWUpO1xuXG4gICAgICBjb25zdCBidWJibGUgPSBmYWxzZTtcblxuICAgICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgZmlsZUNvbnRleHRUeXBlcyA9IGZpbGVDb250ZXh0LmdldFR5cGVzKGJ1YmJsZSk7XG5cbiAgICAgICAgcHVzaCh0eXBlcywgZmlsZUNvbnRleHRUeXBlcyk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRUeXBlcyA9IHJlbGVhc2VDb250ZXh0LmdldFR5cGVzKHJlbGVhc2VOYW1lcyk7XG5cbiAgICAgICAgcHVzaCh0eXBlcywgcmVsZWFzZUNvbnRleHRUeXBlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBnZXRBeGlvbXMocmVsZWFzZU5hbWVzID0gW10pIHtcbiAgICBjb25zdCBheGlvbXMgPSBbXSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSB0aGlzLmdldFJlbGVhc2VOYW1lKCksXG4gICAgICAgIHJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUgPSByZWxlYXNlTmFtZXMuaW5jbHVkZXMocmVsZWFzZU5hbWUpO1xuXG4gICAgaWYgKCFyZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lKSB7XG4gICAgICByZWxlYXNlTmFtZXMucHVzaChyZWxlYXNlTmFtZSk7XG5cbiAgICAgIGNvbnN0IGJ1YmJsZSA9IGZhbHNlO1xuXG4gICAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBmaWxlQ29udGV4dEF4aW9tcyA9IGZpbGVDb250ZXh0LmdldEF4aW9tcyhidWJibGUpO1xuXG4gICAgICAgIHB1c2goYXhpb21zLCBmaWxlQ29udGV4dEF4aW9tcyk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRBeGlvbXMgPSByZWxlYXNlQ29udGV4dC5nZXRBeGlvbXMocmVsZWFzZU5hbWVzKTtcblxuICAgICAgICBwdXNoKGF4aW9tcywgcmVsZWFzZUNvbnRleHRBeGlvbXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF4aW9tcztcbiAgfVxuXG4gIGdldExhYmVscyhyZWxlYXNlTmFtZXMgPSBbXSkge1xuICAgIGNvbnN0IGxhYmVscyA9IFtdLFxuICAgICAgICByZWxlYXNlTmFtZSA9IHRoaXMuZ2V0UmVsZWFzZU5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lcy5pbmNsdWRlcyhyZWxlYXNlTmFtZSk7XG5cbiAgICBpZiAoIXJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUpIHtcbiAgICAgIHJlbGVhc2VOYW1lcy5wdXNoKHJlbGVhc2VOYW1lKTtcblxuICAgICAgY29uc3QgYnViYmxlID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVDb250ZXh0TGFiZWxzID0gZmlsZUNvbnRleHQuZ2V0TGFiZWxzKGJ1YmJsZSk7XG5cbiAgICAgICAgcHVzaChsYWJlbHMsIGZpbGVDb250ZXh0TGFiZWxzKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCByZWxlYXNlQ29udGV4dExhYmVscyA9IHJlbGVhc2VDb250ZXh0LmdldExhYmVscyhyZWxlYXNlTmFtZXMpO1xuXG4gICAgICAgIHB1c2gobGFiZWxzLCByZWxlYXNlQ29udGV4dExhYmVscyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGFiZWxzO1xuICB9XG5cbiAgZ2V0Q29tYmluYXRvcnMocmVsZWFzZU5hbWVzID0gW10pIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdLFxuICAgICAgICByZWxlYXNlTmFtZSA9IHRoaXMuZ2V0UmVsZWFzZU5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lcy5pbmNsdWRlcyhyZWxlYXNlTmFtZSk7XG5cbiAgICBpZiAoIXJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUpIHtcbiAgICAgIHJlbGVhc2VOYW1lcy5wdXNoKHJlbGVhc2VOYW1lKTtcblxuICAgICAgY29uc3QgYnViYmxlID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVDb250ZXh0Q29tYmluYXRvcnMgPSBmaWxlQ29udGV4dC5nZXRDb21iaW5hdG9ycyhidWJibGUpO1xuXG4gICAgICAgIHB1c2goY29tYmluYXRvcnMsIGZpbGVDb250ZXh0Q29tYmluYXRvcnMpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0Q29tYmluYXRvcnMgPSByZWxlYXNlQ29udGV4dC5nZXRDb21iaW5hdG9ycyhyZWxlYXNlTmFtZXMpO1xuXG4gICAgICAgIHB1c2goY29tYmluYXRvcnMsIHJlbGVhc2VDb250ZXh0Q29tYmluYXRvcnMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JzO1xuICB9XG5cbiAgZ2V0Q29uc3RydWN0b3JzKHJlbGVhc2VOYW1lcyA9IFtdKSB7XG4gICAgY29uc3QgY29uc3RydWN0b3JzID0gW10sXG4gICAgICAgIHJlbGVhc2VOYW1lID0gdGhpcy5nZXRSZWxlYXNlTmFtZSgpLFxuICAgICAgICByZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lID0gcmVsZWFzZU5hbWVzLmluY2x1ZGVzKHJlbGVhc2VOYW1lKTtcblxuICAgIGlmICghcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSkge1xuICAgICAgcmVsZWFzZU5hbWVzLnB1c2gocmVsZWFzZU5hbWUpO1xuXG4gICAgICBjb25zdCBidWJibGUgPSBmYWxzZTtcblxuICAgICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgZmlsZUNvbnRleHRDb25zdHJ1Y3RvcnMgPSBmaWxlQ29udGV4dC5nZXRDb25zdHJ1Y3RvcnMoYnViYmxlKTtcblxuICAgICAgICBwdXNoKGNvbnN0cnVjdG9ycywgZmlsZUNvbnRleHRDb25zdHJ1Y3RvcnMpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzID0gcmVsZWFzZUNvbnRleHQuZ2V0Q29uc3RydWN0b3JzKHJlbGVhc2VOYW1lcyk7XG5cbiAgICAgICAgcHVzaChjb25zdHJ1Y3RvcnMsIHJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcnM7XG4gIH1cblxuICBhZGRGaWxlQ29udGV4dChmaWxlQ29udGV4dCkge1xuICAgIHRoaXMuZmlsZUNvbnRleHRzLnB1c2goZmlsZUNvbnRleHQpO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGpzb24gPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBmaWxlQ29udGV4dEpTT04gPSBmaWxlQ29udGV4dC50b0pTT04oKTtcblxuICAgICAgcHVzaChqc29uLCBmaWxlQ29udGV4dEpTT04pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUxvZ1JlbGVhc2VBbmRDYWxsYmFja3MobG9nLCByZWxlYXNlLCBjYWxsYmFja3MpIHtcbiAgICBjb25zdCB2ZXJpZmllZCA9IGZhbHNlLFxuICAgICAgICAgIGN1c3RvbUdyYW1tYXIgPSBjdXN0b21HcmFtbWFyRnJvbVJlbGVhc2UocmVsZWFzZSksXG4gICAgICAgICAgZmxvcmVuY2VMZXhlciA9IG51bGwsXG4gICAgICAgICAgZmxvcmVuY2VQYXJzZXIgPSBudWxsLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0cyA9IG51bGwsXG4gICAgICAgICAgZmlsZUNvbnRleHRzID0gW10sXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSBuZXcgRGlyZWN0b3J5UmVsZWFzZUNvbnRleHQobG9nLCB2ZXJpZmllZCwgY2FsbGJhY2tzLCBjdXN0b21HcmFtbWFyLCBmbG9yZW5jZUxleGVyLCBmbG9yZW5jZVBhcnNlciwgcmVsZWFzZUNvbnRleHRzLCBmaWxlQ29udGV4dHMsIHJlbGVhc2UpO1xuXG4gICAgcmV0dXJuIHJlbGVhc2VDb250ZXh0O1xuICB9XG59XG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIkRpcmVjdG9yeVJlbGVhc2VDb250ZXh0IiwibG9nIiwidmVyaWZpZWQiLCJjYWxsYmFja3MiLCJjdXN0b21HcmFtbWFyIiwiZmxvcmVuY2VMZXhlciIsImZsb3JlbmNlUGFyc2VyIiwicmVsZWFzZUNvbnRleHRzIiwiZmlsZUNvbnRleHRzIiwicmVsZWFzZSIsImdldEZpbGVDb250ZXh0cyIsImdldFJlbGVhc2UiLCJnZXRSZWxlYXNlTmFtZSIsInJlbGVhc2VOYW1lIiwiZ2V0TmFtZSIsImdldEZpbGUiLCJmaWxlUGF0aCIsImdldFZlcnNpb24iLCJnZXRGaWxlUGF0aHMiLCJnZXREZXBlbmRlbmNpZXMiLCJtYXRjaFNob3J0ZW5lZFZlcnNpb24iLCJzaG9ydGVuZWRWZXJzaW9uIiwiZ2V0UnVsZXMiLCJyZWxlYXNlTmFtZXMiLCJydWxlcyIsInJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUiLCJpbmNsdWRlcyIsInB1c2giLCJidWJibGUiLCJmb3JFYWNoIiwiZmlsZUNvbnRleHQiLCJmaWxlQ29udGV4dFJ1bGVzIiwicmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlQ29udGV4dFJ1bGVzIiwiZ2V0VHlwZXMiLCJ0eXBlcyIsImZpbGVDb250ZXh0VHlwZXMiLCJyZWxlYXNlQ29udGV4dFR5cGVzIiwiZ2V0QXhpb21zIiwiYXhpb21zIiwiZmlsZUNvbnRleHRBeGlvbXMiLCJyZWxlYXNlQ29udGV4dEF4aW9tcyIsImdldExhYmVscyIsImxhYmVscyIsImZpbGVDb250ZXh0TGFiZWxzIiwicmVsZWFzZUNvbnRleHRMYWJlbHMiLCJnZXRDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZmlsZUNvbnRleHRDb21iaW5hdG9ycyIsInJlbGVhc2VDb250ZXh0Q29tYmluYXRvcnMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJmaWxlQ29udGV4dENvbnN0cnVjdG9ycyIsInJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzIiwiYWRkRmlsZUNvbnRleHQiLCJ0b0pTT04iLCJqc29uIiwiZmlsZUNvbnRleHRKU09OIiwiZnJvbUxvZ1JlbGVhc2VBbmRDYWxsYmFja3MiLCJjdXN0b21HcmFtbWFyRnJvbVJlbGVhc2UiLCJSZWxlYXNlQ29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFPcUJBOzs7NERBTE07cUJBRU47NkJBQ29COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTFCLElBQUEsQUFBTUEsd0NBQU47Y0FBTUE7OEJBQUFBO2FBQUFBLHdCQUNQQyxHQUFHLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsY0FBYyxFQUFFQyxlQUFlLEVBQUVDLFlBQVksRUFBRUMsT0FBTzs4QkFEdkdUOztrQ0FFWEMsS0FBS0MsVUFBVUMsV0FBV0MsZUFBZUMsZUFBZUMsZ0JBQWdCQztRQUU5RSxNQUFLQyxZQUFZLEdBQUdBO1FBQ3BCLE1BQUtDLE9BQU8sR0FBR0E7OztpQkFMRVQ7O1lBUW5CVSxLQUFBQTttQkFBQUEsU0FBQUEsa0JBQWtCO2dCQUNoQixPQUFPLElBQUksQ0FBQ0YsWUFBWTtZQUMxQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxhQUFhO2dCQUNYLE9BQU8sSUFBSSxDQUFDRixPQUFPO1lBQ3JCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLGlCQUFpQjtnQkFDZixJQUFNQyxjQUFjLElBQUksQ0FBQ0osT0FBTyxDQUFDSyxPQUFPO2dCQUV4QyxPQUFPRDtZQUNUOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBLFFBQVFDLFFBQVEsRUFBRTtnQkFBRSxP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
|
package/lib/context/release.js
CHANGED
|
@@ -9,7 +9,6 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _occamCustomGrammars = require("occam-custom-grammars");
|
|
12
|
-
var _array = require("../utilities/array");
|
|
13
12
|
var _customGrammar = require("../utilities/customGrammar");
|
|
14
13
|
function _arrayLikeToArray(arr, len) {
|
|
15
14
|
if (len == null || len > arr.length) len = arr.length;
|
|
@@ -92,14 +91,12 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
|
92
91
|
}
|
|
93
92
|
var florenceLexerFromCombinedCustomGrammar = _occamCustomGrammars.lexersUtilities.florenceLexerFromCombinedCustomGrammar, florenceParserFromCombinedCustomGrammar = _occamCustomGrammars.parsersUtilities.florenceParserFromCombinedCustomGrammar;
|
|
94
93
|
var ReleaseContext = /*#__PURE__*/ function() {
|
|
95
|
-
function ReleaseContext(log,
|
|
94
|
+
function ReleaseContext(log, verified, callbacks, customGrammar, florenceLexer, florenceParser, releaseContexts) {
|
|
96
95
|
_classCallCheck(this, ReleaseContext);
|
|
97
96
|
this.log = log;
|
|
98
|
-
this.release = release;
|
|
99
|
-
this.callbacks = callbacks;
|
|
100
97
|
this.verified = verified;
|
|
98
|
+
this.callbacks = callbacks;
|
|
101
99
|
this.customGrammar = customGrammar;
|
|
102
|
-
this.fileContexts = fileContexts;
|
|
103
100
|
this.florenceLexer = florenceLexer;
|
|
104
101
|
this.florenceParser = florenceParser;
|
|
105
102
|
this.releaseContexts = releaseContexts;
|
|
@@ -112,9 +109,9 @@ var ReleaseContext = /*#__PURE__*/ function() {
|
|
|
112
109
|
}
|
|
113
110
|
},
|
|
114
111
|
{
|
|
115
|
-
key: "
|
|
116
|
-
value: function
|
|
117
|
-
return this.
|
|
112
|
+
key: "isVerified",
|
|
113
|
+
value: function isVerified() {
|
|
114
|
+
return this.verified;
|
|
118
115
|
}
|
|
119
116
|
},
|
|
120
117
|
{
|
|
@@ -123,24 +120,12 @@ var ReleaseContext = /*#__PURE__*/ function() {
|
|
|
123
120
|
return this.callbacks;
|
|
124
121
|
}
|
|
125
122
|
},
|
|
126
|
-
{
|
|
127
|
-
key: "isVerified",
|
|
128
|
-
value: function isVerified() {
|
|
129
|
-
return this.verified;
|
|
130
|
-
}
|
|
131
|
-
},
|
|
132
123
|
{
|
|
133
124
|
key: "getCustomGrammar",
|
|
134
125
|
value: function getCustomGrammar() {
|
|
135
126
|
return this.customGrammar;
|
|
136
127
|
}
|
|
137
128
|
},
|
|
138
|
-
{
|
|
139
|
-
key: "getFileContexts",
|
|
140
|
-
value: function getFileContexts() {
|
|
141
|
-
return this.fileContexts;
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
129
|
{
|
|
145
130
|
key: "getFlorenceLexer",
|
|
146
131
|
value: function getFlorenceLexer() {
|
|
@@ -159,169 +144,6 @@ var ReleaseContext = /*#__PURE__*/ function() {
|
|
|
159
144
|
return this.releaseContexts;
|
|
160
145
|
}
|
|
161
146
|
},
|
|
162
|
-
{
|
|
163
|
-
key: "getFile",
|
|
164
|
-
value: function getFile(filePath) {
|
|
165
|
-
return this.release.getFile(filePath);
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
key: "getVersion",
|
|
170
|
-
value: function getVersion() {
|
|
171
|
-
return this.release.getVersion();
|
|
172
|
-
}
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
key: "getFilePaths",
|
|
176
|
-
value: function getFilePaths() {
|
|
177
|
-
return this.release.getFilePaths();
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
key: "getDependencies",
|
|
182
|
-
value: function getDependencies() {
|
|
183
|
-
return this.release.getDependencies();
|
|
184
|
-
}
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
key: "matchShortenedVersion",
|
|
188
|
-
value: function matchShortenedVersion(shortenedVersion) {
|
|
189
|
-
return this.release.matchShortenedVersion(shortenedVersion);
|
|
190
|
-
}
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
key: "getReleaseName",
|
|
194
|
-
value: function getReleaseName() {
|
|
195
|
-
var releaseName = this.release.getName();
|
|
196
|
-
return releaseName;
|
|
197
|
-
}
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
key: "getRules",
|
|
201
|
-
value: function getRules() {
|
|
202
|
-
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
203
|
-
var rules = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
204
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
205
|
-
releaseNames.push(releaseName);
|
|
206
|
-
var bubble = false;
|
|
207
|
-
this.fileContexts.forEach(function(fileContext) {
|
|
208
|
-
var fileContextRules = fileContext.getRules(bubble);
|
|
209
|
-
(0, _array.push)(rules, fileContextRules);
|
|
210
|
-
});
|
|
211
|
-
this.releaseContexts.forEach(function(releaseContext) {
|
|
212
|
-
var releaseContextRules = releaseContext.getRules(releaseNames);
|
|
213
|
-
(0, _array.push)(rules, releaseContextRules);
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
return rules;
|
|
217
|
-
}
|
|
218
|
-
},
|
|
219
|
-
{
|
|
220
|
-
key: "getTypes",
|
|
221
|
-
value: function getTypes() {
|
|
222
|
-
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
223
|
-
var types = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
224
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
225
|
-
releaseNames.push(releaseName);
|
|
226
|
-
var bubble = false;
|
|
227
|
-
this.fileContexts.forEach(function(fileContext) {
|
|
228
|
-
var fileContextTypes = fileContext.getTypes(bubble);
|
|
229
|
-
(0, _array.push)(types, fileContextTypes);
|
|
230
|
-
});
|
|
231
|
-
this.releaseContexts.forEach(function(releaseContext) {
|
|
232
|
-
var releaseContextTypes = releaseContext.getTypes(releaseNames);
|
|
233
|
-
(0, _array.push)(types, releaseContextTypes);
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
return types;
|
|
237
|
-
}
|
|
238
|
-
},
|
|
239
|
-
{
|
|
240
|
-
key: "getAxioms",
|
|
241
|
-
value: function getAxioms() {
|
|
242
|
-
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
243
|
-
var axioms = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
244
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
245
|
-
releaseNames.push(releaseName);
|
|
246
|
-
var bubble = false;
|
|
247
|
-
this.fileContexts.forEach(function(fileContext) {
|
|
248
|
-
var fileContextAxioms = fileContext.getAxioms(bubble);
|
|
249
|
-
(0, _array.push)(axioms, fileContextAxioms);
|
|
250
|
-
});
|
|
251
|
-
this.releaseContexts.forEach(function(releaseContext) {
|
|
252
|
-
var releaseContextAxioms = releaseContext.getAxioms(releaseNames);
|
|
253
|
-
(0, _array.push)(axioms, releaseContextAxioms);
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
return axioms;
|
|
257
|
-
}
|
|
258
|
-
},
|
|
259
|
-
{
|
|
260
|
-
key: "getLabels",
|
|
261
|
-
value: function getLabels() {
|
|
262
|
-
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
263
|
-
var labels = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
264
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
265
|
-
releaseNames.push(releaseName);
|
|
266
|
-
var bubble = false;
|
|
267
|
-
this.fileContexts.forEach(function(fileContext) {
|
|
268
|
-
var fileContextLabels = fileContext.getLabels(bubble);
|
|
269
|
-
(0, _array.push)(labels, fileContextLabels);
|
|
270
|
-
});
|
|
271
|
-
this.releaseContexts.forEach(function(releaseContext) {
|
|
272
|
-
var releaseContextLabels = releaseContext.getLabels(releaseNames);
|
|
273
|
-
(0, _array.push)(labels, releaseContextLabels);
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
return labels;
|
|
277
|
-
}
|
|
278
|
-
},
|
|
279
|
-
{
|
|
280
|
-
key: "getCombinators",
|
|
281
|
-
value: function getCombinators() {
|
|
282
|
-
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
283
|
-
var combinators = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
284
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
285
|
-
releaseNames.push(releaseName);
|
|
286
|
-
var bubble = false;
|
|
287
|
-
this.fileContexts.forEach(function(fileContext) {
|
|
288
|
-
var fileContextCombinators = fileContext.getCombinators(bubble);
|
|
289
|
-
(0, _array.push)(combinators, fileContextCombinators);
|
|
290
|
-
});
|
|
291
|
-
this.releaseContexts.forEach(function(releaseContext) {
|
|
292
|
-
var releaseContextCombinators = releaseContext.getCombinators(releaseNames);
|
|
293
|
-
(0, _array.push)(combinators, releaseContextCombinators);
|
|
294
|
-
});
|
|
295
|
-
}
|
|
296
|
-
return combinators;
|
|
297
|
-
}
|
|
298
|
-
},
|
|
299
|
-
{
|
|
300
|
-
key: "getConstructors",
|
|
301
|
-
value: function getConstructors() {
|
|
302
|
-
var releaseNames = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
303
|
-
var constructors = [], releaseName = this.getReleaseName(), releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
304
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
305
|
-
releaseNames.push(releaseName);
|
|
306
|
-
var bubble = false;
|
|
307
|
-
this.fileContexts.forEach(function(fileContext) {
|
|
308
|
-
var fileContextConstructors = fileContext.getConstructors(bubble);
|
|
309
|
-
(0, _array.push)(constructors, fileContextConstructors);
|
|
310
|
-
});
|
|
311
|
-
this.releaseContexts.forEach(function(releaseContext) {
|
|
312
|
-
var releaseContextConstructors = releaseContext.getConstructors(releaseNames);
|
|
313
|
-
(0, _array.push)(constructors, releaseContextConstructors);
|
|
314
|
-
});
|
|
315
|
-
}
|
|
316
|
-
return constructors;
|
|
317
|
-
}
|
|
318
|
-
},
|
|
319
|
-
{
|
|
320
|
-
key: "addFileContext",
|
|
321
|
-
value: function addFileContext(fileContext) {
|
|
322
|
-
this.fileContexts.push(fileContext);
|
|
323
|
-
}
|
|
324
|
-
},
|
|
325
147
|
{
|
|
326
148
|
key: "setVerified",
|
|
327
149
|
value: function setVerified(verified) {
|
|
@@ -406,17 +228,6 @@ var ReleaseContext = /*#__PURE__*/ function() {
|
|
|
406
228
|
this.florenceParser = florenceParserFromCombinedCustomGrammar(combinedCustomGrammar);
|
|
407
229
|
this.releaseContexts = releaseContexts;
|
|
408
230
|
}
|
|
409
|
-
},
|
|
410
|
-
{
|
|
411
|
-
key: "toJSON",
|
|
412
|
-
value: function toJSON() {
|
|
413
|
-
var json = [];
|
|
414
|
-
this.fileContexts.forEach(function(fileContext) {
|
|
415
|
-
var fileContextJSON = fileContext.toJSON();
|
|
416
|
-
(0, _array.push)(json, fileContextJSON);
|
|
417
|
-
});
|
|
418
|
-
return json;
|
|
419
|
-
}
|
|
420
231
|
}
|
|
421
232
|
], [
|
|
422
233
|
{
|
|
@@ -425,7 +236,7 @@ var ReleaseContext = /*#__PURE__*/ function() {
|
|
|
425
236
|
for(var _len = arguments.length, remainingArguments = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++){
|
|
426
237
|
remainingArguments[_key - 3] = arguments[_key];
|
|
427
238
|
}
|
|
428
|
-
var verified = false, customGrammar = (0, _customGrammar.customGrammarFromRelease)(release), fileContexts = [], florenceLexer = null, florenceParser = null, releaseContexts =
|
|
239
|
+
var verified = false, customGrammar = (0, _customGrammar.customGrammarFromRelease)(release), fileContexts = [], florenceLexer = null, florenceParser = null, releaseContexts = null, releaseContext = _construct(ReleaseContext, [
|
|
429
240
|
log,
|
|
430
241
|
release,
|
|
431
242
|
callbacks,
|
|
@@ -443,4 +254,4 @@ var ReleaseContext = /*#__PURE__*/ function() {
|
|
|
443
254
|
return ReleaseContext;
|
|
444
255
|
}();
|
|
445
256
|
|
|
446
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L3JlbGVhc2UuanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGxleGVyc1V0aWxpdGllcywgcGFyc2Vyc1V0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1jdXN0b20tZ3JhbW1hcnNcIjtcblxuaW1wb3J0IHsgcHVzaCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IGN1c3RvbUdyYW1tYXJGcm9tUmVsZWFzZSwgY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbVJlbGVhc2VDb250ZXh0cyB9IGZyb20gXCIuLi91dGlsaXRpZXMvY3VzdG9tR3JhbW1hclwiO1xuXG5jb25zdCB7IGZsb3JlbmNlTGV4ZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gPSBsZXhlcnNVdGlsaXRpZXMsXG4gICAgICB7IGZsb3JlbmNlUGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciB9ID0gcGFyc2Vyc1V0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVsZWFzZUNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihsb2csIHJlbGVhc2UsIGNhbGxiYWNrcywgdmVyaWZpZWQsIGN1c3RvbUdyYW1tYXIsIGZpbGVDb250ZXh0cywgZmxvcmVuY2VMZXhlciwgZmxvcmVuY2VQYXJzZXIsIHJlbGVhc2VDb250ZXh0cykge1xuICAgIHRoaXMubG9nID0gbG9nO1xuICAgIHRoaXMucmVsZWFzZSA9IHJlbGVhc2U7XG4gICAgdGhpcy5jYWxsYmFja3MgPSBjYWxsYmFja3M7XG4gICAgdGhpcy52ZXJpZmllZCA9IHZlcmlmaWVkO1xuICAgIHRoaXMuY3VzdG9tR3JhbW1hciA9IGN1c3RvbUdyYW1tYXI7XG4gICAgdGhpcy5maWxlQ29udGV4dHMgPSBmaWxlQ29udGV4dHM7XG4gICAgdGhpcy5mbG9yZW5jZUxleGVyID0gZmxvcmVuY2VMZXhlcjtcbiAgICB0aGlzLmZsb3JlbmNlUGFyc2VyID0gZmxvcmVuY2VQYXJzZXI7XG4gICAgdGhpcy5yZWxlYXNlQ29udGV4dHMgPSByZWxlYXNlQ29udGV4dHM7XG4gIH1cblxuICBnZXRMb2coKSB7XG4gICAgcmV0dXJuIHRoaXMubG9nO1xuICB9XG5cbiAgZ2V0UmVsZWFzZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWxlYXNlO1xuICB9XG5cbiAgZ2V0Q2FsbGJhY2tzKCkge1xuICAgIHJldHVybiB0aGlzLmNhbGxiYWNrcztcbiAgfVxuXG4gIGlzVmVyaWZpZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudmVyaWZpZWQ7XG4gIH1cblxuICBnZXRDdXN0b21HcmFtbWFyKCkge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUdyYW1tYXI7XG4gIH1cblxuICBnZXRGaWxlQ29udGV4dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZUNvbnRleHRzO1xuICB9XG5cbiAgZ2V0RmxvcmVuY2VMZXhlcigpIHtcbiAgICByZXR1cm4gdGhpcy5mbG9yZW5jZUxleGVyO1xuICB9XG5cbiAgZ2V0RmxvcmVuY2VQYXJzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxvcmVuY2VQYXJzZXI7XG4gIH1cblxuICBnZXRSZWxlYXNlQ29udGV4dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVsZWFzZUNvbnRleHRzO1xuICB9XG5cbiAgZ2V0RmlsZShmaWxlUGF0aCkgeyByZXR1cm4gdGhpcy5yZWxlYXNlLmdldEZpbGUoZmlsZVBhdGgpOyB9XG5cbiAgZ2V0VmVyc2lvbigpIHsgcmV0dXJuIHRoaXMucmVsZWFzZS5nZXRWZXJzaW9uKCk7IH1cblxuICBnZXRGaWxlUGF0aHMoKSB7IHJldHVybiB0aGlzLnJlbGVhc2UuZ2V0RmlsZVBhdGhzKCk7IH1cblxuICBnZXREZXBlbmRlbmNpZXMoKSB7IHJldHVybiB0aGlzLnJlbGVhc2UuZ2V0RGVwZW5kZW5jaWVzKCk7IH1cblxuICBtYXRjaFNob3J0ZW5lZFZlcnNpb24oc2hvcnRlbmVkVmVyc2lvbikgeyByZXR1cm4gdGhpcy5yZWxlYXNlLm1hdGNoU2hvcnRlbmVkVmVyc2lvbihzaG9ydGVuZWRWZXJzaW9uKTsgfVxuXG4gIGdldFJlbGVhc2VOYW1lKCkge1xuICAgIGNvbnN0IHJlbGVhc2VOYW1lID0gdGhpcy5yZWxlYXNlLmdldE5hbWUoKTtcblxuICAgIHJldHVybiByZWxlYXNlTmFtZTtcbiAgfVxuXG4gIGdldFJ1bGVzKHJlbGVhc2VOYW1lcyA9IFtdKSB7XG4gICAgY29uc3QgcnVsZXMgPSBbXSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IHRoaXMuZ2V0UmVsZWFzZU5hbWUoKSxcbiAgICAgICAgICByZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lID0gcmVsZWFzZU5hbWVzLmluY2x1ZGVzKHJlbGVhc2VOYW1lKTtcblxuICAgIGlmICghcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSkge1xuICAgICAgcmVsZWFzZU5hbWVzLnB1c2gocmVsZWFzZU5hbWUpO1xuXG4gICAgICBjb25zdCBidWJibGUgPSBmYWxzZTtcblxuICAgICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgZmlsZUNvbnRleHRSdWxlcyA9IGZpbGVDb250ZXh0LmdldFJ1bGVzKGJ1YmJsZSk7XG5cbiAgICAgICAgcHVzaChydWxlcywgZmlsZUNvbnRleHRSdWxlcyk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRSdWxlcyA9IHJlbGVhc2VDb250ZXh0LmdldFJ1bGVzKHJlbGVhc2VOYW1lcyk7XG5cbiAgICAgICAgcHVzaChydWxlcywgcmVsZWFzZUNvbnRleHRSdWxlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBnZXRUeXBlcyhyZWxlYXNlTmFtZXMgPSBbXSkge1xuICAgIGNvbnN0IHR5cGVzID0gW10sXG4gICAgICAgICAgcmVsZWFzZU5hbWUgPSB0aGlzLmdldFJlbGVhc2VOYW1lKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lcy5pbmNsdWRlcyhyZWxlYXNlTmFtZSk7XG5cbiAgICBpZiAoIXJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUpIHtcbiAgICAgIHJlbGVhc2VOYW1lcy5wdXNoKHJlbGVhc2VOYW1lKTtcblxuICAgICAgY29uc3QgYnViYmxlID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVDb250ZXh0VHlwZXMgPSBmaWxlQ29udGV4dC5nZXRUeXBlcyhidWJibGUpO1xuXG4gICAgICAgIHB1c2godHlwZXMsIGZpbGVDb250ZXh0VHlwZXMpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0VHlwZXMgPSByZWxlYXNlQ29udGV4dC5nZXRUeXBlcyhyZWxlYXNlTmFtZXMpO1xuXG4gICAgICAgIHB1c2godHlwZXMsIHJlbGVhc2VDb250ZXh0VHlwZXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVzO1xuICB9XG5cbiAgZ2V0QXhpb21zKHJlbGVhc2VOYW1lcyA9IFtdKSB7XG4gICAgY29uc3QgYXhpb21zID0gW10sXG4gICAgICAgICAgcmVsZWFzZU5hbWUgPSB0aGlzLmdldFJlbGVhc2VOYW1lKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lcy5pbmNsdWRlcyhyZWxlYXNlTmFtZSk7XG5cbiAgICBpZiAoIXJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUpIHtcbiAgICAgIHJlbGVhc2VOYW1lcy5wdXNoKHJlbGVhc2VOYW1lKTtcblxuICAgICAgY29uc3QgYnViYmxlID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVDb250ZXh0QXhpb21zID0gZmlsZUNvbnRleHQuZ2V0QXhpb21zKGJ1YmJsZSk7XG5cbiAgICAgICAgcHVzaChheGlvbXMsIGZpbGVDb250ZXh0QXhpb21zKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCByZWxlYXNlQ29udGV4dEF4aW9tcyA9IHJlbGVhc2VDb250ZXh0LmdldEF4aW9tcyhyZWxlYXNlTmFtZXMpO1xuXG4gICAgICAgIHB1c2goYXhpb21zLCByZWxlYXNlQ29udGV4dEF4aW9tcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0TGFiZWxzKHJlbGVhc2VOYW1lcyA9IFtdKSB7XG4gICAgY29uc3QgbGFiZWxzID0gW10sXG4gICAgICAgICAgcmVsZWFzZU5hbWUgPSB0aGlzLmdldFJlbGVhc2VOYW1lKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lcy5pbmNsdWRlcyhyZWxlYXNlTmFtZSk7XG5cbiAgICBpZiAoIXJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUpIHtcbiAgICAgIHJlbGVhc2VOYW1lcy5wdXNoKHJlbGVhc2VOYW1lKTtcblxuICAgICAgY29uc3QgYnViYmxlID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVDb250ZXh0TGFiZWxzID0gZmlsZUNvbnRleHQuZ2V0TGFiZWxzKGJ1YmJsZSk7XG5cbiAgICAgICAgcHVzaChsYWJlbHMsIGZpbGVDb250ZXh0TGFiZWxzKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCByZWxlYXNlQ29udGV4dExhYmVscyA9IHJlbGVhc2VDb250ZXh0LmdldExhYmVscyhyZWxlYXNlTmFtZXMpO1xuXG4gICAgICAgIHB1c2gobGFiZWxzLCByZWxlYXNlQ29udGV4dExhYmVscyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGFiZWxzO1xuICB9XG5cbiAgZ2V0Q29tYmluYXRvcnMocmVsZWFzZU5hbWVzID0gW10pIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdLFxuICAgICAgICAgIHJlbGVhc2VOYW1lID0gdGhpcy5nZXRSZWxlYXNlTmFtZSgpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUgPSByZWxlYXNlTmFtZXMuaW5jbHVkZXMocmVsZWFzZU5hbWUpO1xuXG4gICAgaWYgKCFyZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lKSB7XG4gICAgICByZWxlYXNlTmFtZXMucHVzaChyZWxlYXNlTmFtZSk7XG5cbiAgICAgIGNvbnN0IGJ1YmJsZSA9IGZhbHNlO1xuXG4gICAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBmaWxlQ29udGV4dENvbWJpbmF0b3JzID0gZmlsZUNvbnRleHQuZ2V0Q29tYmluYXRvcnMoYnViYmxlKTtcblxuICAgICAgICBwdXNoKGNvbWJpbmF0b3JzLCBmaWxlQ29udGV4dENvbWJpbmF0b3JzKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCByZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzID0gcmVsZWFzZUNvbnRleHQuZ2V0Q29tYmluYXRvcnMocmVsZWFzZU5hbWVzKTtcblxuICAgICAgICBwdXNoKGNvbWJpbmF0b3JzLCByZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBjb21iaW5hdG9ycztcbiAgfVxuXG4gIGdldENvbnN0cnVjdG9ycyhyZWxlYXNlTmFtZXMgPSBbXSkge1xuICAgIGNvbnN0IGNvbnN0cnVjdG9ycyA9IFtdLFxuICAgICAgICAgIHJlbGVhc2VOYW1lID0gdGhpcy5nZXRSZWxlYXNlTmFtZSgpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUgPSByZWxlYXNlTmFtZXMuaW5jbHVkZXMocmVsZWFzZU5hbWUpO1xuXG4gICAgaWYgKCFyZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VOYW1lKSB7XG4gICAgICByZWxlYXNlTmFtZXMucHVzaChyZWxlYXNlTmFtZSk7XG5cbiAgICAgIGNvbnN0IGJ1YmJsZSA9IGZhbHNlO1xuXG4gICAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBmaWxlQ29udGV4dENvbnN0cnVjdG9ycyA9IGZpbGVDb250ZXh0LmdldENvbnN0cnVjdG9ycyhidWJibGUpO1xuXG4gICAgICAgIHB1c2goY29uc3RydWN0b3JzLCBmaWxlQ29udGV4dENvbnN0cnVjdG9ycyk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRDb25zdHJ1Y3RvcnMgPSByZWxlYXNlQ29udGV4dC5nZXRDb25zdHJ1Y3RvcnMocmVsZWFzZU5hbWVzKTtcblxuICAgICAgICBwdXNoKGNvbnN0cnVjdG9ycywgcmVsZWFzZUNvbnRleHRDb25zdHJ1Y3RvcnMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9ycztcbiAgfVxuXG4gIGFkZEZpbGVDb250ZXh0KGZpbGVDb250ZXh0KSB7XG4gICAgdGhpcy5maWxlQ29udGV4dHMucHVzaChmaWxlQ29udGV4dCk7XG4gIH1cblxuICBzZXRWZXJpZmllZCh2ZXJpZmllZCkge1xuICAgIHRoaXMudmVyaWZpZWQgPSB2ZXJpZmllZDtcbiAgfVxuXG4gIHRva2VuaXNlKGNvbnRlbnQpIHsgcmV0dXJuIHRoaXMuZmxvcmVuY2VMZXhlci50b2tlbmlzZShjb250ZW50KTsgfVxuXG4gIHBhcnNlKHRva2VucykgeyByZXR1cm4gdGhpcy5mbG9yZW5jZVBhcnNlci5wYXJzZSh0b2tlbnMpOyB9XG5cbiAgdHJhY2UobWVzc2FnZSkgeyB0aGlzLmxvZy50cmFjZShtZXNzYWdlKTsgfVxuXG4gIGRlYnVnKG1lc3NhZ2UpIHsgdGhpcy5sb2cuZGVidWcobWVzc2FnZSk7IH1cblxuICBpbmZvKG1lc3NhZ2UpIHsgdGhpcy5sb2cuaW5mbyhtZXNzYWdlKTsgfVxuXG4gIHdhcm5pbmcobWVzc2FnZSkgeyB0aGlzLmxvZy53YXJuaW5nKG1lc3NhZ2UpOyB9XG5cbiAgZXJyb3IobWVzc2FnZSkgeyB0aGlzLmxvZy5lcnJvcihtZXNzYWdlKTsgfVxuXG4gIGZhdGFsKG1lc3NhZ2UpIHsgdGhpcy5sb2cuZmF0YWwobWVzc2FnZSk7IH1cblxuICBoYWx0KGZpbGVQYXRoLCBsZWFzdExpbmVJbmRleCwgZ3JlYXRlc3RMaW5lSW5kZXgpIHsgdGhpcy5jYWxsYmFja3MuaGFsdChmaWxlUGF0aCwgbGVhc3RMaW5lSW5kZXgsIGdyZWF0ZXN0TGluZUluZGV4KTsgfVxuXG4gIGJlZ2luKGZpbGVQYXRoLCBsZWFzdExpbmVJbmRleCwgZ3JlYXRlc3RMaW5lSW5kZXgpIHsgdGhpcy5jYWxsYmFja3MuYmVnaW4oZmlsZVBhdGgsIGxlYXN0TGluZUluZGV4LCBncmVhdGVzdExpbmVJbmRleCk7IH1cblxuICBjb21wbGV0ZShmaWxlUGF0aCwgbGVhc3RMaW5lSW5kZXgsIGdyZWF0ZXN0TGluZUluZGV4KSB7IHRoaXMuY2FsbGJhY2tzLmNvbXBsZXRlKGZpbGVQYXRoLCBsZWFzdExpbmVJbmRleCwgZ3JlYXRlc3RMaW5lSW5kZXgpOyB9XG5cbiAgaW5pdGlhbGlzZShyZWxlYXNlQ29udGV4dHMsIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMpIHtcbiAgICBjb25zdCByZWxlYXNlQ29udGV4dCA9IHRoaXM7ICAvLy9cblxuICAgIHJlbGVhc2VDb250ZXh0cyA9IFsgcmVsZWFzZUNvbnRleHQsIC4uLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgXTsgLy8vXG5cbiAgICBjb25zdCBjb21iaW5lZEN1c3RvbUdyYW1tYXIgPSBjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tUmVsZWFzZUNvbnRleHRzKHJlbGVhc2VDb250ZXh0cyk7XG5cbiAgICB0aGlzLmZsb3JlbmNlTGV4ZXIgPSBmbG9yZW5jZUxleGVyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hcihjb21iaW5lZEN1c3RvbUdyYW1tYXIpO1xuXG4gICAgdGhpcy5mbG9yZW5jZVBhcnNlciA9IGZsb3JlbmNlUGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hcihjb21iaW5lZEN1c3RvbUdyYW1tYXIpO1xuXG4gICAgdGhpcy5yZWxlYXNlQ29udGV4dHMgPSByZWxlYXNlQ29udGV4dHM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QganNvbiA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGZpbGVDb250ZXh0SlNPTiA9IGZpbGVDb250ZXh0LnRvSlNPTigpO1xuXG4gICAgICBwdXNoKGpzb24sIGZpbGVDb250ZXh0SlNPTik7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTG9nUmVsZWFzZUFuZENhbGxiYWNrcyhsb2csIHJlbGVhc2UsIGNhbGxiYWNrcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgdmVyaWZpZWQgPSBmYWxzZSxcbiAgICAgICAgICBjdXN0b21HcmFtbWFyID0gY3VzdG9tR3JhbW1hckZyb21SZWxlYXNlKHJlbGVhc2UpLFxuICAgICAgICAgIGZpbGVDb250ZXh0cyA9IFtdLFxuICAgICAgICAgIGZsb3JlbmNlTGV4ZXIgPSBudWxsLFxuICAgICAgICAgIGZsb3JlbmNlUGFyc2VyID0gbnVsbCxcbiAgICAgICAgICByZWxlYXNlQ29udGV4dHMgPSBbXSxcbiAgICAgICAgICByZWxlYXNlQ29udGV4dCA9IG5ldyBSZWxlYXNlQ29udGV4dChsb2csIHJlbGVhc2UsIGNhbGxiYWNrcywgdmVyaWZpZWQsIGN1c3RvbUdyYW1tYXIsIGZpbGVDb250ZXh0cywgZmxvcmVuY2VMZXhlciwgZmxvcmVuY2VQYXJzZXIsIHJlbGVhc2VDb250ZXh0cywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiByZWxlYXNlQ29udGV4dDtcbiAgfVxufVxuIiwiUmVhY3QuY3JlYXRlRWxlbWVudCJdLCJuYW1lcyI6WyJSZWxlYXNlQ29udGV4dCIsImZsb3JlbmNlTGV4ZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIiwibGV4ZXJzVXRpbGl0aWVzIiwiZmxvcmVuY2VQYXJzZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIiwicGFyc2Vyc1V0aWxpdGllcyIsImxvZyIsInJlbGVhc2UiLCJjYWxsYmFja3MiLCJ2ZXJpZmllZCIsImN1c3RvbUdyYW1tYXIiLCJmaWxlQ29udGV4dHMiLCJmbG9yZW5jZUxleGVyIiwiZmxvcmVuY2VQYXJzZXIiLCJyZWxlYXNlQ29udGV4dHMiLCJnZXRMb2ciLCJnZXRSZWxlYXNlIiwiZ2V0Q2FsbGJhY2tzIiwiaXNWZXJpZmllZCIsImdldEN1c3RvbUdyYW1tYXIiLCJnZXRGaWxlQ29udGV4dHMiLCJnZXRGbG9yZW5jZUxleGVyIiwiZ2V0RmxvcmVuY2VQYXJzZXIiLCJnZXRSZWxlYXNlQ29udGV4dHMiLCJnZXRGaWxlIiwiZmlsZVBhdGgiLCJnZXRWZXJzaW9uIiwiZ2V0RmlsZVBhdGhzIiwiZ2V0RGVwZW5kZW5jaWVzIiwibWF0Y2hTaG9ydGVuZWRWZXJzaW9uIiwic2hvcnRlbmVkVmVyc2lvbiIsImdldFJlbGVhc2VOYW1lIiwicmVsZWFzZU5hbWUiLCJnZXROYW1lIiwiZ2V0UnVsZXMiLCJyZWxlYXNlTmFtZXMiLCJydWxlcyIsInJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZU5hbWUiLCJpbmNsdWRlcyIsInB1c2giLCJidWJibGUiLCJmb3JFYWNoIiwiZmlsZUNvbnRleHQiLCJmaWxlQ29udGV4dFJ1bGVzIiwicmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlQ29udGV4dFJ1bGVzIiwiZ2V0VHlwZXMiLCJ0eXBlcyIsImZpbGVDb250ZXh0VHlwZXMiLCJyZWxlYXNlQ29udGV4dFR5cGVzIiwiZ2V0QXhpb21zIiwiYXhpb21zIiwiZmlsZUNvbnRleHRBeGlvbXMiLCJyZWxlYXNlQ29udGV4dEF4aW9tcyIsImdldExhYmVscyIsImxhYmVscyIsImZpbGVDb250ZXh0TGFiZWxzIiwicmVsZWFzZUNvbnRleHRMYWJlbHMiLCJnZXRDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZmlsZUNvbnRleHRDb21iaW5hdG9ycyIsInJlbGVhc2VDb250ZXh0Q29tYmluYXRvcnMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJmaWxlQ29udGV4dENvbnN0cnVjdG9ycyIsInJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzIiwiYWRkRmlsZUNvbnRleHQiLCJzZXRWZXJpZmllZCIsInRva2VuaXNlIiwiY29udGVudCIsInBhcnNlIiwidG9rZW5zIiwidHJhY2UiLCJtZXNzYWdlIiwiZGVidWciLCJpbmZvIiwid2FybmluZyIsImVycm9yIiwiZmF0YWwiLCJoYWx0IiwibGVhc3RMaW5lSW5kZXgiLCJncmVhdGVzdExpbmVJbmRleCIsImJlZ2luIiwiY29tcGxldGUiLCJpbml0aWFsaXNlIiwiZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21SZWxlYXNlQ29udGV4dHMiLCJ0b0pTT04iLCJqc29uIiwiZmlsZUNvbnRleHRKU09OIiwiZnJvbUxvZ1JlbGVhc2VBbmRDYWxsYmFja3MiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJjdXN0b21HcmFtbWFyRnJvbVJlbGVhc2UiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBVXFCQTs7O21DQVI2QjtxQkFFN0I7NkJBQzhEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuRixJQUFNLEFBQUVDLHlDQUEyQ0Msb0NBQWUsQ0FBMURELHdDQUNGLEFBQUVFLDBDQUE0Q0MscUNBQWdCLENBQTVERDtBQUVPLElBQUEsQUFBTUgsK0JBQU47YUFBTUEsZUFDUEssR0FBRyxFQUFFQyxPQUFPLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxFQUFFQyxhQUFhLEVBQUVDLFlBQVksRUFBRUMsYUFBYSxFQUFFQyxjQUFjLEVBQUVDLGVBQWU7OEJBRHZHYjtRQUVqQixJQUFJLENBQUNLLEdBQUcsR0FBR0E7UUFDWCxJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLFNBQVMsR0FBR0E7UUFDakIsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsYUFBYSxHQUFHQTtRQUNyQixJQUFJLENBQUNDLFlBQVksR0FBR0E7UUFDcEIsSUFBSSxDQUFDQyxhQUFhLEdBQUdBO1FBQ3JCLElBQUksQ0FBQ0MsY0FBYyxHQUFHQTtRQUN0QixJQUFJLENBQUNDLGVBQWUsR0FBR0E7O2lCQVZOYjs7WUFhbkJjLEtBQUFBO21CQUFBQSxTQUFBQSxTQUFTO2dCQUNQLE9BQU8sSUFBSSxDQUFDVCxHQUFHO1lBQ2pCOzs7WUFFQVUsS0FBQUE7bUJBQUFBLFNBQUFB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
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L3JlbGVhc2UuanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGxleGVyc1V0aWxpdGllcywgcGFyc2Vyc1V0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1jdXN0b20tZ3JhbW1hcnNcIjtcblxuaW1wb3J0IHsgY3VzdG9tR3JhbW1hckZyb21SZWxlYXNlLCBjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tUmVsZWFzZUNvbnRleHRzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jdXN0b21HcmFtbWFyXCI7XG5cbmNvbnN0IHsgZmxvcmVuY2VMZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIgfSA9IGxleGVyc1V0aWxpdGllcyxcbiAgICAgIHsgZmxvcmVuY2VQYXJzZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gPSBwYXJzZXJzVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZWxlYXNlQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKGxvZywgdmVyaWZpZWQsIGNhbGxiYWNrcywgY3VzdG9tR3JhbW1hciwgZmxvcmVuY2VMZXhlciwgZmxvcmVuY2VQYXJzZXIsIHJlbGVhc2VDb250ZXh0cykge1xuICAgIHRoaXMubG9nID0gbG9nO1xuICAgIHRoaXMudmVyaWZpZWQgPSB2ZXJpZmllZDtcbiAgICB0aGlzLmNhbGxiYWNrcyA9IGNhbGxiYWNrcztcbiAgICB0aGlzLmN1c3RvbUdyYW1tYXIgPSBjdXN0b21HcmFtbWFyO1xuICAgIHRoaXMuZmxvcmVuY2VMZXhlciA9IGZsb3JlbmNlTGV4ZXI7XG4gICAgdGhpcy5mbG9yZW5jZVBhcnNlciA9IGZsb3JlbmNlUGFyc2VyO1xuICAgIHRoaXMucmVsZWFzZUNvbnRleHRzID0gcmVsZWFzZUNvbnRleHRzO1xuICB9XG5cbiAgZ2V0TG9nKCkge1xuICAgIHJldHVybiB0aGlzLmxvZztcbiAgfVxuXG4gIGlzVmVyaWZpZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudmVyaWZpZWQ7XG4gIH1cblxuICBnZXRDYWxsYmFja3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2FsbGJhY2tzO1xuICB9XG5cbiAgZ2V0Q3VzdG9tR3JhbW1hcigpIHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21HcmFtbWFyO1xuICB9XG5cbiAgZ2V0RmxvcmVuY2VMZXhlcigpIHtcbiAgICByZXR1cm4gdGhpcy5mbG9yZW5jZUxleGVyO1xuICB9XG5cbiAgZ2V0RmxvcmVuY2VQYXJzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxvcmVuY2VQYXJzZXI7XG4gIH1cblxuICBnZXRSZWxlYXNlQ29udGV4dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVsZWFzZUNvbnRleHRzO1xuICB9XG5cbiAgc2V0VmVyaWZpZWQodmVyaWZpZWQpIHtcbiAgICB0aGlzLnZlcmlmaWVkID0gdmVyaWZpZWQ7XG4gIH1cblxuICB0b2tlbmlzZShjb250ZW50KSB7IHJldHVybiB0aGlzLmZsb3JlbmNlTGV4ZXIudG9rZW5pc2UoY29udGVudCk7IH1cblxuICBwYXJzZSh0b2tlbnMpIHsgcmV0dXJuIHRoaXMuZmxvcmVuY2VQYXJzZXIucGFyc2UodG9rZW5zKTsgfVxuXG4gIHRyYWNlKG1lc3NhZ2UpIHsgdGhpcy5sb2cudHJhY2UobWVzc2FnZSk7IH1cblxuICBkZWJ1ZyhtZXNzYWdlKSB7IHRoaXMubG9nLmRlYnVnKG1lc3NhZ2UpOyB9XG5cbiAgaW5mbyhtZXNzYWdlKSB7IHRoaXMubG9nLmluZm8obWVzc2FnZSk7IH1cblxuICB3YXJuaW5nKG1lc3NhZ2UpIHsgdGhpcy5sb2cud2FybmluZyhtZXNzYWdlKTsgfVxuXG4gIGVycm9yKG1lc3NhZ2UpIHsgdGhpcy5sb2cuZXJyb3IobWVzc2FnZSk7IH1cblxuICBmYXRhbChtZXNzYWdlKSB7IHRoaXMubG9nLmZhdGFsKG1lc3NhZ2UpOyB9XG5cbiAgaGFsdChmaWxlUGF0aCwgbGVhc3RMaW5lSW5kZXgsIGdyZWF0ZXN0TGluZUluZGV4KSB7IHRoaXMuY2FsbGJhY2tzLmhhbHQoZmlsZVBhdGgsIGxlYXN0TGluZUluZGV4LCBncmVhdGVzdExpbmVJbmRleCk7IH1cblxuICBiZWdpbihmaWxlUGF0aCwgbGVhc3RMaW5lSW5kZXgsIGdyZWF0ZXN0TGluZUluZGV4KSB7IHRoaXMuY2FsbGJhY2tzLmJlZ2luKGZpbGVQYXRoLCBsZWFzdExpbmVJbmRleCwgZ3JlYXRlc3RMaW5lSW5kZXgpOyB9XG5cbiAgY29tcGxldGUoZmlsZVBhdGgsIGxlYXN0TGluZUluZGV4LCBncmVhdGVzdExpbmVJbmRleCkgeyB0aGlzLmNhbGxiYWNrcy5jb21wbGV0ZShmaWxlUGF0aCwgbGVhc3RMaW5lSW5kZXgsIGdyZWF0ZXN0TGluZUluZGV4KTsgfVxuXG4gIGluaXRpYWxpc2UocmVsZWFzZUNvbnRleHRzLCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKSB7XG4gICAgY29uc3QgcmVsZWFzZUNvbnRleHQgPSB0aGlzOyAgLy8vXG5cbiAgICByZWxlYXNlQ29udGV4dHMgPSBbIHJlbGVhc2VDb250ZXh0LCAuLi5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIF07IC8vL1xuXG4gICAgY29uc3QgY29tYmluZWRDdXN0b21HcmFtbWFyID0gY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dHMpO1xuXG4gICAgdGhpcy5mbG9yZW5jZUxleGVyID0gZmxvcmVuY2VMZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoY29tYmluZWRDdXN0b21HcmFtbWFyKTtcblxuICAgIHRoaXMuZmxvcmVuY2VQYXJzZXIgPSBmbG9yZW5jZVBhcnNlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoY29tYmluZWRDdXN0b21HcmFtbWFyKTtcblxuICAgIHRoaXMucmVsZWFzZUNvbnRleHRzID0gcmVsZWFzZUNvbnRleHRzO1xuICB9XG5cbiAgc3RhdGljIGZyb21Mb2dSZWxlYXNlQW5kQ2FsbGJhY2tzKGxvZywgcmVsZWFzZSwgY2FsbGJhY2tzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCB2ZXJpZmllZCA9IGZhbHNlLFxuICAgICAgICAgIGN1c3RvbUdyYW1tYXIgPSBjdXN0b21HcmFtbWFyRnJvbVJlbGVhc2UocmVsZWFzZSksXG4gICAgICAgICAgZmlsZUNvbnRleHRzID0gW10sXG4gICAgICAgICAgZmxvcmVuY2VMZXhlciA9IG51bGwsXG4gICAgICAgICAgZmxvcmVuY2VQYXJzZXIgPSBudWxsLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0cyA9IG51bGwsXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSBuZXcgUmVsZWFzZUNvbnRleHQobG9nLCByZWxlYXNlLCBjYWxsYmFja3MsIHZlcmlmaWVkLCBjdXN0b21HcmFtbWFyLCBmaWxlQ29udGV4dHMsIGZsb3JlbmNlTGV4ZXIsIGZsb3JlbmNlUGFyc2VyLCByZWxlYXNlQ29udGV4dHMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gcmVsZWFzZUNvbnRleHQ7XG4gIH1cbn1cbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiUmVsZWFzZUNvbnRleHQiLCJmbG9yZW5jZUxleGVyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImxleGVyc1V0aWxpdGllcyIsImZsb3JlbmNlUGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsInBhcnNlcnNVdGlsaXRpZXMiLCJsb2ciLCJ2ZXJpZmllZCIsImNhbGxiYWNrcyIsImN1c3RvbUdyYW1tYXIiLCJmbG9yZW5jZUxleGVyIiwiZmxvcmVuY2VQYXJzZXIiLCJyZWxlYXNlQ29udGV4dHMiLCJnZXRMb2ciLCJpc1ZlcmlmaWVkIiwiZ2V0Q2FsbGJhY2tzIiwiZ2V0Q3VzdG9tR3JhbW1hciIsImdldEZsb3JlbmNlTGV4ZXIiLCJnZXRGbG9yZW5jZVBhcnNlciIsImdldFJlbGVhc2VDb250ZXh0cyIsInNldFZlcmlmaWVkIiwidG9rZW5pc2UiLCJjb250ZW50IiwicGFyc2UiLCJ0b2tlbnMiLCJ0cmFjZSIsIm1lc3NhZ2UiLCJkZWJ1ZyIsImluZm8iLCJ3YXJuaW5nIiwiZXJyb3IiLCJmYXRhbCIsImhhbHQiLCJmaWxlUGF0aCIsImxlYXN0TGluZUluZGV4IiwiZ3JlYXRlc3RMaW5lSW5kZXgiLCJiZWdpbiIsImNvbXBsZXRlIiwiaW5pdGlhbGlzZSIsImRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMiLCJyZWxlYXNlQ29udGV4dCIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21SZWxlYXNlQ29udGV4dHMiLCJmcm9tTG9nUmVsZWFzZUFuZENhbGxiYWNrcyIsInJlbGVhc2UiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJjdXN0b21HcmFtbWFyRnJvbVJlbGVhc2UiLCJmaWxlQ29udGV4dHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBU3FCQTs7O21DQVA2Qjs2QkFFaUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW5GLElBQU0sQUFBRUMseUNBQTJDQyxvQ0FBZSxDQUExREQsd0NBQ0YsQUFBRUUsMENBQTRDQyxxQ0FBZ0IsQ0FBNUREO0FBRU8sSUFBQSxBQUFNSCwrQkFBTjthQUFNQSxlQUNQSyxHQUFHLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsY0FBYyxFQUFFQyxlQUFlOzhCQURoRlg7UUFFakIsSUFBSSxDQUFDSyxHQUFHLEdBQUdBO1FBQ1gsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENBQUNDLGFBQWEsR0FBR0E7UUFDckIsSUFBSSxDQUFDQyxhQUFhLEdBQUdBO1FBQ3JCLElBQUksQ0FBQ0MsY0FBYyxHQUFHQTtRQUN0QixJQUFJLENBQUNDLGVBQWUsR0FB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
|
package/lib/index.js
CHANGED
|
@@ -12,9 +12,6 @@ _export(exports, {
|
|
|
12
12
|
Callbacks: function() {
|
|
13
13
|
return _callbacks.default;
|
|
14
14
|
},
|
|
15
|
-
jsonUtilities: function() {
|
|
16
|
-
return _json.default;
|
|
17
|
-
},
|
|
18
15
|
verifyRelease: function() {
|
|
19
16
|
return _release.default;
|
|
20
17
|
},
|
|
@@ -24,19 +21,30 @@ _export(exports, {
|
|
|
24
21
|
versionChanges: function() {
|
|
25
22
|
return _versionChanges.default;
|
|
26
23
|
},
|
|
24
|
+
DirectoryReleaseContext: function() {
|
|
25
|
+
return _directory.default;
|
|
26
|
+
},
|
|
27
|
+
jsonUtilities: function() {
|
|
28
|
+
return _json.default;
|
|
29
|
+
},
|
|
27
30
|
versionUtilities: function() {
|
|
28
31
|
return _version.default;
|
|
29
32
|
},
|
|
33
|
+
customGrammarUtilities: function() {
|
|
34
|
+
return _customGrammar.default;
|
|
35
|
+
},
|
|
30
36
|
releaseContextUtilities: function() {
|
|
31
37
|
return _releaseContext.default;
|
|
32
38
|
}
|
|
33
39
|
});
|
|
34
40
|
var _callbacks = /*#__PURE__*/ _interopRequireDefault(require("./callbacks"));
|
|
35
|
-
var _json = /*#__PURE__*/ _interopRequireDefault(require("./utilities/json"));
|
|
36
41
|
var _release = /*#__PURE__*/ _interopRequireDefault(require("./verify/release"));
|
|
37
42
|
var _release1 = /*#__PURE__*/ _interopRequireDefault(require("./context/release"));
|
|
38
43
|
var _versionChanges = /*#__PURE__*/ _interopRequireDefault(require("./versionChanges"));
|
|
44
|
+
var _directory = /*#__PURE__*/ _interopRequireDefault(require("./context/release/directory"));
|
|
45
|
+
var _json = /*#__PURE__*/ _interopRequireDefault(require("./utilities/json"));
|
|
39
46
|
var _version = /*#__PURE__*/ _interopRequireDefault(require("./utilities/version"));
|
|
47
|
+
var _customGrammar = /*#__PURE__*/ _interopRequireDefault(require("./utilities/customGrammar"));
|
|
40
48
|
var _releaseContext = /*#__PURE__*/ _interopRequireDefault(require("./utilities/releaseContext"));
|
|
41
49
|
function _interopRequireDefault(obj) {
|
|
42
50
|
return obj && obj.__esModule ? obj : {
|
|
@@ -44,4 +52,4 @@ function _interopRequireDefault(obj) {
|
|
|
44
52
|
};
|
|
45
53
|
}
|
|
46
54
|
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxsYmFja3MgfSBmcm9tIFwiLi9jYWxsYmFja3NcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdmVyaWZ5UmVsZWFzZSB9IGZyb20gXCIuL3ZlcmlmeS9yZWxlYXNlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlbGVhc2VDb250ZXh0IH0gZnJvbSBcIi4vY29udGV4dC9yZWxlYXNlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHZlcnNpb25DaGFuZ2VzIH0gZnJvbSBcIi4vdmVyc2lvbkNoYW5nZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGlyZWN0b3J5UmVsZWFzZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L3JlbGVhc2UvZGlyZWN0b3J5XCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMganNvblV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9qc29uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHZlcnNpb25VdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvdmVyc2lvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjdXN0b21HcmFtbWFyVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2N1c3RvbUdyYW1tYXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcmVsZWFzZUNvbnRleHRVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvcmVsZWFzZUNvbnRleHRcIjtcbiJdLCJuYW1lcyI6WyJDYWxsYmFja3MiLCJ2ZXJpZnlSZWxlYXNlIiwiUmVsZWFzZUNvbnRleHQiLCJ2ZXJzaW9uQ2hhbmdlcyIsIkRpcmVjdG9yeVJlbGVhc2VDb250ZXh0IiwianNvblV0aWxpdGllcyIsInZlcnNpb25VdGlsaXRpZXMiLCJjdXN0b21HcmFtbWFyVXRpbGl0aWVzIiwicmVsZWFzZUNvbnRleHRVdGlsaXRpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUVvQkEsU0FBUztlQUFUQSxrQkFBUzs7SUFDVEMsYUFBYTtlQUFiQSxnQkFBYTs7SUFDYkMsY0FBYztlQUFkQSxpQkFBYzs7SUFDZEMsY0FBYztlQUFkQSx1QkFBYzs7SUFDZEMsdUJBQXVCO2VBQXZCQSxrQkFBdUI7O0lBRXZCQyxhQUFhO2VBQWJBLGFBQWE7O0lBQ2JDLGdCQUFnQjtlQUFoQkEsZ0JBQWdCOztJQUNoQkMsc0JBQXNCO2VBQXRCQSxzQkFBc0I7O0lBQ3RCQyx1QkFBdUI7ZUFBdkJBLHVCQUF1Qjs7OzhEQVROOzREQUNJOzZEQUNDO21FQUNBOzhEQUNTO3lEQUVWOzREQUNHO2tFQUNNO21FQUNDIn0=
|
|
@@ -14,6 +14,9 @@ _export(exports, {
|
|
|
14
14
|
},
|
|
15
15
|
combinedCustomGrammarFromReleaseContexts: function() {
|
|
16
16
|
return combinedCustomGrammarFromReleaseContexts;
|
|
17
|
+
},
|
|
18
|
+
default: function() {
|
|
19
|
+
return _default;
|
|
17
20
|
}
|
|
18
21
|
});
|
|
19
22
|
var _occamCustomGrammars = require("occam-custom-grammars");
|
|
@@ -28,5 +31,9 @@ function combinedCustomGrammarFromReleaseContexts(releaseContexts) {
|
|
|
28
31
|
}), combinedCustomGrammar = _occamCustomGrammars.CombinedCustomGrammar.fromCustomGrammars(customGrammars);
|
|
29
32
|
return combinedCustomGrammar;
|
|
30
33
|
}
|
|
34
|
+
var _default = {
|
|
35
|
+
customGrammarFromRelease: customGrammarFromRelease,
|
|
36
|
+
combinedCustomGrammarFromReleaseContexts: combinedCustomGrammarFromReleaseContexts
|
|
37
|
+
};
|
|
31
38
|
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY3VzdG9tR3JhbW1hci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQ3VzdG9tR3JhbW1hciwgQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gZnJvbSBcIm9jY2FtLWN1c3RvbS1ncmFtbWFyc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3VzdG9tR3JhbW1hckZyb21SZWxlYXNlKHJlbGVhc2UpIHtcbiAgY29uc3QgbmFtZSA9IHJlbGVhc2UuZ2V0TmFtZSgpLFxuICAgICAgICB0ZXJtQk5GID0gcmVsZWFzZS5nZXRUZXJtQk5GKCksXG4gICAgICAgIHN0YXRlbWVudEJORiA9IHJlbGVhc2UuZ2V0U3RhdGVtZW50Qk5GKCksXG4gICAgICAgIG1ldGFzdGF0ZW1lbnRCTkYgPSByZWxlYXNlLmdldE1ldGFzdGF0ZW1lbnRCTkYoKSxcbiAgICAgICAgdHlwZVBhdHRlcm4gPSByZWxlYXNlLmdldFR5cGVQYXR0ZXJuKCksXG4gICAgICAgIHN5bWJvbFBhdHRlcm4gPSByZWxlYXNlLmdldFN5bWJvbFBhdHRlcm4oKSxcbiAgICAgICAgb3BlcmF0b3JQYXR0ZXJuID0gcmVsZWFzZS5nZXRPcGVyYXRvclBhdHRlcm4oKSxcbiAgICAgICAgY3VzdG9tR3JhbW1hciA9IEN1c3RvbUdyYW1tYXIuZnJvbU5hbWVUZXJtQk5GU3RhdGVtZW50Qk5GTWV0YXN0YXRlbWVudEJORlR5cGVQYXR0ZXJuU3ltYm9sUGF0dGVybkFuZE9wZXJhdG9yUGF0dGVybihuYW1lLCB0ZXJtQk5GLCBzdGF0ZW1lbnRCTkYsIG1ldGFzdGF0ZW1lbnRCTkYsIHR5cGVQYXR0ZXJuLCBzeW1ib2xQYXR0ZXJuLCBvcGVyYXRvclBhdHRlcm4pO1xuXG4gIHJldHVybiBjdXN0b21HcmFtbWFyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dHMpIHtcbiAgY29uc3QgY3VzdG9tR3JhbW1hcnMgPSByZWxlYXNlQ29udGV4dHMubWFwKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGN1c3RvbUdyYW1tYXIgPSByZWxlYXNlQ29udGV4dC5nZXRDdXN0b21HcmFtbWFyKCk7XG5cbiAgICAgICAgICByZXR1cm4gY3VzdG9tR3JhbW1hcjtcbiAgICAgICAgfSksXG4gICAgICAgIGNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IENvbWJpbmVkQ3VzdG9tR3JhbW1hci5mcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMpO1xuXG4gIHJldHVybiBjb21iaW5lZEN1c3RvbUdyYW1tYXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY3VzdG9tR3JhbW1hckZyb21SZWxlYXNlLFxuICBjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tUmVsZWFzZUNvbnRleHRzXG59O1xuIl0sIm5hbWVzIjpbImN1c3RvbUdyYW1tYXJGcm9tUmVsZWFzZSIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21SZWxlYXNlQ29udGV4dHMiLCJyZWxlYXNlIiwibmFtZSIsImdldE5hbWUiLCJ0ZXJtQk5GIiwiZ2V0VGVybUJORiIsInN0YXRlbWVudEJORiIsImdldFN0YXRlbWVudEJORiIsIm1ldGFzdGF0ZW1lbnRCTkYiLCJnZXRNZXRhc3RhdGVtZW50Qk5GIiwidHlwZVBhdHRlcm4iLCJnZXRUeXBlUGF0dGVybiIsInN5bWJvbFBhdHRlcm4iLCJnZXRTeW1ib2xQYXR0ZXJuIiwib3BlcmF0b3JQYXR0ZXJuIiwiZ2V0T3BlcmF0b3JQYXR0ZXJuIiwiY3VzdG9tR3JhbW1hciIsIkN1c3RvbUdyYW1tYXIiLCJmcm9tTmFtZVRlcm1CTkZTdGF0ZW1lbnRCTkZNZXRhc3RhdGVtZW50Qk5GVHlwZVBhdHRlcm5TeW1ib2xQYXR0ZXJuQW5kT3BlcmF0b3JQYXR0ZXJuIiwicmVsZWFzZUNvbnRleHRzIiwiY3VzdG9tR3JhbW1hcnMiLCJtYXAiLCJyZWxlYXNlQ29udGV4dCIsImdldEN1c3RvbUdyYW1tYXIiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJDb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJmcm9tQ3VzdG9tR3JhbW1hcnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUlnQkEsd0JBQXdCO2VBQXhCQTs7SUFhQUMsd0NBQXdDO2VBQXhDQTs7SUFXaEIsT0FHRTtlQUhGOzs7bUNBMUJxRDtBQUU5QyxTQUFTRCx5QkFBeUJFLE9BQU8sRUFBRTtJQUNoRCxJQUFNQyxPQUFPRCxRQUFRRSxPQUFPLElBQ3RCQyxVQUFVSCxRQUFRSSxVQUFVLElBQzVCQyxlQUFlTCxRQUFRTSxlQUFlLElBQ3RDQyxtQkFBbUJQLFFBQVFRLG1CQUFtQixJQUM5Q0MsY0FBY1QsUUFBUVUsY0FBYyxJQUNwQ0MsZ0JBQWdCWCxRQUFRWSxnQkFBZ0IsSUFDeENDLGtCQUFrQmIsUUFBUWMsa0JBQWtCLElBQzVDQyxnQkFBZ0JDLGtDQUFhLENBQUNDLHFGQUFxRixDQUFDaEIsTUFBTUUsU0FBU0UsY0FBY0Usa0JBQWtCRSxhQUFhRSxlQUFlRTtJQUVyTSxPQUFPRTtBQUNUO0FBRU8sU0FBU2hCLHlDQUF5Q21CLGVBQWUsRUFBRTtJQUN4RSxJQUFNQyxpQkFBaUJELGdCQUFnQkUsR0FBRyxDQUFDLFNBQUNDLGdCQUFtQjtRQUN2RCxJQUFNTixnQkFBZ0JNLGVBQWVDLGdCQUFnQjtRQUVyRCxPQUFPUDtJQUNULElBQ0FRLHdCQUF3QkMsMENBQXFCLENBQUNDLGtCQUFrQixDQUFDTjtJQUV2RSxPQUFPSTtBQUNUO0lBRUEsV0FBZTtJQUNiekIsMEJBQUFBO0lBQ0FDLDBDQUFBQTtBQUNGIn0=
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-verify-cli",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.370",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-verify-cli",
|
|
7
7
|
"description": "Occam's Verifier",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"necessary": "^11.1.11",
|
|
15
15
|
"occam-custom-grammars": "^5.0.359",
|
|
16
16
|
"occam-dom": "^3.0.171",
|
|
17
|
-
"occam-file-system": "^5.0.
|
|
17
|
+
"occam-file-system": "^5.0.76",
|
|
18
18
|
"occam-grammar-utilities": "^7.0.66"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import ReleaseContext from "../../context/release";
|
|
4
|
+
|
|
5
|
+
import { push } from "../../utilities/array";
|
|
6
|
+
import { customGrammarFromRelease } from "../../utilities/customGrammar";
|
|
7
|
+
|
|
8
|
+
export default class DirectoryReleaseContext extends ReleaseContext {
|
|
9
|
+
constructor(log, verified, callbacks, customGrammar, florenceLexer, florenceParser, releaseContexts, fileContexts, release) {
|
|
10
|
+
super(log, verified, callbacks, customGrammar, florenceLexer, florenceParser, releaseContexts);
|
|
11
|
+
|
|
12
|
+
this.fileContexts = fileContexts;
|
|
13
|
+
this.release = release;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
getFileContexts() {
|
|
17
|
+
return this.fileContexts;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
getRelease() {
|
|
21
|
+
return this.release;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
getReleaseName() {
|
|
25
|
+
const releaseName = this.release.getName();
|
|
26
|
+
|
|
27
|
+
return releaseName;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
getFile(filePath) { return this.release.getFile(filePath); }
|
|
31
|
+
|
|
32
|
+
getVersion() { return this.release.getVersion(); }
|
|
33
|
+
|
|
34
|
+
getFilePaths() { return this.release.getFilePaths(); }
|
|
35
|
+
|
|
36
|
+
getDependencies() { return this.release.getDependencies(); }
|
|
37
|
+
|
|
38
|
+
matchShortenedVersion(shortenedVersion) { return this.release.matchShortenedVersion(shortenedVersion); }
|
|
39
|
+
|
|
40
|
+
getRules(releaseNames = []) {
|
|
41
|
+
const rules = [],
|
|
42
|
+
releaseName = this.getReleaseName(),
|
|
43
|
+
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
44
|
+
|
|
45
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
46
|
+
releaseNames.push(releaseName);
|
|
47
|
+
|
|
48
|
+
const bubble = false;
|
|
49
|
+
|
|
50
|
+
this.fileContexts.forEach((fileContext) => {
|
|
51
|
+
const fileContextRules = fileContext.getRules(bubble);
|
|
52
|
+
|
|
53
|
+
push(rules, fileContextRules);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
this.releaseContexts.forEach((releaseContext) => {
|
|
57
|
+
const releaseContextRules = releaseContext.getRules(releaseNames);
|
|
58
|
+
|
|
59
|
+
push(rules, releaseContextRules);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return rules;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
getTypes(releaseNames = []) {
|
|
67
|
+
const types = [],
|
|
68
|
+
releaseName = this.getReleaseName(),
|
|
69
|
+
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
70
|
+
|
|
71
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
72
|
+
releaseNames.push(releaseName);
|
|
73
|
+
|
|
74
|
+
const bubble = false;
|
|
75
|
+
|
|
76
|
+
this.fileContexts.forEach((fileContext) => {
|
|
77
|
+
const fileContextTypes = fileContext.getTypes(bubble);
|
|
78
|
+
|
|
79
|
+
push(types, fileContextTypes);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
this.releaseContexts.forEach((releaseContext) => {
|
|
83
|
+
const releaseContextTypes = releaseContext.getTypes(releaseNames);
|
|
84
|
+
|
|
85
|
+
push(types, releaseContextTypes);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return types;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
getAxioms(releaseNames = []) {
|
|
93
|
+
const axioms = [],
|
|
94
|
+
releaseName = this.getReleaseName(),
|
|
95
|
+
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
96
|
+
|
|
97
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
98
|
+
releaseNames.push(releaseName);
|
|
99
|
+
|
|
100
|
+
const bubble = false;
|
|
101
|
+
|
|
102
|
+
this.fileContexts.forEach((fileContext) => {
|
|
103
|
+
const fileContextAxioms = fileContext.getAxioms(bubble);
|
|
104
|
+
|
|
105
|
+
push(axioms, fileContextAxioms);
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
this.releaseContexts.forEach((releaseContext) => {
|
|
109
|
+
const releaseContextAxioms = releaseContext.getAxioms(releaseNames);
|
|
110
|
+
|
|
111
|
+
push(axioms, releaseContextAxioms);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return axioms;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
getLabels(releaseNames = []) {
|
|
119
|
+
const labels = [],
|
|
120
|
+
releaseName = this.getReleaseName(),
|
|
121
|
+
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
122
|
+
|
|
123
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
124
|
+
releaseNames.push(releaseName);
|
|
125
|
+
|
|
126
|
+
const bubble = false;
|
|
127
|
+
|
|
128
|
+
this.fileContexts.forEach((fileContext) => {
|
|
129
|
+
const fileContextLabels = fileContext.getLabels(bubble);
|
|
130
|
+
|
|
131
|
+
push(labels, fileContextLabels);
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
this.releaseContexts.forEach((releaseContext) => {
|
|
135
|
+
const releaseContextLabels = releaseContext.getLabels(releaseNames);
|
|
136
|
+
|
|
137
|
+
push(labels, releaseContextLabels);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
return labels;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
getCombinators(releaseNames = []) {
|
|
145
|
+
const combinators = [],
|
|
146
|
+
releaseName = this.getReleaseName(),
|
|
147
|
+
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
148
|
+
|
|
149
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
150
|
+
releaseNames.push(releaseName);
|
|
151
|
+
|
|
152
|
+
const bubble = false;
|
|
153
|
+
|
|
154
|
+
this.fileContexts.forEach((fileContext) => {
|
|
155
|
+
const fileContextCombinators = fileContext.getCombinators(bubble);
|
|
156
|
+
|
|
157
|
+
push(combinators, fileContextCombinators);
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
this.releaseContexts.forEach((releaseContext) => {
|
|
161
|
+
const releaseContextCombinators = releaseContext.getCombinators(releaseNames);
|
|
162
|
+
|
|
163
|
+
push(combinators, releaseContextCombinators);
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
return combinators;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
getConstructors(releaseNames = []) {
|
|
171
|
+
const constructors = [],
|
|
172
|
+
releaseName = this.getReleaseName(),
|
|
173
|
+
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
174
|
+
|
|
175
|
+
if (!releaseNamesIncludesReleaseName) {
|
|
176
|
+
releaseNames.push(releaseName);
|
|
177
|
+
|
|
178
|
+
const bubble = false;
|
|
179
|
+
|
|
180
|
+
this.fileContexts.forEach((fileContext) => {
|
|
181
|
+
const fileContextConstructors = fileContext.getConstructors(bubble);
|
|
182
|
+
|
|
183
|
+
push(constructors, fileContextConstructors);
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
this.releaseContexts.forEach((releaseContext) => {
|
|
187
|
+
const releaseContextConstructors = releaseContext.getConstructors(releaseNames);
|
|
188
|
+
|
|
189
|
+
push(constructors, releaseContextConstructors);
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
return constructors;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
addFileContext(fileContext) {
|
|
197
|
+
this.fileContexts.push(fileContext);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
toJSON() {
|
|
201
|
+
const json = [];
|
|
202
|
+
|
|
203
|
+
this.fileContexts.forEach((fileContext) => {
|
|
204
|
+
const fileContextJSON = fileContext.toJSON();
|
|
205
|
+
|
|
206
|
+
push(json, fileContextJSON);
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
return json;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
static fromLogReleaseAndCallbacks(log, release, callbacks) {
|
|
213
|
+
const verified = false,
|
|
214
|
+
customGrammar = customGrammarFromRelease(release),
|
|
215
|
+
florenceLexer = null,
|
|
216
|
+
florenceParser = null,
|
|
217
|
+
releaseContexts = null,
|
|
218
|
+
fileContexts = [],
|
|
219
|
+
releaseContext = new DirectoryReleaseContext(log, verified, callbacks, customGrammar, florenceLexer, florenceParser, releaseContexts, fileContexts, release);
|
|
220
|
+
|
|
221
|
+
return releaseContext;
|
|
222
|
+
}
|
|
223
|
+
}
|
package/src/context/release.js
CHANGED
|
@@ -2,20 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
import { lexersUtilities, parsersUtilities } from "occam-custom-grammars";
|
|
4
4
|
|
|
5
|
-
import { push } from "../utilities/array";
|
|
6
5
|
import { customGrammarFromRelease, combinedCustomGrammarFromReleaseContexts } from "../utilities/customGrammar";
|
|
7
6
|
|
|
8
7
|
const { florenceLexerFromCombinedCustomGrammar } = lexersUtilities,
|
|
9
8
|
{ florenceParserFromCombinedCustomGrammar } = parsersUtilities;
|
|
10
9
|
|
|
11
10
|
export default class ReleaseContext {
|
|
12
|
-
constructor(log,
|
|
11
|
+
constructor(log, verified, callbacks, customGrammar, florenceLexer, florenceParser, releaseContexts) {
|
|
13
12
|
this.log = log;
|
|
14
|
-
this.release = release;
|
|
15
|
-
this.callbacks = callbacks;
|
|
16
13
|
this.verified = verified;
|
|
14
|
+
this.callbacks = callbacks;
|
|
17
15
|
this.customGrammar = customGrammar;
|
|
18
|
-
this.fileContexts = fileContexts;
|
|
19
16
|
this.florenceLexer = florenceLexer;
|
|
20
17
|
this.florenceParser = florenceParser;
|
|
21
18
|
this.releaseContexts = releaseContexts;
|
|
@@ -25,26 +22,18 @@ export default class ReleaseContext {
|
|
|
25
22
|
return this.log;
|
|
26
23
|
}
|
|
27
24
|
|
|
28
|
-
|
|
29
|
-
return this.
|
|
25
|
+
isVerified() {
|
|
26
|
+
return this.verified;
|
|
30
27
|
}
|
|
31
28
|
|
|
32
29
|
getCallbacks() {
|
|
33
30
|
return this.callbacks;
|
|
34
31
|
}
|
|
35
32
|
|
|
36
|
-
isVerified() {
|
|
37
|
-
return this.verified;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
33
|
getCustomGrammar() {
|
|
41
34
|
return this.customGrammar;
|
|
42
35
|
}
|
|
43
36
|
|
|
44
|
-
getFileContexts() {
|
|
45
|
-
return this.fileContexts;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
37
|
getFlorenceLexer() {
|
|
49
38
|
return this.florenceLexer;
|
|
50
39
|
}
|
|
@@ -57,182 +46,6 @@ export default class ReleaseContext {
|
|
|
57
46
|
return this.releaseContexts;
|
|
58
47
|
}
|
|
59
48
|
|
|
60
|
-
getFile(filePath) { return this.release.getFile(filePath); }
|
|
61
|
-
|
|
62
|
-
getVersion() { return this.release.getVersion(); }
|
|
63
|
-
|
|
64
|
-
getFilePaths() { return this.release.getFilePaths(); }
|
|
65
|
-
|
|
66
|
-
getDependencies() { return this.release.getDependencies(); }
|
|
67
|
-
|
|
68
|
-
matchShortenedVersion(shortenedVersion) { return this.release.matchShortenedVersion(shortenedVersion); }
|
|
69
|
-
|
|
70
|
-
getReleaseName() {
|
|
71
|
-
const releaseName = this.release.getName();
|
|
72
|
-
|
|
73
|
-
return releaseName;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
getRules(releaseNames = []) {
|
|
77
|
-
const rules = [],
|
|
78
|
-
releaseName = this.getReleaseName(),
|
|
79
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
80
|
-
|
|
81
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
82
|
-
releaseNames.push(releaseName);
|
|
83
|
-
|
|
84
|
-
const bubble = false;
|
|
85
|
-
|
|
86
|
-
this.fileContexts.forEach((fileContext) => {
|
|
87
|
-
const fileContextRules = fileContext.getRules(bubble);
|
|
88
|
-
|
|
89
|
-
push(rules, fileContextRules);
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
this.releaseContexts.forEach((releaseContext) => {
|
|
93
|
-
const releaseContextRules = releaseContext.getRules(releaseNames);
|
|
94
|
-
|
|
95
|
-
push(rules, releaseContextRules);
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
return rules;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
getTypes(releaseNames = []) {
|
|
103
|
-
const types = [],
|
|
104
|
-
releaseName = this.getReleaseName(),
|
|
105
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
106
|
-
|
|
107
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
108
|
-
releaseNames.push(releaseName);
|
|
109
|
-
|
|
110
|
-
const bubble = false;
|
|
111
|
-
|
|
112
|
-
this.fileContexts.forEach((fileContext) => {
|
|
113
|
-
const fileContextTypes = fileContext.getTypes(bubble);
|
|
114
|
-
|
|
115
|
-
push(types, fileContextTypes);
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
this.releaseContexts.forEach((releaseContext) => {
|
|
119
|
-
const releaseContextTypes = releaseContext.getTypes(releaseNames);
|
|
120
|
-
|
|
121
|
-
push(types, releaseContextTypes);
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
return types;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
getAxioms(releaseNames = []) {
|
|
129
|
-
const axioms = [],
|
|
130
|
-
releaseName = this.getReleaseName(),
|
|
131
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
132
|
-
|
|
133
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
134
|
-
releaseNames.push(releaseName);
|
|
135
|
-
|
|
136
|
-
const bubble = false;
|
|
137
|
-
|
|
138
|
-
this.fileContexts.forEach((fileContext) => {
|
|
139
|
-
const fileContextAxioms = fileContext.getAxioms(bubble);
|
|
140
|
-
|
|
141
|
-
push(axioms, fileContextAxioms);
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
this.releaseContexts.forEach((releaseContext) => {
|
|
145
|
-
const releaseContextAxioms = releaseContext.getAxioms(releaseNames);
|
|
146
|
-
|
|
147
|
-
push(axioms, releaseContextAxioms);
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
return axioms;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
getLabels(releaseNames = []) {
|
|
155
|
-
const labels = [],
|
|
156
|
-
releaseName = this.getReleaseName(),
|
|
157
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
158
|
-
|
|
159
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
160
|
-
releaseNames.push(releaseName);
|
|
161
|
-
|
|
162
|
-
const bubble = false;
|
|
163
|
-
|
|
164
|
-
this.fileContexts.forEach((fileContext) => {
|
|
165
|
-
const fileContextLabels = fileContext.getLabels(bubble);
|
|
166
|
-
|
|
167
|
-
push(labels, fileContextLabels);
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
this.releaseContexts.forEach((releaseContext) => {
|
|
171
|
-
const releaseContextLabels = releaseContext.getLabels(releaseNames);
|
|
172
|
-
|
|
173
|
-
push(labels, releaseContextLabels);
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
return labels;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
getCombinators(releaseNames = []) {
|
|
181
|
-
const combinators = [],
|
|
182
|
-
releaseName = this.getReleaseName(),
|
|
183
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
184
|
-
|
|
185
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
186
|
-
releaseNames.push(releaseName);
|
|
187
|
-
|
|
188
|
-
const bubble = false;
|
|
189
|
-
|
|
190
|
-
this.fileContexts.forEach((fileContext) => {
|
|
191
|
-
const fileContextCombinators = fileContext.getCombinators(bubble);
|
|
192
|
-
|
|
193
|
-
push(combinators, fileContextCombinators);
|
|
194
|
-
});
|
|
195
|
-
|
|
196
|
-
this.releaseContexts.forEach((releaseContext) => {
|
|
197
|
-
const releaseContextCombinators = releaseContext.getCombinators(releaseNames);
|
|
198
|
-
|
|
199
|
-
push(combinators, releaseContextCombinators);
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
return combinators;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
getConstructors(releaseNames = []) {
|
|
207
|
-
const constructors = [],
|
|
208
|
-
releaseName = this.getReleaseName(),
|
|
209
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
210
|
-
|
|
211
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
212
|
-
releaseNames.push(releaseName);
|
|
213
|
-
|
|
214
|
-
const bubble = false;
|
|
215
|
-
|
|
216
|
-
this.fileContexts.forEach((fileContext) => {
|
|
217
|
-
const fileContextConstructors = fileContext.getConstructors(bubble);
|
|
218
|
-
|
|
219
|
-
push(constructors, fileContextConstructors);
|
|
220
|
-
});
|
|
221
|
-
|
|
222
|
-
this.releaseContexts.forEach((releaseContext) => {
|
|
223
|
-
const releaseContextConstructors = releaseContext.getConstructors(releaseNames);
|
|
224
|
-
|
|
225
|
-
push(constructors, releaseContextConstructors);
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
return constructors;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
addFileContext(fileContext) {
|
|
233
|
-
this.fileContexts.push(fileContext);
|
|
234
|
-
}
|
|
235
|
-
|
|
236
49
|
setVerified(verified) {
|
|
237
50
|
this.verified = verified;
|
|
238
51
|
}
|
|
@@ -273,25 +86,13 @@ export default class ReleaseContext {
|
|
|
273
86
|
this.releaseContexts = releaseContexts;
|
|
274
87
|
}
|
|
275
88
|
|
|
276
|
-
toJSON() {
|
|
277
|
-
const json = [];
|
|
278
|
-
|
|
279
|
-
this.fileContexts.forEach((fileContext) => {
|
|
280
|
-
const fileContextJSON = fileContext.toJSON();
|
|
281
|
-
|
|
282
|
-
push(json, fileContextJSON);
|
|
283
|
-
});
|
|
284
|
-
|
|
285
|
-
return json;
|
|
286
|
-
}
|
|
287
|
-
|
|
288
89
|
static fromLogReleaseAndCallbacks(log, release, callbacks, ...remainingArguments) {
|
|
289
90
|
const verified = false,
|
|
290
91
|
customGrammar = customGrammarFromRelease(release),
|
|
291
92
|
fileContexts = [],
|
|
292
93
|
florenceLexer = null,
|
|
293
94
|
florenceParser = null,
|
|
294
|
-
releaseContexts =
|
|
95
|
+
releaseContexts = null,
|
|
295
96
|
releaseContext = new ReleaseContext(log, release, callbacks, verified, customGrammar, fileContexts, florenceLexer, florenceParser, releaseContexts, ...remainingArguments);
|
|
296
97
|
|
|
297
98
|
return releaseContext;
|
package/src/index.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
export { default as Callbacks } from "./callbacks";
|
|
4
|
-
export { default as jsonUtilities } from "./utilities/json";
|
|
5
4
|
export { default as verifyRelease } from "./verify/release";
|
|
6
5
|
export { default as ReleaseContext } from "./context/release";
|
|
7
6
|
export { default as versionChanges } from "./versionChanges";
|
|
7
|
+
export { default as DirectoryReleaseContext } from "./context/release/directory";
|
|
8
|
+
|
|
9
|
+
export { default as jsonUtilities } from "./utilities/json";
|
|
8
10
|
export { default as versionUtilities } from "./utilities/version";
|
|
11
|
+
export { default as customGrammarUtilities } from "./utilities/customGrammar";
|
|
9
12
|
export { default as releaseContextUtilities } from "./utilities/releaseContext";
|
|
@@ -24,4 +24,9 @@ export function combinedCustomGrammarFromReleaseContexts(releaseContexts) {
|
|
|
24
24
|
combinedCustomGrammar = CombinedCustomGrammar.fromCustomGrammars(customGrammars);
|
|
25
25
|
|
|
26
26
|
return combinedCustomGrammar;
|
|
27
|
-
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export default {
|
|
30
|
+
customGrammarFromRelease,
|
|
31
|
+
combinedCustomGrammarFromReleaseContexts
|
|
32
|
+
};
|