@codeperfect/eslint-plugin 1.0.0 → 2.1.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 (587) hide show
  1. package/README.md +26 -4
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/{custom-rules.d.ts → application/custom-rules.d.ts} +3 -0
  4. package/dist/application/custom-rules.d.ts.map +1 -0
  5. package/dist/application/custom-rules.js +74 -0
  6. package/dist/application/index.d.ts +4 -0
  7. package/dist/application/index.d.ts.map +1 -0
  8. package/dist/application/index.js +3 -0
  9. package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
  10. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts +56 -0
  11. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts.map +1 -0
  12. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +149 -0
  13. package/dist/{architecture → domain/architecture}/consistent-barrel-files/consistent-barrel-files-listeners.d.ts +4 -4
  14. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +1 -0
  15. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +98 -0
  16. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +45 -0
  17. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -0
  18. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +64 -0
  19. package/dist/{architecture → domain/architecture}/consistent-barrel-files/exports-only-rule-test-utilities.d.ts +5 -4
  20. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +1 -0
  21. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +87 -0
  22. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -0
  23. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +145 -0
  24. package/dist/domain/architecture/consistent-barrel-files/index.d.ts +5 -0
  25. package/dist/domain/architecture/consistent-barrel-files/index.d.ts.map +1 -0
  26. package/dist/domain/architecture/consistent-barrel-files/index.js +4 -0
  27. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -0
  28. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +90 -0
  29. package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts +1 -1
  30. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +1 -0
  31. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +91 -0
  32. package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts +4 -6
  33. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +1 -0
  34. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +95 -0
  35. package/dist/domain/architecture/consistent-barrel-files/rule.d.ts.map +1 -0
  36. package/dist/domain/architecture/consistent-barrel-files/rule.js +51 -0
  37. package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts +4 -0
  38. package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts.map +1 -0
  39. package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.js +4 -0
  40. package/dist/{architecture → domain/architecture}/consistent-barrel-files/test-helpers.d.ts +48 -48
  41. package/dist/domain/architecture/consistent-barrel-files/test-helpers.d.ts.map +1 -0
  42. package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts +20 -0
  43. package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts.map +1 -0
  44. package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.js +25 -0
  45. package/dist/domain/architecture/consistent-barrel-files/test-helpers.js +235 -0
  46. package/dist/domain/architecture/consistent-barrel-files/types.d.ts +19 -0
  47. package/dist/domain/architecture/consistent-barrel-files/types.d.ts.map +1 -0
  48. package/dist/domain/architecture/consistent-barrel-files/types.js +2 -0
  49. package/dist/{architecture → domain/architecture}/index.d.ts +1 -1
  50. package/dist/domain/architecture/index.d.ts.map +1 -0
  51. package/dist/domain/architecture/index.js +2 -0
  52. package/dist/{core → domain/core}/index.d.ts +2 -2
  53. package/dist/domain/core/index.d.ts.map +1 -0
  54. package/dist/domain/core/index.js +3 -0
  55. package/dist/domain/core/no-multiple-declarators/index.d.ts +2 -0
  56. package/dist/domain/core/no-multiple-declarators/index.d.ts.map +1 -0
  57. package/dist/domain/core/no-multiple-declarators/index.js +2 -0
  58. package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts +101 -0
  59. package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts.map +1 -0
  60. package/dist/domain/core/no-multiple-declarators/rule-test-helpers.js +108 -0
  61. package/dist/{core → domain/core}/no-multiple-declarators/rule.d.ts +1 -0
  62. package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -0
  63. package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts +35 -0
  64. package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts.map +1 -0
  65. package/dist/domain/core/no-multiple-declarators/rule.fixes.js +95 -0
  66. package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts +4 -0
  67. package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts.map +1 -0
  68. package/dist/domain/core/no-multiple-declarators/rule.guardrails.js +4 -0
  69. package/dist/domain/core/no-multiple-declarators/rule.js +222 -0
  70. package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts +4 -0
  71. package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts.map +1 -0
  72. package/dist/domain/core/no-multiple-declarators/rule.mocked-types.js +4 -0
  73. package/dist/domain/core/no-multiple-declarators/types.d.ts +77 -0
  74. package/dist/domain/core/no-multiple-declarators/types.d.ts.map +1 -0
  75. package/dist/domain/core/no-multiple-declarators/types.js +38 -0
  76. package/dist/domain/core/prefer-interface-types/index.d.ts +2 -0
  77. package/dist/domain/core/prefer-interface-types/index.d.ts.map +1 -0
  78. package/dist/domain/core/prefer-interface-types/index.js +2 -0
  79. package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -0
  80. package/dist/domain/core/prefer-interface-types/rule.js +148 -0
  81. package/dist/domain/core/prefer-interface-types/test-helpers.d.ts.map +1 -0
  82. package/dist/domain/core/prefer-interface-types/test-helpers.js +116 -0
  83. package/dist/{custom-rule-documentation.d.ts → domain/custom-rule-documentation.d.ts} +3 -1
  84. package/dist/domain/custom-rule-documentation.d.ts.map +1 -0
  85. package/dist/domain/custom-rule-documentation.js +36 -0
  86. package/dist/domain/docs/index.d.ts +4 -0
  87. package/dist/domain/docs/index.d.ts.map +1 -0
  88. package/dist/domain/docs/index.js +4 -0
  89. package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +1 -0
  90. package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.js +129 -0
  91. package/dist/{docs → domain/docs}/no-interface-member-docs/comment-utilities.d.ts +1 -1
  92. package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -0
  93. package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +146 -0
  94. package/dist/domain/docs/no-interface-member-docs/index.d.ts +2 -0
  95. package/dist/domain/docs/no-interface-member-docs/index.d.ts.map +1 -0
  96. package/dist/domain/docs/no-interface-member-docs/index.js +2 -0
  97. package/dist/{docs → domain/docs}/no-interface-member-docs/parameter-tags.d.ts +1 -1
  98. package/dist/domain/docs/no-interface-member-docs/parameter-tags.d.ts.map +1 -0
  99. package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +101 -0
  100. package/dist/{docs → domain/docs}/no-interface-member-docs/parameter-utilities.d.ts +1 -1
  101. package/dist/domain/docs/no-interface-member-docs/parameter-utilities.d.ts.map +1 -0
  102. package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +125 -0
  103. package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -0
  104. package/dist/domain/docs/no-interface-member-docs/rule.js +171 -0
  105. package/dist/domain/docs/no-interface-member-docs/test-helpers.d.ts.map +1 -0
  106. package/dist/{docs → domain/docs}/no-interface-member-docs/test-helpers.js +2 -2
  107. package/dist/{docs → domain/docs}/no-interface-member-docs/types.d.ts +2 -2
  108. package/dist/domain/docs/no-interface-member-docs/types.d.ts.map +1 -0
  109. package/dist/domain/docs/no-interface-member-docs/types.js +2 -0
  110. package/dist/domain/docs/require-example-language/create-fixer.d.ts +5 -0
  111. package/dist/domain/docs/require-example-language/create-fixer.d.ts.map +1 -0
  112. package/dist/domain/docs/require-example-language/create-fixer.js +5 -0
  113. package/dist/domain/docs/require-example-language/empty-fence-fixes.d.ts.map +1 -0
  114. package/dist/domain/docs/require-example-language/empty-fence-fixes.js +169 -0
  115. package/dist/domain/docs/require-example-language/example-utilities.d.ts.map +1 -0
  116. package/dist/domain/docs/require-example-language/example-utilities.js +76 -0
  117. package/dist/{docs → domain/docs}/require-example-language/examples.d.ts +1 -1
  118. package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -0
  119. package/dist/domain/docs/require-example-language/examples.js +181 -0
  120. package/dist/{docs → domain/docs}/require-example-language/fixes.d.ts +2 -2
  121. package/dist/domain/docs/require-example-language/fixes.d.ts.map +1 -0
  122. package/dist/domain/docs/require-example-language/fixes.js +182 -0
  123. package/dist/domain/docs/require-example-language/index.d.ts +3 -0
  124. package/dist/domain/docs/require-example-language/index.d.ts.map +1 -0
  125. package/dist/domain/docs/require-example-language/index.js +2 -0
  126. package/dist/{docs → domain/docs}/require-example-language/reporting.d.ts +1 -1
  127. package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -0
  128. package/dist/domain/docs/require-example-language/reporting.js +148 -0
  129. package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -0
  130. package/dist/domain/docs/require-example-language/rule.js +37 -0
  131. package/dist/domain/docs/require-example-language/types.d.ts.map +1 -0
  132. package/dist/domain/docs/require-example-language/types.js +2 -0
  133. package/dist/domain/docs/single-line-jsdoc/index.d.ts +2 -0
  134. package/dist/domain/docs/single-line-jsdoc/index.d.ts.map +1 -0
  135. package/dist/domain/docs/single-line-jsdoc/index.js +2 -0
  136. package/dist/domain/docs/single-line-jsdoc/rule.d.ts +4 -0
  137. package/dist/domain/docs/single-line-jsdoc/rule.d.ts.map +1 -0
  138. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts +4 -0
  139. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts.map +1 -0
  140. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.js +5 -0
  141. package/dist/domain/docs/single-line-jsdoc/rule.js +201 -0
  142. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts +4 -0
  143. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts.map +1 -0
  144. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.js +5 -0
  145. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +1 -0
  146. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.js +95 -0
  147. package/dist/{docs → domain/docs}/single-line-jsdoc/single-line-jsdoc-utilities.d.ts +1 -1
  148. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +1 -0
  149. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +140 -0
  150. package/dist/domain/docs/test-helpers.d.ts.map +1 -0
  151. package/dist/domain/docs/test-helpers.js +107 -0
  152. package/dist/domain/index.d.ts +6 -0
  153. package/dist/domain/index.d.ts.map +1 -0
  154. package/dist/domain/index.js +6 -0
  155. package/dist/domain/testing/aaa/analyzer.analysis.d.ts +34 -0
  156. package/dist/domain/testing/aaa/analyzer.analysis.d.ts.map +1 -0
  157. package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts +145 -0
  158. package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -0
  159. package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +203 -0
  160. package/dist/domain/testing/aaa/analyzer.analysis.js +82 -0
  161. package/dist/domain/testing/aaa/analyzer.analysis.unsupported.d.ts +4 -0
  162. package/dist/domain/testing/aaa/analyzer.analysis.unsupported.d.ts.map +1 -0
  163. package/dist/domain/testing/aaa/analyzer.analysis.unsupported.js +4 -0
  164. package/dist/domain/testing/aaa/analyzer.assertions.d.ts +18 -0
  165. package/dist/domain/testing/aaa/analyzer.assertions.d.ts.map +1 -0
  166. package/dist/domain/testing/aaa/analyzer.assertions.destructured.d.ts +4 -0
  167. package/dist/domain/testing/aaa/analyzer.assertions.destructured.d.ts.map +1 -0
  168. package/dist/domain/testing/aaa/analyzer.assertions.destructured.js +4 -0
  169. package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts +95 -0
  170. package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -0
  171. package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +185 -0
  172. package/dist/domain/testing/aaa/analyzer.assertions.js +33 -0
  173. package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts +64 -0
  174. package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts.map +1 -0
  175. package/dist/domain/testing/aaa/analyzer.assertions.operands.js +105 -0
  176. package/dist/domain/testing/aaa/analyzer.classification.d.ts +16 -0
  177. package/dist/domain/testing/aaa/analyzer.classification.d.ts.map +1 -0
  178. package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts +77 -0
  179. package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts.map +1 -0
  180. package/dist/domain/testing/aaa/analyzer.classification.helpers.js +203 -0
  181. package/dist/domain/testing/aaa/analyzer.classification.js +31 -0
  182. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts +9 -0
  183. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts.map +1 -0
  184. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.js +10 -0
  185. package/dist/domain/testing/aaa/analyzer.classification.mutations.d.ts +4 -0
  186. package/dist/domain/testing/aaa/analyzer.classification.mutations.d.ts.map +1 -0
  187. package/dist/domain/testing/aaa/analyzer.classification.mutations.js +4 -0
  188. package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts +15 -0
  189. package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts.map +1 -0
  190. package/dist/domain/testing/aaa/analyzer.classification.traversal.js +34 -0
  191. package/dist/domain/testing/aaa/analyzer.d.ts +46 -0
  192. package/dist/domain/testing/aaa/analyzer.d.ts.map +1 -0
  193. package/dist/domain/testing/aaa/analyzer.js +59 -0
  194. package/dist/domain/testing/aaa/analyzer.super.d.ts +106 -0
  195. package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -0
  196. package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts +27 -0
  197. package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts.map +1 -0
  198. package/dist/domain/testing/aaa/analyzer.super.helpers.js +66 -0
  199. package/dist/domain/testing/aaa/analyzer.super.js +211 -0
  200. package/dist/{testing → domain/testing}/aaa/index.d.ts +2 -2
  201. package/dist/domain/testing/aaa/index.d.ts.map +1 -0
  202. package/dist/domain/testing/aaa/index.js +2 -0
  203. package/dist/domain/testing/aaa/types.d.ts +58 -0
  204. package/dist/domain/testing/aaa/types.d.ts.map +1 -0
  205. package/dist/domain/testing/aaa/types.js +2 -0
  206. package/dist/domain/testing/assert-actual-expected-names/index.d.ts +2 -0
  207. package/dist/domain/testing/assert-actual-expected-names/index.d.ts.map +1 -0
  208. package/dist/domain/testing/assert-actual-expected-names/index.js +2 -0
  209. package/dist/{testing → domain/testing}/assert-actual-expected-names/rule.d.ts +1 -0
  210. package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -0
  211. package/dist/domain/testing/assert-actual-expected-names/rule.js +116 -0
  212. package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts +2 -0
  213. package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts.map +1 -0
  214. package/dist/domain/testing/enforce-aaa-phase-purity/index.js +2 -0
  215. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts +13 -0
  216. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -0
  217. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +134 -0
  218. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts +25 -0
  219. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts.map +1 -0
  220. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.js +138 -0
  221. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.d.ts +4 -0
  222. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.d.ts.map +1 -0
  223. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.js +4 -0
  224. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.d.ts +4 -0
  225. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.d.ts.map +1 -0
  226. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.js +4 -0
  227. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts +4 -0
  228. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts.map +1 -0
  229. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.js +4 -0
  230. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts +14 -0
  231. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts.map +1 -0
  232. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.js +180 -0
  233. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts +42 -0
  234. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts.map +1 -0
  235. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.js +188 -0
  236. package/dist/{testing → domain/testing}/enforce-aaa-phase-purity/rule.d.ts +1 -0
  237. package/dist/domain/testing/enforce-aaa-phase-purity/rule.d.ts.map +1 -0
  238. package/dist/domain/testing/enforce-aaa-phase-purity/rule.js +37 -0
  239. package/dist/domain/testing/enforce-aaa-structure/index.d.ts +2 -0
  240. package/dist/domain/testing/enforce-aaa-structure/index.d.ts.map +1 -0
  241. package/dist/domain/testing/enforce-aaa-structure/index.js +2 -0
  242. package/dist/{testing → domain/testing}/enforce-aaa-structure/rule.d.ts +1 -0
  243. package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -0
  244. package/dist/domain/testing/enforce-aaa-structure/rule.js +88 -0
  245. package/dist/{testing → domain/testing}/index.d.ts +9 -8
  246. package/dist/domain/testing/index.d.ts.map +1 -0
  247. package/dist/domain/testing/index.js +10 -0
  248. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts +29 -0
  249. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts.map +1 -0
  250. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.js +90 -0
  251. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts +31 -0
  252. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts.map +1 -0
  253. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.js +43 -0
  254. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts +16 -0
  255. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts.map +1 -0
  256. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +205 -0
  257. package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts +28 -0
  258. package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts.map +1 -0
  259. package/dist/domain/testing/prefer-vi-mocked-import/fix.js +171 -0
  260. package/dist/domain/testing/prefer-vi-mocked-import/index.d.ts +2 -0
  261. package/dist/domain/testing/prefer-vi-mocked-import/index.d.ts.map +1 -0
  262. package/dist/domain/testing/prefer-vi-mocked-import/index.js +2 -0
  263. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-bindings.d.ts +1 -1
  264. package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +1 -0
  265. package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.js +52 -0
  266. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-declarations.d.ts +2 -1
  267. package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +1 -0
  268. package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.js +131 -0
  269. package/dist/domain/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +1 -0
  270. package/dist/domain/testing/prefer-vi-mocked-import/match-helpers.js +102 -0
  271. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-imports.d.ts +1 -1
  272. package/dist/domain/testing/prefer-vi-mocked-import/match-imports.d.ts.map +1 -0
  273. package/dist/domain/testing/prefer-vi-mocked-import/match-imports.js +156 -0
  274. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-rewrites.d.ts +1 -1
  275. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +1 -0
  276. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +119 -0
  277. package/dist/domain/testing/prefer-vi-mocked-import/match-walk.d.ts.map +1 -0
  278. package/dist/domain/testing/prefer-vi-mocked-import/match-walk.js +62 -0
  279. package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts +26 -0
  280. package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -0
  281. package/dist/domain/testing/prefer-vi-mocked-import/match.js +198 -0
  282. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts +20 -0
  283. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts.map +1 -0
  284. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.js +39 -0
  285. package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -0
  286. package/dist/domain/testing/prefer-vi-mocked-import/rule.js +39 -0
  287. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/types.d.ts +1 -1
  288. package/dist/domain/testing/prefer-vi-mocked-import/types.d.ts.map +1 -0
  289. package/dist/domain/testing/prefer-vi-mocked-import/types.js +2 -0
  290. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts +97 -0
  291. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts.map +1 -0
  292. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.js +174 -0
  293. package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts +2 -0
  294. package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts.map +1 -0
  295. package/dist/domain/testing/prefer-vitest-incremental-casts/index.js +2 -0
  296. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts +14 -0
  297. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts.map +1 -0
  298. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.js +84 -0
  299. package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts +13 -0
  300. package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts.map +1 -0
  301. package/dist/domain/testing/prefer-vitest-incremental-casts/match.js +195 -0
  302. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts +25 -0
  303. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts.map +1 -0
  304. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.js +96 -0
  305. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts +32 -0
  306. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts.map +1 -0
  307. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.js +164 -0
  308. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts +5 -0
  309. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts.map +1 -0
  310. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts +4 -0
  311. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts.map +1 -0
  312. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.js +4 -0
  313. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts +4 -0
  314. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts.map +1 -0
  315. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.js +4 -0
  316. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.js +88 -0
  317. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts +4 -0
  318. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts.map +1 -0
  319. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.js +4 -0
  320. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts +24 -0
  321. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts.map +1 -0
  322. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.js +113 -0
  323. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts +36 -0
  324. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts.map +1 -0
  325. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.js +138 -0
  326. package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts +187 -0
  327. package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts.map +1 -0
  328. package/dist/domain/testing/prefer-vitest-incremental-casts/types.js +2 -0
  329. package/dist/domain/testing/require-aaa-sections/index.d.ts +2 -0
  330. package/dist/domain/testing/require-aaa-sections/index.d.ts.map +1 -0
  331. package/dist/domain/testing/require-aaa-sections/index.js +2 -0
  332. package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts +17 -0
  333. package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts.map +1 -0
  334. package/dist/domain/testing/require-aaa-sections/missing-section-fixes.js +150 -0
  335. package/dist/{testing → domain/testing}/require-aaa-sections/rule.d.ts +1 -0
  336. package/dist/domain/testing/require-aaa-sections/rule.d.ts.map +1 -0
  337. package/dist/domain/testing/require-aaa-sections/rule.js +134 -0
  338. package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts +104 -0
  339. package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts.map +1 -0
  340. package/dist/domain/testing/require-aaa-sections/rule.reporting.js +216 -0
  341. package/dist/domain/testing/require-act-result-capture/index.d.ts +2 -0
  342. package/dist/domain/testing/require-act-result-capture/index.d.ts.map +1 -0
  343. package/dist/domain/testing/require-act-result-capture/index.js +2 -0
  344. package/dist/{testing → domain/testing}/require-act-result-capture/rule.d.ts +1 -0
  345. package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -0
  346. package/dist/domain/testing/require-act-result-capture/rule.js +109 -0
  347. package/dist/domain/testing/require-test-companion/index.d.ts +3 -0
  348. package/dist/domain/testing/require-test-companion/index.d.ts.map +1 -0
  349. package/dist/domain/testing/require-test-companion/index.js +3 -0
  350. package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-listeners.d.ts +1 -1
  351. package/dist/domain/testing/require-test-companion/require-test-companion-listeners.d.ts.map +1 -0
  352. package/dist/domain/testing/require-test-companion/require-test-companion-listeners.js +145 -0
  353. package/dist/domain/testing/require-test-companion/require-test-companion-options.d.ts.map +1 -0
  354. package/dist/domain/testing/require-test-companion/require-test-companion-options.js +113 -0
  355. package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-test-helpers.d.ts +1 -1
  356. package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +1 -0
  357. package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.js +184 -0
  358. package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-utilities.d.ts +1 -1
  359. package/dist/domain/testing/require-test-companion/require-test-companion-utilities.d.ts.map +1 -0
  360. package/dist/domain/testing/require-test-companion/require-test-companion-utilities.js +26 -0
  361. package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -0
  362. package/dist/domain/testing/require-test-companion/rule.js +82 -0
  363. package/dist/domain/testing/require-test-companion/types.d.ts.map +1 -0
  364. package/dist/domain/testing/require-test-companion/types.js +2 -0
  365. package/dist/domain/testing/single-act-statement/index.d.ts +2 -0
  366. package/dist/domain/testing/single-act-statement/index.d.ts.map +1 -0
  367. package/dist/domain/testing/single-act-statement/index.js +2 -0
  368. package/dist/{testing → domain/testing}/single-act-statement/rule.d.ts +1 -0
  369. package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -0
  370. package/dist/domain/testing/single-act-statement/rule.js +37 -0
  371. package/dist/index.d.ts +4 -5
  372. package/dist/index.d.ts.map +1 -1
  373. package/dist/index.js +3 -6
  374. package/dist/{codeperfect-plugin.d.ts → infrastructure/codeperfect-plugin.d.ts} +2 -0
  375. package/dist/infrastructure/codeperfect-plugin.d.ts.map +1 -0
  376. package/dist/infrastructure/codeperfect-plugin.js +30 -0
  377. package/dist/infrastructure/index.d.ts +5 -0
  378. package/dist/infrastructure/index.d.ts.map +1 -0
  379. package/dist/infrastructure/index.js +4 -0
  380. package/dist/infrastructure/presets.d.ts +18 -0
  381. package/dist/infrastructure/presets.d.ts.map +1 -0
  382. package/dist/infrastructure/presets.js +81 -0
  383. package/package.json +67 -32
  384. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +0 -1
  385. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +0 -131
  386. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +0 -48
  387. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +0 -1
  388. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.js +0 -126
  389. package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +0 -1
  390. package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +0 -90
  391. package/dist/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +0 -1
  392. package/dist/architecture/consistent-barrel-files/exports-only-rule.js +0 -218
  393. package/dist/architecture/consistent-barrel-files/index.d.ts +0 -5
  394. package/dist/architecture/consistent-barrel-files/index.d.ts.map +0 -1
  395. package/dist/architecture/consistent-barrel-files/index.js +0 -4
  396. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +0 -1
  397. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +0 -100
  398. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +0 -1
  399. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +0 -90
  400. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +0 -1
  401. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +0 -154
  402. package/dist/architecture/consistent-barrel-files/rule.d.ts.map +0 -1
  403. package/dist/architecture/consistent-barrel-files/rule.js +0 -58
  404. package/dist/architecture/consistent-barrel-files/test-helpers.d.ts.map +0 -1
  405. package/dist/architecture/consistent-barrel-files/test-helpers.js +0 -229
  406. package/dist/architecture/consistent-barrel-files/types.d.ts +0 -25
  407. package/dist/architecture/consistent-barrel-files/types.d.ts.map +0 -1
  408. package/dist/architecture/consistent-barrel-files/types.js +0 -2
  409. package/dist/architecture/index.d.ts.map +0 -1
  410. package/dist/architecture/index.js +0 -2
  411. package/dist/benchmark-rules.d.ts +0 -83
  412. package/dist/benchmark-rules.d.ts.map +0 -1
  413. package/dist/benchmark-rules.js +0 -175
  414. package/dist/codeperfect-plugin.d.ts.map +0 -1
  415. package/dist/codeperfect-plugin.js +0 -29
  416. package/dist/core/index.d.ts.map +0 -1
  417. package/dist/core/index.js +0 -3
  418. package/dist/core/no-multiple-declarators/index.d.ts +0 -2
  419. package/dist/core/no-multiple-declarators/index.d.ts.map +0 -1
  420. package/dist/core/no-multiple-declarators/index.js +0 -2
  421. package/dist/core/no-multiple-declarators/rule.d.ts.map +0 -1
  422. package/dist/core/no-multiple-declarators/rule.js +0 -100
  423. package/dist/core/prefer-interface-types/index.d.ts +0 -2
  424. package/dist/core/prefer-interface-types/index.d.ts.map +0 -1
  425. package/dist/core/prefer-interface-types/index.js +0 -2
  426. package/dist/core/prefer-interface-types/rule.d.ts.map +0 -1
  427. package/dist/core/prefer-interface-types/rule.js +0 -145
  428. package/dist/core/prefer-interface-types/test-helpers.d.ts.map +0 -1
  429. package/dist/core/prefer-interface-types/test-helpers.js +0 -116
  430. package/dist/custom-rule-documentation.d.ts.map +0 -1
  431. package/dist/custom-rule-documentation.js +0 -35
  432. package/dist/custom-rules.d.ts.map +0 -1
  433. package/dist/custom-rules.js +0 -70
  434. package/dist/docs/index.d.ts +0 -4
  435. package/dist/docs/index.d.ts.map +0 -1
  436. package/dist/docs/index.js +0 -4
  437. package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +0 -1
  438. package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.js +0 -129
  439. package/dist/docs/no-interface-member-docs/comment-utilities.d.ts.map +0 -1
  440. package/dist/docs/no-interface-member-docs/comment-utilities.js +0 -146
  441. package/dist/docs/no-interface-member-docs/index.d.ts +0 -2
  442. package/dist/docs/no-interface-member-docs/index.d.ts.map +0 -1
  443. package/dist/docs/no-interface-member-docs/index.js +0 -2
  444. package/dist/docs/no-interface-member-docs/parameter-tags.d.ts.map +0 -1
  445. package/dist/docs/no-interface-member-docs/parameter-tags.js +0 -101
  446. package/dist/docs/no-interface-member-docs/parameter-utilities.d.ts.map +0 -1
  447. package/dist/docs/no-interface-member-docs/parameter-utilities.js +0 -125
  448. package/dist/docs/no-interface-member-docs/rule.d.ts.map +0 -1
  449. package/dist/docs/no-interface-member-docs/rule.js +0 -168
  450. package/dist/docs/no-interface-member-docs/test-helpers.d.ts.map +0 -1
  451. package/dist/docs/no-interface-member-docs/types.d.ts.map +0 -1
  452. package/dist/docs/no-interface-member-docs/types.js +0 -2
  453. package/dist/docs/require-example-language/empty-fence-fixes.d.ts.map +0 -1
  454. package/dist/docs/require-example-language/empty-fence-fixes.js +0 -169
  455. package/dist/docs/require-example-language/example-utilities.d.ts.map +0 -1
  456. package/dist/docs/require-example-language/example-utilities.js +0 -76
  457. package/dist/docs/require-example-language/examples.d.ts.map +0 -1
  458. package/dist/docs/require-example-language/examples.js +0 -181
  459. package/dist/docs/require-example-language/fixes.d.ts.map +0 -1
  460. package/dist/docs/require-example-language/fixes.js +0 -182
  461. package/dist/docs/require-example-language/index.d.ts +0 -3
  462. package/dist/docs/require-example-language/index.d.ts.map +0 -1
  463. package/dist/docs/require-example-language/index.js +0 -2
  464. package/dist/docs/require-example-language/reporting.d.ts.map +0 -1
  465. package/dist/docs/require-example-language/reporting.js +0 -145
  466. package/dist/docs/require-example-language/rule.d.ts.map +0 -1
  467. package/dist/docs/require-example-language/rule.js +0 -34
  468. package/dist/docs/require-example-language/types.d.ts.map +0 -1
  469. package/dist/docs/require-example-language/types.js +0 -2
  470. package/dist/docs/single-line-jsdoc/index.d.ts +0 -2
  471. package/dist/docs/single-line-jsdoc/index.d.ts.map +0 -1
  472. package/dist/docs/single-line-jsdoc/index.js +0 -2
  473. package/dist/docs/single-line-jsdoc/rule.d.ts +0 -5
  474. package/dist/docs/single-line-jsdoc/rule.d.ts.map +0 -1
  475. package/dist/docs/single-line-jsdoc/rule.js +0 -196
  476. package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +0 -1
  477. package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.js +0 -95
  478. package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +0 -1
  479. package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +0 -140
  480. package/dist/docs/test-helpers.d.ts.map +0 -1
  481. package/dist/docs/test-helpers.js +0 -107
  482. package/dist/presets.d.ts +0 -10
  483. package/dist/presets.d.ts.map +0 -1
  484. package/dist/presets.js +0 -50
  485. package/dist/rules/index.d.ts +0 -5
  486. package/dist/rules/index.d.ts.map +0 -1
  487. package/dist/rules/index.js +0 -6
  488. package/dist/testing/aaa/analyzer.d.ts +0 -36
  489. package/dist/testing/aaa/analyzer.d.ts.map +0 -1
  490. package/dist/testing/aaa/analyzer.js +0 -490
  491. package/dist/testing/aaa/index.d.ts.map +0 -1
  492. package/dist/testing/aaa/index.js +0 -2
  493. package/dist/testing/aaa/types.d.ts +0 -31
  494. package/dist/testing/aaa/types.d.ts.map +0 -1
  495. package/dist/testing/aaa/types.js +0 -2
  496. package/dist/testing/assert-actual-expected-names/index.d.ts +0 -2
  497. package/dist/testing/assert-actual-expected-names/index.d.ts.map +0 -1
  498. package/dist/testing/assert-actual-expected-names/index.js +0 -2
  499. package/dist/testing/assert-actual-expected-names/rule.d.ts.map +0 -1
  500. package/dist/testing/assert-actual-expected-names/rule.js +0 -54
  501. package/dist/testing/enforce-aaa-phase-purity/index.d.ts +0 -2
  502. package/dist/testing/enforce-aaa-phase-purity/index.d.ts.map +0 -1
  503. package/dist/testing/enforce-aaa-phase-purity/index.js +0 -2
  504. package/dist/testing/enforce-aaa-phase-purity/rule.d.ts.map +0 -1
  505. package/dist/testing/enforce-aaa-phase-purity/rule.js +0 -110
  506. package/dist/testing/enforce-aaa-structure/index.d.ts +0 -2
  507. package/dist/testing/enforce-aaa-structure/index.d.ts.map +0 -1
  508. package/dist/testing/enforce-aaa-structure/index.js +0 -2
  509. package/dist/testing/enforce-aaa-structure/rule.d.ts.map +0 -1
  510. package/dist/testing/enforce-aaa-structure/rule.js +0 -48
  511. package/dist/testing/index.d.ts.map +0 -1
  512. package/dist/testing/index.js +0 -9
  513. package/dist/testing/prefer-vi-mocked-import/fix.d.ts +0 -16
  514. package/dist/testing/prefer-vi-mocked-import/fix.d.ts.map +0 -1
  515. package/dist/testing/prefer-vi-mocked-import/fix.js +0 -224
  516. package/dist/testing/prefer-vi-mocked-import/index.d.ts +0 -2
  517. package/dist/testing/prefer-vi-mocked-import/index.d.ts.map +0 -1
  518. package/dist/testing/prefer-vi-mocked-import/index.js +0 -2
  519. package/dist/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +0 -1
  520. package/dist/testing/prefer-vi-mocked-import/match-bindings.js +0 -52
  521. package/dist/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +0 -1
  522. package/dist/testing/prefer-vi-mocked-import/match-declarations.js +0 -99
  523. package/dist/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +0 -1
  524. package/dist/testing/prefer-vi-mocked-import/match-helpers.js +0 -102
  525. package/dist/testing/prefer-vi-mocked-import/match-imports.d.ts.map +0 -1
  526. package/dist/testing/prefer-vi-mocked-import/match-imports.js +0 -156
  527. package/dist/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +0 -1
  528. package/dist/testing/prefer-vi-mocked-import/match-rewrites.js +0 -119
  529. package/dist/testing/prefer-vi-mocked-import/match-walk.d.ts.map +0 -1
  530. package/dist/testing/prefer-vi-mocked-import/match-walk.js +0 -62
  531. package/dist/testing/prefer-vi-mocked-import/match.d.ts +0 -15
  532. package/dist/testing/prefer-vi-mocked-import/match.d.ts.map +0 -1
  533. package/dist/testing/prefer-vi-mocked-import/match.js +0 -193
  534. package/dist/testing/prefer-vi-mocked-import/rule.d.ts.map +0 -1
  535. package/dist/testing/prefer-vi-mocked-import/rule.js +0 -32
  536. package/dist/testing/prefer-vi-mocked-import/types.d.ts.map +0 -1
  537. package/dist/testing/prefer-vi-mocked-import/types.js +0 -2
  538. package/dist/testing/require-aaa-sections/index.d.ts +0 -2
  539. package/dist/testing/require-aaa-sections/index.d.ts.map +0 -1
  540. package/dist/testing/require-aaa-sections/index.js +0 -2
  541. package/dist/testing/require-aaa-sections/rule.d.ts.map +0 -1
  542. package/dist/testing/require-aaa-sections/rule.js +0 -111
  543. package/dist/testing/require-act-result-capture/index.d.ts +0 -2
  544. package/dist/testing/require-act-result-capture/index.d.ts.map +0 -1
  545. package/dist/testing/require-act-result-capture/index.js +0 -2
  546. package/dist/testing/require-act-result-capture/rule.d.ts.map +0 -1
  547. package/dist/testing/require-act-result-capture/rule.js +0 -34
  548. package/dist/testing/require-test-companion/index.d.ts +0 -3
  549. package/dist/testing/require-test-companion/index.d.ts.map +0 -1
  550. package/dist/testing/require-test-companion/index.js +0 -3
  551. package/dist/testing/require-test-companion/require-test-companion-listeners.d.ts.map +0 -1
  552. package/dist/testing/require-test-companion/require-test-companion-listeners.js +0 -145
  553. package/dist/testing/require-test-companion/require-test-companion-options.d.ts.map +0 -1
  554. package/dist/testing/require-test-companion/require-test-companion-options.js +0 -112
  555. package/dist/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +0 -1
  556. package/dist/testing/require-test-companion/require-test-companion-test-helpers.js +0 -183
  557. package/dist/testing/require-test-companion/require-test-companion-utilities.d.ts.map +0 -1
  558. package/dist/testing/require-test-companion/require-test-companion-utilities.js +0 -26
  559. package/dist/testing/require-test-companion/rule.d.ts.map +0 -1
  560. package/dist/testing/require-test-companion/rule.js +0 -57
  561. package/dist/testing/require-test-companion/types.d.ts.map +0 -1
  562. package/dist/testing/require-test-companion/types.js +0 -2
  563. package/dist/testing/single-act-statement/index.d.ts +0 -2
  564. package/dist/testing/single-act-statement/index.d.ts.map +0 -1
  565. package/dist/testing/single-act-statement/index.js +0 -2
  566. package/dist/testing/single-act-statement/rule.d.ts.map +0 -1
  567. package/dist/testing/single-act-statement/rule.js +0 -33
  568. /package/dist/{architecture → domain/architecture}/consistent-barrel-files/exports-only-rule.d.ts +0 -0
  569. /package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts +0 -0
  570. /package/dist/{architecture → domain/architecture}/consistent-barrel-files/rule.d.ts +0 -0
  571. /package/dist/{core → domain/core}/prefer-interface-types/rule.d.ts +0 -0
  572. /package/dist/{core → domain/core}/prefer-interface-types/test-helpers.d.ts +0 -0
  573. /package/dist/{docs → domain/docs}/no-interface-member-docs/comment-utilities-test-helpers.d.ts +0 -0
  574. /package/dist/{docs → domain/docs}/no-interface-member-docs/rule.d.ts +0 -0
  575. /package/dist/{docs → domain/docs}/no-interface-member-docs/test-helpers.d.ts +0 -0
  576. /package/dist/{docs → domain/docs}/require-example-language/empty-fence-fixes.d.ts +0 -0
  577. /package/dist/{docs → domain/docs}/require-example-language/example-utilities.d.ts +0 -0
  578. /package/dist/{docs → domain/docs}/require-example-language/rule.d.ts +0 -0
  579. /package/dist/{docs → domain/docs}/require-example-language/types.d.ts +0 -0
  580. /package/dist/{docs → domain/docs}/single-line-jsdoc/single-line-jsdoc-content.d.ts +0 -0
  581. /package/dist/{docs → domain/docs}/test-helpers.d.ts +0 -0
  582. /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-helpers.d.ts +0 -0
  583. /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-walk.d.ts +0 -0
  584. /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/rule.d.ts +0 -0
  585. /package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-options.d.ts +0 -0
  586. /package/dist/{testing → domain/testing}/require-test-companion/rule.d.ts +0 -0
  587. /package/dist/{testing → domain/testing}/require-test-companion/types.d.ts +0 -0
@@ -0,0 +1,235 @@
1
+ import { mkdirSync, mkdtempSync } from "node:fs";
2
+ import path from "node:path";
3
+ import { cwd } from "node:process";
4
+ /**
5
+ * Creates a temporary repo directory for test fixtures.
6
+ * @param root Root folder to create the temporary directory under.
7
+ * @returns The generated temporary directory path.
8
+ * @example
9
+ * ```typescript
10
+ * const directory = createRepoDirectory("tmp");
11
+ * ```
12
+ */
13
+ const createRepoDirectory = (root) => {
14
+ const baseDirectory = path.join(cwd(), root);
15
+ mkdirSync(baseDirectory, { recursive: true });
16
+ return mkdtempSync(path.join(baseDirectory, "barrel-files-"));
17
+ };
18
+ /**
19
+ * Wraps statements in a program node for SourceCode construction.
20
+ * @param body Program body statements.
21
+ * @returns The AST program wrapper.
22
+ * @example
23
+ * ```typescript
24
+ * const program = createProgram([]);
25
+ * ```
26
+ */
27
+ const createProgram = (body) => ({
28
+ body,
29
+ comments: [],
30
+ loc: { end: { column: 0, line: 1 }, start: { column: 0, line: 1 } },
31
+ range: [0, 0],
32
+ sourceType: "module",
33
+ tokens: [],
34
+ type: "Program",
35
+ });
36
+ /**
37
+ * Creates a string literal node for import and export statements.
38
+ * @param value Literal value to wrap.
39
+ * @returns The ESTree literal node.
40
+ * @example
41
+ * ```typescript
42
+ * const literal = createLiteral("./feature");
43
+ * ```
44
+ */
45
+ const createLiteral = (value) => ({ raw: `'${value}'`, type: "Literal", value });
46
+ /**
47
+ * Converts a raw symbol name into the ESTree shape used by the fixture factories.
48
+ * @param name Raw symbol text to encode in the AST node.
49
+ * @returns An ESTree Identifier carrying the supplied symbol text.
50
+ * @example
51
+ * ```typescript
52
+ * const identifier = createIdentifier("feature");
53
+ * ```
54
+ */
55
+ const createIdentifier = (name) => ({ name, type: "Identifier" });
56
+ /**
57
+ * Creates an export specifier node.
58
+ * @param localName Local identifier name.
59
+ * @param exportedName Exported identifier name.
60
+ * @returns The ESTree export specifier.
61
+ * @example
62
+ * ```typescript
63
+ * const specifier = createExportSpecifier("feature");
64
+ * ```
65
+ */
66
+ const createExportSpecifier = (localName, exportedName = localName) => ({
67
+ exported: createIdentifier(exportedName),
68
+ local: createIdentifier(localName),
69
+ type: "ExportSpecifier",
70
+ });
71
+ /**
72
+ * Creates an import specifier node.
73
+ * @param localName Local identifier name.
74
+ * @param importedName Imported identifier name.
75
+ * @returns The ESTree import specifier.
76
+ * @example
77
+ * ```typescript
78
+ * const specifier = createImportSpecifier("feature");
79
+ * ```
80
+ */
81
+ const createImportSpecifier = (localName, importedName = localName) => ({
82
+ imported: createIdentifier(importedName),
83
+ local: createIdentifier(localName),
84
+ type: "ImportSpecifier",
85
+ });
86
+ /**
87
+ * Creates an import default specifier node.
88
+ * @param localName Local identifier name.
89
+ * @returns The ESTree default import specifier.
90
+ * @example
91
+ * ```typescript
92
+ * const specifier = createImportDefaultSpecifier("feature");
93
+ * ```
94
+ */
95
+ const createImportDefaultSpecifier = (localName) => ({
96
+ local: createIdentifier(localName),
97
+ type: "ImportDefaultSpecifier",
98
+ });
99
+ /**
100
+ * Creates an import declaration for fixture programs.
101
+ * @param specifiers Import specifiers to include.
102
+ * @returns The ESTree import declaration.
103
+ * @example
104
+ * ```typescript
105
+ * const declaration = createImportDeclaration();
106
+ * ```
107
+ */
108
+ const createImportDeclaration = (specifiers = []) => ({
109
+ attributes: [],
110
+ source: createLiteral("./feature"),
111
+ specifiers,
112
+ type: "ImportDeclaration",
113
+ });
114
+ /**
115
+ * Creates an export-all declaration for fixture programs.
116
+ * @returns The ESTree export-all declaration.
117
+ * @example
118
+ * ```typescript
119
+ * const declaration = createExportAll();
120
+ * ```
121
+ */
122
+ const createExportAll = () => ({
123
+ attributes: [],
124
+ exported: createIdentifier("all"),
125
+ source: createLiteral("./feature"),
126
+ type: "ExportAllDeclaration",
127
+ });
128
+ /**
129
+ * Creates an export-from declaration for fixture programs.
130
+ * @returns The ESTree named export declaration.
131
+ * @example
132
+ * ```typescript
133
+ * const declaration = createExportNamedFrom();
134
+ * ```
135
+ */
136
+ const createExportNamedFrom = () => ({
137
+ attributes: [],
138
+ source: createLiteral("./feature"),
139
+ specifiers: [],
140
+ type: "ExportNamedDeclaration",
141
+ });
142
+ /**
143
+ * Creates an export declaration with an inline variable declaration.
144
+ * @returns The ESTree named export declaration.
145
+ * @example
146
+ * ```typescript
147
+ * const declaration = createExportWithDeclaration();
148
+ * ```
149
+ */
150
+ const createExportWithDeclaration = () => {
151
+ const declaration = {
152
+ declarations: [],
153
+ kind: "const",
154
+ type: "VariableDeclaration",
155
+ };
156
+ return {
157
+ attributes: [],
158
+ declaration,
159
+ specifiers: [],
160
+ type: "ExportNamedDeclaration",
161
+ };
162
+ };
163
+ /**
164
+ * Creates an exported interface declaration for tests.
165
+ * @returns The exported interface declaration node.
166
+ * @example
167
+ * ```typescript
168
+ * const declaration = createExportInterfaceDeclaration();
169
+ * ```
170
+ */
171
+ const createExportInterfaceDeclaration = () => ({
172
+ declaration: {
173
+ body: { body: [], type: "TSInterfaceBody" },
174
+ id: createIdentifier("Feature"),
175
+ type: "TSInterfaceDeclaration",
176
+ },
177
+ specifiers: [],
178
+ type: "ExportNamedDeclaration",
179
+ });
180
+ /**
181
+ * Creates an exported type alias declaration for tests.
182
+ * @returns The exported type alias declaration node.
183
+ * @example
184
+ * ```typescript
185
+ * const declaration = createExportTypeAliasDeclaration();
186
+ * ```
187
+ */
188
+ const createExportTypeAliasDeclaration = () => ({
189
+ declaration: {
190
+ id: createIdentifier("Feature"),
191
+ type: "TSTypeAliasDeclaration",
192
+ typeAnnotation: { type: "TSStringKeyword" },
193
+ },
194
+ specifiers: [],
195
+ type: "ExportNamedDeclaration",
196
+ });
197
+ /**
198
+ * Creates a named export without a source value.
199
+ * @param specifiers Export specifiers to include.
200
+ * @returns The ESTree named export declaration.
201
+ * @example
202
+ * ```typescript
203
+ * const declaration = createExportWithoutSource();
204
+ * ```
205
+ */
206
+ const createExportWithoutSource = (specifiers = []) => ({
207
+ attributes: [],
208
+ specifiers,
209
+ type: "ExportNamedDeclaration",
210
+ });
211
+ /**
212
+ * Creates a default export declaration for an identifier.
213
+ * @param name Identifier to export.
214
+ * @returns The ESTree default export declaration.
215
+ * @example
216
+ * ```typescript
217
+ * const declaration = createExportDefaultIdentifier("feature");
218
+ * ```
219
+ */
220
+ const createExportDefaultIdentifier = (name) => ({
221
+ declaration: createIdentifier(name),
222
+ type: "ExportDefaultDeclaration",
223
+ });
224
+ /**
225
+ * Collects statements into a program body.
226
+ * @param statements Statements to include in the body.
227
+ * @returns The program body array.
228
+ * @example
229
+ * ```typescript
230
+ * const body = createBody();
231
+ * ```
232
+ */
233
+ const createBody = (...statements) => statements;
234
+ export { createBody, createExportAll, createExportDefaultIdentifier, createExportInterfaceDeclaration, createExportNamedFrom, createExportSpecifier, createExportTypeAliasDeclaration, createExportWithDeclaration, createExportWithoutSource, createImportDeclaration, createImportDefaultSpecifier, createImportSpecifier, createProgram, createRepoDirectory, };
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi9hcmNoaXRlY3R1cmUvY29uc2lzdGVudC1iYXJyZWwtZmlsZXMvdGVzdC1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pELE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRW5DOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLElBQW1CLEVBQVUsRUFBRTtJQUMxRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUE0QixFQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLElBQUk7SUFDSixRQUFRLEVBQUUsRUFBRTtJQUNaLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ25FLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDYixVQUFVLEVBQUUsUUFBUTtJQUNwQixNQUFNLEVBQUUsRUFBRTtJQUNWLElBQUksRUFBRSxTQUFTO0NBQ2hCLENBQUMsQ0FBQztBQUVIOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFhLEVBQWtCLEVBQUUsQ0FDdEQsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQTBCLENBQUM7QUFFM0U7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBWSxFQUFxQixFQUFFLENBQzNELENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUE2QixDQUFDO0FBRTdEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0scUJBQXFCLEdBQUcsQ0FDNUIsU0FBaUIsRUFDakIsWUFBWSxHQUFHLFNBQVMsRUFDQSxFQUFFLENBQzFCLENBQUM7SUFDQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO0lBQ3hDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7SUFDbEMsSUFBSSxFQUFFLGlCQUFpQjtDQUN4QixDQUFrQyxDQUFDO0FBRXRDOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0scUJBQXFCLEdBQUcsQ0FDNUIsU0FBaUIsRUFDakIsWUFBWSxHQUFHLFNBQVMsRUFDQSxFQUFFLENBQzFCLENBQUM7SUFDQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO0lBQ3hDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7SUFDbEMsSUFBSSxFQUFFLGlCQUFpQjtDQUN4QixDQUFrQyxDQUFDO0FBRXRDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSw0QkFBNEIsR0FBRyxDQUNuQyxTQUFpQixFQUNjLEVBQUUsQ0FDakMsQ0FBQztJQUNDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7SUFDbEMsSUFBSSxFQUFFLHdCQUF3QjtDQUMvQixDQUF5QyxDQUFDO0FBRTdDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRyxDQUM5QixhQUFxRCxFQUFFLEVBQzdCLEVBQUUsQ0FDNUIsQ0FBQztJQUNDLFVBQVUsRUFBRSxFQUFFO0lBQ2QsTUFBTSxFQUFFLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDbEMsVUFBVTtJQUNWLElBQUksRUFBRSxtQkFBbUI7Q0FDMUIsQ0FBb0MsQ0FBQztBQUV4Qzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxlQUFlLEdBQUcsR0FBZ0MsRUFBRSxDQUN4RCxDQUFDO0lBQ0MsVUFBVSxFQUFFLEVBQUU7SUFDZCxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0lBQ2pDLE1BQU0sRUFBRSxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQ2xDLElBQUksRUFBRSxzQkFBc0I7Q0FDN0IsQ0FBdUMsQ0FBQztBQUUzQzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxHQUFrQyxFQUFFLENBQ2hFLENBQUM7SUFDQyxVQUFVLEVBQUUsRUFBRTtJQUNkLE1BQU0sRUFBRSxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQ2xDLFVBQVUsRUFBRSxFQUFFO0lBQ2QsSUFBSSxFQUFFLHdCQUF3QjtDQUMvQixDQUF5QyxDQUFDO0FBRTdDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLDJCQUEyQixHQUFHLEdBQWtDLEVBQUU7SUFDdEUsTUFBTSxXQUFXLEdBQUc7UUFDbEIsWUFBWSxFQUFFLEVBQUU7UUFDaEIsSUFBSSxFQUFFLE9BQU87UUFDYixJQUFJLEVBQUUscUJBQXFCO0tBQ1MsQ0FBQztJQUV2QyxPQUFPO1FBQ0wsVUFBVSxFQUFFLEVBQUU7UUFDZCxXQUFXO1FBQ1gsVUFBVSxFQUFFLEVBQUU7UUFDZCxJQUFJLEVBQUUsd0JBQXdCO0tBQ1MsQ0FBQztBQUM1QyxDQUFDLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxnQ0FBZ0MsR0FBRyxHQUFtQyxFQUFFLENBQzVFLENBQUM7SUFDQyxXQUFXLEVBQUU7UUFDWCxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTtRQUMzQyxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO1FBQy9CLElBQUksRUFBRSx3QkFBd0I7S0FDL0I7SUFDRCxVQUFVLEVBQUUsRUFBRTtJQUNkLElBQUksRUFBRSx3QkFBd0I7Q0FDL0IsQ0FBOEMsQ0FBQztBQUVsRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxnQ0FBZ0MsR0FBRyxHQUFtQyxFQUFFLENBQzVFLENBQUM7SUFDQyxXQUFXLEVBQUU7UUFDWCxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO1FBQy9CLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFO0tBQzVDO0lBQ0QsVUFBVSxFQUFFLEVBQUU7SUFDZCxJQUFJLEVBQUUsd0JBQXdCO0NBQy9CLENBQThDLENBQUM7QUFFbEQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHlCQUF5QixHQUFHLENBQ2hDLGFBQXVDLEVBQUUsRUFDVixFQUFFLENBQ2pDLENBQUM7SUFDQyxVQUFVLEVBQUUsRUFBRTtJQUNkLFVBQVU7SUFDVixJQUFJLEVBQUUsd0JBQXdCO0NBQy9CLENBQXlDLENBQUM7QUFFN0M7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLDZCQUE2QixHQUFHLENBQ3BDLElBQVksRUFDcUIsRUFBRSxDQUNuQyxDQUFDO0lBQ0MsV0FBVyxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQztJQUNuQyxJQUFJLEVBQUUsMEJBQTBCO0NBQ2pDLENBQTJDLENBQUM7QUFFL0M7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsR0FBRyxDQUNqQixHQUFHLFVBQTRDLEVBQ3ZCLEVBQUUsQ0FBQyxVQUFVLENBQUM7QUFFeEMsT0FBTyxFQUNMLFVBQVUsRUFDVixlQUFlLEVBQ2YsNkJBQTZCLEVBQzdCLGdDQUFnQyxFQUNoQyxxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLGdDQUFnQyxFQUNoQywyQkFBMkIsRUFDM0IseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2Qiw0QkFBNEIsRUFDNUIscUJBQXFCLEVBQ3JCLGFBQWEsRUFDYixtQkFBbUIsR0FDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQVNUIH0gZnJvbSBcImVzbGludFwiO1xuaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xuXG5pbXBvcnQgeyBta2RpclN5bmMsIG1rZHRlbXBTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGN3ZCB9IGZyb20gXCJub2RlOnByb2Nlc3NcIjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgdGVtcG9yYXJ5IHJlcG8gZGlyZWN0b3J5IGZvciB0ZXN0IGZpeHR1cmVzLlxuICogQHBhcmFtIHJvb3QgUm9vdCBmb2xkZXIgdG8gY3JlYXRlIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHVuZGVyLlxuICogQHJldHVybnMgVGhlIGdlbmVyYXRlZCB0ZW1wb3JhcnkgZGlyZWN0b3J5IHBhdGguXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGlyZWN0b3J5ID0gY3JlYXRlUmVwb0RpcmVjdG9yeShcInRtcFwiKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVSZXBvRGlyZWN0b3J5ID0gKHJvb3Q6IFwic3JjXCIgfCBcInRtcFwiKTogc3RyaW5nID0+IHtcbiAgY29uc3QgYmFzZURpcmVjdG9yeSA9IHBhdGguam9pbihjd2QoKSwgcm9vdCk7XG4gIG1rZGlyU3luYyhiYXNlRGlyZWN0b3J5LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgcmV0dXJuIG1rZHRlbXBTeW5jKHBhdGguam9pbihiYXNlRGlyZWN0b3J5LCBcImJhcnJlbC1maWxlcy1cIikpO1xufTtcblxuLyoqXG4gKiBXcmFwcyBzdGF0ZW1lbnRzIGluIGEgcHJvZ3JhbSBub2RlIGZvciBTb3VyY2VDb2RlIGNvbnN0cnVjdGlvbi5cbiAqIEBwYXJhbSBib2R5IFByb2dyYW0gYm9keSBzdGF0ZW1lbnRzLlxuICogQHJldHVybnMgVGhlIEFTVCBwcm9ncmFtIHdyYXBwZXIuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcHJvZ3JhbSA9IGNyZWF0ZVByb2dyYW0oW10pO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZVByb2dyYW0gPSAoYm9keTogRVNUcmVlLlByb2dyYW1bXCJib2R5XCJdKTogQVNULlByb2dyYW0gPT4gKHtcbiAgYm9keSxcbiAgY29tbWVudHM6IFtdLFxuICBsb2M6IHsgZW5kOiB7IGNvbHVtbjogMCwgbGluZTogMSB9LCBzdGFydDogeyBjb2x1bW46IDAsIGxpbmU6IDEgfSB9LFxuICByYW5nZTogWzAsIDBdLFxuICBzb3VyY2VUeXBlOiBcIm1vZHVsZVwiLFxuICB0b2tlbnM6IFtdLFxuICB0eXBlOiBcIlByb2dyYW1cIixcbn0pO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzdHJpbmcgbGl0ZXJhbCBub2RlIGZvciBpbXBvcnQgYW5kIGV4cG9ydCBzdGF0ZW1lbnRzLlxuICogQHBhcmFtIHZhbHVlIExpdGVyYWwgdmFsdWUgdG8gd3JhcC5cbiAqIEByZXR1cm5zIFRoZSBFU1RyZWUgbGl0ZXJhbCBub2RlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGxpdGVyYWwgPSBjcmVhdGVMaXRlcmFsKFwiLi9mZWF0dXJlXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUxpdGVyYWwgPSAodmFsdWU6IHN0cmluZyk6IEVTVHJlZS5MaXRlcmFsID0+XG4gICh7IHJhdzogYCcke3ZhbHVlfSdgLCB0eXBlOiBcIkxpdGVyYWxcIiwgdmFsdWUgfSkgc2F0aXNmaWVzIEVTVHJlZS5MaXRlcmFsO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgcmF3IHN5bWJvbCBuYW1lIGludG8gdGhlIEVTVHJlZSBzaGFwZSB1c2VkIGJ5IHRoZSBmaXh0dXJlIGZhY3Rvcmllcy5cbiAqIEBwYXJhbSBuYW1lIFJhdyBzeW1ib2wgdGV4dCB0byBlbmNvZGUgaW4gdGhlIEFTVCBub2RlLlxuICogQHJldHVybnMgQW4gRVNUcmVlIElkZW50aWZpZXIgY2FycnlpbmcgdGhlIHN1cHBsaWVkIHN5bWJvbCB0ZXh0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGlkZW50aWZpZXIgPSBjcmVhdGVJZGVudGlmaWVyKFwiZmVhdHVyZVwiKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVJZGVudGlmaWVyID0gKG5hbWU6IHN0cmluZyk6IEVTVHJlZS5JZGVudGlmaWVyID0+XG4gICh7IG5hbWUsIHR5cGU6IFwiSWRlbnRpZmllclwiIH0pIHNhdGlzZmllcyBFU1RyZWUuSWRlbnRpZmllcjtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGV4cG9ydCBzcGVjaWZpZXIgbm9kZS5cbiAqIEBwYXJhbSBsb2NhbE5hbWUgTG9jYWwgaWRlbnRpZmllciBuYW1lLlxuICogQHBhcmFtIGV4cG9ydGVkTmFtZSBFeHBvcnRlZCBpZGVudGlmaWVyIG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgRVNUcmVlIGV4cG9ydCBzcGVjaWZpZXIuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc3BlY2lmaWVyID0gY3JlYXRlRXhwb3J0U3BlY2lmaWVyKFwiZmVhdHVyZVwiKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVFeHBvcnRTcGVjaWZpZXIgPSAoXG4gIGxvY2FsTmFtZTogc3RyaW5nLFxuICBleHBvcnRlZE5hbWUgPSBsb2NhbE5hbWUsXG4pOiBFU1RyZWUuRXhwb3J0U3BlY2lmaWVyID0+XG4gICh7XG4gICAgZXhwb3J0ZWQ6IGNyZWF0ZUlkZW50aWZpZXIoZXhwb3J0ZWROYW1lKSxcbiAgICBsb2NhbDogY3JlYXRlSWRlbnRpZmllcihsb2NhbE5hbWUpLFxuICAgIHR5cGU6IFwiRXhwb3J0U3BlY2lmaWVyXCIsXG4gIH0pIHNhdGlzZmllcyBFU1RyZWUuRXhwb3J0U3BlY2lmaWVyO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gaW1wb3J0IHNwZWNpZmllciBub2RlLlxuICogQHBhcmFtIGxvY2FsTmFtZSBMb2NhbCBpZGVudGlmaWVyIG5hbWUuXG4gKiBAcGFyYW0gaW1wb3J0ZWROYW1lIEltcG9ydGVkIGlkZW50aWZpZXIgbmFtZS5cbiAqIEByZXR1cm5zIFRoZSBFU1RyZWUgaW1wb3J0IHNwZWNpZmllci5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzcGVjaWZpZXIgPSBjcmVhdGVJbXBvcnRTcGVjaWZpZXIoXCJmZWF0dXJlXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUltcG9ydFNwZWNpZmllciA9IChcbiAgbG9jYWxOYW1lOiBzdHJpbmcsXG4gIGltcG9ydGVkTmFtZSA9IGxvY2FsTmFtZSxcbik6IEVTVHJlZS5JbXBvcnRTcGVjaWZpZXIgPT5cbiAgKHtcbiAgICBpbXBvcnRlZDogY3JlYXRlSWRlbnRpZmllcihpbXBvcnRlZE5hbWUpLFxuICAgIGxvY2FsOiBjcmVhdGVJZGVudGlmaWVyKGxvY2FsTmFtZSksXG4gICAgdHlwZTogXCJJbXBvcnRTcGVjaWZpZXJcIixcbiAgfSkgc2F0aXNmaWVzIEVTVHJlZS5JbXBvcnRTcGVjaWZpZXI7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBpbXBvcnQgZGVmYXVsdCBzcGVjaWZpZXIgbm9kZS5cbiAqIEBwYXJhbSBsb2NhbE5hbWUgTG9jYWwgaWRlbnRpZmllciBuYW1lLlxuICogQHJldHVybnMgVGhlIEVTVHJlZSBkZWZhdWx0IGltcG9ydCBzcGVjaWZpZXIuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc3BlY2lmaWVyID0gY3JlYXRlSW1wb3J0RGVmYXVsdFNwZWNpZmllcihcImZlYXR1cmVcIik7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlSW1wb3J0RGVmYXVsdFNwZWNpZmllciA9IChcbiAgbG9jYWxOYW1lOiBzdHJpbmcsXG4pOiBFU1RyZWUuSW1wb3J0RGVmYXVsdFNwZWNpZmllciA9PlxuICAoe1xuICAgIGxvY2FsOiBjcmVhdGVJZGVudGlmaWVyKGxvY2FsTmFtZSksXG4gICAgdHlwZTogXCJJbXBvcnREZWZhdWx0U3BlY2lmaWVyXCIsXG4gIH0pIHNhdGlzZmllcyBFU1RyZWUuSW1wb3J0RGVmYXVsdFNwZWNpZmllcjtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGltcG9ydCBkZWNsYXJhdGlvbiBmb3IgZml4dHVyZSBwcm9ncmFtcy5cbiAqIEBwYXJhbSBzcGVjaWZpZXJzIEltcG9ydCBzcGVjaWZpZXJzIHRvIGluY2x1ZGUuXG4gKiBAcmV0dXJucyBUaGUgRVNUcmVlIGltcG9ydCBkZWNsYXJhdGlvbi5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBkZWNsYXJhdGlvbiA9IGNyZWF0ZUltcG9ydERlY2xhcmF0aW9uKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlSW1wb3J0RGVjbGFyYXRpb24gPSAoXG4gIHNwZWNpZmllcnM6IEVTVHJlZS5JbXBvcnREZWNsYXJhdGlvbltcInNwZWNpZmllcnNcIl0gPSBbXSxcbik6IEVTVHJlZS5JbXBvcnREZWNsYXJhdGlvbiA9PlxuICAoe1xuICAgIGF0dHJpYnV0ZXM6IFtdLFxuICAgIHNvdXJjZTogY3JlYXRlTGl0ZXJhbChcIi4vZmVhdHVyZVwiKSxcbiAgICBzcGVjaWZpZXJzLFxuICAgIHR5cGU6IFwiSW1wb3J0RGVjbGFyYXRpb25cIixcbiAgfSkgc2F0aXNmaWVzIEVTVHJlZS5JbXBvcnREZWNsYXJhdGlvbjtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGV4cG9ydC1hbGwgZGVjbGFyYXRpb24gZm9yIGZpeHR1cmUgcHJvZ3JhbXMuXG4gKiBAcmV0dXJucyBUaGUgRVNUcmVlIGV4cG9ydC1hbGwgZGVjbGFyYXRpb24uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGVjbGFyYXRpb24gPSBjcmVhdGVFeHBvcnRBbGwoKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVFeHBvcnRBbGwgPSAoKTogRVNUcmVlLkV4cG9ydEFsbERlY2xhcmF0aW9uID0+XG4gICh7XG4gICAgYXR0cmlidXRlczogW10sXG4gICAgZXhwb3J0ZWQ6IGNyZWF0ZUlkZW50aWZpZXIoXCJhbGxcIiksXG4gICAgc291cmNlOiBjcmVhdGVMaXRlcmFsKFwiLi9mZWF0dXJlXCIpLFxuICAgIHR5cGU6IFwiRXhwb3J0QWxsRGVjbGFyYXRpb25cIixcbiAgfSkgc2F0aXNmaWVzIEVTVHJlZS5FeHBvcnRBbGxEZWNsYXJhdGlvbjtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGV4cG9ydC1mcm9tIGRlY2xhcmF0aW9uIGZvciBmaXh0dXJlIHByb2dyYW1zLlxuICogQHJldHVybnMgVGhlIEVTVHJlZSBuYW1lZCBleHBvcnQgZGVjbGFyYXRpb24uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGVjbGFyYXRpb24gPSBjcmVhdGVFeHBvcnROYW1lZEZyb20oKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVFeHBvcnROYW1lZEZyb20gPSAoKTogRVNUcmVlLkV4cG9ydE5hbWVkRGVjbGFyYXRpb24gPT5cbiAgKHtcbiAgICBhdHRyaWJ1dGVzOiBbXSxcbiAgICBzb3VyY2U6IGNyZWF0ZUxpdGVyYWwoXCIuL2ZlYXR1cmVcIiksXG4gICAgc3BlY2lmaWVyczogW10sXG4gICAgdHlwZTogXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIsXG4gIH0pIHNhdGlzZmllcyBFU1RyZWUuRXhwb3J0TmFtZWREZWNsYXJhdGlvbjtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGV4cG9ydCBkZWNsYXJhdGlvbiB3aXRoIGFuIGlubGluZSB2YXJpYWJsZSBkZWNsYXJhdGlvbi5cbiAqIEByZXR1cm5zIFRoZSBFU1RyZWUgbmFtZWQgZXhwb3J0IGRlY2xhcmF0aW9uLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGRlY2xhcmF0aW9uID0gY3JlYXRlRXhwb3J0V2l0aERlY2xhcmF0aW9uKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlRXhwb3J0V2l0aERlY2xhcmF0aW9uID0gKCk6IEVTVHJlZS5FeHBvcnROYW1lZERlY2xhcmF0aW9uID0+IHtcbiAgY29uc3QgZGVjbGFyYXRpb24gPSB7XG4gICAgZGVjbGFyYXRpb25zOiBbXSxcbiAgICBraW5kOiBcImNvbnN0XCIsXG4gICAgdHlwZTogXCJWYXJpYWJsZURlY2xhcmF0aW9uXCIsXG4gIH0gc2F0aXNmaWVzIEVTVHJlZS5WYXJpYWJsZURlY2xhcmF0aW9uO1xuXG4gIHJldHVybiB7XG4gICAgYXR0cmlidXRlczogW10sXG4gICAgZGVjbGFyYXRpb24sXG4gICAgc3BlY2lmaWVyczogW10sXG4gICAgdHlwZTogXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIsXG4gIH0gc2F0aXNmaWVzIEVTVHJlZS5FeHBvcnROYW1lZERlY2xhcmF0aW9uO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGV4cG9ydGVkIGludGVyZmFjZSBkZWNsYXJhdGlvbiBmb3IgdGVzdHMuXG4gKiBAcmV0dXJucyBUaGUgZXhwb3J0ZWQgaW50ZXJmYWNlIGRlY2xhcmF0aW9uIG5vZGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGVjbGFyYXRpb24gPSBjcmVhdGVFeHBvcnRJbnRlcmZhY2VEZWNsYXJhdGlvbigpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUV4cG9ydEludGVyZmFjZURlY2xhcmF0aW9uID0gKCk6IEVTVHJlZS5Qcm9ncmFtW1wiYm9keVwiXVtudW1iZXJdID0+XG4gICh7XG4gICAgZGVjbGFyYXRpb246IHtcbiAgICAgIGJvZHk6IHsgYm9keTogW10sIHR5cGU6IFwiVFNJbnRlcmZhY2VCb2R5XCIgfSxcbiAgICAgIGlkOiBjcmVhdGVJZGVudGlmaWVyKFwiRmVhdHVyZVwiKSxcbiAgICAgIHR5cGU6IFwiVFNJbnRlcmZhY2VEZWNsYXJhdGlvblwiLFxuICAgIH0sXG4gICAgc3BlY2lmaWVyczogW10sXG4gICAgdHlwZTogXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIsXG4gIH0pIGFzIHVua25vd24gYXMgRVNUcmVlLlByb2dyYW1bXCJib2R5XCJdW251bWJlcl07XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBleHBvcnRlZCB0eXBlIGFsaWFzIGRlY2xhcmF0aW9uIGZvciB0ZXN0cy5cbiAqIEByZXR1cm5zIFRoZSBleHBvcnRlZCB0eXBlIGFsaWFzIGRlY2xhcmF0aW9uIG5vZGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGVjbGFyYXRpb24gPSBjcmVhdGVFeHBvcnRUeXBlQWxpYXNEZWNsYXJhdGlvbigpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUV4cG9ydFR5cGVBbGlhc0RlY2xhcmF0aW9uID0gKCk6IEVTVHJlZS5Qcm9ncmFtW1wiYm9keVwiXVtudW1iZXJdID0+XG4gICh7XG4gICAgZGVjbGFyYXRpb246IHtcbiAgICAgIGlkOiBjcmVhdGVJZGVudGlmaWVyKFwiRmVhdHVyZVwiKSxcbiAgICAgIHR5cGU6IFwiVFNUeXBlQWxpYXNEZWNsYXJhdGlvblwiLFxuICAgICAgdHlwZUFubm90YXRpb246IHsgdHlwZTogXCJUU1N0cmluZ0tleXdvcmRcIiB9LFxuICAgIH0sXG4gICAgc3BlY2lmaWVyczogW10sXG4gICAgdHlwZTogXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIsXG4gIH0pIGFzIHVua25vd24gYXMgRVNUcmVlLlByb2dyYW1bXCJib2R5XCJdW251bWJlcl07XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5hbWVkIGV4cG9ydCB3aXRob3V0IGEgc291cmNlIHZhbHVlLlxuICogQHBhcmFtIHNwZWNpZmllcnMgRXhwb3J0IHNwZWNpZmllcnMgdG8gaW5jbHVkZS5cbiAqIEByZXR1cm5zIFRoZSBFU1RyZWUgbmFtZWQgZXhwb3J0IGRlY2xhcmF0aW9uLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGRlY2xhcmF0aW9uID0gY3JlYXRlRXhwb3J0V2l0aG91dFNvdXJjZSgpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUV4cG9ydFdpdGhvdXRTb3VyY2UgPSAoXG4gIHNwZWNpZmllcnM6IEVTVHJlZS5FeHBvcnRTcGVjaWZpZXJbXSA9IFtdLFxuKTogRVNUcmVlLkV4cG9ydE5hbWVkRGVjbGFyYXRpb24gPT5cbiAgKHtcbiAgICBhdHRyaWJ1dGVzOiBbXSxcbiAgICBzcGVjaWZpZXJzLFxuICAgIHR5cGU6IFwiRXhwb3J0TmFtZWREZWNsYXJhdGlvblwiLFxuICB9KSBzYXRpc2ZpZXMgRVNUcmVlLkV4cG9ydE5hbWVkRGVjbGFyYXRpb247XG5cbi8qKlxuICogQ3JlYXRlcyBhIGRlZmF1bHQgZXhwb3J0IGRlY2xhcmF0aW9uIGZvciBhbiBpZGVudGlmaWVyLlxuICogQHBhcmFtIG5hbWUgSWRlbnRpZmllciB0byBleHBvcnQuXG4gKiBAcmV0dXJucyBUaGUgRVNUcmVlIGRlZmF1bHQgZXhwb3J0IGRlY2xhcmF0aW9uLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGRlY2xhcmF0aW9uID0gY3JlYXRlRXhwb3J0RGVmYXVsdElkZW50aWZpZXIoXCJmZWF0dXJlXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUV4cG9ydERlZmF1bHRJZGVudGlmaWVyID0gKFxuICBuYW1lOiBzdHJpbmcsXG4pOiBFU1RyZWUuRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uID0+XG4gICh7XG4gICAgZGVjbGFyYXRpb246IGNyZWF0ZUlkZW50aWZpZXIobmFtZSksXG4gICAgdHlwZTogXCJFeHBvcnREZWZhdWx0RGVjbGFyYXRpb25cIixcbiAgfSkgc2F0aXNmaWVzIEVTVHJlZS5FeHBvcnREZWZhdWx0RGVjbGFyYXRpb247XG5cbi8qKlxuICogQ29sbGVjdHMgc3RhdGVtZW50cyBpbnRvIGEgcHJvZ3JhbSBib2R5LlxuICogQHBhcmFtIHN0YXRlbWVudHMgU3RhdGVtZW50cyB0byBpbmNsdWRlIGluIHRoZSBib2R5LlxuICogQHJldHVybnMgVGhlIHByb2dyYW0gYm9keSBhcnJheS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBib2R5ID0gY3JlYXRlQm9keSgpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUJvZHkgPSAoXG4gIC4uLnN0YXRlbWVudHM6IEVTVHJlZS5Qcm9ncmFtW1wiYm9keVwiXVtudW1iZXJdW11cbik6IEVTVHJlZS5Qcm9ncmFtW1wiYm9keVwiXSA9PiBzdGF0ZW1lbnRzO1xuXG5leHBvcnQge1xuICBjcmVhdGVCb2R5LFxuICBjcmVhdGVFeHBvcnRBbGwsXG4gIGNyZWF0ZUV4cG9ydERlZmF1bHRJZGVudGlmaWVyLFxuICBjcmVhdGVFeHBvcnRJbnRlcmZhY2VEZWNsYXJhdGlvbixcbiAgY3JlYXRlRXhwb3J0TmFtZWRGcm9tLFxuICBjcmVhdGVFeHBvcnRTcGVjaWZpZXIsXG4gIGNyZWF0ZUV4cG9ydFR5cGVBbGlhc0RlY2xhcmF0aW9uLFxuICBjcmVhdGVFeHBvcnRXaXRoRGVjbGFyYXRpb24sXG4gIGNyZWF0ZUV4cG9ydFdpdGhvdXRTb3VyY2UsXG4gIGNyZWF0ZUltcG9ydERlY2xhcmF0aW9uLFxuICBjcmVhdGVJbXBvcnREZWZhdWx0U3BlY2lmaWVyLFxuICBjcmVhdGVJbXBvcnRTcGVjaWZpZXIsXG4gIGNyZWF0ZVByb2dyYW0sXG4gIGNyZWF0ZVJlcG9EaXJlY3RvcnksXG59O1xuIl19
@@ -0,0 +1,19 @@
1
+ /** Type definition for rule data. */
2
+ interface BarrelFilesExportsOnlyOptions {
3
+ /** AllowedBarrelNames helper value. */
4
+ allowedBarrelNames?: string[];
5
+ }
6
+ /** Type definition for rule data. */
7
+ interface ConsistentBarrelFilesOptions {
8
+ /** AllowedNames helper value. */
9
+ allowedNames?: string[];
10
+ /** Enforce helper value. */
11
+ enforce?: boolean;
12
+ }
13
+ /** Type definition for rule data. */
14
+ interface NoReexportsOutsideBarrelsOptions {
15
+ /** AllowedBarrelNames helper value. */
16
+ allowedBarrelNames?: string[];
17
+ }
18
+ export type { BarrelFilesExportsOnlyOptions, ConsistentBarrelFilesOptions, NoReexportsOutsideBarrelsOptions, };
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/types.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,UAAU,6BAA6B;IACrC,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,qCAAqC;AACrC,UAAU,4BAA4B;IACpC,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qCAAqC;AACrC,UAAU,gCAAgC;IACxC,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,YAAY,EACV,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,GACjC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9jb25zaXN0ZW50LWJhcnJlbC1maWxlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIEJhcnJlbEZpbGVzRXhwb3J0c09ubHlPcHRpb25zIHtcbiAgLyoqIEFsbG93ZWRCYXJyZWxOYW1lcyBoZWxwZXIgdmFsdWUuICovXG4gIGFsbG93ZWRCYXJyZWxOYW1lcz86IHN0cmluZ1tdO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgQ29uc2lzdGVudEJhcnJlbEZpbGVzT3B0aW9ucyB7XG4gIC8qKiBBbGxvd2VkTmFtZXMgaGVscGVyIHZhbHVlLiAqL1xuICBhbGxvd2VkTmFtZXM/OiBzdHJpbmdbXTtcblxuICAvKiogRW5mb3JjZSBoZWxwZXIgdmFsdWUuICovXG4gIGVuZm9yY2U/OiBib29sZWFuO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgTm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc09wdGlvbnMge1xuICAvKiogQWxsb3dlZEJhcnJlbE5hbWVzIGhlbHBlciB2YWx1ZS4gKi9cbiAgYWxsb3dlZEJhcnJlbE5hbWVzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCB0eXBlIHtcbiAgQmFycmVsRmlsZXNFeHBvcnRzT25seU9wdGlvbnMsXG4gIENvbnNpc3RlbnRCYXJyZWxGaWxlc09wdGlvbnMsXG4gIE5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNPcHRpb25zLFxufTtcbiJdfQ==
@@ -1,2 +1,2 @@
1
- export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noReexportsOutsideBarrelsRule, } from "./consistent-barrel-files";
1
+ export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noReexportsOutsideBarrelsRule, } from "./consistent-barrel-files/index.js";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/architecture/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noReexportsOutsideBarrelsRule, } from "./consistent-barrel-files/index.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6Qiw2QkFBNkIsR0FDOUIsTUFBTSwyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIGJhcnJlbEZpbGVzRXhwb3J0c09ubHlSdWxlLFxuICBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlLFxuICBub1JlZXhwb3J0c091dHNpZGVCYXJyZWxzUnVsZSxcbn0gZnJvbSBcIi4vY29uc2lzdGVudC1iYXJyZWwtZmlsZXNcIjtcbiJdfQ==
@@ -1,3 +1,3 @@
1
- export { noMultipleDeclaratorsRule } from "./no-multiple-declarators";
2
- export { preferInterfaceTypesRule } from "./prefer-interface-types";
1
+ export { noMultipleDeclaratorsRule } from "./no-multiple-declarators/index.js";
2
+ export { preferInterfaceTypesRule } from "./prefer-interface-types/index.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { noMultipleDeclaratorsRule } from "./no-multiple-declarators/index.js";
2
+ export { preferInterfaceTypesRule } from "./prefer-interface-types/index.js";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZG9tYWluL2NvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlIH0gZnJvbSBcIi4vbm8tbXVsdGlwbGUtZGVjbGFyYXRvcnNcIjtcbmV4cG9ydCB7IHByZWZlckludGVyZmFjZVR5cGVzUnVsZSB9IGZyb20gXCIuL3ByZWZlci1pbnRlcmZhY2UtdHlwZXNcIjtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { noMultipleDeclaratorsRule } from "./rule.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-multiple-declarators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { noMultipleDeclaratorsRule } from "./rule.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2NvcmUvbm8tbXVsdGlwbGUtZGVjbGFyYXRvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgbm9NdWx0aXBsZURlY2xhcmF0b3JzUnVsZSB9IGZyb20gXCIuL3J1bGVcIjtcbiJdfQ==
@@ -0,0 +1,101 @@
1
+ import type { Rule } from "eslint";
2
+ import type { Range } from "./types.js";
3
+ /** Options that shape the mock ESLint source access used by the tests. */
4
+ interface ContextOptions {
5
+ /** Omits the raw `text` property to exercise the `getText()` fallback path. */
6
+ omitText?: boolean;
7
+ }
8
+ /** Input used to build a mock variable declaration node. */
9
+ interface CreateVariableDeclarationInput {
10
+ /** Individual declarator source fragments in declaration order. */
11
+ declaratorTexts: readonly string[];
12
+ /** Declaration keyword such as `const` or `let`. */
13
+ kind: string;
14
+ /** Full file source used to resolve node ranges. */
15
+ sourceText: string;
16
+ /** Exact statement text that contains the declaration. */
17
+ statementText: string;
18
+ }
19
+ /** Mock ESTree node shape required by the rule tests. */
20
+ interface MockNode {
21
+ /** Variable declarators belonging to a declaration statement. */
22
+ declarations?: MockNode[];
23
+ /** Loop initializer reference used by `ForStatement` parents. */
24
+ init?: MockNode | null;
25
+ /** Declaration keyword such as `const` or `let`. */
26
+ kind?: string;
27
+ /** Loop left-hand reference used by `for...of` and `for...in` parents. */
28
+ left?: MockNode;
29
+ /** Parent node used by the rule to inspect surrounding syntax. */
30
+ parent?: MockNode;
31
+ /** Source range used by the autofix logic. */
32
+ range?: Range;
33
+ /** ESTree node type. */
34
+ type: string;
35
+ }
36
+ /** Captured report metadata asserted by the unit tests. */
37
+ interface ReportEntry {
38
+ /** Fix callback captured from the rule report descriptor. */
39
+ fix: null | Rule.ReportFixer | undefined;
40
+ /** Message identifier reported by the rule. */
41
+ messageId: string | undefined;
42
+ /** Node type captured from the report descriptor. */
43
+ nodeType: string | undefined;
44
+ }
45
+ /** Captured reports and mock context returned from `createContext`. */
46
+ interface RuleContextState {
47
+ /** Mock rule context passed into the rule under test. */
48
+ context: Rule.RuleContext;
49
+ /** Reports captured during rule execution. */
50
+ reports: ReportEntry[];
51
+ }
52
+ /**
53
+ * Builds a mock ESLint context for the rule tests.
54
+ * @param sourceText Full source text used by the mock source code object.
55
+ * @param options Options that tweak the mock source code shape.
56
+ * @returns The mock context and captured reports.
57
+ * @example Create a context with the default source text access.
58
+ * ```typescript
59
+ * const { context, reports } = createContext("const value = 1;");
60
+ * ```
61
+ */
62
+ declare const createContext: (sourceText: string, options?: ContextOptions) => RuleContextState;
63
+ /**
64
+ * Builds a mock variable declaration node with stable source ranges.
65
+ * @param input Source fragments used to build the declaration node.
66
+ * @param input.declaratorTexts Individual declarator source fragments.
67
+ * @param input.kind Declaration keyword such as `const` or `let`.
68
+ * @param input.sourceText Full file source used to resolve ranges.
69
+ * @param input.statementText Exact statement text containing the declaration.
70
+ * @returns A mock variable declaration node with linked declarator parents.
71
+ * @example Build a declaration with two declarators.
72
+ * ```typescript
73
+ * const declaration = createVariableDeclaration({
74
+ * declaratorTexts: ["first = 1", "second = 2"],
75
+ * kind: "const",
76
+ * sourceText: "const first = 1, second = 2;",
77
+ * statementText: "const first = 1, second = 2;",
78
+ * });
79
+ * ```
80
+ */
81
+ declare const createVariableDeclaration: ({ declaratorTexts, kind, sourceText, statementText, }: CreateVariableDeclarationInput) => MockNode;
82
+ /**
83
+ * Executes the rule listener for a variable declaration node.
84
+ * @param context Rule execution context.
85
+ * @param node Declaration node passed to the rule listener.
86
+ * @example Execute the rule against a mock declaration.
87
+ * ```typescript
88
+ * const state = createContext("const first = 1, second = 2;");
89
+ * const declaration = createVariableDeclaration({
90
+ * declaratorTexts: ["first = 1", "second = 2"],
91
+ * kind: "const",
92
+ * sourceText: "const first = 1, second = 2;",
93
+ * statementText: "const first = 1, second = 2;",
94
+ * });
95
+ * runRule(state.context, declaration);
96
+ * ```
97
+ */
98
+ declare const runRule: (context: Rule.RuleContext, node: MockNode) => void;
99
+ export { createContext, createVariableDeclaration, runRule };
100
+ export type { MockNode };
101
+ //# sourceMappingURL=rule-test-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-test-helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-multiple-declarators/rule-test-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIrC,0EAA0E;AAC1E,UAAU,cAAc;IACtB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,4DAA4D;AAC5D,UAAU,8BAA8B;IACtC,mEAAmE;IACnE,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,yDAAyD;AACzD,UAAU,QAAQ;IAChB,iEAAiE;IACjE,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC1B,iEAAiE;IACjE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,kEAAkE;IAClE,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,2DAA2D;AAC3D,UAAU,WAAW;IACnB,6DAA6D;IAC7D,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IACzC,+CAA+C;IAC/C,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,qDAAqD;IACrD,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,uEAAuE;AACvE,UAAU,gBAAgB;IACxB,yDAAyD;IACzD,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC;IAC1B,8CAA8C;IAC9C,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,aAAa,GACjB,YAAY,MAAM,EAClB,UAAU,cAAc,KACvB,gBA8BF,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,yBAAyB,GAAI,uDAKhC,8BAA8B,KAAG,QAgCnC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,OAAO,GAAI,SAAS,IAAI,CAAC,WAAW,EAAE,MAAM,QAAQ,KAAG,IAO5D,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,OAAO,EAAE,CAAC;AAC7D,YAAY,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,108 @@
1
+ import { noMultipleDeclaratorsRule } from "./rule.js";
2
+ /**
3
+ * Builds a mock ESLint context for the rule tests.
4
+ * @param sourceText Full source text used by the mock source code object.
5
+ * @param options Options that tweak the mock source code shape.
6
+ * @returns The mock context and captured reports.
7
+ * @example Create a context with the default source text access.
8
+ * ```typescript
9
+ * const { context, reports } = createContext("const value = 1;");
10
+ * ```
11
+ */
12
+ const createContext = (sourceText, options) => {
13
+ const reports = [];
14
+ const sourceCode = {
15
+ getText: (node) => {
16
+ if (node?.range === void 0) {
17
+ return sourceText;
18
+ }
19
+ return sourceText.slice(node.range[0], node.range[1]);
20
+ },
21
+ ...(options?.omitText === true ? {} : { text: sourceText }),
22
+ };
23
+ const context = {
24
+ id: "no-multiple-declarators",
25
+ options: [],
26
+ report: (descriptor) => {
27
+ const messageId = "messageId" in descriptor ? descriptor.messageId : void 0;
28
+ const node = "node" in descriptor ? descriptor.node : void 0;
29
+ reports.push({
30
+ fix: descriptor.fix,
31
+ messageId,
32
+ nodeType: node?.type,
33
+ });
34
+ },
35
+ sourceCode,
36
+ };
37
+ return { context, reports };
38
+ };
39
+ /**
40
+ * Builds a mock variable declaration node with stable source ranges.
41
+ * @param input Source fragments used to build the declaration node.
42
+ * @param input.declaratorTexts Individual declarator source fragments.
43
+ * @param input.kind Declaration keyword such as `const` or `let`.
44
+ * @param input.sourceText Full file source used to resolve ranges.
45
+ * @param input.statementText Exact statement text containing the declaration.
46
+ * @returns A mock variable declaration node with linked declarator parents.
47
+ * @example Build a declaration with two declarators.
48
+ * ```typescript
49
+ * const declaration = createVariableDeclaration({
50
+ * declaratorTexts: ["first = 1", "second = 2"],
51
+ * kind: "const",
52
+ * sourceText: "const first = 1, second = 2;",
53
+ * statementText: "const first = 1, second = 2;",
54
+ * });
55
+ * ```
56
+ */
57
+ const createVariableDeclaration = ({ declaratorTexts, kind, sourceText, statementText, }) => {
58
+ const statementOffset = sourceText.indexOf(statementText);
59
+ const statementRange = [
60
+ statementOffset + statementText.indexOf(kind),
61
+ statementOffset + statementText.length,
62
+ ];
63
+ let [searchStart] = statementRange;
64
+ const declarations = declaratorTexts.map((declaratorText) => {
65
+ const start = sourceText.indexOf(declaratorText, searchStart);
66
+ const range = [start, start + declaratorText.length];
67
+ const declaration = {
68
+ range,
69
+ type: "VariableDeclarator",
70
+ };
71
+ const [, rangeEnd] = range;
72
+ searchStart = rangeEnd;
73
+ return declaration;
74
+ });
75
+ const declarationNode = {
76
+ declarations,
77
+ kind,
78
+ range: statementRange,
79
+ type: "VariableDeclaration",
80
+ };
81
+ for (const declaration of declarations) {
82
+ declaration.parent = declarationNode;
83
+ }
84
+ return declarationNode;
85
+ };
86
+ /**
87
+ * Executes the rule listener for a variable declaration node.
88
+ * @param context Rule execution context.
89
+ * @param node Declaration node passed to the rule listener.
90
+ * @example Execute the rule against a mock declaration.
91
+ * ```typescript
92
+ * const state = createContext("const first = 1, second = 2;");
93
+ * const declaration = createVariableDeclaration({
94
+ * declaratorTexts: ["first = 1", "second = 2"],
95
+ * kind: "const",
96
+ * sourceText: "const first = 1, second = 2;",
97
+ * statementText: "const first = 1, second = 2;",
98
+ * });
99
+ * runRule(state.context, declaration);
100
+ * ```
101
+ */
102
+ const runRule = (context, node) => {
103
+ const listeners = noMultipleDeclaratorsRule.create(context);
104
+ const listener = listeners.VariableDeclaration;
105
+ listener?.(node);
106
+ };
107
+ export { createContext, createVariableDeclaration, runRule };
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS10ZXN0LWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2NvcmUvbm8tbXVsdGlwbGUtZGVjbGFyYXRvcnMvcnVsZS10ZXN0LWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBd0RuRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGFBQWEsR0FBRyxDQUNwQixVQUFrQixFQUNsQixPQUF3QixFQUNOLEVBQUU7SUFDcEIsTUFBTSxPQUFPLEdBQWtCLEVBQUUsQ0FBQztJQUNsQyxNQUFNLFVBQVUsR0FBRztRQUNqQixPQUFPLEVBQUUsQ0FBQyxJQUFlLEVBQVUsRUFBRTtZQUNuQyxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDM0IsT0FBTyxVQUFVLENBQUM7WUFDcEIsQ0FBQztZQUVELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDO0tBQzVELENBQUM7SUFDRixNQUFNLE9BQU8sR0FBcUI7UUFDaEMsRUFBRSxFQUFFLHlCQUF5QjtRQUM3QixPQUFPLEVBQUUsRUFBRTtRQUNYLE1BQU0sRUFBRSxDQUFDLFVBQWlDLEVBQVEsRUFBRTtZQUNsRCxNQUFNLFNBQVMsR0FDYixXQUFXLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1RCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU3RCxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNYLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRztnQkFDbkIsU0FBUztnQkFDVCxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUk7YUFDckIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELFVBQVU7S0FDb0IsQ0FBQztJQUVqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQzlCLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxFQUNqQyxlQUFlLEVBQ2YsSUFBSSxFQUNKLFVBQVUsRUFDVixhQUFhLEdBQ2tCLEVBQVksRUFBRTtJQUM3QyxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFELE1BQU0sY0FBYyxHQUFVO1FBQzVCLGVBQWUsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUM3QyxlQUFlLEdBQUcsYUFBYSxDQUFDLE1BQU07S0FDdkMsQ0FBQztJQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxjQUFjLENBQUM7SUFDbkMsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO1FBQzFELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzlELE1BQU0sS0FBSyxHQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUQsTUFBTSxXQUFXLEdBQWE7WUFDNUIsS0FBSztZQUNMLElBQUksRUFBRSxvQkFBb0I7U0FDM0IsQ0FBQztRQUNGLE1BQU0sQ0FBQyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUUzQixXQUFXLEdBQUcsUUFBUSxDQUFDO1FBRXZCLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxlQUFlLEdBQWE7UUFDaEMsWUFBWTtRQUNaLElBQUk7UUFDSixLQUFLLEVBQUUsY0FBYztRQUNyQixJQUFJLEVBQUUscUJBQXFCO0tBQzVCLENBQUM7SUFFRixLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE9BQXlCLEVBQUUsSUFBYyxFQUFRLEVBQUU7SUFDbEUsTUFBTSxTQUFTLEdBQUcseUJBQXlCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVELE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxtQkFFZCxDQUFDO0lBRWQsUUFBUSxFQUFFLENBQUMsSUFBNEIsQ0FBQyxDQUFDO0FBQzNDLENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxhQUFhLEVBQUUseUJBQXlCLEVBQUUsT0FBTyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7IFJhbmdlIH0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbmltcG9ydCB7IG5vTXVsdGlwbGVEZWNsYXJhdG9yc1J1bGUgfSBmcm9tIFwiLi9ydWxlXCI7XHJcblxyXG4vKiogT3B0aW9ucyB0aGF0IHNoYXBlIHRoZSBtb2NrIEVTTGludCBzb3VyY2UgYWNjZXNzIHVzZWQgYnkgdGhlIHRlc3RzLiAqL1xyXG5pbnRlcmZhY2UgQ29udGV4dE9wdGlvbnMge1xyXG4gIC8qKiBPbWl0cyB0aGUgcmF3IGB0ZXh0YCBwcm9wZXJ0eSB0byBleGVyY2lzZSB0aGUgYGdldFRleHQoKWAgZmFsbGJhY2sgcGF0aC4gKi9cclxuICBvbWl0VGV4dD86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKiBJbnB1dCB1c2VkIHRvIGJ1aWxkIGEgbW9jayB2YXJpYWJsZSBkZWNsYXJhdGlvbiBub2RlLiAqL1xyXG5pbnRlcmZhY2UgQ3JlYXRlVmFyaWFibGVEZWNsYXJhdGlvbklucHV0IHtcclxuICAvKiogSW5kaXZpZHVhbCBkZWNsYXJhdG9yIHNvdXJjZSBmcmFnbWVudHMgaW4gZGVjbGFyYXRpb24gb3JkZXIuICovXHJcbiAgZGVjbGFyYXRvclRleHRzOiByZWFkb25seSBzdHJpbmdbXTtcclxuICAvKiogRGVjbGFyYXRpb24ga2V5d29yZCBzdWNoIGFzIGBjb25zdGAgb3IgYGxldGAuICovXHJcbiAga2luZDogc3RyaW5nO1xyXG4gIC8qKiBGdWxsIGZpbGUgc291cmNlIHVzZWQgdG8gcmVzb2x2ZSBub2RlIHJhbmdlcy4gKi9cclxuICBzb3VyY2VUZXh0OiBzdHJpbmc7XHJcbiAgLyoqIEV4YWN0IHN0YXRlbWVudCB0ZXh0IHRoYXQgY29udGFpbnMgdGhlIGRlY2xhcmF0aW9uLiAqL1xyXG4gIHN0YXRlbWVudFRleHQ6IHN0cmluZztcclxufVxyXG5cclxuLyoqIE1vY2sgRVNUcmVlIG5vZGUgc2hhcGUgcmVxdWlyZWQgYnkgdGhlIHJ1bGUgdGVzdHMuICovXHJcbmludGVyZmFjZSBNb2NrTm9kZSB7XHJcbiAgLyoqIFZhcmlhYmxlIGRlY2xhcmF0b3JzIGJlbG9uZ2luZyB0byBhIGRlY2xhcmF0aW9uIHN0YXRlbWVudC4gKi9cclxuICBkZWNsYXJhdGlvbnM/OiBNb2NrTm9kZVtdO1xyXG4gIC8qKiBMb29wIGluaXRpYWxpemVyIHJlZmVyZW5jZSB1c2VkIGJ5IGBGb3JTdGF0ZW1lbnRgIHBhcmVudHMuICovXHJcbiAgaW5pdD86IE1vY2tOb2RlIHwgbnVsbDtcclxuICAvKiogRGVjbGFyYXRpb24ga2V5d29yZCBzdWNoIGFzIGBjb25zdGAgb3IgYGxldGAuICovXHJcbiAga2luZD86IHN0cmluZztcclxuICAvKiogTG9vcCBsZWZ0LWhhbmQgcmVmZXJlbmNlIHVzZWQgYnkgYGZvci4uLm9mYCBhbmQgYGZvci4uLmluYCBwYXJlbnRzLiAqL1xyXG4gIGxlZnQ/OiBNb2NrTm9kZTtcclxuICAvKiogUGFyZW50IG5vZGUgdXNlZCBieSB0aGUgcnVsZSB0byBpbnNwZWN0IHN1cnJvdW5kaW5nIHN5bnRheC4gKi9cclxuICBwYXJlbnQ/OiBNb2NrTm9kZTtcclxuICAvKiogU291cmNlIHJhbmdlIHVzZWQgYnkgdGhlIGF1dG9maXggbG9naWMuICovXHJcbiAgcmFuZ2U/OiBSYW5nZTtcclxuICAvKiogRVNUcmVlIG5vZGUgdHlwZS4gKi9cclxuICB0eXBlOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKiBDYXB0dXJlZCByZXBvcnQgbWV0YWRhdGEgYXNzZXJ0ZWQgYnkgdGhlIHVuaXQgdGVzdHMuICovXHJcbmludGVyZmFjZSBSZXBvcnRFbnRyeSB7XHJcbiAgLyoqIEZpeCBjYWxsYmFjayBjYXB0dXJlZCBmcm9tIHRoZSBydWxlIHJlcG9ydCBkZXNjcmlwdG9yLiAqL1xyXG4gIGZpeDogbnVsbCB8IFJ1bGUuUmVwb3J0Rml4ZXIgfCB1bmRlZmluZWQ7XHJcbiAgLyoqIE1lc3NhZ2UgaWRlbnRpZmllciByZXBvcnRlZCBieSB0aGUgcnVsZS4gKi9cclxuICBtZXNzYWdlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAvKiogTm9kZSB0eXBlIGNhcHR1cmVkIGZyb20gdGhlIHJlcG9ydCBkZXNjcmlwdG9yLiAqL1xyXG4gIG5vZGVUeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBDYXB0dXJlZCByZXBvcnRzIGFuZCBtb2NrIGNvbnRleHQgcmV0dXJuZWQgZnJvbSBgY3JlYXRlQ29udGV4dGAuICovXHJcbmludGVyZmFjZSBSdWxlQ29udGV4dFN0YXRlIHtcclxuICAvKiogTW9jayBydWxlIGNvbnRleHQgcGFzc2VkIGludG8gdGhlIHJ1bGUgdW5kZXIgdGVzdC4gKi9cclxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0O1xyXG4gIC8qKiBSZXBvcnRzIGNhcHR1cmVkIGR1cmluZyBydWxlIGV4ZWN1dGlvbi4gKi9cclxuICByZXBvcnRzOiBSZXBvcnRFbnRyeVtdO1xyXG59XHJcblxyXG4vKipcclxuICogQnVpbGRzIGEgbW9jayBFU0xpbnQgY29udGV4dCBmb3IgdGhlIHJ1bGUgdGVzdHMuXHJcbiAqIEBwYXJhbSBzb3VyY2VUZXh0IEZ1bGwgc291cmNlIHRleHQgdXNlZCBieSB0aGUgbW9jayBzb3VyY2UgY29kZSBvYmplY3QuXHJcbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgdGhhdCB0d2VhayB0aGUgbW9jayBzb3VyY2UgY29kZSBzaGFwZS5cclxuICogQHJldHVybnMgVGhlIG1vY2sgY29udGV4dCBhbmQgY2FwdHVyZWQgcmVwb3J0cy5cclxuICogQGV4YW1wbGUgQ3JlYXRlIGEgY29udGV4dCB3aXRoIHRoZSBkZWZhdWx0IHNvdXJjZSB0ZXh0IGFjY2Vzcy5cclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCB7IGNvbnRleHQsIHJlcG9ydHMgfSA9IGNyZWF0ZUNvbnRleHQoXCJjb25zdCB2YWx1ZSA9IDE7XCIpO1xyXG4gKiBgYGBcclxuICovXHJcbmNvbnN0IGNyZWF0ZUNvbnRleHQgPSAoXHJcbiAgc291cmNlVGV4dDogc3RyaW5nLFxyXG4gIG9wdGlvbnM/OiBDb250ZXh0T3B0aW9ucyxcclxuKTogUnVsZUNvbnRleHRTdGF0ZSA9PiB7XHJcbiAgY29uc3QgcmVwb3J0czogUmVwb3J0RW50cnlbXSA9IFtdO1xyXG4gIGNvbnN0IHNvdXJjZUNvZGUgPSB7XHJcbiAgICBnZXRUZXh0OiAobm9kZT86IE1vY2tOb2RlKTogc3RyaW5nID0+IHtcclxuICAgICAgaWYgKG5vZGU/LnJhbmdlID09PSB2b2lkIDApIHtcclxuICAgICAgICByZXR1cm4gc291cmNlVGV4dDtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHNvdXJjZVRleHQuc2xpY2Uobm9kZS5yYW5nZVswXSwgbm9kZS5yYW5nZVsxXSk7XHJcbiAgICB9LFxyXG4gICAgLi4uKG9wdGlvbnM/Lm9taXRUZXh0ID09PSB0cnVlID8ge30gOiB7IHRleHQ6IHNvdXJjZVRleHQgfSksXHJcbiAgfTtcclxuICBjb25zdCBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0ID0ge1xyXG4gICAgaWQ6IFwibm8tbXVsdGlwbGUtZGVjbGFyYXRvcnNcIixcclxuICAgIG9wdGlvbnM6IFtdLFxyXG4gICAgcmVwb3J0OiAoZGVzY3JpcHRvcjogUnVsZS5SZXBvcnREZXNjcmlwdG9yKTogdm9pZCA9PiB7XHJcbiAgICAgIGNvbnN0IG1lc3NhZ2VJZCA9XHJcbiAgICAgICAgXCJtZXNzYWdlSWRcIiBpbiBkZXNjcmlwdG9yID8gZGVzY3JpcHRvci5tZXNzYWdlSWQgOiB2b2lkIDA7XHJcbiAgICAgIGNvbnN0IG5vZGUgPSBcIm5vZGVcIiBpbiBkZXNjcmlwdG9yID8gZGVzY3JpcHRvci5ub2RlIDogdm9pZCAwO1xyXG5cclxuICAgICAgcmVwb3J0cy5wdXNoKHtcclxuICAgICAgICBmaXg6IGRlc2NyaXB0b3IuZml4LFxyXG4gICAgICAgIG1lc3NhZ2VJZCxcclxuICAgICAgICBub2RlVHlwZTogbm9kZT8udHlwZSxcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgc291cmNlQ29kZSxcclxuICB9IGFzIHVua25vd24gYXMgUnVsZS5SdWxlQ29udGV4dDtcclxuXHJcbiAgcmV0dXJuIHsgY29udGV4dCwgcmVwb3J0cyB9O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEJ1aWxkcyBhIG1vY2sgdmFyaWFibGUgZGVjbGFyYXRpb24gbm9kZSB3aXRoIHN0YWJsZSBzb3VyY2UgcmFuZ2VzLlxyXG4gKiBAcGFyYW0gaW5wdXQgU291cmNlIGZyYWdtZW50cyB1c2VkIHRvIGJ1aWxkIHRoZSBkZWNsYXJhdGlvbiBub2RlLlxyXG4gKiBAcGFyYW0gaW5wdXQuZGVjbGFyYXRvclRleHRzIEluZGl2aWR1YWwgZGVjbGFyYXRvciBzb3VyY2UgZnJhZ21lbnRzLlxyXG4gKiBAcGFyYW0gaW5wdXQua2luZCBEZWNsYXJhdGlvbiBrZXl3b3JkIHN1Y2ggYXMgYGNvbnN0YCBvciBgbGV0YC5cclxuICogQHBhcmFtIGlucHV0LnNvdXJjZVRleHQgRnVsbCBmaWxlIHNvdXJjZSB1c2VkIHRvIHJlc29sdmUgcmFuZ2VzLlxyXG4gKiBAcGFyYW0gaW5wdXQuc3RhdGVtZW50VGV4dCBFeGFjdCBzdGF0ZW1lbnQgdGV4dCBjb250YWluaW5nIHRoZSBkZWNsYXJhdGlvbi5cclxuICogQHJldHVybnMgQSBtb2NrIHZhcmlhYmxlIGRlY2xhcmF0aW9uIG5vZGUgd2l0aCBsaW5rZWQgZGVjbGFyYXRvciBwYXJlbnRzLlxyXG4gKiBAZXhhbXBsZSBCdWlsZCBhIGRlY2xhcmF0aW9uIHdpdGggdHdvIGRlY2xhcmF0b3JzLlxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGRlY2xhcmF0aW9uID0gY3JlYXRlVmFyaWFibGVEZWNsYXJhdGlvbih7XHJcbiAqICAgZGVjbGFyYXRvclRleHRzOiBbXCJmaXJzdCA9IDFcIiwgXCJzZWNvbmQgPSAyXCJdLFxyXG4gKiAgIGtpbmQ6IFwiY29uc3RcIixcclxuICogICBzb3VyY2VUZXh0OiBcImNvbnN0IGZpcnN0ID0gMSwgc2Vjb25kID0gMjtcIixcclxuICogICBzdGF0ZW1lbnRUZXh0OiBcImNvbnN0IGZpcnN0ID0gMSwgc2Vjb25kID0gMjtcIixcclxuICogfSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuY29uc3QgY3JlYXRlVmFyaWFibGVEZWNsYXJhdGlvbiA9ICh7XHJcbiAgZGVjbGFyYXRvclRleHRzLFxyXG4gIGtpbmQsXHJcbiAgc291cmNlVGV4dCxcclxuICBzdGF0ZW1lbnRUZXh0LFxyXG59OiBDcmVhdGVWYXJpYWJsZURlY2xhcmF0aW9uSW5wdXQpOiBNb2NrTm9kZSA9PiB7XHJcbiAgY29uc3Qgc3RhdGVtZW50T2Zmc2V0ID0gc291cmNlVGV4dC5pbmRleE9mKHN0YXRlbWVudFRleHQpO1xyXG4gIGNvbnN0IHN0YXRlbWVudFJhbmdlOiBSYW5nZSA9IFtcclxuICAgIHN0YXRlbWVudE9mZnNldCArIHN0YXRlbWVudFRleHQuaW5kZXhPZihraW5kKSxcclxuICAgIHN0YXRlbWVudE9mZnNldCArIHN0YXRlbWVudFRleHQubGVuZ3RoLFxyXG4gIF07XHJcbiAgbGV0IFtzZWFyY2hTdGFydF0gPSBzdGF0ZW1lbnRSYW5nZTtcclxuICBjb25zdCBkZWNsYXJhdGlvbnMgPSBkZWNsYXJhdG9yVGV4dHMubWFwKChkZWNsYXJhdG9yVGV4dCkgPT4ge1xyXG4gICAgY29uc3Qgc3RhcnQgPSBzb3VyY2VUZXh0LmluZGV4T2YoZGVjbGFyYXRvclRleHQsIHNlYXJjaFN0YXJ0KTtcclxuICAgIGNvbnN0IHJhbmdlOiBSYW5nZSA9IFtzdGFydCwgc3RhcnQgKyBkZWNsYXJhdG9yVGV4dC5sZW5ndGhdO1xyXG4gICAgY29uc3QgZGVjbGFyYXRpb246IE1vY2tOb2RlID0ge1xyXG4gICAgICByYW5nZSxcclxuICAgICAgdHlwZTogXCJWYXJpYWJsZURlY2xhcmF0b3JcIixcclxuICAgIH07XHJcbiAgICBjb25zdCBbLCByYW5nZUVuZF0gPSByYW5nZTtcclxuXHJcbiAgICBzZWFyY2hTdGFydCA9IHJhbmdlRW5kO1xyXG5cclxuICAgIHJldHVybiBkZWNsYXJhdGlvbjtcclxuICB9KTtcclxuICBjb25zdCBkZWNsYXJhdGlvbk5vZGU6IE1vY2tOb2RlID0ge1xyXG4gICAgZGVjbGFyYXRpb25zLFxyXG4gICAga2luZCxcclxuICAgIHJhbmdlOiBzdGF0ZW1lbnRSYW5nZSxcclxuICAgIHR5cGU6IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiLFxyXG4gIH07XHJcblxyXG4gIGZvciAoY29uc3QgZGVjbGFyYXRpb24gb2YgZGVjbGFyYXRpb25zKSB7XHJcbiAgICBkZWNsYXJhdGlvbi5wYXJlbnQgPSBkZWNsYXJhdGlvbk5vZGU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZGVjbGFyYXRpb25Ob2RlO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEV4ZWN1dGVzIHRoZSBydWxlIGxpc3RlbmVyIGZvciBhIHZhcmlhYmxlIGRlY2xhcmF0aW9uIG5vZGUuXHJcbiAqIEBwYXJhbSBjb250ZXh0IFJ1bGUgZXhlY3V0aW9uIGNvbnRleHQuXHJcbiAqIEBwYXJhbSBub2RlIERlY2xhcmF0aW9uIG5vZGUgcGFzc2VkIHRvIHRoZSBydWxlIGxpc3RlbmVyLlxyXG4gKiBAZXhhbXBsZSBFeGVjdXRlIHRoZSBydWxlIGFnYWluc3QgYSBtb2NrIGRlY2xhcmF0aW9uLlxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IHN0YXRlID0gY3JlYXRlQ29udGV4dChcImNvbnN0IGZpcnN0ID0gMSwgc2Vjb25kID0gMjtcIik7XHJcbiAqIGNvbnN0IGRlY2xhcmF0aW9uID0gY3JlYXRlVmFyaWFibGVEZWNsYXJhdGlvbih7XHJcbiAqICAgZGVjbGFyYXRvclRleHRzOiBbXCJmaXJzdCA9IDFcIiwgXCJzZWNvbmQgPSAyXCJdLFxyXG4gKiAgIGtpbmQ6IFwiY29uc3RcIixcclxuICogICBzb3VyY2VUZXh0OiBcImNvbnN0IGZpcnN0ID0gMSwgc2Vjb25kID0gMjtcIixcclxuICogICBzdGF0ZW1lbnRUZXh0OiBcImNvbnN0IGZpcnN0ID0gMSwgc2Vjb25kID0gMjtcIixcclxuICogfSk7XHJcbiAqIHJ1blJ1bGUoc3RhdGUuY29udGV4dCwgZGVjbGFyYXRpb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmNvbnN0IHJ1blJ1bGUgPSAoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCwgbm9kZTogTW9ja05vZGUpOiB2b2lkID0+IHtcclxuICBjb25zdCBsaXN0ZW5lcnMgPSBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlLmNyZWF0ZShjb250ZXh0KTtcclxuICBjb25zdCBsaXN0ZW5lciA9IGxpc3RlbmVycy5WYXJpYWJsZURlY2xhcmF0aW9uIGFzXHJcbiAgICB8ICgodmFsdWU6IFJ1bGUuTm9kZSkgPT4gdm9pZClcclxuICAgIHwgdW5kZWZpbmVkO1xyXG5cclxuICBsaXN0ZW5lcj8uKG5vZGUgYXMgdW5rbm93biBhcyBSdWxlLk5vZGUpO1xyXG59O1xyXG5cclxuZXhwb3J0IHsgY3JlYXRlQ29udGV4dCwgY3JlYXRlVmFyaWFibGVEZWNsYXJhdGlvbiwgcnVuUnVsZSB9O1xyXG5leHBvcnQgdHlwZSB7IE1vY2tOb2RlIH07XHJcbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import type { Rule } from "eslint";
2
+ /** ESLint rule implementation for single-declarator variable statements. */
2
3
  declare const noMultipleDeclaratorsRule: Rule.RuleModule;
3
4
  export { noMultipleDeclaratorsRule };
4
5
  //# sourceMappingURL=rule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-multiple-declarators/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAiRnC,4EAA4E;AAC5E,QAAA,MAAM,yBAAyB,EAAE,IAAI,CAAC,UAuBrC,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { Rule } from "eslint";
2
+ /** Report shape used by fix collection helpers. */
3
+ interface FixReportEntry {
4
+ /** Fix helper value captured from a rule report. */
5
+ fix?: null | Rule.ReportFixer | undefined;
6
+ }
7
+ /** Suite name used by the fix-focused no-multiple-declarators tests. */
8
+ declare const ruleFixesSuiteName = "no-multiple-declarators rule fixes";
9
+ /**
10
+ * Collects concrete fixes from captured report entries.
11
+ * @param reports Captured rule reports to evaluate.
12
+ * @returns All concrete fixes produced by the report callbacks.
13
+ * @example Collect fixes from a captured report array.
14
+ * ```typescript
15
+ * const fixes = getFixes([
16
+ * { fix: () => ({ range: [0, 0], text: "const value = 1;" }) },
17
+ * ]);
18
+ * ```
19
+ */
20
+ declare const getFixes: (reports: readonly FixReportEntry[]) => Rule.Fix[];
21
+ /**
22
+ * Applies fixes to source text from the end of the file toward the start.
23
+ * @param sourceText Original source text.
24
+ * @param fixes Concrete fixes that should be applied.
25
+ * @returns Source text with the fixes applied.
26
+ * @example Apply a replacement fix to source text.
27
+ * ```typescript
28
+ * const output = applyFixes("const first = 1, second = 2;", [
29
+ * { range: [0, 26], text: "const first = 1;\nconst second = 2;" },
30
+ * ]);
31
+ * ```
32
+ */
33
+ declare const applyFixes: (sourceText: string, fixes: readonly Rule.Fix[]) => string;
34
+ export { applyFixes, getFixes, ruleFixesSuiteName };
35
+ //# sourceMappingURL=rule.fixes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.fixes.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-multiple-declarators/rule.fixes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,mDAAmD;AACnD,UAAU,cAAc;IACtB,oDAAoD;IACpD,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;CAC3C;AAKD,wEAAwE;AACxE,QAAA,MAAM,kBAAkB,uCAAuC,CAAC;AA6ChE;;;;;;;;;;GAUG;AACH,QAAA,MAAM,QAAQ,GAAI,SAAS,SAAS,cAAc,EAAE,KAAG,IAAI,CAAC,GAAG,EAiB9D,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,UAAU,GAAI,YAAY,MAAM,EAAE,OAAO,SAAS,IAAI,CAAC,GAAG,EAAE,KAAG,MAgBpE,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC"}