@aws-cdk/cloudformation-diff 2.181.1 → 2.182.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.
@@ -267,4 +267,4 @@ function renderCondition(condition) {
267
267
  const lines = jsonRepresentation.split('\n');
268
268
  return lines.slice(1, lines.length - 1).map(s => s.slice(2)).join('\n');
269
269
  }
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhdGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9KQSwwQ0FRQztBQU9ELHNEQTJDQztBQTRIRCwwQ0FrQkM7QUEzVkQsdURBQStEO0FBQy9ELGtDQUE4QztBQUU5Qyx5RUFBeUU7QUFDekUsaUVBQWlFO0FBQ2pFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRTdDLE1BQWEsU0FBUztJQWlDcEIsWUFBWSxTQUE4QjtRQUN4QyxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMzQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVB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RCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVuRSwyQ0FBMkM7SUFDM0MsRUFBRTtJQUNGLEtBQUs7SUFDTCxrQkFBa0I7SUFDbEIsNkNBQTZDO0lBQzdDLE9BQU87SUFDUCxLQUFLO0lBQ0wsRUFBRTtJQUNGLGdHQUFnRztJQUNoRyx1QkFBdUI7SUFDdkIsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1heWJlUGFyc2VkIH0gZnJvbSAnLi4vZGlmZi9tYXliZS1wYXJzZWQnO1xuaW1wb3J0IHsgbWtQYXJzZWQsIG1rVW5wYXJzZWFibGUgfSBmcm9tICcuLi9kaWZmL21heWJlLXBhcnNlZCc7XG5pbXBvcnQgeyBkZWVwUmVtb3ZlVW5kZWZpbmVkIH0gZnJvbSAnLi4vdXRpbCc7XG5cbi8vIG5hbWVzcGFjZSBvYmplY3QgaW1wb3J0cyB3b24ndCB3b3JrIGluIHRoZSBidW5kbGUgZm9yIGZ1bmN0aW9uIGV4cG9ydHNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5jb25zdCBkZWVwRXF1YWwgPSByZXF1aXJlKCdmYXN0LWRlZXAtZXF1YWwnKTtcblxuZXhwb3J0IGNsYXNzIFN0YXRlbWVudCB7XG4gIC8qKlxuICAgKiBTdGF0ZW1lbnQgSURcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzaWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogU3RhdGVtZW50IGVmZmVjdFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVmZmVjdDogRWZmZWN0O1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZXNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZXM6IFRhcmdldHM7XG5cbiAgLyoqXG4gICAqIFByaW5jaXBhbHNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcmluY2lwYWxzOiBUYXJnZXRzO1xuXG4gIC8qKlxuICAgKiBBY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYWN0aW9uczogVGFyZ2V0cztcblxuICAvKipcbiAgICogT2JqZWN0IHdpdGggY29uZGl0aW9uc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbmRpdGlvbj86IGFueTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNlcmlhbGl6ZWRJbnRyaW5zaWM6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihzdGF0ZW1lbnQ6IFVua25vd25NYXAgfCBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIHN0YXRlbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuc2lkID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5lZmZlY3QgPSBFZmZlY3QuVW5rbm93bjtcbiAgICAgIHRoaXMucmVzb3VyY2VzID0gbmV3IFRhcmdldHMoe30sICcnLCAnJyk7XG4gICAgICB0aGlzLmFjdGlvbnMgPSBuZXcgVGFyZ2V0cyh7fSwgJycsICcnKTtcbiAgICAgIHRoaXMucHJpbmNpcGFscyA9IG5ldyBUYXJnZXRzKHt9LCAnJywgJycpO1xuICAgICAgdGhpcy5jb25kaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnNlcmlhbGl6ZWRJbnRyaW5zaWMgPSBzdGF0ZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2lkID0gZXhwZWN0U3RyaW5nKHN0YXRlbWVudC5TaWQpO1xuICAgICAgdGhpcy5lZmZlY3QgPSBleHBlY3RFZmZlY3Qoc3RhdGVtZW50LkVmZmVjdCk7XG4gICAgICB0aGlzLnJlc291cmNlcyA9IG5ldyBUYXJnZXRzKHN0YXRlbWVudCwgJ1Jlc291cmNlJywgJ05vdFJlc291cmNlJyk7XG4gICAgICB0aGlzLmFjdGlvbnMgPSBuZXcgVGFyZ2V0cyhzdGF0ZW1lbnQsICdBY3Rpb24nLCAnTm90QWN0aW9uJyk7XG4gICAgICB0aGlzLnByaW5jaXBhbHMgPSBuZXcgVGFyZ2V0cyhzdGF0ZW1lbnQsICdQcmluY2lwYWwnLCAnTm90UHJpbmNpcGFsJyk7XG4gICAgICB0aGlzLmNvbmRpdGlvbiA9IHN0YXRlbWVudC5Db25kaXRpb247XG4gICAgICB0aGlzLnNlcmlhbGl6ZWRJbnRyaW5zaWMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBzdGF0ZW1lbnQgaXMgZXF1YWwgdG8gdGhlIG90aGVyIHN0YXRlbWVudFxuICAgKi9cbiAgcHVibGljIGVxdWFsKG90aGVyOiBTdGF0ZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuc2lkID09PSBvdGhlci5zaWRcbiAgICAgICYmIHRoaXMuZWZmZWN0ID09PSBvdGhlci5lZmZlY3RcbiAgICAgICYmIHRoaXMuc2VyaWFsaXplZEludHJpbnNpYyA9PT0gb3RoZXIuc2VyaWFsaXplZEludHJpbnNpY1xuICAgICAgJiYgdGhpcy5yZXNvdXJjZXMuZXF1YWwob3RoZXIucmVzb3VyY2VzKVxuICAgICAgJiYgdGhpcy5hY3Rpb25zLmVxdWFsKG90aGVyLmFjdGlvbnMpXG4gICAgICAmJiB0aGlzLnByaW5jaXBhbHMuZXF1YWwob3RoZXIucHJpbmNpcGFscylcbiAgICAgICYmIGRlZXBFcXVhbCh0aGlzLmNvbmRpdGlvbiwgb3RoZXIuY29uZGl0aW9uKSk7XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKCk6IFJlbmRlcmVkU3RhdGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemVkSW50cmluc2ljXG4gICAgICA/IHtcbiAgICAgICAgcmVzb3VyY2U6IHRoaXMuc2VyaWFsaXplZEludHJpbnNpYyxcbiAgICAgICAgZWZmZWN0OiAnJyxcbiAgICAgICAgYWN0aW9uOiAnJyxcbiAgICAgICAgcHJpbmNpcGFsOiB0aGlzLnByaW5jaXBhbHMucmVuZGVyKCksIC8vIHRoZXNlIHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIGNhbGwgdG8gcmVwbGFjZUVtcHR5KCkgZnJvbSBJYW1DaGFuZ2VzXG4gICAgICAgIGNvbmRpdGlvbjogJycsXG4gICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgcmVzb3VyY2U6IHRoaXMucmVzb3VyY2VzLnJlbmRlcigpLFxuICAgICAgICBlZmZlY3Q6IHRoaXMuZWZmZWN0LFxuICAgICAgICBhY3Rpb246IHRoaXMuYWN0aW9ucy5yZW5kZXIoKSxcbiAgICAgICAgcHJpbmNpcGFsOiB0aGlzLnByaW5jaXBhbHMucmVuZGVyKCksXG4gICAgICAgIGNvbmRpdGlvbjogcmVuZGVyQ29uZGl0aW9uKHRoaXMuY29uZGl0aW9uKSxcbiAgICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWFjaGluZS1yZWFkYWJsZSB2ZXJzaW9uIG9mIHRoZSBjaGFuZ2VzLlxuICAgKiBUaGlzIGlzIG9ubHkgdXNlZCBpbiB0ZXN0cy5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvSnNvbigpOiBNYXliZVBhcnNlZDxTdGF0ZW1lbnRKc29uPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplZEludHJpbnNpY1xuICAgICAgPyBta1VucGFyc2VhYmxlKHRoaXMuc2VyaWFsaXplZEludHJpbnNpYylcbiAgICAgIDogbWtQYXJzZWQoZGVlcFJlbW92ZVVuZGVmaW5lZCh7XG4gICAgICAgIHNpZDogdGhpcy5zaWQsXG4gICAgICAgIGVmZmVjdDogdGhpcy5lZmZlY3QsXG4gICAgICAgIHJlc291cmNlczogdGhpcy5yZXNvdXJjZXMuX3RvSnNvbigpLFxuICAgICAgICBwcmluY2lwYWxzOiB0aGlzLnByaW5jaXBhbHMuX3RvSnNvbigpLFxuICAgICAgICBhY3Rpb25zOiB0aGlzLmFjdGlvbnMuX3RvSnNvbigpLFxuICAgICAgICBjb25kaXRpb246IHRoaXMuY29uZGl0aW9uLFxuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBpcyBhIG5lZ2F0aXZlIHN0YXRlbWVudFxuICAgKlxuICAgKiBBIHN0YXRlbWVudCBpcyBuZWdhdGl2ZSBpZiBhbnkgb2YgaXRzIHRhcmdldHMgYXJlIG5lZ2F0aXZlLCBpbnZlcnRlZFxuICAgKiBpZiB0aGUgRWZmZWN0IGlzIERlbnkuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzTmVnYXRpdmVTdGF0ZW1lbnQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgbm90VGFyZ2V0ID0gdGhpcy5hY3Rpb25zLm5vdCB8fCB0aGlzLnByaW5jaXBhbHMubm90IHx8IHRoaXMucmVzb3VyY2VzLm5vdDtcbiAgICByZXR1cm4gdGhpcy5lZmZlY3QgPT09IEVmZmVjdC5BbGxvdyA/IG5vdFRhcmdldCA6ICFub3RUYXJnZXQ7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJlZFN0YXRlbWVudCB7XG4gIHJlYWRvbmx5IHJlc291cmNlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVmZmVjdDogc3RyaW5nO1xuICByZWFkb25seSBhY3Rpb246IHN0cmluZztcbiAgcmVhZG9ubHkgcHJpbmNpcGFsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvbmRpdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlbWVudEpzb24ge1xuICBzaWQ/OiBzdHJpbmc7XG4gIGVmZmVjdDogc3RyaW5nO1xuICByZXNvdXJjZXM6IFRhcmdldHNKc29uO1xuICBhY3Rpb25zOiBUYXJnZXRzSnNvbjtcbiAgcHJpbmNpcGFsczogVGFyZ2V0c0pzb247XG4gIGNvbmRpdGlvbj86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRzSnNvbiB7XG4gIG5vdDogYm9vbGVhbjtcbiAgdmFsdWVzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBQYXJzZSBhIGxpc3Qgb2Ygc3RhdGVtZW50cyBmcm9tIHVuZGVmaW5lZCwgYSBTdGF0ZW1lbnQsIG9yIGEgbGlzdCBvZiBzdGF0ZW1lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVN0YXRlbWVudHMoeDogYW55KTogU3RhdGVtZW50W10ge1xuICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgeCA9IFtdO1xuICB9XG4gIGlmICghQXJyYXkuaXNBcnJheSh4KSkge1xuICAgIHggPSBbeF07XG4gIH1cbiAgcmV0dXJuIHgubWFwKChzOiBhbnkpID0+IG5ldyBTdGF0ZW1lbnQocykpO1xufVxuXG4vKipcbiAqIFBhcnNlIGEgU3RhdGVtZW50IGZyb20gYSBMYW1iZGE6OlBlcm1pc3Npb24gb2JqZWN0XG4gKlxuICogVGhpcyBpcyBhY3R1YWxseSB3aGF0IExhbWJkYSBhZGRzIHRvIHRoZSBwb2xpY3kgZG9jdW1lbnQgaWYgeW91IGNhbGwgQWRkUGVybWlzc2lvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTGFtYmRhUGVybWlzc2lvbih4OiBhbnkpOiBTdGF0ZW1lbnQge1xuICAvLyBDb25zdHJ1Y3QgYSBzdGF0ZW1lbnQgZnJvbVxuICBjb25zdCBzdGF0ZW1lbnQ6IGFueSA9IHtcbiAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgQWN0aW9uOiB4LkFjdGlvbixcbiAgICBSZXNvdXJjZTogeC5GdW5jdGlvbk5hbWUsXG4gIH07XG5cbiAgaWYgKHguUHJpbmNpcGFsICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoeC5QcmluY2lwYWwgPT09ICcqJykge1xuICAgICAgLy8gKlxuICAgICAgc3RhdGVtZW50LlByaW5jaXBhbCA9ICcqJztcbiAgICB9IGVsc2UgaWYgKC9eXFxkezEyfSQvLnRlc3QoeC5QcmluY2lwYWwpKSB7XG4gICAgICAvLyBBY2NvdW50IG51bWJlclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBjZGtsYWJzL25vLWxpdGVyYWwtcGFydGl0aW9uXG4gICAgICBzdGF0ZW1lbnQuUHJpbmNpcGFsID0geyBBV1M6IGBhcm46YXdzOmlhbTo6JHt4LlByaW5jaXBhbH06cm9vdGAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQXNzdW1lIGl0J3MgYSBzZXJ2aWNlIHByaW5jaXBhbFxuICAgICAgLy8gV2UgbWlnaHQgZ2V0IHRoaXMgd3JvbmcgdnMuIHRoZSBwcmV2aW91cyBvbmUgZm9yIHRva2Vucy4gTm90aGluZyB0byBiZSBkb25lXG4gICAgICAvLyBhYm91dCB0aGF0LiBJdCdzIG9ubHkgZm9yIGh1bWFuIHJlYWRhYmxlIGNvbnN1bXB0aW9uIGFmdGVyIGFsbC5cbiAgICAgIHN0YXRlbWVudC5QcmluY2lwYWwgPSB7IFNlcnZpY2U6IHguUHJpbmNpcGFsIH07XG4gICAgfVxuICB9XG4gIGlmICh4LlNvdXJjZUFybiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHN0YXRlbWVudC5Db25kaXRpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgc3RhdGVtZW50LkNvbmRpdGlvbiA9IHt9O1xuICAgIH1cbiAgICBzdGF0ZW1lbnQuQ29uZGl0aW9uLkFybkxpa2UgPSB7ICdBV1M6U291cmNlQXJuJzogeC5Tb3VyY2VBcm4gfTtcbiAgfVxuICBpZiAoeC5Tb3VyY2VBY2NvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoc3RhdGVtZW50LkNvbmRpdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdGF0ZW1lbnQuQ29uZGl0aW9uID0ge307XG4gICAgfVxuICAgIHN0YXRlbWVudC5Db25kaXRpb24uU3RyaW5nRXF1YWxzID0geyAnQVdTOlNvdXJjZUFjY291bnQnOiB4LlNvdXJjZUFjY291bnQgfTtcbiAgfVxuICBpZiAoeC5FdmVudFNvdXJjZVRva2VuICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoc3RhdGVtZW50LkNvbmRpdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdGF0ZW1lbnQuQ29uZGl0aW9uID0ge307XG4gICAgfVxuICAgIHN0YXRlbWVudC5Db25kaXRpb24uU3RyaW5nRXF1YWxzID0geyAnbGFtYmRhOkV2ZW50U291cmNlVG9rZW4nOiB4LkV2ZW50U291cmNlVG9rZW4gfTtcbiAgfVxuXG4gIHJldHVybiBuZXcgU3RhdGVtZW50KHN0YXRlbWVudCk7XG59XG5cbi8qKlxuICogVGFyZ2V0cyBmb3IgYSBmaWVsZFxuICovXG5leHBvcnQgY2xhc3MgVGFyZ2V0cyB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWVzIG9mIHRoZSB0YXJnZXRzXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hldGhlciBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBtYXRjaGVyc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5vdDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihzdGF0ZW1lbnQ6IFVua25vd25NYXAsIHBvc2l0aXZlS2V5OiBzdHJpbmcsIG5lZ2F0aXZlS2V5OiBzdHJpbmcpIHtcbiAgICBpZiAobmVnYXRpdmVLZXkgaW4gc3RhdGVtZW50KSB7XG4gICAgICB0aGlzLnZhbHVlcyA9IGZvcmNlTGlzdE9mU3RyaW5ncyhzdGF0ZW1lbnRbbmVnYXRpdmVLZXldKTtcbiAgICAgIHRoaXMubm90ID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZXMgPSBmb3JjZUxpc3RPZlN0cmluZ3Moc3RhdGVtZW50W3Bvc2l0aXZlS2V5XSk7XG4gICAgICB0aGlzLm5vdCA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlcy5zb3J0KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVtcHR5KCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcy5sZW5ndGggPT09IDA7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIHNldCBvZiB0YXJnZXRzIGlzIGVxdWFsIHRvIHRoZSBvdGhlciBzZXQgb2YgdGFyZ2V0c1xuICAgKi9cbiAgcHVibGljIGVxdWFsKG90aGVyOiBUYXJnZXRzKSB7XG4gICAgcmV0dXJuIHRoaXMubm90ID09PSBvdGhlci5ub3QgJiYgZGVlcEVxdWFsKHRoaXMudmFsdWVzLnNvcnQoKSwgb3RoZXIudmFsdWVzLnNvcnQoKSk7XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhlIGN1cnJlbnQgdmFsdWUgc2V0IGlzIGVtcHR5LCBwdXQgdGhpcyBpbiBpdFxuICAgKi9cbiAgcHVibGljIHJlcGxhY2VFbXB0eShyZXBsYWNlbWVudDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuZW1wdHkpIHtcbiAgICAgIHRoaXMudmFsdWVzLnB1c2gocmVwbGFjZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgYWN0aW9ucyBjb250YWlucyBhICcqJywgcmVwbGFjZSB3aXRoIHRoaXMgc3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHJlcGxhY2VTdGFyKHJlcGxhY2VtZW50OiBzdHJpbmcpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy52YWx1ZXNbaV0gPT09ICcqJykge1xuICAgICAgICB0aGlzLnZhbHVlc1tpXSA9IHJlcGxhY2VtZW50O1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnZhbHVlcy5zb3J0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIGludG8gYSBzdW1tYXJ5IHRhYmxlIGNlbGxcbiAgICovXG4gIHB1YmxpYyByZW5kZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ub3RcbiAgICAgID8gdGhpcy52YWx1ZXMubWFwKHMgPT4gYE5PVCAke3N9YCkuam9pbignXFxuJylcbiAgICAgIDogdGhpcy52YWx1ZXMuam9pbignXFxuJyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWFjaGluZS1yZWFkYWJsZSB2ZXJzaW9uIG9mIHRoZSBjaGFuZ2VzLlxuICAgKiBUaGlzIGlzIG9ubHkgdXNlZCBpbiB0ZXN0cy5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvSnNvbigpOiBUYXJnZXRzSnNvbiB7XG4gICAgcmV0dXJuIHsgbm90OiB0aGlzLm5vdCwgdmFsdWVzOiB0aGlzLnZhbHVlcyB9O1xuICB9XG59XG5cbnR5cGUgVW5rbm93bk1hcCA9IHtba2V5OiBzdHJpbmddOiB1bmtub3dufTtcblxuZXhwb3J0IGVudW0gRWZmZWN0IHtcbiAgVW5rbm93biA9ICdVbmtub3duJyxcbiAgQWxsb3cgPSAnQWxsb3cnLFxuICBEZW55ID0gJ0RlbnknLFxufVxuXG5mdW5jdGlvbiBleHBlY3RTdHJpbmcoeDogdW5rbm93bik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eXBlb2YgeCA9PT0gJ3N0cmluZycgPyB4IDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBleHBlY3RFZmZlY3QoeDogdW5rbm93bik6IEVmZmVjdCB7XG4gIGlmICh4ID09PSBFZmZlY3QuQWxsb3cgfHwgeCA9PT0gRWZmZWN0LkRlbnkpIHtcbiAgICByZXR1cm4geCBhcyBFZmZlY3Q7XG4gIH1cbiAgcmV0dXJuIEVmZmVjdC5Vbmtub3duO1xufVxuXG5mdW5jdGlvbiBmb3JjZUxpc3RPZlN0cmluZ3MoeDogdW5rbm93bik6IHN0cmluZ1tdIHtcbiAgaWYgKHR5cGVvZiB4ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBbeF07XG4gIH1cbiAgaWYgKHR5cGVvZiB4ID09PSAndW5kZWZpbmVkJyB8fCB4ID09PSBudWxsKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoeCkpIHtcbiAgICByZXR1cm4geC5tYXAoZSA9PiBmb3JjZUxpc3RPZlN0cmluZ3MoZSkuam9pbignLCcpKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgeCA9PT0gJ29iamVjdCcgJiYgeCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHJldDogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh4KSkge1xuICAgICAgcmV0LnB1c2goLi4uZm9yY2VMaXN0T2ZTdHJpbmdzKHZhbHVlKS5tYXAocyA9PiBgJHtrZXl9OiR7c31gKSk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICByZXR1cm4gW2Ake3h9YF07XG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSBDb25kaXRpb24gY29sdW1uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJDb25kaXRpb24oY29uZGl0aW9uOiBhbnkpOiBzdHJpbmcge1xuICBpZiAoIWNvbmRpdGlvbiB8fCBPYmplY3Qua2V5cyhjb25kaXRpb24pLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBjb25zdCBqc29uUmVwcmVzZW50YXRpb24gPSBKU09OLnN0cmluZ2lmeShjb25kaXRpb24sIHVuZGVmaW5lZCwgMik7XG5cbiAgLy8gVGhlIEpTT04gcmVwcmVzZW50YXRpb24gbG9va3MgbGlrZSB0aGlzOlxuICAvL1xuICAvLyAge1xuICAvLyAgICBcIkFybkxpa2VcIjoge1xuICAvLyAgICAgIFwiQVdTOlNvdXJjZUFyblwiOiBcIiR7TXlUb3BpYzg2ODY5NDM0fVwiXG4gIC8vICAgIH1cbiAgLy8gIH1cbiAgLy9cbiAgLy8gV2UgY2FuIG1ha2UgaXQgbW9yZSBjb21wYWN0IHdpdGhvdXQgbG9zaW5nIGluZm9ybWF0aW9uIGJ5IGdldHRpbmcgcmlkIG9mIHRoZSBvdXRlcm1vc3QgYnJhY2VzXG4gIC8vIGFuZCB0aGUgaW5kZW50YXRpb24uXG4gIGNvbnN0IGxpbmVzID0ganNvblJlcHJlc2VudGF0aW9uLnNwbGl0KCdcXG4nKTtcbiAgcmV0dXJuIGxpbmVzLnNsaWNlKDEsIGxpbmVzLmxlbmd0aCAtIDEpLm1hcChzID0+IHMuc2xpY2UoMikpLmpvaW4oJ1xcbicpO1xufVxuIl19
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhdGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9KQSwwQ0FRQztBQU9ELHNEQTJDQztBQTRIRCwwQ0FrQkM7QUEzVkQsdURBQStEO0FBQy9ELGtDQUE4QztBQUU5Qyx5RUFBeUU7QUFDekUsaUVBQWlFO0FBQ2pFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRTdDLE1BQWEsU0FBUztJQWlDcEIsWUFBWSxTQUE4QjtRQUN4QyxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMzQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVB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RCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVuRSwyQ0FBMkM7SUFDM0MsRUFBRTtJQUNGLEtBQUs7SUFDTCxrQkFBa0I7SUFDbEIsNkNBQTZDO0lBQzdDLE9BQU87SUFDUCxLQUFLO0lBQ0wsRUFBRTtJQUNGLGdHQUFnRztJQUNoRyx1QkFBdUI7SUFDdkIsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1heWJlUGFyc2VkIH0gZnJvbSAnLi4vZGlmZi9tYXliZS1wYXJzZWQnO1xuaW1wb3J0IHsgbWtQYXJzZWQsIG1rVW5wYXJzZWFibGUgfSBmcm9tICcuLi9kaWZmL21heWJlLXBhcnNlZCc7XG5pbXBvcnQgeyBkZWVwUmVtb3ZlVW5kZWZpbmVkIH0gZnJvbSAnLi4vdXRpbCc7XG5cbi8vIG5hbWVzcGFjZSBvYmplY3QgaW1wb3J0cyB3b24ndCB3b3JrIGluIHRoZSBidW5kbGUgZm9yIGZ1bmN0aW9uIGV4cG9ydHNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5jb25zdCBkZWVwRXF1YWwgPSByZXF1aXJlKCdmYXN0LWRlZXAtZXF1YWwnKTtcblxuZXhwb3J0IGNsYXNzIFN0YXRlbWVudCB7XG4gIC8qKlxuICAgKiBTdGF0ZW1lbnQgSURcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzaWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogU3RhdGVtZW50IGVmZmVjdFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVmZmVjdDogRWZmZWN0O1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZXNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZXM6IFRhcmdldHM7XG5cbiAgLyoqXG4gICAqIFByaW5jaXBhbHNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcmluY2lwYWxzOiBUYXJnZXRzO1xuXG4gIC8qKlxuICAgKiBBY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYWN0aW9uczogVGFyZ2V0cztcblxuICAvKipcbiAgICogT2JqZWN0IHdpdGggY29uZGl0aW9uc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbmRpdGlvbj86IGFueTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNlcmlhbGl6ZWRJbnRyaW5zaWM6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihzdGF0ZW1lbnQ6IFVua25vd25NYXAgfCBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIHN0YXRlbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuc2lkID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5lZmZlY3QgPSBFZmZlY3QuVW5rbm93bjtcbiAgICAgIHRoaXMucmVzb3VyY2VzID0gbmV3IFRhcmdldHMoe30sICcnLCAnJyk7XG4gICAgICB0aGlzLmFjdGlvbnMgPSBuZXcgVGFyZ2V0cyh7fSwgJycsICcnKTtcbiAgICAgIHRoaXMucHJpbmNpcGFscyA9IG5ldyBUYXJnZXRzKHt9LCAnJywgJycpO1xuICAgICAgdGhpcy5jb25kaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnNlcmlhbGl6ZWRJbnRyaW5zaWMgPSBzdGF0ZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2lkID0gZXhwZWN0U3RyaW5nKHN0YXRlbWVudC5TaWQpO1xuICAgICAgdGhpcy5lZmZlY3QgPSBleHBlY3RFZmZlY3Qoc3RhdGVtZW50LkVmZmVjdCk7XG4gICAgICB0aGlzLnJlc291cmNlcyA9IG5ldyBUYXJnZXRzKHN0YXRlbWVudCwgJ1Jlc291cmNlJywgJ05vdFJlc291cmNlJyk7XG4gICAgICB0aGlzLmFjdGlvbnMgPSBuZXcgVGFyZ2V0cyhzdGF0ZW1lbnQsICdBY3Rpb24nLCAnTm90QWN0aW9uJyk7XG4gICAgICB0aGlzLnByaW5jaXBhbHMgPSBuZXcgVGFyZ2V0cyhzdGF0ZW1lbnQsICdQcmluY2lwYWwnLCAnTm90UHJpbmNpcGFsJyk7XG4gICAgICB0aGlzLmNvbmRpdGlvbiA9IHN0YXRlbWVudC5Db25kaXRpb247XG4gICAgICB0aGlzLnNlcmlhbGl6ZWRJbnRyaW5zaWMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBzdGF0ZW1lbnQgaXMgZXF1YWwgdG8gdGhlIG90aGVyIHN0YXRlbWVudFxuICAgKi9cbiAgcHVibGljIGVxdWFsKG90aGVyOiBTdGF0ZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuc2lkID09PSBvdGhlci5zaWRcbiAgICAgICYmIHRoaXMuZWZmZWN0ID09PSBvdGhlci5lZmZlY3RcbiAgICAgICYmIHRoaXMuc2VyaWFsaXplZEludHJpbnNpYyA9PT0gb3RoZXIuc2VyaWFsaXplZEludHJpbnNpY1xuICAgICAgJiYgdGhpcy5yZXNvdXJjZXMuZXF1YWwob3RoZXIucmVzb3VyY2VzKVxuICAgICAgJiYgdGhpcy5hY3Rpb25zLmVxdWFsKG90aGVyLmFjdGlvbnMpXG4gICAgICAmJiB0aGlzLnByaW5jaXBhbHMuZXF1YWwob3RoZXIucHJpbmNpcGFscylcbiAgICAgICYmIGRlZXBFcXVhbCh0aGlzLmNvbmRpdGlvbiwgb3RoZXIuY29uZGl0aW9uKSk7XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKCk6IFJlbmRlcmVkU3RhdGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemVkSW50cmluc2ljXG4gICAgICA/IHtcbiAgICAgICAgcmVzb3VyY2U6IHRoaXMuc2VyaWFsaXplZEludHJpbnNpYyxcbiAgICAgICAgZWZmZWN0OiAnJyxcbiAgICAgICAgYWN0aW9uOiAnJyxcbiAgICAgICAgcHJpbmNpcGFsOiB0aGlzLnByaW5jaXBhbHMucmVuZGVyKCksIC8vIHRoZXNlIHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIGNhbGwgdG8gcmVwbGFjZUVtcHR5KCkgZnJvbSBJYW1DaGFuZ2VzXG4gICAgICAgIGNvbmRpdGlvbjogJycsXG4gICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgcmVzb3VyY2U6IHRoaXMucmVzb3VyY2VzLnJlbmRlcigpLFxuICAgICAgICBlZmZlY3Q6IHRoaXMuZWZmZWN0LFxuICAgICAgICBhY3Rpb246IHRoaXMuYWN0aW9ucy5yZW5kZXIoKSxcbiAgICAgICAgcHJpbmNpcGFsOiB0aGlzLnByaW5jaXBhbHMucmVuZGVyKCksXG4gICAgICAgIGNvbmRpdGlvbjogcmVuZGVyQ29uZGl0aW9uKHRoaXMuY29uZGl0aW9uKSxcbiAgICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWFjaGluZS1yZWFkYWJsZSB2ZXJzaW9uIG9mIHRoZSBjaGFuZ2VzLlxuICAgKiBUaGlzIGlzIG9ubHkgdXNlZCBpbiB0ZXN0cy5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvSnNvbigpOiBNYXliZVBhcnNlZDxTdGF0ZW1lbnRKc29uPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplZEludHJpbnNpY1xuICAgICAgPyBta1VucGFyc2VhYmxlKHRoaXMuc2VyaWFsaXplZEludHJpbnNpYylcbiAgICAgIDogbWtQYXJzZWQoZGVlcFJlbW92ZVVuZGVmaW5lZCh7XG4gICAgICAgIHNpZDogdGhpcy5zaWQsXG4gICAgICAgIGVmZmVjdDogdGhpcy5lZmZlY3QsXG4gICAgICAgIHJlc291cmNlczogdGhpcy5yZXNvdXJjZXMuX3RvSnNvbigpLFxuICAgICAgICBwcmluY2lwYWxzOiB0aGlzLnByaW5jaXBhbHMuX3RvSnNvbigpLFxuICAgICAgICBhY3Rpb25zOiB0aGlzLmFjdGlvbnMuX3RvSnNvbigpLFxuICAgICAgICBjb25kaXRpb246IHRoaXMuY29uZGl0aW9uLFxuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBpcyBhIG5lZ2F0aXZlIHN0YXRlbWVudFxuICAgKlxuICAgKiBBIHN0YXRlbWVudCBpcyBuZWdhdGl2ZSBpZiBhbnkgb2YgaXRzIHRhcmdldHMgYXJlIG5lZ2F0aXZlLCBpbnZlcnRlZFxuICAgKiBpZiB0aGUgRWZmZWN0IGlzIERlbnkuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzTmVnYXRpdmVTdGF0ZW1lbnQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgbm90VGFyZ2V0ID0gdGhpcy5hY3Rpb25zLm5vdCB8fCB0aGlzLnByaW5jaXBhbHMubm90IHx8IHRoaXMucmVzb3VyY2VzLm5vdDtcbiAgICByZXR1cm4gdGhpcy5lZmZlY3QgPT09IEVmZmVjdC5BbGxvdyA/IG5vdFRhcmdldCA6ICFub3RUYXJnZXQ7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJlZFN0YXRlbWVudCB7XG4gIHJlYWRvbmx5IHJlc291cmNlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVmZmVjdDogc3RyaW5nO1xuICByZWFkb25seSBhY3Rpb246IHN0cmluZztcbiAgcmVhZG9ubHkgcHJpbmNpcGFsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvbmRpdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlbWVudEpzb24ge1xuICBzaWQ/OiBzdHJpbmc7XG4gIGVmZmVjdDogc3RyaW5nO1xuICByZXNvdXJjZXM6IFRhcmdldHNKc29uO1xuICBhY3Rpb25zOiBUYXJnZXRzSnNvbjtcbiAgcHJpbmNpcGFsczogVGFyZ2V0c0pzb247XG4gIGNvbmRpdGlvbj86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRzSnNvbiB7XG4gIG5vdDogYm9vbGVhbjtcbiAgdmFsdWVzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBQYXJzZSBhIGxpc3Qgb2Ygc3RhdGVtZW50cyBmcm9tIHVuZGVmaW5lZCwgYSBTdGF0ZW1lbnQsIG9yIGEgbGlzdCBvZiBzdGF0ZW1lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVN0YXRlbWVudHMoeDogYW55KTogU3RhdGVtZW50W10ge1xuICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgeCA9IFtdO1xuICB9XG4gIGlmICghQXJyYXkuaXNBcnJheSh4KSkge1xuICAgIHggPSBbeF07XG4gIH1cbiAgcmV0dXJuIHgubWFwKChzOiBhbnkpID0+IG5ldyBTdGF0ZW1lbnQocykpO1xufVxuXG4vKipcbiAqIFBhcnNlIGEgU3RhdGVtZW50IGZyb20gYSBMYW1iZGE6OlBlcm1pc3Npb24gb2JqZWN0XG4gKlxuICogVGhpcyBpcyBhY3R1YWxseSB3aGF0IExhbWJkYSBhZGRzIHRvIHRoZSBwb2xpY3kgZG9jdW1lbnQgaWYgeW91IGNhbGwgQWRkUGVybWlzc2lvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTGFtYmRhUGVybWlzc2lvbih4OiBhbnkpOiBTdGF0ZW1lbnQge1xuICAvLyBDb25zdHJ1Y3QgYSBzdGF0ZW1lbnQgZnJvbVxuICBjb25zdCBzdGF0ZW1lbnQ6IGFueSA9IHtcbiAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgQWN0aW9uOiB4LkFjdGlvbixcbiAgICBSZXNvdXJjZTogeC5GdW5jdGlvbk5hbWUsXG4gIH07XG5cbiAgaWYgKHguUHJpbmNpcGFsICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoeC5QcmluY2lwYWwgPT09ICcqJykge1xuICAgICAgLy8gKlxuICAgICAgc3RhdGVtZW50LlByaW5jaXBhbCA9ICcqJztcbiAgICB9IGVsc2UgaWYgKC9eXFxkezEyfSQvLnRlc3QoeC5QcmluY2lwYWwpKSB7XG4gICAgICAvLyBBY2NvdW50IG51bWJlclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBjZGtsYWJzL25vLWxpdGVyYWwtcGFydGl0aW9uXG4gICAgICBzdGF0ZW1lbnQuUHJpbmNpcGFsID0geyBBV1M6IGBhcm46YXdzOmlhbTo6JHt4LlByaW5jaXBhbH06cm9vdGAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQXNzdW1lIGl0J3MgYSBzZXJ2aWNlIHByaW5jaXBhbFxuICAgICAgLy8gV2UgbWlnaHQgZ2V0IHRoaXMgd3JvbmcgdnMuIHRoZSBwcmV2aW91cyBvbmUgZm9yIHRva2Vucy4gTm90aGluZyB0byBiZSBkb25lXG4gICAgICAvLyBhYm91dCB0aGF0LiBJdCdzIG9ubHkgZm9yIGh1bWFuIHJlYWRhYmxlIGNvbnN1bXB0aW9uIGFmdGVyIGFsbC5cbiAgICAgIHN0YXRlbWVudC5QcmluY2lwYWwgPSB7IFNlcnZpY2U6IHguUHJpbmNpcGFsIH07XG4gICAgfVxuICB9XG4gIGlmICh4LlNvdXJjZUFybiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHN0YXRlbWVudC5Db25kaXRpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgc3RhdGVtZW50LkNvbmRpdGlvbiA9IHt9O1xuICAgIH1cbiAgICBzdGF0ZW1lbnQuQ29uZGl0aW9uLkFybkxpa2UgPSB7ICdBV1M6U291cmNlQXJuJzogeC5Tb3VyY2VBcm4gfTtcbiAgfVxuICBpZiAoeC5Tb3VyY2VBY2NvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoc3RhdGVtZW50LkNvbmRpdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdGF0ZW1lbnQuQ29uZGl0aW9uID0ge307XG4gICAgfVxuICAgIHN0YXRlbWVudC5Db25kaXRpb24uU3RyaW5nRXF1YWxzID0geyAnQVdTOlNvdXJjZUFjY291bnQnOiB4LlNvdXJjZUFjY291bnQgfTtcbiAgfVxuICBpZiAoeC5FdmVudFNvdXJjZVRva2VuICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoc3RhdGVtZW50LkNvbmRpdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdGF0ZW1lbnQuQ29uZGl0aW9uID0ge307XG4gICAgfVxuICAgIHN0YXRlbWVudC5Db25kaXRpb24uU3RyaW5nRXF1YWxzID0geyAnbGFtYmRhOkV2ZW50U291cmNlVG9rZW4nOiB4LkV2ZW50U291cmNlVG9rZW4gfTtcbiAgfVxuXG4gIHJldHVybiBuZXcgU3RhdGVtZW50KHN0YXRlbWVudCk7XG59XG5cbi8qKlxuICogVGFyZ2V0cyBmb3IgYSBmaWVsZFxuICovXG5leHBvcnQgY2xhc3MgVGFyZ2V0cyB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWVzIG9mIHRoZSB0YXJnZXRzXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hldGhlciBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBtYXRjaGVyc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5vdDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihzdGF0ZW1lbnQ6IFVua25vd25NYXAsIHBvc2l0aXZlS2V5OiBzdHJpbmcsIG5lZ2F0aXZlS2V5OiBzdHJpbmcpIHtcbiAgICBpZiAobmVnYXRpdmVLZXkgaW4gc3RhdGVtZW50KSB7XG4gICAgICB0aGlzLnZhbHVlcyA9IGZvcmNlTGlzdE9mU3RyaW5ncyhzdGF0ZW1lbnRbbmVnYXRpdmVLZXldKTtcbiAgICAgIHRoaXMubm90ID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZXMgPSBmb3JjZUxpc3RPZlN0cmluZ3Moc3RhdGVtZW50W3Bvc2l0aXZlS2V5XSk7XG4gICAgICB0aGlzLm5vdCA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlcy5zb3J0KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVtcHR5KCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcy5sZW5ndGggPT09IDA7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIHNldCBvZiB0YXJnZXRzIGlzIGVxdWFsIHRvIHRoZSBvdGhlciBzZXQgb2YgdGFyZ2V0c1xuICAgKi9cbiAgcHVibGljIGVxdWFsKG90aGVyOiBUYXJnZXRzKSB7XG4gICAgcmV0dXJuIHRoaXMubm90ID09PSBvdGhlci5ub3QgJiYgZGVlcEVxdWFsKHRoaXMudmFsdWVzLnNvcnQoKSwgb3RoZXIudmFsdWVzLnNvcnQoKSk7XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhlIGN1cnJlbnQgdmFsdWUgc2V0IGlzIGVtcHR5LCBwdXQgdGhpcyBpbiBpdFxuICAgKi9cbiAgcHVibGljIHJlcGxhY2VFbXB0eShyZXBsYWNlbWVudDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuZW1wdHkpIHtcbiAgICAgIHRoaXMudmFsdWVzLnB1c2gocmVwbGFjZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgYWN0aW9ucyBjb250YWlucyBhICcqJywgcmVwbGFjZSB3aXRoIHRoaXMgc3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHJlcGxhY2VTdGFyKHJlcGxhY2VtZW50OiBzdHJpbmcpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy52YWx1ZXNbaV0gPT09ICcqJykge1xuICAgICAgICB0aGlzLnZhbHVlc1tpXSA9IHJlcGxhY2VtZW50O1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnZhbHVlcy5zb3J0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIGludG8gYSBzdW1tYXJ5IHRhYmxlIGNlbGxcbiAgICovXG4gIHB1YmxpYyByZW5kZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ub3RcbiAgICAgID8gdGhpcy52YWx1ZXMubWFwKHMgPT4gYE5PVCAke3N9YCkuam9pbignXFxuJylcbiAgICAgIDogdGhpcy52YWx1ZXMuam9pbignXFxuJyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWFjaGluZS1yZWFkYWJsZSB2ZXJzaW9uIG9mIHRoZSBjaGFuZ2VzLlxuICAgKiBUaGlzIGlzIG9ubHkgdXNlZCBpbiB0ZXN0cy5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvSnNvbigpOiBUYXJnZXRzSnNvbiB7XG4gICAgcmV0dXJuIHsgbm90OiB0aGlzLm5vdCwgdmFsdWVzOiB0aGlzLnZhbHVlcyB9O1xuICB9XG59XG5cbnR5cGUgVW5rbm93bk1hcCA9IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9O1xuXG5leHBvcnQgZW51bSBFZmZlY3Qge1xuICBVbmtub3duID0gJ1Vua25vd24nLFxuICBBbGxvdyA9ICdBbGxvdycsXG4gIERlbnkgPSAnRGVueScsXG59XG5cbmZ1bmN0aW9uIGV4cGVjdFN0cmluZyh4OiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSAnc3RyaW5nJyA/IHggOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGV4cGVjdEVmZmVjdCh4OiB1bmtub3duKTogRWZmZWN0IHtcbiAgaWYgKHggPT09IEVmZmVjdC5BbGxvdyB8fCB4ID09PSBFZmZlY3QuRGVueSkge1xuICAgIHJldHVybiB4IGFzIEVmZmVjdDtcbiAgfVxuICByZXR1cm4gRWZmZWN0LlVua25vd247XG59XG5cbmZ1bmN0aW9uIGZvcmNlTGlzdE9mU3RyaW5ncyh4OiB1bmtub3duKTogc3RyaW5nW10ge1xuICBpZiAodHlwZW9mIHggPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIFt4XTtcbiAgfVxuICBpZiAodHlwZW9mIHggPT09ICd1bmRlZmluZWQnIHx8IHggPT09IG51bGwpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh4KSkge1xuICAgIHJldHVybiB4Lm1hcChlID0+IGZvcmNlTGlzdE9mU3RyaW5ncyhlKS5qb2luKCcsJykpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiB4ICE9PSBudWxsKSB7XG4gICAgY29uc3QgcmV0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHgpKSB7XG4gICAgICByZXQucHVzaCguLi5mb3JjZUxpc3RPZlN0cmluZ3ModmFsdWUpLm1hcChzID0+IGAke2tleX06JHtzfWApKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHJldHVybiBbYCR7eH1gXTtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIENvbmRpdGlvbiBjb2x1bW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckNvbmRpdGlvbihjb25kaXRpb246IGFueSk6IHN0cmluZyB7XG4gIGlmICghY29uZGl0aW9uIHx8IE9iamVjdC5rZXlzKGNvbmRpdGlvbikubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGNvbnN0IGpzb25SZXByZXNlbnRhdGlvbiA9IEpTT04uc3RyaW5naWZ5KGNvbmRpdGlvbiwgdW5kZWZpbmVkLCAyKTtcblxuICAvLyBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBsb29rcyBsaWtlIHRoaXM6XG4gIC8vXG4gIC8vICB7XG4gIC8vICAgIFwiQXJuTGlrZVwiOiB7XG4gIC8vICAgICAgXCJBV1M6U291cmNlQXJuXCI6IFwiJHtNeVRvcGljODY4Njk0MzR9XCJcbiAgLy8gICAgfVxuICAvLyAgfVxuICAvL1xuICAvLyBXZSBjYW4gbWFrZSBpdCBtb3JlIGNvbXBhY3Qgd2l0aG91dCBsb3NpbmcgaW5mb3JtYXRpb24gYnkgZ2V0dGluZyByaWQgb2YgdGhlIG91dGVybW9zdCBicmFjZXNcbiAgLy8gYW5kIHRoZSBpbmRlbnRhdGlvbi5cbiAgY29uc3QgbGluZXMgPSBqc29uUmVwcmVzZW50YXRpb24uc3BsaXQoJ1xcbicpO1xuICByZXR1cm4gbGluZXMuc2xpY2UoMSwgbGluZXMubGVuZ3RoIC0gMSkubWFwKHMgPT4gcy5zbGljZSgyKSkuam9pbignXFxuJyk7XG59XG4iXX0=
package/lib/mappings.d.ts CHANGED
@@ -3,5 +3,7 @@ export interface TypedMapping {
3
3
  readonly sourcePath: string;
4
4
  readonly destinationPath: string;
5
5
  }
6
- export declare function formatTypedMappings(stream: NodeJS.WritableStream, mappings: TypedMapping[]): void;
7
- export declare function formatAmbiguousMappings(stream: NodeJS.WritableStream, pairs: [string[], string[]][]): void;
6
+ export declare function formatMappingsHeader(stream: NodeJS.WritableStream): void;
7
+ export declare function formatTypedMappings(stream: NodeJS.WritableStream, mappings: TypedMapping[], env: string): void;
8
+ export declare function formatAmbiguitySectionHeader(stream: NodeJS.WritableStream): void;
9
+ export declare function formatAmbiguousMappings(stream: NodeJS.WritableStream, pairs: [string[], string[]][], env: string): void;
package/lib/mappings.js CHANGED
@@ -1,26 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatMappingsHeader = formatMappingsHeader;
3
4
  exports.formatTypedMappings = formatTypedMappings;
5
+ exports.formatAmbiguitySectionHeader = formatAmbiguitySectionHeader;
4
6
  exports.formatAmbiguousMappings = formatAmbiguousMappings;
5
7
  const chalk = require("chalk");
6
8
  const format_1 = require("./format");
7
9
  const format_table_1 = require("./format-table");
8
- function formatTypedMappings(stream, mappings) {
10
+ function formatMappingsHeader(stream) {
11
+ const formatter = new format_1.Formatter(stream, {});
12
+ formatter.printSectionHeader('The following resources were moved or renamed:\n');
13
+ }
14
+ function formatTypedMappings(stream, mappings, env) {
9
15
  const header = [['Resource Type', 'Old Construct Path', 'New Construct Path']];
10
16
  const rows = mappings.map((m) => [m.type, m.sourcePath, m.destinationPath]);
11
17
  const formatter = new format_1.Formatter(stream, {});
18
+ formatter.print(`${env}:`);
12
19
  if (mappings.length > 0) {
13
- formatter.printSectionHeader('The following resources were moved or renamed:');
14
20
  formatter.print(chalk.green((0, format_table_1.formatTable)(header.concat(rows), undefined)));
15
21
  }
16
22
  else {
17
23
  formatter.print('Nothing to refactor.');
18
24
  }
25
+ formatter.print(' ');
26
+ }
27
+ function formatAmbiguitySectionHeader(stream) {
28
+ const formatter = new format_1.Formatter(stream, {});
29
+ formatter.printSectionHeader('Ambiguous Resource Name Changes:\n');
19
30
  }
20
- function formatAmbiguousMappings(stream, pairs) {
31
+ function formatAmbiguousMappings(stream, pairs, env) {
21
32
  const tables = pairs.map(renderTable);
22
33
  const formatter = new format_1.Formatter(stream, {});
23
- formatter.printSectionHeader('Ambiguous Resource Name Changes');
34
+ formatter.print(`${env}:`);
24
35
  formatter.print(tables.join('\n\n'));
25
36
  formatter.printSectionFooter();
26
37
  function renderTable([removed, added]) {
@@ -36,4 +47,4 @@ function formatAmbiguousMappings(stream, pairs) {
36
47
  return locs.join('\n');
37
48
  }
38
49
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBwaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLGtEQVdDO0FBRUQsMERBMEJDO0FBakRELCtCQUErQjtBQUMvQixxQ0FBcUM7QUFDckMsaURBQTZDO0FBUTdDLFNBQWdCLG1CQUFtQixDQUFDLE1BQTZCLEVBQUUsUUFBd0I7SUFDekYsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7SUFDL0UsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFFNUUsTUFBTSxTQUFTLEdBQUcsSUFBSSxrQkFBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1QyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDeEIsU0FBUyxDQUFDLGtCQUFrQixDQUFDLGdEQUFnRCxDQUFDLENBQUM7UUFDL0UsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUEsMEJBQVcsRUFBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO1NBQU0sQ0FBQztRQUNOLFNBQVMsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLHVCQUF1QixDQUNyQyxNQUE2QixFQUM3QixLQUE2QjtJQUU3QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sU0FBUyxHQUFHLElBQUksa0JBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFNUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDaEUsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDckMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFFL0IsU0FBUyxXQUFXLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUF1QjtRQUN6RCxPQUFPLElBQUEsMEJBQVcsRUFBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRUQsU0FBUyxhQUFhLENBQUMsU0FBbUI7UUFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxTQUFTLGNBQWMsQ0FBQyxTQUFtQjtRQUN6QyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELFNBQVMsZUFBZSxDQUFDLElBQWM7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHsgRm9ybWF0dGVyIH0gZnJvbSAnLi9mb3JtYXQnO1xuaW1wb3J0IHsgZm9ybWF0VGFibGUgfSBmcm9tICcuL2Zvcm1hdC10YWJsZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZWRNYXBwaW5nIHtcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICByZWFkb25seSBzb3VyY2VQYXRoOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uUGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VHlwZWRNYXBwaW5ncyhzdHJlYW06IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSwgbWFwcGluZ3M6IFR5cGVkTWFwcGluZ1tdKSB7XG4gIGNvbnN0IGhlYWRlciA9IFtbJ1Jlc291cmNlIFR5cGUnLCAnT2xkIENvbnN0cnVjdCBQYXRoJywgJ05ldyBDb25zdHJ1Y3QgUGF0aCddXTtcbiAgY29uc3Qgcm93cyA9IG1hcHBpbmdzLm1hcCgobSkgPT4gW20udHlwZSwgbS5zb3VyY2VQYXRoLCBtLmRlc3RpbmF0aW9uUGF0aF0pO1xuXG4gIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBGb3JtYXR0ZXIoc3RyZWFtLCB7fSk7XG4gIGlmIChtYXBwaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgZm9ybWF0dGVyLnByaW50U2VjdGlvbkhlYWRlcignVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2VyZSBtb3ZlZCBvciByZW5hbWVkOicpO1xuICAgIGZvcm1hdHRlci5wcmludChjaGFsay5ncmVlbihmb3JtYXRUYWJsZShoZWFkZXIuY29uY2F0KHJvd3MpLCB1bmRlZmluZWQpKSk7XG4gIH0gZWxzZSB7XG4gICAgZm9ybWF0dGVyLnByaW50KCdOb3RoaW5nIHRvIHJlZmFjdG9yLicpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRBbWJpZ3VvdXNNYXBwaW5ncyhcbiAgc3RyZWFtOiBOb2RlSlMuV3JpdGFibGVTdHJlYW0sXG4gIHBhaXJzOiBbc3RyaW5nW10sIHN0cmluZ1tdXVtdLFxuKSB7XG4gIGNvbnN0IHRhYmxlcyA9IHBhaXJzLm1hcChyZW5kZXJUYWJsZSk7XG4gIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBGb3JtYXR0ZXIoc3RyZWFtLCB7fSk7XG5cbiAgZm9ybWF0dGVyLnByaW50U2VjdGlvbkhlYWRlcignQW1iaWd1b3VzIFJlc291cmNlIE5hbWUgQ2hhbmdlcycpO1xuICBmb3JtYXR0ZXIucHJpbnQodGFibGVzLmpvaW4oJ1xcblxcbicpKTtcbiAgZm9ybWF0dGVyLnByaW50U2VjdGlvbkZvb3RlcigpO1xuXG4gIGZ1bmN0aW9uIHJlbmRlclRhYmxlKFtyZW1vdmVkLCBhZGRlZF06IFtzdHJpbmdbXSwgc3RyaW5nW11dKSB7XG4gICAgcmV0dXJuIGZvcm1hdFRhYmxlKFtbJycsICdSZXNvdXJjZSddLCByZW5kZXJSZW1vdmFsKHJlbW92ZWQpLCByZW5kZXJBZGRpdGlvbihhZGRlZCldLCB1bmRlZmluZWQpO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVuZGVyUmVtb3ZhbChsb2NhdGlvbnM6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIFtjaGFsay5yZWQoJy0nKSwgY2hhbGsucmVkKHJlbmRlckxvY2F0aW9ucyhsb2NhdGlvbnMpKV07XG4gIH1cblxuICBmdW5jdGlvbiByZW5kZXJBZGRpdGlvbihsb2NhdGlvbnM6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIFtjaGFsay5ncmVlbignKycpLCBjaGFsay5ncmVlbihyZW5kZXJMb2NhdGlvbnMobG9jYXRpb25zKSldO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVuZGVyTG9jYXRpb25zKGxvY3M6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIGxvY3Muam9pbignXFxuJyk7XG4gIH1cbn1cbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBwaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLG9EQUdDO0FBRUQsa0RBWUM7QUFFRCxvRUFHQztBQUVELDBEQTJCQztBQTdERCwrQkFBK0I7QUFDL0IscUNBQXFDO0FBQ3JDLGlEQUE2QztBQVE3QyxTQUFnQixvQkFBb0IsQ0FBQyxNQUE2QjtJQUNoRSxNQUFNLFNBQVMsR0FBRyxJQUFJLGtCQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0FBQ25GLENBQUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxNQUE2QixFQUFFLFFBQXdCLEVBQUUsR0FBVztJQUN0RyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsZUFBZSxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQztJQUMvRSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUU1RSxNQUFNLFNBQVMsR0FBRyxJQUFJLGtCQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN4QixTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBQSwwQkFBVyxFQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7U0FBTSxDQUFDO1FBQ04sU0FBUyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxTQUFnQiw0QkFBNEIsQ0FBQyxNQUE2QjtJQUN4RSxNQUFNLFNBQVMsR0FBRyxJQUFJLGtCQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRCxTQUFnQix1QkFBdUIsQ0FDckMsTUFBNkIsRUFDN0IsS0FBNkIsRUFDN0IsR0FBVztJQUVYLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxrQkFBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUU1QyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUMzQixTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNyQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUUvQixTQUFTLFdBQVcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQXVCO1FBQ3pELE9BQU8sSUFBQSwwQkFBVyxFQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFRCxTQUFTLGFBQWEsQ0FBQyxTQUFtQjtRQUN4QyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELFNBQVMsY0FBYyxDQUFDLFNBQW1CO1FBQ3pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsU0FBUyxlQUFlLENBQUMsSUFBYztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBGb3JtYXR0ZXIgfSBmcm9tICcuL2Zvcm1hdCc7XG5pbXBvcnQgeyBmb3JtYXRUYWJsZSB9IGZyb20gJy4vZm9ybWF0LXRhYmxlJztcblxuZXhwb3J0IGludGVyZmFjZSBUeXBlZE1hcHBpbmcge1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvdXJjZVBhdGg6IHN0cmluZztcbiAgcmVhZG9ubHkgZGVzdGluYXRpb25QYXRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRNYXBwaW5nc0hlYWRlcihzdHJlYW06IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSkge1xuICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgRm9ybWF0dGVyKHN0cmVhbSwge30pO1xuICBmb3JtYXR0ZXIucHJpbnRTZWN0aW9uSGVhZGVyKCdUaGUgZm9sbG93aW5nIHJlc291cmNlcyB3ZXJlIG1vdmVkIG9yIHJlbmFtZWQ6XFxuJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUeXBlZE1hcHBpbmdzKHN0cmVhbTogTm9kZUpTLldyaXRhYmxlU3RyZWFtLCBtYXBwaW5nczogVHlwZWRNYXBwaW5nW10sIGVudjogc3RyaW5nKSB7XG4gIGNvbnN0IGhlYWRlciA9IFtbJ1Jlc291cmNlIFR5cGUnLCAnT2xkIENvbnN0cnVjdCBQYXRoJywgJ05ldyBDb25zdHJ1Y3QgUGF0aCddXTtcbiAgY29uc3Qgcm93cyA9IG1hcHBpbmdzLm1hcCgobSkgPT4gW20udHlwZSwgbS5zb3VyY2VQYXRoLCBtLmRlc3RpbmF0aW9uUGF0aF0pO1xuXG4gIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBGb3JtYXR0ZXIoc3RyZWFtLCB7fSk7XG4gIGZvcm1hdHRlci5wcmludChgJHtlbnZ9OmApO1xuICBpZiAobWFwcGluZ3MubGVuZ3RoID4gMCkge1xuICAgIGZvcm1hdHRlci5wcmludChjaGFsay5ncmVlbihmb3JtYXRUYWJsZShoZWFkZXIuY29uY2F0KHJvd3MpLCB1bmRlZmluZWQpKSk7XG4gIH0gZWxzZSB7XG4gICAgZm9ybWF0dGVyLnByaW50KCdOb3RoaW5nIHRvIHJlZmFjdG9yLicpO1xuICB9XG4gIGZvcm1hdHRlci5wcmludCgnICcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0QW1iaWd1aXR5U2VjdGlvbkhlYWRlcihzdHJlYW06IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSkge1xuICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgRm9ybWF0dGVyKHN0cmVhbSwge30pO1xuICBmb3JtYXR0ZXIucHJpbnRTZWN0aW9uSGVhZGVyKCdBbWJpZ3VvdXMgUmVzb3VyY2UgTmFtZSBDaGFuZ2VzOlxcbicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0QW1iaWd1b3VzTWFwcGluZ3MoXG4gIHN0cmVhbTogTm9kZUpTLldyaXRhYmxlU3RyZWFtLFxuICBwYWlyczogW3N0cmluZ1tdLCBzdHJpbmdbXV1bXSxcbiAgZW52OiBzdHJpbmcsXG4pIHtcbiAgY29uc3QgdGFibGVzID0gcGFpcnMubWFwKHJlbmRlclRhYmxlKTtcbiAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEZvcm1hdHRlcihzdHJlYW0sIHt9KTtcblxuICBmb3JtYXR0ZXIucHJpbnQoYCR7ZW52fTpgKTtcbiAgZm9ybWF0dGVyLnByaW50KHRhYmxlcy5qb2luKCdcXG5cXG4nKSk7XG4gIGZvcm1hdHRlci5wcmludFNlY3Rpb25Gb290ZXIoKTtcblxuICBmdW5jdGlvbiByZW5kZXJUYWJsZShbcmVtb3ZlZCwgYWRkZWRdOiBbc3RyaW5nW10sIHN0cmluZ1tdXSkge1xuICAgIHJldHVybiBmb3JtYXRUYWJsZShbWycnLCAnUmVzb3VyY2UnXSwgcmVuZGVyUmVtb3ZhbChyZW1vdmVkKSwgcmVuZGVyQWRkaXRpb24oYWRkZWQpXSwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbmRlclJlbW92YWwobG9jYXRpb25zOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBbY2hhbGsucmVkKCctJyksIGNoYWxrLnJlZChyZW5kZXJMb2NhdGlvbnMobG9jYXRpb25zKSldO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVuZGVyQWRkaXRpb24obG9jYXRpb25zOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBbY2hhbGsuZ3JlZW4oJysnKSwgY2hhbGsuZ3JlZW4ocmVuZGVyTG9jYXRpb25zKGxvY2F0aW9ucykpXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbmRlckxvY2F0aW9ucyhsb2NzOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBsb2NzLmpvaW4oJ1xcbicpO1xuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -31,7 +31,7 @@
31
31
  "organization": true
32
32
  },
33
33
  "devDependencies": {
34
- "@aws-sdk/client-cloudformation": "^3.787.0",
34
+ "@aws-sdk/client-cloudformation": "3.0.0",
35
35
  "@cdklabs/eslint-plugin": "^1.3.2",
36
36
  "@stylistic/eslint-plugin": "^3",
37
37
  "@types/jest": "^29.5.14",
@@ -41,24 +41,26 @@
41
41
  "commit-and-tag-version": "^12",
42
42
  "constructs": "^10.0.0",
43
43
  "eslint": "^9",
44
- "eslint-config-prettier": "^10.1.2",
45
- "eslint-import-resolver-typescript": "^3.10.0",
44
+ "eslint-config-prettier": "^10.1.5",
45
+ "eslint-import-resolver-typescript": "^3.10.1",
46
46
  "eslint-plugin-import": "^2.31.0",
47
- "eslint-plugin-jest": "^28.11.0",
48
- "eslint-plugin-jsdoc": "^50.6.9",
49
- "eslint-plugin-prettier": "^5.2.6",
47
+ "eslint-plugin-jest": "^28.12.0",
48
+ "eslint-plugin-jsdoc": "^50.7.1",
49
+ "eslint-plugin-prettier": "^5.4.1",
50
50
  "fast-check": "^3.23.2",
51
51
  "jest": "^29.7.0",
52
52
  "jest-junit": "^16",
53
53
  "license-checker": "^25.0.1",
54
54
  "prettier": "^2.8",
55
- "projen": "^0.91.20",
56
- "ts-jest": "^29.3.2",
55
+ "ts-jest": "^29.3.4",
57
56
  "typescript": "5.6"
58
57
  },
58
+ "peerDependencies": {
59
+ "@aws-sdk/client-cloudformation": "^3"
60
+ },
59
61
  "dependencies": {
60
- "@aws-cdk/aws-service-spec": "^0.1.69",
61
- "@aws-cdk/service-spec-types": "^0.0.135",
62
+ "@aws-cdk/aws-service-spec": "^0.1.79",
63
+ "@aws-cdk/service-spec-types": "^0.0.145",
62
64
  "chalk": "^4",
63
65
  "diff": "^7.0.0",
64
66
  "fast-deep-equal": "^3.1.3",
@@ -70,7 +72,7 @@
70
72
  "cdk"
71
73
  ],
72
74
  "engines": {
73
- "node": ">= 14.15.0"
75
+ "node": ">= 18.0.0"
74
76
  },
75
77
  "main": "lib/index.js",
76
78
  "license": "Apache-2.0",
@@ -78,7 +80,7 @@
78
80
  "publishConfig": {
79
81
  "access": "public"
80
82
  },
81
- "version": "2.181.1",
83
+ "version": "2.182.0",
82
84
  "types": "lib/index.d.ts",
83
85
  "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
84
86
  }