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.
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
- const { ReleaseContext } = require("../../lib/index"), ///
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
- releaseContext = ReleaseContext.fromLogReleaseAndCallbacks(log, release, callbacks);
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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
@@ -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, release, callbacks, verified, customGrammar, fileContexts, florenceLexer, florenceParser, releaseContexts) {
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: "getRelease",
116
- value: function getRelease() {
117
- return this.release;
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 = [], releaseContext = _construct(ReleaseContext, [
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxsYmFja3MgfSBmcm9tIFwiLi9jYWxsYmFja3NcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMganNvblV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9qc29uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHZlcmlmeVJlbGVhc2UgfSBmcm9tIFwiLi92ZXJpZnkvcmVsZWFzZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZWxlYXNlQ29udGV4dCB9IGZyb20gXCIuL2NvbnRleHQvcmVsZWFzZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB2ZXJzaW9uQ2hhbmdlcyB9IGZyb20gXCIuL3ZlcnNpb25DaGFuZ2VzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHZlcnNpb25VdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvdmVyc2lvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByZWxlYXNlQ29udGV4dFV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9yZWxlYXNlQ29udGV4dFwiO1xuIl0sIm5hbWVzIjpbIkNhbGxiYWNrcyIsImpzb25VdGlsaXRpZXMiLCJ2ZXJpZnlSZWxlYXNlIiwiUmVsZWFzZUNvbnRleHQiLCJ2ZXJzaW9uQ2hhbmdlcyIsInZlcnNpb25VdGlsaXRpZXMiLCJyZWxlYXNlQ29udGV4dFV0aWxpdGllcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBRW9CQSxTQUFTO2VBQVRBLGtCQUFTOztJQUNUQyxhQUFhO2VBQWJBLGFBQWE7O0lBQ2JDLGFBQWE7ZUFBYkEsZ0JBQWE7O0lBQ2JDLGNBQWM7ZUFBZEEsaUJBQWM7O0lBQ2RDLGNBQWM7ZUFBZEEsdUJBQWM7O0lBQ2RDLGdCQUFnQjtlQUFoQkEsZ0JBQWdCOztJQUNoQkMsdUJBQXVCO2VBQXZCQSx1QkFBdUI7Ozs4REFOTjt5REFDSTs0REFDQTs2REFDQzttRUFDQTs0REFDRTttRUFDTyJ9
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY3VzdG9tR3JhbW1hci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQ3VzdG9tR3JhbW1hciwgQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gZnJvbSBcIm9jY2FtLWN1c3RvbS1ncmFtbWFyc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3VzdG9tR3JhbW1hckZyb21SZWxlYXNlKHJlbGVhc2UpIHtcbiAgY29uc3QgbmFtZSA9IHJlbGVhc2UuZ2V0TmFtZSgpLFxuICAgICAgICB0ZXJtQk5GID0gcmVsZWFzZS5nZXRUZXJtQk5GKCksXG4gICAgICAgIHN0YXRlbWVudEJORiA9IHJlbGVhc2UuZ2V0U3RhdGVtZW50Qk5GKCksXG4gICAgICAgIG1ldGFzdGF0ZW1lbnRCTkYgPSByZWxlYXNlLmdldE1ldGFzdGF0ZW1lbnRCTkYoKSxcbiAgICAgICAgdHlwZVBhdHRlcm4gPSByZWxlYXNlLmdldFR5cGVQYXR0ZXJuKCksXG4gICAgICAgIHN5bWJvbFBhdHRlcm4gPSByZWxlYXNlLmdldFN5bWJvbFBhdHRlcm4oKSxcbiAgICAgICAgb3BlcmF0b3JQYXR0ZXJuID0gcmVsZWFzZS5nZXRPcGVyYXRvclBhdHRlcm4oKSxcbiAgICAgICAgY3VzdG9tR3JhbW1hciA9IEN1c3RvbUdyYW1tYXIuZnJvbU5hbWVUZXJtQk5GU3RhdGVtZW50Qk5GTWV0YXN0YXRlbWVudEJORlR5cGVQYXR0ZXJuU3ltYm9sUGF0dGVybkFuZE9wZXJhdG9yUGF0dGVybihuYW1lLCB0ZXJtQk5GLCBzdGF0ZW1lbnRCTkYsIG1ldGFzdGF0ZW1lbnRCTkYsIHR5cGVQYXR0ZXJuLCBzeW1ib2xQYXR0ZXJuLCBvcGVyYXRvclBhdHRlcm4pO1xuXG4gIHJldHVybiBjdXN0b21HcmFtbWFyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dHMpIHtcbiAgY29uc3QgY3VzdG9tR3JhbW1hcnMgPSByZWxlYXNlQ29udGV4dHMubWFwKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGN1c3RvbUdyYW1tYXIgPSByZWxlYXNlQ29udGV4dC5nZXRDdXN0b21HcmFtbWFyKCk7XG5cbiAgICAgICAgICByZXR1cm4gY3VzdG9tR3JhbW1hcjtcbiAgICAgICAgfSksXG4gICAgICAgIGNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IENvbWJpbmVkQ3VzdG9tR3JhbW1hci5mcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMpO1xuXG4gIHJldHVybiBjb21iaW5lZEN1c3RvbUdyYW1tYXI7XG59Il0sIm5hbWVzIjpbImN1c3RvbUdyYW1tYXJGcm9tUmVsZWFzZSIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21SZWxlYXNlQ29udGV4dHMiLCJyZWxlYXNlIiwibmFtZSIsImdldE5hbWUiLCJ0ZXJtQk5GIiwiZ2V0VGVybUJORiIsInN0YXRlbWVudEJORiIsImdldFN0YXRlbWVudEJORiIsIm1ldGFzdGF0ZW1lbnRCTkYiLCJnZXRNZXRhc3RhdGVtZW50Qk5GIiwidHlwZVBhdHRlcm4iLCJnZXRUeXBlUGF0dGVybiIsInN5bWJvbFBhdHRlcm4iLCJnZXRTeW1ib2xQYXR0ZXJuIiwib3BlcmF0b3JQYXR0ZXJuIiwiZ2V0T3BlcmF0b3JQYXR0ZXJuIiwiY3VzdG9tR3JhbW1hciIsIkN1c3RvbUdyYW1tYXIiLCJmcm9tTmFtZVRlcm1CTkZTdGF0ZW1lbnRCTkZNZXRhc3RhdGVtZW50Qk5GVHlwZVBhdHRlcm5TeW1ib2xQYXR0ZXJuQW5kT3BlcmF0b3JQYXR0ZXJuIiwicmVsZWFzZUNvbnRleHRzIiwiY3VzdG9tR3JhbW1hcnMiLCJtYXAiLCJyZWxlYXNlQ29udGV4dCIsImdldEN1c3RvbUdyYW1tYXIiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJDb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJmcm9tQ3VzdG9tR3JhbW1hcnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUlnQkEsd0JBQXdCO2VBQXhCQTs7SUFhQUMsd0NBQXdDO2VBQXhDQTs7O21DQWZxQztBQUU5QyxTQUFTRCx5QkFBeUJFLE9BQU8sRUFBRTtJQUNoRCxJQUFNQyxPQUFPRCxRQUFRRSxPQUFPLElBQ3RCQyxVQUFVSCxRQUFRSSxVQUFVLElBQzVCQyxlQUFlTCxRQUFRTSxlQUFlLElBQ3RDQyxtQkFBbUJQLFFBQVFRLG1CQUFtQixJQUM5Q0MsY0FBY1QsUUFBUVUsY0FBYyxJQUNwQ0MsZ0JBQWdCWCxRQUFRWSxnQkFBZ0IsSUFDeENDLGtCQUFrQmIsUUFBUWMsa0JBQWtCLElBQzVDQyxnQkFBZ0JDLGtDQUFhLENBQUNDLHFGQUFxRixDQUFDaEIsTUFBTUUsU0FBU0UsY0FBY0Usa0JBQWtCRSxhQUFhRSxlQUFlRTtJQUVyTSxPQUFPRTtBQUNUO0FBRU8sU0FBU2hCLHlDQUF5Q21CLGVBQWUsRUFBRTtJQUN4RSxJQUFNQyxpQkFBaUJELGdCQUFnQkUsR0FBRyxDQUFDLFNBQUNDLGdCQUFtQjtRQUN2RCxJQUFNTixnQkFBZ0JNLGVBQWVDLGdCQUFnQjtRQUVyRCxPQUFPUDtJQUNULElBQ0FRLHdCQUF3QkMsMENBQXFCLENBQUNDLGtCQUFrQixDQUFDTjtJQUV2RSxPQUFPSTtBQUNUIn0=
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.369",
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.75",
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
+ }
@@ -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, release, callbacks, verified, customGrammar, fileContexts, florenceLexer, florenceParser, releaseContexts) {
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
- getRelease() {
29
- return this.release;
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
+ };