@mnaoumov/typescript-dev-toolkit 3.13.1 → 5.0.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.
Files changed (85) hide show
  1. package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.cjs +3 -3
  2. package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.d.cts +1 -1
  3. package/dist/lib/cjs/docs-site/api-doc-link-rendering.cjs +1 -1
  4. package/dist/lib/cjs/docs-site/api-doc-settings.cjs +1 -1
  5. package/dist/lib/cjs/docs-site/api-doc-types.cjs +1 -1
  6. package/dist/lib/cjs/docs-site/api-doc-types.d.cts +57 -57
  7. package/dist/lib/cjs/docs-site/link-check.cjs +1 -1
  8. package/dist/lib/cjs/docs-site/link-check.d.cts +8 -8
  9. package/dist/lib/cjs/docs-site/og-images.cjs +1 -1
  10. package/dist/lib/cjs/docs-site/satteri-github-alerts.cjs +1 -1
  11. package/dist/lib/cjs/docs-site/unrendered-alerts.cjs +1 -1
  12. package/dist/lib/cjs/docs-site/unrendered-alerts.d.cts +2 -2
  13. package/dist/lib/cjs/library-build.cjs +8 -8
  14. package/dist/lib/cjs/linters/eslint-agnostic-core-boundary.cjs +1 -1
  15. package/dist/lib/cjs/linters/eslint-agnostic-core-boundary.d.cts +2 -2
  16. package/dist/lib/cjs/linters/eslint-config.cjs +8 -6
  17. package/dist/lib/cjs/linters/eslint-no-restricted-syntax.cjs +1 -1
  18. package/dist/lib/cjs/linters/eslint-no-restricted-syntax.d.cts +2 -2
  19. package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.cjs +5 -3
  20. package/dist/lib/cjs/linters/eslint-rules/index.cjs +7 -4
  21. package/dist/lib/cjs/linters/eslint-rules/index.d.cts +2 -1
  22. package/dist/lib/cjs/linters/eslint-rules/no-keyword-identifiers.cjs +144 -0
  23. package/dist/lib/cjs/linters/eslint-rules/no-keyword-identifiers.d.cts +11 -0
  24. package/dist/lib/cjs/linters/eslint-rules/no-unresolved-jsdoc-link.cjs +5 -5
  25. package/dist/lib/cjs/linters/eslint-rules/no-unused-params-members.cjs +1 -1
  26. package/dist/lib/cjs/linters/eslint-rules/no-used-underscore-variables.cjs +1 -1
  27. package/dist/lib/cjs/linters/eslint-rules/readonly-interface-members.cjs +68 -0
  28. package/dist/lib/cjs/linters/eslint-rules/readonly-interface-members.d.cts +18 -0
  29. package/dist/lib/cjs/linters/eslint-rules/require-method-template.cjs +1 -1
  30. package/dist/lib/cjs/linters/eslint-rules/require-super-call.cjs +1 -1
  31. package/dist/lib/cjs/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.cts +1 -1
  32. package/dist/lib/cjs/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.cts +279 -279
  33. package/dist/lib/cjs/linters/over-exposure.cjs +1 -1
  34. package/dist/lib/cjs/linters/over-exposure.d.cts +6 -6
  35. package/dist/lib/cjs/npm.cjs +1 -1
  36. package/dist/lib/cjs/npm.d.cts +1 -1
  37. package/dist/lib/cjs/released-issues.cjs +4 -4
  38. package/dist/lib/cjs/upstream-sync.cjs +3 -3
  39. package/dist/lib/cjs/upstream-sync.d.cts +31 -31
  40. package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.d.mts +1 -1
  41. package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.mjs +3 -3
  42. package/dist/lib/esm/docs-site/api-doc-link-rendering.mjs +1 -1
  43. package/dist/lib/esm/docs-site/api-doc-settings.mjs +1 -1
  44. package/dist/lib/esm/docs-site/api-doc-types.d.mts +57 -57
  45. package/dist/lib/esm/docs-site/link-check.d.mts +8 -8
  46. package/dist/lib/esm/docs-site/link-check.mjs +1 -1
  47. package/dist/lib/esm/docs-site/og-images.mjs +1 -1
  48. package/dist/lib/esm/docs-site/satteri-github-alerts.mjs +1 -1
  49. package/dist/lib/esm/docs-site/unrendered-alerts.d.mts +2 -2
  50. package/dist/lib/esm/docs-site/unrendered-alerts.mjs +1 -1
  51. package/dist/lib/esm/library-build.mjs +8 -8
  52. package/dist/lib/esm/linters/eslint-agnostic-core-boundary.d.mts +2 -2
  53. package/dist/lib/esm/linters/eslint-agnostic-core-boundary.mjs +1 -1
  54. package/dist/lib/esm/linters/eslint-config.mjs +8 -6
  55. package/dist/lib/esm/linters/eslint-no-restricted-syntax.d.mts +2 -2
  56. package/dist/lib/esm/linters/eslint-no-restricted-syntax.mjs +1 -1
  57. package/dist/lib/esm/linters/eslint-rules/in-house-plugin.mjs +5 -3
  58. package/dist/lib/esm/linters/eslint-rules/index.d.mts +2 -1
  59. package/dist/lib/esm/linters/eslint-rules/index.mjs +5 -3
  60. package/dist/lib/esm/linters/eslint-rules/no-keyword-identifiers.d.mts +11 -0
  61. package/dist/lib/esm/linters/eslint-rules/no-keyword-identifiers.mjs +120 -0
  62. package/dist/lib/esm/linters/eslint-rules/no-unresolved-jsdoc-link.mjs +5 -5
  63. package/dist/lib/esm/linters/eslint-rules/no-unused-params-members.mjs +1 -1
  64. package/dist/lib/esm/linters/eslint-rules/no-used-underscore-variables.mjs +1 -1
  65. package/dist/lib/esm/linters/eslint-rules/readonly-interface-members.d.mts +18 -0
  66. package/dist/lib/esm/linters/eslint-rules/readonly-interface-members.mjs +43 -0
  67. package/dist/lib/esm/linters/eslint-rules/require-method-template.mjs +1 -1
  68. package/dist/lib/esm/linters/eslint-rules/require-super-call.mjs +1 -1
  69. package/dist/lib/esm/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.mts +1 -1
  70. package/dist/lib/esm/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.mts +279 -279
  71. package/dist/lib/esm/linters/over-exposure.d.mts +6 -6
  72. package/dist/lib/esm/linters/over-exposure.mjs +1 -1
  73. package/dist/lib/esm/npm.d.mts +1 -1
  74. package/dist/lib/esm/npm.mjs +1 -1
  75. package/dist/lib/esm/released-issues.mjs +4 -4
  76. package/dist/lib/esm/upstream-sync.d.mts +31 -31
  77. package/dist/lib/esm/upstream-sync.mjs +3 -3
  78. package/linters/eslint-rules/no-keyword-identifiers/package.json +6 -0
  79. package/linters/eslint-rules/readonly-interface-members/package.json +6 -0
  80. package/package.json +1 -1
  81. package/dist/lib/cjs/linters/eslint-rules/readonly-params-options-result-members.cjs +0 -103
  82. package/dist/lib/cjs/linters/eslint-rules/readonly-params-options-result-members.d.cts +0 -20
  83. package/dist/lib/esm/linters/eslint-rules/readonly-params-options-result-members.d.mts +0 -20
  84. package/dist/lib/esm/linters/eslint-rules/readonly-params-options-result-members.mjs +0 -78
  85. package/linters/eslint-rules/readonly-params-options-result-members/package.json +0 -6
@@ -192,4 +192,4 @@ function isSuperPropertyAccess(node, propertyName) {
192
192
  MESSAGE_ID,
193
193
  requireSuperCall
194
194
  });
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC1ydWxlcy9yZXF1aXJlLXN1cGVyLWNhbGwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEVTTGludCBydWxlOiByZXF1aXJlLXN1cGVyLWNhbGxcbiAqXG4gKiBSZXBvcnRzIGFuIGVycm9yIHdoZW4gYW4gYG92ZXJyaWRlYCBtZXRob2QgZG9lcyBub3QgY2FsbCBgc3VwZXIubWV0aG9kTmFtZSgpYFxuICogYW55d2hlcmUgaW4gaXRzIGJvZHkuIE92ZXJyaWRpbmcgYSBtZXRob2Qgd2l0aG91dCBjYWxsaW5nIGBzdXBlcmAgaXMgYWxtb3N0XG4gKiBhbHdheXMgYSBtaXN0YWtlIHRoYXQgc2lsZW50bHkgYnJlYWtzIHBhcmVudC1jbGFzcyBiZWhhdmlvciAobGlmZWN5Y2xlIGhvb2tzLFxuICogaW5pdGlhbGl6YXRpb24sIGV2ZW50IHdpcmluZywgZXRjLikuXG4gKlxuICogVGhlIHN1cGVyIGNhbGwgY2FuIGFwcGVhciBhbnl3aGVyZSBpbiB0aGUgbWV0aG9kIGJvZHkg4oCUIGFzIGEgc3RhbmRhbG9uZVxuICogc3RhdGVtZW50LCBhd2FpdGVkLCBhc3NpZ25lZCB0byBhIHZhcmlhYmxlLCBvciBuZXN0ZWQgaW4gYW55IGV4cHJlc3Npb24uXG4gKlxuICogVGhlIHJ1bGUgYXV0b21hdGljYWxseSBza2lwcyBtZXRob2RzIHdoZXJlIHRoZSBwYXJlbnQgaW1wbGVtZW50YXRpb24gaXNcbiAqIGBhYnN0cmFjdGAsIHNpbmNlIHRoZXJlIGlzIG5vIGNvbmNyZXRlIGBzdXBlcmAgdG8gY2FsbC5cbiAqXG4gKiBJZiB0aGUgb3ZlcnJpZGUgaW50ZW50aW9uYWxseSByZXBsYWNlcyB0aGUgcGFyZW50IGltcGxlbWVudGF0aW9uLCBkaXNhYmxlIHRoZVxuICogcnVsZSBvbiB0aGF0IGxpbmUgd2l0aCBhbiBleHBsYW5hdG9yeSBjb21tZW50LlxuICovXG5pbXBvcnQgdHlwZSB7XG4gIFBhcnNlclNlcnZpY2VzV2l0aFR5cGVJbmZvcm1hdGlvbixcbiAgVFNFU1RyZWVcbn0gZnJvbSAnQHR5cGVzY3JpcHQtZXNsaW50L3V0aWxzJztcbmltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gJ2VzbGludCc7XG5pbXBvcnQgdHlwZSB7IERlY2xhcmF0aW9uIH0gZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQge1xuICBjYW5IYXZlTW9kaWZpZXJzLFxuICBnZXRNb2RpZmllcnMsXG4gIFN5bnRheEtpbmRcbn0gZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7IHRvVFNFU1RyZWVOb2RlIH0gZnJvbSAnLi90cy1lc3RyZWUtbm9kZS50cyc7XG5cbi8qKlxuTWVzc2FnZSBJRCByZXBvcnRlZCB3aGVuIGFuIGBvdmVycmlkZWAgbWV0aG9kIGRvZXMgbm90IGFjY2VzcyBpdHMgYHN1cGVyYCBjb3VudGVycGFydC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSUQgPSAncmVxdWlyZVN1cGVyQ2FsbCc7XG5cbnR5cGUgTWV0aG9kS2luZCA9ICdnZXQnIHwgJ21ldGhvZCcgfCAnc2V0JztcblxuaW50ZXJmYWNlIE92ZXJyaWRlTWV0aG9kSW5mbyB7XG4gIGhhc1N1cGVyQ2FsbDogYm9vbGVhbjtcbiAga2luZDogTWV0aG9kS2luZDtcbiAgbWV0aG9kTmFtZTogc3RyaW5nO1xuICBub2RlOiBUU0VTVHJlZS5NZXRob2REZWZpbml0aW9uO1xuICByZXBvcnROb2RlOiBSdWxlLk5vZGU7XG59XG5cbi8qKlxuICogRVNMaW50IHJ1bGUgcmVxdWlyaW5nIGBvdmVycmlkZWAgbWV0aG9kcyB0byBjYWxsIGBzdXBlci5tZXRob2ROYW1lKClgLCBzbyB0aGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBpcyBub3Qgc2lsZW50bHkgc2tpcHBlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlcXVpcmVTdXBlckNhbGw6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBtZXRob2RTdGFjazogT3ZlcnJpZGVNZXRob2RJbmZvW10gPSBbXTtcblxuICAgIHJldHVybiB7XG4gICAgICAnQXNzaWdubWVudEV4cHJlc3Npb24nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gbWV0aG9kU3RhY2suYXQoLTEpO1xuICAgICAgICBpZiAoY3VycmVudD8ua2luZCAhPT0gJ3NldCcpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhc3NpZ25Ob2RlID0gdG9UU0VTVHJlZU5vZGUobm9kZSkgYXMgVFNFU1RyZWUuQXNzaWdubWVudEV4cHJlc3Npb247XG4gICAgICAgIGlmIChpc1N1cGVyUHJvcGVydHlBY2Nlc3MoYXNzaWduTm9kZS5sZWZ0LCBjdXJyZW50Lm1ldGhvZE5hbWUpKSB7XG4gICAgICAgICAgY3VycmVudC5oYXNTdXBlckNhbGwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgJ0NhbGxFeHByZXNzaW9uJyhub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudCA9IG1ldGhvZFN0YWNrLmF0KC0xKTtcbiAgICAgICAgaWYgKGN1cnJlbnQ/LmtpbmQgIT09ICdtZXRob2QnKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2FsbE5vZGUgPSB0b1RTRVNUcmVlTm9kZShub2RlKSBhcyBUU0VTVHJlZS5DYWxsRXhwcmVzc2lvbjtcbiAgICAgICAgaWYgKGlzU3VwZXJNZXRob2RDYWxsKGNhbGxOb2RlLCBjdXJyZW50Lm1ldGhvZE5hbWUpKSB7XG4gICAgICAgICAgY3VycmVudC5oYXNTdXBlckNhbGwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgJ01lbWJlckV4cHJlc3Npb24nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gbWV0aG9kU3RhY2suYXQoLTEpO1xuICAgICAgICBpZiAoY3VycmVudD8ua2luZCAhPT0gJ2dldCcpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZW1iZXJOb2RlID0gdG9UU0VTVHJlZU5vZGUobm9kZSkgYXMgVFNFU1RyZWUuTWVtYmVyRXhwcmVzc2lvbjtcbiAgICAgICAgaWYgKGlzU3VwZXJQcm9wZXJ0eUFjY2VzcyhtZW1iZXJOb2RlLCBjdXJyZW50Lm1ldGhvZE5hbWUpKSB7XG4gICAgICAgICAgY3VycmVudC5oYXNTdXBlckNhbGwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgJ01ldGhvZERlZmluaXRpb24nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBtZXRob2ROb2RlID0gdG9UU0VTVHJlZU5vZGUobm9kZSkgYXMgVFNFU1RyZWUuTWV0aG9kRGVmaW5pdGlvbjtcblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1lbnVtLWNvbXBhcmlzb24gLS0gQVNUIG5vZGUgdHlwZSBzdHJpbmcgbGl0ZXJhbHMgbWF0Y2ggdGhlIFRTRVNUcmVlIGVudW0gdmFsdWVzLlxuICAgICAgICBpZiAoIW1ldGhvZE5vZGUub3ZlcnJpZGUgfHwgbWV0aG9kTm9kZS5rZXkudHlwZSAhPT0gJ0lkZW50aWZpZXInKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qga2luZCA9IG1ldGhvZE5vZGUua2luZCA9PT0gJ2dldCcgfHwgbWV0aG9kTm9kZS5raW5kID09PSAnc2V0JyA/IG1ldGhvZE5vZGUua2luZCA6ICdtZXRob2QnO1xuXG4gICAgICAgIG1ldGhvZFN0YWNrLnB1c2goe1xuICAgICAgICAgIGhhc1N1cGVyQ2FsbDogZmFsc2UsXG4gICAgICAgICAga2luZCxcbiAgICAgICAgICBtZXRob2ROYW1lOiBtZXRob2ROb2RlLmtleS5uYW1lLFxuICAgICAgICAgIG5vZGU6IG1ldGhvZE5vZGUsXG4gICAgICAgICAgcmVwb3J0Tm9kZTogbm9kZVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICAnTWV0aG9kRGVmaW5pdGlvbjpleGl0JygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5mbyA9IG1ldGhvZFN0YWNrLmF0KC0xKTtcbiAgICAgICAgaWYgKCFpbmZvKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbWV0aG9kU3RhY2sucG9wKCk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGluZm8uaGFzU3VwZXJDYWxsIHx8IGlzUGFyZW50TWV0aG9kQWJzdHJhY3Qoe1xuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIG1ldGhvZE5hbWU6IGluZm8ubWV0aG9kTmFtZSxcbiAgICAgICAgICAgIG1ldGhvZE5vZGU6IGluZm8ubm9kZVxuICAgICAgICAgIH0pXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBkYXRhOiB7IGtpbmQ6IGluZm8ua2luZCwgbWV0aG9kTmFtZTogaW5mby5tZXRob2ROYW1lIH0sXG4gICAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lELFxuICAgICAgICAgIG5vZGU6IGluZm8ucmVwb3J0Tm9kZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246ICdSZXF1aXJlIGBvdmVycmlkZWAgbWV0aG9kcyB0byBjYWxsIGBzdXBlci5tZXRob2ROYW1lKClgJ1xuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIFtNRVNTQUdFX0lEXTogJ092ZXJyaWRlIHt7IGtpbmQgfX0gYHt7IG1ldGhvZE5hbWUgfX1gIG11c3QgYWNjZXNzIGBzdXBlci57eyBtZXRob2ROYW1lIH19YC4nXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6ICdwcm9ibGVtJ1xuICB9XG59O1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBpc1BhcmVudE1ldGhvZEFic3RyYWN0fS5cbiAqL1xuaW50ZXJmYWNlIENoZWNrSXNQYXJlbnRNZXRob2RBYnN0cmFjdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgRVNMaW50IHJ1bGUgY29udGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQ7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgbmFtZSB0byBsb29rIHVwIGluIHRoZSBwYXJlbnQgY2xhc3MuXG4gICAqL1xuICByZWFkb25seSBtZXRob2ROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvdmVycmlkZSBtZXRob2QgZGVmaW5pdGlvbiBBU1Qgbm9kZS5cbiAgICovXG4gIHJlYWRvbmx5IG1ldGhvZE5vZGU6IFRTRVNUcmVlLk1ldGhvZERlZmluaXRpb247XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBkZWNsYXJhdGlvbiBoYXMgdGhlIGBhYnN0cmFjdGAgbW9kaWZpZXIuXG4gKlxuICogQHBhcmFtIGRlY2xhcmF0aW9uIC0gVGhlIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgZGVjbGFyYXRpb24gaXMgYWJzdHJhY3QuXG4gKi9cbmZ1bmN0aW9uIGlzQWJzdHJhY3QoZGVjbGFyYXRpb246IERlY2xhcmF0aW9uKTogYm9vbGVhbiB7XG4gIGFzc2VydChjYW5IYXZlTW9kaWZpZXJzKGRlY2xhcmF0aW9uKSwgJ0V4cGVjdGVkIG1ldGhvZCBkZWNsYXJhdGlvbiB0byBzdXBwb3J0IG1vZGlmaWVycycpO1xuXG4gIGNvbnN0IG1vZGlmaWVycyA9IGdldE1vZGlmaWVycyhkZWNsYXJhdGlvbik7XG4gIHJldHVybiBtb2RpZmllcnM/LnNvbWUoKCRtb2R1bGUpID0+ICRtb2R1bGUua2luZCA9PT0gU3ludGF4S2luZC5BYnN0cmFjdEtleXdvcmQpID8/IGZhbHNlO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBwYXJlbnQgY2xhc3MncyB2ZXJzaW9uIG9mIHRoZSBtZXRob2QgaXMgYGFic3RyYWN0YC5cbiAqXG4gKiBXaGVuIHR5cGUgaW5mb3JtYXRpb24gaXMgbm90IGF2YWlsYWJsZSAoZS5nLiwgcGFyc2VyIGNvbmZpZ3VyZWQgd2l0aG91dFxuICogYHByb2plY3RTZXJ2aWNlYCksIHJldHVybnMgYGZhbHNlYCBzbyB0aGUgcnVsZSBjb25zZXJ2YXRpdmVseSByZXBvcnRzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBwYXJlbnQgbWV0aG9kIGlzIGFic3RyYWN0LlxuICovXG5mdW5jdGlvbiBpc1BhcmVudE1ldGhvZEFic3RyYWN0KHBhcmFtczogQ2hlY2tJc1BhcmVudE1ldGhvZEFic3RyYWN0UGFyYW1zKTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgY29udGV4dCwgbWV0aG9kTmFtZSwgbWV0aG9kTm9kZSB9ID0gcGFyYW1zO1xuICBjb25zdCBzZXJ2aWNlcyA9IGNvbnRleHQuc291cmNlQ29kZS5wYXJzZXJTZXJ2aWNlcyBhcyBQYXJ0aWFsPFBhcnNlclNlcnZpY2VzV2l0aFR5cGVJbmZvcm1hdGlvbj47XG5cbiAgaWYgKCFzZXJ2aWNlcy5wcm9ncmFtIHx8ICFzZXJ2aWNlcy5lc1RyZWVOb2RlVG9UU05vZGVNYXApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBjaGVja2VyID0gc2VydmljZXMucHJvZ3JhbS5nZXRUeXBlQ2hlY2tlcigpO1xuICBjb25zdCBjbGFzc0RlY2xhcmF0aW9uID0gbWV0aG9kTm9kZS5wYXJlbnQucGFyZW50O1xuICBjb25zdCB0c0NsYXNzTm9kZSA9IHNlcnZpY2VzLmVzVHJlZU5vZGVUb1RTTm9kZU1hcC5nZXQoY2xhc3NEZWNsYXJhdGlvbik7XG4gIGNvbnN0IGNsYXNzVHlwZSA9IGNoZWNrZXIuZ2V0VHlwZUF0TG9jYXRpb24odHNDbGFzc05vZGUpO1xuICBjb25zdCBiYXNlVHlwZXMgPSBjbGFzc1R5cGUuZ2V0QmFzZVR5cGVzKCk7XG5cbiAgaWYgKCFiYXNlVHlwZXMpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmb3IgKGNvbnN0IGJhc2VUeXBlIG9mIGJhc2VUeXBlcykge1xuICAgIGNvbnN0IHByb3BlcnR5ID0gYmFzZVR5cGUuZ2V0UHJvcGVydHkobWV0aG9kTmFtZSk7XG5cbiAgICBpZiAoIXByb3BlcnR5KSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWNsYXJhdGlvbnMgPSBwcm9wZXJ0eS5nZXREZWNsYXJhdGlvbnMoKTtcblxuICAgIGlmICghZGVjbGFyYXRpb25zKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGRlY2xhcmF0aW9uIG9mIGRlY2xhcmF0aW9ucykge1xuICAgICAgaWYgKGlzQWJzdHJhY3QoZGVjbGFyYXRpb24pKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbGwgZXhwcmVzc2lvbiBpcyBgc3VwZXIubWV0aG9kTmFtZSguLi4pYC5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIFRoZSBjYWxsIGV4cHJlc3Npb24gbm9kZS5cbiAqIEBwYXJhbSBtZXRob2ROYW1lIC0gVGhlIGV4cGVjdGVkIG1ldGhvZCBuYW1lLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBub2RlIGlzIGEgbWF0Y2hpbmcgc3VwZXIgbWV0aG9kIGNhbGwuXG4gKi9cbmZ1bmN0aW9uIGlzU3VwZXJNZXRob2RDYWxsKG5vZGU6IFRTRVNUcmVlLkNhbGxFeHByZXNzaW9uLCBtZXRob2ROYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgY2FsbGVlID0gbm9kZS5jYWxsZWU7XG4gIC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZW51bS1jb21wYXJpc29uIC0tIEFTVCBub2RlIHR5cGUgc3RyaW5nIGxpdGVyYWxzIG1hdGNoIHRoZSBUU0VTVHJlZSBlbnVtIHZhbHVlcy4gKi9cbiAgcmV0dXJuIGNhbGxlZS50eXBlID09PSAnTWVtYmVyRXhwcmVzc2lvbidcbiAgICAmJiBjYWxsZWUub2JqZWN0LnR5cGUgPT09ICdTdXBlcidcbiAgICAmJiBjYWxsZWUucHJvcGVydHkudHlwZSA9PT0gJ0lkZW50aWZpZXInXG4gICAgJiYgY2FsbGVlLnByb3BlcnR5Lm5hbWUgPT09IG1ldGhvZE5hbWU7XG4gIC8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1lbnVtLWNvbXBhcmlzb24gLS0gUmUtZW5hYmxlIGFmdGVyIG11bHRpLWxpbmUgc3RyaW5nIGNvbXBhcmlzb24gYmxvY2suICovXG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBub2RlIGlzIGEgYHN1cGVyLnByb3BlcnR5TmFtZWAgbWVtYmVyIGV4cHJlc3Npb24uXG4gKlxuICogQHBhcmFtIG5vZGUgLSBUaGUgQVNUIG5vZGUgdG8gY2hlY2sgKE1lbWJlckV4cHJlc3Npb24gb3IgQXNzaWdubWVudEV4cHJlc3Npb24gbGVmdC1oYW5kIHNpZGUpLlxuICogQHBhcmFtIHByb3BlcnR5TmFtZSAtIFRoZSBleHBlY3RlZCBwcm9wZXJ0eSBuYW1lLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBub2RlIGlzIGEgbWF0Y2hpbmcgc3VwZXIgcHJvcGVydHkgYWNjZXNzLlxuICovXG5mdW5jdGlvbiBpc1N1cGVyUHJvcGVydHlBY2Nlc3Mobm9kZTogVFNFU1RyZWUuTm9kZSwgcHJvcGVydHlOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1lbnVtLWNvbXBhcmlzb24gLS0gQVNUIG5vZGUgdHlwZSBzdHJpbmcgbGl0ZXJhbHMgbWF0Y2ggdGhlIFRTRVNUcmVlIGVudW0gdmFsdWVzLiAqL1xuICByZXR1cm4gbm9kZS50eXBlID09PSAnTWVtYmVyRXhwcmVzc2lvbidcbiAgICAmJiBub2RlLm9iamVjdC50eXBlID09PSAnU3VwZXInXG4gICAgJiYgbm9kZS5wcm9wZXJ0eS50eXBlID09PSAnSWRlbnRpZmllcidcbiAgICAmJiBub2RlLnByb3BlcnR5Lm5hbWUgPT09IHByb3BlcnR5TmFtZTtcbiAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvbiAtLSBSZS1lbmFibGUgYWZ0ZXIgbXVsdGktbGluZSBzdHJpbmcgY29tcGFyaXNvbiBibG9jay4gKi9cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEwQkEseUJBQXVCO0FBQ3ZCLHdCQUlPO0FBRVAsNEJBQStCO0FBS3hCLE1BQU0sYUFBYTtBQWVuQixNQUFNLG1CQUFvQztBQUFBLEVBQy9DLE9BQU8sU0FBUztBQUNkLFVBQU0sY0FBb0MsQ0FBQztBQUUzQyxXQUFPO0FBQUEsTUFDTCx1QkFBdUIsTUFBdUI7QUFDNUMsY0FBTSxVQUFVLFlBQVksR0FBRyxFQUFFO0FBQ2pDLFlBQUksU0FBUyxTQUFTLE9BQU87QUFDM0I7QUFBQSxRQUNGO0FBRUEsY0FBTSxpQkFBYSxzQ0FBZSxJQUFJO0FBQ3RDLFlBQUksc0JBQXNCLFdBQVcsTUFBTSxRQUFRLFVBQVUsR0FBRztBQUM5RCxrQkFBUSxlQUFl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
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL2VzbGludC1ydWxlcy9yZXF1aXJlLXN1cGVyLWNhbGwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEVTTGludCBydWxlOiByZXF1aXJlLXN1cGVyLWNhbGxcbiAqXG4gKiBSZXBvcnRzIGFuIGVycm9yIHdoZW4gYW4gYG92ZXJyaWRlYCBtZXRob2QgZG9lcyBub3QgY2FsbCBgc3VwZXIubWV0aG9kTmFtZSgpYFxuICogYW55d2hlcmUgaW4gaXRzIGJvZHkuIE92ZXJyaWRpbmcgYSBtZXRob2Qgd2l0aG91dCBjYWxsaW5nIGBzdXBlcmAgaXMgYWxtb3N0XG4gKiBhbHdheXMgYSBtaXN0YWtlIHRoYXQgc2lsZW50bHkgYnJlYWtzIHBhcmVudC1jbGFzcyBiZWhhdmlvciAobGlmZWN5Y2xlIGhvb2tzLFxuICogaW5pdGlhbGl6YXRpb24sIGV2ZW50IHdpcmluZywgZXRjLikuXG4gKlxuICogVGhlIHN1cGVyIGNhbGwgY2FuIGFwcGVhciBhbnl3aGVyZSBpbiB0aGUgbWV0aG9kIGJvZHkg4oCUIGFzIGEgc3RhbmRhbG9uZVxuICogc3RhdGVtZW50LCBhd2FpdGVkLCBhc3NpZ25lZCB0byBhIHZhcmlhYmxlLCBvciBuZXN0ZWQgaW4gYW55IGV4cHJlc3Npb24uXG4gKlxuICogVGhlIHJ1bGUgYXV0b21hdGljYWxseSBza2lwcyBtZXRob2RzIHdoZXJlIHRoZSBwYXJlbnQgaW1wbGVtZW50YXRpb24gaXNcbiAqIGBhYnN0cmFjdGAsIHNpbmNlIHRoZXJlIGlzIG5vIGNvbmNyZXRlIGBzdXBlcmAgdG8gY2FsbC5cbiAqXG4gKiBJZiB0aGUgb3ZlcnJpZGUgaW50ZW50aW9uYWxseSByZXBsYWNlcyB0aGUgcGFyZW50IGltcGxlbWVudGF0aW9uLCBkaXNhYmxlIHRoZVxuICogcnVsZSBvbiB0aGF0IGxpbmUgd2l0aCBhbiBleHBsYW5hdG9yeSBjb21tZW50LlxuICovXG5pbXBvcnQgdHlwZSB7XG4gIFBhcnNlclNlcnZpY2VzV2l0aFR5cGVJbmZvcm1hdGlvbixcbiAgVFNFU1RyZWVcbn0gZnJvbSAnQHR5cGVzY3JpcHQtZXNsaW50L3V0aWxzJztcbmltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gJ2VzbGludCc7XG5pbXBvcnQgdHlwZSB7IERlY2xhcmF0aW9uIH0gZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQge1xuICBjYW5IYXZlTW9kaWZpZXJzLFxuICBnZXRNb2RpZmllcnMsXG4gIFN5bnRheEtpbmRcbn0gZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7IHRvVFNFU1RyZWVOb2RlIH0gZnJvbSAnLi90cy1lc3RyZWUtbm9kZS50cyc7XG5cbi8qKlxuTWVzc2FnZSBJRCByZXBvcnRlZCB3aGVuIGFuIGBvdmVycmlkZWAgbWV0aG9kIGRvZXMgbm90IGFjY2VzcyBpdHMgYHN1cGVyYCBjb3VudGVycGFydC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSUQgPSAncmVxdWlyZVN1cGVyQ2FsbCc7XG5cbnR5cGUgTWV0aG9kS2luZCA9ICdnZXQnIHwgJ21ldGhvZCcgfCAnc2V0JztcblxuaW50ZXJmYWNlIE92ZXJyaWRlTWV0aG9kSW5mbyB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB0eXBlc2NyaXB0LWRldi10b29sa2l0L3JlYWRvbmx5LWludGVyZmFjZS1tZW1iZXJzIC0tIFRyYXZlcnNhbCByZWNvcmRzIHdoZXRoZXIgYSBzdXBlciBjYWxsIHdhcyBmb3VuZC5cbiAgaGFzU3VwZXJDYWxsOiBib29sZWFuO1xuICByZWFkb25seSBraW5kOiBNZXRob2RLaW5kO1xuICByZWFkb25seSBtZXRob2ROYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5vZGU6IFRTRVNUcmVlLk1ldGhvZERlZmluaXRpb247XG4gIHJlYWRvbmx5IHJlcG9ydE5vZGU6IFJ1bGUuTm9kZTtcbn1cblxuLyoqXG4gKiBFU0xpbnQgcnVsZSByZXF1aXJpbmcgYG92ZXJyaWRlYCBtZXRob2RzIHRvIGNhbGwgYHN1cGVyLm1ldGhvZE5hbWUoKWAsIHNvIHRoZSBiYXNlIGltcGxlbWVudGF0aW9uIGlzIG5vdCBzaWxlbnRseSBza2lwcGVkLlxuICovXG5leHBvcnQgY29uc3QgcmVxdWlyZVN1cGVyQ2FsbDogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IG1ldGhvZFN0YWNrOiBPdmVycmlkZU1ldGhvZEluZm9bXSA9IFtdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICdBc3NpZ25tZW50RXhwcmVzc2lvbicobm9kZTogUnVsZS5Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSBtZXRob2RTdGFjay5hdCgtMSk7XG4gICAgICAgIGlmIChjdXJyZW50Py5raW5kICE9PSAnc2V0Jykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFzc2lnbk5vZGUgPSB0b1RTRVNUcmVlTm9kZShub2RlKSBhcyBUU0VTVHJlZS5Bc3NpZ25tZW50RXhwcmVzc2lvbjtcbiAgICAgICAgaWYgKGlzU3VwZXJQcm9wZXJ0eUFjY2Vzcyhhc3NpZ25Ob2RlLmxlZnQsIGN1cnJlbnQubWV0aG9kTmFtZSkpIHtcbiAgICAgICAgICBjdXJyZW50Lmhhc1N1cGVyQ2FsbCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAnQ2FsbEV4cHJlc3Npb24nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gbWV0aG9kU3RhY2suYXQoLTEpO1xuICAgICAgICBpZiAoY3VycmVudD8ua2luZCAhPT0gJ21ldGhvZCcpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjYWxsTm9kZSA9IHRvVFNFU1RyZWVOb2RlKG5vZGUpIGFzIFRTRVNUcmVlLkNhbGxFeHByZXNzaW9uO1xuICAgICAgICBpZiAoaXNTdXBlck1ldGhvZENhbGwoY2FsbE5vZGUsIGN1cnJlbnQubWV0aG9kTmFtZSkpIHtcbiAgICAgICAgICBjdXJyZW50Lmhhc1N1cGVyQ2FsbCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAnTWVtYmVyRXhwcmVzc2lvbicobm9kZTogUnVsZS5Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSBtZXRob2RTdGFjay5hdCgtMSk7XG4gICAgICAgIGlmIChjdXJyZW50Py5raW5kICE9PSAnZ2V0Jykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1lbWJlck5vZGUgPSB0b1RTRVNUcmVlTm9kZShub2RlKSBhcyBUU0VTVHJlZS5NZW1iZXJFeHByZXNzaW9uO1xuICAgICAgICBpZiAoaXNTdXBlclByb3BlcnR5QWNjZXNzKG1lbWJlck5vZGUsIGN1cnJlbnQubWV0aG9kTmFtZSkpIHtcbiAgICAgICAgICBjdXJyZW50Lmhhc1N1cGVyQ2FsbCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAnTWV0aG9kRGVmaW5pdGlvbicobm9kZTogUnVsZS5Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1ldGhvZE5vZGUgPSB0b1RTRVNUcmVlTm9kZShub2RlKSBhcyBUU0VTVHJlZS5NZXRob2REZWZpbml0aW9uO1xuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvbiAtLSBBU1Qgbm9kZSB0eXBlIHN0cmluZyBsaXRlcmFscyBtYXRjaCB0aGUgVFNFU1RyZWUgZW51bSB2YWx1ZXMuXG4gICAgICAgIGlmICghbWV0aG9kTm9kZS5vdmVycmlkZSB8fCBtZXRob2ROb2RlLmtleS50eXBlICE9PSAnSWRlbnRpZmllcicpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBraW5kID0gbWV0aG9kTm9kZS5raW5kID09PSAnZ2V0JyB8fCBtZXRob2ROb2RlLmtpbmQgPT09ICdzZXQnID8gbWV0aG9kTm9kZS5raW5kIDogJ21ldGhvZCc7XG5cbiAgICAgICAgbWV0aG9kU3RhY2sucHVzaCh7XG4gICAgICAgICAgaGFzU3VwZXJDYWxsOiBmYWxzZSxcbiAgICAgICAgICBraW5kLFxuICAgICAgICAgIG1ldGhvZE5hbWU6IG1ldGhvZE5vZGUua2V5Lm5hbWUsXG4gICAgICAgICAgbm9kZTogbWV0aG9kTm9kZSxcbiAgICAgICAgICByZXBvcnROb2RlOiBub2RlXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgICdNZXRob2REZWZpbml0aW9uOmV4aXQnKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmZvID0gbWV0aG9kU3RhY2suYXQoLTEpO1xuICAgICAgICBpZiAoIWluZm8pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBtZXRob2RTdGFjay5wb3AoKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgaW5mby5oYXNTdXBlckNhbGwgfHwgaXNQYXJlbnRNZXRob2RBYnN0cmFjdCh7XG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgbWV0aG9kTmFtZTogaW5mby5tZXRob2ROYW1lLFxuICAgICAgICAgICAgbWV0aG9kTm9kZTogaW5mby5ub2RlXG4gICAgICAgICAgfSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIGRhdGE6IHsga2luZDogaW5mby5raW5kLCBtZXRob2ROYW1lOiBpbmZvLm1ldGhvZE5hbWUgfSxcbiAgICAgICAgICBtZXNzYWdlSWQ6IE1FU1NBR0VfSUQsXG4gICAgICAgICAgbm9kZTogaW5mby5yZXBvcnROb2RlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1JlcXVpcmUgYG92ZXJyaWRlYCBtZXRob2RzIHRvIGNhbGwgYHN1cGVyLm1ldGhvZE5hbWUoKWAnXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgW01FU1NBR0VfSURdOiAnT3ZlcnJpZGUge3sga2luZCB9fSBge3sgbWV0aG9kTmFtZSB9fWAgbXVzdCBhY2Nlc3MgYHN1cGVyLnt7IG1ldGhvZE5hbWUgfX1gLidcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogJ3Byb2JsZW0nXG4gIH1cbn07XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGlzUGFyZW50TWV0aG9kQWJzdHJhY3R9LlxuICovXG5pbnRlcmZhY2UgQ2hlY2tJc1BhcmVudE1ldGhvZEFic3RyYWN0UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBFU0xpbnQgcnVsZSBjb250ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dDtcblxuICAvKipcbiAgICogVGhlIG1ldGhvZCBuYW1lIHRvIGxvb2sgdXAgaW4gdGhlIHBhcmVudCBjbGFzcy5cbiAgICovXG4gIHJlYWRvbmx5IG1ldGhvZE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG92ZXJyaWRlIG1ldGhvZCBkZWZpbml0aW9uIEFTVCBub2RlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0aG9kTm9kZTogVFNFU1RyZWUuTWV0aG9kRGVmaW5pdGlvbjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGRlY2xhcmF0aW9uIGhhcyB0aGUgYGFic3RyYWN0YCBtb2RpZmllci5cbiAqXG4gKiBAcGFyYW0gZGVjbGFyYXRpb24gLSBUaGUgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiB0byBpbnNwZWN0LlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBkZWNsYXJhdGlvbiBpcyBhYnN0cmFjdC5cbiAqL1xuZnVuY3Rpb24gaXNBYnN0cmFjdChkZWNsYXJhdGlvbjogRGVjbGFyYXRpb24pOiBib29sZWFuIHtcbiAgYXNzZXJ0KGNhbkhhdmVNb2RpZmllcnMoZGVjbGFyYXRpb24pLCAnRXhwZWN0ZWQgbWV0aG9kIGRlY2xhcmF0aW9uIHRvIHN1cHBvcnQgbW9kaWZpZXJzJyk7XG5cbiAgY29uc3QgbW9kaWZpZXJzID0gZ2V0TW9kaWZpZXJzKGRlY2xhcmF0aW9uKTtcbiAgcmV0dXJuIG1vZGlmaWVycz8uc29tZSgoJG1vZHVsZSkgPT4gJG1vZHVsZS5raW5kID09PSBTeW50YXhLaW5kLkFic3RyYWN0S2V5d29yZCkgPz8gZmFsc2U7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIHBhcmVudCBjbGFzcydzIHZlcnNpb24gb2YgdGhlIG1ldGhvZCBpcyBgYWJzdHJhY3RgLlxuICpcbiAqIFdoZW4gdHlwZSBpbmZvcm1hdGlvbiBpcyBub3QgYXZhaWxhYmxlIChlLmcuLCBwYXJzZXIgY29uZmlndXJlZCB3aXRob3V0XG4gKiBgcHJvamVjdFNlcnZpY2VgKSwgcmV0dXJucyBgZmFsc2VgIHNvIHRoZSBydWxlIGNvbnNlcnZhdGl2ZWx5IHJlcG9ydHMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHBhcmVudCBtZXRob2QgaXMgYWJzdHJhY3QuXG4gKi9cbmZ1bmN0aW9uIGlzUGFyZW50TWV0aG9kQWJzdHJhY3QocGFyYW1zOiBDaGVja0lzUGFyZW50TWV0aG9kQWJzdHJhY3RQYXJhbXMpOiBib29sZWFuIHtcbiAgY29uc3QgeyBjb250ZXh0LCBtZXRob2ROYW1lLCBtZXRob2ROb2RlIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHNlcnZpY2VzID0gY29udGV4dC5zb3VyY2VDb2RlLnBhcnNlclNlcnZpY2VzIGFzIFBhcnRpYWw8UGFyc2VyU2VydmljZXNXaXRoVHlwZUluZm9ybWF0aW9uPjtcblxuICBpZiAoIXNlcnZpY2VzLnByb2dyYW0gfHwgIXNlcnZpY2VzLmVzVHJlZU5vZGVUb1RTTm9kZU1hcCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGNoZWNrZXIgPSBzZXJ2aWNlcy5wcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG4gIGNvbnN0IGNsYXNzRGVjbGFyYXRpb24gPSBtZXRob2ROb2RlLnBhcmVudC5wYXJlbnQ7XG4gIGNvbnN0IHRzQ2xhc3NOb2RlID0gc2VydmljZXMuZXNUcmVlTm9kZVRvVFNOb2RlTWFwLmdldChjbGFzc0RlY2xhcmF0aW9uKTtcbiAgY29uc3QgY2xhc3NUeXBlID0gY2hlY2tlci5nZXRUeXBlQXRMb2NhdGlvbih0c0NsYXNzTm9kZSk7XG4gIGNvbnN0IGJhc2VUeXBlcyA9IGNsYXNzVHlwZS5nZXRCYXNlVHlwZXMoKTtcblxuICBpZiAoIWJhc2VUeXBlcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGZvciAoY29uc3QgYmFzZVR5cGUgb2YgYmFzZVR5cGVzKSB7XG4gICAgY29uc3QgcHJvcGVydHkgPSBiYXNlVHlwZS5nZXRQcm9wZXJ0eShtZXRob2ROYW1lKTtcblxuICAgIGlmICghcHJvcGVydHkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY2xhcmF0aW9ucyA9IHByb3BlcnR5LmdldERlY2xhcmF0aW9ucygpO1xuXG4gICAgaWYgKCFkZWNsYXJhdGlvbnMpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZGVjbGFyYXRpb24gb2YgZGVjbGFyYXRpb25zKSB7XG4gICAgICBpZiAoaXNBYnN0cmFjdChkZWNsYXJhdGlvbikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgY2FsbCBleHByZXNzaW9uIGlzIGBzdXBlci5tZXRob2ROYW1lKC4uLilgLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gVGhlIGNhbGwgZXhwcmVzc2lvbiBub2RlLlxuICogQHBhcmFtIG1ldGhvZE5hbWUgLSBUaGUgZXhwZWN0ZWQgbWV0aG9kIG5hbWUuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG5vZGUgaXMgYSBtYXRjaGluZyBzdXBlciBtZXRob2QgY2FsbC5cbiAqL1xuZnVuY3Rpb24gaXNTdXBlck1ldGhvZENhbGwobm9kZTogVFNFU1RyZWUuQ2FsbEV4cHJlc3Npb24sIG1ldGhvZE5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBjYWxsZWUgPSBub2RlLmNhbGxlZTtcbiAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1lbnVtLWNvbXBhcmlzb24gLS0gQVNUIG5vZGUgdHlwZSBzdHJpbmcgbGl0ZXJhbHMgbWF0Y2ggdGhlIFRTRVNUcmVlIGVudW0gdmFsdWVzLiAqL1xuICByZXR1cm4gY2FsbGVlLnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJ1xuICAgICYmIGNhbGxlZS5vYmplY3QudHlwZSA9PT0gJ1N1cGVyJ1xuICAgICYmIGNhbGxlZS5wcm9wZXJ0eS50eXBlID09PSAnSWRlbnRpZmllcidcbiAgICAmJiBjYWxsZWUucHJvcGVydHkubmFtZSA9PT0gbWV0aG9kTmFtZTtcbiAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvbiAtLSBSZS1lbmFibGUgYWZ0ZXIgbXVsdGktbGluZSBzdHJpbmcgY29tcGFyaXNvbiBibG9jay4gKi9cbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIG5vZGUgaXMgYSBgc3VwZXIucHJvcGVydHlOYW1lYCBtZW1iZXIgZXhwcmVzc2lvbi5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIFRoZSBBU1Qgbm9kZSB0byBjaGVjayAoTWVtYmVyRXhwcmVzc2lvbiBvciBBc3NpZ25tZW50RXhwcmVzc2lvbiBsZWZ0LWhhbmQgc2lkZSkuXG4gKiBAcGFyYW0gcHJvcGVydHlOYW1lIC0gVGhlIGV4cGVjdGVkIHByb3BlcnR5IG5hbWUuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG5vZGUgaXMgYSBtYXRjaGluZyBzdXBlciBwcm9wZXJ0eSBhY2Nlc3MuXG4gKi9cbmZ1bmN0aW9uIGlzU3VwZXJQcm9wZXJ0eUFjY2Vzcyhub2RlOiBUU0VTVHJlZS5Ob2RlLCBwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvbiAtLSBBU1Qgbm9kZSB0eXBlIHN0cmluZyBsaXRlcmFscyBtYXRjaCB0aGUgVFNFU1RyZWUgZW51bSB2YWx1ZXMuICovXG4gIHJldHVybiBub2RlLnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJ1xuICAgICYmIG5vZGUub2JqZWN0LnR5cGUgPT09ICdTdXBlcidcbiAgICAmJiBub2RlLnByb3BlcnR5LnR5cGUgPT09ICdJZGVudGlmaWVyJ1xuICAgICYmIG5vZGUucHJvcGVydHkubmFtZSA9PT0gcHJvcGVydHlOYW1lO1xuICAvKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZW51bS1jb21wYXJpc29uIC0tIFJlLWVuYWJsZSBhZnRlciBtdWx0aS1saW5lIHN0cmluZyBjb21wYXJpc29uIGJsb2NrLiAqL1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTBCQSx5QkFBdUI7QUFDdkIsd0JBSU87QUFFUCw0QkFBK0I7QUFLeEIsTUFBTSxhQUFhO0FBZ0JuQixNQUFNLG1CQUFvQztBQUFBLEVBQy9DLE9BQU8sU0FBUztBQUNkLFVBQU0sY0FBb0MsQ0FBQztBQUUzQyxXQUFPO0FBQUEsTUFDTCx1QkFBdUIsTUFBdUI7QUFDNUMsY0FBTSxVQUFVLFlBQVksR0FBRyxFQUFFO0FBQ2pDLFlBQUksU0FBUyxTQUFTLE9BQU87QUFDM0I7QUFBQSxRQUNGO0FBRUEsY0FBTSxpQkFBYSxzQ0FBZSxJQUFJO0FBQ3RDLFlBQUksc0JBQXNCLFdBQVcsTUFBTSxRQUFRLFVBQVUsR0FBRztBQUM5RCxrQkFBUSxlQUFlO0FBQUEsUUFDekI7QUFBQSxNQUNGO0FBQUEsTUFDQSxpQkFBaUIsTUFBdUI7QUFDdEMsY0FBTSxVQUFVLFlBQVksR0FBRyxFQUFFO0FBQ2pDLFlBQUksU0FBUyxTQUFTLFVBQVU7QUFDOUI7QUFBQSxRQUNGO0FBRUEsY0FBTSxlQUFXLHNDQUFlLElBQUk7QUFDcEMsWUFBSSxrQkFBa0IsVUFBVSxRQUFRLFVBQVUsR0FBRztBQUNuRCxrQkFBUSxlQUFlO0FBQUEsUUFDekI7QUFBQSxNQUNGO0FBQUEsTUFDQSxtQkFBbUIsTUFBdUI7QUFDeEMsY0FBTSxVQUFVLFlBQVksR0FBRyxFQUFFO0FBQ2pDLFlBQUksU0FBUyxTQUFTLE9BQU87QUFDM0I7QUFBQSxRQUNGO0FBRUEsY0FBTSxpQkFBYSxzQ0FBZSxJQUFJO0FBQ3RDLFlBQUksc0JBQXNCLFlBQVksUUFBUSxVQUFVLEdBQUc7QUFDekQsa0JBQVEsZUFBZTtBQUFBLFFBQ3pCO0FBQUEsTUFDRjtBQUFBLE1BQ0EsbUJBQW1CLE1BQXVCO0FBQ3hDLGNBQU0saUJBQWEsc0NBQWUsSUFBSTtBQUd0QyxZQUFJLENBQUMsV0FBVyxZQUFZLFdBQVcsSUFBSSxTQUFTLGNBQWM7QUFDaEU7QUFBQSxRQUNGO0FBRUEsY0FBTSxPQUFPLFdBQVcsU0FBUyxTQUFTLFdBQVcsU0FBUyxRQUFRLFdBQVcsT0FBTztBQUV4RixvQkFBWSxLQUFLO0FBQUEsVUFDZixjQUFjO0FBQUEsVUFDZDtBQUFBLFVBQ0EsWUFBWSxXQUFXLElBQUk7QUFBQSxVQUMzQixNQUFNO0FBQUEsVUFDTixZQUFZO0FBQUEsUUFDZCxDQUFDO0FBQUEsTUFDSDtBQUFBLE1BQ0EsMEJBQWdDO0FBQzlCLGNBQU0sT0FBTyxZQUFZLEdBQUcsRUFBRTtBQUM5QixZQUFJLENBQUMsTUFBTTtBQUNUO0FBQUEsUUFDRjtBQUVBLG9CQUFZLElBQUk7QUFFaEIsWUFDRSxLQUFLLGdCQUFnQix1QkFBdUI7QUFBQSxVQUMxQztBQUFBLFVBQ0EsWUFBWSxLQUFLO0FBQUEsVUFDakIsWUFBWSxLQUFLO0FBQUEsUUFDbkIsQ0FBQyxHQUNEO0FBQ0E7QUFBQSxRQUNGO0FBRUEsZ0JBQVEsT0FBTztBQUFBLFVBQ2IsTUFBTSxFQUFFLE1BQU0sS0FBSyxNQUFNLFlBQVksS0FBSyxXQUFXO0FBQUEsVUFDckQsV0FBVztBQUFBLFVBQ1gsTUFBTSxLQUFLO0FBQUEsUUFDYixDQUFDO0FBQUEsTUFDSDtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsTUFDSixhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsQ0FBQyxVQUFVLEdBQUc7QUFBQSxJQUNoQjtBQUFBLElBQ0EsUUFBUSxDQUFDO0FBQUEsSUFDVCxNQUFNO0FBQUEsRUFDUjtBQUNGO0FBNEJBLFNBQVMsV0FBVyxhQUFtQztBQUNyRCxxQ0FBTyxvQ0FBaUIsV0FBVyxHQUFHLGtEQUFrRDtBQUV4RixRQUFNLGdCQUFZLGdDQUFhLFdBQVc7QUFDMUMsU0FBTyxXQUFXLEtBQUssQ0FBQyxZQUFZLFFBQVEsU0FBUyw2QkFBVyxlQUFlLEtBQUs7QUFDdEY7QUFXQSxTQUFTLHVCQUF1QixRQUFvRDtBQUNsRixRQUFNLEVBQUUsU0FBUyxZQUFZLFdBQVcsSUFBSTtBQUM1QyxRQUFNLFdBQVcsUUFBUSxXQUFXO0FBRXBDLE1BQUksQ0FBQyxTQUFTLFdBQVcsQ0FBQyxTQUFTLHVCQUF1QjtBQUN4RCxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sVUFBVSxTQUFTLFFBQVEsZUFBZTtBQUNoRCxRQUFNLG1CQUFtQixXQUFXLE9BQU87QUFDM0MsUUFBTSxjQUFjLFNBQVMsc0JBQXNCLElBQUksZ0JBQWdCO0FBQ3ZFLFFBQU0sWUFBWSxRQUFRLGtCQUFrQixXQUFXO0FBQ3ZELFFBQU0sWUFBWSxVQUFVLGFBQWE7QUFFekMsTUFBSSxDQUFDLFdBQVc7QUFDZCxXQUFPO0FBQUEsRUFDVDtBQUVBLGFBQVcsWUFBWSxXQUFXO0FBQ2hDLFVBQU0sV0FBVyxTQUFTLFlBQVksVUFBVTtBQUVoRCxRQUFJLENBQUMsVUFBVTtBQUNiO0FBQUEsSUFDRjtBQUVBLFVBQU0sZUFBZSxTQUFTLGdCQUFnQjtBQUU5QyxRQUFJLENBQUMsY0FBYztBQUNqQjtBQUFBLElBQ0Y7QUFFQSxlQUFXLGVBQWUsY0FBYztBQUN0QyxVQUFJLFdBQVcsV0FBVyxHQUFHO0FBQzNCLGVBQU87QUFBQSxNQUNUO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7QUFTQSxTQUFTLGtCQUFrQixNQUErQixZQUE2QjtBQUNyRixRQUFNLFNBQVMsS0FBSztBQUVwQixTQUFPLE9BQU8sU0FBUyxzQkFDbEIsT0FBTyxPQUFPLFNBQVMsV0FDdkIsT0FBTyxTQUFTLFNBQVMsZ0JBQ3pCLE9BQU8sU0FBUyxTQUFTO0FBRWhDO0FBU0EsU0FBUyxzQkFBc0IsTUFBcUIsY0FBK0I7QUFFakYsU0FBTyxLQUFLLFNBQVMsc0JBQ2hCLEtBQUssT0FBTyxTQUFTLFdBQ3JCLEtBQUssU0FBUyxTQUFTLGdCQUN2QixLQUFLLFNBQVMsU0FBUztBQUU5QjsiLCJuYW1lcyI6W119
@@ -11,7 +11,7 @@ declare module '@eslint-community/eslint-plugin-eslint-comments/configs' {
11
11
  import type { Linter } from 'eslint';
12
12
 
13
13
  interface EslintCommentsConfigs {
14
- recommended: Linter.Config;
14
+ readonly recommended: Linter.Config;
15
15
  }
16
16
 
17
17
  const configs: EslintCommentsConfigs;