awslint 2.261.0-alpha.0 → 2.262.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/awslint.js +4 -1
- package/bin/awslint.ts +2 -0
- package/package.json +6 -6
package/bin/awslint.js
CHANGED
|
@@ -172,6 +172,9 @@ async function main() {
|
|
|
172
172
|
if (color) {
|
|
173
173
|
console.error(color(`${lib_1.DiagnosticLevel[diag.level].toLowerCase()}: [${chalk.bold(`awslint:${diag.rule.code}`)}:${chalk.bold(diag.scope)}] ${diag.message}`));
|
|
174
174
|
}
|
|
175
|
+
else {
|
|
176
|
+
console.error(`${lib_1.DiagnosticLevel[diag.level].toLowerCase()}: [${`awslint:${diag.rule.code}`}:${diag.scope}] ${diag.message}`);
|
|
177
|
+
}
|
|
175
178
|
}
|
|
176
179
|
if (excludesToSave.length > 0) {
|
|
177
180
|
if (standloneOptions) {
|
|
@@ -293,4 +296,4 @@ async function shell(command) {
|
|
|
293
296
|
child.once('error', ko);
|
|
294
297
|
});
|
|
295
298
|
}
|
|
296
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzbGludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3c2xpbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSw2REFBK0M7QUFDL0MsMkNBQTZCO0FBQzdCLDZDQUErQjtBQUMvQiw2Q0FBK0I7QUFDL0Isc0RBQXdDO0FBQ3hDLDZDQUErQjtBQUMvQixnQ0FBMEU7QUFFMUUsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO0FBRXZCLEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sSUFBSSxHQUFHLEtBQUs7U0FDZixHQUFHLENBQUMsU0FBUyxDQUFDO1NBQ2QsS0FBSyxDQUFDLDZCQUE2QixDQUFDO1NBQ3BDLGNBQWMsQ0FBQyxJQUFJLENBQUM7U0FDcEIsT0FBTyxDQUFDLElBQUksRUFBRSxtQ0FBbUMsQ0FBQztTQUNsRCxPQUFPLENBQUMsTUFBTSxFQUFFLDBCQUEwQixDQUFDO1NBQzNDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLDRCQUE0QixFQUFFLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7U0FDcEcsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsNkRBQTZELEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO1NBQ2xJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxxR0FBcUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDaEssTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsd0NBQXdDLEVBQUUsT0FBTyxFQUFF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Q0FBQztnQkFDTixPQUFPLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLE9BQU8sdUJBQXVCLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCAqIGFzIGNoaWxkX3Byb2Nlc3MgZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgcmVmbGVjdCBmcm9tICdqc2lpLXJlZmxlY3QnO1xuaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuaW1wb3J0IHsgQUxMX1JVTEVTX0xJTlRFUiwgRGlhZ25vc3RpY0xldmVsLCBSdWxlRmlsdGVyU2V0IH0gZnJvbSAnLi4vbGliJztcblxubGV0IHN0YWNrVHJhY2UgPSBmYWxzZTtcblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3QgYXJndiA9IHlhcmdzXG4gICAgLmVudignQVdTTElOVCcpXG4gICAgLnVzYWdlKCdhd3NsaW50IFtvcHRpb25zXSBbY29tbWFuZF0nKVxuICAgIC5zaG93SGVscE9uRmFpbCh0cnVlKVxuICAgIC5jb21tYW5kKCckMCcsICdsaW50IHRoZSBjdXJyZW50IG1vZHVsZSAoZGVmYXVsdCknKVxuICAgIC5jb21tYW5kKCdsaXN0JywgJ2xpc3QgYWxsIGF2YWlsYWJsZSBydWxlcycpXG4gICAgLm9wdGlvbignaW5jbHVkZScsIHsgYWxpYXM6ICdpJywgdHlwZTogJ2FycmF5JywgZGVzYzogJ2V2YWx1YXRlIG9ubHkgdGhpcyBydWxlKHMpJywgZGVmYXVsdDogWycqJ10gfSlcbiAgICAub3B0aW9uKCdleGNsdWRlJywgeyBhbGlhczogJ3gnLCB0eXBlOiAnYXJyYXknLCBkZXNjOiAnZG8gbm90IGV2YWx1YXRlIHRoZXNlIHJ1bGVzICh0YWtlcyBwcmlvcml0eSBvdmVyIC0taW5jbHVkZSknLCBkZWZhdWx0OiBbXSB9KVxuICAgIC5vcHRpb24oJ3NhdmUnLCB7IHR5cGU6ICdib29sZWFuJywgZGVzYzogJ3VwZGF0ZXMgcGFja2FnZS5qc29uIChvciBhd3NsaW50Lmpzb24gaWYgaXQgZXhpc3RzKSB3aXRoIFwiZXhjbHVkZVwiIHN0YXRlbWVudHMgZm9yIGFsbCBmYWlsaW5nIHJ1bGVzJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAub3B0aW9uKCd2ZXJib3NlJywgeyBhbGlhczogJ3YnLCB0eXBlOiAnYm9vbGVhbicsIGRlc2M6ICd2ZXJib3NlIG91dHB1dCAocHJpbnRzIGFsbCBhc3NlcnRpb25zKScsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgLm9wdGlvbigncXVpZXQnLCB7IGFsaWFzOiAncScsIHR5cGU6ICdib29sZWFuJywgZGVzYzogJ3F1aWV0IG1vZGUgLSBzaG93cyBvbmx5IGVycm9ycycsIGRlZmF1bHQ6IHRydWUgfSlcbiAgICAub3B0aW9uKCdmb3JjZScsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjOiAnc3VjY2VlZCBzaWxlbnRseSBpZiB0aGlzIGlzIG5vdCBhIGpzaWkgbW9kdWxlJywgZGVmYXVsdDogdHJ1ZSB9KVxuICAgIC5vcHRpb24oJ2NvbmZpZycsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjOiAncmVhZHMgb3B0aW9ucyBmcm9tIFwiYXdzbGludC5qc29uXCIgaWYgaXQgZXhpc3RzLCBhbmQgb3RoZXJ3aXNlIGZyb20gdGhlIFwiYXdzbGludFwiIHNlY3Rpb24gaW4gcGFja2FnZS5qc29uJywgZGVmYXVsdDogdHJ1ZSB9KVxuICAgIC5vcHRpb24oJ2RlYnVnJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlc2M6ICdkZWJ1ZyBvdXRwdXQnLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgIC5vcHRpb24oJ2NvbXBpbGUnLCB7IGFsaWFzOiAnYycsIHR5cGU6ICdib29sZWFuJywgZGVzYzogJ2Fsd2F5cyBydW4gdGhlIGpzaWkgY29tcGlsZXIgKHVzZSBcIi0tbm8tY29tcGlsZVwiIHRvIG5ldmVyIHJ1biB0aGUgY29tcGlsZXIsIGV2ZW4gaWYgLmpzaWkgZG9lc25cXCd0IGV4aXN0KScgfSlcbiAgICAuZ3JvdXAoJ2luY2x1ZGUnLCAnRmlsdGVyaW5nJylcbiAgICAuZ3JvdXAoJ2V4Y2x1ZGUnLCAnRmlsdGVyaW5nJylcbiAgICAuZ3JvdXAoJ2NvbmZpZycsICdDb25maWd1cmF0aW9uJylcbiAgICAuZ3JvdXAoJ3NhdmUnLCAnQ29uZmlndXJhdGlvbicpXG4gICAgLmdyb3VwKCd2ZXJib3NlJywgJ091dHB1dCcpXG4gICAgLmdyb3VwKCdxdWlldCcsICdPdXRwdXQnKVxuICAgIC5ncm91cCgnZGVidWcnLCAnT3V0cHV0JylcbiAgICAuZ3JvdXAoJ2NvbXBpbGUnLCAnQnVpbGQnKVxuICAgIC5leGFtcGxlKCdhd3NsaW50JywgJ2xpbnRzIHRoZSBjdXJyZW50IG1vZHVsZSBhZ2FpbnN0IGFsbCBydWxlcycpXG4gICAgLmV4YW1wbGUoJ2F3c2xpbnQgLXYgLWkgXCJyZXNvdXJjZSpcIiAtaSBcImltcG9ydCpcIicsICdsaW50cyBhZ2FpbnN0IGFsbCBydWxlcyB0aGF0IHN0YXJ0IHdpdGggXCJyZXNvdXJjZVwiIG9yIFwiaW1wb3J0XCIgYW5kIHByaW50IHN1Y2Nlc3NlcycpXG4gICAgLmV4YW1wbGUoJ2F3c2xpbnQgLXggXCIqOkBhd3MtY2RrL2F3cy1zMypcIicsICdldmFsdWF0ZSBhbGwgcnVsZXMgaW4gYWxsIHNjb3BlcyBiZXNpZGVzIG9uZXMgdGhhdCBiZWdpbiB3aXRoIFwiQGF3cy1jZGsvYXdzLXMzXCInKVxuICAgIC5leGFtcGxlKCdhd3NsaW50IC0tc2F2ZScsICd1cGRhdGVkIFwiYXdzbGludC5qc29uXCIgd2l0aCBcImV4Y2x1ZGVcInMgZm9yIGFsbCBmYWlsaW5nIHJ1bGVzJyk7XG5cbiAgaWYgKCFwcm9jZXNzLnN0ZG91dC5pc1RUWSkge1xuICAgIC8vIERpc2FibGUgY2hhbGsgY29sb3IgaGlnaGxpZ2h0aW5nXG4gICAgcHJvY2Vzcy5lbnYuRk9SQ0VfQ09MT1IgPSAnMCc7XG4gIH1cblxuICBjb25zdCBhcmdzID0gYXJndi5hcmd2O1xuXG4gIHN0YWNrVHJhY2UgPSBhcmdzLnZlcmJvc2UgfHwgYXJncy5kZWJ1ZztcblxuICBpZiAoYXJncy5fLmxlbmd0aCA+IDEpIHtcbiAgICBhcmd2LnNob3dIZWxwKCk7XG4gICAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY29tbWFuZCA9IGFyZ3MuX1swXSB8fCAnbGludCc7XG4gIGNvbnN0IHdvcmtkaXIgPSBwcm9jZXNzLmN3ZCgpO1xuXG4gIGNvbnN0IHBrZ0NvbmZpZyA9IHBhdGguam9pbih3b3JrZGlyLCAncGFja2FnZS5qc29uJyk7XG4gIGNvbnN0IGF3c2xpbnRDb25maWcgPSBwYXRoLmpvaW4od29ya2RpciwgJ2F3c2xpbnQuanNvbicpO1xuXG4gIGlmIChjb21tYW5kID09PSAnbGlzdCcpIHtcbiAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgQUxMX1JVTEVTX0xJTlRFUi5ydWxlcykge1xuICAgICAgY29uc29sZS5pbmZvKGAke2NoYWxrLmN5YW4ocnVsZS5jb2RlKX06ICR7cnVsZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBpZiBubyBwYWNrYWdlLmpzb24gYW5kIGZvcmNlIGlzIHRydWUgKGRlZmF1bHQpLCBqdXN0IGRvbid0IGRvIGFueXRoaW5nXG4gIGlmICghYXdhaXQgZnMucGF0aEV4aXN0cyhwa2dDb25maWcpICYmIGFyZ3MuZm9yY2UpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBwa2cgPSBhd2FpdCBmcy5yZWFkSlNPTihwa2dDb25maWcpO1xuXG4gIC8vIGlmIHRoaXMgaXMgbm90IGEganNpaSBtb2R1bGUgd2UgaGF2ZSBub3RoaW5nIHRvIGxvb2sgZm9yXG4gIGlmICghcGtnLmpzaWkpIHtcbiAgICBpZiAoYXJncy5mb3JjZSkge1xuICAgICAgcmV0dXJuOyAvLyBqdXN0IHNpbGVudGx5IHN1Y2NlZWRcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSBpbiAke3dvcmtkaXJ9IGlzIG5vdCBhIGpzaWkgbW9kdWxlIChubyBcImpzaWlcIiBzZWN0aW9uIGluIHBhY2thZ2UuanNvbilgKTtcbiAgfVxuXG4gIC8vIGlmIHBhY2thZ2UuanNvbiBjb250YWlucyBhIGBqc2lpYCBzZWN0aW9uIGJ1dCB0aGVyZSBpcyBubyAuanNpaSBmaWxlXG4gIC8vIGl0IG1lYW5zIHdlIGhhdmVuJ3QgY29tcGlsZWQgdGhlIG1vZHVsZS5cbiAgaWYgKGF3YWl0IHNob3VsZENvbXBpbGUoKSkge1xuICAgIGF3YWl0IHNoZWxsKCdqc2lpJyk7XG4gIH1cblxuICAvLyBhd3NsaW50Lmpzb24gdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHBhY2thZ2UuanNvbiBmb3IgYXdzbGludCBvcHRpb25zLlxuICBjb25zdCBzdGFuZGxvbmVPcHRpb25zID0gYXdhaXQgcmVhZFN0YW5kYWxvbmVPcHRpb25zKGF3c2xpbnRDb25maWcpO1xuXG4gIC8vIHJlYWQgXCJhd3NsaW50XCIgZnJvbSBwYWNrYWdlLmpzb25cbiAgaWYgKGFyZ3MuY29uZmlnKSB7XG4gICAgaWYgKHN0YW5kbG9uZU9wdGlvbnMpIHtcbiAgICAgIGlmIChwa2cuYXdzbGludCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ2F3c2xpbnQgb3B0aW9ucyBpbiBwYWNrYWdlLmpzb24gd2lsbCBiZSBpZ25vcmVkIHNpbmNlIGF3c2xpbnQuanNvbiBleGlzdHMuJyk7XG4gICAgICB9XG4gICAgICBtZXJnZU9wdGlvbnMoYXJncywgc3RhbmRsb25lT3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1lcmdlT3B0aW9ucyhhcmdzLCBwa2cuYXdzbGludCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGFyZ3MuZGVidWcpIHtcbiAgICBjb25zb2xlLmVycm9yKCdjb21tYW5kOiAnICsgY29tbWFuZCk7XG4gICAgY29uc29sZS5lcnJvcignb3B0aW9uczogJyArIEpTT04uc3RyaW5naWZ5KGFyZ3MsIHVuZGVmaW5lZCwgMikpO1xuICB9XG5cbiAgaWYgKGNvbW1hbmQgPT09ICdsaW50Jykge1xuICAgIGNvbnN0IGFzc2VtYmx5ID0gYXdhaXQgbG9hZE1vZHVsZSh3b3JrZGlyKTtcbiAgICBpZiAoIWFzc2VtYmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXhjbHVkZXNUb1NhdmUgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIGxldCBlcnJvcnMgPSAwO1xuXG4gICAgY29uc3QgaW5jbHVkZVJ1bGVzID0gbmV3IFJ1bGVGaWx0ZXJTZXQoYXJncy5pbmNsdWRlKTtcbiAgICBjb25zdCBleGNsdWRlUnVsZXMgPSBuZXcgUnVsZUZpbHRlclNldChhcmdzLmV4Y2x1ZGUpO1xuXG4gICAgY29uc3QgcmVzdWx0cyA9IFtdO1xuXG4gICAgcmVzdWx0cy5wdXNoKC4uLkFMTF9SVUxFU19MSU5URVIuZXZhbChhc3NlbWJseSwge1xuICAgICAgaW5jbHVkZVJ1bGVzOiBpbmNsdWRlUnVsZXMsXG4gICAgICBleGNsdWRlUnVsZXM6IGV4Y2x1ZGVSdWxlcyxcbiAgICB9KSk7XG5cbiAgICAvLyBTb3J0IGVycm9ycyB0byB0aGUgdG9wIChoaWdoZXN0IHNldmVyaXR5IGZpcnN0KVxuICAgIHJlc3VsdHMuc29ydCgoYSwgYikgPT4gYi5sZXZlbCAtIGEubGV2ZWwpO1xuXG4gICAgLy8gcHJvY2VzcyByZXN1bHRzXG5cbiAgICBmb3IgKGNvbnN0IGRpYWcgb2YgcmVzdWx0cykge1xuICAgICAgY29uc3Qgc3VwcHJlc3Npb25LZXkgPSBgJHtkaWFnLnJ1bGUuY29kZX06JHtkaWFnLnNjb3BlfWA7XG5cbiAgICAgIGxldCBjb2xvcjtcbiAgICAgIHN3aXRjaCAoZGlhZy5sZXZlbCkge1xuICAgICAgICBjYXNlIERpYWdub3N0aWNMZXZlbC5TdWNjZXNzOlxuICAgICAgICAgIGlmIChhcmdzLnZlcmJvc2UpIHtcbiAgICAgICAgICAgIGNvbG9yID0gY2hhbGsuZ3JheTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRGlhZ25vc3RpY0xldmVsLkVycm9yOlxuICAgICAgICAgIGVycm9ycysrO1xuICAgICAgICAgIGNvbG9yID0gY2hhbGsucmVkO1xuICAgICAgICAgIGlmIChhcmdzLnNhdmUpIHtcbiAgICAgICAgICAgIGV4Y2x1ZGVzVG9TYXZlLnB1c2goc3VwcHJlc3Npb25LZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBEaWFnbm9zdGljTGV2ZWwuV2FybmluZzpcbiAgICAgICAgICBpZiAoIWFyZ3MucXVpZXQpIHtcbiAgICAgICAgICAgIGNvbG9yID0gY2hhbGsueWVsbG93O1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBEaWFnbm9zdGljTGV2ZWwuU2tpcHBlZDpcbiAgICAgICAgICBpZiAoIWFyZ3MucXVpZXQpIHtcbiAgICAgICAgICAgIGNvbG9yID0gY2hhbGsuYmx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb2xvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGNvbG9yKGAke0RpYWdub3N0aWNMZXZlbFtkaWFnLmxldmVsXS50b0xvd2VyQ2FzZSgpfTogWyR7Y2hhbGsuYm9sZChgYXdzbGludDoke2RpYWcucnVsZS5jb2RlfWApfToke2NoYWxrLmJvbGQoZGlhZy5zY29wZSl9XSAke2RpYWcubWVzc2FnZX1gKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV4Y2x1ZGVzVG9TYXZlLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmIChzdGFuZGxvbmVPcHRpb25zKSB7XG4gICAgICAgIGlmICghc3RhbmRsb25lT3B0aW9ucy5leGNsdWRlKSB7XG4gICAgICAgICAgc3RhbmRsb25lT3B0aW9ucy5leGNsdWRlID0gW107XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghcGtnLmF3c2xpbnQpIHtcbiAgICAgICAgICBwa2cuYXdzbGludCA9IHsgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcGtnLmF3c2xpbnQuZXhjbHVkZSkge1xuICAgICAgICAgIHBrZy5hd3NsaW50LmV4Y2x1ZGUgPSBbXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBleGNsdWRlczogc3RyaW5nW10gPSBzdGFuZGxvbmVPcHRpb25zID8gc3RhbmRsb25lT3B0aW9ucy5leGNsdWRlIDogcGtnLmF3c2xpbnQuZXhjbHVkZTtcblxuICAgICAgZm9yIChjb25zdCBleGNsdWRlIG9mIGV4Y2x1ZGVzVG9TYXZlKSB7XG4gICAgICAgIGlmIChleGNsdWRlcy5pbmRleE9mKGV4Y2x1ZGUpID09PSAtMSkge1xuICAgICAgICAgIGV4Y2x1ZGVzLnB1c2goZXhjbHVkZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGV4Y2x1ZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKHN0YW5kbG9uZU9wdGlvbnMpIHtcbiAgICAgICAgICAvLyBJZiBhd3NsaW50Lmpzb24gZXhpc3RzLCB3cml0ZSB0aGUgZXhjbHVkZXMgdGhlcmUgaW5zdGVhZCBvZiB0aGUgb2xkIHBhY2thZ2UuanNvbiAobGVnYWN5IGZvcm1hdCkuXG4gICAgICAgICAgaWYgKHBrZy5hd3NsaW50KSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0V4Y2x1ZGVzIHdpbGwgYmUgd3JpdHRlbiB0byBhd3NsaW50Lmpzb24uJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGF3YWl0IGZzLndyaXRlSlNPTihhd3NsaW50Q29uZmlnLCBzdGFuZGxvbmVPcHRpb25zLCB7IHNwYWNlczogMiB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhd2FpdCBmcy53cml0ZUpTT04ocGtnQ29uZmlnLCBwa2csIHsgc3BhY2VzOiAyIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGVycm9ycyAmJiAhYXJncy5zYXZlKSB7XG4gICAgICBwcm9jZXNzLmV4aXRDb2RlID0gMTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBhcmd2LnNob3dIZWxwKCk7XG4gIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb21tYW5kOiAke2NvbW1hbmR9YCk7XG5cbiAgYXN5bmMgZnVuY3Rpb24gc2hvdWxkQ29tcGlsZSgpIHtcbiAgICAvLyBpZiAtLWNvbXBpbGUgaXMgZXhwbGljaXRseSBlbmFibGVkIHRoZW4ganVzdCBjb21waWxlIGFsd2F5c1xuICAgIGlmIChhcmdzLmNvbXBpbGUgPT09IHRydWUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIGlmIHdlIGhhdmUgYSAuanNpaSBmaWxlIGFuZCB3ZSBhcmUgbm90IGZvcmNlZCB0byBjb21waWxlLCB0aGVuIGRvbid0IGNvbXBpbGVcbiAgICBpZiAoYXdhaXQgZnMucGF0aEV4aXN0cyhwYXRoLmpvaW4od29ya2RpciwgJy5qc2lpJykpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gd2UgZG9uJ3QgaGF2ZSBhIC5qc2lpIGZpbGUsIGFuZCAtLW5vLWNvbXBpbGUgaXMgZXhwbGljaWx5IHNldCwgdGhlbiBpdCdzIGFuIGVycm9yXG4gICAgaWYgKGFyZ3MuY29tcGlsZSA9PT0gZmFsc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gLmpzaWkgZmlsZSBhbmQgLS1uby1jb21waWxlIGlzIHNldCcpO1xuICAgIH1cblxuICAgIC8vIGNvbXBpbGUhXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxubWFpbigpLmNhdGNoKGUgPT4ge1xuICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZChlLm1lc3NhZ2UpKTtcbiAgaWYgKHN0YWNrVHJhY2UpIHtcbiAgICBjb25zb2xlLmVycm9yKGUuc3RhY2spO1xuICB9XG4gIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xufSk7XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWRNb2R1bGUoZGlyOiBzdHJpbmcpIHtcbiAgY29uc3QgdHMgPSBuZXcgcmVmbGVjdC5UeXBlU3lzdGVtKCk7XG4gIGF3YWl0IHRzLmxvYWQoZGlyLCB7XG4gICAgdmFsaWRhdGU6IGZhbHNlLCAvLyBEb24ndCB2YWxpZGF0ZSB0byBzYXZlIDY2JSBvZiBleGVjdXRpb24gdGltZSAoMjBzIHZzIDFtaW4pLlxuICAgIHN1cHBvcnRlZEZlYXR1cmVzOiBbJ2ludGVyc2VjdGlvbi10eXBlcycsICdjbGFzcy1jb3ZhcmlhbnQtb3ZlcnJpZGVzJ10sXG4gIH0pO1xuICAvLyBXZSBydW4gJ2F3c2xpbnQnIGR1cmluZyBidWlsZCB0aW1lLCBhc3NlbWJsaWVzIGFyZSBndWFyYW50ZWVkIHRvIGJlIG9rLlxuXG4gIC8vIFdlIHdvbid0IGxvYWQgYW55IG1vcmUgYXNzZW1ibGllcy4gTG9jayB0aGUgdHlwZXN5c3RlbSB0byBiZW5lZml0IGZyb20gcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzLlxuICB0cy5sb2NrKCk7XG5cbiAgaWYgKHRzLnJvb3RzLmxlbmd0aCAhPT0gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0aW5nIG9ubHkgYSBzaW5nbGUgcm9vdCBhc3NlbWJseScpO1xuICB9XG5cbiAgcmV0dXJuIHRzLnJvb3RzWzBdO1xufVxuXG5mdW5jdGlvbiBtZXJnZU9wdGlvbnMoZGVzdDogYW55LCBwa2c/OiBhbnkpIHtcbiAgaWYgKCFwa2cpIHsgcmV0dXJuOyB9IC8vIG5vIG9wdGlvbnMgaW4gcGFja2FnZS5qc29uXG5cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGtnKSkge1xuICAgIC8vIGlmIHRoaXMgaXMgYW4gYXJyYXkgb3B0aW9uLCB0aGVuIGFkZCB2YWx1ZXMgdG8gZGVzdGluYXRpb25cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGNvbnN0IGFyciA9IGRlc3Rba2V5XSB8fCBbXTtcbiAgICAgIGFyci5wdXNoKC4uLnZhbHVlKTtcbiAgICAgIGRlc3Rba2V5XSA9IGFycjtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIG9iamVjdHMgYXJlIG5vdCBhbGxvd2VkXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBvcHRpb24gXCIke2tleX1cIiBpbiBwYWNrYWdlLmpzb246ICR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWApO1xuICAgIH1cblxuICAgIC8vIHByaW1pdGl2ZXMgc2ltcGx5IG92ZXJyaWRlXG4gICAgZGVzdFtrZXldID0gdmFsdWU7XG4gIH1cblxuICByZXR1cm4gZGVzdDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZFN0YW5kYWxvbmVPcHRpb25zKGF3c2xpbnRDb25maWc6IHN0cmluZykge1xuICBpZiAoIWF3YWl0IGZzLnBhdGhFeGlzdHMoYXdzbGludENvbmZpZykpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBvcHRpb25zID0gYXdhaXQgZnMucmVhZEpTT04oYXdzbGludENvbmZpZyk7XG4gIHJldHVybiBvcHRpb25zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzaGVsbChjb21tYW5kOiBzdHJpbmcpIHtcbiAgY29uc3QgY2hpbGQgPSBjaGlsZF9wcm9jZXNzLnNwYXduKGNvbW1hbmQsIFtdLCB7IHN0ZGlvOiBbJ2luaGVyaXQnLCAnaW5oZXJpdCcsICdpbmhlcml0J10gfSk7XG4gIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigob2ssIGtvKSA9PiB7XG4gICAgY2hpbGQub25jZSgnZXhpdCcsIChzdGF0dXM6IGFueSkgPT4ge1xuICAgICAgaWYgKHN0YXR1cyA9PT0gMCkge1xuICAgICAgICByZXR1cm4gb2soKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBrbyhuZXcgRXJyb3IoYCR7Y29tbWFuZH0gZXhpdGVkIHdpdGggc3RhdHVzICR7c3RhdHVzfWApKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjaGlsZC5vbmNlKCdlcnJvcicsIGtvKTtcbiAgfSk7XG59XG4iXX0=
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzbGludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3c2xpbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSw2REFBK0M7QUFDL0MsMkNBQTZCO0FBQzdCLDZDQUErQjtBQUMvQiw2Q0FBK0I7QUFDL0Isc0RBQXdDO0FBQ3hDLDZDQUErQjtBQUMvQixnQ0FBMEU7QUFFMUUsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO0FBRXZCLEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sSUFBSSxHQUFHLEtBQUs7U0FDZixHQUFHLENBQUMsU0FBUyxDQUFDO1NBQ2QsS0FBSyxDQUFDLDZCQUE2QixDQUFDO1NBQ3BDLGNBQWMsQ0FBQyxJQUFJLENBQUM7U0FDcEIsT0FBTyxDQUFDLElBQUksRUFBRSxtQ0FBbUMsQ0FBQztTQUNsRCxPQUFPLENBQUMsTUFBTSxFQUFFLDBCQUEwQixDQUFDO1NBQzNDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLDRCQUE0QixFQUFFLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7U0FDcEcsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsNkRBQTZELEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO1NBQ2xJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxxR0FBcUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDaEssTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsd0NBQXdDLEVBQUUsT0FBTyxFQUFF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QUM7SUFDN0YsT0FBTyxJQUFJLE9BQU8sQ0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtRQUNsQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ2pDLElBQUksTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQixPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ2QsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsT0FBTyx1QkFBdUIsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0ICogYXMgY2hpbGRfcHJvY2VzcyBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgKiBhcyByZWZsZWN0IGZyb20gJ2pzaWktcmVmbGVjdCc7XG5pbXBvcnQgKiBhcyB5YXJncyBmcm9tICd5YXJncyc7XG5pbXBvcnQgeyBBTExfUlVMRVNfTElOVEVSLCBEaWFnbm9zdGljTGV2ZWwsIFJ1bGVGaWx0ZXJTZXQgfSBmcm9tICcuLi9saWInO1xuXG5sZXQgc3RhY2tUcmFjZSA9IGZhbHNlO1xuXG5hc3luYyBmdW5jdGlvbiBtYWluKCkge1xuICBjb25zdCBhcmd2ID0geWFyZ3NcbiAgICAuZW52KCdBV1NMSU5UJylcbiAgICAudXNhZ2UoJ2F3c2xpbnQgW29wdGlvbnNdIFtjb21tYW5kXScpXG4gICAgLnNob3dIZWxwT25GYWlsKHRydWUpXG4gICAgLmNvbW1hbmQoJyQwJywgJ2xpbnQgdGhlIGN1cnJlbnQgbW9kdWxlIChkZWZhdWx0KScpXG4gICAgLmNvbW1hbmQoJ2xpc3QnLCAnbGlzdCBhbGwgYXZhaWxhYmxlIHJ1bGVzJylcbiAgICAub3B0aW9uKCdpbmNsdWRlJywgeyBhbGlhczogJ2knLCB0eXBlOiAnYXJyYXknLCBkZXNjOiAnZXZhbHVhdGUgb25seSB0aGlzIHJ1bGUocyknLCBkZWZhdWx0OiBbJyonXSB9KVxuICAgIC5vcHRpb24oJ2V4Y2x1ZGUnLCB7IGFsaWFzOiAneCcsIHR5cGU6ICdhcnJheScsIGRlc2M6ICdkbyBub3QgZXZhbHVhdGUgdGhlc2UgcnVsZXMgKHRha2VzIHByaW9yaXR5IG92ZXIgLS1pbmNsdWRlKScsIGRlZmF1bHQ6IFtdIH0pXG4gICAgLm9wdGlvbignc2F2ZScsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjOiAndXBkYXRlcyBwYWNrYWdlLmpzb24gKG9yIGF3c2xpbnQuanNvbiBpZiBpdCBleGlzdHMpIHdpdGggXCJleGNsdWRlXCIgc3RhdGVtZW50cyBmb3IgYWxsIGZhaWxpbmcgcnVsZXMnLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgIC5vcHRpb24oJ3ZlcmJvc2UnLCB7IGFsaWFzOiAndicsIHR5cGU6ICdib29sZWFuJywgZGVzYzogJ3ZlcmJvc2Ugb3V0cHV0IChwcmludHMgYWxsIGFzc2VydGlvbnMpJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAub3B0aW9uKCdxdWlldCcsIHsgYWxpYXM6ICdxJywgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjOiAncXVpZXQgbW9kZSAtIHNob3dzIG9ubHkgZXJyb3JzJywgZGVmYXVsdDogdHJ1ZSB9KVxuICAgIC5vcHRpb24oJ2ZvcmNlJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlc2M6ICdzdWNjZWVkIHNpbGVudGx5IGlmIHRoaXMgaXMgbm90IGEganNpaSBtb2R1bGUnLCBkZWZhdWx0OiB0cnVlIH0pXG4gICAgLm9wdGlvbignY29uZmlnJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlc2M6ICdyZWFkcyBvcHRpb25zIGZyb20gXCJhd3NsaW50Lmpzb25cIiBpZiBpdCBleGlzdHMsIGFuZCBvdGhlcndpc2UgZnJvbSB0aGUgXCJhd3NsaW50XCIgc2VjdGlvbiBpbiBwYWNrYWdlLmpzb24nLCBkZWZhdWx0OiB0cnVlIH0pXG4gICAgLm9wdGlvbignZGVidWcnLCB7IHR5cGU6ICdib29sZWFuJywgZGVzYzogJ2RlYnVnIG91dHB1dCcsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgLm9wdGlvbignY29tcGlsZScsIHsgYWxpYXM6ICdjJywgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjOiAnYWx3YXlzIHJ1biB0aGUganNpaSBjb21waWxlciAodXNlIFwiLS1uby1jb21waWxlXCIgdG8gbmV2ZXIgcnVuIHRoZSBjb21waWxlciwgZXZlbiBpZiAuanNpaSBkb2VzblxcJ3QgZXhpc3QpJyB9KVxuICAgIC5ncm91cCgnaW5jbHVkZScsICdGaWx0ZXJpbmcnKVxuICAgIC5ncm91cCgnZXhjbHVkZScsICdGaWx0ZXJpbmcnKVxuICAgIC5ncm91cCgnY29uZmlnJywgJ0NvbmZpZ3VyYXRpb24nKVxuICAgIC5ncm91cCgnc2F2ZScsICdDb25maWd1cmF0aW9uJylcbiAgICAuZ3JvdXAoJ3ZlcmJvc2UnLCAnT3V0cHV0JylcbiAgICAuZ3JvdXAoJ3F1aWV0JywgJ091dHB1dCcpXG4gICAgLmdyb3VwKCdkZWJ1ZycsICdPdXRwdXQnKVxuICAgIC5ncm91cCgnY29tcGlsZScsICdCdWlsZCcpXG4gICAgLmV4YW1wbGUoJ2F3c2xpbnQnLCAnbGludHMgdGhlIGN1cnJlbnQgbW9kdWxlIGFnYWluc3QgYWxsIHJ1bGVzJylcbiAgICAuZXhhbXBsZSgnYXdzbGludCAtdiAtaSBcInJlc291cmNlKlwiIC1pIFwiaW1wb3J0KlwiJywgJ2xpbnRzIGFnYWluc3QgYWxsIHJ1bGVzIHRoYXQgc3RhcnQgd2l0aCBcInJlc291cmNlXCIgb3IgXCJpbXBvcnRcIiBhbmQgcHJpbnQgc3VjY2Vzc2VzJylcbiAgICAuZXhhbXBsZSgnYXdzbGludCAteCBcIio6QGF3cy1jZGsvYXdzLXMzKlwiJywgJ2V2YWx1YXRlIGFsbCBydWxlcyBpbiBhbGwgc2NvcGVzIGJlc2lkZXMgb25lcyB0aGF0IGJlZ2luIHdpdGggXCJAYXdzLWNkay9hd3MtczNcIicpXG4gICAgLmV4YW1wbGUoJ2F3c2xpbnQgLS1zYXZlJywgJ3VwZGF0ZWQgXCJhd3NsaW50Lmpzb25cIiB3aXRoIFwiZXhjbHVkZVwicyBmb3IgYWxsIGZhaWxpbmcgcnVsZXMnKTtcblxuICBpZiAoIXByb2Nlc3Muc3Rkb3V0LmlzVFRZKSB7XG4gICAgLy8gRGlzYWJsZSBjaGFsayBjb2xvciBoaWdobGlnaHRpbmdcbiAgICBwcm9jZXNzLmVudi5GT1JDRV9DT0xPUiA9ICcwJztcbiAgfVxuXG4gIGNvbnN0IGFyZ3MgPSBhcmd2LmFyZ3Y7XG5cbiAgc3RhY2tUcmFjZSA9IGFyZ3MudmVyYm9zZSB8fCBhcmdzLmRlYnVnO1xuXG4gIGlmIChhcmdzLl8ubGVuZ3RoID4gMSkge1xuICAgIGFyZ3Yuc2hvd0hlbHAoKTtcbiAgICBwcm9jZXNzLmV4aXRDb2RlID0gMTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBjb21tYW5kID0gYXJncy5fWzBdIHx8ICdsaW50JztcbiAgY29uc3Qgd29ya2RpciA9IHByb2Nlc3MuY3dkKCk7XG5cbiAgY29uc3QgcGtnQ29uZmlnID0gcGF0aC5qb2luKHdvcmtkaXIsICdwYWNrYWdlLmpzb24nKTtcbiAgY29uc3QgYXdzbGludENvbmZpZyA9IHBhdGguam9pbih3b3JrZGlyLCAnYXdzbGludC5qc29uJyk7XG5cbiAgaWYgKGNvbW1hbmQgPT09ICdsaXN0Jykge1xuICAgIGZvciAoY29uc3QgcnVsZSBvZiBBTExfUlVMRVNfTElOVEVSLnJ1bGVzKSB7XG4gICAgICBjb25zb2xlLmluZm8oYCR7Y2hhbGsuY3lhbihydWxlLmNvZGUpfTogJHtydWxlLm1lc3NhZ2V9YCk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIGlmIG5vIHBhY2thZ2UuanNvbiBhbmQgZm9yY2UgaXMgdHJ1ZSAoZGVmYXVsdCksIGp1c3QgZG9uJ3QgZG8gYW55dGhpbmdcbiAgaWYgKCFhd2FpdCBmcy5wYXRoRXhpc3RzKHBrZ0NvbmZpZykgJiYgYXJncy5mb3JjZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBrZyA9IGF3YWl0IGZzLnJlYWRKU09OKHBrZ0NvbmZpZyk7XG5cbiAgLy8gaWYgdGhpcyBpcyBub3QgYSBqc2lpIG1vZHVsZSB3ZSBoYXZlIG5vdGhpbmcgdG8gbG9vayBmb3JcbiAgaWYgKCFwa2cuanNpaSkge1xuICAgIGlmIChhcmdzLmZvcmNlKSB7XG4gICAgICByZXR1cm47IC8vIGp1c3Qgc2lsZW50bHkgc3VjY2VlZFxuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgTW9kdWxlIGluICR7d29ya2Rpcn0gaXMgbm90IGEganNpaSBtb2R1bGUgKG5vIFwianNpaVwiIHNlY3Rpb24gaW4gcGFja2FnZS5qc29uKWApO1xuICB9XG5cbiAgLy8gaWYgcGFja2FnZS5qc29uIGNvbnRhaW5zIGEgYGpzaWlgIHNlY3Rpb24gYnV0IHRoZXJlIGlzIG5vIC5qc2lpIGZpbGVcbiAgLy8gaXQgbWVhbnMgd2UgaGF2ZW4ndCBjb21waWxlZCB0aGUgbW9kdWxlLlxuICBpZiAoYXdhaXQgc2hvdWxkQ29tcGlsZSgpKSB7XG4gICAgYXdhaXQgc2hlbGwoJ2pzaWknKTtcbiAgfVxuXG4gIC8vIGF3c2xpbnQuanNvbiB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgcGFja2FnZS5qc29uIGZvciBhd3NsaW50IG9wdGlvbnMuXG4gIGNvbnN0IHN0YW5kbG9uZU9wdGlvbnMgPSBhd2FpdCByZWFkU3RhbmRhbG9uZU9wdGlvbnMoYXdzbGludENvbmZpZyk7XG5cbiAgLy8gcmVhZCBcImF3c2xpbnRcIiBmcm9tIHBhY2thZ2UuanNvblxuICBpZiAoYXJncy5jb25maWcpIHtcbiAgICBpZiAoc3RhbmRsb25lT3B0aW9ucykge1xuICAgICAgaWYgKHBrZy5hd3NsaW50KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignYXdzbGludCBvcHRpb25zIGluIHBhY2thZ2UuanNvbiB3aWxsIGJlIGlnbm9yZWQgc2luY2UgYXdzbGludC5qc29uIGV4aXN0cy4nKTtcbiAgICAgIH1cbiAgICAgIG1lcmdlT3B0aW9ucyhhcmdzLCBzdGFuZGxvbmVPcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWVyZ2VPcHRpb25zKGFyZ3MsIHBrZy5hd3NsaW50KTtcbiAgICB9XG4gIH1cblxuICBpZiAoYXJncy5kZWJ1Zykge1xuICAgIGNvbnNvbGUuZXJyb3IoJ2NvbW1hbmQ6ICcgKyBjb21tYW5kKTtcbiAgICBjb25zb2xlLmVycm9yKCdvcHRpb25zOiAnICsgSlNPTi5zdHJpbmdpZnkoYXJncywgdW5kZWZpbmVkLCAyKSk7XG4gIH1cblxuICBpZiAoY29tbWFuZCA9PT0gJ2xpbnQnKSB7XG4gICAgY29uc3QgYXNzZW1ibHkgPSBhd2FpdCBsb2FkTW9kdWxlKHdvcmtkaXIpO1xuICAgIGlmICghYXNzZW1ibHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBleGNsdWRlc1RvU2F2ZSA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgbGV0IGVycm9ycyA9IDA7XG5cbiAgICBjb25zdCBpbmNsdWRlUnVsZXMgPSBuZXcgUnVsZUZpbHRlclNldChhcmdzLmluY2x1ZGUpO1xuICAgIGNvbnN0IGV4Y2x1ZGVSdWxlcyA9IG5ldyBSdWxlRmlsdGVyU2V0KGFyZ3MuZXhjbHVkZSk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gW107XG5cbiAgICByZXN1bHRzLnB1c2goLi4uQUxMX1JVTEVTX0xJTlRFUi5ldmFsKGFzc2VtYmx5LCB7XG4gICAgICBpbmNsdWRlUnVsZXM6IGluY2x1ZGVSdWxlcyxcbiAgICAgIGV4Y2x1ZGVSdWxlczogZXhjbHVkZVJ1bGVzLFxuICAgIH0pKTtcblxuICAgIC8vIFNvcnQgZXJyb3JzIHRvIHRoZSB0b3AgKGhpZ2hlc3Qgc2V2ZXJpdHkgZmlyc3QpXG4gICAgcmVzdWx0cy5zb3J0KChhLCBiKSA9PiBiLmxldmVsIC0gYS5sZXZlbCk7XG5cbiAgICAvLyBwcm9jZXNzIHJlc3VsdHNcblxuICAgIGZvciAoY29uc3QgZGlhZyBvZiByZXN1bHRzKSB7XG4gICAgICBjb25zdCBzdXBwcmVzc2lvbktleSA9IGAke2RpYWcucnVsZS5jb2RlfToke2RpYWcuc2NvcGV9YDtcblxuICAgICAgbGV0IGNvbG9yO1xuICAgICAgc3dpdGNoIChkaWFnLmxldmVsKSB7XG4gICAgICAgIGNhc2UgRGlhZ25vc3RpY0xldmVsLlN1Y2Nlc3M6XG4gICAgICAgICAgaWYgKGFyZ3MudmVyYm9zZSkge1xuICAgICAgICAgICAgY29sb3IgPSBjaGFsay5ncmF5O1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBEaWFnbm9zdGljTGV2ZWwuRXJyb3I6XG4gICAgICAgICAgZXJyb3JzKys7XG4gICAgICAgICAgY29sb3IgPSBjaGFsay5yZWQ7XG4gICAgICAgICAgaWYgKGFyZ3Muc2F2ZSkge1xuICAgICAgICAgICAgZXhjbHVkZXNUb1NhdmUucHVzaChzdXBwcmVzc2lvbktleSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIERpYWdub3N0aWNMZXZlbC5XYXJuaW5nOlxuICAgICAgICAgIGlmICghYXJncy5xdWlldCkge1xuICAgICAgICAgICAgY29sb3IgPSBjaGFsay55ZWxsb3c7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIERpYWdub3N0aWNMZXZlbC5Ta2lwcGVkOlxuICAgICAgICAgIGlmICghYXJncy5xdWlldCkge1xuICAgICAgICAgICAgY29sb3IgPSBjaGFsay5ibHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbG9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoY29sb3IoYCR7RGlhZ25vc3RpY0xldmVsW2RpYWcubGV2ZWxdLnRvTG93ZXJDYXNlKCl9OiBbJHtjaGFsay5ib2xkKGBhd3NsaW50OiR7ZGlhZy5ydWxlLmNvZGV9YCl9OiR7Y2hhbGsuYm9sZChkaWFnLnNjb3BlKX1dICR7ZGlhZy5tZXNzYWdlfWApKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYCR7RGlhZ25vc3RpY0xldmVsW2RpYWcubGV2ZWxdLnRvTG93ZXJDYXNlKCl9OiBbJHtgYXdzbGludDoke2RpYWcucnVsZS5jb2RlfWB9OiR7ZGlhZy5zY29wZX1dICR7ZGlhZy5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChleGNsdWRlc1RvU2F2ZS5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAoc3RhbmRsb25lT3B0aW9ucykge1xuICAgICAgICBpZiAoIXN0YW5kbG9uZU9wdGlvbnMuZXhjbHVkZSkge1xuICAgICAgICAgIHN0YW5kbG9uZU9wdGlvbnMuZXhjbHVkZSA9IFtdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIXBrZy5hd3NsaW50KSB7XG4gICAgICAgICAgcGtnLmF3c2xpbnQgPSB7IH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXBrZy5hd3NsaW50LmV4Y2x1ZGUpIHtcbiAgICAgICAgICBwa2cuYXdzbGludC5leGNsdWRlID0gW107XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgZXhjbHVkZXM6IHN0cmluZ1tdID0gc3RhbmRsb25lT3B0aW9ucyA/IHN0YW5kbG9uZU9wdGlvbnMuZXhjbHVkZSA6IHBrZy5hd3NsaW50LmV4Y2x1ZGU7XG5cbiAgICAgIGZvciAoY29uc3QgZXhjbHVkZSBvZiBleGNsdWRlc1RvU2F2ZSkge1xuICAgICAgICBpZiAoZXhjbHVkZXMuaW5kZXhPZihleGNsdWRlKSA9PT0gLTEpIHtcbiAgICAgICAgICBleGNsdWRlcy5wdXNoKGV4Y2x1ZGUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChleGNsdWRlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChzdGFuZGxvbmVPcHRpb25zKSB7XG4gICAgICAgICAgLy8gSWYgYXdzbGludC5qc29uIGV4aXN0cywgd3JpdGUgdGhlIGV4Y2x1ZGVzIHRoZXJlIGluc3RlYWQgb2YgdGhlIG9sZCBwYWNrYWdlLmpzb24gKGxlZ2FjeSBmb3JtYXQpLlxuICAgICAgICAgIGlmIChwa2cuYXdzbGludCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdFeGNsdWRlcyB3aWxsIGJlIHdyaXR0ZW4gdG8gYXdzbGludC5qc29uLicpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBhd2FpdCBmcy53cml0ZUpTT04oYXdzbGludENvbmZpZywgc3RhbmRsb25lT3B0aW9ucywgeyBzcGFjZXM6IDIgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXdhaXQgZnMud3JpdGVKU09OKHBrZ0NvbmZpZywgcGtnLCB7IHNwYWNlczogMiB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChlcnJvcnMgJiYgIWFyZ3Muc2F2ZSkge1xuICAgICAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgYXJndi5zaG93SGVscCgpO1xuICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY29tbWFuZDogJHtjb21tYW5kfWApO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIHNob3VsZENvbXBpbGUoKSB7XG4gICAgLy8gaWYgLS1jb21waWxlIGlzIGV4cGxpY2l0bHkgZW5hYmxlZCB0aGVuIGp1c3QgY29tcGlsZSBhbHdheXNcbiAgICBpZiAoYXJncy5jb21waWxlID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBpZiB3ZSBoYXZlIGEgLmpzaWkgZmlsZSBhbmQgd2UgYXJlIG5vdCBmb3JjZWQgdG8gY29tcGlsZSwgdGhlbiBkb24ndCBjb21waWxlXG4gICAgaWYgKGF3YWl0IGZzLnBhdGhFeGlzdHMocGF0aC5qb2luKHdvcmtkaXIsICcuanNpaScpKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIHdlIGRvbid0IGhhdmUgYSAuanNpaSBmaWxlLCBhbmQgLS1uby1jb21waWxlIGlzIGV4cGxpY2lseSBzZXQsIHRoZW4gaXQncyBhbiBlcnJvclxuICAgIGlmIChhcmdzLmNvbXBpbGUgPT09IGZhbHNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIC5qc2lpIGZpbGUgYW5kIC0tbm8tY29tcGlsZSBpcyBzZXQnKTtcbiAgICB9XG5cbiAgICAvLyBjb21waWxlIVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbm1haW4oKS5jYXRjaChlID0+IHtcbiAgY29uc29sZS5lcnJvcihjaGFsay5yZWQoZS5tZXNzYWdlKSk7XG4gIGlmIChzdGFja1RyYWNlKSB7XG4gICAgY29uc29sZS5lcnJvcihlLnN0YWNrKTtcbiAgfVxuICBwcm9jZXNzLmV4aXRDb2RlID0gMTtcbn0pO1xuXG5hc3luYyBmdW5jdGlvbiBsb2FkTW9kdWxlKGRpcjogc3RyaW5nKSB7XG4gIGNvbnN0IHRzID0gbmV3IHJlZmxlY3QuVHlwZVN5c3RlbSgpO1xuICBhd2FpdCB0cy5sb2FkKGRpciwge1xuICAgIHZhbGlkYXRlOiBmYWxzZSwgLy8gRG9uJ3QgdmFsaWRhdGUgdG8gc2F2ZSA2NiUgb2YgZXhlY3V0aW9uIHRpbWUgKDIwcyB2cyAxbWluKS5cbiAgICBzdXBwb3J0ZWRGZWF0dXJlczogWydpbnRlcnNlY3Rpb24tdHlwZXMnLCAnY2xhc3MtY292YXJpYW50LW92ZXJyaWRlcyddLFxuICB9KTtcbiAgLy8gV2UgcnVuICdhd3NsaW50JyBkdXJpbmcgYnVpbGQgdGltZSwgYXNzZW1ibGllcyBhcmUgZ3VhcmFudGVlZCB0byBiZSBvay5cblxuICAvLyBXZSB3b24ndCBsb2FkIGFueSBtb3JlIGFzc2VtYmxpZXMuIExvY2sgdGhlIHR5cGVzeXN0ZW0gdG8gYmVuZWZpdCBmcm9tIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cy5cbiAgdHMubG9jaygpO1xuXG4gIGlmICh0cy5yb290cy5sZW5ndGggIT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGluZyBvbmx5IGEgc2luZ2xlIHJvb3QgYXNzZW1ibHknKTtcbiAgfVxuXG4gIHJldHVybiB0cy5yb290c1swXTtcbn1cblxuZnVuY3Rpb24gbWVyZ2VPcHRpb25zKGRlc3Q6IGFueSwgcGtnPzogYW55KSB7XG4gIGlmICghcGtnKSB7IHJldHVybjsgfSAvLyBubyBvcHRpb25zIGluIHBhY2thZ2UuanNvblxuXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHBrZykpIHtcbiAgICAvLyBpZiB0aGlzIGlzIGFuIGFycmF5IG9wdGlvbiwgdGhlbiBhZGQgdmFsdWVzIHRvIGRlc3RpbmF0aW9uXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBjb25zdCBhcnIgPSBkZXN0W2tleV0gfHwgW107XG4gICAgICBhcnIucHVzaCguLi52YWx1ZSk7XG4gICAgICBkZXN0W2tleV0gPSBhcnI7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBvYmplY3RzIGFyZSBub3QgYWxsb3dlZFxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgb3B0aW9uIFwiJHtrZXl9XCIgaW4gcGFja2FnZS5qc29uOiAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1gKTtcbiAgICB9XG5cbiAgICAvLyBwcmltaXRpdmVzIHNpbXBseSBvdmVycmlkZVxuICAgIGRlc3Rba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIGRlc3Q7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlYWRTdGFuZGFsb25lT3B0aW9ucyhhd3NsaW50Q29uZmlnOiBzdHJpbmcpIHtcbiAgaWYgKCFhd2FpdCBmcy5wYXRoRXhpc3RzKGF3c2xpbnRDb25maWcpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IGZzLnJlYWRKU09OKGF3c2xpbnRDb25maWcpO1xuICByZXR1cm4gb3B0aW9ucztcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2hlbGwoY29tbWFuZDogc3RyaW5nKSB7XG4gIGNvbnN0IGNoaWxkID0gY2hpbGRfcHJvY2Vzcy5zcGF3bihjb21tYW5kLCBbXSwgeyBzdGRpbzogWydpbmhlcml0JywgJ2luaGVyaXQnLCAnaW5oZXJpdCddIH0pO1xuICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKG9rLCBrbykgPT4ge1xuICAgIGNoaWxkLm9uY2UoJ2V4aXQnLCAoc3RhdHVzOiBhbnkpID0+IHtcbiAgICAgIGlmIChzdGF0dXMgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIG9rKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ga28obmV3IEVycm9yKGAke2NvbW1hbmR9IGV4aXRlZCB3aXRoIHN0YXR1cyAke3N0YXR1c31gKSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgY2hpbGQub25jZSgnZXJyb3InLCBrbyk7XG4gIH0pO1xufVxuIl19
|
package/bin/awslint.ts
CHANGED
|
@@ -163,6 +163,8 @@ async function main() {
|
|
|
163
163
|
|
|
164
164
|
if (color) {
|
|
165
165
|
console.error(color(`${DiagnosticLevel[diag.level].toLowerCase()}: [${chalk.bold(`awslint:${diag.rule.code}`)}:${chalk.bold(diag.scope)}] ${diag.message}`));
|
|
166
|
+
} else {
|
|
167
|
+
console.error(`${DiagnosticLevel[diag.level].toLowerCase()}: [${`awslint:${diag.rule.code}`}:${diag.scope}] ${diag.message}`);
|
|
166
168
|
}
|
|
167
169
|
}
|
|
168
170
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "awslint",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.262.0-alpha.0",
|
|
4
4
|
"description": "Enforces the AWS Construct Library guidelines",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsc -b && eslint && pkglint && chmod +x bin/awslint",
|
|
@@ -18,16 +18,16 @@
|
|
|
18
18
|
"awslint": "bin/awslint"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@jsii/spec": "1.
|
|
21
|
+
"@jsii/spec": "1.138.0",
|
|
22
22
|
"chalk": "^4",
|
|
23
23
|
"fs-extra": "^9.1.0",
|
|
24
|
-
"jsii-reflect": "1.
|
|
24
|
+
"jsii-reflect": "1.138.0",
|
|
25
25
|
"change-case": "^4.1.2",
|
|
26
|
-
"yargs": "^16.2.
|
|
26
|
+
"yargs": "^16.2.2"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@aws-cdk/eslint-config": "2.
|
|
30
|
-
"@aws-cdk/pkglint": "2.
|
|
29
|
+
"@aws-cdk/eslint-config": "2.262.0-alpha.0",
|
|
30
|
+
"@aws-cdk/pkglint": "2.262.0-alpha.0",
|
|
31
31
|
"@types/fs-extra": "^9.0.13",
|
|
32
32
|
"@types/jest": "^29.5.14",
|
|
33
33
|
"@types/yargs": "^15.0.20",
|