@codeperfect/eslint-plugin 2.5.0 → 2.7.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 (82) hide show
  1. package/README.md +3 -0
  2. package/dist/application/custom-rules.d.ts +3 -0
  3. package/dist/application/custom-rules.d.ts.map +1 -1
  4. package/dist/application/custom-rules.js +6 -2
  5. package/dist/application/index.d.ts +1 -1
  6. package/dist/application/index.d.ts.map +1 -1
  7. package/dist/application/index.js +2 -2
  8. package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
  9. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +1 -11
  10. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -1
  11. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +3 -13
  12. package/dist/domain/architecture/consistent-barrel-files/index.d.ts +0 -1
  13. package/dist/domain/architecture/consistent-barrel-files/index.d.ts.map +1 -1
  14. package/dist/domain/architecture/consistent-barrel-files/index.js +1 -2
  15. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +1 -1
  16. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +2 -12
  17. package/dist/domain/architecture/consistent-barrel-files/rule.d.ts.map +1 -1
  18. package/dist/domain/architecture/consistent-barrel-files/rule.js +4 -3
  19. package/dist/domain/architecture/index.d.ts +2 -1
  20. package/dist/domain/architecture/index.d.ts.map +1 -1
  21. package/dist/domain/architecture/index.js +3 -2
  22. package/dist/domain/architecture/no-import-export-extensions/index.d.ts +2 -0
  23. package/dist/domain/architecture/no-import-export-extensions/index.d.ts.map +1 -0
  24. package/dist/domain/architecture/no-import-export-extensions/index.js +2 -0
  25. package/dist/domain/architecture/no-import-export-extensions/no-import-export-extensions-rule.d.ts.map +1 -0
  26. package/dist/domain/architecture/no-import-export-extensions/no-import-export-extensions-rule.js +178 -0
  27. package/dist/domain/architecture/no-unused-exports/rule.js +4 -2
  28. package/dist/domain/core/index.d.ts +1 -0
  29. package/dist/domain/core/index.d.ts.map +1 -1
  30. package/dist/domain/core/index.js +2 -1
  31. package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -1
  32. package/dist/domain/core/no-multiple-declarators/rule.js +6 -1
  33. package/dist/domain/core/no-useless-delegation/index.d.ts +2 -0
  34. package/dist/domain/core/no-useless-delegation/index.d.ts.map +1 -0
  35. package/dist/domain/core/no-useless-delegation/index.js +2 -0
  36. package/dist/domain/core/no-useless-delegation/rule.d.ts +5 -0
  37. package/dist/domain/core/no-useless-delegation/rule.d.ts.map +1 -0
  38. package/dist/domain/core/no-useless-delegation/rule.js +204 -0
  39. package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
  40. package/dist/domain/docs/no-interface-member-docs/rule.js +6 -2
  41. package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -1
  42. package/dist/domain/docs/require-example-language/reporting.js +38 -3
  43. package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -1
  44. package/dist/domain/docs/require-example-language/rule.js +6 -1
  45. package/dist/domain/docs/single-line-jsdoc/rule.d.ts.map +1 -1
  46. package/dist/domain/docs/single-line-jsdoc/rule.js +5 -3
  47. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +1 -1
  48. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +4 -2
  49. package/dist/domain/index.d.ts +1 -1
  50. package/dist/domain/index.d.ts.map +1 -1
  51. package/dist/domain/index.js +2 -2
  52. package/dist/domain/testing/aaa/index.d.ts +1 -1
  53. package/dist/domain/testing/aaa/index.d.ts.map +1 -1
  54. package/dist/domain/testing/aaa/index.js +1 -1
  55. package/dist/domain/testing/aaa/types.d.ts +7 -9
  56. package/dist/domain/testing/aaa/types.d.ts.map +1 -1
  57. package/dist/domain/testing/aaa/types.js +1 -1
  58. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -1
  59. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +2 -18
  60. package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.d.ts.map +1 -1
  61. package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.js +49 -58
  62. package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -1
  63. package/dist/domain/testing/enforce-aaa-structure/rule.js +4 -1
  64. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.d.ts.map +1 -1
  65. package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.js +10 -4
  66. package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -1
  67. package/dist/domain/testing/prefer-vi-mocked-import/rule.js +10 -4
  68. package/dist/index.d.ts +1 -1
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +2 -2
  71. package/dist/infrastructure/codeperfect-plugin.d.ts +2 -0
  72. package/dist/infrastructure/codeperfect-plugin.d.ts.map +1 -1
  73. package/dist/infrastructure/codeperfect-plugin.js +3 -2
  74. package/dist/infrastructure/presets.d.ts.map +1 -1
  75. package/dist/infrastructure/presets.js +3 -1
  76. package/package.json +43 -49
  77. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts.map +0 -1
  78. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.js +0 -134
  79. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts +0 -49
  80. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts.map +0 -1
  81. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.js +0 -49
  82. /package/dist/domain/architecture/{consistent-barrel-files → no-import-export-extensions}/no-import-export-extensions-rule.d.ts +0 -0
package/README.md CHANGED
@@ -100,8 +100,11 @@ void preferInterfaceTypesRule;
100
100
  - `codeperfect/no-import-export-aliases`
101
101
  - `codeperfect/no-import-export-extensions`
102
102
  - `codeperfect/no-interface-member-docs`
103
+ - `codeperfect/no-multiple-declarators`
103
104
  - `codeperfect/no-reexports-outside-barrels`
105
+ - `codeperfect/no-unsafe-vitest-mock-factory-cast`
104
106
  - `codeperfect/no-unused-exports`
107
+ - `codeperfect/no-useless-delegation`
105
108
  - `codeperfect/prefer-interface-types`
106
109
  - `codeperfect/prefer-vi-mocked-import`
107
110
  - `codeperfect/require-act-result-capture`
@@ -34,6 +34,9 @@ declare const customRules: readonly [{
34
34
  }, {
35
35
  readonly rule: Rule.RuleModule;
36
36
  readonly ruleName: "no-multiple-declarators";
37
+ }, {
38
+ readonly rule: Rule.RuleModule;
39
+ readonly ruleName: "no-useless-delegation";
37
40
  }, {
38
41
  readonly rule: Rule.RuleModule;
39
42
  readonly ruleName: "prefer-interface-types";
@@ -1 +1 @@
1
- {"version":3,"file":"custom-rules.d.ts","sourceRoot":"","sources":["../../src/application/custom-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAsBnC,+DAA+D;AAC/D,UAAU,eAAe;IACvB,kCAAkC;IAClC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;IAEtB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,mEAAmE;AACnE,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqE8B,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,YAAY,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"custom-rules.d.ts","sourceRoot":"","sources":["../../src/application/custom-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAuBnC,+DAA+D;AAC/D,UAAU,eAAe;IACvB,kCAAkC;IAClC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;IAEtB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,mEAAmE;AACnE,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyE8B,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,YAAY,EAAE,eAAe,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnusedExportsRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "../domain/index.js";
1
+ import { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnusedExportsRule, noUselessDelegationRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "../domain/index.js";
2
2
  /** Source-of-truth registry for all package-owned custom rules. */
3
3
  const customRules = [
4
4
  {
@@ -37,6 +37,10 @@ const customRules = [
37
37
  rule: noMultipleDeclaratorsRule,
38
38
  ruleName: "no-multiple-declarators",
39
39
  },
40
+ {
41
+ rule: noUselessDelegationRule,
42
+ ruleName: "no-useless-delegation",
43
+ },
40
44
  {
41
45
  rule: preferInterfaceTypesRule,
42
46
  ruleName: "prefer-interface-types",
@@ -71,4 +75,4 @@ const customRules = [
71
75
  },
72
76
  ];
73
77
  export { customRules };
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcGxpY2F0aW9uL2N1c3RvbS1ydWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsa0NBQWtDLEVBQ2xDLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IsbUJBQW1CLEVBQ25CLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIsMkJBQTJCLEVBQzNCLDBCQUEwQixFQUMxQix3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3RCLG1CQUFtQixHQUNwQixNQUFNLFdBQVcsQ0FBQztBQVduQixtRUFBbUU7QUFDbkUsTUFBTSxXQUFXLEdBQUc7SUFDbEI7UUFDRSxJQUFJLEVBQUUsNkJBQTZCO1FBQ25DLFFBQVEsRUFBRSw4QkFBOEI7S0FDekM7SUFDRDtRQUNFLElBQUksRUFBRSwwQkFBMEI7UUFDaEMsUUFBUSxFQUFFLDJCQUEyQjtLQUN0QztJQUNEO1FBQ0UsSUFBSSxFQUFFLHlCQUF5QjtRQUMvQixRQUFRLEVBQUUseUJBQXlCO0tBQ3BDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsdUJBQXVCO1FBQzdCLFFBQVEsRUFBRSx1QkFBdUI7S0FDbEM7SUFDRDtRQUNFLElBQUksRUFBRSx5QkFBeUI7UUFDL0IsUUFBUSxFQUFFLDBCQUEwQjtLQUNyQztJQUNEO1FBQ0UsSUFBSSxFQUFFLDRCQUE0QjtRQUNsQyxRQUFRLEVBQUUsNkJBQTZCO0tBQ3hDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFFBQVEsRUFBRSxtQkFBbUI7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSw2QkFBNkI7UUFDbkMsUUFBUSxFQUFFLDhCQUE4QjtLQUN6QztJQUNEO1FBQ0UsSUFBSSxFQUFFLHlCQUF5QjtRQUMvQixRQUFRLEVBQUUseUJBQXlCO0tBQ3BDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsd0JBQXdCO1FBQzlCLFFBQVEsRUFBRSx3QkFBd0I7S0FDbkM7SUFDRDtRQUNFLElBQUksRUFBRSxrQ0FBa0M7UUFDeEMsUUFBUSxFQUFFLDBCQUEwQjtLQUNyQztJQUNEO1FBQ0UsSUFBSSxFQUFFLDBCQUEwQjtRQUNoQyxRQUFRLEVBQUUsMEJBQTBCO0tBQ3JDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFFBQVEsRUFBRSxtQkFBbUI7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsUUFBUSxFQUFFLHlCQUF5QjtLQUNwQztJQUNEO1FBQ0UsSUFBSSxFQUFFLDJCQUEyQjtRQUNqQyxRQUFRLEVBQUUsNEJBQTRCO0tBQ3ZDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsd0JBQXdCO1FBQzlCLFFBQVEsRUFBRSx3QkFBd0I7S0FDbkM7SUFDRDtRQUNFLElBQUksRUFBRSxzQkFBc0I7UUFDNUIsUUFBUSxFQUFFLHNCQUFzQjtLQUNqQztDQUM0QyxDQUFDO0FBRWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHtcbiAgYXNzZXJ0QWN0dWFsRXhwZWN0ZWROYW1lc1J1bGUsXG4gIGJhcnJlbEZpbGVzRXhwb3J0c09ubHlSdWxlLFxuICBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlLFxuICBlbmZvcmNlQWFhU3RydWN0dXJlUnVsZSxcbiAgbm9JbXBvcnRFeHBvcnRBbGlhc2VzUnVsZSxcbiAgbm9JbXBvcnRFeHBvcnRFeHRlbnNpb25zUnVsZSxcbiAgbm9JbnRlcmZhY2VNZW1iZXJEb2N1bWVudGF0aW9uUnVsZSxcbiAgbm9NdWx0aXBsZURlY2xhcmF0b3JzUnVsZSxcbiAgbm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc1J1bGUsXG4gIG5vVW51c2VkRXhwb3J0c1J1bGUsXG4gIHByZWZlckludGVyZmFjZVR5cGVzUnVsZSxcbiAgcHJlZmVyVmlNb2NrZWRJbXBvcnRSdWxlLFxuICByZXF1aXJlQWN0UmVzdWx0Q2FwdHVyZVJ1bGUsXG4gIHJlcXVpcmVFeGFtcGxlTGFuZ3VhZ2VSdWxlLFxuICByZXF1aXJlVGVzdENvbXBhbmlvblJ1bGUsXG4gIHNpbmdsZUFjdFN0YXRlbWVudFJ1bGUsXG4gIHNpbmdsZUxpbmVKc2RvY1J1bGUsXG59IGZyb20gXCIuLi9kb21haW5cIjtcblxuLyoqIEludGVybmFsIHJlZ2lzdHJ5IGVudHJ5IGZvciBhIHBhY2thZ2Utb3duZWQgY3VzdG9tIHJ1bGUuICovXG5pbnRlcmZhY2UgQ3VzdG9tUnVsZUVudHJ5IHtcbiAgLyoqIEVTTGludCBydWxlIGltcGxlbWVudGF0aW9uLiAqL1xuICBydWxlOiBSdWxlLlJ1bGVNb2R1bGU7XG5cbiAgLyoqIEVTTGludCBydWxlIG5hbWUgd2l0aG91dCB0aGUgcGx1Z2luIHByZWZpeC4gKi9cbiAgcnVsZU5hbWU6IHN0cmluZztcbn1cblxuLyoqIFNvdXJjZS1vZi10cnV0aCByZWdpc3RyeSBmb3IgYWxsIHBhY2thZ2Utb3duZWQgY3VzdG9tIHJ1bGVzLiAqL1xuY29uc3QgY3VzdG9tUnVsZXMgPSBbXG4gIHtcbiAgICBydWxlOiBhc3NlcnRBY3R1YWxFeHBlY3RlZE5hbWVzUnVsZSxcbiAgICBydWxlTmFtZTogXCJhc3NlcnQtYWN0dWFsLWV4cGVjdGVkLW5hbWVzXCIsXG4gIH0sXG4gIHtcbiAgICBydWxlOiBiYXJyZWxGaWxlc0V4cG9ydHNPbmx5UnVsZSxcbiAgICBydWxlTmFtZTogXCJiYXJyZWwtZmlsZXMtZXhwb3J0cy1vbmx5XCIsXG4gIH0sXG4gIHtcbiAgICBydWxlOiBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlLFxuICAgIHJ1bGVOYW1lOiBcImNvbnNpc3RlbnQtYmFycmVsLWZpbGVzXCIsXG4gIH0sXG4gIHtcbiAgICBydWxlOiBlbmZvcmNlQWFhU3RydWN0dXJlUnVsZSxcbiAgICBydWxlTmFtZTogXCJlbmZvcmNlLWFhYS1zdHJ1Y3R1cmVcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IG5vSW1wb3J0RXhwb3J0QWxpYXNlc1J1bGUsXG4gICAgcnVsZU5hbWU6IFwibm8taW1wb3J0LWV4cG9ydC1hbGlhc2VzXCIsXG4gIH0sXG4gIHtcbiAgICBydWxlOiBub0ltcG9ydEV4cG9ydEV4dGVuc2lvbnNSdWxlLFxuICAgIHJ1bGVOYW1lOiBcIm5vLWltcG9ydC1leHBvcnQtZXh0ZW5zaW9uc1wiLFxuICB9LFxuICB7XG4gICAgcnVsZTogbm9VbnVzZWRFeHBvcnRzUnVsZSxcbiAgICBydWxlTmFtZTogXCJuby11bnVzZWQtZXhwb3J0c1wiLFxuICB9LFxuICB7XG4gICAgcnVsZTogbm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc1J1bGUsXG4gICAgcnVsZU5hbWU6IFwibm8tcmVleHBvcnRzLW91dHNpZGUtYmFycmVsc1wiLFxuICB9LFxuICB7XG4gICAgcnVsZTogbm9NdWx0aXBsZURlY2xhcmF0b3JzUnVsZSxcbiAgICBydWxlTmFtZTogXCJuby1tdWx0aXBsZS1kZWNsYXJhdG9yc1wiLFxuICB9LFxuICB7XG4gICAgcnVsZTogcHJlZmVySW50ZXJmYWNlVHlwZXNSdWxlLFxuICAgIHJ1bGVOYW1lOiBcInByZWZlci1pbnRlcmZhY2UtdHlwZXNcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IG5vSW50ZXJmYWNlTWVtYmVyRG9jdW1lbnRhdGlvblJ1bGUsXG4gICAgcnVsZU5hbWU6IFwibm8taW50ZXJmYWNlLW1lbWJlci1kb2NzXCIsXG4gIH0sXG4gIHtcbiAgICBydWxlOiByZXF1aXJlRXhhbXBsZUxhbmd1YWdlUnVsZSxcbiAgICBydWxlTmFtZTogXCJyZXF1aXJlLWV4YW1wbGUtbGFuZ3VhZ2VcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IHNpbmdsZUxpbmVKc2RvY1J1bGUsXG4gICAgcnVsZU5hbWU6IFwic2luZ2xlLWxpbmUtanNkb2NcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IHByZWZlclZpTW9ja2VkSW1wb3J0UnVsZSxcbiAgICBydWxlTmFtZTogXCJwcmVmZXItdmktbW9ja2VkLWltcG9ydFwiLFxuICB9LFxuICB7XG4gICAgcnVsZTogcmVxdWlyZUFjdFJlc3VsdENhcHR1cmVSdWxlLFxuICAgIHJ1bGVOYW1lOiBcInJlcXVpcmUtYWN0LXJlc3VsdC1jYXB0dXJlXCIsXG4gIH0sXG4gIHtcbiAgICBydWxlOiByZXF1aXJlVGVzdENvbXBhbmlvblJ1bGUsXG4gICAgcnVsZU5hbWU6IFwicmVxdWlyZS10ZXN0LWNvbXBhbmlvblwiLFxuICB9LFxuICB7XG4gICAgcnVsZTogc2luZ2xlQWN0U3RhdGVtZW50UnVsZSxcbiAgICBydWxlTmFtZTogXCJzaW5nbGUtYWN0LXN0YXRlbWVudFwiLFxuICB9LFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgQ3VzdG9tUnVsZUVudHJ5W107XG5cbmV4cG9ydCB7IGN1c3RvbVJ1bGVzIH07XG5leHBvcnQgdHlwZSB7IEN1c3RvbVJ1bGVFbnRyeSB9O1xuIl19
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcGxpY2F0aW9uL2N1c3RvbS1ydWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsa0NBQWtDLEVBQ2xDLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQ3hCLDJCQUEyQixFQUMzQiwwQkFBMEIsRUFDMUIsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixtQkFBbUIsR0FDcEIsTUFBTSxXQUFXLENBQUM7QUFXbkIsbUVBQW1FO0FBQ25FLE1BQU0sV0FBVyxHQUFHO0lBQ2xCO1FBQ0UsSUFBSSxFQUFFLDZCQUE2QjtRQUNuQyxRQUFRLEVBQUUsOEJBQThCO0tBQ3pDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsMEJBQTBCO1FBQ2hDLFFBQVEsRUFBRSwyQkFBMkI7S0FDdEM7SUFDRDtRQUNFLElBQUksRUFBRSx5QkFBeUI7UUFDL0IsUUFBUSxFQUFFLHlCQUF5QjtLQUNwQztJQUNEO1FBQ0UsSUFBSSxFQUFFLHVCQUF1QjtRQUM3QixRQUFRLEVBQUUsdUJBQXVCO0tBQ2xDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUseUJBQXlCO1FBQy9CLFFBQVEsRUFBRSwwQkFBMEI7S0FDckM7SUFDRDtRQUNFLElBQUksRUFBRSw0QkFBNEI7UUFDbEMsUUFBUSxFQUFFLDZCQUE2QjtLQUN4QztJQUNEO1FBQ0UsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixRQUFRLEVBQUUsbUJBQW1CO0tBQzlCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsNkJBQTZCO1FBQ25DLFFBQVEsRUFBRSw4QkFBOEI7S0FDekM7SUFDRDtRQUNFLElBQUksRUFBRSx5QkFBeUI7UUFDL0IsUUFBUSxFQUFFLHlCQUF5QjtLQUNwQztJQUNEO1FBQ0UsSUFBSSxFQUFFLHVCQUF1QjtRQUM3QixRQUFRLEVBQUUsdUJBQXVCO0tBQ2xDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsd0JBQXdCO1FBQzlCLFFBQVEsRUFBRSx3QkFBd0I7S0FDbkM7SUFDRDtRQUNFLElBQUksRUFBRSxrQ0FBa0M7UUFDeEMsUUFBUSxFQUFFLDBCQUEwQjtLQUNyQztJQUNEO1FBQ0UsSUFBSSxFQUFFLDBCQUEwQjtRQUNoQyxRQUFRLEVBQUUsMEJBQTBCO0tBQ3JDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFFBQVEsRUFBRSxtQkFBbUI7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsUUFBUSxFQUFFLHlCQUF5QjtLQUNwQztJQUNEO1FBQ0UsSUFBSSxFQUFFLDJCQUEyQjtRQUNqQyxRQUFRLEVBQUUsNEJBQTRCO0tBQ3ZDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsd0JBQXdCO1FBQzlCLFFBQVEsRUFBRSx3QkFBd0I7S0FDbkM7SUFDRDtRQUNFLElBQUksRUFBRSxzQkFBc0I7UUFDNUIsUUFBUSxFQUFFLHNCQUFzQjtLQUNqQztDQUM0QyxDQUFDO0FBRWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHtcbiAgYXNzZXJ0QWN0dWFsRXhwZWN0ZWROYW1lc1J1bGUsXG4gIGJhcnJlbEZpbGVzRXhwb3J0c09ubHlSdWxlLFxuICBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlLFxuICBlbmZvcmNlQWFhU3RydWN0dXJlUnVsZSxcbiAgbm9JbXBvcnRFeHBvcnRBbGlhc2VzUnVsZSxcbiAgbm9JbXBvcnRFeHBvcnRFeHRlbnNpb25zUnVsZSxcbiAgbm9JbnRlcmZhY2VNZW1iZXJEb2N1bWVudGF0aW9uUnVsZSxcbiAgbm9NdWx0aXBsZURlY2xhcmF0b3JzUnVsZSxcbiAgbm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc1J1bGUsXG4gIG5vVW51c2VkRXhwb3J0c1J1bGUsXG4gIG5vVXNlbGVzc0RlbGVnYXRpb25SdWxlLFxuICBwcmVmZXJJbnRlcmZhY2VUeXBlc1J1bGUsXG4gIHByZWZlclZpTW9ja2VkSW1wb3J0UnVsZSxcbiAgcmVxdWlyZUFjdFJlc3VsdENhcHR1cmVSdWxlLFxuICByZXF1aXJlRXhhbXBsZUxhbmd1YWdlUnVsZSxcbiAgcmVxdWlyZVRlc3RDb21wYW5pb25SdWxlLFxuICBzaW5nbGVBY3RTdGF0ZW1lbnRSdWxlLFxuICBzaW5nbGVMaW5lSnNkb2NSdWxlLFxufSBmcm9tIFwiLi4vZG9tYWluXCI7XG5cbi8qKiBJbnRlcm5hbCByZWdpc3RyeSBlbnRyeSBmb3IgYSBwYWNrYWdlLW93bmVkIGN1c3RvbSBydWxlLiAqL1xuaW50ZXJmYWNlIEN1c3RvbVJ1bGVFbnRyeSB7XG4gIC8qKiBFU0xpbnQgcnVsZSBpbXBsZW1lbnRhdGlvbi4gKi9cbiAgcnVsZTogUnVsZS5SdWxlTW9kdWxlO1xuXG4gIC8qKiBFU0xpbnQgcnVsZSBuYW1lIHdpdGhvdXQgdGhlIHBsdWdpbiBwcmVmaXguICovXG4gIHJ1bGVOYW1lOiBzdHJpbmc7XG59XG5cbi8qKiBTb3VyY2Utb2YtdHJ1dGggcmVnaXN0cnkgZm9yIGFsbCBwYWNrYWdlLW93bmVkIGN1c3RvbSBydWxlcy4gKi9cbmNvbnN0IGN1c3RvbVJ1bGVzID0gW1xuICB7XG4gICAgcnVsZTogYXNzZXJ0QWN0dWFsRXhwZWN0ZWROYW1lc1J1bGUsXG4gICAgcnVsZU5hbWU6IFwiYXNzZXJ0LWFjdHVhbC1leHBlY3RlZC1uYW1lc1wiLFxuICB9LFxuICB7XG4gICAgcnVsZTogYmFycmVsRmlsZXNFeHBvcnRzT25seVJ1bGUsXG4gICAgcnVsZU5hbWU6IFwiYmFycmVsLWZpbGVzLWV4cG9ydHMtb25seVwiLFxuICB9LFxuICB7XG4gICAgcnVsZTogY29uc2lzdGVudEJhcnJlbEZpbGVzUnVsZSxcbiAgICBydWxlTmFtZTogXCJjb25zaXN0ZW50LWJhcnJlbC1maWxlc1wiLFxuICB9LFxuICB7XG4gICAgcnVsZTogZW5mb3JjZUFhYVN0cnVjdHVyZVJ1bGUsXG4gICAgcnVsZU5hbWU6IFwiZW5mb3JjZS1hYWEtc3RydWN0dXJlXCIsXG4gIH0sXG4gIHtcbiAgICBydWxlOiBub0ltcG9ydEV4cG9ydEFsaWFzZXNSdWxlLFxuICAgIHJ1bGVOYW1lOiBcIm5vLWltcG9ydC1leHBvcnQtYWxpYXNlc1wiLFxuICB9LFxuICB7XG4gICAgcnVsZTogbm9JbXBvcnRFeHBvcnRFeHRlbnNpb25zUnVsZSxcbiAgICBydWxlTmFtZTogXCJuby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnNcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IG5vVW51c2VkRXhwb3J0c1J1bGUsXG4gICAgcnVsZU5hbWU6IFwibm8tdW51c2VkLWV4cG9ydHNcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IG5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNSdWxlLFxuICAgIHJ1bGVOYW1lOiBcIm5vLXJlZXhwb3J0cy1vdXRzaWRlLWJhcnJlbHNcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IG5vTXVsdGlwbGVEZWNsYXJhdG9yc1J1bGUsXG4gICAgcnVsZU5hbWU6IFwibm8tbXVsdGlwbGUtZGVjbGFyYXRvcnNcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IG5vVXNlbGVzc0RlbGVnYXRpb25SdWxlLFxuICAgIHJ1bGVOYW1lOiBcIm5vLXVzZWxlc3MtZGVsZWdhdGlvblwiLFxuICB9LFxuICB7XG4gICAgcnVsZTogcHJlZmVySW50ZXJmYWNlVHlwZXNSdWxlLFxuICAgIHJ1bGVOYW1lOiBcInByZWZlci1pbnRlcmZhY2UtdHlwZXNcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IG5vSW50ZXJmYWNlTWVtYmVyRG9jdW1lbnRhdGlvblJ1bGUsXG4gICAgcnVsZU5hbWU6IFwibm8taW50ZXJmYWNlLW1lbWJlci1kb2NzXCIsXG4gIH0sXG4gIHtcbiAgICBydWxlOiByZXF1aXJlRXhhbXBsZUxhbmd1YWdlUnVsZSxcbiAgICBydWxlTmFtZTogXCJyZXF1aXJlLWV4YW1wbGUtbGFuZ3VhZ2VcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IHNpbmdsZUxpbmVKc2RvY1J1bGUsXG4gICAgcnVsZU5hbWU6IFwic2luZ2xlLWxpbmUtanNkb2NcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IHByZWZlclZpTW9ja2VkSW1wb3J0UnVsZSxcbiAgICBydWxlTmFtZTogXCJwcmVmZXItdmktbW9ja2VkLWltcG9ydFwiLFxuICB9LFxuICB7XG4gICAgcnVsZTogcmVxdWlyZUFjdFJlc3VsdENhcHR1cmVSdWxlLFxuICAgIHJ1bGVOYW1lOiBcInJlcXVpcmUtYWN0LXJlc3VsdC1jYXB0dXJlXCIsXG4gIH0sXG4gIHtcbiAgICBydWxlOiByZXF1aXJlVGVzdENvbXBhbmlvblJ1bGUsXG4gICAgcnVsZU5hbWU6IFwicmVxdWlyZS10ZXN0LWNvbXBhbmlvblwiLFxuICB9LFxuICB7XG4gICAgcnVsZTogc2luZ2xlQWN0U3RhdGVtZW50UnVsZSxcbiAgICBydWxlTmFtZTogXCJzaW5nbGUtYWN0LXN0YXRlbWVudFwiLFxuICB9LFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgQ3VzdG9tUnVsZUVudHJ5W107XG5cbmV4cG9ydCB7IGN1c3RvbVJ1bGVzIH07XG5leHBvcnQgdHlwZSB7IEN1c3RvbVJ1bGVFbnRyeSB9O1xuIl19
@@ -1,4 +1,4 @@
1
- export { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnsafeVitestMockFactoryCastRule, noUnusedExportsRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "../domain/index.js";
1
+ export { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnsafeVitestMockFactoryCastRule, noUnusedExportsRule, noUselessDelegationRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "../domain/index.js";
2
2
  export { customRules } from "./custom-rules.js";
3
3
  export type { CustomRuleEntry } from "./custom-rules.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/application/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,kCAAkC,EAClC,yBAAyB,EACzB,6BAA6B,EAC7B,iCAAiC,EACjC,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/application/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,kCAAkC,EAClC,yBAAyB,EACzB,6BAA6B,EAC7B,iCAAiC,EACjC,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,3 +1,3 @@
1
- export { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnsafeVitestMockFactoryCastRule, noUnusedExportsRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "../domain/index.js";
1
+ export { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnsafeVitestMockFactoryCastRule, noUnusedExportsRule, noUselessDelegationRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "../domain/index.js";
2
2
  export { customRules } from "./custom-rules.js";
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwbGljYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDekIsNEJBQTRCLEVBQzVCLGtDQUFrQyxFQUNsQyx5QkFBeUIsRUFDekIsNkJBQTZCLEVBQzdCLGlDQUFpQyxFQUNqQyxtQkFBbUIsRUFDbkIsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QiwyQkFBMkIsRUFDM0IsMEJBQTBCLEVBQzFCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsbUJBQW1CLEdBQ3BCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIGFzc2VydEFjdHVhbEV4cGVjdGVkTmFtZXNSdWxlLFxuICBiYXJyZWxGaWxlc0V4cG9ydHNPbmx5UnVsZSxcbiAgY29uc2lzdGVudEJhcnJlbEZpbGVzUnVsZSxcbiAgZW5mb3JjZUFhYVN0cnVjdHVyZVJ1bGUsXG4gIG5vSW1wb3J0RXhwb3J0QWxpYXNlc1J1bGUsXG4gIG5vSW1wb3J0RXhwb3J0RXh0ZW5zaW9uc1J1bGUsXG4gIG5vSW50ZXJmYWNlTWVtYmVyRG9jdW1lbnRhdGlvblJ1bGUsXG4gIG5vTXVsdGlwbGVEZWNsYXJhdG9yc1J1bGUsXG4gIG5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNSdWxlLFxuICBub1Vuc2FmZVZpdGVzdE1vY2tGYWN0b3J5Q2FzdFJ1bGUsXG4gIG5vVW51c2VkRXhwb3J0c1J1bGUsXG4gIHByZWZlckludGVyZmFjZVR5cGVzUnVsZSxcbiAgcHJlZmVyVmlNb2NrZWRJbXBvcnRSdWxlLFxuICByZXF1aXJlQWN0UmVzdWx0Q2FwdHVyZVJ1bGUsXG4gIHJlcXVpcmVFeGFtcGxlTGFuZ3VhZ2VSdWxlLFxuICByZXF1aXJlVGVzdENvbXBhbmlvblJ1bGUsXG4gIHNpbmdsZUFjdFN0YXRlbWVudFJ1bGUsXG4gIHNpbmdsZUxpbmVKc2RvY1J1bGUsXG59IGZyb20gXCIuLi9kb21haW5cIjtcbmV4cG9ydCB7IGN1c3RvbVJ1bGVzIH0gZnJvbSBcIi4vY3VzdG9tLXJ1bGVzXCI7XG5leHBvcnQgdHlwZSB7IEN1c3RvbVJ1bGVFbnRyeSB9IGZyb20gXCIuL2N1c3RvbS1ydWxlc1wiO1xuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwbGljYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDekIsNEJBQTRCLEVBQzVCLGtDQUFrQyxFQUNsQyx5QkFBeUIsRUFDekIsNkJBQTZCLEVBQzdCLGlDQUFpQyxFQUNqQyxtQkFBbUIsRUFDbkIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIsMkJBQTJCLEVBQzNCLDBCQUEwQixFQUMxQix3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3RCLG1CQUFtQixHQUNwQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBhc3NlcnRBY3R1YWxFeHBlY3RlZE5hbWVzUnVsZSxcbiAgYmFycmVsRmlsZXNFeHBvcnRzT25seVJ1bGUsXG4gIGNvbnNpc3RlbnRCYXJyZWxGaWxlc1J1bGUsXG4gIGVuZm9yY2VBYWFTdHJ1Y3R1cmVSdWxlLFxuICBub0ltcG9ydEV4cG9ydEFsaWFzZXNSdWxlLFxuICBub0ltcG9ydEV4cG9ydEV4dGVuc2lvbnNSdWxlLFxuICBub0ludGVyZmFjZU1lbWJlckRvY3VtZW50YXRpb25SdWxlLFxuICBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlLFxuICBub1JlZXhwb3J0c091dHNpZGVCYXJyZWxzUnVsZSxcbiAgbm9VbnNhZmVWaXRlc3RNb2NrRmFjdG9yeUNhc3RSdWxlLFxuICBub1VudXNlZEV4cG9ydHNSdWxlLFxuICBub1VzZWxlc3NEZWxlZ2F0aW9uUnVsZSxcbiAgcHJlZmVySW50ZXJmYWNlVHlwZXNSdWxlLFxuICBwcmVmZXJWaU1vY2tlZEltcG9ydFJ1bGUsXG4gIHJlcXVpcmVBY3RSZXN1bHRDYXB0dXJlUnVsZSxcbiAgcmVxdWlyZUV4YW1wbGVMYW5ndWFnZVJ1bGUsXG4gIHJlcXVpcmVUZXN0Q29tcGFuaW9uUnVsZSxcbiAgc2luZ2xlQWN0U3RhdGVtZW50UnVsZSxcbiAgc2luZ2xlTGluZUpzZG9jUnVsZSxcbn0gZnJvbSBcIi4uL2RvbWFpblwiO1xuZXhwb3J0IHsgY3VzdG9tUnVsZXMgfSBmcm9tIFwiLi9jdXN0b20tcnVsZXNcIjtcbmV4cG9ydCB0eXBlIHsgQ3VzdG9tUnVsZUVudHJ5IH0gZnJvbSBcIi4vY3VzdG9tLXJ1bGVzXCI7XG4iXX0=
@@ -19,16 +19,6 @@ interface ConsistentBarrelFilesState {
19
19
  * ```
20
20
  */
21
21
  declare const getOptions: (options: readonly unknown[]) => ConsistentBarrelFilesState;
22
- /**
23
- * Determines whether a filename is eligible for linting.
24
- * @param filename Filename to inspect.
25
- * @returns True when the filename is a lintable module file.
26
- * @example
27
- * ```typescript
28
- * const lintable = isLintableFilename(`${cwd()}/src/index.ts`);
29
- * ```
30
- */
31
- declare const isLintableFilename: (filename: string) => boolean;
32
22
  /**
33
23
  * Determines whether the rule should lint a file.
34
24
  * @param filename Filename to inspect.
@@ -40,6 +30,6 @@ declare const isLintableFilename: (filename: string) => boolean;
40
30
  * ```
41
31
  */
42
32
  declare const shouldLintFile: (filename: string, allowedNames: string[]) => boolean;
43
- export { getOptions, isLintableFilename, shouldLintFile };
33
+ export { getOptions, shouldLintFile };
44
34
  export type { ConsistentBarrelFilesState };
45
35
  //# sourceMappingURL=consistent-barrel-files-options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"consistent-barrel-files-options.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.ts"],"names":[],"mappings":"AASA,qCAAqC;AACrC,UAAU,0BAA0B;IAClC,gCAAgC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,mCAAmC;IACnC,eAAe,EAAE,MAAM,CAAC;IAExB,mCAAmC;IACnC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE7B,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,GACd,SAAS,SAAS,OAAO,EAAE,KAC1B,0BAcF,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,kBAAkB,GAAI,UAAU,MAAM,KAAG,OACf,CAAC;AAkBjC;;;;;;;;;GASG;AACH,QAAA,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,cAAc,MAAM,EAAE,KAAG,OAMlE,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAC;AAC1D,YAAY,EAAE,0BAA0B,EAAE,CAAC"}
1
+ {"version":3,"file":"consistent-barrel-files-options.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.ts"],"names":[],"mappings":"AASA,qCAAqC;AACrC,UAAU,0BAA0B;IAClC,gCAAgC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,mCAAmC;IACnC,eAAe,EAAE,MAAM,CAAC;IAExB,mCAAmC;IACnC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE7B,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,GACd,SAAS,SAAS,OAAO,EAAE,KAC1B,0BAcF,CAAC;AAkBF;;;;;;;;;GASG;AACH,QAAA,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,cAAc,MAAM,EAAE,KAAG,OAMlE,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACtC,YAAY,EAAE,0BAA0B,EAAE,CAAC"}
@@ -23,16 +23,6 @@ const getOptions = (options) => {
23
23
  enforce,
24
24
  };
25
25
  };
26
- /**
27
- * Determines whether a filename is eligible for linting.
28
- * @param filename Filename to inspect.
29
- * @returns True when the filename is a lintable module file.
30
- * @example
31
- * ```typescript
32
- * const lintable = isLintableFilename(`${cwd()}/src/index.ts`);
33
- * ```
34
- */
35
- const isLintableFilename = (filename) => isLintableModuleFile(filename);
36
26
  /**
37
27
  * Checks whether a path is nested inside a src directory.
38
28
  * @param filename Filename to inspect.
@@ -58,9 +48,9 @@ const isInSourceDirectory = (filename) => {
58
48
  * ```
59
49
  */
60
50
  const shouldLintFile = (filename, allowedNames) => {
61
- return (isLintableFilename(filename) &&
51
+ return (isLintableModuleFile(filename) &&
62
52
  isInSourceDirectory(filename) &&
63
53
  allowedNames.length > 0);
64
54
  };
65
- export { getOptions, isLintableFilename, shouldLintFile };
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2lzdGVudC1iYXJyZWwtZmlsZXMtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vYXJjaGl0ZWN0dXJlL2NvbnNpc3RlbnQtYmFycmVsLWZpbGVzL2NvbnNpc3RlbnQtYmFycmVsLWZpbGVzLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBSTdCLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsMkJBQTJCLEdBQzVCLE1BQU0seUJBQXlCLENBQUM7QUFpQmpDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLEdBQUcsQ0FDakIsT0FBMkIsRUFDQyxFQUFFO0lBQzlCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQTZDLENBQUM7SUFDMUUsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUM7SUFDNUMsTUFBTSxZQUFZLEdBQUcsMkJBQTJCLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzNFLE1BQU0sZUFBZSxHQUFHLFlBQVk7U0FDakMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFYixPQUFPO1FBQ0wsWUFBWTtRQUNaLGVBQWU7UUFDZixlQUFlLEVBQUUsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDO1FBQ3RDLE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLGtCQUFrQixHQUFHLENBQUMsUUFBZ0IsRUFBVyxFQUFFLENBQ3ZELG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRWpDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLFFBQWdCLEVBQVcsRUFBRTtJQUN4RCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVwRSxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxRQUFnQixFQUFFLFlBQXNCLEVBQVcsRUFBRTtJQUMzRSxPQUFPLENBQ0wsa0JBQWtCLENBQUMsUUFBUSxDQUFDO1FBQzVCLG1CQUFtQixDQUFDLFFBQVEsQ0FBQztRQUM3QixZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FDeEIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5cbmltcG9ydCB0eXBlIHsgQ29uc2lzdGVudEJhcnJlbEZpbGVzT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmltcG9ydCB7XG4gIGlzTGludGFibGVNb2R1bGVGaWxlLFxuICBub3JtYWxpemVBbGxvd2VkQmFycmVsTmFtZXMsXG59IGZyb20gXCIuL2JhcnJlbC1maWxlLXV0aWxpdGllc1wiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgQ29uc2lzdGVudEJhcnJlbEZpbGVzU3RhdGUge1xuICAvKiogQWxsb3dlZE5hbWVzIGZpZWxkIHZhbHVlLiAqL1xuICBhbGxvd2VkTmFtZXM6IHN0cmluZ1tdO1xuXG4gIC8qKiBBbGxvd2VkTmFtZXNLZXkgZmllbGQgdmFsdWUuICovXG4gIGFsbG93ZWROYW1lc0tleTogc3RyaW5nO1xuXG4gIC8qKiBBbGxvd2VkTmFtZXNTZXQgZmllbGQgdmFsdWUuICovXG4gIGFsbG93ZWROYW1lc1NldDogU2V0PHN0cmluZz47XG5cbiAgLyoqIEVuZm9yY2UgZmllbGQgdmFsdWUuICovXG4gIGVuZm9yY2U6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQnVpbGRzIG5vcm1hbGl6ZWQgcnVsZSBvcHRpb25zIGZyb20gcmF3IHJ1bGUgaW5wdXQuXG4gKiBAcGFyYW0gb3B0aW9ucyBSYXcgcnVsZSBvcHRpb25zLlxuICogQHJldHVybnMgVGhlIG5vcm1hbGl6ZWQgcnVsZSBzdGF0ZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzdGF0ZSA9IGdldE9wdGlvbnMoW3t9XSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0T3B0aW9ucyA9IChcbiAgb3B0aW9uczogcmVhZG9ubHkgdW5rbm93bltdLFxuKTogQ29uc2lzdGVudEJhcnJlbEZpbGVzU3RhdGUgPT4ge1xuICBjb25zdCByYXdPcHRpb25zID0gb3B0aW9uc1swXSBhcyBDb25zaXN0ZW50QmFycmVsRmlsZXNPcHRpb25zIHwgdW5kZWZpbmVkO1xuICBjb25zdCBlbmZvcmNlID0gcmF3T3B0aW9ucz8uZW5mb3JjZSA/PyB0cnVlO1xuICBjb25zdCBhbGxvd2VkTmFtZXMgPSBub3JtYWxpemVBbGxvd2VkQmFycmVsTmFtZXMocmF3T3B0aW9ucz8uYWxsb3dlZE5hbWVzKTtcbiAgY29uc3QgYWxsb3dlZE5hbWVzS2V5ID0gYWxsb3dlZE5hbWVzXG4gICAgLnRvU29ydGVkKChhLCBiKSA9PiBhLmxvY2FsZUNvbXBhcmUoYikpXG4gICAgLmpvaW4oXCJ8XCIpO1xuXG4gIHJldHVybiB7XG4gICAgYWxsb3dlZE5hbWVzLFxuICAgIGFsbG93ZWROYW1lc0tleSxcbiAgICBhbGxvd2VkTmFtZXNTZXQ6IG5ldyBTZXQoYWxsb3dlZE5hbWVzKSxcbiAgICBlbmZvcmNlLFxuICB9O1xufTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBmaWxlbmFtZSBpcyBlbGlnaWJsZSBmb3IgbGludGluZy5cbiAqIEBwYXJhbSBmaWxlbmFtZSBGaWxlbmFtZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBmaWxlbmFtZSBpcyBhIGxpbnRhYmxlIG1vZHVsZSBmaWxlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGxpbnRhYmxlID0gaXNMaW50YWJsZUZpbGVuYW1lKGAke2N3ZCgpfS9zcmMvaW5kZXgudHNgKTtcbiAqIGBgYFxuICovXG5jb25zdCBpc0xpbnRhYmxlRmlsZW5hbWUgPSAoZmlsZW5hbWU6IHN0cmluZyk6IGJvb2xlYW4gPT5cbiAgaXNMaW50YWJsZU1vZHVsZUZpbGUoZmlsZW5hbWUpO1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgcGF0aCBpcyBuZXN0ZWQgaW5zaWRlIGEgc3JjIGRpcmVjdG9yeS5cbiAqIEBwYXJhbSBmaWxlbmFtZSBGaWxlbmFtZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBmaWxlIHBhdGggY29udGFpbnMgYSBzcmMgcGF0aCBzZWdtZW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGluU3JjID0gaXNJblNvdXJjZURpcmVjdG9yeShgJHtjd2QoKX0vc3JjL2luZGV4LnRzYCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNJblNvdXJjZURpcmVjdG9yeSA9IChmaWxlbmFtZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gcGF0aC5ub3JtYWxpemUoZmlsZW5hbWUpO1xuICBjb25zdCBwYXRoU2VnbWVudHMgPSBub3JtYWxpemVkUGF0aC5zcGxpdChwYXRoLnNlcCkuZmlsdGVyKEJvb2xlYW4pO1xuXG4gIHJldHVybiBwYXRoU2VnbWVudHMuaW5jbHVkZXMoXCJzcmNcIik7XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciB0aGUgcnVsZSBzaG91bGQgbGludCBhIGZpbGUuXG4gKiBAcGFyYW0gZmlsZW5hbWUgRmlsZW5hbWUgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSBhbGxvd2VkTmFtZXMgQWxsb3dlZCBiYXJyZWwgbmFtZXMgZm9yIHRoZSBydWxlIHJ1bi5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiB0aGUgZmlsZSBzaG91bGQgYmUgY2hlY2tlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzaG91bGRMaW50ID0gc2hvdWxkTGludEZpbGUoYCR7Y3dkKCl9L3NyYy9pbmRleC50c2AsIFtcImluZGV4XCJdKTtcbiAqIGBgYFxuICovXG5jb25zdCBzaG91bGRMaW50RmlsZSA9IChmaWxlbmFtZTogc3RyaW5nLCBhbGxvd2VkTmFtZXM6IHN0cmluZ1tdKTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiAoXG4gICAgaXNMaW50YWJsZUZpbGVuYW1lKGZpbGVuYW1lKSAmJlxuICAgIGlzSW5Tb3VyY2VEaXJlY3RvcnkoZmlsZW5hbWUpICYmXG4gICAgYWxsb3dlZE5hbWVzLmxlbmd0aCA+IDBcbiAgKTtcbn07XG5cbmV4cG9ydCB7IGdldE9wdGlvbnMsIGlzTGludGFibGVGaWxlbmFtZSwgc2hvdWxkTGludEZpbGUgfTtcbmV4cG9ydCB0eXBlIHsgQ29uc2lzdGVudEJhcnJlbEZpbGVzU3RhdGUgfTtcbiJdfQ==
55
+ export { getOptions, shouldLintFile };
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2lzdGVudC1iYXJyZWwtZmlsZXMtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vYXJjaGl0ZWN0dXJlL2NvbnNpc3RlbnQtYmFycmVsLWZpbGVzL2NvbnNpc3RlbnQtYmFycmVsLWZpbGVzLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBSTdCLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsMkJBQTJCLEdBQzVCLE1BQU0seUJBQXlCLENBQUM7QUFpQmpDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLEdBQUcsQ0FDakIsT0FBMkIsRUFDQyxFQUFFO0lBQzlCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQTZDLENBQUM7SUFDMUUsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUM7SUFDNUMsTUFBTSxZQUFZLEdBQUcsMkJBQTJCLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzNFLE1BQU0sZUFBZSxHQUFHLFlBQVk7U0FDakMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFYixPQUFPO1FBQ0wsWUFBWTtRQUNaLGVBQWU7UUFDZixlQUFlLEVBQUUsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDO1FBQ3RDLE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQUMsUUFBZ0IsRUFBVyxFQUFFO0lBQ3hELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXBFLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGNBQWMsR0FBRyxDQUFDLFFBQWdCLEVBQUUsWUFBc0IsRUFBVyxFQUFFO0lBQzNFLE9BQU8sQ0FDTCxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7UUFDOUIsbUJBQW1CLENBQUMsUUFBUSxDQUFDO1FBQzdCLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUN4QixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcblxuaW1wb3J0IHR5cGUgeyBDb25zaXN0ZW50QmFycmVsRmlsZXNPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHtcbiAgaXNMaW50YWJsZU1vZHVsZUZpbGUsXG4gIG5vcm1hbGl6ZUFsbG93ZWRCYXJyZWxOYW1lcyxcbn0gZnJvbSBcIi4vYmFycmVsLWZpbGUtdXRpbGl0aWVzXCI7XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBDb25zaXN0ZW50QmFycmVsRmlsZXNTdGF0ZSB7XG4gIC8qKiBBbGxvd2VkTmFtZXMgZmllbGQgdmFsdWUuICovXG4gIGFsbG93ZWROYW1lczogc3RyaW5nW107XG5cbiAgLyoqIEFsbG93ZWROYW1lc0tleSBmaWVsZCB2YWx1ZS4gKi9cbiAgYWxsb3dlZE5hbWVzS2V5OiBzdHJpbmc7XG5cbiAgLyoqIEFsbG93ZWROYW1lc1NldCBmaWVsZCB2YWx1ZS4gKi9cbiAgYWxsb3dlZE5hbWVzU2V0OiBTZXQ8c3RyaW5nPjtcblxuICAvKiogRW5mb3JjZSBmaWVsZCB2YWx1ZS4gKi9cbiAgZW5mb3JjZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBCdWlsZHMgbm9ybWFsaXplZCBydWxlIG9wdGlvbnMgZnJvbSByYXcgcnVsZSBpbnB1dC5cbiAqIEBwYXJhbSBvcHRpb25zIFJhdyBydWxlIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBUaGUgbm9ybWFsaXplZCBydWxlIHN0YXRlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHN0YXRlID0gZ2V0T3B0aW9ucyhbe31dKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRPcHRpb25zID0gKFxuICBvcHRpb25zOiByZWFkb25seSB1bmtub3duW10sXG4pOiBDb25zaXN0ZW50QmFycmVsRmlsZXNTdGF0ZSA9PiB7XG4gIGNvbnN0IHJhd09wdGlvbnMgPSBvcHRpb25zWzBdIGFzIENvbnNpc3RlbnRCYXJyZWxGaWxlc09wdGlvbnMgfCB1bmRlZmluZWQ7XG4gIGNvbnN0IGVuZm9yY2UgPSByYXdPcHRpb25zPy5lbmZvcmNlID8/IHRydWU7XG4gIGNvbnN0IGFsbG93ZWROYW1lcyA9IG5vcm1hbGl6ZUFsbG93ZWRCYXJyZWxOYW1lcyhyYXdPcHRpb25zPy5hbGxvd2VkTmFtZXMpO1xuICBjb25zdCBhbGxvd2VkTmFtZXNLZXkgPSBhbGxvd2VkTmFtZXNcbiAgICAudG9Tb3J0ZWQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSlcbiAgICAuam9pbihcInxcIik7XG5cbiAgcmV0dXJuIHtcbiAgICBhbGxvd2VkTmFtZXMsXG4gICAgYWxsb3dlZE5hbWVzS2V5LFxuICAgIGFsbG93ZWROYW1lc1NldDogbmV3IFNldChhbGxvd2VkTmFtZXMpLFxuICAgIGVuZm9yY2UsXG4gIH07XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgcGF0aCBpcyBuZXN0ZWQgaW5zaWRlIGEgc3JjIGRpcmVjdG9yeS5cbiAqIEBwYXJhbSBmaWxlbmFtZSBGaWxlbmFtZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBmaWxlIHBhdGggY29udGFpbnMgYSBzcmMgcGF0aCBzZWdtZW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGluU3JjID0gaXNJblNvdXJjZURpcmVjdG9yeShgJHtjd2QoKX0vc3JjL2luZGV4LnRzYCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNJblNvdXJjZURpcmVjdG9yeSA9IChmaWxlbmFtZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gcGF0aC5ub3JtYWxpemUoZmlsZW5hbWUpO1xuICBjb25zdCBwYXRoU2VnbWVudHMgPSBub3JtYWxpemVkUGF0aC5zcGxpdChwYXRoLnNlcCkuZmlsdGVyKEJvb2xlYW4pO1xuXG4gIHJldHVybiBwYXRoU2VnbWVudHMuaW5jbHVkZXMoXCJzcmNcIik7XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciB0aGUgcnVsZSBzaG91bGQgbGludCBhIGZpbGUuXG4gKiBAcGFyYW0gZmlsZW5hbWUgRmlsZW5hbWUgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSBhbGxvd2VkTmFtZXMgQWxsb3dlZCBiYXJyZWwgbmFtZXMgZm9yIHRoZSBydWxlIHJ1bi5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiB0aGUgZmlsZSBzaG91bGQgYmUgY2hlY2tlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzaG91bGRMaW50ID0gc2hvdWxkTGludEZpbGUoYCR7Y3dkKCl9L3NyYy9pbmRleC50c2AsIFtcImluZGV4XCJdKTtcbiAqIGBgYFxuICovXG5jb25zdCBzaG91bGRMaW50RmlsZSA9IChmaWxlbmFtZTogc3RyaW5nLCBhbGxvd2VkTmFtZXM6IHN0cmluZ1tdKTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiAoXG4gICAgaXNMaW50YWJsZU1vZHVsZUZpbGUoZmlsZW5hbWUpICYmXG4gICAgaXNJblNvdXJjZURpcmVjdG9yeShmaWxlbmFtZSkgJiZcbiAgICBhbGxvd2VkTmFtZXMubGVuZ3RoID4gMFxuICApO1xufTtcblxuZXhwb3J0IHsgZ2V0T3B0aW9ucywgc2hvdWxkTGludEZpbGUgfTtcbmV4cG9ydCB0eXBlIHsgQ29uc2lzdGVudEJhcnJlbEZpbGVzU3RhdGUgfTtcbiJdfQ==
@@ -1,6 +1,5 @@
1
1
  export { barrelFilesExportsOnlyRule } from "./exports-only-rule.js";
2
2
  export { noImportExportAliasesRule } from "./no-import-export-aliases-rule.js";
3
- export { noImportExportExtensionsRule } from "./no-import-export-extensions-rule.js";
4
3
  export { noReexportsOutsideBarrelsRule } from "./no-reexports-outside-barrels-rule.js";
5
4
  export { consistentBarrelFilesRule } from "./rule.js";
6
5
  export type { BarrelFilesExportsOnlyOptions, ConsistentBarrelFilesOptions, NoReexportsOutsideBarrelsOptions, } from "./types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AACnD,YAAY,EACV,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AACnD,YAAY,EACV,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,SAAS,CAAC"}
@@ -1,6 +1,5 @@
1
1
  export { barrelFilesExportsOnlyRule } from "./exports-only-rule.js";
2
2
  export { noImportExportAliasesRule } from "./no-import-export-aliases-rule.js";
3
- export { noImportExportExtensionsRule } from "./no-import-export-extensions-rule.js";
4
3
  export { noReexportsOutsideBarrelsRule } from "./no-reexports-outside-barrels-rule.js";
5
4
  export { consistentBarrelFilesRule } from "./rule.js";
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9jb25zaXN0ZW50LWJhcnJlbC1maWxlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBiYXJyZWxGaWxlc0V4cG9ydHNPbmx5UnVsZSB9IGZyb20gXCIuL2V4cG9ydHMtb25seS1ydWxlXCI7XG5leHBvcnQgeyBub0ltcG9ydEV4cG9ydEFsaWFzZXNSdWxlIH0gZnJvbSBcIi4vbm8taW1wb3J0LWV4cG9ydC1hbGlhc2VzLXJ1bGVcIjtcbmV4cG9ydCB7IG5vSW1wb3J0RXhwb3J0RXh0ZW5zaW9uc1J1bGUgfSBmcm9tIFwiLi9uby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnMtcnVsZVwiO1xuZXhwb3J0IHsgbm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc1J1bGUgfSBmcm9tIFwiLi9uby1yZWV4cG9ydHMtb3V0c2lkZS1iYXJyZWxzLXJ1bGVcIjtcbmV4cG9ydCB7IGNvbnNpc3RlbnRCYXJyZWxGaWxlc1J1bGUgfSBmcm9tIFwiLi9ydWxlXCI7XG5leHBvcnQgdHlwZSB7XG4gIEJhcnJlbEZpbGVzRXhwb3J0c09ubHlPcHRpb25zLFxuICBDb25zaXN0ZW50QmFycmVsRmlsZXNPcHRpb25zLFxuICBOb1JlZXhwb3J0c091dHNpZGVCYXJyZWxzT3B0aW9ucyxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcbiJdfQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9jb25zaXN0ZW50LWJhcnJlbC1maWxlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBiYXJyZWxGaWxlc0V4cG9ydHNPbmx5UnVsZSB9IGZyb20gXCIuL2V4cG9ydHMtb25seS1ydWxlXCI7XG5leHBvcnQgeyBub0ltcG9ydEV4cG9ydEFsaWFzZXNSdWxlIH0gZnJvbSBcIi4vbm8taW1wb3J0LWV4cG9ydC1hbGlhc2VzLXJ1bGVcIjtcbmV4cG9ydCB7IG5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNSdWxlIH0gZnJvbSBcIi4vbm8tcmVleHBvcnRzLW91dHNpZGUtYmFycmVscy1ydWxlXCI7XG5leHBvcnQgeyBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlIH0gZnJvbSBcIi4vcnVsZVwiO1xuZXhwb3J0IHR5cGUge1xuICBCYXJyZWxGaWxlc0V4cG9ydHNPbmx5T3B0aW9ucyxcbiAgQ29uc2lzdGVudEJhcnJlbEZpbGVzT3B0aW9ucyxcbiAgTm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc09wdGlvbnMsXG59IGZyb20gXCIuL3R5cGVzXCI7XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"no-reexports-outside-barrels-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAUlC,qCAAqC;AACrC,UAAU,8BAA8B;IACtC,sCAAsC;IACtC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAE7B,yCAAyC;IACzC,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,GACd,SAAS,SAAS,OAAO,EAAE,KAC1B,8BAUF,CAAC;AAcF;;;;;;;;;GASG;AACH,QAAA,MAAM,cAAc,GAClB,UAAU,MAAM,EAChB,SAAS,8BAA8B,KACtC,OAEF,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,YAAY,GAChB,UAAU,MAAM,EAChB,SAAS,8BAA8B,KACtC,OAEF,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,oBAAoB,GAAI,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAG,GAAG,CAAC,MAAM,CAYnE,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,iBAAiB,GACrB,WAAW,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EACtC,eAAe,GAAG,CAAC,MAAM,CAAC,KACzB,OAcF,CAAC;AAEF,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,CAAC"}
1
+ {"version":3,"file":"no-reexports-outside-barrels-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAUlC,qCAAqC;AACrC,UAAU,8BAA8B;IACtC,sCAAsC;IACtC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAE7B,yCAAyC;IACzC,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,GACd,SAAS,SAAS,OAAO,EAAE,KAC1B,8BAUF,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,cAAc,GAClB,UAAU,MAAM,EAChB,SAAS,8BAA8B,KACtC,OAIF,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,YAAY,GAChB,UAAU,MAAM,EAChB,SAAS,8BAA8B,KACtC,OAEF,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,oBAAoB,GAAI,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAG,GAAG,CAAC,MAAM,CAYnE,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,iBAAiB,GACrB,WAAW,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EACtC,eAAe,GAAG,CAAC,MAAM,CAAC,KACzB,OAcF,CAAC;AAEF,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,CAAC"}
@@ -16,16 +16,6 @@ const getOptions = (options) => {
16
16
  allowedBarrelNamesSet: new Set(allowedBarrelNames),
17
17
  };
18
18
  };
19
- /**
20
- * Checks whether the filename is valid for linting.
21
- * @param filename Absolute filename.
22
- * @returns True when the filename is lintable.
23
- * @example
24
- * ```typescript
25
- * const ok = isLintableFilename("/repo/src/index.ts");
26
- * ```
27
- */
28
- const isLintableFilename = (filename) => isLintableModuleFile(filename);
29
19
  /**
30
20
  * Determines whether a file should be linted by this rule.
31
21
  * @param filename Absolute filename.
@@ -37,7 +27,7 @@ const isLintableFilename = (filename) => isLintableModuleFile(filename);
37
27
  * ```
38
28
  */
39
29
  const shouldLintFile = (filename, options) => {
40
- return isLintableFilename(filename) && options.allowedBarrelNames.length > 0;
30
+ return (isLintableModuleFile(filename) && options.allowedBarrelNames.length > 0);
41
31
  };
42
32
  /**
43
33
  * Determines whether a file is a barrel file under the rule options.
@@ -92,4 +82,4 @@ const hasImportedExport = (statement, importedNames) => {
92
82
  importedNames.has(specifier.local.name));
93
83
  };
94
84
  export { collectImportedNames, getOptions, hasImportedExport, isBarrelFile, shouldLintFile, };
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcmVleHBvcnRzLW91dHNpZGUtYmFycmVscy11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9jb25zaXN0ZW50LWJhcnJlbC1maWxlcy9uby1yZWV4cG9ydHMtb3V0c2lkZS1iYXJyZWxzLXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQ0wsWUFBWSxJQUFJLGtCQUFrQixFQUNsQyxvQkFBb0IsRUFDcEIsMkJBQTJCLEdBQzVCLE1BQU0seUJBQXlCLENBQUM7QUFXakM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsR0FBRyxDQUNqQixPQUEyQixFQUNLLEVBQUU7SUFDbEMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBaUQsQ0FBQztJQUM5RSxNQUFNLGtCQUFrQixHQUFHLDJCQUEyQixDQUNwRCxVQUFVLEVBQUUsa0JBQWtCLENBQy9CLENBQUM7SUFFRixPQUFPO1FBQ0wsa0JBQWtCO1FBQ2xCLHFCQUFxQixFQUFFLElBQUksR0FBRyxDQUFDLGtCQUFrQixDQUFDO0tBQ25ELENBQUM7QUFDSixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxRQUFnQixFQUFXLEVBQUUsQ0FDdkQsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFakM7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FDckIsUUFBZ0IsRUFDaEIsT0FBdUMsRUFDOUIsRUFBRTtJQUNYLE9BQU8sa0JBQWtCLENBQUMsUUFBUSxDQUFDLElBQUksT0FBTyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDL0UsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxZQUFZLEdBQUcsQ0FDbkIsUUFBZ0IsRUFDaEIsT0FBdUMsRUFDOUIsRUFBRTtJQUNYLE9BQU8sa0JBQWtCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ3JFLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLElBQXlCLEVBQWUsRUFBRTtJQUN0RSxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBRXhDLEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLG1CQUFtQixFQUFFLENBQUM7WUFDM0MsS0FBSyxNQUFNLFNBQVMsSUFBSSxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzdDLGFBQWEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGlCQUFpQixHQUFHLENBQ3hCLFNBQXNDLEVBQ3RDLGFBQTBCLEVBQ2pCLEVBQUU7SUFDWCxJQUNFLFNBQVMsQ0FBQyxJQUFJLEtBQUssd0JBQXdCO1FBQzNDLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQztRQUMxRCxDQUFDLFNBQVMsQ0FBQyxXQUFXLEtBQUssSUFBSSxJQUFJLFNBQVMsQ0FBQyxXQUFXLEtBQUssS0FBSyxDQUFDLENBQUMsRUFDcEUsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQzlCLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FDWixTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxZQUFZO1FBQ3JDLGFBQWEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FDMUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osY0FBYyxHQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFTVCB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHR5cGUgeyBOb1JlZXhwb3J0c091dHNpZGVCYXJyZWxzT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmltcG9ydCB7XG4gIGlzQmFycmVsRmlsZSBhcyBpc0JhcnJlbE1vZHVsZUZpbGUsXG4gIGlzTGludGFibGVNb2R1bGVGaWxlLFxuICBub3JtYWxpemVBbGxvd2VkQmFycmVsTmFtZXMsXG59IGZyb20gXCIuL2JhcnJlbC1maWxlLXV0aWxpdGllc1wiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgTm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc1N0YXRlIHtcbiAgLyoqIEFsbG93ZWRCYXJyZWxOYW1lcyBmaWVsZCB2YWx1ZS4gKi9cbiAgYWxsb3dlZEJhcnJlbE5hbWVzOiBzdHJpbmdbXTtcblxuICAvKiogQWxsb3dlZEJhcnJlbE5hbWVzU2V0IGZpZWxkIHZhbHVlLiAqL1xuICBhbGxvd2VkQmFycmVsTmFtZXNTZXQ6IFNldDxzdHJpbmc+O1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgcnVsZSBvcHRpb25zIHN0YXRlIGZyb20gcmF3IG9wdGlvbnMuXG4gKiBAcGFyYW0gb3B0aW9ucyBSYXcgcnVsZSBvcHRpb25zLlxuICogQHJldHVybnMgTm9ybWFsaXplZCBydWxlIG9wdGlvbnMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc3RhdGUgPSBnZXRPcHRpb25zKFt7fV0pO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldE9wdGlvbnMgPSAoXG4gIG9wdGlvbnM6IHJlYWRvbmx5IHVua25vd25bXSxcbik6IE5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNTdGF0ZSA9PiB7XG4gIGNvbnN0IHJhd09wdGlvbnMgPSBvcHRpb25zWzBdIGFzIE5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNPcHRpb25zIHwgdW5kZWZpbmVkO1xuICBjb25zdCBhbGxvd2VkQmFycmVsTmFtZXMgPSBub3JtYWxpemVBbGxvd2VkQmFycmVsTmFtZXMoXG4gICAgcmF3T3B0aW9ucz8uYWxsb3dlZEJhcnJlbE5hbWVzLFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgYWxsb3dlZEJhcnJlbE5hbWVzLFxuICAgIGFsbG93ZWRCYXJyZWxOYW1lc1NldDogbmV3IFNldChhbGxvd2VkQmFycmVsTmFtZXMpLFxuICB9O1xufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgZmlsZW5hbWUgaXMgdmFsaWQgZm9yIGxpbnRpbmcuXG4gKiBAcGFyYW0gZmlsZW5hbWUgQWJzb2x1dGUgZmlsZW5hbWUuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGZpbGVuYW1lIGlzIGxpbnRhYmxlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG9rID0gaXNMaW50YWJsZUZpbGVuYW1lKFwiL3JlcG8vc3JjL2luZGV4LnRzXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzTGludGFibGVGaWxlbmFtZSA9IChmaWxlbmFtZTogc3RyaW5nKTogYm9vbGVhbiA9PlxuICBpc0xpbnRhYmxlTW9kdWxlRmlsZShmaWxlbmFtZSk7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZmlsZSBzaG91bGQgYmUgbGludGVkIGJ5IHRoaXMgcnVsZS5cbiAqIEBwYXJhbSBmaWxlbmFtZSBBYnNvbHV0ZSBmaWxlbmFtZS5cbiAqIEBwYXJhbSBvcHRpb25zIE5vcm1hbGl6ZWQgcnVsZSBvcHRpb25zLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBmaWxlIHNob3VsZCBiZSBjaGVja2VkLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG9rID0gc2hvdWxkTGludEZpbGUoXCIvcmVwby9zcmMvaW5kZXgudHNcIiwgc3RhdGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IHNob3VsZExpbnRGaWxlID0gKFxuICBmaWxlbmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBOb1JlZXhwb3J0c091dHNpZGVCYXJyZWxzU3RhdGUsXG4pOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIGlzTGludGFibGVGaWxlbmFtZShmaWxlbmFtZSkgJiYgb3B0aW9ucy5hbGxvd2VkQmFycmVsTmFtZXMubGVuZ3RoID4gMDtcbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZmlsZSBpcyBhIGJhcnJlbCBmaWxlIHVuZGVyIHRoZSBydWxlIG9wdGlvbnMuXG4gKiBAcGFyYW0gZmlsZW5hbWUgQWJzb2x1dGUgZmlsZW5hbWUuXG4gKiBAcGFyYW0gb3B0aW9ucyBOb3JtYWxpemVkIHJ1bGUgb3B0aW9ucy5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiB0aGUgZmlsZSBpcyBhIGJhcnJlbCBmaWxlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG9rID0gaXNCYXJyZWxGaWxlKFwiL3JlcG8vc3JjL2luZGV4LnRzXCIsIHN0YXRlKTtcbiAqIGBgYFxuICovXG5jb25zdCBpc0JhcnJlbEZpbGUgPSAoXG4gIGZpbGVuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IE5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNTdGF0ZSxcbik6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gaXNCYXJyZWxNb2R1bGVGaWxlKGZpbGVuYW1lLCBvcHRpb25zLmFsbG93ZWRCYXJyZWxOYW1lc1NldCk7XG59O1xuXG4vKipcbiAqIENvbGxlY3RzIGltcG9ydGVkIGlkZW50aWZpZXJzIGZyb20gdGhlIHByb2dyYW0gYm9keS5cbiAqIEBwYXJhbSBib2R5IFByb2dyYW0gYm9keSBzdGF0ZW1lbnRzLlxuICogQHJldHVybnMgU2V0IG9mIGxvY2FsIGltcG9ydGVkIGlkZW50aWZpZXJzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5hbWVzID0gY29sbGVjdEltcG9ydGVkTmFtZXMocHJvZ3JhbS5ib2R5KTtcbiAqIGBgYFxuICovXG5jb25zdCBjb2xsZWN0SW1wb3J0ZWROYW1lcyA9IChib2R5OiBBU1QuUHJvZ3JhbVtcImJvZHlcIl0pOiBTZXQ8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IGltcG9ydGVkTmFtZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBib2R5KSB7XG4gICAgaWYgKHN0YXRlbWVudC50eXBlID09PSBcIkltcG9ydERlY2xhcmF0aW9uXCIpIHtcbiAgICAgIGZvciAoY29uc3Qgc3BlY2lmaWVyIG9mIHN0YXRlbWVudC5zcGVjaWZpZXJzKSB7XG4gICAgICAgIGltcG9ydGVkTmFtZXMuYWRkKHNwZWNpZmllci5sb2NhbC5uYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gaW1wb3J0ZWROYW1lcztcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYW4gZXhwb3J0IHNwZWNpZmllciByZWZlcmVuY2VzIGFuIGltcG9ydGVkIGlkZW50aWZpZXIuXG4gKiBAcGFyYW0gc3RhdGVtZW50IEV4cG9ydCBuYW1lZCBkZWNsYXJhdGlvbiBzdGF0ZW1lbnQuXG4gKiBAcGFyYW0gaW1wb3J0ZWROYW1lcyBTZXQgb2YgaW1wb3J0ZWQgaWRlbnRpZmllcnMuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gYW55IGV4cG9ydCBzcGVjaWZpZXIgcmVmZXJlbmNlcyBhbiBpbXBvcnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb2sgPSBoYXNJbXBvcnRlZEV4cG9ydChzdGF0ZW1lbnQsIG5hbWVzKTtcbiAqIGBgYFxuICovXG5jb25zdCBoYXNJbXBvcnRlZEV4cG9ydCA9IChcbiAgc3RhdGVtZW50OiBBU1QuUHJvZ3JhbVtcImJvZHlcIl1bbnVtYmVyXSxcbiAgaW1wb3J0ZWROYW1lczogU2V0PHN0cmluZz4sXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKFxuICAgIHN0YXRlbWVudC50eXBlICE9PSBcIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIiB8fFxuICAgIChzdGF0ZW1lbnQuc291cmNlICE9PSBudWxsICYmIHN0YXRlbWVudC5zb3VyY2UgIT09IHZvaWQgMCkgfHxcbiAgICAoc3RhdGVtZW50LmRlY2xhcmF0aW9uICE9PSBudWxsICYmIHN0YXRlbWVudC5kZWNsYXJhdGlvbiAhPT0gdm9pZCAwKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50LnNwZWNpZmllcnMuc29tZShcbiAgICAoc3BlY2lmaWVyKSA9PlxuICAgICAgc3BlY2lmaWVyLmxvY2FsLnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAgICBpbXBvcnRlZE5hbWVzLmhhcyhzcGVjaWZpZXIubG9jYWwubmFtZSksXG4gICk7XG59O1xuXG5leHBvcnQge1xuICBjb2xsZWN0SW1wb3J0ZWROYW1lcyxcbiAgZ2V0T3B0aW9ucyxcbiAgaGFzSW1wb3J0ZWRFeHBvcnQsXG4gIGlzQmFycmVsRmlsZSxcbiAgc2hvdWxkTGludEZpbGUsXG59O1xuIl19
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcmVleHBvcnRzLW91dHNpZGUtYmFycmVscy11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9jb25zaXN0ZW50LWJhcnJlbC1maWxlcy9uby1yZWV4cG9ydHMtb3V0c2lkZS1iYXJyZWxzLXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQ0wsWUFBWSxJQUFJLGtCQUFrQixFQUNsQyxvQkFBb0IsRUFDcEIsMkJBQTJCLEdBQzVCLE1BQU0seUJBQXlCLENBQUM7QUFXakM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsR0FBRyxDQUNqQixPQUEyQixFQUNLLEVBQUU7SUFDbEMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBaUQsQ0FBQztJQUM5RSxNQUFNLGtCQUFrQixHQUFHLDJCQUEyQixDQUNwRCxVQUFVLEVBQUUsa0JBQWtCLENBQy9CLENBQUM7SUFFRixPQUFPO1FBQ0wsa0JBQWtCO1FBQ2xCLHFCQUFxQixFQUFFLElBQUksR0FBRyxDQUFDLGtCQUFrQixDQUFDO0tBQ25ELENBQUM7QUFDSixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGNBQWMsR0FBRyxDQUNyQixRQUFnQixFQUNoQixPQUF1QyxFQUM5QixFQUFFO0lBQ1gsT0FBTyxDQUNMLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUN4RSxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxZQUFZLEdBQUcsQ0FDbkIsUUFBZ0IsRUFDaEIsT0FBdUMsRUFDOUIsRUFBRTtJQUNYLE9BQU8sa0JBQWtCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ3JFLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLElBQXlCLEVBQWUsRUFBRTtJQUN0RSxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBRXhDLEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLG1CQUFtQixFQUFFLENBQUM7WUFDM0MsS0FBSyxNQUFNLFNBQVMsSUFBSSxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzdDLGFBQWEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGlCQUFpQixHQUFHLENBQ3hCLFNBQXNDLEVBQ3RDLGFBQTBCLEVBQ2pCLEVBQUU7SUFDWCxJQUNFLFNBQVMsQ0FBQyxJQUFJLEtBQUssd0JBQXdCO1FBQzNDLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQztRQUMxRCxDQUFDLFNBQVMsQ0FBQyxXQUFXLEtBQUssSUFBSSxJQUFJLFNBQVMsQ0FBQyxXQUFXLEtBQUssS0FBSyxDQUFDLENBQUMsRUFDcEUsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQzlCLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FDWixTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxZQUFZO1FBQ3JDLGFBQWEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FDMUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osY0FBYyxHQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFTVCB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHR5cGUgeyBOb1JlZXhwb3J0c091dHNpZGVCYXJyZWxzT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmltcG9ydCB7XG4gIGlzQmFycmVsRmlsZSBhcyBpc0JhcnJlbE1vZHVsZUZpbGUsXG4gIGlzTGludGFibGVNb2R1bGVGaWxlLFxuICBub3JtYWxpemVBbGxvd2VkQmFycmVsTmFtZXMsXG59IGZyb20gXCIuL2JhcnJlbC1maWxlLXV0aWxpdGllc1wiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgTm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc1N0YXRlIHtcbiAgLyoqIEFsbG93ZWRCYXJyZWxOYW1lcyBmaWVsZCB2YWx1ZS4gKi9cbiAgYWxsb3dlZEJhcnJlbE5hbWVzOiBzdHJpbmdbXTtcblxuICAvKiogQWxsb3dlZEJhcnJlbE5hbWVzU2V0IGZpZWxkIHZhbHVlLiAqL1xuICBhbGxvd2VkQmFycmVsTmFtZXNTZXQ6IFNldDxzdHJpbmc+O1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgcnVsZSBvcHRpb25zIHN0YXRlIGZyb20gcmF3IG9wdGlvbnMuXG4gKiBAcGFyYW0gb3B0aW9ucyBSYXcgcnVsZSBvcHRpb25zLlxuICogQHJldHVybnMgTm9ybWFsaXplZCBydWxlIG9wdGlvbnMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc3RhdGUgPSBnZXRPcHRpb25zKFt7fV0pO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldE9wdGlvbnMgPSAoXG4gIG9wdGlvbnM6IHJlYWRvbmx5IHVua25vd25bXSxcbik6IE5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNTdGF0ZSA9PiB7XG4gIGNvbnN0IHJhd09wdGlvbnMgPSBvcHRpb25zWzBdIGFzIE5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNPcHRpb25zIHwgdW5kZWZpbmVkO1xuICBjb25zdCBhbGxvd2VkQmFycmVsTmFtZXMgPSBub3JtYWxpemVBbGxvd2VkQmFycmVsTmFtZXMoXG4gICAgcmF3T3B0aW9ucz8uYWxsb3dlZEJhcnJlbE5hbWVzLFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgYWxsb3dlZEJhcnJlbE5hbWVzLFxuICAgIGFsbG93ZWRCYXJyZWxOYW1lc1NldDogbmV3IFNldChhbGxvd2VkQmFycmVsTmFtZXMpLFxuICB9O1xufTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBmaWxlIHNob3VsZCBiZSBsaW50ZWQgYnkgdGhpcyBydWxlLlxuICogQHBhcmFtIGZpbGVuYW1lIEFic29sdXRlIGZpbGVuYW1lLlxuICogQHBhcmFtIG9wdGlvbnMgTm9ybWFsaXplZCBydWxlIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGZpbGUgc2hvdWxkIGJlIGNoZWNrZWQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb2sgPSBzaG91bGRMaW50RmlsZShcIi9yZXBvL3NyYy9pbmRleC50c1wiLCBzdGF0ZSk7XG4gKiBgYGBcbiAqL1xuY29uc3Qgc2hvdWxkTGludEZpbGUgPSAoXG4gIGZpbGVuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IE5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNTdGF0ZSxcbik6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gKFxuICAgIGlzTGludGFibGVNb2R1bGVGaWxlKGZpbGVuYW1lKSAmJiBvcHRpb25zLmFsbG93ZWRCYXJyZWxOYW1lcy5sZW5ndGggPiAwXG4gICk7XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGZpbGUgaXMgYSBiYXJyZWwgZmlsZSB1bmRlciB0aGUgcnVsZSBvcHRpb25zLlxuICogQHBhcmFtIGZpbGVuYW1lIEFic29sdXRlIGZpbGVuYW1lLlxuICogQHBhcmFtIG9wdGlvbnMgTm9ybWFsaXplZCBydWxlIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGZpbGUgaXMgYSBiYXJyZWwgZmlsZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBvayA9IGlzQmFycmVsRmlsZShcIi9yZXBvL3NyYy9pbmRleC50c1wiLCBzdGF0ZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNCYXJyZWxGaWxlID0gKFxuICBmaWxlbmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBOb1JlZXhwb3J0c091dHNpZGVCYXJyZWxzU3RhdGUsXG4pOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIGlzQmFycmVsTW9kdWxlRmlsZShmaWxlbmFtZSwgb3B0aW9ucy5hbGxvd2VkQmFycmVsTmFtZXNTZXQpO1xufTtcblxuLyoqXG4gKiBDb2xsZWN0cyBpbXBvcnRlZCBpZGVudGlmaWVycyBmcm9tIHRoZSBwcm9ncmFtIGJvZHkuXG4gKiBAcGFyYW0gYm9keSBQcm9ncmFtIGJvZHkgc3RhdGVtZW50cy5cbiAqIEByZXR1cm5zIFNldCBvZiBsb2NhbCBpbXBvcnRlZCBpZGVudGlmaWVycy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBuYW1lcyA9IGNvbGxlY3RJbXBvcnRlZE5hbWVzKHByb2dyYW0uYm9keSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY29sbGVjdEltcG9ydGVkTmFtZXMgPSAoYm9keTogQVNULlByb2dyYW1bXCJib2R5XCJdKTogU2V0PHN0cmluZz4gPT4ge1xuICBjb25zdCBpbXBvcnRlZE5hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2YgYm9keSkge1xuICAgIGlmIChzdGF0ZW1lbnQudHlwZSA9PT0gXCJJbXBvcnREZWNsYXJhdGlvblwiKSB7XG4gICAgICBmb3IgKGNvbnN0IHNwZWNpZmllciBvZiBzdGF0ZW1lbnQuc3BlY2lmaWVycykge1xuICAgICAgICBpbXBvcnRlZE5hbWVzLmFkZChzcGVjaWZpZXIubG9jYWwubmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGltcG9ydGVkTmFtZXM7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGFuIGV4cG9ydCBzcGVjaWZpZXIgcmVmZXJlbmNlcyBhbiBpbXBvcnRlZCBpZGVudGlmaWVyLlxuICogQHBhcmFtIHN0YXRlbWVudCBFeHBvcnQgbmFtZWQgZGVjbGFyYXRpb24gc3RhdGVtZW50LlxuICogQHBhcmFtIGltcG9ydGVkTmFtZXMgU2V0IG9mIGltcG9ydGVkIGlkZW50aWZpZXJzLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIGFueSBleHBvcnQgc3BlY2lmaWVyIHJlZmVyZW5jZXMgYW4gaW1wb3J0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG9rID0gaGFzSW1wb3J0ZWRFeHBvcnQoc3RhdGVtZW50LCBuYW1lcyk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaGFzSW1wb3J0ZWRFeHBvcnQgPSAoXG4gIHN0YXRlbWVudDogQVNULlByb2dyYW1bXCJib2R5XCJdW251bWJlcl0sXG4gIGltcG9ydGVkTmFtZXM6IFNldDxzdHJpbmc+LFxuKTogYm9vbGVhbiA9PiB7XG4gIGlmIChcbiAgICBzdGF0ZW1lbnQudHlwZSAhPT0gXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIgfHxcbiAgICAoc3RhdGVtZW50LnNvdXJjZSAhPT0gbnVsbCAmJiBzdGF0ZW1lbnQuc291cmNlICE9PSB2b2lkIDApIHx8XG4gICAgKHN0YXRlbWVudC5kZWNsYXJhdGlvbiAhPT0gbnVsbCAmJiBzdGF0ZW1lbnQuZGVjbGFyYXRpb24gIT09IHZvaWQgMClcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudC5zcGVjaWZpZXJzLnNvbWUoXG4gICAgKHNwZWNpZmllcikgPT5cbiAgICAgIHNwZWNpZmllci5sb2NhbC50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJlxuICAgICAgaW1wb3J0ZWROYW1lcy5oYXMoc3BlY2lmaWVyLmxvY2FsLm5hbWUpLFxuICApO1xufTtcblxuZXhwb3J0IHtcbiAgY29sbGVjdEltcG9ydGVkTmFtZXMsXG4gIGdldE9wdGlvbnMsXG4gIGhhc0ltcG9ydGVkRXhwb3J0LFxuICBpc0JhcnJlbEZpbGUsXG4gIHNob3VsZExpbnRGaWxlLFxufTtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAQnC;;;;;;GAMG;AACH,QAAA,MAAM,yBAAyB,EAAE,IAAI,CAAC,UA6CrC,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
1
+ {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAMnC;;;;;;GAMG;AACH,QAAA,MAAM,yBAAyB,EAAE,IAAI,CAAC,UA6CrC,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
@@ -1,5 +1,6 @@
1
+ import { isLintableModuleFile } from "./barrel-file-utilities.js";
1
2
  import { buildListenerForFile } from "./consistent-barrel-files-listeners.js";
2
- import { getOptions, isLintableFilename, } from "./consistent-barrel-files-options.js";
3
+ import { getOptions } from "./consistent-barrel-files-options.js";
3
4
  /**
4
5
  * ESLint rule requiring consistent barrel file usage by folder.
5
6
  * @example
@@ -10,7 +11,7 @@ import { getOptions, isLintableFilename, } from "./consistent-barrel-files-optio
10
11
  const consistentBarrelFilesRule = {
11
12
  create(context) {
12
13
  const { filename, options } = context;
13
- if (!isLintableFilename(filename)) {
14
+ if (!isLintableModuleFile(filename)) {
14
15
  return {};
15
16
  }
16
17
  return buildListenerForFile(context, filename, getOptions(options));
@@ -47,4 +48,4 @@ const consistentBarrelFilesRule = {
47
48
  },
48
49
  };
49
50
  export { consistentBarrelFilesRule };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vYXJjaGl0ZWN0dXJlL2NvbnNpc3RlbnQtYmFycmVsLWZpbGVzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUNMLFVBQVUsRUFDVixrQkFBa0IsR0FDbkIsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLHlCQUF5QixHQUFvQjtJQUNqRCxNQUFNLENBQUMsT0FBeUI7UUFDOUIsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFFdEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsT0FBTyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFDRCxJQUFJLEVBQUU7UUFDSixjQUFjLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM1RCxJQUFJLEVBQUU7WUFDSixXQUFXLEVBQ1QsZ0VBQWdFO1lBQ2xFLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLEdBQUcsRUFBRSwwRkFBMEY7U0FDaEc7UUFDRCxRQUFRLEVBQUU7WUFDUixlQUFlLEVBQ2IsZ0VBQWdFO1lBQ2xFLGFBQWEsRUFDWCxrRkFBa0Y7U0FDckY7UUFDRCxNQUFNLEVBQUU7WUFDTjtnQkFDRSxvQkFBb0IsRUFBRSxLQUFLO2dCQUMzQixVQUFVLEVBQUU7b0JBQ1YsWUFBWSxFQUFFO3dCQUNaLFdBQVcsRUFDVCxtRUFBbUU7d0JBQ3JFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7d0JBQ3pCLElBQUksRUFBRSxPQUFPO3FCQUNkO29CQUNELE9BQU8sRUFBRTt3QkFDUCxXQUFXLEVBQ1QsZ0ZBQWdGO3dCQUNsRixJQUFJLEVBQUUsU0FBUztxQkFDaEI7aUJBQ0Y7Z0JBQ0QsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO1FBQ0QsSUFBSSxFQUFFLFNBQVM7S0FDaEI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7IGJ1aWxkTGlzdGVuZXJGb3JGaWxlIH0gZnJvbSBcIi4vY29uc2lzdGVudC1iYXJyZWwtZmlsZXMtbGlzdGVuZXJzXCI7XG5pbXBvcnQge1xuICBnZXRPcHRpb25zLFxuICBpc0xpbnRhYmxlRmlsZW5hbWUsXG59IGZyb20gXCIuL2NvbnNpc3RlbnQtYmFycmVsLWZpbGVzLW9wdGlvbnNcIjtcblxuLyoqXG4gKiBFU0xpbnQgcnVsZSByZXF1aXJpbmcgY29uc2lzdGVudCBiYXJyZWwgZmlsZSB1c2FnZSBieSBmb2xkZXIuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcnVsZSA9IGNvbnNpc3RlbnRCYXJyZWxGaWxlc1J1bGU7XG4gKiBgYGBcbiAqL1xuY29uc3QgY29uc2lzdGVudEJhcnJlbEZpbGVzUnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyIHtcbiAgICBjb25zdCB7IGZpbGVuYW1lLCBvcHRpb25zIH0gPSBjb250ZXh0O1xuXG4gICAgaWYgKCFpc0xpbnRhYmxlRmlsZW5hbWUoZmlsZW5hbWUpKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1aWxkTGlzdGVuZXJGb3JGaWxlKGNvbnRleHQsIGZpbGVuYW1lLCBnZXRPcHRpb25zKG9wdGlvbnMpKTtcbiAgfSxcbiAgbWV0YToge1xuICAgIGRlZmF1bHRPcHRpb25zOiBbeyBhbGxvd2VkTmFtZXM6IFtcImluZGV4XCJdLCBlbmZvcmNlOiB0cnVlIH1dLFxuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkVuZm9yY2Ugb3IgZm9yYmlkIGJhcnJlbCBmaWxlcyB3aXRoIGNvbnNpc3RlbnQsIGFsbG93ZWQgbmFtZXMuXCIsXG4gICAgICByZWNvbW1lbmRlZDogZmFsc2UsXG4gICAgICB1cmw6IFwiaHR0cHM6Ly9naXRodWIuY29tL3BhcmxvdGkvZXNsaW50LXBsdWdpbi9ibG9iL21haW4vZG9jcy9ydWxlcy9jb25zaXN0ZW50LWJhcnJlbC1maWxlcy5tZFwiLFxuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIGZvcmJpZGRlbkJhcnJlbDpcbiAgICAgICAgXCJCYXJyZWwgZmlsZXMgYXJlIGZvcmJpZGRlbi4gUmVtb3ZlIHRoZSBiYXJyZWwgZmlsZSAne3tuYW1lfX0nLlwiLFxuICAgICAgbWlzc2luZ0JhcnJlbDpcbiAgICAgICAgXCJFYWNoIGZvbGRlciBtdXN0IGluY2x1ZGUgYSBiYXJyZWwgZmlsZSBuYW1lZCB3aXRoIG9uZSBvZiB0aGVzZSBzdGVtczoge3tuYW1lc319LlwiLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXG4gICAgICB7XG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIGFsbG93ZWROYW1lczoge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIFwiQWxsb3dlZCBiYXJyZWwgYmFzZW5hbWVzIHRoYXQgdGhlIHJ1bGUgcmVjb2duaXplcyBpbiBlYWNoIGZvbGRlci5cIixcbiAgICAgICAgICAgIGl0ZW1zOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVuZm9yY2U6IHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcIldoZXRoZXIgZWFjaCBlbGlnaWJsZSBmb2xkZXIgbXVzdCBjb250YWluIG9uZSBvZiB0aGUgYWxsb3dlZCBiYXJyZWwgZmlsZW5hbWVzLlwiLFxuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgICB0eXBlOiBcInByb2JsZW1cIixcbiAgfSxcbn07XG5cbmV4cG9ydCB7IGNvbnNpc3RlbnRCYXJyZWxGaWxlc1J1bGUgfTtcbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vYXJjaGl0ZWN0dXJlL2NvbnNpc3RlbnQtYmFycmVsLWZpbGVzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRS9EOzs7Ozs7R0FNRztBQUNILE1BQU0seUJBQXlCLEdBQW9CO0lBQ2pELE1BQU0sQ0FBQyxPQUF5QjtRQUM5QixNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUV0QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxPQUFPLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNELElBQUksRUFBRTtRQUNKLGNBQWMsRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzVELElBQUksRUFBRTtZQUNKLFdBQVcsRUFDVCxnRUFBZ0U7WUFDbEUsV0FBVyxFQUFFLEtBQUs7WUFDbEIsR0FBRyxFQUFFLDBGQUEwRjtTQUNoRztRQUNELFFBQVEsRUFBRTtZQUNSLGVBQWUsRUFDYixnRUFBZ0U7WUFDbEUsYUFBYSxFQUNYLGtGQUFrRjtTQUNyRjtRQUNELE1BQU0sRUFBRTtZQUNOO2dCQUNFLG9CQUFvQixFQUFFLEtBQUs7Z0JBQzNCLFVBQVUsRUFBRTtvQkFDVixZQUFZLEVBQUU7d0JBQ1osV0FBVyxFQUNULG1FQUFtRTt3QkFDckUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTt3QkFDekIsSUFBSSxFQUFFLE9BQU87cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFdBQVcsRUFDVCxnRkFBZ0Y7d0JBQ2xGLElBQUksRUFBRSxTQUFTO3FCQUNoQjtpQkFDRjtnQkFDRCxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsU0FBUztLQUNoQjtDQUNGLENBQUM7QUFFRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHsgaXNMaW50YWJsZU1vZHVsZUZpbGUgfSBmcm9tIFwiLi9iYXJyZWwtZmlsZS11dGlsaXRpZXNcIjtcbmltcG9ydCB7IGJ1aWxkTGlzdGVuZXJGb3JGaWxlIH0gZnJvbSBcIi4vY29uc2lzdGVudC1iYXJyZWwtZmlsZXMtbGlzdGVuZXJzXCI7XG5pbXBvcnQgeyBnZXRPcHRpb25zIH0gZnJvbSBcIi4vY29uc2lzdGVudC1iYXJyZWwtZmlsZXMtb3B0aW9uc1wiO1xuXG4vKipcbiAqIEVTTGludCBydWxlIHJlcXVpcmluZyBjb25zaXN0ZW50IGJhcnJlbCBmaWxlIHVzYWdlIGJ5IGZvbGRlci5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBydWxlID0gY29uc2lzdGVudEJhcnJlbEZpbGVzUnVsZTtcbiAqIGBgYFxuICovXG5jb25zdCBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIge1xuICAgIGNvbnN0IHsgZmlsZW5hbWUsIG9wdGlvbnMgfSA9IGNvbnRleHQ7XG5cbiAgICBpZiAoIWlzTGludGFibGVNb2R1bGVGaWxlKGZpbGVuYW1lKSkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHJldHVybiBidWlsZExpc3RlbmVyRm9yRmlsZShjb250ZXh0LCBmaWxlbmFtZSwgZ2V0T3B0aW9ucyhvcHRpb25zKSk7XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkZWZhdWx0T3B0aW9uczogW3sgYWxsb3dlZE5hbWVzOiBbXCJpbmRleFwiXSwgZW5mb3JjZTogdHJ1ZSB9XSxcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJFbmZvcmNlIG9yIGZvcmJpZCBiYXJyZWwgZmlsZXMgd2l0aCBjb25zaXN0ZW50LCBhbGxvd2VkIG5hbWVzLlwiLFxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvY29uc2lzdGVudC1iYXJyZWwtZmlsZXMubWRcIixcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBmb3JiaWRkZW5CYXJyZWw6XG4gICAgICAgIFwiQmFycmVsIGZpbGVzIGFyZSBmb3JiaWRkZW4uIFJlbW92ZSB0aGUgYmFycmVsIGZpbGUgJ3t7bmFtZX19Jy5cIixcbiAgICAgIG1pc3NpbmdCYXJyZWw6XG4gICAgICAgIFwiRWFjaCBmb2xkZXIgbXVzdCBpbmNsdWRlIGEgYmFycmVsIGZpbGUgbmFtZWQgd2l0aCBvbmUgb2YgdGhlc2Ugc3RlbXM6IHt7bmFtZXN9fS5cIixcbiAgICB9LFxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBhbGxvd2VkTmFtZXM6IHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcIkFsbG93ZWQgYmFycmVsIGJhc2VuYW1lcyB0aGF0IHRoZSBydWxlIHJlY29nbml6ZXMgaW4gZWFjaCBmb2xkZXIuXCIsXG4gICAgICAgICAgICBpdGVtczogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbmZvcmNlOiB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgXCJXaGV0aGVyIGVhY2ggZWxpZ2libGUgZm9sZGVyIG11c3QgY29udGFpbiBvbmUgb2YgdGhlIGFsbG93ZWQgYmFycmVsIGZpbGVuYW1lcy5cIixcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICB9LFxuICAgIF0sXG4gICAgdHlwZTogXCJwcm9ibGVtXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgeyBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlIH07XG4iXX0=
@@ -1,3 +1,4 @@
1
- export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noImportExportAliasesRule, noImportExportExtensionsRule, noReexportsOutsideBarrelsRule, } from "./consistent-barrel-files/index.js";
1
+ export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noImportExportAliasesRule, noReexportsOutsideBarrelsRule, } from "./consistent-barrel-files/index.js";
2
+ export { noImportExportExtensionsRule } from "./no-import-export-extensions/index.js";
2
3
  export { noUnusedExportsRule } from "./no-unused-exports/index.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/architecture/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/architecture/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,3 +1,4 @@
1
- export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noImportExportAliasesRule, noImportExportExtensionsRule, noReexportsOutsideBarrelsRule, } from "./consistent-barrel-files/index.js";
1
+ export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noImportExportAliasesRule, noReexportsOutsideBarrelsRule, } from "./consistent-barrel-files/index.js";
2
+ export { noImportExportExtensionsRule } from "./no-import-export-extensions/index.js";
2
3
  export { noUnusedExportsRule } from "./no-unused-exports/index.js";
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsNEJBQTRCLEVBQzVCLDZCQUE2QixHQUM5QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgYmFycmVsRmlsZXNFeHBvcnRzT25seVJ1bGUsXG4gIGNvbnNpc3RlbnRCYXJyZWxGaWxlc1J1bGUsXG4gIG5vSW1wb3J0RXhwb3J0QWxpYXNlc1J1bGUsXG4gIG5vSW1wb3J0RXhwb3J0RXh0ZW5zaW9uc1J1bGUsXG4gIG5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNSdWxlLFxufSBmcm9tIFwiLi9jb25zaXN0ZW50LWJhcnJlbC1maWxlc1wiO1xuZXhwb3J0IHsgbm9VbnVzZWRFeHBvcnRzUnVsZSB9IGZyb20gXCIuL25vLXVudXNlZC1leHBvcnRzXCI7XG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsNkJBQTZCLEdBQzlCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBiYXJyZWxGaWxlc0V4cG9ydHNPbmx5UnVsZSxcbiAgY29uc2lzdGVudEJhcnJlbEZpbGVzUnVsZSxcbiAgbm9JbXBvcnRFeHBvcnRBbGlhc2VzUnVsZSxcbiAgbm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc1J1bGUsXG59IGZyb20gXCIuL2NvbnNpc3RlbnQtYmFycmVsLWZpbGVzXCI7XG5leHBvcnQgeyBub0ltcG9ydEV4cG9ydEV4dGVuc2lvbnNSdWxlIH0gZnJvbSBcIi4vbm8taW1wb3J0LWV4cG9ydC1leHRlbnNpb25zXCI7XG5leHBvcnQgeyBub1VudXNlZEV4cG9ydHNSdWxlIH0gZnJvbSBcIi4vbm8tdW51c2VkLWV4cG9ydHNcIjtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { noImportExportExtensionsRule } from "./no-import-export-extensions-rule.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-import-export-extensions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { noImportExportExtensionsRule } from "./no-import-export-extensions-rule.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9uby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBub0ltcG9ydEV4cG9ydEV4dGVuc2lvbnNSdWxlIH0gZnJvbSBcIi4vbm8taW1wb3J0LWV4cG9ydC1leHRlbnNpb25zLXJ1bGVcIjtcbiJdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-import-export-extensions-rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-import-export-extensions/no-import-export-extensions-rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AA2MnC,8FAA8F;AAC9F,QAAA,MAAM,4BAA4B,EAAE,IAAI,CAAC,UA6BxC,CAAC;AAEF,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
@@ -0,0 +1,178 @@
1
+ /** Set of disallowed module-specifier file extensions. */
2
+ const disallowedExtensions = new Set([
3
+ ".cjs",
4
+ ".cts",
5
+ ".js",
6
+ ".jsx",
7
+ ".mjs",
8
+ ".mts",
9
+ ".ts",
10
+ ".tsx",
11
+ ]);
12
+ /**
13
+ * Gets the trailing extension from a module specifier string.
14
+ * @param source Module specifier text.
15
+ * @returns File extension including the leading dot when present.
16
+ * @example
17
+ * ```typescript
18
+ * const extension = getTrailingExtension("./feature.ts");
19
+ * ```
20
+ */
21
+ const getSpecifierEndIndex = (source) => {
22
+ const queryIndex = source.indexOf("?");
23
+ const hashIndex = source.indexOf("#");
24
+ const endIndexCandidates = [queryIndex, hashIndex].filter((index) => index >= 0);
25
+ return endIndexCandidates.length === 0
26
+ ? source.length
27
+ : Math.min(...endIndexCandidates);
28
+ };
29
+ /**
30
+ * Gets the trailing extension from a module specifier string.
31
+ * @param source Module specifier text.
32
+ * @returns File extension including the leading dot when present.
33
+ * @example
34
+ * ```typescript
35
+ * const extension = getTrailingExtension("./feature.ts");
36
+ * ```
37
+ */
38
+ const getTrailingExtension = (source) => {
39
+ const endIndex = getSpecifierEndIndex(source);
40
+ const cleanedSource = source.slice(0, endIndex);
41
+ const lastSlashIndex = Math.max(cleanedSource.lastIndexOf("/"), cleanedSource.lastIndexOf("\\"));
42
+ const basename = cleanedSource.slice(lastSlashIndex + 1);
43
+ const dotIndex = basename.lastIndexOf(".");
44
+ if (dotIndex <= 0) {
45
+ return void 0;
46
+ }
47
+ return basename.slice(dotIndex).toLowerCase();
48
+ };
49
+ /**
50
+ * Builds the fixed source literal text with the disallowed extension removed.
51
+ * @param sourceLiteral Source literal node to fix.
52
+ * @returns Fixed source text including surrounding quotes.
53
+ * @example
54
+ * ```typescript
55
+ * const fixed = buildFixedSource(sourceLiteral);
56
+ * ```
57
+ */
58
+ const buildFixedSource = (sourceLiteral) => {
59
+ const raw = sourceLiteral.raw;
60
+ const value = sourceLiteral.value;
61
+ if (typeof value !== "string" || raw === void 0) {
62
+ return void 0;
63
+ }
64
+ const quoteChar = raw[0];
65
+ const endIndex = getSpecifierEndIndex(value);
66
+ const cleanedSource = value.slice(0, endIndex);
67
+ const suffix = value.slice(endIndex);
68
+ const lastSlashIndex = Math.max(cleanedSource.lastIndexOf("/"), cleanedSource.lastIndexOf("\\"));
69
+ const basename = cleanedSource.slice(lastSlashIndex + 1);
70
+ const dotIndex = basename.lastIndexOf(".");
71
+ if (dotIndex <= 0) {
72
+ return void 0;
73
+ }
74
+ const withoutExtension = cleanedSource.slice(0, cleanedSource.length - basename.length + dotIndex);
75
+ return `${String(quoteChar)}${withoutExtension}${suffix}${String(quoteChar)}`;
76
+ };
77
+ /**
78
+ * Checks whether a source literal should be reported.
79
+ * @param sourceLiteral Source literal node.
80
+ * @returns True when the source includes a disallowed file extension.
81
+ * @example
82
+ * ```typescript
83
+ * const forbidden = hasDisallowedExtension(sourceLiteral);
84
+ * ```
85
+ */
86
+ const hasDisallowedExtension = (sourceLiteral) => {
87
+ if (typeof sourceLiteral.value !== "string") {
88
+ return false;
89
+ }
90
+ const extension = getTrailingExtension(sourceLiteral.value);
91
+ return extension !== void 0 && disallowedExtensions.has(extension);
92
+ };
93
+ /**
94
+ * Reports a statement when it references a source with disallowed extension.
95
+ * @param context Rule execution context.
96
+ * @param statement Statement that may include a source literal.
97
+ * @example
98
+ * ```typescript
99
+ * reportWhenSourceHasExtension(context, statement);
100
+ * ```
101
+ */
102
+ const reportWhenSourceHasExtension = (context, statement) => {
103
+ const sourceLiteral = statement.source;
104
+ if (sourceLiteral === null || sourceLiteral === void 0) {
105
+ return;
106
+ }
107
+ if (!hasDisallowedExtension(sourceLiteral)) {
108
+ return;
109
+ }
110
+ const fixedSource = buildFixedSource(sourceLiteral);
111
+ const fix = fixedSource === void 0
112
+ ? void 0
113
+ : (fixer) => fixer.replaceText(sourceLiteral, fixedSource);
114
+ context.report({
115
+ ...(fix !== void 0 && { fix }),
116
+ messageId: "unexpectedExtension",
117
+ node: sourceLiteral,
118
+ ...(fix !== void 0 && {
119
+ suggest: [
120
+ {
121
+ fix,
122
+ messageId: "removeExtension",
123
+ },
124
+ ],
125
+ }),
126
+ });
127
+ };
128
+ /**
129
+ * Narrows one program statement to the source-bearing declarations this rule inspects.
130
+ * @param statement Program statement node.
131
+ * @returns Source-bearing declaration when supported.
132
+ * @example
133
+ * ```typescript
134
+ * const declaration = asSourceDeclaration(statement);
135
+ * ```
136
+ */
137
+ const asSourceDeclaration = (statement) => {
138
+ if (statement.type === "ExportAllDeclaration") {
139
+ return statement;
140
+ }
141
+ if (statement.type === "ExportNamedDeclaration") {
142
+ return statement;
143
+ }
144
+ if (statement.type === "ImportDeclaration") {
145
+ return statement;
146
+ }
147
+ return void 0;
148
+ };
149
+ /** ESLint rule that forbids import/export module specifiers with explicit file extensions. */
150
+ const noImportExportExtensionsRule = {
151
+ create: (context) => ({
152
+ Program(node) {
153
+ for (const statement of node.body) {
154
+ const declaration = asSourceDeclaration(statement);
155
+ if (declaration !== void 0) {
156
+ reportWhenSourceHasExtension(context, declaration);
157
+ }
158
+ }
159
+ },
160
+ }),
161
+ meta: {
162
+ docs: {
163
+ description: "Forbid explicit file extensions in import/export module specifiers.",
164
+ recommended: false,
165
+ url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/no-import-export-extensions.md",
166
+ },
167
+ fixable: "code",
168
+ hasSuggestions: true,
169
+ messages: {
170
+ removeExtension: "Remove the file extension from this module specifier.",
171
+ unexpectedExtension: "Avoid file extensions in import/export module specifiers.",
172
+ },
173
+ schema: [],
174
+ type: "problem",
175
+ },
176
+ };
177
+ export { noImportExportExtensionsRule };
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8taW1wb3J0LWV4cG9ydC1leHRlbnNpb25zLXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9uby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnMvbm8taW1wb3J0LWV4cG9ydC1leHRlbnNpb25zLXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsMERBQTBEO0FBQzFELE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDbkMsTUFBTTtJQUNOLE1BQU07SUFDTixLQUFLO0lBQ0wsTUFBTTtJQUNOLE1BQU07SUFDTixNQUFNO0lBQ04sS0FBSztJQUNMLE1BQU07Q0FDUCxDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxNQUFjLEVBQVUsRUFBRTtJQUN0RCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQ3ZELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUN0QixDQUFDO0lBRUYsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUNwQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU07UUFDZixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLG9CQUFvQixHQUFHLENBQUMsTUFBYyxFQUFzQixFQUFFO0lBQ2xFLE1BQU0sUUFBUSxHQUFHLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQzdCLGFBQWEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQzlCLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQ2hDLENBQUM7SUFDRixNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6RCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRTNDLElBQUksUUFBUSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNoRCxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FDdkIsYUFBNkIsRUFDVCxFQUFFO0lBQ3RCLE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUM7SUFDOUIsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUVsQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekIsTUFBTSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0MsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUM3QixhQUFhLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUM5QixhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUNoQyxDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDekQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUzQyxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQixPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQzFDLENBQUMsRUFDRCxhQUFhLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUNsRCxDQUFDO0lBRUYsT0FBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxnQkFBZ0IsR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7QUFDaEYsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHNCQUFzQixHQUFHLENBQUMsYUFBNkIsRUFBVyxFQUFFO0lBQ3hFLElBQUksT0FBTyxhQUFhLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU1RCxPQUFPLFNBQVMsS0FBSyxLQUFLLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDckUsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLDRCQUE0QixHQUFHLENBQ25DLE9BQXlCLEVBQ3pCLFNBRzRCLEVBQ3RCLEVBQUU7SUFDUixNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO0lBRXZDLElBQUksYUFBYSxLQUFLLElBQUksSUFBSSxhQUFhLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxPQUFPO0lBQ1QsQ0FBQztJQUVELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQzNDLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFcEQsTUFBTSxHQUFHLEdBQ1AsV0FBVyxLQUFLLEtBQUssQ0FBQztRQUNwQixDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLENBQUMsS0FBcUIsRUFBWSxFQUFFLENBQ2xDLEtBQUssQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRXRELE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDYixHQUFHLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDOUIsU0FBUyxFQUFFLHFCQUFxQjtRQUNoQyxJQUFJLEVBQUUsYUFBYTtRQUNuQixHQUFHLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxJQUFJO1lBQ3BCLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxHQUFHO29CQUNILFNBQVMsRUFBRSxpQkFBaUI7aUJBQzdCO2FBQ0Y7U0FDRixDQUFDO0tBQ0gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQzFCLFNBQXlDLEVBSzdCLEVBQUU7SUFDZCxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssc0JBQXNCLEVBQUUsQ0FBQztRQUM5QyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLHdCQUF3QixFQUFFLENBQUM7UUFDaEQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLDhGQUE4RjtBQUM5RixNQUFNLDRCQUE0QixHQUFvQjtJQUNwRCxNQUFNLEVBQUUsQ0FBQyxPQUF5QixFQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RCxPQUFPLENBQUMsSUFBb0I7WUFDMUIsS0FBSyxNQUFNLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sV0FBVyxHQUFHLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUVuRCxJQUFJLFdBQVcsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUMzQiw0QkFBNEIsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQ3JELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztLQUNGLENBQUM7SUFDRixJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUU7WUFDSixXQUFXLEVBQ1QscUVBQXFFO1lBQ3ZFLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLEdBQUcsRUFBRSw4RkFBOEY7U0FDcEc7UUFDRCxPQUFPLEVBQUUsTUFBTTtRQUNmLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFFBQVEsRUFBRTtZQUNSLGVBQWUsRUFBRSx1REFBdUQ7WUFDeEUsbUJBQW1CLEVBQ2pCLDJEQUEyRDtTQUM5RDtRQUNELE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFNBQVM7S0FDaEI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5pbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbi8qKiBTZXQgb2YgZGlzYWxsb3dlZCBtb2R1bGUtc3BlY2lmaWVyIGZpbGUgZXh0ZW5zaW9ucy4gKi9cbmNvbnN0IGRpc2FsbG93ZWRFeHRlbnNpb25zID0gbmV3IFNldChbXG4gIFwiLmNqc1wiLFxuICBcIi5jdHNcIixcbiAgXCIuanNcIixcbiAgXCIuanN4XCIsXG4gIFwiLm1qc1wiLFxuICBcIi5tdHNcIixcbiAgXCIudHNcIixcbiAgXCIudHN4XCIsXG5dKTtcblxuLyoqXG4gKiBHZXRzIHRoZSB0cmFpbGluZyBleHRlbnNpb24gZnJvbSBhIG1vZHVsZSBzcGVjaWZpZXIgc3RyaW5nLlxuICogQHBhcmFtIHNvdXJjZSBNb2R1bGUgc3BlY2lmaWVyIHRleHQuXG4gKiBAcmV0dXJucyBGaWxlIGV4dGVuc2lvbiBpbmNsdWRpbmcgdGhlIGxlYWRpbmcgZG90IHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBleHRlbnNpb24gPSBnZXRUcmFpbGluZ0V4dGVuc2lvbihcIi4vZmVhdHVyZS50c1wiKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRTcGVjaWZpZXJFbmRJbmRleCA9IChzb3VyY2U6IHN0cmluZyk6IG51bWJlciA9PiB7XG4gIGNvbnN0IHF1ZXJ5SW5kZXggPSBzb3VyY2UuaW5kZXhPZihcIj9cIik7XG4gIGNvbnN0IGhhc2hJbmRleCA9IHNvdXJjZS5pbmRleE9mKFwiI1wiKTtcbiAgY29uc3QgZW5kSW5kZXhDYW5kaWRhdGVzID0gW3F1ZXJ5SW5kZXgsIGhhc2hJbmRleF0uZmlsdGVyKFxuICAgIChpbmRleCkgPT4gaW5kZXggPj0gMCxcbiAgKTtcblxuICByZXR1cm4gZW5kSW5kZXhDYW5kaWRhdGVzLmxlbmd0aCA9PT0gMFxuICAgID8gc291cmNlLmxlbmd0aFxuICAgIDogTWF0aC5taW4oLi4uZW5kSW5kZXhDYW5kaWRhdGVzKTtcbn07XG5cbi8qKlxuICogR2V0cyB0aGUgdHJhaWxpbmcgZXh0ZW5zaW9uIGZyb20gYSBtb2R1bGUgc3BlY2lmaWVyIHN0cmluZy5cbiAqIEBwYXJhbSBzb3VyY2UgTW9kdWxlIHNwZWNpZmllciB0ZXh0LlxuICogQHJldHVybnMgRmlsZSBleHRlbnNpb24gaW5jbHVkaW5nIHRoZSBsZWFkaW5nIGRvdCB3aGVuIHByZXNlbnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZXh0ZW5zaW9uID0gZ2V0VHJhaWxpbmdFeHRlbnNpb24oXCIuL2ZlYXR1cmUudHNcIik7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0VHJhaWxpbmdFeHRlbnNpb24gPSAoc291cmNlOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBlbmRJbmRleCA9IGdldFNwZWNpZmllckVuZEluZGV4KHNvdXJjZSk7XG4gIGNvbnN0IGNsZWFuZWRTb3VyY2UgPSBzb3VyY2Uuc2xpY2UoMCwgZW5kSW5kZXgpO1xuICBjb25zdCBsYXN0U2xhc2hJbmRleCA9IE1hdGgubWF4KFxuICAgIGNsZWFuZWRTb3VyY2UubGFzdEluZGV4T2YoXCIvXCIpLFxuICAgIGNsZWFuZWRTb3VyY2UubGFzdEluZGV4T2YoXCJcXFxcXCIpLFxuICApO1xuICBjb25zdCBiYXNlbmFtZSA9IGNsZWFuZWRTb3VyY2Uuc2xpY2UobGFzdFNsYXNoSW5kZXggKyAxKTtcbiAgY29uc3QgZG90SW5kZXggPSBiYXNlbmFtZS5sYXN0SW5kZXhPZihcIi5cIik7XG5cbiAgaWYgKGRvdEluZGV4IDw9IDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgcmV0dXJuIGJhc2VuYW1lLnNsaWNlKGRvdEluZGV4KS50b0xvd2VyQ2FzZSgpO1xufTtcblxuLyoqXG4gKiBCdWlsZHMgdGhlIGZpeGVkIHNvdXJjZSBsaXRlcmFsIHRleHQgd2l0aCB0aGUgZGlzYWxsb3dlZCBleHRlbnNpb24gcmVtb3ZlZC5cbiAqIEBwYXJhbSBzb3VyY2VMaXRlcmFsIFNvdXJjZSBsaXRlcmFsIG5vZGUgdG8gZml4LlxuICogQHJldHVybnMgRml4ZWQgc291cmNlIHRleHQgaW5jbHVkaW5nIHN1cnJvdW5kaW5nIHF1b3Rlcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaXhlZCA9IGJ1aWxkRml4ZWRTb3VyY2Uoc291cmNlTGl0ZXJhbCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgYnVpbGRGaXhlZFNvdXJjZSA9IChcbiAgc291cmNlTGl0ZXJhbDogRVNUcmVlLkxpdGVyYWwsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCByYXcgPSBzb3VyY2VMaXRlcmFsLnJhdztcbiAgY29uc3QgdmFsdWUgPSBzb3VyY2VMaXRlcmFsLnZhbHVlO1xuXG4gIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgfHwgcmF3ID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgcXVvdGVDaGFyID0gcmF3WzBdO1xuICBjb25zdCBlbmRJbmRleCA9IGdldFNwZWNpZmllckVuZEluZGV4KHZhbHVlKTtcbiAgY29uc3QgY2xlYW5lZFNvdXJjZSA9IHZhbHVlLnNsaWNlKDAsIGVuZEluZGV4KTtcbiAgY29uc3Qgc3VmZml4ID0gdmFsdWUuc2xpY2UoZW5kSW5kZXgpO1xuICBjb25zdCBsYXN0U2xhc2hJbmRleCA9IE1hdGgubWF4KFxuICAgIGNsZWFuZWRTb3VyY2UubGFzdEluZGV4T2YoXCIvXCIpLFxuICAgIGNsZWFuZWRTb3VyY2UubGFzdEluZGV4T2YoXCJcXFxcXCIpLFxuICApO1xuICBjb25zdCBiYXNlbmFtZSA9IGNsZWFuZWRTb3VyY2Uuc2xpY2UobGFzdFNsYXNoSW5kZXggKyAxKTtcbiAgY29uc3QgZG90SW5kZXggPSBiYXNlbmFtZS5sYXN0SW5kZXhPZihcIi5cIik7XG5cbiAgaWYgKGRvdEluZGV4IDw9IDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3Qgd2l0aG91dEV4dGVuc2lvbiA9IGNsZWFuZWRTb3VyY2Uuc2xpY2UoXG4gICAgMCxcbiAgICBjbGVhbmVkU291cmNlLmxlbmd0aCAtIGJhc2VuYW1lLmxlbmd0aCArIGRvdEluZGV4LFxuICApO1xuXG4gIHJldHVybiBgJHtTdHJpbmcocXVvdGVDaGFyKX0ke3dpdGhvdXRFeHRlbnNpb259JHtzdWZmaXh9JHtTdHJpbmcocXVvdGVDaGFyKX1gO1xufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIHNvdXJjZSBsaXRlcmFsIHNob3VsZCBiZSByZXBvcnRlZC5cbiAqIEBwYXJhbSBzb3VyY2VMaXRlcmFsIFNvdXJjZSBsaXRlcmFsIG5vZGUuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIHNvdXJjZSBpbmNsdWRlcyBhIGRpc2FsbG93ZWQgZmlsZSBleHRlbnNpb24uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZm9yYmlkZGVuID0gaGFzRGlzYWxsb3dlZEV4dGVuc2lvbihzb3VyY2VMaXRlcmFsKTtcbiAqIGBgYFxuICovXG5jb25zdCBoYXNEaXNhbGxvd2VkRXh0ZW5zaW9uID0gKHNvdXJjZUxpdGVyYWw6IEVTVHJlZS5MaXRlcmFsKTogYm9vbGVhbiA9PiB7XG4gIGlmICh0eXBlb2Ygc291cmNlTGl0ZXJhbC52YWx1ZSAhPT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGV4dGVuc2lvbiA9IGdldFRyYWlsaW5nRXh0ZW5zaW9uKHNvdXJjZUxpdGVyYWwudmFsdWUpO1xuXG4gIHJldHVybiBleHRlbnNpb24gIT09IHZvaWQgMCAmJiBkaXNhbGxvd2VkRXh0ZW5zaW9ucy5oYXMoZXh0ZW5zaW9uKTtcbn07XG5cbi8qKlxuICogUmVwb3J0cyBhIHN0YXRlbWVudCB3aGVuIGl0IHJlZmVyZW5jZXMgYSBzb3VyY2Ugd2l0aCBkaXNhbGxvd2VkIGV4dGVuc2lvbi5cbiAqIEBwYXJhbSBjb250ZXh0IFJ1bGUgZXhlY3V0aW9uIGNvbnRleHQuXG4gKiBAcGFyYW0gc3RhdGVtZW50IFN0YXRlbWVudCB0aGF0IG1heSBpbmNsdWRlIGEgc291cmNlIGxpdGVyYWwuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmVwb3J0V2hlblNvdXJjZUhhc0V4dGVuc2lvbihjb250ZXh0LCBzdGF0ZW1lbnQpO1xuICogYGBgXG4gKi9cbmNvbnN0IHJlcG9ydFdoZW5Tb3VyY2VIYXNFeHRlbnNpb24gPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIHN0YXRlbWVudDpcbiAgICB8IEVTVHJlZS5FeHBvcnRBbGxEZWNsYXJhdGlvblxuICAgIHwgRVNUcmVlLkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cbiAgICB8IEVTVHJlZS5JbXBvcnREZWNsYXJhdGlvbixcbik6IHZvaWQgPT4ge1xuICBjb25zdCBzb3VyY2VMaXRlcmFsID0gc3RhdGVtZW50LnNvdXJjZTtcblxuICBpZiAoc291cmNlTGl0ZXJhbCA9PT0gbnVsbCB8fCBzb3VyY2VMaXRlcmFsID09PSB2b2lkIDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoIWhhc0Rpc2FsbG93ZWRFeHRlbnNpb24oc291cmNlTGl0ZXJhbCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBmaXhlZFNvdXJjZSA9IGJ1aWxkRml4ZWRTb3VyY2Uoc291cmNlTGl0ZXJhbCk7XG5cbiAgY29uc3QgZml4ID1cbiAgICBmaXhlZFNvdXJjZSA9PT0gdm9pZCAwXG4gICAgICA/IHZvaWQgMFxuICAgICAgOiAoZml4ZXI6IFJ1bGUuUnVsZUZpeGVyKTogUnVsZS5GaXggPT5cbiAgICAgICAgICBmaXhlci5yZXBsYWNlVGV4dChzb3VyY2VMaXRlcmFsLCBmaXhlZFNvdXJjZSk7XG5cbiAgY29udGV4dC5yZXBvcnQoe1xuICAgIC4uLihmaXggIT09IHZvaWQgMCAmJiB7IGZpeCB9KSxcbiAgICBtZXNzYWdlSWQ6IFwidW5leHBlY3RlZEV4dGVuc2lvblwiLFxuICAgIG5vZGU6IHNvdXJjZUxpdGVyYWwsXG4gICAgLi4uKGZpeCAhPT0gdm9pZCAwICYmIHtcbiAgICAgIHN1Z2dlc3Q6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZpeCxcbiAgICAgICAgICBtZXNzYWdlSWQ6IFwicmVtb3ZlRXh0ZW5zaW9uXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pLFxuICB9KTtcbn07XG5cbi8qKlxuICogTmFycm93cyBvbmUgcHJvZ3JhbSBzdGF0ZW1lbnQgdG8gdGhlIHNvdXJjZS1iZWFyaW5nIGRlY2xhcmF0aW9ucyB0aGlzIHJ1bGUgaW5zcGVjdHMuXG4gKiBAcGFyYW0gc3RhdGVtZW50IFByb2dyYW0gc3RhdGVtZW50IG5vZGUuXG4gKiBAcmV0dXJucyBTb3VyY2UtYmVhcmluZyBkZWNsYXJhdGlvbiB3aGVuIHN1cHBvcnRlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBkZWNsYXJhdGlvbiA9IGFzU291cmNlRGVjbGFyYXRpb24oc3RhdGVtZW50KTtcbiAqIGBgYFxuICovXG5jb25zdCBhc1NvdXJjZURlY2xhcmF0aW9uID0gKFxuICBzdGF0ZW1lbnQ6IEVTVHJlZS5Qcm9ncmFtW1wiYm9keVwiXVtudW1iZXJdLFxuKTpcbiAgfCBFU1RyZWUuRXhwb3J0QWxsRGVjbGFyYXRpb25cbiAgfCBFU1RyZWUuRXhwb3J0TmFtZWREZWNsYXJhdGlvblxuICB8IEVTVHJlZS5JbXBvcnREZWNsYXJhdGlvblxuICB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChzdGF0ZW1lbnQudHlwZSA9PT0gXCJFeHBvcnRBbGxEZWNsYXJhdGlvblwiKSB7XG4gICAgcmV0dXJuIHN0YXRlbWVudDtcbiAgfVxuXG4gIGlmIChzdGF0ZW1lbnQudHlwZSA9PT0gXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIpIHtcbiAgICByZXR1cm4gc3RhdGVtZW50O1xuICB9XG5cbiAgaWYgKHN0YXRlbWVudC50eXBlID09PSBcIkltcG9ydERlY2xhcmF0aW9uXCIpIHtcbiAgICByZXR1cm4gc3RhdGVtZW50O1xuICB9XG5cbiAgcmV0dXJuIHZvaWQgMDtcbn07XG5cbi8qKiBFU0xpbnQgcnVsZSB0aGF0IGZvcmJpZHMgaW1wb3J0L2V4cG9ydCBtb2R1bGUgc3BlY2lmaWVycyB3aXRoIGV4cGxpY2l0IGZpbGUgZXh0ZW5zaW9ucy4gKi9cbmNvbnN0IG5vSW1wb3J0RXhwb3J0RXh0ZW5zaW9uc1J1bGU6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlOiAoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyID0+ICh7XG4gICAgUHJvZ3JhbShub2RlOiBFU1RyZWUuUHJvZ3JhbSk6IHZvaWQge1xuICAgICAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2Ygbm9kZS5ib2R5KSB7XG4gICAgICAgIGNvbnN0IGRlY2xhcmF0aW9uID0gYXNTb3VyY2VEZWNsYXJhdGlvbihzdGF0ZW1lbnQpO1xuXG4gICAgICAgIGlmIChkZWNsYXJhdGlvbiAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgcmVwb3J0V2hlblNvdXJjZUhhc0V4dGVuc2lvbihjb250ZXh0LCBkZWNsYXJhdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICB9KSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkZvcmJpZCBleHBsaWNpdCBmaWxlIGV4dGVuc2lvbnMgaW4gaW1wb3J0L2V4cG9ydCBtb2R1bGUgc3BlY2lmaWVycy5cIixcbiAgICAgIHJlY29tbWVuZGVkOiBmYWxzZSxcbiAgICAgIHVybDogXCJodHRwczovL2dpdGh1Yi5jb20vcGFybG90aS9lc2xpbnQtcGx1Z2luL2Jsb2IvbWFpbi9kb2NzL3J1bGVzL25vLWltcG9ydC1leHBvcnQtZXh0ZW5zaW9ucy5tZFwiLFxuICAgIH0sXG4gICAgZml4YWJsZTogXCJjb2RlXCIsXG4gICAgaGFzU3VnZ2VzdGlvbnM6IHRydWUsXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIHJlbW92ZUV4dGVuc2lvbjogXCJSZW1vdmUgdGhlIGZpbGUgZXh0ZW5zaW9uIGZyb20gdGhpcyBtb2R1bGUgc3BlY2lmaWVyLlwiLFxuICAgICAgdW5leHBlY3RlZEV4dGVuc2lvbjpcbiAgICAgICAgXCJBdm9pZCBmaWxlIGV4dGVuc2lvbnMgaW4gaW1wb3J0L2V4cG9ydCBtb2R1bGUgc3BlY2lmaWVycy5cIixcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogXCJwcm9ibGVtXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgeyBub0ltcG9ydEV4cG9ydEV4dGVuc2lvbnNSdWxlIH07XG4iXX0=