jsii-diff 1.59.0 → 1.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/jsii-diff.js +9 -9
- package/bin/jsii-diff.js.map +1 -0
- package/lib/diagnostics.js +1 -1
- package/lib/diagnostics.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -0
- package/lib/stability.js +1 -1
- package/lib/stability.js.map +1 -0
- package/lib/type-analysis.js +3 -3
- package/lib/type-analysis.js.map +1 -0
- package/lib/type-comparison.js +41 -42
- package/lib/type-comparison.js.map +1 -0
- package/lib/types.js +2 -3
- package/lib/types.js.map +1 -0
- package/lib/util.js +1 -1
- package/lib/util.js.map +1 -0
- package/lib/validations.js +5 -5
- package/lib/validations.js.map +1 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +3 -3
- package/lib/version.js.map +1 -0
- package/package.json +9 -15
- package/test/classes.test.js +33 -33
- package/test/classes.test.js.map +1 -0
- package/test/diagnostics.test.js +22 -22
- package/test/diagnostics.test.js.map +1 -0
- package/test/enums.test.js +4 -4
- package/test/enums.test.js.map +1 -0
- package/test/structs.test.js +12 -12
- package/test/structs.test.js.map +1 -0
- package/test/type-unions.test.js +7 -7
- package/test/type-unions.test.js.map +1 -0
- package/test/util.js +4 -4
- package/test/util.js.map +1 -0
package/bin/jsii-diff.js
CHANGED
|
@@ -12,7 +12,7 @@ const util_1 = require("../lib/util");
|
|
|
12
12
|
const version_1 = require("../lib/version");
|
|
13
13
|
const LOG = log4js.getLogger('jsii-diff');
|
|
14
14
|
async function main() {
|
|
15
|
-
const argv = yargs
|
|
15
|
+
const argv = await yargs
|
|
16
16
|
.env('JSII_DIFF')
|
|
17
17
|
.option('verbose', {
|
|
18
18
|
alias: 'v',
|
|
@@ -66,13 +66,13 @@ async function main() {
|
|
|
66
66
|
LOG.debug(`Loading original assembly from ${argv.original}`);
|
|
67
67
|
const loadOriginal = await loadAssembly(argv.original, argv);
|
|
68
68
|
if (!loadOriginal.success) {
|
|
69
|
-
process.stderr.write(`Could not load '${loadOriginal.resolved}': ${util_1.showDownloadFailure(loadOriginal.reason)}. Skipping analysis\n`);
|
|
69
|
+
process.stderr.write(`Could not load '${loadOriginal.resolved}': ${(0, util_1.showDownloadFailure)(loadOriginal.reason)}. Skipping analysis\n`);
|
|
70
70
|
return 0;
|
|
71
71
|
}
|
|
72
72
|
LOG.debug(`Loading updated assembly from ${argv.updated}`);
|
|
73
73
|
const loadUpdated = await loadAssembly(argv.updated, argv);
|
|
74
74
|
if (!loadUpdated.success) {
|
|
75
|
-
process.stderr.write(`Could not load '${loadUpdated.resolved}': ${util_1.showDownloadFailure(loadUpdated.reason)}. Skipping analysis\n`);
|
|
75
|
+
process.stderr.write(`Could not load '${loadUpdated.resolved}': ${(0, util_1.showDownloadFailure)(loadUpdated.reason)}. Skipping analysis\n`);
|
|
76
76
|
return 0;
|
|
77
77
|
}
|
|
78
78
|
const original = loadOriginal.assembly;
|
|
@@ -81,19 +81,19 @@ async function main() {
|
|
|
81
81
|
process.stderr.write(`Look like different assemblies: '${original.name}' vs '${updated.name}'. Comparing is probably pointless...\n`);
|
|
82
82
|
}
|
|
83
83
|
LOG.info('Starting analysis');
|
|
84
|
-
const mismatches = lib_1.compareAssemblies(original, updated, {
|
|
84
|
+
const mismatches = (0, lib_1.compareAssemblies)(original, updated, {
|
|
85
85
|
defaultExperimental: argv['default-stability'] === 'experimental',
|
|
86
86
|
});
|
|
87
87
|
LOG.info(`Found ${mismatches.count} issues`);
|
|
88
88
|
if (mismatches.count > 0) {
|
|
89
|
-
const diags = diagnostics_1.classifyDiagnostics(mismatches, argv['experimental-errors'], await loadFilter(argv['ignore-file']));
|
|
89
|
+
const diags = (0, diagnostics_1.classifyDiagnostics)(mismatches, argv['experimental-errors'], await loadFilter(argv['ignore-file']));
|
|
90
90
|
process.stderr.write(`Original assembly: ${original.name}@${original.version}\n`);
|
|
91
91
|
process.stderr.write(`Updated assembly: ${updated.name}@${updated.version}\n`);
|
|
92
92
|
process.stderr.write('API elements with incompatible changes:\n');
|
|
93
93
|
for (const diag of diags) {
|
|
94
|
-
process.stderr.write(`${diagnostics_1.formatDiagnostic(diag, argv.keys)}\n`);
|
|
94
|
+
process.stderr.write(`${(0, diagnostics_1.formatDiagnostic)(diag, argv.keys)}\n`);
|
|
95
95
|
}
|
|
96
|
-
return diagnostics_1.hasErrors(diags) ? 1 : 0;
|
|
96
|
+
return (0, diagnostics_1.hasErrors)(diags) ? 1 : 0;
|
|
97
97
|
}
|
|
98
98
|
return 0;
|
|
99
99
|
}
|
|
@@ -116,7 +116,7 @@ async function loadAssembly(requested, options) {
|
|
|
116
116
|
if (!pkg.includes('@', 1)) {
|
|
117
117
|
resolved += '@latest';
|
|
118
118
|
}
|
|
119
|
-
const download = await util_1.downloadNpmPackage(pkg, (f) => loadFromFilesystem(f, options));
|
|
119
|
+
const download = await (0, util_1.downloadNpmPackage)(pkg, (f) => loadFromFilesystem(f, options));
|
|
120
120
|
if (download.success) {
|
|
121
121
|
return {
|
|
122
122
|
requested,
|
|
@@ -227,4 +227,4 @@ async function loadFilter(filterFilename) {
|
|
|
227
227
|
return new Set();
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1kaWZmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsianNpaS1kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsZ0NBQThCO0FBRTlCLG1DQUFtQztBQUNuQywrQkFBK0I7QUFDL0Isd0NBQXdDO0FBQ3hDLGlDQUFpQztBQUNqQywrQkFBK0I7QUFFL0IsZ0NBQTJDO0FBQzNDLG9EQUk0QjtBQUM1QixzQ0FJcUI7QUFDckIsNENBQXlDO0FBRXpDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFMUMsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxJQUFJLEdBQUcsS0FBSztTQUNmLEdBQUcsQ0FBQyxXQUFXLENBQUM7U0FDaEIsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNqQixLQUFLLEVBQUUsR0FBRztRQUNWLElBQUksRUFBRSxPQUFPO1FBQ2IsSUFBSSxFQUFFLGtDQUFrQztRQUN4QyxNQUFNLEVBQUUsSUFBSTtLQUNiLENBQUM7U0FDRCxNQUFNLENBQUMsbUJBQW1CLEVBQUU7UUFDM0IsS0FBSyxFQUFFLEdBQUc7UUFDVixJQUFJLEVBQUUsUUFBUTtRQUNkLE9BQU8sRUFBRSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUM7UUFDbkMsSUFBSSxFQUFFLHdCQUF3QjtRQUM5QixPQUFPLEVBQUUsUUFBUTtLQUNsQixDQUFDO1NBQ0QsTUFBTSxDQUFDLHFCQUFxQixFQUFFO1FBQzdCLEtBQUssRUFBRSxHQUFHO1FBQ1YsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsS0FBSztRQUNkLElBQUksRUFBRSxtQ0FBbUM7S0FDMUMsQ0FBQztTQUNELE1BQU0sQ0FBQyxhQUFhLEVBQUU7UUFDckIsS0FBSyxFQUFFLEdBQUc7UUFDVixJQUFJLEVBQUUsUUFBUTtRQUNkLElBQUksRUFBRSw4REFBOEQ7S0FDckUsQ0FBQztTQUNELE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDZCxLQUFLLEVB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SSxDQUFDLGNBQWMsRUFBRTtRQUNuQixPQUFPLElBQUksR0FBRyxFQUFFLENBQUM7S0FDbEI7SUFFRCxJQUFJO1FBQ0YsT0FBTyxJQUFJLEdBQUcsQ0FDWixDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQzthQUN2RCxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ1gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDcEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDckMsQ0FBQztLQUNIO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ3ZCLE1BQU0sQ0FBQyxDQUFDO1NBQ1Q7UUFDRCxHQUFHLENBQUMsS0FBSyxDQUFDLGlCQUFpQixjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQztLQUNsQjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ0Bqc2lpL2NoZWNrLW5vZGUvcnVuJztcblxuaW1wb3J0ICogYXMgc3BlYyBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCAqIGFzIGxvZzRqcyBmcm9tICdsb2c0anMnO1xuaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuXG5pbXBvcnQgeyBjb21wYXJlQXNzZW1ibGllcyB9IGZyb20gJy4uL2xpYic7XG5pbXBvcnQge1xuICBjbGFzc2lmeURpYWdub3N0aWNzLFxuICBmb3JtYXREaWFnbm9zdGljLFxuICBoYXNFcnJvcnMsXG59IGZyb20gJy4uL2xpYi9kaWFnbm9zdGljcyc7XG5pbXBvcnQge1xuICBEb3dubG9hZEZhaWx1cmUsXG4gIGRvd25sb2FkTnBtUGFja2FnZSxcbiAgc2hvd0Rvd25sb2FkRmFpbHVyZSxcbn0gZnJvbSAnLi4vbGliL3V0aWwnO1xuaW1wb3J0IHsgVkVSU0lPTiB9IGZyb20gJy4uL2xpYi92ZXJzaW9uJztcblxuY29uc3QgTE9HID0gbG9nNGpzLmdldExvZ2dlcignanNpaS1kaWZmJyk7XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3QgYXJndiA9IHlhcmdzXG4gICAgLmVudignSlNJSV9ESUZGJylcbiAgICAub3B0aW9uKCd2ZXJib3NlJywge1xuICAgICAgYWxpYXM6ICd2JyxcbiAgICAgIHR5cGU6ICdjb3VudCcsXG4gICAgICBkZXNjOiAnSW5jcmVhc2UgdGhlIHZlcmJvc2l0eSBvZiBvdXRwdXQnLFxuICAgICAgZ2xvYmFsOiB0cnVlLFxuICAgIH0pXG4gICAgLm9wdGlvbignZGVmYXVsdC1zdGFiaWxpdHknLCB7XG4gICAgICBhbGlhczogJ3MnLFxuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBjaG9pY2VzOiBbJ2V4cGVyaW1lbnRhbCcsICdzdGFibGUnXSxcbiAgICAgIGRlc2M6ICdUcmVhdCB1bm1hcmtlZCBBUElzIGFzJyxcbiAgICAgIGRlZmF1bHQ6ICdzdGFibGUnLFxuICAgIH0pXG4gICAgLm9wdGlvbignZXhwZXJpbWVudGFsLWVycm9ycycsIHtcbiAgICAgIGFsaWFzOiAnZScsXG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIGRlc2M6ICdFcnJvciBvbiBleHBlcmltZW50YWwgQVBJIGNoYW5nZXMnLFxuICAgIH0pXG4gICAgLm9wdGlvbignaWdub3JlLWZpbGUnLCB7XG4gICAgICBhbGlhczogJ2knLFxuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBkZXNjOiAnSWdub3JlIEFQSSBjaGFuZ2VzIHdpdGgga2V5cyBmcm9tIGZpbGUgKGZpbGUgbWF5IGJlIG1pc3NpbmcpJyxcbiAgICB9KVxuICAgIC5vcHRpb24oJ2tleXMnLCB7XG4gICAgICBhbGlhczogJ2snLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICBkZXNjOiAnU2hvdyBkaWFnbm9zdGljIHN1cHByZXNzaW9uIGtleXMnLFxuICAgIH0pXG4gICAgLm9wdGlvbigndmFsaWRhdGUnLCB7XG4gICAgICBhbGlhczogJ2QnLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICBkZXNjOiAnVmFsaWRhdGUgdGhlIGFzc2VtYmxpZXMgdGhhdCBhcmUgYmVpbmcgbG9hZGVkJyxcbiAgICB9KVxuICAgIC51c2FnZSgnJDAgPG9yaWdpbmFsPiBbdXBkYXRlZF0nLCAnQ29tcGFyZSB0d28gSlNJSSBhc3NlbWJsaWVzLicsIChhcmdzKSA9PlxuICAgICAgYXJnc1xuICAgICAgICAucG9zaXRpb25hbCgnb3JpZ2luYWwnLCB7XG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAnT3JpZ2luYWwgYXNzZW1ibHkgKGZpbGUsIHBhY2thZ2Ugb3IgXCJucG06cGFja2FnZUB2ZXJzaW9uXCIpJyxcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSlcbiAgICAgICAgLnBvc2l0aW9uYWwoJ3VwZGF0ZWQnLCB7XG4gICAgICAgICAgZGVzY3JpcHRpb246ICdOZXcgYXNzZW1ibHkgKGZpbGUsIHBhY2thZ2Ugb3IgXCJucG06cGFja2FnZUB2ZXJzaW9uXCIpJyxcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBkZWZhdWx0OiAnLicsXG4gICAgICAgIH0pLFxuICAgIClcbiAgICAuaGVscCgpXG4gICAgLnZlcnNpb24oVkVSU0lPTikuYXJndjtcblxuICBjb25maWd1cmVMb2c0anMoYXJndi52ZXJib3NlKTtcblxuICBMT0cuZGVidWcoYExvYWRpbmcgb3JpZ2luYWwgYXNzZW1ibHkgZnJvbSAkeyhhcmd2IGFzIGFueSkub3JpZ2luYWx9YCk7XG4gIGNvbnN0IGxvYWRPcmlnaW5hbCA9IGF3YWl0IGxvYWRBc3NlbWJseSgoYXJndiBhcyBhbnkpLm9yaWdpbmFsLCBhcmd2KTtcbiAgaWYgKCFsb2FkT3JpZ2luYWwuc3VjY2Vzcykge1xuICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKFxuICAgICAgYENvdWxkIG5vdCBsb2FkICcke2xvYWRPcmlnaW5hbC5yZXNvbHZlZH0nOiAke3Nob3dEb3dubG9hZEZhaWx1cmUoXG4gICAgICAgIGxvYWRPcmlnaW5hbC5yZWFzb24sXG4gICAgICApfS4gU2tpcHBpbmcgYW5hbHlzaXNcXG5gLFxuICAgICk7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBMT0cuZGVidWcoYExvYWRpbmcgdXBkYXRlZCBhc3NlbWJseSBmcm9tICR7KGFyZ3YgYXMgYW55KS51cGRhdGVkfWApO1xuICBjb25zdCBsb2FkVXBkYXRlZCA9IGF3YWl0IGxvYWRBc3NlbWJseSgoYXJndiBhcyBhbnkpLnVwZGF0ZWQsIGFyZ3YpO1xuICBpZiAoIWxvYWRVcGRhdGVkLnN1Y2Nlc3MpIHtcbiAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShcbiAgICAgIGBDb3VsZCBub3QgbG9hZCAnJHtsb2FkVXBkYXRlZC5yZXNvbHZlZH0nOiAke3Nob3dEb3dubG9hZEZhaWx1cmUoXG4gICAgICAgIGxvYWRVcGRhdGVkLnJlYXNvbixcbiAgICAgICl9LiBTa2lwcGluZyBhbmFseXNpc1xcbmAsXG4gICAgKTtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGNvbnN0IG9yaWdpbmFsID0gbG9hZE9yaWdpbmFsLmFzc2VtYmx5O1xuICBjb25zdCB1cGRhdGVkID0gbG9hZFVwZGF0ZWQuYXNzZW1ibHk7XG5cbiAgaWYgKG9yaWdpbmFsLm5hbWUgIT09IHVwZGF0ZWQubmFtZSkge1xuICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKFxuICAgICAgYExvb2sgbGlrZSBkaWZmZXJlbnQgYXNzZW1ibGllczogJyR7b3JpZ2luYWwubmFtZX0nIHZzICcke3VwZGF0ZWQubmFtZX0nLiBDb21wYXJpbmcgaXMgcHJvYmFibHkgcG9pbnRsZXNzLi4uXFxuYCxcbiAgICApO1xuICB9XG5cbiAgTE9HLmluZm8oJ1N0YXJ0aW5nIGFuYWx5c2lzJyk7XG4gIGNvbnN0IG1pc21hdGNoZXMgPSBjb21wYXJlQXNzZW1ibGllcyhvcmlnaW5hbCwgdXBkYXRlZCwge1xuICAgIGRlZmF1bHRFeHBlcmltZW50YWw6IGFyZ3ZbJ2RlZmF1bHQtc3RhYmlsaXR5J10gPT09ICdleHBlcmltZW50YWwnLFxuICB9KTtcblxuICBMT0cuaW5mbyhgRm91bmQgJHttaXNtYXRjaGVzLmNvdW50fSBpc3N1ZXNgKTtcblxuICBpZiAobWlzbWF0Y2hlcy5jb3VudCA+IDApIHtcbiAgICBjb25zdCBkaWFncyA9IGNsYXNzaWZ5RGlhZ25vc3RpY3MoXG4gICAgICBtaXNtYXRjaGVzLFxuICAgICAgYXJndlsnZXhwZXJpbWVudGFsLWVycm9ycyddLFxuICAgICAgYXdhaXQgbG9hZEZpbHRlcihhcmd2WydpZ25vcmUtZmlsZSddKSxcbiAgICApO1xuXG4gICAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoXG4gICAgICBgT3JpZ2luYWwgYXNzZW1ibHk6ICR7b3JpZ2luYWwubmFtZX1AJHtvcmlnaW5hbC52ZXJzaW9ufVxcbmAsXG4gICAgKTtcbiAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShcbiAgICAgIGBVcGRhdGVkIGFzc2VtYmx5OiAgJHt1cGRhdGVkLm5hbWV9QCR7dXBkYXRlZC52ZXJzaW9ufVxcbmAsXG4gICAgKTtcbiAgICBwcm9jZXNzLnN0ZGVyci53cml0ZSgnQVBJIGVsZW1lbnRzIHdpdGggaW5jb21wYXRpYmxlIGNoYW5nZXM6XFxuJyk7XG4gICAgZm9yIChjb25zdCBkaWFnIG9mIGRpYWdzKSB7XG4gICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShgJHtmb3JtYXREaWFnbm9zdGljKGRpYWcsIGFyZ3Yua2V5cyl9XFxuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhhc0Vycm9ycyhkaWFncykgPyAxIDogMDtcbiAgfVxuXG4gIHJldHVybiAwO1xufVxuXG4vLyBBbGxvdyBib3RoIG5wbTo8cGFja2FnZT4gKGxlZ2FjeSkgYW5kIG5wbTovLzxwYWNrYWdlPiAobG9va3MgYmV0dGVyKVxuY29uc3QgTlBNX1JFR0VYID0gL15ucG06KFxcL1xcLyk/LztcblxuaW50ZXJmYWNlIExvYWRPcHRpb25zIHtcbiAgdmFsaWRhdGU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogTG9hZCB0aGUgaW5kaWNhdGVkIGFzc2VtYmx5IGZyb20gdGhlIGdpdmVuIG5hbWVcbiAqXG4gKiBTdXBwb3J0cyBkb3dubG9hZGluZyBmcm9tIE5QTSBhcyB3ZWxsIGFzIGZyb20gZmlsZSBvciBkaXJlY3RvcnkuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxvYWRBc3NlbWJseShcbiAgcmVxdWVzdGVkOiBzdHJpbmcsXG4gIG9wdGlvbnM6IExvYWRPcHRpb25zLFxuKTogUHJvbWlzZTxMb2FkQXNzZW1ibHlSZXN1bHQ+IHtcbiAgbGV0IHJlc29sdmVkID0gcmVxdWVzdGVkO1xuICB0cnkge1xuICAgIGlmIChOUE1fUkVHRVguZXhlYyhyZXF1ZXN0ZWQpKSB7XG4gICAgICBsZXQgcGtnID0gcmVxdWVzdGVkLnJlcGxhY2UoTlBNX1JFR0VYLCAnJyk7XG4gICAgICBpZiAoIXBrZykge1xuICAgICAgICBwa2cgPSBhd2FpdCBsb2FkUGFja2FnZU5hbWVGcm9tQXNzZW1ibHkob3B0aW9ucyk7XG4gICAgICB9XG5cbiAgICAgIHJlc29sdmVkID0gYG5wbTovLyR7cGtnfWA7XG4gICAgICBpZiAoIXBrZy5pbmNsdWRlcygnQCcsIDEpKSB7XG4gICAgICAgIHJlc29sdmVkICs9ICdAbGF0ZXN0JztcbiAgICAgIH1cblxuICAgICAgY29uc3QgZG93bmxvYWQgPSBhd2FpdCBkb3dubG9hZE5wbVBhY2thZ2UocGtnLCAoZikgPT5cbiAgICAgICAgbG9hZEZyb21GaWxlc3lzdGVtKGYsIG9wdGlvbnMpLFxuICAgICAgKTtcbiAgICAgIGlmIChkb3dubG9hZC5zdWNjZXNzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVxdWVzdGVkLFxuICAgICAgICAgIHJlc29sdmVkLFxuICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgICAgYXNzZW1ibHk6IGRvd25sb2FkLnJlc3VsdCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHJlcXVlc3RlZCwgcmVzb2x2ZWQsIHN1Y2Nlc3M6IGZhbHNlLCByZWFzb246IGRvd25sb2FkLnJlYXNvbiB9O1xuICAgIH1cbiAgICAvLyBXZSBkb24ndCBhY2NlcHQgZmFpbHVyZSBsb2FkaW5nIGZyb20gdGhlIGZpbGVzeXN0ZW1cbiAgICByZXR1cm4ge1xuICAgICAgcmVxdWVzdGVkLFxuICAgICAgcmVzb2x2ZWQsXG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYXNzZW1ibHk6IGF3YWl0IGxvYWRGcm9tRmlsZXN5c3RlbShyZXF1ZXN0ZWQsIG9wdGlvbnMpLFxuICAgIH07XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBQcmVwZW5kIGluZm9ybWF0aW9uIGFib3V0IHdoaWNoIGFzc2VtYmx5IHdlJ3ZlIGZhaWxlZCB0byBsb2FkXG4gICAgLy9cbiAgICAvLyBMb29rIGF0IHRoZSB0eXBlIG9mIGVycm9yLiBJZiBpdCBoYXMgYSBsb3Qgb2YgbGluZXMgKGxpa2UgdmFsaWRhdGlvbiBlcnJvcnNcbiAgICAvLyB0ZW5kIHRvIGRvKSBsb2cgZXZlcnl0aGluZyB0byB0aGUgZGVidWcgbG9nIGFuZCBvbmx5IHNob3cgYSBjb3VwbGVcbiAgICBjb25zdCBtYXhMaW5lcyA9IDM7XG4gICAgY29uc3QgbWVzc2FnZVdpdGhDb250ZXh0ID0gYEVycm9yIGxvYWRpbmcgYXNzZW1ibHkgJyR7cmVzb2x2ZWR9JzogJHtlLm1lc3NhZ2V9YDtcbiAgICBjb25zdCBlcnJvckxpbmVzID0gbWVzc2FnZVdpdGhDb250ZXh0LnNwbGl0KCdcXG4nKTtcbiAgICBpZiAoZXJyb3JMaW5lcy5sZW5ndGggPCBtYXhMaW5lcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2VXaXRoQ29udGV4dCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgbGluZSBvZiBlcnJvckxpbmVzKSB7XG4gICAgICBMT0cuaW5mbyhsaW5lKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKFsuLi5lcnJvckxpbmVzLnNsaWNlKDAsIG1heExpbmVzKSwgJy4uLiddLmpvaW4oJ1xcbicpKTtcbiAgfVxufVxuXG50eXBlIExvYWRBc3NlbWJseVJlc3VsdCA9IHsgcmVxdWVzdGVkOiBzdHJpbmc7IHJlc29sdmVkOiBzdHJpbmcgfSAmIChcbiAgfCB7IHN1Y2Nlc3M6IHRydWU7IGFzc2VtYmx5OiByZWZsZWN0LkFzc2VtYmx5IH1cbiAgfCB7IHN1Y2Nlc3M6IGZhbHNlOyByZWFzb246IERvd25sb2FkRmFpbHVyZSB9XG4pO1xuXG5hc3luYyBmdW5jdGlvbiBsb2FkUGFja2FnZU5hbWVGcm9tQXNzZW1ibHkoXG4gIG9wdGlvbnM6IExvYWRPcHRpb25zLFxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgSlNJSV9BU1NFTUJMWV9GSUxFID0gJy5qc2lpJztcbiAgaWYgKCEoYXdhaXQgZnMucGF0aEV4aXN0cyhKU0lJX0FTU0VNQkxZX0ZJTEUpKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBObyBOUE0gcGFja2FnZSBuYW1lIGdpdmVuIGFuZCBubyAke0pTSUlfQVNTRU1CTFlfRklMRX0gZmlsZSBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuIFBsZWFzZSBzcGVjaWZ5IGEgcGFja2FnZSBuYW1lLmAsXG4gICAgKTtcbiAgfVxuICBjb25zdCBjb250ZW50cyA9IGF3YWl0IGZzLnJlYWRKU09OKEpTSUlfQVNTRU1CTFlfRklMRSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTtcbiAgY29uc3QgbW9kdWxlID0gb3B0aW9ucy52YWxpZGF0ZVxuICAgID8gc3BlYy52YWxpZGF0ZUFzc2VtYmx5KGNvbnRlbnRzKVxuICAgIDogKGNvbnRlbnRzIGFzIHNwZWMuQXNzZW1ibHkpO1xuICBpZiAoIW1vZHVsZS5uYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBwYWNrYWdlIGluICR7SlNJSV9BU1NFTUJMWV9GSUxFfWApO1xuICB9XG5cbiAgcmV0dXJuIG1vZHVsZS5uYW1lO1xufVxuXG5hc3luYyBmdW5jdGlvbiBsb2FkRnJvbUZpbGVzeXN0ZW0obmFtZTogc3RyaW5nLCBvcHRpb25zOiBMb2FkT3B0aW9ucykge1xuICBjb25zdCBzdGF0ID0gYXdhaXQgZnMuc3RhdChuYW1lKTtcblxuICBjb25zdCB0cyA9IG5ldyByZWZsZWN0LlR5cGVTeXN0ZW0oKTtcbiAgaWYgKHN0YXQuaXNEaXJlY3RvcnkoKSkge1xuICAgIHJldHVybiB0cy5sb2FkTW9kdWxlKG5hbWUsIG9wdGlvbnMpO1xuICB9XG4gIHJldHVybiB0cy5sb2FkRmlsZShuYW1lLCBvcHRpb25zKTtcbn1cblxubWFpbigpXG4gIC50aGVuKChuKSA9PiB7XG4gICAgcHJvY2Vzcy5leGl0KG4pO1xuICB9KVxuICAuY2F0Y2goKGUpID0+IHtcbiAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgIHByb2Nlc3MuZXhpdCgxMDApO1xuICB9KTtcblxuZnVuY3Rpb24gY29uZmlndXJlTG9nNGpzKHZlcmJvc2l0eTogbnVtYmVyKSB7XG4gIGxvZzRqcy5jb25maWd1cmUoe1xuICAgIGFwcGVuZGVyczoge1xuICAgICAgY29uc29sZToge1xuICAgICAgICB0eXBlOiAnc3RkZXJyJyxcbiAgICAgICAgbGF5b3V0OiB7IHR5cGU6ICdjb2xvcmVkJyB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgIGRlZmF1bHQ6IHsgYXBwZW5kZXJzOiBbJ2NvbnNvbGUnXSwgbGV2ZWw6IF9sb2dMZXZlbCgpIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgZnVuY3Rpb24gX2xvZ0xldmVsKCk6IGtleW9mIGxvZzRqcy5MZXZlbHMge1xuICAgIHN3aXRjaCAodmVyYm9zaXR5KSB7XG4gICAgICBjYXNlIDA6XG4gICAgICAgIHJldHVybiAnV0FSTic7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHJldHVybiAnSU5GTyc7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHJldHVybiAnREVCVUcnO1xuICAgICAgY2FzZSAzOlxuICAgICAgICByZXR1cm4gJ1RSQUNFJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnQUxMJztcbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9hZEZpbHRlcihmaWx0ZXJGaWxlbmFtZT86IHN0cmluZyk6IFByb21pc2U8U2V0PHN0cmluZz4+IHtcbiAgaWYgKCFmaWx0ZXJGaWxlbmFtZSkge1xuICAgIHJldHVybiBuZXcgU2V0KCk7XG4gIH1cblxuICB0cnkge1xuICAgIHJldHVybiBuZXcgU2V0KFxuICAgICAgKGF3YWl0IGZzLnJlYWRGaWxlKGZpbHRlckZpbGVuYW1lLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pKVxuICAgICAgICAuc3BsaXQoJ1xcbicpXG4gICAgICAgIC5tYXAoKHgpID0+IHgudHJpbSgpKVxuICAgICAgICAuZmlsdGVyKCh4KSA9PiAheC5zdGFydHNXaXRoKCcjJykpLFxuICAgICk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoZS5jb2RlICE9PSAnRU5PRU5UJykge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gICAgTE9HLmRlYnVnKGBObyBzdWNoIGZpbGU6ICR7ZmlsdGVyRmlsZW5hbWV9YCk7XG4gICAgcmV0dXJuIG5ldyBTZXQoKTtcbiAgfVxufVxuIl19
|
|
230
|
+
//# sourceMappingURL=jsii-diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsii-diff.js","sourceRoot":"","sources":["jsii-diff.ts"],"names":[],"mappings":"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"}
|
package/lib/diagnostics.js
CHANGED
|
@@ -49,4 +49,4 @@ function classifyDiagnostics(mismatches, experimentalErrors, skipFilter) {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
exports.classifyDiagnostics = classifyDiagnostics;
|
|
52
|
-
//# sourceMappingURL=
|
|
52
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["diagnostics.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AAIvC,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,2CAAS,CAAA;IACT,+CAAW,CAAA;IACX,+CAAW,CAAA;AACb,CAAC,EAJW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAIpB;AAED,MAAM,YAAY,GAAG;IACnB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM;IACzB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM;IAC3B,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM;CAC5B,CAAC;AAQF,SAAgB,gBAAgB,CAC9B,IAAgB,EAChB,qBAAqB,GAAG,KAAK;IAE7B,OAAO;QACL,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,GAAG;QACH,IAAI,CAAC,OAAO;QACZ,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAVD,4CAUC;AAED,SAAgB,SAAS,CAAC,KAAmB;IAC3C,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAFD,8BAEC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,UAAsB,EACtB,kBAA2B,EAC3B,UAAuB;IAEvB,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9C,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;QACjB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,cAAc,EAAE,GAAG,CAAC,YAAY;KACjC,CAAC,CAAC,CAAC;IACJ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC;IAEX,SAAS,KAAK,CAAC,GAAgB;QAC7B,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACpC,OAAO,SAAS,CAAC,OAAO,CAAC;SAC1B;QACD,IACE,GAAG,CAAC,SAAS,KAAK,gBAAS,CAAC,MAAM;YAClC,CAAC,GAAG,CAAC,SAAS,KAAK,gBAAS,CAAC,YAAY,IAAI,kBAAkB,CAAC,EAChE;YACA,OAAO,SAAS,CAAC,KAAK,CAAC;SACxB;QACD,OAAO,SAAS,CAAC,OAAO,CAAC;IAC3B,CAAC;AACH,CAAC;AAzBD,kDAyBC"}
|
package/lib/index.js
CHANGED
|
@@ -17,4 +17,4 @@ function compareAssemblies(original, updated, options = {}) {
|
|
|
17
17
|
return comparison.mismatches;
|
|
18
18
|
}
|
|
19
19
|
exports.compareAssemblies = compareAssemblies;
|
|
20
|
-
//# sourceMappingURL=
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAEA,uDAAuD;AAGvD;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC/B,QAA0B,EAC1B,OAAyB,EACzB,UAA6B,EAAE;IAE/B,MAAM,UAAU,GAAG,IAAI,oCAAkB,CAAC,OAAO,CAAC,CAAC;IACnD,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,EAAE,CAAC;IAErB,OAAO,UAAU,CAAC,UAAU,CAAC;AAC/B,CAAC;AAVD,8CAUC"}
|
package/lib/stability.js
CHANGED
|
@@ -49,4 +49,4 @@ function allowedTransitions(start) {
|
|
|
49
49
|
throw new Error(`Unrecognized stability: ${start}`);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
//# sourceMappingURL=
|
|
52
|
+
//# sourceMappingURL=stability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stability.js","sourceRoot":"","sources":["stability.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAKnC,SAAgB,mBAAmB,CACjC,QAA2C,EAC3C,OAA6B,EAC7B,UAAmB;IAEnB,+BAA+B;IAC/B,IACE,QAAQ,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS;QACrC,QAAQ,CAAC,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,SAAS,EAClD;QACA,OAAO;KACR;IAED,mCAAmC;IACnC,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;QACxC,UAAU,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,mBAAmB;YAC5B,OAAO,EAAE,kBAAkB,QAAQ,CAAC,IAAI,CAAC,SAAS,qBAAqB;YACvE,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,OAAO;KACR;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QAC7C,UAAU,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,mBAAmB;YAC5B,OAAO,EAAE,qCAAqC,QAAQ,CAAC,IAAI,CAAC,SAAS,SAAS,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG;YACvG,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;KACJ;AACH,CAAC;AA/BD,kDA+BC;AAED,SAAS,kBAAkB,CAAC,KAAqB;IAC/C,QAAQ,KAAK,EAAE;QACb,4DAA4D;QAC5D,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY;YAC9B,OAAO;gBACL,IAAI,CAAC,SAAS,CAAC,MAAM;gBACrB,IAAI,CAAC,SAAS,CAAC,UAAU;gBACzB,IAAI,CAAC,SAAS,CAAC,QAAQ;aACxB,CAAC;QAEJ,oDAAoD;QACpD,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM;YACxB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE9D,+BAA+B;QAC/B,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU;YAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE1D,6CAA6C;QAC7C,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ;YAC1B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE5D;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAY,EAAE,CAAC,CAAC;KAC9D;AACH,CAAC"}
|
package/lib/type-analysis.js
CHANGED
|
@@ -43,7 +43,7 @@ function isSuperType(a, b, updatedSystem) {
|
|
|
43
43
|
if (analyses.every((x) => x.success)) {
|
|
44
44
|
return { success: true };
|
|
45
45
|
}
|
|
46
|
-
return failure(`some of ${b.toString()} are not assignable to ${a.toString()}`, ...util_1.flatMap(analyses, (x) => (x.success ? [] : x.reasons)));
|
|
46
|
+
return failure(`some of ${b.toString()} are not assignable to ${a.toString()}`, ...(0, util_1.flatMap)(analyses, (x) => (x.success ? [] : x.reasons)));
|
|
47
47
|
}
|
|
48
48
|
// There should be an element of A which can accept all of B
|
|
49
49
|
if (a.unionOfTypes !== undefined) {
|
|
@@ -51,7 +51,7 @@ function isSuperType(a, b, updatedSystem) {
|
|
|
51
51
|
if (analyses.some((x) => x.success)) {
|
|
52
52
|
return { success: true };
|
|
53
53
|
}
|
|
54
|
-
return failure(`none of ${b.toString()} are assignable to ${a.toString()}`, ...util_1.flatMap(analyses, (x) => (x.success ? [] : x.reasons)));
|
|
54
|
+
return failure(`none of ${b.toString()} are assignable to ${a.toString()}`, ...(0, util_1.flatMap)(analyses, (x) => (x.success ? [] : x.reasons)));
|
|
55
55
|
}
|
|
56
56
|
// We have two named types, recursion might happen so protect against it.
|
|
57
57
|
try {
|
|
@@ -169,4 +169,4 @@ function prependReason(analysis, message) {
|
|
|
169
169
|
return failure(message, ...analysis.reasons);
|
|
170
170
|
}
|
|
171
171
|
exports.prependReason = prependReason;
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1hbmFseXNpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInR5cGUtYW5hbHlzaXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsaUNBQWlDO0FBRWpDOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixXQUFXLENBQ3pCLENBQXdCLEVBQ3hCLENBQXdCLEVBQ3hCLGFBQWlDO0lBRWpDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztLQUN4RDtJQUNELElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtRQUNYLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7S0FDMUI7SUFFRCxJQUFJLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO1FBQzdCLElBQUksQ0FBQyxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUMsU0FBUyxFQUFFO1lBQy9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDeEU7SUFFRCxJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFO1FBQy9CLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFO1lBQy9CLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsT0FBTyxhQUFhLENBQ2xCLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLEVBQ3hELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDLFFBQVEsRUFB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QUtDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuaW1wb3J0ICogYXMgcmVmbGVjdCBmcm9tICdqc2lpLXJlZmxlY3QnO1xuXG5pbXBvcnQgeyBmbGF0TWFwIH0gZnJvbSAnLi91dGlsJztcblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIEEgaXMgYSBzdXBlcnR5cGUgb2YgQlxuICpcbiAqIFB1dCBkaWZmZXJlbnRseTogd2hldGhlciBhbnkgdmFsdWUgb2YgdHlwZSBCIHdvdWxkIGJlIGFzc2lnbmFibGUgdG8gYVxuICogdmFyaWFibGUgb2YgdHlwZSBBLlxuICpcbiAqIFdlIGFsd2F5cyBjaGVjayB0aGUgcmVsYXRpb25zaGlwIGluIHRoZSBORVcgKGxhdGVzdCwgdXBkYXRlZCkgdHlwZXN5c3RlbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3VwZXJUeXBlKFxuICBhOiByZWZsZWN0LlR5cGVSZWZlcmVuY2UsXG4gIGI6IHJlZmxlY3QuVHlwZVJlZmVyZW5jZSxcbiAgdXBkYXRlZFN5c3RlbTogcmVmbGVjdC5UeXBlU3lzdGVtLFxuKTogQW5hbHlzaXMge1xuICBpZiAoYS52b2lkIHx8IGIudm9pZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignaXNTdXBlclR5cGUoKSBkb2VzIG5vdCBoYW5kbGUgdm9pZHMnKTtcbiAgfVxuICBpZiAoYS5pc0FueSkge1xuICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUgfTtcbiAgfVxuXG4gIGlmIChhLnByaW1pdGl2ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKGEucHJpbWl0aXZlID09PSBiLnByaW1pdGl2ZSkge1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSB9O1xuICAgIH1cbiAgICByZXR1cm4gZmFpbHVyZShgJHtiLnRvU3RyaW5nKCl9IGlzIG5vdCBhc3NpZ25hYmxlIHRvICR7YS50b1N0cmluZygpfWApO1xuICB9XG5cbiAgaWYgKGEuYXJyYXlPZlR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vIEFycmF5cyBhcmUgY292YXJpYW50XG4gICAgaWYgKGIuYXJyYXlPZlR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhaWx1cmUoYCR7Yi50b1N0cmluZygpfSBpcyBub3QgYW4gYXJyYXkgdHlwZWApO1xuICAgIH1cbiAgICByZXR1cm4gcHJlcGVuZFJlYXNvbihcbiAgICAgIGlzU3VwZXJUeXBlKGEuYXJyYXlPZlR5cGUsIGIuYXJyYXlPZlR5cGUsIHVwZGF0ZWRTeXN0ZW0pLFxuICAgICAgYCR7Yi50b1N0cmluZygpfSBpcyBub3QgYXNzaWduYWJsZSB0byAke2EudG9TdHJpbmcoKX1gLFxuICAgICk7XG4gIH1cblxuICBpZiAoYS5tYXBPZlR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE1hcHMgYXJlIGNvdmFyaWFudCAoYXJlIHRoZXk/KVxuICAgIGlmIChiLm1hcE9mVHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZmFpbHVyZShgJHtiLnRvU3RyaW5nKCl9IGlzIG5vdCBhIG1hcCB0eXBlYCk7XG4gICAgfVxuICAgIHJldHVybiBwcmVwZW5kUmVhc29uKFxuICAgICAgaXNTdXBlclR5cGUoYS5tYXBPZlR5cGUsIGIubWFwT2ZUeXBlLCB1cGRhdGVkU3lzdGVtKSxcbiAgICAgIGAke2IudG9TdHJpbmcoKX0gaXMgbm90IGFzc2lnbmFibGUgdG8gJHthLnRvU3RyaW5nKCl9YCxcbiAgICApO1xuICB9XG5cbiAgLy8gRXZlcnkgZWxlbWVudCBvZiBCIGNhbiBiZSBhc3NpZ25lZCB0byBBXG4gIGlmIChiLnVuaW9uT2ZUeXBlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgYW5hbHlzZXMgPSBiLnVuaW9uT2ZUeXBlcy5tYXAoKGJiYikgPT5cbiAgICAgIGlzU3VwZXJUeXBlKGEsIGJiYiwgdXBkYXRlZFN5c3RlbSksXG4gICAgKTtcbiAgICBpZiAoYW5hbHlzZXMuZXZlcnkoKHgpID0+IHguc3VjY2VzcykpIHtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUgfTtcbiAgICB9XG4gICAgcmV0dXJuIGZhaWx1cmUoXG4gICAgICBgc29tZSBvZiAke2IudG9TdHJpbmcoKX0gYXJlIG5vdCBhc3NpZ25hYmxlIHRvICR7YS50b1N0cmluZygpfWAsXG4gICAgICAuLi5mbGF0TWFwKGFuYWx5c2VzLCAoeCkgPT4gKHguc3VjY2VzcyA/IFtdIDogeC5yZWFzb25zKSksXG4gICAgKTtcbiAgfVxuICAvLyBUaGVyZSBzaG91bGQgYmUgYW4gZWxlbWVudCBvZiBBIHdoaWNoIGNhbiBhY2NlcHQgYWxsIG9mIEJcbiAgaWYgKGEudW5pb25PZlR5cGVzICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBhbmFseXNlcyA9IGEudW5pb25PZlR5cGVzLm1hcCgoYWFhKSA9PlxuICAgICAgaXNTdXBlclR5cGUoYWFhLCBiLCB1cGRhdGVkU3lzdGVtKSxcbiAgICApO1xuICAgIGlmIChhbmFseXNlcy5zb21lKCh4KSA9PiB4LnN1Y2Nlc3MpKSB7XG4gICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlIH07XG4gICAgfVxuICAgIHJldHVybiBmYWlsdXJlKFxuICAgICAgYG5vbmUgb2YgJHtiLnRvU3RyaW5nKCl9IGFyZSBhc3NpZ25hYmxlIHRvICR7YS50b1N0cmluZygpfWAsXG4gICAgICAuLi5mbGF0TWFwKGFuYWx5c2VzLCAoeCkgPT4gKHguc3VjY2VzcyA/IFtdIDogeC5yZWFzb25zKSksXG4gICAgKTtcbiAgfVxuXG4gIC8vIFdlIGhhdmUgdHdvIG5hbWVkIHR5cGVzLCByZWN1cnNpb24gbWlnaHQgaGFwcGVuIHNvIHByb3RlY3QgYWdhaW5zdCBpdC5cbiAgdHJ5IHtcbiAgICAvLyBGb3IgbmFtZWQgdHlwZXMsIHdlJ2xsIGFsd2F5cyBkbyBhIG5vbWluYWwgdHlwaW5nIHJlbGF0aW9uc2hpcC5cbiAgICAvLyBUaGF0IGlzLCBpZiBpbiB0aGUgdXBkYXRlZCB0eXBlc3lzdGVtIHNvbWVvbmUgd2VyZSB0byB1c2UgdGhlIHR5cGUgbmFtZVxuICAgIC8vIGZyb20gdGhlIG9sZCBhc3NlbWJseSwgZG8gdGhleSBoYXZlIGEgdHlwaW5nIHJlbGF0aW9uc2hpcCB0aGF0J3MgYWNjZXB0ZWRcbiAgICAvLyBieSBhIG5vbWluYWwgdHlwZSBzeXN0ZW0uIChUaGF0IGNoZWNrIGFsc28gcnVsZXMgb3V0IGVudW1zKVxuICAgIGNvbnN0IG5vbWluYWxDaGVjayA9IGlzTm9taW5hbFN1cGVyVHlwZShhLCBiLCB1cGRhdGVkU3lzdGVtKTtcbiAgICBpZiAobm9taW5hbENoZWNrLnN1Y2Nlc3MgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gbm9taW5hbENoZWNrO1xuICAgIH1cblxuICAgIC8vIEF0IHRoaXMgcG9pbnQsIHRoZSBvbmx5IHRoaW5nIGxlZnQgdG8gZG8gaXMgcmVjdXJzZSBpbnRvIHRoZSBzdHJ1Y3RzLlxuICAgIC8vIFdlIHVzZWQgdG8gZG8gdGhhdCBoZXJlLCBidXQgd2UgZG9uJ3QgYW55bW9yZTsgc3RydWN0cyBjaGVjayB0aGVtc2VsdmVzXG4gICAgLy8gZm9yIHN0cnVjdHVyYWwgd2Vha2VuaW5nL3N0cmVuZ3RoZW5pbmcuXG4gICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSB9O1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhaWx1cmUoZS5tZXNzYWdlKTtcbiAgfVxufVxuXG4vKipcbiAqIEZpbmQgdHlwZXMgQSBhbmQgQiBpbiB0aGUgdXBkYXRlZCB0eXBlIHN5c3RlbSwgYW5kIGNoZWNrIHdoZXRoZXIgdGhleSBoYXZlIGEgc3VwZXJ0eXBlIHJlbGF0aW9uc2hpcCBpbiB0aGUgdHlwZSBzeXN0ZW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTm9taW5hbFN1cGVyVHlwZShcbiAgYTogcmVmbGVjdC5UeXBlUmVmZXJlbmNlLFxuICBiOiByZWZsZWN0LlR5cGVSZWZlcmVuY2UsXG4gIHVwZGF0ZWRTeXN0ZW06IHJlZmxlY3QuVHlwZVN5c3RlbSxcbik6IEFuYWx5c2lzIHtcbiAgaWYgKGEuZnFuID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEkgd2FzIGV4cGVjdGluZyBhIG5hbWVkIHR5cGUsIGdvdCAnJHthLnRvU3RyaW5nKCl9J2ApO1xuICB9XG5cbiAgLy8gTmFtZWQgdHlwZSB2cyBhIG5vbi1uYW1lZCB0eXBlXG4gIGlmIChiLmZxbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhaWx1cmUoYCR7Yi50b1N0cmluZygpfSBpcyBub3QgYXNzaWduYWJsZSB0byAke2EudG9TdHJpbmcoKX1gKTtcbiAgfVxuXG4gIC8vIFNob3J0LWNpcmN1aXQgb2YgdGhlIHR5cGVzIGFyZSB0aGUgc2FtZSBuYW1lLCBzYXZlcyB1cyBzb21lIGxvb2t1cFxuICBpZiAoYS5mcW4gPT09IGIuZnFuKSB7XG4gICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSB9O1xuICB9XG5cbiAgLy8gV2Ugbm93IG5lZWQgdG8gZG8gc3VidHlwZSBhbmFseXNpcyBvbiB0aGVcbiAgLy8gRmluZCBBIGluIEIncyB0eXBlc3lzdGVtLCBhbmQgc2VlIGlmIEIgaXMgYSBzdWJ0eXBlIG9mIEEnXG4gIGNvbnN0IEIgPSB1cGRhdGVkU3lzdGVtLnRyeUZpbmRGcW4oYi5mcW4pO1xuICBjb25zdCBBID0gdXBkYXRlZFN5c3RlbS50cnlGaW5kRnFuKGEuZnFuKTtcblxuICBpZiAoIUIpIHtcbiAgICByZXR1cm4gZmFpbHVyZShgY291bGQgbm90IGZpbmQgdHlwZSAke2IudG9TdHJpbmcoKX1gKTtcbiAgfVxuICBpZiAoIUEpIHtcbiAgICByZXR1cm4gZmFpbHVyZShgY291bGQgbm90IGZpbmQgdHlwZSAke2EudG9TdHJpbmcoKX1gKTtcbiAgfVxuXG4gIC8vIElmIHRoZXkncmUgZW51bXMsIHRoZXkgc2hvdWxkIGhhdmUgYmVlbiBleGFjdGx5IHRoZSBzYW1lICh0ZXN0ZWQgYWJvdmUpXG4gIC8vIGVudW1zIGFyZSBuZXZlciBzdWJ0eXBlcyBvZiBhbnkgb3RoZXIgdHlwZS5cbiAgaWYgKEEuaXNFbnVtVHlwZSgpKSB7XG4gICAgcmV0dXJuIGZhaWx1cmUoYCR7YS50b1N0cmluZygpfSBpcyBhbiBlbnVtIGRpZmZlcmVudCBmcm9tICR7Yi50b1N0cmluZygpfWApO1xuICB9XG4gIGlmIChCLmlzRW51bVR5cGUoKSkge1xuICAgIHJldHVybiBmYWlsdXJlKGAke2IudG9TdHJpbmcoKX0gaXMgYW4gZW51bSBkaWZmZXJlbnQgZnJvbSAke2EudG9TdHJpbmcoKX1gKTtcbiAgfVxuXG4gIGlmIChCLmV4dGVuZHMoQSkpIHtcbiAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlIH07XG4gIH1cbiAgcmV0dXJuIGZhaWx1cmUoYCR7Yi50b1N0cmluZygpfSBkb2VzIG5vdCBleHRlbmQgJHthLnRvU3RyaW5nKCl9YCk7XG59XG5cbi8qKlxuICogSXMgc3RydWN0IEEgYSBzdHJ1Y3R1cmFsIHN1cGVydHlwZSBvZiBzdHJ1Y3QgQj9cbiAqXG4gKiBUcnlpbmcgdG8gYW5zd2VyIHRoZSBxdWVzdGlvbiwgaXMgdGhpcyBhc3NpZ25tZW50IGxlZ2FsIGZvciBhbGwgdmFsdWVzXG4gKiBvZiBgZXhwciBpbiBCYC5cbiAqXG4gKiBgYGB0c1xuICogY29uc3QgdmFyOiBBID0gZXhwciBhcyBCO1xuICogYGBgXG4gKlxuICogQSBpcyBhIHN0cnVjdHVyYWwgc3VwZXJ0eXBlIG9mIEIgaWYgYWxsIHJlcXVpcmVkIG1lbWJlcnMgb2YgQSBhcmUgYWxzb1xuICogcmVxdWlyZWQgaW4gQiwgYW5kIG9mIGEgY29tcGF0aWJsZSB0eXBlLlxuICpcbiAqIE51bGxhYmxlIG1lbWJlcnMgb2YgQSBtdXN0IGVpdGhlciBub3QgZXhpc3QgaW4gQiwgb3IgYmUgb2YgYSBjb21wYXRpYmxlXG4gKiB0eXBlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJ1Y3R1cmFsU3VwZXJUeXBlKFxuICBhOiByZWZsZWN0LkludGVyZmFjZVR5cGUsXG4gIGI6IHJlZmxlY3QuSW50ZXJmYWNlVHlwZSxcbiAgdXBkYXRlZFN5c3RlbTogcmVmbGVjdC5UeXBlU3lzdGVtLFxuKTogQW5hbHlzaXMge1xuICAvLyBXZSBrbm93IGFsbCBtZW1iZXJzIGNhbiBvbmx5IGJlIHByb3BlcnRpZXMsIHNvIHRoYXQgbWFrZXMgaXQgZWFzaWVyLlxuICBjb25zdCBiUHJvcHMgPSBiLmdldFByb3BlcnRpZXModHJ1ZSk7XG5cbiAgLy8gVXNlIHRpbWluZyB3b3JkcyBpbiBlcnJvciBtZXNzYWdlIHRvIG1ha2UgaXQgbW9yZSB1bmRlcnN0YW5kYWJsZVxuICBjb25zdCBmb3JtZXJseSA9IGIuc3lzdGVtID09PSB1cGRhdGVkU3lzdGVtID8gJ2Zvcm1lcmx5JyA6ICduZXdseSc7XG4gIGNvbnN0IGlzID0gYi5zeXN0ZW0gPT09IHVwZGF0ZWRTeXN0ZW0gPyAnaXMnIDogJ3VzZWQgdG8gYmUnO1xuICBjb25zdCByZW1vdmVkID0gYi5zeXN0ZW0gPT09IHVwZGF0ZWRTeXN0ZW0gPyAncmVtb3ZlZCcgOiAnYWRkZWQnO1xuXG4gIGZvciAoY29uc3QgW25hbWUsIGFQcm9wXSBvZiBPYmplY3QuZW50cmllcyhhLmdldFByb3BlcnRpZXModHJ1ZSkpKSB7XG4gICAgY29uc3QgYlByb3AgPSBiUHJvcHNbbmFtZV07XG5cbiAgICBpZiAoYVByb3Aub3B0aW9uYWwpIHtcbiAgICAgIC8vIE9wdGlvbmFsIGZpZWxkLCBvbmx5IHJlcXVpcmVtZW50IGlzIHRoYXQgSUYgaXQgZXhpc3RzLCB0aGUgdHlwZSBtdXN0IG1hdGNoLlxuICAgICAgaWYgKCFiUHJvcCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFiUHJvcCkge1xuICAgICAgICByZXR1cm4gZmFpbHVyZShgJHtmb3JtZXJseX0gcmVxdWlyZWQgcHJvcGVydHkgJyR7bmFtZX0nICR7cmVtb3ZlZH1gKTtcbiAgICAgIH1cbiAgICAgIGlmIChiUHJvcC5vcHRpb25hbCkge1xuICAgICAgICByZXR1cm4gZmFpbHVyZShcbiAgICAgICAgICBgJHtmb3JtZXJseX0gcmVxdWlyZWQgcHJvcGVydHkgJyR7bmFtZX0nICR7aXN9IG9wdGlvbmFsYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBhbmEgPSBpc1N1cGVyVHlwZShhUHJvcC50eXBlLCBiUHJvcC50eXBlLCB1cGRhdGVkU3lzdGVtKTtcbiAgICBpZiAoIWFuYS5zdWNjZXNzKSB7XG4gICAgICByZXR1cm4gZmFpbHVyZShgcHJvcGVydHkgJHtuYW1lfWAsIC4uLmFuYS5yZWFzb25zKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBzdWNjZXNzOiB0cnVlIH07XG59XG5cbi8vIE9oIHRhZ2dlZCB1bmlvbiB0eXBlcyBJIGxvdmUgeW91IHNvIG11Y2ghXG5leHBvcnQgdHlwZSBBbmFseXNpcyA9IHsgc3VjY2VzczogdHJ1ZSB9IHwgRmFpbGVkQW5hbHlzaXM7XG5cbmV4cG9ydCB0eXBlIEZhaWxlZEFuYWx5c2lzID0geyBzdWNjZXNzOiBmYWxzZTsgcmVhc29uczogc3RyaW5nW10gfTtcblxuZnVuY3Rpb24gZmFpbHVyZSguLi5yZWFzb25zOiBzdHJpbmdbXSk6IEZhaWxlZEFuYWx5c2lzIHtcbiAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIHJlYXNvbnMgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXBlbmRSZWFzb24oYW5hbHlzaXM6IEFuYWx5c2lzLCBtZXNzYWdlOiBzdHJpbmcpOiBBbmFseXNpcyB7XG4gIGlmIChhbmFseXNpcy5zdWNjZXNzKSB7XG4gICAgcmV0dXJuIGFuYWx5c2lzO1xuICB9XG4gIHJldHVybiBmYWlsdXJlKG1lc3NhZ2UsIC4uLmFuYWx5c2lzLnJlYXNvbnMpO1xufVxuIl19
|
|
172
|
+
//# sourceMappingURL=type-analysis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-analysis.js","sourceRoot":"","sources":["type-analysis.ts"],"names":[],"mappings":"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"}
|
package/lib/type-comparison.js
CHANGED
|
@@ -40,7 +40,7 @@ class AssemblyComparison {
|
|
|
40
40
|
this.mismatches.report({
|
|
41
41
|
ruleKey: 'iface-type',
|
|
42
42
|
violator: origIface,
|
|
43
|
-
message: `used to be a ${types_1.describeInterfaceType(origIface.datatype)}, is now a ${types_1.describeInterfaceType(updatedIface.datatype)}.`,
|
|
43
|
+
message: `used to be a ${(0, types_1.describeInterfaceType)(origIface.datatype)}, is now a ${(0, types_1.describeInterfaceType)(updatedIface.datatype)}.`,
|
|
44
44
|
});
|
|
45
45
|
continue;
|
|
46
46
|
}
|
|
@@ -94,11 +94,11 @@ class AssemblyComparison {
|
|
|
94
94
|
});
|
|
95
95
|
continue;
|
|
96
96
|
}
|
|
97
|
-
if (types_1.describeType(origType) !== types_1.describeType(updatedType)) {
|
|
97
|
+
if ((0, types_1.describeType)(origType) !== (0, types_1.describeType)(updatedType)) {
|
|
98
98
|
this.mismatches.report({
|
|
99
99
|
ruleKey: 'struct-change',
|
|
100
100
|
violator: origType,
|
|
101
|
-
message: `has been turned into a ${types_1.describeType(updatedType)}`,
|
|
101
|
+
message: `has been turned into a ${(0, types_1.describeType)(updatedType)}`,
|
|
102
102
|
});
|
|
103
103
|
continue;
|
|
104
104
|
}
|
|
@@ -207,11 +207,11 @@ class ComparableReferenceType extends ComparableType {
|
|
|
207
207
|
* Compare members of the reference types
|
|
208
208
|
*/
|
|
209
209
|
compare() {
|
|
210
|
-
stability_1.validateStabilities(this.oldType, this.newType, this.mismatches);
|
|
211
|
-
validations_1.validateBaseTypeAssignability(this.oldType, this.newType, this.mismatches);
|
|
212
|
-
validations_1.validateSubclassableNotRemoved(this.oldType, this.newType, this.mismatches);
|
|
210
|
+
(0, stability_1.validateStabilities)(this.oldType, this.newType, this.mismatches);
|
|
211
|
+
(0, validations_1.validateBaseTypeAssignability)(this.oldType, this.newType, this.mismatches);
|
|
212
|
+
(0, validations_1.validateSubclassableNotRemoved)(this.oldType, this.newType, this.mismatches);
|
|
213
213
|
if (this.subclassableType) {
|
|
214
|
-
validations_1.validateNoNewAbstractMembers(this.oldType, this.newType, this.mismatches);
|
|
214
|
+
(0, validations_1.validateNoNewAbstractMembers)(this.oldType, this.newType, this.mismatches);
|
|
215
215
|
}
|
|
216
216
|
this.validateMethods();
|
|
217
217
|
this.validateProperties();
|
|
@@ -231,7 +231,7 @@ class ComparableReferenceType extends ComparableType {
|
|
|
231
231
|
* Validate type signatures on all methods
|
|
232
232
|
*/
|
|
233
233
|
validateMethods() {
|
|
234
|
-
for (const [orig, updated] of validations_1.memberPairs(this.oldType, this.oldType.allMethods, this.newType, this.mismatches)) {
|
|
234
|
+
for (const [orig, updated] of (0, validations_1.memberPairs)(this.oldType, this.oldType.allMethods, this.newType, this.mismatches)) {
|
|
235
235
|
if (reflect.isMethod(updated)) {
|
|
236
236
|
this.validateMethod(orig, updated);
|
|
237
237
|
}
|
|
@@ -241,13 +241,13 @@ class ComparableReferenceType extends ComparableType {
|
|
|
241
241
|
* Validate type signature changes on the given method
|
|
242
242
|
*/
|
|
243
243
|
validateMethod(original, updated) {
|
|
244
|
-
validations_1.validateStaticSame(original, updated, this.mismatches);
|
|
245
|
-
validations_1.validateAsyncSame(original, updated, this.mismatches);
|
|
244
|
+
(0, validations_1.validateStaticSame)(original, updated, this.mismatches);
|
|
245
|
+
(0, validations_1.validateAsyncSame)(original, updated, this.mismatches);
|
|
246
246
|
if (this.subclassableType) {
|
|
247
|
-
validations_1.validateReturnTypeSame(original, updated, this.mismatches.withMotivation('type is @subclassable'));
|
|
247
|
+
(0, validations_1.validateReturnTypeSame)(original, updated, this.mismatches.withMotivation('type is @subclassable'));
|
|
248
248
|
}
|
|
249
249
|
else {
|
|
250
|
-
validations_1.validateReturnTypeNotWeakened(original, updated, this.mismatches);
|
|
250
|
+
(0, validations_1.validateReturnTypeNotWeakened)(original, updated, this.mismatches);
|
|
251
251
|
}
|
|
252
252
|
this.validateCallable(original, updated);
|
|
253
253
|
}
|
|
@@ -255,24 +255,24 @@ class ComparableReferenceType extends ComparableType {
|
|
|
255
255
|
* Validate type signature changes on the given callable (method or initializer)
|
|
256
256
|
*/
|
|
257
257
|
validateCallable(original, updated) {
|
|
258
|
-
stability_1.validateStabilities(original, updated, this.mismatches);
|
|
259
|
-
validations_1.validateNotMadeNonVariadic(original, updated, this.mismatches);
|
|
258
|
+
(0, stability_1.validateStabilities)(original, updated, this.mismatches);
|
|
259
|
+
(0, validations_1.validateNotMadeNonVariadic)(original, updated, this.mismatches);
|
|
260
260
|
// Check that every original parameter can still be mapped to a parameter in the updated method
|
|
261
|
-
validations_1.validateExistingParams(original, updated, this.mismatches, (oldParam, newParam) => {
|
|
261
|
+
(0, validations_1.validateExistingParams)(original, updated, this.mismatches, (oldParam, newParam) => {
|
|
262
262
|
if (this.subclassableType) {
|
|
263
|
-
validations_1.validateParameterTypeSame(original, oldParam, newParam, this.mismatches.withMotivation('type is @subclassable'));
|
|
263
|
+
(0, validations_1.validateParameterTypeSame)(original, oldParam, newParam, this.mismatches.withMotivation('type is @subclassable'));
|
|
264
264
|
}
|
|
265
265
|
else {
|
|
266
|
-
validations_1.validateParameterTypeWeakened(original, oldParam, newParam, this.mismatches);
|
|
266
|
+
(0, validations_1.validateParameterTypeWeakened)(original, oldParam, newParam, this.mismatches);
|
|
267
267
|
}
|
|
268
268
|
});
|
|
269
|
-
validations_1.validateNoNewRequiredParams(original, updated, this.mismatches);
|
|
269
|
+
(0, validations_1.validateNoNewRequiredParams)(original, updated, this.mismatches);
|
|
270
270
|
}
|
|
271
271
|
/**
|
|
272
272
|
* Validate type signature changes on all properties
|
|
273
273
|
*/
|
|
274
274
|
validateProperties() {
|
|
275
|
-
for (const [orig, updated] of validations_1.memberPairs(this.oldType, this.oldType.allProperties, this.newType, this.mismatches)) {
|
|
275
|
+
for (const [orig, updated] of (0, validations_1.memberPairs)(this.oldType, this.oldType.allProperties, this.newType, this.mismatches)) {
|
|
276
276
|
if (reflect.isProperty(updated)) {
|
|
277
277
|
this.validateProperty(orig, updated);
|
|
278
278
|
}
|
|
@@ -282,28 +282,28 @@ class ComparableReferenceType extends ComparableType {
|
|
|
282
282
|
* Validate type signature changes on the given property
|
|
283
283
|
*/
|
|
284
284
|
validateProperty(original, updated) {
|
|
285
|
-
stability_1.validateStabilities(original, updated, this.mismatches);
|
|
286
|
-
validations_1.validateStaticSame(original, updated, this.mismatches);
|
|
287
|
-
validations_1.validateNotMadeImmutable(original, updated, this.mismatches);
|
|
285
|
+
(0, stability_1.validateStabilities)(original, updated, this.mismatches);
|
|
286
|
+
(0, validations_1.validateStaticSame)(original, updated, this.mismatches);
|
|
287
|
+
(0, validations_1.validateNotMadeImmutable)(original, updated, this.mismatches);
|
|
288
288
|
if (this.subclassableType) {
|
|
289
289
|
// Hello C# my old friend
|
|
290
|
-
validations_1.validatePropertyTypeSame(original, updated, this.mismatches.withMotivation('type is @subclassable'));
|
|
290
|
+
(0, validations_1.validatePropertyTypeSame)(original, updated, this.mismatches.withMotivation('type is @subclassable'));
|
|
291
291
|
}
|
|
292
292
|
else if (!original.immutable) {
|
|
293
293
|
// If the type can be read, it can't be weakened (can't change Dog to Animal, consumers might be counting on a Dog).
|
|
294
294
|
// If the type can be written, it can't be strengthened (can't change Animal to Dog, consumers might be sending a Cat).
|
|
295
295
|
// => it must remain the same
|
|
296
|
-
validations_1.validatePropertyTypeSame(original, updated, this.mismatches.withMotivation('mutable property cannot change type'));
|
|
296
|
+
(0, validations_1.validatePropertyTypeSame)(original, updated, this.mismatches.withMotivation('mutable property cannot change type'));
|
|
297
297
|
}
|
|
298
298
|
else {
|
|
299
|
-
validations_1.validatePropertyTypeNotWeakened(original, updated, this.mismatches);
|
|
299
|
+
(0, validations_1.validatePropertyTypeNotWeakened)(original, updated, this.mismatches);
|
|
300
300
|
}
|
|
301
301
|
}
|
|
302
302
|
/**
|
|
303
303
|
* Whether the current reference type has been marked as subclassable
|
|
304
304
|
*/
|
|
305
305
|
get subclassableType() {
|
|
306
|
-
return validations_1.subclassableType(this.oldType);
|
|
306
|
+
return (0, validations_1.subclassableType)(this.oldType);
|
|
307
307
|
}
|
|
308
308
|
}
|
|
309
309
|
exports.ComparableReferenceType = ComparableReferenceType;
|
|
@@ -313,10 +313,10 @@ class ComparableClassType extends ComparableReferenceType {
|
|
|
313
313
|
*/
|
|
314
314
|
compare() {
|
|
315
315
|
super.compare();
|
|
316
|
-
validations_1.validateNotMadeAbstract(this.oldType, this.newType, this.mismatches);
|
|
316
|
+
(0, validations_1.validateNotMadeAbstract)(this.oldType, this.newType, this.mismatches);
|
|
317
317
|
// JSII assembler has already taken care of inheritance here
|
|
318
318
|
if (this.oldType.initializer && this.newType.initializer) {
|
|
319
|
-
validations_1.validateMethodCompatible(this.oldType.initializer, this.newType.initializer, this.mismatches);
|
|
319
|
+
(0, validations_1.validateMethodCompatible)(this.oldType.initializer, this.newType.initializer, this.mismatches);
|
|
320
320
|
}
|
|
321
321
|
}
|
|
322
322
|
/**
|
|
@@ -346,8 +346,8 @@ exports.ComparableInterfaceType = ComparableInterfaceType;
|
|
|
346
346
|
*/
|
|
347
347
|
class ComparableStructType extends ComparableType {
|
|
348
348
|
compare() {
|
|
349
|
-
stability_1.validateStabilities(this.oldType, this.newType, this.mismatches);
|
|
350
|
-
validations_1.validateBaseTypeAssignability(this.oldType, this.newType, this.mismatches);
|
|
349
|
+
(0, stability_1.validateStabilities)(this.oldType, this.newType, this.mismatches);
|
|
350
|
+
(0, validations_1.validateBaseTypeAssignability)(this.oldType, this.newType, this.mismatches);
|
|
351
351
|
this.validateNoPropertiesRemoved();
|
|
352
352
|
if (this.inputType) {
|
|
353
353
|
// If the struct is written, it can't be strengthened (ex: can't change an optional property to required)
|
|
@@ -376,7 +376,7 @@ class ComparableStructType extends ComparableType {
|
|
|
376
376
|
*/
|
|
377
377
|
validateNoPropertiesRemoved() {
|
|
378
378
|
// A single run of memberPairs() with nothing else will do this check.
|
|
379
|
-
Array.from(validations_1.memberPairs(this.oldType, this.oldType.allProperties, this.newType, this.mismatches));
|
|
379
|
+
Array.from((0, validations_1.memberPairs)(this.oldType, this.oldType.allProperties, this.newType, this.mismatches));
|
|
380
380
|
}
|
|
381
381
|
/**
|
|
382
382
|
* Check that the current type is not weakened
|
|
@@ -406,7 +406,7 @@ class ComparableStructType extends ComparableType {
|
|
|
406
406
|
}
|
|
407
407
|
isStructuralSuperType(a, b) {
|
|
408
408
|
try {
|
|
409
|
-
return type_analysis_1.isStructuralSuperType(a, b, this.newType.system);
|
|
409
|
+
return (0, type_analysis_1.isStructuralSuperType)(a, b, this.newType.system);
|
|
410
410
|
}
|
|
411
411
|
catch (e) {
|
|
412
412
|
// We might get an exception if the type is supposed to come from a different
|
|
@@ -424,9 +424,9 @@ class ComparableEnumType extends ComparableType {
|
|
|
424
424
|
* Perform comparisons on enum members
|
|
425
425
|
*/
|
|
426
426
|
compare() {
|
|
427
|
-
stability_1.validateStabilities(this.oldType, this.newType, this.mismatches);
|
|
428
|
-
validations_1.validateExistingMembers(this.oldType, this.newType, this.mismatches, (oldMember, newMember) => {
|
|
429
|
-
stability_1.validateStabilities(oldMember, newMember, this.mismatches);
|
|
427
|
+
(0, stability_1.validateStabilities)(this.oldType, this.newType, this.mismatches);
|
|
428
|
+
(0, validations_1.validateExistingMembers)(this.oldType, this.newType, this.mismatches, (oldMember, newMember) => {
|
|
429
|
+
(0, stability_1.validateStabilities)(oldMember, newMember, this.mismatches);
|
|
430
430
|
});
|
|
431
431
|
}
|
|
432
432
|
}
|
|
@@ -438,15 +438,14 @@ exports.ComparableEnumType = ComparableEnumType;
|
|
|
438
438
|
* - Return type is treated as OUT type
|
|
439
439
|
*/
|
|
440
440
|
function determineTypeRolesFromMethod(comparison, method) {
|
|
441
|
-
var _a;
|
|
442
441
|
if (reflect.isMethod(method)) {
|
|
443
442
|
for (const t of comparison.typesIn(method.returns.type)) {
|
|
444
|
-
t.markAsOutputType(`returned from ${types_1.apiElementIdentifier(method)}`);
|
|
443
|
+
t.markAsOutputType(`returned from ${(0, types_1.apiElementIdentifier)(method)}`);
|
|
445
444
|
}
|
|
446
445
|
}
|
|
447
|
-
for (const param of
|
|
446
|
+
for (const param of method.parameters ?? []) {
|
|
448
447
|
for (const t of comparison.typesIn(param.type)) {
|
|
449
|
-
t.markAsInputType(`input to ${types_1.apiElementIdentifier(method)}`);
|
|
448
|
+
t.markAsInputType(`input to ${(0, types_1.apiElementIdentifier)(method)}`);
|
|
450
449
|
}
|
|
451
450
|
}
|
|
452
451
|
}
|
|
@@ -463,11 +462,11 @@ function determineTypeRolesFromMethod(comparison, method) {
|
|
|
463
462
|
*/
|
|
464
463
|
function determineTypeRolesFromProperty(comparison, property) {
|
|
465
464
|
for (const t of comparison.typesIn(property.type)) {
|
|
466
|
-
t.markAsOutputType(`type of ${types_1.apiElementIdentifier(property)}`);
|
|
465
|
+
t.markAsOutputType(`type of ${(0, types_1.apiElementIdentifier)(property)}`);
|
|
467
466
|
}
|
|
468
467
|
if (!property.immutable) {
|
|
469
468
|
for (const t of comparison.typesIn(property.type)) {
|
|
470
|
-
t.markAsInputType(`type of mutable ${types_1.apiElementIdentifier(property)}`);
|
|
469
|
+
t.markAsInputType(`type of mutable ${(0, types_1.apiElementIdentifier)(property)}`);
|
|
471
470
|
}
|
|
472
471
|
}
|
|
473
472
|
}
|
|
@@ -505,4 +504,4 @@ function describeReasons(reasons) {
|
|
|
505
504
|
}
|
|
506
505
|
return `${reasons[0]} (...and ${reasons.length - 1} more...)`;
|
|
507
506
|
}
|
|
508
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1jb21wYXJpc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidHlwZS1jb21wYXJpc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUF1QztBQUN2Qyx3Q0FBd0M7QUFDeEMsaUNBQWlDO0FBRWpDLDJDQUFrRDtBQUNsRCxtREFBa0U7QUFDbEUsbUNBT2lCO0FBQ2pCLGlDQUEwQztBQUMxQywrQ0FxQnVCO0FBRXZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFMUM7Ozs7R0FJRztBQUNILE1BQWEsa0JBQWtCO0lBSTdCLFlBQW1DLE9BQTBCO1FBQTFCLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBRjVDLFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBK0IsQ0FBQztRQUc5RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksa0JBQVUsQ0FBQztZQUMvQixnQkFBZ0IsRUFBRSxPQUFPLENBQUMsbUJBQW1CO2dCQUMzQyxDQUFDLENBQUMsZ0JBQVMsQ0FBQyxZQUFZO2dCQUN4QixDQUFDLENBQUMsZ0JBQVMsQ0FBQyxNQUFNO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksSUFBSSxDQUFDLFFBQTBCLEVBQUUsT0FBeUI7UUFDL0Qsc0NBQXNDO1FBQ3RDLEtBQUssTUFBTSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDakYsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLG1CQUFtQixDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztTQUN2RjtRQUVELEtBQUssTUFBTSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFD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QUFXLEVBQUU7WUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMzQjthQUFNLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwQzthQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNuQixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNwQjtJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsT0FBaUI7SUFDeEMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN4QixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN4QixPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNuQjtJQUNELE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLFlBQVksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLFdBQVcsQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhYmlsaXR5IH0gZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgKiBhcyBsb2c0anMgZnJvbSAnbG9nNGpzJztcblxuaW1wb3J0IHsgdmFsaWRhdGVTdGFiaWxpdGllcyB9IGZyb20gJy4vc3RhYmlsaXR5JztcbmltcG9ydCB7IGlzU3RydWN0dXJhbFN1cGVyVHlwZSwgQW5hbHlzaXMgfSBmcm9tICcuL3R5cGUtYW5hbHlzaXMnO1xuaW1wb3J0IHtcbiAgZGVzY3JpYmVJbnRlcmZhY2VUeXBlLFxuICBkZXNjcmliZVR5cGUsXG4gIENvbXBhcmlzb25PcHRpb25zLFxuICBNaXNtYXRjaGVzLFxuICBhcGlFbGVtZW50SWRlbnRpZmllcixcbiAgSVJlcG9ydCxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBSZWN1cnNpb25CcmVha2VyIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7XG4gIHZhbGlkYXRlQmFzZVR5cGVBc3NpZ25hYmlsaXR5LFxuICB2YWxpZGF0ZU5vdE1hZGVBYnN0cmFjdCxcbiAgdmFsaWRhdGVTdWJjbGFzc2FibGVOb3RSZW1vdmVkLFxuICB2YWxpZGF0ZU5vTmV3QWJzdHJhY3RNZW1iZXJzLFxuICBzdWJjbGFzc2FibGVUeXBlLFxuICB2YWxpZGF0ZU1ldGhvZENvbXBhdGlibGUsXG4gIG1lbWJlclBhaXJzLFxuICB2YWxpZGF0ZVN0YXRpY1NhbWUsXG4gIHZhbGlkYXRlQXN5bmNTYW1lLFxuICB2YWxpZGF0ZVJldHVyblR5cGVOb3RXZWFrZW5lZCxcbiAgdmFsaWRhdGVOb3RNYWRlTm9uVmFyaWFkaWMsXG4gIHZhbGlkYXRlUmV0dXJuVHlwZVNhbWUsXG4gIHZhbGlkYXRlRXhpc3RpbmdQYXJhbXMsXG4gIHZhbGlkYXRlTm9OZXdSZXF1aXJlZFBhcmFtcyxcbiAgdmFsaWRhdGVQYXJhbWV0ZXJUeXBlV2Vha2VuZWQsXG4gIHZhbGlkYXRlUGFyYW1ldGVyVHlwZVNhbWUsXG4gIHZhbGlkYXRlTm90TWFkZUltbXV0YWJsZSxcbiAgdmFsaWRhdGVQcm9wZXJ0eVR5cGVOb3RXZWFrZW5lZCxcbiAgdmFsaWRhdGVQcm9wZXJ0eVR5cGVTYW1lLFxuICB2YWxpZGF0ZUV4aXN0aW5nTWVtYmVycyxcbn0gZnJvbSAnLi92YWxpZGF0aW9ucyc7XG5cbmNvbnN0IExPRyA9IGxvZzRqcy5nZXRMb2dnZXIoJ2pzaWktZGlmZicpO1xuXG4vKipcbiAqIFJvb3Qgb2JqZWN0IGZvciBjb21wYXJpbmcgdHdvIGFzc2VtYmxpZXNcbiAqXG4gKiBUcmFja3MgbWlzbWF0Y2hlcyBhbmQgdXNlZCBhcyBhIGxvb2t1cCB0YWJsZSB0byBjb252ZXJ0IEZRTnMgLT4gQ29tcGFyYWJsZVR5cGUgb2JqZWN0c1xuICovXG5leHBvcnQgY2xhc3MgQXNzZW1ibHlDb21wYXJpc29uIHtcbiAgcHVibGljIHJlYWRvbmx5IG1pc21hdGNoZXM6IE1pc21hdGNoZXM7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHlwZXMgPSBuZXcgTWFwPHN0cmluZywgQ29tcGFyYWJsZVR5cGU8YW55Pj4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IG9wdGlvbnM6IENvbXBhcmlzb25PcHRpb25zKSB7XG4gICAgdGhpcy5taXNtYXRjaGVzID0gbmV3IE1pc21hdGNoZXMoe1xuICAgICAgZGVmYXVsdFN0YWJpbGl0eTogb3B0aW9ucy5kZWZhdWx0RXhwZXJpbWVudGFsXG4gICAgICAgID8gU3RhYmlsaXR5LkV4cGVyaW1lbnRhbFxuICAgICAgICA6IFN0YWJpbGl0eS5TdGFibGUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgdHlwZXMgZnJvbSB0d28gYXNzZW1ibGllcyB0byBjb21wYXJlXG4gICAqXG4gICAqIEFkZHMgYXBwcm9wcmlhdGUgQ29tcGFyYWJsZVR5cGU8PiBpbnN0YW5jZXMuXG4gICAqL1xuICBwdWJsaWMgbG9hZChvcmlnaW5hbDogcmVmbGVjdC5Bc3NlbWJseSwgdXBkYXRlZDogcmVmbGVjdC5Bc3NlbWJseSkge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIHByZXR0aWVyL3ByZXR0aWVyICovXG4gICAgZm9yIChjb25zdCBbb3JpZ0NsYXNzLCB1cGRhdGVkQ2xhc3NdIG9mIHRoaXMudHlwZVBhaXJzKG9yaWdpbmFsLmNsYXNzZXMsIHVwZGF0ZWQpKSB7XG4gICAgICB0aGlzLnR5cGVzLnNldChvcmlnQ2xhc3MuZnFuLCBuZXcgQ29tcGFyYWJsZUNsYXNzVHlwZSh0aGlzLCBvcmlnQ2xhc3MsIHVwZGF0ZWRDbGFzcykpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW29yaWdJZmFjZSwgdXBkYXRlZElmYWNlXSBvZiB0aGlzLnR5cGVQYWlycyhvcmlnaW5hbC5pbnRlcmZhY2VzLCB1cGRhdGVkKSkge1xuICAgICAgaWYgKG9yaWdJZmFjZS5kYXRhdHlwZSAhPT0gdXBkYXRlZElmYWNlLmRhdGF0eXBlKSB7XG4gICAgICAgIHRoaXMubWlzbWF0Y2hlcy5yZXBvcnQoe1xuICAgICAgICAgIHJ1bGVLZXk6ICdpZmFjZS10eXBlJyxcbiAgICAgICAgICB2aW9sYXRvcjogb3JpZ0lmYWNlLFxuICAgICAgICAgIG1lc3NhZ2U6IGB1c2VkIHRvIGJlIGEgJHtkZXNjcmliZUludGVyZmFjZVR5cGUoXG4gICAgICAgICAgICBvcmlnSWZhY2UuZGF0YXR5cGUsXG4gICAgICAgICAgKX0sIGlzIG5vdyBhICR7ZGVzY3JpYmVJbnRlcmZhY2VUeXBlKHVwZGF0ZWRJZmFjZS5kYXRhdHlwZSl9LmAsXG4gICAgICAgIH0pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy50eXBlcy5zZXQob3JpZ0lmYWNlLmZxbiwgb3JpZ0lmYWNlLmRhdGF0eXBlXG4gICAgICAgID8gbmV3IENvbXBhcmFibGVTdHJ1Y3RUeXBlKHRoaXMsIG9yaWdJZmFjZSwgdXBkYXRlZElmYWNlKVxuICAgICAgICA6IG5ldyBDb21wYXJhYmxlSW50ZXJmYWNlVHlwZSh0aGlzLCBvcmlnSWZhY2UsIHVwZGF0ZWRJZmFjZSkpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW29yaWdFbnVtLCB1cGRhdGVkRW51bV0gb2YgdGhpcy50eXBlUGFpcnMob3JpZ2luYWwuZW51bXMsIHVwZGF0ZWQpKSB7XG4gICAgICB0aGlzLnR5cGVzLnNldChvcmlnRW51bS5mcW4sIG5ldyBDb21wYXJhYmxlRW51bVR5cGUodGhpcywgb3JpZ0VudW0sIHVwZGF0ZWRFbnVtKSk7XG4gICAgfVxuICAgIC8qIGVzbGludC1lbmFibGUgcHJldHRpZXIvcHJldHRpZXIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtIHRoZSBjb21wYXJpc29uIGZvciBhbGwgbG9hZGVkIHR5cGVzXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZSgpIHtcbiAgICB0aGlzLmNvbXBhcmFibGVUeXBlcy5mb3JFYWNoKCh0KSA9PiB0Lm1hcmtUeXBlUm9sZXMoKSk7XG4gICAgdGhpcy5jb21wYXJhYmxlVHlwZXMuZm9yRWFjaCgodCkgPT4gdC5jb21wYXJlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJhc2VkIG9uIGEgSlNJSSBUeXBlUmVmZXJlbmNlLCByZXR1cm4gYWxsIHJlYWNoYWJsZSBDb21wYXJhYmxlVHlwZTw+IG9iamVjdHMuXG4gICAqL1xuICBwdWJsaWMgdHlwZXNJbihyZWY6IHJlZmxlY3QuVHlwZVJlZmVyZW5jZSk6IEFycmF5PENvbXBhcmFibGVUeXBlPGFueT4+IHtcbiAgICBjb25zdCByZXQgPSBuZXcgQXJyYXk8Q29tcGFyYWJsZVR5cGU8YW55Pj4oKTtcblxuICAgIGZvciAoY29uc3QgZnFuIG9mIGZxbnNGcm9tKHJlZikpIHtcbiAgICAgIGNvbnN0IHQgPSB0aGlzLnR5cGVzLmdldChmcW4pO1xuICAgICAgaWYgKHQpIHtcbiAgICAgICAgcmV0LnB1c2godCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogQWxsIENvbXBhcmFibGVUeXBlPD5zXG4gICAqL1xuICBwcml2YXRlIGdldCBjb21wYXJhYmxlVHlwZXMoKSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy50eXBlcy52YWx1ZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogRmluZCB0aGUgbWF0Y2hpbmcgdHlwZSBpbiB0aGUgdXBkYXRlZCBhc3NlbWJseSBiYXNlZCBvbiBhbGwgdHlwZXMgaW4gdGhlIG9yaWdpbmFsIGFzc2VtYmx5XG4gICAqL1xuICBwcml2YXRlICp0eXBlUGFpcnM8VCBleHRlbmRzIHJlZmxlY3QuVHlwZT4oXG4gICAgeHM6IHJlYWRvbmx5IFRbXSxcbiAgICB1cGRhdGVkQXNzZW1ibHk6IHJlZmxlY3QuQXNzZW1ibHksXG4gICk6IEl0ZXJhYmxlSXRlcmF0b3I8W1QsIFRdPiB7XG4gICAgZm9yIChjb25zdCBvcmlnVHlwZSBvZiB4cykge1xuICAgICAgTE9HLnRyYWNlKG9yaWdUeXBlLmZxbik7XG5cbiAgICAgIGNvbnN0IHVwZGF0ZWRUeXBlID0gdXBkYXRlZEFzc2VtYmx5LnRyeUZpbmRUeXBlKG9yaWdUeXBlLmZxbik7XG4gICAgICBpZiAoIXVwZGF0ZWRUeXBlKSB7XG4gICAgICAgIHRoaXMubWlzbWF0Y2hlcy5yZXBvcnQoe1xuICAgICAgICAgIHJ1bGVLZXk6ICdyZW1vdmVkJyxcbiAgICAgICAgICB2aW9sYXRvcjogb3JpZ1R5cGUsXG4gICAgICAgICAgbWVzc2FnZTogJ2hhcyBiZWVuIHJlbW92ZWQnLFxuICAgICAgICB9KTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChkZXNjcmliZVR5cGUob3JpZ1R5cGUpICE9PSBkZXNjcmliZVR5cGUodXBkYXRlZFR5cGUpKSB7XG4gICAgICAgIHRoaXMubWlzbWF0Y2hlcy5yZXBvcnQoe1xuICAgICAgICAgIHJ1bGVLZXk6ICdzdHJ1Y3QtY2hhbmdlJyxcbiAgICAgICAgICB2aW9sYXRvcjogb3JpZ1R5cGUsXG4gICAgICAgICAgbWVzc2FnZTogYGhhcyBiZWVuIHR1cm5lZCBpbnRvIGEgJHtkZXNjcmliZVR5cGUodXBkYXRlZFR5cGUpfWAsXG4gICAgICAgIH0pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgeWllbGQgW29yaWdUeXBlLCB1cGRhdGVkVHlwZSBhcyBUXTsgLy8gVHJ1c3QgbWUgSSBrbm93IHdoYXQgSSdtIGRvaW5nXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY29tcGFyYWJsZSB0eXBlc1xuICpcbiAqIE1hbmFnZXMgbm90aW9ucyBvZiBjcmF3bGluZyB0eXBlcyBmb3Igb3RoZXIgcmVmZXJlbmNlIHR5cGVzLCBhbmQgd2hldGhlclxuICogdGhleSBvY2N1ciBpbiBhbiBpbnB1dC9vdXRwdXQgcm9sZSwgYW5kIG1hcmtpbmcgYXMgc3VjaCBvbiB0aGUgY29tcGFyaXNvblxuICogb2JqZWN0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29tcGFyYWJsZVR5cGU8VD4ge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSByZWN1cnNpb25CcmVha2VyID0gbmV3IFJlY3Vyc2lvbkJyZWFrZXIoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9pbnB1dFR5cGVSZWFzb25zID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3V0cHV0VHlwZVJlYXNvbnMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXNzZW1ibHlDb21wYXJpc29uOiBBc3NlbWJseUNvbXBhcmlzb24sXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9sZFR5cGU6IFQsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5ld1R5cGU6IFQsXG4gICkge31cblxuICAvKipcbiAgICogRG9lcyB0aGlzIHR5cGUgb2NjdXIgaW4gYW4gaW5wdXQgcm9sZT9cbiAgICovXG4gIHB1YmxpYyBnZXQgaW5wdXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dFR5cGVSZWFzb25zLmxlbmd0aCA+IDA7XG4gIH1cblxuICAvKipcbiAgICogRG9lcyB0aGlzIHR5cGUgb2NjdXIgaW4gYW4gb3V0cHV0IHJvbGU/XG4gICAqL1xuICBwdWJsaWMgZ2V0IG91dHB1dFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX291dHB1dFR5cGVSZWFzb25zLmxlbmd0aCA+IDA7XG4gIH1cblxuICAvKipcbiAgICogTWFyayB0aGlzIHR5cGUgYXMgb2NjdXJyaW5nIGluIGFuIGlucHV0IHJ1bGUuXG4gICAqXG4gICAqIEFsbCB0eXBlcyByZWFjaGFibGUgZnJvbSB0aGlzIHR5cGUgd2lsbCBiZSBtYXJrZWQgYXMgaW5wdXQgdHlwZXMgYXMgd2VsbC5cbiAgICovXG4gIHB1YmxpYyBtYXJrQXNJbnB1dFR5cGUoLi4ucmVhc29uRnJhZ21lbnRzOiBzdHJpbmdbXSkge1xuICAgIENvbXBhcmFibGVUeXBlLnJlY3Vyc2lvbkJyZWFrZXIuZG8odGhpcywgKCkgPT4ge1xuICAgICAgdGhpcy5faW5wdXRUeXBlUmVhc29ucy5wdXNoKHJlYXNvbkZyYWdtZW50cy5qb2luKCcsICcpKTtcbiAgICAgIHRoaXMuZm9yRWFjaFJvbGVTaGFyaW5nVHlwZSgodHlwZSwgcmVhc29uKSA9PiB7XG4gICAgICAgIHR5cGUubWFya0FzSW5wdXRUeXBlKHJlYXNvbiwgLi4ucmVhc29uRnJhZ21lbnRzKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmsgdGhpcyB0eXBlIGFzIG9jY3VycmluZyBpbiBhbiBpbnB1dCBydWxlLlxuICAgKlxuICAgKiBBbGwgdHlwZXMgcmVhY2hhYmxlIGZyb20gdGhpcyB0eXBlIHdpbGwgYmUgbWFya2VkIGFzIGlucHV0IHR5cGVzIGFzIHdlbGwuXG4gICAqL1xuICBwdWJsaWMgbWFya0FzT3V0cHV0VHlwZSguLi5yZWFzb25GcmFnbWVudHM6IHN0cmluZ1tdKSB7XG4gICAgQ29tcGFyYWJsZVR5cGUucmVjdXJzaW9uQnJlYWtlci5kbyh0aGlzLCAoKSA9PiB7XG4gICAgICB0aGlzLl9vdXRwdXRUeXBlUmVhc29ucy5wdXNoKHJlYXNvbkZyYWdtZW50cy5qb2luKCcsICcpKTtcbiAgICAgIHRoaXMuZm9yRWFjaFJvbGVTaGFyaW5nVHlwZSgodHlwZSwgcmVhc29uKSA9PiB7XG4gICAgICAgIHR5cGUubWFya0FzT3V0cHV0VHlwZShyZWFzb24sIC4uLnJlYXNvbkZyYWdtZW50cyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXNjcmliZSB3aHkgdGhpcyB0eXBlIGlzIGFuIGlucHV0IHR5cGUgKGlmIGl0IGlzKVxuICAgKi9cbiAgcHVibGljIGdldCBpbnB1dFR5cGVSZWFzb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGVzY3JpYmVSZWFzb25zKHRoaXMuX2lucHV0VHlwZVJlYXNvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc2NyaWJlIHdoeSB0aGlzIHR5cGUgaXMgYW4gb3V0cHV0IHR5cGUgKGlmIGl0IGlzKVxuICAgKi9cbiAgcHVibGljIGdldCBvdXRwdXRUeXBlUmVhc29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRlc2NyaWJlUmVhc29ucyh0aGlzLl9vdXRwdXRUeXBlUmVhc29ucyk7XG4gIH1cblxuICAvKipcbiAgICogU2hvdWxkIGJlIG92ZXJyaWRlbiBpbiBzdWJjbGFzc2VzIHRvIG1hcmsgcmVhY2hhYmxlIHR5cGVzIGFzIGlucHV0L291dHB1dCB0eXBlc1xuICAgKlxuICAgKiBTaG91bGQgb25seSBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIHRoYXQgY29udGFpbiBjYWxsYWJsZXMuXG4gICAqL1xuICBwdWJsaWMgbWFya1R5cGVSb2xlcygpIHtcbiAgICAvLyBFbXB0eSBvbiBwdXJwb3NlXG4gIH1cblxuICAvKipcbiAgICogU2hvdWxkIGJlIG92ZXJyaWRkZW4gaW4gc3ViY2xhc3NlcyB0byBwZXJmb3JtIHRoZSBjb21wYXJpc29uXG4gICAqXG4gICAqIElucHV0L291dHB1dCBtYXJraW5nIHdpbGwgYWxyZWFkeSBoYXZlIGJlZW4gcGVyZm9ybWVkIGJlZm9yZSB0aGlzIGlzIGNhbGxlZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBjb21wYXJlKCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEFsaWFzIGZvciB0aGUgcm9vdCBvYmplY3QgTWlzbWFjaGVzIG9iamVjdFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBtaXNtYXRjaGVzKCkge1xuICAgIHJldHVybiB0aGlzLmFzc2VtYmx5Q29tcGFyaXNvbi5taXNtYXRjaGVzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3VsZCBiZSBvdmVycmlkZW4gaW4gc3ViY2xhc3NlcyB0byBleGVjdXRlIHRoZSBjYWxsYmFjayBvbiByZWFjaGFibGUgdHlwZXNcbiAgICpcbiAgICogU2hvdWxkIGJlIG92ZXJyaWRlbiBvbmx5IGZvciBwcm9kdWN0IHR5cGVzIChzdHJ1Y3RzKS5cbiAgICovXG4gIHByb3RlY3RlZCBmb3JFYWNoUm9sZVNoYXJpbmdUeXBlKFxuICAgIGNiOiAodDogQ29tcGFyYWJsZVR5cGU8YW55PiwgcmVhc29uOiBzdHJpbmcpID0+IHZvaWQsXG4gICkge1xuICAgIEFycmF5LmlzQXJyYXkoY2IpO1xuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgcmVmZXJlbmNlIHR5cGVzXG4gKlxuICogQ29udGFpbnMgc2hhcmVkIGNvZGUgdGhhdCBhcHBsaWVzIHRvIGJvdGggY2xhc3MgYW5kIGludGVyZmFjZSB0eXBlcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbXBhcmFibGVSZWZlcmVuY2VUeXBlPFxuICBUIGV4dGVuZHMgcmVmbGVjdC5SZWZlcmVuY2VUeXBlLFxuPiBleHRlbmRzIENvbXBhcmFibGVUeXBlPFQ+IHtcbiAgLyoqXG4gICAqIENvbXBhcmUgbWVtYmVycyBvZiB0aGUgcmVmZXJlbmNlIHR5cGVzXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZSgpIHtcbiAgICB2YWxpZGF0ZVN0YWJpbGl0aWVzKHRoaXMub2xkVHlwZSwgdGhpcy5uZXdUeXBlLCB0aGlzLm1pc21hdGNoZXMpO1xuICAgIHZhbGlkYXRlQmFzZVR5cGVBc3NpZ25hYmlsaXR5KHRoaXMub2xkVHlwZSwgdGhpcy5uZXdUeXBlLCB0aGlzLm1pc21hdGNoZXMpO1xuXG4gICAgdmFsaWRhdGVTdWJjbGFzc2FibGVOb3RSZW1vdmVkKHRoaXMub2xkVHlwZSwgdGhpcy5uZXdUeXBlLCB0aGlzLm1pc21hdGNoZXMpO1xuICAgIGlmICh0aGlzLnN1YmNsYXNzYWJsZVR5cGUpIHtcbiAgICAgIHZhbGlkYXRlTm9OZXdBYnN0cmFjdE1lbWJlcnModGhpcy5vbGRUeXBlLCB0aGlzLm5ld1R5cGUsIHRoaXMubWlzbWF0Y2hlcyk7XG4gICAgfVxuXG4gICAgdGhpcy52YWxpZGF0ZU1ldGhvZHMoKTtcbiAgICB0aGlzLnZhbGlkYXRlUHJvcGVydGllcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmsgdHlwZSBhY2Nlc3NlcyAoaW5wdXQvb3V0cHV0KSBvZiBtZXRob2RzIGFuZCBwcm9wZXJ0aWVzXG4gICAqL1xuICBwdWJsaWMgbWFya1R5cGVSb2xlcygpIHtcbiAgICBmb3IgKGNvbnN0IG1ldGhvZCBvZiB0aGlzLm9sZFR5cGUub3duTWV0aG9kcykge1xuICAgICAgZGV0ZXJtaW5lVHlwZVJvbGVzRnJvbU1ldGhvZCh0aGlzLmFzc2VtYmx5Q29tcGFyaXNvbiwgbWV0aG9kKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiB0aGlzLm9sZFR5cGUub3duUHJvcGVydGllcykge1xuICAgICAgZGV0ZXJtaW5lVHlwZVJvbGVzRnJvbVByb3BlcnR5KHRoaXMuYXNzZW1ibHlDb21wYXJpc29uLCBwcm9wZXJ0eSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIHR5cGUgc2lnbmF0dXJlcyBvbiBhbGwgbWV0aG9kc1xuICAgKi9cbiAgcHJvdGVjdGVkIHZhbGlkYXRlTWV0aG9kcygpIHtcbiAgICBmb3IgKGNvbnN0IFtvcmlnLCB1cGRhdGVkXSBvZiBtZW1iZXJQYWlycyhcbiAgICAgIHRoaXMub2xkVHlwZSxcbiAgICAgIHRoaXMub2xkVHlwZS5hbGxNZXRob2RzLFxuICAgICAgdGhpcy5uZXdUeXBlLFxuICAgICAgdGhpcy5taXNtYXRjaGVzLFxuICAgICkpIHtcbiAgICAgIGlmIChyZWZsZWN0LmlzTWV0aG9kKHVwZGF0ZWQpKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVNZXRob2Qob3JpZywgdXBkYXRlZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIHR5cGUgc2lnbmF0dXJlIGNoYW5nZXMgb24gdGhlIGdpdmVuIG1ldGhvZFxuICAgKi9cbiAgcHJvdGVjdGVkIHZhbGlkYXRlTWV0aG9kKG9yaWdpbmFsOiByZWZsZWN0Lk1ldGhvZCwgdXBkYXRlZDogcmVmbGVjdC5NZXRob2QpIHtcbiAgICB2YWxpZGF0ZVN0YXRpY1NhbWUob3JpZ2luYWwsIHVwZGF0ZWQsIHRoaXMubWlzbWF0Y2hlcyk7XG4gICAgdmFsaWRhdGVBc3luY1NhbWUob3JpZ2luYWwsIHVwZGF0ZWQsIHRoaXMubWlzbWF0Y2hlcyk7XG5cbiAgICBpZiAodGhpcy5zdWJjbGFzc2FibGVUeXBlKSB7XG4gICAgICB2YWxpZGF0ZVJldHVyblR5cGVTYW1lKFxuICAgICAgICBvcmlnaW5hbCxcbiAgICAgICAgdXBkYXRlZCxcbiAgICAgICAgdGhpcy5taXNtYXRjaGVzLndpdGhNb3RpdmF0aW9uKCd0eXBlIGlzIEBzdWJjbGFzc2FibGUnKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkYXRlUmV0dXJuVHlwZU5vdFdlYWtlbmVkKG9yaWdpbmFsLCB1cGRhdGVkLCB0aGlzLm1pc21hdGNoZXMpO1xuICAgIH1cblxuICAgIHRoaXMudmFsaWRhdGVDYWxsYWJsZShvcmlnaW5hbCwgdXBkYXRlZCk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdHlwZSBzaWduYXR1cmUgY2hhbmdlcyBvbiB0aGUgZ2l2ZW4gY2FsbGFibGUgKG1ldGhvZCBvciBpbml0aWFsaXplcilcbiAgICovXG4gIHByb3RlY3RlZCB2YWxpZGF0ZUNhbGxhYmxlPFQgZXh0ZW5kcyByZWZsZWN0Lk1ldGhvZCB8IHJlZmxlY3QuSW5pdGlhbGl6ZXI+KFxuICAgIG9yaWdpbmFsOiBULFxuICAgIHVwZGF0ZWQ6IFQsXG4gICkge1xuICAgIHZhbGlkYXRlU3RhYmlsaXRpZXMob3JpZ2luYWwsIHVwZGF0ZWQsIHRoaXMubWlzbWF0Y2hlcyk7XG4gICAgdmFsaWRhdGVOb3RNYWRlTm9uVmFyaWFkaWMob3JpZ2luYWwsIHVwZGF0ZWQsIHRoaXMubWlzbWF0Y2hlcyk7XG5cbiAgICAvLyBDaGVjayB0aGF0IGV2ZXJ5IG9yaWdpbmFsIHBhcmFtZXRlciBjYW4gc3RpbGwgYmUgbWFwcGVkIHRvIGEgcGFyYW1ldGVyIGluIHRoZSB1cGRhdGVkIG1ldGhvZFxuICAgIHZhbGlkYXRlRXhpc3RpbmdQYXJhbXMoXG4gICAgICBvcmlnaW5hbCxcbiAgICAgIHVwZGF0ZWQsXG4gICAgICB0aGlzLm1pc21hdGNoZXMsXG4gICAgICAob2xkUGFyYW0sIG5ld1BhcmFtKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnN1YmNsYXNzYWJsZVR5cGUpIHtcbiAgICAgICAgICB2YWxpZGF0ZVBhcmFtZXRlclR5cGVTYW1lKFxuICAgICAgICAgICAgb3JpZ2luYWwsXG4gICAgICAgICAgICBvbGRQYXJhbSxcbiAgICAgICAgICAgIG5ld1BhcmFtLFxuICAgICAgICAgICAgdGhpcy5taXNtYXRjaGVzLndpdGhNb3RpdmF0aW9uKCd0eXBlIGlzIEBzdWJjbGFzc2FibGUnKSxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbGlkYXRlUGFyYW1ldGVyVHlwZVdlYWtlbmVkKFxuICAgICAgICAgICAgb3JpZ2luYWwsXG4gICAgICAgICAgICBvbGRQYXJhbSxcbiAgICAgICAgICAgIG5ld1BhcmFtLFxuICAgICAgICAgICAgdGhpcy5taXNtYXRjaGVzLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHZhbGlkYXRlTm9OZXdSZXF1aXJlZFBhcmFtcyhvcmlnaW5hbCwgdXBkYXRlZCwgdGhpcy5taXNtYXRjaGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0eXBlIHNpZ25hdHVyZSBjaGFuZ2VzIG9uIGFsbCBwcm9wZXJ0aWVzXG4gICAqL1xuICBwcm90ZWN0ZWQgdmFsaWRhdGVQcm9wZXJ0aWVzKCkge1xuICAgIGZvciAoY29uc3QgW29yaWcsIHVwZGF0ZWRdIG9mIG1lbWJlclBhaXJzKFxuICAgICAgdGhpcy5vbGRUeXBlLFxuICAgICAgdGhpcy5vbGRUeXBlLmFsbFByb3BlcnRpZXMsXG4gICAgICB0aGlzLm5ld1R5cGUsXG4gICAgICB0aGlzLm1pc21hdGNoZXMsXG4gICAgKSkge1xuICAgICAgaWYgKHJlZmxlY3QuaXNQcm9wZXJ0eSh1cGRhdGVkKSkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlUHJvcGVydHkob3JpZywgdXBkYXRlZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIHR5cGUgc2lnbmF0dXJlIGNoYW5nZXMgb24gdGhlIGdpdmVuIHByb3BlcnR5XG4gICAqL1xuICBwcm90ZWN0ZWQgdmFsaWRhdGVQcm9wZXJ0eShcbiAgICBvcmlnaW5hbDogcmVmbGVjdC5Qcm9wZXJ0eSxcbiAgICB1cGRhdGVkOiByZWZsZWN0LlByb3BlcnR5LFxuICApIHtcbiAgICB2YWxpZGF0ZVN0YWJpbGl0aWVzKG9yaWdpbmFsLCB1cGRhdGVkLCB0aGlzLm1pc21hdGNoZXMpO1xuICAgIHZhbGlkYXRlU3RhdGljU2FtZShvcmlnaW5hbCwgdXBkYXRlZCwgdGhpcy5taXNtYXRjaGVzKTtcbiAgICB2YWxpZGF0ZU5vdE1hZGVJbW11dGFibGUob3JpZ2luYWwsIHVwZGF0ZWQsIHRoaXMubWlzbWF0Y2hlcyk7XG5cbiAgICBpZiAodGhpcy5zdWJjbGFzc2FibGVUeXBlKSB7XG4gICAgICAvLyBIZWxsbyBDIyBteSBvbGQgZnJpZW5kXG4gICAgICB2YWxpZGF0ZVByb3BlcnR5VHlwZVNhbWUoXG4gICAgICAgIG9yaWdpbmFsLFxuICAgICAgICB1cGRhdGVkLFxuICAgICAgICB0aGlzLm1pc21hdGNoZXMud2l0aE1vdGl2YXRpb24oJ3R5cGUgaXMgQHN1YmNsYXNzYWJsZScpLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKCFvcmlnaW5hbC5pbW11dGFibGUpIHtcbiAgICAgIC8vIElmIHRoZSB0eXBlIGNhbiBiZSByZWFkLCBpdCBjYW4ndCBiZSB3ZWFrZW5lZCAoY2FuJ3QgY2hhbmdlIERvZyB0byBBbmltYWwsIGNvbnN1bWVycyBtaWdodCBiZSBjb3VudGluZyBvbiBhIERvZykuXG4gICAgICAvLyBJZiB0aGUgdHlwZSBjYW4gYmUgd3JpdHRlbiwgaXQgY2FuJ3QgYmUgc3RyZW5ndGhlbmVkIChjYW4ndCBjaGFuZ2UgQW5pbWFsIHRvIERvZywgY29uc3VtZXJzIG1pZ2h0IGJlIHNlbmRpbmcgYSBDYXQpLlxuICAgICAgLy8gPT4gaXQgbXVzdCByZW1haW4gdGhlIHNhbWVcbiAgICAgIHZhbGlkYXRlUHJvcGVydHlUeXBlU2FtZShcbiAgICAgICAgb3JpZ2luYWwsXG4gICAgICAgIHVwZGF0ZWQsXG4gICAgICAgIHRoaXMubWlzbWF0Y2hlcy53aXRoTW90aXZhdGlvbignbXV0YWJsZSBwcm9wZXJ0eSBjYW5ub3QgY2hhbmdlIHR5cGUnKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkYXRlUHJvcGVydHlUeXBlTm90V2Vha2VuZWQob3JpZ2luYWwsIHVwZGF0ZWQsIHRoaXMubWlzbWF0Y2hlcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcmVmZXJlbmNlIHR5cGUgaGFzIGJlZW4gbWFya2VkIGFzIHN1YmNsYXNzYWJsZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgc3ViY2xhc3NhYmxlVHlwZSgpIHtcbiAgICByZXR1cm4gc3ViY2xhc3NhYmxlVHlwZSh0aGlzLm9sZFR5cGUpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb21wYXJhYmxlQ2xhc3NUeXBlIGV4dGVuZHMgQ29tcGFyYWJsZVJlZmVyZW5jZVR5cGU8cmVmbGVjdC5DbGFzc1R5cGU+IHtcbiAgLyoqXG4gICAqIFBlcmZvcm0gdGhlIHJlZmVyZW5jZSB0eXBlIGNvbXBhcmlzb24gYW5kIGluY2x1ZGUgY2xhc3Mtc3BlY2lmaWMgY2hlY2tzXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZSgpIHtcbiAgICBzdXBlci5jb21wYXJlKCk7XG5cbiAgICB2YWxpZGF0ZU5vdE1hZGVBYnN0cmFjdCh0aGlzLm9sZFR5cGUsIHRoaXMubmV3VHlwZSwgdGhpcy5taXNtYXRjaGVzKTtcblxuICAgIC8vIEpTSUkgYXNzZW1ibGVyIGhhcyBhbHJlYWR5IHRha2VuIGNhcmUgb2YgaW5oZXJpdGFuY2UgaGVyZVxuICAgIGlmICh0aGlzLm9sZFR5cGUuaW5pdGlhbGl6ZXIgJiYgdGhpcy5uZXdUeXBlLmluaXRpYWxpemVyKSB7XG4gICAgICB2YWxpZGF0ZU1ldGhvZENvbXBhdGlibGUoXG4gICAgICAgIHRoaXMub2xkVHlwZS5pbml0aWFsaXplcixcbiAgICAgICAgdGhpcy5uZXdUeXBlLmluaXRpYWxpemVyLFxuICAgICAgICB0aGlzLm1pc21hdGNoZXMsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUeXBlIHJvbGUgbWFya2luZyAtLSBpbmNsdWRlIHRoZSBpbml0aWFsaXplclxuICAgKi9cbiAgcHVibGljIG1hcmtUeXBlUm9sZXMoKSB7XG4gICAgaWYgKHRoaXMub2xkVHlwZS5pbml0aWFsaXplcikge1xuICAgICAgZGV0ZXJtaW5lVHlwZVJvbGVzRnJvbU1ldGhvZChcbiAgICAgICAgdGhpcy5hc3NlbWJseUNvbXBhcmlzb24sXG4gICAgICAgIHRoaXMub2xkVHlwZS5pbml0aWFsaXplcixcbiAgICAgICk7XG4gICAgfVxuICAgIHN1cGVyLm1hcmtUeXBlUm9sZXMoKTtcbiAgfVxufVxuXG4vKipcbiAqIEludGVyZmFjZSB0eXBlIGNvbXBhcmlzb25cbiAqXG4gKiAoQWN0dWFsbHkganVzdCBwbGFpbiByZWZlcmVuY2UgdHlwZSBjb21wYXJpc29uKVxuICovXG5leHBvcnQgY2xhc3MgQ29tcGFyYWJsZUludGVyZmFjZVR5cGUgZXh0ZW5kcyBDb21wYXJhYmxlUmVmZXJlbmNlVHlwZTxyZWZsZWN0LkludGVyZmFjZVR5cGU+IHt9XG5cbi8qKlxuICogU3RydWN0IHR5cGUgY29tcGFyaXNvblxuICpcbiAqIE1vc3Qgbm90YWJseTogZG9lcyBuby1zdHJlbmd0aGVuaW5nL25vLXdlYWtlbmluZyBjaGVja3MgYmFzZWQgb24gd2hldGhlclxuICogc3RydWN0cyBhcHBlYXIgaW4gaW5wdXQvb3V0cHV0IHBvc2l0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbXBhcmFibGVTdHJ1Y3RUeXBlIGV4dGVuZHMgQ29tcGFyYWJsZVR5cGU8cmVmbGVjdC5JbnRlcmZhY2VUeXBlPiB7XG4gIHB1YmxpYyBjb21wYXJlKCkge1xuICAgIHZhbGlkYXRlU3RhYmlsaXRpZXModGhpcy5vbGRUeXBlLCB0aGlzLm5ld1R5cGUsIHRoaXMubWlzbWF0Y2hlcyk7XG4gICAgdmFsaWRhdGVCYXNlVHlwZUFzc2lnbmFiaWxpdHkodGhpcy5vbGRUeXBlLCB0aGlzLm5ld1R5cGUsIHRoaXMubWlzbWF0Y2hlcyk7XG4gICAgdGhpcy52YWxpZGF0ZU5vUHJvcGVydGllc1JlbW92ZWQoKTtcblxuICAgIGlmICh0aGlzLmlucHV0VHlwZSkge1xuICAgICAgLy8gSWYgdGhlIHN0cnVjdCBpcyB3cml0dGVuLCBpdCBjYW4ndCBiZSBzdHJlbmd0aGVuZWQgKGV4OiBjYW4ndCBjaGFuZ2UgYW4gb3B0aW9uYWwgcHJvcGVydHkgdG8gcmVxdWlyZWQpXG4gICAgICB0aGlzLnZhbGlkYXRlTm90U3RyZW5ndGhlbmVkKFxuICAgICAgICB0aGlzLm1pc21hdGNoZXMud2l0aE1vdGl2YXRpb24odGhpcy5pbnB1dFR5cGVSZWFzb24pLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vdXRwdXRUeXBlKSB7XG4gICAgICAvLyBJZiB0aGUgc3RydWN0IGlzIHJlYWQsIGl0IGNhbid0IGJlIHdlYWtlbmVkIChleDogY2FuJ3QgY2hhbmdlIGEgcmVxdWlyZWQgcHJvcGVydHkgdG8gb3B0aW9uYWwpXG4gICAgICB0aGlzLnZhbGlkYXRlTm90V2Vha2VuZWQoXG4gICAgICAgIHRoaXMubWlzbWF0Y2hlcy53aXRoTW90aXZhdGlvbih0aGlzLm91dHB1dFR5cGVSZWFzb24pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXZlcnkgdHlwZSBvZiBldmVyeSBwcm9wZXJ0eSBzaG91bGQgaGF2ZSB0aGUgc2FtZSBpbi9vdXQgY2xhc3NpZmljYXRpb24gYXMgdGhlIG91dGVyIHR5cGVcbiAgICovXG4gIHByb3RlY3RlZCBmb3JFYWNoUm9sZVNoYXJpbmdUeXBlKFxuICAgIGNiOiAodDogQ29tcGFyYWJsZVR5cGU8YW55PiwgcmVhc29uOiBzdHJpbmcpID0+IHZvaWQsXG4gICkge1xuICAgIGZvciAoY29uc3QgcHJvcCBvZiB0aGlzLm9sZFR5cGUuYWxsUHJvcGVydGllcykge1xuICAgICAgZm9yIChjb25zdCB0IG9mIHRoaXMuYXNzZW1ibHlDb21wYXJpc29uLnR5cGVzSW4ocHJvcC50eXBlKSkge1xuICAgICAgICBjYih0LCBgdHlwZSBvZiBwcm9wZXJ0eSAke3Byb3AubmFtZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgdGhhdCBhbGwgcHJvcGVydGllcyBhcmUgc3RpbGwgcHJlc2VudFxuICAgKlxuICAgKiBUaGlzIGlzIGJlY2F1c2UgZm9yIGFsbCBub24tc3RydWN0dXJhbGx5IHR5cGVkIGxhbmd1YWdlcyBpdCBpcyBub3QgYWxsb3dlZFxuICAgKiB0byBzcGVjaWZ5IG1lbWJlcnMgd2hpY2ggYXJlbid0IGFjdHVhbGx5IHByZXNlbnQgaW4gdGhlIHR5cGUuXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlTm9Qcm9wZXJ0aWVzUmVtb3ZlZCgpIHtcbiAgICAvLyBBIHNpbmdsZSBydW4gb2YgbWVtYmVyUGFpcnMoKSB3aXRoIG5vdGhpbmcgZWxzZSB3aWxsIGRvIHRoaXMgY2hlY2suXG4gICAgQXJyYXkuZnJvbShcbiAgICAgIG1lbWJlclBhaXJzKFxuICAgICAgICB0aGlzLm9sZFR5cGUsXG4gICAgICAgIHRoaXMub2xkVHlwZS5hbGxQcm9wZXJ0aWVzLFxuICAgICAgICB0aGlzLm5ld1R5cGUsXG4gICAgICAgIHRoaXMubWlzbWF0Y2hlcyxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB0aGF0IHRoZSBjdXJyZW50IHR5cGUgaXMgbm90IHdlYWtlbmVkXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlTm90V2Vha2VuZWQobWlzbWF0Y2hlczogSVJlcG9ydCkge1xuICAgIGNvbnN0IGFuYSA9IHRoaXMuaXNTdHJ1Y3R1cmFsU3VwZXJUeXBlKHRoaXMub2xkVHlwZSwgdGhpcy5uZXdUeXBlKTtcbiAgICBpZiAoIWFuYS5zdWNjZXNzKSB7XG4gICAgICBtaXNtYXRjaGVzLnJlcG9ydCh7XG4gICAgICAgIHJ1bGVLZXk6ICd3ZWFrZW5lZCcsXG4gICAgICAgIHZpb2xhdG9yOiB0aGlzLm9sZFR5cGUsXG4gICAgICAgIG1lc3NhZ2U6IGFuYS5yZWFzb25zLmpvaW4oJywgJyksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgdGhhdCB0aGUgY3VycmVudCB0eXBlIGlzIG5vdCBzdHJlbmd0aGVuZWRcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVOb3RTdHJlbmd0aGVuZWQobWlzbWF0Y2hlczogSVJlcG9ydCkge1xuICAgIGNvbnN0IGFuYSA9IHRoaXMuaXNTdHJ1Y3R1cmFsU3VwZXJUeXBlKHRoaXMubmV3VHlwZSwgdGhpcy5vbGRUeXBlKTtcbiAgICBpZiAoIWFuYS5zdWNjZXNzKSB7XG4gICAgICBtaXNtYXRjaGVzLnJlcG9ydCh7XG4gICAgICAgIHJ1bGVLZXk6ICdzdHJlbmd0aGVuZWQnLFxuICAgICAgICB2aW9sYXRvcjogdGhpcy5vbGRUeXBlLFxuICAgICAgICBtZXNzYWdlOiBhbmEucmVhc29ucy5qb2luKCcsICcpLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1N0cnVjdHVyYWxTdXBlclR5cGUoXG4gICAgYTogcmVmbGVjdC5JbnRlcmZhY2VUeXBlLFxuICAgIGI6IHJlZmxlY3QuSW50ZXJmYWNlVHlwZSxcbiAgKTogQW5hbHlzaXMge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gaXNTdHJ1Y3R1cmFsU3VwZXJUeXBlKGEsIGIsIHRoaXMubmV3VHlwZS5zeXN0ZW0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIFdlIG1pZ2h0IGdldCBhbiBleGNlcHRpb24gaWYgdGhlIHR5cGUgaXMgc3VwcG9zZWQgdG8gY29tZSBmcm9tIGEgZGlmZmVyZW50XG4gICAgICAvLyBhc3NlbWJseSBhbmQgdGhlIGxvb2t1cCBmYWlscy5cbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCByZWFzb25zOiBbZS5tZXNzYWdlXSB9O1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIENvbXBhcmlzb24gZm9yIGVudW1zXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21wYXJhYmxlRW51bVR5cGUgZXh0ZW5kcyBDb21wYXJhYmxlVHlwZTxyZWZsZWN0LkVudW1UeXBlPiB7XG4gIC8qKlxuICAgKiBQZXJmb3JtIGNvbXBhcmlzb25zIG9uIGVudW0gbWVtYmVyc1xuICAgKi9cbiAgcHVibGljIGNvbXBhcmUoKSB7XG4gICAgdmFsaWRhdGVTdGFiaWxpdGllcyh0aGlzLm9sZFR5cGUsIHRoaXMubmV3VHlwZSwgdGhpcy5taXNtYXRjaGVzKTtcblxuICAgIHZhbGlkYXRlRXhpc3RpbmdNZW1iZXJzKFxuICAgICAgdGhpcy5vbGRUeXBlLFxuICAgICAgdGhpcy5uZXdUeXBlLFxuICAgICAgdGhpcy5taXNtYXRjaGVzLFxuICAgICAgKG9sZE1lbWJlciwgbmV3TWVtYmVyKSA9PiB7XG4gICAgICAgIHZhbGlkYXRlU3RhYmlsaXRpZXMob2xkTWVtYmVyLCBuZXdNZW1iZXIsIHRoaXMubWlzbWF0Y2hlcyk7XG4gICAgICB9LFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlucHV0L291dHB1dCByb2xlcyBvZiB0eXBlcyB1c2VkIGluIHRoaXMgbWV0aG9kXG4gKlxuICogLSBBcmd1bWVudCB0eXBlcyBhcmUgdHJlYXRlZCBhcyBJTiB0eXBlc1xuICogLSBSZXR1cm4gdHlwZSBpcyB0cmVhdGVkIGFzIE9VVCB0eXBlXG4gKi9cbmZ1bmN0aW9uIGRldGVybWluZVR5cGVSb2xlc0Zyb21NZXRob2QoXG4gIGNvbXBhcmlzb246IEFzc2VtYmx5Q29tcGFyaXNvbixcbiAgbWV0aG9kOiByZWZsZWN0Lk1ldGhvZCB8IHJlZmxlY3QuSW5pdGlhbGl6ZXIsXG4pIHtcbiAgaWYgKHJlZmxlY3QuaXNNZXRob2QobWV0aG9kKSkge1xuICAgIGZvciAoY29uc3QgdCBvZiBjb21wYXJpc29uLnR5cGVzSW4obWV0aG9kLnJldHVybnMudHlwZSkpIHtcbiAgICAgIHQubWFya0FzT3V0cHV0VHlwZShgcmV0dXJuZWQgZnJvbSAke2FwaUVsZW1lbnRJZGVudGlmaWVyKG1ldGhvZCl9YCk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBwYXJhbSBvZiBtZXRob2QucGFyYW1ldGVycyA/PyBbXSkge1xuICAgIGZvciAoY29uc3QgdCBvZiBjb21wYXJpc29uLnR5cGVzSW4ocGFyYW0udHlwZSkpIHtcbiAgICAgIHQubWFya0FzSW5wdXRUeXBlKGBpbnB1dCB0byAke2FwaUVsZW1lbnRJZGVudGlmaWVyKG1ldGhvZCl9YCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpbnB1dC9vdXRwdXQgcm9sZXMgb2YgdHlwZXMgdXNlZCBpbiB0aGlzIHByb3BlcnR5XG4gKlxuICogLSBQcm9wZXJ0eSB0eXBlIGlzIHRyZWF0ZWQgYXMgT1VUIHR5cGVcbiAqIC0gSWYgbXV0YWJsZSwgcHJvcGVydHkgdHlwZSBpcyBhbHNvIHRyZWF0ZWQgYXMgSU4gdHlwZVxuICpcbiAqIEluIGVmZmVjdCwgYSBwcm9wZXJ0eSBpcyB0cmVhdGVkIGFzIHRoZSBmb2xsb3dpbmcgbWV0aG9kczpcbiAqXG4gKiAtIHByb3BlcnR5KCk6IFQ7XG4gKiAtIHNldFByb3BlcnR5KDogVCk7ICA8LSBvbmx5IGlmIG11dGFibGVcbiAqL1xuZnVuY3Rpb24gZGV0ZXJtaW5lVHlwZVJvbGVzRnJvbVByb3BlcnR5KFxuICBjb21wYXJpc29uOiBBc3NlbWJseUNvbXBhcmlzb24sXG4gIHByb3BlcnR5OiByZWZsZWN0LlByb3BlcnR5LFxuKSB7XG4gIGZvciAoY29uc3QgdCBvZiBjb21wYXJpc29uLnR5cGVzSW4ocHJvcGVydHkudHlwZSkpIHtcbiAgICB0Lm1hcmtBc091dHB1dFR5cGUoYHR5cGUgb2YgJHthcGlFbGVtZW50SWRlbnRpZmllcihwcm9wZXJ0eSl9YCk7XG4gIH1cbiAgaWYgKCFwcm9wZXJ0eS5pbW11dGFibGUpIHtcbiAgICBmb3IgKGNvbnN0IHQgb2YgY29tcGFyaXNvbi50eXBlc0luKHByb3BlcnR5LnR5cGUpKSB7XG4gICAgICB0Lm1hcmtBc0lucHV0VHlwZShgdHlwZSBvZiBtdXRhYmxlICR7YXBpRWxlbWVudElkZW50aWZpZXIocHJvcGVydHkpfWApO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJldHVybiBhbGwgdGhlIEZRTnMgZnJvbSBhIHR5cGUgcmVmZXJlbmNlXG4gKlxuICogSW4gdGhlIHNpbXBsZSBjYXNlLCBhIHNpbXBsZSBGUU4sIGJ1dCB0aGUgdHlwZSBtaWdodFxuICogYmUgYSB1bmlvbiBvciBjb21wbGV4IHR5cGUgYXMgd2VsbC5cbiAqL1xuZnVuY3Rpb24gZnFuc0Zyb20ocmVmOiByZWZsZWN0LlR5cGVSZWZlcmVuY2UpIHtcbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgcmVjdXJzZShyZWYpO1xuICByZXR1cm4gcmV0O1xuXG4gIGZ1bmN0aW9uIHJlY3Vyc2UodHlwZTogcmVmbGVjdC5UeXBlUmVmZXJlbmNlKSB7XG4gICAgaWYgKHR5cGUubWFwT2ZUeXBlKSB7XG4gICAgICByZWN1cnNlKHR5cGUubWFwT2ZUeXBlKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUuYXJyYXlPZlR5cGUpIHtcbiAgICAgIHJlY3Vyc2UodHlwZS5hcnJheU9mVHlwZSk7XG4gICAgfSBlbHNlIGlmICh0eXBlLnVuaW9uT2ZUeXBlcykge1xuICAgICAgdHlwZS51bmlvbk9mVHlwZXMuZm9yRWFjaChyZWN1cnNlKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUuZnFuKSB7XG4gICAgICByZXQucHVzaCh0eXBlLmZxbik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlUmVhc29ucyhyZWFzb25zOiBzdHJpbmdbXSkge1xuICBpZiAocmVhc29ucy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgaWYgKHJlYXNvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIHJlYXNvbnNbMF07XG4gIH1cbiAgcmV0dXJuIGAke3JlYXNvbnNbMF19ICguLi5hbmQgJHtyZWFzb25zLmxlbmd0aCAtIDF9IG1vcmUuLi4pYDtcbn1cbiJdfQ==
|
|
507
|
+
//# sourceMappingURL=type-comparison.js.map
|