occam-languages 0.0.26 → 0.0.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/utilities/releaseContext.js +137 -11
- package/package.json +1 -1
- package/src/utilities/releaseContext.js +77 -19
|
@@ -23,6 +23,9 @@ _export(exports, {
|
|
|
23
23
|
},
|
|
24
24
|
get releaseContextFromProject () {
|
|
25
25
|
return releaseContextFromProject;
|
|
26
|
+
},
|
|
27
|
+
get verifyReleaseContext () {
|
|
28
|
+
return verifyReleaseContext;
|
|
26
29
|
}
|
|
27
30
|
});
|
|
28
31
|
var _necessary = require("necessary");
|
|
@@ -245,16 +248,81 @@ function createReleaseContext(dependency, dependentNames, context) {
|
|
|
245
248
|
});
|
|
246
249
|
})();
|
|
247
250
|
}
|
|
248
|
-
function
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
251
|
+
function verifyReleaseContext(releaseName, dependentName, dependentReleased, releaseContextMap) {
|
|
252
|
+
return _async_to_generator(function() {
|
|
253
|
+
var releaseVerifies, releaseContext, released, _$dependentName, _$dependentReleased, dependencyReleaseContextsVerify, releaseContextVerified, releaseContextVerifies;
|
|
254
|
+
return _ts_generator(this, function(_state) {
|
|
255
|
+
switch(_state.label){
|
|
256
|
+
case 0:
|
|
257
|
+
releaseVerifies = false;
|
|
258
|
+
releaseContext = releaseContextMap[releaseName];
|
|
259
|
+
if (!(releaseContext !== null)) return [
|
|
260
|
+
3,
|
|
261
|
+
6
|
|
262
|
+
];
|
|
263
|
+
released = releaseContext.isReleased();
|
|
264
|
+
if (!released) return [
|
|
265
|
+
3,
|
|
266
|
+
1
|
|
267
|
+
];
|
|
268
|
+
releaseVerifies = true;
|
|
269
|
+
return [
|
|
270
|
+
3,
|
|
271
|
+
6
|
|
272
|
+
];
|
|
273
|
+
case 1:
|
|
274
|
+
if (!dependentReleased) return [
|
|
275
|
+
3,
|
|
276
|
+
2
|
|
277
|
+
];
|
|
278
|
+
releaseContext.warning("The '".concat(releaseName, "' project cannot be verifies because its '").concat(dependentName, "' dependent is a package."));
|
|
279
|
+
return [
|
|
280
|
+
3,
|
|
281
|
+
6
|
|
282
|
+
];
|
|
283
|
+
case 2:
|
|
284
|
+
_$dependentName = releaseName, _$dependentReleased = released;
|
|
285
|
+
return [
|
|
286
|
+
4,
|
|
287
|
+
verifyDependencyReleaseContexts(releaseContext, _$dependentName, _$dependentReleased, releaseContextMap)
|
|
288
|
+
];
|
|
289
|
+
case 3:
|
|
290
|
+
dependencyReleaseContextsVerify = _state.sent();
|
|
291
|
+
if (!dependencyReleaseContextsVerify) return [
|
|
292
|
+
3,
|
|
293
|
+
6
|
|
294
|
+
];
|
|
295
|
+
releaseContextVerified = releaseContext.isVerified();
|
|
296
|
+
if (!releaseContextVerified) return [
|
|
297
|
+
3,
|
|
298
|
+
4
|
|
299
|
+
];
|
|
300
|
+
releaseVerifies = true;
|
|
301
|
+
return [
|
|
302
|
+
3,
|
|
303
|
+
6
|
|
304
|
+
];
|
|
305
|
+
case 4:
|
|
306
|
+
releaseContext.info("Verifying the '".concat(releaseName, "' project..."));
|
|
307
|
+
return [
|
|
308
|
+
4,
|
|
309
|
+
releaseContext.verify()
|
|
310
|
+
];
|
|
311
|
+
case 5:
|
|
312
|
+
releaseContextVerifies = _state.sent();
|
|
313
|
+
if (releaseContextVerifies) {
|
|
314
|
+
releaseContext.info("...verified the '".concat(releaseName, "' project."));
|
|
315
|
+
releaseVerifies = true;
|
|
316
|
+
}
|
|
317
|
+
_state.label = 6;
|
|
318
|
+
case 6:
|
|
319
|
+
return [
|
|
320
|
+
2,
|
|
321
|
+
releaseVerifies
|
|
322
|
+
];
|
|
323
|
+
}
|
|
324
|
+
});
|
|
325
|
+
})();
|
|
258
326
|
}
|
|
259
327
|
function initialiseReleaseContext(dependency, context) {
|
|
260
328
|
var releaseContextMap = context.releaseContextMap, dependencyName = dependency.getName(), releaseName = dependencyName, releaseContext = releaseContextMap[releaseName] || null;
|
|
@@ -272,6 +340,17 @@ function initialiseReleaseContext(dependency, context) {
|
|
|
272
340
|
}
|
|
273
341
|
}
|
|
274
342
|
}
|
|
343
|
+
function releaseContextFromJSON(json, context) {
|
|
344
|
+
var log = context.log, callback = context.callback, name = json.name;
|
|
345
|
+
context = json.context; ///
|
|
346
|
+
var entries = json.entries;
|
|
347
|
+
json = entries; ///
|
|
348
|
+
entries = _occammodel.Entries.fromJSON(json);
|
|
349
|
+
var contextJSON = context; ///
|
|
350
|
+
json = contextJSON; ///
|
|
351
|
+
var releaseContext = _release.default.fromLogNameJSONEntriesCallbackAndCustomGrammar(log, name, json, entries, callback, customGrammar);
|
|
352
|
+
return releaseContext;
|
|
353
|
+
}
|
|
275
354
|
function releaseContextFromProject(project, context) {
|
|
276
355
|
var releaseContext = null;
|
|
277
356
|
var metaJSONFile = project.getMetaJSONFile();
|
|
@@ -286,6 +365,7 @@ function releaseContextFromProject(project, context) {
|
|
|
286
365
|
}
|
|
287
366
|
var _default = {
|
|
288
367
|
createReleaseContext: createReleaseContext,
|
|
368
|
+
verifyReleaseContext: verifyReleaseContext,
|
|
289
369
|
releaseContextFromJSON: releaseContextFromJSON,
|
|
290
370
|
initialiseReleaseContext: initialiseReleaseContext,
|
|
291
371
|
releaseContextFromProject: releaseContextFromProject
|
|
@@ -341,6 +421,52 @@ function createDependencyReleaseContexts(dependency, releaseContext, dependentNa
|
|
|
341
421
|
});
|
|
342
422
|
})();
|
|
343
423
|
}
|
|
424
|
+
function verifyDependencyReleaseContexts(releaseContext, dependentName, dependentReleased, releaseContextMap) {
|
|
425
|
+
return _async_to_generator(function() {
|
|
426
|
+
var dependencies, dependencyReleaseContextsVerify;
|
|
427
|
+
return _ts_generator(this, function(_state) {
|
|
428
|
+
switch(_state.label){
|
|
429
|
+
case 0:
|
|
430
|
+
dependencies = releaseContext.getDependencies();
|
|
431
|
+
return [
|
|
432
|
+
4,
|
|
433
|
+
(0, _dependency.asyncEveryDependency)(dependencies, function(dependency) {
|
|
434
|
+
return _async_to_generator(function() {
|
|
435
|
+
var name, releaseName, releaseContextVerifies;
|
|
436
|
+
return _ts_generator(this, function(_state) {
|
|
437
|
+
switch(_state.label){
|
|
438
|
+
case 0:
|
|
439
|
+
name = dependency.getName(), releaseName = name;
|
|
440
|
+
return [
|
|
441
|
+
4,
|
|
442
|
+
verifyReleaseContext(releaseName, dependentName, dependentReleased, releaseContextMap)
|
|
443
|
+
];
|
|
444
|
+
case 1:
|
|
445
|
+
releaseContextVerifies = _state.sent();
|
|
446
|
+
if (releaseContextVerifies) {
|
|
447
|
+
return [
|
|
448
|
+
2,
|
|
449
|
+
true
|
|
450
|
+
];
|
|
451
|
+
}
|
|
452
|
+
return [
|
|
453
|
+
2
|
|
454
|
+
];
|
|
455
|
+
}
|
|
456
|
+
});
|
|
457
|
+
})();
|
|
458
|
+
})
|
|
459
|
+
];
|
|
460
|
+
case 1:
|
|
461
|
+
dependencyReleaseContextsVerify = _state.sent();
|
|
462
|
+
return [
|
|
463
|
+
2,
|
|
464
|
+
dependencyReleaseContextsVerify
|
|
465
|
+
];
|
|
466
|
+
}
|
|
467
|
+
});
|
|
468
|
+
})();
|
|
469
|
+
}
|
|
344
470
|
function retrieveReleaseContexts(releaseContext, releaseContextMap) {
|
|
345
471
|
var releaseContexts = [], remainingReleaseContext = releaseContext, remainingReleaseContexts = [
|
|
346
472
|
remainingReleaseContext
|
|
@@ -399,4 +525,4 @@ function initialiseDependencyReleaseContexts(dependency, releaseContext, context
|
|
|
399
525
|
});
|
|
400
526
|
}
|
|
401
527
|
|
|
402
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVsZWFzZUNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgRW50cmllcywgbWV0YUpTT05VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbW9kZWxcIjtcblxuaW1wb3J0IFJlbGVhc2VDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L3JlbGVhc2VcIjtcblxuaW1wb3J0IHsgYXN5bmNFdmVyeURlcGVuZGVuY3kgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2RlcGVuZGVuY3lcIjtcblxuY29uc3QgeyBsYXN0IH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgaXNNZXRhSlNPTkZpbGVWYWxpZCB9ID0gbWV0YUpTT05VdGlsaXRpZXM7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCkge1xuICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gIGNvbnN0IHsgbG9nLCByZWxlYXNlQ29udGV4dE1hcCB9ID0gY29udGV4dCxcbiAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSBkZXBlbmRlbmN5TmFtZSwgLy8vXG4gICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdIHx8IG51bGw7XG5cbiAgaWYgKHJlbGVhc2VDb250ZXh0ICE9PSBudWxsKSB7XG4gICAgY29uc3QgcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5ID0gY2hlY2tSZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kocmVsZWFzZUNvbnRleHQsIGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcblxuICAgIGlmIChyZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgVGhlICcke3JlbGVhc2VOYW1lfScgY29udGV4dCBoYXMgYWxyZWFkeSBiZWVuIGNyZWF0ZWQuYCk7XG5cbiAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBkZXBlbmRlbmN5U3RyaW5nID0gZGVwZW5kZW5jeS5hc1N0cmluZygpLFxuICAgICAgICAgIGRlcGVuZGVudE5hbWVzTGVuZ3RoID0gZGVwZW5kZW50TmFtZXMubGVuZ3RoO1xuXG4gICAgaWYgKGRlcGVuZGVudE5hbWVzTGVuZ3RoID09PSAwKSB7XG4gICAgICBsb2cuaW5mbyhgQ3JlYXRpbmcgdGhlICcke3JlbGVhc2VOYW1lfScgY29udGV4dC4uLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsYXN0RGVwZW5kZW50TmFtZSA9IGxhc3QoZGVwZW5kZW50TmFtZXMpLFxuICAgICAgICAgICAgZGVwZW5kZW50TmFtZSA9IGxhc3REZXBlbmRlbnROYW1lOyAgLy8vXG5cbiAgICAgIGxvZy5pbmZvKGBDcmVhdGluZyB0aGUgJyR7cmVsZWFzZU5hbWV9JyBjb250ZXh0IGdpdmVuIHRoZSAnJHtkZXBlbmRlbnROYW1lfScgZGVwZW5kYW50J3MgJyR7ZGVwZW5kZW5jeVN0cmluZ30nIGRlcGVuZGVuY3kuLi5gKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IHJlbGVhc2VDb250ZXh0RnJvbURlcGVuZGVuY3kgfSA9IGNvbnRleHQsXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSBhd2FpdCByZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5KGRlcGVuZGVuY3ksIGNvbnRleHQpLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0Q3JlYXRlZCA9IGNoZWNrUmVsZWFzZUNvbnRleHRDcmVhdGVkKHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBjb250ZXh0KTtcblxuICAgIGlmIChyZWxlYXNlQ29udGV4dENyZWF0ZWQpIHtcbiAgICAgIGNvbnN0IHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSA9IGNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5KHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCk7XG5cbiAgICAgIGlmIChyZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kpIHtcbiAgICAgICAgcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdID0gcmVsZWFzZUNvbnRleHQ7XG5cbiAgICAgICAgc3VjY2VzcyA9IGF3YWl0IGNyZWF0ZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoZGVwZW5kZW5jeSwgcmVsZWFzZUNvbnRleHQsIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdWNjZXNzID9cbiAgICAgIGxvZy5kZWJ1ZyhgLi4uY3JlYXRlZCB0aGUgJyR7cmVsZWFzZU5hbWV9JyBjb250ZXh0LmApIDpcbiAgICAgICAgbG9nLndhcm5pbmcoYC4uLnVuYWJsZSB0byBjcmVhdGUgdGhlICcke3JlbGVhc2VOYW1lfScgY29udGV4dC5gKTtcbiAgfVxuXG4gIHJldHVybiBzdWNjZXNzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVsZWFzZUNvbnRleHRGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgbG9nLCBjYWxsYmFjayB9ID0gY29udGV4dCxcbiAgICAgICAgeyBuYW1lIH0gPSBqc29uO1xuXG4gICh7Y29udGV4dH0gPSBqc29uKTsgLy8vXG5cbiAgbGV0IHsgZW50cmllcyB9ID0ganNvbjtcblxuICBqc29uID0gZW50cmllczsgLy8vXG5cbiAgZW50cmllcyA9IEVudHJpZXMuZnJvbUpTT04oanNvbik7XG5cbiAgY29uc3QgY29udGV4dEpTT04gPSBjb250ZXh0OyAgLy8vXG5cbiAganNvbiA9IGNvbnRleHRKU09OOyAvLy9cblxuICBjb25zdCByZWxlYXNlQ29udGV4dCA9IFJlbGVhc2VDb250ZXh0LmZyb21Mb2dOYW1lSlNPTkVudHJpZXNDYWxsYmFja0FuZEN1c3RvbUdyYW1tYXIobG9nLCBuYW1lLCBqc29uLCBlbnRyaWVzLCBjYWxsYmFjaywgY3VzdG9tR3JhbW1hcik7XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGNvbnRleHQpIHtcbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dE1hcCB9ID0gY29udGV4dCxcbiAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSBkZXBlbmRlbmN5TmFtZSwgLy8vXG4gICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdIHx8IG51bGw7XG5cbiAgaWYgKHJlbGVhc2VDb250ZXh0ID09PSBudWxsKSB7XG4gICAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQ7XG5cbiAgICBsb2cud2FybmluZyhgVW5hYmxlIHRvIGluaXRpYWxpc2UgdGhlICcke2RlcGVuZGVuY3lOYW1lfScgY29udGV4dCBiZWNhdXNlIGl0IGhhcyBub3QgYmVlbiBjcmVhdGVkLmApO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0SW5pdGlhbGlzZWQgPSByZWxlYXNlQ29udGV4dC5pc0luaXRpYWxpc2VkKCk7XG5cbiAgICBpZiAoIXJlbGVhc2VDb250ZXh0SW5pdGlhbGlzZWQpIHtcbiAgICAgIGluaXRpYWxpc2VEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKGRlcGVuZGVuY3ksIHJlbGVhc2VDb250ZXh0LCBjb250ZXh0KTtcblxuICAgICAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQsXG4gICAgICAgICAgICByZWxlYXNlQ29udGV4dHMgPSByZXRyaWV2ZVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgcmVsZWFzZUNvbnRleHRNYXApO1xuXG4gICAgICBsb2cuaW5mbyhgSW5pdGlhbGlzaW5nIHRoZSAnJHtkZXBlbmRlbmN5TmFtZX0nIGNvbnRleHQuLi5gKTtcblxuICAgICAgcmVsZWFzZUNvbnRleHQuaW5pdGlhbGlzZShyZWxlYXNlQ29udGV4dHMpO1xuXG4gICAgICBsb2cuZGVidWcoYC4uLmluaXRpYWxpc2VkIHRoZSAnJHtkZXBlbmRlbmN5TmFtZX0nIGNvbnRleHQuYCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWxlYXNlQ29udGV4dEZyb21Qcm9qZWN0KHByb2plY3QsIGNvbnRleHQpIHtcbiAgbGV0IHJlbGVhc2VDb250ZXh0ID0gbnVsbDtcblxuICBjb25zdCBtZXRhSlNPTkZpbGUgPSBwcm9qZWN0LmdldE1ldGFKU09ORmlsZSgpO1xuXG4gIGlmIChtZXRhSlNPTkZpbGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXRhSlNPTkZpbGVWYWxpZCA9IGlzTWV0YUpTT05GaWxlVmFsaWQobWV0YUpTT05GaWxlKTtcblxuICAgIGlmIChtZXRhSlNPTkZpbGVWYWxpZCkge1xuICAgICAgY29uc3QgeyBsb2csIGNhbGxiYWNrIH0gPSBjb250ZXh0LFxuICAgICAgICAgICAgbmFtZSA9IHByb2plY3QuZ2V0TmFtZSgpLFxuICAgICAgICAgICAganNvbiA9IG51bGwsXG4gICAgICAgICAgICBlbnRyaWVzID0gcHJvamVjdC5nZXRFbnRyaWVzKCk7XG5cbiAgICAgIHJlbGVhc2VDb250ZXh0ID0gUmVsZWFzZUNvbnRleHQuZnJvbUxvZ05hbWVKU09ORW50cmllc0NhbGxiYWNrQW5kQ3VzdG9tR3JhbW1hcihsb2csIG5hbWUsIGpzb24sIGVudHJpZXMsIGNhbGxiYWNrLCBjdXN0b21HcmFtbWFyKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZUNvbnRleHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY3JlYXRlUmVsZWFzZUNvbnRleHQsXG4gIHJlbGVhc2VDb250ZXh0RnJvbUpTT04sXG4gIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dCxcbiAgcmVsZWFzZUNvbnRleHRGcm9tUHJvamVjdFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCByZWxlYXNlQ29udGV4dCwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpIHtcbiAgbGV0IHN1Y2Nlc3M7XG5cbiAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgZGVwZW5kZW50TmFtZXMgPSBbIC4uLmRlcGVuZGVudE5hbWVzLCBkZXBlbmRlbmN5TmFtZSBdOyAgLy8vXG5cbiAgc3VjY2VzcyA9IGF3YWl0IGFzeW5jRXZlcnlEZXBlbmRlbmN5KGRlcGVuZGVuY2llcywgYXN5bmMgKGRlcGVuZGVuY3kpID0+IHtcbiAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgY3ljbGljRGVwZW5kZW5jeUV4aXN0cyA9IGNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCk7XG5cbiAgICBpZiAoIWN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMpIHtcbiAgICAgIHN1Y2Nlc3MgPSBhd2FpdCBjcmVhdGVSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH0pO1xuXG4gIHJldHVybiBzdWNjZXNzO1xufVxuXG5mdW5jdGlvbiByZXRyaWV2ZVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgcmVsZWFzZUNvbnRleHRNYXApIHtcbiAgY29uc3QgcmVsZWFzZUNvbnRleHRzID0gW10sXG4gICAgICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHQsICAvLy9cbiAgICAgICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzID0gW1xuICAgICAgICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0XG4gICAgICAgIF07XG5cbiAgbGV0IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0xlbmd0aCA9IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0cy5sZW5ndGg7XG5cbiAgd2hpbGUgKHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0xlbmd0aCA+IDApIHtcbiAgICBjb25zdCByZW1haW5pbmdSZWxlYXNlQ29udGV4dCA9IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0cy5zaGlmdCgpLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVtYWluaW5nUmVsZWFzZUNvbnRleHQ7ICAvLy9cblxuICAgIHJlbGVhc2VDb250ZXh0cy5wdXNoKHJlbGVhc2VDb250ZXh0KTtcblxuICAgIGNvbnN0IGRlcGVuZGVuY2llcyA9IHJlbGVhc2VDb250ZXh0LmdldERlcGVuZGVuY2llcygpO1xuXG4gICAgZGVwZW5kZW5jaWVzLmZvckVhY2hEZXBlbmRlbmN5KChkZXBlbmRlbmN5KSA9PiB7XG4gICAgICBjb25zdCBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgcmVsZWFzZU5hbWUgPSBkZXBlbmRlbmN5TmFtZSwgLy8vXG4gICAgICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0TWFwW3JlbGVhc2VOYW1lXSxcbiAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dHMuaW5jbHVkZXMocmVsZWFzZUNvbnRleHQpLFxuICAgICAgICAgICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCA9IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0cy5pbmNsdWRlcyhyZWxlYXNlQ29udGV4dCk7XG5cbiAgICAgIGlmICghcmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCAmJiAhcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCkge1xuICAgICAgICBjb25zdCByZW1haW5pbmdSZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0OyAvLy9cblxuICAgICAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMucHVzaChyZW1haW5pbmdSZWxlYXNlQ29udGV4dCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dHNMZW5ndGggPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMubGVuZ3RoO1xuICB9XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0cztcbn1cblxuZnVuY3Rpb24gY2hlY2tSZWxlYXNlQ29udGV4dENyZWF0ZWQocmVsZWFzZUNvbnRleHQsIGRlcGVuZGVuY3ksIGNvbnRleHQpIHtcbiAgY29uc3QgcmVsZWFzZUNvbnRleHRDcmVhdGVkID0gKHJlbGVhc2VDb250ZXh0ICE9PSBudWxsKTtcblxuICBpZiAoIXJlbGVhc2VDb250ZXh0Q3JlYXRlZCkge1xuICAgIGNvbnN0IHsgbG9nIH0gPSBjb250ZXh0LFxuICAgICAgICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWUgPSBkZXBlbmRlbmN5TmFtZTsgLy8vXG5cbiAgICBsb2cud2FybmluZyhgVGhlICcke3JlbGVhc2VOYW1lfScgY29udGV4dCBjb3VsZCBub3QgYmUgY3JlYXRlZC4gUGVyaGFwcyB0aGUgJ21ldGEuanNvbicgZmlsZSBpcyBtaXNzaW5nIG9yIGludmFsaWQuIE9yIHRoZXJlIGNvdWxkIGJlIGEgZGVwZW5kZW5jeSBtaXNtYXRjaC5gKTtcbiAgfVxuXG4gIHJldHVybiByZWxlYXNlQ29udGV4dENyZWF0ZWQ7XG59XG5cbmZ1bmN0aW9uIGNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyhkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCkge1xuICBjb25zdCBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICBkZXBlbmRlbnROYW1lc0luY2x1ZGVzRGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbnROYW1lcy5pbmNsdWRlcyhkZXBlbmRlbmN5TmFtZSksXG4gICAgICAgIGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMgPSBkZXBlbmRlbnROYW1lc0luY2x1ZGVzRGVwZW5kZW5jeU5hbWU7ICAvLy9cblxuICBpZiAoY3ljbGljRGVwZW5kZW5jeUV4aXN0cykge1xuICAgIGNvbnN0IHsgbG9nIH0gPSBjb250ZXh0LFxuICAgICAgICAgIGZpcnN0RGVwZW5kZW50TmFtZSA9IGZpcnN0KGRlcGVuZGVudE5hbWVzKSxcbiAgICAgICAgICBkZXBlbmRlbmN5TmFtZXMgPSBbICAvLy9cbiAgICAgICAgICAgIC4uLmRlcGVuZGVudE5hbWVzLFxuICAgICAgICAgICAgZmlyc3REZXBlbmRlbnROYW1lXG4gICAgICAgICAgXSxcbiAgICAgICAgICBkZXBlbmRlbmN5TmFtZXNTdHJpbmcgPSBkZXBlbmRlbmN5TmFtZXMuam9pbihgJyAtPiAnYCk7XG5cbiAgICBsb2cud2FybmluZyhgVGhlcmUgaXMgYSBjeWNsaWMgZGVwZW5kZW5jeSwgJyR7ZGVwZW5kZW5jeU5hbWVzU3RyaW5nfScuYCk7XG4gIH1cblxuICByZXR1cm4gY3ljbGljRGVwZW5kZW5jeUV4aXN0cztcbn1cblxuZnVuY3Rpb24gY2hlY2tSZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kocmVsZWFzZUNvbnRleHQsIGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KSB7XG4gIGxldCByZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kgPSB0cnVlO1xuXG4gIGNvbnN0IHNob3J0ZW5lZFZlcnNpb24gPSBkZXBlbmRlbmN5LmdldFNob3J0ZWRWZXJzaW9uKCk7XG5cbiAgaWYgKHNob3J0ZW5lZFZlcnNpb24gIT09IG51bGwpIHtcbiAgICBjb25zdCBlbnRyaWVzTWF0Y2hTaG9ydGVuZWRWZXJzaW9uID0gcmVsZWFzZUNvbnRleHQubWF0Y2hTaG9ydGVuZWRWZXJzaW9uKHNob3J0ZW5lZFZlcnNpb24pO1xuXG4gICAgaWYgKCFlbnRyaWVzTWF0Y2hTaG9ydGVuZWRWZXJzaW9uKSB7XG4gICAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICAgIHZlcnNpb24gPSByZWxlYXNlQ29udGV4dC5nZXRWZXJzaW9uKCksXG4gICAgICAgICAgICBsYXN0RGVwZW5kZW50TmFtZSA9IGxhc3QoZGVwZW5kZW50TmFtZXMpLFxuICAgICAgICAgICAgZGVwZW5kZW50TmFtZSA9IGxhc3REZXBlbmRlbnROYW1lLCAgLy8vXG4gICAgICAgICAgICB2ZXJzaW9uU3RyaW5nID0gdmVyc2lvbi50b1N0cmluZygpLFxuICAgICAgICAgICAgZGVwZW5kZW5jeVN0cmluZyA9IGRlcGVuZGVuY3kuYXNTdHJpbmcoKTtcblxuICAgICAgbG9nLndhcm5pbmcoYFRoZSAnJHtkZXBlbmRlbnROYW1lfScgZGVwZW5kZW50IHJlcXVpcmVzIHRoZSAnJHtkZXBlbmRlbmN5U3RyaW5nfScgZGVwZW5kZW5jeSBidXQgYSBjb250ZXh0IHdpdGggdmVyc2lvbiAnJHt2ZXJzaW9uU3RyaW5nfScgd2FzIHByb3ZpZGVkLmApO1xuXG4gICAgICByZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5O1xufVxuXG5mdW5jdGlvbiBpbml0aWFsaXNlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5LCByZWxlYXNlQ29udGV4dCwgY29udGV4dCkge1xuICBjb25zdCBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKTtcblxuICBkZXBlbmRlbmNpZXMuZm9yRWFjaERlcGVuZGVuY3koKGRlcGVuZGVuY3kpID0+IHsgIC8vL1xuICAgIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBjb250ZXh0KTtcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlUmVsZWFzZUNvbnRleHQiLCJpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlQ29udGV4dEZyb21KU09OIiwicmVsZWFzZUNvbnRleHRGcm9tUHJvamVjdCIsImxhc3QiLCJhcnJheVV0aWxpdGllcyIsImlzTWV0YUpTT05GaWxlVmFsaWQiLCJtZXRhSlNPTlV0aWxpdGllcyIsImRlcGVuZGVuY3kiLCJkZXBlbmRlbnROYW1lcyIsImNvbnRleHQiLCJzdWNjZXNzIiwibG9nIiwicmVsZWFzZUNvbnRleHRNYXAiLCJkZXBlbmRlbmN5TmFtZSIsInJlbGVhc2VOYW1lIiwicmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kiLCJkZXBlbmRlbmN5U3RyaW5nIiwiZGVwZW5kZW50TmFtZXNMZW5ndGgiLCJsYXN0RGVwZW5kZW50TmFtZSIsImRlcGVuZGVudE5hbWUiLCJyZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5IiwicmVsZWFzZUNvbnRleHRDcmVhdGVkIiwiZ2V0TmFtZSIsImNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5IiwiZGVidWciLCJhc1N0cmluZyIsImxlbmd0aCIsImluZm8iLCJjaGVja1JlbGVhc2VDb250ZXh0Q3JlYXRlZCIsImNyZWF0ZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMiLCJ3YXJuaW5nIiwianNvbiIsImNhbGxiYWNrIiwibmFtZSIsImVudHJpZXMiLCJFbnRyaWVzIiwiZnJvbUpTT04iLCJjb250ZXh0SlNPTiIsIlJlbGVhc2VDb250ZXh0IiwiZnJvbUxvZ05hbWVKU09ORW50cmllc0NhbGxiYWNrQW5kQ3VzdG9tR3JhbW1hciIsImN1c3RvbUdyYW1tYXIiLCJyZWxlYXNlQ29udGV4dEluaXRpYWxpc2VkIiwiaXNJbml0aWFsaXNlZCIsImluaXRpYWxpc2VEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwicmVsZWFzZUNvbnRleHRzIiwicmV0cmlldmVSZWxlYXNlQ29udGV4dHMiLCJpbml0aWFsaXNlIiwicHJvamVjdCIsIm1ldGFKU09ORmlsZSIsImdldE1ldGFKU09ORmlsZSIsIm1ldGFKU09ORmlsZVZhbGlkIiwiZ2V0RW50cmllcyIsImRlcGVuZGVuY2llcyIsImdldERlcGVuZGVuY2llcyIsImFzeW5jRXZlcnlEZXBlbmRlbmN5IiwiY3ljbGljRGVwZW5kZW5jeUV4aXN0cyIsImNoZWNrQ3ljbGljRGVwZW5kZW5jeUV4aXN0cyIsInJlbWFpbmluZ1JlbGVhc2VDb250ZXh0IiwicmVtYWluaW5nUmVsZWFzZUNvbnRleHRzIiwicmVtYWluaW5nUmVsZWFzZUNvbnRleHRzTGVuZ3RoIiwic2hpZnQiLCJwdXNoIiwiZm9yRWFjaERlcGVuZGVuY3kiLCJyZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0IiwiaW5jbHVkZXMiLCJyZW1haW5pbmdSZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0IiwiZGVwZW5kZW50TmFtZXNJbmNsdWRlc0RlcGVuZGVuY3lOYW1lIiwiZmlyc3REZXBlbmRlbnROYW1lIiwiZmlyc3QiLCJkZXBlbmRlbmN5TmFtZXMiLCJkZXBlbmRlbmN5TmFtZXNTdHJpbmciLCJqb2luIiwic2hvcnRlbmVkVmVyc2lvbiIsImdldFNob3J0ZWRWZXJzaW9uIiwiZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbiIsIm1hdGNoU2hvcnRlbmVkVmVyc2lvbiIsInZlcnNpb24iLCJnZXRWZXJzaW9uIiwidmVyc2lvblN0cmluZyIsInRvU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFZc0JBO2VBQUFBOztRQXlIdEI7ZUFBQTs7UUFqRGdCQztlQUFBQTs7UUFyQkFDO2VBQUFBOztRQWlEQUM7ZUFBQUE7Ozt5QkE5R2U7MEJBQ1k7OERBRWhCOzBCQUVVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
528
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVsZWFzZUNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgRW50cmllcywgbWV0YUpTT05VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbW9kZWxcIjtcblxuaW1wb3J0IFJlbGVhc2VDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L3JlbGVhc2VcIjtcblxuaW1wb3J0IHsgYXN5bmNFdmVyeURlcGVuZGVuY3kgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2RlcGVuZGVuY3lcIjtcblxuY29uc3QgeyBsYXN0IH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgaXNNZXRhSlNPTkZpbGVWYWxpZCB9ID0gbWV0YUpTT05VdGlsaXRpZXM7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVSZWxlYXNlQ29udGV4dChkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCkge1xuICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gIGNvbnN0IHsgbG9nLCByZWxlYXNlQ29udGV4dE1hcCB9ID0gY29udGV4dCxcbiAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSBkZXBlbmRlbmN5TmFtZSwgLy8vXG4gICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdIHx8IG51bGw7XG5cbiAgaWYgKHJlbGVhc2VDb250ZXh0ICE9PSBudWxsKSB7XG4gICAgY29uc3QgcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5ID0gY2hlY2tSZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kocmVsZWFzZUNvbnRleHQsIGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcblxuICAgIGlmIChyZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgVGhlICcke3JlbGVhc2VOYW1lfScgY29udGV4dCBoYXMgYWxyZWFkeSBiZWVuIGNyZWF0ZWQuYCk7XG5cbiAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBkZXBlbmRlbmN5U3RyaW5nID0gZGVwZW5kZW5jeS5hc1N0cmluZygpLFxuICAgICAgICAgIGRlcGVuZGVudE5hbWVzTGVuZ3RoID0gZGVwZW5kZW50TmFtZXMubGVuZ3RoO1xuXG4gICAgaWYgKGRlcGVuZGVudE5hbWVzTGVuZ3RoID09PSAwKSB7XG4gICAgICBsb2cuaW5mbyhgQ3JlYXRpbmcgdGhlICcke3JlbGVhc2VOYW1lfScgY29udGV4dC4uLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsYXN0RGVwZW5kZW50TmFtZSA9IGxhc3QoZGVwZW5kZW50TmFtZXMpLFxuICAgICAgICAgICAgZGVwZW5kZW50TmFtZSA9IGxhc3REZXBlbmRlbnROYW1lOyAgLy8vXG5cbiAgICAgIGxvZy5pbmZvKGBDcmVhdGluZyB0aGUgJyR7cmVsZWFzZU5hbWV9JyBjb250ZXh0IGdpdmVuIHRoZSAnJHtkZXBlbmRlbnROYW1lfScgZGVwZW5kYW50J3MgJyR7ZGVwZW5kZW5jeVN0cmluZ30nIGRlcGVuZGVuY3kuLi5gKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IHJlbGVhc2VDb250ZXh0RnJvbURlcGVuZGVuY3kgfSA9IGNvbnRleHQsXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSBhd2FpdCByZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5KGRlcGVuZGVuY3ksIGNvbnRleHQpLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0Q3JlYXRlZCA9IGNoZWNrUmVsZWFzZUNvbnRleHRDcmVhdGVkKHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBjb250ZXh0KTtcblxuICAgIGlmIChyZWxlYXNlQ29udGV4dENyZWF0ZWQpIHtcbiAgICAgIGNvbnN0IHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSA9IGNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5KHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCk7XG5cbiAgICAgIGlmIChyZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kpIHtcbiAgICAgICAgcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdID0gcmVsZWFzZUNvbnRleHQ7XG5cbiAgICAgICAgc3VjY2VzcyA9IGF3YWl0IGNyZWF0ZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoZGVwZW5kZW5jeSwgcmVsZWFzZUNvbnRleHQsIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdWNjZXNzID9cbiAgICAgIGxvZy5kZWJ1ZyhgLi4uY3JlYXRlZCB0aGUgJyR7cmVsZWFzZU5hbWV9JyBjb250ZXh0LmApIDpcbiAgICAgICAgbG9nLndhcm5pbmcoYC4uLnVuYWJsZSB0byBjcmVhdGUgdGhlICcke3JlbGVhc2VOYW1lfScgY29udGV4dC5gKTtcbiAgfVxuXG4gIHJldHVybiBzdWNjZXNzO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5UmVsZWFzZUNvbnRleHQocmVsZWFzZU5hbWUsIGRlcGVuZGVudE5hbWUsIGRlcGVuZGVudFJlbGVhc2VkLCByZWxlYXNlQ29udGV4dE1hcCkge1xuICBsZXQgcmVsZWFzZVZlcmlmaWVzID0gZmFsc2U7XG5cbiAgY29uc3QgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV07XG5cbiAgaWYgKHJlbGVhc2VDb250ZXh0ICE9PSBudWxsKSB7XG4gICAgY29uc3QgcmVsZWFzZWQgPSByZWxlYXNlQ29udGV4dC5pc1JlbGVhc2VkKCk7XG5cbiAgICBpZiAocmVsZWFzZWQpIHtcbiAgICAgIHJlbGVhc2VWZXJpZmllcyA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChkZXBlbmRlbnRSZWxlYXNlZCkge1xuICAgICAgICByZWxlYXNlQ29udGV4dC53YXJuaW5nKGBUaGUgJyR7cmVsZWFzZU5hbWV9JyBwcm9qZWN0IGNhbm5vdCBiZSB2ZXJpZmllcyBiZWNhdXNlIGl0cyAnJHtkZXBlbmRlbnROYW1lfScgZGVwZW5kZW50IGlzIGEgcGFja2FnZS5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRlcGVuZGVudE5hbWUgPSByZWxlYXNlTmFtZSwgIC8vL1xuICAgICAgICAgICAgICBkZXBlbmRlbnRSZWxlYXNlZCA9IHJlbGVhc2VkLCAvLy9cbiAgICAgICAgICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c1ZlcmlmeSA9IGF3YWl0IHZlcmlmeURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHQsIGRlcGVuZGVudE5hbWUsIGRlcGVuZGVudFJlbGVhc2VkLCByZWxlYXNlQ29udGV4dE1hcCk7XG5cbiAgICAgICAgaWYgKGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNWZXJpZnkpIHtcbiAgICAgICAgICBjb25zdCByZWxlYXNlQ29udGV4dFZlcmlmaWVkID0gcmVsZWFzZUNvbnRleHQuaXNWZXJpZmllZCgpO1xuXG4gICAgICAgICAgaWYgKHJlbGVhc2VDb250ZXh0VmVyaWZpZWQpIHtcbiAgICAgICAgICAgIHJlbGVhc2VWZXJpZmllcyA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0LmluZm8oYFZlcmlmeWluZyB0aGUgJyR7cmVsZWFzZU5hbWV9JyBwcm9qZWN0Li4uYCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0VmVyaWZpZXMgPSBhd2FpdCByZWxlYXNlQ29udGV4dC52ZXJpZnkoKTtcblxuICAgICAgICAgICAgaWYgKHJlbGVhc2VDb250ZXh0VmVyaWZpZXMpIHtcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHQuaW5mbyhgLi4udmVyaWZpZWQgdGhlICcke3JlbGVhc2VOYW1lfScgcHJvamVjdC5gKTtcblxuICAgICAgICAgICAgICByZWxlYXNlVmVyaWZpZXMgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZWxlYXNlVmVyaWZpZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgY29udGV4dCkge1xuICBjb25zdCB7IHJlbGVhc2VDb250ZXh0TWFwIH0gPSBjb250ZXh0LFxuICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgcmVsZWFzZU5hbWUgPSBkZXBlbmRlbmN5TmFtZSwgLy8vXG4gICAgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0gfHwgbnVsbDtcblxuICBpZiAocmVsZWFzZUNvbnRleHQgPT09IG51bGwpIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dDtcblxuICAgIGxvZy53YXJuaW5nKGBVbmFibGUgdG8gaW5pdGlhbGlzZSB0aGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBjb250ZXh0IGJlY2F1c2UgaXQgaGFzIG5vdCBiZWVuIGNyZWF0ZWQuYCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZCA9IHJlbGVhc2VDb250ZXh0LmlzSW5pdGlhbGlzZWQoKTtcblxuICAgIGlmICghcmVsZWFzZUNvbnRleHRJbml0aWFsaXNlZCkge1xuICAgICAgaW5pdGlhbGlzZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoZGVwZW5kZW5jeSwgcmVsZWFzZUNvbnRleHQsIGNvbnRleHQpO1xuXG4gICAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgcmVsZWFzZUNvbnRleHRzID0gcmV0cmlldmVSZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHQsIHJlbGVhc2VDb250ZXh0TWFwKTtcblxuICAgICAgbG9nLmluZm8oYEluaXRpYWxpc2luZyB0aGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBjb250ZXh0Li4uYCk7XG5cbiAgICAgIHJlbGVhc2VDb250ZXh0LmluaXRpYWxpc2UocmVsZWFzZUNvbnRleHRzKTtcblxuICAgICAgbG9nLmRlYnVnKGAuLi5pbml0aWFsaXNlZCB0aGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBjb250ZXh0LmApO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVsZWFzZUNvbnRleHRGcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgbG9nLCBjYWxsYmFjayB9ID0gY29udGV4dCxcbiAgICAgICAgeyBuYW1lIH0gPSBqc29uO1xuXG4gICh7Y29udGV4dH0gPSBqc29uKTsgLy8vXG5cbiAgbGV0IHsgZW50cmllcyB9ID0ganNvbjtcblxuICBqc29uID0gZW50cmllczsgLy8vXG5cbiAgZW50cmllcyA9IEVudHJpZXMuZnJvbUpTT04oanNvbik7XG5cbiAgY29uc3QgY29udGV4dEpTT04gPSBjb250ZXh0OyAgLy8vXG5cbiAganNvbiA9IGNvbnRleHRKU09OOyAvLy9cblxuICBjb25zdCByZWxlYXNlQ29udGV4dCA9IFJlbGVhc2VDb250ZXh0LmZyb21Mb2dOYW1lSlNPTkVudHJpZXNDYWxsYmFja0FuZEN1c3RvbUdyYW1tYXIobG9nLCBuYW1lLCBqc29uLCBlbnRyaWVzLCBjYWxsYmFjaywgY3VzdG9tR3JhbW1hcik7XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVsZWFzZUNvbnRleHRGcm9tUHJvamVjdChwcm9qZWN0LCBjb250ZXh0KSB7XG4gIGxldCByZWxlYXNlQ29udGV4dCA9IG51bGw7XG5cbiAgY29uc3QgbWV0YUpTT05GaWxlID0gcHJvamVjdC5nZXRNZXRhSlNPTkZpbGUoKTtcblxuICBpZiAobWV0YUpTT05GaWxlICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YUpTT05GaWxlVmFsaWQgPSBpc01ldGFKU09ORmlsZVZhbGlkKG1ldGFKU09ORmlsZSk7XG5cbiAgICBpZiAobWV0YUpTT05GaWxlVmFsaWQpIHtcbiAgICAgIGNvbnN0IHsgbG9nLCBjYWxsYmFjayB9ID0gY29udGV4dCxcbiAgICAgICAgICAgIG5hbWUgPSBwcm9qZWN0LmdldE5hbWUoKSxcbiAgICAgICAgICAgIGpzb24gPSBudWxsLFxuICAgICAgICAgICAgZW50cmllcyA9IHByb2plY3QuZ2V0RW50cmllcygpO1xuXG4gICAgICByZWxlYXNlQ29udGV4dCA9IFJlbGVhc2VDb250ZXh0LmZyb21Mb2dOYW1lSlNPTkVudHJpZXNDYWxsYmFja0FuZEN1c3RvbUdyYW1tYXIobG9nLCBuYW1lLCBqc29uLCBlbnRyaWVzLCBjYWxsYmFjaywgY3VzdG9tR3JhbW1hcik7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0O1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGNyZWF0ZVJlbGVhc2VDb250ZXh0LFxuICB2ZXJpZnlSZWxlYXNlQ29udGV4dCxcbiAgcmVsZWFzZUNvbnRleHRGcm9tSlNPTixcbiAgaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0LFxuICByZWxlYXNlQ29udGV4dEZyb21Qcm9qZWN0XG59O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKGRlcGVuZGVuY3ksIHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCkge1xuICBsZXQgc3VjY2VzcztcblxuICBjb25zdCBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKTtcblxuICBkZXBlbmRlbnROYW1lcyA9IFsgLi4uZGVwZW5kZW50TmFtZXMsIGRlcGVuZGVuY3lOYW1lIF07ICAvLy9cblxuICBzdWNjZXNzID0gYXdhaXQgYXN5bmNFdmVyeURlcGVuZGVuY3koZGVwZW5kZW5jaWVzLCBhc3luYyAoZGVwZW5kZW5jeSkgPT4ge1xuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBjb25zdCBjeWNsaWNEZXBlbmRlbmN5RXhpc3RzID0gY2hlY2tDeWNsaWNEZXBlbmRlbmN5RXhpc3RzKGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcblxuICAgIGlmICghY3ljbGljRGVwZW5kZW5jeUV4aXN0cykge1xuICAgICAgc3VjY2VzcyA9IGF3YWl0IGNyZWF0ZVJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VjY2VzcztcbiAgfSk7XG5cbiAgcmV0dXJuIHN1Y2Nlc3M7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHZlcmlmeURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHQsIGRlcGVuZGVudE5hbWUsIGRlcGVuZGVudFJlbGVhc2VkLCByZWxlYXNlQ29udGV4dE1hcCkge1xuICBjb25zdCBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKSxcbiAgICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c1ZlcmlmeSA9IGF3YWl0IGFzeW5jRXZlcnlEZXBlbmRlbmN5KGRlcGVuZGVuY2llcywgYXN5bmMgKGRlcGVuZGVuY3kpID0+IHtcbiAgICAgICAgICBjb25zdCBuYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgICAgICAgICAgcmVsZWFzZU5hbWUgPSBuYW1lLCAvLy9cbiAgICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dFZlcmlmaWVzID0gYXdhaXQgdmVyaWZ5UmVsZWFzZUNvbnRleHQocmVsZWFzZU5hbWUsIGRlcGVuZGVudE5hbWUsIGRlcGVuZGVudFJlbGVhc2VkLCByZWxlYXNlQ29udGV4dE1hcCk7XG5cbiAgICAgICAgICBpZiAocmVsZWFzZUNvbnRleHRWZXJpZmllcykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICByZXR1cm4gZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c1ZlcmlmeTtcbn1cblxuZnVuY3Rpb24gcmV0cmlldmVSZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHQsIHJlbGVhc2VDb250ZXh0TWFwKSB7XG4gIGNvbnN0IHJlbGVhc2VDb250ZXh0cyA9IFtdLFxuICAgICAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0LCAgLy8vXG4gICAgICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0cyA9IFtcbiAgICAgICAgICByZW1haW5pbmdSZWxlYXNlQ29udGV4dFxuICAgICAgICBdO1xuXG4gIGxldCByZW1haW5pbmdSZWxlYXNlQ29udGV4dHNMZW5ndGggPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMubGVuZ3RoO1xuXG4gIHdoaWxlIChyZW1haW5pbmdSZWxlYXNlQ29udGV4dHNMZW5ndGggPiAwKSB7XG4gICAgY29uc3QgcmVtYWluaW5nUmVsZWFzZUNvbnRleHQgPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMuc2hpZnQoKSxcbiAgICAgICAgICByZWxlYXNlQ29udGV4dCA9IHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0OyAgLy8vXG5cbiAgICByZWxlYXNlQ29udGV4dHMucHVzaChyZWxlYXNlQ29udGV4dCk7XG5cbiAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKTtcblxuICAgIGRlcGVuZGVuY2llcy5mb3JFYWNoRGVwZW5kZW5jeSgoZGVwZW5kZW5jeSkgPT4ge1xuICAgICAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWUsIC8vL1xuICAgICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV0sXG4gICAgICAgICAgICByZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRzLmluY2x1ZGVzKHJlbGVhc2VDb250ZXh0KSxcbiAgICAgICAgICAgIHJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQgPSByZW1haW5pbmdSZWxlYXNlQ29udGV4dHMuaW5jbHVkZXMocmVsZWFzZUNvbnRleHQpO1xuXG4gICAgICBpZiAoIXJlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQgJiYgIXJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0luY2x1ZGVzUmVsZWFzZUNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgcmVtYWluaW5nUmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dDsgLy8vXG5cbiAgICAgICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzLnB1c2gocmVtYWluaW5nUmVsZWFzZUNvbnRleHQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzTGVuZ3RoID0gcmVtYWluaW5nUmVsZWFzZUNvbnRleHRzLmxlbmd0aDtcbiAgfVxuXG4gIHJldHVybiByZWxlYXNlQ29udGV4dHM7XG59XG5cbmZ1bmN0aW9uIGNoZWNrUmVsZWFzZUNvbnRleHRDcmVhdGVkKHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBjb250ZXh0KSB7XG4gIGNvbnN0IHJlbGVhc2VDb250ZXh0Q3JlYXRlZCA9IChyZWxlYXNlQ29udGV4dCAhPT0gbnVsbCk7XG5cbiAgaWYgKCFyZWxlYXNlQ29udGV4dENyZWF0ZWQpIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICBkZXBlbmRlbmN5TmFtZSA9IGRlcGVuZGVuY3kuZ2V0TmFtZSgpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lID0gZGVwZW5kZW5jeU5hbWU7IC8vL1xuXG4gICAgbG9nLndhcm5pbmcoYFRoZSAnJHtyZWxlYXNlTmFtZX0nIGNvbnRleHQgY291bGQgbm90IGJlIGNyZWF0ZWQuIFBlcmhhcHMgdGhlICdtZXRhLmpzb24nIGZpbGUgaXMgbWlzc2luZyBvciBpbnZhbGlkLiBPciB0aGVyZSBjb3VsZCBiZSBhIGRlcGVuZGVuY3kgbWlzbWF0Y2guYCk7XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZUNvbnRleHRDcmVhdGVkO1xufVxuXG5mdW5jdGlvbiBjaGVja0N5Y2xpY0RlcGVuZGVuY3lFeGlzdHMoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgZGVwZW5kZW50TmFtZXNJbmNsdWRlc0RlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW50TmFtZXMuaW5jbHVkZXMoZGVwZW5kZW5jeU5hbWUpLFxuICAgICAgICBjeWNsaWNEZXBlbmRlbmN5RXhpc3RzID0gZGVwZW5kZW50TmFtZXNJbmNsdWRlc0RlcGVuZGVuY3lOYW1lOyAgLy8vXG5cbiAgaWYgKGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMpIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICBmaXJzdERlcGVuZGVudE5hbWUgPSBmaXJzdChkZXBlbmRlbnROYW1lcyksXG4gICAgICAgICAgZGVwZW5kZW5jeU5hbWVzID0gWyAgLy8vXG4gICAgICAgICAgICAuLi5kZXBlbmRlbnROYW1lcyxcbiAgICAgICAgICAgIGZpcnN0RGVwZW5kZW50TmFtZVxuICAgICAgICAgIF0sXG4gICAgICAgICAgZGVwZW5kZW5jeU5hbWVzU3RyaW5nID0gZGVwZW5kZW5jeU5hbWVzLmpvaW4oYCcgLT4gJ2ApO1xuXG4gICAgbG9nLndhcm5pbmcoYFRoZXJlIGlzIGEgY3ljbGljIGRlcGVuZGVuY3ksICcke2RlcGVuZGVuY3lOYW1lc1N0cmluZ30nLmApO1xuICB9XG5cbiAgcmV0dXJuIGN5Y2xpY0RlcGVuZGVuY3lFeGlzdHM7XG59XG5cbmZ1bmN0aW9uIGNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5KHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCkge1xuICBsZXQgcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5ID0gdHJ1ZTtcblxuICBjb25zdCBzaG9ydGVuZWRWZXJzaW9uID0gZGVwZW5kZW5jeS5nZXRTaG9ydGVkVmVyc2lvbigpO1xuXG4gIGlmIChzaG9ydGVuZWRWZXJzaW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbiA9IHJlbGVhc2VDb250ZXh0Lm1hdGNoU2hvcnRlbmVkVmVyc2lvbihzaG9ydGVuZWRWZXJzaW9uKTtcblxuICAgIGlmICghZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbikge1xuICAgICAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQsXG4gICAgICAgICAgICB2ZXJzaW9uID0gcmVsZWFzZUNvbnRleHQuZ2V0VmVyc2lvbigpLFxuICAgICAgICAgICAgbGFzdERlcGVuZGVudE5hbWUgPSBsYXN0KGRlcGVuZGVudE5hbWVzKSxcbiAgICAgICAgICAgIGRlcGVuZGVudE5hbWUgPSBsYXN0RGVwZW5kZW50TmFtZSwgIC8vL1xuICAgICAgICAgICAgdmVyc2lvblN0cmluZyA9IHZlcnNpb24udG9TdHJpbmcoKSxcbiAgICAgICAgICAgIGRlcGVuZGVuY3lTdHJpbmcgPSBkZXBlbmRlbmN5LmFzU3RyaW5nKCk7XG5cbiAgICAgIGxvZy53YXJuaW5nKGBUaGUgJyR7ZGVwZW5kZW50TmFtZX0nIGRlcGVuZGVudCByZXF1aXJlcyB0aGUgJyR7ZGVwZW5kZW5jeVN0cmluZ30nIGRlcGVuZGVuY3kgYnV0IGEgY29udGV4dCB3aXRoIHZlcnNpb24gJyR7dmVyc2lvblN0cmluZ30nIHdhcyBwcm92aWRlZC5gKTtcblxuICAgICAgcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeTtcbn1cblxuZnVuY3Rpb24gaW5pdGlhbGlzZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoZGVwZW5kZW5jeSwgcmVsZWFzZUNvbnRleHQsIGNvbnRleHQpIHtcbiAgY29uc3QgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgZGVwZW5kZW5jaWVzLmZvckVhY2hEZXBlbmRlbmN5KChkZXBlbmRlbmN5KSA9PiB7ICAvLy9cbiAgICBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgY29udGV4dCk7XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImNyZWF0ZVJlbGVhc2VDb250ZXh0IiwiaW5pdGlhbGlzZVJlbGVhc2VDb250ZXh0IiwicmVsZWFzZUNvbnRleHRGcm9tSlNPTiIsInJlbGVhc2VDb250ZXh0RnJvbVByb2plY3QiLCJ2ZXJpZnlSZWxlYXNlQ29udGV4dCIsImxhc3QiLCJhcnJheVV0aWxpdGllcyIsImlzTWV0YUpTT05GaWxlVmFsaWQiLCJtZXRhSlNPTlV0aWxpdGllcyIsImRlcGVuZGVuY3kiLCJkZXBlbmRlbnROYW1lcyIsImNvbnRleHQiLCJzdWNjZXNzIiwibG9nIiwicmVsZWFzZUNvbnRleHRNYXAiLCJkZXBlbmRlbmN5TmFtZSIsInJlbGVhc2VOYW1lIiwicmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kiLCJkZXBlbmRlbmN5U3RyaW5nIiwiZGVwZW5kZW50TmFtZXNMZW5ndGgiLCJsYXN0RGVwZW5kZW50TmFtZSIsImRlcGVuZGVudE5hbWUiLCJyZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5IiwicmVsZWFzZUNvbnRleHRDcmVhdGVkIiwiZ2V0TmFtZSIsImNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5IiwiZGVidWciLCJhc1N0cmluZyIsImxlbmd0aCIsImluZm8iLCJjaGVja1JlbGVhc2VDb250ZXh0Q3JlYXRlZCIsImNyZWF0ZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMiLCJ3YXJuaW5nIiwiZGVwZW5kZW50UmVsZWFzZWQiLCJyZWxlYXNlVmVyaWZpZXMiLCJyZWxlYXNlZCIsImRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNWZXJpZnkiLCJyZWxlYXNlQ29udGV4dFZlcmlmaWVkIiwicmVsZWFzZUNvbnRleHRWZXJpZmllcyIsImlzUmVsZWFzZWQiLCJ2ZXJpZnlEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwiaXNWZXJpZmllZCIsInZlcmlmeSIsInJlbGVhc2VDb250ZXh0SW5pdGlhbGlzZWQiLCJpc0luaXRpYWxpc2VkIiwiaW5pdGlhbGlzZURlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMiLCJyZWxlYXNlQ29udGV4dHMiLCJyZXRyaWV2ZVJlbGVhc2VDb250ZXh0cyIsImluaXRpYWxpc2UiLCJqc29uIiwiY2FsbGJhY2siLCJuYW1lIiwiZW50cmllcyIsIkVudHJpZXMiLCJmcm9tSlNPTiIsImNvbnRleHRKU09OIiwiUmVsZWFzZUNvbnRleHQiLCJmcm9tTG9nTmFtZUpTT05FbnRyaWVzQ2FsbGJhY2tBbmRDdXN0b21HcmFtbWFyIiwiY3VzdG9tR3JhbW1hciIsInByb2plY3QiLCJtZXRhSlNPTkZpbGUiLCJnZXRNZXRhSlNPTkZpbGUiLCJtZXRhSlNPTkZpbGVWYWxpZCIsImdldEVudHJpZXMiLCJkZXBlbmRlbmNpZXMiLCJnZXREZXBlbmRlbmNpZXMiLCJhc3luY0V2ZXJ5RGVwZW5kZW5jeSIsImN5Y2xpY0RlcGVuZGVuY3lFeGlzdHMiLCJjaGVja0N5Y2xpY0RlcGVuZGVuY3lFeGlzdHMiLCJyZW1haW5pbmdSZWxlYXNlQ29udGV4dCIsInJlbWFpbmluZ1JlbGVhc2VDb250ZXh0cyIsInJlbWFpbmluZ1JlbGVhc2VDb250ZXh0c0xlbmd0aCIsInNoaWZ0IiwicHVzaCIsImZvckVhY2hEZXBlbmRlbmN5IiwicmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCIsImluY2x1ZGVzIiwicmVtYWluaW5nUmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCIsImRlcGVuZGVudE5hbWVzSW5jbHVkZXNEZXBlbmRlbmN5TmFtZSIsImZpcnN0RGVwZW5kZW50TmFtZSIsImZpcnN0IiwiZGVwZW5kZW5jeU5hbWVzIiwiZGVwZW5kZW5jeU5hbWVzU3RyaW5nIiwiam9pbiIsInNob3J0ZW5lZFZlcnNpb24iLCJnZXRTaG9ydGVkVmVyc2lvbiIsImVudHJpZXNNYXRjaFNob3J0ZW5lZFZlcnNpb24iLCJtYXRjaFNob3J0ZW5lZFZlcnNpb24iLCJ2ZXJzaW9uIiwiZ2V0VmVyc2lvbiIsInZlcnNpb25TdHJpbmciLCJ0b1N0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBWXNCQTtlQUFBQTs7UUFtS3RCO2VBQUE7O1FBdEVnQkM7ZUFBQUE7O1FBNEJBQztlQUFBQTs7UUFxQkFDO2VBQUFBOztRQTNGTUM7ZUFBQUE7Ozt5QkE3RFM7MEJBQ1k7OERBRWhCOzBCQUVVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXJDLElBQU0sQUFBRUMsT0FBU0MseUJBQWMsQ0FBdkJELE1BQ0YsQUFBRUUsc0JBQXdCQyw2QkFBaUIsQ0FBekNEO0FBRUQsU0FBZVAscUJBQXFCUyxVQUFVLEVBQUVDLGNBQWMsRUFBRUMsT0FBTzs7WUFDeEVDLFNBRUlDLEtBQUtDLG1CQUNQQyxnQkFDQUMsYUFDQUMsZ0JBR0VDLDBCQVFBQyxrQkFDQUMsc0JBS0VDLG1CQUNBQyxlQUtBQyw4QkFDRk4saUJBQ0FPLHVCQUdFTjs7OztvQkFqQ05OLFVBQVU7b0JBRU5DLE1B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
|
package/package.json
CHANGED
|
@@ -61,32 +61,53 @@ export async function createReleaseContext(dependency, dependentNames, context)
|
|
|
61
61
|
return success;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
export function
|
|
65
|
-
|
|
66
|
-
{ name } = json;
|
|
67
|
-
|
|
68
|
-
({context} = json); ///
|
|
69
|
-
|
|
70
|
-
let { entries } = json;
|
|
71
|
-
|
|
72
|
-
json = entries; ///
|
|
64
|
+
export async function verifyReleaseContext(releaseName, dependentName, dependentReleased, releaseContextMap) {
|
|
65
|
+
let releaseVerifies = false;
|
|
73
66
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const contextJSON = context; ///
|
|
67
|
+
const releaseContext = releaseContextMap[releaseName];
|
|
77
68
|
|
|
78
|
-
|
|
69
|
+
if (releaseContext !== null) {
|
|
70
|
+
const released = releaseContext.isReleased();
|
|
79
71
|
|
|
80
|
-
|
|
72
|
+
if (released) {
|
|
73
|
+
releaseVerifies = true;
|
|
74
|
+
} else {
|
|
75
|
+
if (dependentReleased) {
|
|
76
|
+
releaseContext.warning(`The '${releaseName}' project cannot be verifies because its '${dependentName}' dependent is a package.`);
|
|
77
|
+
} else {
|
|
78
|
+
const dependentName = releaseName, ///
|
|
79
|
+
dependentReleased = released, ///
|
|
80
|
+
dependencyReleaseContextsVerify = await verifyDependencyReleaseContexts(releaseContext, dependentName, dependentReleased, releaseContextMap);
|
|
81
|
+
|
|
82
|
+
if (dependencyReleaseContextsVerify) {
|
|
83
|
+
const releaseContextVerified = releaseContext.isVerified();
|
|
84
|
+
|
|
85
|
+
if (releaseContextVerified) {
|
|
86
|
+
releaseVerifies = true;
|
|
87
|
+
} else {
|
|
88
|
+
releaseContext.info(`Verifying the '${releaseName}' project...`);
|
|
89
|
+
|
|
90
|
+
const releaseContextVerifies = await releaseContext.verify();
|
|
91
|
+
|
|
92
|
+
if (releaseContextVerifies) {
|
|
93
|
+
releaseContext.info(`...verified the '${releaseName}' project.`);
|
|
94
|
+
|
|
95
|
+
releaseVerifies = true;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
81
102
|
|
|
82
|
-
return
|
|
103
|
+
return releaseVerifies;
|
|
83
104
|
}
|
|
84
105
|
|
|
85
106
|
export function initialiseReleaseContext(dependency, context) {
|
|
86
107
|
const { releaseContextMap } = context,
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
108
|
+
dependencyName = dependency.getName(),
|
|
109
|
+
releaseName = dependencyName, ///
|
|
110
|
+
releaseContext = releaseContextMap[releaseName] || null;
|
|
90
111
|
|
|
91
112
|
if (releaseContext === null) {
|
|
92
113
|
const { log } = context;
|
|
@@ -99,7 +120,7 @@ export function initialiseReleaseContext(dependency, context) {
|
|
|
99
120
|
initialiseDependencyReleaseContexts(dependency, releaseContext, context);
|
|
100
121
|
|
|
101
122
|
const { log } = context,
|
|
102
|
-
|
|
123
|
+
releaseContexts = retrieveReleaseContexts(releaseContext, releaseContextMap);
|
|
103
124
|
|
|
104
125
|
log.info(`Initialising the '${dependencyName}' context...`);
|
|
105
126
|
|
|
@@ -110,6 +131,27 @@ export function initialiseReleaseContext(dependency, context) {
|
|
|
110
131
|
}
|
|
111
132
|
}
|
|
112
133
|
|
|
134
|
+
export function releaseContextFromJSON(json, context) {
|
|
135
|
+
const { log, callback } = context,
|
|
136
|
+
{ name } = json;
|
|
137
|
+
|
|
138
|
+
({context} = json); ///
|
|
139
|
+
|
|
140
|
+
let { entries } = json;
|
|
141
|
+
|
|
142
|
+
json = entries; ///
|
|
143
|
+
|
|
144
|
+
entries = Entries.fromJSON(json);
|
|
145
|
+
|
|
146
|
+
const contextJSON = context; ///
|
|
147
|
+
|
|
148
|
+
json = contextJSON; ///
|
|
149
|
+
|
|
150
|
+
const releaseContext = ReleaseContext.fromLogNameJSONEntriesCallbackAndCustomGrammar(log, name, json, entries, callback, customGrammar);
|
|
151
|
+
|
|
152
|
+
return releaseContext;
|
|
153
|
+
}
|
|
154
|
+
|
|
113
155
|
export function releaseContextFromProject(project, context) {
|
|
114
156
|
let releaseContext = null;
|
|
115
157
|
|
|
@@ -133,6 +175,7 @@ export function releaseContextFromProject(project, context) {
|
|
|
133
175
|
|
|
134
176
|
export default {
|
|
135
177
|
createReleaseContext,
|
|
178
|
+
verifyReleaseContext,
|
|
136
179
|
releaseContextFromJSON,
|
|
137
180
|
initialiseReleaseContext,
|
|
138
181
|
releaseContextFromProject
|
|
@@ -161,6 +204,21 @@ async function createDependencyReleaseContexts(dependency, releaseContext, depen
|
|
|
161
204
|
return success;
|
|
162
205
|
}
|
|
163
206
|
|
|
207
|
+
async function verifyDependencyReleaseContexts(releaseContext, dependentName, dependentReleased, releaseContextMap) {
|
|
208
|
+
const dependencies = releaseContext.getDependencies(),
|
|
209
|
+
dependencyReleaseContextsVerify = await asyncEveryDependency(dependencies, async (dependency) => {
|
|
210
|
+
const name = dependency.getName(),
|
|
211
|
+
releaseName = name, ///
|
|
212
|
+
releaseContextVerifies = await verifyReleaseContext(releaseName, dependentName, dependentReleased, releaseContextMap);
|
|
213
|
+
|
|
214
|
+
if (releaseContextVerifies) {
|
|
215
|
+
return true;
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
return dependencyReleaseContextsVerify;
|
|
220
|
+
}
|
|
221
|
+
|
|
164
222
|
function retrieveReleaseContexts(releaseContext, releaseContextMap) {
|
|
165
223
|
const releaseContexts = [],
|
|
166
224
|
remainingReleaseContext = releaseContext, ///
|