jsii-pacmak 1.42.0 → 1.44.2

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.
@@ -2,6 +2,7 @@
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  require("@jsii/check-node/run");
5
+ const jsii_rosetta_1 = require("jsii-rosetta");
5
6
  const yargs = require("yargs");
6
7
  const lib_1 = require("../lib");
7
8
  const logging_1 = require("../lib/logging");
@@ -87,8 +88,19 @@ const version_1 = require("../lib/version");
87
88
  })
88
89
  .option('rosetta-translate-live', {
89
90
  type: 'boolean',
90
- desc: "Translate code samples on-the-fly if they can't be found in the samples tablet",
91
+ desc: "Translate code samples on-the-fly if they can't be found in the samples tablet (deprecated)",
91
92
  default: true,
93
+ })
94
+ .option('rosetta-unknown-snippets', {
95
+ type: 'string',
96
+ requiresArg: true,
97
+ optional: true,
98
+ choices: [
99
+ jsii_rosetta_1.UnknownSnippetMode.VERBATIM,
100
+ jsii_rosetta_1.UnknownSnippetMode.TRANSLATE,
101
+ jsii_rosetta_1.UnknownSnippetMode.FAIL,
102
+ ],
103
+ desc: "What to do with code samples if they can't be found in the samples tablet",
92
104
  })
93
105
  .option('parallel', {
94
106
  type: 'boolean',
@@ -127,6 +139,7 @@ const version_1 = require("../lib/version");
127
139
  parallel: argv.parallel,
128
140
  recurse: argv.recurse,
129
141
  rosettaLiveConversion: argv['rosetta-translate-live'],
142
+ rosettaUnknownSnippets: argv['rosetta-unknown-snippets'],
130
143
  rosettaTablet: argv['rosetta-tablet'],
131
144
  targets: (_a = argv.targets) === null || _a === void 0 ? void 0 : _a.map((target) => target),
132
145
  updateNpmIgnoreFiles: argv.npmignore,
@@ -136,4 +149,4 @@ const version_1 = require("../lib/version");
136
149
  process.stderr.write(`${err.stack}\n`);
137
150
  process.exit(1);
138
151
  });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1wYWNtYWsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJqc2lpLXBhY21hay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxnQ0FBOEI7QUFFOUIsK0JBQStCO0FBRS9CLGdDQUE4RDtBQUM5RCw0Q0FBdUM7QUFDdkMsNENBQThDO0FBRTlDLENBQUMsS0FBSyxVQUFVLElBQUk7O0lBQ2xCLE1BQU0sSUFBSSxHQUFHLEtBQUs7U0FDZixHQUFHLENBQUMsYUFBYSxDQUFDO1NBQ2xCLE9BQU8sQ0FDTixDQUFDLG1CQUFtQixFQUFFLHdCQUF3QixDQUFDLEVBQy9DLHFEQUFxRCxFQUNyRCxDQUFDLElBQUksRUFBRSxFQUFFLENBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUU7UUFDMUIsSUFBSSxFQUFFLFFBQVE7UUFDZCxJQUFJLEVBQUUsd0JBQXdCO1FBQzlCLFNBQVMsRUFBRSxJQUFJO1FBQ2YsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDO0tBQ2YsQ0FBQyxDQUNMO1NBQ0EsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNqQixLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDO1FBQ3RCLElBQUksRUFBRSxPQUFPO1FBQ2IsSUFBSSxFQUFFLGlEQUFpRDtRQUN2RCxrQkFBa0IsRUFDaEIseURBQXlEO1FBQzNELE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFVLENBQUM7UUFDbEMsUUFBUSxFQUFFLEtBQUs7S0FDaEIsQ0FBQztTQUNELE1BQU0sQ0FBQyxRQUFRLEVBQUU7UUFDaEIsS0FBSyxFQUFFLEdBQUc7UUFDVixJQUFJLEVBQUUsUUFBUTtRQUNkLElBQUksRUFBRSw2Q0FBNkM7UUFDbkQsa0JBQWtCLEVBQUUsMENBQTBDO1FBQzlELFFBQVEsRUFBRSxLQUFLO0tBQ2hCLENBQUM7U0FDRCxNQUFNLENBQUMsV0FBVyxFQUFFO1FBQ25CLEtBQUssRUFBRSxHQUFHO1FBQ1YsSUFBSSxFQUFFLFNB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QyxXQUFXLENBQUM7UUFDM0IsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1FBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztRQUNqQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFDN0MsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDakMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDL0IsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNO1FBQzVCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtRQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87UUFDckIscUJBQXFCLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1FBQ3JELGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDckMsT0FBTyxRQUFFLElBQUksQ0FBQyxPQUFPLDBDQUFFLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBb0IsQ0FBQztRQUM1RCxvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUztRQUNwQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUM7S0FDaEQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtJQUNqQixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQgJ0Bqc2lpL2NoZWNrLW5vZGUvcnVuJztcblxuaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuXG5pbXBvcnQgeyBwYWNtYWssIGNvbmZpZ3VyZUxvZ2dpbmcsIFRhcmdldE5hbWUgfSBmcm9tICcuLi9saWInO1xuaW1wb3J0IHsgZGVidWcgfSBmcm9tICcuLi9saWIvbG9nZ2luZyc7XG5pbXBvcnQgeyBWRVJTSU9OX0RFU0MgfSBmcm9tICcuLi9saWIvdmVyc2lvbic7XG5cbihhc3luYyBmdW5jdGlvbiBtYWluKCkge1xuICBjb25zdCBhcmd2ID0geWFyZ3NcbiAgICAuZW52KCdKU0lJX1BBQ01BSycpXG4gICAgLmNvbW1hbmQoXG4gICAgICBbJyQwICBbUFJPSkVDVFMuLi5dJywgJ2dlbmVyYXRlIFtQUk9KRUNUUy4uLl0nXSxcbiAgICAgICdHZW5lcmF0ZXMganNpaSBiaW5kaW5ncyBmb3IgdGhlIHNlbGVjdGVkIHByb2plY3QocyknLFxuICAgICAgKGFyZ3YpID0+XG4gICAgICAgIGFyZ3YucG9zaXRpb25hbCgnUFJPSkVDVFMnLCB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgZGVzYzogJ1Byb2plY3QocykgdG8gZ2VuZXJhdGUnLFxuICAgICAgICAgIG5vcm1hbGl6ZTogdHJ1ZSxcbiAgICAgICAgICBkZWZhdWx0OiBbJy4nXSxcbiAgICAgICAgfSksXG4gICAgKVxuICAgIC5vcHRpb24oJ3RhcmdldHMnLCB7XG4gICAgICBhbGlhczogWyd0YXJnZXQnLCAndCddLFxuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIGRlc2M6ICd0YXJnZXQgbGFuZ3VhZ2VzIGZvciB3aGljaCB0byBnZW5lcmF0ZSBiaW5kaW5ncycsXG4gICAgICBkZWZhdWx0RGVzY3JpcHRpb246XG4gICAgICAgICdhbGwgdGFyZ2V0cyBkZWZpbmVkIGluIGBwYWNrYWdlLmpzb25gIHdpbGwgYmUgZ2VuZXJhdGVkJyxcbiAgICAgIGNob2ljZXM6IE9iamVjdC52YWx1ZXMoVGFyZ2V0TmFtZSksXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgfSlcbiAgICAub3B0aW9uKCdvdXRkaXInLCB7XG4gICAgICBhbGlhczogJ28nLFxuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBkZXNjOiAnZGlyZWN0b3J5IHdoZXJlIGFydGlmYWN0cyB3aWxsIGJlIGdlbmVyYXRlZCcsXG4gICAgICBkZWZhdWx0RGVzY3JpcHRpb246ICdiYXNlZCBvbiBganNpaS5vdXRwdXRgIGluIGBwYWNrYWdlLmpzb25gJyxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB9KVxuICAgIC5vcHRpb24oJ2NvZGUtb25seScsIHtcbiAgICAgIGFsaWFzOiAnYycsXG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICBkZXNjOiAnZ2VuZXJhdGUgY29kZSBvbmx5IChpbnN0ZWFkIG9mIGJ1aWxkaW5nIGFuZCBwYWNrYWdpbmcpJyxcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0pXG4gICAgLm9wdGlvbignZmluZ2VycHJpbnQnLCB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICBkZXNjOiAnYXR0YWNoIGEgZmluZ2VycHJpbnQgdG8gdGhlIGdlbmVyYXRlZCBhcnRpZmFjdHMsIGFuZCBza2lwIGdlbmVyYXRpb24gaWYgb3V0ZGlyIGNvbnRhaW5zIGFydGlmYWN0cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBmaW5nZXJwcmludCcsXG4gICAgICBkZWZhdWx0OiB0cnVlLFxuICAgIH0pXG4gICAgLm9wdGlvbignZm9yY2UnLCB7XG4gICAgICBhbGlhczogJ2YnLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVzYzogJ2ZvcmNlIGdlbmVyYXRpb24gb2YgbmV3IGFydGlmYWN0cywgZXZlbiBpZiB0aGUgZmluZ2VycHJpbnRzIG1hdGNoJyxcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0pXG4gICAgLm9wdGlvbignZm9yY2Utc3ViZGlyZWN0b3J5Jywge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVzYzogJ2ZvcmNlIGdlbmVyYXRpb24gaW50byBhIHRhcmdldC1uYW1lZCBzdWJkaXJlY3RvcnksIGV2ZW4gaW4gc2luZ2xlLXRhcmdldCBtb2RlJyxcbiAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgfSlcbiAgICAub3B0aW9uKCdmb3JjZS10YXJnZXQnLCB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICBkZXNjOiAnZm9yY2UgZ2VuZXJhdGlvbiBvZiB0aGUgZ2l2ZW4gdGFyZ2V0cywgZXZlbiBpZiB0aGUgc291cmNlIHBhY2thZ2UuanNvbiBkb2VzbnQgZGVjbGFyZSBpdCcsXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9KVxuICAgIC5vcHRpb24oJ3JlY3Vyc2UnLCB7XG4gICAgICBhbGlhczogJ1InLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVzYzogJ3JlY3Vyc2l2ZWx5IGdlbmVyYXRlIGFuZCBidWlsZCBhbGwgZGVwZW5kZW5jaWVzIGludG8gYG91dGRpcmAnLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgfSlcbiAgICAub3B0aW9uKCd2ZXJib3NlJywge1xuICAgICAgYWxpYXM6ICd2JyxcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIGRlc2M6ICdlbWl0IHZlcmJvc2UgYnVpbGQgb3V0cHV0JyxcbiAgICAgIGNvdW50OiB0cnVlLFxuICAgICAgZGVmYXVsdDogMCxcbiAgICB9KVxuICAgIC5vcHRpb24oJ2NsZWFuJywge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVzYzogJ2NsZWFuIHVwIHRlbXBvcmFyeSBmaWxlcyB1cG9uIHN1Y2Nlc3MgKHVzZSAtLW5vLWNsZWFuIHRvIGRpc2FibGUpJyxcbiAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgfSlcbiAgICAub3B0aW9uKCducG1pZ25vcmUnLCB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICBkZXNjOiAnQXV0by11cGRhdGUgLm5wbWlnbm9yZSB0byBleGNsdWRlIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGFuZCBpbmNsdWRlIHRoZSAuanNpaSBmaWxlJyxcbiAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgfSlcbiAgICAub3B0aW9uKCdyb3NldHRhLXRhYmxldCcsIHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgZGVzYzogXCJMb2NhdGlvbiBvZiBhIGpzaWktcm9zZXR0YSB0YWJsZXQgd2l0aCBzYW1wbGUgdHJhbnNsYXRpb25zIChjcmVhdGVkIHVzaW5nICdqc2lpLXJvc2V0dGEgZXh0cmFjdCcpXCIsXG4gICAgfSlcbiAgICAub3B0aW9uKCdyb3NldHRhLXRyYW5zbGF0ZS1saXZlJywge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVzYzogXCJUcmFuc2xhdGUgY29kZSBzYW1wbGVzIG9uLXRoZS1mbHkgaWYgdGhleSBjYW4ndCBiZSBmb3VuZCBpbiB0aGUgc2FtcGxlcyB0YWJsZXRcIixcbiAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgfSlcbiAgICAub3B0aW9uKCdwYXJhbGxlbCcsIHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIGRlc2M6ICdHZW5lcmF0ZSBhbGwgY29uZmlndXJlZCB0YXJnZXRzIGluIHBhcmFsbGVsIChkaXNhYmxpbmcgdGhpcyBtaWdodCBoZWxwIGlmIHlvdSBlbmNvdW50ZXIgRU1GSUxFIGVycm9ycyknLFxuICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB9KVxuICAgIC5vcHRpb24oJ2RvdG5ldC1udWdldC1nbG9iYWwtcGFja2FnZXMtZm9sZGVyJywge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBkZXNjOiAnQ29uZmlndXJlIGEgZGlmZmVyZW50IE51R2V0IHBhY2thZ2UgY2FjaGUgZm9yIE51R2V0JyxcbiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgIC8vIFRoaXMgaXMgYSBoaWRkZW4gb3B0aW9uLCBmb2xrcyBuZWVkIG5vdCBib3RoZXIgaXQgdW5sZXNzIHRoZXkncmUgdmVyeSBhZHZhbmNlZFxuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgLy8gVGhpcyBpcyBleHBlY3RlZCB0byBiZSBhIHBhdGgsIHdoaWNoIHNob3VsZCBiZSBub3JtYWxpemVkXG4gICAgICBub3JtYWxpemU6IHRydWUsXG4gICAgfSlcbiAgICAub3B0aW9uKCd2YWxpZGF0ZS1hc3NlbWJsaWVzJywge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVzYzogJ1doZXRoZXIganNpaSBhc3NlbWJsaWVzIHNob3VsZCBiZSB2YWxpZGF0ZWQuIFRoaXMgY2FuIGJlIGV4cGVuc2l2ZSBhbmQgaXMgc2tpcHBlZCBieSBkZWZhdWx0LicsXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9KVxuICAgIC52ZXJzaW9uKFZFUlNJT05fREVTQylcbiAgICAuc3RyaWN0KCkuYXJndjtcblxuICBjb25maWd1cmVMb2dnaW5nKHsgbGV2ZWw6IGFyZ3YudmVyYm9zZSAhPT0gdW5kZWZpbmVkID8gYXJndi52ZXJib3NlIDogMCB9KTtcblxuICAvLyBEZWZhdWx0IHRvIDQgdGhyZWFkcyBpbiBjYXNlIG9mIGNvbmN1cnJlbmN5LCBnb29kIGVub3VnaCBmb3IgbW9zdCBzaXR1YXRpb25zXG4gIGRlYnVnKCdjb21tYW5kIGxpbmUgYXJndW1lbnRzOicsIGFyZ3YpO1xuXG4gIHJldHVybiBwYWNtYWsoe1xuICAgIGFyZ3YsXG4gICAgY2xlYW46IGFyZ3YuY2xlYW4sXG4gICAgY29kZU9ubHk6IGFyZ3ZbJ2NvZGUtb25seSddLFxuICAgIGZpbmdlcnByaW50OiBhcmd2LmZpbmdlcnByaW50LFxuICAgIGZvcmNlOiBhcmd2LmZvcmNlLFxuICAgIGZvcmNlU3ViZGlyZWN0b3J5OiBhcmd2Wydmb3JjZS1zdWJkaXJlY3RvcnknXSxcbiAgICBmb3JjZVRhcmdldDogYXJndlsnZm9yY2UtdGFyZ2V0J10sXG4gICAgaW5wdXREaXJlY3RvcmllczogYXJndi5QUk9KRUNUUyxcbiAgICBvdXRwdXREaXJlY3Rvcnk6IGFyZ3Yub3V0ZGlyLFxuICAgIHBhcmFsbGVsOiBhcmd2LnBhcmFsbGVsLFxuICAgIHJlY3Vyc2U6IGFyZ3YucmVjdXJzZSxcbiAgICByb3NldHRhTGl2ZUNvbnZlcnNpb246IGFyZ3ZbJ3Jvc2V0dGEtdHJhbnNsYXRlLWxpdmUnXSxcbiAgICByb3NldHRhVGFibGV0OiBhcmd2Wydyb3NldHRhLXRhYmxldCddLFxuICAgIHRhcmdldHM6IGFyZ3YudGFyZ2V0cz8ubWFwKCh0YXJnZXQpID0+IHRhcmdldCBhcyBUYXJnZXROYW1lKSxcbiAgICB1cGRhdGVOcG1JZ25vcmVGaWxlczogYXJndi5ucG1pZ25vcmUsXG4gICAgdmFsaWRhdGVBc3NlbWJsaWVzOiBhcmd2Wyd2YWxpZGF0ZS1hc3NlbWJsaWVzJ10sXG4gIH0pO1xufSkoKS5jYXRjaCgoZXJyKSA9PiB7XG4gIHByb2Nlc3Muc3RkZXJyLndyaXRlKGAke2Vyci5zdGFja31cXG5gKTtcbiAgcHJvY2Vzcy5leGl0KDEpO1xufSk7XG4iXX0=
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1wYWNtYWsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJqc2lpLXBhY21hay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxnQ0FBOEI7QUFFOUIsK0NBQWtEO0FBQ2xELCtCQUErQjtBQUUvQixnQ0FBOEQ7QUFDOUQsNENBQXVDO0FBQ3ZDLDRDQUE4QztBQUU5QyxDQUFDLEtBQUssVUFBVSxJQUFJOztJQUNsQixNQUFNLElBQUksR0FBRyxLQUFLO1NBQ2YsR0FBRyxDQUFDLGFBQWEsQ0FBQztTQUNsQixPQUFPLENBQ04sQ0FBQyxtQkFBbUIsRUFBRSx3QkFBd0IsQ0FBQyxFQUMvQyxxREFBcUQsRUFDckQsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFO1FBQzFCLElBQUksRUFBRSxRQUFRO1FBQ2QsSUFBSSxFQUFFLHdCQUF3QjtRQUM5QixTQUFTLEVBQUUsSUFBSTtRQUNmLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQztLQUNmLENBQUMsQ0FDTDtTQUNBLE1BQU0sQ0FBQyxTQUFTLEVBQUU7UUFDakIsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQztRQUN0QixJQUFJLEVBQUUsT0FBTztRQUNiLElBQUksRUFBRSxpREFBaUQ7UUFDdkQsa0JBQWtCLEVBQ2hCLHlEQUF5RDtRQUMzRCxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBVSxDQUFDO1FBQ2xDLFFBQVEsRUFBRSxLQUFLO0tBQ2hCLENBQUM7U0FDRCxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ2hCLEtBQUssRUFBRSxHQUFHO1FBQ1YsSUFBSSxFQUFFLFFBQVE7UUFDZCxJQUFJLEVBQUUsNkNBQTZDO1FBQ25ELGtCQUFrQixFQUFFLDBDQUEwQztRQUM5RCxRQUFRLEVBQUUsS0FBSztLQUNoQixDQUFDO1NBQ0QsTUFBTSxDQUFDLFdBQVcsRUFBRTtRQUNuQixLQUFLLEVBQUUsR0FBRztRQUNW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LElBQUksQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQgJ0Bqc2lpL2NoZWNrLW5vZGUvcnVuJztcblxuaW1wb3J0IHsgVW5rbm93blNuaXBwZXRNb2RlIH0gZnJvbSAnanNpaS1yb3NldHRhJztcbmltcG9ydCAqIGFzIHlhcmdzIGZyb20gJ3lhcmdzJztcblxuaW1wb3J0IHsgcGFjbWFrLCBjb25maWd1cmVMb2dnaW5nLCBUYXJnZXROYW1lIH0gZnJvbSAnLi4vbGliJztcbmltcG9ydCB7IGRlYnVnIH0gZnJvbSAnLi4vbGliL2xvZ2dpbmcnO1xuaW1wb3J0IHsgVkVSU0lPTl9ERVNDIH0gZnJvbSAnLi4vbGliL3ZlcnNpb24nO1xuXG4oYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3QgYXJndiA9IHlhcmdzXG4gICAgLmVudignSlNJSV9QQUNNQUsnKVxuICAgIC5jb21tYW5kKFxuICAgICAgWyckMCAgW1BST0pFQ1RTLi4uXScsICdnZW5lcmF0ZSBbUFJPSkVDVFMuLi5dJ10sXG4gICAgICAnR2VuZXJhdGVzIGpzaWkgYmluZGluZ3MgZm9yIHRoZSBzZWxlY3RlZCBwcm9qZWN0KHMpJyxcbiAgICAgIChhcmd2KSA9PlxuICAgICAgICBhcmd2LnBvc2l0aW9uYWwoJ1BST0pFQ1RTJywge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGRlc2M6ICdQcm9qZWN0KHMpIHRvIGdlbmVyYXRlJyxcbiAgICAgICAgICBub3JtYWxpemU6IHRydWUsXG4gICAgICAgICAgZGVmYXVsdDogWycuJ10sXG4gICAgICAgIH0pLFxuICAgIClcbiAgICAub3B0aW9uKCd0YXJnZXRzJywge1xuICAgICAgYWxpYXM6IFsndGFyZ2V0JywgJ3QnXSxcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBkZXNjOiAndGFyZ2V0IGxhbmd1YWdlcyBmb3Igd2hpY2ggdG8gZ2VuZXJhdGUgYmluZGluZ3MnLFxuICAgICAgZGVmYXVsdERlc2NyaXB0aW9uOlxuICAgICAgICAnYWxsIHRhcmdldHMgZGVmaW5lZCBpbiBgcGFja2FnZS5qc29uYCB3aWxsIGJlIGdlbmVyYXRlZCcsXG4gICAgICBjaG9pY2VzOiBPYmplY3QudmFsdWVzKFRhcmdldE5hbWUpLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIH0pXG4gICAgLm9wdGlvbignb3V0ZGlyJywge1xuICAgICAgYWxpYXM6ICdvJyxcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgZGVzYzogJ2RpcmVjdG9yeSB3aGVyZSBhcnRpZmFjdHMgd2lsbCBiZSBnZW5lcmF0ZWQnLFxuICAgICAgZGVmYXVsdERlc2NyaXB0aW9uOiAnYmFzZWQgb24gYGpzaWkub3V0cHV0YCBpbiBgcGFja2FnZS5qc29uYCcsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgfSlcbiAgICAub3B0aW9uKCdjb2RlLW9ubHknLCB7XG4gICAgICBhbGlhczogJ2MnLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVzYzogJ2dlbmVyYXRlIGNvZGUgb25seSAoaW5zdGVhZCBvZiBidWlsZGluZyBhbmQgcGFja2FnaW5nKScsXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9KVxuICAgIC5vcHRpb24oJ2ZpbmdlcnByaW50Jywge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVzYzogJ2F0dGFjaCBhIGZpbmdlcnByaW50IHRvIHRoZSBnZW5lcmF0ZWQgYXJ0aWZhY3RzLCBhbmQgc2tpcCBnZW5lcmF0aW9uIGlmIG91dGRpciBjb250YWlucyBhcnRpZmFjdHMgdGhhdCBoYXZlIGEgbWF0Y2hpbmcgZmluZ2VycHJpbnQnLFxuICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB9KVxuICAgIC5vcHRpb24oJ2ZvcmNlJywge1xuICAgICAgYWxpYXM6ICdmJyxcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIGRlc2M6ICdmb3JjZSBnZW5lcmF0aW9uIG9mIG5ldyBhcnRpZmFjdHMsIGV2ZW4gaWYgdGhlIGZpbmdlcnByaW50cyBtYXRjaCcsXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9KVxuICAgIC5vcHRpb24oJ2ZvcmNlLXN1YmRpcmVjdG9yeScsIHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIGRlc2M6ICdmb3JjZSBnZW5lcmF0aW9uIGludG8gYSB0YXJnZXQtbmFtZWQgc3ViZGlyZWN0b3J5LCBldmVuIGluIHNpbmdsZS10YXJnZXQgbW9kZScsXG4gICAgICBkZWZhdWx0OiB0cnVlLFxuICAgIH0pXG4gICAgLm9wdGlvbignZm9yY2UtdGFyZ2V0Jywge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVzYzogJ2ZvcmNlIGdlbmVyYXRpb24gb2YgdGhlIGdpdmVuIHRhcmdldHMsIGV2ZW4gaWYgdGhlIHNvdXJjZSBwYWNrYWdlLmpzb24gZG9lc250IGRlY2xhcmUgaXQnLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgfSlcbiAgICAub3B0aW9uKCdyZWN1cnNlJywge1xuICAgICAgYWxpYXM6ICdSJyxcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIGRlc2M6ICdyZWN1cnNpdmVseSBnZW5lcmF0ZSBhbmQgYnVpbGQgYWxsIGRlcGVuZGVuY2llcyBpbnRvIGBvdXRkaXJgJyxcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0pXG4gICAgLm9wdGlvbigndmVyYm9zZScsIHtcbiAgICAgIGFsaWFzOiAndicsXG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICBkZXNjOiAnZW1pdCB2ZXJib3NlIGJ1aWxkIG91dHB1dCcsXG4gICAgICBjb3VudDogdHJ1ZSxcbiAgICAgIGRlZmF1bHQ6IDAsXG4gICAgfSlcbiAgICAub3B0aW9uKCdjbGVhbicsIHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIGRlc2M6ICdjbGVhbiB1cCB0ZW1wb3JhcnkgZmlsZXMgdXBvbiBzdWNjZXNzICh1c2UgLS1uby1jbGVhbiB0byBkaXNhYmxlKScsXG4gICAgICBkZWZhdWx0OiB0cnVlLFxuICAgIH0pXG4gICAgLm9wdGlvbignbnBtaWdub3JlJywge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVzYzogJ0F1dG8tdXBkYXRlIC5ucG1pZ25vcmUgdG8gZXhjbHVkZSB0aGUgb3V0cHV0IGRpcmVjdG9yeSBhbmQgaW5jbHVkZSB0aGUgLmpzaWkgZmlsZScsXG4gICAgICBkZWZhdWx0OiB0cnVlLFxuICAgIH0pXG4gICAgLm9wdGlvbigncm9zZXR0YS10YWJsZXQnLCB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIGRlc2M6IFwiTG9jYXRpb24gb2YgYSBqc2lpLXJvc2V0dGEgdGFibGV0IHdpdGggc2FtcGxlIHRyYW5zbGF0aW9ucyAoY3JlYXRlZCB1c2luZyAnanNpaS1yb3NldHRhIGV4dHJhY3QnKVwiLFxuICAgIH0pXG4gICAgLm9wdGlvbigncm9zZXR0YS10cmFuc2xhdGUtbGl2ZScsIHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIGRlc2M6IFwiVHJhbnNsYXRlIGNvZGUgc2FtcGxlcyBvbi10aGUtZmx5IGlmIHRoZXkgY2FuJ3QgYmUgZm91bmQgaW4gdGhlIHNhbXBsZXMgdGFibGV0IChkZXByZWNhdGVkKVwiLFxuICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICB9KVxuICAgIC5vcHRpb24oJ3Jvc2V0dGEtdW5rbm93bi1zbmlwcGV0cycsIHtcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgIGNob2ljZXM6IFtcbiAgICAgICAgVW5rbm93blNuaXBwZXRNb2RlLlZFUkJBVElNLFxuICAgICAgICBVbmtub3duU25pcHBldE1vZGUuVFJBTlNMQVRFLFxuICAgICAgICBVbmtub3duU25pcHBldE1vZGUuRkFJTCxcbiAgICAgIF0sXG4gICAgICBkZXNjOiBcIldoYXQgdG8gZG8gd2l0aCBjb2RlIHNhbXBsZXMgaWYgdGhleSBjYW4ndCBiZSBmb3VuZCBpbiB0aGUgc2FtcGxlcyB0YWJsZXRcIixcbiAgICB9KVxuICAgIC5vcHRpb24oJ3BhcmFsbGVsJywge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVzYzogJ0dlbmVyYXRlIGFsbCBjb25maWd1cmVkIHRhcmdldHMgaW4gcGFyYWxsZWwgKGRpc2FibGluZyB0aGlzIG1pZ2h0IGhlbHAgaWYgeW91IGVuY291bnRlciBFTUZJTEUgZXJyb3JzKScsXG4gICAgICBkZWZhdWx0OiB0cnVlLFxuICAgIH0pXG4gICAgLm9wdGlvbignZG90bmV0LW51Z2V0LWdsb2JhbC1wYWNrYWdlcy1mb2xkZXInLCB7XG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIGRlc2M6ICdDb25maWd1cmUgYSBkaWZmZXJlbnQgTnVHZXQgcGFja2FnZSBjYWNoZSBmb3IgTnVHZXQnLFxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgICAgLy8gVGhpcyBpcyBhIGhpZGRlbiBvcHRpb24sIGZvbGtzIG5lZWQgbm90IGJvdGhlciBpdCB1bmxlc3MgdGhleSdyZSB2ZXJ5IGFkdmFuY2VkXG4gICAgICBoaWRkZW46IHRydWUsXG4gICAgICAvLyBUaGlzIGlzIGV4cGVjdGVkIHRvIGJlIGEgcGF0aCwgd2hpY2ggc2hvdWxkIGJlIG5vcm1hbGl6ZWRcbiAgICAgIG5vcm1hbGl6ZTogdHJ1ZSxcbiAgICB9KVxuICAgIC5vcHRpb24oJ3ZhbGlkYXRlLWFzc2VtYmxpZXMnLCB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICBkZXNjOiAnV2hldGhlciBqc2lpIGFzc2VtYmxpZXMgc2hvdWxkIGJlIHZhbGlkYXRlZC4gVGhpcyBjYW4gYmUgZXhwZW5zaXZlIGFuZCBpcyBza2lwcGVkIGJ5IGRlZmF1bHQuJyxcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0pXG4gICAgLnZlcnNpb24oVkVSU0lPTl9ERVNDKVxuICAgIC5zdHJpY3QoKS5hcmd2O1xuXG4gIGNvbmZpZ3VyZUxvZ2dpbmcoeyBsZXZlbDogYXJndi52ZXJib3NlICE9PSB1bmRlZmluZWQgPyBhcmd2LnZlcmJvc2UgOiAwIH0pO1xuXG4gIC8vIERlZmF1bHQgdG8gNCB0aHJlYWRzIGluIGNhc2Ugb2YgY29uY3VycmVuY3ksIGdvb2QgZW5vdWdoIGZvciBtb3N0IHNpdHVhdGlvbnNcbiAgZGVidWcoJ2NvbW1hbmQgbGluZSBhcmd1bWVudHM6JywgYXJndik7XG5cbiAgcmV0dXJuIHBhY21hayh7XG4gICAgYXJndixcbiAgICBjbGVhbjogYXJndi5jbGVhbixcbiAgICBjb2RlT25seTogYXJndlsnY29kZS1vbmx5J10sXG4gICAgZmluZ2VycHJpbnQ6IGFyZ3YuZmluZ2VycHJpbnQsXG4gICAgZm9yY2U6IGFyZ3YuZm9yY2UsXG4gICAgZm9yY2VTdWJkaXJlY3Rvcnk6IGFyZ3ZbJ2ZvcmNlLXN1YmRpcmVjdG9yeSddLFxuICAgIGZvcmNlVGFyZ2V0OiBhcmd2Wydmb3JjZS10YXJnZXQnXSxcbiAgICBpbnB1dERpcmVjdG9yaWVzOiBhcmd2LlBST0pFQ1RTLFxuICAgIG91dHB1dERpcmVjdG9yeTogYXJndi5vdXRkaXIsXG4gICAgcGFyYWxsZWw6IGFyZ3YucGFyYWxsZWwsXG4gICAgcmVjdXJzZTogYXJndi5yZWN1cnNlLFxuICAgIHJvc2V0dGFMaXZlQ29udmVyc2lvbjogYXJndlsncm9zZXR0YS10cmFuc2xhdGUtbGl2ZSddLFxuICAgIHJvc2V0dGFVbmtub3duU25pcHBldHM6IGFyZ3ZbJ3Jvc2V0dGEtdW5rbm93bi1zbmlwcGV0cyddIGFzXG4gICAgICB8IFVua25vd25TbmlwcGV0TW9kZVxuICAgICAgfCB1bmRlZmluZWQsXG4gICAgcm9zZXR0YVRhYmxldDogYXJndlsncm9zZXR0YS10YWJsZXQnXSxcbiAgICB0YXJnZXRzOiBhcmd2LnRhcmdldHM/Lm1hcCgodGFyZ2V0KSA9PiB0YXJnZXQgYXMgVGFyZ2V0TmFtZSksXG4gICAgdXBkYXRlTnBtSWdub3JlRmlsZXM6IGFyZ3YubnBtaWdub3JlLFxuICAgIHZhbGlkYXRlQXNzZW1ibGllczogYXJndlsndmFsaWRhdGUtYXNzZW1ibGllcyddLFxuICB9KTtcbn0pKCkuY2F0Y2goKGVycikgPT4ge1xuICBwcm9jZXNzLnN0ZGVyci53cml0ZShgJHtlcnIuc3RhY2t9XFxuYCk7XG4gIHByb2Nlc3MuZXhpdCgxKTtcbn0pO1xuIl19
package/lib/builder.d.ts CHANGED
@@ -2,6 +2,7 @@ import { Rosetta } from 'jsii-rosetta';
2
2
  import { JsiiModule } from './packaging';
3
3
  import { TargetConstructor } from './target';
4
4
  import { TargetName } from './targets';
5
+ import { Toposorted } from './toposort';
5
6
  export interface BuildOptions {
6
7
  /**
7
8
  * Whether to fingerprint the produced artifacts.
@@ -45,14 +46,21 @@ export interface TargetBuilder {
45
46
  buildModules(): Promise<void>;
46
47
  }
47
48
  /**
48
- * Builds the targets for the given language sequentially
49
+ * Base implementation, building the package targets for the given language independently of each other
50
+ *
51
+ * Some languages can gain substantial speedup in preparing an "uber project" for all packages
52
+ * and compiling them all in one go (Those will be implementing a custom Builder).
53
+ *
54
+ * For languages where it doesn't matter--or where we haven't figured out how to
55
+ * do that yet--this class can serve as a base class: it will build each package
56
+ * independently, taking care to build them in the right order.
49
57
  */
50
- export declare class OneByOneBuilder implements TargetBuilder {
58
+ export declare class IndependentPackageBuilder implements TargetBuilder {
51
59
  private readonly targetName;
52
60
  private readonly targetConstructor;
53
61
  private readonly modules;
54
62
  private readonly options;
55
- constructor(targetName: TargetName, targetConstructor: TargetConstructor, modules: readonly JsiiModule[], options: BuildOptions);
63
+ constructor(targetName: TargetName, targetConstructor: TargetConstructor, modules: Toposorted<JsiiModule>, options: BuildOptions);
56
64
  buildModules(): Promise<void>;
57
65
  private generateModuleCode;
58
66
  private buildModule;
package/lib/builder.js CHANGED
@@ -1,13 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OneByOneBuilder = void 0;
3
+ exports.IndependentPackageBuilder = void 0;
4
4
  const path = require("path");
5
5
  const logging = require("./logging");
6
6
  const util_1 = require("./util");
7
7
  /**
8
- * Builds the targets for the given language sequentially
8
+ * Base implementation, building the package targets for the given language independently of each other
9
+ *
10
+ * Some languages can gain substantial speedup in preparing an "uber project" for all packages
11
+ * and compiling them all in one go (Those will be implementing a custom Builder).
12
+ *
13
+ * For languages where it doesn't matter--or where we haven't figured out how to
14
+ * do that yet--this class can serve as a base class: it will build each package
15
+ * independently, taking care to build them in the right order.
9
16
  */
10
- class OneByOneBuilder {
17
+ class IndependentPackageBuilder {
11
18
  constructor(targetName, targetConstructor, modules, options) {
12
19
  this.targetName = targetName;
13
20
  this.targetConstructor = targetConstructor;
@@ -15,15 +22,13 @@ class OneByOneBuilder {
15
22
  this.options = options;
16
23
  }
17
24
  async buildModules() {
18
- for (const module of this.modules) {
19
- if (this.options.codeOnly) {
20
- // eslint-disable-next-line no-await-in-loop
21
- await this.generateModuleCode(module, this.options);
22
- }
23
- else {
24
- // eslint-disable-next-line no-await-in-loop
25
- await this.buildModule(module, this.options);
26
- }
25
+ if (this.options.codeOnly) {
26
+ await Promise.all(util_1.flatten(this.modules).map((module) => this.generateModuleCode(module, this.options)));
27
+ return;
28
+ }
29
+ for (const modules of this.modules) {
30
+ // eslint-disable-next-line no-await-in-loop
31
+ await Promise.all(modules.map((module) => this.buildModule(module, this.options)));
27
32
  }
28
33
  }
29
34
  async generateModuleCode(module, options) {
@@ -74,5 +79,5 @@ class OneByOneBuilder {
74
79
  return module.outputDirectory;
75
80
  }
76
81
  }
77
- exports.OneByOneBuilder = OneByOneBuilder;
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkJBQTZCO0FBRTdCLHFDQUFxQztBQUlyQyxpQ0FBaUM7QUFrRGpDOztHQUVHO0FBQ0gsTUFBYSxlQUFlO0lBQzFCLFlBQ21CLFVBQXNCLEVBQ3RCLGlCQUFvQyxFQUNwQyxPQUE4QixFQUM5QixPQUFxQjtRQUhyQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFDOUIsWUFBTyxHQUFQLE9BQU8sQ0FBYztJQUNyQyxDQUFDO0lBRUcsS0FBSyxDQUFDLFlBQVk7UUFDdkIsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7Z0JBQ3pCLDRDQUE0QztnQkFDNUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNyRDtpQkFBTTtnQkFDTCw0Q0FBNEM7Z0JBQzVDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzlDO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQWtCLEVBQUUsT0FBcUI7UUFDeEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkQsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLElBQUksQ0FBQyxVQUFVLGNBQWMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN0RSxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FDakQsU0FBUyxFQUNULE1BQU0sQ0FBQyxPQUFPLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFTyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQWtCLEVBQUUsT0FBcUI7UUFDakUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFdkQsTUFBTSxHQUFHLEdBQUcsTUFBTSxjQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLElBQUksQ0FBQyxVQUFVLGNBQWMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNuRSxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUk7WUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxDQUFDLFNBQVMsU0FBUyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQzdELE9BQU8sTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDckQ7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELE9BQU8sTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2xDO2dCQUFTO1lBQ1IsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO2dCQUNqQixPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQzNDLE1BQU0sR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3JCO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxJQUFJLENBQ1Ysc0JBQXNCLElBQUksQ0FBQyxVQUFVLGdCQUFnQixHQUFHLENBQUMsU0FBUyxFQUFFLENBQ3JFLENBQUM7YUFDSDtTQUNGO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxNQUFrQixFQUFFLE9BQXFCO1FBQzFELE9BQU8sSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDaEMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFVBQVUsRUFBRSxNQUFNLENBQUMsZUFBZTtZQUNsQyxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7WUFDekIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1lBQ2hDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztZQUNwQixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7WUFDNUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsTUFBa0IsRUFBRSxPQUFxQjtRQUM5RCxJQUFJLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTtZQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDM0Q7UUFDRCxPQUFPLE1BQU0sQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztDQUNGO0FBMUVELDBDQTBFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvc2V0dGEgfSBmcm9tICdqc2lpLXJvc2V0dGEnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0ICogYXMgbG9nZ2luZyBmcm9tICcuL2xvZ2dpbmcnO1xuaW1wb3J0IHsgSnNpaU1vZHVsZSB9IGZyb20gJy4vcGFja2FnaW5nJztcbmltcG9ydCB7IFRhcmdldENvbnN0cnVjdG9yLCBUYXJnZXQgfSBmcm9tICcuL3RhcmdldCc7XG5pbXBvcnQgeyBUYXJnZXROYW1lIH0gZnJvbSAnLi90YXJnZXRzJztcbmltcG9ydCB7IFNjcmF0Y2ggfSBmcm9tICcuL3V0aWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZpbmdlcnByaW50IHRoZSBwcm9kdWNlZCBhcnRpZmFjdHMuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGZpbmdlcnByaW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBhcnRpZmFjdHMgc2hvdWxkIGJlIHJlLWJ1aWxkIGV2ZW4gaWYgdGhlaXIgZmluZ2VycHJpbnRzIGxvb2sgdXAtdG8tZGF0ZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGZvcmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXJndW1lbnRzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyIChob3cgdGhleSBhcmUgdXNlZCBpcyB0YXJnZXQtZGVwZW5kZW50KVxuICAgKi9cbiAgYXJndW1lbnRzOiB7IHJlYWRvbmx5IFtuYW1lOiBzdHJpbmddOiBhbnkgfTtcblxuICAvKipcbiAgICogT25seSBnZW5lcmF0ZSBjb2RlLCBkb24ndCBidWlsZFxuICAgKi9cbiAgY29kZU9ubHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBjbGVhblxuICAgKi9cbiAgY2xlYW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFkZCBhbiBhZGRpdGlvbmFsIHN1YmRpcmVjdG9yeSBmb3IgdGhlIHRhcmdldCBsYW5ndWFnZVxuICAgKi9cbiAgbGFuZ3VhZ2VTdWJkaXJlY3Rvcnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgUm9zZXR0YSBpbnN0YW5jZSB0byBsb2FkIGV4YW1wbGVzIGZyb21cbiAgICovXG4gIHJvc2V0dGE6IFJvc2V0dGE7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBjbGFzc2VzIHRoYXQgY2FuIGJ1aWxkIGxhbmd1YWdlIHRhcmdldHNcbiAqXG4gKiBCdWlsZGluZyBjYW4gaGFwcGVuIG9uZSB0YXJnZXQgYXQgYSB0aW1lLCBvciBtdWx0aXBsZSB0YXJnZXRzIGF0IGEgdGltZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRCdWlsZGVyIHtcbiAgYnVpbGRNb2R1bGVzKCk6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSB0YXJnZXRzIGZvciB0aGUgZ2l2ZW4gbGFuZ3VhZ2Ugc2VxdWVudGlhbGx5XG4gKi9cbmV4cG9ydCBjbGFzcyBPbmVCeU9uZUJ1aWxkZXIgaW1wbGVtZW50cyBUYXJnZXRCdWlsZGVyIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFyZ2V0TmFtZTogVGFyZ2V0TmFtZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhcmdldENvbnN0cnVjdG9yOiBUYXJnZXRDb25zdHJ1Y3RvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vZHVsZXM6IHJlYWRvbmx5IEpzaWlNb2R1bGVbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEJ1aWxkT3B0aW9ucyxcbiAgKSB7fVxuXG4gIHB1YmxpYyBhc3luYyBidWlsZE1vZHVsZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgZm9yIChjb25zdCBtb2R1bGUgb2YgdGhpcy5tb2R1bGVzKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmNvZGVPbmx5KSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hd2FpdC1pbi1sb29wXG4gICAgICAgIGF3YWl0IHRoaXMuZ2VuZXJhdGVNb2R1bGVDb2RlKG1vZHVsZSwgdGhpcy5vcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hd2FpdC1pbi1sb29wXG4gICAgICAgIGF3YWl0IHRoaXMuYnVpbGRNb2R1bGUobW9kdWxlLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2VuZXJhdGVNb2R1bGVDb2RlKG1vZHVsZTogSnNpaU1vZHVsZSwgb3B0aW9uczogQnVpbGRPcHRpb25zKSB7XG4gICAgY29uc3Qgb3V0cHV0RGlyID0gdGhpcy5maW5hbE91dHB1dERpcihtb2R1bGUsIG9wdGlvbnMpO1xuICAgIGxvZ2dpbmcuZGVidWcoYEdlbmVyYXRpbmcgJHt0aGlzLnRhcmdldE5hbWV9IGNvZGUgaW50byAke291dHB1dERpcn1gKTtcbiAgICBhd2FpdCB0aGlzLm1ha2VUYXJnZXQobW9kdWxlLCBvcHRpb25zKS5nZW5lcmF0ZUNvZGUoXG4gICAgICBvdXRwdXREaXIsXG4gICAgICBtb2R1bGUudGFyYmFsbCxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBidWlsZE1vZHVsZShtb2R1bGU6IEpzaWlNb2R1bGUsIG9wdGlvbnM6IEJ1aWxkT3B0aW9ucykge1xuICAgIGNvbnN0IHRhcmdldCA9IHRoaXMubWFrZVRhcmdldChtb2R1bGUsIG9wdGlvbnMpO1xuICAgIGNvbnN0IG91dHB1dERpciA9IHRoaXMuZmluYWxPdXRwdXREaXIobW9kdWxlLCBvcHRpb25zKTtcblxuICAgIGNvbnN0IHNyYyA9IGF3YWl0IFNjcmF0Y2gubWFrZSgodG1wZGlyKSA9PiB7XG4gICAgICBsb2dnaW5nLmRlYnVnKGBHZW5lcmF0aW5nICR7dGhpcy50YXJnZXROYW1lfSBjb2RlIGludG8gJHt0bXBkaXJ9YCk7XG4gICAgICByZXR1cm4gdGFyZ2V0LmdlbmVyYXRlQ29kZSh0bXBkaXIsIG1vZHVsZS50YXJiYWxsKTtcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBsb2dnaW5nLmRlYnVnKGBCdWlsZGluZyAke3NyYy5kaXJlY3Rvcnl9IGludG8gJHtvdXRwdXREaXJ9YCk7XG4gICAgICByZXR1cm4gYXdhaXQgdGFyZ2V0LmJ1aWxkKHNyYy5kaXJlY3RvcnksIG91dHB1dERpcik7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2dnaW5nLndhcm4oYEZhaWxlZCBidWlsZGluZyAke3RoaXMudGFyZ2V0TmFtZX1gKTtcbiAgICAgIHJldHVybiBhd2FpdCBQcm9taXNlLnJlamVjdChlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAob3B0aW9ucy5jbGVhbikge1xuICAgICAgICBsb2dnaW5nLmRlYnVnKGBDbGVhbmluZyAke3NyYy5kaXJlY3Rvcnl9YCk7XG4gICAgICAgIGF3YWl0IHNyYy5jbGVhbnVwKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2dnaW5nLmluZm8oXG4gICAgICAgICAgYEdlbmVyYXRlZCBjb2RlIGZvciAke3RoaXMudGFyZ2V0TmFtZX0gcmV0YWluZWQgYXQgJHtzcmMuZGlyZWN0b3J5fWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtYWtlVGFyZ2V0KG1vZHVsZTogSnNpaU1vZHVsZSwgb3B0aW9uczogQnVpbGRPcHRpb25zKTogVGFyZ2V0IHtcbiAgICByZXR1cm4gbmV3IHRoaXMudGFyZ2V0Q29uc3RydWN0b3Ioe1xuICAgICAgdGFyZ2V0TmFtZTogdGhpcy50YXJnZXROYW1lLFxuICAgICAgcGFja2FnZURpcjogbW9kdWxlLm1vZHVsZURpcmVjdG9yeSxcbiAgICAgIGFzc2VtYmx5OiBtb2R1bGUuYXNzZW1ibHksXG4gICAgICBmaW5nZXJwcmludDogb3B0aW9ucy5maW5nZXJwcmludCxcbiAgICAgIGZvcmNlOiBvcHRpb25zLmZvcmNlLFxuICAgICAgYXJndW1lbnRzOiBvcHRpb25zLmFyZ3VtZW50cyxcbiAgICAgIHJvc2V0dGE6IG9wdGlvbnMucm9zZXR0YSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmluYWxPdXRwdXREaXIobW9kdWxlOiBKc2lpTW9kdWxlLCBvcHRpb25zOiBCdWlsZE9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGlmIChvcHRpb25zLmxhbmd1YWdlU3ViZGlyZWN0b3J5KSB7XG4gICAgICByZXR1cm4gcGF0aC5qb2luKG1vZHVsZS5vdXRwdXREaXJlY3RvcnksIHRoaXMudGFyZ2V0TmFtZSk7XG4gICAgfVxuICAgIHJldHVybiBtb2R1bGUub3V0cHV0RGlyZWN0b3J5O1xuICB9XG59XG4iXX0=
82
+ exports.IndependentPackageBuilder = IndependentPackageBuilder;
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkJBQTZCO0FBRTdCLHFDQUFxQztBQUtyQyxpQ0FBMEM7QUFrRDFDOzs7Ozs7Ozs7R0FTRztBQUNILE1BQWEseUJBQXlCO0lBQ3BDLFlBQ21CLFVBQXNCLEVBQ3RCLGlCQUFvQyxFQUNwQyxPQUErQixFQUMvQixPQUFxQjtRQUhyQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7UUFDL0IsWUFBTyxHQUFQLE9BQU8sQ0FBYztJQUNyQyxDQUFDO0lBRUcsS0FBSyxDQUFDLFlBQVk7UUFDdkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUN6QixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsY0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNuQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FDOUMsQ0FDRixDQUFDO1lBQ0YsT0FBTztTQUNSO1FBRUQsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2xDLDRDQUE0QztZQUM1QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQ2hFLENBQUM7U0FDSDtJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBa0IsRUFBRSxPQUFxQjtRQUN4RSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2RCxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxDQUFDLFVBQVUsY0FBYyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUNqRCxTQUFTLEVBQ1QsTUFBTSxDQUFDLE9BQU8sQ0FDZixDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBa0IsRUFBRSxPQUFxQjtRQUNqRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV2RCxNQUFNLEdBQUcsR0FBRyxNQUFNLGNBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN4QyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxDQUFDLFVBQVUsY0FBYyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSTtZQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLENBQUMsU0FBUyxTQUFTLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDN0QsT0FBTyxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNyRDtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDbkQsT0FBTyxNQUFNLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbEM7Z0JBQVM7WUFDUixJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7Z0JBQ2pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDckI7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLElBQUksQ0FDVixzQkFBc0IsSUFBSSxDQUFDLFVBQVUsZ0JBQWdCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FDckUsQ0FBQzthQUNIO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sVUFBVSxDQUFDLE1BQWtCLEVBQUUsT0FBcUI7UUFDMUQsT0FBTyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUNoQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsVUFBVSxFQUFFLE1BQU0sQ0FBQyxlQUFlO1lBQ2xDLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtZQUN6QixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7WUFDaEMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztZQUM1QixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUFrQixFQUFFLE9BQXFCO1FBQzlELElBQUksT0FBTyxDQUFDLG9CQUFvQixFQUFFO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMzRDtRQUNELE9BQU8sTUFBTSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0NBQ0Y7QUFoRkQsOERBZ0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm9zZXR0YSB9IGZyb20gJ2pzaWktcm9zZXR0YSc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQgKiBhcyBsb2dnaW5nIGZyb20gJy4vbG9nZ2luZyc7XG5pbXBvcnQgeyBKc2lpTW9kdWxlIH0gZnJvbSAnLi9wYWNrYWdpbmcnO1xuaW1wb3J0IHsgVGFyZ2V0Q29uc3RydWN0b3IsIFRhcmdldCB9IGZyb20gJy4vdGFyZ2V0JztcbmltcG9ydCB7IFRhcmdldE5hbWUgfSBmcm9tICcuL3RhcmdldHMnO1xuaW1wb3J0IHsgVG9wb3NvcnRlZCB9IGZyb20gJy4vdG9wb3NvcnQnO1xuaW1wb3J0IHsgU2NyYXRjaCwgZmxhdHRlbiB9IGZyb20gJy4vdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZmluZ2VycHJpbnQgdGhlIHByb2R1Y2VkIGFydGlmYWN0cy5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgZmluZ2VycHJpbnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGFydGlmYWN0cyBzaG91bGQgYmUgcmUtYnVpbGQgZXZlbiBpZiB0aGVpciBmaW5nZXJwcmludHMgbG9vayB1cC10by1kYXRlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZm9yY2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBcmd1bWVudHMgcHJvdmlkZWQgYnkgdGhlIHVzZXIgKGhvdyB0aGV5IGFyZSB1c2VkIGlzIHRhcmdldC1kZXBlbmRlbnQpXG4gICAqL1xuICBhcmd1bWVudHM6IHsgcmVhZG9ubHkgW25hbWU6IHN0cmluZ106IGFueSB9O1xuXG4gIC8qKlxuICAgKiBPbmx5IGdlbmVyYXRlIGNvZGUsIGRvbid0IGJ1aWxkXG4gICAqL1xuICBjb2RlT25seT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGNsZWFuXG4gICAqL1xuICBjbGVhbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWRkIGFuIGFkZGl0aW9uYWwgc3ViZGlyZWN0b3J5IGZvciB0aGUgdGFyZ2V0IGxhbmd1YWdlXG4gICAqL1xuICBsYW5ndWFnZVN1YmRpcmVjdG9yeT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBSb3NldHRhIGluc3RhbmNlIHRvIGxvYWQgZXhhbXBsZXMgZnJvbVxuICAgKi9cbiAgcm9zZXR0YTogUm9zZXR0YTtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIGNsYXNzZXMgdGhhdCBjYW4gYnVpbGQgbGFuZ3VhZ2UgdGFyZ2V0c1xuICpcbiAqIEJ1aWxkaW5nIGNhbiBoYXBwZW4gb25lIHRhcmdldCBhdCBhIHRpbWUsIG9yIG11bHRpcGxlIHRhcmdldHMgYXQgYSB0aW1lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldEJ1aWxkZXIge1xuICBidWlsZE1vZHVsZXMoKTogUHJvbWlzZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBCYXNlIGltcGxlbWVudGF0aW9uLCBidWlsZGluZyB0aGUgcGFja2FnZSB0YXJnZXRzIGZvciB0aGUgZ2l2ZW4gbGFuZ3VhZ2UgaW5kZXBlbmRlbnRseSBvZiBlYWNoIG90aGVyXG4gKlxuICogU29tZSBsYW5ndWFnZXMgY2FuIGdhaW4gc3Vic3RhbnRpYWwgc3BlZWR1cCBpbiBwcmVwYXJpbmcgYW4gXCJ1YmVyIHByb2plY3RcIiBmb3IgYWxsIHBhY2thZ2VzXG4gKiBhbmQgY29tcGlsaW5nIHRoZW0gYWxsIGluIG9uZSBnbyAoVGhvc2Ugd2lsbCBiZSBpbXBsZW1lbnRpbmcgYSBjdXN0b20gQnVpbGRlcikuXG4gKlxuICogRm9yIGxhbmd1YWdlcyB3aGVyZSBpdCBkb2Vzbid0IG1hdHRlci0tb3Igd2hlcmUgd2UgaGF2ZW4ndCBmaWd1cmVkIG91dCBob3cgdG9cbiAqIGRvIHRoYXQgeWV0LS10aGlzIGNsYXNzIGNhbiBzZXJ2ZSBhcyBhIGJhc2UgY2xhc3M6IGl0IHdpbGwgYnVpbGQgZWFjaCBwYWNrYWdlXG4gKiBpbmRlcGVuZGVudGx5LCB0YWtpbmcgY2FyZSB0byBidWlsZCB0aGVtIGluIHRoZSByaWdodCBvcmRlci5cbiAqL1xuZXhwb3J0IGNsYXNzIEluZGVwZW5kZW50UGFja2FnZUJ1aWxkZXIgaW1wbGVtZW50cyBUYXJnZXRCdWlsZGVyIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFyZ2V0TmFtZTogVGFyZ2V0TmFtZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhcmdldENvbnN0cnVjdG9yOiBUYXJnZXRDb25zdHJ1Y3RvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vZHVsZXM6IFRvcG9zb3J0ZWQ8SnNpaU1vZHVsZT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBCdWlsZE9wdGlvbnMsXG4gICkge31cblxuICBwdWJsaWMgYXN5bmMgYnVpbGRNb2R1bGVzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuY29kZU9ubHkpIHtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBmbGF0dGVuKHRoaXMubW9kdWxlcykubWFwKChtb2R1bGUpID0+XG4gICAgICAgICAgdGhpcy5nZW5lcmF0ZU1vZHVsZUNvZGUobW9kdWxlLCB0aGlzLm9wdGlvbnMpLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IG1vZHVsZXMgb2YgdGhpcy5tb2R1bGVzKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIG1vZHVsZXMubWFwKChtb2R1bGUpID0+IHRoaXMuYnVpbGRNb2R1bGUobW9kdWxlLCB0aGlzLm9wdGlvbnMpKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZW5lcmF0ZU1vZHVsZUNvZGUobW9kdWxlOiBKc2lpTW9kdWxlLCBvcHRpb25zOiBCdWlsZE9wdGlvbnMpIHtcbiAgICBjb25zdCBvdXRwdXREaXIgPSB0aGlzLmZpbmFsT3V0cHV0RGlyKG1vZHVsZSwgb3B0aW9ucyk7XG4gICAgbG9nZ2luZy5kZWJ1ZyhgR2VuZXJhdGluZyAke3RoaXMudGFyZ2V0TmFtZX0gY29kZSBpbnRvICR7b3V0cHV0RGlyfWApO1xuICAgIGF3YWl0IHRoaXMubWFrZVRhcmdldChtb2R1bGUsIG9wdGlvbnMpLmdlbmVyYXRlQ29kZShcbiAgICAgIG91dHB1dERpcixcbiAgICAgIG1vZHVsZS50YXJiYWxsLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGJ1aWxkTW9kdWxlKG1vZHVsZTogSnNpaU1vZHVsZSwgb3B0aW9uczogQnVpbGRPcHRpb25zKSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5tYWtlVGFyZ2V0KG1vZHVsZSwgb3B0aW9ucyk7XG4gICAgY29uc3Qgb3V0cHV0RGlyID0gdGhpcy5maW5hbE91dHB1dERpcihtb2R1bGUsIG9wdGlvbnMpO1xuXG4gICAgY29uc3Qgc3JjID0gYXdhaXQgU2NyYXRjaC5tYWtlKCh0bXBkaXIpID0+IHtcbiAgICAgIGxvZ2dpbmcuZGVidWcoYEdlbmVyYXRpbmcgJHt0aGlzLnRhcmdldE5hbWV9IGNvZGUgaW50byAke3RtcGRpcn1gKTtcbiAgICAgIHJldHVybiB0YXJnZXQuZ2VuZXJhdGVDb2RlKHRtcGRpciwgbW9kdWxlLnRhcmJhbGwpO1xuICAgIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIGxvZ2dpbmcuZGVidWcoYEJ1aWxkaW5nICR7c3JjLmRpcmVjdG9yeX0gaW50byAke291dHB1dERpcn1gKTtcbiAgICAgIHJldHVybiBhd2FpdCB0YXJnZXQuYnVpbGQoc3JjLmRpcmVjdG9yeSwgb3V0cHV0RGlyKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dpbmcud2FybihgRmFpbGVkIGJ1aWxkaW5nICR7dGhpcy50YXJnZXROYW1lfWApO1xuICAgICAgcmV0dXJuIGF3YWl0IFByb21pc2UucmVqZWN0KGVycik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChvcHRpb25zLmNsZWFuKSB7XG4gICAgICAgIGxvZ2dpbmcuZGVidWcoYENsZWFuaW5nICR7c3JjLmRpcmVjdG9yeX1gKTtcbiAgICAgICAgYXdhaXQgc3JjLmNsZWFudXAoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZ2dpbmcuaW5mbyhcbiAgICAgICAgICBgR2VuZXJhdGVkIGNvZGUgZm9yICR7dGhpcy50YXJnZXROYW1lfSByZXRhaW5lZCBhdCAke3NyYy5kaXJlY3Rvcnl9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1ha2VUYXJnZXQobW9kdWxlOiBKc2lpTW9kdWxlLCBvcHRpb25zOiBCdWlsZE9wdGlvbnMpOiBUYXJnZXQge1xuICAgIHJldHVybiBuZXcgdGhpcy50YXJnZXRDb25zdHJ1Y3Rvcih7XG4gICAgICB0YXJnZXROYW1lOiB0aGlzLnRhcmdldE5hbWUsXG4gICAgICBwYWNrYWdlRGlyOiBtb2R1bGUubW9kdWxlRGlyZWN0b3J5LFxuICAgICAgYXNzZW1ibHk6IG1vZHVsZS5hc3NlbWJseSxcbiAgICAgIGZpbmdlcnByaW50OiBvcHRpb25zLmZpbmdlcnByaW50LFxuICAgICAgZm9yY2U6IG9wdGlvbnMuZm9yY2UsXG4gICAgICBhcmd1bWVudHM6IG9wdGlvbnMuYXJndW1lbnRzLFxuICAgICAgcm9zZXR0YTogb3B0aW9ucy5yb3NldHRhLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5hbE91dHB1dERpcihtb2R1bGU6IEpzaWlNb2R1bGUsIG9wdGlvbnM6IEJ1aWxkT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgaWYgKG9wdGlvbnMubGFuZ3VhZ2VTdWJkaXJlY3RvcnkpIHtcbiAgICAgIHJldHVybiBwYXRoLmpvaW4obW9kdWxlLm91dHB1dERpcmVjdG9yeSwgdGhpcy50YXJnZXROYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIG1vZHVsZS5vdXRwdXREaXJlY3Rvcnk7XG4gIH1cbn1cbiJdfQ==
package/lib/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { UnknownSnippetMode } from 'jsii-rosetta';
1
2
  import { TargetName } from './targets';
2
3
  import { Timers } from './timer';
3
4
  export { TargetName };
@@ -5,7 +6,7 @@ export { configure as configureLogging } from './logging';
5
6
  /**
6
7
  * Generates code in the desired targets.
7
8
  */
8
- export declare function pacmak({ argv, clean, codeOnly, fingerprint, force, forceSubdirectory, forceTarget, inputDirectories, outputDirectory, parallel, recurse, rosettaLiveConversion, rosettaTablet, targets, timers, updateNpmIgnoreFiles, validateAssemblies, }: PacmakOptions): Promise<void>;
9
+ export declare function pacmak({ argv, clean, codeOnly, fingerprint, force, forceSubdirectory, forceTarget, inputDirectories, outputDirectory, parallel, recurse, rosettaLiveConversion, rosettaTablet, targets, timers, rosettaUnknownSnippets, updateNpmIgnoreFiles, validateAssemblies, }: PacmakOptions): Promise<void>;
9
10
  /**
10
11
  * Options provided to the `pacmak` function.
11
12
  */
@@ -85,8 +86,15 @@ export interface PacmakOptions {
85
86
  * already translated in the `rosettaTablet` file.
86
87
  *
87
88
  * @default false
89
+ * @deprecated Use `rosettaUnknownSnippets` instead.
88
90
  */
89
91
  readonly rosettaLiveConversion?: boolean;
92
+ /**
93
+ * How rosetta should treat snippets that cannot be loaded from a translation tablet.
94
+ *
95
+ * @default - falls back to the default of `rosettaLiveConversion`.
96
+ */
97
+ readonly rosettaUnknownSnippets?: UnknownSnippetMode;
90
98
  /**
91
99
  * A Rosetta tablet file where translations for code examples can be found.
92
100
  *
package/lib/index.js CHANGED
@@ -8,47 +8,52 @@ const npm_modules_1 = require("./npm-modules");
8
8
  const targets_1 = require("./targets");
9
9
  Object.defineProperty(exports, "TargetName", { enumerable: true, get: function () { return targets_1.TargetName; } });
10
10
  const timer_1 = require("./timer");
11
+ const util_1 = require("./util");
11
12
  var logging_1 = require("./logging");
12
13
  Object.defineProperty(exports, "configureLogging", { enumerable: true, get: function () { return logging_1.configure; } });
13
14
  /**
14
15
  * Generates code in the desired targets.
15
16
  */
16
- async function pacmak({ argv = {}, clean = true, codeOnly = false, fingerprint = true, force = false, forceSubdirectory = true, forceTarget = false, inputDirectories, outputDirectory, parallel = true, recurse = false, rosettaLiveConversion, rosettaTablet, targets = Object.values(targets_1.TargetName), timers = new timer_1.Timers(), updateNpmIgnoreFiles = false, validateAssemblies = false, }) {
17
- const rosetta = new jsii_rosetta_1.Rosetta({ liveConversion: rosettaLiveConversion });
17
+ async function pacmak({ argv = {}, clean = true, codeOnly = false, fingerprint = true, force = false, forceSubdirectory = true, forceTarget = false, inputDirectories, outputDirectory, parallel = true, recurse = false, rosettaLiveConversion, rosettaTablet, targets = Object.values(targets_1.TargetName), timers = new timer_1.Timers(), rosettaUnknownSnippets = undefined, updateNpmIgnoreFiles = false, validateAssemblies = false, }) {
18
+ const unknownSnippets = rosettaUnknownSnippets !== null && rosettaUnknownSnippets !== void 0 ? rosettaUnknownSnippets : (rosettaLiveConversion
19
+ ? jsii_rosetta_1.UnknownSnippetMode.TRANSLATE
20
+ : jsii_rosetta_1.UnknownSnippetMode.VERBATIM);
21
+ const rosetta = new jsii_rosetta_1.Rosetta({ unknownSnippets });
18
22
  if (rosettaTablet) {
19
23
  await rosetta.loadTabletFromFile(rosettaTablet);
20
24
  }
21
- const modulesToPackage = await npm_modules_1.findJsiiModules(inputDirectories, recurse);
22
- logging.info(`Found ${modulesToPackage.length} modules to package`);
23
- if (modulesToPackage.length === 0) {
25
+ const modulesToPackageSorted = await npm_modules_1.findJsiiModules(inputDirectories, recurse);
26
+ const modulesToPackageFlat = util_1.flatten(modulesToPackageSorted);
27
+ logging.info(`Found ${modulesToPackageFlat.length} modules to package`);
28
+ if (modulesToPackageFlat.length === 0) {
24
29
  logging.warn('Nothing to do');
25
30
  return;
26
31
  }
27
32
  if (outputDirectory) {
28
- for (const mod of modulesToPackage) {
33
+ for (const mod of modulesToPackageFlat) {
29
34
  mod.outputDirectory = outputDirectory;
30
35
  }
31
36
  }
32
37
  else if (updateNpmIgnoreFiles) {
33
38
  // if outdir is coming from package.json, verify it is excluded by .npmignore. if it is explicitly
34
39
  // defined via --out, don't perform this verification.
35
- await npm_modules_1.updateAllNpmIgnores(modulesToPackage);
40
+ await npm_modules_1.updateAllNpmIgnores(modulesToPackageFlat);
36
41
  }
37
42
  await timers.recordAsync('npm pack', () => {
38
43
  logging.info('Packaging NPM bundles');
39
- return Promise.all(modulesToPackage.map((m) => m.npmPack()));
44
+ return Promise.all(modulesToPackageFlat.map((m) => m.npmPack()));
40
45
  });
41
46
  await timers.recordAsync('load jsii', () => {
42
47
  logging.info('Loading jsii assemblies and translations');
43
48
  const system = new jsii_reflect_1.TypeSystem();
44
- return Promise.all(modulesToPackage.map(async (m) => {
49
+ return Promise.all(modulesToPackageFlat.map(async (m) => {
45
50
  await m.load(system, validateAssemblies);
46
51
  return rosetta.addAssembly(m.assembly.spec, m.moduleDirectory);
47
52
  }));
48
53
  });
49
54
  try {
50
- const targetSets = sliceTargets(modulesToPackage, targets, forceTarget);
51
- if (targetSets.every((s) => s.modules.length === 0)) {
55
+ const targetSets = sliceTargets(modulesToPackageSorted, targets, forceTarget);
56
+ if (targetSets.every((s) => s.modulesSorted.length === 0)) {
52
57
  throw new Error(`None of the requested packages had any targets to build for '${targets.join(', ')}' (use --force-target to force)`);
53
58
  }
54
59
  const perLanguageDirectory = targetSets.length > 1 || forceSubdirectory;
@@ -56,7 +61,7 @@ async function pacmak({ argv = {}, clean = true, codeOnly = false, fingerprint =
56
61
  await Promise.all(mapParallelOrSerial(targetSets, async (targetSet) => {
57
62
  logging.info(`Packaging '${targetSet.targetType}' for ${describePackages(targetSet)}`);
58
63
  return timers
59
- .recordAsync(targetSet.targetType, () => buildTargetsForLanguage(targetSet.targetType, targetSet.modules, {
64
+ .recordAsync(targetSet.targetType, () => buildTargetsForLanguage(targetSet.targetType, targetSet.modulesSorted, {
60
65
  argv,
61
66
  clean,
62
67
  codeOnly,
@@ -74,10 +79,10 @@ async function pacmak({ argv = {}, clean = true, codeOnly = false, fingerprint =
74
79
  finally {
75
80
  if (clean) {
76
81
  logging.debug('Cleaning up');
77
- await timers.recordAsync('cleanup', () => Promise.all(modulesToPackage.map((m) => m.cleanup())));
82
+ await timers.recordAsync('cleanup', () => Promise.all(modulesToPackageFlat.map((m) => m.cleanup())));
78
83
  }
79
84
  else {
80
- logging.debug('Temporary directories retained (--no-clean)');
85
+ logging.info('Temporary directories retained (--no-clean)');
81
86
  }
82
87
  }
83
88
  logging.info(`Packaged. ${timers.display()}`);
@@ -101,12 +106,14 @@ async function buildTargetsForLanguage(targetLanguage, modules, { argv, clean, c
101
106
  languageSubdirectory: perLanguageDirectory,
102
107
  }).buildModules();
103
108
  }
104
- function sliceTargets(modules, requestedTargets, force) {
109
+ function sliceTargets(modulesSorted, requestedTargets, force) {
105
110
  const ret = new Array();
106
111
  for (const target of requestedTargets) {
107
112
  ret.push({
108
113
  targetType: target,
109
- modules: modules.filter((m) => force || m.availableTargets.includes(target)),
114
+ modulesSorted: modulesSorted
115
+ .map((modules) => modules.filter((m) => force || m.availableTargets.includes(target)))
116
+ .filter((ms) => ms.length > 0),
110
117
  });
111
118
  }
112
119
  return ret;
@@ -127,10 +134,11 @@ function mapParallelOrSerial(collection, mapper, { parallel }) {
127
134
  //#endregion
128
135
  //#region Misc. Utilities
129
136
  function describePackages(target) {
130
- if (target.modules.length > 0 && target.modules.length < 5) {
131
- return target.modules.map((m) => m.name).join(', ');
137
+ const modules = util_1.flatten(target.modulesSorted);
138
+ if (modules.length > 0 && modules.length < 5) {
139
+ return modules.map((m) => m.name).join(', ');
132
140
  }
133
- return `${target.modules.length} modules`;
141
+ return `${modules.length} modules`;
134
142
  }
135
143
  //#endregion
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBMEM7QUFDMUMsK0NBQXVDO0FBRXZDLHFDQUFxQztBQUNyQywrQ0FBcUU7QUFFckUsdUNBQXFEO0FBSzVDLDJGQUxjLG9CQUFVLE9BS2Q7QUFKbkIsbUNBQWlDO0FBS2pDLHFDQUEwRDtBQUFqRCwyR0FBQSxTQUFTLE9BQW9CO0FBRXRDOztHQUVHO0FBQ0ksS0FBSyxVQUFVLE1BQU0sQ0FBQyxFQUMzQixJQUFJLEdBQUcsRUFBRSxFQUNULEtBQUssR0FBRyxJQUFJLEVBQ1osUUFBUSxHQUFHLEtBQUssRUFDaEIsV0FBVyxHQUFHLElBQUksRUFDbEIsS0FBSyxHQUFHLEtBQUssRUFDYixpQkFBaUIsR0FBRyxJQUFJLEVBQ3hCLFdBQVcsR0FBRyxLQUFLLEVBQ25CLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsUUFBUSxHQUFHLElBQUksRUFDZixPQUFPLEdBQUcsS0FBSyxFQUNmLHFCQUFxQixFQUNyQixhQUFhLEVBQ2IsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsb0JBQVUsQ0FBQyxFQUNuQyxNQUFNLEdBQUcsSUFBSSxjQUFNLEVBQUUsRUFDckIsb0JBQW9CLEdBQUcsS0FBSyxFQUM1QixrQkFBa0IsR0FBRyxLQUFLLEdBQ1o7SUFDZCxNQUFNLE9BQU8sR0FBRyxJQUFJLHNCQUFPLENBQUMsRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLElBQUksYUFBYSxFQUFFO1FBQ2pCLE1BQU0sT0FBTyxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBQ2pEO0lBRUQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLDZCQUFlLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUUsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLGdCQUFnQixDQUFDLE1BQU0scUJBQXFCLENB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QUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUNqQyxDQUNOLENBQUM7S0FDSDtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxZQUFZO0FBRVoseUJBQXlCO0FBRXpCLFNBQVMsZ0JBQWdCLENBQUMsTUFBaUI7SUFDekMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQzFELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDckQ7SUFDRCxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLFVBQVUsQ0FBQztBQUM1QyxDQUFDO0FBRUQsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGVTeXN0ZW0gfSBmcm9tICdqc2lpLXJlZmxlY3QnO1xuaW1wb3J0IHsgUm9zZXR0YSB9IGZyb20gJ2pzaWktcm9zZXR0YSc7XG5cbmltcG9ydCAqIGFzIGxvZ2dpbmcgZnJvbSAnLi9sb2dnaW5nJztcbmltcG9ydCB7IGZpbmRKc2lpTW9kdWxlcywgdXBkYXRlQWxsTnBtSWdub3JlcyB9IGZyb20gJy4vbnBtLW1vZHVsZXMnO1xuaW1wb3J0IHsgSnNpaU1vZHVsZSB9IGZyb20gJy4vcGFja2FnaW5nJztcbmltcG9ydCB7IEFMTF9CVUlMREVSUywgVGFyZ2V0TmFtZSB9IGZyb20gJy4vdGFyZ2V0cyc7XG5pbXBvcnQgeyBUaW1lcnMgfSBmcm9tICcuL3RpbWVyJztcblxuLy8jcmVnaW9uIEV4cG9ydGVkIEFQSXNcblxuZXhwb3J0IHsgVGFyZ2V0TmFtZSB9O1xuZXhwb3J0IHsgY29uZmlndXJlIGFzIGNvbmZpZ3VyZUxvZ2dpbmcgfSBmcm9tICcuL2xvZ2dpbmcnO1xuXG4vKipcbiAqIEdlbmVyYXRlcyBjb2RlIGluIHRoZSBkZXNpcmVkIHRhcmdldHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwYWNtYWsoe1xuICBhcmd2ID0ge30sXG4gIGNsZWFuID0gdHJ1ZSxcbiAgY29kZU9ubHkgPSBmYWxzZSxcbiAgZmluZ2VycHJpbnQgPSB0cnVlLFxuICBmb3JjZSA9IGZhbHNlLFxuICBmb3JjZVN1YmRpcmVjdG9yeSA9IHRydWUsXG4gIGZvcmNlVGFyZ2V0ID0gZmFsc2UsXG4gIGlucHV0RGlyZWN0b3JpZXMsXG4gIG91dHB1dERpcmVjdG9yeSxcbiAgcGFyYWxsZWwgPSB0cnVlLFxuICByZWN1cnNlID0gZmFsc2UsXG4gIHJvc2V0dGFMaXZlQ29udmVyc2lvbixcbiAgcm9zZXR0YVRhYmxldCxcbiAgdGFyZ2V0cyA9IE9iamVjdC52YWx1ZXMoVGFyZ2V0TmFtZSksXG4gIHRpbWVycyA9IG5ldyBUaW1lcnMoKSxcbiAgdXBkYXRlTnBtSWdub3JlRmlsZXMgPSBmYWxzZSxcbiAgdmFsaWRhdGVBc3NlbWJsaWVzID0gZmFsc2UsXG59OiBQYWNtYWtPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHJvc2V0dGEgPSBuZXcgUm9zZXR0YSh7IGxpdmVDb252ZXJzaW9uOiByb3NldHRhTGl2ZUNvbnZlcnNpb24gfSk7XG4gIGlmIChyb3NldHRhVGFibGV0KSB7XG4gICAgYXdhaXQgcm9zZXR0YS5sb2FkVGFibGV0RnJvbUZpbGUocm9zZXR0YVRhYmxldCk7XG4gIH1cblxuICBjb25zdCBtb2R1bGVzVG9QYWNrYWdlID0gYXdhaXQgZmluZEpzaWlNb2R1bGVzKGlucHV0RGlyZWN0b3JpZXMsIHJlY3Vyc2UpO1xuICBsb2dnaW5nLmluZm8oYEZvdW5kICR7bW9kdWxlc1RvUGFja2FnZS5sZW5ndGh9IG1vZHVsZXMgdG8gcGFja2FnZWApO1xuICBpZiAobW9kdWxlc1RvUGFja2FnZS5sZW5ndGggPT09IDApIHtcbiAgICBsb2dnaW5nLndhcm4oJ05vdGhpbmcgdG8gZG8nKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAob3V0cHV0RGlyZWN0b3J5KSB7XG4gICAgZm9yIChjb25zdCBtb2Qgb2YgbW9kdWxlc1RvUGFja2FnZSkge1xuICAgICAgbW9kLm91dHB1dERpcmVjdG9yeSA9IG91dHB1dERpcmVjdG9yeTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodXBkYXRlTnBtSWdub3JlRmlsZXMpIHtcbiAgICAvLyBpZiBvdXRkaXIgaXMgY29taW5nIGZyb20gcGFja2FnZS5qc29uLCB2ZXJpZnkgaXQgaXMgZXhjbHVkZWQgYnkgLm5wbWlnbm9yZS4gaWYgaXQgaXMgZXhwbGljaXRseVxuICAgIC8vIGRlZmluZWQgdmlhIC0tb3V0LCBkb24ndCBwZXJmb3JtIHRoaXMgdmVyaWZpY2F0aW9uLlxuICAgIGF3YWl0IHVwZGF0ZUFsbE5wbUlnbm9yZXMobW9kdWxlc1RvUGFja2FnZSk7XG4gIH1cblxuICBhd2FpdCB0aW1lcnMucmVjb3JkQXN5bmMoJ25wbSBwYWNrJywgKCkgPT4ge1xuICAgIGxvZ2dpbmcuaW5mbygnUGFja2FnaW5nIE5QTSBidW5kbGVzJyk7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKG1vZHVsZXNUb1BhY2thZ2UubWFwKChtKSA9PiBtLm5wbVBhY2soKSkpO1xuICB9KTtcblxuICBhd2FpdCB0aW1lcnMucmVjb3JkQXN5bmMoJ2xvYWQganNpaScsICgpID0+IHtcbiAgICBsb2dnaW5nLmluZm8oJ0xvYWRpbmcganNpaSBhc3NlbWJsaWVzIGFuZCB0cmFuc2xhdGlvbnMnKTtcbiAgICBjb25zdCBzeXN0ZW0gPSBuZXcgVHlwZVN5c3RlbSgpO1xuICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgIG1vZHVsZXNUb1BhY2thZ2UubWFwKGFzeW5jIChtKSA9PiB7XG4gICAgICAgIGF3YWl0IG0ubG9hZChzeXN0ZW0sIHZhbGlkYXRlQXNzZW1ibGllcyk7XG4gICAgICAgIHJldHVybiByb3NldHRhLmFkZEFzc2VtYmx5KG0uYXNzZW1ibHkuc3BlYywgbS5tb2R1bGVEaXJlY3RvcnkpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfSk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB0YXJnZXRTZXRzID0gc2xpY2VUYXJnZXRzKG1vZHVsZXNUb1BhY2thZ2UsIHRhcmdldHMsIGZvcmNlVGFyZ2V0KTtcbiAgICBpZiAodGFyZ2V0U2V0cy5ldmVyeSgocykgPT4gcy5tb2R1bGVzLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE5vbmUgb2YgdGhlIHJlcXVlc3RlZCBwYWNrYWdlcyBoYWQgYW55IHRhcmdldHMgdG8gYnVpbGQgZm9yICcke3RhcmdldHMuam9pbihcbiAgICAgICAgICAnLCAnLFxuICAgICAgICApfScgKHVzZSAtLWZvcmNlLXRhcmdldCB0byBmb3JjZSlgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBwZXJMYW5ndWFnZURpcmVjdG9yeSA9IHRhcmdldFNldHMubGVuZ3RoID4gMSB8fCBmb3JjZVN1YmRpcmVjdG9yeTtcblxuICAgIC8vIFdlIHJ1biBhbGwgdGFyZ2V0IHNldHMgaW4gcGFyYWxsZWwgZm9yIG1pbmltYWwgd2FsbCBjbG9jayB0aW1lXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBtYXBQYXJhbGxlbE9yU2VyaWFsKFxuICAgICAgICB0YXJnZXRTZXRzLFxuICAgICAgICBhc3luYyAodGFyZ2V0U2V0KSA9PiB7XG4gICAgICAgICAgbG9nZ2luZy5pbmZvKFxuICAgICAgICAgICAgYFBhY2thZ2luZyAnJHt0YXJnZXRTZXQudGFyZ2V0VHlwZX0nIGZvciAke2Rlc2NyaWJlUGFja2FnZXMoXG4gICAgICAgICAgICAgIHRhcmdldFNldCxcbiAgICAgICAgICAgICl9YCxcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiB0aW1lcnNcbiAgICAgICAgICAgIC5yZWNvcmRBc3luYyh0YXJnZXRTZXQudGFyZ2V0VHlwZSwgKCkgPT5cbiAgICAgICAgICAgICAgYnVpbGRUYXJnZXRzRm9yTGFuZ3VhZ2UodGFyZ2V0U2V0LnRhcmdldFR5cGUsIHRhcmdldFNldC5tb2R1bGVzLCB7XG4gICAgICAgICAgICAgICAgYXJndixcbiAgICAgICAgICAgICAgICBjbGVhbixcbiAgICAgICAgICAgICAgICBjb2RlT25seSxcbiAgICAgICAgICAgICAgICBmaW5nZXJwcmludCxcbiAgICAgICAgICAgICAgICBmb3JjZSxcbiAgICAgICAgICAgICAgICBwZXJMYW5ndWFnZURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICByb3NldHRhLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKFxuICAgICAgICAgICAgICAoKSA9PiBsb2dnaW5nLmluZm8oYCR7dGFyZ2V0U2V0LnRhcmdldFR5cGV9IGZpbmlzaGVkYCksXG4gICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBsb2dnaW5nLndhcm4oYCR7dGFyZ2V0U2V0LnRhcmdldFR5cGV9IGZhaWxlZGApO1xuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnIpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgeyBwYXJhbGxlbCB9LFxuICAgICAgKSxcbiAgICApO1xuICB9IGZpbmFsbHkge1xuICAgIGlmIChjbGVhbikge1xuICAgICAgbG9nZ2luZy5kZWJ1ZygnQ2xlYW5pbmcgdXAnKTtcbiAgICAgIGF3YWl0IHRpbWVycy5yZWNvcmRBc3luYygnY2xlYW51cCcsICgpID0+XG4gICAgICAgIFByb21pc2UuYWxsKG1vZHVsZXNUb1BhY2thZ2UubWFwKChtKSA9PiBtLmNsZWFudXAoKSkpLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nZ2luZy5kZWJ1ZygnVGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHJldGFpbmVkICgtLW5vLWNsZWFuKScpO1xuICAgIH1cbiAgfVxuXG4gIGxvZ2dpbmcuaW5mbyhgUGFja2FnZWQuICR7dGltZXJzLmRpc3BsYXkoKX1gKTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIHByb3ZpZGVkIHRvIHRoZSBgcGFjbWFrYCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWNtYWtPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFsbCBjb21tYW5kLWxpbmUgYXJndW1lbnRzIHRoYXQgd2VyZSBwcm92aWRlZC4gVGhpcyBpbmNsdWRlcyB0YXJnZXQtc3BlY2lmaWMgcGFyYW1ldGVycywgdGhlXG4gICAqIGhhbmRsaW5nIG9mIHdoaWNoIGlzIHVwIHRvIHRoZSBjb2RlIGdlbmVyYXRvcnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHt9XG4gICAqL1xuICByZWFkb25seSBhcmd2PzogeyByZWFkb25seSBbbmFtZTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2xlYW4gdXAgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHVwb24gY29tcGxldGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2xlYW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGdlbmVyYXRlIHNvdXJjZSBjb2RlIG9ubHkgKGFzIG9wcG9zZWQgdG8gYnVpbHQgcGFja2FnZXMpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29kZU9ubHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIG9wcG9ydHVuaXN0aWNhbGx5IGluY2x1ZGUgYSBmaW5nZXJwcmludCBpbiBnZW5lcmF0ZWQgY29kZSwgdG8gYXZvaWQgcmUtZ2VuZXJhdGluZ1xuICAgKiBjb2RlIGlmIHRoZSBzb3VyY2UgYXNzZW1ibHkgaGFzIG5vdCBjaGFuZ2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBmaW5nZXJwcmludD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWx3YXlzIHJlLWdlbmVyYXRlIGNvZGUsIGV2ZW4gaWYgdGhlIGZpbmdlcnByaW50IGhhcyBub3QgY2hhbmdlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWx3YXlzIGVtaXQgY29kZSBpbiBhIHBlci1sYW5ndWFnZSBzdWJkaXJlY3RvcnksIGV2ZW4gaWYgdGhlcmUgaXMgb25seSBvbmUgdGFyZ2V0IGxhbmd1YWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBmb3JjZVN1YmRpcmVjdG9yeT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFsd2F5cyB0cnkgdG8gZ2VuZXJhdGUgY29kZSBmb3IgdGhlIHNlbGVjdGVkIHRhcmdldHMsIGV2ZW4gaWYgdGhvc2UgYXJlIG5vdCBjb25maWd1cmVkLiBVc2UgdGhpcyBvcHRpb24gYXQgeW91ciBvd25cbiAgICogcmlzaywgYXMgdGhlcmUgYXJlIHNpZ25pZmljYW50IGNoYW5jZXMgY29kZSBnZW5lcmF0b3JzIGNhbm5vdCBvcGVyYXRlIHdpdGhvdXQgYW55IGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBmb3JjZVRhcmdldD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGRpcmVjdG9yaWVzIHRvIGJlIGNvbnNpZGVyZWQgZm9yIGlucHV0IGFzc2VtYmxpZXMuXG4gICAqL1xuICByZWFkb25seSBpbnB1dERpcmVjdG9yaWVzOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSBpbiB3aGljaCB0byBvdXRwdXQgZ2VuZXJhdGVkIHBhY2thZ2VzIG9yIGNvZGUgKGlmICBgY29kZU9ubHlgIGlzIGB0cnVlYCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ29uZmlndXJlZCBpbiBgcGFja2FnZS5qc29uYFxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0RGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHBhcmFsbGVsaXplIGNvZGUgZ2VuZXJhdGlvbi4gVHVybmluZyB0aGlzIHRvIGBmYWxzZWAgY2FuIGJlIGJlbmVmaWNpYWwgaW4gY2VydGFpbiByZXNvdXJjZS1jb25zdHJhaW5lZFxuICAgKiBlbnZpcm9ubWVudHMsIHN1Y2ggYXMgZnJlZSBDSS9DRCBvZmZlcmluZ3MsIGFzIGl0IHJlZHVjZXMgdGhlIHByZXNzdXJlIG9uIElPLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwYXJhbGxlbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVjdXJzaXZlbHkgZ2VuZXJhdGUgZm9yIHRoZSBzZWxlY3RlZCBwYWNrYWdlcycgZGVwZW5kZW5jaWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVjdXJzZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYGpzaWktcm9zZXR0YWAgY29udmVyc2lvbiBzaG91bGQgYmUgcGVyZm9ybWVkIGluLWJhbmQgZm9yIGV4YW1wbGVzIGZvdW5kIGluIGRvY3VtZW50YXRpb24gd2hpY2ggYXJlIG5vdFxuICAgKiBhbHJlYWR5IHRyYW5zbGF0ZWQgaW4gdGhlIGByb3NldHRhVGFibGV0YCBmaWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcm9zZXR0YUxpdmVDb252ZXJzaW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSBSb3NldHRhIHRhYmxldCBmaWxlIHdoZXJlIHRyYW5zbGF0aW9ucyBmb3IgY29kZSBleGFtcGxlcyBjYW4gYmUgZm91bmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgcm9zZXR0YVRhYmxldD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgdGFyZ2V0cyBmb3Igd2hpY2ggY29kZSBzaG91bGQgYmUgZ2VuZXJhdGVkLiBVbmxlc3MgYGZvcmNlVGFyZ2V0YCBpcyBgdHJ1ZWAsIGEgZ2l2ZW4gdGFyZ2V0IHdpbGwgb25seVxuICAgKiBiZSBnZW5lcmF0ZWQgZm9yIGFzc2VtYmxpZXMgdGhhdCBoYXZlIGNvbmZpZ3VyZWQgaXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IE9iamVjdC52YWx1ZXMoVGFyZ2V0TmFtZSlcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldHM/OiByZWFkb25seSBUYXJnZXROYW1lW107XG5cbiAgLyoqXG4gICAqIEEgYFRpbWVyc2Agb2JqZWN0LCBpZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gaW5jbHVkaW5nIHRoZSByb3NldHRhIHJ1biBpbiBhIGxhcmdlciBzZXQgb2YgdGltZWQgb3BlcmF0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IHRpbWVycz86IFRpbWVycztcblxuICAvKipcbiAgICogV2hldGhlciB0byB1cGRhdGUgLm5wbWlnbm9yZSBmaWxlcyBpZiBgb3V0cHV0RGlyZWN0b3J5YCBjb21lcyBmcm9tIHRoZSBgcGFja2FnZS5qc29uYCBmaWxlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZU5wbUlnbm9yZUZpbGVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBhc3NlbWJsaWVzIHNob3VsZCBiZSB2YWxpZGF0ZWQgb3Igbm90LiBWYWxpZGF0aW9uIGNhbiBiZSBleHBlbnNpdmUgYW5kIGNhbiBiZSBza2lwcGVkIGlmIHRoZSBhc3NlbWJsaWVzXG4gICAqIGNhbiBiZSBhc3N1bWVkIHRvIGJlIHZhbGlkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgdmFsaWRhdGVBc3NlbWJsaWVzPzogYm9vbGVhbjtcbn1cblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiBCdWlsZGluZ1xuXG5hc3luYyBmdW5jdGlvbiBidWlsZFRhcmdldHNGb3JMYW5ndWFnZShcbiAgdGFyZ2V0TGFuZ3VhZ2U6IHN0cmluZyxcbiAgbW9kdWxlczogcmVhZG9ubHkgSnNpaU1vZHVsZVtdLFxuICB7XG4gICAgYXJndixcbiAgICBjbGVhbixcbiAgICBjb2RlT25seSxcbiAgICBmaW5nZXJwcmludCxcbiAgICBmb3JjZSxcbiAgICBwZXJMYW5ndWFnZURpcmVjdG9yeSxcbiAgICByb3NldHRhLFxuICB9OiB7XG4gICAgYXJndjogeyByZWFkb25seSBbbmFtZTogc3RyaW5nXTogYW55IH07XG4gICAgY2xlYW46IGJvb2xlYW47XG4gICAgY29kZU9ubHk6IGJvb2xlYW47XG4gICAgZmluZ2VycHJpbnQ6IGJvb2xlYW47XG4gICAgZm9yY2U6IGJvb2xlYW47XG4gICAgcGVyTGFuZ3VhZ2VEaXJlY3Rvcnk6IGJvb2xlYW47XG4gICAgcm9zZXR0YTogUm9zZXR0YTtcbiAgfSxcbik6IFByb21pc2U8dm9pZD4ge1xuICAvLyBgYGFyZ3YudGFyZ2V0YGAgaXMgZ3VhcmFudGVlZCB2YWxpZCBieSBgYHlhcmdzYGAgdGhyb3VnaCB0aGUgYGBjaG9pY2VzYGAgZGlyZWN0aXZlLlxuICBjb25zdCBmYWN0b3J5ID0gQUxMX0JVSUxERVJTW3RhcmdldExhbmd1YWdlIGFzIFRhcmdldE5hbWVdO1xuICBpZiAoIWZhY3RvcnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHRhcmdldDogJyR7dGFyZ2V0TGFuZ3VhZ2V9J2ApO1xuICB9XG5cbiAgcmV0dXJuIGZhY3RvcnkobW9kdWxlcywge1xuICAgIGNsZWFuOiBjbGVhbixcbiAgICBjb2RlT25seTogY29kZU9ubHksXG4gICAgcm9zZXR0YSxcbiAgICBmb3JjZTogZm9yY2UsXG4gICAgZmluZ2VycHJpbnQ6IGZpbmdlcnByaW50LFxuICAgIGFyZ3VtZW50czogYXJndixcbiAgICBsYW5ndWFnZVN1YmRpcmVjdG9yeTogcGVyTGFuZ3VhZ2VEaXJlY3RvcnksXG4gIH0pLmJ1aWxkTW9kdWxlcygpO1xufVxuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIFRhcmdldCBTbGljaW5nXG5cbi8qKlxuICogQSBzZXQgb2YgcGFja2FnZXMgKHRhcmdldHMpIHRyYW5zbGF0ZWQgaW50byB0aGUgc2FtZSBsYW5ndWFnZVxuICovXG5pbnRlcmZhY2UgVGFyZ2V0U2V0IHtcbiAgdGFyZ2V0VHlwZTogc3RyaW5nO1xuICBtb2R1bGVzOiByZWFkb25seSBKc2lpTW9kdWxlW107XG59XG5cbmZ1bmN0aW9uIHNsaWNlVGFyZ2V0cyhcbiAgbW9kdWxlczogcmVhZG9ubHkgSnNpaU1vZHVsZVtdLFxuICByZXF1ZXN0ZWRUYXJnZXRzOiByZWFkb25seSBUYXJnZXROYW1lW10sXG4gIGZvcmNlOiBib29sZWFuLFxuKTogcmVhZG9ubHkgVGFyZ2V0U2V0W10ge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8VGFyZ2V0U2V0PigpO1xuICBmb3IgKGNvbnN0IHRhcmdldCBvZiByZXF1ZXN0ZWRUYXJnZXRzKSB7XG4gICAgcmV0LnB1c2goe1xuICAgICAgdGFyZ2V0VHlwZTogdGFyZ2V0LFxuICAgICAgbW9kdWxlczogbW9kdWxlcy5maWx0ZXIoXG4gICAgICAgIChtKSA9PiBmb3JjZSB8fCBtLmF2YWlsYWJsZVRhcmdldHMuaW5jbHVkZXModGFyZ2V0KSxcbiAgICAgICksXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiBQYXJhbGxlbGl6YXRpb25cblxuZnVuY3Rpb24gbWFwUGFyYWxsZWxPclNlcmlhbDxULCBSPihcbiAgY29sbGVjdGlvbjogcmVhZG9ubHkgVFtdLFxuICBtYXBwZXI6IChpdGVtOiBUKSA9PiBQcm9taXNlPFI+LFxuICB7IHBhcmFsbGVsIH06IHsgcGFyYWxsZWw6IGJvb2xlYW4gfSxcbik6IEFycmF5PFByb21pc2U8Uj4+IHtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PFByb21pc2U8Uj4+KCk7XG4gIGZvciAoY29uc3QgaXRlbSBvZiBjb2xsZWN0aW9uKSB7XG4gICAgcmVzdWx0LnB1c2goXG4gICAgICByZXN1bHQubGVuZ3RoID09PSAwIHx8IHBhcmFsbGVsXG4gICAgICAgID8gLy8gUnVubmluZyBwYXJhbGxlbCwgb3IgZmlyc3QgZWxlbWVudFxuICAgICAgICAgIG1hcHBlcihpdGVtKVxuICAgICAgICA6IC8vIFdhaXQgZm9yIHRoZSBwcmV2aW91cyBwcm9taXNlLCB0aGVuIG1ha2UgdGhlIG5leHQgb25lXG4gICAgICAgICAgcmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXS50aGVuKFxuICAgICAgICAgICAgKCkgPT4gbWFwcGVyKGl0ZW0pLFxuICAgICAgICAgICAgKGVycm9yKSA9PiBQcm9taXNlLnJlamVjdChlcnJvciksXG4gICAgICAgICAgKSxcbiAgICApO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gTWlzYy4gVXRpbGl0aWVzXG5cbmZ1bmN0aW9uIGRlc2NyaWJlUGFja2FnZXModGFyZ2V0OiBUYXJnZXRTZXQpIHtcbiAgaWYgKHRhcmdldC5tb2R1bGVzLmxlbmd0aCA+IDAgJiYgdGFyZ2V0Lm1vZHVsZXMubGVuZ3RoIDwgNSkge1xuICAgIHJldHVybiB0YXJnZXQubW9kdWxlcy5tYXAoKG0pID0+IG0ubmFtZSkuam9pbignLCAnKTtcbiAgfVxuICByZXR1cm4gYCR7dGFyZ2V0Lm1vZHVsZXMubGVuZ3RofSBtb2R1bGVzYDtcbn1cblxuLy8jZW5kcmVnaW9uXG4iXX0=
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBMEM7QUFDMUMsK0NBQTJEO0FBRTNELHFDQUFxQztBQUNyQywrQ0FBcUU7QUFFckUsdUNBQXFEO0FBTzVDLDJGQVBjLG9CQUFVLE9BT2Q7QUFObkIsbUNBQWlDO0FBRWpDLGlDQUFpQztBQUtqQyxxQ0FBMEQ7QUFBakQsMkdBQUEsU0FBUyxPQUFvQjtBQUV0Qzs7R0FFRztBQUNJLEtBQUssVUFBVSxNQUFNLENBQUMsRUFDM0IsSUFBSSxHQUFHLEVBQUUsRUFDVCxLQUFLLEdBQUcsSUFBSSxFQUNaLFFBQVEsR0FBRyxLQUFLLEVBQ2hCLFdBQVcsR0FBRyxJQUFJLEVBQ2xCLEtBQUssR0FBRyxLQUFLLEVBQ2IsaUJBQWlCLEdBQUcsSUFBSSxFQUN4QixXQUFXLEdBQUcsS0FBSyxFQUNuQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLFFBQVEsR0FBRyxJQUFJLEVBQ2YsT0FBTyxHQUFHLEtBQUssRUFDZixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLG9CQUFVLENBQUMsRUFDbkMsTUFBTSxHQUFHLElBQUksY0FBTSxFQUFFLEVBQ3JCLHNCQUFzQixHQUFHLFNBQVMsRUFDbEMsb0JBQW9CLEdBQUcsS0FBSyxFQUM1QixrQkFBa0IsR0FBRyxLQUFLLEdBQ1o7SUFDZCxNQUFNLGVBQWUsR0FDbkIsc0JBQXNCLGFBQXRCLHNCQUFzQixjQUF0QixzQkFBc0IsR0FDdEIsQ0FBQyxxQkFBcUI7UUFDcEIsQ0FBQyxDQUFDLGlDQUFrQixDQUFDLFNBQVM7UUFDOUIsQ0FBQyxDQUFDLGlDQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRW5DLE1BQU0sT0FBTyxHQUFHLElBQUksc0JBQU8sQ0FBQyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDakQsSUFBSSxhQUFhLEVBQUU7UUFD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Qy9CLEVBQUUsUUFBUSxFQUF5QjtJQUVuQyxNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBYyxDQUFDO0lBQ3ZDLEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxFQUFFO1FBQzdCLE1BQU0sQ0FBQyxJQUFJLENBQ1QsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksUUFBUTtZQUM3QixDQUFDLENBQUMscUNBQXFDO2dCQUNyQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ2QsQ0FBQyxDQUFDLHdEQUF3RDtnQkFDeEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM1QixHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQ2xCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUNqQyxDQUNOLENBQUM7S0FDSDtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxZQUFZO0FBRVoseUJBQXlCO0FBRXpCLFNBQVMsZ0JBQWdCLENBQUMsTUFBaUI7SUFDekMsTUFBTSxPQUFPLEdBQUcsY0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQzVDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM5QztJQUNELE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxVQUFVLENBQUM7QUFDckMsQ0FBQztBQUVELFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlU3lzdGVtIH0gZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IFJvc2V0dGEsIFVua25vd25TbmlwcGV0TW9kZSB9IGZyb20gJ2pzaWktcm9zZXR0YSc7XG5cbmltcG9ydCAqIGFzIGxvZ2dpbmcgZnJvbSAnLi9sb2dnaW5nJztcbmltcG9ydCB7IGZpbmRKc2lpTW9kdWxlcywgdXBkYXRlQWxsTnBtSWdub3JlcyB9IGZyb20gJy4vbnBtLW1vZHVsZXMnO1xuaW1wb3J0IHsgSnNpaU1vZHVsZSB9IGZyb20gJy4vcGFja2FnaW5nJztcbmltcG9ydCB7IEFMTF9CVUlMREVSUywgVGFyZ2V0TmFtZSB9IGZyb20gJy4vdGFyZ2V0cyc7XG5pbXBvcnQgeyBUaW1lcnMgfSBmcm9tICcuL3RpbWVyJztcbmltcG9ydCB7IFRvcG9zb3J0ZWQgfSBmcm9tICcuL3RvcG9zb3J0JztcbmltcG9ydCB7IGZsYXR0ZW4gfSBmcm9tICcuL3V0aWwnO1xuXG4vLyNyZWdpb24gRXhwb3J0ZWQgQVBJc1xuXG5leHBvcnQgeyBUYXJnZXROYW1lIH07XG5leHBvcnQgeyBjb25maWd1cmUgYXMgY29uZmlndXJlTG9nZ2luZyB9IGZyb20gJy4vbG9nZ2luZyc7XG5cbi8qKlxuICogR2VuZXJhdGVzIGNvZGUgaW4gdGhlIGRlc2lyZWQgdGFyZ2V0cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhY21hayh7XG4gIGFyZ3YgPSB7fSxcbiAgY2xlYW4gPSB0cnVlLFxuICBjb2RlT25seSA9IGZhbHNlLFxuICBmaW5nZXJwcmludCA9IHRydWUsXG4gIGZvcmNlID0gZmFsc2UsXG4gIGZvcmNlU3ViZGlyZWN0b3J5ID0gdHJ1ZSxcbiAgZm9yY2VUYXJnZXQgPSBmYWxzZSxcbiAgaW5wdXREaXJlY3RvcmllcyxcbiAgb3V0cHV0RGlyZWN0b3J5LFxuICBwYXJhbGxlbCA9IHRydWUsXG4gIHJlY3Vyc2UgPSBmYWxzZSxcbiAgcm9zZXR0YUxpdmVDb252ZXJzaW9uLFxuICByb3NldHRhVGFibGV0LFxuICB0YXJnZXRzID0gT2JqZWN0LnZhbHVlcyhUYXJnZXROYW1lKSxcbiAgdGltZXJzID0gbmV3IFRpbWVycygpLFxuICByb3NldHRhVW5rbm93blNuaXBwZXRzID0gdW5kZWZpbmVkLFxuICB1cGRhdGVOcG1JZ25vcmVGaWxlcyA9IGZhbHNlLFxuICB2YWxpZGF0ZUFzc2VtYmxpZXMgPSBmYWxzZSxcbn06IFBhY21ha09wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgdW5rbm93blNuaXBwZXRzID1cbiAgICByb3NldHRhVW5rbm93blNuaXBwZXRzID8/XG4gICAgKHJvc2V0dGFMaXZlQ29udmVyc2lvblxuICAgICAgPyBVbmtub3duU25pcHBldE1vZGUuVFJBTlNMQVRFXG4gICAgICA6IFVua25vd25TbmlwcGV0TW9kZS5WRVJCQVRJTSk7XG5cbiAgY29uc3Qgcm9zZXR0YSA9IG5ldyBSb3NldHRhKHsgdW5rbm93blNuaXBwZXRzIH0pO1xuICBpZiAocm9zZXR0YVRhYmxldCkge1xuICAgIGF3YWl0IHJvc2V0dGEubG9hZFRhYmxldEZyb21GaWxlKHJvc2V0dGFUYWJsZXQpO1xuICB9XG5cbiAgY29uc3QgbW9kdWxlc1RvUGFja2FnZVNvcnRlZCA9IGF3YWl0IGZpbmRKc2lpTW9kdWxlcyhcbiAgICBpbnB1dERpcmVjdG9yaWVzLFxuICAgIHJlY3Vyc2UsXG4gICk7XG4gIGNvbnN0IG1vZHVsZXNUb1BhY2thZ2VGbGF0ID0gZmxhdHRlbihtb2R1bGVzVG9QYWNrYWdlU29ydGVkKTtcblxuICBsb2dnaW5nLmluZm8oYEZvdW5kICR7bW9kdWxlc1RvUGFja2FnZUZsYXQubGVuZ3RofSBtb2R1bGVzIHRvIHBhY2thZ2VgKTtcbiAgaWYgKG1vZHVsZXNUb1BhY2thZ2VGbGF0Lmxlbmd0aCA9PT0gMCkge1xuICAgIGxvZ2dpbmcud2FybignTm90aGluZyB0byBkbycpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChvdXRwdXREaXJlY3RvcnkpIHtcbiAgICBmb3IgKGNvbnN0IG1vZCBvZiBtb2R1bGVzVG9QYWNrYWdlRmxhdCkge1xuICAgICAgbW9kLm91dHB1dERpcmVjdG9yeSA9IG91dHB1dERpcmVjdG9yeTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodXBkYXRlTnBtSWdub3JlRmlsZXMpIHtcbiAgICAvLyBpZiBvdXRkaXIgaXMgY29taW5nIGZyb20gcGFja2FnZS5qc29uLCB2ZXJpZnkgaXQgaXMgZXhjbHVkZWQgYnkgLm5wbWlnbm9yZS4gaWYgaXQgaXMgZXhwbGljaXRseVxuICAgIC8vIGRlZmluZWQgdmlhIC0tb3V0LCBkb24ndCBwZXJmb3JtIHRoaXMgdmVyaWZpY2F0aW9uLlxuICAgIGF3YWl0IHVwZGF0ZUFsbE5wbUlnbm9yZXMobW9kdWxlc1RvUGFja2FnZUZsYXQpO1xuICB9XG5cbiAgYXdhaXQgdGltZXJzLnJlY29yZEFzeW5jKCducG0gcGFjaycsICgpID0+IHtcbiAgICBsb2dnaW5nLmluZm8oJ1BhY2thZ2luZyBOUE0gYnVuZGxlcycpO1xuICAgIHJldHVybiBQcm9taXNlLmFsbChtb2R1bGVzVG9QYWNrYWdlRmxhdC5tYXAoKG0pID0+IG0ubnBtUGFjaygpKSk7XG4gIH0pO1xuXG4gIGF3YWl0IHRpbWVycy5yZWNvcmRBc3luYygnbG9hZCBqc2lpJywgKCkgPT4ge1xuICAgIGxvZ2dpbmcuaW5mbygnTG9hZGluZyBqc2lpIGFzc2VtYmxpZXMgYW5kIHRyYW5zbGF0aW9ucycpO1xuICAgIGNvbnN0IHN5c3RlbSA9IG5ldyBUeXBlU3lzdGVtKCk7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgICAgbW9kdWxlc1RvUGFja2FnZUZsYXQubWFwKGFzeW5jIChtKSA9PiB7XG4gICAgICAgIGF3YWl0IG0ubG9hZChzeXN0ZW0sIHZhbGlkYXRlQXNzZW1ibGllcyk7XG4gICAgICAgIHJldHVybiByb3NldHRhLmFkZEFzc2VtYmx5KG0uYXNzZW1ibHkuc3BlYywgbS5tb2R1bGVEaXJlY3RvcnkpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfSk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB0YXJnZXRTZXRzID0gc2xpY2VUYXJnZXRzKFxuICAgICAgbW9kdWxlc1RvUGFja2FnZVNvcnRlZCxcbiAgICAgIHRhcmdldHMsXG4gICAgICBmb3JjZVRhcmdldCxcbiAgICApO1xuICAgIGlmICh0YXJnZXRTZXRzLmV2ZXJ5KChzKSA9PiBzLm1vZHVsZXNTb3J0ZWQubGVuZ3RoID09PSAwKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTm9uZSBvZiB0aGUgcmVxdWVzdGVkIHBhY2thZ2VzIGhhZCBhbnkgdGFyZ2V0cyB0byBidWlsZCBmb3IgJyR7dGFyZ2V0cy5qb2luKFxuICAgICAgICAgICcsICcsXG4gICAgICAgICl9JyAodXNlIC0tZm9yY2UtdGFyZ2V0IHRvIGZvcmNlKWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHBlckxhbmd1YWdlRGlyZWN0b3J5ID0gdGFyZ2V0U2V0cy5sZW5ndGggPiAxIHx8IGZvcmNlU3ViZGlyZWN0b3J5O1xuXG4gICAgLy8gV2UgcnVuIGFsbCB0YXJnZXQgc2V0cyBpbiBwYXJhbGxlbCBmb3IgbWluaW1hbCB3YWxsIGNsb2NrIHRpbWVcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1hcFBhcmFsbGVsT3JTZXJpYWwoXG4gICAgICAgIHRhcmdldFNldHMsXG4gICAgICAgIGFzeW5jICh0YXJnZXRTZXQpID0+IHtcbiAgICAgICAgICBsb2dnaW5nLmluZm8oXG4gICAgICAgICAgICBgUGFja2FnaW5nICcke3RhcmdldFNldC50YXJnZXRUeXBlfScgZm9yICR7ZGVzY3JpYmVQYWNrYWdlcyhcbiAgICAgICAgICAgICAgdGFyZ2V0U2V0LFxuICAgICAgICAgICAgKX1gLFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHRpbWVyc1xuICAgICAgICAgICAgLnJlY29yZEFzeW5jKHRhcmdldFNldC50YXJnZXRUeXBlLCAoKSA9PlxuICAgICAgICAgICAgICBidWlsZFRhcmdldHNGb3JMYW5ndWFnZShcbiAgICAgICAgICAgICAgICB0YXJnZXRTZXQudGFyZ2V0VHlwZSxcbiAgICAgICAgICAgICAgICB0YXJnZXRTZXQubW9kdWxlc1NvcnRlZCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBhcmd2LFxuICAgICAgICAgICAgICAgICAgY2xlYW4sXG4gICAgICAgICAgICAgICAgICBjb2RlT25seSxcbiAgICAgICAgICAgICAgICAgIGZpbmdlcnByaW50LFxuICAgICAgICAgICAgICAgICAgZm9yY2UsXG4gICAgICAgICAgICAgICAgICBwZXJMYW5ndWFnZURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgIHJvc2V0dGEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKFxuICAgICAgICAgICAgICAoKSA9PiBsb2dnaW5nLmluZm8oYCR7dGFyZ2V0U2V0LnRhcmdldFR5cGV9IGZpbmlzaGVkYCksXG4gICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBsb2dnaW5nLndhcm4oYCR7dGFyZ2V0U2V0LnRhcmdldFR5cGV9IGZhaWxlZGApO1xuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnIpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgeyBwYXJhbGxlbCB9LFxuICAgICAgKSxcbiAgICApO1xuICB9IGZpbmFsbHkge1xuICAgIGlmIChjbGVhbikge1xuICAgICAgbG9nZ2luZy5kZWJ1ZygnQ2xlYW5pbmcgdXAnKTtcbiAgICAgIGF3YWl0IHRpbWVycy5yZWNvcmRBc3luYygnY2xlYW51cCcsICgpID0+XG4gICAgICAgIFByb21pc2UuYWxsKG1vZHVsZXNUb1BhY2thZ2VGbGF0Lm1hcCgobSkgPT4gbS5jbGVhbnVwKCkpKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZ2dpbmcuaW5mbygnVGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHJldGFpbmVkICgtLW5vLWNsZWFuKScpO1xuICAgIH1cbiAgfVxuXG4gIGxvZ2dpbmcuaW5mbyhgUGFja2FnZWQuICR7dGltZXJzLmRpc3BsYXkoKX1gKTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIHByb3ZpZGVkIHRvIHRoZSBgcGFjbWFrYCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWNtYWtPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFsbCBjb21tYW5kLWxpbmUgYXJndW1lbnRzIHRoYXQgd2VyZSBwcm92aWRlZC4gVGhpcyBpbmNsdWRlcyB0YXJnZXQtc3BlY2lmaWMgcGFyYW1ldGVycywgdGhlXG4gICAqIGhhbmRsaW5nIG9mIHdoaWNoIGlzIHVwIHRvIHRoZSBjb2RlIGdlbmVyYXRvcnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHt9XG4gICAqL1xuICByZWFkb25seSBhcmd2PzogeyByZWFkb25seSBbbmFtZTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2xlYW4gdXAgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHVwb24gY29tcGxldGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2xlYW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGdlbmVyYXRlIHNvdXJjZSBjb2RlIG9ubHkgKGFzIG9wcG9zZWQgdG8gYnVpbHQgcGFja2FnZXMpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29kZU9ubHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIG9wcG9ydHVuaXN0aWNhbGx5IGluY2x1ZGUgYSBmaW5nZXJwcmludCBpbiBnZW5lcmF0ZWQgY29kZSwgdG8gYXZvaWQgcmUtZ2VuZXJhdGluZ1xuICAgKiBjb2RlIGlmIHRoZSBzb3VyY2UgYXNzZW1ibHkgaGFzIG5vdCBjaGFuZ2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBmaW5nZXJwcmludD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWx3YXlzIHJlLWdlbmVyYXRlIGNvZGUsIGV2ZW4gaWYgdGhlIGZpbmdlcnByaW50IGhhcyBub3QgY2hhbmdlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWx3YXlzIGVtaXQgY29kZSBpbiBhIHBlci1sYW5ndWFnZSBzdWJkaXJlY3RvcnksIGV2ZW4gaWYgdGhlcmUgaXMgb25seSBvbmUgdGFyZ2V0IGxhbmd1YWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBmb3JjZVN1YmRpcmVjdG9yeT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFsd2F5cyB0cnkgdG8gZ2VuZXJhdGUgY29kZSBmb3IgdGhlIHNlbGVjdGVkIHRhcmdldHMsIGV2ZW4gaWYgdGhvc2UgYXJlIG5vdCBjb25maWd1cmVkLiBVc2UgdGhpcyBvcHRpb24gYXQgeW91ciBvd25cbiAgICogcmlzaywgYXMgdGhlcmUgYXJlIHNpZ25pZmljYW50IGNoYW5jZXMgY29kZSBnZW5lcmF0b3JzIGNhbm5vdCBvcGVyYXRlIHdpdGhvdXQgYW55IGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBmb3JjZVRhcmdldD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGRpcmVjdG9yaWVzIHRvIGJlIGNvbnNpZGVyZWQgZm9yIGlucHV0IGFzc2VtYmxpZXMuXG4gICAqL1xuICByZWFkb25seSBpbnB1dERpcmVjdG9yaWVzOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSBpbiB3aGljaCB0byBvdXRwdXQgZ2VuZXJhdGVkIHBhY2thZ2VzIG9yIGNvZGUgKGlmICBgY29kZU9ubHlgIGlzIGB0cnVlYCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ29uZmlndXJlZCBpbiBgcGFja2FnZS5qc29uYFxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0RGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHBhcmFsbGVsaXplIGNvZGUgZ2VuZXJhdGlvbi4gVHVybmluZyB0aGlzIHRvIGBmYWxzZWAgY2FuIGJlIGJlbmVmaWNpYWwgaW4gY2VydGFpbiByZXNvdXJjZS1jb25zdHJhaW5lZFxuICAgKiBlbnZpcm9ubWVudHMsIHN1Y2ggYXMgZnJlZSBDSS9DRCBvZmZlcmluZ3MsIGFzIGl0IHJlZHVjZXMgdGhlIHByZXNzdXJlIG9uIElPLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwYXJhbGxlbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVjdXJzaXZlbHkgZ2VuZXJhdGUgZm9yIHRoZSBzZWxlY3RlZCBwYWNrYWdlcycgZGVwZW5kZW5jaWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVjdXJzZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYGpzaWktcm9zZXR0YWAgY29udmVyc2lvbiBzaG91bGQgYmUgcGVyZm9ybWVkIGluLWJhbmQgZm9yIGV4YW1wbGVzIGZvdW5kIGluIGRvY3VtZW50YXRpb24gd2hpY2ggYXJlIG5vdFxuICAgKiBhbHJlYWR5IHRyYW5zbGF0ZWQgaW4gdGhlIGByb3NldHRhVGFibGV0YCBmaWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYHJvc2V0dGFVbmtub3duU25pcHBldHNgIGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSByb3NldHRhTGl2ZUNvbnZlcnNpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBIb3cgcm9zZXR0YSBzaG91bGQgdHJlYXQgc25pcHBldHMgdGhhdCBjYW5ub3QgYmUgbG9hZGVkIGZyb20gYSB0cmFuc2xhdGlvbiB0YWJsZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsbHMgYmFjayB0byB0aGUgZGVmYXVsdCBvZiBgcm9zZXR0YUxpdmVDb252ZXJzaW9uYC5cbiAgICovXG4gIHJlYWRvbmx5IHJvc2V0dGFVbmtub3duU25pcHBldHM/OiBVbmtub3duU25pcHBldE1vZGU7XG5cbiAgLyoqXG4gICAqIEEgUm9zZXR0YSB0YWJsZXQgZmlsZSB3aGVyZSB0cmFuc2xhdGlvbnMgZm9yIGNvZGUgZXhhbXBsZXMgY2FuIGJlIGZvdW5kLlxuICAgKlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHJvc2V0dGFUYWJsZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHRhcmdldHMgZm9yIHdoaWNoIGNvZGUgc2hvdWxkIGJlIGdlbmVyYXRlZC4gVW5sZXNzIGBmb3JjZVRhcmdldGAgaXMgYHRydWVgLCBhIGdpdmVuIHRhcmdldCB3aWxsIG9ubHlcbiAgICogYmUgZ2VuZXJhdGVkIGZvciBhc3NlbWJsaWVzIHRoYXQgaGF2ZSBjb25maWd1cmVkIGl0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBPYmplY3QudmFsdWVzKFRhcmdldE5hbWUpXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRzPzogcmVhZG9ubHkgVGFyZ2V0TmFtZVtdO1xuXG4gIC8qKlxuICAgKiBBIGBUaW1lcnNgIG9iamVjdCwgaWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIGluY2x1ZGluZyB0aGUgcm9zZXR0YSBydW4gaW4gYSBsYXJnZXIgc2V0IG9mIHRpbWVkIG9wZXJhdGlvbnMuXG4gICAqL1xuICByZWFkb25seSB0aW1lcnM/OiBUaW1lcnM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXBkYXRlIC5ucG1pZ25vcmUgZmlsZXMgaWYgYG91dHB1dERpcmVjdG9yeWAgY29tZXMgZnJvbSB0aGUgYHBhY2thZ2UuanNvbmAgZmlsZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB1cGRhdGVOcG1JZ25vcmVGaWxlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYXNzZW1ibGllcyBzaG91bGQgYmUgdmFsaWRhdGVkIG9yIG5vdC4gVmFsaWRhdGlvbiBjYW4gYmUgZXhwZW5zaXZlIGFuZCBjYW4gYmUgc2tpcHBlZCBpZiB0aGUgYXNzZW1ibGllc1xuICAgKiBjYW4gYmUgYXNzdW1lZCB0byBiZSB2YWxpZC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHZhbGlkYXRlQXNzZW1ibGllcz86IGJvb2xlYW47XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gQnVpbGRpbmdcblxuYXN5bmMgZnVuY3Rpb24gYnVpbGRUYXJnZXRzRm9yTGFuZ3VhZ2UoXG4gIHRhcmdldExhbmd1YWdlOiBzdHJpbmcsXG4gIG1vZHVsZXM6IFRvcG9zb3J0ZWQ8SnNpaU1vZHVsZT4sXG4gIHtcbiAgICBhcmd2LFxuICAgIGNsZWFuLFxuICAgIGNvZGVPbmx5LFxuICAgIGZpbmdlcnByaW50LFxuICAgIGZvcmNlLFxuICAgIHBlckxhbmd1YWdlRGlyZWN0b3J5LFxuICAgIHJvc2V0dGEsXG4gIH06IHtcbiAgICBhcmd2OiB7IHJlYWRvbmx5IFtuYW1lOiBzdHJpbmddOiBhbnkgfTtcbiAgICBjbGVhbjogYm9vbGVhbjtcbiAgICBjb2RlT25seTogYm9vbGVhbjtcbiAgICBmaW5nZXJwcmludDogYm9vbGVhbjtcbiAgICBmb3JjZTogYm9vbGVhbjtcbiAgICBwZXJMYW5ndWFnZURpcmVjdG9yeTogYm9vbGVhbjtcbiAgICByb3NldHRhOiBSb3NldHRhO1xuICB9LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIGBgYXJndi50YXJnZXRgYCBpcyBndWFyYW50ZWVkIHZhbGlkIGJ5IGBgeWFyZ3NgYCB0aHJvdWdoIHRoZSBgYGNob2ljZXNgYCBkaXJlY3RpdmUuXG4gIGNvbnN0IGZhY3RvcnkgPSBBTExfQlVJTERFUlNbdGFyZ2V0TGFuZ3VhZ2UgYXMgVGFyZ2V0TmFtZV07XG4gIGlmICghZmFjdG9yeSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgdGFyZ2V0OiAnJHt0YXJnZXRMYW5ndWFnZX0nYCk7XG4gIH1cblxuICByZXR1cm4gZmFjdG9yeShtb2R1bGVzLCB7XG4gICAgY2xlYW46IGNsZWFuLFxuICAgIGNvZGVPbmx5OiBjb2RlT25seSxcbiAgICByb3NldHRhLFxuICAgIGZvcmNlOiBmb3JjZSxcbiAgICBmaW5nZXJwcmludDogZmluZ2VycHJpbnQsXG4gICAgYXJndW1lbnRzOiBhcmd2LFxuICAgIGxhbmd1YWdlU3ViZGlyZWN0b3J5OiBwZXJMYW5ndWFnZURpcmVjdG9yeSxcbiAgfSkuYnVpbGRNb2R1bGVzKCk7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gVGFyZ2V0IFNsaWNpbmdcblxuLyoqXG4gKiBBIHNldCBvZiBwYWNrYWdlcyAodGFyZ2V0cykgdHJhbnNsYXRlZCBpbnRvIHRoZSBzYW1lIGxhbmd1YWdlXG4gKi9cbmludGVyZmFjZSBUYXJnZXRTZXQge1xuICB0YXJnZXRUeXBlOiBzdHJpbmc7XG5cbiAgLy8gU29ydGVkIGludG8gdG9wb3NvcnRlZCB0cmFuY2hlc1xuICBtb2R1bGVzU29ydGVkOiBUb3Bvc29ydGVkPEpzaWlNb2R1bGU+O1xufVxuXG5mdW5jdGlvbiBzbGljZVRhcmdldHMoXG4gIG1vZHVsZXNTb3J0ZWQ6IFRvcG9zb3J0ZWQ8SnNpaU1vZHVsZT4sXG4gIHJlcXVlc3RlZFRhcmdldHM6IHJlYWRvbmx5IFRhcmdldE5hbWVbXSxcbiAgZm9yY2U6IGJvb2xlYW4sXG4pOiByZWFkb25seSBUYXJnZXRTZXRbXSB7XG4gIGNvbnN0IHJldCA9IG5ldyBBcnJheTxUYXJnZXRTZXQ+KCk7XG4gIGZvciAoY29uc3QgdGFyZ2V0IG9mIHJlcXVlc3RlZFRhcmdldHMpIHtcbiAgICByZXQucHVzaCh7XG4gICAgICB0YXJnZXRUeXBlOiB0YXJnZXQsXG4gICAgICBtb2R1bGVzU29ydGVkOiBtb2R1bGVzU29ydGVkXG4gICAgICAgIC5tYXAoKG1vZHVsZXMpID0+XG4gICAgICAgICAgbW9kdWxlcy5maWx0ZXIoKG0pID0+IGZvcmNlIHx8IG0uYXZhaWxhYmxlVGFyZ2V0cy5pbmNsdWRlcyh0YXJnZXQpKSxcbiAgICAgICAgKVxuICAgICAgICAuZmlsdGVyKChtcykgPT4gbXMubGVuZ3RoID4gMCksXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiBQYXJhbGxlbGl6YXRpb25cblxuZnVuY3Rpb24gbWFwUGFyYWxsZWxPclNlcmlhbDxULCBSPihcbiAgY29sbGVjdGlvbjogcmVhZG9ubHkgVFtdLFxuICBtYXBwZXI6IChpdGVtOiBUKSA9PiBQcm9taXNlPFI+LFxuICB7IHBhcmFsbGVsIH06IHsgcGFyYWxsZWw6IGJvb2xlYW4gfSxcbik6IEFycmF5PFByb21pc2U8Uj4+IHtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PFByb21pc2U8Uj4+KCk7XG4gIGZvciAoY29uc3QgaXRlbSBvZiBjb2xsZWN0aW9uKSB7XG4gICAgcmVzdWx0LnB1c2goXG4gICAgICByZXN1bHQubGVuZ3RoID09PSAwIHx8IHBhcmFsbGVsXG4gICAgICAgID8gLy8gUnVubmluZyBwYXJhbGxlbCwgb3IgZmlyc3QgZWxlbWVudFxuICAgICAgICAgIG1hcHBlcihpdGVtKVxuICAgICAgICA6IC8vIFdhaXQgZm9yIHRoZSBwcmV2aW91cyBwcm9taXNlLCB0aGVuIG1ha2UgdGhlIG5leHQgb25lXG4gICAgICAgICAgcmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXS50aGVuKFxuICAgICAgICAgICAgKCkgPT4gbWFwcGVyKGl0ZW0pLFxuICAgICAgICAgICAgKGVycm9yKSA9PiBQcm9taXNlLnJlamVjdChlcnJvciksXG4gICAgICAgICAgKSxcbiAgICApO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gTWlzYy4gVXRpbGl0aWVzXG5cbmZ1bmN0aW9uIGRlc2NyaWJlUGFja2FnZXModGFyZ2V0OiBUYXJnZXRTZXQpIHtcbiAgY29uc3QgbW9kdWxlcyA9IGZsYXR0ZW4odGFyZ2V0Lm1vZHVsZXNTb3J0ZWQpO1xuICBpZiAobW9kdWxlcy5sZW5ndGggPiAwICYmIG1vZHVsZXMubGVuZ3RoIDwgNSkge1xuICAgIHJldHVybiBtb2R1bGVzLm1hcCgobSkgPT4gbS5uYW1lKS5qb2luKCcsICcpO1xuICB9XG4gIHJldHVybiBgJHttb2R1bGVzLmxlbmd0aH0gbW9kdWxlc2A7XG59XG5cbi8vI2VuZHJlZ2lvblxuIl19
package/lib/logging.d.ts CHANGED
@@ -2,10 +2,12 @@ export declare enum Level {
2
2
  WARN = -1,
3
3
  QUIET = 0,
4
4
  INFO = 1,
5
- VERBOSE = 2
5
+ VERBOSE = 2,
6
+ SILLY = 3
6
7
  }
7
8
  export declare const LEVEL_INFO: number;
8
9
  export declare const LEVEL_VERBOSE: number;
10
+ export declare const LEVEL_SILLY: number;
9
11
  /** The minimal logging level for messages to be emitted. */
10
12
  export declare let level: Level;
11
13
  export declare function configure({ level: newLevel }: {
package/lib/logging.js CHANGED
@@ -1,15 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.debug = exports.info = exports.warn = exports.configure = exports.level = exports.LEVEL_VERBOSE = exports.LEVEL_INFO = exports.Level = void 0;
3
+ exports.debug = exports.info = exports.warn = exports.configure = exports.level = exports.LEVEL_SILLY = exports.LEVEL_VERBOSE = exports.LEVEL_INFO = exports.Level = void 0;
4
4
  var Level;
5
5
  (function (Level) {
6
6
  Level[Level["WARN"] = -1] = "WARN";
7
7
  Level[Level["QUIET"] = 0] = "QUIET";
8
8
  Level[Level["INFO"] = 1] = "INFO";
9
9
  Level[Level["VERBOSE"] = 2] = "VERBOSE";
10
+ Level[Level["SILLY"] = 3] = "SILLY";
10
11
  })(Level = exports.Level || (exports.Level = {}));
11
12
  exports.LEVEL_INFO = Level.INFO;
12
13
  exports.LEVEL_VERBOSE = Level.VERBOSE;
14
+ exports.LEVEL_SILLY = Level.SILLY;
13
15
  /** The minimal logging level for messages to be emitted. */
14
16
  exports.level = Level.QUIET;
15
17
  function configure({ level: newLevel }) {
@@ -34,4 +36,4 @@ function log(messageLevel, fmt, ...args) {
34
36
  console.error(`[jsii-pacmak] [${levelName}]`, fmt, ...args);
35
37
  }
36
38
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBWSxLQUtYO0FBTEQsV0FBWSxLQUFLO0lBQ2Ysa0NBQVMsQ0FBQTtJQUNULG1DQUFTLENBQUE7SUFDVCxpQ0FBUSxDQUFBO0lBQ1IsdUNBQVcsQ0FBQTtBQUNiLENBQUMsRUFMVyxLQUFLLEdBQUwsYUFBSyxLQUFMLGFBQUssUUFLaEI7QUFFWSxRQUFBLFVBQVUsR0FBVyxLQUFLLENBQUMsSUFBSSxDQUFDO0FBQ2hDLFFBQUEsYUFBYSxHQUFXLEtBQUssQ0FBQyxPQUFPLENBQUM7QUFFbkQsNERBQTREO0FBQ2pELFFBQUEsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFFL0IsU0FBZ0IsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBb0I7SUFDN0QsYUFBSyxHQUFHLFFBQVEsQ0FBQztBQUNuQixDQUFDO0FBRkQsOEJBRUM7QUFFRCxTQUFnQixJQUFJLENBQUMsR0FBVyxFQUFFLEdBQUcsSUFBVztJQUM5QyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRkQsb0JBRUM7QUFFRCxTQUFnQixJQUFJLENBQUMsR0FBVyxFQUFFLEdBQUcsSUFBVztJQUM5QyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRkQsb0JBRUM7QUFFRCxTQUFnQixLQUFLLENBQUMsR0FBVyxFQUFFLEdBQUcsSUFBVztJQUMvQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRkQsc0JBRUM7QUFFRCxTQUFTLEdBQUcsQ0FBQyxZQUFtQixFQUFFLEdBQVcsRUFBRSxHQUFHLElBQVc7SUFDM0QsSUFBSSxhQUFLLElBQUksWUFBWSxFQUFFO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFrQixTQUFTLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUM3RDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBMZXZlbCB7XG4gIFdBUk4gPSAtMSxcbiAgUVVJRVQgPSAwLFxuICBJTkZPID0gMSxcbiAgVkVSQk9TRSA9IDIsXG59XG5cbmV4cG9ydCBjb25zdCBMRVZFTF9JTkZPOiBudW1iZXIgPSBMZXZlbC5JTkZPO1xuZXhwb3J0IGNvbnN0IExFVkVMX1ZFUkJPU0U6IG51bWJlciA9IExldmVsLlZFUkJPU0U7XG5cbi8qKiBUaGUgbWluaW1hbCBsb2dnaW5nIGxldmVsIGZvciBtZXNzYWdlcyB0byBiZSBlbWl0dGVkLiAqL1xuZXhwb3J0IGxldCBsZXZlbCA9IExldmVsLlFVSUVUO1xuXG5leHBvcnQgZnVuY3Rpb24gY29uZmlndXJlKHsgbGV2ZWw6IG5ld0xldmVsIH06IHsgbGV2ZWw6IExldmVsIH0pIHtcbiAgbGV2ZWwgPSBuZXdMZXZlbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdhcm4oZm10OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSB7XG4gIGxvZyhMZXZlbC5XQVJOLCBmbXQsIC4uLmFyZ3MpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5mbyhmbXQ6IHN0cmluZywgLi4uYXJnczogYW55W10pIHtcbiAgbG9nKExldmVsLklORk8sIGZtdCwgLi4uYXJncyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWJ1ZyhmbXQ6IHN0cmluZywgLi4uYXJnczogYW55W10pIHtcbiAgbG9nKExldmVsLlZFUkJPU0UsIGZtdCwgLi4uYXJncyk7XG59XG5cbmZ1bmN0aW9uIGxvZyhtZXNzYWdlTGV2ZWw6IExldmVsLCBmbXQ6IHN0cmluZywgLi4uYXJnczogYW55W10pIHtcbiAgaWYgKGxldmVsID49IG1lc3NhZ2VMZXZlbCkge1xuICAgIGNvbnN0IGxldmVsTmFtZSA9IExldmVsW21lc3NhZ2VMZXZlbF07XG4gICAgY29uc29sZS5lcnJvcihgW2pzaWktcGFjbWFrXSBbJHtsZXZlbE5hbWV9XWAsIGZtdCwgLi4uYXJncyk7XG4gIH1cbn1cbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBWSxLQU1YO0FBTkQsV0FBWSxLQUFLO0lBQ2Ysa0NBQVMsQ0FBQTtJQUNULG1DQUFTLENBQUE7SUFDVCxpQ0FBUSxDQUFBO0lBQ1IsdUNBQVcsQ0FBQTtJQUNYLG1DQUFTLENBQUE7QUFDWCxDQUFDLEVBTlcsS0FBSyxHQUFMLGFBQUssS0FBTCxhQUFLLFFBTWhCO0FBRVksUUFBQSxVQUFVLEdBQVcsS0FBSyxDQUFDLElBQUksQ0FBQztBQUNoQyxRQUFBLGFBQWEsR0FBVyxLQUFLLENBQUMsT0FBTyxDQUFDO0FBQ3RDLFFBQUEsV0FBVyxHQUFXLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFFL0MsNERBQTREO0FBQ2pELFFBQUEsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFFL0IsU0FBZ0IsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBb0I7SUFDN0QsYUFBSyxHQUFHLFFBQVEsQ0FBQztBQUNuQixDQUFDO0FBRkQsOEJBRUM7QUFFRCxTQUFnQixJQUFJLENBQUMsR0FBVyxFQUFFLEdBQUcsSUFBVztJQUM5QyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRkQsb0JBRUM7QUFFRCxTQUFnQixJQUFJLENBQUMsR0FBVyxFQUFFLEdBQUcsSUFBVztJQUM5QyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRkQsb0JBRUM7QUFFRCxTQUFnQixLQUFLLENBQUMsR0FBVyxFQUFFLEdBQUcsSUFBVztJQUMvQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRkQsc0JBRUM7QUFFRCxTQUFTLEdBQUcsQ0FBQyxZQUFtQixFQUFFLEdBQVcsRUFBRSxHQUFHLElBQVc7SUFDM0QsSUFBSSxhQUFLLElBQUksWUFBWSxFQUFFO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFrQixTQUFTLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUM3RDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBMZXZlbCB7XG4gIFdBUk4gPSAtMSxcbiAgUVVJRVQgPSAwLFxuICBJTkZPID0gMSxcbiAgVkVSQk9TRSA9IDIsXG4gIFNJTExZID0gMyxcbn1cblxuZXhwb3J0IGNvbnN0IExFVkVMX0lORk86IG51bWJlciA9IExldmVsLklORk87XG5leHBvcnQgY29uc3QgTEVWRUxfVkVSQk9TRTogbnVtYmVyID0gTGV2ZWwuVkVSQk9TRTtcbmV4cG9ydCBjb25zdCBMRVZFTF9TSUxMWTogbnVtYmVyID0gTGV2ZWwuU0lMTFk7XG5cbi8qKiBUaGUgbWluaW1hbCBsb2dnaW5nIGxldmVsIGZvciBtZXNzYWdlcyB0byBiZSBlbWl0dGVkLiAqL1xuZXhwb3J0IGxldCBsZXZlbCA9IExldmVsLlFVSUVUO1xuXG5leHBvcnQgZnVuY3Rpb24gY29uZmlndXJlKHsgbGV2ZWw6IG5ld0xldmVsIH06IHsgbGV2ZWw6IExldmVsIH0pIHtcbiAgbGV2ZWwgPSBuZXdMZXZlbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdhcm4oZm10OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSB7XG4gIGxvZyhMZXZlbC5XQVJOLCBmbXQsIC4uLmFyZ3MpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5mbyhmbXQ6IHN0cmluZywgLi4uYXJnczogYW55W10pIHtcbiAgbG9nKExldmVsLklORk8sIGZtdCwgLi4uYXJncyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWJ1ZyhmbXQ6IHN0cmluZywgLi4uYXJnczogYW55W10pIHtcbiAgbG9nKExldmVsLlZFUkJPU0UsIGZtdCwgLi4uYXJncyk7XG59XG5cbmZ1bmN0aW9uIGxvZyhtZXNzYWdlTGV2ZWw6IExldmVsLCBmbXQ6IHN0cmluZywgLi4uYXJnczogYW55W10pIHtcbiAgaWYgKGxldmVsID49IG1lc3NhZ2VMZXZlbCkge1xuICAgIGNvbnN0IGxldmVsTmFtZSA9IExldmVsW21lc3NhZ2VMZXZlbF07XG4gICAgY29uc29sZS5lcnJvcihgW2pzaWktcGFjbWFrXSBbJHtsZXZlbE5hbWV9XWAsIGZtdCwgLi4uYXJncyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import { JsiiModule } from './packaging';
2
+ import { Toposorted } from './toposort';
2
3
  /**
3
4
  * Find all modules that need to be packagerd
4
5
  *
@@ -6,5 +7,5 @@ import { JsiiModule } from './packaging';
6
7
  *
7
8
  * The result is topologically sorted.
8
9
  */
9
- export declare function findJsiiModules(directories: readonly string[], recurse: boolean): Promise<JsiiModule[]>;
10
+ export declare function findJsiiModules(directories: readonly string[], recurse: boolean): Promise<Toposorted<JsiiModule>>;
10
11
  export declare function updateAllNpmIgnores(packages: JsiiModule[]): Promise<void>;
@@ -108,4 +108,4 @@ async function updateNpmIgnore(packageDir, excludeOutdir) {
108
108
  }
109
109
  }
110
110
  }
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLW1vZHVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJucG0tbW9kdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFDbkMsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUU3QiwwQ0FBMEM7QUFDMUMsMkNBQXlDO0FBQ3pDLHlDQUE2QztBQUM3QyxpQ0FBb0Q7QUFFcEQ7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLGVBQWUsQ0FDbkMsV0FBOEIsRUFDOUIsT0FBZ0I7SUFFaEIsTUFBTSxHQUFHLEdBQWlCLEVBQUUsQ0FBQztJQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBRWxDLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0QsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWpFLE9BQU8sMEJBQWUsQ0FDcEIsR0FBRyxFQUNILENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUNiLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUN6QixDQUFDO0lBRUYsS0FBSyxVQUFVLFlBQVksQ0FBQyxHQUFXLEVBQUUsTUFBZTs7UUFDdEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN6QixPQUFPO1NBQ1IsQ0FBQyxrQkFBa0I7UUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV0QixNQUFNLEdBQUcsR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNuRSxJQUFJLFFBQUMsR0FBRyxDQUFDLElBQUksMENBQUUsTUFBTSxDQUFBLElBQUksUUFBQyxHQUFHLENBQUMsSUFBSSwwQ0FBRSxPQUFPLENBQUEsRUFBRTtZQUMzQyxJQUFJLE1BQU0sRUFBRTtnQkFDVixNQUFNLElBQUksS0FBSyxDQUNiLDZCQUE2QixRQUFRLG9DQUFvQyxDQUMxRSxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLDJDQUEyQzthQUNwRDtTQUNGO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUNiLDhDQUE4QyxJQUFJLENBQUMsU0FBUyxDQUMxRCxHQUFHLEVBQ0gsU0FBUyxFQUNULENBQUMsQ0FDRixFQUFFLENBQ0osQ0FBQztTQUNIO1FBRUQsTUFBTSxlQUFlLEdBQUc7WUFDdEIsR0FBRyxNQUFNLENBQUMsSUFBSSxPQUFDLEdBQUcsQ0FBQyxZQUFZLG1DQUFJLEVBQUUsQ0FBQztZQUN0QyxHQUFHLE1BQU0sQ0FBQyxJQUFJLE9BQUMsR0FBRyxDQUFDLGdCQUFnQixtQ0FBSSxFQUFFLENBQUM7WUFDMUMsR0FBRyxNQUFNLENBQUMsSUFBSSxPQUFDLEdBQUcsQ0FBQyxlQUFlLG1DQUFJLEVBQUUsQ0FBQztTQUMxQyxDQUFDO1FBRUYsNERBQTREO1FBQzVELElBQUksT0FBTyxFQUFFO1lBQ1gsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLGVBQWU7aUJBQ1osR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxpQ0FBMEIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQ3ZELEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUNoRCxDQUFDO1NBQ0g7UUFFRCxnSEFBZ0g7UUFDaEgsTUFBTSxlQUFlLEdBQ25CLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0QsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLDhCQUE4QjtRQUV4RixHQUFHLENBQUMsSUFBSSxDQUNOLElBQUksc0JBQVUsQ0FBQztZQUNiLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtZQUNkLGVBQWUsRUFBRSxRQUFRO1lBQ3pCLHNCQUFzQixFQUFFLGVBQWU7WUFDdkMsZ0JBQWdCLEVBQUUsT0FBTztZQUN6QixlQUFlO1NBQ2hCLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUExRUQsMENBMEVDO0FBRU0sS0FBSyxVQUFVLG1CQUFtQixDQUN2QyxRQUFzQjtJQUV0QixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ25CLGVBQWUsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FDMUQsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQVJELGtEQVFDO0FBRUQsS0FBSyxVQUFVLGVBQWUsQ0FDNUIsVUFBa0IsRUFDbEIsYUFBaUM7SUFFakMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDMUQsSUFBSSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUNoQyxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDckIsSUFBSSxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDdEMsS0FBSyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ25FO0lBRUQsa0VBQWtFO0lBQ2xFLG1EQUFtRDtJQUNuRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3RCLGNBQWMsQ0FDWixzQ0FBc0MsRUFDdEMsTUFBTSxFQUNOLGVBQWUsQ0FDaEIsQ0FBQztRQUNGLGNBQWMsQ0FDWixzREFBc0QsRUFDdEQsTUFBTSxFQUNOLFFBQVEsQ0FDVCxDQUFDO0tBQ0g7SUFFRCxJQUFJLGFBQWEsRUFBRTtRQUNqQixjQUFjLENBQ1oscUJBQXFCLEVBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUN6QyxDQUFDO0tBQ0g7SUFFRCxjQUFjLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUVyRCxJQUFJLFFBQVEsRUFBRTtRQUNaLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzRCxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7S0FDcEM7SUFFRCxTQUFTLGNBQWMsQ0FBQyxPQUFlLEVBQUUsR0FBRyxRQUFrQjtRQUM1RCxjQUFjLENBQUMsT0FBTyxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFNBQVMsY0FBYyxDQUFDLE9BQWUsRUFBRSxHQUFHLFFBQWtCO1FBQzVELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztRQUNqQixLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRTtZQUM5QixJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzNCLE9BQU8sQ0FBQyx3QkFBd0I7YUFDakM7WUFFRCxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBRWhCLElBQUksS0FBSyxFQUFFO2dCQUNULEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2YsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQzNCLEtBQUssR0FBRyxLQUFLLENBQUM7YUFDZjtZQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDckI7SUFDSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHNwZWMgZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQgKiBhcyBsb2dnaW5nIGZyb20gJy4uL2xpYi9sb2dnaW5nJztcbmltcG9ydCB7IEpzaWlNb2R1bGUgfSBmcm9tICcuL3BhY2thZ2luZyc7XG5pbXBvcnQgeyB0b3BvbG9naWNhbFNvcnQgfSBmcm9tICcuL3RvcG9zb3J0JztcbmltcG9ydCB7IHJlc29sdmVEZXBlbmRlbmN5RGlyZWN0b3J5IH0gZnJvbSAnLi91dGlsJztcblxuLyoqXG4gKiBGaW5kIGFsbCBtb2R1bGVzIHRoYXQgbmVlZCB0byBiZSBwYWNrYWdlcmRcbiAqXG4gKiBJZiB0aGUgaW5wdXQgbGlzdCBpcyBlbXB0eSwgaW5jbHVkZSB0aGUgY3VycmVudCBkaXJlY3RvcnkuXG4gKlxuICogVGhlIHJlc3VsdCBpcyB0b3BvbG9naWNhbGx5IHNvcnRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbmRKc2lpTW9kdWxlcyhcbiAgZGlyZWN0b3JpZXM6IHJlYWRvbmx5IHN0cmluZ1tdLFxuICByZWN1cnNlOiBib29sZWFuLFxuKTogUHJvbWlzZTxKc2lpTW9kdWxlW10+IHtcbiAgY29uc3QgcmV0OiBKc2lpTW9kdWxlW10gPSBbXTtcbiAgY29uc3QgdmlzaXRlZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGNvbnN0IHRvVmlzaXQgPSBkaXJlY3Rvcmllcy5sZW5ndGggPiAwID8gZGlyZWN0b3JpZXMgOiBbJy4nXTtcbiAgYXdhaXQgUHJvbWlzZS5hbGwodG9WaXNpdC5tYXAoKGRpcikgPT4gdmlzaXRQYWNrYWdlKGRpciwgdHJ1ZSkpKTtcblxuICByZXR1cm4gdG9wb2xvZ2ljYWxTb3J0KFxuICAgIHJldCxcbiAgICAobSkgPT4gbS5uYW1lLFxuICAgIChtKSA9PiBtLmRlcGVuZGVuY3lOYW1lcyxcbiAgKTtcblxuICBhc3luYyBmdW5jdGlvbiB2aXNpdFBhY2thZ2UoZGlyOiBzdHJpbmcsIGlzUm9vdDogYm9vbGVhbikge1xuICAgIGNvbnN0IHJlYWxQYXRoID0gYXdhaXQgZnMucmVhbHBhdGgoZGlyKTtcbiAgICBpZiAodmlzaXRlZC5oYXMocmVhbFBhdGgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBBbHJlYWR5IHZpc2l0ZWRcbiAgICB2aXNpdGVkLmFkZChyZWFsUGF0aCk7XG5cbiAgICBjb25zdCBwa2cgPSBhd2FpdCBmcy5yZWFkSnNvbihwYXRoLmpvaW4ocmVhbFBhdGgsICdwYWNrYWdlLmpzb24nKSk7XG4gICAgaWYgKCFwa2cuanNpaT8ub3V0ZGlyIHx8ICFwa2cuanNpaT8udGFyZ2V0cykge1xuICAgICAgaWYgKGlzUm9vdCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEludmFsaWQgXCJqc2lpXCIgc2VjdGlvbiBpbiAke3JlYWxQYXRofS4gRXhwZWN0aW5nIFwib3V0ZGlyXCIgYW5kIFwidGFyZ2V0c1wiYCxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybjsgLy8ganVzdCBtb3ZlIG9uLCB0aGlzIGlzIG5vdCBhIGpzaWkgcGFja2FnZVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghcGtnLm5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYHBhY2thZ2UuanNvbiBkb2VzIG5vdCBoYXZlIGEgJ25hbWUnIGZpZWxkOiAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHBrZyxcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgMixcbiAgICAgICAgKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBlbmRlbmN5TmFtZXMgPSBbXG4gICAgICAuLi5PYmplY3Qua2V5cyhwa2cuZGVwZW5kZW5jaWVzID8/IHt9KSxcbiAgICAgIC4uLk9iamVjdC5rZXlzKHBrZy5wZWVyRGVwZW5kZW5jaWVzID8/IHt9KSxcbiAgICAgIC4uLk9iamVjdC5rZXlzKHBrZy5kZXZEZXBlbmRlbmNpZXMgPz8ge30pLFxuICAgIF07XG5cbiAgICAvLyBpZiAtLXJlY3Vyc2UgaXMgc2V0LCBmaW5kIGRlcGVuZGVuY3kgZGlycyBhbmQgYnVpbGQgdGhlbS5cbiAgICBpZiAocmVjdXJzZSkge1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lc1xuICAgICAgICAgIC5tYXAoKGRlcCkgPT4gcmVzb2x2ZURlcGVuZGVuY3lEaXJlY3RvcnkocmVhbFBhdGgsIGRlcCkpXG4gICAgICAgICAgLm1hcCgoZGVwRGlyKSA9PiB2aXNpdFBhY2thZ2UoZGVwRGlyLCBmYWxzZSkpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBvdXRkaXIgaXMgZWl0aGVyIGJ5IHBhY2thZ2UuanNvbi9qc2lpLm91dGRpciAocmVsYXRpdmUgdG8gcGFja2FnZSByb290KSBvciB2aWEgY29tbWFuZCBsaW5lIChyZWxhdGl2ZSB0byBjd2QpXG4gICAgY29uc3Qgb3V0cHV0RGlyZWN0b3J5ID1cbiAgICAgIHBrZy5qc2lpLm91dGRpciAmJiBwYXRoLnJlc29sdmUocmVhbFBhdGgsIHBrZy5qc2lpLm91dGRpcik7XG4gICAgY29uc3QgdGFyZ2V0cyA9IFsuLi5PYmplY3Qua2V5cyhwa2cuanNpaS50YXJnZXRzKSwgJ2pzJ107IC8vIFwianNcIiBpcyBhbiBpbXBsaWNpdCB0YXJnZXQuXG5cbiAgICByZXQucHVzaChcbiAgICAgIG5ldyBKc2lpTW9kdWxlKHtcbiAgICAgICAgbmFtZTogcGtnLm5hbWUsXG4gICAgICAgIG1vZHVsZURpcmVjdG9yeTogcmVhbFBhdGgsXG4gICAgICAgIGRlZmF1bHRPdXRwdXREaXJlY3Rvcnk6IG91dHB1dERpcmVjdG9yeSxcbiAgICAgICAgYXZhaWxhYmxlVGFyZ2V0czogdGFyZ2V0cyxcbiAgICAgICAgZGVwZW5kZW5jeU5hbWVzLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlQWxsTnBtSWdub3JlcyhcbiAgcGFja2FnZXM6IEpzaWlNb2R1bGVbXSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBwYWNrYWdlcy5tYXAoKHBrZykgPT5cbiAgICAgIHVwZGF0ZU5wbUlnbm9yZShwa2cubW9kdWxlRGlyZWN0b3J5LCBwa2cub3V0cHV0RGlyZWN0b3J5KSxcbiAgICApLFxuICApO1xufVxuXG5hc3luYyBmdW5jdGlvbiB1cGRhdGVOcG1JZ25vcmUoXG4gIHBhY2thZ2VEaXI6IHN0cmluZyxcbiAgZXhjbHVkZU91dGRpcjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuKSB7XG4gIGNvbnN0IG5wbUlnbm9yZVBhdGggPSBwYXRoLmpvaW4ocGFja2FnZURpciwgJy5ucG1pZ25vcmUnKTtcbiAgbGV0IGxpbmVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG4gIGlmIChhd2FpdCBmcy5wYXRoRXhpc3RzKG5wbUlnbm9yZVBhdGgpKSB7XG4gICAgbGluZXMgPSAoYXdhaXQgZnMucmVhZEZpbGUobnBtSWdub3JlUGF0aCkpLnRvU3RyaW5nKCkuc3BsaXQoJ1xcbicpO1xuICB9XG5cbiAgLy8gaWYgdGhpcyBpcyBhIGZyZXNoIC5ucG1pZ25vcmUsIHdlIGNhbiBiZSBhIGJpdCBtb3JlIG9waW5pb25hdGVkXG4gIC8vIG90aGVyd2lzZSwgd2UgYWRkIGp1c3QgYWRkIHN0dWZmIHRoYXQncyBjcml0aWNhbFxuICBpZiAobGluZXMubGVuZ3RoID09PSAwKSB7XG4gICAgZXhjbHVkZVBhdHRlcm4oXG4gICAgICAnRXhjbHVkZSB0eXBlc2NyaXB0IHNvdXJjZSBhbmQgY29uZmlnJyxcbiAgICAgICcqLnRzJyxcbiAgICAgICd0c2NvbmZpZy5qc29uJyxcbiAgICApO1xuICAgIGluY2x1ZGVQYXR0ZXJuKFxuICAgICAgJ0luY2x1ZGUgamF2YXNjcmlwdCBmaWxlcyBhbmQgdHlwZXNjcmlwdCBkZWNsYXJhdGlvbnMnLFxuICAgICAgJyouanMnLFxuICAgICAgJyouZC50cycsXG4gICAgKTtcbiAgfVxuXG4gIGlmIChleGNsdWRlT3V0ZGlyKSB7XG4gICAgZXhjbHVkZVBhdHRlcm4oXG4gICAgICAnRXhjbHVkZSBqc2lpIG91dGRpcicsXG4gICAgICBwYXRoLnJlbGF0aXZlKHBhY2thZ2VEaXIsIGV4Y2x1ZGVPdXRkaXIpLFxuICAgICk7XG4gIH1cblxuICBpbmNsdWRlUGF0dGVybignSW5jbHVkZSAuanNpaScsIHNwZWMuU1BFQ19GSUxFX05BTUUpO1xuXG4gIGlmIChtb2RpZmllZCkge1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZShucG1JZ25vcmVQYXRoLCBgJHtsaW5lcy5qb2luKCdcXG4nKX1cXG5gKTtcbiAgICBsb2dnaW5nLmluZm8oJ1VwZGF0ZWQgLm5wbWlnbm9yZScpO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5jbHVkZVBhdHRlcm4oY29tbWVudDogc3RyaW5nLCAuLi5wYXR0ZXJuczogc3RyaW5nW10pIHtcbiAgICBleGNsdWRlUGF0dGVybihjb21tZW50LCAuLi5wYXR0ZXJucy5tYXAoKHApID0+IGAhJHtwfWApKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGV4Y2x1ZGVQYXR0ZXJuKGNvbW1lbnQ6IHN0cmluZywgLi4ucGF0dGVybnM6IHN0cmluZ1tdKSB7XG4gICAgbGV0IGZpcnN0ID0gdHJ1ZTtcbiAgICBmb3IgKGNvbnN0IHBhdHRlcm4gb2YgcGF0dGVybnMpIHtcbiAgICAgIGlmIChsaW5lcy5pbmNsdWRlcyhwYXR0ZXJuKSkge1xuICAgICAgICByZXR1cm47IC8vIGFscmVhZHkgaW4gLm5wbWlnbm9yZVxuICAgICAgfVxuXG4gICAgICBtb2RpZmllZCA9IHRydWU7XG5cbiAgICAgIGlmIChmaXJzdCkge1xuICAgICAgICBsaW5lcy5wdXNoKCcnKTtcbiAgICAgICAgbGluZXMucHVzaChgIyAke2NvbW1lbnR9YCk7XG4gICAgICAgIGZpcnN0ID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGxpbmVzLnB1c2gocGF0dGVybik7XG4gICAgfVxuICB9XG59XG4iXX0=
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLW1vZHVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJucG0tbW9kdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFDbkMsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUU3QiwwQ0FBMEM7QUFDMUMsMkNBQXlDO0FBQ3pDLHlDQUF5RDtBQUN6RCxpQ0FBb0Q7QUFFcEQ7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLGVBQWUsQ0FDbkMsV0FBOEIsRUFDOUIsT0FBZ0I7SUFFaEIsTUFBTSxHQUFHLEdBQWlCLEVBQUUsQ0FBQztJQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBRWxDLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0QsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWpFLE9BQU8sMEJBQWUsQ0FDcEIsR0FBRyxFQUNILENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUNiLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUN6QixDQUFDO0lBRUYsS0FBSyxVQUFVLFlBQVksQ0FBQyxHQUFXLEVBQUUsTUFBZTs7UUFDdEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN6QixPQUFPO1NBQ1IsQ0FBQyxrQkFBa0I7UUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztR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Z0JBQzNCLE9BQU8sQ0FBQyx3QkFBd0I7YUFDakM7WUFFRCxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBRWhCLElBQUksS0FBSyxFQUFFO2dCQUNULEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2YsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQzNCLEtBQUssR0FBRyxLQUFLLENBQUM7YUFDZjtZQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDckI7SUFDSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHNwZWMgZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQgKiBhcyBsb2dnaW5nIGZyb20gJy4uL2xpYi9sb2dnaW5nJztcbmltcG9ydCB7IEpzaWlNb2R1bGUgfSBmcm9tICcuL3BhY2thZ2luZyc7XG5pbXBvcnQgeyB0b3BvbG9naWNhbFNvcnQsIFRvcG9zb3J0ZWQgfSBmcm9tICcuL3RvcG9zb3J0JztcbmltcG9ydCB7IHJlc29sdmVEZXBlbmRlbmN5RGlyZWN0b3J5IH0gZnJvbSAnLi91dGlsJztcblxuLyoqXG4gKiBGaW5kIGFsbCBtb2R1bGVzIHRoYXQgbmVlZCB0byBiZSBwYWNrYWdlcmRcbiAqXG4gKiBJZiB0aGUgaW5wdXQgbGlzdCBpcyBlbXB0eSwgaW5jbHVkZSB0aGUgY3VycmVudCBkaXJlY3RvcnkuXG4gKlxuICogVGhlIHJlc3VsdCBpcyB0b3BvbG9naWNhbGx5IHNvcnRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbmRKc2lpTW9kdWxlcyhcbiAgZGlyZWN0b3JpZXM6IHJlYWRvbmx5IHN0cmluZ1tdLFxuICByZWN1cnNlOiBib29sZWFuLFxuKTogUHJvbWlzZTxUb3Bvc29ydGVkPEpzaWlNb2R1bGU+PiB7XG4gIGNvbnN0IHJldDogSnNpaU1vZHVsZVtdID0gW107XG4gIGNvbnN0IHZpc2l0ZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBjb25zdCB0b1Zpc2l0ID0gZGlyZWN0b3JpZXMubGVuZ3RoID4gMCA/IGRpcmVjdG9yaWVzIDogWycuJ107XG4gIGF3YWl0IFByb21pc2UuYWxsKHRvVmlzaXQubWFwKChkaXIpID0+IHZpc2l0UGFja2FnZShkaXIsIHRydWUpKSk7XG5cbiAgcmV0dXJuIHRvcG9sb2dpY2FsU29ydChcbiAgICByZXQsXG4gICAgKG0pID0+IG0ubmFtZSxcbiAgICAobSkgPT4gbS5kZXBlbmRlbmN5TmFtZXMsXG4gICk7XG5cbiAgYXN5bmMgZnVuY3Rpb24gdmlzaXRQYWNrYWdlKGRpcjogc3RyaW5nLCBpc1Jvb3Q6IGJvb2xlYW4pIHtcbiAgICBjb25zdCByZWFsUGF0aCA9IGF3YWl0IGZzLnJlYWxwYXRoKGRpcik7XG4gICAgaWYgKHZpc2l0ZWQuaGFzKHJlYWxQYXRoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gQWxyZWFkeSB2aXNpdGVkXG4gICAgdmlzaXRlZC5hZGQocmVhbFBhdGgpO1xuXG4gICAgY29uc3QgcGtnID0gYXdhaXQgZnMucmVhZEpzb24ocGF0aC5qb2luKHJlYWxQYXRoLCAncGFja2FnZS5qc29uJykpO1xuICAgIGlmICghcGtnLmpzaWk/Lm91dGRpciB8fCAhcGtnLmpzaWk/LnRhcmdldHMpIHtcbiAgICAgIGlmIChpc1Jvb3QpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBJbnZhbGlkIFwianNpaVwiIHNlY3Rpb24gaW4gJHtyZWFsUGF0aH0uIEV4cGVjdGluZyBcIm91dGRpclwiIGFuZCBcInRhcmdldHNcImAsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm47IC8vIGp1c3QgbW92ZSBvbiwgdGhpcyBpcyBub3QgYSBqc2lpIHBhY2thZ2VcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXBrZy5uYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBwYWNrYWdlLmpzb24gZG9lcyBub3QgaGF2ZSBhICduYW1lJyBmaWVsZDogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICBwa2csXG4gICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgIDIsXG4gICAgICAgICl9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgZGVwZW5kZW5jeU5hbWVzID0gW1xuICAgICAgLi4uT2JqZWN0LmtleXMocGtnLmRlcGVuZGVuY2llcyA/PyB7fSksXG4gICAgICAuLi5PYmplY3Qua2V5cyhwa2cucGVlckRlcGVuZGVuY2llcyA/PyB7fSksXG4gICAgICAuLi5PYmplY3Qua2V5cyhwa2cuZGV2RGVwZW5kZW5jaWVzID8/IHt9KSxcbiAgICBdO1xuXG4gICAgLy8gaWYgLS1yZWN1cnNlIGlzIHNldCwgZmluZCBkZXBlbmRlbmN5IGRpcnMgYW5kIGJ1aWxkIHRoZW0uXG4gICAgaWYgKHJlY3Vyc2UpIHtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBkZXBlbmRlbmN5TmFtZXNcbiAgICAgICAgICAubWFwKChkZXApID0+IHJlc29sdmVEZXBlbmRlbmN5RGlyZWN0b3J5KHJlYWxQYXRoLCBkZXApKVxuICAgICAgICAgIC5tYXAoKGRlcERpcikgPT4gdmlzaXRQYWNrYWdlKGRlcERpciwgZmFsc2UpKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gb3V0ZGlyIGlzIGVpdGhlciBieSBwYWNrYWdlLmpzb24vanNpaS5vdXRkaXIgKHJlbGF0aXZlIHRvIHBhY2thZ2Ugcm9vdCkgb3IgdmlhIGNvbW1hbmQgbGluZSAocmVsYXRpdmUgdG8gY3dkKVxuICAgIGNvbnN0IG91dHB1dERpcmVjdG9yeSA9XG4gICAgICBwa2cuanNpaS5vdXRkaXIgJiYgcGF0aC5yZXNvbHZlKHJlYWxQYXRoLCBwa2cuanNpaS5vdXRkaXIpO1xuICAgIGNvbnN0IHRhcmdldHMgPSBbLi4uT2JqZWN0LmtleXMocGtnLmpzaWkudGFyZ2V0cyksICdqcyddOyAvLyBcImpzXCIgaXMgYW4gaW1wbGljaXQgdGFyZ2V0LlxuXG4gICAgcmV0LnB1c2goXG4gICAgICBuZXcgSnNpaU1vZHVsZSh7XG4gICAgICAgIG5hbWU6IHBrZy5uYW1lLFxuICAgICAgICBtb2R1bGVEaXJlY3Rvcnk6IHJlYWxQYXRoLFxuICAgICAgICBkZWZhdWx0T3V0cHV0RGlyZWN0b3J5OiBvdXRwdXREaXJlY3RvcnksXG4gICAgICAgIGF2YWlsYWJsZVRhcmdldHM6IHRhcmdldHMsXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lcyxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUFsbE5wbUlnbm9yZXMoXG4gIHBhY2thZ2VzOiBKc2lpTW9kdWxlW10sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgcGFja2FnZXMubWFwKChwa2cpID0+XG4gICAgICB1cGRhdGVOcG1JZ25vcmUocGtnLm1vZHVsZURpcmVjdG9yeSwgcGtnLm91dHB1dERpcmVjdG9yeSksXG4gICAgKSxcbiAgKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlTnBtSWdub3JlKFxuICBwYWNrYWdlRGlyOiBzdHJpbmcsXG4gIGV4Y2x1ZGVPdXRkaXI6IHN0cmluZyB8IHVuZGVmaW5lZCxcbikge1xuICBjb25zdCBucG1JZ25vcmVQYXRoID0gcGF0aC5qb2luKHBhY2thZ2VEaXIsICcubnBtaWdub3JlJyk7XG4gIGxldCBsaW5lcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIGxldCBtb2RpZmllZCA9IGZhbHNlO1xuICBpZiAoYXdhaXQgZnMucGF0aEV4aXN0cyhucG1JZ25vcmVQYXRoKSkge1xuICAgIGxpbmVzID0gKGF3YWl0IGZzLnJlYWRGaWxlKG5wbUlnbm9yZVBhdGgpKS50b1N0cmluZygpLnNwbGl0KCdcXG4nKTtcbiAgfVxuXG4gIC8vIGlmIHRoaXMgaXMgYSBmcmVzaCAubnBtaWdub3JlLCB3ZSBjYW4gYmUgYSBiaXQgbW9yZSBvcGluaW9uYXRlZFxuICAvLyBvdGhlcndpc2UsIHdlIGFkZCBqdXN0IGFkZCBzdHVmZiB0aGF0J3MgY3JpdGljYWxcbiAgaWYgKGxpbmVzLmxlbmd0aCA9PT0gMCkge1xuICAgIGV4Y2x1ZGVQYXR0ZXJuKFxuICAgICAgJ0V4Y2x1ZGUgdHlwZXNjcmlwdCBzb3VyY2UgYW5kIGNvbmZpZycsXG4gICAgICAnKi50cycsXG4gICAgICAndHNjb25maWcuanNvbicsXG4gICAgKTtcbiAgICBpbmNsdWRlUGF0dGVybihcbiAgICAgICdJbmNsdWRlIGphdmFzY3JpcHQgZmlsZXMgYW5kIHR5cGVzY3JpcHQgZGVjbGFyYXRpb25zJyxcbiAgICAgICcqLmpzJyxcbiAgICAgICcqLmQudHMnLFxuICAgICk7XG4gIH1cblxuICBpZiAoZXhjbHVkZU91dGRpcikge1xuICAgIGV4Y2x1ZGVQYXR0ZXJuKFxuICAgICAgJ0V4Y2x1ZGUganNpaSBvdXRkaXInLFxuICAgICAgcGF0aC5yZWxhdGl2ZShwYWNrYWdlRGlyLCBleGNsdWRlT3V0ZGlyKSxcbiAgICApO1xuICB9XG5cbiAgaW5jbHVkZVBhdHRlcm4oJ0luY2x1ZGUgLmpzaWknLCBzcGVjLlNQRUNfRklMRV9OQU1FKTtcblxuICBpZiAobW9kaWZpZWQpIHtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUobnBtSWdub3JlUGF0aCwgYCR7bGluZXMuam9pbignXFxuJyl9XFxuYCk7XG4gICAgbG9nZ2luZy5pbmZvKCdVcGRhdGVkIC5ucG1pZ25vcmUnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGluY2x1ZGVQYXR0ZXJuKGNvbW1lbnQ6IHN0cmluZywgLi4ucGF0dGVybnM6IHN0cmluZ1tdKSB7XG4gICAgZXhjbHVkZVBhdHRlcm4oY29tbWVudCwgLi4ucGF0dGVybnMubWFwKChwKSA9PiBgISR7cH1gKSk7XG4gIH1cblxuICBmdW5jdGlvbiBleGNsdWRlUGF0dGVybihjb21tZW50OiBzdHJpbmcsIC4uLnBhdHRlcm5zOiBzdHJpbmdbXSkge1xuICAgIGxldCBmaXJzdCA9IHRydWU7XG4gICAgZm9yIChjb25zdCBwYXR0ZXJuIG9mIHBhdHRlcm5zKSB7XG4gICAgICBpZiAobGluZXMuaW5jbHVkZXMocGF0dGVybikpIHtcbiAgICAgICAgcmV0dXJuOyAvLyBhbHJlYWR5IGluIC5ucG1pZ25vcmVcbiAgICAgIH1cblxuICAgICAgbW9kaWZpZWQgPSB0cnVlO1xuXG4gICAgICBpZiAoZmlyc3QpIHtcbiAgICAgICAgbGluZXMucHVzaCgnJyk7XG4gICAgICAgIGxpbmVzLnB1c2goYCMgJHtjb21tZW50fWApO1xuICAgICAgICBmaXJzdCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBsaW5lcy5wdXNoKHBhdHRlcm4pO1xuICAgIH1cbiAgfVxufVxuIl19