jsii-diff 1.59.0 → 1.60.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 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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"}
@@ -49,4 +49,4 @@ function classifyDiagnostics(mismatches, experimentalErrors, skipFilter) {
49
49
  }
50
50
  }
51
51
  exports.classifyDiagnostics = classifyDiagnostics;
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ25vc3RpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaWFnbm9zdGljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBdUM7QUFJdkMsSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ25CLDJDQUFTLENBQUE7SUFDVCwrQ0FBVyxDQUFBO0lBQ1gsK0NBQVcsQ0FBQTtBQUNiLENBQUMsRUFKVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQUlwQjtBQUVELE1BQU0sWUFBWSxHQUFHO0lBQ25CLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU07SUFDekIsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTTtJQUMzQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNO0NBQzVCLENBQUM7QUFRRixTQUFnQixnQkFBZ0IsQ0FDOUIsSUFBZ0IsRUFDaEIscUJBQXFCLEdBQUcsS0FBSztJQUU3QixPQUFPO1FBQ0wsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEIsR0FBRztRQUNILElBQUksQ0FBQyxPQUFPO1FBQ1osR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUMvRCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNkLENBQUM7QUFWRCw0Q0FVQztBQUVELFNBQWdCLFNBQVMsQ0FBQyxLQUFtQjtJQUMzQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFGRCw4QkFFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQ2pDLFVBQXNCLEVBQ3RCLGtCQUEyQixFQUMzQixVQUF1QjtJQUV2QixNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNqQixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87UUFDcEIsY0FBYyxFQUFFLEdBQUcsQ0FBQyxZQUFZO0tBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ0osR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLE9BQU8sR0FBRyxDQUFDO0lBRVgsU0FBUyxLQUFLLENBQUMsR0FBZ0I7UUFDN0IsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNwQyxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUM7U0FDMUI7UUFDRCxJQUNFLEdBQUcsQ0FBQyxTQUFTLEtBQUssZ0JBQVMsQ0FBQyxNQUFNO1lBQ2xDLENBQUMsR0FBRyxDQUFDLFNBQVMsS0FBSyxnQkFBUyxDQUFDLFlBQVksSUFBSSxrQkFBa0IsQ0FBQyxFQUNoRTtZQUNBLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQztTQUN4QjtRQUNELE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQztJQUMzQixDQUFDO0FBQ0gsQ0FBQztBQXpCRCxrREF5QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFiaWxpdHkgfSBmcm9tICdAanNpaS9zcGVjJztcblxuaW1wb3J0IHsgQXBpTWlzbWF0Y2gsIE1pc21hdGNoZXMgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGVudW0gRGlhZ0xldmVsIHtcbiAgRXJyb3IgPSAwLFxuICBXYXJuaW5nID0gMSxcbiAgU2tpcHBlZCA9IDIsXG59XG5cbmNvbnN0IExFVkVMX1BSRUZJWCA9IHtcbiAgW0RpYWdMZXZlbC5FcnJvcl06ICdlcnIgJyxcbiAgW0RpYWdMZXZlbC5XYXJuaW5nXTogJ3dhcm4nLFxuICBbRGlhZ0xldmVsLlNraXBwZWRdOiAnc2tpcCcsXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIERpYWdub3N0aWMge1xuICBsZXZlbDogRGlhZ0xldmVsO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHN1cHByZXNzaW9uS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREaWFnbm9zdGljKFxuICBkaWFnOiBEaWFnbm9zdGljLFxuICBpbmNsdWRlU3VwcHJlc3Npb25LZXkgPSBmYWxzZSxcbikge1xuICByZXR1cm4gW1xuICAgIExFVkVMX1BSRUZJWFtkaWFnLmxldmVsXSxcbiAgICAnLScsXG4gICAgZGlhZy5tZXNzYWdlLFxuICAgIC4uLihpbmNsdWRlU3VwcHJlc3Npb25LZXkgPyBbYFske2RpYWcuc3VwcHJlc3Npb25LZXl9XWBdIDogW10pLFxuICBdLmpvaW4oJyAnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0Vycm9ycyhkaWFnczogRGlhZ25vc3RpY1tdKSB7XG4gIHJldHVybiBkaWFncy5zb21lKChkaWFnKSA9PiBkaWFnLmxldmVsID09PSBEaWFnTGV2ZWwuRXJyb3IpO1xufVxuXG4vKipcbiAqIENsYXNzaWZ5IEFQSSBtaXNtYXRjaGVzIGludG8gYSBzZXQgb2Ygd2FybmluZ3MgYW5kIGVycm9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY2xhc3NpZnlEaWFnbm9zdGljcyhcbiAgbWlzbWF0Y2hlczogTWlzbWF0Y2hlcyxcbiAgZXhwZXJpbWVudGFsRXJyb3JzOiBib29sZWFuLFxuICBza2lwRmlsdGVyOiBTZXQ8c3RyaW5nPixcbik6IERpYWdub3N0aWNbXSB7XG4gIGNvbnN0IHJldCA9IG1pc21hdGNoZXMubWlzbWF0Y2hlcy5tYXAoKG1pcykgPT4gKHtcbiAgICBsZXZlbDogbGV2ZWwobWlzKSxcbiAgICBtZXNzYWdlOiBtaXMubWVzc2FnZSxcbiAgICBzdXBwcmVzc2lvbktleTogbWlzLnZpb2xhdGlvbktleSxcbiAgfSkpO1xuICByZXQuc29ydCgoYSwgYikgPT4gYS5sZXZlbCAtIGIubGV2ZWwpO1xuICByZXR1cm4gcmV0O1xuXG4gIGZ1bmN0aW9uIGxldmVsKG1pczogQXBpTWlzbWF0Y2gpIHtcbiAgICBpZiAoc2tpcEZpbHRlci5oYXMobWlzLnZpb2xhdGlvbktleSkpIHtcbiAgICAgIHJldHVybiBEaWFnTGV2ZWwuU2tpcHBlZDtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgbWlzLnN0YWJpbGl0eSA9PT0gU3RhYmlsaXR5LlN0YWJsZSB8fFxuICAgICAgKG1pcy5zdGFiaWxpdHkgPT09IFN0YWJpbGl0eS5FeHBlcmltZW50YWwgJiYgZXhwZXJpbWVudGFsRXJyb3JzKVxuICAgICkge1xuICAgICAgcmV0dXJuIERpYWdMZXZlbC5FcnJvcjtcbiAgICB9XG4gICAgcmV0dXJuIERpYWdMZXZlbC5XYXJuaW5nO1xuICB9XG59XG4iXX0=
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=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx1REFBdUQ7QUFHdkQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGlCQUFpQixDQUMvQixRQUEwQixFQUMxQixPQUF5QixFQUN6QixVQUE2QixFQUFFO0lBRS9CLE1BQU0sVUFBVSxHQUFHLElBQUksb0NBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkQsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRXJCLE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQztBQUMvQixDQUFDO0FBVkQsOENBVUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5cbmltcG9ydCB7IEFzc2VtYmx5Q29tcGFyaXNvbiB9IGZyb20gJy4vdHlwZS1jb21wYXJpc29uJztcbmltcG9ydCB7IENvbXBhcmlzb25PcHRpb25zLCBNaXNtYXRjaGVzIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ29tcGFyZSB0d28gYXNzZW1ibGllc1xuICpcbiAqIFdlIGN1cnJlbnRseSBvbmx5IGNoZWNrIGZvciBjb21wYXRpYmlsaXR5IChhIGZ1bGwgZGlmZiBpc1xuICogaGFyZGVyIDopLiBUaGUgb25seSB0aGluZyB3ZSBoYXZlIHRvIGRvIGlzIGNoZWNrIGZvciBldmVyeSBBUElcbiAqIGl0ZW0gd2hldGhlciBpdCdzIHN0aWxsIGF2YWlsYWJsZSBhbmQgaGFzIHRoZSBzYW1lIHNoYXBlIChvclxuICogYmlnZ2VyKSBpbiB0aGUgbmV3IEFQSS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBhcmVBc3NlbWJsaWVzKFxuICBvcmlnaW5hbDogcmVmbGVjdC5Bc3NlbWJseSxcbiAgdXBkYXRlZDogcmVmbGVjdC5Bc3NlbWJseSxcbiAgb3B0aW9uczogQ29tcGFyaXNvbk9wdGlvbnMgPSB7fSxcbik6IE1pc21hdGNoZXMge1xuICBjb25zdCBjb21wYXJpc29uID0gbmV3IEFzc2VtYmx5Q29tcGFyaXNvbihvcHRpb25zKTtcbiAgY29tcGFyaXNvbi5sb2FkKG9yaWdpbmFsLCB1cGRhdGVkKTtcbiAgY29tcGFyaXNvbi5jb21wYXJlKCk7XG5cbiAgcmV0dXJuIGNvbXBhcmlzb24ubWlzbWF0Y2hlcztcbn1cbiJdfQ==
20
+ //# sourceMappingURL=index.js.map
@@ -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=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhYmlsaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhYmlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFtQztBQUtuQyxTQUFnQixtQkFBbUIsQ0FDakMsUUFBMkMsRUFDM0MsT0FBNkIsRUFDN0IsVUFBbUI7SUFFbkIsK0JBQStCO0lBQy9CLElBQ0UsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUztRQUNyQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFDbEQ7UUFDQSxPQUFPO0tBQ1I7SUFFRCxtQ0FBbUM7SUFDbkMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUU7UUFDeEMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNoQixPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLE9BQU8sRUFBRSxrQkFBa0IsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLHFCQUFxQjtZQUN2RSxRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDLENBQUM7UUFDSCxPQUFPO0tBQ1I7SUFFRCxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDN0MsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNoQixPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLE9BQU8sRUFBRSxxQ0FBcUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLFNBQVMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUc7WUFDdkcsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO0tBQ0o7QUFDSCxDQUFDO0FBL0JELGtEQStCQztBQUVELFNBQVMsa0JBQWtCLENBQUMsS0FBcUI7SUFDL0MsUUFBUSxLQUFLLEVBQUU7UUFDYiw0REFBNEQ7UUFDNUQsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVk7WUFDOUIsT0FBTztnQkFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU07Z0JBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVTtnQkFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRO2FBQ3hCLENBQUM7UUFFSixvREFBb0Q7UUFDcEQsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU07WUFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFOUQsK0JBQStCO1FBQy9CLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVO1lBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTFELDZDQUE2QztRQUM3QyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUTtZQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU1RDtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLEtBQVksRUFBRSxDQUFDLENBQUM7S0FDOUQ7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgc3BlYyBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcblxuaW1wb3J0IHsgQXBpRWxlbWVudCwgSVJlcG9ydCB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTdGFiaWxpdGllcyhcbiAgb3JpZ2luYWw6IHJlZmxlY3QuRG9jdW1lbnRhYmxlICYgQXBpRWxlbWVudCxcbiAgdXBkYXRlZDogcmVmbGVjdC5Eb2N1bWVudGFibGUsXG4gIG1pc21hdGNoZXM6IElSZXBvcnQsXG4pIHtcbiAgLy8gTm90aGluZyB0byBkbyBpbiB0aGVzZSBjYXNlc1xuICBpZiAoXG4gICAgb3JpZ2luYWwuZG9jcy5zdGFiaWxpdHkgPT09IHVuZGVmaW5lZCB8fFxuICAgIG9yaWdpbmFsLmRvY3Muc3RhYmlsaXR5ID09PSB1cGRhdGVkLmRvY3Muc3RhYmlsaXR5XG4gICkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIE5vdCBhbGxvd2VkIHRvIGRpc2F2b3cgc3RhYmlsaXR5XG4gIGlmICh1cGRhdGVkLmRvY3Muc3RhYmlsaXR5ID09PSB1bmRlZmluZWQpIHtcbiAgICBtaXNtYXRjaGVzLnJlcG9ydCh7XG4gICAgICBydWxlS2V5OiAncmVtb3ZlZC1zdGFiaWxpdHknLFxuICAgICAgbWVzc2FnZTogYHN0YWJpbGl0eSB3YXMgJyR7b3JpZ2luYWwuZG9jcy5zdGFiaWxpdHl9JywgaGFzIGJlZW4gcmVtb3ZlZGAsXG4gICAgICB2aW9sYXRvcjogb3JpZ2luYWwsXG4gICAgfSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgYWxsb3dlZCA9IGFsbG93ZWRUcmFuc2l0aW9ucyhvcmlnaW5hbC5kb2NzLnN0YWJpbGl0eSk7XG4gIGlmICghYWxsb3dlZC5pbmNsdWRlcyh1cGRhdGVkLmRvY3Muc3RhYmlsaXR5KSkge1xuICAgIG1pc21hdGNoZXMucmVwb3J0KHtcbiAgICAgIHJ1bGVLZXk6ICdjaGFuZ2VkLXN0YWJpbGl0eScsXG4gICAgICBtZXNzYWdlOiBgc3RhYmlsaXR5IG5vdCBhbGxvd2VkIHRvIGdvIGZyb20gJyR7b3JpZ2luYWwuZG9jcy5zdGFiaWxpdHl9JyB0byAnJHt1cGRhdGVkLmRvY3Muc3RhYmlsaXR5fSdgLFxuICAgICAgdmlvbGF0b3I6IG9yaWdpbmFsLFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFsbG93ZWRUcmFuc2l0aW9ucyhzdGFydDogc3BlYy5TdGFiaWxpdHkpOiBzcGVjLlN0YWJpbGl0eVtdIHtcbiAgc3dpdGNoIChzdGFydCkge1xuICAgIC8vIEV4cGVyaW1lbnRhbCBjYW4gZ28gdG8gc3RhYmxlLCBleHRlcm5hbCwgb3IgYmUgZGVwcmVjYXRlZFxuICAgIGNhc2Ugc3BlYy5TdGFiaWxpdHkuRXhwZXJpbWVudGFsOlxuICAgICAgcmV0dXJuIFtcbiAgICAgICAgc3BlYy5TdGFiaWxpdHkuU3RhYmxlLFxuICAgICAgICBzcGVjLlN0YWJpbGl0eS5EZXByZWNhdGVkLFxuICAgICAgICBzcGVjLlN0YWJpbGl0eS5FeHRlcm5hbCxcbiAgICAgIF07XG5cbiAgICAvLyBTdGFibGUgY2FuIGJlIGRlcHJlY2F0ZWQsIG9yIHN3aXRjaGVkIHRvIGV4dGVybmFsXG4gICAgY2FzZSBzcGVjLlN0YWJpbGl0eS5TdGFibGU6XG4gICAgICByZXR1cm4gW3NwZWMuU3RhYmlsaXR5LkRlcHJlY2F0ZWQsIHNwZWMuU3RhYmlsaXR5LkV4dGVybmFsXTtcblxuICAgIC8vIERlcHJlY2F0ZWQgY2FuIGJlIHJlaW5zdGF0ZWRcbiAgICBjYXNlIHNwZWMuU3RhYmlsaXR5LkRlcHJlY2F0ZWQ6XG4gICAgICByZXR1cm4gW3NwZWMuU3RhYmlsaXR5LlN0YWJsZSwgc3BlYy5TdGFiaWxpdHkuRXh0ZXJuYWxdO1xuXG4gICAgLy8gZXh0ZXJuYWwgY2FuIGJlIHN0YWJsZWlmaWVkLCBvciBkZXByZWNhdGVkXG4gICAgY2FzZSBzcGVjLlN0YWJpbGl0eS5FeHRlcm5hbDpcbiAgICAgIHJldHVybiBbc3BlYy5TdGFiaWxpdHkuU3RhYmxlLCBzcGVjLlN0YWJpbGl0eS5EZXByZWNhdGVkXTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBzdGFiaWxpdHk6ICR7c3RhcnQgYXMgYW55fWApO1xuICB9XG59XG4iXX0=
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"}
@@ -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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"}
@@ -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 (_a = method.parameters) !== null && _a !== void 0 ? _a : []) {
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