Socket
Socket
Sign inDemoInstall

@aws-cdk/cdk

Package Overview
Dependencies
Maintainers
4
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-cdk/cdk - npm Package Compare versions

Comparing version 0.19.0 to 0.20.0

19

lib/app.js

@@ -117,2 +117,10 @@ "use strict";

}
// include only libraries that are in the @aws-cdk npm scope
for (const name of Object.keys(libraries)) {
if (!name.startsWith('@aws-cdk/')) {
delete libraries[name];
}
}
// add jsii runtime version
libraries['jsii-runtime'] = getJsiiAgentVersion();
return { libraries };

@@ -186,2 +194,11 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBQTBDO0FBQzFDLHlCQUEwQjtBQUMxQiw2QkFBOEI7QUFDOUIsa0RBQStDO0FBQy9DLGdEQUE0RTtBQUM1RSwwQ0FBd0M7QUFFeEM7O0dBRUc7QUFDSCxNQUFhLEdBQUksU0FBUSxnQkFBSTtJQUMzQjs7O09BR0c7SUFDSDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFZLE1BQU07UUFDaEIsTUFBTSxHQUFHLEdBQThCLEVBQUcsQ0FBQztRQUMzQyxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakMsSUFBSSxDQUFDLGFBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxLQUFLLENBQUMsUUFBUSxFQUFFLHlCQUF5QixDQUFDLENBQUM7YUFDekU7WUFFRCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQWMsQ0FBQztTQUNoQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksR0FBRztRQUNSLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsS0FBSyxDQUFDLFVBQVUsb0JBQW9CLENBQUMsQ0FBQztZQUMvRixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxtRkFBbUYsQ0FBQyxDQUFDO1lBQzFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEIsT0FBTztTQUNSO1FBRUQsTUFBTSxNQUFN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cG9ydCBjeGFwaSA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2N4LWFwaScpO1xuaW1wb3J0IGZzID0gcmVxdWlyZSgnZnMnKTtcbmltcG9ydCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tICcuL2Nsb3VkZm9ybWF0aW9uL3N0YWNrJztcbmltcG9ydCB7IENvbnN0cnVjdCwgTWV0YWRhdGFFbnRyeSwgUEFUSF9TRVAsIFJvb3QgfSBmcm9tICcuL2NvcmUvY29uc3RydWN0JztcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICcuL2NvcmUvdG9rZW5zJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgQ0RLIHByb2dyYW0uXG4gKi9cbmV4cG9ydCBjbGFzcyBBcHAgZXh0ZW5kcyBSb290IHtcbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIGEgQ0RLIGFwcGxpY2F0aW9uLlxuICAgKiBAcGFyYW0gcmVxdWVzdCBPcHRpb25hbCB0b29sa2l0IHJlcXVlc3QgKGUuZy4gZm9yIHRlc3RzKVxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxvYWRDb250ZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIGdldCBzdGFja3MoKSB7XG4gICAgY29uc3Qgb3V0OiB7IFtuYW1lOiBzdHJpbmddOiBTdGFjayB9ID0geyB9O1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgaWYgKCFTdGFjay5pc1N0YWNrKGNoaWxkKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBjaGlsZCAke2NoaWxkLnRvU3RyaW5nKCl9IG9mIEFwcCBtdXN0IGJlIGEgU3RhY2tgKTtcbiAgICAgIH1cblxuICAgICAgb3V0W2NoaWxkLmlkXSA9IGNoaWxkIGFzIFN0YWNrO1xuICAgIH1cbiAgICByZXR1cm4gb3V0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgdGhlIHByb2dyYW0uIE91dHB1dCBpcyB3cml0dGVuIHRvIG91dHB1dCBkaXJlY3RvcnkgYXMgc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgcHVibGljIHJ1bigpOiB2b2lkIHtcbiAgICBjb25zdCBvdXRkaXIgPSBwcm9jZXNzLmVudltjeGFwaS5PVVRESVJfRU5WXTtcbiAgICBpZiAoIW91dGRpcikge1xuICAgICAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoYEVSUk9SOiBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGUgXCIke2N4YXBpLk9VVERJUl9FTlZ9XCIgaXMgbm90IGRlZmluZWRcXG5gKTtcbiAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKCdBV1MgQ0RLIFRvb2xraXQgKD49IDAuMTEuMCkgaXMgcmVxdWlyZWQgaW4gb3JkZXIgdG8gaW50ZXJhY3Qgd2l0aCB0aGlzIHByb2dyYW0uXFxuJyk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0OiBjeGFwaS5TeW50aGVzaXplUmVzcG9uc2UgPSB7XG4gICAgICB2ZXJzaW9uOiBjeGFwaS5QUk9UT19SRVNQT05TRV9WRVJTSU9OLFxuICAgICAgc3RhY2tzOiB0aGlzLnN5bnRoZXNpemVTdGFja3MoT2JqZWN0LmtleXModGhpcy5zdGFja3MpKSxcbiAgICAgIHJ1bnRpbWU6IHRoaXMuY29sbGVjdFJ1bnRpbWVJbmZvcm1hdGlvbigpXG4gICAgfTtcblxuICAgIGNvbnN0IG91dGZpbGUgPSBwYXRoLmpvaW4ob3V0ZGlyLCBjeGFwaS5PVVRGSUxFX05BTUUpO1xuICAgIGZzLndyaXRlRmlsZVN5bmMob3V0ZmlsZSwgSlNPTi5zdHJpbmdpZnkocmVzdWx0LCB1bmRlZmluZWQsIDIpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTeW50aGVzaXplIGFuZCB2YWxpZGF0ZSBhIHNpbmdsZSBzdGFja1xuICAgKiBAcGFyYW0gc3RhY2tOYW1lIFRoZSBuYW1lIG9mIHRoZSBzdGFjayB0byBzeW50aGVzaXplXG4gICAqL1xuICBwdWJsaWMgc3ludGhlc2l6ZVN0YWNrKHN0YWNrTmFtZTogc3RyaW5nKTogY3hhcGkuU3ludGhlc2l6ZWRTdGFjayB7XG4gICAgY29uc3Qgc3RhY2sgPSB0aGlzLmdldFN0YWNrKHN0YWNrTmFtZSk7XG5cbiAgICAvLyBmaXJzdCwgdmFsaWRhdGUgdGhpcyBzdGFjayBhbmQgc3RvcCBpZiB0aGVyZSBhcmUgZXJyb3JzLlxuICAgIGNvbnN0IGVycm9ycyA9IHN0YWNrLnZhbGlkYXRlVHJlZSgpO1xuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZXJyb3JMaXN0ID0gZXJyb3JzLm1hcChlID0+IGBbJHtlLnNvdXJjZS5wYXRofV0gJHtlLm1lc3NhZ2V9YCkuam9pbignXFxuICAnKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU3RhY2sgdmFsaWRhdGlvbiBmYWlsZWQgd2l0aCB0aGUgZm9sbG93aW5nIGVycm9yczpcXG4gICR7ZXJyb3JMaXN0fWApO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY291bnQgPSBzdGFjay5lbnYuYWNjb3VudCB8fCAndW5rbm93bi1hY2NvdW50JztcbiAgICBjb25zdCByZWdpb24gPSBzdGFjay5lbnYucmVnaW9uIHx8ICd1bmtub3duLXJlZ2lvbic7XG5cbiAgICBjb25zdCBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQgPSB7XG4gICAgICBuYW1lOiBgJHthY2NvdW50fS8ke3JlZ2lvbn1gLFxuICAgICAgYWNjb3VudCxcbiAgICAgIHJlZ2lvblxuICAgIH07XG5cbiAgICBjb25zdCBtaXNzaW5nID0gT2JqZWN0LmtleXMoc3RhY2subWlzc2luZ0NvbnRleHQpLmxlbmd0aCA/IHN0YWNrLm1pc3NpbmdDb250ZXh0IDogdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBzdGFjay5pZCxcbiAgICAgIGVudmlyb25tZW50LFxuICAgICAgbWlzc2luZyxcbiAgICAgIHRlbXBsYXRlOiBzdGFjay50b0Nsb3VkRm9ybWF0aW9uKCksXG4gICAgICBtZXRhZGF0YTogdGhpcy5jb2xsZWN0TWV0YWRhdGEoc3RhY2spXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTeW50aGVzaXplcyBtdWx0aXBsZSBzdGFja3NcbiAgICovXG4gIHB1YmxpYyBzeW50aGVzaXplU3RhY2tzKHN0YWNrTmFtZXM6IHN0cmluZ1tdKTogY3hhcGkuU3ludGhlc2l6ZWRTdGFja1tdIHtcbiAgICBjb25zdCByZXQ6IGN4YXBpLlN5bnRoZXNpemVkU3RhY2tbXSA9IFtdO1xuICAgIGZvciAoY29uc3Qgc3RhY2tOYW1lIG9mIHN0YWNrTmFtZXMpIHtcbiAgICAgIHJldC5wdXNoKHRoaXMuc3ludGhlc2l6ZVN0YWNrKHN0YWNrTmFtZSkpO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgbWV0YWRhdGEgZm9yIGFsbCBjb25zdHJ1Y3RzIGluIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBjb2xsZWN0TWV0YWRhdGEoc3RhY2s6IFN0YWNrKSB7XG4gICAgY29uc3Qgb3V0cHV0OiB7IFtpZDogc3RyaW5nXTogTWV0YWRhdGFFbnRyeVtdIH0gPSB7IH07XG5cbiAgICB2aXNpdChzdGFjayk7XG5cbiAgICAvLyBhZGQgYXBwLWxldmVsIG1ldGFkYXRhIHVuZGVyIFwiLlwiXG4gICAgaWYgKHRoaXMubWV0YWRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgb3V0cHV0W1BBVEhfU0VQXSA9IHRoaXMubWV0YWRhdGE7XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dHB1dDtcblxuICAgIGZ1bmN0aW9uIHZpc2l0KG5vZGU6IENvbnN0cnVjdCkge1xuICAgICAgaWYgKG5vZGUubWV0YWRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICAvLyBNYWtlIHRoZSBwYXRoIGFic29sdXRlXG4gICAgICAgIG91dHB1dFtQQVRIX1NFUCArIG5vZGUucGF0aF0gPSBub2RlLm1ldGFkYXRhLm1hcChtZCA9PiByZXNvbHZlKG1kKSBhcyBNZXRhZGF0YUVudHJ5KTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgIHZpc2l0KGNoaWxkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbGxlY3RSdW50aW1lSW5mb3JtYXRpb24oKTogY3hhcGkuQXBwUnVudGltZSB7XG4gICAgY29uc3QgbGlicmFyaWVzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBmaWxlTmFtZSBvZiBPYmplY3Qua2V5cyhyZXF1aXJlLmNhY2hlKSkge1xuICAgICAgY29uc3QgcGtnID0gZmluZE5wbVBhY2thZ2UoZmlsZU5hbWUpO1xuICAgICAgaWYgKHBrZyAmJiAhcGtnLnByaXZhdGUpIHtcbiAgICAgICAgbGlicmFyaWVzW3BrZy5uYW1lXSA9IHBrZy52ZXJzaW9uO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IGxpYnJhcmllcyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTdGFjayhzdGFja25hbWU6IHN0cmluZykge1xuICAgIGlmIChzdGFja25hbWUgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdGFjayBuYW1lIG11c3QgYmUgZGVmaW5lZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YWNrID0gdGhpcy5zdGFja3Nbc3RhY2tuYW1lXTtcbiAgICBpZiAoIXN0YWNrKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIHN0YWNrICR7c3RhY2tuYW1lfWApO1xuICAgIH1cbiAgICByZXR1cm4gc3RhY2s7XG4gIH1cblxuICBwcml2YXRlIGxvYWRDb250ZXh0KCkge1xuICAgIGNvbnN0IGNvbnRleHRKc29uID0gcHJvY2Vzcy5lbnZbY3hhcGkuQ09OVEVYVF9FTlZdO1xuICAgIGNvbnN0IGNvbnRleHQgPSAhY29udGV4dEpzb24gPyB7IH0gOiBKU09OLnBhcnNlKGNvbnRleHRKc29uKTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhjb250ZXh0KSkge1xuICAgICAgdGhpcy5zZXRDb250ZXh0KGtleSwgY29udGV4dFtrZXldKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoaWNoIE5QTSBtb2R1bGUgYSBnaXZlbiBsb2FkZWQgamF2YXNjcmlwdCBmaWxlIGlzIGZyb20uXG4gKlxuICogVGhlIG9ubHkgaW5mcm9tYXRpb24gdGhhdCBpcyBhdmFpbGFibGUgbG9jYWxseSBpcyBhIGxpc3Qgb2YgSmF2YXNjcmlwdCBmaWxlcyxcbiAqIGFuZCBldmVyeSBzb3VyY2UgZmlsZSBpcyBhc3NvY2lhdGVkIHdpdGggYSBzZWFyY2ggcGF0aCB0byByZXNvbHZlIHRoZSBmdXJ0aGVyXG4gKiBgYHJlcXVpcmVgYCBjYWxscyBtYWRlIGZyb20gdGhlcmUsIHdoaWNoIGluY2x1ZGVzIGl0cyBvd24gZGlyZWN0b3J5IG9uIGRpc2ssXG4gKiBhbmQgcGFyZW50IGRpcmVjdG9yaWVzIC0gZm9yIGV4YW1wbGU6XG4gKlxuICogWyAnLi4ucmVwby9wYWNrYWdlcy9hd3MtY2RrLXJlc291cmNlcy9saWIvY2ZuL25vZGVfbW9kdWxlcycsXG4gKiAgICcuLi5yZXBvL3BhY2thZ2VzL2F3cy1jZGstcmVzb3VyY2VzL2xpYi9ub2RlX21vZHVsZXMnLFxuICogICAnLi4ucmVwby9wYWNrYWdlcy9hd3MtY2RrLXJlc291cmNlcy9ub2RlX21vZHVsZXMnLFxuICogICAnLi4ucmVwby9wYWNrYWdlcy9ub2RlX21vZHVsZXMnLFxuICogICAvLyBldGMuLi5cbiAqIF1cbiAqXG4gKiBXZSBhcmUgbG9va2luZyBmb3IgYGBwYWNrYWdlLmpzb25gYCB0aGF0IGlzIGFueXdoZXJlIGluIHRoZSB0cmVlLCBleGNlcHQgaXQnc1xuICogaW4gdGhlIHBhcmVudCBkaXJlY3RvcnksIG5vdCBpbiB0aGUgYGBub2RlX21vZHVsZXNgYCBkaXJlY3RvcnkuIEZvciB0aGlzXG4gKiByZWFzb24sIHdlIHN0cmlwIHRoZSBgYC9ub2RlX21vZHVsZXNgYCBzdWZmaXggb2ZmIGVhY2ggcGF0aCBhbmQgdXNlIHJlZ3VsYXJcbiAqIG1vZHVsZSByZXNvbHV0aW9uIHRvIG9idGFpbiBhIHJlZmVyZW5jZSB0byBgYHBhY2thZ2UuanNvbmBgLlxuICpcbiAqIEBwYXJhbSBmaWxlTmFtZSBhIGphdmFzY3JpcHQgZmlsZSBuYW1lLlxuICogQHJldHVybnMgdGhlIE5QTSBtb2R1bGUgaW5mb3MgKGFrYSBgYHBhY2thZ2UuanNvbmBgIGNvbnRlbnRzKSwgb3JcbiAqICAgICAgYGB1bmRlZmluZWRgYCBpZiB0aGUgbG9va3VwIHdhcyB1bnN1Y2Nlc3NmdWwuXG4gKi9cbmZ1bmN0aW9uIGZpbmROcG1QYWNrYWdlKGZpbGVOYW1lOiBzdHJpbmcpOiB7IG5hbWU6IHN0cmluZywgdmVyc2lvbjogc3RyaW5nLCBwcml2YXRlPzogYm9vbGVhbiB9IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbW9kID0gcmVxdWlyZS5jYWNoZVtmaWxlTmFtZV07XG4gIGNvbnN0IHBhdGhzID0gbW9kLnBhdGhzLm1hcChzdHJpcE5vZGVNb2R1bGVzKTtcblxuICB0cnkge1xuICAgIGNvbnN0IHBhY2thZ2VQYXRoID0gcmVxdWlyZS5yZXNvbHZlKCdwYWNrYWdlLmpzb24nLCB7IHBhdGhzIH0pO1xuICAgIHJldHVybiByZXF1aXJlKHBhY2thZ2VQYXRoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHMgYSBwYXRoLlxuICAgKiBAcmV0dXJucyBgYHNgYCB3aXRoIGFueSB0ZXJtaW5hdGluZyBgYC9ub2RlX21vZHVsZXNgYFxuICAgKiAgICAgIChvciBgYFxcXFxub2RlX21vZHVsZXNgYCkgc3RyaXBwZWQgb2ZmLilcbiAgICovXG4gIGZ1bmN0aW9uIHN0cmlwTm9kZU1vZHVsZXMoczogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAocy5lbmRzV2l0aCgnL25vZGVfbW9kdWxlcycpIHx8IHMuZW5kc1dpdGgoJ1xcXFxub2RlX21vZHVsZXMnKSkge1xuICAgICAgLy8gL25vZGVfbW9kdWxlcyBpcyAxMyBjaGFyYWN0ZXJzXG4gICAgICByZXR1cm4gcy5zdWJzdHIoMCwgcy5sZW5ndGggLSAxMyk7XG4gICAgfVxuICAgIHJldHVybiBzO1xuICB9XG59XG4iXX0=
function getJsiiAgentVersion() {
let jsiiAgent = process.env.JSII_AGENT;
// if JSII_AGENT is not specified, we will assume this is a node.js runtime
// and plug in our node.js version
if (!jsiiAgent) {
jsiiAgent = `node.js/${process.version}`;
}
return jsiiAgent;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBQTBDO0FBQzFDLHlCQUEwQjtBQUMxQiw2QkFBOEI7QUFDOUIsa0RBQStDO0FBQy9DLGdEQUE0RTtBQUM1RSwwQ0FBd0M7QUFFeEM7O0dBRUc7QUFDSCxNQUFhLEdBQUksU0FBUSxnQkFBSTtJQUMzQjs7O09BR0c7SUFDSDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFZLE1BQU07UUFDaEIsTUFBTSxHQUFHLEdBQThCLEVBQUcsQ0FBQztRQUMzQyxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakMsSUFBSSxDQUFDLGFBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxLQUFLLENBQUMsUUFBUSxFQUFFLHlCQUF5QixDQUFDLENBQUM7YUFDekU7WUFFRCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQWMsQ0FBQztTQUNoQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksR0FBRztRQUNSLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsS0FBSyxDQUFDLFVBQVUsb0JBQW9CLENBQUMsQ0FBQztZQUMvRixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxtRkFBbUYsQ0FBQyxDQUFDO1lBQzFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEIsT0FBTztTQUNSO1FBRUQsTUFBTSxNQUFN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QUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQy9ELGlDQUFpQztZQUNqQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDbkM7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxtQkFBbUI7SUFDMUIsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFFdkMsMkVBQTJFO0lBQzNFLGtDQUFrQztJQUNsQyxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ2QsU0FBUyxHQUFHLFdBQVcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0tBQzFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjeGFwaSA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2N4LWFwaScpO1xuaW1wb3J0IGZzID0gcmVxdWlyZSgnZnMnKTtcbmltcG9ydCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tICcuL2Nsb3VkZm9ybWF0aW9uL3N0YWNrJztcbmltcG9ydCB7IENvbnN0cnVjdCwgTWV0YWRhdGFFbnRyeSwgUEFUSF9TRVAsIFJvb3QgfSBmcm9tICcuL2NvcmUvY29uc3RydWN0JztcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICcuL2NvcmUvdG9rZW5zJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgQ0RLIHByb2dyYW0uXG4gKi9cbmV4cG9ydCBjbGFzcyBBcHAgZXh0ZW5kcyBSb290IHtcbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIGEgQ0RLIGFwcGxpY2F0aW9uLlxuICAgKiBAcGFyYW0gcmVxdWVzdCBPcHRpb25hbCB0b29sa2l0IHJlcXVlc3QgKGUuZy4gZm9yIHRlc3RzKVxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxvYWRDb250ZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIGdldCBzdGFja3MoKSB7XG4gICAgY29uc3Qgb3V0OiB7IFtuYW1lOiBzdHJpbmddOiBTdGFjayB9ID0geyB9O1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgaWYgKCFTdGFjay5pc1N0YWNrKGNoaWxkKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBjaGlsZCAke2NoaWxkLnRvU3RyaW5nKCl9IG9mIEFwcCBtdXN0IGJlIGEgU3RhY2tgKTtcbiAgICAgIH1cblxuICAgICAgb3V0W2NoaWxkLmlkXSA9IGNoaWxkIGFzIFN0YWNrO1xuICAgIH1cbiAgICByZXR1cm4gb3V0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgdGhlIHByb2dyYW0uIE91dHB1dCBpcyB3cml0dGVuIHRvIG91dHB1dCBkaXJlY3RvcnkgYXMgc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgcHVibGljIHJ1bigpOiB2b2lkIHtcbiAgICBjb25zdCBvdXRkaXIgPSBwcm9jZXNzLmVudltjeGFwaS5PVVRESVJfRU5WXTtcbiAgICBpZiAoIW91dGRpcikge1xuICAgICAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoYEVSUk9SOiBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGUgXCIke2N4YXBpLk9VVERJUl9FTlZ9XCIgaXMgbm90IGRlZmluZWRcXG5gKTtcbiAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKCdBV1MgQ0RLIFRvb2xraXQgKD49IDAuMTEuMCkgaXMgcmVxdWlyZWQgaW4gb3JkZXIgdG8gaW50ZXJhY3Qgd2l0aCB0aGlzIHByb2dyYW0uXFxuJyk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0OiBjeGFwaS5TeW50aGVzaXplUmVzcG9uc2UgPSB7XG4gICAgICB2ZXJzaW9uOiBjeGFwaS5QUk9UT19SRVNQT05TRV9WRVJTSU9OLFxuICAgICAgc3RhY2tzOiB0aGlzLnN5bnRoZXNpemVTdGFja3MoT2JqZWN0LmtleXModGhpcy5zdGFja3MpKSxcbiAgICAgIHJ1bnRpbWU6IHRoaXMuY29sbGVjdFJ1bnRpbWVJbmZvcm1hdGlvbigpXG4gICAgfTtcblxuICAgIGNvbnN0IG91dGZpbGUgPSBwYXRoLmpvaW4ob3V0ZGlyLCBjeGFwaS5PVVRGSUxFX05BTUUpO1xuICAgIGZzLndyaXRlRmlsZVN5bmMob3V0ZmlsZSwgSlNPTi5zdHJpbmdpZnkocmVzdWx0LCB1bmRlZmluZWQsIDIpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTeW50aGVzaXplIGFuZCB2YWxpZGF0ZSBhIHNpbmdsZSBzdGFja1xuICAgKiBAcGFyYW0gc3RhY2tOYW1lIFRoZSBuYW1lIG9mIHRoZSBzdGFjayB0byBzeW50aGVzaXplXG4gICAqL1xuICBwdWJsaWMgc3ludGhlc2l6ZVN0YWNrKHN0YWNrTmFtZTogc3RyaW5nKTogY3hhcGkuU3ludGhlc2l6ZWRTdGFjayB7XG4gICAgY29uc3Qgc3RhY2sgPSB0aGlzLmdldFN0YWNrKHN0YWNrTmFtZSk7XG5cbiAgICAvLyBmaXJzdCwgdmFsaWRhdGUgdGhpcyBzdGFjayBhbmQgc3RvcCBpZiB0aGVyZSBhcmUgZXJyb3JzLlxuICAgIGNvbnN0IGVycm9ycyA9IHN0YWNrLnZhbGlkYXRlVHJlZSgpO1xuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZXJyb3JMaXN0ID0gZXJyb3JzLm1hcChlID0+IGBbJHtlLnNvdXJjZS5wYXRofV0gJHtlLm1lc3NhZ2V9YCkuam9pbignXFxuICAnKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU3RhY2sgdmFsaWRhdGlvbiBmYWlsZWQgd2l0aCB0aGUgZm9sbG93aW5nIGVycm9yczpcXG4gICR7ZXJyb3JMaXN0fWApO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY291bnQgPSBzdGFjay5lbnYuYWNjb3VudCB8fCAndW5rbm93bi1hY2NvdW50JztcbiAgICBjb25zdCByZWdpb24gPSBzdGFjay5lbnYucmVnaW9uIHx8ICd1bmtub3duLXJlZ2lvbic7XG5cbiAgICBjb25zdCBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQgPSB7XG4gICAgICBuYW1lOiBgJHthY2NvdW50fS8ke3JlZ2lvbn1gLFxuICAgICAgYWNjb3VudCxcbiAgICAgIHJlZ2lvblxuICAgIH07XG5cbiAgICBjb25zdCBtaXNzaW5nID0gT2JqZWN0LmtleXMoc3RhY2subWlzc2luZ0NvbnRleHQpLmxlbmd0aCA/IHN0YWNrLm1pc3NpbmdDb250ZXh0IDogdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBzdGFjay5pZCxcbiAgICAgIGVudmlyb25tZW50LFxuICAgICAgbWlzc2luZyxcbiAgICAgIHRlbXBsYXRlOiBzdGFjay50b0Nsb3VkRm9ybWF0aW9uKCksXG4gICAgICBtZXRhZGF0YTogdGhpcy5jb2xsZWN0TWV0YWRhdGEoc3RhY2spXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTeW50aGVzaXplcyBtdWx0aXBsZSBzdGFja3NcbiAgICovXG4gIHB1YmxpYyBzeW50aGVzaXplU3RhY2tzKHN0YWNrTmFtZXM6IHN0cmluZ1tdKTogY3hhcGkuU3ludGhlc2l6ZWRTdGFja1tdIHtcbiAgICBjb25zdCByZXQ6IGN4YXBpLlN5bnRoZXNpemVkU3RhY2tbXSA9IFtdO1xuICAgIGZvciAoY29uc3Qgc3RhY2tOYW1lIG9mIHN0YWNrTmFtZXMpIHtcbiAgICAgIHJldC5wdXNoKHRoaXMuc3ludGhlc2l6ZVN0YWNrKHN0YWNrTmFtZSkpO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgbWV0YWRhdGEgZm9yIGFsbCBjb25zdHJ1Y3RzIGluIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBjb2xsZWN0TWV0YWRhdGEoc3RhY2s6IFN0YWNrKSB7XG4gICAgY29uc3Qgb3V0cHV0OiB7IFtpZDogc3RyaW5nXTogTWV0YWRhdGFFbnRyeVtdIH0gPSB7IH07XG5cbiAgICB2aXNpdChzdGFjayk7XG5cbiAgICAvLyBhZGQgYXBwLWxldmVsIG1ldGFkYXRhIHVuZGVyIFwiLlwiXG4gICAgaWYgKHRoaXMubWV0YWRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgb3V0cHV0W1BBVEhfU0VQXSA9IHRoaXMubWV0YWRhdGE7XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dHB1dDtcblxuICAgIGZ1bmN0aW9uIHZpc2l0KG5vZGU6IENvbnN0cnVjdCkge1xuICAgICAgaWYgKG5vZGUubWV0YWRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICAvLyBNYWtlIHRoZSBwYXRoIGFic29sdXRlXG4gICAgICAgIG91dHB1dFtQQVRIX1NFUCArIG5vZGUucGF0aF0gPSBub2RlLm1ldGFkYXRhLm1hcChtZCA9PiByZXNvbHZlKG1kKSBhcyBNZXRhZGF0YUVudHJ5KTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgIHZpc2l0KGNoaWxkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbGxlY3RSdW50aW1lSW5mb3JtYXRpb24oKTogY3hhcGkuQXBwUnVudGltZSB7XG4gICAgY29uc3QgbGlicmFyaWVzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBmaWxlTmFtZSBvZiBPYmplY3Qua2V5cyhyZXF1aXJlLmNhY2hlKSkge1xuICAgICAgY29uc3QgcGtnID0gZmluZE5wbVBhY2thZ2UoZmlsZU5hbWUpO1xuICAgICAgaWYgKHBrZyAmJiAhcGtnLnByaXZhdGUpIHtcbiAgICAgICAgbGlicmFyaWVzW3BrZy5uYW1lXSA9IHBrZy52ZXJzaW9uO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGluY2x1ZGUgb25seSBsaWJyYXJpZXMgdGhhdCBhcmUgaW4gdGhlIEBhd3MtY2RrIG5wbSBzY29wZVxuICAgIGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyhsaWJyYXJpZXMpKSB7XG4gICAgICBpZiAoIW5hbWUuc3RhcnRzV2l0aCgnQGF3cy1jZGsvJykpIHtcbiAgICAgICAgZGVsZXRlIGxpYnJhcmllc1tuYW1lXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBhZGQganNpaSBydW50aW1lIHZlcnNpb25cbiAgICBsaWJyYXJpZXNbJ2pzaWktcnVudGltZSddID0gZ2V0SnNpaUFnZW50VmVyc2lvbigpO1xuXG4gICAgcmV0dXJuIHsgbGlicmFyaWVzIH07XG4gIH1cblxuICBwcml2YXRlIGdldFN0YWNrKHN0YWNrbmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHN0YWNrbmFtZSA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1N0YWNrIG5hbWUgbXVzdCBiZSBkZWZpbmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhY2sgPSB0aGlzLnN0YWNrc1tzdGFja25hbWVdO1xuICAgIGlmICghc3RhY2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgc3RhY2sgJHtzdGFja25hbWV9YCk7XG4gICAgfVxuICAgIHJldHVybiBzdGFjaztcbiAgfVxuXG4gIHByaXZhdGUgbG9hZENvbnRleHQoKSB7XG4gICAgY29uc3QgY29udGV4dEpzb24gPSBwcm9jZXNzLmVudltjeGFwaS5DT05URVhUX0VOVl07XG4gICAgY29uc3QgY29udGV4dCA9ICFjb250ZXh0SnNvbiA/IHsgfSA6IEpTT04ucGFyc2UoY29udGV4dEpzb24pO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGNvbnRleHQpKSB7XG4gICAgICB0aGlzLnNldENvbnRleHQoa2V5LCBjb250ZXh0W2tleV0pO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hpY2ggTlBNIG1vZHVsZSBhIGdpdmVuIGxvYWRlZCBqYXZhc2NyaXB0IGZpbGUgaXMgZnJvbS5cbiAqXG4gKiBUaGUgb25seSBpbmZyb21hdGlvbiB0aGF0IGlzIGF2YWlsYWJsZSBsb2NhbGx5IGlzIGEgbGlzdCBvZiBKYXZhc2NyaXB0IGZpbGVzLFxuICogYW5kIGV2ZXJ5IHNvdXJjZSBmaWxlIGlzIGFzc29jaWF0ZWQgd2l0aCBhIHNlYXJjaCBwYXRoIHRvIHJlc29sdmUgdGhlIGZ1cnRoZXJcbiAqIGBgcmVxdWlyZWBgIGNhbGxzIG1hZGUgZnJvbSB0aGVyZSwgd2hpY2ggaW5jbHVkZXMgaXRzIG93biBkaXJlY3Rvcnkgb24gZGlzayxcbiAqIGFuZCBwYXJlbnQgZGlyZWN0b3JpZXMgLSBmb3IgZXhhbXBsZTpcbiAqXG4gKiBbICcuLi5yZXBvL3BhY2thZ2VzL2F3cy1jZGstcmVzb3VyY2VzL2xpYi9jZm4vbm9kZV9tb2R1bGVzJyxcbiAqICAgJy4uLnJlcG8vcGFja2FnZXMvYXdzLWNkay1yZXNvdXJjZXMvbGliL25vZGVfbW9kdWxlcycsXG4gKiAgICcuLi5yZXBvL3BhY2thZ2VzL2F3cy1jZGstcmVzb3VyY2VzL25vZGVfbW9kdWxlcycsXG4gKiAgICcuLi5yZXBvL3BhY2thZ2VzL25vZGVfbW9kdWxlcycsXG4gKiAgIC8vIGV0Yy4uLlxuICogXVxuICpcbiAqIFdlIGFyZSBsb29raW5nIGZvciBgYHBhY2thZ2UuanNvbmBgIHRoYXQgaXMgYW55d2hlcmUgaW4gdGhlIHRyZWUsIGV4Y2VwdCBpdCdzXG4gKiBpbiB0aGUgcGFyZW50IGRpcmVjdG9yeSwgbm90IGluIHRoZSBgYG5vZGVfbW9kdWxlc2BgIGRpcmVjdG9yeS4gRm9yIHRoaXNcbiAqIHJlYXNvbiwgd2Ugc3RyaXAgdGhlIGBgL25vZGVfbW9kdWxlc2BgIHN1ZmZpeCBvZmYgZWFjaCBwYXRoIGFuZCB1c2UgcmVndWxhclxuICogbW9kdWxlIHJlc29sdXRpb24gdG8gb2J0YWluIGEgcmVmZXJlbmNlIHRvIGBgcGFja2FnZS5qc29uYGAuXG4gKlxuICogQHBhcmFtIGZpbGVOYW1lIGEgamF2YXNjcmlwdCBmaWxlIG5hbWUuXG4gKiBAcmV0dXJucyB0aGUgTlBNIG1vZHVsZSBpbmZvcyAoYWthIGBgcGFja2FnZS5qc29uYGAgY29udGVudHMpLCBvclxuICogICAgICBgYHVuZGVmaW5lZGBgIGlmIHRoZSBsb29rdXAgd2FzIHVuc3VjY2Vzc2Z1bC5cbiAqL1xuZnVuY3Rpb24gZmluZE5wbVBhY2thZ2UoZmlsZU5hbWU6IHN0cmluZyk6IHsgbmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcsIHByaXZhdGU/OiBib29sZWFuIH0gfCB1bmRlZmluZWQge1xuICBjb25zdCBtb2QgPSByZXF1aXJlLmNhY2hlW2ZpbGVOYW1lXTtcbiAgY29uc3QgcGF0aHMgPSBtb2QucGF0aHMubWFwKHN0cmlwTm9kZU1vZHVsZXMpO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcGFja2FnZVBhdGggPSByZXF1aXJlLnJlc29sdmUoJ3BhY2thZ2UuanNvbicsIHsgcGF0aHMgfSk7XG4gICAgcmV0dXJuIHJlcXVpcmUocGFja2FnZVBhdGgpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gcyBhIHBhdGguXG4gICAqIEByZXR1cm5zIGBgc2BgIHdpdGggYW55IHRlcm1pbmF0aW5nIGBgL25vZGVfbW9kdWxlc2BgXG4gICAqICAgICAgKG9yIGBgXFxcXG5vZGVfbW9kdWxlc2BgKSBzdHJpcHBlZCBvZmYuKVxuICAgKi9cbiAgZnVuY3Rpb24gc3RyaXBOb2RlTW9kdWxlcyhzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChzLmVuZHNXaXRoKCcvbm9kZV9tb2R1bGVzJykgfHwgcy5lbmRzV2l0aCgnXFxcXG5vZGVfbW9kdWxlcycpKSB7XG4gICAgICAvLyAvbm9kZV9tb2R1bGVzIGlzIDEzIGNoYXJhY3RlcnNcbiAgICAgIHJldHVybiBzLnN1YnN0cigwLCBzLmxlbmd0aCAtIDEzKTtcbiAgICB9XG4gICAgcmV0dXJuIHM7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0SnNpaUFnZW50VmVyc2lvbigpIHtcbiAgbGV0IGpzaWlBZ2VudCA9IHByb2Nlc3MuZW52LkpTSUlfQUdFTlQ7XG5cbiAgLy8gaWYgSlNJSV9BR0VOVCBpcyBub3Qgc3BlY2lmaWVkLCB3ZSB3aWxsIGFzc3VtZSB0aGlzIGlzIGEgbm9kZS5qcyBydW50aW1lXG4gIC8vIGFuZCBwbHVnIGluIG91ciBub2RlLmpzIHZlcnNpb25cbiAgaWYgKCFqc2lpQWdlbnQpIHtcbiAgICBqc2lpQWdlbnQgPSBgbm9kZS5qcy8ke3Byb2Nlc3MudmVyc2lvbn1gO1xuICB9XG5cbiAgcmV0dXJuIGpzaWlBZ2VudDtcbn0iXX0=

2

node_modules/cli-color/package.json

@@ -24,3 +24,3 @@ {

"_spec": "cli-color@~0.1.6",
"_where": "/codebuild/output/src262545995/src/packages/@aws-cdk/cdk/node_modules/json-diff",
"_where": "/codebuild/output/src094192518/src/packages/@aws-cdk/cdk/node_modules/json-diff",
"author": {

@@ -27,0 +27,0 @@ "name": "Mariusz Nowak",

@@ -24,3 +24,3 @@ {

"_spec": "difflib@~0.2.1",
"_where": "/codebuild/output/src262545995/src/packages/@aws-cdk/cdk/node_modules/json-diff",
"_where": "/codebuild/output/src094192518/src/packages/@aws-cdk/cdk/node_modules/json-diff",
"author": {

@@ -27,0 +27,0 @@ "name": "Xueqiao Xu",

@@ -24,3 +24,3 @@ {

"_spec": "dreamopt@~0.6.0",
"_where": "/codebuild/output/src262545995/src/packages/@aws-cdk/cdk/node_modules/json-diff",
"_where": "/codebuild/output/src094192518/src/packages/@aws-cdk/cdk/node_modules/json-diff",
"author": {

@@ -27,0 +27,0 @@ "name": "Andrey Tarantsov",

@@ -24,3 +24,3 @@ {

"_spec": "es5-ext@0.8.x",
"_where": "/codebuild/output/src262545995/src/packages/@aws-cdk/cdk/node_modules/cli-color",
"_where": "/codebuild/output/src094192518/src/packages/@aws-cdk/cdk/node_modules/cli-color",
"author": {

@@ -27,0 +27,0 @@ "name": "Mariusz Nowak",

@@ -24,3 +24,3 @@ {

"_spec": "heap@>= 0.2.0",
"_where": "/codebuild/output/src262545995/src/packages/@aws-cdk/cdk/node_modules/difflib",
"_where": "/codebuild/output/src094192518/src/packages/@aws-cdk/cdk/node_modules/difflib",
"author": {

@@ -27,0 +27,0 @@ "name": "Xueqiao Xu",

@@ -24,3 +24,3 @@ {

"_spec": "js-base64@^2.4.5",
"_where": "/codebuild/output/src262545995/src/packages/@aws-cdk/cdk",
"_where": "/codebuild/output/src094192518/src/packages/@aws-cdk/cdk",
"author": {

@@ -27,0 +27,0 @@ "name": "Dan Kogai"

@@ -24,3 +24,3 @@ {

"_spec": "json-diff@^0.3.1",
"_where": "/codebuild/output/src262545995/src/packages/@aws-cdk/cdk",
"_where": "/codebuild/output/src094192518/src/packages/@aws-cdk/cdk",
"author": {

@@ -27,0 +27,0 @@ "name": "Andrey Tarantsov",

@@ -24,3 +24,3 @@ {

"_spec": "wordwrap@>=0.0.2",
"_where": "/codebuild/output/src262545995/src/packages/@aws-cdk/cdk/node_modules/dreamopt",
"_where": "/codebuild/output/src094192518/src/packages/@aws-cdk/cdk/node_modules/dreamopt",
"author": {

@@ -27,0 +27,0 @@ "name": "James Halliday",

{
"name": "@aws-cdk/cdk",
"version": "0.19.0",
"version": "0.20.0",
"description": "AWS Cloud Development Kit Core Library",

@@ -57,10 +57,10 @@ "main": "lib/index.js",

"@types/lodash": "^4.14.118",
"cdk-build-tools": "^0.19.0",
"cfn2ts": "^0.19.0",
"cdk-build-tools": "^0.20.0",
"cfn2ts": "^0.20.0",
"fast-check": "^1.7.0",
"lodash": "^4.17.11",
"pkglint": "^0.19.0"
"pkglint": "^0.20.0"
},
"dependencies": {
"@aws-cdk/cx-api": "^0.19.0",
"@aws-cdk/cx-api": "^0.20.0",
"js-base64": "^2.4.5",

@@ -75,4 +75,4 @@ "json-diff": "^0.3.1"

"peerDependencies": {
"@aws-cdk/cx-api": "^0.19.0"
"@aws-cdk/cx-api": "^0.20.0"
}
}

@@ -12,3 +12,6 @@ import { Test } from 'nodeunit';

'app.synthesizeStack(stack) will return a list of missing contextual information'(test: Test): void;
'runtime library versions'(test: Test): void;
'jsii-runtime version loaded from JSII_AGENT'(test: Test): void;
'version reporting includes only @aws-cdk, aws-cdk and jsii libraries'(test: Test): void;
};
export = _default;

@@ -233,3 +233,40 @@ "use strict";

},
'runtime library versions'(test) {
const response = withApp({}, app => {
const stack = new lib_1.Stack(app, 'stack1');
new lib_1.Resource(stack, 'MyResource', { type: 'Resource::Type' });
});
const libs = response.runtime.libraries;
const version = require('../package.json').version;
test.deepEqual(libs['@aws-cdk/cdk'], version);
test.deepEqual(libs['@aws-cdk/cx-api'], version);
test.deepEqual(libs['jsii-runtime'], `node.js/${process.version}`);
test.done();
},
'jsii-runtime version loaded from JSII_AGENT'(test) {
process.env.JSII_AGENT = 'Java/1.2.3.4';
const response = withApp({}, app => {
const stack = new lib_1.Stack(app, 'stack1');
new lib_1.Resource(stack, 'MyResource', { type: 'Resource::Type' });
});
const libs = response.runtime.libraries;
test.deepEqual(libs['jsii-runtime'], `Java/1.2.3.4`);
delete process.env.JSII_AGENT;
test.done();
},
'version reporting includes only @aws-cdk, aws-cdk and jsii libraries'(test) {
const response = withApp({}, app => {
const stack = new lib_1.Stack(app, 'stack1');
new lib_1.Resource(stack, 'MyResource', { type: 'Resource::Type' });
});
const libs = response.runtime.libraries;
const version = require('../package.json').version;
test.deepEqual(libs, {
'@aws-cdk/cdk': version,
'@aws-cdk/cx-api': version,
'jsii-runtime': `node.js/${process.version}`
});
test.done();
},
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5hcHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0LmFwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUNBQTBDO0FBQzFDLHlCQUEwQjtBQUUxQix5QkFBMEI7QUFDMUIsNkJBQThCO0FBQzlCLGdDQUFnRTtBQUNoRSxvQ0FBaUM7QUFFakMsU0FBUyxPQUFPLENBQUMsT0FBMkMsRUFBRSxLQUF5QjtJQUNyRixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBRXZDLElBQUksT0FBTyxFQUFFO1FBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUMxRDtTQUFNO1FBQ0wsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztLQUN2QztJQUVELE1BQU0sR0FBRyxHQUFHLElBQUksU0FBRyxFQUFFLENBQUM7SUFDdEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRVgsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRVYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxN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TyxFQUFFLGFBQWE7d0JBQ3RCLE1BQU0sRUFBRSxZQUFZO3FCQUNyQjtpQkFDRixDQUNBLENBQUM7WUFDSixDQUFDO1NBQ0Y7UUFFRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ3hDLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7WUFDekMscUJBQXFCLEVBQUU7Z0JBQ3JCLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixLQUFLLEVBQUU7b0JBQ0wsT0FBTyxFQUFFLGFBQWE7b0JBQ3RCLE1BQU0sRUFBRSxZQUFZO2lCQUNyQjthQUNGO1lBQ0QsdUJBQXVCLEVBQUU7Z0JBQ3ZCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixLQUFLLEVBQUU7b0JBQ0wsT0FBTyxFQUFFLGFBQWE7b0JBQ3RCLE1BQU0sRUFBRSxZQUFZO29CQUNwQixHQUFHLEVBQUUsS0FBSztpQkFDWDthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3hhcGkgPSByZXF1aXJlKCdAYXdzLWNkay9jeC1hcGknKTtcbmltcG9ydCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG5pbXBvcnQgeyBUZXN0IH0gZnJvbSAnbm9kZXVuaXQnO1xuaW1wb3J0IG9zID0gcmVxdWlyZSgnb3MnKTtcbmltcG9ydCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBSZXNvdXJjZSwgU3RhY2ssIFN0YWNrUHJvcHMgfSBmcm9tICcuLi9saWInO1xuaW1wb3J0IHsgQXBwIH0gZnJvbSAnLi4vbGliL2FwcCc7XG5cbmZ1bmN0aW9uIHdpdGhBcHAoY29udGV4dDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHVuZGVmaW5lZCwgYmxvY2s6IChhcHA6IEFwcCkgPT4gdm9pZCkge1xuICBjb25zdCBvdXRkaXIgPSBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4ob3MudG1wZGlyKCksICdjZGstYXBwLXRlc3QnKSk7XG4gIHByb2Nlc3MuZW52W2N4YXBpLk9VVERJUl9FTlZdID0gb3V0ZGlyO1xuXG4gIGlmIChjb250ZXh0KSB7XG4gICAgcHJvY2Vzcy5lbnZbY3hhcGkuQ09OVEVYVF9FTlZdID0gSlNPTi5zdHJpbmdpZnkoY29udGV4dCk7XG4gIH0gZWxzZSB7XG4gICAgZGVsZXRlIHByb2Nlc3MuZW52W2N4YXBpLkNPTlRFWFRfRU5WXTtcbiAgfVxuXG4gIGNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcbiAgYmxvY2soYXBwKTtcblxuICBhcHAucnVuKCk7XG5cbiAgY29uc3Qgb3V0ZmlsZSA9IHBhdGguam9pbihvdXRkaXIsIGN4YXBpLk9VVEZJTEVfTkFNRSk7XG4gIGNvbnN0IHJlc3BvbnNlID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMob3V0ZmlsZSkudG9TdHJpbmcoKSk7XG4gIGZzLnVubGlua1N5bmMob3V0ZmlsZSk7XG4gIGZzLnJtZGlyU3luYyhvdXRkaXIpO1xuICByZXR1cm4gcmVzcG9uc2U7XG59XG5cbmZ1bmN0aW9uIHN5bnRoKGNvbnRleHQ/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogY3hhcGkuU3ludGhlc2l6ZVJlc3BvbnNlIHtcbiAgcmV0dXJuIHdpdGhBcHAoY29udGV4dCwgYXBwID0+IHtcbiAgICBjb25zdCBzdGFjazEgPSBuZXcgU3RhY2soYXBwLCAnc3RhY2sxJywgeyBlbnY6IHsgYWNjb3VudDogJzEyMzQ1JywgcmVnaW9uOiAndXMtZWFzdC0xJyB9IH0pO1xuICAgIG5ldyBSZXNvdXJjZShzdGFjazEsICdzMWMxJywgeyB0eXBlOiAnRHVtbXlSZXNvdXJjZScsIHByb3BlcnRpZXM6IHsgUHJvcDE6ICdQcm9wMScgfSB9KTtcbiAgICBjb25zdCByMiA9IG5ldyBSZXNvdXJjZShzdGFjazEsICdzMWMyJywgeyB0eXBlOiAnRHVtbXlSZXNvdXJjZScsIHByb3BlcnRpZXM6IHsgRm9vOiAxMjMgfSB9KTtcblxuICAgIGNvbnN0IHN0YWNrMiA9IG5ldyBTdGFjayhhcHAsICdzdGFjazInKTtcbiAgICBuZXcgUmVzb3VyY2Uoc3RhY2syLCAnczJjMScsIHsgdHlwZTogJ0R1bW15UmVzb3VyY2UnLCBwcm9wZXJ0aWVzOiB7IFByb2cyOiAnUHJvZzInIH0gfSk7XG4gICAgY29uc3QgYzEgPSBuZXcgTXlDb25zdHJ1Y3Qoc3RhY2syLCAnczFjMicpO1xuXG4gICAgLy8gYWRkIHNvbWUgbWV0YWRhdGFcbiAgICBzdGFjazEuYWRkTWV0YWRhdGEoJ21ldGEnLCAxMTEpO1xuICAgIHIyLmFkZFdhcm5pbmcoJ3dhcm5pbmcxJyk7XG4gICAgcjIuYWRkV2FybmluZygnd2FybmluZzInKTtcbiAgICBjMS5hZGRNZXRhZGF0YSgnbWV0YScsIHsga2V5OiAndmFsdWUnIH0pO1xuICAgIGFwcC5hZGRNZXRhZGF0YSgnYXBwbGV2ZWwnLCAxMjMpOyAvLyBhcHBzIGNhbiBhbHNvIGhhdmUgbWV0YWRhdGFcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHN5bnRoU3RhY2sobmFtZTogc3RyaW5nLCBpbmNsdWRlTWV0YWRhdGE6IGJvb2xlYW4gPSBmYWxzZSwgY29udGV4dD86IGFueSk6IGN4YXBpLlN5bnRoZXNpemVkU3RhY2sge1xuICBjb25zdCByZXNwb25zZSA9IHN5bnRoKGNvbnRleHQpO1xuICBjb25zdCBzdGFjayA9IHJlc3BvbnNlLnN0YWNrcy5maW5kKHMgPT4gcy5uYW1lID09PSBuYW1lKTtcbiAgaWYgKCFzdGFjaykge1xuICAgIHRocm93IG5ldyBFcnJvcihgU3RhY2sgJHtuYW1lfSBub3QgZm91bmRgKTtcbiAgfVxuXG4gIGlmICghaW5jbHVkZU1ldGFkYXRhKSB7XG4gICAgZGVsZXRlIHN0YWNrLm1ldGFkYXRhO1xuICB9XG5cbiAgcmV0dXJuIHN0YWNrO1xufVxuXG5leHBvcnQgPSB7XG4gICdzeW50aGVzaXplcyBhbGwgc3RhY2tzIGFuZCByZXR1cm5zIHN5bnRoZXNpcyByZXN1bHQnKHRlc3Q6IFRlc3QpIHtcbiAgICBjb25zdCByZXNwb25zZSA9IHN5bnRoKCk7XG5cbiAgICAvLyBjbGVhbiB1cCBtZXRhZGF0YSBzbyBhc3NlcnRpb24gd2lsbCBiZSBzYW5lXG4gICAgcmVzcG9uc2Uuc3RhY2tzLmZvckVhY2gocyA9PiBkZWxldGUgcy5tZXRhZGF0YSk7XG4gICAgZGVsZXRlIHJlc3BvbnNlLnJ1bnRpbWU7XG5cbiAgICB0ZXN0LmRlZXBFcXVhbChyZXNwb25zZSwge1xuICAgICAgdmVyc2lvbjogJzAuMTkuMCcsXG4gICAgICBzdGFja3M6XG4gICAgICBbIHsgbmFtZTogJ3N0YWNrMScsXG4gICAgICAgICAgZW52aXJvbm1lbnQ6XG4gICAgICAgICAgIHsgbmFtZTogJzEyMzQ1L3VzLWVhc3QtMScsXG4gICAgICAgICAgICAgYWNjb3VudDogJzEyMzQ1JyxcbiAgICAgICAgICAgICByZWdpb246ICd1cy1lYXN0LTEnIH0sXG4gICAgICAgICAgdGVtcGxhdGU6XG4gICAgICAgICAgIHsgUmVzb3VyY2VzOlxuICAgICAgICAgICAgICB7IHMxYzE6IHsgVHlwZTogJ0R1bW15UmVzb3VyY2UnLCBQcm9wZXJ0aWVzOiB7IFByb3AxOiAnUHJvcDEnIH0gfSxcbiAgICAgICAgICAgICAgICBzMWMyOiB7IFR5cGU6ICdEdW1teVJlc291cmNlJywgUHJvcGVydGllczogeyBGb286IDEyMyB9IH0gfSB9IH0sXG4gICAgICAgIHsgbmFtZTogJ3N0YWNrMicsXG4gICAgICAgICAgZW52aXJvbm1lbnQ6XG4gICAgICAgICAgIHsgbmFtZTogJ3Vua25vd24tYWNjb3VudC91bmtub3duLXJlZ2lvbicsXG4gICAgICAgICAgICAgYWNjb3VudDogJ3Vua25vd24tYWNjb3VudCcsXG4gICAgICAgICAgICAgcmVnaW9uOiAndW5rbm93bi1yZWdpb24nIH0sXG4gICAgICAgICAgdGVtcGxhdGU6XG4gICAgICAgICAgIHsgUmVzb3VyY2VzOlxuICAgICAgICAgICAgICB7IHMyYzE6IHsgVHlwZTogJ0R1bW15UmVzb3VyY2UnLCBQcm9wZXJ0aWVzOiB7IFByb2cyOiAnUHJvZzInIH0gfSxcbiAgICAgICAgICAgICAgICBzMWMycjFEMTc5MUMwMTogeyBUeXBlOiAnUmVzb3VyY2VUeXBlMScgfSxcbiAgICAgICAgICAgICAgICBzMWMycjI1RjY4NUZGRjogeyBUeXBlOiAnUmVzb3VyY2VUeXBlMicgfSB9IH0gfSBdIH0pO1xuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdzeW50aChuYW1lKSBjYW4gYmUgdXNlZCBwcm9ncmFtbWF0aWNhbGx5Jyh0ZXN0OiBUZXN0KSB7XG4gICAgY29uc3QgcHJvZyA9IG5ldyBBcHAoKTtcbiAgICBjb25zdCBzdGFjayA9IG5ldyBTdGFjayhwcm9nLCAnTXlTdGFjaycpO1xuICAgIG5ldyBSZXNvdXJjZShzdGFjaywgJ015UmVzb3VyY2UnLCB7IHR5cGU6ICdNeVJlc291cmNlVHlwZScgfSk7XG5cbiAgICBsZXQgdGhyb3dzO1xuICAgIHRyeSB7XG4gICAgICBwcm9nLnN5bnRoZXNpemVTdGFja3MoWydmb28nXSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3dzID0gZS5tZXNzYWdlO1xuICAgIH1cbiAgICB0ZXN0Lm9rKHRocm93cy5pbmRleE9mKCdDYW5ub3QgZmluZCBzdGFjayBmb28nKSAhPT0gLTEpO1xuXG4gICAgdGVzdC5kZWVwRXF1YWwocHJvZy5zeW50aGVzaXplU3RhY2soJ015U3RhY2snKS50ZW1wbGF0ZSxcbiAgICAgIHsgUmVzb3VyY2VzOiB7IE15UmVzb3VyY2U6IHsgVHlwZTogJ015UmVzb3VyY2VUeXBlJyB9IH0gfSk7XG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ3N5bnRoKG5hbWUpIGFsc28gY29sbGVjdHMgbWV0YWRhdGEgZnJvbSBhbGwgY29uc3RydWN0cyBpbiB0aGUgc3RhY2snKHRlc3Q6IFRlc3QpIHtcbiAgICBjb25zdCBzdGFjayA9IHN5bnRoU3RhY2soJ3N0YWNrMScsIHRydWUpO1xuXG4gICAgY29uc3Qgb3V0cHV0ID0gc3RhY2subWV0YWRhdGE7XG4gICAgc3RyaXBTdGFja1RyYWNlcyhvdXRwdXQpO1xuXG4gICAgdGVzdC5vayhvdXRwdXRbJy8nXSwgJ2FwcC1sZXZlbCBtZXRhZGF0YSBpcyBpbmNsdWRlZCB1bmRlciBcIi5cIicpO1xuICAgIHRlc3QuZXF1YWwob3V0cHV0WycvJ11bMF0udHlwZSwgJ2FwcGxldmVsJyk7XG4gICAgdGVzdC5lcXVhbChvdXRwdXRbJy8nXVswXS5kYXRhLCAxMjMpO1xuXG4gICAgdGVzdC5vayhvdXRwdXRbJy9zdGFjazEnXSwgJ3RoZSBjb25zdHJ1Y3QgXCJzdGFjazFcIiBoYXMgbWV0YWRhdGEnKTtcbiAgICB0ZXN0LmVxdWFsKG91dHB1dFsnL3N0YWNrMSddWzBdLnR5cGUsICdtZXRhJyk7XG4gICAgdGVzdC5lcXVhbChvdXRwdXRbJy9zdGFjazEnXVswXS5kYXRhLCAxMTEpO1xuICAgIHRlc3Qub2sob3V0cHV0Wycvc3RhY2sxJ11bMF0udHJhY2UubGVuZ3RoID4gMCwgJ3RyYWNlIGNvbnRhaW5zIG11bHRpcGxlIGVudHJpZXMnKTtcblxuICAgIHRlc3Qub2sob3V0cHV0Wycvc3RhY2sxL3MxYzInXSk7XG4gICAgdGVzdC5lcXVhbChvdXRwdXRbJy9zdGFjazEvczFjMiddLmxlbmd0aCwgMiwgJ3R3byBlbnRyaWVzJyk7XG4gICAgdGVzdC5lcXVhbChvdXRwdXRbJy9zdGFjazEvczFjMiddWzBdLmRhdGEsICd3YXJuaW5nMScpO1xuXG4gICAgY29uc3Qgc3RhY2syID0gc3ludGhTdGFjaygnc3RhY2syJywgdHJ1ZSk7XG4gICAgY29uc3Qgb3V0cHV0MiA9IHN0YWNrMi5tZXRhZGF0YTtcblxuICAgIHRlc3Qub2sob3V0cHV0MlsnL3N0YWNrMi9zMWMyJ10pO1xuICAgIHRlc3QuZXF1YWwob3V0cHV0MlsnL3N0YWNrMi9zMWMyJ11bMF0udHlwZSwgJ21ldGEnKTtcbiAgICB0ZXN0LmRlZXBFcXVhbChvdXRwdXQyWycvc3RhY2syL3MxYzInXVswXS5kYXRhLCB7IGtleTogJ3ZhbHVlJyB9KTtcblxuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdjb250ZXh0IGNhbiBiZSBwYXNzZWQgdGhyb3VnaCBDREtfQ09OVEVYVCcodGVzdDogVGVzdCkge1xuICAgIHByb2Nlc3MuZW52W2N4YXBpLkNPTlRFWFRfRU5WXSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGtleTE6ICd2YWwxJyxcbiAgICAgIGtleTI6ICd2YWwyJ1xuICAgIH0pO1xuICAgIGNvbnN0IHByb2cgPSBuZXcgQXBwKCk7XG4gICAgdGVzdC5kZWVwRXF1YWwocHJvZy5nZXRDb250ZXh0KCdrZXkxJyksICd2YWwxJyk7XG4gICAgdGVzdC5kZWVwRXF1YWwocHJvZy5nZXRDb250ZXh0KCdrZXkyJyksICd2YWwyJyk7XG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ2NvbnRleHQgZnJvbSB0aGUgY29tbWFuZCBsaW5lIGNhbiBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgdGhlIHN0YWNrJyh0ZXN0OiBUZXN0KSB7XG4gICAgY29uc3Qgb3V0cHV0ID0gc3ludGhTdGFjaygnc3RhY2syJywgZmFsc2UsIHsgY3R4MTogJ0hFTExPJyB9KTtcblxuICAgIHRlc3QuZGVlcEVxdWFsKG91dHB1dC50ZW1wbGF0ZSwge1xuICAgICAgUmVzb3VyY2VzOiB7XG4gICAgICAgIHMyYzE6IHtcbiAgICAgICAgVHlwZTogXCJEdW1teVJlc291cmNlXCIsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBQcm9nMjogXCJQcm9nMlwiXG4gICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgczFjMnIxRDE3OTFDMDE6IHtcbiAgICAgICAgVHlwZTogXCJSZXNvdXJjZVR5cGUxXCJcbiAgICAgICAgfSxcbiAgICAgICAgczFjMnIyNUY2ODVGRkY6IHtcbiAgICAgICAgVHlwZTogXCJSZXNvdXJjZVR5cGUyXCIsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBGcm9tQ29udGV4dDogXCJIRUxMT1wiXG4gICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdzZXRDb250ZXh0KGssdikgY2FuIGJlIHVzZWQgdG8gc2V0IGNvbnRleHQgcHJvZ3JhbW1hdGljYWxseScodGVzdDogVGVzdCkge1xuICAgIGNvbnN0IHByb2cgPSBuZXcgQXBwKCk7XG4gICAgcHJvZy5zZXRDb250ZXh0KCdmb28nLCAnYmFyJyk7XG4gICAgdGVzdC5kZWVwRXF1YWwocHJvZy5nZXRDb250ZXh0KCdmb28nKSwgJ2JhcicpO1xuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdzZXRDb250ZXh0KGssdikgY2Fubm90IGJlIGNhbGxlZCBhZnRlciBzdGFja3MgaGF2ZSBiZWVuIGFkZGVkIGJlY2F1c2Ugc3RhY2tzIG1heSB1c2UgdGhlIGNvbnRleHQnKHRlc3Q6IFRlc3QpIHtcbiAgICBjb25zdCBwcm9nID0gbmV3IEFwcCgpO1xuICAgIG5ldyBTdGFjayhwcm9nLCAnczEnKTtcbiAgICB0ZXN0LnRocm93cygoKSA9PiBwcm9nLnNldENvbnRleHQoJ2ZvbycsICdiYXInKSk7XG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ2FwcC5zeW50aGVzaXplU3RhY2soc3RhY2spIHBlcmZvcm1zIHZhbGlkYXRpb24gZmlyc3QgKGFwcC52YWxpZGF0ZUFsbCgpKSBhbmQgaWYgdGhlcmUgYXJlIGVycm9ycywgaXQgcmV0dXJucyB0aGUgZXJyb3JzJyh0ZXN0OiBUZXN0KSB7XG5cbiAgICBjbGFzcyBDaGlsZCBleHRlbmRzIENvbnN0cnVjdCB7XG4gICAgICBwdWJsaWMgdmFsaWRhdGUoKSB7XG4gICAgICAgIHJldHVybiBbIGBFcnJvciBmcm9tICR7dGhpcy5pZH1gIF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2xhc3MgUGFyZW50IGV4dGVuZHMgU3RhY2sge1xuXG4gICAgfVxuXG4gICAgY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuXG4gICAgY29uc3QgcGFyZW50ID0gbmV3IFBhcmVudChhcHAsICdQYXJlbnQnKTtcbiAgICBuZXcgQ2hpbGQocGFyZW50LCAnQzEnKTtcbiAgICBuZXcgQ2hpbGQocGFyZW50LCAnQzInKTtcblxuICAgIHRlc3QudGhyb3dzKCgpID0+IHtcbiAgICAgIGFwcC5zeW50aGVzaXplU3RhY2tzKFsnUGFyZW50J10pO1xuICAgIH0sIC9TdGFjayB2YWxpZGF0aW9uIGZhaWxlZCB3aXRoIHRoZSBmb2xsb3dpbmcgZXJyb3JzLyk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAnYXBwLnN5bnRoZXNpemVTdGFjayhzdGFjaykgd2lsbCByZXR1cm4gYSBsaXN0IG9mIG1pc3NpbmcgY29udGV4dHVhbCBpbmZvcm1hdGlvbicodGVzdDogVGVzdCkge1xuICAgIGNsYXNzIE15U3RhY2sgZXh0ZW5kcyBTdGFjayB7XG4gICAgICBjb25zdHJ1Y3RvcihwYXJlbnQ6IEFwcCwgbmFtZTogc3RyaW5nLCBwcm9wcz86IFN0YWNrUHJvcHMpIHtcbiAgICAgICAgc3VwZXIocGFyZW50LCBuYW1lLCBwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5yZXBvcnRNaXNzaW5nQ29udGV4dCgnbWlzc2luZy1jb250ZXh0LWtleScsIHtcbiAgICAgICAgICBwcm92aWRlcjogJ2Zha2UnLFxuICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBhY2NvdW50OiAnMTIzNDU2ODkwMTInLFxuICAgICAgICAgICAgcmVnaW9uOiAnYWItbm9ydGgtMScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnJlcG9ydE1pc3NpbmdDb250ZXh0KCdtaXNzaW5nLWNvbnRleHQta2V5LTInLCB7XG4gICAgICAgICAgcHJvdmlkZXI6ICdmYWtlMicsXG4gICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGZvbzogJ2JhcicsXG4gICAgICAgICAgICBhY2NvdW50OiAnMTIzNDU2ODkwMTInLFxuICAgICAgICAgICAgcmVnaW9uOiAnYWItc291dGgtMScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IHdpdGhBcHAodW5kZWZpbmVkLCBhcHAgPT4ge1xuICAgICAgbmV3IE15U3RhY2soYXBwLCAnTXlTdGFjaycpO1xuICAgIH0pO1xuXG4gICAgdGVzdC5kZWVwRXF1YWwocmVzcG9uc2Uuc3RhY2tzWzBdLm1pc3NpbmcsIHtcbiAgICAgIFwibWlzc2luZy1jb250ZXh0LWtleVwiOiB7XG4gICAgICAgIHByb3ZpZGVyOiAnZmFrZScsXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgYWNjb3VudDogJzEyMzQ1Njg5MDEyJyxcbiAgICAgICAgICByZWdpb246ICdhYi1ub3J0aC0xJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBcIm1pc3NpbmctY29udGV4dC1rZXktMlwiOiB7XG4gICAgICAgIHByb3ZpZGVyOiAnZmFrZTInLFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIGFjY291bnQ6ICcxMjM0NTY4OTAxMicsXG4gICAgICAgICAgcmVnaW9uOiAnYWItc291dGgtMScsXG4gICAgICAgICAgZm9vOiAnYmFyJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcbn07XG5cbmNsYXNzIE15Q29uc3RydWN0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3IocGFyZW50OiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKHBhcmVudCwgbmFtZSk7XG5cbiAgICBuZXcgUmVzb3VyY2UodGhpcywgJ3IxJywgeyB0eXBlOiAnUmVzb3VyY2VUeXBlMScgfSk7XG4gICAgbmV3IFJlc291cmNlKHRoaXMsICdyMicsIHsgdHlwZTogJ1Jlc291cmNlVHlwZTInLCBwcm9wZXJ0aWVzOiB7IEZyb21Db250ZXh0OiB0aGlzLmdldENvbnRleHQoJ2N0eDEnKSB9IH0pO1xuICB9XG59XG5cbi8qKlxuICogU3RyaXAgc3RhY2sgdHJhY2VzIGZyb20gbWV0YWRhdGFcbiAqL1xuZnVuY3Rpb24gc3RyaXBTdGFja1RyYWNlcyhtZXRhOiBjeGFwaS5TdGFja01ldGFkYXRhKSB7XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG1ldGEpKSB7XG4gICAgbWV0YVtrZXldID0gbWV0YVtrZXldLmZpbHRlcihlbnRyeSA9PiBlbnRyeS50eXBlICE9PSAnYXdzOmNkazpsb2dpY2FsSWQnKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5hcHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0LmFwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUNBQTBDO0FBQzFDLHlCQUEwQjtBQUUxQix5QkFBMEI7QUFDMUIsNkJBQThCO0FBQzlCLGdDQUFnRTtBQUNoRSxvQ0FBaUM7QUFFakMsU0FBUyxPQUFPLENBQUMsT0FBMkMsRUFBRSxLQUF5QjtJQUNyRixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBRXZDLElBQUksT0FBTyxFQUFFO1FBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUMxRDtTQUFNO1FBQ0wsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztLQUN2QztJQUVELE1BQU0sR0FBRyxHQUFHLElBQUksU0FBRyxFQUFFLENBQUM7SUFFdEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRVgsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRVYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxN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SSxjQUFRLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDaEUsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUV4QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7WUFDbkIsY0FBYyxFQUFFLE9BQU87WUFDdkIsaUJBQWlCLEVBQUUsT0FBTztZQUMxQixjQUFjLEVBQUUsV0FBVyxPQUFPLENBQUMsT0FBTyxFQUFFO1NBQzdDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGN4YXBpID0gcmVxdWlyZSgnQGF3cy1jZGsvY3gtYXBpJyk7XG5pbXBvcnQgZnMgPSByZXF1aXJlKCdmcycpO1xuaW1wb3J0IHsgVGVzdCB9IGZyb20gJ25vZGV1bml0JztcbmltcG9ydCBvcyA9IHJlcXVpcmUoJ29zJyk7XG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbmltcG9ydCB7IENvbnN0cnVjdCwgUmVzb3VyY2UsIFN0YWNrLCBTdGFja1Byb3BzIH0gZnJvbSAnLi4vbGliJztcbmltcG9ydCB7IEFwcCB9IGZyb20gJy4uL2xpYi9hcHAnO1xuXG5mdW5jdGlvbiB3aXRoQXBwKGNvbnRleHQ6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB1bmRlZmluZWQsIGJsb2NrOiAoYXBwOiBBcHApID0+IHZvaWQpIHtcbiAgY29uc3Qgb3V0ZGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCAnY2RrLWFwcC10ZXN0JykpO1xuICBwcm9jZXNzLmVudltjeGFwaS5PVVRESVJfRU5WXSA9IG91dGRpcjtcblxuICBpZiAoY29udGV4dCkge1xuICAgIHByb2Nlc3MuZW52W2N4YXBpLkNPTlRFWFRfRU5WXSA9IEpTT04uc3RyaW5naWZ5KGNvbnRleHQpO1xuICB9IGVsc2Uge1xuICAgIGRlbGV0ZSBwcm9jZXNzLmVudltjeGFwaS5DT05URVhUX0VOVl07XG4gIH1cblxuICBjb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbiAgYmxvY2soYXBwKTtcblxuICBhcHAucnVuKCk7XG5cbiAgY29uc3Qgb3V0ZmlsZSA9IHBhdGguam9pbihvdXRkaXIsIGN4YXBpLk9VVEZJTEVfTkFNRSk7XG4gIGNvbnN0IHJlc3BvbnNlID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMob3V0ZmlsZSkudG9TdHJpbmcoKSk7XG4gIGZzLnVubGlua1N5bmMob3V0ZmlsZSk7XG4gIGZzLnJtZGlyU3luYyhvdXRkaXIpO1xuICByZXR1cm4gcmVzcG9uc2U7XG59XG5cbmZ1bmN0aW9uIHN5bnRoKGNvbnRleHQ/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogY3hhcGkuU3ludGhlc2l6ZVJlc3BvbnNlIHtcbiAgcmV0dXJuIHdpdGhBcHAoY29udGV4dCwgYXBwID0+IHtcbiAgICBjb25zdCBzdGFjazEgPSBuZXcgU3RhY2soYXBwLCAnc3RhY2sxJywgeyBlbnY6IHsgYWNjb3VudDogJzEyMzQ1JywgcmVnaW9uOiAndXMtZWFzdC0xJyB9IH0pO1xuICAgIG5ldyBSZXNvdXJjZShzdGFjazEsICdzMWMxJywgeyB0eXBlOiAnRHVtbXlSZXNvdXJjZScsIHByb3BlcnRpZXM6IHsgUHJvcDE6ICdQcm9wMScgfSB9KTtcbiAgICBjb25zdCByMiA9IG5ldyBSZXNvdXJjZShzdGFjazEsICdzMWMyJywgeyB0eXBlOiAnRHVtbXlSZXNvdXJjZScsIHByb3BlcnRpZXM6IHsgRm9vOiAxMjMgfSB9KTtcblxuICAgIGNvbnN0IHN0YWNrMiA9IG5ldyBTdGFjayhhcHAsICdzdGFjazInKTtcbiAgICBuZXcgUmVzb3VyY2Uoc3RhY2syLCAnczJjMScsIHsgdHlwZTogJ0R1bW15UmVzb3VyY2UnLCBwcm9wZXJ0aWVzOiB7IFByb2cyOiAnUHJvZzInIH0gfSk7XG4gICAgY29uc3QgYzEgPSBuZXcgTXlDb25zdHJ1Y3Qoc3RhY2syLCAnczFjMicpO1xuXG4gICAgLy8gYWRkIHNvbWUgbWV0YWRhdGFcbiAgICBzdGFjazEuYWRkTWV0YWRhdGEoJ21ldGEnLCAxMTEpO1xuICAgIHIyLmFkZFdhcm5pbmcoJ3dhcm5pbmcxJyk7XG4gICAgcjIuYWRkV2FybmluZygnd2FybmluZzInKTtcbiAgICBjMS5hZGRNZXRhZGF0YSgnbWV0YScsIHsga2V5OiAndmFsdWUnIH0pO1xuICAgIGFwcC5hZGRNZXRhZGF0YSgnYXBwbGV2ZWwnLCAxMjMpOyAvLyBhcHBzIGNhbiBhbHNvIGhhdmUgbWV0YWRhdGFcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHN5bnRoU3RhY2sobmFtZTogc3RyaW5nLCBpbmNsdWRlTWV0YWRhdGE6IGJvb2xlYW4gPSBmYWxzZSwgY29udGV4dD86IGFueSk6IGN4YXBpLlN5bnRoZXNpemVkU3RhY2sge1xuICBjb25zdCByZXNwb25zZSA9IHN5bnRoKGNvbnRleHQpO1xuICBjb25zdCBzdGFjayA9IHJlc3BvbnNlLnN0YWNrcy5maW5kKHMgPT4gcy5uYW1lID09PSBuYW1lKTtcbiAgaWYgKCFzdGFjaykge1xuICAgIHRocm93IG5ldyBFcnJvcihgU3RhY2sgJHtuYW1lfSBub3QgZm91bmRgKTtcbiAgfVxuXG4gIGlmICghaW5jbHVkZU1ldGFkYXRhKSB7XG4gICAgZGVsZXRlIHN0YWNrLm1ldGFkYXRhO1xuICB9XG5cbiAgcmV0dXJuIHN0YWNrO1xufVxuXG5leHBvcnQgPSB7XG4gICdzeW50aGVzaXplcyBhbGwgc3RhY2tzIGFuZCByZXR1cm5zIHN5bnRoZXNpcyByZXN1bHQnKHRlc3Q6IFRlc3QpIHtcbiAgICBjb25zdCByZXNwb25zZSA9IHN5bnRoKCk7XG5cbiAgICAvLyBjbGVhbiB1cCBtZXRhZGF0YSBzbyBhc3NlcnRpb24gd2lsbCBiZSBzYW5lXG4gICAgcmVzcG9uc2Uuc3RhY2tzLmZvckVhY2gocyA9PiBkZWxldGUgcy5tZXRhZGF0YSk7XG4gICAgZGVsZXRlIHJlc3BvbnNlLnJ1bnRpbWU7XG5cbiAgICB0ZXN0LmRlZXBFcXVhbChyZXNwb25zZSwge1xuICAgICAgdmVyc2lvbjogJzAuMTkuMCcsXG4gICAgICBzdGFja3M6XG4gICAgICBbIHsgbmFtZTogJ3N0YWNrMScsXG4gICAgICAgICAgZW52aXJvbm1lbnQ6XG4gICAgICAgICAgIHsgbmFtZTogJzEyMzQ1L3VzLWVhc3QtMScsXG4gICAgICAgICAgICAgYWNjb3VudDogJzEyMzQ1JyxcbiAgICAgICAgICAgICByZWdpb246ICd1cy1lYXN0LTEnIH0sXG4gICAgICAgICAgdGVtcGxhdGU6XG4gICAgICAgICAgIHsgUmVzb3VyY2VzOlxuICAgICAgICAgICAgICB7IHMxYzE6IHsgVHlwZTogJ0R1bW15UmVzb3VyY2UnLCBQcm9wZXJ0aWVzOiB7IFByb3AxOiAnUHJvcDEnIH0gfSxcbiAgICAgICAgICAgICAgICBzMWMyOiB7IFR5cGU6ICdEdW1teVJlc291cmNlJywgUHJvcGVydGllczogeyBGb286IDEyMyB9IH0gfSB9IH0sXG4gICAgICAgIHsgbmFtZTogJ3N0YWNrMicsXG4gICAgICAgICAgZW52aXJvbm1lbnQ6XG4gICAgICAgICAgIHsgbmFtZTogJ3Vua25vd24tYWNjb3VudC91bmtub3duLXJlZ2lvbicsXG4gICAgICAgICAgICAgYWNjb3VudDogJ3Vua25vd24tYWNjb3VudCcsXG4gICAgICAgICAgICAgcmVnaW9uOiAndW5rbm93bi1yZWdpb24nIH0sXG4gICAgICAgICAgdGVtcGxhdGU6XG4gICAgICAgICAgIHsgUmVzb3VyY2VzOlxuICAgICAgICAgICAgICB7IHMyYzE6IHsgVHlwZTogJ0R1bW15UmVzb3VyY2UnLCBQcm9wZXJ0aWVzOiB7IFByb2cyOiAnUHJvZzInIH0gfSxcbiAgICAgICAgICAgICAgICBzMWMycjFEMTc5MUMwMTogeyBUeXBlOiAnUmVzb3VyY2VUeXBlMScgfSxcbiAgICAgICAgICAgICAgICBzMWMycjI1RjY4NUZGRjogeyBUeXBlOiAnUmVzb3VyY2VUeXBlMicgfSB9IH0gfSBdIH0pO1xuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdzeW50aChuYW1lKSBjYW4gYmUgdXNlZCBwcm9ncmFtbWF0aWNhbGx5Jyh0ZXN0OiBUZXN0KSB7XG4gICAgY29uc3QgcHJvZyA9IG5ldyBBcHAoKTtcbiAgICBjb25zdCBzdGFjayA9IG5ldyBTdGFjayhwcm9nLCAnTXlTdGFjaycpO1xuICAgIG5ldyBSZXNvdXJjZShzdGFjaywgJ015UmVzb3VyY2UnLCB7IHR5cGU6ICdNeVJlc291cmNlVHlwZScgfSk7XG5cbiAgICBsZXQgdGhyb3dzO1xuICAgIHRyeSB7XG4gICAgICBwcm9nLnN5bnRoZXNpemVTdGFja3MoWydmb28nXSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3dzID0gZS5tZXNzYWdlO1xuICAgIH1cbiAgICB0ZXN0Lm9rKHRocm93cy5pbmRleE9mKCdDYW5ub3QgZmluZCBzdGFjayBmb28nKSAhPT0gLTEpO1xuXG4gICAgdGVzdC5kZWVwRXF1YWwocHJvZy5zeW50aGVzaXplU3RhY2soJ015U3RhY2snKS50ZW1wbGF0ZSxcbiAgICAgIHsgUmVzb3VyY2VzOiB7IE15UmVzb3VyY2U6IHsgVHlwZTogJ015UmVzb3VyY2VUeXBlJyB9IH0gfSk7XG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ3N5bnRoKG5hbWUpIGFsc28gY29sbGVjdHMgbWV0YWRhdGEgZnJvbSBhbGwgY29uc3RydWN0cyBpbiB0aGUgc3RhY2snKHRlc3Q6IFRlc3QpIHtcbiAgICBjb25zdCBzdGFjayA9IHN5bnRoU3RhY2soJ3N0YWNrMScsIHRydWUpO1xuXG4gICAgY29uc3Qgb3V0cHV0ID0gc3RhY2subWV0YWRhdGE7XG4gICAgc3RyaXBTdGFja1RyYWNlcyhvdXRwdXQpO1xuXG4gICAgdGVzdC5vayhvdXRwdXRbJy8nXSwgJ2FwcC1sZXZlbCBtZXRhZGF0YSBpcyBpbmNsdWRlZCB1bmRlciBcIi5cIicpO1xuICAgIHRlc3QuZXF1YWwob3V0cHV0WycvJ11bMF0udHlwZSwgJ2FwcGxldmVsJyk7XG4gICAgdGVzdC5lcXVhbChvdXRwdXRbJy8nXVswXS5kYXRhLCAxMjMpO1xuXG4gICAgdGVzdC5vayhvdXRwdXRbJy9zdGFjazEnXSwgJ3RoZSBjb25zdHJ1Y3QgXCJzdGFjazFcIiBoYXMgbWV0YWRhdGEnKTtcbiAgICB0ZXN0LmVxdWFsKG91dHB1dFsnL3N0YWNrMSddWzBdLnR5cGUsICdtZXRhJyk7XG4gICAgdGVzdC5lcXVhbChvdXRwdXRbJy9zdGFjazEnXVswXS5kYXRhLCAxMTEpO1xuICAgIHRlc3Qub2sob3V0cHV0Wycvc3RhY2sxJ11bMF0udHJhY2UubGVuZ3RoID4gMCwgJ3RyYWNlIGNvbnRhaW5zIG11bHRpcGxlIGVudHJpZXMnKTtcblxuICAgIHRlc3Qub2sob3V0cHV0Wycvc3RhY2sxL3MxYzInXSk7XG4gICAgdGVzdC5lcXVhbChvdXRwdXRbJy9zdGFjazEvczFjMiddLmxlbmd0aCwgMiwgJ3R3byBlbnRyaWVzJyk7XG4gICAgdGVzdC5lcXVhbChvdXRwdXRbJy9zdGFjazEvczFjMiddWzBdLmRhdGEsICd3YXJuaW5nMScpO1xuXG4gICAgY29uc3Qgc3RhY2syID0gc3ludGhTdGFjaygnc3RhY2syJywgdHJ1ZSk7XG4gICAgY29uc3Qgb3V0cHV0MiA9IHN0YWNrMi5tZXRhZGF0YTtcblxuICAgIHRlc3Qub2sob3V0cHV0MlsnL3N0YWNrMi9zMWMyJ10pO1xuICAgIHRlc3QuZXF1YWwob3V0cHV0MlsnL3N0YWNrMi9zMWMyJ11bMF0udHlwZSwgJ21ldGEnKTtcbiAgICB0ZXN0LmRlZXBFcXVhbChvdXRwdXQyWycvc3RhY2syL3MxYzInXVswXS5kYXRhLCB7IGtleTogJ3ZhbHVlJyB9KTtcblxuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdjb250ZXh0IGNhbiBiZSBwYXNzZWQgdGhyb3VnaCBDREtfQ09OVEVYVCcodGVzdDogVGVzdCkge1xuICAgIHByb2Nlc3MuZW52W2N4YXBpLkNPTlRFWFRfRU5WXSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGtleTE6ICd2YWwxJyxcbiAgICAgIGtleTI6ICd2YWwyJ1xuICAgIH0pO1xuICAgIGNvbnN0IHByb2cgPSBuZXcgQXBwKCk7XG4gICAgdGVzdC5kZWVwRXF1YWwocHJvZy5nZXRDb250ZXh0KCdrZXkxJyksICd2YWwxJyk7XG4gICAgdGVzdC5kZWVwRXF1YWwocHJvZy5nZXRDb250ZXh0KCdrZXkyJyksICd2YWwyJyk7XG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ2NvbnRleHQgZnJvbSB0aGUgY29tbWFuZCBsaW5lIGNhbiBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgdGhlIHN0YWNrJyh0ZXN0OiBUZXN0KSB7XG4gICAgY29uc3Qgb3V0cHV0ID0gc3ludGhTdGFjaygnc3RhY2syJywgZmFsc2UsIHsgY3R4MTogJ0hFTExPJyB9KTtcblxuICAgIHRlc3QuZGVlcEVxdWFsKG91dHB1dC50ZW1wbGF0ZSwge1xuICAgICAgUmVzb3VyY2VzOiB7XG4gICAgICAgIHMyYzE6IHtcbiAgICAgICAgVHlwZTogXCJEdW1teVJlc291cmNlXCIsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBQcm9nMjogXCJQcm9nMlwiXG4gICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgczFjMnIxRDE3OTFDMDE6IHtcbiAgICAgICAgVHlwZTogXCJSZXNvdXJjZVR5cGUxXCJcbiAgICAgICAgfSxcbiAgICAgICAgczFjMnIyNUY2ODVGRkY6IHtcbiAgICAgICAgVHlwZTogXCJSZXNvdXJjZVR5cGUyXCIsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBGcm9tQ29udGV4dDogXCJIRUxMT1wiXG4gICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdzZXRDb250ZXh0KGssdikgY2FuIGJlIHVzZWQgdG8gc2V0IGNvbnRleHQgcHJvZ3JhbW1hdGljYWxseScodGVzdDogVGVzdCkge1xuICAgIGNvbnN0IHByb2cgPSBuZXcgQXBwKCk7XG4gICAgcHJvZy5zZXRDb250ZXh0KCdmb28nLCAnYmFyJyk7XG4gICAgdGVzdC5kZWVwRXF1YWwocHJvZy5nZXRDb250ZXh0KCdmb28nKSwgJ2JhcicpO1xuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICdzZXRDb250ZXh0KGssdikgY2Fubm90IGJlIGNhbGxlZCBhZnRlciBzdGFja3MgaGF2ZSBiZWVuIGFkZGVkIGJlY2F1c2Ugc3RhY2tzIG1heSB1c2UgdGhlIGNvbnRleHQnKHRlc3Q6IFRlc3QpIHtcbiAgICBjb25zdCBwcm9nID0gbmV3IEFwcCgpO1xuICAgIG5ldyBTdGFjayhwcm9nLCAnczEnKTtcbiAgICB0ZXN0LnRocm93cygoKSA9PiBwcm9nLnNldENvbnRleHQoJ2ZvbycsICdiYXInKSk7XG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ2FwcC5zeW50aGVzaXplU3RhY2soc3RhY2spIHBlcmZvcm1zIHZhbGlkYXRpb24gZmlyc3QgKGFwcC52YWxpZGF0ZUFsbCgpKSBhbmQgaWYgdGhlcmUgYXJlIGVycm9ycywgaXQgcmV0dXJucyB0aGUgZXJyb3JzJyh0ZXN0OiBUZXN0KSB7XG5cbiAgICBjbGFzcyBDaGlsZCBleHRlbmRzIENvbnN0cnVjdCB7XG4gICAgICBwdWJsaWMgdmFsaWRhdGUoKSB7XG4gICAgICAgIHJldHVybiBbIGBFcnJvciBmcm9tICR7dGhpcy5pZH1gIF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2xhc3MgUGFyZW50IGV4dGVuZHMgU3RhY2sge1xuXG4gICAgfVxuXG4gICAgY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuXG4gICAgY29uc3QgcGFyZW50ID0gbmV3IFBhcmVudChhcHAsICdQYXJlbnQnKTtcbiAgICBuZXcgQ2hpbGQocGFyZW50LCAnQzEnKTtcbiAgICBuZXcgQ2hpbGQocGFyZW50LCAnQzInKTtcblxuICAgIHRlc3QudGhyb3dzKCgpID0+IHtcbiAgICAgIGFwcC5zeW50aGVzaXplU3RhY2tzKFsnUGFyZW50J10pO1xuICAgIH0sIC9TdGFjayB2YWxpZGF0aW9uIGZhaWxlZCB3aXRoIHRoZSBmb2xsb3dpbmcgZXJyb3JzLyk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAnYXBwLnN5bnRoZXNpemVTdGFjayhzdGFjaykgd2lsbCByZXR1cm4gYSBsaXN0IG9mIG1pc3NpbmcgY29udGV4dHVhbCBpbmZvcm1hdGlvbicodGVzdDogVGVzdCkge1xuICAgIGNsYXNzIE15U3RhY2sgZXh0ZW5kcyBTdGFjayB7XG4gICAgICBjb25zdHJ1Y3RvcihwYXJlbnQ6IEFwcCwgbmFtZTogc3RyaW5nLCBwcm9wcz86IFN0YWNrUHJvcHMpIHtcbiAgICAgICAgc3VwZXIocGFyZW50LCBuYW1lLCBwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5yZXBvcnRNaXNzaW5nQ29udGV4dCgnbWlzc2luZy1jb250ZXh0LWtleScsIHtcbiAgICAgICAgICBwcm92aWRlcjogJ2Zha2UnLFxuICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBhY2NvdW50OiAnMTIzNDU2ODkwMTInLFxuICAgICAgICAgICAgcmVnaW9uOiAnYWItbm9ydGgtMScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnJlcG9ydE1pc3NpbmdDb250ZXh0KCdtaXNzaW5nLWNvbnRleHQta2V5LTInLCB7XG4gICAgICAgICAgcHJvdmlkZXI6ICdmYWtlMicsXG4gICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGZvbzogJ2JhcicsXG4gICAgICAgICAgICBhY2NvdW50OiAnMTIzNDU2ODkwMTInLFxuICAgICAgICAgICAgcmVnaW9uOiAnYWItc291dGgtMScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IHdpdGhBcHAodW5kZWZpbmVkLCBhcHAgPT4ge1xuICAgICAgbmV3IE15U3RhY2soYXBwLCAnTXlTdGFjaycpO1xuICAgIH0pO1xuXG4gICAgdGVzdC5kZWVwRXF1YWwocmVzcG9uc2Uuc3RhY2tzWzBdLm1pc3NpbmcsIHtcbiAgICAgIFwibWlzc2luZy1jb250ZXh0LWtleVwiOiB7XG4gICAgICAgIHByb3ZpZGVyOiAnZmFrZScsXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgYWNjb3VudDogJzEyMzQ1Njg5MDEyJyxcbiAgICAgICAgICByZWdpb246ICdhYi1ub3J0aC0xJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBcIm1pc3NpbmctY29udGV4dC1rZXktMlwiOiB7XG4gICAgICAgIHByb3ZpZGVyOiAnZmFrZTInLFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIGFjY291bnQ6ICcxMjM0NTY4OTAxMicsXG4gICAgICAgICAgcmVnaW9uOiAnYWItc291dGgtMScsXG4gICAgICAgICAgZm9vOiAnYmFyJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAncnVudGltZSBsaWJyYXJ5IHZlcnNpb25zJyh0ZXN0OiBUZXN0KSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSB3aXRoQXBwKHt9LCBhcHAgPT4ge1xuICAgICAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soYXBwLCAnc3RhY2sxJyk7XG4gICAgICBuZXcgUmVzb3VyY2Uoc3RhY2ssICdNeVJlc291cmNlJywgeyB0eXBlOiAnUmVzb3VyY2U6OlR5cGUnIH0pO1xuICAgIH0pO1xuXG4gICAgY29uc3QgbGlicyA9IHJlc3BvbnNlLnJ1bnRpbWUubGlicmFyaWVzO1xuXG4gICAgY29uc3QgdmVyc2lvbiA9IHJlcXVpcmUoJy4uL3BhY2thZ2UuanNvbicpLnZlcnNpb247XG4gICAgdGVzdC5kZWVwRXF1YWwobGlic1snQGF3cy1jZGsvY2RrJ10sIHZlcnNpb24pO1xuICAgIHRlc3QuZGVlcEVxdWFsKGxpYnNbJ0Bhd3MtY2RrL2N4LWFwaSddLCB2ZXJzaW9uKTtcbiAgICB0ZXN0LmRlZXBFcXVhbChsaWJzWydqc2lpLXJ1bnRpbWUnXSwgYG5vZGUuanMvJHtwcm9jZXNzLnZlcnNpb259YCk7XG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ2pzaWktcnVudGltZSB2ZXJzaW9uIGxvYWRlZCBmcm9tIEpTSUlfQUdFTlQnKHRlc3Q6IFRlc3QpIHtcbiAgICBwcm9jZXNzLmVudi5KU0lJX0FHRU5UID0gJ0phdmEvMS4yLjMuNCc7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IHdpdGhBcHAoe30sIGFwcCA9PiB7XG4gICAgICBjb25zdCBzdGFjayA9IG5ldyBTdGFjayhhcHAsICdzdGFjazEnKTtcbiAgICAgIG5ldyBSZXNvdXJjZShzdGFjaywgJ015UmVzb3VyY2UnLCB7IHR5cGU6ICdSZXNvdXJjZTo6VHlwZScgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBsaWJzID0gcmVzcG9uc2UucnVudGltZS5saWJyYXJpZXM7XG4gICAgdGVzdC5kZWVwRXF1YWwobGlic1snanNpaS1ydW50aW1lJ10sIGBKYXZhLzEuMi4zLjRgKTtcblxuICAgIGRlbGV0ZSBwcm9jZXNzLmVudi5KU0lJX0FHRU5UO1xuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICd2ZXJzaW9uIHJlcG9ydGluZyBpbmNsdWRlcyBvbmx5IEBhd3MtY2RrLCBhd3MtY2RrIGFuZCBqc2lpIGxpYnJhcmllcycodGVzdDogVGVzdCkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gd2l0aEFwcCh7fSwgYXBwID0+IHtcbiAgICAgIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKGFwcCwgJ3N0YWNrMScpO1xuICAgICAgbmV3IFJlc291cmNlKHN0YWNrLCAnTXlSZXNvdXJjZScsIHsgdHlwZTogJ1Jlc291cmNlOjpUeXBlJyB9KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGxpYnMgPSByZXNwb25zZS5ydW50aW1lLmxpYnJhcmllcztcblxuICAgIGNvbnN0IHZlcnNpb24gPSByZXF1aXJlKCcuLi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uO1xuICAgIHRlc3QuZGVlcEVxdWFsKGxpYnMsIHtcbiAgICAgICdAYXdzLWNkay9jZGsnOiB2ZXJzaW9uLFxuICAgICAgJ0Bhd3MtY2RrL2N4LWFwaSc6IHZlcnNpb24sXG4gICAgICAnanNpaS1ydW50aW1lJzogYG5vZGUuanMvJHtwcm9jZXNzLnZlcnNpb259YFxuICAgIH0pO1xuXG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG59O1xuXG5jbGFzcyBNeUNvbnN0cnVjdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHBhcmVudDogQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihwYXJlbnQsIG5hbWUpO1xuXG4gICAgbmV3IFJlc291cmNlKHRoaXMsICdyMScsIHsgdHlwZTogJ1Jlc291cmNlVHlwZTEnIH0pO1xuICAgIG5ldyBSZXNvdXJjZSh0aGlzLCAncjInLCB7IHR5cGU6ICdSZXNvdXJjZVR5cGUyJywgcHJvcGVydGllczogeyBGcm9tQ29udGV4dDogdGhpcy5nZXRDb250ZXh0KCdjdHgxJykgfSB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFN0cmlwIHN0YWNrIHRyYWNlcyBmcm9tIG1ldGFkYXRhXG4gKi9cbmZ1bmN0aW9uIHN0cmlwU3RhY2tUcmFjZXMobWV0YTogY3hhcGkuU3RhY2tNZXRhZGF0YSkge1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtZXRhKSkge1xuICAgIG1ldGFba2V5XSA9IG1ldGFba2V5XS5maWx0ZXIoZW50cnkgPT4gZW50cnkudHlwZSAhPT0gJ2F3czpjZGs6bG9naWNhbElkJyk7XG4gIH1cbn1cbiJdfQ==

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc