awslint 2.219.0-alpha.0 → 2.221.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/awslint.js +3 -2
- package/bin/awslint.ts +4 -1
- package/lib/linter.js +8 -2
- package/lib/rule-specs.js +14 -14
- package/lib/rules/api.js +5 -1
- package/lib/rules/api.ts +5 -0
- package/lib/rules/attributes.js +4 -1
- package/lib/rules/cfn-resource.js +7 -1
- package/lib/rules/construct.js +11 -1
- package/lib/rules/core-types.js +2 -1
- package/lib/rules/imports.js +8 -1
- package/lib/rules/integrations.js +2 -1
- package/lib/rules/resource.js +10 -1
- package/package.json +4 -4
package/bin/awslint.js
CHANGED
|
@@ -9,6 +9,7 @@ const fs = require("fs-extra");
|
|
|
9
9
|
const reflect = require("jsii-reflect");
|
|
10
10
|
const yargs = require("yargs");
|
|
11
11
|
const lib_1 = require("../lib");
|
|
12
|
+
const FEATURES = ['intersection-types'];
|
|
12
13
|
let stackTrace = false;
|
|
13
14
|
async function main() {
|
|
14
15
|
const argv = yargs
|
|
@@ -208,7 +209,7 @@ main().catch(e => {
|
|
|
208
209
|
});
|
|
209
210
|
async function loadModule(dir) {
|
|
210
211
|
const ts = new reflect.TypeSystem();
|
|
211
|
-
await ts.load(dir, { validate: false }); // Don't validate to save 66% of execution time (20s vs 1min).
|
|
212
|
+
await ts.load(dir, { validate: false, supportedFeatures: FEATURES }); // Don't validate to save 66% of execution time (20s vs 1min).
|
|
212
213
|
// We run 'awslint' during build time, assemblies are guaranteed to be ok.
|
|
213
214
|
// We won't load any more assemblies. Lock the typesystem to benefit from performance improvements.
|
|
214
215
|
ts.lock();
|
|
@@ -259,4 +260,4 @@ async function shell(command) {
|
|
|
259
260
|
child.once('error', ko);
|
|
260
261
|
});
|
|
261
262
|
}
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzbGludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3c2xpbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0QkFBNEI7QUFDNUIsK0JBQStCO0FBQy9CLCtDQUErQztBQUMvQyw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLCtCQUErQjtBQUMvQix3Q0FBd0M7QUFDeEMsK0JBQStCO0FBQy9CLGdDQUEwRTtBQUUxRSxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7QUFFdkIsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxJQUFJLEdBQUcsS0FBSztTQUNmLEdBQUcsQ0FBQyxTQUFTLENBQUM7U0FDZCxLQUFLLENBQUMsNkJBQTZCLENBQUM7U0FDcEMsY0FBYyxDQUFDLElBQUksQ0FBQztTQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLG1DQUFtQyxDQUFDO1NBQ2xELE9BQU8sQ0FBQyxNQUFNLEVBQUUsMEJBQTBCLENBQUM7U0FDM0MsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsNEJBQTRCLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztTQUNwRyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSw2REFBNkQsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7U0FDbEksTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLHFHQUFxRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztTQUNoSyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSx3Q0FBd0MsRUFBRSxPQUFPLEVBQUUsS0FBSyxF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dUIsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCAqIGFzIGNoaWxkX3Byb2Nlc3MgZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgcmVmbGVjdCBmcm9tICdqc2lpLXJlZmxlY3QnO1xuaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuaW1wb3J0IHsgQUxMX1JVTEVTX0xJTlRFUiwgRGlhZ25vc3RpY0xldmVsLCBSdWxlRmlsdGVyU2V0IH0gZnJvbSAnLi4vbGliJztcblxubGV0IHN0YWNrVHJhY2UgPSBmYWxzZTtcblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3QgYXJndiA9IHlhcmdzXG4gICAgLmVudignQVdTTElOVCcpXG4gICAgLnVzYWdlKCdhd3NsaW50IFtvcHRpb25zXSBbY29tbWFuZF0nKVxuICAgIC5zaG93SGVscE9uRmFpbCh0cnVlKVxuICAgIC5jb21tYW5kKCckMCcsICdsaW50IHRoZSBjdXJyZW50IG1vZHVsZSAoZGVmYXVsdCknKVxuICAgIC5jb21tYW5kKCdsaXN0JywgJ2xpc3QgYWxsIGF2YWlsYWJsZSBydWxlcycpXG4gICAgLm9wdGlvbignaW5jbHVkZScsIHsgYWxpYXM6ICdpJywgdHlwZTogJ2FycmF5JywgZGVzYzogJ2V2YWx1YXRlIG9ubHkgdGhpcyBydWxlKHMpJywgZGVmYXVsdDogWycqJ10gfSlcbiAgICAub3B0aW9uKCdleGNsdWRlJywgeyBhbGlhczogJ3gnLCB0eXBlOiAnYXJyYXknLCBkZXNjOiAnZG8gbm90IGV2YWx1YXRlIHRoZXNlIHJ1bGVzICh0YWtlcyBwcmlvcml0eSBvdmVyIC0taW5jbHVkZSknLCBkZWZhdWx0OiBbXSB9KVxuICAgIC5vcHRpb24oJ3NhdmUnLCB7IHR5cGU6ICdib29sZWFuJywgZGVzYzogJ3VwZGF0ZXMgcGFja2FnZS5qc29uIChvciBhd3NsaW50Lmpzb24gaWYgaXQgZXhpc3RzKSB3aXRoIFwiZXhjbHVkZVwiIHN0YXRlbWVudHMgZm9yIGFsbCBmYWlsaW5nIHJ1bGVzJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAub3B0aW9uKCd2ZXJib3NlJywgeyBhbGlhczogJ3YnLCB0eXBlOiAnYm9vbGVhbicsIGRlc2M6ICd2ZXJib3NlIG91dHB1dCAocHJpbnRzIGFsbCBhc3NlcnRpb25zKScsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgLm9wdGlvbigncXVpZXQnLCB7IGFsaWFzOiAncScsIHR5cGU6ICdib29sZWFuJywgZGVzYzogJ3F1aWV0IG1vZGUgLSBzaG93cyBvbmx5IGVycm9ycycsIGRlZmF1bHQ6IHRydWUgfSlcbiAgICAub3B0aW9uKCdmb3JjZScsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjOiAnc3VjY2VlZCBzaWxlbnRseSBpZiB0aGlzIGlzIG5vdCBhIGpzaWkgbW9kdWxlJywgZGVmYXVsdDogdHJ1ZSB9KVxuICAgIC5vcHRpb24oJ2NvbmZpZycsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjOiAncmVhZHMgb3B0aW9ucyBmcm9tIFwiYXdzbGludC5qc29uXCIgaWYgaXQgZXhpc3RzLCBhbmQgb3RoZXJ3aXNlIGZyb20gdGhlIFwiYXdzbGludFwiIHNlY3Rpb24gaW4gcGFja2FnZS5qc29uJywgZGVmYXVsdDogdHJ1ZSB9KVxuICAgIC5vcHRpb24oJ2RlYnVnJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlc2M6ICdkZWJ1ZyBvdXRwdXQnLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgIC5vcHRpb24oJ2NvbXBpbGUnLCB7IGFsaWFzOiAnYycsIHR5cGU6ICdib29sZWFuJywgZGVzYzogJ2Fsd2F5cyBydW4gdGhlIGpzaWkgY29tcGlsZXIgKHVzZSBcIi0tbm8tY29tcGlsZVwiIHRvIG5ldmVyIHJ1biB0aGUgY29tcGlsZXIsIGV2ZW4gaWYgLmpzaWkgZG9lc25cXCd0IGV4aXN0KScgfSlcbiAgICAuZ3JvdXAoJ2luY2x1ZGUnLCAnRmlsdGVyaW5nJylcbiAgICAuZ3JvdXAoJ2V4Y2x1ZGUnLCAnRmlsdGVyaW5nJylcbiAgICAuZ3JvdXAoJ2NvbmZpZycsICdDb25maWd1cmF0aW9uJylcbiAgICAuZ3JvdXAoJ3NhdmUnLCAnQ29uZmlndXJhdGlvbicpXG4gICAgLmdyb3VwKCd2ZXJib3NlJywgJ091dHB1dCcpXG4gICAgLmdyb3VwKCdxdWlldCcsICdPdXRwdXQnKVxuICAgIC5ncm91cCgnZGVidWcnLCAnT3V0cHV0JylcbiAgICAuZ3JvdXAoJ2NvbXBpbGUnLCAnQnVpbGQnKVxuICAgIC5leGFtcGxlKCdhd3NsaW50JywgJ2xpbnRzIHRoZSBjdXJyZW50IG1vZHVsZSBhZ2FpbnN0IGFsbCBydWxlcycpXG4gICAgLmV4YW1wbGUoJ2F3c2xpbnQgLXYgLWkgXCJyZXNvdXJjZSpcIiAtaSBcImltcG9ydCpcIicsICdsaW50cyBhZ2FpbnN0IGFsbCBydWxlcyB0aGF0IHN0YXJ0IHdpdGggXCJyZXNvdXJjZVwiIG9yIFwiaW1wb3J0XCIgYW5kIHByaW50IHN1Y2Nlc3NlcycpXG4gICAgLmV4YW1wbGUoJ2F3c2xpbnQgLXggXCIqOkBhd3MtY2RrL2F3cy1zMypcIicsICdldmFsdWF0ZSBhbGwgcnVsZXMgaW4gYWxsIHNjb3BlcyBiZXNpZGVzIG9uZXMgdGhhdCBiZWdpbiB3aXRoIFwiQGF3cy1jZGsvYXdzLXMzXCInKVxuICAgIC5leGFtcGxlKCdhd3NsaW50IC0tc2F2ZScsICd1cGRhdGVkIFwiYXdzbGludC5qc29uXCIgd2l0aCBcImV4Y2x1ZGVcInMgZm9yIGFsbCBmYWlsaW5nIHJ1bGVzJyk7XG5cbiAgaWYgKCFwcm9jZXNzLnN0ZG91dC5pc1RUWSkge1xuICAgIC8vIERpc2FibGUgY2hhbGsgY29sb3IgaGlnaGxpZ2h0aW5nXG4gICAgcHJvY2Vzcy5lbnYuRk9SQ0VfQ09MT1IgPSAnMCc7XG4gIH1cblxuICBjb25zdCBhcmdzID0gYXJndi5hcmd2O1xuXG4gIHN0YWNrVHJhY2UgPSBhcmdzLnZlcmJvc2UgfHwgYXJncy5kZWJ1ZztcblxuICBpZiAoYXJncy5fLmxlbmd0aCA+IDEpIHtcbiAgICBhcmd2LnNob3dIZWxwKCk7XG4gICAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY29tbWFuZCA9IGFyZ3MuX1swXSB8fCAnbGludCc7XG4gIGNvbnN0IHdvcmtkaXIgPSBwcm9jZXNzLmN3ZCgpO1xuXG4gIGNvbnN0IHBrZ0NvbmZpZyA9IHBhdGguam9pbih3b3JrZGlyLCAncGFja2FnZS5qc29uJyk7XG4gIGNvbnN0IGF3c2xpbnRDb25maWcgPSBwYXRoLmpvaW4od29ya2RpciwgJ2F3c2xpbnQuanNvbicpO1xuXG4gIGlmIChjb21tYW5kID09PSAnbGlzdCcpIHtcbiAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgQUxMX1JVTEVTX0xJTlRFUi5ydWxlcykge1xuICAgICAgY29uc29sZS5pbmZvKGAke2NoYWxrLmN5YW4ocnVsZS5jb2RlKX06ICR7cnVsZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBpZiBubyBwYWNrYWdlLmpzb24gYW5kIGZvcmNlIGlzIHRydWUgKGRlZmF1bHQpLCBqdXN0IGRvbid0IGRvIGFueXRoaW5nXG4gIGlmICghYXdhaXQgZnMucGF0aEV4aXN0cyhwa2dDb25maWcpICYmIGFyZ3MuZm9yY2UpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBwa2cgPSBhd2FpdCBmcy5yZWFkSlNPTihwa2dDb25maWcpO1xuXG4gIC8vIGlmIHRoaXMgaXMgbm90IGEganNpaSBtb2R1bGUgd2UgaGF2ZSBub3RoaW5nIHRvIGxvb2sgZm9yXG4gIGlmICghcGtnLmpzaWkpIHtcbiAgICBpZiAoYXJncy5mb3JjZSkge1xuICAgICAgcmV0dXJuOyAvLyBqdXN0IHNpbGVudGx5IHN1Y2NlZWRcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSBpbiAke3dvcmtkaXJ9IGlzIG5vdCBhIGpzaWkgbW9kdWxlIChubyBcImpzaWlcIiBzZWN0aW9uIGluIHBhY2thZ2UuanNvbilgKTtcbiAgfVxuXG4gIC8vIGlmIHBhY2thZ2UuanNvbiBjb250YWlucyBhIGBqc2lpYCBzZWN0aW9uIGJ1dCB0aGVyZSBpcyBubyAuanNpaSBmaWxlXG4gIC8vIGl0IG1lYW5zIHdlIGhhdmVuJ3QgY29tcGlsZWQgdGhlIG1vZHVsZS5cbiAgaWYgKGF3YWl0IHNob3VsZENvbXBpbGUoKSkge1xuICAgIGF3YWl0IHNoZWxsKCdqc2lpJyk7XG4gIH1cblxuICAvLyBhd3NsaW50Lmpzb24gdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHBhY2thZ2UuanNvbiBmb3IgYXdzbGludCBvcHRpb25zLlxuICBjb25zdCBzdGFuZGxvbmVPcHRpb25zID0gYXdhaXQgcmVhZFN0YW5kYWxvbmVPcHRpb25zKGF3c2xpbnRDb25maWcpO1xuXG4gIC8vIHJlYWQgXCJhd3NsaW50XCIgZnJvbSBwYWNrYWdlLmpzb25cbiAgaWYgKGFyZ3MuY29uZmlnKSB7XG4gICAgaWYgKHN0YW5kbG9uZU9wdGlvbnMpIHtcbiAgICAgIGlmIChwa2cuYXdzbGludCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ2F3c2xpbnQgb3B0aW9ucyBpbiBwYWNrYWdlLmpzb24gd2lsbCBiZSBpZ25vcmVkIHNpbmNlIGF3c2xpbnQuanNvbiBleGlzdHMuJyk7XG4gICAgICB9XG4gICAgICBtZXJnZU9wdGlvbnMoYXJncywgc3RhbmRsb25lT3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1lcmdlT3B0aW9ucyhhcmdzLCBwa2cuYXdzbGludCk7XG4gICAgfVxuICB9XG5cblxuICBpZiAoYXJncy5kZWJ1Zykge1xuICAgIGNvbnNvbGUuZXJyb3IoJ2NvbW1hbmQ6ICcgKyBjb21tYW5kKTtcbiAgICBjb25zb2xlLmVycm9yKCdvcHRpb25zOiAnICsgSlNPTi5zdHJpbmdpZnkoYXJncywgdW5kZWZpbmVkLCAyKSk7XG4gIH1cblxuICBpZiAoY29tbWFuZCA9PT0gJ2xpbnQnKSB7XG4gICAgY29uc3QgYXNzZW1ibHkgPSBhd2FpdCBsb2FkTW9kdWxlKHdvcmtkaXIpO1xuICAgIGlmICghYXNzZW1ibHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBleGNsdWRlc1RvU2F2ZSA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgbGV0IGVycm9ycyA9IDA7XG5cbiAgICBjb25zdCBpbmNsdWRlUnVsZXMgPSBuZXcgUnVsZUZpbHRlclNldChhcmdzLmluY2x1ZGUpO1xuICAgIGNvbnN0IGV4Y2x1ZGVSdWxlcyA9IG5ldyBSdWxlRmlsdGVyU2V0KGFyZ3MuZXhjbHVkZSk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gW107XG5cbiAgICByZXN1bHRzLnB1c2goLi4uQUxMX1JVTEVTX0xJTlRFUi5ldmFsKGFzc2VtYmx5LCB7XG4gICAgICBpbmNsdWRlUnVsZXM6IGluY2x1ZGVSdWxlcyxcbiAgICAgIGV4Y2x1ZGVSdWxlczogZXhjbHVkZVJ1bGVzLFxuICAgIH0pKTtcblxuICAgIC8vIFNvcnQgZXJyb3JzIHRvIHRoZSB0b3AgKGhpZ2hlc3Qgc2V2ZXJpdHkgZmlyc3QpXG4gICAgcmVzdWx0cy5zb3J0KChhLCBiKSA9PiBiLmxldmVsIC0gYS5sZXZlbCk7XG5cbiAgICAvLyBwcm9jZXNzIHJlc3VsdHNcblxuICAgIGZvciAoY29uc3QgZGlhZyBvZiByZXN1bHRzKSB7XG4gICAgICBjb25zdCBzdXBwcmVzc2lvbktleSA9IGAke2RpYWcucnVsZS5jb2RlfToke2RpYWcuc2NvcGV9YDtcblxuICAgICAgbGV0IGNvbG9yO1xuICAgICAgc3dpdGNoIChkaWFnLmxldmVsKSB7XG4gICAgICAgIGNhc2UgRGlhZ25vc3RpY0xldmVsLlN1Y2Nlc3M6XG4gICAgICAgICAgaWYgKGFyZ3MudmVyYm9zZSkge1xuICAgICAgICAgICAgY29sb3IgPSBjaGFsay5ncmF5O1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBEaWFnbm9zdGljTGV2ZWwuRXJyb3I6XG4gICAgICAgICAgZXJyb3JzKys7XG4gICAgICAgICAgY29sb3IgPSBjaGFsay5yZWQ7XG4gICAgICAgICAgaWYgKGFyZ3Muc2F2ZSkge1xuICAgICAgICAgICAgZXhjbHVkZXNUb1NhdmUucHVzaChzdXBwcmVzc2lvbktleSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIERpYWdub3N0aWNMZXZlbC5XYXJuaW5nOlxuICAgICAgICAgIGlmICghYXJncy5xdWlldCkge1xuICAgICAgICAgICAgY29sb3IgPSBjaGFsay55ZWxsb3c7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIERpYWdub3N0aWNMZXZlbC5Ta2lwcGVkOlxuICAgICAgICAgIGlmICghYXJncy5xdWlldCkge1xuICAgICAgICAgICAgY29sb3IgPSBjaGFsay5ibHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbG9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoY29sb3IoYCR7RGlhZ25vc3RpY0xldmVsW2RpYWcubGV2ZWxdLnRvTG93ZXJDYXNlKCl9OiBbJHtjaGFsay5ib2xkKGBhd3NsaW50OiR7ZGlhZy5ydWxlLmNvZGV9YCl9OiR7Y2hhbGsuYm9sZChkaWFnLnNjb3BlKX1dICR7ZGlhZy5tZXNzYWdlfWApKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZXhjbHVkZXNUb1NhdmUubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHN0YW5kbG9uZU9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCFzdGFuZGxvbmVPcHRpb25zLmV4Y2x1ZGUpIHtcbiAgICAgICAgICBzdGFuZGxvbmVPcHRpb25zLmV4Y2x1ZGUgPSBbXTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFwa2cuYXdzbGludCkge1xuICAgICAgICAgIHBrZy5hd3NsaW50ID0geyB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFwa2cuYXdzbGludC5leGNsdWRlKSB7XG4gICAgICAgICAgcGtnLmF3c2xpbnQuZXhjbHVkZSA9IFtdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGV4Y2x1ZGVzOiBzdHJpbmdbXSA9IHN0YW5kbG9uZU9wdGlvbnMgPyBzdGFuZGxvbmVPcHRpb25zLmV4Y2x1ZGUgOiBwa2cuYXdzbGludC5leGNsdWRlO1xuXG4gICAgICBmb3IgKGNvbnN0IGV4Y2x1ZGUgb2YgZXhjbHVkZXNUb1NhdmUpIHtcbiAgICAgICAgaWYgKGV4Y2x1ZGVzLmluZGV4T2YoZXhjbHVkZSkgPT09IC0xKSB7XG4gICAgICAgICAgZXhjbHVkZXMucHVzaChleGNsdWRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZXhjbHVkZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAoc3RhbmRsb25lT3B0aW9ucykge1xuICAgICAgICAgIC8vIElmIGF3c2xpbnQuanNvbiBleGlzdHMsIHdyaXRlIHRoZSBleGNsdWRlcyB0aGVyZSBpbnN0ZWFkIG9mIHRoZSBvbGQgcGFja2FnZS5qc29uIChsZWdhY3kgZm9ybWF0KS5cbiAgICAgICAgICBpZiAocGtnLmF3c2xpbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignRXhjbHVkZXMgd2lsbCBiZSB3cml0dGVuIHRvIGF3c2xpbnQuanNvbi4nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXdhaXQgZnMud3JpdGVKU09OKGF3c2xpbnRDb25maWcsIHN0YW5kbG9uZU9wdGlvbnMsIHsgc3BhY2VzOiAyIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF3YWl0IGZzLndyaXRlSlNPTihwa2dDb25maWcsIHBrZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZXJyb3JzICYmICFhcmdzLnNhdmUpIHtcbiAgICAgIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGFyZ3Yuc2hvd0hlbHAoKTtcbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvbW1hbmQ6ICR7Y29tbWFuZH1gKTtcblxuICBhc3luYyBmdW5jdGlvbiBzaG91bGRDb21waWxlKCkge1xuXG4gICAgLy8gaWYgLS1jb21waWxlIGlzIGV4cGxpY2l0bHkgZW5hYmxlZCB0aGVuIGp1c3QgY29tcGlsZSBhbHdheXNcbiAgICBpZiAoYXJncy5jb21waWxlID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBpZiB3ZSBoYXZlIGEgLmpzaWkgZmlsZSBhbmQgd2UgYXJlIG5vdCBmb3JjZWQgdG8gY29tcGlsZSwgdGhlbiBkb24ndCBjb21waWxlXG4gICAgaWYgKGF3YWl0IGZzLnBhdGhFeGlzdHMocGF0aC5qb2luKHdvcmtkaXIsICcuanNpaScpKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIHdlIGRvbid0IGhhdmUgYSAuanNpaSBmaWxlLCBhbmQgLS1uby1jb21waWxlIGlzIGV4cGxpY2lseSBzZXQsIHRoZW4gaXQncyBhbiBlcnJvclxuICAgIGlmIChhcmdzLmNvbXBpbGUgPT09IGZhbHNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIC5qc2lpIGZpbGUgYW5kIC0tbm8tY29tcGlsZSBpcyBzZXQnKTtcbiAgICB9XG5cbiAgICAvLyBjb21waWxlIVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbn1cblxubWFpbigpLmNhdGNoKGUgPT4ge1xuICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZChlLm1lc3NhZ2UpKTtcbiAgaWYgKHN0YWNrVHJhY2UpIHtcbiAgICBjb25zb2xlLmVycm9yKGUuc3RhY2spO1xuICB9XG4gIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xufSk7XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWRNb2R1bGUoZGlyOiBzdHJpbmcpIHtcbiAgY29uc3QgdHMgPSBuZXcgcmVmbGVjdC5UeXBlU3lzdGVtKCk7XG4gIGF3YWl0IHRzLmxvYWQoZGlyLCB7IHZhbGlkYXRlOiBmYWxzZSB9KTsgLy8gRG9uJ3QgdmFsaWRhdGUgdG8gc2F2ZSA2NiUgb2YgZXhlY3V0aW9uIHRpbWUgKDIwcyB2cyAxbWluKS5cbiAgLy8gV2UgcnVuICdhd3NsaW50JyBkdXJpbmcgYnVpbGQgdGltZSwgYXNzZW1ibGllcyBhcmUgZ3VhcmFudGVlZCB0byBiZSBvay5cblxuICAvLyBXZSB3b24ndCBsb2FkIGFueSBtb3JlIGFzc2VtYmxpZXMuIExvY2sgdGhlIHR5cGVzeXN0ZW0gdG8gYmVuZWZpdCBmcm9tIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cy5cbiAgdHMubG9jaygpO1xuXG4gIGlmICh0cy5yb290cy5sZW5ndGggIT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGluZyBvbmx5IGEgc2luZ2xlIHJvb3QgYXNzZW1ibHknKTtcbiAgfVxuXG4gIHJldHVybiB0cy5yb290c1swXTtcbn1cblxuZnVuY3Rpb24gbWVyZ2VPcHRpb25zKGRlc3Q6IGFueSwgcGtnPzogYW55KSB7XG4gIGlmICghcGtnKSB7IHJldHVybjsgfSAvLyBubyBvcHRpb25zIGluIHBhY2thZ2UuanNvblxuXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHBrZykpIHtcblxuICAgIC8vIGlmIHRoaXMgaXMgYW4gYXJyYXkgb3B0aW9uLCB0aGVuIGFkZCB2YWx1ZXMgdG8gZGVzdGluYXRpb25cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGNvbnN0IGFyciA9IGRlc3Rba2V5XSB8fCBbXTtcbiAgICAgIGFyci5wdXNoKC4uLnZhbHVlKTtcbiAgICAgIGRlc3Rba2V5XSA9IGFycjtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIG9iamVjdHMgYXJlIG5vdCBhbGxvd2VkXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBvcHRpb24gXCIke2tleX1cIiBpbiBwYWNrYWdlLmpzb246ICR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWApO1xuICAgIH1cblxuICAgIC8vIHByaW1pdGl2ZXMgc2ltcGx5IG92ZXJyaWRlXG4gICAgZGVzdFtrZXldID0gdmFsdWU7XG4gIH1cblxuICByZXR1cm4gZGVzdDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZFN0YW5kYWxvbmVPcHRpb25zKGF3c2xpbnRDb25maWc6IHN0cmluZykge1xuICBpZiAoIWF3YWl0IGZzLnBhdGhFeGlzdHMoYXdzbGludENvbmZpZykpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBvcHRpb25zID0gYXdhaXQgZnMucmVhZEpTT04oYXdzbGludENvbmZpZyk7XG4gIHJldHVybiBvcHRpb25zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzaGVsbChjb21tYW5kOiBzdHJpbmcpIHtcbiAgY29uc3QgY2hpbGQgPSBjaGlsZF9wcm9jZXNzLnNwYXduKGNvbW1hbmQsIFtdLCB7IHN0ZGlvOiBbJ2luaGVyaXQnLCAnaW5oZXJpdCcsICdpbmhlcml0J10gfSk7XG4gIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigob2ssIGtvKSA9PiB7XG4gICAgY2hpbGQub25jZSgnZXhpdCcsIChzdGF0dXM6IGFueSkgPT4ge1xuICAgICAgaWYgKHN0YXR1cyA9PT0gMCkge1xuICAgICAgICByZXR1cm4gb2soKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBrbyhuZXcgRXJyb3IoYCR7Y29tbWFuZH0gZXhpdGVkIHdpdGggc3RhdHVzICR7c3RhdHVzfWApKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjaGlsZC5vbmNlKCdlcnJvcicsIGtvKTtcbiAgfSk7XG59XG4iXX0=
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzbGludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3c2xpbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0QkFBNEI7QUFDNUIsK0JBQStCO0FBQy9CLCtDQUErQztBQUMvQyw2QkFBNkI7QUFFN0IsK0JBQStCO0FBQy9CLCtCQUErQjtBQUMvQix3Q0FBd0M7QUFDeEMsK0JBQStCO0FBQy9CLGdDQUEwRTtBQUUxRSxNQUFNLFFBQVEsR0FBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRXZELElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztBQUV2QixLQUFLLFVBQVUsSUFBSTtJQUNqQixNQUFNLElBQUksR0FBRyxLQUFLO1NBQ2YsR0FBRyxDQUFDLFNBQVMsQ0FBQztTQUNkLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQztTQUNwQyxjQUFjLENBQUMsSUFBSSxDQUFDO1NBQ3BCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsbUNBQW1DLENBQUM7U0FDbEQsT0FBTyxDQUFDLE1BQU0sRUFBRSwwQkFBMEIsQ0FBQztTQUMzQyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSw0QkFBNEIsRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1NBQ3BHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLDZEQUE2RCxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztTQUNsSSxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUscUdBQXFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQ2hLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFT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Q0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsT0FBTyx1QkFBdUIsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCAqIGFzIGNoaWxkX3Byb2Nlc3MgZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgSnNpaUZlYXR1cmUgfSBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCAqIGFzIHlhcmdzIGZyb20gJ3lhcmdzJztcbmltcG9ydCB7IEFMTF9SVUxFU19MSU5URVIsIERpYWdub3N0aWNMZXZlbCwgUnVsZUZpbHRlclNldCB9IGZyb20gJy4uL2xpYic7XG5cbmNvbnN0IEZFQVRVUkVTOiBKc2lpRmVhdHVyZVtdID0gWydpbnRlcnNlY3Rpb24tdHlwZXMnXTtcblxubGV0IHN0YWNrVHJhY2UgPSBmYWxzZTtcblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3QgYXJndiA9IHlhcmdzXG4gICAgLmVudignQVdTTElOVCcpXG4gICAgLnVzYWdlKCdhd3NsaW50IFtvcHRpb25zXSBbY29tbWFuZF0nKVxuICAgIC5zaG93SGVscE9uRmFpbCh0cnVlKVxuICAgIC5jb21tYW5kKCckMCcsICdsaW50IHRoZSBjdXJyZW50IG1vZHVsZSAoZGVmYXVsdCknKVxuICAgIC5jb21tYW5kKCdsaXN0JywgJ2xpc3QgYWxsIGF2YWlsYWJsZSBydWxlcycpXG4gICAgLm9wdGlvbignaW5jbHVkZScsIHsgYWxpYXM6ICdpJywgdHlwZTogJ2FycmF5JywgZGVzYzogJ2V2YWx1YXRlIG9ubHkgdGhpcyBydWxlKHMpJywgZGVmYXVsdDogWycqJ10gfSlcbiAgICAub3B0aW9uKCdleGNsdWRlJywgeyBhbGlhczogJ3gnLCB0eXBlOiAnYXJyYXknLCBkZXNjOiAnZG8gbm90IGV2YWx1YXRlIHRoZXNlIHJ1bGVzICh0YWtlcyBwcmlvcml0eSBvdmVyIC0taW5jbHVkZSknLCBkZWZhdWx0OiBbXSB9KVxuICAgIC5vcHRpb24oJ3NhdmUnLCB7IHR5cGU6ICdib29sZWFuJywgZGVzYzogJ3VwZGF0ZXMgcGFja2FnZS5qc29uIChvciBhd3NsaW50Lmpzb24gaWYgaXQgZXhpc3RzKSB3aXRoIFwiZXhjbHVkZVwiIHN0YXRlbWVudHMgZm9yIGFsbCBmYWlsaW5nIHJ1bGVzJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAub3B0aW9uKCd2ZXJib3NlJywgeyBhbGlhczogJ3YnLCB0eXBlOiAnYm9vbGVhbicsIGRlc2M6ICd2ZXJib3NlIG91dHB1dCAocHJpbnRzIGFsbCBhc3NlcnRpb25zKScsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgLm9wdGlvbigncXVpZXQnLCB7IGFsaWFzOiAncScsIHR5cGU6ICdib29sZWFuJywgZGVzYzogJ3F1aWV0IG1vZGUgLSBzaG93cyBvbmx5IGVycm9ycycsIGRlZmF1bHQ6IHRydWUgfSlcbiAgICAub3B0aW9uKCdmb3JjZScsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjOiAnc3VjY2VlZCBzaWxlbnRseSBpZiB0aGlzIGlzIG5vdCBhIGpzaWkgbW9kdWxlJywgZGVmYXVsdDogdHJ1ZSB9KVxuICAgIC5vcHRpb24oJ2NvbmZpZycsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjOiAncmVhZHMgb3B0aW9ucyBmcm9tIFwiYXdzbGludC5qc29uXCIgaWYgaXQgZXhpc3RzLCBhbmQgb3RoZXJ3aXNlIGZyb20gdGhlIFwiYXdzbGludFwiIHNlY3Rpb24gaW4gcGFja2FnZS5qc29uJywgZGVmYXVsdDogdHJ1ZSB9KVxuICAgIC5vcHRpb24oJ2RlYnVnJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlc2M6ICdkZWJ1ZyBvdXRwdXQnLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgIC5vcHRpb24oJ2NvbXBpbGUnLCB7IGFsaWFzOiAnYycsIHR5cGU6ICdib29sZWFuJywgZGVzYzogJ2Fsd2F5cyBydW4gdGhlIGpzaWkgY29tcGlsZXIgKHVzZSBcIi0tbm8tY29tcGlsZVwiIHRvIG5ldmVyIHJ1biB0aGUgY29tcGlsZXIsIGV2ZW4gaWYgLmpzaWkgZG9lc25cXCd0IGV4aXN0KScgfSlcbiAgICAuZ3JvdXAoJ2luY2x1ZGUnLCAnRmlsdGVyaW5nJylcbiAgICAuZ3JvdXAoJ2V4Y2x1ZGUnLCAnRmlsdGVyaW5nJylcbiAgICAuZ3JvdXAoJ2NvbmZpZycsICdDb25maWd1cmF0aW9uJylcbiAgICAuZ3JvdXAoJ3NhdmUnLCAnQ29uZmlndXJhdGlvbicpXG4gICAgLmdyb3VwKCd2ZXJib3NlJywgJ091dHB1dCcpXG4gICAgLmdyb3VwKCdxdWlldCcsICdPdXRwdXQnKVxuICAgIC5ncm91cCgnZGVidWcnLCAnT3V0cHV0JylcbiAgICAuZ3JvdXAoJ2NvbXBpbGUnLCAnQnVpbGQnKVxuICAgIC5leGFtcGxlKCdhd3NsaW50JywgJ2xpbnRzIHRoZSBjdXJyZW50IG1vZHVsZSBhZ2FpbnN0IGFsbCBydWxlcycpXG4gICAgLmV4YW1wbGUoJ2F3c2xpbnQgLXYgLWkgXCJyZXNvdXJjZSpcIiAtaSBcImltcG9ydCpcIicsICdsaW50cyBhZ2FpbnN0IGFsbCBydWxlcyB0aGF0IHN0YXJ0IHdpdGggXCJyZXNvdXJjZVwiIG9yIFwiaW1wb3J0XCIgYW5kIHByaW50IHN1Y2Nlc3NlcycpXG4gICAgLmV4YW1wbGUoJ2F3c2xpbnQgLXggXCIqOkBhd3MtY2RrL2F3cy1zMypcIicsICdldmFsdWF0ZSBhbGwgcnVsZXMgaW4gYWxsIHNjb3BlcyBiZXNpZGVzIG9uZXMgdGhhdCBiZWdpbiB3aXRoIFwiQGF3cy1jZGsvYXdzLXMzXCInKVxuICAgIC5leGFtcGxlKCdhd3NsaW50IC0tc2F2ZScsICd1cGRhdGVkIFwiYXdzbGludC5qc29uXCIgd2l0aCBcImV4Y2x1ZGVcInMgZm9yIGFsbCBmYWlsaW5nIHJ1bGVzJyk7XG5cbiAgaWYgKCFwcm9jZXNzLnN0ZG91dC5pc1RUWSkge1xuICAgIC8vIERpc2FibGUgY2hhbGsgY29sb3IgaGlnaGxpZ2h0aW5nXG4gICAgcHJvY2Vzcy5lbnYuRk9SQ0VfQ09MT1IgPSAnMCc7XG4gIH1cblxuICBjb25zdCBhcmdzID0gYXJndi5hcmd2O1xuXG4gIHN0YWNrVHJhY2UgPSBhcmdzLnZlcmJvc2UgfHwgYXJncy5kZWJ1ZztcblxuICBpZiAoYXJncy5fLmxlbmd0aCA+IDEpIHtcbiAgICBhcmd2LnNob3dIZWxwKCk7XG4gICAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY29tbWFuZCA9IGFyZ3MuX1swXSB8fCAnbGludCc7XG4gIGNvbnN0IHdvcmtkaXIgPSBwcm9jZXNzLmN3ZCgpO1xuXG4gIGNvbnN0IHBrZ0NvbmZpZyA9IHBhdGguam9pbih3b3JrZGlyLCAncGFja2FnZS5qc29uJyk7XG4gIGNvbnN0IGF3c2xpbnRDb25maWcgPSBwYXRoLmpvaW4od29ya2RpciwgJ2F3c2xpbnQuanNvbicpO1xuXG4gIGlmIChjb21tYW5kID09PSAnbGlzdCcpIHtcbiAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgQUxMX1JVTEVTX0xJTlRFUi5ydWxlcykge1xuICAgICAgY29uc29sZS5pbmZvKGAke2NoYWxrLmN5YW4ocnVsZS5jb2RlKX06ICR7cnVsZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBpZiBubyBwYWNrYWdlLmpzb24gYW5kIGZvcmNlIGlzIHRydWUgKGRlZmF1bHQpLCBqdXN0IGRvbid0IGRvIGFueXRoaW5nXG4gIGlmICghYXdhaXQgZnMucGF0aEV4aXN0cyhwa2dDb25maWcpICYmIGFyZ3MuZm9yY2UpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBwa2cgPSBhd2FpdCBmcy5yZWFkSlNPTihwa2dDb25maWcpO1xuXG4gIC8vIGlmIHRoaXMgaXMgbm90IGEganNpaSBtb2R1bGUgd2UgaGF2ZSBub3RoaW5nIHRvIGxvb2sgZm9yXG4gIGlmICghcGtnLmpzaWkpIHtcbiAgICBpZiAoYXJncy5mb3JjZSkge1xuICAgICAgcmV0dXJuOyAvLyBqdXN0IHNpbGVudGx5IHN1Y2NlZWRcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSBpbiAke3dvcmtkaXJ9IGlzIG5vdCBhIGpzaWkgbW9kdWxlIChubyBcImpzaWlcIiBzZWN0aW9uIGluIHBhY2thZ2UuanNvbilgKTtcbiAgfVxuXG4gIC8vIGlmIHBhY2thZ2UuanNvbiBjb250YWlucyBhIGBqc2lpYCBzZWN0aW9uIGJ1dCB0aGVyZSBpcyBubyAuanNpaSBmaWxlXG4gIC8vIGl0IG1lYW5zIHdlIGhhdmVuJ3QgY29tcGlsZWQgdGhlIG1vZHVsZS5cbiAgaWYgKGF3YWl0IHNob3VsZENvbXBpbGUoKSkge1xuICAgIGF3YWl0IHNoZWxsKCdqc2lpJyk7XG4gIH1cblxuICAvLyBhd3NsaW50Lmpzb24gdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHBhY2thZ2UuanNvbiBmb3IgYXdzbGludCBvcHRpb25zLlxuICBjb25zdCBzdGFuZGxvbmVPcHRpb25zID0gYXdhaXQgcmVhZFN0YW5kYWxvbmVPcHRpb25zKGF3c2xpbnRDb25maWcpO1xuXG4gIC8vIHJlYWQgXCJhd3NsaW50XCIgZnJvbSBwYWNrYWdlLmpzb25cbiAgaWYgKGFyZ3MuY29uZmlnKSB7XG4gICAgaWYgKHN0YW5kbG9uZU9wdGlvbnMpIHtcbiAgICAgIGlmIChwa2cuYXdzbGludCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ2F3c2xpbnQgb3B0aW9ucyBpbiBwYWNrYWdlLmpzb24gd2lsbCBiZSBpZ25vcmVkIHNpbmNlIGF3c2xpbnQuanNvbiBleGlzdHMuJyk7XG4gICAgICB9XG4gICAgICBtZXJnZU9wdGlvbnMoYXJncywgc3RhbmRsb25lT3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1lcmdlT3B0aW9ucyhhcmdzLCBwa2cuYXdzbGludCk7XG4gICAgfVxuICB9XG5cblxuICBpZiAoYXJncy5kZWJ1Zykge1xuICAgIGNvbnNvbGUuZXJyb3IoJ2NvbW1hbmQ6ICcgKyBjb21tYW5kKTtcbiAgICBjb25zb2xlLmVycm9yKCdvcHRpb25zOiAnICsgSlNPTi5zdHJpbmdpZnkoYXJncywgdW5kZWZpbmVkLCAyKSk7XG4gIH1cblxuICBpZiAoY29tbWFuZCA9PT0gJ2xpbnQnKSB7XG4gICAgY29uc3QgYXNzZW1ibHkgPSBhd2FpdCBsb2FkTW9kdWxlKHdvcmtkaXIpO1xuICAgIGlmICghYXNzZW1ibHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBleGNsdWRlc1RvU2F2ZSA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgbGV0IGVycm9ycyA9IDA7XG5cbiAgICBjb25zdCBpbmNsdWRlUnVsZXMgPSBuZXcgUnVsZUZpbHRlclNldChhcmdzLmluY2x1ZGUpO1xuICAgIGNvbnN0IGV4Y2x1ZGVSdWxlcyA9IG5ldyBSdWxlRmlsdGVyU2V0KGFyZ3MuZXhjbHVkZSk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gW107XG5cbiAgICByZXN1bHRzLnB1c2goLi4uQUxMX1JVTEVTX0xJTlRFUi5ldmFsKGFzc2VtYmx5LCB7XG4gICAgICBpbmNsdWRlUnVsZXM6IGluY2x1ZGVSdWxlcyxcbiAgICAgIGV4Y2x1ZGVSdWxlczogZXhjbHVkZVJ1bGVzLFxuICAgIH0pKTtcblxuICAgIC8vIFNvcnQgZXJyb3JzIHRvIHRoZSB0b3AgKGhpZ2hlc3Qgc2V2ZXJpdHkgZmlyc3QpXG4gICAgcmVzdWx0cy5zb3J0KChhLCBiKSA9PiBiLmxldmVsIC0gYS5sZXZlbCk7XG5cbiAgICAvLyBwcm9jZXNzIHJlc3VsdHNcblxuICAgIGZvciAoY29uc3QgZGlhZyBvZiByZXN1bHRzKSB7XG4gICAgICBjb25zdCBzdXBwcmVzc2lvbktleSA9IGAke2RpYWcucnVsZS5jb2RlfToke2RpYWcuc2NvcGV9YDtcblxuICAgICAgbGV0IGNvbG9yO1xuICAgICAgc3dpdGNoIChkaWFnLmxldmVsKSB7XG4gICAgICAgIGNhc2UgRGlhZ25vc3RpY0xldmVsLlN1Y2Nlc3M6XG4gICAgICAgICAgaWYgKGFyZ3MudmVyYm9zZSkge1xuICAgICAgICAgICAgY29sb3IgPSBjaGFsay5ncmF5O1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBEaWFnbm9zdGljTGV2ZWwuRXJyb3I6XG4gICAgICAgICAgZXJyb3JzKys7XG4gICAgICAgICAgY29sb3IgPSBjaGFsay5yZWQ7XG4gICAgICAgICAgaWYgKGFyZ3Muc2F2ZSkge1xuICAgICAgICAgICAgZXhjbHVkZXNUb1NhdmUucHVzaChzdXBwcmVzc2lvbktleSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIERpYWdub3N0aWNMZXZlbC5XYXJuaW5nOlxuICAgICAgICAgIGlmICghYXJncy5xdWlldCkge1xuICAgICAgICAgICAgY29sb3IgPSBjaGFsay55ZWxsb3c7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIERpYWdub3N0aWNMZXZlbC5Ta2lwcGVkOlxuICAgICAgICAgIGlmICghYXJncy5xdWlldCkge1xuICAgICAgICAgICAgY29sb3IgPSBjaGFsay5ibHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbG9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoY29sb3IoYCR7RGlhZ25vc3RpY0xldmVsW2RpYWcubGV2ZWxdLnRvTG93ZXJDYXNlKCl9OiBbJHtjaGFsay5ib2xkKGBhd3NsaW50OiR7ZGlhZy5ydWxlLmNvZGV9YCl9OiR7Y2hhbGsuYm9sZChkaWFnLnNjb3BlKX1dICR7ZGlhZy5tZXNzYWdlfWApKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZXhjbHVkZXNUb1NhdmUubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHN0YW5kbG9uZU9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCFzdGFuZGxvbmVPcHRpb25zLmV4Y2x1ZGUpIHtcbiAgICAgICAgICBzdGFuZGxvbmVPcHRpb25zLmV4Y2x1ZGUgPSBbXTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFwa2cuYXdzbGludCkge1xuICAgICAgICAgIHBrZy5hd3NsaW50ID0geyB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFwa2cuYXdzbGludC5leGNsdWRlKSB7XG4gICAgICAgICAgcGtnLmF3c2xpbnQuZXhjbHVkZSA9IFtdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGV4Y2x1ZGVzOiBzdHJpbmdbXSA9IHN0YW5kbG9uZU9wdGlvbnMgPyBzdGFuZGxvbmVPcHRpb25zLmV4Y2x1ZGUgOiBwa2cuYXdzbGludC5leGNsdWRlO1xuXG4gICAgICBmb3IgKGNvbnN0IGV4Y2x1ZGUgb2YgZXhjbHVkZXNUb1NhdmUpIHtcbiAgICAgICAgaWYgKGV4Y2x1ZGVzLmluZGV4T2YoZXhjbHVkZSkgPT09IC0xKSB7XG4gICAgICAgICAgZXhjbHVkZXMucHVzaChleGNsdWRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZXhjbHVkZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAoc3RhbmRsb25lT3B0aW9ucykge1xuICAgICAgICAgIC8vIElmIGF3c2xpbnQuanNvbiBleGlzdHMsIHdyaXRlIHRoZSBleGNsdWRlcyB0aGVyZSBpbnN0ZWFkIG9mIHRoZSBvbGQgcGFja2FnZS5qc29uIChsZWdhY3kgZm9ybWF0KS5cbiAgICAgICAgICBpZiAocGtnLmF3c2xpbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignRXhjbHVkZXMgd2lsbCBiZSB3cml0dGVuIHRvIGF3c2xpbnQuanNvbi4nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYXdhaXQgZnMud3JpdGVKU09OKGF3c2xpbnRDb25maWcsIHN0YW5kbG9uZU9wdGlvbnMsIHsgc3BhY2VzOiAyIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF3YWl0IGZzLndyaXRlSlNPTihwa2dDb25maWcsIHBrZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZXJyb3JzICYmICFhcmdzLnNhdmUpIHtcbiAgICAgIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGFyZ3Yuc2hvd0hlbHAoKTtcbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvbW1hbmQ6ICR7Y29tbWFuZH1gKTtcblxuICBhc3luYyBmdW5jdGlvbiBzaG91bGRDb21waWxlKCkge1xuXG4gICAgLy8gaWYgLS1jb21waWxlIGlzIGV4cGxpY2l0bHkgZW5hYmxlZCB0aGVuIGp1c3QgY29tcGlsZSBhbHdheXNcbiAgICBpZiAoYXJncy5jb21waWxlID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBpZiB3ZSBoYXZlIGEgLmpzaWkgZmlsZSBhbmQgd2UgYXJlIG5vdCBmb3JjZWQgdG8gY29tcGlsZSwgdGhlbiBkb24ndCBjb21waWxlXG4gICAgaWYgKGF3YWl0IGZzLnBhdGhFeGlzdHMocGF0aC5qb2luKHdvcmtkaXIsICcuanNpaScpKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIHdlIGRvbid0IGhhdmUgYSAuanNpaSBmaWxlLCBhbmQgLS1uby1jb21waWxlIGlzIGV4cGxpY2lseSBzZXQsIHRoZW4gaXQncyBhbiBlcnJvclxuICAgIGlmIChhcmdzLmNvbXBpbGUgPT09IGZhbHNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIC5qc2lpIGZpbGUgYW5kIC0tbm8tY29tcGlsZSBpcyBzZXQnKTtcbiAgICB9XG5cbiAgICAvLyBjb21waWxlIVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbn1cblxubWFpbigpLmNhdGNoKGUgPT4ge1xuICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZChlLm1lc3NhZ2UpKTtcbiAgaWYgKHN0YWNrVHJhY2UpIHtcbiAgICBjb25zb2xlLmVycm9yKGUuc3RhY2spO1xuICB9XG4gIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xufSk7XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWRNb2R1bGUoZGlyOiBzdHJpbmcpIHtcbiAgY29uc3QgdHMgPSBuZXcgcmVmbGVjdC5UeXBlU3lzdGVtKCk7XG4gIGF3YWl0IHRzLmxvYWQoZGlyLCB7IHZhbGlkYXRlOiBmYWxzZSwgc3VwcG9ydGVkRmVhdHVyZXM6IEZFQVRVUkVTIH0pOyAvLyBEb24ndCB2YWxpZGF0ZSB0byBzYXZlIDY2JSBvZiBleGVjdXRpb24gdGltZSAoMjBzIHZzIDFtaW4pLlxuICAvLyBXZSBydW4gJ2F3c2xpbnQnIGR1cmluZyBidWlsZCB0aW1lLCBhc3NlbWJsaWVzIGFyZSBndWFyYW50ZWVkIHRvIGJlIG9rLlxuXG4gIC8vIFdlIHdvbid0IGxvYWQgYW55IG1vcmUgYXNzZW1ibGllcy4gTG9jayB0aGUgdHlwZXN5c3RlbSB0byBiZW5lZml0IGZyb20gcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzLlxuICB0cy5sb2NrKCk7XG5cbiAgaWYgKHRzLnJvb3RzLmxlbmd0aCAhPT0gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0aW5nIG9ubHkgYSBzaW5nbGUgcm9vdCBhc3NlbWJseScpO1xuICB9XG5cbiAgcmV0dXJuIHRzLnJvb3RzWzBdO1xufVxuXG5mdW5jdGlvbiBtZXJnZU9wdGlvbnMoZGVzdDogYW55LCBwa2c/OiBhbnkpIHtcbiAgaWYgKCFwa2cpIHsgcmV0dXJuOyB9IC8vIG5vIG9wdGlvbnMgaW4gcGFja2FnZS5qc29uXG5cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGtnKSkge1xuXG4gICAgLy8gaWYgdGhpcyBpcyBhbiBhcnJheSBvcHRpb24sIHRoZW4gYWRkIHZhbHVlcyB0byBkZXN0aW5hdGlvblxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgY29uc3QgYXJyID0gZGVzdFtrZXldIHx8IFtdO1xuICAgICAgYXJyLnB1c2goLi4udmFsdWUpO1xuICAgICAgZGVzdFtrZXldID0gYXJyO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLy8gb2JqZWN0cyBhcmUgbm90IGFsbG93ZWRcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIG9wdGlvbiBcIiR7a2V5fVwiIGluIHBhY2thZ2UuanNvbjogJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XG4gICAgfVxuXG4gICAgLy8gcHJpbWl0aXZlcyBzaW1wbHkgb3ZlcnJpZGVcbiAgICBkZXN0W2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBkZXN0O1xufVxuXG5hc3luYyBmdW5jdGlvbiByZWFkU3RhbmRhbG9uZU9wdGlvbnMoYXdzbGludENvbmZpZzogc3RyaW5nKSB7XG4gIGlmICghYXdhaXQgZnMucGF0aEV4aXN0cyhhd3NsaW50Q29uZmlnKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG9wdGlvbnMgPSBhd2FpdCBmcy5yZWFkSlNPTihhd3NsaW50Q29uZmlnKTtcbiAgcmV0dXJuIG9wdGlvbnM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNoZWxsKGNvbW1hbmQ6IHN0cmluZykge1xuICBjb25zdCBjaGlsZCA9IGNoaWxkX3Byb2Nlc3Muc3Bhd24oY29tbWFuZCwgW10sIHsgc3RkaW86IFsnaW5oZXJpdCcsICdpbmhlcml0JywgJ2luaGVyaXQnXSB9KTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChvaywga28pID0+IHtcbiAgICBjaGlsZC5vbmNlKCdleGl0JywgKHN0YXR1czogYW55KSA9PiB7XG4gICAgICBpZiAoc3RhdHVzID09PSAwKSB7XG4gICAgICAgIHJldHVybiBvaygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGtvKG5ldyBFcnJvcihgJHtjb21tYW5kfSBleGl0ZWQgd2l0aCBzdGF0dXMgJHtzdGF0dXN9YCkpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNoaWxkLm9uY2UoJ2Vycm9yJywga28pO1xuICB9KTtcbn1cbiJdfQ==
|
package/bin/awslint.ts
CHANGED
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
/* eslint-disable no-console */
|
|
3
3
|
import * as child_process from 'child_process';
|
|
4
4
|
import * as path from 'path';
|
|
5
|
+
import { JsiiFeature } from '@jsii/spec';
|
|
5
6
|
import * as chalk from 'chalk';
|
|
6
7
|
import * as fs from 'fs-extra';
|
|
7
8
|
import * as reflect from 'jsii-reflect';
|
|
8
9
|
import * as yargs from 'yargs';
|
|
9
10
|
import { ALL_RULES_LINTER, DiagnosticLevel, RuleFilterSet } from '../lib';
|
|
10
11
|
|
|
12
|
+
const FEATURES: JsiiFeature[] = ['intersection-types'];
|
|
13
|
+
|
|
11
14
|
let stackTrace = false;
|
|
12
15
|
|
|
13
16
|
async function main() {
|
|
@@ -247,7 +250,7 @@ main().catch(e => {
|
|
|
247
250
|
|
|
248
251
|
async function loadModule(dir: string) {
|
|
249
252
|
const ts = new reflect.TypeSystem();
|
|
250
|
-
await ts.load(dir, { validate: false }); // Don't validate to save 66% of execution time (20s vs 1min).
|
|
253
|
+
await ts.load(dir, { validate: false, supportedFeatures: FEATURES }); // Don't validate to save 66% of execution time (20s vs 1min).
|
|
251
254
|
// We run 'awslint' during build time, assemblies are guaranteed to be ok.
|
|
252
255
|
|
|
253
256
|
// We won't load any more assemblies. Lock the typesystem to benefit from performance improvements.
|
package/lib/linter.js
CHANGED
|
@@ -7,6 +7,7 @@ class LinterBase {
|
|
|
7
7
|
}
|
|
8
8
|
exports.LinterBase = LinterBase;
|
|
9
9
|
class AggregateLinter extends LinterBase {
|
|
10
|
+
linters;
|
|
10
11
|
constructor(...linters) {
|
|
11
12
|
super();
|
|
12
13
|
this.linters = linters;
|
|
@@ -31,10 +32,11 @@ exports.AggregateLinter = AggregateLinter;
|
|
|
31
32
|
* Evaluates a bunch of rules against some context.
|
|
32
33
|
*/
|
|
33
34
|
class Linter extends LinterBase {
|
|
35
|
+
init;
|
|
36
|
+
_rules = {};
|
|
34
37
|
constructor(init) {
|
|
35
38
|
super();
|
|
36
39
|
this.init = init;
|
|
37
|
-
this._rules = {};
|
|
38
40
|
}
|
|
39
41
|
get rules() {
|
|
40
42
|
return Object.values(this._rules);
|
|
@@ -75,6 +77,10 @@ exports.Linter = Linter;
|
|
|
75
77
|
* Passed in to each rule during evaluation.
|
|
76
78
|
*/
|
|
77
79
|
class Evaluation {
|
|
80
|
+
ctx;
|
|
81
|
+
options;
|
|
82
|
+
curr;
|
|
83
|
+
diagnostics;
|
|
78
84
|
constructor(ctx, rule, diagnostics, options) {
|
|
79
85
|
this.ctx = ctx;
|
|
80
86
|
this.options = options;
|
|
@@ -219,4 +225,4 @@ function typeReferenceFrom(ts, x) {
|
|
|
219
225
|
function isTypeReference(x) {
|
|
220
226
|
return x instanceof reflect.TypeReference;
|
|
221
227
|
}
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGludGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibGludGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUU3Qix3Q0FBd0M7QUFpQnhDLE1BQXNCLFVBQVU7Q0FHL0I7QUFIRCxnQ0FHQztBQUVELE1BQWEsZUFBZ0IsU0FBUSxVQUFVO0lBRzdDLFlBQVksR0FBRyxPQUFxQjtRQUNsQyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBUSxDQUFDO1FBQzlCLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVNLElBQUksQ0FBQyxRQUEwQixFQUFFLE9BQWtDO1FBQ3hFLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFjLENBQUM7UUFDdEMsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGO0FBdkJELDBDQXVCQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxNQUFVLFNBQVEsVUFBVTtJQUd2QyxZQUE2QixJQUFrRTtRQUM3RixLQUFLLEVBQUUsQ0FBQztRQURtQixTQUFJLEdBQUosSUFBSSxDQUE4RDtRQUY5RSxXQUFNLEdBQXdDLEVBQUcsQ0FBQztJQUluRSxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2Qs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QUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUVyQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFrQixFQUFFLENBQUMsQ0FBQztRQUMxRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxDQUFNO0lBQzdCLE9BQU8sQ0FBQyxZQUFZLE9BQU8sQ0FBQyxhQUFhLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgeyBQcmltaXRpdmVUeXBlIH0gZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBSdWxlRmlsdGVyU2V0IH0gZnJvbSAnLi9ydWxlLXNwZWNzJztcblxuZXhwb3J0IGludGVyZmFjZSBMaW50ZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgcnVsZXMgdG8gaW5jbHVkZS5cbiAgICogQGRlZmF1bHQgYWxsIHJ1bGVzXG4gICAqL1xuICBpbmNsdWRlUnVsZXM/OiBSdWxlRmlsdGVyU2V0O1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHJ1bGVzIHRvIGV4Y2x1ZGUgKHRha2VzIHByZWNlZGVuY2Ugb24gXCJpbmNsdWRlXCIpXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIGV4Y2x1ZGVSdWxlcz86IFJ1bGVGaWx0ZXJTZXQ7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMaW50ZXJCYXNlIHtcbiAgcHVibGljIGFic3RyYWN0IHJ1bGVzOiBSdWxlW107XG4gIHB1YmxpYyBhYnN0cmFjdCBldmFsKGFzc2VtYmx5OiByZWZsZWN0LkFzc2VtYmx5LCBvcHRpb25zOiBMaW50ZXJPcHRpb25zIHwgdW5kZWZpbmVkKTogRGlhZ25vc3RpY1tdO1xufVxuXG5leHBvcnQgY2xhc3MgQWdncmVnYXRlTGludGVyIGV4dGVuZHMgTGludGVyQmFzZSB7XG4gIHByaXZhdGUgbGludGVyczogTGludGVyQmFzZVtdO1xuXG4gIGNvbnN0cnVjdG9yKC4uLmxpbnRlcnM6IExpbnRlckJhc2VbXSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5saW50ZXJzID0gbGludGVycztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcnVsZXMoKTogUnVsZVtdIHtcbiAgICBjb25zdCByZXQgPSBuZXcgQXJyYXk8UnVsZT4oKTtcbiAgICBmb3IgKGNvbnN0IGxpbnRlciBvZiB0aGlzLmxpbnRlcnMpIHtcbiAgICAgIHJldC5wdXNoKC4uLmxpbnRlci5ydWxlcyk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwdWJsaWMgZXZhbChhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseSwgb3B0aW9uczogTGludGVyT3B0aW9ucyB8IHVuZGVmaW5lZCk6IERpYWdub3N0aWNbXSB7XG4gICAgY29uc3QgZGlhZ3MgPSBuZXcgQXJyYXk8RGlhZ25vc3RpYz4oKTtcbiAgICBmb3IgKGNvbnN0IGxpbnRlciBvZiB0aGlzLmxpbnRlcnMpIHtcbiAgICAgIGRpYWdzLnB1c2goLi4ubGludGVyLmV2YWwoYXNzZW1ibHksIG9wdGlvbnMpKTtcbiAgICB9XG4gICAgcmV0dXJuIGRpYWdzO1xuICB9XG59XG5cbi8qKlxuICogRXZhbHVhdGVzIGEgYnVuY2ggb2YgcnVsZXMgYWdhaW5zdCBzb21lIGNvbnRleHQuXG4gKi9cbmV4cG9ydCBjbGFzcyBMaW50ZXI8VD4gZXh0ZW5kcyBMaW50ZXJCYXNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfcnVsZXM6IHsgW25hbWU6IHN0cmluZ106IENvbmNyZXRlUnVsZTxUPiB9ID0geyB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaW5pdDogKGFzc2VtYmx5OiByZWZsZWN0LkFzc2VtYmx5KSA9PiBUIHwgcmVhZG9ubHkgVFtdIHwgdW5kZWZpbmVkKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcnVsZXMoKSB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5fcnVsZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc3RhbGwgYW5vdGhlciBydWxlLlxuICAgKi9cbiAgcHVibGljIGFkZChydWxlOiBDb25jcmV0ZVJ1bGU8VD4pIHtcbiAgICBpZiAocnVsZS5jb2RlIGluIHRoaXMuX3J1bGVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHJ1bGUgXCIke3J1bGUuY29kZX1cIiBhbHJlYWR5IGV4aXN0c2ApO1xuICAgIH1cblxuICAgIHRoaXMuX3J1bGVzW3J1bGUuY29kZV0gPSBydWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlIGFsbCBydWxlcyBhZ2FpbnN0IHRoZSBjb250ZXh0LlxuICAgKi9cbiAgcHVibGljIGV2YWwoYXNzZW1ibHk6IHJlZmxlY3QuQXNzZW1ibHksIG9wdGlvbnM6IExpbnRlck9wdGlvbnMgfCB1bmRlZmluZWQpOiBEaWFnbm9zdGljW10ge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHsgfTtcblxuICAgIGxldCBjdHhzID0gdGhpcy5pbml0KGFzc2VtYmx5KTtcbiAgICBpZiAoIWN0eHMpIHtcbiAgICAgIHJldHVybiBbXTsgLy8gc2tpcFxuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShjdHhzKSkge1xuICAgICAgY3R4cyA9IFtjdHhzXSBhcyByZWFkb25seSBUW107XG4gICAgfVxuXG4gICAgY29uc3QgZGlhZyA9IG5ldyBBcnJheTxEaWFnbm9zdGljPigpO1xuXG4gICAgZm9yIChjb25zdCBjdHggb2YgY3R4cykge1xuICAgICAgZm9yIChjb25zdCBydWxlIG9mIE9iamVjdC52YWx1ZXModGhpcy5fcnVsZXMpKSB7XG4gICAgICAgIGNvbnN0IGV2YWx1YXRpb24gPSBuZXcgRXZhbHVhdGlvbihjdHgsIHJ1bGUsIGRpYWcsIG9wdGlvbnMpO1xuICAgICAgICBydWxlLmV2YWwoZXZhbHVhdGlvbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRpYWc7XG4gIH1cbn1cblxuLyoqXG4gKiBQYXNzZWQgaW4gdG8gZWFjaCBydWxlIGR1cmluZyBldmFsdWF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgRXZhbHVhdGlvbjxUPiB7XG4gIHB1YmxpYyByZWFkb25seSBjdHg6IFQ7XG4gIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBMaW50ZXJPcHRpb25zO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY3VycjogQ29uY3JldGVSdWxlPFQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IGRpYWdub3N0aWNzOiBEaWFnbm9zdGljW107XG5cbiAgY29uc3RydWN0b3IoY3R4OiBULCBydWxlOiBDb25jcmV0ZVJ1bGU8VD4sIGRpYWdub3N0aWNzOiBEaWFnbm9zdGljW10sIG9wdGlvbnM6IExpbnRlck9wdGlvbnMpIHtcbiAgICB0aGlzLmN0eCA9IGN0eDtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuY3VyciA9IHJ1bGU7XG4gICAgdGhpcy5kaWFnbm9zdGljcyA9IGRpYWdub3N0aWNzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY29yZCBhIGZhaWx1cmUgaWYgYGNvbmRpdGlvbmAgaXMgbm90IHRydXRoeS5cbiAgICpcbiAgICogQHBhcmFtIGNvbmRpdGlvbiBUaGUgY29uZGl0aW9uIHRvIGFzc2VydC5cbiAgICogQHBhcmFtIHNjb3BlIFVzZWQgdG8gZGlhZ25vc2UgdGhlIGxvY2F0aW9uIGluIHRoZSBzb3VyY2UsIGFuZCBpcyB1c2VkIGluIHRoZVxuICAgKiBpZ25vcmUgcGF0dGVybi5cbiAgICogQHBhcmFtIGV4dHJhIFVzZWQgdG8gcmVwbGFjZSAlcyBpbiB0aGUgZGVmYXVsdCBtZXNzYWdlIGZvcm1hdCBzdHJpbmcuXG4gICAqL1xuICBwdWJsaWMgYXNzZXJ0KGNvbmRpdGlvbjogYW55LCBzY29wZTogc3RyaW5nLCBleHRyYT86IHN0cmluZyk6IGNvbmRpdGlvbiBpcyB0cnVlIHtcbiAgICAvLyBkZWR1cGxpY2F0ZTogc2tpcCBpZiB0aGlzIHNwZWNpZmljIGFzc2VydGlvbiAoXCJydWxlOnNjb3BlXCIpIHdhcyBhbHJlYWR5IGV4YW1pbmVkXG4gICAgaWYgKHRoaXMuZGlhZ25vc3RpY3MuZmluZChkID0+IGQucnVsZS5jb2RlID09PSB0aGlzLmN1cnIuY29kZSAmJiBkLnNjb3BlID09PSBzY29wZSkpIHtcbiAgICAgIHJldHVybiBjb25kaXRpb247XG4gICAgfVxuXG4gICAgY29uc3QgaW5jbHVkZSA9IHRoaXMuc2hvdWxkRXZhbHVhdGUodGhpcy5jdXJyLmNvZGUsIHNjb3BlKTtcbiAgICBjb25zdCBtZXNzYWdlID0gdXRpbC5mb3JtYXQodGhpcy5jdXJyLm1lc3NhZ2UsIGV4dHJhIHx8ICcnKTtcblxuICAgIC8vIERvbid0IGFkZCBhIFwiU3VjY2Vzc1wiIGRpYWdub3N0aWMuIEl0IHdpbGwgYnJlYWsgaWYgd2UgcnVuIGEgY29tcG91bmRcbiAgICAvLyBsaW50ZXIgcnVsZSB3aGljaCBjb25zaXN0cyBvZiAzIGNoZWNrcyB3aXRoIHRoZSBzYW1lIHNjb3BlIChzdWNoXG4gICAgLy8gYXMgZm9yIGV4YW1wbGUgYGFzc2VydFNpZ25hdHVyZSgpYCkuIElmIHRoZSBmaXJzdCBjaGVjayBmYWlscywgd2Ugd291bGRcbiAgICAvLyBhZGQgYSBcIlN1Y2Nlc3NcIiBkaWFnbm9zdGljIGFuZCBhbGwgb3RoZXIgZGlhZ25vc3RpY3Mgd291bGQgYmUgc2tpcHBlZCBiZWNhdXNlXG4gICAgLy8gb2YgdGhlIGRlZHVwbGljYXRpb24gY2hlY2sgYWJvdmUuIENoYW5naW5nIHRoZSBzY29wZSBtYWtlcyBpdCB3b3JzZSwgc2luY2VcbiAgICAvLyB0aGUgc2NvcGUgaXMgYWxzbyB0aGUgaWdub3JlIHBhdHRlcm4gYW5kIHRoZXkncmUgYWxsIGNvbmNlcHR1YWxseSB0aGUgc2FtZSBydWxlLlxuICAgIC8vXG4gICAgLy8gU2ltcGxlc3Qgc29sdXRpb24gaXMgdG8gbm90IHJlY29yZCBzdWNjZXNzZXMgLS0gd2h5IGRvIHdlIGV2ZW4gbmVlZCB0aGVtP1xuICAgIGlmIChpbmNsdWRlICYmIGNvbmRpdGlvbikgeyByZXR1cm4gY29uZGl0aW9uOyB9XG5cbiAgICBsZXQgbGV2ZWw6IERpYWdub3N0aWNMZXZlbDtcbiAgICBpZiAoIWluY2x1ZGUpIHtcbiAgICAgIGxldmVsID0gRGlhZ25vc3RpY0xldmVsLlNraXBwZWQ7XG4gICAgfSBlbHNlIGlmICh0aGlzLmN1cnIud2FybmluZykge1xuICAgICAgbGV2ZWwgPSBEaWFnbm9zdGljTGV2ZWwuV2FybmluZztcbiAgICB9IGVsc2Uge1xuICAgICAgbGV2ZWwgPSBEaWFnbm9zdGljTGV2ZWwuRXJyb3I7XG4gICAgfVxuXG4gICAgY29uc3QgZGlhZzogRGlhZ25vc3RpYyA9IHtcbiAgICAgIGxldmVsLFxuICAgICAgcnVsZTogdGhpcy5jdXJyLFxuICAgICAgc2NvcGUsXG4gICAgICBtZXNzYWdlLFxuICAgIH07XG5cbiAgICB0aGlzLmRpYWdub3N0aWNzLnB1c2goZGlhZyk7XG5cbiAgICByZXR1cm4gY29uZGl0aW9uO1xuICB9XG5cbiAgcHVibGljIGFzc2VydEVxdWFscyhhY3R1YWw6IGFueSwgZXhwZWN0ZWQ6IGFueSwgc2NvcGU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFzc2VydChhY3R1YWwgPT09IGV4cGVjdGVkLCBzY29wZSwgYCAoZXhwZWN0ZWQ9XCIke2V4cGVjdGVkfVwiLGFjdHVhbD1cIiR7YWN0dWFsfVwiKWApO1xuICB9XG5cbiAgcHVibGljIGFzc2VydFR5cGVzRXF1YWwodHM6IHJlZmxlY3QuVHlwZVN5c3RlbSwgYWN0dWFsOiBUeXBlU3BlY2lmaWVyLCBleHBlY3RlZDogVHlwZVNwZWNpZmllciwgc2NvcGU6IHN0cmluZykge1xuICAgIGNvbnN0IGEgPSB0eXBlUmVmZXJlbmNlRnJvbSh0cywgYWN0dWFsKTtcbiAgICBjb25zdCBlID0gdHlwZVJlZmVyZW5jZUZyb20odHMsIGV4cGVjdGVkKTtcbiAgICByZXR1cm4gdGhpcy5hc3NlcnQoYS50b1N0cmluZygpID09PSBlLnRvU3RyaW5nKCksIHNjb3BlLCBgIChleHBlY3RlZD1cIiR7ZX1cIixhY3R1YWw9XCIke2F9XCIpYCk7XG4gIH1cblxuICBwdWJsaWMgYXNzZXJ0VHlwZXNBc3NpZ25hYmxlKHRzOiByZWZsZWN0LlR5cGVTeXN0ZW0sIGFjdHVhbDogVHlwZVNwZWNpZmllciwgZXhwZWN0ZWQ6IFR5cGVTcGVjaWZpZXIsIHNjb3BlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBhID0gdHlwZVJlZmVyZW5jZUZyb20odHMsIGFjdHVhbCk7XG4gICAgY29uc3QgZSA9IHR5cGVSZWZlcmVuY2VGcm9tKHRzLCBleHBlY3RlZCk7XG4gICAgcmV0dXJuIHRoaXMuYXNzZXJ0KGEudG9TdHJpbmcoKSA9PT0gZS50b1N0cmluZygpIHx8IChhLmZxbiAmJiBlLmZxbiAmJiBhLnR5cGUhLmV4dGVuZHMoZS50eXBlISkpLCBzY29wZSwgYCAoXCIke2F9XCIgbm90IGFzc2lnbmFibGUgdG8gXCIke2V9XCIpYCk7XG4gIH1cblxuICBwdWJsaWMgYXNzZXJ0UGFyYW1ldGVyT3B0aW9uYWwoYWN0dWFsOiBib29sZWFuLCBleHBlY3RlZDogYm9vbGVhbiwgc2NvcGU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFzc2VydChhY3R1YWwgPT09IGV4cGVjdGVkLCBzY29wZSwgYCAoJHtzY29wZX0gc2hvdWxkIGJlICR7ZXhwZWN0ZWQgPyAnb3B0aW9uYWwnIDogJ21hbmRhdG9yeSd9KWApO1xuICB9XG5cbiAgcHVibGljIGFzc2VydFNpZ25hdHVyZShtZXRob2Q6IHJlZmxlY3QuQ2FsbGFibGUsIGV4cGVjdGF0aW9uczogTWV0aG9kU2lnbmF0dXJlRXhwZWN0YXRpb25zKSB7XG4gICAgY29uc3Qgc2NvcGUgPSBtZXRob2QucGFyZW50VHlwZS5mcW4gKyAnLicgKyBtZXRob2QubmFtZTtcbiAgICBpZiAoZXhwZWN0YXRpb25zLnJldHVybnMgJiYgcmVmbGVjdC5NZXRob2QuaXNNZXRob2QobWV0aG9kKSkge1xuICAgICAgdGhpcy5hc3NlcnRUeXBlc0VxdWFsKG1ldGhvZC5zeXN0ZW0sIG1ldGhvZC5yZXR1cm5zLnR5cGUsIGV4cGVjdGF0aW9ucy5yZXR1cm5zLCBzY29wZSk7XG4gICAgfVxuXG4gICAgaWYgKGV4cGVjdGF0aW9ucy5wYXJhbWV0ZXJzKSB7XG4gICAgICBjb25zdCBleHBlY3RlZENvdW50ID0gZXhwZWN0YXRpb25zLnBhcmFtZXRlcnMubGVuZ3RoO1xuICAgICAgY29uc3QgYWN0dWFsQ291bnQgPSBtZXRob2QucGFyYW1ldGVycy5sZW5ndGg7XG4gICAgICBpZiAodGhpcy5hc3NlcnRFcXVhbHMoYWN0dWFsQ291bnQsIGV4cGVjdGVkQ291bnQsIHNjb3BlKSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGV4cGVjdGF0aW9ucy5wYXJhbWV0ZXJzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgY29uc3QgZXhwZWN0ID0gZXhwZWN0YXRpb25zLnBhcmFtZXRlcnNbaV07XG4gICAgICAgICAgY29uc3QgYWN0dWFsID0gbWV0aG9kLnBhcmFtZXRlcnNbaV07XG4gICAgICAgICAgY29uc3QgcHNjb3BlID0gc2NvcGUgKyBgLnBhcmFtc1ske2l9XWA7XG4gICAgICAgICAgaWYgKGV4cGVjdC5uYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBleHBlY3RlZE5hbWUgPSBleHBlY3QubmFtZTtcbiAgICAgICAgICAgIGNvbnN0IGFjdHVhbE5hbWUgPSBhY3R1YWwubmFtZTtcbiAgICAgICAgICAgIHRoaXMuYXNzZXJ0RXF1YWxzKGFjdHVhbE5hbWUsIGV4cGVjdGVkTmFtZSwgcHNjb3BlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGV4cGVjdC50eXBlKSB7XG4gICAgICAgICAgICBpZiAoZXhwZWN0LnN1YnR5cGVBbGxvd2VkKSB7XG4gICAgICAgICAgICAgIHRoaXMuYXNzZXJ0VHlwZXNBc3NpZ25hYmxlKG1ldGhvZC5zeXN0ZW0sIGFjdHVhbC50eXBlLCBleHBlY3QudHlwZSwgcHNjb3BlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuYXNzZXJ0VHlwZXNFcXVhbChtZXRob2Quc3lzdGVtLCBhY3R1YWwudHlwZSwgZXhwZWN0LnR5cGUsIHBzY29wZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChleHBlY3Qub3B0aW9uYWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5hc3NlcnRQYXJhbWV0ZXJPcHRpb25hbChhY3R1YWwub3B0aW9uYWwsIGV4cGVjdC5vcHRpb25hbCwgcHNjb3BlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGVzIHdoZXRoZXIgdGhlIHJ1bGUgc2hvdWxkIGJlIGV2YWx1YXRlZCBiYXNlZCBvbiB0aGUgZmlsdGVycyBhcHBsaWVkLlxuICAgKi9cbiAgcHJpdmF0ZSBzaG91bGRFdmFsdWF0ZShjb2RlOiBzdHJpbmcsIHNjb3BlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5pbmNsdWRlUnVsZXMgfHwgdGhpcy5vcHRpb25zLmluY2x1ZGVSdWxlcy5pc0VtcHR5KCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuaW5jbHVkZVJ1bGVzLm1hdGNoZXMoY29kZSwgc2NvcGUpKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmV4Y2x1ZGVSdWxlcz8ubWF0Y2hlcyhjb2RlLCBzY29wZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5leHBvcnQgaW50ZXJmYWNlIFJ1bGUge1xuICBjb2RlOiBzdHJpbmcsXG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgd2FybmluZz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uY3JldGVSdWxlPFQ+IGV4dGVuZHMgUnVsZSB7XG4gIGV2YWwobGludGVyOiBFdmFsdWF0aW9uPFQ+KTogdm9pZDtcbn1cblxuLyoqXG4gKiBBIHR5cGUgY29uc3RyYWludFxuICpcbiAqIEJlIHN1cGVyIGZsZXhpYmxlIGFib3V0IGhvdyB0eXBlcyBjYW4gYmUgcmVwcmVzZW50ZWQuIFVsdGltYXRlbHksIHdlIHdpbGxcbiAqIGNvbXBhcmUgd2hhdCB5b3UgZ2l2ZSB0byBhIFR5cGVSZWZlcmVuY2UsIGJlY2F1c2UgdGhhdCdzIHdoYXQncyBpbiB0aGUgSlNJSVxuICogUmVmbGVjdCBtb2RlbC4gSG93ZXZlciwgaWYgeW91IGFscmVhZHkgaGF2ZSBhIHJlYWwgVHlwZSwgb3IganVzdCBhIHN0cmluZyB0b1xuICogYSB1c2VyLWRlZmluZWQgdHlwZSwgdGhhdCdzIGZpbmUgdG9vLiBXZSdsbCBEbyBUaGUgUmlnaHQgVGhpbmcuXG4gKi9cbmV4cG9ydCB0eXBlIFR5cGVTcGVjaWZpZXIgPSByZWZsZWN0LlR5cGVSZWZlcmVuY2UgfCByZWZsZWN0LlR5cGUgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWV0aG9kU2lnbmF0dXJlUGFyYW1ldGVyRXhwZWN0YXRpb24ge1xuICBuYW1lPzogc3RyaW5nO1xuICB0eXBlPzogVHlwZVNwZWNpZmllcjtcbiAgc3VidHlwZUFsbG93ZWQ/OiBib29sZWFuO1xuXG4gIC8qKiBzaG91bGQgdGhpcyBwYXJhbSBiZSBvcHRpb25hbD8gKi9cbiAgb3B0aW9uYWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1ldGhvZFNpZ25hdHVyZUV4cGVjdGF0aW9ucyB7XG4gIHBhcmFtZXRlcnM/OiBNZXRob2RTaWduYXR1cmVQYXJhbWV0ZXJFeHBlY3RhdGlvbltdO1xuICByZXR1cm5zPzogVHlwZVNwZWNpZmllcjtcbn1cblxuZXhwb3J0IGVudW0gRGlhZ25vc3RpY0xldmVsIHtcbiAgU2tpcHBlZCxcbiAgU3VjY2VzcyxcbiAgV2FybmluZyxcbiAgRXJyb3IsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlhZ25vc3RpYyB7XG4gIGxldmVsOiBEaWFnbm9zdGljTGV2ZWw7XG4gIHJ1bGU6IFJ1bGU7XG4gIHNjb3BlOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgdHlwZSBzcGVjaWZpZXIgdG8gYSBUeXBlUmVmZXJlbmNlXG4gKi9cbmZ1bmN0aW9uIHR5cGVSZWZlcmVuY2VGcm9tKHRzOiByZWZsZWN0LlR5cGVTeXN0ZW0sIHg6IFR5cGVTcGVjaWZpZXIpOiByZWZsZWN0LlR5cGVSZWZlcmVuY2Uge1xuICBpZiAoaXNUeXBlUmVmZXJlbmNlKHgpKSB7IHJldHVybiB4OyB9XG5cbiAgaWYgKHR5cGVvZiB4ID09PSAnc3RyaW5nJykge1xuICAgIGlmICh4LmluZGV4T2YoJy4nKSA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBuZXcgcmVmbGVjdC5UeXBlUmVmZXJlbmNlKHRzLCB7IHByaW1pdGl2ZTogeCBhcyBQcmltaXRpdmVUeXBlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV3IHJlZmxlY3QuVHlwZVJlZmVyZW5jZSh0cywgeyBmcW46IHggfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyByZWZsZWN0LlR5cGVSZWZlcmVuY2UodHMsIHgpO1xufVxuXG5mdW5jdGlvbiBpc1R5cGVSZWZlcmVuY2UoeDogYW55KTogeCBpcyByZWZsZWN0LlR5cGVSZWZlcmVuY2Uge1xuICByZXR1cm4geCBpbnN0YW5jZW9mIHJlZmxlY3QuVHlwZVJlZmVyZW5jZTtcbn1cbiJdfQ==
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGludGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibGludGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUU3Qix3Q0FBd0M7QUFpQnhDLE1BQXNCLFVBQVU7Q0FHL0I7QUFIRCxnQ0FHQztBQUVELE1BQWEsZUFBZ0IsU0FBUSxVQUFVO0lBQ3JDLE9BQU8sQ0FBZTtJQUU5QixZQUFZLEdBQUcsT0FBcUI7UUFDbEMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQVEsQ0FBQztRQUM5QixLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFTSxJQUFJLENBQUMsUUFBMEIsRUFBRSxPQUFrQztRQUN4RSxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBYyxDQUFDO1FBQ3RDLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRjtBQXZCRCwwQ0F1QkM7QUFFRDs7R0FFRztBQUNILE1BQWEsTUFBVSxTQUFRLFVBQVU7SUFHVjtJQUZaLE1BQU0sR0FBd0MsRUFBRyxDQUFDO0lBRW5FLFlBQTZCLElBQWtFO1FBQzdGLEtBQUssRUFBRSxDQUFDO1FBRG1CLFNBQUksR0FBSixJQUFJLENBQThEO0lBRS9GLENBQUM7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ZUFBZSwrQkFBZixlQUFlLFFBSzFCO0FBU0Q7O0dBRUc7QUFDSCxTQUFTLGlCQUFpQixDQUFDLEVBQXNCLEVBQUUsQ0FBZ0I7SUFDakUsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUVyQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFrQixFQUFFLENBQUMsQ0FBQztRQUMxRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxDQUFNO0lBQzdCLE9BQU8sQ0FBQyxZQUFZLE9BQU8sQ0FBQyxhQUFhLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgeyBQcmltaXRpdmVUeXBlIH0gZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBSdWxlRmlsdGVyU2V0IH0gZnJvbSAnLi9ydWxlLXNwZWNzJztcblxuZXhwb3J0IGludGVyZmFjZSBMaW50ZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgcnVsZXMgdG8gaW5jbHVkZS5cbiAgICogQGRlZmF1bHQgYWxsIHJ1bGVzXG4gICAqL1xuICBpbmNsdWRlUnVsZXM/OiBSdWxlRmlsdGVyU2V0O1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHJ1bGVzIHRvIGV4Y2x1ZGUgKHRha2VzIHByZWNlZGVuY2Ugb24gXCJpbmNsdWRlXCIpXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIGV4Y2x1ZGVSdWxlcz86IFJ1bGVGaWx0ZXJTZXQ7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMaW50ZXJCYXNlIHtcbiAgcHVibGljIGFic3RyYWN0IHJ1bGVzOiBSdWxlW107XG4gIHB1YmxpYyBhYnN0cmFjdCBldmFsKGFzc2VtYmx5OiByZWZsZWN0LkFzc2VtYmx5LCBvcHRpb25zOiBMaW50ZXJPcHRpb25zIHwgdW5kZWZpbmVkKTogRGlhZ25vc3RpY1tdO1xufVxuXG5leHBvcnQgY2xhc3MgQWdncmVnYXRlTGludGVyIGV4dGVuZHMgTGludGVyQmFzZSB7XG4gIHByaXZhdGUgbGludGVyczogTGludGVyQmFzZVtdO1xuXG4gIGNvbnN0cnVjdG9yKC4uLmxpbnRlcnM6IExpbnRlckJhc2VbXSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5saW50ZXJzID0gbGludGVycztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcnVsZXMoKTogUnVsZVtdIHtcbiAgICBjb25zdCByZXQgPSBuZXcgQXJyYXk8UnVsZT4oKTtcbiAgICBmb3IgKGNvbnN0IGxpbnRlciBvZiB0aGlzLmxpbnRlcnMpIHtcbiAgICAgIHJldC5wdXNoKC4uLmxpbnRlci5ydWxlcyk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwdWJsaWMgZXZhbChhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseSwgb3B0aW9uczogTGludGVyT3B0aW9ucyB8IHVuZGVmaW5lZCk6IERpYWdub3N0aWNbXSB7XG4gICAgY29uc3QgZGlhZ3MgPSBuZXcgQXJyYXk8RGlhZ25vc3RpYz4oKTtcbiAgICBmb3IgKGNvbnN0IGxpbnRlciBvZiB0aGlzLmxpbnRlcnMpIHtcbiAgICAgIGRpYWdzLnB1c2goLi4ubGludGVyLmV2YWwoYXNzZW1ibHksIG9wdGlvbnMpKTtcbiAgICB9XG4gICAgcmV0dXJuIGRpYWdzO1xuICB9XG59XG5cbi8qKlxuICogRXZhbHVhdGVzIGEgYnVuY2ggb2YgcnVsZXMgYWdhaW5zdCBzb21lIGNvbnRleHQuXG4gKi9cbmV4cG9ydCBjbGFzcyBMaW50ZXI8VD4gZXh0ZW5kcyBMaW50ZXJCYXNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfcnVsZXM6IHsgW25hbWU6IHN0cmluZ106IENvbmNyZXRlUnVsZTxUPiB9ID0geyB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaW5pdDogKGFzc2VtYmx5OiByZWZsZWN0LkFzc2VtYmx5KSA9PiBUIHwgcmVhZG9ubHkgVFtdIHwgdW5kZWZpbmVkKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcnVsZXMoKSB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5fcnVsZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc3RhbGwgYW5vdGhlciBydWxlLlxuICAgKi9cbiAgcHVibGljIGFkZChydWxlOiBDb25jcmV0ZVJ1bGU8VD4pIHtcbiAgICBpZiAocnVsZS5jb2RlIGluIHRoaXMuX3J1bGVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHJ1bGUgXCIke3J1bGUuY29kZX1cIiBhbHJlYWR5IGV4aXN0c2ApO1xuICAgIH1cblxuICAgIHRoaXMuX3J1bGVzW3J1bGUuY29kZV0gPSBydWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlIGFsbCBydWxlcyBhZ2FpbnN0IHRoZSBjb250ZXh0LlxuICAgKi9cbiAgcHVibGljIGV2YWwoYXNzZW1ibHk6IHJlZmxlY3QuQXNzZW1ibHksIG9wdGlvbnM6IExpbnRlck9wdGlvbnMgfCB1bmRlZmluZWQpOiBEaWFnbm9zdGljW10ge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHsgfTtcblxuICAgIGxldCBjdHhzID0gdGhpcy5pbml0KGFzc2VtYmx5KTtcbiAgICBpZiAoIWN0eHMpIHtcbiAgICAgIHJldHVybiBbXTsgLy8gc2tpcFxuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShjdHhzKSkge1xuICAgICAgY3R4cyA9IFtjdHhzXSBhcyByZWFkb25seSBUW107XG4gICAgfVxuXG4gICAgY29uc3QgZGlhZyA9IG5ldyBBcnJheTxEaWFnbm9zdGljPigpO1xuXG4gICAgZm9yIChjb25zdCBjdHggb2YgY3R4cykge1xuICAgICAgZm9yIChjb25zdCBydWxlIG9mIE9iamVjdC52YWx1ZXModGhpcy5fcnVsZXMpKSB7XG4gICAgICAgIGNvbnN0IGV2YWx1YXRpb24gPSBuZXcgRXZhbHVhdGlvbihjdHgsIHJ1bGUsIGRpYWcsIG9wdGlvbnMpO1xuICAgICAgICBydWxlLmV2YWwoZXZhbHVhdGlvbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRpYWc7XG4gIH1cbn1cblxuLyoqXG4gKiBQYXNzZWQgaW4gdG8gZWFjaCBydWxlIGR1cmluZyBldmFsdWF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgRXZhbHVhdGlvbjxUPiB7XG4gIHB1YmxpYyByZWFkb25seSBjdHg6IFQ7XG4gIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBMaW50ZXJPcHRpb25zO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY3VycjogQ29uY3JldGVSdWxlPFQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IGRpYWdub3N0aWNzOiBEaWFnbm9zdGljW107XG5cbiAgY29uc3RydWN0b3IoY3R4OiBULCBydWxlOiBDb25jcmV0ZVJ1bGU8VD4sIGRpYWdub3N0aWNzOiBEaWFnbm9zdGljW10sIG9wdGlvbnM6IExpbnRlck9wdGlvbnMpIHtcbiAgICB0aGlzLmN0eCA9IGN0eDtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuY3VyciA9IHJ1bGU7XG4gICAgdGhpcy5kaWFnbm9zdGljcyA9IGRpYWdub3N0aWNzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY29yZCBhIGZhaWx1cmUgaWYgYGNvbmRpdGlvbmAgaXMgbm90IHRydXRoeS5cbiAgICpcbiAgICogQHBhcmFtIGNvbmRpdGlvbiBUaGUgY29uZGl0aW9uIHRvIGFzc2VydC5cbiAgICogQHBhcmFtIHNjb3BlIFVzZWQgdG8gZGlhZ25vc2UgdGhlIGxvY2F0aW9uIGluIHRoZSBzb3VyY2UsIGFuZCBpcyB1c2VkIGluIHRoZVxuICAgKiBpZ25vcmUgcGF0dGVybi5cbiAgICogQHBhcmFtIGV4dHJhIFVzZWQgdG8gcmVwbGFjZSAlcyBpbiB0aGUgZGVmYXVsdCBtZXNzYWdlIGZvcm1hdCBzdHJpbmcuXG4gICAqL1xuICBwdWJsaWMgYXNzZXJ0KGNvbmRpdGlvbjogYW55LCBzY29wZTogc3RyaW5nLCBleHRyYT86IHN0cmluZyk6IGNvbmRpdGlvbiBpcyB0cnVlIHtcbiAgICAvLyBkZWR1cGxpY2F0ZTogc2tpcCBpZiB0aGlzIHNwZWNpZmljIGFzc2VydGlvbiAoXCJydWxlOnNjb3BlXCIpIHdhcyBhbHJlYWR5IGV4YW1pbmVkXG4gICAgaWYgKHRoaXMuZGlhZ25vc3RpY3MuZmluZChkID0+IGQucnVsZS5jb2RlID09PSB0aGlzLmN1cnIuY29kZSAmJiBkLnNjb3BlID09PSBzY29wZSkpIHtcbiAgICAgIHJldHVybiBjb25kaXRpb247XG4gICAgfVxuXG4gICAgY29uc3QgaW5jbHVkZSA9IHRoaXMuc2hvdWxkRXZhbHVhdGUodGhpcy5jdXJyLmNvZGUsIHNjb3BlKTtcbiAgICBjb25zdCBtZXNzYWdlID0gdXRpbC5mb3JtYXQodGhpcy5jdXJyLm1lc3NhZ2UsIGV4dHJhIHx8ICcnKTtcblxuICAgIC8vIERvbid0IGFkZCBhIFwiU3VjY2Vzc1wiIGRpYWdub3N0aWMuIEl0IHdpbGwgYnJlYWsgaWYgd2UgcnVuIGEgY29tcG91bmRcbiAgICAvLyBsaW50ZXIgcnVsZSB3aGljaCBjb25zaXN0cyBvZiAzIGNoZWNrcyB3aXRoIHRoZSBzYW1lIHNjb3BlIChzdWNoXG4gICAgLy8gYXMgZm9yIGV4YW1wbGUgYGFzc2VydFNpZ25hdHVyZSgpYCkuIElmIHRoZSBmaXJzdCBjaGVjayBmYWlscywgd2Ugd291bGRcbiAgICAvLyBhZGQgYSBcIlN1Y2Nlc3NcIiBkaWFnbm9zdGljIGFuZCBhbGwgb3RoZXIgZGlhZ25vc3RpY3Mgd291bGQgYmUgc2tpcHBlZCBiZWNhdXNlXG4gICAgLy8gb2YgdGhlIGRlZHVwbGljYXRpb24gY2hlY2sgYWJvdmUuIENoYW5naW5nIHRoZSBzY29wZSBtYWtlcyBpdCB3b3JzZSwgc2luY2VcbiAgICAvLyB0aGUgc2NvcGUgaXMgYWxzbyB0aGUgaWdub3JlIHBhdHRlcm4gYW5kIHRoZXkncmUgYWxsIGNvbmNlcHR1YWxseSB0aGUgc2FtZSBydWxlLlxuICAgIC8vXG4gICAgLy8gU2ltcGxlc3Qgc29sdXRpb24gaXMgdG8gbm90IHJlY29yZCBzdWNjZXNzZXMgLS0gd2h5IGRvIHdlIGV2ZW4gbmVlZCB0aGVtP1xuICAgIGlmIChpbmNsdWRlICYmIGNvbmRpdGlvbikgeyByZXR1cm4gY29uZGl0aW9uOyB9XG5cbiAgICBsZXQgbGV2ZWw6IERpYWdub3N0aWNMZXZlbDtcbiAgICBpZiAoIWluY2x1ZGUpIHtcbiAgICAgIGxldmVsID0gRGlhZ25vc3RpY0xldmVsLlNraXBwZWQ7XG4gICAgfSBlbHNlIGlmICh0aGlzLmN1cnIud2FybmluZykge1xuICAgICAgbGV2ZWwgPSBEaWFnbm9zdGljTGV2ZWwuV2FybmluZztcbiAgICB9IGVsc2Uge1xuICAgICAgbGV2ZWwgPSBEaWFnbm9zdGljTGV2ZWwuRXJyb3I7XG4gICAgfVxuXG4gICAgY29uc3QgZGlhZzogRGlhZ25vc3RpYyA9IHtcbiAgICAgIGxldmVsLFxuICAgICAgcnVsZTogdGhpcy5jdXJyLFxuICAgICAgc2NvcGUsXG4gICAgICBtZXNzYWdlLFxuICAgIH07XG5cbiAgICB0aGlzLmRpYWdub3N0aWNzLnB1c2goZGlhZyk7XG5cbiAgICByZXR1cm4gY29uZGl0aW9uO1xuICB9XG5cbiAgcHVibGljIGFzc2VydEVxdWFscyhhY3R1YWw6IGFueSwgZXhwZWN0ZWQ6IGFueSwgc2NvcGU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFzc2VydChhY3R1YWwgPT09IGV4cGVjdGVkLCBzY29wZSwgYCAoZXhwZWN0ZWQ9XCIke2V4cGVjdGVkfVwiLGFjdHVhbD1cIiR7YWN0dWFsfVwiKWApO1xuICB9XG5cbiAgcHVibGljIGFzc2VydFR5cGVzRXF1YWwodHM6IHJlZmxlY3QuVHlwZVN5c3RlbSwgYWN0dWFsOiBUeXBlU3BlY2lmaWVyLCBleHBlY3RlZDogVHlwZVNwZWNpZmllciwgc2NvcGU6IHN0cmluZykge1xuICAgIGNvbnN0IGEgPSB0eXBlUmVmZXJlbmNlRnJvbSh0cywgYWN0dWFsKTtcbiAgICBjb25zdCBlID0gdHlwZVJlZmVyZW5jZUZyb20odHMsIGV4cGVjdGVkKTtcbiAgICByZXR1cm4gdGhpcy5hc3NlcnQoYS50b1N0cmluZygpID09PSBlLnRvU3RyaW5nKCksIHNjb3BlLCBgIChleHBlY3RlZD1cIiR7ZX1cIixhY3R1YWw9XCIke2F9XCIpYCk7XG4gIH1cblxuICBwdWJsaWMgYXNzZXJ0VHlwZXNBc3NpZ25hYmxlKHRzOiByZWZsZWN0LlR5cGVTeXN0ZW0sIGFjdHVhbDogVHlwZVNwZWNpZmllciwgZXhwZWN0ZWQ6IFR5cGVTcGVjaWZpZXIsIHNjb3BlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBhID0gdHlwZVJlZmVyZW5jZUZyb20odHMsIGFjdHVhbCk7XG4gICAgY29uc3QgZSA9IHR5cGVSZWZlcmVuY2VGcm9tKHRzLCBleHBlY3RlZCk7XG4gICAgcmV0dXJuIHRoaXMuYXNzZXJ0KGEudG9TdHJpbmcoKSA9PT0gZS50b1N0cmluZygpIHx8IChhLmZxbiAmJiBlLmZxbiAmJiBhLnR5cGUhLmV4dGVuZHMoZS50eXBlISkpLCBzY29wZSwgYCAoXCIke2F9XCIgbm90IGFzc2lnbmFibGUgdG8gXCIke2V9XCIpYCk7XG4gIH1cblxuICBwdWJsaWMgYXNzZXJ0UGFyYW1ldGVyT3B0aW9uYWwoYWN0dWFsOiBib29sZWFuLCBleHBlY3RlZDogYm9vbGVhbiwgc2NvcGU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmFzc2VydChhY3R1YWwgPT09IGV4cGVjdGVkLCBzY29wZSwgYCAoJHtzY29wZX0gc2hvdWxkIGJlICR7ZXhwZWN0ZWQgPyAnb3B0aW9uYWwnIDogJ21hbmRhdG9yeSd9KWApO1xuICB9XG5cbiAgcHVibGljIGFzc2VydFNpZ25hdHVyZShtZXRob2Q6IHJlZmxlY3QuQ2FsbGFibGUsIGV4cGVjdGF0aW9uczogTWV0aG9kU2lnbmF0dXJlRXhwZWN0YXRpb25zKSB7XG4gICAgY29uc3Qgc2NvcGUgPSBtZXRob2QucGFyZW50VHlwZS5mcW4gKyAnLicgKyBtZXRob2QubmFtZTtcbiAgICBpZiAoZXhwZWN0YXRpb25zLnJldHVybnMgJiYgcmVmbGVjdC5NZXRob2QuaXNNZXRob2QobWV0aG9kKSkge1xuICAgICAgdGhpcy5hc3NlcnRUeXBlc0VxdWFsKG1ldGhvZC5zeXN0ZW0sIG1ldGhvZC5yZXR1cm5zLnR5cGUsIGV4cGVjdGF0aW9ucy5yZXR1cm5zLCBzY29wZSk7XG4gICAgfVxuXG4gICAgaWYgKGV4cGVjdGF0aW9ucy5wYXJhbWV0ZXJzKSB7XG4gICAgICBjb25zdCBleHBlY3RlZENvdW50ID0gZXhwZWN0YXRpb25zLnBhcmFtZXRlcnMubGVuZ3RoO1xuICAgICAgY29uc3QgYWN0dWFsQ291bnQgPSBtZXRob2QucGFyYW1ldGVycy5sZW5ndGg7XG4gICAgICBpZiAodGhpcy5hc3NlcnRFcXVhbHMoYWN0dWFsQ291bnQsIGV4cGVjdGVkQ291bnQsIHNjb3BlKSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGV4cGVjdGF0aW9ucy5wYXJhbWV0ZXJzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgY29uc3QgZXhwZWN0ID0gZXhwZWN0YXRpb25zLnBhcmFtZXRlcnNbaV07XG4gICAgICAgICAgY29uc3QgYWN0dWFsID0gbWV0aG9kLnBhcmFtZXRlcnNbaV07XG4gICAgICAgICAgY29uc3QgcHNjb3BlID0gc2NvcGUgKyBgLnBhcmFtc1ske2l9XWA7XG4gICAgICAgICAgaWYgKGV4cGVjdC5uYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBleHBlY3RlZE5hbWUgPSBleHBlY3QubmFtZTtcbiAgICAgICAgICAgIGNvbnN0IGFjdHVhbE5hbWUgPSBhY3R1YWwubmFtZTtcbiAgICAgICAgICAgIHRoaXMuYXNzZXJ0RXF1YWxzKGFjdHVhbE5hbWUsIGV4cGVjdGVkTmFtZSwgcHNjb3BlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGV4cGVjdC50eXBlKSB7XG4gICAgICAgICAgICBpZiAoZXhwZWN0LnN1YnR5cGVBbGxvd2VkKSB7XG4gICAgICAgICAgICAgIHRoaXMuYXNzZXJ0VHlwZXNBc3NpZ25hYmxlKG1ldGhvZC5zeXN0ZW0sIGFjdHVhbC50eXBlLCBleHBlY3QudHlwZSwgcHNjb3BlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuYXNzZXJ0VHlwZXNFcXVhbChtZXRob2Quc3lzdGVtLCBhY3R1YWwudHlwZSwgZXhwZWN0LnR5cGUsIHBzY29wZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChleHBlY3Qub3B0aW9uYWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5hc3NlcnRQYXJhbWV0ZXJPcHRpb25hbChhY3R1YWwub3B0aW9uYWwsIGV4cGVjdC5vcHRpb25hbCwgcHNjb3BlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGVzIHdoZXRoZXIgdGhlIHJ1bGUgc2hvdWxkIGJlIGV2YWx1YXRlZCBiYXNlZCBvbiB0aGUgZmlsdGVycyBhcHBsaWVkLlxuICAgKi9cbiAgcHJpdmF0ZSBzaG91bGRFdmFsdWF0ZShjb2RlOiBzdHJpbmcsIHNjb3BlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5pbmNsdWRlUnVsZXMgfHwgdGhpcy5vcHRpb25zLmluY2x1ZGVSdWxlcy5pc0VtcHR5KCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuaW5jbHVkZVJ1bGVzLm1hdGNoZXMoY29kZSwgc2NvcGUpKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmV4Y2x1ZGVSdWxlcz8ubWF0Y2hlcyhjb2RlLCBzY29wZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5leHBvcnQgaW50ZXJmYWNlIFJ1bGUge1xuICBjb2RlOiBzdHJpbmcsXG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgd2FybmluZz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uY3JldGVSdWxlPFQ+IGV4dGVuZHMgUnVsZSB7XG4gIGV2YWwobGludGVyOiBFdmFsdWF0aW9uPFQ+KTogdm9pZDtcbn1cblxuLyoqXG4gKiBBIHR5cGUgY29uc3RyYWludFxuICpcbiAqIEJlIHN1cGVyIGZsZXhpYmxlIGFib3V0IGhvdyB0eXBlcyBjYW4gYmUgcmVwcmVzZW50ZWQuIFVsdGltYXRlbHksIHdlIHdpbGxcbiAqIGNvbXBhcmUgd2hhdCB5b3UgZ2l2ZSB0byBhIFR5cGVSZWZlcmVuY2UsIGJlY2F1c2UgdGhhdCdzIHdoYXQncyBpbiB0aGUgSlNJSVxuICogUmVmbGVjdCBtb2RlbC4gSG93ZXZlciwgaWYgeW91IGFscmVhZHkgaGF2ZSBhIHJlYWwgVHlwZSwgb3IganVzdCBhIHN0cmluZyB0b1xuICogYSB1c2VyLWRlZmluZWQgdHlwZSwgdGhhdCdzIGZpbmUgdG9vLiBXZSdsbCBEbyBUaGUgUmlnaHQgVGhpbmcuXG4gKi9cbmV4cG9ydCB0eXBlIFR5cGVTcGVjaWZpZXIgPSByZWZsZWN0LlR5cGVSZWZlcmVuY2UgfCByZWZsZWN0LlR5cGUgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWV0aG9kU2lnbmF0dXJlUGFyYW1ldGVyRXhwZWN0YXRpb24ge1xuICBuYW1lPzogc3RyaW5nO1xuICB0eXBlPzogVHlwZVNwZWNpZmllcjtcbiAgc3VidHlwZUFsbG93ZWQ/OiBib29sZWFuO1xuXG4gIC8qKiBzaG91bGQgdGhpcyBwYXJhbSBiZSBvcHRpb25hbD8gKi9cbiAgb3B0aW9uYWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1ldGhvZFNpZ25hdHVyZUV4cGVjdGF0aW9ucyB7XG4gIHBhcmFtZXRlcnM/OiBNZXRob2RTaWduYXR1cmVQYXJhbWV0ZXJFeHBlY3RhdGlvbltdO1xuICByZXR1cm5zPzogVHlwZVNwZWNpZmllcjtcbn1cblxuZXhwb3J0IGVudW0gRGlhZ25vc3RpY0xldmVsIHtcbiAgU2tpcHBlZCxcbiAgU3VjY2VzcyxcbiAgV2FybmluZyxcbiAgRXJyb3IsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlhZ25vc3RpYyB7XG4gIGxldmVsOiBEaWFnbm9zdGljTGV2ZWw7XG4gIHJ1bGU6IFJ1bGU7XG4gIHNjb3BlOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgdHlwZSBzcGVjaWZpZXIgdG8gYSBUeXBlUmVmZXJlbmNlXG4gKi9cbmZ1bmN0aW9uIHR5cGVSZWZlcmVuY2VGcm9tKHRzOiByZWZsZWN0LlR5cGVTeXN0ZW0sIHg6IFR5cGVTcGVjaWZpZXIpOiByZWZsZWN0LlR5cGVSZWZlcmVuY2Uge1xuICBpZiAoaXNUeXBlUmVmZXJlbmNlKHgpKSB7IHJldHVybiB4OyB9XG5cbiAgaWYgKHR5cGVvZiB4ID09PSAnc3RyaW5nJykge1xuICAgIGlmICh4LmluZGV4T2YoJy4nKSA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBuZXcgcmVmbGVjdC5UeXBlUmVmZXJlbmNlKHRzLCB7IHByaW1pdGl2ZTogeCBhcyBQcmltaXRpdmVUeXBlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV3IHJlZmxlY3QuVHlwZVJlZmVyZW5jZSh0cywgeyBmcW46IHggfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyByZWZsZWN0LlR5cGVSZWZlcmVuY2UodHMsIHgpO1xufVxuXG5mdW5jdGlvbiBpc1R5cGVSZWZlcmVuY2UoeDogYW55KTogeCBpcyByZWZsZWN0LlR5cGVSZWZlcmVuY2Uge1xuICByZXR1cm4geCBpbnN0YW5jZW9mIHJlZmxlY3QuVHlwZVJlZmVyZW5jZTtcbn1cbiJdfQ==
|
package/lib/rule-specs.js
CHANGED
|
@@ -5,20 +5,20 @@ exports.RuleFilterSet = void 0;
|
|
|
5
5
|
* Caches the list of rule filters that are specified in the include and exclude options in awslint.json.
|
|
6
6
|
*/
|
|
7
7
|
class RuleFilterSet {
|
|
8
|
+
/**
|
|
9
|
+
* Rule filter format is code:scope e.g. 'docs-public-apis:aws-cdk-lib.TagType'.
|
|
10
|
+
* Wildcards can be used in the following ways:
|
|
11
|
+
*
|
|
12
|
+
* 1. Match any code e.g.: '*:aws-cdk-lib.TagType'
|
|
13
|
+
* 2. Match any scope e.g.: 'docs-public-apis:*'
|
|
14
|
+
* 3. Match any scope prefix e.g.: 'docs-public-apis:aws-cdk-lib.Tag*'
|
|
15
|
+
*/
|
|
16
|
+
codesToScopes = new Map(); // code -> list of scopes
|
|
17
|
+
codesToScopePrefixes = new Map(); // code -> list of scope prefixes (wildcards)
|
|
18
|
+
scopes = new Set(); // list of scopes with a wilcard code
|
|
19
|
+
scopePrefixes = new Set(); // list of scope prefixes with a wildcard code
|
|
20
|
+
_isEmpty = false;
|
|
8
21
|
constructor(ruleFilterList) {
|
|
9
|
-
/**
|
|
10
|
-
* Rule filter format is code:scope e.g. 'docs-public-apis:aws-cdk-lib.TagType'.
|
|
11
|
-
* Wildcards can be used in the following ways:
|
|
12
|
-
*
|
|
13
|
-
* 1. Match any code e.g.: '*:aws-cdk-lib.TagType'
|
|
14
|
-
* 2. Match any scope e.g.: 'docs-public-apis:*'
|
|
15
|
-
* 3. Match any scope prefix e.g.: 'docs-public-apis:aws-cdk-lib.Tag*'
|
|
16
|
-
*/
|
|
17
|
-
this.codesToScopes = new Map(); // code -> list of scopes
|
|
18
|
-
this.codesToScopePrefixes = new Map(); // code -> list of scope prefixes (wildcards)
|
|
19
|
-
this.scopes = new Set(); // list of scopes with a wilcard code
|
|
20
|
-
this.scopePrefixes = new Set(); // list of scope prefixes with a wildcard code
|
|
21
|
-
this._isEmpty = false;
|
|
22
22
|
if (!ruleFilterList || ruleFilterList.length == 0) {
|
|
23
23
|
this._isEmpty = true;
|
|
24
24
|
}
|
|
@@ -96,4 +96,4 @@ class RuleFilterSet {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
exports.RuleFilterSet = RuleFilterSet;
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1zcGVjcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJ1bGUtc3BlY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDeEI7Ozs7Ozs7T0FPRztJQUVLLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBdUIsQ0FBQyxDQUFDLHlCQUF5QjtJQUV6RSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBdUIsQ0FBQyxDQUFDLDZDQUE2QztJQUVwRyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQyxDQUFDLHFDQUFxQztJQUVqRSxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQyxDQUFDLDhDQUE4QztJQUVqRixRQUFRLEdBQVksS0FBSyxDQUFDO0lBRWxDLFlBQVksY0FBd0I7UUFDbEMsSUFBSSxDQUFDLGNBQWMsSUFBSSxjQUFjLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxLQUFLLElBQUksTUFBTSxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ2xDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMvQixNQUFNLElBQUksSUFBSSxDQUFDLENBQUMsMENBQTBDO1lBQzVELENBQUM7WUFFRCxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFeEMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsTUFBTSxrRUFBa0UsQ0FBQyxDQUFDO2dCQUN6SCxDQUFDO3FCQUFNLENB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QUFDO0lBQ25DLENBQUM7Q0FDRjtBQTFHRCxzQ0EwR0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhY2hlcyB0aGUgbGlzdCBvZiBydWxlIGZpbHRlcnMgdGhhdCBhcmUgc3BlY2lmaWVkIGluIHRoZSBpbmNsdWRlIGFuZCBleGNsdWRlIG9wdGlvbnMgaW4gYXdzbGludC5qc29uLlxuICovXG5leHBvcnQgY2xhc3MgUnVsZUZpbHRlclNldCB7XG4gIC8qKlxuICAgKiBSdWxlIGZpbHRlciBmb3JtYXQgaXMgY29kZTpzY29wZSBlLmcuICdkb2NzLXB1YmxpYy1hcGlzOmF3cy1jZGstbGliLlRhZ1R5cGUnLlxuICAgKiBXaWxkY2FyZHMgY2FuIGJlIHVzZWQgaW4gdGhlIGZvbGxvd2luZyB3YXlzOlxuICAgKlxuICAgKiAxLiBNYXRjaCBhbnkgY29kZSBlLmcuOiAnKjphd3MtY2RrLWxpYi5UYWdUeXBlJ1xuICAgKiAyLiBNYXRjaCBhbnkgc2NvcGUgZS5nLjogJ2RvY3MtcHVibGljLWFwaXM6KidcbiAgICogMy4gTWF0Y2ggYW55IHNjb3BlIHByZWZpeCBlLmcuOiAnZG9jcy1wdWJsaWMtYXBpczphd3MtY2RrLWxpYi5UYWcqJ1xuICAgKi9cblxuICBwcml2YXRlIGNvZGVzVG9TY29wZXMgPSBuZXcgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+KCk7IC8vIGNvZGUgLT4gbGlzdCBvZiBzY29wZXNcblxuICBwcml2YXRlIGNvZGVzVG9TY29wZVByZWZpeGVzID0gbmV3IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+PigpOyAvLyBjb2RlIC0+IGxpc3Qgb2Ygc2NvcGUgcHJlZml4ZXMgKHdpbGRjYXJkcylcblxuICBwcml2YXRlIHNjb3BlcyA9IG5ldyBTZXQ8c3RyaW5nPigpOyAvLyBsaXN0IG9mIHNjb3BlcyB3aXRoIGEgd2lsY2FyZCBjb2RlXG5cbiAgcHJpdmF0ZSBzY29wZVByZWZpeGVzID0gbmV3IFNldDxzdHJpbmc+KCk7IC8vIGxpc3Qgb2Ygc2NvcGUgcHJlZml4ZXMgd2l0aCBhIHdpbGRjYXJkIGNvZGVcblxuICBwcml2YXRlIF9pc0VtcHR5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocnVsZUZpbHRlckxpc3Q6IHN0cmluZ1tdKSB7XG4gICAgaWYgKCFydWxlRmlsdGVyTGlzdCB8fCBydWxlRmlsdGVyTGlzdC5sZW5ndGggPT0gMCkge1xuICAgICAgdGhpcy5faXNFbXB0eSA9IHRydWU7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgZmlsdGVyIG9mIHJ1bGVGaWx0ZXJMaXN0KSB7XG4gICAgICBpZiAoZmlsdGVyLmluZGV4T2YoJzonKSA9PT0gLTEpIHtcbiAgICAgICAgZmlsdGVyICs9ICc6Kic7IC8vIGFkZCBcIipcIiBzY29wZSBmaWx0ZXIgaWYgdGhlcmUgaXNuJ3Qgb25lXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IFtjb2RlLCBzY29wZV0gPSBmaWx0ZXIuc3BsaXQoJzonKTtcblxuICAgICAgaWYgKHRoaXMuaGFzV2lsZGNhcmQoY29kZSkpIHtcbiAgICAgICAgaWYgKGNvZGUubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3IgcGFyc2luZyBydWxlIGZpbHRlciAke2ZpbHRlcn06IHJ1bGUgY29kZSBjYW4gb25seSBiZSBhIHNpbmdsZSB3aWxkY2FyZCwgb3IgYSBjb21wbGV0ZSBzdHJpbmcuYCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHRoaXMuaGFzV2lsZGNhcmQoc2NvcGUpKSB7XG4gICAgICAgICAgICB0aGlzLnNjb3BlUHJlZml4ZXMuYWRkKHNjb3BlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zY29wZXMuYWRkKHNjb3BlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmhhc1dpbGRjYXJkKHNjb3BlKSkge1xuICAgICAgICAgIHRoaXMuYWRkVG9NYXAodGhpcy5jb2Rlc1RvU2NvcGVQcmVmaXhlcywgY29kZSwgc2NvcGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYWRkVG9NYXAodGhpcy5jb2Rlc1RvU2NvcGVzLCBjb2RlLCBzY29wZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbWF0Y2hlcyhjb2RlOiBzdHJpbmcsIHNjb3BlOiBzdHJpbmcpIHtcbiAgICAvLyBDaGVjayBjb21wbGV0ZSBmaWx0ZXJcbiAgICBjb25zdCBjb21wbGV0ZVNjb3BlcyA9IHRoaXMuY29kZXNUb1Njb3Blcy5nZXQoY29kZSk7XG4gICAgaWYgKGNvbXBsZXRlU2NvcGVzICYmIGNvbXBsZXRlU2NvcGVzLmhhcyhzY29wZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHNjb3BlIG1hdGNoZXMgYSBwcmVmaXggZS5nLiAnZG9jcy1wdWJsaWMtYXBpczphd3MtY2RrLWxpYi5UYWcqJ1xuICAgIGNvbnN0IHNjb3BlUHJlZml4ZXNGb3JDb2RlID0gdGhpcy5jb2Rlc1RvU2NvcGVQcmVmaXhlcy5nZXQoY29kZSk7XG4gICAgaWYgKHNjb3BlUHJlZml4ZXNGb3JDb2RlKSB7XG4gICAgICBpZiAodGhpcy5jb250YWluc1ByZWZpeChzY29wZVByZWZpeGVzRm9yQ29kZSwgc2NvcGUpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHNjb3BlIGhhcyBhIHdpbGRjYXJkIGNvZGUgZS5nLiAnKjphd3MtY2RrLWxpYi5UYWdUeXBlJ1xuICAgIGlmICh0aGlzLnNjb3Blcy5oYXMoc2NvcGUpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiBzY29wZSBtYXRjaGVzIGEgcHJlZml4IHdpdGggYSB3aWxkY2FyZCBjb2RlIGUuZy4gJyo6YXdzLWNkay1saWIuVGFnVHlwZSonXG4gICAgaWYgKHRoaXMuY29udGFpbnNQcmVmaXgodGhpcy5zY29wZVByZWZpeGVzLCBzY29wZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgY29udGFpbnNQcmVmaXgocHJlZml4ZXM6IFNldDxzdHJpbmc+LCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgZm9yIChjb25zdCBwcmVmaXggb2YgcHJlZml4ZXMpIHtcbiAgICAgIGNvbnN0IHByZWZpeFN0ciA9IHByZWZpeC5zbGljZSgwLCAtMSk7IC8vIFN0cmlwIHRoZSBhc3Rlcmlza1xuICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgocHJlZml4U3RyKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgaXNFbXB0eSgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNFbXB0eTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkVG9NYXAobWFwOiBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4sIGNvZGU6IHN0cmluZywgc2NvcGU6IHN0cmluZykge1xuICAgIGlmICghbWFwLmhhcyhjb2RlKSkge1xuICAgICAgbWFwLnNldChjb2RlLCBuZXcgU2V0PHN0cmluZz4oKSk7XG4gICAgfVxuXG4gICAgbWFwLmdldChjb2RlKT8uYWRkKHNjb3BlKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzV2lsZGNhcmQodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB2YWx1ZS5pbmRleE9mKCcqJykgIT09IC0xO1xuICB9XG59Il19
|
package/lib/rules/api.js
CHANGED
|
@@ -112,8 +112,12 @@ exports.apiLinter.add({
|
|
|
112
112
|
e.assert(false, scope, type.type.fqn);
|
|
113
113
|
return;
|
|
114
114
|
}
|
|
115
|
+
if (type.intersectionOfTypes) {
|
|
116
|
+
// Type intersections are okay
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
115
119
|
throw new Error(`invalid type reference: ${type.toString()}`);
|
|
116
120
|
}
|
|
117
121
|
},
|
|
118
122
|
});
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJDQUFrRDtBQUNsRCw2Q0FBeUM7QUFDekMsc0NBQW1DO0FBRW5DLE1BQU0sb0NBQW9DLEdBQUcscUNBQXFDLENBQUM7QUFFbkYsZ0RBQWdEO0FBQ25DLFFBQUEsU0FBUyxHQUFHLElBQUksZUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsK0JBQW1CO0tBQ3pELGlCQUFpQixDQUFDLENBQUMsQ0FBQztLQUNwQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLHNCQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFdkQsaUJBQVMsQ0FBQyxHQUFHLENBQUM7SUFDWixJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLE9BQU8sRUFBRSw0REFBNEQ7UUFDbkUsZ0NBQWdDLG9DQUFvQyxzQkFBc0I7SUFDNUYsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUVsQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakIsU0FBUyxXQUFXLENBQUMsSUFBdUI7WUFDMUMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUFDLE9BQU87WUFBQyxDQUFDO1lBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXRCLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNyQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkIsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFdBQVcsRUFB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QyxvQ0FBb0MsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLG9DQUFvQyxDQUFDLEVBQUUsQ0FBQztvQkFDL0gsT0FBTztnQkFDVCxDQUFDO2dCQUVELENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN0QyxPQUFPO1lBQ1QsQ0FBQztZQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3RSZWZsZWN0aW9uIH0gZnJvbSAnLi9jb25zdHJ1Y3QnO1xuaW1wb3J0IHsgQ29yZVR5cGVzIH0gZnJvbSAnLi9jb3JlLXR5cGVzJztcbmltcG9ydCB7IExpbnRlciB9IGZyb20gJy4uL2xpbnRlcic7XG5cbmNvbnN0IEVYQ0xVREVfQU5OT1RBVElPTl9SRUZfVklBX0lOVEVSRkFDRSA9ICdbZGlzYWJsZS1hd3NsaW50OnJlZi12aWEtaW50ZXJmYWNlXSc7XG5cbi8vIGxpbnQgYWxsIGNvbnN0cnVjdHMgdGhhdCBhcmUgbm90IEwxIHJlc291cmNlc1xuZXhwb3J0IGNvbnN0IGFwaUxpbnRlciA9IG5ldyBMaW50ZXIoYSA9PiBDb25zdHJ1Y3RSZWZsZWN0aW9uXG4gIC5maW5kQWxsQ29uc3RydWN0cyhhKVxuICAuZmlsdGVyKGMgPT4gIUNvcmVUeXBlcy5pc0NmblJlc291cmNlKGMuY2xhc3NUeXBlKSkpO1xuXG5hcGlMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3JlZi12aWEtaW50ZXJmYWNlJyxcbiAgbWVzc2FnZTogJ0FQSSBzaG91bGQgdXNlIGludGVyZmFjZSBhbmQgbm90IHRoZSBjb25jcmV0ZSBjbGFzcyAoJXMpLiAnICtcbiAgICBgSWYgdGhpcyBpcyBpbnRlbnRpb25hbCwgYWRkIFwiJHtFWENMVURFX0FOTk9UQVRJT05fUkVGX1ZJQV9JTlRFUkZBQ0V9XCIgdG8gZWxlbWVudCdzIGpzZG9jYCxcbiAgZXZhbDogZSA9PiB7XG4gICAgY29uc3QgY2xzID0gZS5jdHguY2xhc3NUeXBlO1xuICAgIGNvbnN0IHZpc2l0ZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgIGFzc2VydENsYXNzKGNscyk7XG5cbiAgICBmdW5jdGlvbiBhc3NlcnRDbGFzcyh0eXBlOiByZWZsZWN0LkNsYXNzVHlwZSk6IHZvaWQge1xuICAgICAgaWYgKHZpc2l0ZWQuaGFzKHR5cGUuZnFuKSkgeyByZXR1cm47IH1cbiAgICAgIHZpc2l0ZWQuYWRkKHR5cGUuZnFuKTtcblxuICAgICAgZm9yIChjb25zdCBtZXRob2Qgb2YgdHlwZS5hbGxNZXRob2RzKSB7XG4gICAgICAgIGFzc2VydE1ldGhvZChtZXRob2QpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZS5pbml0aWFsaXplcikge1xuICAgICAgICBhc3NlcnRNZXRob2QodHlwZS5pbml0aWFsaXplcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXNzZXJ0RGF0YVR5cGUodHlwZTogcmVmbGVjdC5JbnRlcmZhY2VUeXBlKTogdm9pZCB7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHR5cGUuYWxsUHJvcGVydGllcykge1xuICAgICAgICBhc3NlcnRQcm9wZXJ0eShwcm9wZXJ0eSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXNzZXJ0SW50ZXJmYWNlKHR5cGU6IHJlZmxlY3QuSW50ZXJmYWNlVHlwZSk6IHZvaWQge1xuICAgICAgaWYgKHZpc2l0ZWQuaGFzKHR5cGUuZnFuKSkgeyByZXR1cm47IH1cbiAgICAgIHZpc2l0ZWQuYWRkKHR5cGUuZnFuKTtcblxuICAgICAgaWYgKHR5cGUuZGF0YXR5cGUpIHtcbiAgICAgICAgYXNzZXJ0RGF0YVR5cGUodHlwZSk7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgbWV0aG9kIG9mIHR5cGUuYWxsTWV0aG9kcykge1xuICAgICAgICBhc3NlcnRNZXRob2QobWV0aG9kKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhc3NlcnRQcm9wZXJ0eShwcm9wZXJ0eTogcmVmbGVjdC5Qcm9wZXJ0eSkge1xuXG4gICAgICBpZiAocHJvcGVydHkucHJvdGVjdGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc2l0ZSA9IHByb3BlcnR5Lm92ZXJyaWRlcyA/IHByb3BlcnR5Lm92ZXJyaWRlcyA6IHByb3BlcnR5LnBhcmVudFR5cGU7XG4gICAgICBhc3NlcnRUeXBlKHByb3BlcnR5LnR5cGUsIHByb3BlcnR5LmRvY3MsIGAke3NpdGUuZnFufS4ke3Byb3BlcnR5Lm5hbWV9YCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXNzZXJ0TWV0aG9kKG1ldGhvZDogcmVmbGVjdC5DYWxsYWJsZSkge1xuXG4gICAgICBpZiAobWV0aG9kLnByb3RlY3RlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNpdGUgPSBtZXRob2Qub3ZlcnJpZGVzID8gbWV0aG9kLm92ZXJyaWRlcyA6IG1ldGhvZC5wYXJlbnRUeXBlO1xuICAgICAgY29uc3Qgc2NvcGUgPSBgJHtzaXRlLmZxbn0uJHttZXRob2QubmFtZX1gO1xuXG4gICAgICBsZXQgZmlyc3RNZXRob2Q6IHJlZmxlY3QuQ2FsbGFibGUgfCB1bmRlZmluZWQgPSBzaXRlLmlzQ2xhc3NUeXBlKCkgfHwgc2l0ZS5pc0ludGVyZmFjZVR5cGUoKVxuICAgICAgICA/IHNpdGUuYWxsTWV0aG9kcy5maW5kKG0gPT4gbS5uYW1lID09PSBtZXRob2QubmFtZSlcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmICghZmlyc3RNZXRob2QpIHtcbiAgICAgICAgZmlyc3RNZXRob2QgPSBtZXRob2Q7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgcGFyYW0gb2YgZmlyc3RNZXRob2QucGFyYW1ldGVycykge1xuICAgICAgICBhc3NlcnRUeXBlKHBhcmFtLnR5cGUsIHBhcmFtLmRvY3MsIGAke3Njb3BlfS4ke3BhcmFtLm5hbWV9YCk7XG4gICAgICB9XG5cbiAgICAgIC8vIG5vdGUgdGhhdCB3ZSBkbyBub3QgcmVxdWlyZSB0aGF0IHJldHVybiB2YWx1ZXMgd2lsbCB1c2UgYW4gaW50ZXJmYWNlXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXNzZXJ0VHlwZSh0eXBlOiByZWZsZWN0LlR5cGVSZWZlcmVuY2UsIGRvY3M6IHJlZmxlY3QuRG9jcywgc2NvcGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgaWYgKHR5cGUucHJpbWl0aXZlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGUudm9pZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlLmFycmF5T2ZUeXBlKSB7XG4gICAgICAgIHJldHVybiBhc3NlcnRUeXBlKHR5cGUuYXJyYXlPZlR5cGUsIGRvY3MsIHNjb3BlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGUubWFwT2ZUeXBlKSB7XG4gICAgICAgIHJldHVybiBhc3NlcnRUeXBlKHR5cGUubWFwT2ZUeXBlLCBkb2NzLCBzY29wZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlLnVuaW9uT2ZUeXBlcykge1xuICAgICAgICBmb3IgKGNvbnN0IHQgb2YgdHlwZS51bmlvbk9mVHlwZXMpIHtcbiAgICAgICAgICBhc3NlcnRUeXBlKHQsIGRvY3MsIHNjb3BlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGludGVyZmFjZXMgYXJlIG9rYXlcbiAgICAgIGlmICh0eXBlLnR5cGUgJiYgdHlwZS50eXBlLmlzSW50ZXJmYWNlVHlwZSgpKSB7XG4gICAgICAgIHJldHVybiBhc3NlcnRJbnRlcmZhY2UodHlwZS50eXBlKTtcbiAgICAgIH1cblxuICAgICAgLy8gZW51bXMgYXJlIG9rYXlcbiAgICAgIGlmICh0eXBlLnR5cGUgJiYgdHlwZS50eXBlLmlzRW51bVR5cGUoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGNsYXNzZXMgYXJlIG9rYXkgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgcmVzb3VyY2UgY29uc3RydWN0c1xuICAgICAgaWYgKHR5cGUudHlwZSAmJiB0eXBlLnR5cGUuaXNDbGFzc1R5cGUoKSkge1xuICAgICAgICBpZiAoIUNvcmVUeXBlcy5pc1Jlc291cmNlQ2xhc3ModHlwZS50eXBlKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlLnR5cGUuZnFuID09PSBlLmN0eC5jb3JlLmJhc2VDb25zdHJ1Y3RDbGFzc0Zxbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFsbG93IGV4Y2x1c2lvbiBvZiB0aGlzIHJ1bGVcbiAgICAgICAgaWYgKGRvY3Muc3VtbWFyeS5pbmNsdWRlcyhFWENMVURFX0FOTk9UQVRJT05fUkVGX1ZJQV9JTlRFUkZBQ0UpIHx8IGRvY3MucmVtYXJrcy5pbmNsdWRlcyhFWENMVURFX0FOTk9UQVRJT05fUkVGX1ZJQV9JTlRFUkZBQ0UpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZS5hc3NlcnQoZmFsc2UsIHNjb3BlLCB0eXBlLnR5cGUuZnFuKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdHlwZSByZWZlcmVuY2U6ICR7dHlwZS50b1N0cmluZygpfWApO1xuICAgIH1cbiAgfSxcbn0pO1xuIl19
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJDQUFrRDtBQUNsRCw2Q0FBeUM7QUFDekMsc0NBQW1DO0FBRW5DLE1BQU0sb0NBQW9DLEdBQUcscUNBQXFDLENBQUM7QUFFbkYsZ0RBQWdEO0FBQ25DLFFBQUEsU0FBUyxHQUFHLElBQUksZUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsK0JBQW1CO0tBQ3pELGlCQUFpQixDQUFDLENBQUMsQ0FBQztLQUNwQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLHNCQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFdkQsaUJBQVMsQ0FBQyxHQUFHLENBQUM7SUFDWixJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLE9BQU8sRUFBRSw0REFBNEQ7UUFDbkUsZ0NBQWdDLG9DQUFvQyxzQkFBc0I7SUFDNUYsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUVsQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakIsU0FBUyxXQUFXLENBQUMsSUFBdUI7WUFDMUMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUFDLE9BQU87WUFBQyxDQUFDO1lBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXRCLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNyQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkIsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFdBQVcsRUFB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QyxvQ0FBb0MsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLG9DQUFvQyxDQUFDLEVBQUUsQ0FBQztvQkFDL0gsT0FBTztnQkFDVCxDQUFDO2dCQUVELENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN0QyxPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQzdCLDhCQUE4QjtnQkFDOUIsT0FBTztZQUNULENBQUM7WUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcmVmbGVjdCBmcm9tICdqc2lpLXJlZmxlY3QnO1xuaW1wb3J0IHsgQ29uc3RydWN0UmVmbGVjdGlvbiB9IGZyb20gJy4vY29uc3RydWN0JztcbmltcG9ydCB7IENvcmVUeXBlcyB9IGZyb20gJy4vY29yZS10eXBlcyc7XG5pbXBvcnQgeyBMaW50ZXIgfSBmcm9tICcuLi9saW50ZXInO1xuXG5jb25zdCBFWENMVURFX0FOTk9UQVRJT05fUkVGX1ZJQV9JTlRFUkZBQ0UgPSAnW2Rpc2FibGUtYXdzbGludDpyZWYtdmlhLWludGVyZmFjZV0nO1xuXG4vLyBsaW50IGFsbCBjb25zdHJ1Y3RzIHRoYXQgYXJlIG5vdCBMMSByZXNvdXJjZXNcbmV4cG9ydCBjb25zdCBhcGlMaW50ZXIgPSBuZXcgTGludGVyKGEgPT4gQ29uc3RydWN0UmVmbGVjdGlvblxuICAuZmluZEFsbENvbnN0cnVjdHMoYSlcbiAgLmZpbHRlcihjID0+ICFDb3JlVHlwZXMuaXNDZm5SZXNvdXJjZShjLmNsYXNzVHlwZSkpKTtcblxuYXBpTGludGVyLmFkZCh7XG4gIGNvZGU6ICdyZWYtdmlhLWludGVyZmFjZScsXG4gIG1lc3NhZ2U6ICdBUEkgc2hvdWxkIHVzZSBpbnRlcmZhY2UgYW5kIG5vdCB0aGUgY29uY3JldGUgY2xhc3MgKCVzKS4gJyArXG4gICAgYElmIHRoaXMgaXMgaW50ZW50aW9uYWwsIGFkZCBcIiR7RVhDTFVERV9BTk5PVEFUSU9OX1JFRl9WSUFfSU5URVJGQUNFfVwiIHRvIGVsZW1lbnQncyBqc2RvY2AsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGNvbnN0IGNscyA9IGUuY3R4LmNsYXNzVHlwZTtcbiAgICBjb25zdCB2aXNpdGVkID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICBhc3NlcnRDbGFzcyhjbHMpO1xuXG4gICAgZnVuY3Rpb24gYXNzZXJ0Q2xhc3ModHlwZTogcmVmbGVjdC5DbGFzc1R5cGUpOiB2b2lkIHtcbiAgICAgIGlmICh2aXNpdGVkLmhhcyh0eXBlLmZxbikpIHsgcmV0dXJuOyB9XG4gICAgICB2aXNpdGVkLmFkZCh0eXBlLmZxbik7XG5cbiAgICAgIGZvciAoY29uc3QgbWV0aG9kIG9mIHR5cGUuYWxsTWV0aG9kcykge1xuICAgICAgICBhc3NlcnRNZXRob2QobWV0aG9kKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGUuaW5pdGlhbGl6ZXIpIHtcbiAgICAgICAgYXNzZXJ0TWV0aG9kKHR5cGUuaW5pdGlhbGl6ZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFzc2VydERhdGFUeXBlKHR5cGU6IHJlZmxlY3QuSW50ZXJmYWNlVHlwZSk6IHZvaWQge1xuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiB0eXBlLmFsbFByb3BlcnRpZXMpIHtcbiAgICAgICAgYXNzZXJ0UHJvcGVydHkocHJvcGVydHkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFzc2VydEludGVyZmFjZSh0eXBlOiByZWZsZWN0LkludGVyZmFjZVR5cGUpOiB2b2lkIHtcbiAgICAgIGlmICh2aXNpdGVkLmhhcyh0eXBlLmZxbikpIHsgcmV0dXJuOyB9XG4gICAgICB2aXNpdGVkLmFkZCh0eXBlLmZxbik7XG5cbiAgICAgIGlmICh0eXBlLmRhdGF0eXBlKSB7XG4gICAgICAgIGFzc2VydERhdGFUeXBlKHR5cGUpO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IG1ldGhvZCBvZiB0eXBlLmFsbE1ldGhvZHMpIHtcbiAgICAgICAgYXNzZXJ0TWV0aG9kKG1ldGhvZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXNzZXJ0UHJvcGVydHkocHJvcGVydHk6IHJlZmxlY3QuUHJvcGVydHkpIHtcblxuICAgICAgaWYgKHByb3BlcnR5LnByb3RlY3RlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNpdGUgPSBwcm9wZXJ0eS5vdmVycmlkZXMgPyBwcm9wZXJ0eS5vdmVycmlkZXMgOiBwcm9wZXJ0eS5wYXJlbnRUeXBlO1xuICAgICAgYXNzZXJ0VHlwZShwcm9wZXJ0eS50eXBlLCBwcm9wZXJ0eS5kb2NzLCBgJHtzaXRlLmZxbn0uJHtwcm9wZXJ0eS5uYW1lfWApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFzc2VydE1ldGhvZChtZXRob2Q6IHJlZmxlY3QuQ2FsbGFibGUpIHtcblxuICAgICAgaWYgKG1ldGhvZC5wcm90ZWN0ZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzaXRlID0gbWV0aG9kLm92ZXJyaWRlcyA/IG1ldGhvZC5vdmVycmlkZXMgOiBtZXRob2QucGFyZW50VHlwZTtcbiAgICAgIGNvbnN0IHNjb3BlID0gYCR7c2l0ZS5mcW59LiR7bWV0aG9kLm5hbWV9YDtcblxuICAgICAgbGV0IGZpcnN0TWV0aG9kOiByZWZsZWN0LkNhbGxhYmxlIHwgdW5kZWZpbmVkID0gc2l0ZS5pc0NsYXNzVHlwZSgpIHx8IHNpdGUuaXNJbnRlcmZhY2VUeXBlKClcbiAgICAgICAgPyBzaXRlLmFsbE1ldGhvZHMuZmluZChtID0+IG0ubmFtZSA9PT0gbWV0aG9kLm5hbWUpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICBpZiAoIWZpcnN0TWV0aG9kKSB7XG4gICAgICAgIGZpcnN0TWV0aG9kID0gbWV0aG9kO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IHBhcmFtIG9mIGZpcnN0TWV0aG9kLnBhcmFtZXRlcnMpIHtcbiAgICAgICAgYXNzZXJ0VHlwZShwYXJhbS50eXBlLCBwYXJhbS5kb2NzLCBgJHtzY29wZX0uJHtwYXJhbS5uYW1lfWApO1xuICAgICAgfVxuXG4gICAgICAvLyBub3RlIHRoYXQgd2UgZG8gbm90IHJlcXVpcmUgdGhhdCByZXR1cm4gdmFsdWVzIHdpbGwgdXNlIGFuIGludGVyZmFjZVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFzc2VydFR5cGUodHlwZTogcmVmbGVjdC5UeXBlUmVmZXJlbmNlLCBkb2NzOiByZWZsZWN0LkRvY3MsIHNjb3BlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgIGlmICh0eXBlLnByaW1pdGl2ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlLnZvaWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZS5hcnJheU9mVHlwZSkge1xuICAgICAgICByZXR1cm4gYXNzZXJ0VHlwZSh0eXBlLmFycmF5T2ZUeXBlLCBkb2NzLCBzY29wZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlLm1hcE9mVHlwZSkge1xuICAgICAgICByZXR1cm4gYXNzZXJ0VHlwZSh0eXBlLm1hcE9mVHlwZSwgZG9jcywgc2NvcGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZS51bmlvbk9mVHlwZXMpIHtcbiAgICAgICAgZm9yIChjb25zdCB0IG9mIHR5cGUudW5pb25PZlR5cGVzKSB7XG4gICAgICAgICAgYXNzZXJ0VHlwZSh0LCBkb2NzLCBzY29wZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBpbnRlcmZhY2VzIGFyZSBva2F5XG4gICAgICBpZiAodHlwZS50eXBlICYmIHR5cGUudHlwZS5pc0ludGVyZmFjZVR5cGUoKSkge1xuICAgICAgICByZXR1cm4gYXNzZXJ0SW50ZXJmYWNlKHR5cGUudHlwZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIGVudW1zIGFyZSBva2F5XG4gICAgICBpZiAodHlwZS50eXBlICYmIHR5cGUudHlwZS5pc0VudW1UeXBlKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBjbGFzc2VzIGFyZSBva2F5IGFzIGxvbmcgYXMgdGhleSBhcmUgbm90IHJlc291cmNlIGNvbnN0cnVjdHNcbiAgICAgIGlmICh0eXBlLnR5cGUgJiYgdHlwZS50eXBlLmlzQ2xhc3NUeXBlKCkpIHtcbiAgICAgICAgaWYgKCFDb3JlVHlwZXMuaXNSZXNvdXJjZUNsYXNzKHR5cGUudHlwZSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZS50eXBlLmZxbiA9PT0gZS5jdHguY29yZS5iYXNlQ29uc3RydWN0Q2xhc3NGcW4pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBhbGxvdyBleGNsdXNpb24gb2YgdGhpcyBydWxlXG4gICAgICAgIGlmIChkb2NzLnN1bW1hcnkuaW5jbHVkZXMoRVhDTFVERV9BTk5PVEFUSU9OX1JFRl9WSUFfSU5URVJGQUNFKSB8fCBkb2NzLnJlbWFya3MuaW5jbHVkZXMoRVhDTFVERV9BTk5PVEFUSU9OX1JFRl9WSUFfSU5URVJGQUNFKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGUuYXNzZXJ0KGZhbHNlLCBzY29wZSwgdHlwZS50eXBlLmZxbik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGUuaW50ZXJzZWN0aW9uT2ZUeXBlcykge1xuICAgICAgICAvLyBUeXBlIGludGVyc2VjdGlvbnMgYXJlIG9rYXlcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdHlwZSByZWZlcmVuY2U6ICR7dHlwZS50b1N0cmluZygpfWApO1xuICAgIH1cbiAgfSxcbn0pO1xuIl19
|
package/lib/rules/api.ts
CHANGED
package/lib/rules/attributes.js
CHANGED
|
@@ -13,6 +13,9 @@ exports.attributesLinter = new linter_1.Linter(a => {
|
|
|
13
13
|
return result;
|
|
14
14
|
});
|
|
15
15
|
class AttributeReflection {
|
|
16
|
+
resource;
|
|
17
|
+
attr;
|
|
18
|
+
fqn;
|
|
16
19
|
constructor(resource, attr) {
|
|
17
20
|
this.resource = resource;
|
|
18
21
|
this.attr = attr;
|
|
@@ -34,4 +37,4 @@ exports.attributesLinter.add({
|
|
|
34
37
|
e.assert(tag, e.ctx.fqn, `${e.ctx.attr.property.parentType.fqn}.${e.ctx.attr.property.name}`);
|
|
35
38
|
},
|
|
36
39
|
});
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF0dHJpYnV0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQTJEO0FBQzNELHNDQUFtQztBQUV0QixRQUFBLGdCQUFnQixHQUFHLElBQUksZUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksS0FBSyxFQUF1QixDQUFDO0lBQ2hELEtBQUssTUFBTSxRQUFRLElBQUksNkJBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckQsS0FBSyxNQUFNLElBQUksSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdkMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDLENBQUM7QUFFSCxNQUFNLG1CQUFtQjtJQUdLO0lBQThDO0lBRjFELEdBQUcsQ0FBUztJQUU1QixZQUE0QixRQUE0QixFQUFrQixJQUFlO1FBQTdELGFBQVEsR0FBUixRQUFRLENBQW9CO1FBQWtCLFNBQUksR0FBSixJQUFJLENBQVc7UUFDdkYsSUFBSSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUNyRCxDQUFDO0NBQ0Y7QUFFRCx3QkFBZ0IsQ0FBQyxHQUFHLENBQUM7SUFDbkIsSUFBSSxFQUFFLG9CQUFvQjtJQUMxQixPQUFPLEVBQUUscUNBQXFDO0lBQzlDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtRQUNSLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCx3QkFBZ0IsQ0FBQyxHQUFHLENBQUM7SUFDbkIsSUFBSSxFQUFFLGVBQWU7SUFDckIsT0FBTyxFQUFFLDREQUE0RDtJQUNyRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFDUixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRyaWJ1dGUsIFJlc291cmNlUmVmbGVjdGlvbiB9IGZyb20gJy4vcmVzb3VyY2UnO1xuaW1wb3J0IHsgTGludGVyIH0gZnJvbSAnLi4vbGludGVyJztcblxuZXhwb3J0IGNvbnN0IGF0dHJpYnV0ZXNMaW50ZXIgPSBuZXcgTGludGVyKGEgPT4ge1xuICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8QXR0cmlidXRlUmVmbGVjdGlvbj4oKTtcbiAgZm9yIChjb25zdCByZXNvdXJjZSBvZiBSZXNvdXJjZVJlZmxlY3Rpb24uZmluZEFsbChhKSkge1xuICAgIGZvciAoY29uc3QgYXR0ciBvZiByZXNvdXJjZS5hdHRyaWJ1dGVzKSB7XG4gICAgICByZXN1bHQucHVzaChuZXcgQXR0cmlidXRlUmVmbGVjdGlvbihyZXNvdXJjZSwgYXR0cikpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufSk7XG5cbmNsYXNzIEF0dHJpYnV0ZVJlZmxlY3Rpb24ge1xuICBwdWJsaWMgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBSZXNvdXJjZVJlZmxlY3Rpb24sIHB1YmxpYyByZWFkb25seSBhdHRyOiBBdHRyaWJ1dGUpIHtcbiAgICB0aGlzLmZxbiA9IHJlc291cmNlLmZxbiArICcuJyArIGF0dHIucHJvcGVydHkubmFtZTtcbiAgfVxufVxuXG5hdHRyaWJ1dGVzTGludGVyLmFkZCh7XG4gIGNvZGU6ICdhdHRyaWJ1dGUtcmVhZG9ubHknLFxuICBtZXNzYWdlOiAnYXR0cmlidXRlIHByb3BlcnR5IG11c3QgYmUgcmVhZG9ubHknLFxuICBldmFsOiBlID0+IHtcbiAgICBlLmFzc2VydChlLmN0eC5hdHRyLnByb3BlcnR5LmltbXV0YWJsZSwgZS5jdHguZnFuKTtcbiAgfSxcbn0pO1xuXG5hdHRyaWJ1dGVzTGludGVyLmFkZCh7XG4gIGNvZGU6ICdhdHRyaWJ1dGUtdGFnJyxcbiAgbWVzc2FnZTogJ2F0dHJpYnV0ZSBwcm9wZXJ0aWVzIG11c3QgaGF2ZSBhbiBcIkBhdHRyaWJ1dGVcIiBkb2N0YWcgb246ICcsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGNvbnN0IHRhZyA9IGUuY3R4LmF0dHIucHJvcGVydHkuZG9jcy5jdXN0b21UYWcoJ2F0dHJpYnV0ZScpO1xuICAgIGUuYXNzZXJ0KHRhZywgZS5jdHguZnFuLCBgJHtlLmN0eC5hdHRyLnByb3BlcnR5LnBhcmVudFR5cGUuZnFufS4ke2UuY3R4LmF0dHIucHJvcGVydHkubmFtZX1gKTtcbiAgfSxcbn0pO1xuIl19
|
|
@@ -54,6 +54,12 @@ class CfnResourceReflection {
|
|
|
54
54
|
.filter(c => core_types_1.CoreTypes.isCfnResource(c))
|
|
55
55
|
.map(c => new CfnResourceReflection(c));
|
|
56
56
|
}
|
|
57
|
+
classType;
|
|
58
|
+
fullname; // AWS::S3::Bucket
|
|
59
|
+
namespace; // AWS::S3
|
|
60
|
+
basename; // Bucket
|
|
61
|
+
attributeNames; // (normalized) bucketArn, bucketName, queueUrl
|
|
62
|
+
doc; // link to CloudFormation docs
|
|
57
63
|
constructor(cls) {
|
|
58
64
|
this.classType = cls;
|
|
59
65
|
this.basename = cls.name.slice('Cfn'.length);
|
|
@@ -78,4 +84,4 @@ class CfnResourceReflection {
|
|
|
78
84
|
}
|
|
79
85
|
}
|
|
80
86
|
exports.CfnResourceReflection = CfnResourceReflection;
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZuLXJlc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2ZuLXJlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZDQUF5QztBQUN6Qyx5Q0FBZ0Q7QUFDaEQsa0NBQW9DO0FBQ3BDLHNDQUFtQztBQUVuQyxNQUFNLGtCQUFrQixHQUFHLHdCQUF3QixDQUFDO0FBRXBELHlGQUF5RjtBQUN6RixnRkFBZ0Y7QUFDbkUsUUFBQSxpQkFBaUIsR0FBRyxJQUFJLGVBQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRW5GLHVDQUF1QztBQUN2QyxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUFzRCxDQUFDO0FBRXZGLFNBQVMsOEJBQThCLENBQUMsR0FBdUI7SUFDN0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQy9CLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQTZCLENBQUMsQ0FBQztRQUVoRSxLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5QixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBRTlELElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ25CLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsY0FBYyxFQUFFLGlCQUFpQixFQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDNUUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELHlCQUFpQixDQUFDLEdBQUcsQ0FBQztJQUNwQixJQUFJLEVBQUUsZ0JBQWdCO0lBQ3RCLE9BQU8sRUFBRSx1RkFBdUY7SUFDaEcsT0FBTyxFQUFF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RSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0RCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVPLGdDQUFnQyxDQUFDLElBQVk7UUFFbkQsc0VBQXNFO1FBQ3RFLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxlQUFlLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sSUFBQSxnQkFBUyxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7Q0FDRjtBQWpFRCxzREFpRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBDb3JlVHlwZXMgfSBmcm9tICcuL2NvcmUtdHlwZXMnO1xuaW1wb3J0IHsgUmVzb3VyY2VSZWZsZWN0aW9uIH0gZnJvbSAnLi9yZXNvdXJjZSc7XG5pbXBvcnQgeyBwYXNjYWxpemUgfSBmcm9tICcuLi9jYXNlJztcbmltcG9ydCB7IExpbnRlciB9IGZyb20gJy4uL2xpbnRlcic7XG5cbmNvbnN0IGNmblJlc291cmNlVGFnTmFtZSA9ICdjbG91ZGZvcm1hdGlvblJlc291cmNlJztcblxuLy8gdGhpcyBsaW50ZXIgdmVyaWZpZXMgdGhhdCB3ZSBoYXZlIEwyIGNvdmVyYWdlLiBpdCBmaW5kcyBhbGwgXCJDZm5cIiBjbGFzc2VzIGFuZCB2ZXJpZmllc1xuLy8gdGhhdCB3ZSBoYXZlIGEgY29ycmVzcG9uZGluZyBMMSBjbGFzcyBmb3IgaXQgdGhhdCdzIGlkZW50aWZpZWQgYXMgYSByZXNvdXJjZS5cbmV4cG9ydCBjb25zdCBjZm5SZXNvdXJjZUxpbnRlciA9IG5ldyBMaW50ZXIoYSA9PiBDZm5SZXNvdXJjZVJlZmxlY3Rpb24uZmluZEFsbChhKSk7XG5cbi8vIENhY2hlIEwxIGNvbnN0cnVjdHMgcGVyIHR5cGUgc3lzdGVtLlxuY29uc3QgbDFDb25zdHJ1Y3RDYWNoZSA9IG5ldyBNYXA8cmVmbGVjdC5UeXBlU3lzdGVtLCBNYXA8c3RyaW5nLCByZWZsZWN0LkNsYXNzVHlwZT4+KCk7XG5cbmZ1bmN0aW9uIGNhY2hlTDFDb25zdHJ1Y3RzRm9yVHlwZVN5c3RlbShzeXM6IHJlZmxlY3QuVHlwZVN5c3RlbSkge1xuICBpZiAoIWwxQ29uc3RydWN0Q2FjaGUuaGFzKHN5cykpIHtcbiAgICBsMUNvbnN0cnVjdENhY2hlLnNldChzeXMsIG5ldyBNYXA8c3RyaW5nLCByZWZsZWN0LkNsYXNzVHlwZT4oKSk7XG5cbiAgICBmb3IgKGNvbnN0IGNscyBvZiBzeXMuY2xhc3Nlcykge1xuICAgICAgY29uc3QgY2ZuUmVzb3VyY2VUYWcgPSBjbHMuZG9jcy5jdXN0b21UYWcoY2ZuUmVzb3VyY2VUYWdOYW1lKTtcblxuICAgICAgaWYgKGNmblJlc291cmNlVGFnKSB7XG4gICAgICAgIGwxQ29uc3RydWN0Q2FjaGUuZ2V0KHN5cyk/LnNldChjZm5SZXNvdXJjZVRhZz8udG9Mb2NhbGVMb3dlckNhc2UoKSEsIGNscyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmNmblJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdyZXNvdXJjZS1jbGFzcycsXG4gIG1lc3NhZ2U6ICdldmVyeSByZXNvdXJjZSBtdXN0IGhhdmUgYSByZXNvdXJjZSBjbGFzcyAoTDIpLCBhZGQgXFwnQHJlc291cmNlICVzXFwnIHRvIGl0cyBkb2NzdHJpbmcnLFxuICB3YXJuaW5nOiB0cnVlLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCBsMiA9IFJlc291cmNlUmVmbGVjdGlvbi5maW5kQWxsKGUuY3R4LmNsYXNzVHlwZS5hc3NlbWJseSkuZmluZChyID0+IHIuY2ZuLmZ1bGxuYW1lID09PSBlLmN0eC5mdWxsbmFtZSk7XG4gICAgZS5hc3NlcnQobDIsIGUuY3R4LmZ1bGxuYW1lLCBlLmN0eC5mdWxsbmFtZSk7XG4gIH0sXG59KTtcblxuZXhwb3J0IGNsYXNzIENmblJlc291cmNlUmVmbGVjdGlvbiB7XG4gIC8qKlxuICAgKiBGaW5kcyBhIENmbiByZXNvdXJjZSBjbGFzcyBieSBmdWxsIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIG5hbWUgKGUuZy4gYEFXUzo6UzM6OkJ1Y2tldGApXG4gICAqIEBwYXJhbSBmdWxsTmFtZSBmaXJzdCB0d28gY29tcG9uZW50cyBhcmUgY2FzZS1pbnNlbnNpdGl2ZSAoZS5nLiBgYXdzOjpzMzo6QnVja2V0YCBpcyBlcXVpdmFsZW50IHRvIGBBd3M6OlMzOjpCdWNrZXRgKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmaW5kQnlOYW1lKHN5czogcmVmbGVjdC5UeXBlU3lzdGVtLCBmdWxsTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCFsMUNvbnN0cnVjdENhY2hlLmhhcyhzeXMpKSB7XG4gICAgICBjYWNoZUwxQ29uc3RydWN0c0ZvclR5cGVTeXN0ZW0oc3lzKTtcbiAgICB9XG5cbiAgICBjb25zdCBjbHMgPSBsMUNvbnN0cnVjdENhY2hlLmdldChzeXMpPy5nZXQoZnVsbE5hbWUudG9Mb3dlckNhc2UoKSk7XG4gICAgaWYgKGNscykge1xuICAgICAgcmV0dXJuIG5ldyBDZm5SZXNvdXJjZVJlZmxlY3Rpb24oY2xzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIENGTiByZXNvdXJjZSBjbGFzc2VzIHdpdGhpbiBhbiBhc3NlbWJseS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZmluZEFsbChhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseSkge1xuICAgIHJldHVybiBhc3NlbWJseS5hbGxDbGFzc2VzXG4gICAgICAuZmlsdGVyKGMgPT4gQ29yZVR5cGVzLmlzQ2ZuUmVzb3VyY2UoYykpXG4gICAgICAubWFwKGMgPT4gbmV3IENmblJlc291cmNlUmVmbGVjdGlvbihjKSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgY2xhc3NUeXBlOiByZWZsZWN0LkNsYXNzVHlwZTtcbiAgcHVibGljIHJlYWRvbmx5IGZ1bGxuYW1lOiBzdHJpbmc7IC8vIEFXUzo6UzM6OkJ1Y2tldFxuICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlOiBzdHJpbmc7IC8vIEFXUzo6UzNcbiAgcHVibGljIHJlYWRvbmx5IGJhc2VuYW1lOiBzdHJpbmc7IC8vIEJ1Y2tldFxuICBwdWJsaWMgcmVhZG9ubHkgYXR0cmlidXRlTmFtZXM6IHN0cmluZ1tdOyAvLyAobm9ybWFsaXplZCkgYnVja2V0QXJuLCBidWNrZXROYW1lLCBxdWV1ZVVybFxuICBwdWJsaWMgcmVhZG9ubHkgZG9jOiBzdHJpbmc7IC8vIGxpbmsgdG8gQ2xvdWRGb3JtYXRpb24gZG9jc1xuXG4gIGNvbnN0cnVjdG9yKGNsczogcmVmbGVjdC5DbGFzc1R5cGUpIHtcbiAgICB0aGlzLmNsYXNzVHlwZSA9IGNscztcblxuICAgIHRoaXMuYmFzZW5hbWUgPSBjbHMubmFtZS5zbGljZSgnQ2ZuJy5sZW5ndGgpO1xuXG4gICAgY29uc3QgZnVsbG5hbWUgPSBjbHMuZG9jcy5jdXN0b21UYWcoJ2Nsb3VkZm9ybWF0aW9uUmVzb3VyY2UnKTtcbiAgICBpZiAoIWZ1bGxuYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBleHRyYWN0IENsb3VkRm9ybWF0aW9uIHJlc291cmNlIG5hbWUgZnJvbSBpbml0aWFsaXplciBkb2N1bWVudGF0aW9uIG9mICR7Y2xzfWApO1xuICAgIH1cblxuICAgIHRoaXMuZnVsbG5hbWUgPSBmdWxsbmFtZTtcblxuICAgIHRoaXMubmFtZXNwYWNlID0gZnVsbG5hbWUuc3BsaXQoJzo6Jykuc2xpY2UoMCwgMikuam9pbignOjonKTtcblxuICAgIHRoaXMuYXR0cmlidXRlTmFtZXMgPSBjbHMub3duUHJvcGVydGllc1xuICAgICAgLmZpbHRlcihwID0+IChwLmRvY3MuZG9jcy5jdXN0b20gfHwge30pLmNsb3VkZm9ybWF0aW9uQXR0cmlidXRlKVxuICAgICAgLm1hcChwID0+IHAuZG9jcy5jdXN0b21UYWcoJ2Nsb3VkZm9ybWF0aW9uQXR0cmlidXRlJykgfHwgJzxlcnJvcj4nKVxuICAgICAgLm1hcChwID0+IHRoaXMuYXR0cmlidXRlUHJvcGVydHlOYW1lRnJvbUNmbk5hbWUocCkpO1xuXG4gICAgdGhpcy5kb2MgPSBjbHMuZG9jcy5kb2NzLnNlZSB8fCAnJztcbiAgfVxuXG4gIHByaXZhdGUgYXR0cmlidXRlUHJvcGVydHlOYW1lRnJvbUNmbk5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblxuICAgIC8vIHNwZWNpYWwgY2FzZSAoc29tZW9uZSB3YXMgc21hcnQpLCBzcGVjaWFsIGNhc2UgY29waWVkIGZyb20gc3BlYzJjZGtcbiAgICBpZiAodGhpcy5iYXNlbmFtZSA9PT0gJ1NlY3VyaXR5R3JvdXAnICYmIG5hbWUgPT09ICdHcm91cElkJykge1xuICAgICAgcmV0dXJuICdJZCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhc2NhbGl6ZShuYW1lKTtcbiAgfVxufVxuIl19
|
package/lib/rules/construct.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.constructLinter = new linter_1.Linter(assembly => assembly.allClasses
|
|
|
7
7
|
.filter(t => core_types_1.CoreTypes.isConstructClass(t))
|
|
8
8
|
.map(construct => new ConstructReflection(construct)));
|
|
9
9
|
class ConstructReflection {
|
|
10
|
+
classType;
|
|
10
11
|
static findAllConstructs(assembly) {
|
|
11
12
|
return assembly.allClasses
|
|
12
13
|
.filter(c => core_types_1.CoreTypes.isConstructClass(c))
|
|
@@ -21,6 +22,15 @@ class ConstructReflection {
|
|
|
21
22
|
}
|
|
22
23
|
return typeRef.fqn;
|
|
23
24
|
}
|
|
25
|
+
fqn;
|
|
26
|
+
interfaceFqn;
|
|
27
|
+
propsFqn;
|
|
28
|
+
interfaceType;
|
|
29
|
+
propsType;
|
|
30
|
+
initializer;
|
|
31
|
+
hasPropsArgument;
|
|
32
|
+
sys;
|
|
33
|
+
core;
|
|
24
34
|
constructor(classType) {
|
|
25
35
|
this.classType = classType;
|
|
26
36
|
this.fqn = classType.fqn;
|
|
@@ -272,4 +282,4 @@ function baseConstructAddendum() {
|
|
|
272
282
|
}
|
|
273
283
|
return '';
|
|
274
284
|
}
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZDQUF5QztBQUN6QyxzQ0FBd0U7QUFFM0QsUUFBQSxlQUFlLEdBQUcsSUFBSSxlQUFNLENBQXNCLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVU7S0FDM0YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsc0JBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMxQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUV6RCxNQUFhLG1CQUFtQjtJQUV2QixNQUFNLENBQUMsaUJBQWlCLENBQUMsUUFBMEI7UUFDeEQsT0FBTyxRQUFRLENBQUMsVUFBVTthQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxzQkFBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQThCO1FBQzVELElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7UUFDakMsQ0FBQzthQUFNLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7UUFDL0IsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUNyQixDQUFDO0lBWUQsWUFBNEIsU0FBNEI7UUFBNUIsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFDdEQsSUFBSSxDQUFDLEdB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Q3hDLE9BQU8scUhBQXFILENBQUM7SUFDL0gsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IENvcmVUeXBlcyB9IGZyb20gJy4vY29yZS10eXBlcyc7XG5pbXBvcnQgeyBMaW50ZXIsIE1ldGhvZFNpZ25hdHVyZVBhcmFtZXRlckV4cGVjdGF0aW9uIH0gZnJvbSAnLi4vbGludGVyJztcblxuZXhwb3J0IGNvbnN0IGNvbnN0cnVjdExpbnRlciA9IG5ldyBMaW50ZXI8Q29uc3RydWN0UmVmbGVjdGlvbj4oYXNzZW1ibHkgPT4gYXNzZW1ibHkuYWxsQ2xhc3Nlc1xuICAuZmlsdGVyKHQgPT4gQ29yZVR5cGVzLmlzQ29uc3RydWN0Q2xhc3ModCkpXG4gIC5tYXAoY29uc3RydWN0ID0+IG5ldyBDb25zdHJ1Y3RSZWZsZWN0aW9uKGNvbnN0cnVjdCkpKTtcblxuZXhwb3J0IGNsYXNzIENvbnN0cnVjdFJlZmxlY3Rpb24ge1xuXG4gIHB1YmxpYyBzdGF0aWMgZmluZEFsbENvbnN0cnVjdHMoYXNzZW1ibHk6IHJlZmxlY3QuQXNzZW1ibHkpIHtcbiAgICByZXR1cm4gYXNzZW1ibHkuYWxsQ2xhc3Nlc1xuICAgICAgLmZpbHRlcihjID0+IENvcmVUeXBlcy5pc0NvbnN0cnVjdENsYXNzKGMpKVxuICAgICAgLm1hcChjID0+IG5ldyBDb25zdHJ1Y3RSZWZsZWN0aW9uKGMpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RnFuRnJvbVR5cGVSZWYodHlwZVJlZjogcmVmbGVjdC5UeXBlUmVmZXJlbmNlKSB7XG4gICAgaWYgKHR5cGVSZWYuYXJyYXlPZlR5cGUpIHtcbiAgICAgIHJldHVybiB0eXBlUmVmLmFycmF5T2ZUeXBlLmZxbjtcbiAgICB9IGVsc2UgaWYgKHR5cGVSZWYubWFwT2ZUeXBlKSB7XG4gICAgICByZXR1cm4gdHlwZVJlZi5tYXBPZlR5cGUuZnFuO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlUmVmLmZxbjtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBmcW46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGludGVyZmFjZUZxbjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcHNGcW46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGludGVyZmFjZVR5cGU/OiByZWZsZWN0LkludGVyZmFjZVR5cGU7XG4gIHB1YmxpYyByZWFkb25seSBwcm9wc1R5cGU/OiByZWZsZWN0LkludGVyZmFjZVR5cGU7XG4gIHB1YmxpYyByZWFkb25seSBpbml0aWFsaXplcj86IHJlZmxlY3QuSW5pdGlhbGl6ZXI7XG4gIHB1YmxpYyByZWFkb25seSBoYXNQcm9wc0FyZ3VtZW50OiBib29sZWFuO1xuICBwdWJsaWMgcmVhZG9ubHkgc3lzOiByZWZsZWN0LlR5cGVTeXN0ZW07XG4gIHB1YmxpYyByZWFkb25seSBjb3JlOiBDb3JlVHlwZXM7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNsYXNzVHlwZTogcmVmbGVjdC5DbGFzc1R5cGUpIHtcbiAgICB0aGlzLmZxbiA9IGNsYXNzVHlwZS5mcW47XG4gICAgdGhpcy5zeXMgPSBjbGFzc1R5cGUuc3lzdGVtO1xuICAgIHRoaXMuY29yZSA9IG5ldyBDb3JlVHlwZXModGhpcy5zeXMpO1xuICAgIHRoaXMuaW50ZXJmYWNlRnFuID0gYCR7dGhpcy50eXBlUHJlZml4KGNsYXNzVHlwZSl9Lkkke2NsYXNzVHlwZS5uYW1lfWA7XG4gICAgdGhpcy5wcm9wc0ZxbiA9IGAke3RoaXMudHlwZVByZWZpeChjbGFzc1R5cGUpfS4ke2NsYXNzVHlwZS5uYW1lfVByb3BzYDtcbiAgICB0aGlzLmludGVyZmFjZVR5cGUgPSB0aGlzLnRyeUZpbmRJbnRlcmZhY2UoKTtcbiAgICB0aGlzLnByb3BzVHlwZSA9IHRoaXMudHJ5RmluZFByb3BzKCk7XG4gICAgdGhpcy5pbml0aWFsaXplciA9IGNsYXNzVHlwZS5pbml0aWFsaXplcjtcbiAgICB0aGlzLmhhc1Byb3BzQXJndW1lbnQgPSB0aGlzLmluaXRpYWxpemVyICE9IG51bGwgJiYgdGhpcy5pbml0aWFsaXplci5wYXJhbWV0ZXJzLmxlbmd0aCA+PSAzO1xuICB9XG5cbiAgcHJpdmF0ZSB0eXBlUHJlZml4KGNsYXNzVHlwZTogcmVmbGVjdC5DbGFzc1R5cGUpIHtcbiAgICByZXR1cm4gY2xhc3NUeXBlLmFzc2VtYmx5Lm5hbWUgKyAoY2xhc3NUeXBlLm5hbWVzcGFjZSA/IGAuJHtjbGFzc1R5cGUubmFtZXNwYWNlfWAgOiAnJyk7XG4gIH1cblxuICBwcml2YXRlIHRyeUZpbmRJbnRlcmZhY2UoKSB7XG4gICAgY29uc3Qgc3lzID0gdGhpcy5jbGFzc1R5cGUuc3lzdGVtO1xuICAgIGNvbnN0IGZvdW5kID0gc3lzLnRyeUZpbmRGcW4odGhpcy5pbnRlcmZhY2VGcW4pO1xuICAgIGlmICghZm91bmQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKCFmb3VuZC5pc0ludGVyZmFjZVR5cGUoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RpbmcgdHlwZSAke3RoaXMuaW50ZXJmYWNlRnFufSB0byBiZSBhbiBpbnRlcmZhY2VgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm91bmQ7XG4gIH1cblxuICBwcml2YXRlIHRyeUZpbmRQcm9wcygpIHtcbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuc3lzLnRyeUZpbmRGcW4odGhpcy5wcm9wc0Zxbik7XG4gICAgaWYgKCFmb3VuZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoIWZvdW5kLmlzSW50ZXJmYWNlVHlwZSgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGluZyBwcm9wcyBzdHJ1Y3QgJHt0aGlzLnByb3BzRnFufSB0byBiZSBhbiBpbnRlcmZhY2VgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm91bmQ7XG4gIH1cbn1cblxuY29uc3RydWN0TGludGVyLmFkZCh7XG4gIGNvZGU6ICdjb25zdHJ1Y3QtY3RvcicsXG4gIG1lc3NhZ2U6ICdzaWduYXR1cmUgb2YgYWxsIGNvbnN0cnVjdCBjb25zdHJ1Y3RvcnMgc2hvdWxkIGJlIFwic2NvcGUsIGlkLCBwcm9wc1wiLiAnICsgYmFzZUNvbnN0cnVjdEFkZGVuZHVtKCksXG4gIGV2YWw6IGUgPT4ge1xuICAgIC8vIG9ubHkgYXBwbGllcyB0byBub24gYWJzdHJhY3QgY2xhc3Nlc1xuICAgIGlmIChlLmN0eC5jbGFzc1R5cGUuYWJzdHJhY3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbml0aWFsaXplciA9IGUuY3R4LmluaXRpYWxpemVyO1xuICAgIGlmICghZS5hc3NlcnQoaW5pdGlhbGl6ZXIsIGUuY3R4LmZxbikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBleHBlY3RlZFBhcmFtcyA9IG5ldyBBcnJheTxNZXRob2RTaWduYXR1cmVQYXJhbWV0ZXJFeHBlY3RhdGlvbj4oKTtcbiAgICBleHBlY3RlZFBhcmFtcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdzY29wZScsXG4gICAgICB0eXBlOiBlLmN0eC5jb3JlLmJhc2VDb25zdHJ1Y3RDbGFzc0ZxbixcbiAgICB9KTtcblxuICAgIGV4cGVjdGVkUGFyYW1zLnB1c2goe1xuICAgICAgbmFtZTogJ2lkJyxcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0pO1xuXG4gICAgLy8gaXQncyBva2F5IGZvciBhIGNvbnN0cnVjdCBub3QgdG8gaGF2ZSBhIFwicHJvcHNcIiBhcmd1bWVudCBzbyB3ZSBvbmx5XG4gICAgLy8gYXNzZXJ0IHRoZSBcInByb3BzXCIgYXJndW1lbnQgaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiB0d28gcGFyYW1ldGVyc1xuICAgIGlmIChpbml0aWFsaXplci5wYXJhbWV0ZXJzLmxlbmd0aCA+IDIpIHtcbiAgICAgIGV4cGVjdGVkUGFyYW1zLnB1c2goe1xuICAgICAgICBuYW1lOiAncHJvcHMnLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZS5hc3NlcnRTaWduYXR1cmUoaW5pdGlhbGl6ZXIsIHtcbiAgICAgIHBhcmFtZXRlcnM6IGV4cGVjdGVkUGFyYW1zLFxuICAgIH0pO1xuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtc3RydWN0LW5hbWUnLFxuICBtZXNzYWdlOiAnYWxsIGNvbnN0cnVjdHMgbXVzdCBoYXZlIGEgcHJvcHMgc3RydWN0JyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5oYXNQcm9wc0FyZ3VtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gYWJzdHJhY3QgY2xhc3NlcyBhcmUgZXhlbXB0XG4gICAgaWYgKGUuY3R4LmNsYXNzVHlwZS5hYnN0cmFjdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGUuYXNzZXJ0KGUuY3R4LnByb3BzVHlwZSwgZS5jdHguaW50ZXJmYWNlRnFuKTtcbiAgfSxcbn0pO1xuXG5jb25zdHJ1Y3RMaW50ZXIuYWRkKHtcbiAgY29kZTogJ2NvbnN0cnVjdC1jdG9yLXByb3BzLXR5cGUnLFxuICBtZXNzYWdlOiAnY29uc3RydWN0IFwicHJvcHNcIiB0eXBlIHNob3VsZCB1c2UgdGhlIHByb3BzIHN0cnVjdCAlcycsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHguaW5pdGlhbGl6ZXIpIHsgcmV0dXJuOyB9XG4gICAgaWYgKGUuY3R4LmluaXRpYWxpemVyLnBhcmFtZXRlcnMubGVuZ3RoIDwgMykgeyByZXR1cm47IH1cblxuICAgIGUuYXNzZXJ0KFxuICAgICAgZS5jdHguaW5pdGlhbGl6ZXIucGFyYW1ldGVyc1syXS50eXBlLnR5cGUgPT09IGUuY3R4LnByb3BzVHlwZSxcbiAgICAgIGUuY3R4LmZxbixcbiAgICAgIGUuY3R4LnByb3BzRnFuKTtcbiAgfSxcbn0pO1xuXG5jb25zdHJ1Y3RMaW50ZXIuYWRkKHtcbiAgY29kZTogJ2NvbnN0cnVjdC1jdG9yLXByb3BzLW9wdGlvbmFsJyxcbiAgbWVzc2FnZTogJ2NvbnN0cnVjdCBcInByb3BzXCIgbXVzdCBiZSBvcHRpb25hbCBzaW5jZSBhbGwgcHJvcHMgYXJlIG9wdGlvbmFsJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5wcm9wc1R5cGUpIHsgcmV0dXJuOyB9XG4gICAgaWYgKCFlLmN0eC5pbml0aWFsaXplcikgeyByZXR1cm47IH1cbiAgICBpZiAoIWUuY3R4Lmhhc1Byb3BzQXJndW1lbnQpIHsgcmV0dXJuOyB9XG5cbiAgICAvLyB0aGlzIHJ1bGUgYXBwbGllcyBvbmx5IGlmIGFsbCBwcm9wZXJ0aWVzIGFyZSBvcHRpb25hbFxuICAgIGNvbnN0IGFsbE9wdGlvbmFsID0gZS5jdHgucHJvcHNUeXBlLmFsbFByb3BlcnRpZXMuZXZlcnkocCA9PiBwLm9wdGlvbmFsKTtcbiAgICBpZiAoIWFsbE9wdGlvbmFsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZS5hc3NlcnQoZS5jdHguaW5pdGlhbGl6ZXIucGFyYW1ldGVyc1syXS5vcHRpb25hbCwgZS5jdHguZnFuKTtcbiAgfSxcbn0pO1xuXG5jb25zdHJ1Y3RMaW50ZXIuYWRkKHtcbiAgY29kZTogJ2NvbnN0cnVjdC1pbnRlcmZhY2UtZXh0ZW5kcy1pY29uc3RydWN0JyxcbiAgbWVzc2FnZTogJ2NvbnN0cnVjdCBpbnRlcmZhY2UgbXVzdCBleHRlbmQgY29yZS5JQ29uc3RydWN0JyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5pbnRlcmZhY2VUeXBlKSB7IHJldHVybjsgfVxuICAgIGNvbnN0IGludGVyZmFjZUJhc2UgPSBlLmN0eC5zeXMuZmluZEludGVyZmFjZShlLmN0eC5jb3JlLmJhc2VDb25zdHJ1Y3RJbnRlcmZhY2VGcW4pO1xuICAgIGUuYXNzZXJ0KGUuY3R4LmludGVyZmFjZVR5cGUuZXh0ZW5kcyhpbnRlcmZhY2VCYXNlKSwgZS5jdHguaW50ZXJmYWNlVHlwZS5mcW4pO1xuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAnY29uc3RydWN0LWJhc2UtaXMtcHJpdmF0ZScsXG4gIG1lc3NhZ2U6ICdwcmVmZXIgdGhhdCB0aGUgY29uc3RydWN0IGJhc2UgY2xhc3MgaXMgcHJpdmF0ZScsXG4gIHdhcm5pbmc6IHRydWUsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHguaW50ZXJmYWNlVHlwZSkgeyByZXR1cm47IH1cbiAgICBjb25zdCBiYXNlRnFuID0gYCR7ZS5jdHguY2xhc3NUeXBlLmZxbn1CYXNlYDtcbiAgICBlLmFzc2VydCghZS5jdHguc3lzLnRyeUZpbmRGcW4oYmFzZUZxbiksIGJhc2VGcW4pO1xuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtbm8tdW5pb25zJyxcbiAgbWVzc2FnZTogJ3Byb3BzIG11c3Qgbm90IHVzZSBUeXBlU2NyaXB0IHVuaW9ucycsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHgucHJvcHNUeXBlKSB7IHJldHVybjsgfVxuICAgIGlmICghZS5jdHguaGFzUHJvcHNBcmd1bWVudCkgeyByZXR1cm47IH1cblxuICAgIC8vIHRoaXMgcnVsZSBkb2VzIG5vdCBhcHBseSB0byBMMSBjb25zdHJ1Y3RzXG4gICAgaWYgKENvcmVUeXBlcy5pc0NmblJlc291cmNlKGUuY3R4LmNsYXNzVHlwZSkpIHsgcmV0dXJuOyB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIGUuY3R4LnByb3BzVHlwZS5vd25Qcm9wZXJ0aWVzKSB7XG4gICAgICBlLmFzc2VydCghcHJvcGVydHkudHlwZS51bmlvbk9mVHlwZXMsIGAke2UuY3R4LnByb3BzRnFufS4ke3Byb3BlcnR5Lm5hbWV9YCk7XG4gICAgfVxuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtbm8tYXJuLXJlZnMnLFxuICBtZXNzYWdlOiAncHJvcHMgbXVzdCB1c2Ugc3Ryb25nIHR5cGVzIGluc3RlYWQgb2YgYXR0cmlidXRlcy4gcHJvcHMgc2hvdWxkIG5vdCBoYXZlIFwiYXJuXCIgc3VmZml4JyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5wcm9wc1R5cGUpIHsgcmV0dXJuOyB9XG4gICAgaWYgKCFlLmN0eC5oYXNQcm9wc0FyZ3VtZW50KSB7IHJldHVybjsgfVxuXG4gICAgLy8gdGhpcyBydWxlIGRvZXMgbm90IGFwcGx5IHRvIEwxIGNvbnN0cnVjdHNcbiAgICBpZiAoQ29yZVR5cGVzLmlzQ2ZuUmVzb3VyY2UoZS5jdHguY2xhc3NUeXBlKSkgeyByZXR1cm47IH1cblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgZS5jdHgucHJvcHNUeXBlLm93blByb3BlcnRpZXMpIHtcbiAgICAgIGUuYXNzZXJ0KCFwcm9wZXJ0eS5uYW1lLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoJ2FybicpLCBgJHtlLmN0eC5wcm9wc0Zxbn0uJHtwcm9wZXJ0eS5uYW1lfWApO1xuICAgIH1cbiAgfSxcbn0pO1xuXG5jb25zdHJ1Y3RMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Byb3BzLW5vLXRva2VucycsXG4gIG1lc3NhZ2U6ICdwcm9wcyBtdXN0IG5vdCB1c2UgdGhlIFwiVG9rZW5cIiB0eXBlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5wcm9wc1R5cGUpIHsgcmV0dXJuOyB9XG4gICAgaWYgKCFlLmN0eC5oYXNQcm9wc0FyZ3VtZW50KSB7IHJldHVybjsgfVxuXG4gICAgLy8gdGhpcyBydWxlIGRvZXMgbm90IGFwcGx5IHRvIEwxIGNvbnN0cnVjdHNcbiAgICBpZiAoQ29yZVR5cGVzLmlzQ2ZuUmVzb3VyY2UoZS5jdHguY2xhc3NUeXBlKSkgeyByZXR1cm47IH1cblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgZS5jdHgucHJvcHNUeXBlLmFsbFByb3BlcnRpZXMpIHtcbiAgICAgIGNvbnN0IGZxbiA9IENvbnN0cnVjdFJlZmxlY3Rpb24uZ2V0RnFuRnJvbVR5cGVSZWYocHJvcGVydHkudHlwZSk7XG5cbiAgICAgIGNvbnN0IGZvdW5kID0gKGZxbiAmJiBlLmN0eC5zeXMudHJ5RmluZEZxbihmcW4pKTtcbiAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICBlLmFzc2VydCghKGZxbiA9PT0gZS5jdHguY29yZS50b2tlbkludGVyZmFjZUZxbiksIGAke2UuY3R4LnByb3BzRnFufS4ke3Byb3BlcnR5Lm5hbWV9YCk7XG4gICAgICB9XG4gICAgfVxuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtbm8tY2ZuLXR5cGVzJyxcbiAgbWVzc2FnZTogJ3Byb3BzIG11c3Qgbm90IGV4cG9zZSBMMSB0eXBlcyAodHlwZXMgd2hpY2ggc3RhcnQgd2l0aCBcIkNmblwiKScsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHgucHJvcHNUeXBlKSB7IHJldHVybjsgfVxuICAgIGlmICghZS5jdHguaGFzUHJvcHNBcmd1bWVudCkgeyByZXR1cm47IH1cblxuICAgIC8vIHRoaXMgcnVsZSBkb2VzIG5vdCBhcHBseSB0byBMMSBjb25zdHJ1Y3RzXG4gICAgaWYgKENvcmVUeXBlcy5pc0NmblJlc291cmNlKGUuY3R4LmNsYXNzVHlwZSkpIHsgcmV0dXJuOyB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIGUuY3R4LnByb3BzVHlwZS5vd25Qcm9wZXJ0aWVzKSB7XG4gICAgICBjb25zdCBmcW4gPSBDb25zdHJ1Y3RSZWZsZWN0aW9uLmdldEZxbkZyb21UeXBlUmVmKHByb3BlcnR5LnR5cGUpO1xuXG4gICAgICBjb25zdCBmb3VuZCA9IChmcW4gJiYgZS5jdHguc3lzLnRyeUZpbmRGcW4oZnFuKSk7XG4gICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgZS5hc3NlcnQoIWZvdW5kLm5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCdjZm4nKSwgYCR7ZS5jdHgucHJvcHNGcW59LiR7cHJvcGVydHkubmFtZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG59KTtcblxuY29uc3RydWN0TGludGVyLmFkZCh7XG4gIGNvZGU6ICdwcm9wcy1uby1hbnknLFxuICBtZXNzYWdlOiAncHJvcHMgbXVzdCBub3QgdXNlIFR5cGVzY3JpcHQgXCJhbnlcIiB0eXBlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5wcm9wc1R5cGUpIHsgcmV0dXJuOyB9XG4gICAgaWYgKCFlLmN0eC5oYXNQcm9wc0FyZ3VtZW50KSB7IHJldHVybjsgfVxuXG4gICAgLy8gdGhpcyBydWxlIGRvZXMgbm90IGFwcGx5IHRvIEwxIGNvbnN0cnVjdHNcbiAgICBpZiAoQ29yZVR5cGVzLmlzQ2ZuUmVzb3VyY2UoZS5jdHguY2xhc3NUeXBlKSkgeyByZXR1cm47IH1cblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgZS5jdHgucHJvcHNUeXBlLm93blByb3BlcnRpZXMpIHtcbiAgICAgIGUuYXNzZXJ0KCFwcm9wZXJ0eS50eXBlLmlzQW55LCBgJHtlLmN0eC5wcm9wc0Zxbn0uJHtwcm9wZXJ0eS5uYW1lfWApO1xuICAgIH1cbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBiYXNlQ29uc3RydWN0QWRkZW5kdW0oKTogc3RyaW5nIHtcbiAgaWYgKCFwcm9jZXNzLmVudi5BV1NMSU5UX0JBU0VfQ09OU1RSVUNUKSB7XG4gICAgcmV0dXJuICdJZiB0aGUgY29uc3RydWN0IGlzIHVzaW5nIHRoZSBcImNvbnN0cnVjdHNcIiBtb2R1bGUsIHNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgXCJBV1NMSU5UX0JBU0VfQ09OU1RSVUNUXCIgYW5kIHJlLXJ1bic7XG4gIH1cbiAgcmV0dXJuICcnO1xufSJdfQ==
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZDQUF5QztBQUN6QyxzQ0FBd0U7QUFFM0QsUUFBQSxlQUFlLEdBQUcsSUFBSSxlQUFNLENBQXNCLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVU7S0FDM0YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsc0JBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMxQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUV6RCxNQUFhLG1CQUFtQjtJQTRCRjtJQTFCckIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQTBCO1FBQ3hELE9BQU8sUUFBUSxDQUFDLFVBQVU7YUFDdkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsc0JBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUE4QjtRQUM1RCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4QixPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1FBQ2pDLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM3QixPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQy9CLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDckIsQ0FBQztJQUVlLEdBQUcsQ0FBUztJQUNaLFlBQVksQ0FBUztJQUNyQixRQUFRLENBQVM7SUFDakIsYUFB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QUcsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdkUsQ0FBQztJQUNILENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxTQUFTLHFCQUFxQjtJQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3hDLE9BQU8scUhBQXFILENBQUM7SUFDL0gsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IENvcmVUeXBlcyB9IGZyb20gJy4vY29yZS10eXBlcyc7XG5pbXBvcnQgeyBMaW50ZXIsIE1ldGhvZFNpZ25hdHVyZVBhcmFtZXRlckV4cGVjdGF0aW9uIH0gZnJvbSAnLi4vbGludGVyJztcblxuZXhwb3J0IGNvbnN0IGNvbnN0cnVjdExpbnRlciA9IG5ldyBMaW50ZXI8Q29uc3RydWN0UmVmbGVjdGlvbj4oYXNzZW1ibHkgPT4gYXNzZW1ibHkuYWxsQ2xhc3Nlc1xuICAuZmlsdGVyKHQgPT4gQ29yZVR5cGVzLmlzQ29uc3RydWN0Q2xhc3ModCkpXG4gIC5tYXAoY29uc3RydWN0ID0+IG5ldyBDb25zdHJ1Y3RSZWZsZWN0aW9uKGNvbnN0cnVjdCkpKTtcblxuZXhwb3J0IGNsYXNzIENvbnN0cnVjdFJlZmxlY3Rpb24ge1xuXG4gIHB1YmxpYyBzdGF0aWMgZmluZEFsbENvbnN0cnVjdHMoYXNzZW1ibHk6IHJlZmxlY3QuQXNzZW1ibHkpIHtcbiAgICByZXR1cm4gYXNzZW1ibHkuYWxsQ2xhc3Nlc1xuICAgICAgLmZpbHRlcihjID0+IENvcmVUeXBlcy5pc0NvbnN0cnVjdENsYXNzKGMpKVxuICAgICAgLm1hcChjID0+IG5ldyBDb25zdHJ1Y3RSZWZsZWN0aW9uKGMpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RnFuRnJvbVR5cGVSZWYodHlwZVJlZjogcmVmbGVjdC5UeXBlUmVmZXJlbmNlKSB7XG4gICAgaWYgKHR5cGVSZWYuYXJyYXlPZlR5cGUpIHtcbiAgICAgIHJldHVybiB0eXBlUmVmLmFycmF5T2ZUeXBlLmZxbjtcbiAgICB9IGVsc2UgaWYgKHR5cGVSZWYubWFwT2ZUeXBlKSB7XG4gICAgICByZXR1cm4gdHlwZVJlZi5tYXBPZlR5cGUuZnFuO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlUmVmLmZxbjtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBmcW46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGludGVyZmFjZUZxbjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcHNGcW46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGludGVyZmFjZVR5cGU/OiByZWZsZWN0LkludGVyZmFjZVR5cGU7XG4gIHB1YmxpYyByZWFkb25seSBwcm9wc1R5cGU/OiByZWZsZWN0LkludGVyZmFjZVR5cGU7XG4gIHB1YmxpYyByZWFkb25seSBpbml0aWFsaXplcj86IHJlZmxlY3QuSW5pdGlhbGl6ZXI7XG4gIHB1YmxpYyByZWFkb25seSBoYXNQcm9wc0FyZ3VtZW50OiBib29sZWFuO1xuICBwdWJsaWMgcmVhZG9ubHkgc3lzOiByZWZsZWN0LlR5cGVTeXN0ZW07XG4gIHB1YmxpYyByZWFkb25seSBjb3JlOiBDb3JlVHlwZXM7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNsYXNzVHlwZTogcmVmbGVjdC5DbGFzc1R5cGUpIHtcbiAgICB0aGlzLmZxbiA9IGNsYXNzVHlwZS5mcW47XG4gICAgdGhpcy5zeXMgPSBjbGFzc1R5cGUuc3lzdGVtO1xuICAgIHRoaXMuY29yZSA9IG5ldyBDb3JlVHlwZXModGhpcy5zeXMpO1xuICAgIHRoaXMuaW50ZXJmYWNlRnFuID0gYCR7dGhpcy50eXBlUHJlZml4KGNsYXNzVHlwZSl9Lkkke2NsYXNzVHlwZS5uYW1lfWA7XG4gICAgdGhpcy5wcm9wc0ZxbiA9IGAke3RoaXMudHlwZVByZWZpeChjbGFzc1R5cGUpfS4ke2NsYXNzVHlwZS5uYW1lfVByb3BzYDtcbiAgICB0aGlzLmludGVyZmFjZVR5cGUgPSB0aGlzLnRyeUZpbmRJbnRlcmZhY2UoKTtcbiAgICB0aGlzLnByb3BzVHlwZSA9IHRoaXMudHJ5RmluZFByb3BzKCk7XG4gICAgdGhpcy5pbml0aWFsaXplciA9IGNsYXNzVHlwZS5pbml0aWFsaXplcjtcbiAgICB0aGlzLmhhc1Byb3BzQXJndW1lbnQgPSB0aGlzLmluaXRpYWxpemVyICE9IG51bGwgJiYgdGhpcy5pbml0aWFsaXplci5wYXJhbWV0ZXJzLmxlbmd0aCA+PSAzO1xuICB9XG5cbiAgcHJpdmF0ZSB0eXBlUHJlZml4KGNsYXNzVHlwZTogcmVmbGVjdC5DbGFzc1R5cGUpIHtcbiAgICByZXR1cm4gY2xhc3NUeXBlLmFzc2VtYmx5Lm5hbWUgKyAoY2xhc3NUeXBlLm5hbWVzcGFjZSA/IGAuJHtjbGFzc1R5cGUubmFtZXNwYWNlfWAgOiAnJyk7XG4gIH1cblxuICBwcml2YXRlIHRyeUZpbmRJbnRlcmZhY2UoKSB7XG4gICAgY29uc3Qgc3lzID0gdGhpcy5jbGFzc1R5cGUuc3lzdGVtO1xuICAgIGNvbnN0IGZvdW5kID0gc3lzLnRyeUZpbmRGcW4odGhpcy5pbnRlcmZhY2VGcW4pO1xuICAgIGlmICghZm91bmQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKCFmb3VuZC5pc0ludGVyZmFjZVR5cGUoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RpbmcgdHlwZSAke3RoaXMuaW50ZXJmYWNlRnFufSB0byBiZSBhbiBpbnRlcmZhY2VgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm91bmQ7XG4gIH1cblxuICBwcml2YXRlIHRyeUZpbmRQcm9wcygpIHtcbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuc3lzLnRyeUZpbmRGcW4odGhpcy5wcm9wc0Zxbik7XG4gICAgaWYgKCFmb3VuZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoIWZvdW5kLmlzSW50ZXJmYWNlVHlwZSgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGluZyBwcm9wcyBzdHJ1Y3QgJHt0aGlzLnByb3BzRnFufSB0byBiZSBhbiBpbnRlcmZhY2VgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm91bmQ7XG4gIH1cbn1cblxuY29uc3RydWN0TGludGVyLmFkZCh7XG4gIGNvZGU6ICdjb25zdHJ1Y3QtY3RvcicsXG4gIG1lc3NhZ2U6ICdzaWduYXR1cmUgb2YgYWxsIGNvbnN0cnVjdCBjb25zdHJ1Y3RvcnMgc2hvdWxkIGJlIFwic2NvcGUsIGlkLCBwcm9wc1wiLiAnICsgYmFzZUNvbnN0cnVjdEFkZGVuZHVtKCksXG4gIGV2YWw6IGUgPT4ge1xuICAgIC8vIG9ubHkgYXBwbGllcyB0byBub24gYWJzdHJhY3QgY2xhc3Nlc1xuICAgIGlmIChlLmN0eC5jbGFzc1R5cGUuYWJzdHJhY3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbml0aWFsaXplciA9IGUuY3R4LmluaXRpYWxpemVyO1xuICAgIGlmICghZS5hc3NlcnQoaW5pdGlhbGl6ZXIsIGUuY3R4LmZxbikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBleHBlY3RlZFBhcmFtcyA9IG5ldyBBcnJheTxNZXRob2RTaWduYXR1cmVQYXJhbWV0ZXJFeHBlY3RhdGlvbj4oKTtcbiAgICBleHBlY3RlZFBhcmFtcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdzY29wZScsXG4gICAgICB0eXBlOiBlLmN0eC5jb3JlLmJhc2VDb25zdHJ1Y3RDbGFzc0ZxbixcbiAgICB9KTtcblxuICAgIGV4cGVjdGVkUGFyYW1zLnB1c2goe1xuICAgICAgbmFtZTogJ2lkJyxcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0pO1xuXG4gICAgLy8gaXQncyBva2F5IGZvciBhIGNvbnN0cnVjdCBub3QgdG8gaGF2ZSBhIFwicHJvcHNcIiBhcmd1bWVudCBzbyB3ZSBvbmx5XG4gICAgLy8gYXNzZXJ0IHRoZSBcInByb3BzXCIgYXJndW1lbnQgaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiB0d28gcGFyYW1ldGVyc1xuICAgIGlmIChpbml0aWFsaXplci5wYXJhbWV0ZXJzLmxlbmd0aCA+IDIpIHtcbiAgICAgIGV4cGVjdGVkUGFyYW1zLnB1c2goe1xuICAgICAgICBuYW1lOiAncHJvcHMnLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZS5hc3NlcnRTaWduYXR1cmUoaW5pdGlhbGl6ZXIsIHtcbiAgICAgIHBhcmFtZXRlcnM6IGV4cGVjdGVkUGFyYW1zLFxuICAgIH0pO1xuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtc3RydWN0LW5hbWUnLFxuICBtZXNzYWdlOiAnYWxsIGNvbnN0cnVjdHMgbXVzdCBoYXZlIGEgcHJvcHMgc3RydWN0JyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5oYXNQcm9wc0FyZ3VtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gYWJzdHJhY3QgY2xhc3NlcyBhcmUgZXhlbXB0XG4gICAgaWYgKGUuY3R4LmNsYXNzVHlwZS5hYnN0cmFjdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGUuYXNzZXJ0KGUuY3R4LnByb3BzVHlwZSwgZS5jdHguaW50ZXJmYWNlRnFuKTtcbiAgfSxcbn0pO1xuXG5jb25zdHJ1Y3RMaW50ZXIuYWRkKHtcbiAgY29kZTogJ2NvbnN0cnVjdC1jdG9yLXByb3BzLXR5cGUnLFxuICBtZXNzYWdlOiAnY29uc3RydWN0IFwicHJvcHNcIiB0eXBlIHNob3VsZCB1c2UgdGhlIHByb3BzIHN0cnVjdCAlcycsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHguaW5pdGlhbGl6ZXIpIHsgcmV0dXJuOyB9XG4gICAgaWYgKGUuY3R4LmluaXRpYWxpemVyLnBhcmFtZXRlcnMubGVuZ3RoIDwgMykgeyByZXR1cm47IH1cblxuICAgIGUuYXNzZXJ0KFxuICAgICAgZS5jdHguaW5pdGlhbGl6ZXIucGFyYW1ldGVyc1syXS50eXBlLnR5cGUgPT09IGUuY3R4LnByb3BzVHlwZSxcbiAgICAgIGUuY3R4LmZxbixcbiAgICAgIGUuY3R4LnByb3BzRnFuKTtcbiAgfSxcbn0pO1xuXG5jb25zdHJ1Y3RMaW50ZXIuYWRkKHtcbiAgY29kZTogJ2NvbnN0cnVjdC1jdG9yLXByb3BzLW9wdGlvbmFsJyxcbiAgbWVzc2FnZTogJ2NvbnN0cnVjdCBcInByb3BzXCIgbXVzdCBiZSBvcHRpb25hbCBzaW5jZSBhbGwgcHJvcHMgYXJlIG9wdGlvbmFsJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5wcm9wc1R5cGUpIHsgcmV0dXJuOyB9XG4gICAgaWYgKCFlLmN0eC5pbml0aWFsaXplcikgeyByZXR1cm47IH1cbiAgICBpZiAoIWUuY3R4Lmhhc1Byb3BzQXJndW1lbnQpIHsgcmV0dXJuOyB9XG5cbiAgICAvLyB0aGlzIHJ1bGUgYXBwbGllcyBvbmx5IGlmIGFsbCBwcm9wZXJ0aWVzIGFyZSBvcHRpb25hbFxuICAgIGNvbnN0IGFsbE9wdGlvbmFsID0gZS5jdHgucHJvcHNUeXBlLmFsbFByb3BlcnRpZXMuZXZlcnkocCA9PiBwLm9wdGlvbmFsKTtcbiAgICBpZiAoIWFsbE9wdGlvbmFsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZS5hc3NlcnQoZS5jdHguaW5pdGlhbGl6ZXIucGFyYW1ldGVyc1syXS5vcHRpb25hbCwgZS5jdHguZnFuKTtcbiAgfSxcbn0pO1xuXG5jb25zdHJ1Y3RMaW50ZXIuYWRkKHtcbiAgY29kZTogJ2NvbnN0cnVjdC1pbnRlcmZhY2UtZXh0ZW5kcy1pY29uc3RydWN0JyxcbiAgbWVzc2FnZTogJ2NvbnN0cnVjdCBpbnRlcmZhY2UgbXVzdCBleHRlbmQgY29yZS5JQ29uc3RydWN0JyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5pbnRlcmZhY2VUeXBlKSB7IHJldHVybjsgfVxuICAgIGNvbnN0IGludGVyZmFjZUJhc2UgPSBlLmN0eC5zeXMuZmluZEludGVyZmFjZShlLmN0eC5jb3JlLmJhc2VDb25zdHJ1Y3RJbnRlcmZhY2VGcW4pO1xuICAgIGUuYXNzZXJ0KGUuY3R4LmludGVyZmFjZVR5cGUuZXh0ZW5kcyhpbnRlcmZhY2VCYXNlKSwgZS5jdHguaW50ZXJmYWNlVHlwZS5mcW4pO1xuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAnY29uc3RydWN0LWJhc2UtaXMtcHJpdmF0ZScsXG4gIG1lc3NhZ2U6ICdwcmVmZXIgdGhhdCB0aGUgY29uc3RydWN0IGJhc2UgY2xhc3MgaXMgcHJpdmF0ZScsXG4gIHdhcm5pbmc6IHRydWUsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHguaW50ZXJmYWNlVHlwZSkgeyByZXR1cm47IH1cbiAgICBjb25zdCBiYXNlRnFuID0gYCR7ZS5jdHguY2xhc3NUeXBlLmZxbn1CYXNlYDtcbiAgICBlLmFzc2VydCghZS5jdHguc3lzLnRyeUZpbmRGcW4oYmFzZUZxbiksIGJhc2VGcW4pO1xuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtbm8tdW5pb25zJyxcbiAgbWVzc2FnZTogJ3Byb3BzIG11c3Qgbm90IHVzZSBUeXBlU2NyaXB0IHVuaW9ucycsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHgucHJvcHNUeXBlKSB7IHJldHVybjsgfVxuICAgIGlmICghZS5jdHguaGFzUHJvcHNBcmd1bWVudCkgeyByZXR1cm47IH1cblxuICAgIC8vIHRoaXMgcnVsZSBkb2VzIG5vdCBhcHBseSB0byBMMSBjb25zdHJ1Y3RzXG4gICAgaWYgKENvcmVUeXBlcy5pc0NmblJlc291cmNlKGUuY3R4LmNsYXNzVHlwZSkpIHsgcmV0dXJuOyB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIGUuY3R4LnByb3BzVHlwZS5vd25Qcm9wZXJ0aWVzKSB7XG4gICAgICBlLmFzc2VydCghcHJvcGVydHkudHlwZS51bmlvbk9mVHlwZXMsIGAke2UuY3R4LnByb3BzRnFufS4ke3Byb3BlcnR5Lm5hbWV9YCk7XG4gICAgfVxuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtbm8tYXJuLXJlZnMnLFxuICBtZXNzYWdlOiAncHJvcHMgbXVzdCB1c2Ugc3Ryb25nIHR5cGVzIGluc3RlYWQgb2YgYXR0cmlidXRlcy4gcHJvcHMgc2hvdWxkIG5vdCBoYXZlIFwiYXJuXCIgc3VmZml4JyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5wcm9wc1R5cGUpIHsgcmV0dXJuOyB9XG4gICAgaWYgKCFlLmN0eC5oYXNQcm9wc0FyZ3VtZW50KSB7IHJldHVybjsgfVxuXG4gICAgLy8gdGhpcyBydWxlIGRvZXMgbm90IGFwcGx5IHRvIEwxIGNvbnN0cnVjdHNcbiAgICBpZiAoQ29yZVR5cGVzLmlzQ2ZuUmVzb3VyY2UoZS5jdHguY2xhc3NUeXBlKSkgeyByZXR1cm47IH1cblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgZS5jdHgucHJvcHNUeXBlLm93blByb3BlcnRpZXMpIHtcbiAgICAgIGUuYXNzZXJ0KCFwcm9wZXJ0eS5uYW1lLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoJ2FybicpLCBgJHtlLmN0eC5wcm9wc0Zxbn0uJHtwcm9wZXJ0eS5uYW1lfWApO1xuICAgIH1cbiAgfSxcbn0pO1xuXG5jb25zdHJ1Y3RMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Byb3BzLW5vLXRva2VucycsXG4gIG1lc3NhZ2U6ICdwcm9wcyBtdXN0IG5vdCB1c2UgdGhlIFwiVG9rZW5cIiB0eXBlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5wcm9wc1R5cGUpIHsgcmV0dXJuOyB9XG4gICAgaWYgKCFlLmN0eC5oYXNQcm9wc0FyZ3VtZW50KSB7IHJldHVybjsgfVxuXG4gICAgLy8gdGhpcyBydWxlIGRvZXMgbm90IGFwcGx5IHRvIEwxIGNvbnN0cnVjdHNcbiAgICBpZiAoQ29yZVR5cGVzLmlzQ2ZuUmVzb3VyY2UoZS5jdHguY2xhc3NUeXBlKSkgeyByZXR1cm47IH1cblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgZS5jdHgucHJvcHNUeXBlLmFsbFByb3BlcnRpZXMpIHtcbiAgICAgIGNvbnN0IGZxbiA9IENvbnN0cnVjdFJlZmxlY3Rpb24uZ2V0RnFuRnJvbVR5cGVSZWYocHJvcGVydHkudHlwZSk7XG5cbiAgICAgIGNvbnN0IGZvdW5kID0gKGZxbiAmJiBlLmN0eC5zeXMudHJ5RmluZEZxbihmcW4pKTtcbiAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICBlLmFzc2VydCghKGZxbiA9PT0gZS5jdHguY29yZS50b2tlbkludGVyZmFjZUZxbiksIGAke2UuY3R4LnByb3BzRnFufS4ke3Byb3BlcnR5Lm5hbWV9YCk7XG4gICAgICB9XG4gICAgfVxuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtbm8tY2ZuLXR5cGVzJyxcbiAgbWVzc2FnZTogJ3Byb3BzIG11c3Qgbm90IGV4cG9zZSBMMSB0eXBlcyAodHlwZXMgd2hpY2ggc3RhcnQgd2l0aCBcIkNmblwiKScsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHgucHJvcHNUeXBlKSB7IHJldHVybjsgfVxuICAgIGlmICghZS5jdHguaGFzUHJvcHNBcmd1bWVudCkgeyByZXR1cm47IH1cblxuICAgIC8vIHRoaXMgcnVsZSBkb2VzIG5vdCBhcHBseSB0byBMMSBjb25zdHJ1Y3RzXG4gICAgaWYgKENvcmVUeXBlcy5pc0NmblJlc291cmNlKGUuY3R4LmNsYXNzVHlwZSkpIHsgcmV0dXJuOyB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIGUuY3R4LnByb3BzVHlwZS5vd25Qcm9wZXJ0aWVzKSB7XG4gICAgICBjb25zdCBmcW4gPSBDb25zdHJ1Y3RSZWZsZWN0aW9uLmdldEZxbkZyb21UeXBlUmVmKHByb3BlcnR5LnR5cGUpO1xuXG4gICAgICBjb25zdCBmb3VuZCA9IChmcW4gJiYgZS5jdHguc3lzLnRyeUZpbmRGcW4oZnFuKSk7XG4gICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgZS5hc3NlcnQoIWZvdW5kLm5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCdjZm4nKSwgYCR7ZS5jdHgucHJvcHNGcW59LiR7cHJvcGVydHkubmFtZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG59KTtcblxuY29uc3RydWN0TGludGVyLmFkZCh7XG4gIGNvZGU6ICdwcm9wcy1uby1hbnknLFxuICBtZXNzYWdlOiAncHJvcHMgbXVzdCBub3QgdXNlIFR5cGVzY3JpcHQgXCJhbnlcIiB0eXBlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5wcm9wc1R5cGUpIHsgcmV0dXJuOyB9XG4gICAgaWYgKCFlLmN0eC5oYXNQcm9wc0FyZ3VtZW50KSB7IHJldHVybjsgfVxuXG4gICAgLy8gdGhpcyBydWxlIGRvZXMgbm90IGFwcGx5IHRvIEwxIGNvbnN0cnVjdHNcbiAgICBpZiAoQ29yZVR5cGVzLmlzQ2ZuUmVzb3VyY2UoZS5jdHguY2xhc3NUeXBlKSkgeyByZXR1cm47IH1cblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgZS5jdHgucHJvcHNUeXBlLm93blByb3BlcnRpZXMpIHtcbiAgICAgIGUuYXNzZXJ0KCFwcm9wZXJ0eS50eXBlLmlzQW55LCBgJHtlLmN0eC5wcm9wc0Zxbn0uJHtwcm9wZXJ0eS5uYW1lfWApO1xuICAgIH1cbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBiYXNlQ29uc3RydWN0QWRkZW5kdW0oKTogc3RyaW5nIHtcbiAgaWYgKCFwcm9jZXNzLmVudi5BV1NMSU5UX0JBU0VfQ09OU1RSVUNUKSB7XG4gICAgcmV0dXJuICdJZiB0aGUgY29uc3RydWN0IGlzIHVzaW5nIHRoZSBcImNvbnN0cnVjdHNcIiBtb2R1bGUsIHNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgXCJBV1NMSU5UX0JBU0VfQ09OU1RSVUNUXCIgYW5kIHJlLXJ1bic7XG4gIH1cbiAgcmV0dXJuICcnO1xufSJdfQ==
|
package/lib/rules/core-types.js
CHANGED
|
@@ -155,6 +155,7 @@ class CoreTypes {
|
|
|
155
155
|
get physicalNameClass() {
|
|
156
156
|
return this.sys.findClass(CoreTypesFqn.PhysicalName);
|
|
157
157
|
}
|
|
158
|
+
sys;
|
|
158
159
|
constructor(sys) {
|
|
159
160
|
this.sys = sys;
|
|
160
161
|
if (!sys.includesAssembly(CORE_MODULE)) {
|
|
@@ -164,4 +165,4 @@ class CoreTypes {
|
|
|
164
165
|
}
|
|
165
166
|
}
|
|
166
167
|
exports.CoreTypes = CoreTypes;
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvcmUtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUNBQW1DO0FBRW5DLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztBQUNsQyxJQUFLLFlBU0o7QUFURCxXQUFLLFlBQVk7SUFDZix1REFBdUMsQ0FBQTtJQUN2QyxpREFBaUMsQ0FBQTtJQUNqQywyREFBMkMsQ0FBQTtJQUMzQywrREFBK0MsQ0FBQTtJQUMvQyx5REFBeUMsQ0FBQTtJQUV6QyxrREFBa0MsQ0FBQTtJQUNsQyw0REFBNEMsQ0FBQTtBQUM5QyxDQUFDLEVBVEksWUFBWSxLQUFaLFlBQVksUUFTaEI7QUFFRCxNQUFhLFNBQVM7SUFFcEI7O09BRUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQTBCO1FBQ3BELE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQW9CO1FBQzlDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDNUMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUNqQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFvQjtRQUNqRCxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQzVDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUNyQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNmLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsZUFBZSxDQUFDLFNBQTRCO1FBQ3hELE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2RSxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksSUFBQSxnQkFBUyxFQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsZUFBZSxDQUFDLGFBQTJCO1FBQ3ZELE9BQU8sYUFBYSxDQUFDLGFBQWEsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQTJCO1FBQ2pELE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO2VBQ3RDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztlQUNuQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekUscUNBQXFDO2VBQ2xDLENBQUMsYUFBYSxDQUFDLFNBQVMsSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLHFCQUFxQjtRQUM5QixPQUFPLFlBQVksQ0FBQyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsc0JBQXNCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyx5QkFBeUI7UUFDbEMsT0FBTyxZQUFZLENBQUMsa0JBQWtCLENBQUM7SUFDekMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxZQUFZLENBQUMsaUJBQWlCLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxZQUFZLENBQUMsbUJBQW1CLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFJRCxZQUFZLEdBQXVCO1FBQ2pDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLHFCQUFxQjtZQUNyQixPQUFPO1FBQ1QsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWxMRCw4QkFrTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBnZXREb2NUYWcgfSBmcm9tICcuL3V0aWwnO1xuXG5jb25zdCBDT1JFX01PRFVMRSA9ICdhd3MtY2RrLWxpYic7XG5lbnVtIENvcmVUeXBlc0ZxbiB7XG4gIENmblJlc291cmNlID0gJ2F3cy1jZGstbGliLkNmblJlc291cmNlJyxcbiAgUmVzb3VyY2UgPSAnYXdzLWNkay1saWIuUmVzb3VyY2UnLFxuICBSZXNvdXJjZUludGVyZmFjZSA9ICdhd3MtY2RrLWxpYi5JUmVzb3VyY2UnLFxuICBSZXNvbHZhYmxlSW50ZXJmYWNlID0gJ2F3cy1jZGstbGliLklSZXNvbHZhYmxlJyxcbiAgUGh5c2ljYWxOYW1lID0gJ2F3cy1jZGstbGliLlBoeXNpY2FsTmFtZScsXG5cbiAgQ29uc3RydWN0ID0gJ2NvbnN0cnVjdHMuQ29uc3RydWN0JyxcbiAgQ29uc3RydWN0SW50ZXJmYWNlID0gJ2NvbnN0cnVjdHMuSUNvbnN0cnVjdCcsXG59XG5cbmV4cG9ydCBjbGFzcyBDb3JlVHlwZXMge1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB0cnVlIGlmIGFzc2VtYmx5IGhhcyB0aGUgQ29yZSBtb2R1bGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaGFzQ29yZU1vZHVsZShhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseSkge1xuICAgIHJldHVybiAoIWFzc2VtYmx5LnN5c3RlbS5hc3NlbWJsaWVzLmZpbmQoYSA9PiBhLm5hbWUgPT09IENPUkVfTU9EVUxFKSk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBgY2xhc3NUeXBlYCByZXByZXNlbnRzIGFuIEwxIENmbiBSZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0NmblJlc291cmNlKGM6IHJlZmxlY3QuQ2xhc3NUeXBlKSB7XG4gICAgaWYgKCFjLnN5c3RlbS5pbmNsdWRlc0Fzc2VtYmx5KENPUkVfTU9EVUxFKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIHNraXAgQ2ZuUmVzb3VyY2UgaXRzZWxmXG4gICAgaWYgKGMuZnFuID09PSBDb3JlVHlwZXNGcW4uQ2ZuUmVzb3VyY2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaXNDb25zdHJ1Y3RDbGFzcyhjKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGNmblJlc291cmNlQ2xhc3MgPSBjLnN5c3RlbS5maW5kRnFuKENvcmVUeXBlc0Zxbi5DZm5SZXNvdXJjZSk7XG4gICAgaWYgKCFjLmV4dGVuZHMoY2ZuUmVzb3VyY2VDbGFzcykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gYy5uYW1lLnN0YXJ0c1dpdGgoJ0NmbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHRydWUgaWYgYGNsYXNzVHlwZWAgcmVwcmVzZW50cyBhIENvbnN0cnVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0NvbnN0cnVjdENsYXNzKGM6IHJlZmxlY3QuQ2xhc3NUeXBlKSB7XG4gICAgaWYgKCFjLnN5c3RlbS5pbmNsdWRlc0Fzc2VtYmx5KENPUkVfTU9EVUxFKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghYy5pc0NsYXNzVHlwZSgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGMuYWJzdHJhY3QpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gYy5leHRlbmRzKGMuc3lzdGVtLmZpbmRGcW4oQ29yZVR5cGVzRnFuLkNvbnN0cnVjdCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHRydWUgaWYgYGNsYXNzVHlwZWAgcmVwcmVzZW50cyBhbiBBV1MgcmVzb3VyY2UgKGkuZS4gZXh0ZW5kcyBgY2RrLlJlc291cmNlYCkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzUmVzb3VyY2VDbGFzcyhjbGFzc1R5cGU6IHJlZmxlY3QuQ2xhc3NUeXBlKSB7XG4gICAgY29uc3QgYmFzZVJlc291cmNlID0gY2xhc3NUeXBlLnN5c3RlbS5maW5kQ2xhc3MoQ29yZVR5cGVzRnFuLlJlc291cmNlKTtcbiAgICByZXR1cm4gY2xhc3NUeXBlLmV4dGVuZHMoYmFzZVJlc291cmNlKSB8fCBnZXREb2NUYWcoY2xhc3NUeXBlLCAncmVzb3VyY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgbmVzdGluZyBwYXJlbnQgb2YgdGhlIGdpdmVuIGludGVyZmFjZSBpcyBhIENGTiBjbGFzc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0Nmbk5lc3RlZFR5cGUoaW50ZXJmYWNlVHlwZTogcmVmbGVjdC5UeXBlKSB7XG4gICAgcmV0dXJuIGludGVyZmFjZVR5cGUubmVzdGluZ1BhcmVudCAmJiBDb3JlVHlwZXMuaXNDZm5UeXBlKGludGVyZmFjZVR5cGUubmVzdGluZ1BhcmVudCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGludGVyZmFjZSB0eXBlIGlzIGEgQ0ZOIGNsYXNzLCBwcm9wIHR5cGUgb3IgaW50ZXJmYWNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQ2ZuVHlwZShpbnRlcmZhY2VUeXBlOiByZWZsZWN0LlR5cGUpIHtcbiAgICByZXR1cm4gaW50ZXJmYWNlVHlwZS5uYW1lLnN0YXJ0c1dpdGgoJ0NmbicpXG4gICAgICB8fCAvXklcXHcrUmVmLy50ZXN0KGludGVyZmFjZVR5cGUubmFtZSlcbiAgICAgIHx8IChpbnRlcmZhY2VUeXBlLm5hbWVzcGFjZSAmJiBpbnRlcmZhY2VUeXBlLm5hbWVzcGFjZS5zdGFydHNXaXRoKCdDZm4nKSlcbiAgICAgIC8vIGF3c19zZXJ2aWNlLkNmblRoZVJlc291cmNlLlN1YlR5cGVcbiAgICAgIHx8IChpbnRlcmZhY2VUeXBlLm5hbWVzcGFjZSAmJiBpbnRlcmZhY2VUeXBlLm5hbWVzcGFjZS5zcGxpdCgnLicsIDIpLmF0KDEpPy5zdGFydHNXaXRoKCdDZm4nKSk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgYGNsYXNzVHlwZWAgZm9yIHRoZSBjb3JlIHR5cGUgQ29uc3RydWN0XG4gICAqIEBkZXByZWNhdGVkIC0gdXNlIGBiYXNlQ29uc3RydWN0Q2xhc3MoKWBcbiAgICovXG4gIHB1YmxpYyBnZXQgY29uc3RydWN0Q2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUNvbnN0cnVjdENsYXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGBjbGFzc1R5cGVgIGZvciB0aGUgY29yZSB0eXBlIENvbnN0cnVjdFxuICAgKi9cbiAgcHVibGljIGdldCBiYXNlQ29uc3RydWN0Q2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3lzLmZpbmRDbGFzcyh0aGlzLmJhc2VDb25zdHJ1Y3RDbGFzc0Zxbik7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgYGNsYXNzVHlwZWAgZm9yIHRoZSBjb3JlIHR5cGUgQ29uc3RydWN0XG4gICAqL1xuICBwdWJsaWMgZ2V0IGJhc2VDb25zdHJ1Y3RDbGFzc0ZxbigpIHtcbiAgICByZXR1cm4gQ29yZVR5cGVzRnFuLkNvbnN0cnVjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBgaW50ZXJmYWNldHlwZWAgZm9yIHRoZSBjb3JlIHR5cGUgQ29uc3RydWN0XG4gICAqIEBkZXByZWNhdGVkIC0gdXNlIGBiYXNlQ29uc3RydWN0SW50ZXJmYWNlKClgXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbnN0cnVjdEludGVyZmFjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iYXNlQ29uc3RydWN0SW50ZXJmYWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGBpbnRlcmZhY2V0eXBlYCBmb3IgdGhlIGNvcmUgdHlwZSBDb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBnZXQgYmFzZUNvbnN0cnVjdEludGVyZmFjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zeXMuZmluZEludGVyZmFjZSh0aGlzLmJhc2VDb25zdHJ1Y3RJbnRlcmZhY2VGcW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGZxbiBmb3IgZm9yIHRoZSBjb3JlIENvbnN0cnVjdCBpbnRlcmZhY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgYmFzZUNvbnN0cnVjdEludGVyZmFjZUZxbigpIHtcbiAgICByZXR1cm4gQ29yZVR5cGVzRnFuLkNvbnN0cnVjdEludGVyZmFjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBgY2xhc3NUeXBlYCBmb3IgdGhlIGNvcmUgdHlwZSBSZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIGdldCByZXNvdXJjZUNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLnN5cy5maW5kQ2xhc3ModGhpcy5yZXNvdXJjZUNsYXNzRnFuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBmcW4gZm9yIHRoZSBjb3JlIHR5cGUgUmVzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2VDbGFzc0ZxbigpIHtcbiAgICByZXR1cm4gQ29yZVR5cGVzRnFuLlJlc291cmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGZxbiBmb3IgdGhlIGNvcmUgUmVzb3VyY2UgaW50ZXJmYWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlc291cmNlSW50ZXJmYWNlKCkge1xuICAgIHJldHVybiB0aGlzLnN5cy5maW5kSW50ZXJmYWNlKHRoaXMucmVzb3VyY2VJbnRlcmZhY2VGcW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGBpbnRlcmZhY2VUeXBlYCBmb3IgdGhlIGNvcmUgdHlwZSBSZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIGdldCByZXNvdXJjZUludGVyZmFjZUZxbigpIHtcbiAgICByZXR1cm4gQ29yZVR5cGVzRnFuLlJlc291cmNlSW50ZXJmYWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGBjbGFzc1R5cGVgIGZvciB0aGUgY29yZSB0eXBlIFRva2VuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRva2VuSW50ZXJmYWNlKCkge1xuICAgIHJldHVybiB0aGlzLnN5cy5maW5kSW50ZXJmYWNlKHRoaXMudG9rZW5JbnRlcmZhY2VGcW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGZxbiBmb3IgdGhlIGNvcmUgdHlwZSBUb2tlblxuICAgKi9cbiAgcHVibGljIGdldCB0b2tlbkludGVyZmFjZUZxbigpIHtcbiAgICByZXR1cm4gQ29yZVR5cGVzRnFuLlJlc29sdmFibGVJbnRlcmZhY2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBoeXNpY2FsTmFtZUNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLnN5cy5maW5kQ2xhc3MoQ29yZVR5cGVzRnFuLlBoeXNpY2FsTmFtZSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHN5czogcmVmbGVjdC5UeXBlU3lzdGVtO1xuXG4gIGNvbnN0cnVjdG9yKHN5czogcmVmbGVjdC5UeXBlU3lzdGVtKSB7XG4gICAgdGhpcy5zeXMgPSBzeXM7XG4gICAgaWYgKCFzeXMuaW5jbHVkZXNBc3NlbWJseShDT1JFX01PRFVMRSkpIHtcbiAgICAgIC8vIGRpc2FibGUtYWxsLWNoZWNrc1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvcmUtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUNBQW1DO0FBRW5DLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztBQUNsQyxJQUFLLFlBU0o7QUFURCxXQUFLLFlBQVk7SUFDZix1REFBdUMsQ0FBQTtJQUN2QyxpREFBaUMsQ0FBQTtJQUNqQywyREFBMkMsQ0FBQTtJQUMzQywrREFBK0MsQ0FBQTtJQUMvQyx5REFBeUMsQ0FBQTtJQUV6QyxrREFBa0MsQ0FBQTtJQUNsQyw0REFBNEMsQ0FBQTtBQUM5QyxDQUFDLEVBVEksWUFBWSxLQUFaLFlBQVksUUFTaEI7QUFFRCxNQUFhLFNBQVM7SUFFcEI7O09BRUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQTBCO1FBQ3BELE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQW9CO1FBQzlDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDNUMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FB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QztJQUVEOztPQUVHO0lBQ0gsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxZQUFZLENBQUMsaUJBQWlCLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxZQUFZLENBQUMsbUJBQW1CLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFZ0IsR0FBRyxDQUFxQjtJQUV6QyxZQUFZLEdBQXVCO1FBQ2pDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLHFCQUFxQjtZQUNyQixPQUFPO1FBQ1QsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWxMRCw4QkFrTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBnZXREb2NUYWcgfSBmcm9tICcuL3V0aWwnO1xuXG5jb25zdCBDT1JFX01PRFVMRSA9ICdhd3MtY2RrLWxpYic7XG5lbnVtIENvcmVUeXBlc0ZxbiB7XG4gIENmblJlc291cmNlID0gJ2F3cy1jZGstbGliLkNmblJlc291cmNlJyxcbiAgUmVzb3VyY2UgPSAnYXdzLWNkay1saWIuUmVzb3VyY2UnLFxuICBSZXNvdXJjZUludGVyZmFjZSA9ICdhd3MtY2RrLWxpYi5JUmVzb3VyY2UnLFxuICBSZXNvbHZhYmxlSW50ZXJmYWNlID0gJ2F3cy1jZGstbGliLklSZXNvbHZhYmxlJyxcbiAgUGh5c2ljYWxOYW1lID0gJ2F3cy1jZGstbGliLlBoeXNpY2FsTmFtZScsXG5cbiAgQ29uc3RydWN0ID0gJ2NvbnN0cnVjdHMuQ29uc3RydWN0JyxcbiAgQ29uc3RydWN0SW50ZXJmYWNlID0gJ2NvbnN0cnVjdHMuSUNvbnN0cnVjdCcsXG59XG5cbmV4cG9ydCBjbGFzcyBDb3JlVHlwZXMge1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB0cnVlIGlmIGFzc2VtYmx5IGhhcyB0aGUgQ29yZSBtb2R1bGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaGFzQ29yZU1vZHVsZShhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseSkge1xuICAgIHJldHVybiAoIWFzc2VtYmx5LnN5c3RlbS5hc3NlbWJsaWVzLmZpbmQoYSA9PiBhLm5hbWUgPT09IENPUkVfTU9EVUxFKSk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBgY2xhc3NUeXBlYCByZXByZXNlbnRzIGFuIEwxIENmbiBSZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0NmblJlc291cmNlKGM6IHJlZmxlY3QuQ2xhc3NUeXBlKSB7XG4gICAgaWYgKCFjLnN5c3RlbS5pbmNsdWRlc0Fzc2VtYmx5KENPUkVfTU9EVUxFKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIHNraXAgQ2ZuUmVzb3VyY2UgaXRzZWxmXG4gICAgaWYgKGMuZnFuID09PSBDb3JlVHlwZXNGcW4uQ2ZuUmVzb3VyY2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaXNDb25zdHJ1Y3RDbGFzcyhjKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGNmblJlc291cmNlQ2xhc3MgPSBjLnN5c3RlbS5maW5kRnFuKENvcmVUeXBlc0Zxbi5DZm5SZXNvdXJjZSk7XG4gICAgaWYgKCFjLmV4dGVuZHMoY2ZuUmVzb3VyY2VDbGFzcykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gYy5uYW1lLnN0YXJ0c1dpdGgoJ0NmbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHRydWUgaWYgYGNsYXNzVHlwZWAgcmVwcmVzZW50cyBhIENvbnN0cnVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0NvbnN0cnVjdENsYXNzKGM6IHJlZmxlY3QuQ2xhc3NUeXBlKSB7XG4gICAgaWYgKCFjLnN5c3RlbS5pbmNsdWRlc0Fzc2VtYmx5KENPUkVfTU9EVUxFKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghYy5pc0NsYXNzVHlwZSgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGMuYWJzdHJhY3QpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gYy5leHRlbmRzKGMuc3lzdGVtLmZpbmRGcW4oQ29yZVR5cGVzRnFuLkNvbnN0cnVjdCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHRydWUgaWYgYGNsYXNzVHlwZWAgcmVwcmVzZW50cyBhbiBBV1MgcmVzb3VyY2UgKGkuZS4gZXh0ZW5kcyBgY2RrLlJlc291cmNlYCkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzUmVzb3VyY2VDbGFzcyhjbGFzc1R5cGU6IHJlZmxlY3QuQ2xhc3NUeXBlKSB7XG4gICAgY29uc3QgYmFzZVJlc291cmNlID0gY2xhc3NUeXBlLnN5c3RlbS5maW5kQ2xhc3MoQ29yZVR5cGVzRnFuLlJlc291cmNlKTtcbiAgICByZXR1cm4gY2xhc3NUeXBlLmV4dGVuZHMoYmFzZVJlc291cmNlKSB8fCBnZXREb2NUYWcoY2xhc3NUeXBlLCAncmVzb3VyY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgbmVzdGluZyBwYXJlbnQgb2YgdGhlIGdpdmVuIGludGVyZmFjZSBpcyBhIENGTiBjbGFzc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0Nmbk5lc3RlZFR5cGUoaW50ZXJmYWNlVHlwZTogcmVmbGVjdC5UeXBlKSB7XG4gICAgcmV0dXJuIGludGVyZmFjZVR5cGUubmVzdGluZ1BhcmVudCAmJiBDb3JlVHlwZXMuaXNDZm5UeXBlKGludGVyZmFjZVR5cGUubmVzdGluZ1BhcmVudCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGludGVyZmFjZSB0eXBlIGlzIGEgQ0ZOIGNsYXNzLCBwcm9wIHR5cGUgb3IgaW50ZXJmYWNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQ2ZuVHlwZShpbnRlcmZhY2VUeXBlOiByZWZsZWN0LlR5cGUpIHtcbiAgICByZXR1cm4gaW50ZXJmYWNlVHlwZS5uYW1lLnN0YXJ0c1dpdGgoJ0NmbicpXG4gICAgICB8fCAvXklcXHcrUmVmLy50ZXN0KGludGVyZmFjZVR5cGUubmFtZSlcbiAgICAgIHx8IChpbnRlcmZhY2VUeXBlLm5hbWVzcGFjZSAmJiBpbnRlcmZhY2VUeXBlLm5hbWVzcGFjZS5zdGFydHNXaXRoKCdDZm4nKSlcbiAgICAgIC8vIGF3c19zZXJ2aWNlLkNmblRoZVJlc291cmNlLlN1YlR5cGVcbiAgICAgIHx8IChpbnRlcmZhY2VUeXBlLm5hbWVzcGFjZSAmJiBpbnRlcmZhY2VUeXBlLm5hbWVzcGFjZS5zcGxpdCgnLicsIDIpLmF0KDEpPy5zdGFydHNXaXRoKCdDZm4nKSk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgYGNsYXNzVHlwZWAgZm9yIHRoZSBjb3JlIHR5cGUgQ29uc3RydWN0XG4gICAqIEBkZXByZWNhdGVkIC0gdXNlIGBiYXNlQ29uc3RydWN0Q2xhc3MoKWBcbiAgICovXG4gIHB1YmxpYyBnZXQgY29uc3RydWN0Q2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUNvbnN0cnVjdENsYXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGBjbGFzc1R5cGVgIGZvciB0aGUgY29yZSB0eXBlIENvbnN0cnVjdFxuICAgKi9cbiAgcHVibGljIGdldCBiYXNlQ29uc3RydWN0Q2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3lzLmZpbmRDbGFzcyh0aGlzLmJhc2VDb25zdHJ1Y3RDbGFzc0Zxbik7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgYGNsYXNzVHlwZWAgZm9yIHRoZSBjb3JlIHR5cGUgQ29uc3RydWN0XG4gICAqL1xuICBwdWJsaWMgZ2V0IGJhc2VDb25zdHJ1Y3RDbGFzc0ZxbigpIHtcbiAgICByZXR1cm4gQ29yZVR5cGVzRnFuLkNvbnN0cnVjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBgaW50ZXJmYWNldHlwZWAgZm9yIHRoZSBjb3JlIHR5cGUgQ29uc3RydWN0XG4gICAqIEBkZXByZWNhdGVkIC0gdXNlIGBiYXNlQ29uc3RydWN0SW50ZXJmYWNlKClgXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbnN0cnVjdEludGVyZmFjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iYXNlQ29uc3RydWN0SW50ZXJmYWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGBpbnRlcmZhY2V0eXBlYCBmb3IgdGhlIGNvcmUgdHlwZSBDb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBnZXQgYmFzZUNvbnN0cnVjdEludGVyZmFjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zeXMuZmluZEludGVyZmFjZSh0aGlzLmJhc2VDb25zdHJ1Y3RJbnRlcmZhY2VGcW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGZxbiBmb3IgZm9yIHRoZSBjb3JlIENvbnN0cnVjdCBpbnRlcmZhY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgYmFzZUNvbnN0cnVjdEludGVyZmFjZUZxbigpIHtcbiAgICByZXR1cm4gQ29yZVR5cGVzRnFuLkNvbnN0cnVjdEludGVyZmFjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBgY2xhc3NUeXBlYCBmb3IgdGhlIGNvcmUgdHlwZSBSZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIGdldCByZXNvdXJjZUNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLnN5cy5maW5kQ2xhc3ModGhpcy5yZXNvdXJjZUNsYXNzRnFuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBmcW4gZm9yIHRoZSBjb3JlIHR5cGUgUmVzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2VDbGFzc0ZxbigpIHtcbiAgICByZXR1cm4gQ29yZVR5cGVzRnFuLlJlc291cmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGZxbiBmb3IgdGhlIGNvcmUgUmVzb3VyY2UgaW50ZXJmYWNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlc291cmNlSW50ZXJmYWNlKCkge1xuICAgIHJldHVybiB0aGlzLnN5cy5maW5kSW50ZXJmYWNlKHRoaXMucmVzb3VyY2VJbnRlcmZhY2VGcW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGBpbnRlcmZhY2VUeXBlYCBmb3IgdGhlIGNvcmUgdHlwZSBSZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIGdldCByZXNvdXJjZUludGVyZmFjZUZxbigpIHtcbiAgICByZXR1cm4gQ29yZVR5cGVzRnFuLlJlc291cmNlSW50ZXJmYWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGBjbGFzc1R5cGVgIGZvciB0aGUgY29yZSB0eXBlIFRva2VuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRva2VuSW50ZXJmYWNlKCkge1xuICAgIHJldHVybiB0aGlzLnN5cy5maW5kSW50ZXJmYWNlKHRoaXMudG9rZW5JbnRlcmZhY2VGcW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGZxbiBmb3IgdGhlIGNvcmUgdHlwZSBUb2tlblxuICAgKi9cbiAgcHVibGljIGdldCB0b2tlbkludGVyZmFjZUZxbigpIHtcbiAgICByZXR1cm4gQ29yZVR5cGVzRnFuLlJlc29sdmFibGVJbnRlcmZhY2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBoeXNpY2FsTmFtZUNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLnN5cy5maW5kQ2xhc3MoQ29yZVR5cGVzRnFuLlBoeXNpY2FsTmFtZSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHN5czogcmVmbGVjdC5UeXBlU3lzdGVtO1xuXG4gIGNvbnN0cnVjdG9yKHN5czogcmVmbGVjdC5UeXBlU3lzdGVtKSB7XG4gICAgdGhpcy5zeXMgPSBzeXM7XG4gICAgaWYgKCFzeXMuaW5jbHVkZXNBc3NlbWJseShDT1JFX01PRFVMRSkpIHtcbiAgICAgIC8vIGRpc2FibGUtYWxsLWNoZWNrc1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuIl19
|
package/lib/rules/imports.js
CHANGED
|
@@ -8,6 +8,13 @@ exports.importsLinter = new linter_1.Linter(assembly => resource_1.ResourceRefle
|
|
|
8
8
|
.filter(r => r.construct && r.construct.interfaceType) // only resources that have an interface can have "fromXxx" methods
|
|
9
9
|
.map(construct => new ImportsReflection(construct)));
|
|
10
10
|
class ImportsReflection {
|
|
11
|
+
resource;
|
|
12
|
+
fromMethods;
|
|
13
|
+
prefix;
|
|
14
|
+
fromAttributesMethodName;
|
|
15
|
+
fromAttributesMethod;
|
|
16
|
+
attributesStructName;
|
|
17
|
+
attributesStruct;
|
|
11
18
|
constructor(resource) {
|
|
12
19
|
this.resource = resource;
|
|
13
20
|
const sys = resource.sys;
|
|
@@ -100,4 +107,4 @@ function baseConstructAddendum() {
|
|
|
100
107
|
}
|
|
101
108
|
return '';
|
|
102
109
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQStEO0FBQy9ELHNDQUFtQztBQUV0QixRQUFBLGFBQWEsR0FBRyxJQUFJLGVBQU0sQ0FBb0IsUUFBUSxDQUFDLEVBQUUsQ0FBQyw2QkFBa0I7S0FDdEYsT0FBTyxDQUFDLFFBQVEsQ0FBQztLQUNqQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsbUVBQW1FO0tBQ3pILEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRXZELE1BQU0saUJBQWlCO0lBUXJCLFlBQTRCLFFBQTRCO1FBQTVCLGFBQVEsR0FBUixRQUFRLENBQW9CO1FBQ3RELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUMvQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxZQUFZLENBQUM7UUFDM0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUVyRyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ2pELENBQUMsQ0FBQyxNQUFNO2VBQ0gsQ0FBQyxDQUFDLElBQUksQ0FB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TyxFQUFFLDhDQUE4QztJQUN2RCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFDUixJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyw2QkFBNkI7UUFDdkMsQ0FBQztRQUVELENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILFNBQVMscUJBQXFCO0lBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDeEMsT0FBTyxxSEFBcUgsQ0FBQztJQUMvSCxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcmVmbGVjdCBmcm9tICdqc2lpLXJlZmxlY3QnO1xuaW1wb3J0IHsgQXR0cmlidXRlU2l0ZSwgUmVzb3VyY2VSZWZsZWN0aW9uIH0gZnJvbSAnLi9yZXNvdXJjZSc7XG5pbXBvcnQgeyBMaW50ZXIgfSBmcm9tICcuLi9saW50ZXInO1xuXG5leHBvcnQgY29uc3QgaW1wb3J0c0xpbnRlciA9IG5ldyBMaW50ZXI8SW1wb3J0c1JlZmxlY3Rpb24+KGFzc2VtYmx5ID0+IFJlc291cmNlUmVmbGVjdGlvblxuICAuZmluZEFsbChhc3NlbWJseSlcbiAgLmZpbHRlcihyID0+IHIuY29uc3RydWN0ICYmIHIuY29uc3RydWN0LmludGVyZmFjZVR5cGUpIC8vIG9ubHkgcmVzb3VyY2VzIHRoYXQgaGF2ZSBhbiBpbnRlcmZhY2UgY2FuIGhhdmUgXCJmcm9tWHh4XCIgbWV0aG9kc1xuICAubWFwKGNvbnN0cnVjdCA9PiBuZXcgSW1wb3J0c1JlZmxlY3Rpb24oY29uc3RydWN0KSkpO1xuXG5jbGFzcyBJbXBvcnRzUmVmbGVjdGlvbiB7XG4gIHB1YmxpYyByZWFkb25seSBmcm9tTWV0aG9kczogcmVmbGVjdC5NZXRob2RbXTtcbiAgcHVibGljIHJlYWRvbmx5IHByZWZpeDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZnJvbUF0dHJpYnV0ZXNNZXRob2ROYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmcm9tQXR0cmlidXRlc01ldGhvZD86IHJlZmxlY3QuTWV0aG9kO1xuICBwdWJsaWMgcmVhZG9ubHkgYXR0cmlidXRlc1N0cnVjdE5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGF0dHJpYnV0ZXNTdHJ1Y3Q/OiByZWZsZWN0LkludGVyZmFjZVR5cGU7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBSZXNvdXJjZVJlZmxlY3Rpb24pIHtcbiAgICBjb25zdCBzeXMgPSByZXNvdXJjZS5zeXM7XG4gICAgdGhpcy5wcmVmaXggPSBgZnJvbSR7cmVzb3VyY2UuYmFzZW5hbWV9YDtcbiAgICBjb25zdCBjbGFzc1R5cGUgPSByZXNvdXJjZS5jb25zdHJ1Y3QuY2xhc3NUeXBlO1xuICAgIHRoaXMuZnJvbUF0dHJpYnV0ZXNNZXRob2ROYW1lID0gYCR7dGhpcy5wcmVmaXh9QXR0cmlidXRlc2A7XG4gICAgdGhpcy5mcm9tQXR0cmlidXRlc01ldGhvZCA9IGNsYXNzVHlwZS5hbGxNZXRob2RzLmZpbmQoeCA9PiB4Lm5hbWUgPT09IHRoaXMuZnJvbUF0dHJpYnV0ZXNNZXRob2ROYW1lKTtcblxuICAgIHRoaXMuZnJvbU1ldGhvZHMgPSBjbGFzc1R5cGUuYWxsTWV0aG9kcy5maWx0ZXIoeCA9PlxuICAgICAgeC5zdGF0aWNcbiAgICAgICAgJiYgeC5uYW1lLm1hdGNoKGBeJHt0aGlzLnByZWZpeH1bQS1aXWApXG4gICAgICAgICYmIHgubmFtZSAhPT0gdGhpcy5mcm9tQXR0cmlidXRlc01ldGhvZE5hbWUpO1xuXG4gICAgY29uc3QgYXR0cmlidXRlc1N0cnVjdEZxbiA9IGAke2NsYXNzVHlwZS5mcW59QXR0cmlidXRlc2A7XG4gICAgY29uc3QgYXR0cmlidXRlc1N0cnVjdCA9IHN5cy50cnlGaW5kRnFuKGF0dHJpYnV0ZXNTdHJ1Y3RGcW4pO1xuICAgIGlmIChhdHRyaWJ1dGVzU3RydWN0KSB7XG4gICAgICBpZiAoIWF0dHJpYnV0ZXNTdHJ1Y3QuaXNJbnRlcmZhY2VUeXBlKCkgfHwgIWF0dHJpYnV0ZXNTdHJ1Y3QuaXNEYXRhVHlwZSgpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQXR0cmlidXRlcyB0eXBlICR7YXR0cmlidXRlc1N0cnVjdEZxbn0gbXVzdCBiZSBhbiBpbnRlcmZhY2Ugc3RydWN0YCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYXR0cmlidXRlc1N0cnVjdE5hbWUgPSBhdHRyaWJ1dGVzU3RydWN0RnFuO1xuICAgIHRoaXMuYXR0cmlidXRlc1N0cnVjdCA9IGF0dHJpYnV0ZXNTdHJ1Y3Q7XG4gIH1cbn1cblxuaW1wb3J0c0xpbnRlci5hZGQoe1xuICBjb2RlOiAnbm8tc3RhdGljLWltcG9ydCcsXG4gIG1lc3NhZ2U6ICdzdGF0aWMgXCJpbXBvcnRcIiBtZXRob2RzIGFyZSBkZXByZWNhdGVkIGluIGZhdm9yIG9mIFwiZnJvbUF0dHJpYnV0ZXNcIiAoc2VlIGd1aWRlbGluZXMpJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgY29uc3QgaGFzSW1wb3J0ID0gZS5jdHgucmVzb3VyY2UuY29uc3RydWN0LmNsYXNzVHlwZS5hbGxNZXRob2RzLmZpbmQoeCA9PiB4LnN0YXRpYyAmJiB4Lm5hbWUgPT09ICdpbXBvcnQnKTtcbiAgICBlLmFzc2VydCghaGFzSW1wb3J0LCBlLmN0eC5yZXNvdXJjZS5mcW4gKyAnLmltcG9ydCcpO1xuICB9LFxufSk7XG5cbmltcG9ydHNMaW50ZXIuYWRkKHtcbiAgY29kZTogJ2Zyb20tbWV0aG9kJyxcbiAgbWVzc2FnZTogJ3Jlc291cmNlIHNob3VsZCBoYXZlIGF0IGxlYXN0IG9uZSBcImZyb21YeHhcIiBzdGF0aWMgbWV0aG9kIG9yIFwiZnJvbVh4eEF0dHJpYnV0ZXNcIicsXG4gIGV2YWw6IGUgPT4ge1xuICAgIC8vIG5vIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQgb24gdGhlIGludGVyZmFjZSwgc28gd2UgZG9uJ3QgZXhwZWN0IGFueSBcImZyb21cIiBtZXRob2RzLlxuICAgIGlmICghZS5jdHgucmVzb3VyY2UuYXR0cmlidXRlcy5zb21lKGEgPT4gYS5zaXRlID09PSBBdHRyaWJ1dGVTaXRlLkludGVyZmFjZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlLmFzc2VydChlLmN0eC5mcm9tTWV0aG9kcy5sZW5ndGggPiAwIHx8IGUuY3R4LmZyb21BdHRyaWJ1dGVzTWV0aG9kLCBlLmN0eC5yZXNvdXJjZS5mcW4pO1xuICB9LFxufSk7XG5cbmltcG9ydHNMaW50ZXIuYWRkKHtcbiAgY29kZTogJ2Zyb20tc2lnbmF0dXJlJyxcbiAgbWVzc2FnZTogJ2ludmFsaWQgbWV0aG9kIHNpZ25hdHVyZSBmb3IgZnJvbVh4eCBtZXRob2QuICcgKyBiYXNlQ29uc3RydWN0QWRkZW5kdW0oKSxcbiAgZXZhbDogZSA9PiB7XG4gICAgZm9yIChjb25zdCBtZXRob2Qgb2YgZS5jdHguZnJvbU1ldGhvZHMpIHtcblxuICAgICAgLy8gXCJmcm9tUm9sZUFyblwiID0+IFwicm9sZUFyblwiXG4gICAgICBjb25zdCBhcmdOYW1lID0gZS5jdHgucmVzb3VyY2UuYmFzZW5hbWVbMF0udG9Mb2NhbGVMb3dlckNhc2UoKSArIG1ldGhvZC5uYW1lLnNsaWNlKCdmcm9tJy5sZW5ndGggKyAxKTtcblxuICAgICAgY29uc3QgYmFzZVR5cGUgPSBlLmN0eC5yZXNvdXJjZS5jb3JlLmJhc2VDb25zdHJ1Y3RDbGFzcztcbiAgICAgIGUuYXNzZXJ0U2lnbmF0dXJlKG1ldGhvZCwge1xuICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgeyBuYW1lOiAnc2NvcGUnLCB0eXBlOiBiYXNlVHlwZSB9LFxuICAgICAgICAgIHsgbmFtZTogJ2lkJywgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICB7IG5hbWU6IGFyZ05hbWUsIHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHJldHVybnM6IGUuY3R4LnJlc291cmNlLmNvbnN0cnVjdC5pbnRlcmZhY2VUeXBlLFxuICAgICAgfSk7XG4gICAgfVxuICB9LFxufSk7XG5cbmltcG9ydHNMaW50ZXIuYWRkKHtcbiAgY29kZTogJ2Zyb20tYXR0cmlidXRlcycsXG4gIG1lc3NhZ2U6ICdzdGF0aWMgZnJvbVh4eEF0dHJpYnV0ZXMgaXMgYSBmYWN0b3J5IG9mIElYeHggZnJvbSBpdHMgcHJpbWl0aXZlIGF0dHJpYnV0ZXMuICcgKyBiYXNlQ29uc3RydWN0QWRkZW5kdW0oKSxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5mcm9tQXR0cmlidXRlc01ldGhvZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGJhc2VUeXBlID0gZS5jdHgucmVzb3VyY2UuY29yZS5iYXNlQ29uc3RydWN0Q2xhc3M7XG4gICAgZS5hc3NlcnRTaWduYXR1cmUoZS5jdHguZnJvbUF0dHJpYnV0ZXNNZXRob2QsIHtcbiAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgeyBuYW1lOiAnc2NvcGUnLCB0eXBlOiBiYXNlVHlwZSB9LFxuICAgICAgICB7IG5hbWU6ICdpZCcsIHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAgIHsgbmFtZTogJ2F0dHJzJywgdHlwZTogZS5jdHguYXR0cmlidXRlc1N0cnVjdCB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfSxcbn0pO1xuXG5pbXBvcnRzTGludGVyLmFkZCh7XG4gIGNvZGU6ICdmcm9tLWF0dHJpYnV0ZXMtc3RydWN0JyxcbiAgbWVzc2FnZTogJ3Jlc291cmNlIHNob3VsZCBoYXZlIGFuIFh4eEF0dHJpYnV0ZXMgc3RydWN0JyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5mcm9tQXR0cmlidXRlc01ldGhvZCkge1xuICAgICAgcmV0dXJuOyAvLyBubyBcImZyb21BdHRyaWJ1dGVzXCIgbWV0aG9kXG4gICAgfVxuXG4gICAgZS5hc3NlcnQoZS5jdHguYXR0cmlidXRlc1N0cnVjdCwgZS5jdHguYXR0cmlidXRlc1N0cnVjdE5hbWUpO1xuICB9LFxufSk7XG5cbmZ1bmN0aW9uIGJhc2VDb25zdHJ1Y3RBZGRlbmR1bSgpOiBzdHJpbmcge1xuICBpZiAoIXByb2Nlc3MuZW52LkFXU0xJTlRfQkFTRV9DT05TVFJVQ1QpIHtcbiAgICByZXR1cm4gJ0lmIHRoZSBjb25zdHJ1Y3QgaXMgdXNpbmcgdGhlIFwiY29uc3RydWN0c1wiIG1vZHVsZSwgc2V0IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBcIkFXU0xJTlRfQkFTRV9DT05TVFJVQ1RcIiBhbmQgcmUtcnVuJztcbiAgfVxuICByZXR1cm4gJyc7XG59XG4iXX0=
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQStEO0FBQy9ELHNDQUFtQztBQUV0QixRQUFBLGFBQWEsR0FBRyxJQUFJLGVBQU0sQ0FBb0IsUUFBUSxDQUFDLEVBQUUsQ0FBQyw2QkFBa0I7S0FDdEYsT0FBTyxDQUFDLFFBQVEsQ0FBQztLQUNqQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsbUVBQW1FO0tBQ3pILEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRXZELE1BQU0saUJBQWlCO0lBUU87SUFQWixXQUFXLENBQW1CO0lBQzlCLE1BQU0sQ0FBUztJQUNmLHdCQUF3QixDQUFTO0lBQ2pDLG9CQUFvQixDQUFrQjtJQUN0QyxvQkFBb0IsQ0FBUztJQUM3QixnQkFBZ0IsQ0FBeUI7SUFFekQsWUFBNEIsUUFBNEI7UUFBNUIsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDdEQsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQy9DLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLFlBQVksQ0FBQztRQUMzRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRXJH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LEVBQUU7YUFDaEQ7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUgscUJBQWEsQ0FBQyxHQUFHLENBQUM7SUFDaEIsSUFBSSxFQUFFLHdCQUF3QjtJQUM5QixPQUFPLEVBQUUsOENBQThDO0lBQ3ZELElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtRQUNSLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDaEMsT0FBTyxDQUFDLDZCQUE2QjtRQUN2QyxDQUFDO1FBRUQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsU0FBUyxxQkFBcUI7SUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN4QyxPQUFPLHFIQUFxSCxDQUFDO0lBQy9ILENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBBdHRyaWJ1dGVTaXRlLCBSZXNvdXJjZVJlZmxlY3Rpb24gfSBmcm9tICcuL3Jlc291cmNlJztcbmltcG9ydCB7IExpbnRlciB9IGZyb20gJy4uL2xpbnRlcic7XG5cbmV4cG9ydCBjb25zdCBpbXBvcnRzTGludGVyID0gbmV3IExpbnRlcjxJbXBvcnRzUmVmbGVjdGlvbj4oYXNzZW1ibHkgPT4gUmVzb3VyY2VSZWZsZWN0aW9uXG4gIC5maW5kQWxsKGFzc2VtYmx5KVxuICAuZmlsdGVyKHIgPT4gci5jb25zdHJ1Y3QgJiYgci5jb25zdHJ1Y3QuaW50ZXJmYWNlVHlwZSkgLy8gb25seSByZXNvdXJjZXMgdGhhdCBoYXZlIGFuIGludGVyZmFjZSBjYW4gaGF2ZSBcImZyb21YeHhcIiBtZXRob2RzXG4gIC5tYXAoY29uc3RydWN0ID0+IG5ldyBJbXBvcnRzUmVmbGVjdGlvbihjb25zdHJ1Y3QpKSk7XG5cbmNsYXNzIEltcG9ydHNSZWZsZWN0aW9uIHtcbiAgcHVibGljIHJlYWRvbmx5IGZyb21NZXRob2RzOiByZWZsZWN0Lk1ldGhvZFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJlZml4OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmcm9tQXR0cmlidXRlc01ldGhvZE5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGZyb21BdHRyaWJ1dGVzTWV0aG9kPzogcmVmbGVjdC5NZXRob2Q7XG4gIHB1YmxpYyByZWFkb25seSBhdHRyaWJ1dGVzU3RydWN0TmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgYXR0cmlidXRlc1N0cnVjdD86IHJlZmxlY3QuSW50ZXJmYWNlVHlwZTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IFJlc291cmNlUmVmbGVjdGlvbikge1xuICAgIGNvbnN0IHN5cyA9IHJlc291cmNlLnN5cztcbiAgICB0aGlzLnByZWZpeCA9IGBmcm9tJHtyZXNvdXJjZS5iYXNlbmFtZX1gO1xuICAgIGNvbnN0IGNsYXNzVHlwZSA9IHJlc291cmNlLmNvbnN0cnVjdC5jbGFzc1R5cGU7XG4gICAgdGhpcy5mcm9tQXR0cmlidXRlc01ldGhvZE5hbWUgPSBgJHt0aGlzLnByZWZpeH1BdHRyaWJ1dGVzYDtcbiAgICB0aGlzLmZyb21BdHRyaWJ1dGVzTWV0aG9kID0gY2xhc3NUeXBlLmFsbE1ldGhvZHMuZmluZCh4ID0+IHgubmFtZSA9PT0gdGhpcy5mcm9tQXR0cmlidXRlc01ldGhvZE5hbWUpO1xuXG4gICAgdGhpcy5mcm9tTWV0aG9kcyA9IGNsYXNzVHlwZS5hbGxNZXRob2RzLmZpbHRlcih4ID0+XG4gICAgICB4LnN0YXRpY1xuICAgICAgICAmJiB4Lm5hbWUubWF0Y2goYF4ke3RoaXMucHJlZml4fVtBLVpdYClcbiAgICAgICAgJiYgeC5uYW1lICE9PSB0aGlzLmZyb21BdHRyaWJ1dGVzTWV0aG9kTmFtZSk7XG5cbiAgICBjb25zdCBhdHRyaWJ1dGVzU3RydWN0RnFuID0gYCR7Y2xhc3NUeXBlLmZxbn1BdHRyaWJ1dGVzYDtcbiAgICBjb25zdCBhdHRyaWJ1dGVzU3RydWN0ID0gc3lzLnRyeUZpbmRGcW4oYXR0cmlidXRlc1N0cnVjdEZxbik7XG4gICAgaWYgKGF0dHJpYnV0ZXNTdHJ1Y3QpIHtcbiAgICAgIGlmICghYXR0cmlidXRlc1N0cnVjdC5pc0ludGVyZmFjZVR5cGUoKSB8fCAhYXR0cmlidXRlc1N0cnVjdC5pc0RhdGFUeXBlKCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBdHRyaWJ1dGVzIHR5cGUgJHthdHRyaWJ1dGVzU3RydWN0RnFufSBtdXN0IGJlIGFuIGludGVyZmFjZSBzdHJ1Y3RgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5hdHRyaWJ1dGVzU3RydWN0TmFtZSA9IGF0dHJpYnV0ZXNTdHJ1Y3RGcW47XG4gICAgdGhpcy5hdHRyaWJ1dGVzU3RydWN0ID0gYXR0cmlidXRlc1N0cnVjdDtcbiAgfVxufVxuXG5pbXBvcnRzTGludGVyLmFkZCh7XG4gIGNvZGU6ICduby1zdGF0aWMtaW1wb3J0JyxcbiAgbWVzc2FnZTogJ3N0YXRpYyBcImltcG9ydFwiIG1ldGhvZHMgYXJlIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgXCJmcm9tQXR0cmlidXRlc1wiIChzZWUgZ3VpZGVsaW5lcyknLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCBoYXNJbXBvcnQgPSBlLmN0eC5yZXNvdXJjZS5jb25zdHJ1Y3QuY2xhc3NUeXBlLmFsbE1ldGhvZHMuZmluZCh4ID0+IHguc3RhdGljICYmIHgubmFtZSA9PT0gJ2ltcG9ydCcpO1xuICAgIGUuYXNzZXJ0KCFoYXNJbXBvcnQsIGUuY3R4LnJlc291cmNlLmZxbiArICcuaW1wb3J0Jyk7XG4gIH0sXG59KTtcblxuaW1wb3J0c0xpbnRlci5hZGQoe1xuICBjb2RlOiAnZnJvbS1tZXRob2QnLFxuICBtZXNzYWdlOiAncmVzb3VyY2Ugc2hvdWxkIGhhdmUgYXQgbGVhc3Qgb25lIFwiZnJvbVh4eFwiIHN0YXRpYyBtZXRob2Qgb3IgXCJmcm9tWHh4QXR0cmlidXRlc1wiJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgLy8gbm8gYXR0cmlidXRlcyBhcmUgZGVmaW5lZCBvbiB0aGUgaW50ZXJmYWNlLCBzbyB3ZSBkb24ndCBleHBlY3QgYW55IFwiZnJvbVwiIG1ldGhvZHMuXG4gICAgaWYgKCFlLmN0eC5yZXNvdXJjZS5hdHRyaWJ1dGVzLnNvbWUoYSA9PiBhLnNpdGUgPT09IEF0dHJpYnV0ZVNpdGUuSW50ZXJmYWNlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGUuYXNzZXJ0KGUuY3R4LmZyb21NZXRob2RzLmxlbmd0aCA+IDAgfHwgZS5jdHguZnJvbUF0dHJpYnV0ZXNNZXRob2QsIGUuY3R4LnJlc291cmNlLmZxbik7XG4gIH0sXG59KTtcblxuaW1wb3J0c0xpbnRlci5hZGQoe1xuICBjb2RlOiAnZnJvbS1zaWduYXR1cmUnLFxuICBtZXNzYWdlOiAnaW52YWxpZCBtZXRob2Qgc2lnbmF0dXJlIGZvciBmcm9tWHh4IG1ldGhvZC4gJyArIGJhc2VDb25zdHJ1Y3RBZGRlbmR1bSgpLFxuICBldmFsOiBlID0+IHtcbiAgICBmb3IgKGNvbnN0IG1ldGhvZCBvZiBlLmN0eC5mcm9tTWV0aG9kcykge1xuXG4gICAgICAvLyBcImZyb21Sb2xlQXJuXCIgPT4gXCJyb2xlQXJuXCJcbiAgICAgIGNvbnN0IGFyZ05hbWUgPSBlLmN0eC5yZXNvdXJjZS5iYXNlbmFtZVswXS50b0xvY2FsZUxvd2VyQ2FzZSgpICsgbWV0aG9kLm5hbWUuc2xpY2UoJ2Zyb20nLmxlbmd0aCArIDEpO1xuXG4gICAgICBjb25zdCBiYXNlVHlwZSA9IGUuY3R4LnJlc291cmNlLmNvcmUuYmFzZUNvbnN0cnVjdENsYXNzO1xuICAgICAgZS5hc3NlcnRTaWduYXR1cmUobWV0aG9kLCB7XG4gICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICB7IG5hbWU6ICdzY29wZScsIHR5cGU6IGJhc2VUeXBlIH0sXG4gICAgICAgICAgeyBuYW1lOiAnaWQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICAgIHsgbmFtZTogYXJnTmFtZSwgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcmV0dXJuczogZS5jdHgucmVzb3VyY2UuY29uc3RydWN0LmludGVyZmFjZVR5cGUsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sXG59KTtcblxuaW1wb3J0c0xpbnRlci5hZGQoe1xuICBjb2RlOiAnZnJvbS1hdHRyaWJ1dGVzJyxcbiAgbWVzc2FnZTogJ3N0YXRpYyBmcm9tWHh4QXR0cmlidXRlcyBpcyBhIGZhY3Rvcnkgb2YgSVh4eCBmcm9tIGl0cyBwcmltaXRpdmUgYXR0cmlidXRlcy4gJyArIGJhc2VDb25zdHJ1Y3RBZGRlbmR1bSgpLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4LmZyb21BdHRyaWJ1dGVzTWV0aG9kKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYmFzZVR5cGUgPSBlLmN0eC5yZXNvdXJjZS5jb3JlLmJhc2VDb25zdHJ1Y3RDbGFzcztcbiAgICBlLmFzc2VydFNpZ25hdHVyZShlLmN0eC5mcm9tQXR0cmlidXRlc01ldGhvZCwge1xuICAgICAgcGFyYW1ldGVyczogW1xuICAgICAgICB7IG5hbWU6ICdzY29wZScsIHR5cGU6IGJhc2VUeXBlIH0sXG4gICAgICAgIHsgbmFtZTogJ2lkJywgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgeyBuYW1lOiAnYXR0cnMnLCB0eXBlOiBlLmN0eC5hdHRyaWJ1dGVzU3RydWN0IH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9LFxufSk7XG5cbmltcG9ydHNMaW50ZXIuYWRkKHtcbiAgY29kZTogJ2Zyb20tYXR0cmlidXRlcy1zdHJ1Y3QnLFxuICBtZXNzYWdlOiAncmVzb3VyY2Ugc2hvdWxkIGhhdmUgYW4gWHh4QXR0cmlidXRlcyBzdHJ1Y3QnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4LmZyb21BdHRyaWJ1dGVzTWV0aG9kKSB7XG4gICAgICByZXR1cm47IC8vIG5vIFwiZnJvbUF0dHJpYnV0ZXNcIiBtZXRob2RcbiAgICB9XG5cbiAgICBlLmFzc2VydChlLmN0eC5hdHRyaWJ1dGVzU3RydWN0LCBlLmN0eC5hdHRyaWJ1dGVzU3RydWN0TmFtZSk7XG4gIH0sXG59KTtcblxuZnVuY3Rpb24gYmFzZUNvbnN0cnVjdEFkZGVuZHVtKCk6IHN0cmluZyB7XG4gIGlmICghcHJvY2Vzcy5lbnYuQVdTTElOVF9CQVNFX0NPTlNUUlVDVCkge1xuICAgIHJldHVybiAnSWYgdGhlIGNvbnN0cnVjdCBpcyB1c2luZyB0aGUgXCJjb25zdHJ1Y3RzXCIgbW9kdWxlLCBzZXQgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIFwiQVdTTElOVF9CQVNFX0NPTlNUUlVDVFwiIGFuZCByZS1ydW4nO1xuICB9XG4gIHJldHVybiAnJztcbn1cbiJdfQ==
|
|
@@ -8,6 +8,7 @@ exports.integrationLinter = new linter_1.Linter(assembly => assembly.allInterfac
|
|
|
8
8
|
.map(construct => new IntegrationReflection(construct)));
|
|
9
9
|
const BIND_METHOD_NAME = 'bind';
|
|
10
10
|
class IntegrationReflection {
|
|
11
|
+
integrationInterface;
|
|
11
12
|
static isIntegrationInterface(x) {
|
|
12
13
|
return x.allMethods.some(m => m.name === BIND_METHOD_NAME);
|
|
13
14
|
}
|
|
@@ -26,4 +27,4 @@ exports.integrationLinter.add({
|
|
|
26
27
|
e.assert(returnsFqn && returnsFqn.endsWith('Config'), (0, util_1.memberFqn)(e.ctx.bindMethod));
|
|
27
28
|
},
|
|
28
29
|
});
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW50ZWdyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGlDQUFtQztBQUNuQyxzQ0FBbUM7QUFFdEIsUUFBQSxpQkFBaUIsR0FBRyxJQUFJLGVBQU0sQ0FBd0IsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYTtLQUNsRyxNQUFNLENBQUMscUJBQXFCLENBQUMsc0JBQXNCLENBQUM7S0FDcEQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFM0QsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUM7QUFFaEMsTUFBTSxxQkFBcUI7SUFLRztJQUpyQixNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBd0I7UUFDM0QsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsWUFBNEIsb0JBQTJDO1FBQTNDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBdUI7SUFDdkUsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBRSxDQUFDO0lBQ3RGLENBQUM7Q0FDRjtBQUVELHlCQUFpQixDQUFDLEdBQUcsQ0FBQztJQUNwQixJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLE9BQU8sRUFBRSx3REFBd0Q7SUFDakUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFFckQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFBLGdCQUFTLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBtZW1iZXJGcW4gfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgTGludGVyIH0gZnJvbSAnLi4vbGludGVyJztcblxuZXhwb3J0IGNvbnN0IGludGVncmF0aW9uTGludGVyID0gbmV3IExpbnRlcjxJbnRlZ3JhdGlvblJlZmxlY3Rpb24+KGFzc2VtYmx5ID0+IGFzc2VtYmx5LmFsbEludGVyZmFjZXNcbiAgLmZpbHRlcihJbnRlZ3JhdGlvblJlZmxlY3Rpb24uaXNJbnRlZ3JhdGlvbkludGVyZmFjZSlcbiAgLm1hcChjb25zdHJ1Y3QgPT4gbmV3IEludGVncmF0aW9uUmVmbGVjdGlvbihjb25zdHJ1Y3QpKSk7XG5cbmNvbnN0IEJJTkRfTUVUSE9EX05BTUUgPSAnYmluZCc7XG5cbmNsYXNzIEludGVncmF0aW9uUmVmbGVjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgaXNJbnRlZ3JhdGlvbkludGVyZmFjZSh4OiByZWZsZWN0LkludGVyZmFjZVR5cGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4geC5hbGxNZXRob2RzLnNvbWUobSA9PiBtLm5hbWUgPT09IEJJTkRfTUVUSE9EX05BTUUpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGludGVncmF0aW9uSW50ZXJmYWNlOiByZWZsZWN0LkludGVyZmFjZVR5cGUpIHtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYmluZE1ldGhvZCgpOiByZWZsZWN0Lk1ldGhvZCB7XG4gICAgcmV0dXJuIHRoaXMuaW50ZWdyYXRpb25JbnRlcmZhY2UuYWxsTWV0aG9kcy5maW5kKG0gPT4gbS5uYW1lID09PSBCSU5EX01FVEhPRF9OQU1FKSE7XG4gIH1cbn1cblxuaW50ZWdyYXRpb25MaW50ZXIuYWRkKHtcbiAgY29kZTogJ2ludGVnLXJldHVybi10eXBlJyxcbiAgbWVzc2FnZTogJ1xcJ2JpbmQoLi4uKVxcJyBzaG91bGQgcmV0dXJuIGEgdHlwZSBuYW1lZCBcXCdYeHhDb25maWdcXCcnLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCByZXR1cm5zRnFuID0gZS5jdHguYmluZE1ldGhvZC5yZXR1cm5zLnR5cGUuZnFuO1xuXG4gICAgZS5hc3NlcnQocmV0dXJuc0ZxbiAmJiByZXR1cm5zRnFuLmVuZHNXaXRoKCdDb25maWcnKSwgbWVtYmVyRnFuKGUuY3R4LmJpbmRNZXRob2QpKTtcbiAgfSxcbn0pO1xuIl19
|
package/lib/rules/resource.js
CHANGED
|
@@ -15,6 +15,7 @@ var AttributeSite;
|
|
|
15
15
|
AttributeSite["Class"] = "class";
|
|
16
16
|
})(AttributeSite || (exports.AttributeSite = AttributeSite = {}));
|
|
17
17
|
class ResourceReflection {
|
|
18
|
+
construct;
|
|
18
19
|
/**
|
|
19
20
|
* @returns all resource constructs (everything that extends `cdk.Resource`)
|
|
20
21
|
*/
|
|
@@ -26,6 +27,14 @@ class ResourceReflection {
|
|
|
26
27
|
.filter(c => core_types_1.CoreTypes.isConstructClass(c) && core_types_1.CoreTypes.isResourceClass(c))
|
|
27
28
|
.map(c => new ResourceReflection(new construct_1.ConstructReflection(c)));
|
|
28
29
|
}
|
|
30
|
+
attributes; // actual attribute props
|
|
31
|
+
fqn; // expected fqn of resource class
|
|
32
|
+
assembly;
|
|
33
|
+
sys;
|
|
34
|
+
cfn;
|
|
35
|
+
basename; // i.e. Bucket
|
|
36
|
+
core;
|
|
37
|
+
physicalNameProp;
|
|
29
38
|
constructor(construct) {
|
|
30
39
|
this.construct = construct;
|
|
31
40
|
this.assembly = construct.classType.assembly;
|
|
@@ -261,4 +270,4 @@ function guessResourceName(fqn) {
|
|
|
261
270
|
}
|
|
262
271
|
return `${org}::${ns}::${rs}`;
|
|
263
272
|
}
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxpREFBdUQ7QUFDdkQsMkNBQWtEO0FBQ2xELDZDQUF5QztBQUN6QyxpQ0FBbUM7QUFDbkMsa0NBQThDO0FBQzlDLHNDQUFtQztBQUVuQyxNQUFNLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDO0FBRXJDLFFBQUEsY0FBYyxHQUFHLElBQUksZUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFRN0UsSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLHdDQUF1QixDQUFBO0lBQ3ZCLGdDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLGFBQWEsNkJBQWIsYUFBYSxRQUd4QjtBQUVELE1BQWEsa0JBQWtCO0lBRTdCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUEwQjtRQUM5QyxJQUFJLHNCQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdEMsT0FBTyxFQUFFLENBQUMsQ0FBQyw0QkFBNEI7UUFDekMsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDLFVBQVU7YUFDdkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsc0JBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxzQkFBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLElBQUksK0JBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFZRCxZQUE0QixTQUE4QjtRQUE5QixjQUFTLEdBQVQsU0FBUyxDQUFxQjtRQUN4RCxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENB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QUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEdBQVc7SUFDcEMsNERBQTREO0lBQzVELElBQUksS0FBSyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFBQyxPQUFPLFNBQVMsQ0FBQztJQUFDLENBQUM7SUFDakMsTUFBTSxDQUFDLEVBQUUsV0FBVyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBRTlCLEtBQUssR0FBRyx3REFBd0QsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFbkYsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsYUFBYTtRQUNiLEtBQUssR0FBRywyREFBMkQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUM5QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFBQyxPQUFPLFNBQVMsQ0FBQztJQUFDLENBQUM7SUFFN0MsT0FBTyxHQUFHLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IENmblJlc291cmNlUmVmbGVjdGlvbiB9IGZyb20gJy4vY2ZuLXJlc291cmNlJztcbmltcG9ydCB7IENvbnN0cnVjdFJlZmxlY3Rpb24gfSBmcm9tICcuL2NvbnN0cnVjdCc7XG5pbXBvcnQgeyBDb3JlVHlwZXMgfSBmcm9tICcuL2NvcmUtdHlwZXMnO1xuaW1wb3J0IHsgZ2V0RG9jVGFnIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7IGNhbWVsaXplLCBwYXNjYWxpemUgfSBmcm9tICcuLi9jYXNlJztcbmltcG9ydCB7IExpbnRlciB9IGZyb20gJy4uL2xpbnRlcic7XG5cbmNvbnN0IEdSQU5UX1JFU1VMVF9GUU4gPSAnQGF3cy1jZGsvYXdzLWlhbS5HcmFudCc7XG5cbmV4cG9ydCBjb25zdCByZXNvdXJjZUxpbnRlciA9IG5ldyBMaW50ZXIoYSA9PiBSZXNvdXJjZVJlZmxlY3Rpb24uZmluZEFsbChhKSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlIHtcbiAgc2l0ZTogQXR0cmlidXRlU2l0ZTtcbiAgcHJvcGVydHk6IHJlZmxlY3QuUHJvcGVydHk7XG4gIGNmbkF0dHJpYnV0ZU5hbWVzOiBzdHJpbmdbXTsgLy8gYnVja2V0QXJuXG59XG5cbmV4cG9ydCBlbnVtIEF0dHJpYnV0ZVNpdGUge1xuICBJbnRlcmZhY2UgPSAnaW50ZXJmYWNlJyxcbiAgQ2xhc3MgPSAnY2xhc3MnLFxufVxuXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VSZWZsZWN0aW9uIHtcblxuICAvKipcbiAgICogQHJldHVybnMgYWxsIHJlc291cmNlIGNvbnN0cnVjdHMgKGV2ZXJ5dGhpbmcgdGhhdCBleHRlbmRzIGBjZGsuUmVzb3VyY2VgKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmaW5kQWxsKGFzc2VtYmx5OiByZWZsZWN0LkFzc2VtYmx5KSB7XG4gICAgaWYgKENvcmVUeXBlcy5oYXNDb3JlTW9kdWxlKGFzc2VtYmx5KSkge1xuICAgICAgcmV0dXJuIFtdOyAvLyBub3QgcGFydCBvZiB0aGUgZGVwIHN0YWNrXG4gICAgfVxuXG4gICAgcmV0dXJuIGFzc2VtYmx5LmFsbENsYXNzZXNcbiAgICAgIC5maWx0ZXIoYyA9PiBDb3JlVHlwZXMuaXNDb25zdHJ1Y3RDbGFzcyhjKSAmJiBDb3JlVHlwZXMuaXNSZXNvdXJjZUNsYXNzKGMpKVxuICAgICAgLm1hcChjID0+IG5ldyBSZXNvdXJjZVJlZmxlY3Rpb24obmV3IENvbnN0cnVjdFJlZmxlY3Rpb24oYykpKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVbXTsgLy8gYWN0dWFsIGF0dHJpYnV0ZSBwcm9wc1xuICBwdWJsaWMgcmVhZG9ubHkgZnFuOiBzdHJpbmc7IC8vIGV4cGVjdGVkIGZxbiBvZiByZXNvdXJjZSBjbGFzc1xuXG4gIHB1YmxpYyByZWFkb25seSBhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseTtcbiAgcHVibGljIHJlYWRvbmx5IHN5czogcmVmbGVjdC5UeXBlU3lzdGVtO1xuICBwdWJsaWMgcmVhZG9ubHkgY2ZuOiBDZm5SZXNvdXJjZVJlZmxlY3Rpb247XG4gIHB1YmxpYyByZWFkb25seSBiYXNlbmFtZTogc3RyaW5nOyAvLyBpLmUuIEJ1Y2tldFxuICBwdWJsaWMgcmVhZG9ubHkgY29yZTogQ29yZVR5cGVzO1xuICBwdWJsaWMgcmVhZG9ubHkgcGh5c2ljYWxOYW1lUHJvcD86IHJlZmxlY3QuUHJvcGVydHk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNvbnN0cnVjdDogQ29uc3RydWN0UmVmbGVjdGlvbikge1xuICAgIHRoaXMuYXNzZW1ibHkgPSBjb25zdHJ1Y3QuY2xhc3NUeXBlLmFzc2VtYmx5O1xuICAgIHRoaXMuc3lzID0gdGhpcy5hc3NlbWJseS5zeXN0ZW07XG5cbiAgICBjb25zdCBjZm4gPSB0cnlSZXNvbHZlQ2ZuUmVzb3VyY2UoY29uc3RydWN0LmNsYXNzVHlwZSk7XG4gICAgaWYgKCFjZm4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgTDEgY2xhc3MgZm9yIEwyICR7Y29uc3RydWN0LmZxbn0uIGAgK1xuICAgICAgICBgSXMgXCIke2d1ZXNzUmVzb3VyY2VOYW1lKGNvbnN0cnVjdC5mcW4pfVwiIGFuIGFjdHVhbCBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZS4gYCArXG4gICAgICAgICdJZiBub3QsIHVzZSB0aGUgXCJAcmVzb3VyY2VcIiBkb2MgdGFnIHRvIGluZGljYXRlIHRoZSBmdWxsIHJlc291cmNlIG5hbWUgKGUuZy4gXCJAcmVzb3VyY2UgQVdTOjpSb3V0ZTUzOjpIb3N0ZWRab25lXCIpJyk7XG4gICAgfVxuXG4gICAgdGhpcy5jb3JlID0gbmV3IENvcmVUeXBlcyh0aGlzLnN5cyk7XG4gICAgdGhpcy5jZm4gPSBjZm47XG4gICAgdGhpcy5iYXNlbmFtZSA9IGNvbnN0cnVjdC5jbGFzc1R5cGUubmFtZTtcbiAgICB0aGlzLmZxbiA9IGNvbnN0cnVjdC5mcW47XG4gICAgdGhpcy5hdHRyaWJ1dGVzID0gdGhpcy5maW5kQXR0cmlidXRlUHJvcGVydGllcygpO1xuICAgIHRoaXMucGh5c2ljYWxOYW1lUHJvcCA9IHRoaXMuZmluZFBoeXNpY2FsTmFtZVByb3AoKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFBoeXNpY2FsTmFtZVByb3AoKSB7XG4gICAgaWYgKCF0aGlzLmNvbnN0cnVjdC5wcm9wc1R5cGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VOYW1lID0gY2FtZWxpemUodGhpcy5jZm4uYmFzZW5hbWUpO1xuXG4gICAgLy8gaWYgcmVzb3VyY2UgbmFtZSBlbmRzIHdpdGggXCJOYW1lXCIgKGUuZy4gRG9tYWluTmFtZSwgdGhlbiBqdXN0IHVzZSBpdCBhcy1pcywgb3RoZXJ3aXNlIGFwcGVuZCBcIk5hbWVcIilcbiAgICBjb25zdCBwaHlzaWNhbE5hbWVQcm9wID0gcmVzb3VyY2VOYW1lLmVuZHNXaXRoKCdOYW1lJykgPyByZXNvdXJjZU5hbWUgOiBgJHtyZXNvdXJjZU5hbWV9TmFtZWA7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0LnByb3BzVHlwZS5hbGxQcm9wZXJ0aWVzLmZpbmQoeCA9PiB4Lm5hbWUgPT09IHBoeXNpY2FsTmFtZVByb3ApO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBwcm9wZXJ0aWVzIGFyZSBhbGwgdGhlIHByb3BlcnRpZXMgdGhhdCBiZWdpbiB3aXRoIHRoZSB0eXBlIG5hbWUgKGUuZy4gYnVja2V0WHh4KS5cbiAgICpcbiAgICogV2UgYXJlIGFkZGluZyBhIGBidWNrZXRSZWZgIHByb3BlcnR5IGFzIHdlbGwgdGhhdCB3ZSBkb24ndCBuZWNlc3NhcmlseSB3YW50IHRvIGhvbGQgdG8gdGhlIHNhbWUgbGludGVyXG4gICAqIHJ1bGVzIGFzIHRoZSBvdGhlciBhdHRyaWJ1dGVzLCBzbyB3ZSBkb24ndCBjb25zaWRlciBpdCBhbiBhdHRyaWJ1dGUuXG4gICAqL1xuICBwcml2YXRlIGZpbmRBdHRyaWJ1dGVQcm9wZXJ0aWVzKCk6IEF0dHJpYnV0ZVtdIHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8QXR0cmlidXRlPigpO1xuXG4gICAgZm9yIChjb25zdCBwIG9mIHRoaXMuY29uc3RydWN0LmNsYXNzVHlwZS5hbGxQcm9wZXJ0aWVzKSB7XG4gICAgICBpZiAocC5wcm90ZWN0ZWQpIHtcbiAgICAgICAgY29udGludWU7IC8vIHNraXAgYW55IHByb3RlY3RlZCBwcm9wZXJ0aWVzXG4gICAgICB9XG4gICAgICBpZiAocC5uYW1lLmVuZHNXaXRoKCdSZWYnKSkge1xuICAgICAgICBjb250aW51ZTsgLy8gc2tpcCBhbnkgXCJSZWZcIiBwcm9wZXJ0aWVzLCB0aGVzZSBhcmUgbm90IGF0dHJpYnV0ZXNcbiAgICAgIH1cblxuICAgICAgY29uc3QgYmFzZW5hbWUgPSBjYW1lbGl6ZSh0aGlzLmNmbi5iYXNlbmFtZSk7XG5cbiAgICAgIC8vIGFuIGF0dHJpYnV0ZSBwcm9wZXJ0eSBpcyBhIHByb3BlcnR5IHdoaWNoIHN0YXJ0cyB3aXRoIHRoZSB0eXBlIG5hbWVcbiAgICAgIC8vIChlLmcuIFwiYnVja2V0WHh4XCIpIGFuZC9vciBoYXMgYW4gQGF0dHJpYnV0ZSBkb2MgdGFnLlxuICAgICAgY29uc3QgdGFnID0gZ2V0RG9jVGFnKHAsICdhdHRyaWJ1dGUnKTtcbiAgICAgIGlmICghcC5uYW1lLnN0YXJ0c1dpdGgoYmFzZW5hbWUpICYmICF0YWcpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGxldCBjZm5BdHRyaWJ1dGVOYW1lcztcbiAgICAgIGlmICh0YWcgJiYgdGFnICE9PSAndHJ1ZScpIHtcbiAgICAgICAgLy8gaWYgdGhlcmUncyBhbiBgQGF0dHJpYnV0ZWAgZG9jIHRhZyB3aXRoIGEgdmFsdWUgb3RoZXIgdGhhbiBcInRydWVcIlxuICAgICAgICAvLyBpdCBzaG91bGQgYmUgdXNlZCBhcyB0aGUgQ0ZOIGF0dHJpYnV0ZSBuYW1lIGluc3RlYWQgb2YgdGhlIHByb3BlcnR5IG5hbWVcbiAgICAgICAgLy8gbXVsdGlwbGUgYXR0cmlidXRlIG5hbWVzIGNhbiBiZSBsaXN0ZWQgYXMgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdFxuICAgICAgICBjZm5BdHRyaWJ1dGVOYW1lcyA9IHRhZy5zcGxpdCgnLCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gb2theSwgd2UgZG9uJ3QgaGF2ZSBhbiBleHBsaWNpdCBDRk4gYXR0cmlidXRlIG5hbWUsIHNvIHdlJ2xsIGd1ZXNzIGl0XG4gICAgICAgIC8vIGZyb20gdGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LlxuXG4gICAgICAgIGNvbnN0IG5hbWUgPSBwYXNjYWxpemUocC5uYW1lKTtcbiAgICAgICAgaWYgKHRoaXMuY2ZuLmF0dHJpYnV0ZU5hbWVzLmluY2x1ZGVzKG5hbWUpKSB7XG4gICAgICAgICAgLy8gc3BlY2lhbCBjYXNlOiB0aGVyZSBpcyBhIGNsb3VkZm9ybWF0aW9uIHJlc291cmNlIHR5cGUgaW4gdGhlIGF0dHJpYnV0ZSBuYW1lXG4gICAgICAgICAgLy8gZm9yIGV4YW1wbGUgJ1JvbGVJZCcuXG4gICAgICAgICAgY2ZuQXR0cmlidXRlTmFtZXMgPSBbbmFtZV07XG4gICAgICAgIH0gZWxzZSBpZiAocC5uYW1lLnN0YXJ0c1dpdGgoYmFzZW5hbWUpKSB7XG4gICAgICAgICAgLy8gYmVnaW5zIHdpdGggdGhlIHJlc291cmNlIG5hbWUsIGp1c3QgdHJpbSBpdFxuICAgICAgICAgIGNmbkF0dHJpYnV0ZU5hbWVzID0gW25hbWUuc3Vic3RyaW5nKHRoaXMuY2ZuLmJhc2VuYW1lLmxlbmd0aCldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHdlIGNvdWxkbid0IGRldGVybWluZSBDRk4gYXR0cmlidXRlIG5hbWUsIHNvIHdlIGRvbid0IGFjY291bnQgZm9yIHRoaXNcbiAgICAgICAgICAvLyBhcyBhbiBhdHRyaWJ1dGUuIHRoaXMgY291bGQgYmUsIGZvciBleGFtcGxlLCB3aGVuIGEgY29uc3RydWN0IGltcGxlbWVudHNcbiAgICAgICAgICAvLyBhbiBpbnRlcmZhY2UgdGhhdCByZXByZXNlbnRzIGFub3RoZXIgcmVzb3VyY2UgKGUuZy4gYGxhbWJkYS5BbGlhc2AgaW1wbGVtZW50cyBgSUZ1bmN0aW9uYCkuXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gY2hlY2sgaWYgdGhpcyBhdHRyaWJ1dGUgaXMgZGVmaW5lZCBvbiBhbiBpbnRlcmZhY2Ugb3Igb24gYSBjbGFzc1xuICAgICAgY29uc3QgcHJvcGVydHkgPSBmaW5kRGVjbGFyYXRpb25TaXRlKHApO1xuICAgICAgY29uc3Qgc2l0ZSA9IHByb3BlcnR5LnBhcmVudFR5cGUuaXNJbnRlcmZhY2VUeXBlKCkgPyBBdHRyaWJ1dGVTaXRlLkludGVyZmFjZSA6IEF0dHJpYnV0ZVNpdGUuQ2xhc3M7XG5cbiAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgc2l0ZSxcbiAgICAgICAgY2ZuQXR0cmlidXRlTmFtZXMsXG4gICAgICAgIHByb3BlcnR5LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kRGVjbGFyYXRpb25TaXRlKHByb3A6IHJlZmxlY3QuUHJvcGVydHkpOiByZWZsZWN0LlByb3BlcnR5IHtcbiAgaWYgKCFwcm9wLm92ZXJyaWRlcyB8fCAoIXByb3Aub3ZlcnJpZGVzLmlzQ2xhc3NUeXBlKCkgJiYgIXByb3Aub3ZlcnJpZGVzLmlzSW50ZXJmYWNlVHlwZSgpKSkge1xuICAgIGlmICghcHJvcC5wYXJlbnRUeXBlLmlzQ2xhc3NUeXBlKCkgJiYgIXByb3AucGFyZW50VHlwZS5pc0ludGVyZmFjZVR5cGUoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHBhcmVudCB0eXBlJyk7XG4gICAgfVxuICAgIHJldHVybiBwcm9wO1xuICB9XG5cbiAgY29uc3Qgb3ZlcnJpZGVzUHJvcCA9IHByb3Aub3ZlcnJpZGVzLmFsbFByb3BlcnRpZXMuZmluZChwID0+IHAubmFtZSA9PT0gcHJvcC5uYW1lKTtcbiAgaWYgKCFvdmVycmlkZXNQcm9wKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBwcm9wZXJ0eSAke3Byb3AubmFtZX0gaW4gb3ZlcnJpZGUgc2l0ZSAke3Byb3Aub3ZlcnJpZGVzLmZxbn1gKTtcbiAgfVxuICByZXR1cm4gZmluZERlY2xhcmF0aW9uU2l0ZShvdmVycmlkZXNQcm9wKTtcbn1cblxucmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Jlc291cmNlLWNsYXNzLWV4dGVuZHMtcmVzb3VyY2UnLFxuICBtZXNzYWdlOiAncmVzb3VyY2UgY2xhc3NlcyBtdXN0IGV4dGVuZCBcImNkay5SZXNvdXJjZVwiIGRpcmVjdGx5IG9yIGluZGlyZWN0bHknLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCByZXNvdXJjZUJhc2UgPSBlLmN0eC5zeXMuZmluZENsYXNzKGUuY3R4LmNvcmUucmVzb3VyY2VDbGFzc0Zxbik7XG4gICAgZS5hc3NlcnQoZS5jdHguY29uc3RydWN0LmNsYXNzVHlwZS5leHRlbmRzKHJlc291cmNlQmFzZSksIGUuY3R4LmNvbnN0cnVjdC5mcW4pO1xuICB9LFxufSk7XG5cbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdyZXNvdXJjZS1pbnRlcmZhY2UnLFxuICB3YXJuaW5nOiB0cnVlLFxuICBtZXNzYWdlOiAnZXZlcnkgcmVzb3VyY2UgbXVzdCBoYXZlIGEgcmVzb3VyY2UgaW50ZXJmYWNlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgZS5hc3NlcnQoZS5jdHguY29uc3RydWN0LmludGVyZmFjZVR5cGUsIGUuY3R4LmNvbnN0cnVjdC5mcW4pO1xuICB9LFxufSk7XG5cbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdyZXNvdXJjZS1pbnRlcmZhY2UtZXh0ZW5kcy1yZXNvdXJjZScsXG4gIG1lc3NhZ2U6ICdjb25zdHJ1Y3QgaW50ZXJmYWNlcyBvZiBBV1MgcmVzb3VyY2VzIG11c3QgZXh0ZW5kIGNkay5JUmVzb3VyY2UnLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCByZXNvdXJjZUludGVyZmFjZSA9IGUuY3R4LmNvbnN0cnVjdC5pbnRlcmZhY2VUeXBlO1xuICAgIGlmICghcmVzb3VyY2VJbnRlcmZhY2UpIHsgcmV0dXJuOyB9XG5cbiAgICBjb25zdCByZXNvdXJjZUludGVyZmFjZUZxbiA9IGUuY3R4LmNvcmUucmVzb3VyY2VJbnRlcmZhY2VGcW47XG4gICAgY29uc3QgaW50ZXJmYWNlQmFzZSA9IGUuY3R4LnN5cy5maW5kSW50ZXJmYWNlKHJlc291cmNlSW50ZXJmYWNlRnFuKTtcbiAgICBlLmFzc2VydChyZXNvdXJjZUludGVyZmFjZS5leHRlbmRzKGludGVyZmFjZUJhc2UpLCByZXNvdXJjZUludGVyZmFjZS5mcW4pO1xuICB9LFxufSk7XG5cbi8qXG4vLyBUaGlzIHJ1bGUgaXMgdGhlIHdvcnN0XG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncmVzb3VyY2UtYXR0cmlidXRlJyxcbiAgbWVzc2FnZTpcbiAgICAncmVzb3VyY2VzIG11c3QgcmVwcmVzZW50IGFsbCBjbG91ZGZvcm1hdGlvbiBhdHRyaWJ1dGVzIGFzIGF0dHJpYnV0ZSBwcm9wZXJ0aWVzLiAnICtcbiAgICAnXCJAYXR0cmlidXRlIEFUVFJbLEFUVFJdXCIgY2FuIGJlIHVzZWQgdG8gdGFnIG5vbi1zdGFuZGFyZCBhdHRyaWJ1dGUgbmFtZXMuICcgK1xuICAgICdtaXNzaW5nIHByb3BlcnR5OicsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGZvciAoY29uc3QgbmFtZSBvZiBlLmN0eC5jZm4uYXR0cmlidXRlTmFtZXMpIHtcbiAgICAgIGNvbnN0IGV4cGVjdGVkID0gY2FtZWxjYXNlKG5hbWUpLnN0YXJ0c1dpdGgoY2FtZWxjYXNlKGUuY3R4LmNmbi5iYXNlbmFtZSkpXG4gICAgICAgID8gY2FtZWxjYXNlKG5hbWUpXG4gICAgICAgIDogY2FtZWxjYXNlKGUuY3R4LmNmbi5iYXNlbmFtZSArIG5hbWUpO1xuXG4gICAgICBjb25zdCBmb3VuZCA9IGUuY3R4LmF0dHJpYnV0ZXMuZmluZChhID0+IGEuY2ZuQXR0cmlidXRlTmFtZXMuaW5jbHVkZXMobmFtZSkpO1xuICAgICAgZS5hc3NlcnQoZm91bmQsIGAke2UuY3R4LmZxbn0uJHtleHBlY3RlZH1gLCBleHBlY3RlZCk7XG4gICAgfVxuICB9LFxufSk7XG4qL1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAnZ3JhbnQtcmVzdWx0JyxcbiAgbWVzc2FnZTogYFwiZ3JhbnRcIiBtZXRob2QgbXVzdCByZXR1cm4gJHtHUkFOVF9SRVNVTFRfRlFOfWAsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGNvbnN0IGdyYW50UmVzdWx0VHlwZSA9IGUuY3R4LnN5cy50cnlGaW5kRnFuKEdSQU5UX1JFU1VMVF9GUU4pO1xuXG4gICAgLy8gdGhpcyBpbXBsaWVzIHRoYXQgd2UgYXJlIGF0IGEgbG93ZXIgbGF5ZXIgKGkuZS4gQGF3cy1jZGsvY29yZSlcbiAgICBpZiAoIWdyYW50UmVzdWx0VHlwZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGdyYW50TWV0aG9kcyA9IGUuY3R4LmNvbnN0cnVjdC5jbGFzc1R5cGUuYWxsTWV0aG9kcy5maWx0ZXIobSA9PiBtLm5hbWUuc3RhcnRzV2l0aCgnZ3JhbnQnKSk7XG5cbiAgICBmb3IgKGNvbnN0IGdyYW50TWV0aG9kIG9mIGdyYW50TWV0aG9kcykge1xuICAgICAgZS5hc3NlcnRTaWduYXR1cmUoZ3JhbnRNZXRob2QsIHtcbiAgICAgICAgcmV0dXJuczogZ3JhbnRSZXN1bHRUeXBlLFxuICAgICAgfSk7XG4gICAgfVxuICB9LFxufSk7XG5cbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdwcm9wcy1waHlzaWNhbC1uYW1lJyxcbiAgbWVzc2FnZTogJ0V2ZXJ5IFJlc291cmNlIG11c3QgaGF2ZSBhIHNpbmdsZSBwaHlzaWNhbCBuYW1lIGNvbnN0cnVjdGlvbiBwcm9wZXJ0eSwgJyArXG4gICAgJ3dpdGggYSBuYW1lIHRoYXQgaXMgYW4gZW5kaW5nIHN1YnN0cmluZyBvZiA8Y2ZuUmVzb3VyY2U+TmFtZScsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHguY29uc3RydWN0LnByb3BzVHlwZSkgeyByZXR1cm47IH1cbiAgICBlLmFzc2VydChlLmN0eC5waHlzaWNhbE5hbWVQcm9wLCBlLmN0eC5jb25zdHJ1Y3QucHJvcHNGcW4pO1xuICB9LFxufSk7XG5cbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdwcm9wcy1waHlzaWNhbC1uYW1lLXR5cGUnLFxuICBtZXNzYWdlOiAnVGhlIHR5cGUgb2YgdGhlIHBoeXNpY2FsIG5hbWUgcHJvcCBzaG91bGQgYWx3YXlzIGJlIGEgXCJzdHJpbmdcIicsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHgucGh5c2ljYWxOYW1lUHJvcCkgeyByZXR1cm47IH1cbiAgICBjb25zdCBwcm9wID0gZS5jdHgucGh5c2ljYWxOYW1lUHJvcDtcbiAgICBlLmFzc2VydFR5cGVzRXF1YWwoZS5jdHguc3lzLCBwcm9wLnR5cGUsICdzdHJpbmcnLCBgJHtlLmN0eC5jb25zdHJ1Y3QucHJvcHNGcW59LiR7cHJvcC5uYW1lfWApO1xuICB9LFxufSk7XG5cbmZ1bmN0aW9uIHRyeVJlc29sdmVDZm5SZXNvdXJjZShyZXNvdXJjZUNsYXNzOiByZWZsZWN0LkNsYXNzVHlwZSk6IENmblJlc291cmNlUmVmbGVjdGlvbiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHN5cyA9IHJlc291cmNlQ2xhc3Muc3lzdGVtO1xuXG4gIC8vIGlmIHRoZXJlIGlzIGEgQHJlc291cmNlIGRvYyB0YWcsIGl0IHRha2VzIHByZWNlZGVjZVxuICBjb25zdCB0YWcgPSByZXNvdXJjZUNsYXNzLmRvY3MuY3VzdG9tVGFnKCdyZXNvdXJjZScpO1xuICBpZiAodGFnKSB7XG4gICAgcmV0dXJuIENmblJlc291cmNlUmVmbGVjdGlvbi5maW5kQnlOYW1lKHN5cywgdGFnKTtcbiAgfVxuXG4gIC8vIHBhcnNlIHRoZSBGUU4gb2YgdGhlIGNsYXNzIG5hbWUgYW5kIHNlZSBpZiB3ZSBjYW4gZmluZCBhIG1hdGNoaW5nIENGTiByZXNvdXJjZVxuICBjb25zdCBndWVzcyA9IGd1ZXNzUmVzb3VyY2VOYW1lKHJlc291cmNlQ2xhc3MuZnFuKTtcbiAgaWYgKGd1ZXNzKSB7XG4gICAgY29uc3QgY2ZuID0gQ2ZuUmVzb3VyY2VSZWZsZWN0aW9uLmZpbmRCeU5hbWUoc3lzLCBndWVzcyk7XG4gICAgaWYgKGNmbikge1xuICAgICAgcmV0dXJuIGNmbjtcbiAgICB9XG4gIH1cblxuICAvLyB0cnkgdG8gcmVzb2x2ZSB0aHJvdWdoIGFuY2VzdG9yc1xuICBmb3IgKGNvbnN0IGJhc2Ugb2YgcmVzb3VyY2VDbGFzcy5hbmNlc3RvcnMpIHtcbiAgICBjb25zdCByZXQgPSB0cnlSZXNvbHZlQ2ZuUmVzb3VyY2UoYmFzZSk7XG4gICAgaWYgKHJldCkge1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG4gIH1cblxuICAvLyBmYWlsZWQgbWlzcmFibHlcbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ3Vlc3NSZXNvdXJjZU5hbWUoZnFuOiBzdHJpbmcpIHtcbiAgLy8gU3RyaXAgYW55IHZlcnNpb24gc3VmZml4ZXMgZS5nLiAnVGFibGVWMicgYmVjb21lcyAnVGFibGUnXG4gIHZhciBtYXRjaCA9IC9eKC4rPykoVlswLTldKyk/JC8uZXhlYyhmcW4pO1xuICBpZiAoIW1hdGNoKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgWywgdmVyc2lvbmxlc3NdID0gbWF0Y2g7XG5cbiAgbWF0Y2ggPSAvYXdzLWNkay1saWJcXC4oW2Etel0rKV8oW2EtejAtOV0rKVxcLihbQS1aXVthLXpBLVowLTldKykvLmV4ZWModmVyc2lvbmxlc3MpO1xuXG4gIGlmICghbWF0Y2gpIHtcbiAgICAvLyBBbHBoYSBuYW1lXG4gICAgbWF0Y2ggPSAvQGF3cy1jZGtcXC8oW2Etel0rKS0oW2EtejAtOV0rKS1hbHBoYVxcLihbQS1aXVthLXpBLVowLTldKykvLmV4ZWMoZnFuKTtcbiAgfVxuXG4gIGlmICghbWF0Y2gpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgWywgb3JnLCBucywgcnNdID0gbWF0Y2g7XG4gIGlmICghb3JnIHx8ICFucyB8fCAhcnMpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuXG4gIHJldHVybiBgJHtvcmd9Ojoke25zfTo6JHtyc31gO1xufVxuIl19
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxpREFBdUQ7QUFDdkQsMkNBQWtEO0FBQ2xELDZDQUF5QztBQUN6QyxpQ0FBbUM7QUFDbkMsa0NBQThDO0FBQzlDLHNDQUFtQztBQUVuQyxNQUFNLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDO0FBRXJDLFFBQUEsY0FBYyxHQUFHLElBQUksZUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFRN0UsSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLHdDQUF1QixDQUFBO0lBQ3ZCLGdDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLGFBQWEsNkJBQWIsYUFBYSxRQUd4QjtBQUVELE1BQWEsa0JBQWtCO0lBeUJEO0lBdkI1Qjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBMEI7UUFDOUMsSUFBSSxzQkFBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sRUFBRSxDQUFDLENBQUMsNEJBQTRCO1FBQ3pDLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQyxVQUFVO2FBQ3ZCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLHNCQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksc0JBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLCtCQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRWUsVUFBVSxDQUFjLENBQUMseUJBQXlCO0lBQ2xELEdBQUcsQ0FBUyxDQUFDLGlDQUFpQztJQUU5QyxRQUFRLENBQW1CO0lBQzNCLEdB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Y2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBDZm5SZXNvdXJjZVJlZmxlY3Rpb24gfSBmcm9tICcuL2Nmbi1yZXNvdXJjZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3RSZWZsZWN0aW9uIH0gZnJvbSAnLi9jb25zdHJ1Y3QnO1xuaW1wb3J0IHsgQ29yZVR5cGVzIH0gZnJvbSAnLi9jb3JlLXR5cGVzJztcbmltcG9ydCB7IGdldERvY1RhZyB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBjYW1lbGl6ZSwgcGFzY2FsaXplIH0gZnJvbSAnLi4vY2FzZSc7XG5pbXBvcnQgeyBMaW50ZXIgfSBmcm9tICcuLi9saW50ZXInO1xuXG5jb25zdCBHUkFOVF9SRVNVTFRfRlFOID0gJ0Bhd3MtY2RrL2F3cy1pYW0uR3JhbnQnO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2VMaW50ZXIgPSBuZXcgTGludGVyKGEgPT4gUmVzb3VyY2VSZWZsZWN0aW9uLmZpbmRBbGwoYSkpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZSB7XG4gIHNpdGU6IEF0dHJpYnV0ZVNpdGU7XG4gIHByb3BlcnR5OiByZWZsZWN0LlByb3BlcnR5O1xuICBjZm5BdHRyaWJ1dGVOYW1lczogc3RyaW5nW107IC8vIGJ1Y2tldEFyblxufVxuXG5leHBvcnQgZW51bSBBdHRyaWJ1dGVTaXRlIHtcbiAgSW50ZXJmYWNlID0gJ2ludGVyZmFjZScsXG4gIENsYXNzID0gJ2NsYXNzJyxcbn1cblxuZXhwb3J0IGNsYXNzIFJlc291cmNlUmVmbGVjdGlvbiB7XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIGFsbCByZXNvdXJjZSBjb25zdHJ1Y3RzIChldmVyeXRoaW5nIHRoYXQgZXh0ZW5kcyBgY2RrLlJlc291cmNlYClcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZmluZEFsbChhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseSkge1xuICAgIGlmIChDb3JlVHlwZXMuaGFzQ29yZU1vZHVsZShhc3NlbWJseSkpIHtcbiAgICAgIHJldHVybiBbXTsgLy8gbm90IHBhcnQgb2YgdGhlIGRlcCBzdGFja1xuICAgIH1cblxuICAgIHJldHVybiBhc3NlbWJseS5hbGxDbGFzc2VzXG4gICAgICAuZmlsdGVyKGMgPT4gQ29yZVR5cGVzLmlzQ29uc3RydWN0Q2xhc3MoYykgJiYgQ29yZVR5cGVzLmlzUmVzb3VyY2VDbGFzcyhjKSlcbiAgICAgIC5tYXAoYyA9PiBuZXcgUmVzb3VyY2VSZWZsZWN0aW9uKG5ldyBDb25zdHJ1Y3RSZWZsZWN0aW9uKGMpKSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgYXR0cmlidXRlczogQXR0cmlidXRlW107IC8vIGFjdHVhbCBhdHRyaWJ1dGUgcHJvcHNcbiAgcHVibGljIHJlYWRvbmx5IGZxbjogc3RyaW5nOyAvLyBleHBlY3RlZCBmcW4gb2YgcmVzb3VyY2UgY2xhc3NcblxuICBwdWJsaWMgcmVhZG9ubHkgYXNzZW1ibHk6IHJlZmxlY3QuQXNzZW1ibHk7XG4gIHB1YmxpYyByZWFkb25seSBzeXM6IHJlZmxlY3QuVHlwZVN5c3RlbTtcbiAgcHVibGljIHJlYWRvbmx5IGNmbjogQ2ZuUmVzb3VyY2VSZWZsZWN0aW9uO1xuICBwdWJsaWMgcmVhZG9ubHkgYmFzZW5hbWU6IHN0cmluZzsgLy8gaS5lLiBCdWNrZXRcbiAgcHVibGljIHJlYWRvbmx5IGNvcmU6IENvcmVUeXBlcztcbiAgcHVibGljIHJlYWRvbmx5IHBoeXNpY2FsTmFtZVByb3A/OiByZWZsZWN0LlByb3BlcnR5O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjb25zdHJ1Y3Q6IENvbnN0cnVjdFJlZmxlY3Rpb24pIHtcbiAgICB0aGlzLmFzc2VtYmx5ID0gY29uc3RydWN0LmNsYXNzVHlwZS5hc3NlbWJseTtcbiAgICB0aGlzLnN5cyA9IHRoaXMuYXNzZW1ibHkuc3lzdGVtO1xuXG4gICAgY29uc3QgY2ZuID0gdHJ5UmVzb2x2ZUNmblJlc291cmNlKGNvbnN0cnVjdC5jbGFzc1R5cGUpO1xuICAgIGlmICghY2ZuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIEwxIGNsYXNzIGZvciBMMiAke2NvbnN0cnVjdC5mcW59LiBgICtcbiAgICAgICAgYElzIFwiJHtndWVzc1Jlc291cmNlTmFtZShjb25zdHJ1Y3QuZnFuKX1cIiBhbiBhY3R1YWwgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UuIGAgK1xuICAgICAgICAnSWYgbm90LCB1c2UgdGhlIFwiQHJlc291cmNlXCIgZG9jIHRhZyB0byBpbmRpY2F0ZSB0aGUgZnVsbCByZXNvdXJjZSBuYW1lIChlLmcuIFwiQHJlc291cmNlIEFXUzo6Um91dGU1Mzo6SG9zdGVkWm9uZVwiKScpO1xuICAgIH1cblxuICAgIHRoaXMuY29yZSA9IG5ldyBDb3JlVHlwZXModGhpcy5zeXMpO1xuICAgIHRoaXMuY2ZuID0gY2ZuO1xuICAgIHRoaXMuYmFzZW5hbWUgPSBjb25zdHJ1Y3QuY2xhc3NUeXBlLm5hbWU7XG4gICAgdGhpcy5mcW4gPSBjb25zdHJ1Y3QuZnFuO1xuICAgIHRoaXMuYXR0cmlidXRlcyA9IHRoaXMuZmluZEF0dHJpYnV0ZVByb3BlcnRpZXMoKTtcbiAgICB0aGlzLnBoeXNpY2FsTmFtZVByb3AgPSB0aGlzLmZpbmRQaHlzaWNhbE5hbWVQcm9wKCk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRQaHlzaWNhbE5hbWVQcm9wKCkge1xuICAgIGlmICghdGhpcy5jb25zdHJ1Y3QucHJvcHNUeXBlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IGNhbWVsaXplKHRoaXMuY2ZuLmJhc2VuYW1lKTtcblxuICAgIC8vIGlmIHJlc291cmNlIG5hbWUgZW5kcyB3aXRoIFwiTmFtZVwiIChlLmcuIERvbWFpbk5hbWUsIHRoZW4ganVzdCB1c2UgaXQgYXMtaXMsIG90aGVyd2lzZSBhcHBlbmQgXCJOYW1lXCIpXG4gICAgY29uc3QgcGh5c2ljYWxOYW1lUHJvcCA9IHJlc291cmNlTmFtZS5lbmRzV2l0aCgnTmFtZScpID8gcmVzb3VyY2VOYW1lIDogYCR7cmVzb3VyY2VOYW1lfU5hbWVgO1xuICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdC5wcm9wc1R5cGUuYWxsUHJvcGVydGllcy5maW5kKHggPT4geC5uYW1lID09PSBwaHlzaWNhbE5hbWVQcm9wKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgcHJvcGVydGllcyBhcmUgYWxsIHRoZSBwcm9wZXJ0aWVzIHRoYXQgYmVnaW4gd2l0aCB0aGUgdHlwZSBuYW1lIChlLmcuIGJ1Y2tldFh4eCkuXG4gICAqXG4gICAqIFdlIGFyZSBhZGRpbmcgYSBgYnVja2V0UmVmYCBwcm9wZXJ0eSBhcyB3ZWxsIHRoYXQgd2UgZG9uJ3QgbmVjZXNzYXJpbHkgd2FudCB0byBob2xkIHRvIHRoZSBzYW1lIGxpbnRlclxuICAgKiBydWxlcyBhcyB0aGUgb3RoZXIgYXR0cmlidXRlcywgc28gd2UgZG9uJ3QgY29uc2lkZXIgaXQgYW4gYXR0cmlidXRlLlxuICAgKi9cbiAgcHJpdmF0ZSBmaW5kQXR0cmlidXRlUHJvcGVydGllcygpOiBBdHRyaWJ1dGVbXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PEF0dHJpYnV0ZT4oKTtcblxuICAgIGZvciAoY29uc3QgcCBvZiB0aGlzLmNvbnN0cnVjdC5jbGFzc1R5cGUuYWxsUHJvcGVydGllcykge1xuICAgICAgaWYgKHAucHJvdGVjdGVkKSB7XG4gICAgICAgIGNvbnRpbnVlOyAvLyBza2lwIGFueSBwcm90ZWN0ZWQgcHJvcGVydGllc1xuICAgICAgfVxuICAgICAgaWYgKHAubmFtZS5lbmRzV2l0aCgnUmVmJykpIHtcbiAgICAgICAgY29udGludWU7IC8vIHNraXAgYW55IFwiUmVmXCIgcHJvcGVydGllcywgdGhlc2UgYXJlIG5vdCBhdHRyaWJ1dGVzXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJhc2VuYW1lID0gY2FtZWxpemUodGhpcy5jZm4uYmFzZW5hbWUpO1xuXG4gICAgICAvLyBhbiBhdHRyaWJ1dGUgcHJvcGVydHkgaXMgYSBwcm9wZXJ0eSB3aGljaCBzdGFydHMgd2l0aCB0aGUgdHlwZSBuYW1lXG4gICAgICAvLyAoZS5nLiBcImJ1Y2tldFh4eFwiKSBhbmQvb3IgaGFzIGFuIEBhdHRyaWJ1dGUgZG9jIHRhZy5cbiAgICAgIGNvbnN0IHRhZyA9IGdldERvY1RhZyhwLCAnYXR0cmlidXRlJyk7XG4gICAgICBpZiAoIXAubmFtZS5zdGFydHNXaXRoKGJhc2VuYW1lKSAmJiAhdGFnKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBsZXQgY2ZuQXR0cmlidXRlTmFtZXM7XG4gICAgICBpZiAodGFnICYmIHRhZyAhPT0gJ3RydWUnKSB7XG4gICAgICAgIC8vIGlmIHRoZXJlJ3MgYW4gYEBhdHRyaWJ1dGVgIGRvYyB0YWcgd2l0aCBhIHZhbHVlIG90aGVyIHRoYW4gXCJ0cnVlXCJcbiAgICAgICAgLy8gaXQgc2hvdWxkIGJlIHVzZWQgYXMgdGhlIENGTiBhdHRyaWJ1dGUgbmFtZSBpbnN0ZWFkIG9mIHRoZSBwcm9wZXJ0eSBuYW1lXG4gICAgICAgIC8vIG11bHRpcGxlIGF0dHJpYnV0ZSBuYW1lcyBjYW4gYmUgbGlzdGVkIGFzIGEgY29tbWEtZGVsaW1pdGVkIGxpc3RcbiAgICAgICAgY2ZuQXR0cmlidXRlTmFtZXMgPSB0YWcuc3BsaXQoJywnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIG9rYXksIHdlIGRvbid0IGhhdmUgYW4gZXhwbGljaXQgQ0ZOIGF0dHJpYnV0ZSBuYW1lLCBzbyB3ZSdsbCBndWVzcyBpdFxuICAgICAgICAvLyBmcm9tIHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eS5cblxuICAgICAgICBjb25zdCBuYW1lID0gcGFzY2FsaXplKHAubmFtZSk7XG4gICAgICAgIGlmICh0aGlzLmNmbi5hdHRyaWJ1dGVOYW1lcy5pbmNsdWRlcyhuYW1lKSkge1xuICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZTogdGhlcmUgaXMgYSBjbG91ZGZvcm1hdGlvbiByZXNvdXJjZSB0eXBlIGluIHRoZSBhdHRyaWJ1dGUgbmFtZVxuICAgICAgICAgIC8vIGZvciBleGFtcGxlICdSb2xlSWQnLlxuICAgICAgICAgIGNmbkF0dHJpYnV0ZU5hbWVzID0gW25hbWVdO1xuICAgICAgICB9IGVsc2UgaWYgKHAubmFtZS5zdGFydHNXaXRoKGJhc2VuYW1lKSkge1xuICAgICAgICAgIC8vIGJlZ2lucyB3aXRoIHRoZSByZXNvdXJjZSBuYW1lLCBqdXN0IHRyaW0gaXRcbiAgICAgICAgICBjZm5BdHRyaWJ1dGVOYW1lcyA9IFtuYW1lLnN1YnN0cmluZyh0aGlzLmNmbi5iYXNlbmFtZS5sZW5ndGgpXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyB3ZSBjb3VsZG4ndCBkZXRlcm1pbmUgQ0ZOIGF0dHJpYnV0ZSBuYW1lLCBzbyB3ZSBkb24ndCBhY2NvdW50IGZvciB0aGlzXG4gICAgICAgICAgLy8gYXMgYW4gYXR0cmlidXRlLiB0aGlzIGNvdWxkIGJlLCBmb3IgZXhhbXBsZSwgd2hlbiBhIGNvbnN0cnVjdCBpbXBsZW1lbnRzXG4gICAgICAgICAgLy8gYW4gaW50ZXJmYWNlIHRoYXQgcmVwcmVzZW50cyBhbm90aGVyIHJlc291cmNlIChlLmcuIGBsYW1iZGEuQWxpYXNgIGltcGxlbWVudHMgYElGdW5jdGlvbmApLlxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIGNoZWNrIGlmIHRoaXMgYXR0cmlidXRlIGlzIGRlZmluZWQgb24gYW4gaW50ZXJmYWNlIG9yIG9uIGEgY2xhc3NcbiAgICAgIGNvbnN0IHByb3BlcnR5ID0gZmluZERlY2xhcmF0aW9uU2l0ZShwKTtcbiAgICAgIGNvbnN0IHNpdGUgPSBwcm9wZXJ0eS5wYXJlbnRUeXBlLmlzSW50ZXJmYWNlVHlwZSgpID8gQXR0cmlidXRlU2l0ZS5JbnRlcmZhY2UgOiBBdHRyaWJ1dGVTaXRlLkNsYXNzO1xuXG4gICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgIHNpdGUsXG4gICAgICAgIGNmbkF0dHJpYnV0ZU5hbWVzLFxuICAgICAgICBwcm9wZXJ0eSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZERlY2xhcmF0aW9uU2l0ZShwcm9wOiByZWZsZWN0LlByb3BlcnR5KTogcmVmbGVjdC5Qcm9wZXJ0eSB7XG4gIGlmICghcHJvcC5vdmVycmlkZXMgfHwgKCFwcm9wLm92ZXJyaWRlcy5pc0NsYXNzVHlwZSgpICYmICFwcm9wLm92ZXJyaWRlcy5pc0ludGVyZmFjZVR5cGUoKSkpIHtcbiAgICBpZiAoIXByb3AucGFyZW50VHlwZS5pc0NsYXNzVHlwZSgpICYmICFwcm9wLnBhcmVudFR5cGUuaXNJbnRlcmZhY2VUeXBlKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBwYXJlbnQgdHlwZScpO1xuICAgIH1cbiAgICByZXR1cm4gcHJvcDtcbiAgfVxuXG4gIGNvbnN0IG92ZXJyaWRlc1Byb3AgPSBwcm9wLm92ZXJyaWRlcy5hbGxQcm9wZXJ0aWVzLmZpbmQocCA9PiBwLm5hbWUgPT09IHByb3AubmFtZSk7XG4gIGlmICghb3ZlcnJpZGVzUHJvcCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgcHJvcGVydHkgJHtwcm9wLm5hbWV9IGluIG92ZXJyaWRlIHNpdGUgJHtwcm9wLm92ZXJyaWRlcy5mcW59YCk7XG4gIH1cbiAgcmV0dXJuIGZpbmREZWNsYXJhdGlvblNpdGUob3ZlcnJpZGVzUHJvcCk7XG59XG5cbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdyZXNvdXJjZS1jbGFzcy1leHRlbmRzLXJlc291cmNlJyxcbiAgbWVzc2FnZTogJ3Jlc291cmNlIGNsYXNzZXMgbXVzdCBleHRlbmQgXCJjZGsuUmVzb3VyY2VcIiBkaXJlY3RseSBvciBpbmRpcmVjdGx5JyxcbiAgZXZhbDogZSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2VCYXNlID0gZS5jdHguc3lzLmZpbmRDbGFzcyhlLmN0eC5jb3JlLnJlc291cmNlQ2xhc3NGcW4pO1xuICAgIGUuYXNzZXJ0KGUuY3R4LmNvbnN0cnVjdC5jbGFzc1R5cGUuZXh0ZW5kcyhyZXNvdXJjZUJhc2UpLCBlLmN0eC5jb25zdHJ1Y3QuZnFuKTtcbiAgfSxcbn0pO1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncmVzb3VyY2UtaW50ZXJmYWNlJyxcbiAgd2FybmluZzogdHJ1ZSxcbiAgbWVzc2FnZTogJ2V2ZXJ5IHJlc291cmNlIG11c3QgaGF2ZSBhIHJlc291cmNlIGludGVyZmFjZScsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGUuYXNzZXJ0KGUuY3R4LmNvbnN0cnVjdC5pbnRlcmZhY2VUeXBlLCBlLmN0eC5jb25zdHJ1Y3QuZnFuKTtcbiAgfSxcbn0pO1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncmVzb3VyY2UtaW50ZXJmYWNlLWV4dGVuZHMtcmVzb3VyY2UnLFxuICBtZXNzYWdlOiAnY29uc3RydWN0IGludGVyZmFjZXMgb2YgQVdTIHJlc291cmNlcyBtdXN0IGV4dGVuZCBjZGsuSVJlc291cmNlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2VJbnRlcmZhY2UgPSBlLmN0eC5jb25zdHJ1Y3QuaW50ZXJmYWNlVHlwZTtcbiAgICBpZiAoIXJlc291cmNlSW50ZXJmYWNlKSB7IHJldHVybjsgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VJbnRlcmZhY2VGcW4gPSBlLmN0eC5jb3JlLnJlc291cmNlSW50ZXJmYWNlRnFuO1xuICAgIGNvbnN0IGludGVyZmFjZUJhc2UgPSBlLmN0eC5zeXMuZmluZEludGVyZmFjZShyZXNvdXJjZUludGVyZmFjZUZxbik7XG4gICAgZS5hc3NlcnQocmVzb3VyY2VJbnRlcmZhY2UuZXh0ZW5kcyhpbnRlcmZhY2VCYXNlKSwgcmVzb3VyY2VJbnRlcmZhY2UuZnFuKTtcbiAgfSxcbn0pO1xuXG4vKlxuLy8gVGhpcyBydWxlIGlzIHRoZSB3b3JzdFxucmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Jlc291cmNlLWF0dHJpYnV0ZScsXG4gIG1lc3NhZ2U6XG4gICAgJ3Jlc291cmNlcyBtdXN0IHJlcHJlc2VudCBhbGwgY2xvdWRmb3JtYXRpb24gYXR0cmlidXRlcyBhcyBhdHRyaWJ1dGUgcHJvcGVydGllcy4gJyArXG4gICAgJ1wiQGF0dHJpYnV0ZSBBVFRSWyxBVFRSXVwiIGNhbiBiZSB1c2VkIHRvIHRhZyBub24tc3RhbmRhcmQgYXR0cmlidXRlIG5hbWVzLiAnICtcbiAgICAnbWlzc2luZyBwcm9wZXJ0eTonLFxuICBldmFsOiBlID0+IHtcbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgZS5jdHguY2ZuLmF0dHJpYnV0ZU5hbWVzKSB7XG4gICAgICBjb25zdCBleHBlY3RlZCA9IGNhbWVsY2FzZShuYW1lKS5zdGFydHNXaXRoKGNhbWVsY2FzZShlLmN0eC5jZm4uYmFzZW5hbWUpKVxuICAgICAgICA/IGNhbWVsY2FzZShuYW1lKVxuICAgICAgICA6IGNhbWVsY2FzZShlLmN0eC5jZm4uYmFzZW5hbWUgKyBuYW1lKTtcblxuICAgICAgY29uc3QgZm91bmQgPSBlLmN0eC5hdHRyaWJ1dGVzLmZpbmQoYSA9PiBhLmNmbkF0dHJpYnV0ZU5hbWVzLmluY2x1ZGVzKG5hbWUpKTtcbiAgICAgIGUuYXNzZXJ0KGZvdW5kLCBgJHtlLmN0eC5mcW59LiR7ZXhwZWN0ZWR9YCwgZXhwZWN0ZWQpO1xuICAgIH1cbiAgfSxcbn0pO1xuKi9cblxucmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ2dyYW50LXJlc3VsdCcsXG4gIG1lc3NhZ2U6IGBcImdyYW50XCIgbWV0aG9kIG11c3QgcmV0dXJuICR7R1JBTlRfUkVTVUxUX0ZRTn1gLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCBncmFudFJlc3VsdFR5cGUgPSBlLmN0eC5zeXMudHJ5RmluZEZxbihHUkFOVF9SRVNVTFRfRlFOKTtcblxuICAgIC8vIHRoaXMgaW1wbGllcyB0aGF0IHdlIGFyZSBhdCBhIGxvd2VyIGxheWVyIChpLmUuIEBhd3MtY2RrL2NvcmUpXG4gICAgaWYgKCFncmFudFJlc3VsdFR5cGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBncmFudE1ldGhvZHMgPSBlLmN0eC5jb25zdHJ1Y3QuY2xhc3NUeXBlLmFsbE1ldGhvZHMuZmlsdGVyKG0gPT4gbS5uYW1lLnN0YXJ0c1dpdGgoJ2dyYW50JykpO1xuXG4gICAgZm9yIChjb25zdCBncmFudE1ldGhvZCBvZiBncmFudE1ldGhvZHMpIHtcbiAgICAgIGUuYXNzZXJ0U2lnbmF0dXJlKGdyYW50TWV0aG9kLCB7XG4gICAgICAgIHJldHVybnM6IGdyYW50UmVzdWx0VHlwZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSxcbn0pO1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtcGh5c2ljYWwtbmFtZScsXG4gIG1lc3NhZ2U6ICdFdmVyeSBSZXNvdXJjZSBtdXN0IGhhdmUgYSBzaW5nbGUgcGh5c2ljYWwgbmFtZSBjb25zdHJ1Y3Rpb24gcHJvcGVydHksICcgK1xuICAgICd3aXRoIGEgbmFtZSB0aGF0IGlzIGFuIGVuZGluZyBzdWJzdHJpbmcgb2YgPGNmblJlc291cmNlPk5hbWUnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4LmNvbnN0cnVjdC5wcm9wc1R5cGUpIHsgcmV0dXJuOyB9XG4gICAgZS5hc3NlcnQoZS5jdHgucGh5c2ljYWxOYW1lUHJvcCwgZS5jdHguY29uc3RydWN0LnByb3BzRnFuKTtcbiAgfSxcbn0pO1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtcGh5c2ljYWwtbmFtZS10eXBlJyxcbiAgbWVzc2FnZTogJ1RoZSB0eXBlIG9mIHRoZSBwaHlzaWNhbCBuYW1lIHByb3Agc2hvdWxkIGFsd2F5cyBiZSBhIFwic3RyaW5nXCInLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4LnBoeXNpY2FsTmFtZVByb3ApIHsgcmV0dXJuOyB9XG4gICAgY29uc3QgcHJvcCA9IGUuY3R4LnBoeXNpY2FsTmFtZVByb3A7XG4gICAgZS5hc3NlcnRUeXBlc0VxdWFsKGUuY3R4LnN5cywgcHJvcC50eXBlLCAnc3RyaW5nJywgYCR7ZS5jdHguY29uc3RydWN0LnByb3BzRnFufS4ke3Byb3AubmFtZX1gKTtcbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiB0cnlSZXNvbHZlQ2ZuUmVzb3VyY2UocmVzb3VyY2VDbGFzczogcmVmbGVjdC5DbGFzc1R5cGUpOiBDZm5SZXNvdXJjZVJlZmxlY3Rpb24gfCB1bmRlZmluZWQge1xuICBjb25zdCBzeXMgPSByZXNvdXJjZUNsYXNzLnN5c3RlbTtcblxuICAvLyBpZiB0aGVyZSBpcyBhIEByZXNvdXJjZSBkb2MgdGFnLCBpdCB0YWtlcyBwcmVjZWRlY2VcbiAgY29uc3QgdGFnID0gcmVzb3VyY2VDbGFzcy5kb2NzLmN1c3RvbVRhZygncmVzb3VyY2UnKTtcbiAgaWYgKHRhZykge1xuICAgIHJldHVybiBDZm5SZXNvdXJjZVJlZmxlY3Rpb24uZmluZEJ5TmFtZShzeXMsIHRhZyk7XG4gIH1cblxuICAvLyBwYXJzZSB0aGUgRlFOIG9mIHRoZSBjbGFzcyBuYW1lIGFuZCBzZWUgaWYgd2UgY2FuIGZpbmQgYSBtYXRjaGluZyBDRk4gcmVzb3VyY2VcbiAgY29uc3QgZ3Vlc3MgPSBndWVzc1Jlc291cmNlTmFtZShyZXNvdXJjZUNsYXNzLmZxbik7XG4gIGlmIChndWVzcykge1xuICAgIGNvbnN0IGNmbiA9IENmblJlc291cmNlUmVmbGVjdGlvbi5maW5kQnlOYW1lKHN5cywgZ3Vlc3MpO1xuICAgIGlmIChjZm4pIHtcbiAgICAgIHJldHVybiBjZm47XG4gICAgfVxuICB9XG5cbiAgLy8gdHJ5IHRvIHJlc29sdmUgdGhyb3VnaCBhbmNlc3RvcnNcbiAgZm9yIChjb25zdCBiYXNlIG9mIHJlc291cmNlQ2xhc3MuYW5jZXN0b3JzKSB7XG4gICAgY29uc3QgcmV0ID0gdHJ5UmVzb2x2ZUNmblJlc291cmNlKGJhc2UpO1xuICAgIGlmIChyZXQpIHtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuICB9XG5cbiAgLy8gZmFpbGVkIG1pc3JhYmx5XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGd1ZXNzUmVzb3VyY2VOYW1lKGZxbjogc3RyaW5nKSB7XG4gIC8vIFN0cmlwIGFueSB2ZXJzaW9uIHN1ZmZpeGVzIGUuZy4gJ1RhYmxlVjInIGJlY29tZXMgJ1RhYmxlJ1xuICB2YXIgbWF0Y2ggPSAvXiguKz8pKFZbMC05XSspPyQvLmV4ZWMoZnFuKTtcbiAgaWYgKCFtYXRjaCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IFssIHZlcnNpb25sZXNzXSA9IG1hdGNoO1xuXG4gIG1hdGNoID0gL2F3cy1jZGstbGliXFwuKFthLXpdKylfKFthLXowLTldKylcXC4oW0EtWl1bYS16QS1aMC05XSspLy5leGVjKHZlcnNpb25sZXNzKTtcblxuICBpZiAoIW1hdGNoKSB7XG4gICAgLy8gQWxwaGEgbmFtZVxuICAgIG1hdGNoID0gL0Bhd3MtY2RrXFwvKFthLXpdKyktKFthLXowLTldKyktYWxwaGFcXC4oW0EtWl1bYS16QS1aMC05XSspLy5leGVjKGZxbik7XG4gIH1cblxuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IFssIG9yZywgbnMsIHJzXSA9IG1hdGNoO1xuICBpZiAoIW9yZyB8fCAhbnMgfHwgIXJzKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cblxuICByZXR1cm4gYCR7b3JnfTo6JHtuc306OiR7cnN9YDtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "awslint",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.221.0-alpha.0",
|
|
4
4
|
"description": "Enforces the AWS Construct Library guidelines",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsc -b && eslint . --ext=.ts && pkglint && chmod +x bin/awslint",
|
|
@@ -18,16 +18,16 @@
|
|
|
18
18
|
"awslint": "bin/awslint"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@jsii/spec": "1.
|
|
21
|
+
"@jsii/spec": "1.116.0",
|
|
22
22
|
"chalk": "^4",
|
|
23
23
|
"fs-extra": "^9.1.0",
|
|
24
|
-
"jsii-reflect": "1.
|
|
24
|
+
"jsii-reflect": "1.116.0",
|
|
25
25
|
"change-case": "^4.1.2",
|
|
26
26
|
"yargs": "^16.2.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@cdklabs/eslint-plugin": "^1.3.4",
|
|
30
|
-
"@aws-cdk/pkglint": "2.
|
|
30
|
+
"@aws-cdk/pkglint": "2.221.0-alpha.0",
|
|
31
31
|
"@types/fs-extra": "^9.0.13",
|
|
32
32
|
"@types/jest": "^29.5.14",
|
|
33
33
|
"@types/yargs": "^15.0.19",
|