awslint 2.66.1 → 2.68.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.
@@ -1,3 +1,3 @@
1
- import { Linter } from '../linter';
2
1
  import { ConstructReflection } from './construct';
2
+ import { Linter } from '../linter';
3
3
  export declare const apiLinter: Linter<ConstructReflection>;
package/lib/rules/api.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.apiLinter = void 0;
4
- const linter_1 = require("../linter");
5
4
  const construct_1 = require("./construct");
6
5
  const core_types_1 = require("./core-types");
6
+ const linter_1 = require("../linter");
7
7
  const EXCLUDE_ANNOTATION_REF_VIA_INTERFACE = '[disable-awslint:ref-via-interface]';
8
8
  // lint all constructs that are not L1 resources
9
9
  exports.apiLinter = new linter_1.Linter(a => construct_1.ConstructReflection
@@ -116,4 +116,4 @@ exports.apiLinter.add({
116
116
  }
117
117
  },
118
118
  });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNDQUFtQztBQUNuQywyQ0FBa0Q7QUFDbEQsNkNBQXlDO0FBRXpDLE1BQU0sb0NBQW9DLEdBQUcscUNBQXFDLENBQUM7QUFFbkYsZ0RBQWdEO0FBQ25DLFFBQUEsU0FBUyxHQUFHLElBQUksZUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsK0JBQW1CO0tBQ3pELGlCQUFpQixDQUFDLENBQUMsQ0FBQztLQUNwQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLHNCQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFdkQsaUJBQVMsQ0FBQyxHQUFHLENBQUM7SUFDWixJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLE9BQU8sRUFBRSw0REFBNEQ7UUFDbkUsZ0NBQWdDLG9DQUFvQyxzQkFBc0I7SUFDNUYsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUVsQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakIsU0FBUyxXQUFXLENBQUMsSUFBdUI7WUFDMUMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFBRSxPQUFPO2FBQUU7WUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFdEIsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDdEI7WUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3BCLFlBQVksQ0FBQyxJ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MkJBQTJCLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBMaW50ZXIgfSBmcm9tICcuLi9saW50ZXInO1xuaW1wb3J0IHsgQ29uc3RydWN0UmVmbGVjdGlvbiB9IGZyb20gJy4vY29uc3RydWN0JztcbmltcG9ydCB7IENvcmVUeXBlcyB9IGZyb20gJy4vY29yZS10eXBlcyc7XG5cbmNvbnN0IEVYQ0xVREVfQU5OT1RBVElPTl9SRUZfVklBX0lOVEVSRkFDRSA9ICdbZGlzYWJsZS1hd3NsaW50OnJlZi12aWEtaW50ZXJmYWNlXSc7XG5cbi8vIGxpbnQgYWxsIGNvbnN0cnVjdHMgdGhhdCBhcmUgbm90IEwxIHJlc291cmNlc1xuZXhwb3J0IGNvbnN0IGFwaUxpbnRlciA9IG5ldyBMaW50ZXIoYSA9PiBDb25zdHJ1Y3RSZWZsZWN0aW9uXG4gIC5maW5kQWxsQ29uc3RydWN0cyhhKVxuICAuZmlsdGVyKGMgPT4gIUNvcmVUeXBlcy5pc0NmblJlc291cmNlKGMuY2xhc3NUeXBlKSkpO1xuXG5hcGlMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3JlZi12aWEtaW50ZXJmYWNlJyxcbiAgbWVzc2FnZTogJ0FQSSBzaG91bGQgdXNlIGludGVyZmFjZSBhbmQgbm90IHRoZSBjb25jcmV0ZSBjbGFzcyAoJXMpLiAnICtcbiAgICBgSWYgdGhpcyBpcyBpbnRlbnRpb25hbCwgYWRkIFwiJHtFWENMVURFX0FOTk9UQVRJT05fUkVGX1ZJQV9JTlRFUkZBQ0V9XCIgdG8gZWxlbWVudCdzIGpzZG9jYCxcbiAgZXZhbDogZSA9PiB7XG4gICAgY29uc3QgY2xzID0gZS5jdHguY2xhc3NUeXBlO1xuICAgIGNvbnN0IHZpc2l0ZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgIGFzc2VydENsYXNzKGNscyk7XG5cbiAgICBmdW5jdGlvbiBhc3NlcnRDbGFzcyh0eXBlOiByZWZsZWN0LkNsYXNzVHlwZSk6IHZvaWQge1xuICAgICAgaWYgKHZpc2l0ZWQuaGFzKHR5cGUuZnFuKSkgeyByZXR1cm47IH1cbiAgICAgIHZpc2l0ZWQuYWRkKHR5cGUuZnFuKTtcblxuICAgICAgZm9yIChjb25zdCBtZXRob2Qgb2YgdHlwZS5hbGxNZXRob2RzKSB7XG4gICAgICAgIGFzc2VydE1ldGhvZChtZXRob2QpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZS5pbml0aWFsaXplcikge1xuICAgICAgICBhc3NlcnRNZXRob2QodHlwZS5pbml0aWFsaXplcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXNzZXJ0RGF0YVR5cGUodHlwZTogcmVmbGVjdC5JbnRlcmZhY2VUeXBlKTogdm9pZCB7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHR5cGUuYWxsUHJvcGVydGllcykge1xuICAgICAgICBhc3NlcnRQcm9wZXJ0eShwcm9wZXJ0eSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXNzZXJ0SW50ZXJmYWNlKHR5cGU6IHJlZmxlY3QuSW50ZXJmYWNlVHlwZSk6IHZvaWQge1xuICAgICAgaWYgKHZpc2l0ZWQuaGFzKHR5cGUuZnFuKSkgeyByZXR1cm47IH1cbiAgICAgIHZpc2l0ZWQuYWRkKHR5cGUuZnFuKTtcblxuICAgICAgaWYgKHR5cGUuZGF0YXR5cGUpIHtcbiAgICAgICAgYXNzZXJ0RGF0YVR5cGUodHlwZSk7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgbWV0aG9kIG9mIHR5cGUuYWxsTWV0aG9kcykge1xuICAgICAgICBhc3NlcnRNZXRob2QobWV0aG9kKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhc3NlcnRQcm9wZXJ0eShwcm9wZXJ0eTogcmVmbGVjdC5Qcm9wZXJ0eSkge1xuXG4gICAgICBpZiAocHJvcGVydHkucHJvdGVjdGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc2l0ZSA9IHByb3BlcnR5Lm92ZXJyaWRlcyA/IHByb3BlcnR5Lm92ZXJyaWRlcyA6IHByb3BlcnR5LnBhcmVudFR5cGU7XG4gICAgICBhc3NlcnRUeXBlKHByb3BlcnR5LnR5cGUsIHByb3BlcnR5LmRvY3MsIGAke3NpdGUuZnFufS4ke3Byb3BlcnR5Lm5hbWV9YCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXNzZXJ0TWV0aG9kKG1ldGhvZDogcmVmbGVjdC5DYWxsYWJsZSkge1xuXG4gICAgICBpZiAobWV0aG9kLnByb3RlY3RlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNpdGUgPSBtZXRob2Qub3ZlcnJpZGVzID8gbWV0aG9kLm92ZXJyaWRlcyA6IG1ldGhvZC5wYXJlbnRUeXBlO1xuICAgICAgY29uc3Qgc2NvcGUgPSBgJHtzaXRlLmZxbn0uJHttZXRob2QubmFtZX1gO1xuXG4gICAgICBsZXQgZmlyc3RNZXRob2Q6IHJlZmxlY3QuQ2FsbGFibGUgfCB1bmRlZmluZWQgPSBzaXRlLmlzQ2xhc3NUeXBlKCkgfHwgc2l0ZS5pc0ludGVyZmFjZVR5cGUoKVxuICAgICAgICA/IHNpdGUuYWxsTWV0aG9kcy5maW5kKG0gPT4gbS5uYW1lID09PSBtZXRob2QubmFtZSlcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmICghZmlyc3RNZXRob2QpIHtcbiAgICAgICAgZmlyc3RNZXRob2QgPSBtZXRob2Q7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgcGFyYW0gb2YgZmlyc3RNZXRob2QucGFyYW1ldGVycykge1xuICAgICAgICBhc3NlcnRUeXBlKHBhcmFtLnR5cGUsIHBhcmFtLmRvY3MsIGAke3Njb3BlfS4ke3BhcmFtLm5hbWV9YCk7XG4gICAgICB9XG5cbiAgICAgIC8vIG5vdGUgdGhhdCB3ZSBkbyBub3QgcmVxdWlyZSB0aGF0IHJldHVybiB2YWx1ZXMgd2lsbCB1c2UgYW4gaW50ZXJmYWNlXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXNzZXJ0VHlwZSh0eXBlOiByZWZsZWN0LlR5cGVSZWZlcmVuY2UsIGRvY3M6IHJlZmxlY3QuRG9jcywgc2NvcGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgaWYgKHR5cGUucHJpbWl0aXZlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGUudm9pZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlLmFycmF5T2ZUeXBlKSB7XG4gICAgICAgIHJldHVybiBhc3NlcnRUeXBlKHR5cGUuYXJyYXlPZlR5cGUsIGRvY3MsIHNjb3BlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGUubWFwT2ZUeXBlKSB7XG4gICAgICAgIHJldHVybiBhc3NlcnRUeXBlKHR5cGUubWFwT2ZUeXBlLCBkb2NzLCBzY29wZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlLnVuaW9uT2ZUeXBlcykge1xuICAgICAgICBmb3IgKGNvbnN0IHQgb2YgdHlwZS51bmlvbk9mVHlwZXMpIHtcbiAgICAgICAgICBhc3NlcnRUeXBlKHQsIGRvY3MsIHNjb3BlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGludGVyZmFjZXMgYXJlIG9rYXlcbiAgICAgIGlmICh0eXBlLnR5cGUgJiYgdHlwZS50eXBlLmlzSW50ZXJmYWNlVHlwZSgpKSB7XG4gICAgICAgIHJldHVybiBhc3NlcnRJbnRlcmZhY2UodHlwZS50eXBlKTtcbiAgICAgIH1cblxuICAgICAgLy8gZW51bXMgYXJlIG9rYXlcbiAgICAgIGlmICh0eXBlLnR5cGUgJiYgdHlwZS50eXBlLmlzRW51bVR5cGUoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGNsYXNzZXMgYXJlIG9rYXkgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgcmVzb3VyY2UgY29uc3RydWN0c1xuICAgICAgaWYgKHR5cGUudHlwZSAmJiB0eXBlLnR5cGUuaXNDbGFzc1R5cGUoKSkge1xuICAgICAgICBpZiAoIUNvcmVUeXBlcy5pc1Jlc291cmNlQ2xhc3ModHlwZS50eXBlKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlLnR5cGUuZnFuID09PSBlLmN0eC5jb3JlLmNvbnN0cnVjdENsYXNzLmZxbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFsbG93IGV4Y2x1c2lvbiBvZiB0aGlzIHJ1bGVcbiAgICAgICAgaWYgKGRvY3Muc3VtbWFyeS5pbmNsdWRlcyhFWENMVURFX0FOTk9UQVRJT05fUkVGX1ZJQV9JTlRFUkZBQ0UpIHx8IGRvY3MucmVtYXJrcy5pbmNsdWRlcyhFWENMVURFX0FOTk9UQVRJT05fUkVGX1ZJQV9JTlRFUkZBQ0UpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZS5hc3NlcnQoZmFsc2UsIHNjb3BlLCB0eXBlLnR5cGUuZnFuKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdHlwZSByZWZlcmVuY2U6ICR7dHlwZS50b1N0cmluZygpfWApO1xuICAgIH1cbiAgfSxcbn0pO1xuIl19
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJDQUFrRDtBQUNsRCw2Q0FBeUM7QUFDekMsc0NBQW1DO0FBRW5DLE1BQU0sb0NBQW9DLEdBQUcscUNBQXFDLENBQUM7QUFFbkYsZ0RBQWdEO0FBQ25DLFFBQUEsU0FBUyxHQUFHLElBQUksZUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsK0JBQW1CO0tBQ3pELGlCQUFpQixDQUFDLENBQUMsQ0FBQztLQUNwQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLHNCQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFdkQsaUJBQVMsQ0FBQyxHQUFHLENBQUM7SUFDWixJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLE9BQU8sRUFBRSw0REFBNEQ7UUFDbkUsZ0NBQWdDLG9DQUFvQyxzQkFBc0I7SUFDNUYsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUVsQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakIsU0FBUyxXQUFXLENBQUMsSUFBdUI7WUFDMUMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFBRSxPQUFPO2FBQUU7WUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFdEIsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDdEI7WUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3BCLFlBQVksQ0FBQyxJ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MkJBQTJCLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3RSZWZsZWN0aW9uIH0gZnJvbSAnLi9jb25zdHJ1Y3QnO1xuaW1wb3J0IHsgQ29yZVR5cGVzIH0gZnJvbSAnLi9jb3JlLXR5cGVzJztcbmltcG9ydCB7IExpbnRlciB9IGZyb20gJy4uL2xpbnRlcic7XG5cbmNvbnN0IEVYQ0xVREVfQU5OT1RBVElPTl9SRUZfVklBX0lOVEVSRkFDRSA9ICdbZGlzYWJsZS1hd3NsaW50OnJlZi12aWEtaW50ZXJmYWNlXSc7XG5cbi8vIGxpbnQgYWxsIGNvbnN0cnVjdHMgdGhhdCBhcmUgbm90IEwxIHJlc291cmNlc1xuZXhwb3J0IGNvbnN0IGFwaUxpbnRlciA9IG5ldyBMaW50ZXIoYSA9PiBDb25zdHJ1Y3RSZWZsZWN0aW9uXG4gIC5maW5kQWxsQ29uc3RydWN0cyhhKVxuICAuZmlsdGVyKGMgPT4gIUNvcmVUeXBlcy5pc0NmblJlc291cmNlKGMuY2xhc3NUeXBlKSkpO1xuXG5hcGlMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3JlZi12aWEtaW50ZXJmYWNlJyxcbiAgbWVzc2FnZTogJ0FQSSBzaG91bGQgdXNlIGludGVyZmFjZSBhbmQgbm90IHRoZSBjb25jcmV0ZSBjbGFzcyAoJXMpLiAnICtcbiAgICBgSWYgdGhpcyBpcyBpbnRlbnRpb25hbCwgYWRkIFwiJHtFWENMVURFX0FOTk9UQVRJT05fUkVGX1ZJQV9JTlRFUkZBQ0V9XCIgdG8gZWxlbWVudCdzIGpzZG9jYCxcbiAgZXZhbDogZSA9PiB7XG4gICAgY29uc3QgY2xzID0gZS5jdHguY2xhc3NUeXBlO1xuICAgIGNvbnN0IHZpc2l0ZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgIGFzc2VydENsYXNzKGNscyk7XG5cbiAgICBmdW5jdGlvbiBhc3NlcnRDbGFzcyh0eXBlOiByZWZsZWN0LkNsYXNzVHlwZSk6IHZvaWQge1xuICAgICAgaWYgKHZpc2l0ZWQuaGFzKHR5cGUuZnFuKSkgeyByZXR1cm47IH1cbiAgICAgIHZpc2l0ZWQuYWRkKHR5cGUuZnFuKTtcblxuICAgICAgZm9yIChjb25zdCBtZXRob2Qgb2YgdHlwZS5hbGxNZXRob2RzKSB7XG4gICAgICAgIGFzc2VydE1ldGhvZChtZXRob2QpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZS5pbml0aWFsaXplcikge1xuICAgICAgICBhc3NlcnRNZXRob2QodHlwZS5pbml0aWFsaXplcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXNzZXJ0RGF0YVR5cGUodHlwZTogcmVmbGVjdC5JbnRlcmZhY2VUeXBlKTogdm9pZCB7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHR5cGUuYWxsUHJvcGVydGllcykge1xuICAgICAgICBhc3NlcnRQcm9wZXJ0eShwcm9wZXJ0eSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXNzZXJ0SW50ZXJmYWNlKHR5cGU6IHJlZmxlY3QuSW50ZXJmYWNlVHlwZSk6IHZvaWQge1xuICAgICAgaWYgKHZpc2l0ZWQuaGFzKHR5cGUuZnFuKSkgeyByZXR1cm47IH1cbiAgICAgIHZpc2l0ZWQuYWRkKHR5cGUuZnFuKTtcblxuICAgICAgaWYgKHR5cGUuZGF0YXR5cGUpIHtcbiAgICAgICAgYXNzZXJ0RGF0YVR5cGUodHlwZSk7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgbWV0aG9kIG9mIHR5cGUuYWxsTWV0aG9kcykge1xuICAgICAgICBhc3NlcnRNZXRob2QobWV0aG9kKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhc3NlcnRQcm9wZXJ0eShwcm9wZXJ0eTogcmVmbGVjdC5Qcm9wZXJ0eSkge1xuXG4gICAgICBpZiAocHJvcGVydHkucHJvdGVjdGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc2l0ZSA9IHByb3BlcnR5Lm92ZXJyaWRlcyA/IHByb3BlcnR5Lm92ZXJyaWRlcyA6IHByb3BlcnR5LnBhcmVudFR5cGU7XG4gICAgICBhc3NlcnRUeXBlKHByb3BlcnR5LnR5cGUsIHByb3BlcnR5LmRvY3MsIGAke3NpdGUuZnFufS4ke3Byb3BlcnR5Lm5hbWV9YCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXNzZXJ0TWV0aG9kKG1ldGhvZDogcmVmbGVjdC5DYWxsYWJsZSkge1xuXG4gICAgICBpZiAobWV0aG9kLnByb3RlY3RlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNpdGUgPSBtZXRob2Qub3ZlcnJpZGVzID8gbWV0aG9kLm92ZXJyaWRlcyA6IG1ldGhvZC5wYXJlbnRUeXBlO1xuICAgICAgY29uc3Qgc2NvcGUgPSBgJHtzaXRlLmZxbn0uJHttZXRob2QubmFtZX1gO1xuXG4gICAgICBsZXQgZmlyc3RNZXRob2Q6IHJlZmxlY3QuQ2FsbGFibGUgfCB1bmRlZmluZWQgPSBzaXRlLmlzQ2xhc3NUeXBlKCkgfHwgc2l0ZS5pc0ludGVyZmFjZVR5cGUoKVxuICAgICAgICA/IHNpdGUuYWxsTWV0aG9kcy5maW5kKG0gPT4gbS5uYW1lID09PSBtZXRob2QubmFtZSlcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmICghZmlyc3RNZXRob2QpIHtcbiAgICAgICAgZmlyc3RNZXRob2QgPSBtZXRob2Q7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgcGFyYW0gb2YgZmlyc3RNZXRob2QucGFyYW1ldGVycykge1xuICAgICAgICBhc3NlcnRUeXBlKHBhcmFtLnR5cGUsIHBhcmFtLmRvY3MsIGAke3Njb3BlfS4ke3BhcmFtLm5hbWV9YCk7XG4gICAgICB9XG5cbiAgICAgIC8vIG5vdGUgdGhhdCB3ZSBkbyBub3QgcmVxdWlyZSB0aGF0IHJldHVybiB2YWx1ZXMgd2lsbCB1c2UgYW4gaW50ZXJmYWNlXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXNzZXJ0VHlwZSh0eXBlOiByZWZsZWN0LlR5cGVSZWZlcmVuY2UsIGRvY3M6IHJlZmxlY3QuRG9jcywgc2NvcGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgaWYgKHR5cGUucHJpbWl0aXZlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGUudm9pZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlLmFycmF5T2ZUeXBlKSB7XG4gICAgICAgIHJldHVybiBhc3NlcnRUeXBlKHR5cGUuYXJyYXlPZlR5cGUsIGRvY3MsIHNjb3BlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGUubWFwT2ZUeXBlKSB7XG4gICAgICAgIHJldHVybiBhc3NlcnRUeXBlKHR5cGUubWFwT2ZUeXBlLCBkb2NzLCBzY29wZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlLnVuaW9uT2ZUeXBlcykge1xuICAgICAgICBmb3IgKGNvbnN0IHQgb2YgdHlwZS51bmlvbk9mVHlwZXMpIHtcbiAgICAgICAgICBhc3NlcnRUeXBlKHQsIGRvY3MsIHNjb3BlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGludGVyZmFjZXMgYXJlIG9rYXlcbiAgICAgIGlmICh0eXBlLnR5cGUgJiYgdHlwZS50eXBlLmlzSW50ZXJmYWNlVHlwZSgpKSB7XG4gICAgICAgIHJldHVybiBhc3NlcnRJbnRlcmZhY2UodHlwZS50eXBlKTtcbiAgICAgIH1cblxuICAgICAgLy8gZW51bXMgYXJlIG9rYXlcbiAgICAgIGlmICh0eXBlLnR5cGUgJiYgdHlwZS50eXBlLmlzRW51bVR5cGUoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGNsYXNzZXMgYXJlIG9rYXkgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgcmVzb3VyY2UgY29uc3RydWN0c1xuICAgICAgaWYgKHR5cGUudHlwZSAmJiB0eXBlLnR5cGUuaXNDbGFzc1R5cGUoKSkge1xuICAgICAgICBpZiAoIUNvcmVUeXBlcy5pc1Jlc291cmNlQ2xhc3ModHlwZS50eXBlKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlLnR5cGUuZnFuID09PSBlLmN0eC5jb3JlLmNvbnN0cnVjdENsYXNzLmZxbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFsbG93IGV4Y2x1c2lvbiBvZiB0aGlzIHJ1bGVcbiAgICAgICAgaWYgKGRvY3Muc3VtbWFyeS5pbmNsdWRlcyhFWENMVURFX0FOTk9UQVRJT05fUkVGX1ZJQV9JTlRFUkZBQ0UpIHx8IGRvY3MucmVtYXJrcy5pbmNsdWRlcyhFWENMVURFX0FOTk9UQVRJT05fUkVGX1ZJQV9JTlRFUkZBQ0UpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZS5hc3NlcnQoZmFsc2UsIHNjb3BlLCB0eXBlLnR5cGUuZnFuKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdHlwZSByZWZlcmVuY2U6ICR7dHlwZS50b1N0cmluZygpfWApO1xuICAgIH1cbiAgfSxcbn0pO1xuIl19
package/lib/rules/api.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as reflect from 'jsii-reflect';
2
- import { Linter } from '../linter';
3
2
  import { ConstructReflection } from './construct';
4
3
  import { CoreTypes } from './core-types';
4
+ import { Linter } from '../linter';
5
5
 
6
6
  const EXCLUDE_ANNOTATION_REF_VIA_INTERFACE = '[disable-awslint:ref-via-interface]';
7
7
 
@@ -1,5 +1,5 @@
1
- import { Linter } from '../linter';
2
1
  import { Attribute, ResourceReflection } from './resource';
2
+ import { Linter } from '../linter';
3
3
  export declare const attributesLinter: Linter<AttributeReflection>;
4
4
  declare class AttributeReflection {
5
5
  readonly resource: ResourceReflection;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.attributesLinter = void 0;
4
- const linter_1 = require("../linter");
5
4
  const resource_1 = require("./resource");
5
+ const linter_1 = require("../linter");
6
6
  exports.attributesLinter = new linter_1.Linter(a => {
7
7
  const result = new Array();
8
8
  for (const resource of resource_1.ResourceReflection.findAll(a)) {
@@ -34,4 +34,4 @@ exports.attributesLinter.add({
34
34
  e.assert(tag, e.ctx.fqn, `${e.ctx.attr.property.parentType.fqn}.${e.ctx.attr.property.name}`);
35
35
  },
36
36
  });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF0dHJpYnV0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0NBQW1DO0FBQ25DLHlDQUEyRDtBQUU5QyxRQUFBLGdCQUFnQixHQUFHLElBQUksZUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksS0FBSyxFQUF1QixDQUFDO0lBQ2hELEtBQUssTUFBTSxRQUFRLElBQUksNkJBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ3BELEtBQUssTUFBTSxJQUFJLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRTtZQUN0QyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDdEQ7S0FDRjtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxtQkFBbUI7SUFHdkIsWUFBNEIsUUFBNEIsRUFBa0IsSUFBZTtRQUE3RCxhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQUFrQixTQUFJLEdBQUosSUFBSSxDQUFXO1FBQ3ZGLElBQUksQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDckQsQ0FBQztDQUNGO0FBRUQsd0JBQWdCLENBQUMsR0FBRyxDQUFDO0lBQ25CLElBQUksRUFBRSxvQkFBb0I7SUFDMUIsT0FBTyxFQUFFLHFDQUFxQztJQUM5QyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFDUixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsd0JBQWdCLENBQUMsR0FBRyxDQUFDO0lBQ25CLElBQUksRUFBRSxlQUFlO0lBQ3JCLE9BQU8sRUFBRSw0REFBNEQ7SUFDckUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRyxDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGludGVyIH0gZnJvbSAnLi4vbGludGVyJztcbmltcG9ydCB7IEF0dHJpYnV0ZSwgUmVzb3VyY2VSZWZsZWN0aW9uIH0gZnJvbSAnLi9yZXNvdXJjZSc7XG5cbmV4cG9ydCBjb25zdCBhdHRyaWJ1dGVzTGludGVyID0gbmV3IExpbnRlcihhID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PEF0dHJpYnV0ZVJlZmxlY3Rpb24+KCk7XG4gIGZvciAoY29uc3QgcmVzb3VyY2Ugb2YgUmVzb3VyY2VSZWZsZWN0aW9uLmZpbmRBbGwoYSkpIHtcbiAgICBmb3IgKGNvbnN0IGF0dHIgb2YgcmVzb3VyY2UuYXR0cmlidXRlcykge1xuICAgICAgcmVzdWx0LnB1c2gobmV3IEF0dHJpYnV0ZVJlZmxlY3Rpb24ocmVzb3VyY2UsIGF0dHIpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn0pO1xuXG5jbGFzcyBBdHRyaWJ1dGVSZWZsZWN0aW9uIHtcbiAgcHVibGljIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogUmVzb3VyY2VSZWZsZWN0aW9uLCBwdWJsaWMgcmVhZG9ubHkgYXR0cjogQXR0cmlidXRlKSB7XG4gICAgdGhpcy5mcW4gPSByZXNvdXJjZS5mcW4gKyAnLicgKyBhdHRyLnByb3BlcnR5Lm5hbWU7XG4gIH1cbn1cblxuYXR0cmlidXRlc0xpbnRlci5hZGQoe1xuICBjb2RlOiAnYXR0cmlidXRlLXJlYWRvbmx5JyxcbiAgbWVzc2FnZTogJ2F0dHJpYnV0ZSBwcm9wZXJ0eSBtdXN0IGJlIHJlYWRvbmx5JyxcbiAgZXZhbDogZSA9PiB7XG4gICAgZS5hc3NlcnQoZS5jdHguYXR0ci5wcm9wZXJ0eS5pbW11dGFibGUsIGUuY3R4LmZxbik7XG4gIH0sXG59KTtcblxuYXR0cmlidXRlc0xpbnRlci5hZGQoe1xuICBjb2RlOiAnYXR0cmlidXRlLXRhZycsXG4gIG1lc3NhZ2U6ICdhdHRyaWJ1dGUgcHJvcGVydGllcyBtdXN0IGhhdmUgYW4gXCJAYXR0cmlidXRlXCIgZG9jdGFnIG9uOiAnLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCB0YWcgPSBlLmN0eC5hdHRyLnByb3BlcnR5LmRvY3MuY3VzdG9tVGFnKCdhdHRyaWJ1dGUnKTtcbiAgICBlLmFzc2VydCh0YWcsIGUuY3R4LmZxbiwgYCR7ZS5jdHguYXR0ci5wcm9wZXJ0eS5wYXJlbnRUeXBlLmZxbn0uJHtlLmN0eC5hdHRyLnByb3BlcnR5Lm5hbWV9YCk7XG4gIH0sXG59KTtcbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF0dHJpYnV0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQTJEO0FBQzNELHNDQUFtQztBQUV0QixRQUFBLGdCQUFnQixHQUFHLElBQUksZUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksS0FBSyxFQUF1QixDQUFDO0lBQ2hELEtBQUssTUFBTSxRQUFRLElBQUksNkJBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ3BELEtBQUssTUFBTSxJQUFJLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRTtZQUN0QyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDdEQ7S0FDRjtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxtQkFBbUI7SUFHdkIsWUFBNEIsUUFBNEIsRUFBa0IsSUFBZTtRQUE3RCxhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQUFrQixTQUFJLEdBQUosSUFBSSxDQUFXO1FBQ3ZGLElBQUksQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDckQsQ0FBQztDQUNGO0FBRUQsd0JBQWdCLENBQUMsR0FBRyxDQUFDO0lBQ25CLElBQUksRUFBRSxvQkFBb0I7SUFDMUIsT0FBTyxFQUFFLHFDQUFxQztJQUM5QyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFDUixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsd0JBQWdCLENBQUMsR0FBRyxDQUFDO0lBQ25CLElBQUksRUFBRSxlQUFlO0lBQ3JCLE9BQU8sRUFBRSw0REFBNEQ7SUFDckUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRyxDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlLCBSZXNvdXJjZVJlZmxlY3Rpb24gfSBmcm9tICcuL3Jlc291cmNlJztcbmltcG9ydCB7IExpbnRlciB9IGZyb20gJy4uL2xpbnRlcic7XG5cbmV4cG9ydCBjb25zdCBhdHRyaWJ1dGVzTGludGVyID0gbmV3IExpbnRlcihhID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PEF0dHJpYnV0ZVJlZmxlY3Rpb24+KCk7XG4gIGZvciAoY29uc3QgcmVzb3VyY2Ugb2YgUmVzb3VyY2VSZWZsZWN0aW9uLmZpbmRBbGwoYSkpIHtcbiAgICBmb3IgKGNvbnN0IGF0dHIgb2YgcmVzb3VyY2UuYXR0cmlidXRlcykge1xuICAgICAgcmVzdWx0LnB1c2gobmV3IEF0dHJpYnV0ZVJlZmxlY3Rpb24ocmVzb3VyY2UsIGF0dHIpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn0pO1xuXG5jbGFzcyBBdHRyaWJ1dGVSZWZsZWN0aW9uIHtcbiAgcHVibGljIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogUmVzb3VyY2VSZWZsZWN0aW9uLCBwdWJsaWMgcmVhZG9ubHkgYXR0cjogQXR0cmlidXRlKSB7XG4gICAgdGhpcy5mcW4gPSByZXNvdXJjZS5mcW4gKyAnLicgKyBhdHRyLnByb3BlcnR5Lm5hbWU7XG4gIH1cbn1cblxuYXR0cmlidXRlc0xpbnRlci5hZGQoe1xuICBjb2RlOiAnYXR0cmlidXRlLXJlYWRvbmx5JyxcbiAgbWVzc2FnZTogJ2F0dHJpYnV0ZSBwcm9wZXJ0eSBtdXN0IGJlIHJlYWRvbmx5JyxcbiAgZXZhbDogZSA9PiB7XG4gICAgZS5hc3NlcnQoZS5jdHguYXR0ci5wcm9wZXJ0eS5pbW11dGFibGUsIGUuY3R4LmZxbik7XG4gIH0sXG59KTtcblxuYXR0cmlidXRlc0xpbnRlci5hZGQoe1xuICBjb2RlOiAnYXR0cmlidXRlLXRhZycsXG4gIG1lc3NhZ2U6ICdhdHRyaWJ1dGUgcHJvcGVydGllcyBtdXN0IGhhdmUgYW4gXCJAYXR0cmlidXRlXCIgZG9jdGFnIG9uOiAnLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCB0YWcgPSBlLmN0eC5hdHRyLnByb3BlcnR5LmRvY3MuY3VzdG9tVGFnKCdhdHRyaWJ1dGUnKTtcbiAgICBlLmFzc2VydCh0YWcsIGUuY3R4LmZxbiwgYCR7ZS5jdHguYXR0ci5wcm9wZXJ0eS5wYXJlbnRUeXBlLmZxbn0uJHtlLmN0eC5hdHRyLnByb3BlcnR5Lm5hbWV9YCk7XG4gIH0sXG59KTtcbiJdfQ==
@@ -1,5 +1,5 @@
1
- import { Linter } from '../linter';
2
1
  import { Attribute, ResourceReflection } from './resource';
2
+ import { Linter } from '../linter';
3
3
 
4
4
  export const attributesLinter = new Linter(a => {
5
5
  const result = new Array<AttributeReflection>();
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CfnResourceReflection = exports.cfnResourceLinter = void 0;
4
4
  const camelcase = require("camelcase");
5
- const linter_1 = require("../linter");
6
5
  const core_types_1 = require("./core-types");
7
6
  const resource_1 = require("./resource");
7
+ const linter_1 = require("../linter");
8
8
  // this linter verifies that we have L2 coverage. it finds all "Cfn" classes and verifies
9
9
  // that we have a corresponding L1 class for it that's identified as a resource.
10
10
  exports.cfnResourceLinter = new linter_1.Linter(a => CfnResourceReflection.findAll(a));
@@ -65,4 +65,4 @@ class CfnResourceReflection {
65
65
  }
66
66
  }
67
67
  exports.CfnResourceReflection = CfnResourceReflection;
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZuLXJlc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2ZuLXJlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVDQUF1QztBQUV2QyxzQ0FBbUM7QUFDbkMsNkNBQXlDO0FBQ3pDLHlDQUFnRDtBQUVoRCx5RkFBeUY7QUFDekYsZ0ZBQWdGO0FBQ25FLFFBQUEsaUJBQWlCLEdBQUcsSUFBSSxlQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVuRix5QkFBaUIsQ0FBQyxHQUFHLENBQUM7SUFDcEIsSUFBSSxFQUFFLGdCQUFnQjtJQUN0QixPQUFPLEVBQUUsdUZBQXVGO0lBQ2hHLE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsTUFBTSxFQUFFLEdBQUcsNkJBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0csQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBYSxxQkFBcUI7SUErQmhDLFlBQVksR0FBc0I7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7UUFFckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFN0Msb0RBQW9EO1FBQ3BELE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BGLE1BQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRCxNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLG9GQUFvRixHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQzVHO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFDLGFBQWE7YUFDcEMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsdUJBQXVCLENBQUM7YUFDL0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMseUJBQXlCLENBQUMsSUFBSSxTQUFTLENBQUM7YUFDbEUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdEQsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFyREQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUF1QixFQUFFLFFBQWdCO1FBQ2hFLEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRTtZQUM3QixJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtnQkFDdEcsT0FBTyxJQUFJLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZDO1NBQ0Y7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQTBCO1FBQzlDLE9BQU8sUUFBUSxDQUFDLE9BQU87YUFDcEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsc0JBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdkMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFrQ08sZ0NBQWdDLENBQUMsSUFBWTtRQUVuRCxvRUFBb0U7UUFDcEUsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLGVBQWUsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzNELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0Y7QUFqRUQsc0RBaUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2FtZWxjYXNlIGZyb20gJ2NhbWVsY2FzZSc7XG5pbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBMaW50ZXIgfSBmcm9tICcuLi9saW50ZXInO1xuaW1wb3J0IHsgQ29yZVR5cGVzIH0gZnJvbSAnLi9jb3JlLXR5cGVzJztcbmltcG9ydCB7IFJlc291cmNlUmVmbGVjdGlvbiB9IGZyb20gJy4vcmVzb3VyY2UnO1xuXG4vLyB0aGlzIGxpbnRlciB2ZXJpZmllcyB0aGF0IHdlIGhhdmUgTDIgY292ZXJhZ2UuIGl0IGZpbmRzIGFsbCBcIkNmblwiIGNsYXNzZXMgYW5kIHZlcmlmaWVzXG4vLyB0aGF0IHdlIGhhdmUgYSBjb3JyZXNwb25kaW5nIEwxIGNsYXNzIGZvciBpdCB0aGF0J3MgaWRlbnRpZmllZCBhcyBhIHJlc291cmNlLlxuZXhwb3J0IGNvbnN0IGNmblJlc291cmNlTGludGVyID0gbmV3IExpbnRlcihhID0+IENmblJlc291cmNlUmVmbGVjdGlvbi5maW5kQWxsKGEpKTtcblxuY2ZuUmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Jlc291cmNlLWNsYXNzJyxcbiAgbWVzc2FnZTogJ2V2ZXJ5IHJlc291cmNlIG11c3QgaGF2ZSBhIHJlc291cmNlIGNsYXNzIChMMiksIGFkZCBcXCdAcmVzb3VyY2UgJXNcXCcgdG8gaXRzIGRvY3N0cmluZycsXG4gIHdhcm5pbmc6IHRydWUsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGNvbnN0IGwyID0gUmVzb3VyY2VSZWZsZWN0aW9uLmZpbmRBbGwoZS5jdHguY2xhc3NUeXBlLmFzc2VtYmx5KS5maW5kKHIgPT4gci5jZm4uZnVsbG5hbWUgPT09IGUuY3R4LmZ1bGxuYW1lKTtcbiAgICBlLmFzc2VydChsMiwgZS5jdHguZnVsbG5hbWUsIGUuY3R4LmZ1bGxuYW1lKTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY2xhc3MgQ2ZuUmVzb3VyY2VSZWZsZWN0aW9uIHtcbiAgLyoqXG4gICAqIEZpbmRzIGEgQ2ZuIHJlc291cmNlIGNsYXNzIGJ5IGZ1bGwgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgbmFtZSAoZS5nLiBgQVdTOjpTMzo6QnVja2V0YClcbiAgICogQHBhcmFtIGZ1bGxOYW1lIGZpcnN0IHR3byBjb21wb25lbnRzIGFyZSBjYXNlLWluc2Vuc2l0aXZlIChlLmcuIGBhd3M6OnMzOjpCdWNrZXRgIGlzIGVxdWl2YWxlbnQgdG8gYEF3czo6UzM6OkJ1Y2tldGApXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZpbmRCeU5hbWUoc3lzOiByZWZsZWN0LlR5cGVTeXN0ZW0sIGZ1bGxOYW1lOiBzdHJpbmcpIHtcbiAgICBmb3IgKGNvbnN0IGNscyBvZiBzeXMuY2xhc3Nlcykge1xuICAgICAgaWYgKGNscy5kb2NzLmN1c3RvbVRhZygnY2xvdWRmb3JtYXRpb25SZXNvdXJjZScpPy50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBmdWxsTmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSB7XG4gICAgICAgIHJldHVybiBuZXcgQ2ZuUmVzb3VyY2VSZWZsZWN0aW9uKGNscyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCBDRk4gcmVzb3VyY2UgY2xhc3NlcyB3aXRoaW4gYW4gYXNzZW1ibHkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZpbmRBbGwoYXNzZW1ibHk6IHJlZmxlY3QuQXNzZW1ibHkpIHtcbiAgICByZXR1cm4gYXNzZW1ibHkuY2xhc3Nlc1xuICAgICAgLmZpbHRlcihjID0+IENvcmVUeXBlcy5pc0NmblJlc291cmNlKGMpKVxuICAgICAgLm1hcChjID0+IG5ldyBDZm5SZXNvdXJjZVJlZmxlY3Rpb24oYykpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGNsYXNzVHlwZTogcmVmbGVjdC5DbGFzc1R5cGU7XG4gIHB1YmxpYyByZWFkb25seSBmdWxsbmFtZTogc3RyaW5nOyAvLyBBV1M6OlMzOjpCdWNrZXRcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVzcGFjZTogc3RyaW5nOyAvLyBBV1M6OlMzXG4gIHB1YmxpYyByZWFkb25seSBiYXNlbmFtZTogc3RyaW5nOyAvLyBCdWNrZXRcbiAgcHVibGljIHJlYWRvbmx5IGF0dHJpYnV0ZU5hbWVzOiBzdHJpbmdbXTsgLy8gKG5vcm1hbGl6ZWQpIGJ1Y2tldEFybiwgYnVja2V0TmFtZSwgcXVldWVVcmxcbiAgcHVibGljIHJlYWRvbmx5IGRvYzogc3RyaW5nOyAvLyBsaW5rIHRvIENsb3VkRm9ybWF0aW9uIGRvY3NcblxuICBjb25zdHJ1Y3RvcihjbHM6IHJlZmxlY3QuQ2xhc3NUeXBlKSB7XG4gICAgdGhpcy5jbGFzc1R5cGUgPSBjbHM7XG5cbiAgICB0aGlzLmJhc2VuYW1lID0gY2xzLm5hbWUuc2xpY2UoJ0NmbicubGVuZ3RoKTtcblxuICAgIC8vIEhBQ0s6IGV4dHJhY3QgZnVsbCBDRk4gbmFtZSBmcm9tIGluaXRpYWxpemVyIGRvY3NcbiAgICBjb25zdCBpbml0aWFsaXplckRvYyA9IChjbHMuaW5pdGlhbGl6ZXIgJiYgY2xzLmluaXRpYWxpemVyLmRvY3MuZG9jcy5zdW1tYXJ5KSB8fCAnJztcbiAgICBjb25zdCBvdXQgPSAvYSBuZXcgYChbXmBdKylgLy5leGVjKGluaXRpYWxpemVyRG9jKTtcbiAgICBjb25zdCBmdWxsbmFtZSA9IG91dCAmJiBvdXRbMV07XG4gICAgaWYgKCFmdWxsbmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gZXh0cmFjdCBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSBuYW1lIGZyb20gaW5pdGlhbGl6ZXIgZG9jdW1lbnRhdGlvbiBvZiAke2Nsc31gKTtcbiAgICB9XG5cbiAgICB0aGlzLmZ1bGxuYW1lID0gZnVsbG5hbWU7XG5cbiAgICB0aGlzLm5hbWVzcGFjZSA9IGZ1bGxuYW1lLnNwbGl0KCc6OicpLnNsaWNlKDAsIDIpLmpvaW4oJzo6Jyk7XG5cbiAgICB0aGlzLmF0dHJpYnV0ZU5hbWVzID0gY2xzLm93blByb3BlcnRpZXNcbiAgICAgIC5maWx0ZXIocCA9PiAocC5kb2NzLmRvY3MuY3VzdG9tIHx8IHt9KS5jbG91ZGZvcm1hdGlvbkF0dHJpYnV0ZSlcbiAgICAgIC5tYXAocCA9PiBwLmRvY3MuY3VzdG9tVGFnKCdjbG91ZGZvcm1hdGlvbkF0dHJpYnV0ZScpIHx8ICc8ZXJyb3I+JylcbiAgICAgIC5tYXAocCA9PiB0aGlzLmF0dHJpYnV0ZVByb3BlcnR5TmFtZUZyb21DZm5OYW1lKHApKTtcblxuICAgIHRoaXMuZG9jID0gY2xzLmRvY3MuZG9jcy5zZWUgfHwgJyc7XG4gIH1cblxuICBwcml2YXRlIGF0dHJpYnV0ZVByb3BlcnR5TmFtZUZyb21DZm5OYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cbiAgICAvLyBzcGVjaWFsIGNhc2UgKHNvbWVvbmUgd2FzIHNtYXJ0KSwgc3BlY2lhbCBjYXNlIGNvcGllZCBmcm9tIGNmbjJ0c1xuICAgIGlmICh0aGlzLmJhc2VuYW1lID09PSAnU2VjdXJpdHlHcm91cCcgJiYgbmFtZSA9PT0gJ0dyb3VwSWQnKSB7XG4gICAgICByZXR1cm4gJ0lkJztcbiAgICB9XG5cbiAgICByZXR1cm4gY2FtZWxjYXNlKG5hbWUsIHsgcGFzY2FsQ2FzZTogdHJ1ZSB9KTtcbiAgfVxufVxuIl19
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZuLXJlc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2ZuLXJlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVDQUF1QztBQUV2Qyw2Q0FBeUM7QUFDekMseUNBQWdEO0FBQ2hELHNDQUFtQztBQUVuQyx5RkFBeUY7QUFDekYsZ0ZBQWdGO0FBQ25FLFFBQUEsaUJBQWlCLEdBQUcsSUFBSSxlQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVuRix5QkFBaUIsQ0FBQyxHQUFHLENBQUM7SUFDcEIsSUFBSSxFQUFFLGdCQUFnQjtJQUN0QixPQUFPLEVBQUUsdUZBQXVGO0lBQ2hHLE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsTUFBTSxFQUFFLEdBQUcsNkJBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0csQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBYSxxQkFBcUI7SUErQmhDLFlBQVksR0FBc0I7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7UUFFckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFN0Msb0RBQW9EO1FBQ3BELE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BGLE1BQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRCxNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLG9GQUFvRixHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQzVHO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFDLGFBQWE7YUFDcEMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsdUJBQXVCLENBQUM7YUFDL0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMseUJBQXlCLENBQUMsSUFBSSxTQUFTLENBQUM7YUFDbEUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdEQsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFyREQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUF1QixFQUFFLFFBQWdCO1FBQ2hFLEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRTtZQUM3QixJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtnQkFDdEcsT0FBTyxJQUFJLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZDO1NBQ0Y7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQTBCO1FBQzlDLE9BQU8sUUFBUSxDQUFDLE9BQU87YUFDcEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsc0JBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdkMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFrQ08sZ0NBQWdDLENBQUMsSUFBWTtRQUVuRCxvRUFBb0U7UUFDcEUsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLGVBQWUsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzNELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0Y7QUFqRUQsc0RBaUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2FtZWxjYXNlIGZyb20gJ2NhbWVsY2FzZSc7XG5pbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBDb3JlVHlwZXMgfSBmcm9tICcuL2NvcmUtdHlwZXMnO1xuaW1wb3J0IHsgUmVzb3VyY2VSZWZsZWN0aW9uIH0gZnJvbSAnLi9yZXNvdXJjZSc7XG5pbXBvcnQgeyBMaW50ZXIgfSBmcm9tICcuLi9saW50ZXInO1xuXG4vLyB0aGlzIGxpbnRlciB2ZXJpZmllcyB0aGF0IHdlIGhhdmUgTDIgY292ZXJhZ2UuIGl0IGZpbmRzIGFsbCBcIkNmblwiIGNsYXNzZXMgYW5kIHZlcmlmaWVzXG4vLyB0aGF0IHdlIGhhdmUgYSBjb3JyZXNwb25kaW5nIEwxIGNsYXNzIGZvciBpdCB0aGF0J3MgaWRlbnRpZmllZCBhcyBhIHJlc291cmNlLlxuZXhwb3J0IGNvbnN0IGNmblJlc291cmNlTGludGVyID0gbmV3IExpbnRlcihhID0+IENmblJlc291cmNlUmVmbGVjdGlvbi5maW5kQWxsKGEpKTtcblxuY2ZuUmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Jlc291cmNlLWNsYXNzJyxcbiAgbWVzc2FnZTogJ2V2ZXJ5IHJlc291cmNlIG11c3QgaGF2ZSBhIHJlc291cmNlIGNsYXNzIChMMiksIGFkZCBcXCdAcmVzb3VyY2UgJXNcXCcgdG8gaXRzIGRvY3N0cmluZycsXG4gIHdhcm5pbmc6IHRydWUsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGNvbnN0IGwyID0gUmVzb3VyY2VSZWZsZWN0aW9uLmZpbmRBbGwoZS5jdHguY2xhc3NUeXBlLmFzc2VtYmx5KS5maW5kKHIgPT4gci5jZm4uZnVsbG5hbWUgPT09IGUuY3R4LmZ1bGxuYW1lKTtcbiAgICBlLmFzc2VydChsMiwgZS5jdHguZnVsbG5hbWUsIGUuY3R4LmZ1bGxuYW1lKTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY2xhc3MgQ2ZuUmVzb3VyY2VSZWZsZWN0aW9uIHtcbiAgLyoqXG4gICAqIEZpbmRzIGEgQ2ZuIHJlc291cmNlIGNsYXNzIGJ5IGZ1bGwgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgbmFtZSAoZS5nLiBgQVdTOjpTMzo6QnVja2V0YClcbiAgICogQHBhcmFtIGZ1bGxOYW1lIGZpcnN0IHR3byBjb21wb25lbnRzIGFyZSBjYXNlLWluc2Vuc2l0aXZlIChlLmcuIGBhd3M6OnMzOjpCdWNrZXRgIGlzIGVxdWl2YWxlbnQgdG8gYEF3czo6UzM6OkJ1Y2tldGApXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZpbmRCeU5hbWUoc3lzOiByZWZsZWN0LlR5cGVTeXN0ZW0sIGZ1bGxOYW1lOiBzdHJpbmcpIHtcbiAgICBmb3IgKGNvbnN0IGNscyBvZiBzeXMuY2xhc3Nlcykge1xuICAgICAgaWYgKGNscy5kb2NzLmN1c3RvbVRhZygnY2xvdWRmb3JtYXRpb25SZXNvdXJjZScpPy50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBmdWxsTmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSB7XG4gICAgICAgIHJldHVybiBuZXcgQ2ZuUmVzb3VyY2VSZWZsZWN0aW9uKGNscyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCBDRk4gcmVzb3VyY2UgY2xhc3NlcyB3aXRoaW4gYW4gYXNzZW1ibHkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZpbmRBbGwoYXNzZW1ibHk6IHJlZmxlY3QuQXNzZW1ibHkpIHtcbiAgICByZXR1cm4gYXNzZW1ibHkuY2xhc3Nlc1xuICAgICAgLmZpbHRlcihjID0+IENvcmVUeXBlcy5pc0NmblJlc291cmNlKGMpKVxuICAgICAgLm1hcChjID0+IG5ldyBDZm5SZXNvdXJjZVJlZmxlY3Rpb24oYykpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGNsYXNzVHlwZTogcmVmbGVjdC5DbGFzc1R5cGU7XG4gIHB1YmxpYyByZWFkb25seSBmdWxsbmFtZTogc3RyaW5nOyAvLyBBV1M6OlMzOjpCdWNrZXRcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVzcGFjZTogc3RyaW5nOyAvLyBBV1M6OlMzXG4gIHB1YmxpYyByZWFkb25seSBiYXNlbmFtZTogc3RyaW5nOyAvLyBCdWNrZXRcbiAgcHVibGljIHJlYWRvbmx5IGF0dHJpYnV0ZU5hbWVzOiBzdHJpbmdbXTsgLy8gKG5vcm1hbGl6ZWQpIGJ1Y2tldEFybiwgYnVja2V0TmFtZSwgcXVldWVVcmxcbiAgcHVibGljIHJlYWRvbmx5IGRvYzogc3RyaW5nOyAvLyBsaW5rIHRvIENsb3VkRm9ybWF0aW9uIGRvY3NcblxuICBjb25zdHJ1Y3RvcihjbHM6IHJlZmxlY3QuQ2xhc3NUeXBlKSB7XG4gICAgdGhpcy5jbGFzc1R5cGUgPSBjbHM7XG5cbiAgICB0aGlzLmJhc2VuYW1lID0gY2xzLm5hbWUuc2xpY2UoJ0NmbicubGVuZ3RoKTtcblxuICAgIC8vIEhBQ0s6IGV4dHJhY3QgZnVsbCBDRk4gbmFtZSBmcm9tIGluaXRpYWxpemVyIGRvY3NcbiAgICBjb25zdCBpbml0aWFsaXplckRvYyA9IChjbHMuaW5pdGlhbGl6ZXIgJiYgY2xzLmluaXRpYWxpemVyLmRvY3MuZG9jcy5zdW1tYXJ5KSB8fCAnJztcbiAgICBjb25zdCBvdXQgPSAvYSBuZXcgYChbXmBdKylgLy5leGVjKGluaXRpYWxpemVyRG9jKTtcbiAgICBjb25zdCBmdWxsbmFtZSA9IG91dCAmJiBvdXRbMV07XG4gICAgaWYgKCFmdWxsbmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gZXh0cmFjdCBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSBuYW1lIGZyb20gaW5pdGlhbGl6ZXIgZG9jdW1lbnRhdGlvbiBvZiAke2Nsc31gKTtcbiAgICB9XG5cbiAgICB0aGlzLmZ1bGxuYW1lID0gZnVsbG5hbWU7XG5cbiAgICB0aGlzLm5hbWVzcGFjZSA9IGZ1bGxuYW1lLnNwbGl0KCc6OicpLnNsaWNlKDAsIDIpLmpvaW4oJzo6Jyk7XG5cbiAgICB0aGlzLmF0dHJpYnV0ZU5hbWVzID0gY2xzLm93blByb3BlcnRpZXNcbiAgICAgIC5maWx0ZXIocCA9PiAocC5kb2NzLmRvY3MuY3VzdG9tIHx8IHt9KS5jbG91ZGZvcm1hdGlvbkF0dHJpYnV0ZSlcbiAgICAgIC5tYXAocCA9PiBwLmRvY3MuY3VzdG9tVGFnKCdjbG91ZGZvcm1hdGlvbkF0dHJpYnV0ZScpIHx8ICc8ZXJyb3I+JylcbiAgICAgIC5tYXAocCA9PiB0aGlzLmF0dHJpYnV0ZVByb3BlcnR5TmFtZUZyb21DZm5OYW1lKHApKTtcblxuICAgIHRoaXMuZG9jID0gY2xzLmRvY3MuZG9jcy5zZWUgfHwgJyc7XG4gIH1cblxuICBwcml2YXRlIGF0dHJpYnV0ZVByb3BlcnR5TmFtZUZyb21DZm5OYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cbiAgICAvLyBzcGVjaWFsIGNhc2UgKHNvbWVvbmUgd2FzIHNtYXJ0KSwgc3BlY2lhbCBjYXNlIGNvcGllZCBmcm9tIGNmbjJ0c1xuICAgIGlmICh0aGlzLmJhc2VuYW1lID09PSAnU2VjdXJpdHlHcm91cCcgJiYgbmFtZSA9PT0gJ0dyb3VwSWQnKSB7XG4gICAgICByZXR1cm4gJ0lkJztcbiAgICB9XG5cbiAgICByZXR1cm4gY2FtZWxjYXNlKG5hbWUsIHsgcGFzY2FsQ2FzZTogdHJ1ZSB9KTtcbiAgfVxufVxuIl19
@@ -1,8 +1,8 @@
1
1
  import * as camelcase from 'camelcase';
2
2
  import * as reflect from 'jsii-reflect';
3
- import { Linter } from '../linter';
4
3
  import { CoreTypes } from './core-types';
5
4
  import { ResourceReflection } from './resource';
5
+ import { Linter } from '../linter';
6
6
 
7
7
  // this linter verifies that we have L2 coverage. it finds all "Cfn" classes and verifies
8
8
  // that we have a corresponding L1 class for it that's identified as a resource.
@@ -1,6 +1,6 @@
1
1
  import * as reflect from 'jsii-reflect';
2
- import { Linter } from '../linter';
3
2
  import { ConstructReflection } from './construct';
3
+ import { Linter } from '../linter';
4
4
  export declare const eventsLinter: Linter<EventsReflection>;
5
5
  export declare class EventsReflection extends ConstructReflection {
6
6
  get directEventMethods(): reflect.Method[];
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EventsReflection = exports.eventsLinter = void 0;
4
- const linter_1 = require("../linter");
5
4
  const construct_1 = require("./construct");
6
5
  const core_types_1 = require("./core-types");
6
+ const linter_1 = require("../linter");
7
7
  exports.eventsLinter = new linter_1.Linter(assembly => assembly.classes
8
8
  .filter(t => core_types_1.CoreTypes.isConstructClass(t))
9
9
  .map(construct => new EventsReflection(construct)));
@@ -66,4 +66,4 @@ function isDirectEventMethod(m) {
66
66
  function isCloudTrailEventMethod(m) {
67
67
  return m.name.startsWith('onCloudTrail');
68
68
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWR3YXRjaC1ldmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZHdhdGNoLWV2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxzQ0FBbUM7QUFDbkMsMkNBQWtEO0FBQ2xELDZDQUF5QztBQUU1QixRQUFBLFlBQVksR0FBRyxJQUFJLGVBQU0sQ0FBbUIsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTztLQUNsRixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxzQkFBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRXRELE1BQWEsZ0JBQWlCLFNBQVEsK0JBQW1CO0lBQ3ZELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQVcsc0JBQXNCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNGO0FBUkQsNENBUUM7QUFFRCxNQUFNLG9CQUFvQixHQUFHLG9DQUFvQyxDQUFDO0FBQ2xFLE1BQU0sY0FBYyxHQUFHLDBCQUEwQixDQUFDO0FBRWxELG9CQUFZLENBQUMsR0FBRyxDQUFDO0lBQ2YsSUFBSSxFQUFFLHFCQUFxQjtJQUMzQixPQUFPLEVBQUUsbUVBQW1FO0lBQzVFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtRQUNSLEtBQUssTUFBTSxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO1lBQ2xG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b3J0IHsgTGludGVyIH0gZnJvbSAnLi4vbGludGVyJztcbmltcG9ydCB7IENvbnN0cnVjdFJlZmxlY3Rpb24gfSBmcm9tICcuL2NvbnN0cnVjdCc7XG5pbXBvcnQgeyBDb3JlVHlwZXMgfSBmcm9tICcuL2NvcmUtdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgZXZlbnRzTGludGVyID0gbmV3IExpbnRlcjxFdmVudHNSZWZsZWN0aW9uPihhc3NlbWJseSA9PiBhc3NlbWJseS5jbGFzc2VzXG4gIC5maWx0ZXIodCA9PiBDb3JlVHlwZXMuaXNDb25zdHJ1Y3RDbGFzcyh0KSlcbiAgLm1hcChjb25zdHJ1Y3QgPT4gbmV3IEV2ZW50c1JlZmxlY3Rpb24oY29uc3RydWN0KSkpO1xuXG5leHBvcnQgY2xhc3MgRXZlbnRzUmVmbGVjdGlvbiBleHRlbmRzIENvbnN0cnVjdFJlZmxlY3Rpb24ge1xuICBwdWJsaWMgZ2V0IGRpcmVjdEV2ZW50TWV0aG9kcygpIHtcbiAgICByZXR1cm4gdGhpcy5jbGFzc1R5cGUuYWxsTWV0aG9kcy5maWx0ZXIoaXNEaXJlY3RFdmVudE1ldGhvZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNsb3VkVHJhaWxFdmVudE1ldGhvZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xhc3NUeXBlLmFsbE1ldGhvZHMuZmlsdGVyKGlzQ2xvdWRUcmFpbEV2ZW50TWV0aG9kKTtcbiAgfVxufVxuXG5jb25zdCBPTl9FVkVOVF9PUFRJT05TX0ZRTiA9ICdAYXdzLWNkay9hd3MtZXZlbnRzLk9uRXZlbnRPcHRpb25zJztcbmNvbnN0IEVWRU5UX1JVTEVfRlFOID0gJ0Bhd3MtY2RrL2F3cy1ldmVudHMuUnVsZSc7XG5cbmV2ZW50c0xpbnRlci5hZGQoe1xuICBjb2RlOiAnZXZlbnRzLWluLWludGVyZmFjZScsXG4gIG1lc3NhZ2U6ICdcXCdvblh4eCgpXFwnIG1ldGhvZHMgc2hvdWxkIGFsc28gYmUgZGVmaW5lZCBvbiBjb25zdHJ1Y3QgaW50ZXJmYWNlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgZm9yIChjb25zdCBtZXRob2Qgb2YgZS5jdHguZGlyZWN0RXZlbnRNZXRob2RzLmNvbmNhdChlLmN0eC5jbG91ZFRyYWlsRXZlbnRNZXRob2RzKSkge1xuICAgICAgZS5hc3NlcnQoIWUuY3R4LmludGVyZmFjZVR5cGUgfHwgZS5jdHguaW50ZXJmYWNlVHlwZS5hbGxNZXRob2RzLmZpbHRlcihtID0+ICFtLnByb3RlY3RlZCkuc29tZShtID0+IG0ubmFtZSA9PT0gbWV0aG9kLm5hbWUpLCBgJHtlLmN0eC5mcW59LiR7bWV0aG9kLm5hbWV9YCk7XG4gICAgfVxuICB9LFxufSk7XG5cbmV2ZW50c0xpbnRlci5hZGQoe1xuICBjb2RlOiAnZXZlbnRzLWdlbmVyaWMnLFxuICBtZXNzYWdlOiAnaWYgdGhlcmUgYXJlIHNwZWNpZmljIFxcJ29uWHh4KClcXCcgbWV0aG9kcywgdGhlcmUgc2hvdWxkIGFsc28gYmUgYSBnZW5lcmljIFxcJ29uRXZlbnQoKVxcJyBtZXRob2QnLFxuICBldmFsOiBlID0+IHtcbiAgICBlLmFzc2VydChlLmN0eC5kaXJlY3RFdmVudE1ldGhvZHMubGVuZ3RoID09PSAwIHx8IGUuY3R4LmNsYXNzVHlwZS5hbGxNZXRob2RzLnNvbWUobSA9PiBtLm5hbWUgPT09ICdvbkV2ZW50JyksIGUuY3R4LmZxbik7XG4gIH0sXG59KTtcblxuZXZlbnRzTGludGVyLmFkZCh7XG4gIGNvZGU6ICdldmVudHMtZ2VuZXJpYy1jbG91ZHRyYWlsJyxcbiAgbWVzc2FnZTogJ2lmIHRoZXJlIGFyZSBzcGVjaWZpYyBcXCdvbkNsb3VkVHJhaWxYeHgoKVxcJyBtZXRob2RzLCB0aGVyZSBzaG91bGQgYWxzbyBiZSBhIGdlbmVyaWMgXFwnb25DbG91ZFRyYWlsRXZlbnQoKVxcJyBtZXRob2QnLFxuICBldmFsOiBlID0+IHtcbiAgICBlLmFzc2VydChlLmN0eC5jbG91ZFRyYWlsRXZlbnRNZXRob2RzLmxlbmd0aCA9PT0gMCB8fCBlLmN0eC5jbGFzc1R5cGUuYWxsTWV0aG9kcy5zb21lKG0gPT4gbS5uYW1lID09PSAnb25DbG91ZFRyYWlsRXZlbnQnKSwgZS5jdHguZnFuKTtcbiAgfSxcbn0pO1xuXG5ldmVudHNMaW50ZXIuYWRkKHtcbiAgY29kZTogJ2V2ZW50cy1tZXRob2Qtc2lnbmF0dXJlJyxcbiAgbWVzc2FnZTogJ2FsbCBcXCdvblh4eCgpXFwnIG1ldGhvZHMgc2hvdWxkIGhhdmUgdGhlIENsb3VkV2F0Y2ggRXZlbnRzIHNpZ25hdHVyZSAoaWQ6IHN0cmluZywgb3B0aW9uczogZXZlbnRzLk9uRXZlbnRPcHRpb25zID0ge30pID0+IGV2ZW50cy5SdWxlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgZm9yIChjb25zdCBtZXRob2Qgb2YgZS5jdHguZGlyZWN0RXZlbnRNZXRob2RzKSB7XG4gICAgICAvLyBnaXZlIHNsYWNrIHRvIHByb3RlY3RlZCBtZXRob2RzIGxpa2UgXCJvblN5bnRoZXNpemVcIiwgXCJvblByZXBhcmVcIiwgLi4uXG4gICAgICBpZiAobWV0aG9kLnByb3RlY3RlZCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGUuYXNzZXJ0U2lnbmF0dXJlKG1ldGhvZCwge1xuICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICAgIHsgdHlwZTogT05fRVZFTlRfT1BUSU9OU19GUU4sIHN1YnR5cGVBbGxvd2VkOiB0cnVlLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBdLFxuICAgICAgICByZXR1cm5zOiBFVkVOVF9SVUxFX0ZRTixcbiAgICAgIH0pO1xuICAgIH1cbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBpc0RpcmVjdEV2ZW50TWV0aG9kKG06IHJlZmxlY3QuTWV0aG9kKSB7XG4gIHJldHVybiAhbS5wcm90ZWN0ZWQgJiYgbS5uYW1lLnN0YXJ0c1dpdGgoJ29uJykgJiYgISBtLm5hbWUuc3RhcnRzV2l0aCgnb25DbG91ZFRyYWlsJyk7XG59XG5cbmZ1bmN0aW9uIGlzQ2xvdWRUcmFpbEV2ZW50TWV0aG9kKG06IHJlZmxlY3QuTWV0aG9kKSB7XG4gIHJldHVybiBtLm5hbWUuc3RhcnRzV2l0aCgnb25DbG91ZFRyYWlsJyk7XG59XG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWR3YXRjaC1ldmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZHdhdGNoLWV2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyQ0FBa0Q7QUFDbEQsNkNBQXlDO0FBQ3pDLHNDQUFtQztBQUV0QixRQUFBLFlBQVksR0FBRyxJQUFJLGVBQU0sQ0FBbUIsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTztLQUNsRixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxzQkFBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRXRELE1BQWEsZ0JBQWlCLFNBQVEsK0JBQW1CO0lBQ3ZELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQVcsc0JBQXNCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNGO0FBUkQsNENBUUM7QUFFRCxNQUFNLG9CQUFvQixHQUFHLG9DQUFvQyxDQUFDO0FBQ2xFLE1BQU0sY0FBYyxHQUFHLDBCQUEwQixDQUFDO0FBRWxELG9CQUFZLENBQUMsR0FBRyxDQUFDO0lBQ2YsSUFBSSxFQUFFLHFCQUFxQjtJQUMzQixPQUFPLEVBQUUsbUVBQW1FO0lBQzVFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtRQUNSLEtBQUssTUFBTSxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO1lBQ2xG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b3J0IHsgQ29uc3RydWN0UmVmbGVjdGlvbiB9IGZyb20gJy4vY29uc3RydWN0JztcbmltcG9ydCB7IENvcmVUeXBlcyB9IGZyb20gJy4vY29yZS10eXBlcyc7XG5pbXBvcnQgeyBMaW50ZXIgfSBmcm9tICcuLi9saW50ZXInO1xuXG5leHBvcnQgY29uc3QgZXZlbnRzTGludGVyID0gbmV3IExpbnRlcjxFdmVudHNSZWZsZWN0aW9uPihhc3NlbWJseSA9PiBhc3NlbWJseS5jbGFzc2VzXG4gIC5maWx0ZXIodCA9PiBDb3JlVHlwZXMuaXNDb25zdHJ1Y3RDbGFzcyh0KSlcbiAgLm1hcChjb25zdHJ1Y3QgPT4gbmV3IEV2ZW50c1JlZmxlY3Rpb24oY29uc3RydWN0KSkpO1xuXG5leHBvcnQgY2xhc3MgRXZlbnRzUmVmbGVjdGlvbiBleHRlbmRzIENvbnN0cnVjdFJlZmxlY3Rpb24ge1xuICBwdWJsaWMgZ2V0IGRpcmVjdEV2ZW50TWV0aG9kcygpIHtcbiAgICByZXR1cm4gdGhpcy5jbGFzc1R5cGUuYWxsTWV0aG9kcy5maWx0ZXIoaXNEaXJlY3RFdmVudE1ldGhvZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNsb3VkVHJhaWxFdmVudE1ldGhvZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xhc3NUeXBlLmFsbE1ldGhvZHMuZmlsdGVyKGlzQ2xvdWRUcmFpbEV2ZW50TWV0aG9kKTtcbiAgfVxufVxuXG5jb25zdCBPTl9FVkVOVF9PUFRJT05TX0ZRTiA9ICdAYXdzLWNkay9hd3MtZXZlbnRzLk9uRXZlbnRPcHRpb25zJztcbmNvbnN0IEVWRU5UX1JVTEVfRlFOID0gJ0Bhd3MtY2RrL2F3cy1ldmVudHMuUnVsZSc7XG5cbmV2ZW50c0xpbnRlci5hZGQoe1xuICBjb2RlOiAnZXZlbnRzLWluLWludGVyZmFjZScsXG4gIG1lc3NhZ2U6ICdcXCdvblh4eCgpXFwnIG1ldGhvZHMgc2hvdWxkIGFsc28gYmUgZGVmaW5lZCBvbiBjb25zdHJ1Y3QgaW50ZXJmYWNlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgZm9yIChjb25zdCBtZXRob2Qgb2YgZS5jdHguZGlyZWN0RXZlbnRNZXRob2RzLmNvbmNhdChlLmN0eC5jbG91ZFRyYWlsRXZlbnRNZXRob2RzKSkge1xuICAgICAgZS5hc3NlcnQoIWUuY3R4LmludGVyZmFjZVR5cGUgfHwgZS5jdHguaW50ZXJmYWNlVHlwZS5hbGxNZXRob2RzLmZpbHRlcihtID0+ICFtLnByb3RlY3RlZCkuc29tZShtID0+IG0ubmFtZSA9PT0gbWV0aG9kLm5hbWUpLCBgJHtlLmN0eC5mcW59LiR7bWV0aG9kLm5hbWV9YCk7XG4gICAgfVxuICB9LFxufSk7XG5cbmV2ZW50c0xpbnRlci5hZGQoe1xuICBjb2RlOiAnZXZlbnRzLWdlbmVyaWMnLFxuICBtZXNzYWdlOiAnaWYgdGhlcmUgYXJlIHNwZWNpZmljIFxcJ29uWHh4KClcXCcgbWV0aG9kcywgdGhlcmUgc2hvdWxkIGFsc28gYmUgYSBnZW5lcmljIFxcJ29uRXZlbnQoKVxcJyBtZXRob2QnLFxuICBldmFsOiBlID0+IHtcbiAgICBlLmFzc2VydChlLmN0eC5kaXJlY3RFdmVudE1ldGhvZHMubGVuZ3RoID09PSAwIHx8IGUuY3R4LmNsYXNzVHlwZS5hbGxNZXRob2RzLnNvbWUobSA9PiBtLm5hbWUgPT09ICdvbkV2ZW50JyksIGUuY3R4LmZxbik7XG4gIH0sXG59KTtcblxuZXZlbnRzTGludGVyLmFkZCh7XG4gIGNvZGU6ICdldmVudHMtZ2VuZXJpYy1jbG91ZHRyYWlsJyxcbiAgbWVzc2FnZTogJ2lmIHRoZXJlIGFyZSBzcGVjaWZpYyBcXCdvbkNsb3VkVHJhaWxYeHgoKVxcJyBtZXRob2RzLCB0aGVyZSBzaG91bGQgYWxzbyBiZSBhIGdlbmVyaWMgXFwnb25DbG91ZFRyYWlsRXZlbnQoKVxcJyBtZXRob2QnLFxuICBldmFsOiBlID0+IHtcbiAgICBlLmFzc2VydChlLmN0eC5jbG91ZFRyYWlsRXZlbnRNZXRob2RzLmxlbmd0aCA9PT0gMCB8fCBlLmN0eC5jbGFzc1R5cGUuYWxsTWV0aG9kcy5zb21lKG0gPT4gbS5uYW1lID09PSAnb25DbG91ZFRyYWlsRXZlbnQnKSwgZS5jdHguZnFuKTtcbiAgfSxcbn0pO1xuXG5ldmVudHNMaW50ZXIuYWRkKHtcbiAgY29kZTogJ2V2ZW50cy1tZXRob2Qtc2lnbmF0dXJlJyxcbiAgbWVzc2FnZTogJ2FsbCBcXCdvblh4eCgpXFwnIG1ldGhvZHMgc2hvdWxkIGhhdmUgdGhlIENsb3VkV2F0Y2ggRXZlbnRzIHNpZ25hdHVyZSAoaWQ6IHN0cmluZywgb3B0aW9uczogZXZlbnRzLk9uRXZlbnRPcHRpb25zID0ge30pID0+IGV2ZW50cy5SdWxlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgZm9yIChjb25zdCBtZXRob2Qgb2YgZS5jdHguZGlyZWN0RXZlbnRNZXRob2RzKSB7XG4gICAgICAvLyBnaXZlIHNsYWNrIHRvIHByb3RlY3RlZCBtZXRob2RzIGxpa2UgXCJvblN5bnRoZXNpemVcIiwgXCJvblByZXBhcmVcIiwgLi4uXG4gICAgICBpZiAobWV0aG9kLnByb3RlY3RlZCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGUuYXNzZXJ0U2lnbmF0dXJlKG1ldGhvZCwge1xuICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICAgIHsgdHlwZTogT05fRVZFTlRfT1BUSU9OU19GUU4sIHN1YnR5cGVBbGxvd2VkOiB0cnVlLCBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICAgICBdLFxuICAgICAgICByZXR1cm5zOiBFVkVOVF9SVUxFX0ZRTixcbiAgICAgIH0pO1xuICAgIH1cbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBpc0RpcmVjdEV2ZW50TWV0aG9kKG06IHJlZmxlY3QuTWV0aG9kKSB7XG4gIHJldHVybiAhbS5wcm90ZWN0ZWQgJiYgbS5uYW1lLnN0YXJ0c1dpdGgoJ29uJykgJiYgISBtLm5hbWUuc3RhcnRzV2l0aCgnb25DbG91ZFRyYWlsJyk7XG59XG5cbmZ1bmN0aW9uIGlzQ2xvdWRUcmFpbEV2ZW50TWV0aG9kKG06IHJlZmxlY3QuTWV0aG9kKSB7XG4gIHJldHVybiBtLm5hbWUuc3RhcnRzV2l0aCgnb25DbG91ZFRyYWlsJyk7XG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import * as reflect from 'jsii-reflect';
2
- import { Linter } from '../linter';
3
2
  import { ConstructReflection } from './construct';
4
3
  import { CoreTypes } from './core-types';
4
+ import { Linter } from '../linter';
5
5
 
6
6
  export const eventsLinter = new Linter<EventsReflection>(assembly => assembly.classes
7
7
  .filter(t => CoreTypes.isConstructClass(t))
@@ -1,6 +1,6 @@
1
1
  import * as reflect from 'jsii-reflect';
2
- import { Linter } from '../linter';
3
2
  import { CoreTypes } from './core-types';
3
+ import { Linter } from '../linter';
4
4
  export declare const constructLinter: Linter<ConstructReflection>;
5
5
  export declare class ConstructReflection {
6
6
  readonly classType: reflect.ClassType;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConstructReflection = exports.constructLinter = void 0;
4
- const linter_1 = require("../linter");
5
4
  const core_types_1 = require("./core-types");
5
+ const linter_1 = require("../linter");
6
6
  exports.constructLinter = new linter_1.Linter(assembly => assembly.classes
7
7
  .filter(t => core_types_1.CoreTypes.isConstructClass(t))
8
8
  .map(construct => new ConstructReflection(construct)));
@@ -277,4 +277,4 @@ function baseConstructAddendum() {
277
277
  }
278
278
  return '';
279
279
  }
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNDQUF3RTtBQUN4RSw2Q0FBeUM7QUFFNUIsUUFBQSxlQUFlLEdBQUcsSUFBSSxlQUFNLENBQXNCLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU87S0FDeEYsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsc0JBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMxQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUV6RCxNQUFhLG1CQUFtQjtJQWlDOUIsWUFBNEIsU0FBNEI7UUFBNUIsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFDdEQsSUFBSSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksc0JBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BFLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsSUFBSSxPQUFPLENBQUM7UUFDcEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FB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SUFBSSxFQUFFLENBQUMsQ0FBQzthQUM3RjtTQUNGO0lBQ0gsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILHVCQUFlLENBQUMsR0FBRyxDQUFDO0lBQ2xCLElBQUksRUFBRSxjQUFjO0lBQ3BCLE9BQU8sRUFBRSwwQ0FBMEM7SUFDbkQsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFO1lBQUUsT0FBTztTQUFFO1FBQ2pDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFO1lBQUUsT0FBTztTQUFFO1FBRXhDLDRDQUE0QztRQUM1QyxJQUFJLHNCQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFekQsS0FBSyxNQUFNLFFBQVEsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7WUFDcEQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7U0FDdEU7SUFDSCxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsU0FBUyxxQkFBcUI7SUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEVBQUU7UUFDdkMsT0FBTyxxSEFBcUgsQ0FBQztLQUM5SDtJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IExpbnRlciwgTWV0aG9kU2lnbmF0dXJlUGFyYW1ldGVyRXhwZWN0YXRpb24gfSBmcm9tICcuLi9saW50ZXInO1xuaW1wb3J0IHsgQ29yZVR5cGVzIH0gZnJvbSAnLi9jb3JlLXR5cGVzJztcblxuZXhwb3J0IGNvbnN0IGNvbnN0cnVjdExpbnRlciA9IG5ldyBMaW50ZXI8Q29uc3RydWN0UmVmbGVjdGlvbj4oYXNzZW1ibHkgPT4gYXNzZW1ibHkuY2xhc3Nlc1xuICAuZmlsdGVyKHQgPT4gQ29yZVR5cGVzLmlzQ29uc3RydWN0Q2xhc3ModCkpXG4gIC5tYXAoY29uc3RydWN0ID0+IG5ldyBDb25zdHJ1Y3RSZWZsZWN0aW9uKGNvbnN0cnVjdCkpKTtcblxuZXhwb3J0IGNsYXNzIENvbnN0cnVjdFJlZmxlY3Rpb24ge1xuXG4gIHB1YmxpYyBzdGF0aWMgZmluZEFsbENvbnN0cnVjdHMoYXNzZW1ibHk6IHJlZmxlY3QuQXNzZW1ibHkpIHtcbiAgICByZXR1cm4gYXNzZW1ibHkuY2xhc3Nlc1xuICAgICAgLmZpbHRlcihjID0+IENvcmVUeXBlcy5pc0NvbnN0cnVjdENsYXNzKGMpKVxuICAgICAgLm1hcChjID0+IG5ldyBDb25zdHJ1Y3RSZWZsZWN0aW9uKGMpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RnFuRnJvbVR5cGVSZWYodHlwZVJlZjogcmVmbGVjdC5UeXBlUmVmZXJlbmNlKSB7XG4gICAgaWYgKHR5cGVSZWYuYXJyYXlPZlR5cGUpIHtcbiAgICAgIHJldHVybiB0eXBlUmVmLmFycmF5T2ZUeXBlLmZxbjtcbiAgICB9IGVsc2UgaWYgKHR5cGVSZWYubWFwT2ZUeXBlKSB7XG4gICAgICByZXR1cm4gdHlwZVJlZi5tYXBPZlR5cGUuZnFuO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlUmVmLmZxbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCAtIHVzZSBgQ29yZVR5cGVzLmNvbnN0cnVjdENsYXNzKClgIG9yIGBDb3JlVHlwZXMuYmFzZUNvbnN0cnVjdENsYXNzKClgIGFzIGFwcHJvcHJpYXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgUk9PVF9DTEFTUzogcmVmbGVjdC5DbGFzc1R5cGU7IC8vIGNvbnN0cnVjdHMuQ29uc3RydWN0XG5cbiAgcHVibGljIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgaW50ZXJmYWNlRnFuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBwcm9wc0Zxbjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgaW50ZXJmYWNlVHlwZT86IHJlZmxlY3QuSW50ZXJmYWNlVHlwZTtcbiAgcHVibGljIHJlYWRvbmx5IHByb3BzVHlwZT86IHJlZmxlY3QuSW50ZXJmYWNlVHlwZTtcbiAgcHVibGljIHJlYWRvbmx5IGluaXRpYWxpemVyPzogcmVmbGVjdC5Jbml0aWFsaXplcjtcbiAgcHVibGljIHJlYWRvbmx5IGhhc1Byb3BzQXJndW1lbnQ6IGJvb2xlYW47XG4gIHB1YmxpYyByZWFkb25seSBzeXM6IHJlZmxlY3QuVHlwZVN5c3RlbTtcbiAgcHVibGljIHJlYWRvbmx5IGNvcmU6IENvcmVUeXBlcztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY2xhc3NUeXBlOiByZWZsZWN0LkNsYXNzVHlwZSkge1xuICAgIHRoaXMuZnFuID0gY2xhc3NUeXBlLmZxbjtcbiAgICB0aGlzLnN5cyA9IGNsYXNzVHlwZS5zeXN0ZW07XG4gICAgdGhpcy5jb3JlID0gbmV3IENvcmVUeXBlcyh0aGlzLnN5cyk7XG4gICAgdGhpcy5ST09UX0NMQVNTID0gdGhpcy5zeXMuZmluZENsYXNzKHRoaXMuY29yZS5jb25zdHJ1Y3RDbGFzcy5mcW4pO1xuICAgIHRoaXMuaW50ZXJmYWNlRnFuID0gYCR7Y2xhc3NUeXBlLmFzc2VtYmx5Lm5hbWV9Lkkke2NsYXNzVHlwZS5uYW1lfWA7XG4gICAgdGhpcy5wcm9wc0ZxbiA9IGAke2NsYXNzVHlwZS5hc3NlbWJseS5uYW1lfS4ke2NsYXNzVHlwZS5uYW1lfVByb3BzYDtcbiAgICB0aGlzLmludGVyZmFjZVR5cGUgPSB0aGlzLnRyeUZpbmRJbnRlcmZhY2UoKTtcbiAgICB0aGlzLnByb3BzVHlwZSA9IHRoaXMudHJ5RmluZFByb3BzKCk7XG4gICAgdGhpcy5pbml0aWFsaXplciA9IGNsYXNzVHlwZS5pbml0aWFsaXplcjtcbiAgICB0aGlzLmhhc1Byb3BzQXJndW1lbnQgPSB0aGlzLmluaXRpYWxpemVyICE9IG51bGwgJiYgdGhpcy5pbml0aWFsaXplci5wYXJhbWV0ZXJzLmxlbmd0aCA+PSAzO1xuICB9XG5cbiAgcHJpdmF0ZSB0cnlGaW5kSW50ZXJmYWNlKCkge1xuICAgIGNvbnN0IHN5cyA9IHRoaXMuY2xhc3NUeXBlLnN5c3RlbTtcbiAgICBjb25zdCBmb3VuZCA9IHN5cy50cnlGaW5kRnFuKHRoaXMuaW50ZXJmYWNlRnFuKTtcbiAgICBpZiAoIWZvdW5kKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICghZm91bmQuaXNJbnRlcmZhY2VUeXBlKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0aW5nIHR5cGUgJHt0aGlzLmludGVyZmFjZUZxbn0gdG8gYmUgYW4gaW50ZXJmYWNlYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvdW5kO1xuICB9XG5cbiAgcHJpdmF0ZSB0cnlGaW5kUHJvcHMoKSB7XG4gICAgY29uc3QgZm91bmQgPSB0aGlzLnN5cy50cnlGaW5kRnFuKHRoaXMucHJvcHNGcW4pO1xuICAgIGlmICghZm91bmQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKCFmb3VuZC5pc0ludGVyZmFjZVR5cGUoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RpbmcgcHJvcHMgc3RydWN0ICR7dGhpcy5wcm9wc0Zxbn0gdG8gYmUgYW4gaW50ZXJmYWNlYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvdW5kO1xuICB9XG59XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAnY29uc3RydWN0LWN0b3InLFxuICBtZXNzYWdlOiAnc2lnbmF0dXJlIG9mIGFsbCBjb25zdHJ1Y3QgY29uc3RydWN0b3JzIHNob3VsZCBiZSBcInNjb3BlLCBpZCwgcHJvcHNcIi4gJyArIGJhc2VDb25zdHJ1Y3RBZGRlbmR1bSgpLFxuICBldmFsOiBlID0+IHtcbiAgICAvLyBvbmx5IGFwcGxpZXMgdG8gbm9uIGFic3RyYWN0IGNsYXNzZXNcbiAgICBpZiAoZS5jdHguY2xhc3NUeXBlLmFic3RyYWN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaW5pdGlhbGl6ZXIgPSBlLmN0eC5pbml0aWFsaXplcjtcbiAgICBpZiAoIWUuYXNzZXJ0KGluaXRpYWxpemVyLCBlLmN0eC5mcW4pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXhwZWN0ZWRQYXJhbXMgPSBuZXcgQXJyYXk8TWV0aG9kU2lnbmF0dXJlUGFyYW1ldGVyRXhwZWN0YXRpb24+KCk7XG5cbiAgICBsZXQgYmFzZVR5cGU7XG4gICAgaWYgKHByb2Nlc3MuZW52LkFXU0xJTlRfQkFTRV9DT05TVFJVQ1QgJiYgIUNvcmVUeXBlcy5pc0NmblJlc291cmNlKGUuY3R4LmNsYXNzVHlwZSkpIHtcbiAgICAgIGJhc2VUeXBlID0gZS5jdHguY29yZS5iYXNlQ29uc3RydWN0Q2xhc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJhc2VUeXBlID0gZS5jdHguY29yZS5jb25zdHJ1Y3RDbGFzcztcbiAgICB9XG4gICAgZXhwZWN0ZWRQYXJhbXMucHVzaCh7XG4gICAgICBuYW1lOiAnc2NvcGUnLFxuICAgICAgdHlwZTogYmFzZVR5cGUuZnFuLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0ZWRQYXJhbXMucHVzaCh7XG4gICAgICBuYW1lOiAnaWQnLFxuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSk7XG5cbiAgICAvLyBpdCdzIG9rYXkgZm9yIGEgY29uc3RydWN0IG5vdCB0byBoYXZlIGEgXCJwcm9wc1wiIGFyZ3VtZW50IHNvIHdlIG9ubHlcbiAgICAvLyBhc3NlcnQgdGhlIFwicHJvcHNcIiBhcmd1bWVudCBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIHR3byBwYXJhbWV0ZXJzXG4gICAgaWYgKGluaXRpYWxpemVyLnBhcmFtZXRlcnMubGVuZ3RoID4gMikge1xuICAgICAgZXhwZWN0ZWRQYXJhbXMucHVzaCh7XG4gICAgICAgIG5hbWU6ICdwcm9wcycsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBlLmFzc2VydFNpZ25hdHVyZShpbml0aWFsaXplciwge1xuICAgICAgcGFyYW1ldGVyczogZXhwZWN0ZWRQYXJhbXMsXG4gICAgfSk7XG4gIH0sXG59KTtcblxuY29uc3RydWN0TGludGVyLmFkZCh7XG4gIGNvZGU6ICdwcm9wcy1zdHJ1Y3QtbmFtZScsXG4gIG1lc3NhZ2U6ICdhbGwgY29uc3RydWN0cyBtdXN0IGhhdmUgYSBwcm9wcyBzdHJ1Y3QnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4Lmhhc1Byb3BzQXJndW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBhYnN0cmFjdCBjbGFzc2VzIGFyZSBleGVtcHRcbiAgICBpZiAoZS5jdHguY2xhc3NUeXBlLmFic3RyYWN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZS5hc3NlcnQoZS5jdHgucHJvcHNUeXBlLCBlLmN0eC5pbnRlcmZhY2VGcW4pO1xuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAnY29uc3RydWN0LWN0b3ItcHJvcHMtdHlwZScsXG4gIG1lc3NhZ2U6ICdjb25zdHJ1Y3QgXCJwcm9wc1wiIHR5cGUgc2hvdWxkIHVzZSB0aGUgcHJvcHMgc3RydWN0ICVzJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5pbml0aWFsaXplcikgeyByZXR1cm47IH1cbiAgICBpZiAoZS5jdHguaW5pdGlhbGl6ZXIucGFyYW1ldGVycy5sZW5ndGggPCAzKSB7IHJldHVybjsgfVxuXG4gICAgZS5hc3NlcnQoXG4gICAgICBlLmN0eC5pbml0aWFsaXplci5wYXJhbWV0ZXJzWzJdLnR5cGUudHlwZSA9PT0gZS5jdHgucHJvcHNUeXBlLFxuICAgICAgZS5jdHguZnFuLFxuICAgICAgZS5jdHgucHJvcHNGcW4pO1xuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAnY29uc3RydWN0LWN0b3ItcHJvcHMtb3B0aW9uYWwnLFxuICBtZXNzYWdlOiAnY29uc3RydWN0IFwicHJvcHNcIiBtdXN0IGJlIG9wdGlvbmFsIHNpbmNlIGFsbCBwcm9wcyBhcmUgb3B0aW9uYWwnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4LnByb3BzVHlwZSkgeyByZXR1cm47IH1cbiAgICBpZiAoIWUuY3R4LmluaXRpYWxpemVyKSB7IHJldHVybjsgfVxuICAgIGlmICghZS5jdHguaGFzUHJvcHNBcmd1bWVudCkgeyByZXR1cm47IH1cblxuICAgIC8vIHRoaXMgcnVsZSBhcHBsaWVzIG9ubHkgaWYgYWxsIHByb3BlcnRpZXMgYXJlIG9wdGlvbmFsXG4gICAgY29uc3QgYWxsT3B0aW9uYWwgPSBlLmN0eC5wcm9wc1R5cGUuYWxsUHJvcGVydGllcy5ldmVyeShwID0+IHAub3B0aW9uYWwpO1xuICAgIGlmICghYWxsT3B0aW9uYWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlLmFzc2VydChlLmN0eC5pbml0aWFsaXplci5wYXJhbWV0ZXJzWzJdLm9wdGlvbmFsLCBlLmN0eC5mcW4pO1xuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAnY29uc3RydWN0LWludGVyZmFjZS1leHRlbmRzLWljb25zdHJ1Y3QnLFxuICBtZXNzYWdlOiAnY29uc3RydWN0IGludGVyZmFjZSBtdXN0IGV4dGVuZCBjb3JlLklDb25zdHJ1Y3QnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4LmludGVyZmFjZVR5cGUpIHsgcmV0dXJuOyB9XG4gICAgY29uc3QgaW50ZXJmYWNlQmFzZSA9IGUuY3R4LnN5cy5maW5kSW50ZXJmYWNlKGUuY3R4LmNvcmUuY29uc3RydWN0SW50ZXJmYWNlLmZxbik7XG4gICAgZS5hc3NlcnQoZS5jdHguaW50ZXJmYWNlVHlwZS5leHRlbmRzKGludGVyZmFjZUJhc2UpLCBlLmN0eC5pbnRlcmZhY2VUeXBlLmZxbik7XG4gIH0sXG59KTtcblxuY29uc3RydWN0TGludGVyLmFkZCh7XG4gIGNvZGU6ICdjb25zdHJ1Y3QtYmFzZS1pcy1wcml2YXRlJyxcbiAgbWVzc2FnZTogJ3ByZWZlciB0aGF0IHRoZSBjb25zdHJ1Y3QgYmFzZSBjbGFzcyBpcyBwcml2YXRlJyxcbiAgd2FybmluZzogdHJ1ZSxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5pbnRlcmZhY2VUeXBlKSB7IHJldHVybjsgfVxuICAgIGNvbnN0IGJhc2VGcW4gPSBgJHtlLmN0eC5jbGFzc1R5cGUuZnFufUJhc2VgO1xuICAgIGUuYXNzZXJ0KCFlLmN0eC5zeXMudHJ5RmluZEZxbihiYXNlRnFuKSwgYmFzZUZxbik7XG4gIH0sXG59KTtcblxuY29uc3RydWN0TGludGVyLmFkZCh7XG4gIGNvZGU6ICdwcm9wcy1uby11bmlvbnMnLFxuICBtZXNzYWdlOiAncHJvcHMgbXVzdCBub3QgdXNlIFR5cGVTY3JpcHQgdW5pb25zJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5wcm9wc1R5cGUpIHsgcmV0dXJuOyB9XG4gICAgaWYgKCFlLmN0eC5oYXNQcm9wc0FyZ3VtZW50KSB7IHJldHVybjsgfVxuXG4gICAgLy8gdGhpcyBydWxlIGRvZXMgbm90IGFwcGx5IHRvIEwxIGNvbnN0cnVjdHNcbiAgICBpZiAoQ29yZVR5cGVzLmlzQ2ZuUmVzb3VyY2UoZS5jdHguY2xhc3NUeXBlKSkgeyByZXR1cm47IH1cblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgZS5jdHgucHJvcHNUeXBlLm93blByb3BlcnRpZXMpIHtcbiAgICAgIGUuYXNzZXJ0KCFwcm9wZXJ0eS50eXBlLnVuaW9uT2ZUeXBlcywgYCR7ZS5jdHgucHJvcHNGcW59LiR7cHJvcGVydHkubmFtZX1gKTtcbiAgICB9XG4gIH0sXG59KTtcblxuY29uc3RydWN0TGludGVyLmFkZCh7XG4gIGNvZGU6ICdwcm9wcy1uby1hcm4tcmVmcycsXG4gIG1lc3NhZ2U6ICdwcm9wcyBtdXN0IHVzZSBzdHJvbmcgdHlwZXMgaW5zdGVhZCBvZiBhdHRyaWJ1dGVzLiBwcm9wcyBzaG91bGQgbm90IGhhdmUgXCJhcm5cIiBzdWZmaXgnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4LnByb3BzVHlwZSkgeyByZXR1cm47IH1cbiAgICBpZiAoIWUuY3R4Lmhhc1Byb3BzQXJndW1lbnQpIHsgcmV0dXJuOyB9XG5cbiAgICAvLyB0aGlzIHJ1bGUgZG9lcyBub3QgYXBwbHkgdG8gTDEgY29uc3RydWN0c1xuICAgIGlmIChDb3JlVHlwZXMuaXNDZm5SZXNvdXJjZShlLmN0eC5jbGFzc1R5cGUpKSB7IHJldHVybjsgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBlLmN0eC5wcm9wc1R5cGUub3duUHJvcGVydGllcykge1xuICAgICAgZS5hc3NlcnQoIXByb3BlcnR5Lm5hbWUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnYXJuJyksIGAke2UuY3R4LnByb3BzRnFufS4ke3Byb3BlcnR5Lm5hbWV9YCk7XG4gICAgfVxuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtbm8tdG9rZW5zJyxcbiAgbWVzc2FnZTogJ3Byb3BzIG11c3Qgbm90IHVzZSB0aGUgXCJUb2tlblwiIHR5cGUnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4LnByb3BzVHlwZSkgeyByZXR1cm47IH1cbiAgICBpZiAoIWUuY3R4Lmhhc1Byb3BzQXJndW1lbnQpIHsgcmV0dXJuOyB9XG5cbiAgICAvLyB0aGlzIHJ1bGUgZG9lcyBub3QgYXBwbHkgdG8gTDEgY29uc3RydWN0c1xuICAgIGlmIChDb3JlVHlwZXMuaXNDZm5SZXNvdXJjZShlLmN0eC5jbGFzc1R5cGUpKSB7IHJldHVybjsgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBlLmN0eC5wcm9wc1R5cGUuYWxsUHJvcGVydGllcykge1xuICAgICAgY29uc3QgZnFuID0gQ29uc3RydWN0UmVmbGVjdGlvbi5nZXRGcW5Gcm9tVHlwZVJlZihwcm9wZXJ0eS50eXBlKTtcblxuICAgICAgY29uc3QgZm91bmQgPSAoZnFuICYmIGUuY3R4LnN5cy50cnlGaW5kRnFuKGZxbikpO1xuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIGUuYXNzZXJ0KCEoZnFuID09PSBlLmN0eC5jb3JlLnRva2VuSW50ZXJmYWNlLmZxbiksIGAke2UuY3R4LnByb3BzRnFufS4ke3Byb3BlcnR5Lm5hbWV9YCk7XG4gICAgICB9XG4gICAgfVxuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtbm8tY2ZuLXR5cGVzJyxcbiAgbWVzc2FnZTogJ3Byb3BzIG11c3Qgbm90IGV4cG9zZSBMMSB0eXBlcyAodHlwZXMgd2hpY2ggc3RhcnQgd2l0aCBcIkNmblwiKScsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHgucHJvcHNUeXBlKSB7IHJldHVybjsgfVxuICAgIGlmICghZS5jdHguaGFzUHJvcHNBcmd1bWVudCkgeyByZXR1cm47IH1cblxuICAgIC8vIHRoaXMgcnVsZSBkb2VzIG5vdCBhcHBseSB0byBMMSBjb25zdHJ1Y3RzXG4gICAgaWYgKENvcmVUeXBlcy5pc0NmblJlc291cmNlKGUuY3R4LmNsYXNzVHlwZSkpIHsgcmV0dXJuOyB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIGUuY3R4LnByb3BzVHlwZS5vd25Qcm9wZXJ0aWVzKSB7XG4gICAgICBjb25zdCBmcW4gPSBDb25zdHJ1Y3RSZWZsZWN0aW9uLmdldEZxbkZyb21UeXBlUmVmKHByb3BlcnR5LnR5cGUpO1xuXG4gICAgICBjb25zdCBmb3VuZCA9IChmcW4gJiYgZS5jdHguc3lzLnRyeUZpbmRGcW4oZnFuKSk7XG4gICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgZS5hc3NlcnQoIWZvdW5kLm5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCdjZm4nKSwgYCR7ZS5jdHgucHJvcHNGcW59LiR7cHJvcGVydHkubmFtZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG59KTtcblxuY29uc3RydWN0TGludGVyLmFkZCh7XG4gIGNvZGU6ICdwcm9wcy1uby1hbnknLFxuICBtZXNzYWdlOiAncHJvcHMgbXVzdCBub3QgdXNlIFR5cGVzY3JpcHQgXCJhbnlcIiB0eXBlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5wcm9wc1R5cGUpIHsgcmV0dXJuOyB9XG4gICAgaWYgKCFlLmN0eC5oYXNQcm9wc0FyZ3VtZW50KSB7IHJldHVybjsgfVxuXG4gICAgLy8gdGhpcyBydWxlIGRvZXMgbm90IGFwcGx5IHRvIEwxIGNvbnN0cnVjdHNcbiAgICBpZiAoQ29yZVR5cGVzLmlzQ2ZuUmVzb3VyY2UoZS5jdHguY2xhc3NUeXBlKSkgeyByZXR1cm47IH1cblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgZS5jdHgucHJvcHNUeXBlLm93blByb3BlcnRpZXMpIHtcbiAgICAgIGUuYXNzZXJ0KCFwcm9wZXJ0eS50eXBlLmlzQW55LCBgJHtlLmN0eC5wcm9wc0Zxbn0uJHtwcm9wZXJ0eS5uYW1lfWApO1xuICAgIH1cbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBiYXNlQ29uc3RydWN0QWRkZW5kdW0oKTogc3RyaW5nIHtcbiAgaWYgKCFwcm9jZXNzLmVudi5BV1NMSU5UX0JBU0VfQ09OU1RSVUNUKSB7XG4gICAgcmV0dXJuICdJZiB0aGUgY29uc3RydWN0IGlzIHVzaW5nIHRoZSBcImNvbnN0cnVjdHNcIiBtb2R1bGUsIHNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgXCJBV1NMSU5UX0JBU0VfQ09OU1RSVUNUXCIgYW5kIHJlLXJ1bic7XG4gIH1cbiAgcmV0dXJuICcnO1xufSJdfQ==
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZDQUF5QztBQUN6QyxzQ0FBd0U7QUFFM0QsUUFBQSxlQUFlLEdBQUcsSUFBSSxlQUFNLENBQXNCLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU87S0FDeEYsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsc0JBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMxQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUV6RCxNQUFhLG1CQUFtQjtJQWlDOUIsWUFBNEIsU0FBNEI7UUFBNUIsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFDdEQsSUFBSSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksc0JBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BFLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsSUFBSSxPQUFPLENBQUM7UUFDcEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FB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SUFBSSxFQUFFLENBQUMsQ0FBQzthQUM3RjtTQUNGO0lBQ0gsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILHVCQUFlLENBQUMsR0FBRyxDQUFDO0lBQ2xCLElBQUksRUFBRSxjQUFjO0lBQ3BCLE9BQU8sRUFBRSwwQ0FBMEM7SUFDbkQsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFO1lBQUUsT0FBTztTQUFFO1FBQ2pDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFO1lBQUUsT0FBTztTQUFFO1FBRXhDLDRDQUE0QztRQUM1QyxJQUFJLHNCQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFekQsS0FBSyxNQUFNLFFBQVEsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7WUFDcEQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7U0FDdEU7SUFDSCxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsU0FBUyxxQkFBcUI7SUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEVBQUU7UUFDdkMsT0FBTyxxSEFBcUgsQ0FBQztLQUM5SDtJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IENvcmVUeXBlcyB9IGZyb20gJy4vY29yZS10eXBlcyc7XG5pbXBvcnQgeyBMaW50ZXIsIE1ldGhvZFNpZ25hdHVyZVBhcmFtZXRlckV4cGVjdGF0aW9uIH0gZnJvbSAnLi4vbGludGVyJztcblxuZXhwb3J0IGNvbnN0IGNvbnN0cnVjdExpbnRlciA9IG5ldyBMaW50ZXI8Q29uc3RydWN0UmVmbGVjdGlvbj4oYXNzZW1ibHkgPT4gYXNzZW1ibHkuY2xhc3Nlc1xuICAuZmlsdGVyKHQgPT4gQ29yZVR5cGVzLmlzQ29uc3RydWN0Q2xhc3ModCkpXG4gIC5tYXAoY29uc3RydWN0ID0+IG5ldyBDb25zdHJ1Y3RSZWZsZWN0aW9uKGNvbnN0cnVjdCkpKTtcblxuZXhwb3J0IGNsYXNzIENvbnN0cnVjdFJlZmxlY3Rpb24ge1xuXG4gIHB1YmxpYyBzdGF0aWMgZmluZEFsbENvbnN0cnVjdHMoYXNzZW1ibHk6IHJlZmxlY3QuQXNzZW1ibHkpIHtcbiAgICByZXR1cm4gYXNzZW1ibHkuY2xhc3Nlc1xuICAgICAgLmZpbHRlcihjID0+IENvcmVUeXBlcy5pc0NvbnN0cnVjdENsYXNzKGMpKVxuICAgICAgLm1hcChjID0+IG5ldyBDb25zdHJ1Y3RSZWZsZWN0aW9uKGMpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RnFuRnJvbVR5cGVSZWYodHlwZVJlZjogcmVmbGVjdC5UeXBlUmVmZXJlbmNlKSB7XG4gICAgaWYgKHR5cGVSZWYuYXJyYXlPZlR5cGUpIHtcbiAgICAgIHJldHVybiB0eXBlUmVmLmFycmF5T2ZUeXBlLmZxbjtcbiAgICB9IGVsc2UgaWYgKHR5cGVSZWYubWFwT2ZUeXBlKSB7XG4gICAgICByZXR1cm4gdHlwZVJlZi5tYXBPZlR5cGUuZnFuO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlUmVmLmZxbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCAtIHVzZSBgQ29yZVR5cGVzLmNvbnN0cnVjdENsYXNzKClgIG9yIGBDb3JlVHlwZXMuYmFzZUNvbnN0cnVjdENsYXNzKClgIGFzIGFwcHJvcHJpYXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgUk9PVF9DTEFTUzogcmVmbGVjdC5DbGFzc1R5cGU7IC8vIGNvbnN0cnVjdHMuQ29uc3RydWN0XG5cbiAgcHVibGljIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgaW50ZXJmYWNlRnFuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBwcm9wc0Zxbjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgaW50ZXJmYWNlVHlwZT86IHJlZmxlY3QuSW50ZXJmYWNlVHlwZTtcbiAgcHVibGljIHJlYWRvbmx5IHByb3BzVHlwZT86IHJlZmxlY3QuSW50ZXJmYWNlVHlwZTtcbiAgcHVibGljIHJlYWRvbmx5IGluaXRpYWxpemVyPzogcmVmbGVjdC5Jbml0aWFsaXplcjtcbiAgcHVibGljIHJlYWRvbmx5IGhhc1Byb3BzQXJndW1lbnQ6IGJvb2xlYW47XG4gIHB1YmxpYyByZWFkb25seSBzeXM6IHJlZmxlY3QuVHlwZVN5c3RlbTtcbiAgcHVibGljIHJlYWRvbmx5IGNvcmU6IENvcmVUeXBlcztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY2xhc3NUeXBlOiByZWZsZWN0LkNsYXNzVHlwZSkge1xuICAgIHRoaXMuZnFuID0gY2xhc3NUeXBlLmZxbjtcbiAgICB0aGlzLnN5cyA9IGNsYXNzVHlwZS5zeXN0ZW07XG4gICAgdGhpcy5jb3JlID0gbmV3IENvcmVUeXBlcyh0aGlzLnN5cyk7XG4gICAgdGhpcy5ST09UX0NMQVNTID0gdGhpcy5zeXMuZmluZENsYXNzKHRoaXMuY29yZS5jb25zdHJ1Y3RDbGFzcy5mcW4pO1xuICAgIHRoaXMuaW50ZXJmYWNlRnFuID0gYCR7Y2xhc3NUeXBlLmFzc2VtYmx5Lm5hbWV9Lkkke2NsYXNzVHlwZS5uYW1lfWA7XG4gICAgdGhpcy5wcm9wc0ZxbiA9IGAke2NsYXNzVHlwZS5hc3NlbWJseS5uYW1lfS4ke2NsYXNzVHlwZS5uYW1lfVByb3BzYDtcbiAgICB0aGlzLmludGVyZmFjZVR5cGUgPSB0aGlzLnRyeUZpbmRJbnRlcmZhY2UoKTtcbiAgICB0aGlzLnByb3BzVHlwZSA9IHRoaXMudHJ5RmluZFByb3BzKCk7XG4gICAgdGhpcy5pbml0aWFsaXplciA9IGNsYXNzVHlwZS5pbml0aWFsaXplcjtcbiAgICB0aGlzLmhhc1Byb3BzQXJndW1lbnQgPSB0aGlzLmluaXRpYWxpemVyICE9IG51bGwgJiYgdGhpcy5pbml0aWFsaXplci5wYXJhbWV0ZXJzLmxlbmd0aCA+PSAzO1xuICB9XG5cbiAgcHJpdmF0ZSB0cnlGaW5kSW50ZXJmYWNlKCkge1xuICAgIGNvbnN0IHN5cyA9IHRoaXMuY2xhc3NUeXBlLnN5c3RlbTtcbiAgICBjb25zdCBmb3VuZCA9IHN5cy50cnlGaW5kRnFuKHRoaXMuaW50ZXJmYWNlRnFuKTtcbiAgICBpZiAoIWZvdW5kKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICghZm91bmQuaXNJbnRlcmZhY2VUeXBlKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0aW5nIHR5cGUgJHt0aGlzLmludGVyZmFjZUZxbn0gdG8gYmUgYW4gaW50ZXJmYWNlYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvdW5kO1xuICB9XG5cbiAgcHJpdmF0ZSB0cnlGaW5kUHJvcHMoKSB7XG4gICAgY29uc3QgZm91bmQgPSB0aGlzLnN5cy50cnlGaW5kRnFuKHRoaXMucHJvcHNGcW4pO1xuICAgIGlmICghZm91bmQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKCFmb3VuZC5pc0ludGVyZmFjZVR5cGUoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RpbmcgcHJvcHMgc3RydWN0ICR7dGhpcy5wcm9wc0Zxbn0gdG8gYmUgYW4gaW50ZXJmYWNlYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvdW5kO1xuICB9XG59XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAnY29uc3RydWN0LWN0b3InLFxuICBtZXNzYWdlOiAnc2lnbmF0dXJlIG9mIGFsbCBjb25zdHJ1Y3QgY29uc3RydWN0b3JzIHNob3VsZCBiZSBcInNjb3BlLCBpZCwgcHJvcHNcIi4gJyArIGJhc2VDb25zdHJ1Y3RBZGRlbmR1bSgpLFxuICBldmFsOiBlID0+IHtcbiAgICAvLyBvbmx5IGFwcGxpZXMgdG8gbm9uIGFic3RyYWN0IGNsYXNzZXNcbiAgICBpZiAoZS5jdHguY2xhc3NUeXBlLmFic3RyYWN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaW5pdGlhbGl6ZXIgPSBlLmN0eC5pbml0aWFsaXplcjtcbiAgICBpZiAoIWUuYXNzZXJ0KGluaXRpYWxpemVyLCBlLmN0eC5mcW4pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXhwZWN0ZWRQYXJhbXMgPSBuZXcgQXJyYXk8TWV0aG9kU2lnbmF0dXJlUGFyYW1ldGVyRXhwZWN0YXRpb24+KCk7XG5cbiAgICBsZXQgYmFzZVR5cGU7XG4gICAgaWYgKHByb2Nlc3MuZW52LkFXU0xJTlRfQkFTRV9DT05TVFJVQ1QgJiYgIUNvcmVUeXBlcy5pc0NmblJlc291cmNlKGUuY3R4LmNsYXNzVHlwZSkpIHtcbiAgICAgIGJhc2VUeXBlID0gZS5jdHguY29yZS5iYXNlQ29uc3RydWN0Q2xhc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJhc2VUeXBlID0gZS5jdHguY29yZS5jb25zdHJ1Y3RDbGFzcztcbiAgICB9XG4gICAgZXhwZWN0ZWRQYXJhbXMucHVzaCh7XG4gICAgICBuYW1lOiAnc2NvcGUnLFxuICAgICAgdHlwZTogYmFzZVR5cGUuZnFuLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0ZWRQYXJhbXMucHVzaCh7XG4gICAgICBuYW1lOiAnaWQnLFxuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSk7XG5cbiAgICAvLyBpdCdzIG9rYXkgZm9yIGEgY29uc3RydWN0IG5vdCB0byBoYXZlIGEgXCJwcm9wc1wiIGFyZ3VtZW50IHNvIHdlIG9ubHlcbiAgICAvLyBhc3NlcnQgdGhlIFwicHJvcHNcIiBhcmd1bWVudCBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIHR3byBwYXJhbWV0ZXJzXG4gICAgaWYgKGluaXRpYWxpemVyLnBhcmFtZXRlcnMubGVuZ3RoID4gMikge1xuICAgICAgZXhwZWN0ZWRQYXJhbXMucHVzaCh7XG4gICAgICAgIG5hbWU6ICdwcm9wcycsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBlLmFzc2VydFNpZ25hdHVyZShpbml0aWFsaXplciwge1xuICAgICAgcGFyYW1ldGVyczogZXhwZWN0ZWRQYXJhbXMsXG4gICAgfSk7XG4gIH0sXG59KTtcblxuY29uc3RydWN0TGludGVyLmFkZCh7XG4gIGNvZGU6ICdwcm9wcy1zdHJ1Y3QtbmFtZScsXG4gIG1lc3NhZ2U6ICdhbGwgY29uc3RydWN0cyBtdXN0IGhhdmUgYSBwcm9wcyBzdHJ1Y3QnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4Lmhhc1Byb3BzQXJndW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBhYnN0cmFjdCBjbGFzc2VzIGFyZSBleGVtcHRcbiAgICBpZiAoZS5jdHguY2xhc3NUeXBlLmFic3RyYWN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZS5hc3NlcnQoZS5jdHgucHJvcHNUeXBlLCBlLmN0eC5pbnRlcmZhY2VGcW4pO1xuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAnY29uc3RydWN0LWN0b3ItcHJvcHMtdHlwZScsXG4gIG1lc3NhZ2U6ICdjb25zdHJ1Y3QgXCJwcm9wc1wiIHR5cGUgc2hvdWxkIHVzZSB0aGUgcHJvcHMgc3RydWN0ICVzJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5pbml0aWFsaXplcikgeyByZXR1cm47IH1cbiAgICBpZiAoZS5jdHguaW5pdGlhbGl6ZXIucGFyYW1ldGVycy5sZW5ndGggPCAzKSB7IHJldHVybjsgfVxuXG4gICAgZS5hc3NlcnQoXG4gICAgICBlLmN0eC5pbml0aWFsaXplci5wYXJhbWV0ZXJzWzJdLnR5cGUudHlwZSA9PT0gZS5jdHgucHJvcHNUeXBlLFxuICAgICAgZS5jdHguZnFuLFxuICAgICAgZS5jdHgucHJvcHNGcW4pO1xuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAnY29uc3RydWN0LWN0b3ItcHJvcHMtb3B0aW9uYWwnLFxuICBtZXNzYWdlOiAnY29uc3RydWN0IFwicHJvcHNcIiBtdXN0IGJlIG9wdGlvbmFsIHNpbmNlIGFsbCBwcm9wcyBhcmUgb3B0aW9uYWwnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4LnByb3BzVHlwZSkgeyByZXR1cm47IH1cbiAgICBpZiAoIWUuY3R4LmluaXRpYWxpemVyKSB7IHJldHVybjsgfVxuICAgIGlmICghZS5jdHguaGFzUHJvcHNBcmd1bWVudCkgeyByZXR1cm47IH1cblxuICAgIC8vIHRoaXMgcnVsZSBhcHBsaWVzIG9ubHkgaWYgYWxsIHByb3BlcnRpZXMgYXJlIG9wdGlvbmFsXG4gICAgY29uc3QgYWxsT3B0aW9uYWwgPSBlLmN0eC5wcm9wc1R5cGUuYWxsUHJvcGVydGllcy5ldmVyeShwID0+IHAub3B0aW9uYWwpO1xuICAgIGlmICghYWxsT3B0aW9uYWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlLmFzc2VydChlLmN0eC5pbml0aWFsaXplci5wYXJhbWV0ZXJzWzJdLm9wdGlvbmFsLCBlLmN0eC5mcW4pO1xuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAnY29uc3RydWN0LWludGVyZmFjZS1leHRlbmRzLWljb25zdHJ1Y3QnLFxuICBtZXNzYWdlOiAnY29uc3RydWN0IGludGVyZmFjZSBtdXN0IGV4dGVuZCBjb3JlLklDb25zdHJ1Y3QnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4LmludGVyZmFjZVR5cGUpIHsgcmV0dXJuOyB9XG4gICAgY29uc3QgaW50ZXJmYWNlQmFzZSA9IGUuY3R4LnN5cy5maW5kSW50ZXJmYWNlKGUuY3R4LmNvcmUuY29uc3RydWN0SW50ZXJmYWNlLmZxbik7XG4gICAgZS5hc3NlcnQoZS5jdHguaW50ZXJmYWNlVHlwZS5leHRlbmRzKGludGVyZmFjZUJhc2UpLCBlLmN0eC5pbnRlcmZhY2VUeXBlLmZxbik7XG4gIH0sXG59KTtcblxuY29uc3RydWN0TGludGVyLmFkZCh7XG4gIGNvZGU6ICdjb25zdHJ1Y3QtYmFzZS1pcy1wcml2YXRlJyxcbiAgbWVzc2FnZTogJ3ByZWZlciB0aGF0IHRoZSBjb25zdHJ1Y3QgYmFzZSBjbGFzcyBpcyBwcml2YXRlJyxcbiAgd2FybmluZzogdHJ1ZSxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5pbnRlcmZhY2VUeXBlKSB7IHJldHVybjsgfVxuICAgIGNvbnN0IGJhc2VGcW4gPSBgJHtlLmN0eC5jbGFzc1R5cGUuZnFufUJhc2VgO1xuICAgIGUuYXNzZXJ0KCFlLmN0eC5zeXMudHJ5RmluZEZxbihiYXNlRnFuKSwgYmFzZUZxbik7XG4gIH0sXG59KTtcblxuY29uc3RydWN0TGludGVyLmFkZCh7XG4gIGNvZGU6ICdwcm9wcy1uby11bmlvbnMnLFxuICBtZXNzYWdlOiAncHJvcHMgbXVzdCBub3QgdXNlIFR5cGVTY3JpcHQgdW5pb25zJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5wcm9wc1R5cGUpIHsgcmV0dXJuOyB9XG4gICAgaWYgKCFlLmN0eC5oYXNQcm9wc0FyZ3VtZW50KSB7IHJldHVybjsgfVxuXG4gICAgLy8gdGhpcyBydWxlIGRvZXMgbm90IGFwcGx5IHRvIEwxIGNvbnN0cnVjdHNcbiAgICBpZiAoQ29yZVR5cGVzLmlzQ2ZuUmVzb3VyY2UoZS5jdHguY2xhc3NUeXBlKSkgeyByZXR1cm47IH1cblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgZS5jdHgucHJvcHNUeXBlLm93blByb3BlcnRpZXMpIHtcbiAgICAgIGUuYXNzZXJ0KCFwcm9wZXJ0eS50eXBlLnVuaW9uT2ZUeXBlcywgYCR7ZS5jdHgucHJvcHNGcW59LiR7cHJvcGVydHkubmFtZX1gKTtcbiAgICB9XG4gIH0sXG59KTtcblxuY29uc3RydWN0TGludGVyLmFkZCh7XG4gIGNvZGU6ICdwcm9wcy1uby1hcm4tcmVmcycsXG4gIG1lc3NhZ2U6ICdwcm9wcyBtdXN0IHVzZSBzdHJvbmcgdHlwZXMgaW5zdGVhZCBvZiBhdHRyaWJ1dGVzLiBwcm9wcyBzaG91bGQgbm90IGhhdmUgXCJhcm5cIiBzdWZmaXgnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4LnByb3BzVHlwZSkgeyByZXR1cm47IH1cbiAgICBpZiAoIWUuY3R4Lmhhc1Byb3BzQXJndW1lbnQpIHsgcmV0dXJuOyB9XG5cbiAgICAvLyB0aGlzIHJ1bGUgZG9lcyBub3QgYXBwbHkgdG8gTDEgY29uc3RydWN0c1xuICAgIGlmIChDb3JlVHlwZXMuaXNDZm5SZXNvdXJjZShlLmN0eC5jbGFzc1R5cGUpKSB7IHJldHVybjsgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBlLmN0eC5wcm9wc1R5cGUub3duUHJvcGVydGllcykge1xuICAgICAgZS5hc3NlcnQoIXByb3BlcnR5Lm5hbWUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnYXJuJyksIGAke2UuY3R4LnByb3BzRnFufS4ke3Byb3BlcnR5Lm5hbWV9YCk7XG4gICAgfVxuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtbm8tdG9rZW5zJyxcbiAgbWVzc2FnZTogJ3Byb3BzIG11c3Qgbm90IHVzZSB0aGUgXCJUb2tlblwiIHR5cGUnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWUuY3R4LnByb3BzVHlwZSkgeyByZXR1cm47IH1cbiAgICBpZiAoIWUuY3R4Lmhhc1Byb3BzQXJndW1lbnQpIHsgcmV0dXJuOyB9XG5cbiAgICAvLyB0aGlzIHJ1bGUgZG9lcyBub3QgYXBwbHkgdG8gTDEgY29uc3RydWN0c1xuICAgIGlmIChDb3JlVHlwZXMuaXNDZm5SZXNvdXJjZShlLmN0eC5jbGFzc1R5cGUpKSB7IHJldHVybjsgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBlLmN0eC5wcm9wc1R5cGUuYWxsUHJvcGVydGllcykge1xuICAgICAgY29uc3QgZnFuID0gQ29uc3RydWN0UmVmbGVjdGlvbi5nZXRGcW5Gcm9tVHlwZVJlZihwcm9wZXJ0eS50eXBlKTtcblxuICAgICAgY29uc3QgZm91bmQgPSAoZnFuICYmIGUuY3R4LnN5cy50cnlGaW5kRnFuKGZxbikpO1xuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIGUuYXNzZXJ0KCEoZnFuID09PSBlLmN0eC5jb3JlLnRva2VuSW50ZXJmYWNlLmZxbiksIGAke2UuY3R4LnByb3BzRnFufS4ke3Byb3BlcnR5Lm5hbWV9YCk7XG4gICAgICB9XG4gICAgfVxuICB9LFxufSk7XG5cbmNvbnN0cnVjdExpbnRlci5hZGQoe1xuICBjb2RlOiAncHJvcHMtbm8tY2ZuLXR5cGVzJyxcbiAgbWVzc2FnZTogJ3Byb3BzIG11c3Qgbm90IGV4cG9zZSBMMSB0eXBlcyAodHlwZXMgd2hpY2ggc3RhcnQgd2l0aCBcIkNmblwiKScsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHgucHJvcHNUeXBlKSB7IHJldHVybjsgfVxuICAgIGlmICghZS5jdHguaGFzUHJvcHNBcmd1bWVudCkgeyByZXR1cm47IH1cblxuICAgIC8vIHRoaXMgcnVsZSBkb2VzIG5vdCBhcHBseSB0byBMMSBjb25zdHJ1Y3RzXG4gICAgaWYgKENvcmVUeXBlcy5pc0NmblJlc291cmNlKGUuY3R4LmNsYXNzVHlwZSkpIHsgcmV0dXJuOyB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIGUuY3R4LnByb3BzVHlwZS5vd25Qcm9wZXJ0aWVzKSB7XG4gICAgICBjb25zdCBmcW4gPSBDb25zdHJ1Y3RSZWZsZWN0aW9uLmdldEZxbkZyb21UeXBlUmVmKHByb3BlcnR5LnR5cGUpO1xuXG4gICAgICBjb25zdCBmb3VuZCA9IChmcW4gJiYgZS5jdHguc3lzLnRyeUZpbmRGcW4oZnFuKSk7XG4gICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgZS5hc3NlcnQoIWZvdW5kLm5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCdjZm4nKSwgYCR7ZS5jdHgucHJvcHNGcW59LiR7cHJvcGVydHkubmFtZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG59KTtcblxuY29uc3RydWN0TGludGVyLmFkZCh7XG4gIGNvZGU6ICdwcm9wcy1uby1hbnknLFxuICBtZXNzYWdlOiAncHJvcHMgbXVzdCBub3QgdXNlIFR5cGVzY3JpcHQgXCJhbnlcIiB0eXBlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5wcm9wc1R5cGUpIHsgcmV0dXJuOyB9XG4gICAgaWYgKCFlLmN0eC5oYXNQcm9wc0FyZ3VtZW50KSB7IHJldHVybjsgfVxuXG4gICAgLy8gdGhpcyBydWxlIGRvZXMgbm90IGFwcGx5IHRvIEwxIGNvbnN0cnVjdHNcbiAgICBpZiAoQ29yZVR5cGVzLmlzQ2ZuUmVzb3VyY2UoZS5jdHguY2xhc3NUeXBlKSkgeyByZXR1cm47IH1cblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgZS5jdHgucHJvcHNUeXBlLm93blByb3BlcnRpZXMpIHtcbiAgICAgIGUuYXNzZXJ0KCFwcm9wZXJ0eS50eXBlLmlzQW55LCBgJHtlLmN0eC5wcm9wc0Zxbn0uJHtwcm9wZXJ0eS5uYW1lfWApO1xuICAgIH1cbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBiYXNlQ29uc3RydWN0QWRkZW5kdW0oKTogc3RyaW5nIHtcbiAgaWYgKCFwcm9jZXNzLmVudi5BV1NMSU5UX0JBU0VfQ09OU1RSVUNUKSB7XG4gICAgcmV0dXJuICdJZiB0aGUgY29uc3RydWN0IGlzIHVzaW5nIHRoZSBcImNvbnN0cnVjdHNcIiBtb2R1bGUsIHNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgXCJBV1NMSU5UX0JBU0VfQ09OU1RSVUNUXCIgYW5kIHJlLXJ1bic7XG4gIH1cbiAgcmV0dXJuICcnO1xufSJdfQ==
@@ -1,6 +1,6 @@
1
1
  import * as reflect from 'jsii-reflect';
2
- import { Linter, MethodSignatureParameterExpectation } from '../linter';
3
2
  import { CoreTypes } from './core-types';
3
+ import { Linter, MethodSignatureParameterExpectation } from '../linter';
4
4
 
5
5
  export const constructLinter = new Linter<ConstructReflection>(assembly => assembly.classes
6
6
  .filter(t => CoreTypes.isConstructClass(t))
package/lib/rules/docs.js CHANGED
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.docsLinter = void 0;
4
4
  const spec_1 = require("@jsii/spec");
5
- const linter_1 = require("../linter");
6
5
  const core_types_1 = require("./core-types");
6
+ const linter_1 = require("../linter");
7
7
  exports.docsLinter = new linter_1.Linter(assembly => {
8
8
  return [
9
9
  ...flatMap(assembly.classes, classType => [
@@ -114,4 +114,4 @@ function isModuleExperimental(assembly) {
114
114
  function flatMap(array, callbackfn) {
115
115
  return Array.prototype.concat(...array.map(callbackfn));
116
116
  }
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRvY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXVDO0FBRXZDLHNDQUFtQztBQUNuQyw2Q0FBeUM7QUFZNUIsUUFBQSxVQUFVLEdBQUcsSUFBSSxlQUFNLENBQW9CLFFBQVEsQ0FBQyxFQUFFO0lBQ2pFLE9BQU87UUFDTCxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDeEMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzVFLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsU0FBUyxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BMLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLFNBQVMsQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNwSyxDQUFDO1FBQ0YsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQy9DLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFB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cG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IExpbnRlciB9IGZyb20gJy4uL2xpbnRlcic7XG5pbXBvcnQgeyBDb3JlVHlwZXMgfSBmcm9tICcuL2NvcmUtdHlwZXMnO1xuXG50eXBlIERvY3NMaW50ZXJDb250ZXh0ID0ge1xuICByZWFkb25seSBhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseTtcbiAgcmVhZG9ubHkgZXJyb3JLZXk6IHN0cmluZztcbn0gJiAoeyByZWFkb25seSBraW5kOiAndHlwZSc7IGRvY3VtZW50YWJsZTogcmVmbGVjdC5UeXBlIH1cbnwgeyByZWFkb25seSBraW5kOiAnaW50ZXJmYWNlLXByb3BlcnR5JzsgY29udGFpbmluZ1R5cGU6IHJlZmxlY3QuSW50ZXJmYWNlVHlwZTsgZG9jdW1lbnRhYmxlOiByZWZsZWN0LlByb3BlcnR5IH1cbnwgeyByZWFkb25seSBraW5kOiAnY2xhc3MtcHJvcGVydHknOyBjb250YWluaW5nVHlwZTogcmVmbGVjdC5DbGFzc1R5cGU7IGRvY3VtZW50YWJsZTogcmVmbGVjdC5Qcm9wZXJ0eSB9XG58IHsgcmVhZG9ubHkga2luZDogJ21ldGhvZCc7IGNvbnRhaW5pbmdUeXBlOiByZWZsZWN0LlJlZmVyZW5jZVR5cGU7IGRvY3VtZW50YWJsZTogcmVmbGVjdC5NZXRob2QgfVxufCB7IHJlYWRvbmx5IGtpbmQ6ICdlbnVtLW1lbWJlcic7IGNvbnRhaW5pbmdUeXBlOiByZWZsZWN0LkVudW1UeXBlOyBkb2N1bWVudGFibGU6IHJlZmxlY3QuRW51bU1lbWJlciB9XG4pO1xuXG5leHBvcnQgY29uc3QgZG9jc0xpbnRlciA9IG5ldyBMaW50ZXI8RG9jc0xpbnRlckNvbnRleHQ+KGFzc2VtYmx5ID0+IHtcbiAgcmV0dXJuIFtcbiAgICAuLi5mbGF0TWFwKGFzc2VtYmx5LmNsYXNzZXMsIGNsYXNzVHlwZSA9PiBbXG4gICAgICB7IGFzc2VtYmx5LCBraW5kOiAndHlwZScsIGRvY3VtZW50YWJsZTogY2xhc3NUeXBlLCBlcnJvcktleTogY2xhc3NUeXBlLmZxbiB9LFxuICAgICAgLi4uY2xhc3NUeXBlLm93blByb3BlcnRpZXMubWFwKHByb3BlcnR5ID0+ICh7IGFzc2VtYmx5LCBraW5kOiAnY2xhc3MtcHJvcGVydHknLCBjb250YWluaW5nVHlwZTogY2xhc3NUeXBlLCBkb2N1bWVudGFibGU6IHByb3BlcnR5LCBlcnJvcktleTogYCR7Y2xhc3NUeXBlLmZxbn0uJHtwcm9wZXJ0eS5uYW1lfWAgfSkpLFxuICAgICAgLi4uY2xhc3NUeXBlLm93bk1ldGhvZHMubWFwKG1ldGhvZCA9PiAoeyBhc3NlbWJseSwga2luZDogJ21ldGhvZCcsIGNvbnRhaW5pbmdUeXBlOiBjbGFzc1R5cGUsIGRvY3VtZW50YWJsZTogbWV0aG9kLCBlcnJvcktleTogYCR7Y2xhc3NUeXBlLmZxbn0uJHttZXRob2QubmFtZX1gIH0pKSxcbiAgICBdKSxcbiAgICAuLi5mbGF0TWFwKGFzc2VtYmx5LmludGVyZmFjZXMsIGludGVyZmFjZVR5cGUgPT4gW1xuICAgICAgeyBhc3NlbWJseSwga2luZDogJ3R5cGUnLCBkb2N1bWVudGFibGU6IGludGVyZmFjZVR5cGUsIGVycm9yS2V5OiBpbnRlcmZhY2VUeXBlLmZxbiB9LFxuICAgICAgLi4uaW50ZXJmYWNlVHlwZS5vd25Qcm9wZXJ0aWVzLm1hcChwcm9wZXJ0eSA9PiAoeyBhc3NlbWJseSwga2luZDogJ2ludGVyZmFjZS1wcm9wZXJ0eScsIGNvbnRhaW5pbmdUeXBlOiBpbnRlcmZhY2VUeXBlLCBkb2N1bWVudGFibGU6IHByb3BlcnR5LCBlcnJvcktleTogYCR7aW50ZXJmYWNlVHlwZS5mcW59LiR7cHJvcGVydHkubmFtZX1gIH0pKSxcbiAgICAgIC4uLmludGVyZmFjZVR5cGUub3duTWV0aG9kcy5tYXAobWV0aG9kID0+ICh7IGFzc2VtYmx5LCBraW5kOiAnbWV0aG9kJywgY29udGFpbmluZ1R5cGU6IGludGVyZmFjZVR5cGUsIGRvY3VtZW50YWJsZTogbWV0aG9kLCBlcnJvcktleTogYCR7aW50ZXJmYWNlVHlwZS5mcW59LiR7bWV0aG9kLm5hbWV9YCB9KSksXG4gICAgXSksXG4gICAgLi4uZmxhdE1hcChhc3NlbWJseS5lbnVtcywgZW51bVR5cGUgPT4gW1xuICAgICAgeyBhc3NlbWJseSwga2luZDogJ3R5cGUnLCBkb2N1bWVudGFibGU6IGVudW1UeXBlLCBlcnJvcktleTogZW51bVR5cGUuZnFuIH0sXG4gICAgICAuLi5lbnVtVHlwZS5tZW1iZXJzLm1hcChtZW1iZXIgPT4gKHsgYXNzZW1ibHksIGtpbmQ6ICdlbnVtLW1lbWJlcicsIGNvbnRhaW5pbmdUeXBlOiBlbnVtVHlwZSwgZG9jdW1lbnRhYmxlOiBtZW1iZXIsIGVycm9yS2V5OiBgJHtlbnVtVHlwZS5mcW59LiR7bWVtYmVyLm5hbWV9YCB9KSksXG4gICAgXSksXG4gIF0gYXMgRG9jc0xpbnRlckNvbnRleHRbXTtcbn0pO1xuXG5kb2NzTGludGVyLmFkZCh7XG4gIGNvZGU6ICdkb2NzLXB1YmxpYy1hcGlzJyxcbiAgbWVzc2FnZTogJ1B1YmxpYyBBUEkgZWxlbWVudCBtdXN0IGhhdmUgYSBkb2NzdHJpbmcnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWlzUHVibGljKGUuY3R4KSkgeyByZXR1cm47IH1cbiAgICAvLyB0aGlzIHJ1bGUgZG9lcyBub3QgYXBwbHkgdG8gTDEgY29uc3RydWN0c1xuICAgIGlmIChpc0NmblR5cGUoZS5jdHgpKSB7IHJldHVybjsgfVxuXG4gICAgaWYgKCFlLmN0eC5kb2N1bWVudGFibGUuZG9jcy5zdW1tYXJ5KSB7XG4gICAgICBlLmFzc2VydChlLmN0eC5kb2N1bWVudGFibGUuZG9jcy5zdW1tYXJ5LCBlLmN0eC5lcnJvcktleSk7XG4gICAgfVxuICB9LFxufSk7XG5cbmRvY3NMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Byb3BzLWRlZmF1bHQtZG9jJyxcbiAgbWVzc2FnZTogJ09wdGlvbmFsIHByb3BlcnR5IG11c3QgaGF2ZSBAZGVmYXVsdCBkb2N1bWVudGF0aW9uJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKGUuY3R4LmtpbmQgIT09ICdpbnRlcmZhY2UtcHJvcGVydHknKSB7IHJldHVybjsgfVxuICAgIGlmICghZS5jdHguY29udGFpbmluZ1R5cGUuaXNEYXRhVHlwZSgpKSB7IHJldHVybjsgfVxuICAgIC8vIHRoaXMgcnVsZSBkb2VzIG5vdCBhcHBseSB0byBMMSBjb25zdHJ1Y3RzXG4gICAgaWYgKENvcmVUeXBlcy5pc0NmblR5cGUoZS5jdHguY29udGFpbmluZ1R5cGUpKSB7IHJldHVybjsgfVxuXG4gICAgY29uc3QgcHJvcGVydHkgPSBlLmN0eC5kb2N1bWVudGFibGU7XG4gICAgZS5hc3NlcnQoIXByb3BlcnR5Lm9wdGlvbmFsIHx8IHByb3BlcnR5LmRvY3MuZG9jcy5kZWZhdWx0ICE9PSB1bmRlZmluZWQsIGUuY3R4LmVycm9yS2V5KTtcbiAgfSxcbn0pO1xuXG5kb2NzTGludGVyLmFkZCh7XG4gIGNvZGU6ICdwcm9wcy1uby11bmRlZmluZWQtZGVmYXVsdCcsXG4gIG1lc3NhZ2U6ICdcXCdAZGVmYXVsdCB1bmRlZmluZWRcXCcgaXMgbm90IGhlbHBmdWwuIFVzZXJzIHdpbGwga25vdyB0aGUgVkFMVUUgaXMgbGl0ZXJhbGx5IFxcJ3VuZGVmaW5lZFxcJyBpZiB0aGV5IGRvblxcJ3Qgc3BlY2lmeSBpdCwgYnV0IHdoYXQgaXMgdGhlIEJFSEFWSU9SIGlmIHRoZXkgZG8gc28/JyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKGUuY3R4LmtpbmQgIT09ICdpbnRlcmZhY2UtcHJvcGVydHknKSB7IHJldHVybjsgfVxuICAgIGlmICghZS5jdHguY29udGFpbmluZ1R5cGUuaXNEYXRhVHlwZSgpKSB7IHJldHVybjsgfVxuXG4gICAgY29uc3QgcHJvcGVydHkgPSBlLmN0eC5kb2N1bWVudGFibGU7XG4gICAgZS5hc3NlcnQocHJvcGVydHkuZG9jcy5kb2NzLmRlZmF1bHQgIT09ICd1bmRlZmluZWQnLCBlLmN0eC5lcnJvcktleSk7XG4gIH0sXG59KTtcblxuZG9jc0xpbnRlci5hZGQoe1xuICBjb2RlOiAnbm8tZXhwZXJpbWVudGFsLWFwaXMnLFxuICBtZXNzYWdlOiAnVGhlIHVzZSBvZiBAZXhwZXJpbWVudGFsIGluIG5vdCBhbGxvd2VkJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFpc1B1YmxpYyhlLmN0eCkpIHsgcmV0dXJuOyB9XG4gICAgLy8gdGVjaG5pY2FsbHkgd2Ugc2hvdWxkIGJhbiB0aGUgdXNlIG9mIEBleHBlcmltZW50YWwgaW4gdGhlIGNvZGViYXNlLiBTaW5jZSBqc2lpIG1hcmtzIGFsbCBzeW1ib2xzXG4gICAgLy8gb2YgZXhwZXJpbWVudGFsIG1vZHVsZXMgYXMgZXhwZXJpbWVudGFsIHdlIGNhbid0LlxuICAgIGlmIChpc01vZHVsZUV4cGVyaW1lbnRhbChlLmN0eC5hc3NlbWJseSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc3ltID0gZS5jdHguZG9jdW1lbnRhYmxlO1xuICAgIGUuYXNzZXJ0KHN5bS5kb2NzLmRvY3Muc3RhYmlsaXR5ICE9PSBTdGFiaWxpdHkuRXhwZXJpbWVudGFsLCBlLmN0eC5lcnJvcktleSk7XG4gIH0sXG59KTtcblxuZnVuY3Rpb24gaXNQdWJsaWMoY3R4OiBEb2NzTGludGVyQ29udGV4dCkge1xuICBzd2l0Y2ggKGN0eC5raW5kKSB7XG4gICAgY2FzZSAnY2xhc3MtcHJvcGVydHknOlxuICAgIGNhc2UgJ2ludGVyZmFjZS1wcm9wZXJ0eSc6XG4gICAgY2FzZSAnbWV0aG9kJzpcbiAgICAgIHJldHVybiAhY3R4LmRvY3VtZW50YWJsZS5wcm90ZWN0ZWQ7XG5cbiAgICBjYXNlICdlbnVtLW1lbWJlcic6XG4gICAgY2FzZSAndHlwZSc6XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0NmblR5cGUoY3R4OiBEb2NzTGludGVyQ29udGV4dCkge1xuICBzd2l0Y2ggKGN0eC5raW5kKSB7XG4gICAgY2FzZSAnY2xhc3MtcHJvcGVydHknOlxuICAgIGNhc2UgJ2ludGVyZmFjZS1wcm9wZXJ0eSc6XG4gICAgY2FzZSAnbWV0aG9kJzpcbiAgICBjYXNlICdlbnVtLW1lbWJlcic6XG4gICAgICByZXR1cm4gQ29yZVR5cGVzLmlzQ2ZuVHlwZShjdHguY29udGFpbmluZ1R5cGUpO1xuXG4gICAgY2FzZSAndHlwZSc6XG4gICAgICByZXR1cm4gQ29yZVR5cGVzLmlzQ2ZuVHlwZShjdHguZG9jdW1lbnRhYmxlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc01vZHVsZUV4cGVyaW1lbnRhbChhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseSkge1xuICByZXR1cm4gYXNzZW1ibHkuc3BlYy5kb2NzPy5zdGFiaWxpdHkgPT09IFN0YWJpbGl0eS5FeHBlcmltZW50YWw7XG59XG5cbmZ1bmN0aW9uIGZsYXRNYXA8VCwgVT4oYXJyYXk6IHJlYWRvbmx5IFRbXSwgY2FsbGJhY2tmbjogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogcmVhZG9ubHkgVFtdKSA9PiBVW10pOiBVW10ge1xuICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdCguLi5hcnJheS5tYXAoY2FsbGJhY2tmbikpO1xufVxuIl19
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRvY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXVDO0FBRXZDLDZDQUF5QztBQUN6QyxzQ0FBbUM7QUFZdEIsUUFBQSxVQUFVLEdBQUcsSUFBSSxlQUFNLENBQW9CLFFBQVEsQ0FBQyxFQUFFO0lBQ2pFLE9BQU87UUFDTCxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDeEMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzVFLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsU0FBUyxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BMLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLFNBQVMsQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNwSyxDQUFDO1FBQ0YsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQy9DLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFB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cG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IENvcmVUeXBlcyB9IGZyb20gJy4vY29yZS10eXBlcyc7XG5pbXBvcnQgeyBMaW50ZXIgfSBmcm9tICcuLi9saW50ZXInO1xuXG50eXBlIERvY3NMaW50ZXJDb250ZXh0ID0ge1xuICByZWFkb25seSBhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseTtcbiAgcmVhZG9ubHkgZXJyb3JLZXk6IHN0cmluZztcbn0gJiAoeyByZWFkb25seSBraW5kOiAndHlwZSc7IGRvY3VtZW50YWJsZTogcmVmbGVjdC5UeXBlIH1cbnwgeyByZWFkb25seSBraW5kOiAnaW50ZXJmYWNlLXByb3BlcnR5JzsgY29udGFpbmluZ1R5cGU6IHJlZmxlY3QuSW50ZXJmYWNlVHlwZTsgZG9jdW1lbnRhYmxlOiByZWZsZWN0LlByb3BlcnR5IH1cbnwgeyByZWFkb25seSBraW5kOiAnY2xhc3MtcHJvcGVydHknOyBjb250YWluaW5nVHlwZTogcmVmbGVjdC5DbGFzc1R5cGU7IGRvY3VtZW50YWJsZTogcmVmbGVjdC5Qcm9wZXJ0eSB9XG58IHsgcmVhZG9ubHkga2luZDogJ21ldGhvZCc7IGNvbnRhaW5pbmdUeXBlOiByZWZsZWN0LlJlZmVyZW5jZVR5cGU7IGRvY3VtZW50YWJsZTogcmVmbGVjdC5NZXRob2QgfVxufCB7IHJlYWRvbmx5IGtpbmQ6ICdlbnVtLW1lbWJlcic7IGNvbnRhaW5pbmdUeXBlOiByZWZsZWN0LkVudW1UeXBlOyBkb2N1bWVudGFibGU6IHJlZmxlY3QuRW51bU1lbWJlciB9XG4pO1xuXG5leHBvcnQgY29uc3QgZG9jc0xpbnRlciA9IG5ldyBMaW50ZXI8RG9jc0xpbnRlckNvbnRleHQ+KGFzc2VtYmx5ID0+IHtcbiAgcmV0dXJuIFtcbiAgICAuLi5mbGF0TWFwKGFzc2VtYmx5LmNsYXNzZXMsIGNsYXNzVHlwZSA9PiBbXG4gICAgICB7IGFzc2VtYmx5LCBraW5kOiAndHlwZScsIGRvY3VtZW50YWJsZTogY2xhc3NUeXBlLCBlcnJvcktleTogY2xhc3NUeXBlLmZxbiB9LFxuICAgICAgLi4uY2xhc3NUeXBlLm93blByb3BlcnRpZXMubWFwKHByb3BlcnR5ID0+ICh7IGFzc2VtYmx5LCBraW5kOiAnY2xhc3MtcHJvcGVydHknLCBjb250YWluaW5nVHlwZTogY2xhc3NUeXBlLCBkb2N1bWVudGFibGU6IHByb3BlcnR5LCBlcnJvcktleTogYCR7Y2xhc3NUeXBlLmZxbn0uJHtwcm9wZXJ0eS5uYW1lfWAgfSkpLFxuICAgICAgLi4uY2xhc3NUeXBlLm93bk1ldGhvZHMubWFwKG1ldGhvZCA9PiAoeyBhc3NlbWJseSwga2luZDogJ21ldGhvZCcsIGNvbnRhaW5pbmdUeXBlOiBjbGFzc1R5cGUsIGRvY3VtZW50YWJsZTogbWV0aG9kLCBlcnJvcktleTogYCR7Y2xhc3NUeXBlLmZxbn0uJHttZXRob2QubmFtZX1gIH0pKSxcbiAgICBdKSxcbiAgICAuLi5mbGF0TWFwKGFzc2VtYmx5LmludGVyZmFjZXMsIGludGVyZmFjZVR5cGUgPT4gW1xuICAgICAgeyBhc3NlbWJseSwga2luZDogJ3R5cGUnLCBkb2N1bWVudGFibGU6IGludGVyZmFjZVR5cGUsIGVycm9yS2V5OiBpbnRlcmZhY2VUeXBlLmZxbiB9LFxuICAgICAgLi4uaW50ZXJmYWNlVHlwZS5vd25Qcm9wZXJ0aWVzLm1hcChwcm9wZXJ0eSA9PiAoeyBhc3NlbWJseSwga2luZDogJ2ludGVyZmFjZS1wcm9wZXJ0eScsIGNvbnRhaW5pbmdUeXBlOiBpbnRlcmZhY2VUeXBlLCBkb2N1bWVudGFibGU6IHByb3BlcnR5LCBlcnJvcktleTogYCR7aW50ZXJmYWNlVHlwZS5mcW59LiR7cHJvcGVydHkubmFtZX1gIH0pKSxcbiAgICAgIC4uLmludGVyZmFjZVR5cGUub3duTWV0aG9kcy5tYXAobWV0aG9kID0+ICh7IGFzc2VtYmx5LCBraW5kOiAnbWV0aG9kJywgY29udGFpbmluZ1R5cGU6IGludGVyZmFjZVR5cGUsIGRvY3VtZW50YWJsZTogbWV0aG9kLCBlcnJvcktleTogYCR7aW50ZXJmYWNlVHlwZS5mcW59LiR7bWV0aG9kLm5hbWV9YCB9KSksXG4gICAgXSksXG4gICAgLi4uZmxhdE1hcChhc3NlbWJseS5lbnVtcywgZW51bVR5cGUgPT4gW1xuICAgICAgeyBhc3NlbWJseSwga2luZDogJ3R5cGUnLCBkb2N1bWVudGFibGU6IGVudW1UeXBlLCBlcnJvcktleTogZW51bVR5cGUuZnFuIH0sXG4gICAgICAuLi5lbnVtVHlwZS5tZW1iZXJzLm1hcChtZW1iZXIgPT4gKHsgYXNzZW1ibHksIGtpbmQ6ICdlbnVtLW1lbWJlcicsIGNvbnRhaW5pbmdUeXBlOiBlbnVtVHlwZSwgZG9jdW1lbnRhYmxlOiBtZW1iZXIsIGVycm9yS2V5OiBgJHtlbnVtVHlwZS5mcW59LiR7bWVtYmVyLm5hbWV9YCB9KSksXG4gICAgXSksXG4gIF0gYXMgRG9jc0xpbnRlckNvbnRleHRbXTtcbn0pO1xuXG5kb2NzTGludGVyLmFkZCh7XG4gIGNvZGU6ICdkb2NzLXB1YmxpYy1hcGlzJyxcbiAgbWVzc2FnZTogJ1B1YmxpYyBBUEkgZWxlbWVudCBtdXN0IGhhdmUgYSBkb2NzdHJpbmcnLFxuICBldmFsOiBlID0+IHtcbiAgICBpZiAoIWlzUHVibGljKGUuY3R4KSkgeyByZXR1cm47IH1cbiAgICAvLyB0aGlzIHJ1bGUgZG9lcyBub3QgYXBwbHkgdG8gTDEgY29uc3RydWN0c1xuICAgIGlmIChpc0NmblR5cGUoZS5jdHgpKSB7IHJldHVybjsgfVxuXG4gICAgaWYgKCFlLmN0eC5kb2N1bWVudGFibGUuZG9jcy5zdW1tYXJ5KSB7XG4gICAgICBlLmFzc2VydChlLmN0eC5kb2N1bWVudGFibGUuZG9jcy5zdW1tYXJ5LCBlLmN0eC5lcnJvcktleSk7XG4gICAgfVxuICB9LFxufSk7XG5cbmRvY3NMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Byb3BzLWRlZmF1bHQtZG9jJyxcbiAgbWVzc2FnZTogJ09wdGlvbmFsIHByb3BlcnR5IG11c3QgaGF2ZSBAZGVmYXVsdCBkb2N1bWVudGF0aW9uJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKGUuY3R4LmtpbmQgIT09ICdpbnRlcmZhY2UtcHJvcGVydHknKSB7IHJldHVybjsgfVxuICAgIGlmICghZS5jdHguY29udGFpbmluZ1R5cGUuaXNEYXRhVHlwZSgpKSB7IHJldHVybjsgfVxuICAgIC8vIHRoaXMgcnVsZSBkb2VzIG5vdCBhcHBseSB0byBMMSBjb25zdHJ1Y3RzXG4gICAgaWYgKENvcmVUeXBlcy5pc0NmblR5cGUoZS5jdHguY29udGFpbmluZ1R5cGUpKSB7IHJldHVybjsgfVxuXG4gICAgY29uc3QgcHJvcGVydHkgPSBlLmN0eC5kb2N1bWVudGFibGU7XG4gICAgZS5hc3NlcnQoIXByb3BlcnR5Lm9wdGlvbmFsIHx8IHByb3BlcnR5LmRvY3MuZG9jcy5kZWZhdWx0ICE9PSB1bmRlZmluZWQsIGUuY3R4LmVycm9yS2V5KTtcbiAgfSxcbn0pO1xuXG5kb2NzTGludGVyLmFkZCh7XG4gIGNvZGU6ICdwcm9wcy1uby11bmRlZmluZWQtZGVmYXVsdCcsXG4gIG1lc3NhZ2U6ICdcXCdAZGVmYXVsdCB1bmRlZmluZWRcXCcgaXMgbm90IGhlbHBmdWwuIFVzZXJzIHdpbGwga25vdyB0aGUgVkFMVUUgaXMgbGl0ZXJhbGx5IFxcJ3VuZGVmaW5lZFxcJyBpZiB0aGV5IGRvblxcJ3Qgc3BlY2lmeSBpdCwgYnV0IHdoYXQgaXMgdGhlIEJFSEFWSU9SIGlmIHRoZXkgZG8gc28/JyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKGUuY3R4LmtpbmQgIT09ICdpbnRlcmZhY2UtcHJvcGVydHknKSB7IHJldHVybjsgfVxuICAgIGlmICghZS5jdHguY29udGFpbmluZ1R5cGUuaXNEYXRhVHlwZSgpKSB7IHJldHVybjsgfVxuXG4gICAgY29uc3QgcHJvcGVydHkgPSBlLmN0eC5kb2N1bWVudGFibGU7XG4gICAgZS5hc3NlcnQocHJvcGVydHkuZG9jcy5kb2NzLmRlZmF1bHQgIT09ICd1bmRlZmluZWQnLCBlLmN0eC5lcnJvcktleSk7XG4gIH0sXG59KTtcblxuZG9jc0xpbnRlci5hZGQoe1xuICBjb2RlOiAnbm8tZXhwZXJpbWVudGFsLWFwaXMnLFxuICBtZXNzYWdlOiAnVGhlIHVzZSBvZiBAZXhwZXJpbWVudGFsIGluIG5vdCBhbGxvd2VkJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFpc1B1YmxpYyhlLmN0eCkpIHsgcmV0dXJuOyB9XG4gICAgLy8gdGVjaG5pY2FsbHkgd2Ugc2hvdWxkIGJhbiB0aGUgdXNlIG9mIEBleHBlcmltZW50YWwgaW4gdGhlIGNvZGViYXNlLiBTaW5jZSBqc2lpIG1hcmtzIGFsbCBzeW1ib2xzXG4gICAgLy8gb2YgZXhwZXJpbWVudGFsIG1vZHVsZXMgYXMgZXhwZXJpbWVudGFsIHdlIGNhbid0LlxuICAgIGlmIChpc01vZHVsZUV4cGVyaW1lbnRhbChlLmN0eC5hc3NlbWJseSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc3ltID0gZS5jdHguZG9jdW1lbnRhYmxlO1xuICAgIGUuYXNzZXJ0KHN5bS5kb2NzLmRvY3Muc3RhYmlsaXR5ICE9PSBTdGFiaWxpdHkuRXhwZXJpbWVudGFsLCBlLmN0eC5lcnJvcktleSk7XG4gIH0sXG59KTtcblxuZnVuY3Rpb24gaXNQdWJsaWMoY3R4OiBEb2NzTGludGVyQ29udGV4dCkge1xuICBzd2l0Y2ggKGN0eC5raW5kKSB7XG4gICAgY2FzZSAnY2xhc3MtcHJvcGVydHknOlxuICAgIGNhc2UgJ2ludGVyZmFjZS1wcm9wZXJ0eSc6XG4gICAgY2FzZSAnbWV0aG9kJzpcbiAgICAgIHJldHVybiAhY3R4LmRvY3VtZW50YWJsZS5wcm90ZWN0ZWQ7XG5cbiAgICBjYXNlICdlbnVtLW1lbWJlcic6XG4gICAgY2FzZSAndHlwZSc6XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0NmblR5cGUoY3R4OiBEb2NzTGludGVyQ29udGV4dCkge1xuICBzd2l0Y2ggKGN0eC5raW5kKSB7XG4gICAgY2FzZSAnY2xhc3MtcHJvcGVydHknOlxuICAgIGNhc2UgJ2ludGVyZmFjZS1wcm9wZXJ0eSc6XG4gICAgY2FzZSAnbWV0aG9kJzpcbiAgICBjYXNlICdlbnVtLW1lbWJlcic6XG4gICAgICByZXR1cm4gQ29yZVR5cGVzLmlzQ2ZuVHlwZShjdHguY29udGFpbmluZ1R5cGUpO1xuXG4gICAgY2FzZSAndHlwZSc6XG4gICAgICByZXR1cm4gQ29yZVR5cGVzLmlzQ2ZuVHlwZShjdHguZG9jdW1lbnRhYmxlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc01vZHVsZUV4cGVyaW1lbnRhbChhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseSkge1xuICByZXR1cm4gYXNzZW1ibHkuc3BlYy5kb2NzPy5zdGFiaWxpdHkgPT09IFN0YWJpbGl0eS5FeHBlcmltZW50YWw7XG59XG5cbmZ1bmN0aW9uIGZsYXRNYXA8VCwgVT4oYXJyYXk6IHJlYWRvbmx5IFRbXSwgY2FsbGJhY2tmbjogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogcmVhZG9ubHkgVFtdKSA9PiBVW10pOiBVW10ge1xuICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdCguLi5hcnJheS5tYXAoY2FsbGJhY2tmbikpO1xufVxuIl19
package/lib/rules/docs.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Stability } from '@jsii/spec';
2
2
  import * as reflect from 'jsii-reflect';
3
- import { Linter } from '../linter';
4
3
  import { CoreTypes } from './core-types';
4
+ import { Linter } from '../linter';
5
5
 
6
6
  type DocsLinterContext = {
7
7
  readonly assembly: reflect.Assembly;
@@ -1,6 +1,6 @@
1
1
  import * as reflect from 'jsii-reflect';
2
- import { Linter } from '../linter';
3
2
  import { ResourceReflection } from './resource';
3
+ import { Linter } from '../linter';
4
4
  export declare const importsLinter: Linter<ImportsReflection>;
5
5
  declare class ImportsReflection {
6
6
  readonly resource: ResourceReflection;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.importsLinter = void 0;
4
- const linter_1 = require("../linter");
5
4
  const resource_1 = require("./resource");
5
+ const linter_1 = require("../linter");
6
6
  exports.importsLinter = new linter_1.Linter(assembly => resource_1.ResourceReflection
7
7
  .findAll(assembly)
8
8
  .filter(r => r.construct && r.construct.interfaceType) // only resources that have an interface can have "fromXxx" methods
@@ -102,4 +102,4 @@ function baseConstructAddendum() {
102
102
  }
103
103
  return '';
104
104
  }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esc0NBQW1DO0FBQ25DLHlDQUErRDtBQUVsRCxRQUFBLGFBQWEsR0FBRyxJQUFJLGVBQU0sQ0FBb0IsUUFBUSxDQUFDLEVBQUUsQ0FBQyw2QkFBa0I7S0FDdEYsT0FBTyxDQUFDLFFBQVEsQ0FBQztLQUNqQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsbUVBQW1FO0tBQ3pILEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRXZELE1BQU0saUJBQWlCO0lBUXJCLFlBQTRCLFFBQTRCO1FBQTVCLGFBQVEsR0FBUixRQUFRLENBQW9CO1FBQ3RELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUMvQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxZQUFZLENBQUM7UUFDM0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUVyRyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ2pELENBQUMsQ0FBQyxNQUFNO2VBQ0gsQ0FBQyxDQUFDLElBQUksQ0FB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LE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRTthQUNoRDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxxQkFBYSxDQUFDLEdBQUcsQ0FBQztJQUNoQixJQUFJLEVBQUUsd0JBQXdCO0lBQzlCLE9BQU8sRUFBRSw4Q0FBOEM7SUFDdkQsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUU7WUFDL0IsT0FBTyxDQUFDLDZCQUE2QjtTQUN0QztRQUVELENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILFNBQVMscUJBQXFCO0lBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFO1FBQ3ZDLE9BQU8scUhBQXFILENBQUM7S0FDOUg7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBMaW50ZXIgfSBmcm9tICcuLi9saW50ZXInO1xuaW1wb3J0IHsgQXR0cmlidXRlU2l0ZSwgUmVzb3VyY2VSZWZsZWN0aW9uIH0gZnJvbSAnLi9yZXNvdXJjZSc7XG5cbmV4cG9ydCBjb25zdCBpbXBvcnRzTGludGVyID0gbmV3IExpbnRlcjxJbXBvcnRzUmVmbGVjdGlvbj4oYXNzZW1ibHkgPT4gUmVzb3VyY2VSZWZsZWN0aW9uXG4gIC5maW5kQWxsKGFzc2VtYmx5KVxuICAuZmlsdGVyKHIgPT4gci5jb25zdHJ1Y3QgJiYgci5jb25zdHJ1Y3QuaW50ZXJmYWNlVHlwZSkgLy8gb25seSByZXNvdXJjZXMgdGhhdCBoYXZlIGFuIGludGVyZmFjZSBjYW4gaGF2ZSBcImZyb21YeHhcIiBtZXRob2RzXG4gIC5tYXAoY29uc3RydWN0ID0+IG5ldyBJbXBvcnRzUmVmbGVjdGlvbihjb25zdHJ1Y3QpKSk7XG5cbmNsYXNzIEltcG9ydHNSZWZsZWN0aW9uIHtcbiAgcHVibGljIHJlYWRvbmx5IGZyb21NZXRob2RzOiByZWZsZWN0Lk1ldGhvZFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJlZml4OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmcm9tQXR0cmlidXRlc01ldGhvZE5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGZyb21BdHRyaWJ1dGVzTWV0aG9kPzogcmVmbGVjdC5NZXRob2Q7XG4gIHB1YmxpYyByZWFkb25seSBhdHRyaWJ1dGVzU3RydWN0TmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgYXR0cmlidXRlc1N0cnVjdD86IHJlZmxlY3QuSW50ZXJmYWNlVHlwZTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IFJlc291cmNlUmVmbGVjdGlvbikge1xuICAgIGNvbnN0IHN5cyA9IHJlc291cmNlLnN5cztcbiAgICB0aGlzLnByZWZpeCA9IGBmcm9tJHtyZXNvdXJjZS5iYXNlbmFtZX1gO1xuICAgIGNvbnN0IGNsYXNzVHlwZSA9IHJlc291cmNlLmNvbnN0cnVjdC5jbGFzc1R5cGU7XG4gICAgdGhpcy5mcm9tQXR0cmlidXRlc01ldGhvZE5hbWUgPSBgJHt0aGlzLnByZWZpeH1BdHRyaWJ1dGVzYDtcbiAgICB0aGlzLmZyb21BdHRyaWJ1dGVzTWV0aG9kID0gY2xhc3NUeXBlLmFsbE1ldGhvZHMuZmluZCh4ID0+IHgubmFtZSA9PT0gdGhpcy5mcm9tQXR0cmlidXRlc01ldGhvZE5hbWUpO1xuXG4gICAgdGhpcy5mcm9tTWV0aG9kcyA9IGNsYXNzVHlwZS5hbGxNZXRob2RzLmZpbHRlcih4ID0+XG4gICAgICB4LnN0YXRpY1xuICAgICAgICAmJiB4Lm5hbWUubWF0Y2goYF4ke3RoaXMucHJlZml4fVtBLVpdYClcbiAgICAgICAgJiYgeC5uYW1lICE9PSB0aGlzLmZyb21BdHRyaWJ1dGVzTWV0aG9kTmFtZSk7XG5cbiAgICBjb25zdCBhdHRyaWJ1dGVzU3RydWN0RnFuID0gYCR7Y2xhc3NUeXBlLmZxbn1BdHRyaWJ1dGVzYDtcbiAgICBjb25zdCBhdHRyaWJ1dGVzU3RydWN0ID0gc3lzLnRyeUZpbmRGcW4oYXR0cmlidXRlc1N0cnVjdEZxbik7XG4gICAgaWYgKGF0dHJpYnV0ZXNTdHJ1Y3QpIHtcbiAgICAgIGlmICghYXR0cmlidXRlc1N0cnVjdC5pc0ludGVyZmFjZVR5cGUoKSB8fCAhYXR0cmlidXRlc1N0cnVjdC5pc0RhdGFUeXBlKCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBdHRyaWJ1dGVzIHR5cGUgJHthdHRyaWJ1dGVzU3RydWN0RnFufSBtdXN0IGJlIGFuIGludGVyZmFjZSBzdHJ1Y3RgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5hdHRyaWJ1dGVzU3RydWN0TmFtZSA9IGF0dHJpYnV0ZXNTdHJ1Y3RGcW47XG4gICAgdGhpcy5hdHRyaWJ1dGVzU3RydWN0ID0gYXR0cmlidXRlc1N0cnVjdDtcbiAgfVxufVxuXG5pbXBvcnRzTGludGVyLmFkZCh7XG4gIGNvZGU6ICduby1zdGF0aWMtaW1wb3J0JyxcbiAgbWVzc2FnZTogJ3N0YXRpYyBcImltcG9ydFwiIG1ldGhvZHMgYXJlIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgXCJmcm9tQXR0cmlidXRlc1wiIChzZWUgZ3VpZGVsaW5lcyknLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCBoYXNJbXBvcnQgPSBlLmN0eC5yZXNvdXJjZS5jb25zdHJ1Y3QuY2xhc3NUeXBlLmFsbE1ldGhvZHMuZmluZCh4ID0+IHguc3RhdGljICYmIHgubmFtZSA9PT0gJ2ltcG9ydCcpO1xuICAgIGUuYXNzZXJ0KCFoYXNJbXBvcnQsIGUuY3R4LnJlc291cmNlLmZxbiArICcuaW1wb3J0Jyk7XG4gIH0sXG59KTtcblxuaW1wb3J0c0xpbnRlci5hZGQoe1xuICBjb2RlOiAnZnJvbS1tZXRob2QnLFxuICBtZXNzYWdlOiAncmVzb3VyY2Ugc2hvdWxkIGhhdmUgYXQgbGVhc3Qgb25lIFwiZnJvbVh4eFwiIHN0YXRpYyBtZXRob2Qgb3IgXCJmcm9tWHh4QXR0cmlidXRlc1wiJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgLy8gbm8gYXR0cmlidXRlcyBhcmUgZGVmaW5lZCBvbiB0aGUgaW50ZXJmYWNlLCBzbyB3ZSBkb24ndCBleHBlY3QgYW55IFwiZnJvbVwiIG1ldGhvZHMuXG4gICAgaWYgKCFlLmN0eC5yZXNvdXJjZS5hdHRyaWJ1dGVzLnNvbWUoYSA9PiBhLnNpdGUgPT09IEF0dHJpYnV0ZVNpdGUuSW50ZXJmYWNlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGUuYXNzZXJ0KGUuY3R4LmZyb21NZXRob2RzLmxlbmd0aCA+IDAgfHwgZS5jdHguZnJvbUF0dHJpYnV0ZXNNZXRob2QsIGUuY3R4LnJlc291cmNlLmZxbik7XG4gIH0sXG59KTtcblxuaW1wb3J0c0xpbnRlci5hZGQoe1xuICBjb2RlOiAnZnJvbS1zaWduYXR1cmUnLFxuICBtZXNzYWdlOiAnaW52YWxpZCBtZXRob2Qgc2lnbmF0dXJlIGZvciBmcm9tWHh4IG1ldGhvZC4gJyArIGJhc2VDb25zdHJ1Y3RBZGRlbmR1bSgpLFxuICBldmFsOiBlID0+IHtcbiAgICBmb3IgKGNvbnN0IG1ldGhvZCBvZiBlLmN0eC5mcm9tTWV0aG9kcykge1xuXG4gICAgICAvLyBcImZyb21Sb2xlQXJuXCIgPT4gXCJyb2xlQXJuXCJcbiAgICAgIGNvbnN0IGFyZ05hbWUgPSBlLmN0eC5yZXNvdXJjZS5iYXNlbmFtZVswXS50b0xvY2FsZUxvd2VyQ2FzZSgpICsgbWV0aG9kLm5hbWUuc2xpY2UoJ2Zyb20nLmxlbmd0aCArIDEpO1xuXG4gICAgICBjb25zdCBiYXNlVHlwZSA9IHByb2Nlc3MuZW52LkFXU0xJTlRfQkFTRV9DT05TVFJVQ1QgPyBlLmN0eC5yZXNvdXJjZS5jb3JlLmJhc2VDb25zdHJ1Y3RDbGFzcyA6XG4gICAgICAgIGUuY3R4LnJlc291cmNlLmNvcmUuY29uc3RydWN0Q2xhc3M7XG4gICAgICBlLmFzc2VydFNpZ25hdHVyZShtZXRob2QsIHtcbiAgICAgICAgcGFyYW1ldGVyczogW1xuICAgICAgICAgIHsgbmFtZTogJ3Njb3BlJywgdHlwZTogYmFzZVR5cGUgfSxcbiAgICAgICAgICB7IG5hbWU6ICdpZCcsIHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAgICAgeyBuYW1lOiBhcmdOYW1lLCB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICBdLFxuICAgICAgICByZXR1cm5zOiBlLmN0eC5yZXNvdXJjZS5jb25zdHJ1Y3QuaW50ZXJmYWNlVHlwZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSxcbn0pO1xuXG5pbXBvcnRzTGludGVyLmFkZCh7XG4gIGNvZGU6ICdmcm9tLWF0dHJpYnV0ZXMnLFxuICBtZXNzYWdlOiAnc3RhdGljIGZyb21YeHhBdHRyaWJ1dGVzIGlzIGEgZmFjdG9yeSBvZiBJWHh4IGZyb20gaXRzIHByaW1pdGl2ZSBhdHRyaWJ1dGVzLiAnICsgYmFzZUNvbnN0cnVjdEFkZGVuZHVtKCksXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHguZnJvbUF0dHJpYnV0ZXNNZXRob2QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBiYXNlVHlwZSA9IHByb2Nlc3MuZW52LkFXU0xJTlRfQkFTRV9DT05TVFJVQ1QgPyBlLmN0eC5yZXNvdXJjZS5jb3JlLmJhc2VDb25zdHJ1Y3RDbGFzc1xuICAgICAgOiBlLmN0eC5yZXNvdXJjZS5jb3JlLmNvbnN0cnVjdENsYXNzO1xuICAgIGUuYXNzZXJ0U2lnbmF0dXJlKGUuY3R4LmZyb21BdHRyaWJ1dGVzTWV0aG9kLCB7XG4gICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgIHsgbmFtZTogJ3Njb3BlJywgdHlwZTogYmFzZVR5cGUgfSxcbiAgICAgICAgeyBuYW1lOiAnaWQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICB7IG5hbWU6ICdhdHRycycsIHR5cGU6IGUuY3R4LmF0dHJpYnV0ZXNTdHJ1Y3QgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH0sXG59KTtcblxuaW1wb3J0c0xpbnRlci5hZGQoe1xuICBjb2RlOiAnZnJvbS1hdHRyaWJ1dGVzLXN0cnVjdCcsXG4gIG1lc3NhZ2U6ICdyZXNvdXJjZSBzaG91bGQgaGF2ZSBhbiBYeHhBdHRyaWJ1dGVzIHN0cnVjdCcsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHguZnJvbUF0dHJpYnV0ZXNNZXRob2QpIHtcbiAgICAgIHJldHVybjsgLy8gbm8gXCJmcm9tQXR0cmlidXRlc1wiIG1ldGhvZFxuICAgIH1cblxuICAgIGUuYXNzZXJ0KGUuY3R4LmF0dHJpYnV0ZXNTdHJ1Y3QsIGUuY3R4LmF0dHJpYnV0ZXNTdHJ1Y3ROYW1lKTtcbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBiYXNlQ29uc3RydWN0QWRkZW5kdW0oKTogc3RyaW5nIHtcbiAgaWYgKCFwcm9jZXNzLmVudi5BV1NMSU5UX0JBU0VfQ09OU1RSVUNUKSB7XG4gICAgcmV0dXJuICdJZiB0aGUgY29uc3RydWN0IGlzIHVzaW5nIHRoZSBcImNvbnN0cnVjdHNcIiBtb2R1bGUsIHNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgXCJBV1NMSU5UX0JBU0VfQ09OU1RSVUNUXCIgYW5kIHJlLXJ1bic7XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQStEO0FBQy9ELHNDQUFtQztBQUV0QixRQUFBLGFBQWEsR0FBRyxJQUFJLGVBQU0sQ0FBb0IsUUFBUSxDQUFDLEVBQUUsQ0FBQyw2QkFBa0I7S0FDdEYsT0FBTyxDQUFDLFFBQVEsQ0FBQztLQUNqQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsbUVBQW1FO0tBQ3pILEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRXZELE1BQU0saUJBQWlCO0lBUXJCLFlBQTRCLFFBQTRCO1FBQTVCLGFBQVEsR0FBUixRQUFRLENBQW9CO1FBQ3RELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUMvQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxZQUFZLENBQUM7UUFDM0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUVyRyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ2pELENBQUMsQ0FBQyxNQUFNO2VBQ0gsQ0FBQyxDQUFDLElBQUksQ0FB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LE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRTthQUNoRDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxxQkFBYSxDQUFDLEdBQUcsQ0FBQztJQUNoQixJQUFJLEVBQUUsd0JBQXdCO0lBQzlCLE9BQU8sRUFBRSw4Q0FBOEM7SUFDdkQsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUU7WUFDL0IsT0FBTyxDQUFDLDZCQUE2QjtTQUN0QztRQUVELENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILFNBQVMscUJBQXFCO0lBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFO1FBQ3ZDLE9BQU8scUhBQXFILENBQUM7S0FDOUg7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBBdHRyaWJ1dGVTaXRlLCBSZXNvdXJjZVJlZmxlY3Rpb24gfSBmcm9tICcuL3Jlc291cmNlJztcbmltcG9ydCB7IExpbnRlciB9IGZyb20gJy4uL2xpbnRlcic7XG5cbmV4cG9ydCBjb25zdCBpbXBvcnRzTGludGVyID0gbmV3IExpbnRlcjxJbXBvcnRzUmVmbGVjdGlvbj4oYXNzZW1ibHkgPT4gUmVzb3VyY2VSZWZsZWN0aW9uXG4gIC5maW5kQWxsKGFzc2VtYmx5KVxuICAuZmlsdGVyKHIgPT4gci5jb25zdHJ1Y3QgJiYgci5jb25zdHJ1Y3QuaW50ZXJmYWNlVHlwZSkgLy8gb25seSByZXNvdXJjZXMgdGhhdCBoYXZlIGFuIGludGVyZmFjZSBjYW4gaGF2ZSBcImZyb21YeHhcIiBtZXRob2RzXG4gIC5tYXAoY29uc3RydWN0ID0+IG5ldyBJbXBvcnRzUmVmbGVjdGlvbihjb25zdHJ1Y3QpKSk7XG5cbmNsYXNzIEltcG9ydHNSZWZsZWN0aW9uIHtcbiAgcHVibGljIHJlYWRvbmx5IGZyb21NZXRob2RzOiByZWZsZWN0Lk1ldGhvZFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJlZml4OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmcm9tQXR0cmlidXRlc01ldGhvZE5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGZyb21BdHRyaWJ1dGVzTWV0aG9kPzogcmVmbGVjdC5NZXRob2Q7XG4gIHB1YmxpYyByZWFkb25seSBhdHRyaWJ1dGVzU3RydWN0TmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgYXR0cmlidXRlc1N0cnVjdD86IHJlZmxlY3QuSW50ZXJmYWNlVHlwZTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IFJlc291cmNlUmVmbGVjdGlvbikge1xuICAgIGNvbnN0IHN5cyA9IHJlc291cmNlLnN5cztcbiAgICB0aGlzLnByZWZpeCA9IGBmcm9tJHtyZXNvdXJjZS5iYXNlbmFtZX1gO1xuICAgIGNvbnN0IGNsYXNzVHlwZSA9IHJlc291cmNlLmNvbnN0cnVjdC5jbGFzc1R5cGU7XG4gICAgdGhpcy5mcm9tQXR0cmlidXRlc01ldGhvZE5hbWUgPSBgJHt0aGlzLnByZWZpeH1BdHRyaWJ1dGVzYDtcbiAgICB0aGlzLmZyb21BdHRyaWJ1dGVzTWV0aG9kID0gY2xhc3NUeXBlLmFsbE1ldGhvZHMuZmluZCh4ID0+IHgubmFtZSA9PT0gdGhpcy5mcm9tQXR0cmlidXRlc01ldGhvZE5hbWUpO1xuXG4gICAgdGhpcy5mcm9tTWV0aG9kcyA9IGNsYXNzVHlwZS5hbGxNZXRob2RzLmZpbHRlcih4ID0+XG4gICAgICB4LnN0YXRpY1xuICAgICAgICAmJiB4Lm5hbWUubWF0Y2goYF4ke3RoaXMucHJlZml4fVtBLVpdYClcbiAgICAgICAgJiYgeC5uYW1lICE9PSB0aGlzLmZyb21BdHRyaWJ1dGVzTWV0aG9kTmFtZSk7XG5cbiAgICBjb25zdCBhdHRyaWJ1dGVzU3RydWN0RnFuID0gYCR7Y2xhc3NUeXBlLmZxbn1BdHRyaWJ1dGVzYDtcbiAgICBjb25zdCBhdHRyaWJ1dGVzU3RydWN0ID0gc3lzLnRyeUZpbmRGcW4oYXR0cmlidXRlc1N0cnVjdEZxbik7XG4gICAgaWYgKGF0dHJpYnV0ZXNTdHJ1Y3QpIHtcbiAgICAgIGlmICghYXR0cmlidXRlc1N0cnVjdC5pc0ludGVyZmFjZVR5cGUoKSB8fCAhYXR0cmlidXRlc1N0cnVjdC5pc0RhdGFUeXBlKCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBdHRyaWJ1dGVzIHR5cGUgJHthdHRyaWJ1dGVzU3RydWN0RnFufSBtdXN0IGJlIGFuIGludGVyZmFjZSBzdHJ1Y3RgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5hdHRyaWJ1dGVzU3RydWN0TmFtZSA9IGF0dHJpYnV0ZXNTdHJ1Y3RGcW47XG4gICAgdGhpcy5hdHRyaWJ1dGVzU3RydWN0ID0gYXR0cmlidXRlc1N0cnVjdDtcbiAgfVxufVxuXG5pbXBvcnRzTGludGVyLmFkZCh7XG4gIGNvZGU6ICduby1zdGF0aWMtaW1wb3J0JyxcbiAgbWVzc2FnZTogJ3N0YXRpYyBcImltcG9ydFwiIG1ldGhvZHMgYXJlIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgXCJmcm9tQXR0cmlidXRlc1wiIChzZWUgZ3VpZGVsaW5lcyknLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCBoYXNJbXBvcnQgPSBlLmN0eC5yZXNvdXJjZS5jb25zdHJ1Y3QuY2xhc3NUeXBlLmFsbE1ldGhvZHMuZmluZCh4ID0+IHguc3RhdGljICYmIHgubmFtZSA9PT0gJ2ltcG9ydCcpO1xuICAgIGUuYXNzZXJ0KCFoYXNJbXBvcnQsIGUuY3R4LnJlc291cmNlLmZxbiArICcuaW1wb3J0Jyk7XG4gIH0sXG59KTtcblxuaW1wb3J0c0xpbnRlci5hZGQoe1xuICBjb2RlOiAnZnJvbS1tZXRob2QnLFxuICBtZXNzYWdlOiAncmVzb3VyY2Ugc2hvdWxkIGhhdmUgYXQgbGVhc3Qgb25lIFwiZnJvbVh4eFwiIHN0YXRpYyBtZXRob2Qgb3IgXCJmcm9tWHh4QXR0cmlidXRlc1wiJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgLy8gbm8gYXR0cmlidXRlcyBhcmUgZGVmaW5lZCBvbiB0aGUgaW50ZXJmYWNlLCBzbyB3ZSBkb24ndCBleHBlY3QgYW55IFwiZnJvbVwiIG1ldGhvZHMuXG4gICAgaWYgKCFlLmN0eC5yZXNvdXJjZS5hdHRyaWJ1dGVzLnNvbWUoYSA9PiBhLnNpdGUgPT09IEF0dHJpYnV0ZVNpdGUuSW50ZXJmYWNlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGUuYXNzZXJ0KGUuY3R4LmZyb21NZXRob2RzLmxlbmd0aCA+IDAgfHwgZS5jdHguZnJvbUF0dHJpYnV0ZXNNZXRob2QsIGUuY3R4LnJlc291cmNlLmZxbik7XG4gIH0sXG59KTtcblxuaW1wb3J0c0xpbnRlci5hZGQoe1xuICBjb2RlOiAnZnJvbS1zaWduYXR1cmUnLFxuICBtZXNzYWdlOiAnaW52YWxpZCBtZXRob2Qgc2lnbmF0dXJlIGZvciBmcm9tWHh4IG1ldGhvZC4gJyArIGJhc2VDb25zdHJ1Y3RBZGRlbmR1bSgpLFxuICBldmFsOiBlID0+IHtcbiAgICBmb3IgKGNvbnN0IG1ldGhvZCBvZiBlLmN0eC5mcm9tTWV0aG9kcykge1xuXG4gICAgICAvLyBcImZyb21Sb2xlQXJuXCIgPT4gXCJyb2xlQXJuXCJcbiAgICAgIGNvbnN0IGFyZ05hbWUgPSBlLmN0eC5yZXNvdXJjZS5iYXNlbmFtZVswXS50b0xvY2FsZUxvd2VyQ2FzZSgpICsgbWV0aG9kLm5hbWUuc2xpY2UoJ2Zyb20nLmxlbmd0aCArIDEpO1xuXG4gICAgICBjb25zdCBiYXNlVHlwZSA9IHByb2Nlc3MuZW52LkFXU0xJTlRfQkFTRV9DT05TVFJVQ1QgPyBlLmN0eC5yZXNvdXJjZS5jb3JlLmJhc2VDb25zdHJ1Y3RDbGFzcyA6XG4gICAgICAgIGUuY3R4LnJlc291cmNlLmNvcmUuY29uc3RydWN0Q2xhc3M7XG4gICAgICBlLmFzc2VydFNpZ25hdHVyZShtZXRob2QsIHtcbiAgICAgICAgcGFyYW1ldGVyczogW1xuICAgICAgICAgIHsgbmFtZTogJ3Njb3BlJywgdHlwZTogYmFzZVR5cGUgfSxcbiAgICAgICAgICB7IG5hbWU6ICdpZCcsIHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAgICAgeyBuYW1lOiBhcmdOYW1lLCB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICBdLFxuICAgICAgICByZXR1cm5zOiBlLmN0eC5yZXNvdXJjZS5jb25zdHJ1Y3QuaW50ZXJmYWNlVHlwZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSxcbn0pO1xuXG5pbXBvcnRzTGludGVyLmFkZCh7XG4gIGNvZGU6ICdmcm9tLWF0dHJpYnV0ZXMnLFxuICBtZXNzYWdlOiAnc3RhdGljIGZyb21YeHhBdHRyaWJ1dGVzIGlzIGEgZmFjdG9yeSBvZiBJWHh4IGZyb20gaXRzIHByaW1pdGl2ZSBhdHRyaWJ1dGVzLiAnICsgYmFzZUNvbnN0cnVjdEFkZGVuZHVtKCksXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHguZnJvbUF0dHJpYnV0ZXNNZXRob2QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBiYXNlVHlwZSA9IHByb2Nlc3MuZW52LkFXU0xJTlRfQkFTRV9DT05TVFJVQ1QgPyBlLmN0eC5yZXNvdXJjZS5jb3JlLmJhc2VDb25zdHJ1Y3RDbGFzc1xuICAgICAgOiBlLmN0eC5yZXNvdXJjZS5jb3JlLmNvbnN0cnVjdENsYXNzO1xuICAgIGUuYXNzZXJ0U2lnbmF0dXJlKGUuY3R4LmZyb21BdHRyaWJ1dGVzTWV0aG9kLCB7XG4gICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgIHsgbmFtZTogJ3Njb3BlJywgdHlwZTogYmFzZVR5cGUgfSxcbiAgICAgICAgeyBuYW1lOiAnaWQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICB7IG5hbWU6ICdhdHRycycsIHR5cGU6IGUuY3R4LmF0dHJpYnV0ZXNTdHJ1Y3QgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH0sXG59KTtcblxuaW1wb3J0c0xpbnRlci5hZGQoe1xuICBjb2RlOiAnZnJvbS1hdHRyaWJ1dGVzLXN0cnVjdCcsXG4gIG1lc3NhZ2U6ICdyZXNvdXJjZSBzaG91bGQgaGF2ZSBhbiBYeHhBdHRyaWJ1dGVzIHN0cnVjdCcsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHguZnJvbUF0dHJpYnV0ZXNNZXRob2QpIHtcbiAgICAgIHJldHVybjsgLy8gbm8gXCJmcm9tQXR0cmlidXRlc1wiIG1ldGhvZFxuICAgIH1cblxuICAgIGUuYXNzZXJ0KGUuY3R4LmF0dHJpYnV0ZXNTdHJ1Y3QsIGUuY3R4LmF0dHJpYnV0ZXNTdHJ1Y3ROYW1lKTtcbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBiYXNlQ29uc3RydWN0QWRkZW5kdW0oKTogc3RyaW5nIHtcbiAgaWYgKCFwcm9jZXNzLmVudi5BV1NMSU5UX0JBU0VfQ09OU1RSVUNUKSB7XG4gICAgcmV0dXJuICdJZiB0aGUgY29uc3RydWN0IGlzIHVzaW5nIHRoZSBcImNvbnN0cnVjdHNcIiBtb2R1bGUsIHNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgXCJBV1NMSU5UX0JBU0VfQ09OU1RSVUNUXCIgYW5kIHJlLXJ1bic7XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuIl19
@@ -1,6 +1,6 @@
1
1
  import * as reflect from 'jsii-reflect';
2
- import { Linter } from '../linter';
3
2
  import { AttributeSite, ResourceReflection } from './resource';
3
+ import { Linter } from '../linter';
4
4
 
5
5
  export const importsLinter = new Linter<ImportsReflection>(assembly => ResourceReflection
6
6
  .findAll(assembly)
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ALL_RULES_LINTER = void 0;
4
- const linter_1 = require("../linter");
5
4
  const api_1 = require("./api");
6
5
  const attributes_1 = require("./attributes");
7
6
  const cfn_resource_1 = require("./cfn-resource");
@@ -16,5 +15,6 @@ const module_1 = require("./module");
16
15
  const no_unused_type_1 = require("./no-unused-type");
17
16
  const public_static_properties_1 = require("./public-static-properties");
18
17
  const resource_1 = require("./resource");
18
+ const linter_1 = require("../linter");
19
19
  exports.ALL_RULES_LINTER = new linter_1.AggregateLinter(module_1.moduleLinter, construct_1.constructLinter, cfn_resource_1.cfnResourceLinter, resource_1.resourceLinter, api_1.apiLinter, imports_1.importsLinter, attributes_1.attributesLinter, exports_1.exportsLinter, cloudwatch_events_1.eventsLinter, integrations_1.integrationLinter, no_unused_type_1.noUnusedTypeLinter, durations_1.durationsLinter, public_static_properties_1.publicStaticPropertiesLinter, docs_1.docsLinter);
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzQ0FBNEM7QUFDNUMsK0JBQWtDO0FBQ2xDLDZDQUFnRDtBQUNoRCxpREFBbUQ7QUFDbkQsMkRBQW1EO0FBQ25ELDJDQUE4QztBQUM5QyxpQ0FBb0M7QUFDcEMsMkNBQThDO0FBQzlDLHVDQUEwQztBQUMxQyx1Q0FBMEM7QUFDMUMsaURBQW1EO0FBQ25ELHFDQUF3QztBQUN4QyxxREFBc0Q7QUFDdEQseUVBQTBFO0FBQzFFLHlDQUE0QztBQUUvQixRQUFBLGdCQUFnQixHQUFHLElBQUksd0JBQWUsQ0FDakQscUJBQVksRUFDWiwyQkFBZSxFQUNmLGdDQUFpQixFQUNqQix5QkFBYyxFQUNkLGVBQVMsRUFDVCx1QkFBYSxFQUNiLDZCQUFnQixFQUNoQix1QkFBYSxFQUNiLGdDQUFZLEVBQ1osZ0NBQWlCLEVBQ2pCLG1DQUFrQixFQUNsQiwyQkFBZSxFQUNmLHVEQUE0QixFQUM1QixpQkFBVSxDQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZ2dyZWdhdGVMaW50ZXIgfSBmcm9tICcuLi9saW50ZXInO1xuaW1wb3J0IHsgYXBpTGludGVyIH0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHsgYXR0cmlidXRlc0xpbnRlciB9IGZyb20gJy4vYXR0cmlidXRlcyc7XG5pbXBvcnQgeyBjZm5SZXNvdXJjZUxpbnRlciB9IGZyb20gJy4vY2ZuLXJlc291cmNlJztcbmltcG9ydCB7IGV2ZW50c0xpbnRlciB9IGZyb20gJy4vY2xvdWR3YXRjaC1ldmVudHMnO1xuaW1wb3J0IHsgY29uc3RydWN0TGludGVyIH0gZnJvbSAnLi9jb25zdHJ1Y3QnO1xuaW1wb3J0IHsgZG9jc0xpbnRlciB9IGZyb20gJy4vZG9jcyc7XG5pbXBvcnQgeyBkdXJhdGlvbnNMaW50ZXIgfSBmcm9tICcuL2R1cmF0aW9ucyc7XG5pbXBvcnQgeyBleHBvcnRzTGludGVyIH0gZnJvbSAnLi9leHBvcnRzJztcbmltcG9ydCB7IGltcG9ydHNMaW50ZXIgfSBmcm9tICcuL2ltcG9ydHMnO1xuaW1wb3J0IHsgaW50ZWdyYXRpb25MaW50ZXIgfSBmcm9tICcuL2ludGVncmF0aW9ucyc7XG5pbXBvcnQgeyBtb2R1bGVMaW50ZXIgfSBmcm9tICcuL21vZHVsZSc7XG5pbXBvcnQgeyBub1VudXNlZFR5cGVMaW50ZXIgfSBmcm9tICcuL25vLXVudXNlZC10eXBlJztcbmltcG9ydCB7IHB1YmxpY1N0YXRpY1Byb3BlcnRpZXNMaW50ZXIgfSBmcm9tICcuL3B1YmxpYy1zdGF0aWMtcHJvcGVydGllcyc7XG5pbXBvcnQgeyByZXNvdXJjZUxpbnRlciB9IGZyb20gJy4vcmVzb3VyY2UnO1xuXG5leHBvcnQgY29uc3QgQUxMX1JVTEVTX0xJTlRFUiA9IG5ldyBBZ2dyZWdhdGVMaW50ZXIoXG4gIG1vZHVsZUxpbnRlcixcbiAgY29uc3RydWN0TGludGVyLFxuICBjZm5SZXNvdXJjZUxpbnRlcixcbiAgcmVzb3VyY2VMaW50ZXIsXG4gIGFwaUxpbnRlcixcbiAgaW1wb3J0c0xpbnRlcixcbiAgYXR0cmlidXRlc0xpbnRlcixcbiAgZXhwb3J0c0xpbnRlcixcbiAgZXZlbnRzTGludGVyLFxuICBpbnRlZ3JhdGlvbkxpbnRlcixcbiAgbm9VbnVzZWRUeXBlTGludGVyLFxuICBkdXJhdGlvbnNMaW50ZXIsXG4gIHB1YmxpY1N0YXRpY1Byb3BlcnRpZXNMaW50ZXIsXG4gIGRvY3NMaW50ZXIsXG4pOyJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBa0M7QUFDbEMsNkNBQWdEO0FBQ2hELGlEQUFtRDtBQUNuRCwyREFBbUQ7QUFDbkQsMkNBQThDO0FBQzlDLGlDQUFvQztBQUNwQywyQ0FBOEM7QUFDOUMsdUNBQTBDO0FBQzFDLHVDQUEwQztBQUMxQyxpREFBbUQ7QUFDbkQscUNBQXdDO0FBQ3hDLHFEQUFzRDtBQUN0RCx5RUFBMEU7QUFDMUUseUNBQTRDO0FBQzVDLHNDQUE0QztBQUUvQixRQUFBLGdCQUFnQixHQUFHLElBQUksd0JBQWUsQ0FDakQscUJBQVksRUFDWiwyQkFBZSxFQUNmLGdDQUFpQixFQUNqQix5QkFBYyxFQUNkLGVBQVMsRUFDVCx1QkFBYSxFQUNiLDZCQUFnQixFQUNoQix1QkFBYSxFQUNiLGdDQUFZLEVBQ1osZ0NBQWlCLEVBQ2pCLG1DQUFrQixFQUNsQiwyQkFBZSxFQUNmLHVEQUE0QixFQUM1QixpQkFBVSxDQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhcGlMaW50ZXIgfSBmcm9tICcuL2FwaSc7XG5pbXBvcnQgeyBhdHRyaWJ1dGVzTGludGVyIH0gZnJvbSAnLi9hdHRyaWJ1dGVzJztcbmltcG9ydCB7IGNmblJlc291cmNlTGludGVyIH0gZnJvbSAnLi9jZm4tcmVzb3VyY2UnO1xuaW1wb3J0IHsgZXZlbnRzTGludGVyIH0gZnJvbSAnLi9jbG91ZHdhdGNoLWV2ZW50cyc7XG5pbXBvcnQgeyBjb25zdHJ1Y3RMaW50ZXIgfSBmcm9tICcuL2NvbnN0cnVjdCc7XG5pbXBvcnQgeyBkb2NzTGludGVyIH0gZnJvbSAnLi9kb2NzJztcbmltcG9ydCB7IGR1cmF0aW9uc0xpbnRlciB9IGZyb20gJy4vZHVyYXRpb25zJztcbmltcG9ydCB7IGV4cG9ydHNMaW50ZXIgfSBmcm9tICcuL2V4cG9ydHMnO1xuaW1wb3J0IHsgaW1wb3J0c0xpbnRlciB9IGZyb20gJy4vaW1wb3J0cyc7XG5pbXBvcnQgeyBpbnRlZ3JhdGlvbkxpbnRlciB9IGZyb20gJy4vaW50ZWdyYXRpb25zJztcbmltcG9ydCB7IG1vZHVsZUxpbnRlciB9IGZyb20gJy4vbW9kdWxlJztcbmltcG9ydCB7IG5vVW51c2VkVHlwZUxpbnRlciB9IGZyb20gJy4vbm8tdW51c2VkLXR5cGUnO1xuaW1wb3J0IHsgcHVibGljU3RhdGljUHJvcGVydGllc0xpbnRlciB9IGZyb20gJy4vcHVibGljLXN0YXRpYy1wcm9wZXJ0aWVzJztcbmltcG9ydCB7IHJlc291cmNlTGludGVyIH0gZnJvbSAnLi9yZXNvdXJjZSc7XG5pbXBvcnQgeyBBZ2dyZWdhdGVMaW50ZXIgfSBmcm9tICcuLi9saW50ZXInO1xuXG5leHBvcnQgY29uc3QgQUxMX1JVTEVTX0xJTlRFUiA9IG5ldyBBZ2dyZWdhdGVMaW50ZXIoXG4gIG1vZHVsZUxpbnRlcixcbiAgY29uc3RydWN0TGludGVyLFxuICBjZm5SZXNvdXJjZUxpbnRlcixcbiAgcmVzb3VyY2VMaW50ZXIsXG4gIGFwaUxpbnRlcixcbiAgaW1wb3J0c0xpbnRlcixcbiAgYXR0cmlidXRlc0xpbnRlcixcbiAgZXhwb3J0c0xpbnRlcixcbiAgZXZlbnRzTGludGVyLFxuICBpbnRlZ3JhdGlvbkxpbnRlcixcbiAgbm9VbnVzZWRUeXBlTGludGVyLFxuICBkdXJhdGlvbnNMaW50ZXIsXG4gIHB1YmxpY1N0YXRpY1Byb3BlcnRpZXNMaW50ZXIsXG4gIGRvY3NMaW50ZXIsXG4pOyJdfQ==
@@ -1,4 +1,3 @@
1
- import { AggregateLinter } from '../linter';
2
1
  import { apiLinter } from './api';
3
2
  import { attributesLinter } from './attributes';
4
3
  import { cfnResourceLinter } from './cfn-resource';
@@ -13,6 +12,7 @@ import { moduleLinter } from './module';
13
12
  import { noUnusedTypeLinter } from './no-unused-type';
14
13
  import { publicStaticPropertiesLinter } from './public-static-properties';
15
14
  import { resourceLinter } from './resource';
15
+ import { AggregateLinter } from '../linter';
16
16
 
17
17
  export const ALL_RULES_LINTER = new AggregateLinter(
18
18
  moduleLinter,
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.integrationLinter = void 0;
4
- const linter_1 = require("../linter");
5
4
  const util_1 = require("./util");
5
+ const linter_1 = require("../linter");
6
6
  exports.integrationLinter = new linter_1.Linter(assembly => assembly.interfaces
7
7
  .filter(IntegrationReflection.isIntegrationInterface)
8
8
  .map(construct => new IntegrationReflection(construct)));
@@ -26,4 +26,4 @@ exports.integrationLinter.add({
26
26
  e.assert(returnsFqn && returnsFqn.endsWith('Config'), util_1.memberFqn(e.ctx.bindMethod));
27
27
  },
28
28
  });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW50ZWdyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNDQUFtQztBQUNuQyxpQ0FBbUM7QUFFdEIsUUFBQSxpQkFBaUIsR0FBRyxJQUFJLGVBQU0sQ0FBd0IsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVTtLQUMvRixNQUFNLENBQUMscUJBQXFCLENBQUMsc0JBQXNCLENBQUM7S0FDcEQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFM0QsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUM7QUFFaEMsTUFBTSxxQkFBcUI7SUFLekIsWUFBNEIsb0JBQTJDO1FBQTNDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBdUI7SUFDdkUsQ0FBQztJQUxNLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUF3QjtRQUMzRCxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFLRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUUsQ0FBQztJQUN0RixDQUFDO0NBQ0Y7QUFFRCx5QkFBaUIsQ0FBQyxHQUFHLENBQUM7SUFDcEIsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixPQUFPLEVBQUUsd0RBQXdEO0lBQ2pFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtRQUNSLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBRXJELENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsZ0JBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IExpbnRlciB9IGZyb20gJy4uL2xpbnRlcic7XG5pbXBvcnQgeyBtZW1iZXJGcW4gfSBmcm9tICcuL3V0aWwnO1xuXG5leHBvcnQgY29uc3QgaW50ZWdyYXRpb25MaW50ZXIgPSBuZXcgTGludGVyPEludGVncmF0aW9uUmVmbGVjdGlvbj4oYXNzZW1ibHkgPT4gYXNzZW1ibHkuaW50ZXJmYWNlc1xuICAuZmlsdGVyKEludGVncmF0aW9uUmVmbGVjdGlvbi5pc0ludGVncmF0aW9uSW50ZXJmYWNlKVxuICAubWFwKGNvbnN0cnVjdCA9PiBuZXcgSW50ZWdyYXRpb25SZWZsZWN0aW9uKGNvbnN0cnVjdCkpKTtcblxuY29uc3QgQklORF9NRVRIT0RfTkFNRSA9ICdiaW5kJztcblxuY2xhc3MgSW50ZWdyYXRpb25SZWZsZWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyBpc0ludGVncmF0aW9uSW50ZXJmYWNlKHg6IHJlZmxlY3QuSW50ZXJmYWNlVHlwZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB4LmFsbE1ldGhvZHMuc29tZShtID0+IG0ubmFtZSA9PT0gQklORF9NRVRIT0RfTkFNRSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgaW50ZWdyYXRpb25JbnRlcmZhY2U6IHJlZmxlY3QuSW50ZXJmYWNlVHlwZSkge1xuICB9XG5cbiAgcHVibGljIGdldCBiaW5kTWV0aG9kKCk6IHJlZmxlY3QuTWV0aG9kIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlZ3JhdGlvbkludGVyZmFjZS5hbGxNZXRob2RzLmZpbmQobSA9PiBtLm5hbWUgPT09IEJJTkRfTUVUSE9EX05BTUUpITtcbiAgfVxufVxuXG5pbnRlZ3JhdGlvbkxpbnRlci5hZGQoe1xuICBjb2RlOiAnaW50ZWctcmV0dXJuLXR5cGUnLFxuICBtZXNzYWdlOiAnXFwnYmluZCguLi4pXFwnIHNob3VsZCByZXR1cm4gYSB0eXBlIG5hbWVkIFxcJ1h4eENvbmZpZ1xcJycsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGNvbnN0IHJldHVybnNGcW4gPSBlLmN0eC5iaW5kTWV0aG9kLnJldHVybnMudHlwZS5mcW47XG5cbiAgICBlLmFzc2VydChyZXR1cm5zRnFuICYmIHJldHVybnNGcW4uZW5kc1dpdGgoJ0NvbmZpZycpLCBtZW1iZXJGcW4oZS5jdHguYmluZE1ldGhvZCkpO1xuICB9LFxufSk7XG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW50ZWdyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGlDQUFtQztBQUNuQyxzQ0FBbUM7QUFFdEIsUUFBQSxpQkFBaUIsR0FBRyxJQUFJLGVBQU0sQ0FBd0IsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVTtLQUMvRixNQUFNLENBQUMscUJBQXFCLENBQUMsc0JBQXNCLENBQUM7S0FDcEQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFM0QsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUM7QUFFaEMsTUFBTSxxQkFBcUI7SUFLekIsWUFBNEIsb0JBQTJDO1FBQTNDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBdUI7SUFDdkUsQ0FBQztJQUxNLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUF3QjtRQUMzRCxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFLRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUUsQ0FBQztJQUN0RixDQUFDO0NBQ0Y7QUFFRCx5QkFBaUIsQ0FBQyxHQUFHLENBQUM7SUFDcEIsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixPQUFPLEVBQUUsd0RBQXdEO0lBQ2pFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtRQUNSLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBRXJELENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsZ0JBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IG1lbWJlckZxbiB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBMaW50ZXIgfSBmcm9tICcuLi9saW50ZXInO1xuXG5leHBvcnQgY29uc3QgaW50ZWdyYXRpb25MaW50ZXIgPSBuZXcgTGludGVyPEludGVncmF0aW9uUmVmbGVjdGlvbj4oYXNzZW1ibHkgPT4gYXNzZW1ibHkuaW50ZXJmYWNlc1xuICAuZmlsdGVyKEludGVncmF0aW9uUmVmbGVjdGlvbi5pc0ludGVncmF0aW9uSW50ZXJmYWNlKVxuICAubWFwKGNvbnN0cnVjdCA9PiBuZXcgSW50ZWdyYXRpb25SZWZsZWN0aW9uKGNvbnN0cnVjdCkpKTtcblxuY29uc3QgQklORF9NRVRIT0RfTkFNRSA9ICdiaW5kJztcblxuY2xhc3MgSW50ZWdyYXRpb25SZWZsZWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyBpc0ludGVncmF0aW9uSW50ZXJmYWNlKHg6IHJlZmxlY3QuSW50ZXJmYWNlVHlwZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB4LmFsbE1ldGhvZHMuc29tZShtID0+IG0ubmFtZSA9PT0gQklORF9NRVRIT0RfTkFNRSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgaW50ZWdyYXRpb25JbnRlcmZhY2U6IHJlZmxlY3QuSW50ZXJmYWNlVHlwZSkge1xuICB9XG5cbiAgcHVibGljIGdldCBiaW5kTWV0aG9kKCk6IHJlZmxlY3QuTWV0aG9kIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlZ3JhdGlvbkludGVyZmFjZS5hbGxNZXRob2RzLmZpbmQobSA9PiBtLm5hbWUgPT09IEJJTkRfTUVUSE9EX05BTUUpITtcbiAgfVxufVxuXG5pbnRlZ3JhdGlvbkxpbnRlci5hZGQoe1xuICBjb2RlOiAnaW50ZWctcmV0dXJuLXR5cGUnLFxuICBtZXNzYWdlOiAnXFwnYmluZCguLi4pXFwnIHNob3VsZCByZXR1cm4gYSB0eXBlIG5hbWVkIFxcJ1h4eENvbmZpZ1xcJycsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGNvbnN0IHJldHVybnNGcW4gPSBlLmN0eC5iaW5kTWV0aG9kLnJldHVybnMudHlwZS5mcW47XG5cbiAgICBlLmFzc2VydChyZXR1cm5zRnFuICYmIHJldHVybnNGcW4uZW5kc1dpdGgoJ0NvbmZpZycpLCBtZW1iZXJGcW4oZS5jdHguYmluZE1ldGhvZCkpO1xuICB9LFxufSk7XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import * as reflect from 'jsii-reflect';
2
- import { Linter } from '../linter';
3
2
  import { memberFqn } from './util';
3
+ import { Linter } from '../linter';
4
4
 
5
5
  export const integrationLinter = new Linter<IntegrationReflection>(assembly => assembly.interfaces
6
6
  .filter(IntegrationReflection.isIntegrationInterface)
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.moduleLinter = void 0;
4
- const linter_1 = require("../linter");
5
4
  const cfn_resource_1 = require("./cfn-resource");
5
+ const linter_1 = require("../linter");
6
6
  exports.moduleLinter = new linter_1.Linter(assembly => {
7
7
  const cfnResources = cfn_resource_1.CfnResourceReflection.findAll(assembly);
8
8
  if (cfnResources.length === 0) {
@@ -50,4 +50,4 @@ function overrideNamespace(namespace) {
50
50
  }
51
51
  return namespace;
52
52
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNDQUFtQztBQUNuQyxpREFBdUQ7QUFPMUMsUUFBQSxZQUFZLEdBQUcsSUFBSSxlQUFNLENBQXNCLFFBQVEsQ0FBQyxFQUFFO0lBQ3JFLE1BQU0sWUFBWSxHQUFHLG9DQUFxQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3RCxJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzdCLE9BQU8sU0FBUyxDQUFDLENBQUMsZUFBZTtLQUNsQztJQUVELE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDckMsS0FBSyxNQUFNLFdBQVcsSUFBSSxZQUFZLEVBQUU7UUFDdEMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDdkM7SUFDRCxPQUFPO1FBQ0wsUUFBUTtRQUNSLFVBQVU7S0FDWCxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSCxvQkFBWSxDQUFDLEdBQUcsQ0FBRTtJQUNoQixJQUFJLEVBQUUsYUFBYTtJQUNuQixPQUFPLEVBQUUsOENBQThDO0lBQ3ZELElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtRQUNSLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRTtZQUFFLE9BQU87U0FBRTtRQUNsQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFaEMsTUFBTSxhQUFhLEdBQUcsS0FBSzthQUN4QixJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7YUFDdEIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLEtBQUssTUFBTSxZQUFZLElBQUksYUFBYSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRTtnQkFDeEMsT0FBTzthQUNSO1NBQ0Y7UUFFRCxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFVBQVU7WUFDOUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRztnQkFDekIsQ0FBQyxDQUFDLFdBQVcsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxTQUFTLGlCQUFpQixDQUFDLFNBQWlCO0lBQzFDLElBQUksU0FBUyxLQUFLLGdCQUFnQixFQUFFO1FBQ2xDLE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IExpbnRlciB9IGZyb20gJy4uL2xpbnRlcic7XG5pbXBvcnQgeyBDZm5SZXNvdXJjZVJlZmxlY3Rpb24gfSBmcm9tICcuL2Nmbi1yZXNvdXJjZSc7XG5cbmludGVyZmFjZSBNb2R1bGVMaW50ZXJDb250ZXh0IHtcbiAgcmVhZG9ubHkgYXNzZW1ibHk6IHJlZmxlY3QuQXNzZW1ibHk7XG4gIHJlYWRvbmx5IG5hbWVzcGFjZXM6IFNldDxzdHJpbmc+O1xufVxuXG5leHBvcnQgY29uc3QgbW9kdWxlTGludGVyID0gbmV3IExpbnRlcjxNb2R1bGVMaW50ZXJDb250ZXh0Pihhc3NlbWJseSA9PiB7XG4gIGNvbnN0IGNmblJlc291cmNlcyA9IENmblJlc291cmNlUmVmbGVjdGlvbi5maW5kQWxsKGFzc2VtYmx5KTtcbiAgaWYgKGNmblJlc291cmNlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkOyAvLyBubyByZXNvdXJjZXNcbiAgfVxuXG4gIGNvbnN0IG5hbWVzcGFjZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBjZm5SZXNvdXJjZSBvZiBjZm5SZXNvdXJjZXMpIHtcbiAgICBuYW1lc3BhY2VzLmFkZChjZm5SZXNvdXJjZS5uYW1lc3BhY2UpO1xuICB9XG4gIHJldHVybiB7XG4gICAgYXNzZW1ibHksXG4gICAgbmFtZXNwYWNlcyxcbiAgfTtcbn0pO1xuXG5tb2R1bGVMaW50ZXIuYWRkKCB7XG4gIGNvZGU6ICdtb2R1bGUtbmFtZScsXG4gIG1lc3NhZ2U6ICdtb2R1bGUgbmFtZSBtdXN0IGJlIEBhd3MtY2RrL2F3cy08bmFtZXNwYWNlPicsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHgubmFtZXNwYWNlcykgeyByZXR1cm47IH1cbiAgICBpZiAoIWUuY3R4LmFzc2VtYmx5KSB7IHJldHVybjsgfVxuXG4gICAgY29uc3QgY2RrTmFtZXNwYWNlcyA9IEFycmF5XG4gICAgICAuZnJvbShlLmN0eC5uYW1lc3BhY2VzKVxuICAgICAgLm1hcChucyA9PiBgQGF3cy1jZGsvJHtvdmVycmlkZU5hbWVzcGFjZShucy50b0xvY2FsZUxvd2VyQ2FzZSgpLnJlcGxhY2UoJzo6JywgJy0nKSl9YCk7XG4gICAgZm9yIChjb25zdCBjZGtOYW1lc3BhY2Ugb2YgY2RrTmFtZXNwYWNlcykge1xuICAgICAgaWYgKGUuY3R4LmFzc2VtYmx5Lm5hbWUgPT09IGNka05hbWVzcGFjZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgZS5hc3NlcnQoZmFsc2UsIGUuY3R4LmFzc2VtYmx5Lm5hbWUsIGAgZXhwZWN0ZWQgJyR7ZS5jdHguYXNzZW1ibHkubmFtZX0nIHRvIGJlIGAgK1xuICAgICAgKGNka05hbWVzcGFjZXMubGVuZ3RoID09PSAxXG4gICAgICAgID8gYCcke2Nka05hbWVzcGFjZXNbMF19J2BcbiAgICAgICAgOiBgb25lIG9mOiAke2Nka05hbWVzcGFjZXMuam9pbignLCAnKX1gKSk7XG4gIH0sXG59KTtcblxuLyoqXG4gKiBPdmVycmlkZXMgc3BlY2lhbC1jYXNlIG5hbWVzcGFjZXMgbGlrZSBhd3Mtc2VydmVybGVzcz0+YXdzLXNhbVxuICovXG5mdW5jdGlvbiBvdmVycmlkZU5hbWVzcGFjZShuYW1lc3BhY2U6IHN0cmluZykge1xuICBpZiAobmFtZXNwYWNlID09PSAnYXdzLXNlcnZlcmxlc3MnKSB7XG4gICAgcmV0dXJuICdhd3Mtc2FtJztcbiAgfVxuICByZXR1cm4gbmFtZXNwYWNlO1xufVxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGlEQUF1RDtBQUN2RCxzQ0FBbUM7QUFPdEIsUUFBQSxZQUFZLEdBQUcsSUFBSSxlQUFNLENBQXNCLFFBQVEsQ0FBQyxFQUFFO0lBQ3JFLE1BQU0sWUFBWSxHQUFHLG9DQUFxQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3RCxJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzdCLE9BQU8sU0FBUyxDQUFDLENBQUMsZUFBZTtLQUNsQztJQUVELE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDckMsS0FBSyxNQUFNLFdBQVcsSUFBSSxZQUFZLEVBQUU7UUFDdEMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDdkM7SUFDRCxPQUFPO1FBQ0wsUUFBUTtRQUNSLFVBQVU7S0FDWCxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSCxvQkFBWSxDQUFDLEdBQUcsQ0FBRTtJQUNoQixJQUFJLEVBQUUsYUFBYTtJQUNuQixPQUFPLEVBQUUsOENBQThDO0lBQ3ZELElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtRQUNSLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRTtZQUFFLE9BQU87U0FBRTtRQUNsQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFaEMsTUFBTSxhQUFhLEdBQUcsS0FBSzthQUN4QixJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7YUFDdEIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLEtBQUssTUFBTSxZQUFZLElBQUksYUFBYSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRTtnQkFDeEMsT0FBTzthQUNSO1NBQ0Y7UUFFRCxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFVBQVU7WUFDOUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRztnQkFDekIsQ0FBQyxDQUFDLFdBQVcsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxTQUFTLGlCQUFpQixDQUFDLFNBQWlCO0lBQzFDLElBQUksU0FBUyxLQUFLLGdCQUFnQixFQUFFO1FBQ2xDLE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IENmblJlc291cmNlUmVmbGVjdGlvbiB9IGZyb20gJy4vY2ZuLXJlc291cmNlJztcbmltcG9ydCB7IExpbnRlciB9IGZyb20gJy4uL2xpbnRlcic7XG5cbmludGVyZmFjZSBNb2R1bGVMaW50ZXJDb250ZXh0IHtcbiAgcmVhZG9ubHkgYXNzZW1ibHk6IHJlZmxlY3QuQXNzZW1ibHk7XG4gIHJlYWRvbmx5IG5hbWVzcGFjZXM6IFNldDxzdHJpbmc+O1xufVxuXG5leHBvcnQgY29uc3QgbW9kdWxlTGludGVyID0gbmV3IExpbnRlcjxNb2R1bGVMaW50ZXJDb250ZXh0Pihhc3NlbWJseSA9PiB7XG4gIGNvbnN0IGNmblJlc291cmNlcyA9IENmblJlc291cmNlUmVmbGVjdGlvbi5maW5kQWxsKGFzc2VtYmx5KTtcbiAgaWYgKGNmblJlc291cmNlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkOyAvLyBubyByZXNvdXJjZXNcbiAgfVxuXG4gIGNvbnN0IG5hbWVzcGFjZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBjZm5SZXNvdXJjZSBvZiBjZm5SZXNvdXJjZXMpIHtcbiAgICBuYW1lc3BhY2VzLmFkZChjZm5SZXNvdXJjZS5uYW1lc3BhY2UpO1xuICB9XG4gIHJldHVybiB7XG4gICAgYXNzZW1ibHksXG4gICAgbmFtZXNwYWNlcyxcbiAgfTtcbn0pO1xuXG5tb2R1bGVMaW50ZXIuYWRkKCB7XG4gIGNvZGU6ICdtb2R1bGUtbmFtZScsXG4gIG1lc3NhZ2U6ICdtb2R1bGUgbmFtZSBtdXN0IGJlIEBhd3MtY2RrL2F3cy08bmFtZXNwYWNlPicsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGlmICghZS5jdHgubmFtZXNwYWNlcykgeyByZXR1cm47IH1cbiAgICBpZiAoIWUuY3R4LmFzc2VtYmx5KSB7IHJldHVybjsgfVxuXG4gICAgY29uc3QgY2RrTmFtZXNwYWNlcyA9IEFycmF5XG4gICAgICAuZnJvbShlLmN0eC5uYW1lc3BhY2VzKVxuICAgICAgLm1hcChucyA9PiBgQGF3cy1jZGsvJHtvdmVycmlkZU5hbWVzcGFjZShucy50b0xvY2FsZUxvd2VyQ2FzZSgpLnJlcGxhY2UoJzo6JywgJy0nKSl9YCk7XG4gICAgZm9yIChjb25zdCBjZGtOYW1lc3BhY2Ugb2YgY2RrTmFtZXNwYWNlcykge1xuICAgICAgaWYgKGUuY3R4LmFzc2VtYmx5Lm5hbWUgPT09IGNka05hbWVzcGFjZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgZS5hc3NlcnQoZmFsc2UsIGUuY3R4LmFzc2VtYmx5Lm5hbWUsIGAgZXhwZWN0ZWQgJyR7ZS5jdHguYXNzZW1ibHkubmFtZX0nIHRvIGJlIGAgK1xuICAgICAgKGNka05hbWVzcGFjZXMubGVuZ3RoID09PSAxXG4gICAgICAgID8gYCcke2Nka05hbWVzcGFjZXNbMF19J2BcbiAgICAgICAgOiBgb25lIG9mOiAke2Nka05hbWVzcGFjZXMuam9pbignLCAnKX1gKSk7XG4gIH0sXG59KTtcblxuLyoqXG4gKiBPdmVycmlkZXMgc3BlY2lhbC1jYXNlIG5hbWVzcGFjZXMgbGlrZSBhd3Mtc2VydmVybGVzcz0+YXdzLXNhbVxuICovXG5mdW5jdGlvbiBvdmVycmlkZU5hbWVzcGFjZShuYW1lc3BhY2U6IHN0cmluZykge1xuICBpZiAobmFtZXNwYWNlID09PSAnYXdzLXNlcnZlcmxlc3MnKSB7XG4gICAgcmV0dXJuICdhd3Mtc2FtJztcbiAgfVxuICByZXR1cm4gbmFtZXNwYWNlO1xufVxuIl19
@@ -1,6 +1,6 @@
1
1
  import * as reflect from 'jsii-reflect';
2
- import { Linter } from '../linter';
3
2
  import { CfnResourceReflection } from './cfn-resource';
3
+ import { Linter } from '../linter';
4
4
 
5
5
  interface ModuleLinterContext {
6
6
  readonly assembly: reflect.Assembly;
@@ -1,8 +1,8 @@
1
1
  import * as reflect from 'jsii-reflect';
2
- import { Linter } from '../linter';
3
2
  import { CfnResourceReflection } from './cfn-resource';
4
3
  import { ConstructReflection } from './construct';
5
4
  import { CoreTypes } from './core-types';
5
+ import { Linter } from '../linter';
6
6
  export declare const resourceLinter: Linter<ResourceReflection>;
7
7
  export interface Attribute {
8
8
  site: AttributeSite;
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ResourceReflection = exports.AttributeSite = exports.resourceLinter = void 0;
4
4
  const camelcase = require("camelcase");
5
- const linter_1 = require("../linter");
6
5
  const cfn_resource_1 = require("./cfn-resource");
7
6
  const construct_1 = require("./construct");
8
7
  const core_types_1 = require("./core-types");
9
8
  const util_1 = require("./util");
9
+ const linter_1 = require("../linter");
10
10
  const GRANT_RESULT_FQN = '@aws-cdk/aws-iam.Grant';
11
11
  exports.resourceLinter = new linter_1.Linter(a => ResourceReflection.findAll(a));
12
12
  var AttributeSite;
@@ -246,4 +246,4 @@ function guessResourceName(fqn) {
246
246
  }
247
247
  return `${org}::${ns}::${rs}`;
248
248
  }
249
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1Q0FBdUM7QUFFdkMsc0NBQW1DO0FBQ25DLGlEQUF1RDtBQUN2RCwyQ0FBa0Q7QUFDbEQsNkNBQXlDO0FBQ3pDLGlDQUFtQztBQUVuQyxNQUFNLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDO0FBRXJDLFFBQUEsY0FBYyxHQUFHLElBQUksZUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFRN0UsSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLHdDQUF1QixDQUFBO0lBQ3ZCLGdDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBR3hCO0FBRUQsTUFBYSxrQkFBa0I7SUEwQjdCLFlBQTRCLFNBQThCO1FBQTlCLGNBQVMsR0FBVCxTQUFTLENBQXFCO1FBQ3hELElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDN0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUVoQyxNQUFNLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLFNBQVMsQ0FBQyxHQUFHLElBQUk7Z0JBQzlELE9BQU8saUJBQWlCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx1Q0FBdUM7Z0JBQzlFLG9IQUFvSCxDQUFDLENBQUM7U0FDekg7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksc0JBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFD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QUMsRUFBRSxFQUFFO1FBQUUsT0FBTyxTQUFTLENBQUM7S0FBRTtJQUU3QyxPQUFPLEdBQUcsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2FtZWxjYXNlIGZyb20gJ2NhbWVsY2FzZSc7XG5pbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBMaW50ZXIgfSBmcm9tICcuLi9saW50ZXInO1xuaW1wb3J0IHsgQ2ZuUmVzb3VyY2VSZWZsZWN0aW9uIH0gZnJvbSAnLi9jZm4tcmVzb3VyY2UnO1xuaW1wb3J0IHsgQ29uc3RydWN0UmVmbGVjdGlvbiB9IGZyb20gJy4vY29uc3RydWN0JztcbmltcG9ydCB7IENvcmVUeXBlcyB9IGZyb20gJy4vY29yZS10eXBlcyc7XG5pbXBvcnQgeyBnZXREb2NUYWcgfSBmcm9tICcuL3V0aWwnO1xuXG5jb25zdCBHUkFOVF9SRVNVTFRfRlFOID0gJ0Bhd3MtY2RrL2F3cy1pYW0uR3JhbnQnO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2VMaW50ZXIgPSBuZXcgTGludGVyKGEgPT4gUmVzb3VyY2VSZWZsZWN0aW9uLmZpbmRBbGwoYSkpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZSB7XG4gIHNpdGU6IEF0dHJpYnV0ZVNpdGU7XG4gIHByb3BlcnR5OiByZWZsZWN0LlByb3BlcnR5O1xuICBjZm5BdHRyaWJ1dGVOYW1lczogc3RyaW5nW107IC8vIGJ1Y2tldEFyblxufVxuXG5leHBvcnQgZW51bSBBdHRyaWJ1dGVTaXRlIHtcbiAgSW50ZXJmYWNlID0gJ2ludGVyZmFjZScsXG4gIENsYXNzID0gJ2NsYXNzJ1xufVxuXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VSZWZsZWN0aW9uIHtcblxuICAvKipcbiAgICogQHJldHVybnMgYWxsIHJlc291cmNlIGNvbnN0cnVjdHMgKGV2ZXJ5dGhpbmcgdGhhdCBleHRlbmRzIGBjZGsuUmVzb3VyY2VgKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmaW5kQWxsKGFzc2VtYmx5OiByZWZsZWN0LkFzc2VtYmx5KSB7XG4gICAgaWYgKENvcmVUeXBlcy5oYXNDb3JlTW9kdWxlKGFzc2VtYmx5KSkge1xuICAgICAgcmV0dXJuIFtdOyAvLyBub3QgcGFydCBvZiB0aGUgZGVwIHN0YWNrXG4gICAgfVxuXG4gICAgcmV0dXJuIENvbnN0cnVjdFJlZmxlY3Rpb25cbiAgICAgIC5maW5kQWxsQ29uc3RydWN0cyhhc3NlbWJseSlcbiAgICAgIC5maWx0ZXIoYyA9PiBDb3JlVHlwZXMuaXNSZXNvdXJjZUNsYXNzKGMuY2xhc3NUeXBlKSlcbiAgICAgIC5tYXAoYyA9PiBuZXcgUmVzb3VyY2VSZWZsZWN0aW9uKGMpKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVbXTsgLy8gYWN0dWFsIGF0dHJpYnV0ZSBwcm9wc1xuICBwdWJsaWMgcmVhZG9ubHkgZnFuOiBzdHJpbmc7IC8vIGV4cGVjdGVkIGZxbiBvZiByZXNvdXJjZSBjbGFzc1xuXG4gIHB1YmxpYyByZWFkb25seSBhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseTtcbiAgcHVibGljIHJlYWRvbmx5IHN5czogcmVmbGVjdC5UeXBlU3lzdGVtO1xuICBwdWJsaWMgcmVhZG9ubHkgY2ZuOiBDZm5SZXNvdXJjZVJlZmxlY3Rpb247XG4gIHB1YmxpYyByZWFkb25seSBiYXNlbmFtZTogc3RyaW5nOyAvLyBpLmUuIEJ1Y2tldFxuICBwdWJsaWMgcmVhZG9ubHkgY29yZTogQ29yZVR5cGVzO1xuICBwdWJsaWMgcmVhZG9ubHkgcGh5c2ljYWxOYW1lUHJvcD86IHJlZmxlY3QuUHJvcGVydHk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNvbnN0cnVjdDogQ29uc3RydWN0UmVmbGVjdGlvbikge1xuICAgIHRoaXMuYXNzZW1ibHkgPSBjb25zdHJ1Y3QuY2xhc3NUeXBlLmFzc2VtYmx5O1xuICAgIHRoaXMuc3lzID0gdGhpcy5hc3NlbWJseS5zeXN0ZW07XG5cbiAgICBjb25zdCBjZm4gPSB0cnlSZXNvbHZlQ2ZuUmVzb3VyY2UoY29uc3RydWN0LmNsYXNzVHlwZSk7XG4gICAgaWYgKCFjZm4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgTDEgY2xhc3MgZm9yIEwyICR7Y29uc3RydWN0LmZxbn0uIGAgK1xuICAgICAgICBgSXMgXCIke2d1ZXNzUmVzb3VyY2VOYW1lKGNvbnN0cnVjdC5mcW4pfVwiIGFuIGFjdHVhbCBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZS4gYCArXG4gICAgICAgICdJZiBub3QsIHVzZSB0aGUgXCJAcmVzb3VyY2VcIiBkb2MgdGFnIHRvIGluZGljYXRlIHRoZSBmdWxsIHJlc291cmNlIG5hbWUgKGUuZy4gXCJAcmVzb3VyY2UgQVdTOjpSb3V0ZTUzOjpIb3N0ZWRab25lXCIpJyk7XG4gICAgfVxuXG4gICAgdGhpcy5jb3JlID0gbmV3IENvcmVUeXBlcyh0aGlzLnN5cyk7XG4gICAgdGhpcy5jZm4gPSBjZm47XG4gICAgdGhpcy5iYXNlbmFtZSA9IGNvbnN0cnVjdC5jbGFzc1R5cGUubmFtZTtcbiAgICB0aGlzLmZxbiA9IGNvbnN0cnVjdC5mcW47XG4gICAgdGhpcy5hdHRyaWJ1dGVzID0gdGhpcy5maW5kQXR0cmlidXRlUHJvcGVydGllcygpO1xuICAgIHRoaXMucGh5c2ljYWxOYW1lUHJvcCA9IHRoaXMuZmluZFBoeXNpY2FsTmFtZVByb3AoKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFBoeXNpY2FsTmFtZVByb3AoKSB7XG4gICAgaWYgKCF0aGlzLmNvbnN0cnVjdC5wcm9wc1R5cGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VOYW1lID0gY2FtZWxjYXNlKHRoaXMuY2ZuLmJhc2VuYW1lKTtcblxuICAgIC8vIGlmIHJlc291cmNlIG5hbWUgZW5kcyB3aXRoIFwiTmFtZVwiIChlLmcuIERvbWFpbk5hbWUsIHRoZW4ganVzdCB1c2UgaXQgYXMtaXMsIG90aGVyd2lzZSBhcHBlbmQgXCJOYW1lXCIpXG4gICAgY29uc3QgcGh5c2ljYWxOYW1lUHJvcCA9IHJlc291cmNlTmFtZS5lbmRzV2l0aCgnTmFtZScpID8gcmVzb3VyY2VOYW1lIDogYCR7cmVzb3VyY2VOYW1lfU5hbWVgO1xuICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdC5wcm9wc1R5cGUuYWxsUHJvcGVydGllcy5maW5kKHggPT4geC5uYW1lID09PSBwaHlzaWNhbE5hbWVQcm9wKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgcHJvcGVydGllcyBhcmUgYWxsIHRoZSBwcm9wZXJ0aWVzIHRoYXQgYmVnaW4gd2l0aCB0aGUgdHlwZSBuYW1lIChlLmcuIGJ1Y2tldFh4eCkuXG4gICAqL1xuICBwcml2YXRlIGZpbmRBdHRyaWJ1dGVQcm9wZXJ0aWVzKCk6IEF0dHJpYnV0ZVtdIHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8QXR0cmlidXRlPigpO1xuXG4gICAgZm9yIChjb25zdCBwIG9mIHRoaXMuY29uc3RydWN0LmNsYXNzVHlwZS5hbGxQcm9wZXJ0aWVzKSB7XG4gICAgICBpZiAocC5wcm90ZWN0ZWQpIHtcbiAgICAgICAgY29udGludWU7IC8vIHNraXAgYW55IHByb3RlY3RlZCBwcm9wZXJ0aWVzXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJhc2VuYW1lID0gY2FtZWxjYXNlKHRoaXMuY2ZuLmJhc2VuYW1lKTtcblxuICAgICAgLy8gYW4gYXR0cmlidXRlIHByb3BlcnR5IGlzIGEgcHJvcGVydHkgd2hpY2ggc3RhcnRzIHdpdGggdGhlIHR5cGUgbmFtZVxuICAgICAgLy8gKGUuZy4gXCJidWNrZXRYeHhcIikgYW5kL29yIGhhcyBhbiBAYXR0cmlidXRlIGRvYyB0YWcuXG4gICAgICBjb25zdCB0YWcgPSBnZXREb2NUYWcocCwgJ2F0dHJpYnV0ZScpO1xuICAgICAgaWYgKCFwLm5hbWUuc3RhcnRzV2l0aChiYXNlbmFtZSkgJiYgIXRhZykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgbGV0IGNmbkF0dHJpYnV0ZU5hbWVzO1xuICAgICAgaWYgKHRhZyAmJiB0YWcgIT09ICd0cnVlJykge1xuICAgICAgICAvLyBpZiB0aGVyZSdzIGFuIGBAYXR0cmlidXRlYCBkb2MgdGFnIHdpdGggYSB2YWx1ZSBvdGhlciB0aGFuIFwidHJ1ZVwiXG4gICAgICAgIC8vIGl0IHNob3VsZCBiZSB1c2VkIGFzIHRoZSBDRk4gYXR0cmlidXRlIG5hbWUgaW5zdGVhZCBvZiB0aGUgcHJvcGVydHkgbmFtZVxuICAgICAgICAvLyBtdWx0aXBsZSBhdHRyaWJ1dGUgbmFtZXMgY2FuIGJlIGxpc3RlZCBhcyBhIGNvbW1hLWRlbGltaXRlZCBsaXN0XG4gICAgICAgIGNmbkF0dHJpYnV0ZU5hbWVzID0gdGFnLnNwbGl0KCcsJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBva2F5LCB3ZSBkb24ndCBoYXZlIGFuIGV4cGxpY2l0IENGTiBhdHRyaWJ1dGUgbmFtZSwgc28gd2UnbGwgZ3Vlc3MgaXRcbiAgICAgICAgLy8gZnJvbSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuXG5cbiAgICAgICAgY29uc3QgbmFtZSA9IGNhbWVsY2FzZShwLm5hbWUsIHsgcGFzY2FsQ2FzZTogdHJ1ZSB9KTtcbiAgICAgICAgaWYgKHRoaXMuY2ZuLmF0dHJpYnV0ZU5hbWVzLmluY2x1ZGVzKG5hbWUpKSB7XG4gICAgICAgICAgLy8gc3BlY2lhbCBjYXNlOiB0aGVyZSBpcyBhIGNsb3VkZm9ybWF0aW9uIHJlc291cmNlIHR5cGUgaW4gdGhlIGF0dHJpYnV0ZSBuYW1lXG4gICAgICAgICAgLy8gZm9yIGV4YW1wbGUgJ1JvbGVJZCcuXG4gICAgICAgICAgY2ZuQXR0cmlidXRlTmFtZXMgPSBbbmFtZV07XG4gICAgICAgIH0gZWxzZSBpZiAocC5uYW1lLnN0YXJ0c1dpdGgoYmFzZW5hbWUpKSB7XG4gICAgICAgICAgLy8gYmVnaW5zIHdpdGggdGhlIHJlc291cmNlIG5hbWUsIGp1c3QgdHJpbSBpdFxuICAgICAgICAgIGNmbkF0dHJpYnV0ZU5hbWVzID0gW25hbWUuc3Vic3RyaW5nKHRoaXMuY2ZuLmJhc2VuYW1lLmxlbmd0aCldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHdlIGNvdWxkbid0IGRldGVybWluZSBDRk4gYXR0cmlidXRlIG5hbWUsIHNvIHdlIGRvbid0IGFjY291bnQgZm9yIHRoaXNcbiAgICAgICAgICAvLyBhcyBhbiBhdHRyaWJ1dGUuIHRoaXMgY291bGQgYmUsIGZvciBleGFtcGxlLCB3aGVuIGEgY29uc3RydWN0IGltcGxlbWVudHNcbiAgICAgICAgICAvLyBhbiBpbnRlcmZhY2UgdGhhdCByZXByZXNlbnRzIGFub3RoZXIgcmVzb3VyY2UgKGUuZy4gYGxhbWJkYS5BbGlhc2AgaW1wbGVtZW50cyBgSUZ1bmN0aW9uYCkuXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gY2hlY2sgaWYgdGhpcyBhdHRyaWJ1dGUgaXMgZGVmaW5lZCBvbiBhbiBpbnRlcmZhY2Ugb3Igb24gYSBjbGFzc1xuICAgICAgY29uc3QgcHJvcGVydHkgPSBmaW5kRGVjbGFyYXRpb25TaXRlKHApO1xuICAgICAgY29uc3Qgc2l0ZSA9IHByb3BlcnR5LnBhcmVudFR5cGUuaXNJbnRlcmZhY2VUeXBlKCkgPyBBdHRyaWJ1dGVTaXRlLkludGVyZmFjZSA6IEF0dHJpYnV0ZVNpdGUuQ2xhc3M7XG5cbiAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgc2l0ZSxcbiAgICAgICAgY2ZuQXR0cmlidXRlTmFtZXMsXG4gICAgICAgIHByb3BlcnR5LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kRGVjbGFyYXRpb25TaXRlKHByb3A6IHJlZmxlY3QuUHJvcGVydHkpOiByZWZsZWN0LlByb3BlcnR5IHtcbiAgaWYgKCFwcm9wLm92ZXJyaWRlcyB8fCAoIXByb3Aub3ZlcnJpZGVzLmlzQ2xhc3NUeXBlKCkgJiYgIXByb3Aub3ZlcnJpZGVzLmlzSW50ZXJmYWNlVHlwZSgpKSkge1xuICAgIGlmICghcHJvcC5wYXJlbnRUeXBlLmlzQ2xhc3NUeXBlKCkgJiYgIXByb3AucGFyZW50VHlwZS5pc0ludGVyZmFjZVR5cGUoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHBhcmVudCB0eXBlJyk7XG4gICAgfVxuICAgIHJldHVybiBwcm9wO1xuICB9XG5cbiAgY29uc3Qgb3ZlcnJpZGVzUHJvcCA9IHByb3Aub3ZlcnJpZGVzLmFsbFByb3BlcnRpZXMuZmluZChwID0+IHAubmFtZSA9PT0gcHJvcC5uYW1lKTtcbiAgaWYgKCFvdmVycmlkZXNQcm9wKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBwcm9wZXJ0eSAke3Byb3AubmFtZX0gaW4gb3ZlcnJpZGUgc2l0ZSAke3Byb3Aub3ZlcnJpZGVzLmZxbn1gKTtcbiAgfVxuICByZXR1cm4gZmluZERlY2xhcmF0aW9uU2l0ZShvdmVycmlkZXNQcm9wKTtcbn1cblxucmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Jlc291cmNlLWNsYXNzLWV4dGVuZHMtcmVzb3VyY2UnLFxuICBtZXNzYWdlOiAncmVzb3VyY2UgY2xhc3NlcyBtdXN0IGV4dGVuZCBcImNkay5SZXNvdXJjZVwiIGRpcmVjdGx5IG9yIGluZGlyZWN0bHknLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCByZXNvdXJjZUJhc2UgPSBlLmN0eC5zeXMuZmluZENsYXNzKGUuY3R4LmNvcmUucmVzb3VyY2VDbGFzcy5mcW4pO1xuICAgIGUuYXNzZXJ0KGUuY3R4LmNvbnN0cnVjdC5jbGFzc1R5cGUuZXh0ZW5kcyhyZXNvdXJjZUJhc2UpLCBlLmN0eC5jb25zdHJ1Y3QuZnFuKTtcbiAgfSxcbn0pO1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncmVzb3VyY2UtaW50ZXJmYWNlJyxcbiAgd2FybmluZzogdHJ1ZSxcbiAgbWVzc2FnZTogJ2V2ZXJ5IHJlc291cmNlIG11c3QgaGF2ZSBhIHJlc291cmNlIGludGVyZmFjZScsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGUuYXNzZXJ0KGUuY3R4LmNvbnN0cnVjdC5pbnRlcmZhY2VUeXBlLCBlLmN0eC5jb25zdHJ1Y3QuZnFuKTtcbiAgfSxcbn0pO1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncmVzb3VyY2UtaW50ZXJmYWNlLWV4dGVuZHMtcmVzb3VyY2UnLFxuICBtZXNzYWdlOiAnY29uc3RydWN0IGludGVyZmFjZXMgb2YgQVdTIHJlc291cmNlcyBtdXN0IGV4dGVuZCBjZGsuSVJlc291cmNlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2VJbnRlcmZhY2UgPSBlLmN0eC5jb25zdHJ1Y3QuaW50ZXJmYWNlVHlwZTtcbiAgICBpZiAoIXJlc291cmNlSW50ZXJmYWNlKSB7IHJldHVybjsgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VJbnRlcmZhY2VGcW4gPSBlLmN0eC5jb3JlLnJlc291cmNlSW50ZXJmYWNlLmZxbjtcbiAgICBjb25zdCBpbnRlcmZhY2VCYXNlID0gZS5jdHguc3lzLmZpbmRJbnRlcmZhY2UocmVzb3VyY2VJbnRlcmZhY2VGcW4pO1xuICAgIGUuYXNzZXJ0KHJlc291cmNlSW50ZXJmYWNlLmV4dGVuZHMoaW50ZXJmYWNlQmFzZSksIHJlc291cmNlSW50ZXJmYWNlLmZxbik7XG4gIH0sXG59KTtcblxuLypcbi8vIFRoaXMgcnVsZSBpcyB0aGUgd29yc3RcbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdyZXNvdXJjZS1hdHRyaWJ1dGUnLFxuICBtZXNzYWdlOlxuICAgICdyZXNvdXJjZXMgbXVzdCByZXByZXNlbnQgYWxsIGNsb3VkZm9ybWF0aW9uIGF0dHJpYnV0ZXMgYXMgYXR0cmlidXRlIHByb3BlcnRpZXMuICcgK1xuICAgICdcIkBhdHRyaWJ1dGUgQVRUUlssQVRUUl1cIiBjYW4gYmUgdXNlZCB0byB0YWcgbm9uLXN0YW5kYXJkIGF0dHJpYnV0ZSBuYW1lcy4gJyArXG4gICAgJ21pc3NpbmcgcHJvcGVydHk6JyxcbiAgZXZhbDogZSA9PiB7XG4gICAgZm9yIChjb25zdCBuYW1lIG9mIGUuY3R4LmNmbi5hdHRyaWJ1dGVOYW1lcykge1xuICAgICAgY29uc3QgZXhwZWN0ZWQgPSBjYW1lbGNhc2UobmFtZSkuc3RhcnRzV2l0aChjYW1lbGNhc2UoZS5jdHguY2ZuLmJhc2VuYW1lKSlcbiAgICAgICAgPyBjYW1lbGNhc2UobmFtZSlcbiAgICAgICAgOiBjYW1lbGNhc2UoZS5jdHguY2ZuLmJhc2VuYW1lICsgbmFtZSk7XG5cbiAgICAgIGNvbnN0IGZvdW5kID0gZS5jdHguYXR0cmlidXRlcy5maW5kKGEgPT4gYS5jZm5BdHRyaWJ1dGVOYW1lcy5pbmNsdWRlcyhuYW1lKSk7XG4gICAgICBlLmFzc2VydChmb3VuZCwgYCR7ZS5jdHguZnFufS4ke2V4cGVjdGVkfWAsIGV4cGVjdGVkKTtcbiAgICB9XG4gIH0sXG59KTtcbiovXG5cbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdncmFudC1yZXN1bHQnLFxuICBtZXNzYWdlOiBgXCJncmFudFwiIG1ldGhvZCBtdXN0IHJldHVybiAke0dSQU5UX1JFU1VMVF9GUU59YCxcbiAgZXZhbDogZSA9PiB7XG4gICAgY29uc3QgZ3JhbnRSZXN1bHRUeXBlID0gZS5jdHguc3lzLnRyeUZpbmRGcW4oR1JBTlRfUkVTVUxUX0ZRTik7XG5cbiAgICAvLyB0aGlzIGltcGxpZXMgdGhhdCB3ZSBhcmUgYXQgYSBsb3dlciBsYXllciAoaS5lLiBAYXdzLWNkay9jb3JlKVxuICAgIGlmICghZ3JhbnRSZXN1bHRUeXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZ3JhbnRNZXRob2RzID0gZS5jdHguY29uc3RydWN0LmNsYXNzVHlwZS5hbGxNZXRob2RzLmZpbHRlcihtID0+IG0ubmFtZS5zdGFydHNXaXRoKCdncmFudCcpKTtcblxuICAgIGZvciAoY29uc3QgZ3JhbnRNZXRob2Qgb2YgZ3JhbnRNZXRob2RzKSB7XG4gICAgICBlLmFzc2VydFNpZ25hdHVyZShncmFudE1ldGhvZCwge1xuICAgICAgICByZXR1cm5zOiBncmFudFJlc3VsdFR5cGUsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sXG59KTtcblxucmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Byb3BzLXBoeXNpY2FsLW5hbWUnLFxuICBtZXNzYWdlOiAnRXZlcnkgUmVzb3VyY2UgbXVzdCBoYXZlIGEgc2luZ2xlIHBoeXNpY2FsIG5hbWUgY29uc3RydWN0aW9uIHByb3BlcnR5LCAnICtcbiAgICAnd2l0aCBhIG5hbWUgdGhhdCBpcyBhbiBlbmRpbmcgc3Vic3RyaW5nIG9mIDxjZm5SZXNvdXJjZT5OYW1lJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5jb25zdHJ1Y3QucHJvcHNUeXBlKSB7IHJldHVybjsgfVxuICAgIGUuYXNzZXJ0KGUuY3R4LnBoeXNpY2FsTmFtZVByb3AsIGUuY3R4LmNvbnN0cnVjdC5wcm9wc0Zxbik7XG4gIH0sXG59KTtcblxucmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Byb3BzLXBoeXNpY2FsLW5hbWUtdHlwZScsXG4gIG1lc3NhZ2U6ICdUaGUgdHlwZSBvZiB0aGUgcGh5c2ljYWwgbmFtZSBwcm9wIHNob3VsZCBhbHdheXMgYmUgYSBcInN0cmluZ1wiJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5waHlzaWNhbE5hbWVQcm9wKSB7IHJldHVybjsgfVxuICAgIGNvbnN0IHByb3AgPSBlLmN0eC5waHlzaWNhbE5hbWVQcm9wO1xuICAgIGUuYXNzZXJ0VHlwZXNFcXVhbChlLmN0eC5zeXMsIHByb3AudHlwZSwgJ3N0cmluZycsIGAke2UuY3R4LmNvbnN0cnVjdC5wcm9wc0Zxbn0uJHtwcm9wLm5hbWV9YCk7XG4gIH0sXG59KTtcblxuZnVuY3Rpb24gdHJ5UmVzb2x2ZUNmblJlc291cmNlKHJlc291cmNlQ2xhc3M6IHJlZmxlY3QuQ2xhc3NUeXBlKTogQ2ZuUmVzb3VyY2VSZWZsZWN0aW9uIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc3lzID0gcmVzb3VyY2VDbGFzcy5zeXN0ZW07XG5cbiAgLy8gaWYgdGhlcmUgaXMgYSBAcmVzb3VyY2UgZG9jIHRhZywgaXQgdGFrZXMgcHJlY2VkZWNlXG4gIGNvbnN0IHRhZyA9IHJlc291cmNlQ2xhc3MuZG9jcy5jdXN0b21UYWcoJ3Jlc291cmNlJyk7XG4gIGlmICh0YWcpIHtcbiAgICByZXR1cm4gQ2ZuUmVzb3VyY2VSZWZsZWN0aW9uLmZpbmRCeU5hbWUoc3lzLCB0YWcpO1xuICB9XG5cbiAgLy8gcGFyc2UgdGhlIEZRTiBvZiB0aGUgY2xhc3MgbmFtZSBhbmQgc2VlIGlmIHdlIGNhbiBmaW5kIGEgbWF0Y2hpbmcgQ0ZOIHJlc291cmNlXG4gIGNvbnN0IGd1ZXNzID0gZ3Vlc3NSZXNvdXJjZU5hbWUocmVzb3VyY2VDbGFzcy5mcW4pO1xuICBpZiAoZ3Vlc3MpIHtcbiAgICBjb25zdCBjZm4gPSBDZm5SZXNvdXJjZVJlZmxlY3Rpb24uZmluZEJ5TmFtZShzeXMsIGd1ZXNzKTtcbiAgICBpZiAoY2ZuKSB7XG4gICAgICByZXR1cm4gY2ZuO1xuICAgIH1cbiAgfVxuXG4gIC8vIHRyeSB0byByZXNvbHZlIHRocm91Z2ggYW5jZXN0b3JzXG4gIGZvciAoY29uc3QgYmFzZSBvZiByZXNvdXJjZUNsYXNzLmdldEFuY2VzdG9ycygpKSB7XG4gICAgY29uc3QgcmV0ID0gdHJ5UmVzb2x2ZUNmblJlc291cmNlKGJhc2UpO1xuICAgIGlmIChyZXQpIHtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuICB9XG5cbiAgLy8gZmFpbGVkIG1pc3JhYmx5XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGd1ZXNzUmVzb3VyY2VOYW1lKGZxbjogc3RyaW5nKSB7XG4gIGNvbnN0IG1hdGNoID0gL0Bhd3MtY2RrXFwvKFthLXpdKyktKFthLXowLTldKylcXC4oW0EtWl1bYS16QS1aMC05XSspLy5leGVjKGZxbik7XG4gIGlmICghbWF0Y2gpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuXG4gIGNvbnN0IFssIG9yZywgbnMsIHJzXSA9IG1hdGNoO1xuICBpZiAoIW9yZyB8fCAhbnMgfHwgIXJzKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cblxuICByZXR1cm4gYCR7b3JnfTo6JHtuc306OiR7cnN9YDtcbn1cbiJdfQ==
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1Q0FBdUM7QUFFdkMsaURBQXVEO0FBQ3ZELDJDQUFrRDtBQUNsRCw2Q0FBeUM7QUFDekMsaUNBQW1DO0FBQ25DLHNDQUFtQztBQUVuQyxNQUFNLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDO0FBRXJDLFFBQUEsY0FBYyxHQUFHLElBQUksZUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFRN0UsSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLHdDQUF1QixDQUFBO0lBQ3ZCLGdDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBR3hCO0FBRUQsTUFBYSxrQkFBa0I7SUEwQjdCLFlBQTRCLFNBQThCO1FBQTlCLGNBQVMsR0FBVCxTQUFTLENBQXFCO1FBQ3hELElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDN0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUVoQyxNQUFNLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLFNBQVMsQ0FBQyxHQUFHLElBQUk7Z0JBQzlELE9BQU8saUJBQWlCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx1Q0FBdUM7Z0JBQzlFLG9IQUFvSCxDQUFDLENBQUM7U0FDekg7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksc0JBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBekNEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUEwQjtRQUM5QyxJQUFJLHNCQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sRUFBRSxDQUFDLENBQUMsNEJBQTRCO1NBQ3hDO1FBRUQsT0FBTywrQkFBbUI7YUFDdkIsaUJBQWlCLENBQUMsUUFBUSxDQUFDO2FBQzNCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLHNCQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNuRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQStCTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO1lBQzdCLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEQsdUdBQXVHO1FBQ3ZHLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksTUFBTSxDQUFDO1FBQzlGLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQ7O09BRUc7SUFDSyx1QkFBdUI7UUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQWEsQ0FBQztRQUV0QyxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRTtZQUN0RCxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUU7Z0JBQ2YsU0FBUyxDQUFDLGdDQUFnQzthQUMzQztZQUVELE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTlDLHNFQUFzRTtZQUN0RSx1REFBdUQ7WUFDdkQsTUFBTSxHQUFHLEdBQUcsZ0JBQVMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUN4QyxTQUFTO2FBQ1Y7WUFFRCxJQUFJLGlCQUFpQixDQUFDO1lBQ3RCLElBQUksR0FBRyxJQUFJLEdBQUcsS0FBSyxNQUFNLEVBQUU7Z0JBQ3pCLG9FQUFvRTtnQkFDcEUsMkVBQTJFO2dCQUMzRSxtRUFBbUU7Z0JBQ25FLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDcEM7aUJBQU07Z0JBQ0wsd0VBQXdFO2dCQUN4RSxpQ0FBaUM7Z0JBRWpDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3JELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUMxQyw4RUFBOEU7b0JBQzlFLHdCQUF3QjtvQkFDeEIsaUJBQWlCLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDNUI7cUJBQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDdEMsOENBQThDO29CQUM5QyxpQkFBaUIsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztpQkFDaEU7cUJBQU07b0JBQ0wseUVBQXlFO29CQUN6RSwyRUFBMkU7b0JBQzNFLDhGQUE4RjtvQkFDOUYsU0FBUztpQkFDVjthQUNGO1lBRUQsbUVBQW1FO1lBQ25FLE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7WUFFbkcsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDVixJQUFJO2dCQUNKLGlCQUFpQjtnQkFDakIsUUFBUTthQUNULENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGO0FBcEhELGdEQW9IQztBQUVELFNBQVMsbUJBQW1CLENBQUMsSUFBc0I7SUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDLEVBQUU7UUFDM0YsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxFQUFFO1lBQ3hFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN4QztRQUNELE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRixJQUFJLENBQUMsYUFBYSxFQUFFO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLElBQUksQ0FBQyxJQUFJLHFCQUFxQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7S0FDN0Y7SUFDRCxPQUFPLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRCxzQkFBYyxDQUFDLEdBQUcsQ0FBQztJQUNqQixJQUFJLEVBQUUsaUNBQWlDO0lBQ3ZDLE9BQU8sRUFBRSxvRUFBb0U7SUFDN0UsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakYsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILHNCQUFjLENBQUMsR0FBRyxDQUFDO0lBQ2pCLElBQUksRUFBRSxvQkFBb0I7SUFDMUIsT0FBTyxFQUFFLElBQUk7SUFDYixPQUFPLEVBQUUsK0NBQStDO0lBQ3hELElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtRQUNSLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxzQkFBYyxDQUFDLEdBQUcsQ0FBQztJQUNqQixJQUFJLEVBQUUscUNBQXFDO0lBQzNDLE9BQU8sRUFBRSxpRUFBaUU7SUFDMUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7UUFDeEQsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQUUsT0FBTztTQUFFO1FBRW5DLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDO1FBQzlELE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVFLENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1CRTtBQUVGLHNCQUFjLENBQUMsR0FBRyxDQUFDO0lBQ2pCLElBQUksRUFBRSxjQUFjO0lBQ3BCLE9BQU8sRUFBRSw4QkFBOEIsZ0JBQWdCLEVBQUU7SUFDekQsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFL0QsaUVBQWlFO1FBQ2pFLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDcEIsT0FBTztTQUNSO1FBRUQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRWxHLEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFO1lBQ3RDLENBQUMsQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFO2dCQUM3QixPQUFPLEVBQUUsZUFBZTthQUN6QixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxzQkFBYyxDQUFDLEdBQUcsQ0FBQztJQUNqQixJQUFJLEVBQUUscUJBQXFCO0lBQzNCLE9BQU8sRUFBRSx5RUFBeUU7UUFDaEYsOERBQThEO0lBQ2hFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtRQUNSLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFDM0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxzQkFBYyxDQUFDLEdBQUcsQ0FBQztJQUNqQixJQUFJLEVBQUUsMEJBQTBCO0lBQ2hDLE9BQU8sRUFBRSxnRUFBZ0U7SUFDekUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQ1IsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFDeEMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNwQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILFNBQVMscUJBQXFCLENBQUMsYUFBZ0M7SUFDN0QsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztJQUVqQyxzREFBc0Q7SUFDdEQsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckQsSUFBSSxHQUFHLEVBQUU7UUFDUCxPQUFPLG9DQUFxQixDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDbkQ7SUFFRCxpRkFBaUY7SUFDakYsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELElBQUksS0FBSyxFQUFFO1FBQ1QsTUFBTSxHQUFHLEdBQUcsb0NBQXFCLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6RCxJQUFJLEdBQUcsRUFBRTtZQUNQLE9BQU8sR0FBRyxDQUFDO1NBQ1o7S0FDRjtJQUVELG1DQUFtQztJQUNuQyxLQUFLLE1BQU0sSUFBSSxJQUFJLGFBQWEsQ0FBQyxZQUFZLEVBQUUsRUFBRTtRQUMvQyxNQUFNLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLEdBQUcsRUFBRTtZQUNQLE9BQU8sR0FBRyxDQUFDO1NBQ1o7S0FDRjtJQUVELGtCQUFrQjtJQUNsQixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxHQUFXO0lBQ3BDLE1BQU0sS0FBSyxHQUFHLHFEQUFxRCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5RSxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQUUsT0FBTyxTQUFTLENBQUM7S0FBRTtJQUVqQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUM5QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1FBQUUsT0FBTyxTQUFTLENBQUM7S0FBRTtJQUU3QyxPQUFPLEdBQUcsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2FtZWxjYXNlIGZyb20gJ2NhbWVsY2FzZSc7XG5pbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgeyBDZm5SZXNvdXJjZVJlZmxlY3Rpb24gfSBmcm9tICcuL2Nmbi1yZXNvdXJjZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3RSZWZsZWN0aW9uIH0gZnJvbSAnLi9jb25zdHJ1Y3QnO1xuaW1wb3J0IHsgQ29yZVR5cGVzIH0gZnJvbSAnLi9jb3JlLXR5cGVzJztcbmltcG9ydCB7IGdldERvY1RhZyB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBMaW50ZXIgfSBmcm9tICcuLi9saW50ZXInO1xuXG5jb25zdCBHUkFOVF9SRVNVTFRfRlFOID0gJ0Bhd3MtY2RrL2F3cy1pYW0uR3JhbnQnO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2VMaW50ZXIgPSBuZXcgTGludGVyKGEgPT4gUmVzb3VyY2VSZWZsZWN0aW9uLmZpbmRBbGwoYSkpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZSB7XG4gIHNpdGU6IEF0dHJpYnV0ZVNpdGU7XG4gIHByb3BlcnR5OiByZWZsZWN0LlByb3BlcnR5O1xuICBjZm5BdHRyaWJ1dGVOYW1lczogc3RyaW5nW107IC8vIGJ1Y2tldEFyblxufVxuXG5leHBvcnQgZW51bSBBdHRyaWJ1dGVTaXRlIHtcbiAgSW50ZXJmYWNlID0gJ2ludGVyZmFjZScsXG4gIENsYXNzID0gJ2NsYXNzJ1xufVxuXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VSZWZsZWN0aW9uIHtcblxuICAvKipcbiAgICogQHJldHVybnMgYWxsIHJlc291cmNlIGNvbnN0cnVjdHMgKGV2ZXJ5dGhpbmcgdGhhdCBleHRlbmRzIGBjZGsuUmVzb3VyY2VgKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmaW5kQWxsKGFzc2VtYmx5OiByZWZsZWN0LkFzc2VtYmx5KSB7XG4gICAgaWYgKENvcmVUeXBlcy5oYXNDb3JlTW9kdWxlKGFzc2VtYmx5KSkge1xuICAgICAgcmV0dXJuIFtdOyAvLyBub3QgcGFydCBvZiB0aGUgZGVwIHN0YWNrXG4gICAgfVxuXG4gICAgcmV0dXJuIENvbnN0cnVjdFJlZmxlY3Rpb25cbiAgICAgIC5maW5kQWxsQ29uc3RydWN0cyhhc3NlbWJseSlcbiAgICAgIC5maWx0ZXIoYyA9PiBDb3JlVHlwZXMuaXNSZXNvdXJjZUNsYXNzKGMuY2xhc3NUeXBlKSlcbiAgICAgIC5tYXAoYyA9PiBuZXcgUmVzb3VyY2VSZWZsZWN0aW9uKGMpKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVbXTsgLy8gYWN0dWFsIGF0dHJpYnV0ZSBwcm9wc1xuICBwdWJsaWMgcmVhZG9ubHkgZnFuOiBzdHJpbmc7IC8vIGV4cGVjdGVkIGZxbiBvZiByZXNvdXJjZSBjbGFzc1xuXG4gIHB1YmxpYyByZWFkb25seSBhc3NlbWJseTogcmVmbGVjdC5Bc3NlbWJseTtcbiAgcHVibGljIHJlYWRvbmx5IHN5czogcmVmbGVjdC5UeXBlU3lzdGVtO1xuICBwdWJsaWMgcmVhZG9ubHkgY2ZuOiBDZm5SZXNvdXJjZVJlZmxlY3Rpb247XG4gIHB1YmxpYyByZWFkb25seSBiYXNlbmFtZTogc3RyaW5nOyAvLyBpLmUuIEJ1Y2tldFxuICBwdWJsaWMgcmVhZG9ubHkgY29yZTogQ29yZVR5cGVzO1xuICBwdWJsaWMgcmVhZG9ubHkgcGh5c2ljYWxOYW1lUHJvcD86IHJlZmxlY3QuUHJvcGVydHk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNvbnN0cnVjdDogQ29uc3RydWN0UmVmbGVjdGlvbikge1xuICAgIHRoaXMuYXNzZW1ibHkgPSBjb25zdHJ1Y3QuY2xhc3NUeXBlLmFzc2VtYmx5O1xuICAgIHRoaXMuc3lzID0gdGhpcy5hc3NlbWJseS5zeXN0ZW07XG5cbiAgICBjb25zdCBjZm4gPSB0cnlSZXNvbHZlQ2ZuUmVzb3VyY2UoY29uc3RydWN0LmNsYXNzVHlwZSk7XG4gICAgaWYgKCFjZm4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgTDEgY2xhc3MgZm9yIEwyICR7Y29uc3RydWN0LmZxbn0uIGAgK1xuICAgICAgICBgSXMgXCIke2d1ZXNzUmVzb3VyY2VOYW1lKGNvbnN0cnVjdC5mcW4pfVwiIGFuIGFjdHVhbCBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZS4gYCArXG4gICAgICAgICdJZiBub3QsIHVzZSB0aGUgXCJAcmVzb3VyY2VcIiBkb2MgdGFnIHRvIGluZGljYXRlIHRoZSBmdWxsIHJlc291cmNlIG5hbWUgKGUuZy4gXCJAcmVzb3VyY2UgQVdTOjpSb3V0ZTUzOjpIb3N0ZWRab25lXCIpJyk7XG4gICAgfVxuXG4gICAgdGhpcy5jb3JlID0gbmV3IENvcmVUeXBlcyh0aGlzLnN5cyk7XG4gICAgdGhpcy5jZm4gPSBjZm47XG4gICAgdGhpcy5iYXNlbmFtZSA9IGNvbnN0cnVjdC5jbGFzc1R5cGUubmFtZTtcbiAgICB0aGlzLmZxbiA9IGNvbnN0cnVjdC5mcW47XG4gICAgdGhpcy5hdHRyaWJ1dGVzID0gdGhpcy5maW5kQXR0cmlidXRlUHJvcGVydGllcygpO1xuICAgIHRoaXMucGh5c2ljYWxOYW1lUHJvcCA9IHRoaXMuZmluZFBoeXNpY2FsTmFtZVByb3AoKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFBoeXNpY2FsTmFtZVByb3AoKSB7XG4gICAgaWYgKCF0aGlzLmNvbnN0cnVjdC5wcm9wc1R5cGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VOYW1lID0gY2FtZWxjYXNlKHRoaXMuY2ZuLmJhc2VuYW1lKTtcblxuICAgIC8vIGlmIHJlc291cmNlIG5hbWUgZW5kcyB3aXRoIFwiTmFtZVwiIChlLmcuIERvbWFpbk5hbWUsIHRoZW4ganVzdCB1c2UgaXQgYXMtaXMsIG90aGVyd2lzZSBhcHBlbmQgXCJOYW1lXCIpXG4gICAgY29uc3QgcGh5c2ljYWxOYW1lUHJvcCA9IHJlc291cmNlTmFtZS5lbmRzV2l0aCgnTmFtZScpID8gcmVzb3VyY2VOYW1lIDogYCR7cmVzb3VyY2VOYW1lfU5hbWVgO1xuICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdC5wcm9wc1R5cGUuYWxsUHJvcGVydGllcy5maW5kKHggPT4geC5uYW1lID09PSBwaHlzaWNhbE5hbWVQcm9wKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgcHJvcGVydGllcyBhcmUgYWxsIHRoZSBwcm9wZXJ0aWVzIHRoYXQgYmVnaW4gd2l0aCB0aGUgdHlwZSBuYW1lIChlLmcuIGJ1Y2tldFh4eCkuXG4gICAqL1xuICBwcml2YXRlIGZpbmRBdHRyaWJ1dGVQcm9wZXJ0aWVzKCk6IEF0dHJpYnV0ZVtdIHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8QXR0cmlidXRlPigpO1xuXG4gICAgZm9yIChjb25zdCBwIG9mIHRoaXMuY29uc3RydWN0LmNsYXNzVHlwZS5hbGxQcm9wZXJ0aWVzKSB7XG4gICAgICBpZiAocC5wcm90ZWN0ZWQpIHtcbiAgICAgICAgY29udGludWU7IC8vIHNraXAgYW55IHByb3RlY3RlZCBwcm9wZXJ0aWVzXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJhc2VuYW1lID0gY2FtZWxjYXNlKHRoaXMuY2ZuLmJhc2VuYW1lKTtcblxuICAgICAgLy8gYW4gYXR0cmlidXRlIHByb3BlcnR5IGlzIGEgcHJvcGVydHkgd2hpY2ggc3RhcnRzIHdpdGggdGhlIHR5cGUgbmFtZVxuICAgICAgLy8gKGUuZy4gXCJidWNrZXRYeHhcIikgYW5kL29yIGhhcyBhbiBAYXR0cmlidXRlIGRvYyB0YWcuXG4gICAgICBjb25zdCB0YWcgPSBnZXREb2NUYWcocCwgJ2F0dHJpYnV0ZScpO1xuICAgICAgaWYgKCFwLm5hbWUuc3RhcnRzV2l0aChiYXNlbmFtZSkgJiYgIXRhZykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgbGV0IGNmbkF0dHJpYnV0ZU5hbWVzO1xuICAgICAgaWYgKHRhZyAmJiB0YWcgIT09ICd0cnVlJykge1xuICAgICAgICAvLyBpZiB0aGVyZSdzIGFuIGBAYXR0cmlidXRlYCBkb2MgdGFnIHdpdGggYSB2YWx1ZSBvdGhlciB0aGFuIFwidHJ1ZVwiXG4gICAgICAgIC8vIGl0IHNob3VsZCBiZSB1c2VkIGFzIHRoZSBDRk4gYXR0cmlidXRlIG5hbWUgaW5zdGVhZCBvZiB0aGUgcHJvcGVydHkgbmFtZVxuICAgICAgICAvLyBtdWx0aXBsZSBhdHRyaWJ1dGUgbmFtZXMgY2FuIGJlIGxpc3RlZCBhcyBhIGNvbW1hLWRlbGltaXRlZCBsaXN0XG4gICAgICAgIGNmbkF0dHJpYnV0ZU5hbWVzID0gdGFnLnNwbGl0KCcsJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBva2F5LCB3ZSBkb24ndCBoYXZlIGFuIGV4cGxpY2l0IENGTiBhdHRyaWJ1dGUgbmFtZSwgc28gd2UnbGwgZ3Vlc3MgaXRcbiAgICAgICAgLy8gZnJvbSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuXG5cbiAgICAgICAgY29uc3QgbmFtZSA9IGNhbWVsY2FzZShwLm5hbWUsIHsgcGFzY2FsQ2FzZTogdHJ1ZSB9KTtcbiAgICAgICAgaWYgKHRoaXMuY2ZuLmF0dHJpYnV0ZU5hbWVzLmluY2x1ZGVzKG5hbWUpKSB7XG4gICAgICAgICAgLy8gc3BlY2lhbCBjYXNlOiB0aGVyZSBpcyBhIGNsb3VkZm9ybWF0aW9uIHJlc291cmNlIHR5cGUgaW4gdGhlIGF0dHJpYnV0ZSBuYW1lXG4gICAgICAgICAgLy8gZm9yIGV4YW1wbGUgJ1JvbGVJZCcuXG4gICAgICAgICAgY2ZuQXR0cmlidXRlTmFtZXMgPSBbbmFtZV07XG4gICAgICAgIH0gZWxzZSBpZiAocC5uYW1lLnN0YXJ0c1dpdGgoYmFzZW5hbWUpKSB7XG4gICAgICAgICAgLy8gYmVnaW5zIHdpdGggdGhlIHJlc291cmNlIG5hbWUsIGp1c3QgdHJpbSBpdFxuICAgICAgICAgIGNmbkF0dHJpYnV0ZU5hbWVzID0gW25hbWUuc3Vic3RyaW5nKHRoaXMuY2ZuLmJhc2VuYW1lLmxlbmd0aCldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHdlIGNvdWxkbid0IGRldGVybWluZSBDRk4gYXR0cmlidXRlIG5hbWUsIHNvIHdlIGRvbid0IGFjY291bnQgZm9yIHRoaXNcbiAgICAgICAgICAvLyBhcyBhbiBhdHRyaWJ1dGUuIHRoaXMgY291bGQgYmUsIGZvciBleGFtcGxlLCB3aGVuIGEgY29uc3RydWN0IGltcGxlbWVudHNcbiAgICAgICAgICAvLyBhbiBpbnRlcmZhY2UgdGhhdCByZXByZXNlbnRzIGFub3RoZXIgcmVzb3VyY2UgKGUuZy4gYGxhbWJkYS5BbGlhc2AgaW1wbGVtZW50cyBgSUZ1bmN0aW9uYCkuXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gY2hlY2sgaWYgdGhpcyBhdHRyaWJ1dGUgaXMgZGVmaW5lZCBvbiBhbiBpbnRlcmZhY2Ugb3Igb24gYSBjbGFzc1xuICAgICAgY29uc3QgcHJvcGVydHkgPSBmaW5kRGVjbGFyYXRpb25TaXRlKHApO1xuICAgICAgY29uc3Qgc2l0ZSA9IHByb3BlcnR5LnBhcmVudFR5cGUuaXNJbnRlcmZhY2VUeXBlKCkgPyBBdHRyaWJ1dGVTaXRlLkludGVyZmFjZSA6IEF0dHJpYnV0ZVNpdGUuQ2xhc3M7XG5cbiAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgc2l0ZSxcbiAgICAgICAgY2ZuQXR0cmlidXRlTmFtZXMsXG4gICAgICAgIHByb3BlcnR5LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kRGVjbGFyYXRpb25TaXRlKHByb3A6IHJlZmxlY3QuUHJvcGVydHkpOiByZWZsZWN0LlByb3BlcnR5IHtcbiAgaWYgKCFwcm9wLm92ZXJyaWRlcyB8fCAoIXByb3Aub3ZlcnJpZGVzLmlzQ2xhc3NUeXBlKCkgJiYgIXByb3Aub3ZlcnJpZGVzLmlzSW50ZXJmYWNlVHlwZSgpKSkge1xuICAgIGlmICghcHJvcC5wYXJlbnRUeXBlLmlzQ2xhc3NUeXBlKCkgJiYgIXByb3AucGFyZW50VHlwZS5pc0ludGVyZmFjZVR5cGUoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHBhcmVudCB0eXBlJyk7XG4gICAgfVxuICAgIHJldHVybiBwcm9wO1xuICB9XG5cbiAgY29uc3Qgb3ZlcnJpZGVzUHJvcCA9IHByb3Aub3ZlcnJpZGVzLmFsbFByb3BlcnRpZXMuZmluZChwID0+IHAubmFtZSA9PT0gcHJvcC5uYW1lKTtcbiAgaWYgKCFvdmVycmlkZXNQcm9wKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBwcm9wZXJ0eSAke3Byb3AubmFtZX0gaW4gb3ZlcnJpZGUgc2l0ZSAke3Byb3Aub3ZlcnJpZGVzLmZxbn1gKTtcbiAgfVxuICByZXR1cm4gZmluZERlY2xhcmF0aW9uU2l0ZShvdmVycmlkZXNQcm9wKTtcbn1cblxucmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Jlc291cmNlLWNsYXNzLWV4dGVuZHMtcmVzb3VyY2UnLFxuICBtZXNzYWdlOiAncmVzb3VyY2UgY2xhc3NlcyBtdXN0IGV4dGVuZCBcImNkay5SZXNvdXJjZVwiIGRpcmVjdGx5IG9yIGluZGlyZWN0bHknLFxuICBldmFsOiBlID0+IHtcbiAgICBjb25zdCByZXNvdXJjZUJhc2UgPSBlLmN0eC5zeXMuZmluZENsYXNzKGUuY3R4LmNvcmUucmVzb3VyY2VDbGFzcy5mcW4pO1xuICAgIGUuYXNzZXJ0KGUuY3R4LmNvbnN0cnVjdC5jbGFzc1R5cGUuZXh0ZW5kcyhyZXNvdXJjZUJhc2UpLCBlLmN0eC5jb25zdHJ1Y3QuZnFuKTtcbiAgfSxcbn0pO1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncmVzb3VyY2UtaW50ZXJmYWNlJyxcbiAgd2FybmluZzogdHJ1ZSxcbiAgbWVzc2FnZTogJ2V2ZXJ5IHJlc291cmNlIG11c3QgaGF2ZSBhIHJlc291cmNlIGludGVyZmFjZScsXG4gIGV2YWw6IGUgPT4ge1xuICAgIGUuYXNzZXJ0KGUuY3R4LmNvbnN0cnVjdC5pbnRlcmZhY2VUeXBlLCBlLmN0eC5jb25zdHJ1Y3QuZnFuKTtcbiAgfSxcbn0pO1xuXG5yZXNvdXJjZUxpbnRlci5hZGQoe1xuICBjb2RlOiAncmVzb3VyY2UtaW50ZXJmYWNlLWV4dGVuZHMtcmVzb3VyY2UnLFxuICBtZXNzYWdlOiAnY29uc3RydWN0IGludGVyZmFjZXMgb2YgQVdTIHJlc291cmNlcyBtdXN0IGV4dGVuZCBjZGsuSVJlc291cmNlJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgY29uc3QgcmVzb3VyY2VJbnRlcmZhY2UgPSBlLmN0eC5jb25zdHJ1Y3QuaW50ZXJmYWNlVHlwZTtcbiAgICBpZiAoIXJlc291cmNlSW50ZXJmYWNlKSB7IHJldHVybjsgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VJbnRlcmZhY2VGcW4gPSBlLmN0eC5jb3JlLnJlc291cmNlSW50ZXJmYWNlLmZxbjtcbiAgICBjb25zdCBpbnRlcmZhY2VCYXNlID0gZS5jdHguc3lzLmZpbmRJbnRlcmZhY2UocmVzb3VyY2VJbnRlcmZhY2VGcW4pO1xuICAgIGUuYXNzZXJ0KHJlc291cmNlSW50ZXJmYWNlLmV4dGVuZHMoaW50ZXJmYWNlQmFzZSksIHJlc291cmNlSW50ZXJmYWNlLmZxbik7XG4gIH0sXG59KTtcblxuLypcbi8vIFRoaXMgcnVsZSBpcyB0aGUgd29yc3RcbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdyZXNvdXJjZS1hdHRyaWJ1dGUnLFxuICBtZXNzYWdlOlxuICAgICdyZXNvdXJjZXMgbXVzdCByZXByZXNlbnQgYWxsIGNsb3VkZm9ybWF0aW9uIGF0dHJpYnV0ZXMgYXMgYXR0cmlidXRlIHByb3BlcnRpZXMuICcgK1xuICAgICdcIkBhdHRyaWJ1dGUgQVRUUlssQVRUUl1cIiBjYW4gYmUgdXNlZCB0byB0YWcgbm9uLXN0YW5kYXJkIGF0dHJpYnV0ZSBuYW1lcy4gJyArXG4gICAgJ21pc3NpbmcgcHJvcGVydHk6JyxcbiAgZXZhbDogZSA9PiB7XG4gICAgZm9yIChjb25zdCBuYW1lIG9mIGUuY3R4LmNmbi5hdHRyaWJ1dGVOYW1lcykge1xuICAgICAgY29uc3QgZXhwZWN0ZWQgPSBjYW1lbGNhc2UobmFtZSkuc3RhcnRzV2l0aChjYW1lbGNhc2UoZS5jdHguY2ZuLmJhc2VuYW1lKSlcbiAgICAgICAgPyBjYW1lbGNhc2UobmFtZSlcbiAgICAgICAgOiBjYW1lbGNhc2UoZS5jdHguY2ZuLmJhc2VuYW1lICsgbmFtZSk7XG5cbiAgICAgIGNvbnN0IGZvdW5kID0gZS5jdHguYXR0cmlidXRlcy5maW5kKGEgPT4gYS5jZm5BdHRyaWJ1dGVOYW1lcy5pbmNsdWRlcyhuYW1lKSk7XG4gICAgICBlLmFzc2VydChmb3VuZCwgYCR7ZS5jdHguZnFufS4ke2V4cGVjdGVkfWAsIGV4cGVjdGVkKTtcbiAgICB9XG4gIH0sXG59KTtcbiovXG5cbnJlc291cmNlTGludGVyLmFkZCh7XG4gIGNvZGU6ICdncmFudC1yZXN1bHQnLFxuICBtZXNzYWdlOiBgXCJncmFudFwiIG1ldGhvZCBtdXN0IHJldHVybiAke0dSQU5UX1JFU1VMVF9GUU59YCxcbiAgZXZhbDogZSA9PiB7XG4gICAgY29uc3QgZ3JhbnRSZXN1bHRUeXBlID0gZS5jdHguc3lzLnRyeUZpbmRGcW4oR1JBTlRfUkVTVUxUX0ZRTik7XG5cbiAgICAvLyB0aGlzIGltcGxpZXMgdGhhdCB3ZSBhcmUgYXQgYSBsb3dlciBsYXllciAoaS5lLiBAYXdzLWNkay9jb3JlKVxuICAgIGlmICghZ3JhbnRSZXN1bHRUeXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZ3JhbnRNZXRob2RzID0gZS5jdHguY29uc3RydWN0LmNsYXNzVHlwZS5hbGxNZXRob2RzLmZpbHRlcihtID0+IG0ubmFtZS5zdGFydHNXaXRoKCdncmFudCcpKTtcblxuICAgIGZvciAoY29uc3QgZ3JhbnRNZXRob2Qgb2YgZ3JhbnRNZXRob2RzKSB7XG4gICAgICBlLmFzc2VydFNpZ25hdHVyZShncmFudE1ldGhvZCwge1xuICAgICAgICByZXR1cm5zOiBncmFudFJlc3VsdFR5cGUsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sXG59KTtcblxucmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Byb3BzLXBoeXNpY2FsLW5hbWUnLFxuICBtZXNzYWdlOiAnRXZlcnkgUmVzb3VyY2UgbXVzdCBoYXZlIGEgc2luZ2xlIHBoeXNpY2FsIG5hbWUgY29uc3RydWN0aW9uIHByb3BlcnR5LCAnICtcbiAgICAnd2l0aCBhIG5hbWUgdGhhdCBpcyBhbiBlbmRpbmcgc3Vic3RyaW5nIG9mIDxjZm5SZXNvdXJjZT5OYW1lJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5jb25zdHJ1Y3QucHJvcHNUeXBlKSB7IHJldHVybjsgfVxuICAgIGUuYXNzZXJ0KGUuY3R4LnBoeXNpY2FsTmFtZVByb3AsIGUuY3R4LmNvbnN0cnVjdC5wcm9wc0Zxbik7XG4gIH0sXG59KTtcblxucmVzb3VyY2VMaW50ZXIuYWRkKHtcbiAgY29kZTogJ3Byb3BzLXBoeXNpY2FsLW5hbWUtdHlwZScsXG4gIG1lc3NhZ2U6ICdUaGUgdHlwZSBvZiB0aGUgcGh5c2ljYWwgbmFtZSBwcm9wIHNob3VsZCBhbHdheXMgYmUgYSBcInN0cmluZ1wiJyxcbiAgZXZhbDogZSA9PiB7XG4gICAgaWYgKCFlLmN0eC5waHlzaWNhbE5hbWVQcm9wKSB7IHJldHVybjsgfVxuICAgIGNvbnN0IHByb3AgPSBlLmN0eC5waHlzaWNhbE5hbWVQcm9wO1xuICAgIGUuYXNzZXJ0VHlwZXNFcXVhbChlLmN0eC5zeXMsIHByb3AudHlwZSwgJ3N0cmluZycsIGAke2UuY3R4LmNvbnN0cnVjdC5wcm9wc0Zxbn0uJHtwcm9wLm5hbWV9YCk7XG4gIH0sXG59KTtcblxuZnVuY3Rpb24gdHJ5UmVzb2x2ZUNmblJlc291cmNlKHJlc291cmNlQ2xhc3M6IHJlZmxlY3QuQ2xhc3NUeXBlKTogQ2ZuUmVzb3VyY2VSZWZsZWN0aW9uIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc3lzID0gcmVzb3VyY2VDbGFzcy5zeXN0ZW07XG5cbiAgLy8gaWYgdGhlcmUgaXMgYSBAcmVzb3VyY2UgZG9jIHRhZywgaXQgdGFrZXMgcHJlY2VkZWNlXG4gIGNvbnN0IHRhZyA9IHJlc291cmNlQ2xhc3MuZG9jcy5jdXN0b21UYWcoJ3Jlc291cmNlJyk7XG4gIGlmICh0YWcpIHtcbiAgICByZXR1cm4gQ2ZuUmVzb3VyY2VSZWZsZWN0aW9uLmZpbmRCeU5hbWUoc3lzLCB0YWcpO1xuICB9XG5cbiAgLy8gcGFyc2UgdGhlIEZRTiBvZiB0aGUgY2xhc3MgbmFtZSBhbmQgc2VlIGlmIHdlIGNhbiBmaW5kIGEgbWF0Y2hpbmcgQ0ZOIHJlc291cmNlXG4gIGNvbnN0IGd1ZXNzID0gZ3Vlc3NSZXNvdXJjZU5hbWUocmVzb3VyY2VDbGFzcy5mcW4pO1xuICBpZiAoZ3Vlc3MpIHtcbiAgICBjb25zdCBjZm4gPSBDZm5SZXNvdXJjZVJlZmxlY3Rpb24uZmluZEJ5TmFtZShzeXMsIGd1ZXNzKTtcbiAgICBpZiAoY2ZuKSB7XG4gICAgICByZXR1cm4gY2ZuO1xuICAgIH1cbiAgfVxuXG4gIC8vIHRyeSB0byByZXNvbHZlIHRocm91Z2ggYW5jZXN0b3JzXG4gIGZvciAoY29uc3QgYmFzZSBvZiByZXNvdXJjZUNsYXNzLmdldEFuY2VzdG9ycygpKSB7XG4gICAgY29uc3QgcmV0ID0gdHJ5UmVzb2x2ZUNmblJlc291cmNlKGJhc2UpO1xuICAgIGlmIChyZXQpIHtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuICB9XG5cbiAgLy8gZmFpbGVkIG1pc3JhYmx5XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGd1ZXNzUmVzb3VyY2VOYW1lKGZxbjogc3RyaW5nKSB7XG4gIGNvbnN0IG1hdGNoID0gL0Bhd3MtY2RrXFwvKFthLXpdKyktKFthLXowLTldKylcXC4oW0EtWl1bYS16QS1aMC05XSspLy5leGVjKGZxbik7XG4gIGlmICghbWF0Y2gpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuXG4gIGNvbnN0IFssIG9yZywgbnMsIHJzXSA9IG1hdGNoO1xuICBpZiAoIW9yZyB8fCAhbnMgfHwgIXJzKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cblxuICByZXR1cm4gYCR7b3JnfTo6JHtuc306OiR7cnN9YDtcbn1cbiJdfQ==
@@ -1,10 +1,10 @@
1
1
  import * as camelcase from 'camelcase';
2
2
  import * as reflect from 'jsii-reflect';
3
- import { Linter } from '../linter';
4
3
  import { CfnResourceReflection } from './cfn-resource';
5
4
  import { ConstructReflection } from './construct';
6
5
  import { CoreTypes } from './core-types';
7
6
  import { getDocTag } from './util';
7
+ import { Linter } from '../linter';
8
8
 
9
9
  const GRANT_RESULT_FQN = '@aws-cdk/aws-iam.Grant';
10
10
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "awslint",
3
- "version": "2.66.1",
3
+ "version": "2.68.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,25 +18,25 @@
18
18
  "awslint": "bin/awslint"
19
19
  },
20
20
  "dependencies": {
21
- "@jsii/spec": "1.75.0",
21
+ "@jsii/spec": "1.77.0",
22
22
  "camelcase": "^6.3.0",
23
23
  "chalk": "^4",
24
24
  "fs-extra": "^9.1.0",
25
- "jsii-reflect": "1.75.0",
25
+ "jsii-reflect": "1.77.0",
26
26
  "yargs": "^16.2.0"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/fs-extra": "^9.0.13",
30
30
  "@types/jest": "^27.5.2",
31
31
  "@types/yargs": "^15.0.15",
32
- "@aws-cdk/pkglint": "2.66.1",
32
+ "@aws-cdk/pkglint": "2.68.0",
33
33
  "typescript": "~3.9.10",
34
34
  "@typescript-eslint/eslint-plugin": "^4.33.0",
35
35
  "@typescript-eslint/parser": "^4.33.0",
36
36
  "eslint": "^7.32.0",
37
37
  "eslint-import-resolver-node": "^0.3.7",
38
38
  "eslint-import-resolver-typescript": "^2.7.1",
39
- "@aws-cdk/eslint-plugin": "2.66.1",
39
+ "@aws-cdk/eslint-plugin": "2.68.0",
40
40
  "eslint-plugin-import": "^2.27.5",
41
41
  "eslint-plugin-jest": "^24.7.0",
42
42
  "jest": "^27.5.1"