@codeperfect/eslint-plugin 2.1.0 → 2.3.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 (309) hide show
  1. package/README.md +3 -2
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/application/custom-rules.d.ts +8 -8
  4. package/dist/application/custom-rules.js +14 -14
  5. package/dist/application/index.d.ts +1 -1
  6. package/dist/application/index.d.ts.map +1 -1
  7. package/dist/application/index.js +2 -2
  8. package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
  9. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts +3 -4
  10. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts.map +1 -1
  11. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +5 -3
  12. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +1 -1
  13. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +17 -7
  14. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -1
  15. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +29 -2
  16. package/dist/domain/architecture/consistent-barrel-files/index.d.ts +2 -0
  17. package/dist/domain/architecture/consistent-barrel-files/index.d.ts.map +1 -1
  18. package/dist/domain/architecture/consistent-barrel-files/index.js +3 -1
  19. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.d.ts +5 -0
  20. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.d.ts.map +1 -0
  21. package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.js +247 -0
  22. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts +5 -0
  23. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts.map +1 -0
  24. package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.js +136 -0
  25. package/dist/domain/architecture/consistent-barrel-files/rule.d.ts.map +1 -1
  26. package/dist/domain/architecture/consistent-barrel-files/rule.js +1 -2
  27. package/dist/domain/architecture/index.d.ts +2 -1
  28. package/dist/domain/architecture/index.d.ts.map +1 -1
  29. package/dist/domain/architecture/index.js +3 -2
  30. package/dist/domain/architecture/no-unused-exports/index.d.ts +3 -0
  31. package/dist/domain/architecture/no-unused-exports/index.d.ts.map +1 -0
  32. package/dist/domain/architecture/no-unused-exports/index.js +2 -0
  33. package/dist/domain/architecture/no-unused-exports/no-unused-exports-options.d.ts +50 -0
  34. package/dist/domain/architecture/no-unused-exports/no-unused-exports-options.d.ts.map +1 -0
  35. package/dist/domain/architecture/no-unused-exports/no-unused-exports-options.js +141 -0
  36. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts +49 -0
  37. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts.map +1 -0
  38. package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.js +612 -0
  39. package/dist/domain/architecture/no-unused-exports/rule.d.ts +5 -0
  40. package/dist/domain/architecture/no-unused-exports/rule.d.ts.map +1 -0
  41. package/dist/domain/architecture/no-unused-exports/rule.js +82 -0
  42. package/dist/domain/architecture/no-unused-exports/types.d.ts +32 -0
  43. package/dist/domain/architecture/no-unused-exports/types.d.ts.map +1 -0
  44. package/dist/domain/architecture/no-unused-exports/types.js +2 -0
  45. package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -1
  46. package/dist/domain/core/no-multiple-declarators/rule.js +53 -4
  47. package/dist/domain/core/no-multiple-declarators/types.d.ts +3 -1
  48. package/dist/domain/core/no-multiple-declarators/types.d.ts.map +1 -1
  49. package/dist/domain/core/no-multiple-declarators/types.js +5 -2
  50. package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -1
  51. package/dist/domain/core/prefer-interface-types/rule.js +90 -22
  52. package/dist/domain/custom-rule-documentation.d.ts +1 -14
  53. package/dist/domain/custom-rule-documentation.d.ts.map +1 -1
  54. package/dist/domain/custom-rule-documentation.js +2 -2
  55. package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -1
  56. package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +11 -2
  57. package/dist/domain/docs/no-interface-member-docs/parameter-tags.d.ts.map +1 -1
  58. package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +1 -1
  59. package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
  60. package/dist/domain/docs/no-interface-member-docs/rule.js +7 -2
  61. package/dist/domain/docs/require-example-language/examples.d.ts +4 -15
  62. package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -1
  63. package/dist/domain/docs/require-example-language/examples.js +119 -26
  64. package/dist/domain/docs/require-example-language/fixes.d.ts +1 -21
  65. package/dist/domain/docs/require-example-language/fixes.d.ts.map +1 -1
  66. package/dist/domain/docs/require-example-language/fixes.js +5 -2
  67. package/dist/domain/docs/require-example-language/reporting.d.ts +2 -38
  68. package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -1
  69. package/dist/domain/docs/require-example-language/reporting.js +2 -2
  70. package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -1
  71. package/dist/domain/docs/require-example-language/rule.js +2 -1
  72. package/dist/domain/docs/require-example-language/types.d.ts +1 -1
  73. package/dist/domain/docs/require-example-language/types.d.ts.map +1 -1
  74. package/dist/domain/docs/require-example-language/types.js +1 -1
  75. package/dist/domain/docs/single-line-jsdoc/rule.js +8 -8
  76. package/dist/domain/index.d.ts +2 -3
  77. package/dist/domain/index.d.ts.map +1 -1
  78. package/dist/domain/index.js +3 -4
  79. package/dist/domain/testing/aaa/analyzer.analysis.d.ts +1 -19
  80. package/dist/domain/testing/aaa/analyzer.analysis.d.ts.map +1 -1
  81. package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts +8 -31
  82. package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -1
  83. package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +18 -22
  84. package/dist/domain/testing/aaa/analyzer.analysis.js +46 -39
  85. package/dist/domain/testing/aaa/analyzer.assertions.d.ts +1 -17
  86. package/dist/domain/testing/aaa/analyzer.assertions.d.ts.map +1 -1
  87. package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts +1 -3
  88. package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -1
  89. package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +3 -4
  90. package/dist/domain/testing/aaa/analyzer.assertions.js +5 -33
  91. package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts +1 -3
  92. package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts.map +1 -1
  93. package/dist/domain/testing/aaa/analyzer.assertions.operands.js +6 -5
  94. package/dist/domain/testing/aaa/analyzer.classification.d.ts +1 -15
  95. package/dist/domain/testing/aaa/analyzer.classification.d.ts.map +1 -1
  96. package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts +1 -3
  97. package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts.map +1 -1
  98. package/dist/domain/testing/aaa/analyzer.classification.helpers.js +5 -6
  99. package/dist/domain/testing/aaa/analyzer.classification.js +5 -31
  100. package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts +1 -3
  101. package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts.map +1 -1
  102. package/dist/domain/testing/aaa/analyzer.classification.traversal.js +3 -5
  103. package/dist/domain/testing/aaa/analyzer.super.d.ts +1 -7
  104. package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -1
  105. package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts +1 -14
  106. package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts.map +1 -1
  107. package/dist/domain/testing/aaa/analyzer.super.helpers.js +2 -4
  108. package/dist/domain/testing/aaa/analyzer.super.js +5 -20
  109. package/dist/domain/testing/aaa/index.d.ts +1 -2
  110. package/dist/domain/testing/aaa/index.d.ts.map +1 -1
  111. package/dist/domain/testing/aaa/index.js +2 -2
  112. package/dist/domain/testing/aaa/types.d.ts +1 -1
  113. package/dist/domain/testing/aaa/types.d.ts.map +1 -1
  114. package/dist/domain/testing/aaa/types.js +1 -1
  115. package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -1
  116. package/dist/domain/testing/assert-actual-expected-names/rule.js +28 -3
  117. package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts +2 -1
  118. package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts.map +1 -1
  119. package/dist/domain/testing/enforce-aaa-phase-purity/index.js +3 -2
  120. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts +1 -1
  121. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts.map +1 -1
  122. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.js +1 -1
  123. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts +1 -1
  124. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts.map +1 -1
  125. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.js +78 -16
  126. package/dist/domain/testing/{require-aaa-sections → enforce-aaa-structure}/missing-section-fixes.d.ts +1 -1
  127. package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.d.ts.map +1 -0
  128. package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.js +150 -0
  129. package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -1
  130. package/dist/domain/testing/enforce-aaa-structure/rule.js +166 -7
  131. package/dist/domain/testing/index.d.ts +0 -3
  132. package/dist/domain/testing/index.d.ts.map +1 -1
  133. package/dist/domain/testing/index.js +1 -4
  134. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts +1 -15
  135. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts.map +1 -1
  136. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.js +2 -71
  137. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts.map +1 -1
  138. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +4 -2
  139. package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts +1 -13
  140. package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts.map +1 -1
  141. package/dist/domain/testing/prefer-vi-mocked-import/fix.js +3 -21
  142. package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +1 -1
  143. package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.js +2 -1
  144. package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +1 -1
  145. package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.js +1 -1
  146. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +6 -6
  147. package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts +1 -12
  148. package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -1
  149. package/dist/domain/testing/prefer-vi-mocked-import/match.js +149 -15
  150. package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -1
  151. package/dist/domain/testing/require-act-result-capture/rule.js +37 -8
  152. package/dist/domain/testing/require-test-companion/index.d.ts +0 -1
  153. package/dist/domain/testing/require-test-companion/index.d.ts.map +1 -1
  154. package/dist/domain/testing/require-test-companion/index.js +1 -2
  155. package/dist/domain/testing/require-test-companion/require-test-companion-listeners.d.ts +2 -1
  156. package/dist/domain/testing/require-test-companion/require-test-companion-listeners.d.ts.map +1 -1
  157. package/dist/domain/testing/require-test-companion/require-test-companion-listeners.js +13 -58
  158. package/dist/domain/testing/require-test-companion/require-test-companion-options.d.ts +2 -1
  159. package/dist/domain/testing/require-test-companion/require-test-companion-options.d.ts.map +1 -1
  160. package/dist/domain/testing/require-test-companion/require-test-companion-options.js +6 -5
  161. package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -1
  162. package/dist/domain/testing/require-test-companion/rule.js +7 -7
  163. package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -1
  164. package/dist/domain/testing/single-act-statement/rule.js +6 -3
  165. package/dist/index.d.ts +1 -1
  166. package/dist/index.d.ts.map +1 -1
  167. package/dist/index.js +2 -2
  168. package/dist/infrastructure/codeperfect-plugin.d.ts +6 -6
  169. package/dist/infrastructure/codeperfect-plugin.js +5 -5
  170. package/dist/infrastructure/presets.d.ts.map +1 -1
  171. package/dist/infrastructure/presets.js +23 -7
  172. package/package.json +24 -31
  173. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts +0 -41
  174. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +0 -1
  175. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +0 -87
  176. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts +0 -40
  177. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +0 -1
  178. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +0 -91
  179. package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts +0 -4
  180. package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts.map +0 -1
  181. package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.js +0 -4
  182. package/dist/domain/architecture/consistent-barrel-files/test-helpers.d.ts +0 -141
  183. package/dist/domain/architecture/consistent-barrel-files/test-helpers.d.ts.map +0 -1
  184. package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts +0 -20
  185. package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts.map +0 -1
  186. package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.js +0 -25
  187. package/dist/domain/architecture/consistent-barrel-files/test-helpers.js +0 -235
  188. package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts +0 -101
  189. package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts.map +0 -1
  190. package/dist/domain/core/no-multiple-declarators/rule-test-helpers.js +0 -108
  191. package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts +0 -35
  192. package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts.map +0 -1
  193. package/dist/domain/core/no-multiple-declarators/rule.fixes.js +0 -95
  194. package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts +0 -4
  195. package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts.map +0 -1
  196. package/dist/domain/core/no-multiple-declarators/rule.guardrails.js +0 -4
  197. package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts +0 -4
  198. package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts.map +0 -1
  199. package/dist/domain/core/no-multiple-declarators/rule.mocked-types.js +0 -4
  200. package/dist/domain/core/prefer-interface-types/test-helpers.d.ts +0 -110
  201. package/dist/domain/core/prefer-interface-types/test-helpers.d.ts.map +0 -1
  202. package/dist/domain/core/prefer-interface-types/test-helpers.js +0 -116
  203. package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts +0 -89
  204. package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +0 -1
  205. package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.js +0 -129
  206. package/dist/domain/docs/no-interface-member-docs/test-helpers.d.ts +0 -103
  207. package/dist/domain/docs/no-interface-member-docs/test-helpers.d.ts.map +0 -1
  208. package/dist/domain/docs/no-interface-member-docs/test-helpers.js +0 -157
  209. package/dist/domain/docs/require-example-language/create-fixer.d.ts +0 -5
  210. package/dist/domain/docs/require-example-language/create-fixer.d.ts.map +0 -1
  211. package/dist/domain/docs/require-example-language/create-fixer.js +0 -5
  212. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts +0 -4
  213. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts.map +0 -1
  214. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.js +0 -5
  215. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts +0 -4
  216. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts.map +0 -1
  217. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.js +0 -5
  218. package/dist/domain/docs/test-helpers.d.ts +0 -50
  219. package/dist/domain/docs/test-helpers.d.ts.map +0 -1
  220. package/dist/domain/docs/test-helpers.js +0 -107
  221. package/dist/domain/testing/aaa/analyzer.analysis.unsupported.d.ts +0 -4
  222. package/dist/domain/testing/aaa/analyzer.analysis.unsupported.d.ts.map +0 -1
  223. package/dist/domain/testing/aaa/analyzer.analysis.unsupported.js +0 -4
  224. package/dist/domain/testing/aaa/analyzer.assertions.destructured.d.ts +0 -4
  225. package/dist/domain/testing/aaa/analyzer.assertions.destructured.d.ts.map +0 -1
  226. package/dist/domain/testing/aaa/analyzer.assertions.destructured.js +0 -4
  227. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts +0 -9
  228. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts.map +0 -1
  229. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.js +0 -10
  230. package/dist/domain/testing/aaa/analyzer.classification.mutations.d.ts +0 -4
  231. package/dist/domain/testing/aaa/analyzer.classification.mutations.d.ts.map +0 -1
  232. package/dist/domain/testing/aaa/analyzer.classification.mutations.js +0 -4
  233. package/dist/domain/testing/aaa/analyzer.d.ts +0 -46
  234. package/dist/domain/testing/aaa/analyzer.d.ts.map +0 -1
  235. package/dist/domain/testing/aaa/analyzer.js +0 -59
  236. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.d.ts +0 -4
  237. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.d.ts.map +0 -1
  238. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.js +0 -4
  239. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.d.ts +0 -4
  240. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.d.ts.map +0 -1
  241. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.js +0 -4
  242. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts +0 -4
  243. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts.map +0 -1
  244. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.js +0 -4
  245. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts +0 -42
  246. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts.map +0 -1
  247. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.js +0 -188
  248. package/dist/domain/testing/enforce-aaa-phase-purity/rule.d.ts +0 -5
  249. package/dist/domain/testing/enforce-aaa-phase-purity/rule.d.ts.map +0 -1
  250. package/dist/domain/testing/enforce-aaa-phase-purity/rule.js +0 -37
  251. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts +0 -20
  252. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts.map +0 -1
  253. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.js +0 -39
  254. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts +0 -97
  255. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts.map +0 -1
  256. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.js +0 -174
  257. package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts +0 -2
  258. package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts.map +0 -1
  259. package/dist/domain/testing/prefer-vitest-incremental-casts/index.js +0 -2
  260. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts +0 -14
  261. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts.map +0 -1
  262. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.js +0 -84
  263. package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts +0 -13
  264. package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts.map +0 -1
  265. package/dist/domain/testing/prefer-vitest-incremental-casts/match.js +0 -195
  266. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts +0 -25
  267. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts.map +0 -1
  268. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.js +0 -96
  269. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts +0 -32
  270. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts.map +0 -1
  271. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.js +0 -164
  272. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts +0 -5
  273. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts.map +0 -1
  274. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts +0 -4
  275. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts.map +0 -1
  276. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.js +0 -4
  277. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts +0 -4
  278. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts.map +0 -1
  279. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.js +0 -4
  280. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.js +0 -88
  281. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts +0 -4
  282. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts.map +0 -1
  283. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.js +0 -4
  284. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts +0 -24
  285. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts.map +0 -1
  286. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.js +0 -113
  287. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts +0 -36
  288. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts.map +0 -1
  289. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.js +0 -138
  290. package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts +0 -187
  291. package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts.map +0 -1
  292. package/dist/domain/testing/prefer-vitest-incremental-casts/types.js +0 -2
  293. package/dist/domain/testing/require-aaa-sections/index.d.ts +0 -2
  294. package/dist/domain/testing/require-aaa-sections/index.d.ts.map +0 -1
  295. package/dist/domain/testing/require-aaa-sections/index.js +0 -2
  296. package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts.map +0 -1
  297. package/dist/domain/testing/require-aaa-sections/missing-section-fixes.js +0 -150
  298. package/dist/domain/testing/require-aaa-sections/rule.d.ts +0 -5
  299. package/dist/domain/testing/require-aaa-sections/rule.d.ts.map +0 -1
  300. package/dist/domain/testing/require-aaa-sections/rule.js +0 -134
  301. package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts +0 -104
  302. package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts.map +0 -1
  303. package/dist/domain/testing/require-aaa-sections/rule.reporting.js +0 -216
  304. package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts +0 -51
  305. package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +0 -1
  306. package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.js +0 -184
  307. package/dist/domain/testing/require-test-companion/require-test-companion-utilities.d.ts +0 -28
  308. package/dist/domain/testing/require-test-companion/require-test-companion-utilities.d.ts.map +0 -1
  309. package/dist/domain/testing/require-test-companion/require-test-companion-utilities.js +0 -26
@@ -1,138 +0,0 @@
1
- import { isMethodDeclaration, isMethodSignature, isParameter, isPropertyDeclaration, isPropertySignature, SignatureKind, SymbolFlags, } from "typescript";
2
- /**
3
- * Selects a single object-like branch from a union when one exists.
4
- * @param checker TypeScript type checker instance.
5
- * @param unionType Union type to inspect.
6
- * @returns The single object-like branch when the union is unambiguous.
7
- * @example
8
- * ```typescript
9
- * const branch = getSingleUnionObjectLikeType(checker, unionType);
10
- * ```
11
- */
12
- function getSingleUnionObjectLikeType(checker, unionType) {
13
- const objectLikeTypes = unionType.types.filter((type) => hasObjectShape(checker, type));
14
- return objectLikeTypes.length === 1 ? objectLikeTypes[0] : void 0;
15
- }
16
- /**
17
- * Detects whether a TypeScript type has an object-like surface.
18
- * @param checker TypeScript type checker instance.
19
- * @param targetType Candidate target type.
20
- * @returns True when the type exposes properties or callable signatures.
21
- * @example
22
- * ```typescript
23
- * const objectLike = hasObjectShape(checker, targetType);
24
- * ```
25
- */
26
- function hasObjectShape(checker, targetType) {
27
- return (checker.getPropertiesOfType(targetType).length > 0 ||
28
- checker.getSignaturesOfType(targetType, SignatureKind.Call).length > 0 ||
29
- checker.getSignaturesOfType(targetType, SignatureKind.Construct).length > 0);
30
- }
31
- /**
32
- * Checks whether a TypeScript symbol flag is present without using bitwise syntax.
33
- * @param flags Symbol flag bitset to inspect.
34
- * @param flag Specific flag to test.
35
- * @returns True when the flag is present in the bitset.
36
- * @example
37
- * ```typescript
38
- * const hasOptionalFlag = hasSymbolFlag(SymbolFlags.Optional, SymbolFlags.Optional);
39
- * ```
40
- */
41
- function hasSymbolFlag(flags, flag) {
42
- return Math.trunc(flags / flag) % 2 === 1;
43
- }
44
- /**
45
- * Determines whether a symbol represents an optional object property.
46
- * @param propertySymbol Property symbol being checked.
47
- * @returns True when a declaration marks the property as optional.
48
- * @example
49
- * ```typescript
50
- * const optional = isOptionalSymbol(propertySymbol);
51
- * ```
52
- */
53
- function isOptionalSymbol(propertySymbol) {
54
- const flags = typeof propertySymbol.getFlags === "function"
55
- ? propertySymbol.getFlags()
56
- : (propertySymbol.flags ?? 0);
57
- if (hasSymbolFlag(flags, SymbolFlags.Optional)) {
58
- return true;
59
- }
60
- const declarations = propertySymbol.getDeclarations() ?? [];
61
- return declarations.some((declaration) => {
62
- if (isParameter(declaration) ||
63
- isPropertyDeclaration(declaration) ||
64
- isPropertySignature(declaration) ||
65
- isMethodDeclaration(declaration) ||
66
- isMethodSignature(declaration)) {
67
- return declaration.questionToken !== void 0;
68
- }
69
- return false;
70
- });
71
- }
72
- /**
73
- * Determines whether the object literal still needs an outer cast.
74
- * @param context Data used to decide whether the full object needs casting.
75
- * @returns True when the full object still needs casting.
76
- * @example
77
- * ```typescript
78
- * const needsOuterCast = isOuterCastRequired(context);
79
- * ```
80
- */
81
- function isOuterCastRequired(context) {
82
- const { checker, propertyNames, targetType } = context;
83
- if (checker.getSignaturesOfType(targetType, SignatureKind.Call).length > 0) {
84
- return true;
85
- }
86
- if (checker.getSignaturesOfType(targetType, SignatureKind.Construct).length > 0) {
87
- return true;
88
- }
89
- return checker
90
- .getPropertiesOfType(targetType)
91
- .some((propertySymbol) => !isOptionalSymbol(propertySymbol) &&
92
- !propertyNames.has(propertySymbol.getName()));
93
- }
94
- /**
95
- * Narrows a target type to the object-like type the fixer can reason about.
96
- * @param checker TypeScript type checker instance.
97
- * @param targetType Candidate target type.
98
- * @returns Object-like type when the target can be normalized safely.
99
- * @example
100
- * ```typescript
101
- * const normalizedType = normalizeObjectLikeType(checker, targetType);
102
- * ```
103
- */
104
- function normalizeObjectLikeType(checker, targetType) {
105
- if (targetType === void 0) {
106
- return void 0;
107
- }
108
- const resolvedType = checker.getAwaitedType(targetType);
109
- if (resolvedType === void 0) {
110
- return void 0;
111
- }
112
- const directObjectLikeType = [resolvedType].find((type) => hasObjectShape(checker, type));
113
- return (directObjectLikeType ??
114
- (resolvedType.isUnion()
115
- ? getSingleUnionObjectLikeType(checker, resolvedType)
116
- : void 0));
117
- }
118
- /**
119
- * Resolves the factory function's returned object type from its call signatures.
120
- * @param checker TypeScript type checker instance.
121
- * @param factoryParameterType Type of the factory callback parameter.
122
- * @returns Normalized object-like return type when one is available.
123
- * @example
124
- * ```typescript
125
- * const returnType = resolveFactoryReturnType(checker, factoryParameterType);
126
- * ```
127
- */
128
- function resolveFactoryReturnType(checker, factoryParameterType) {
129
- for (const factorySignature of checker.getSignaturesOfType(factoryParameterType, SignatureKind.Call)) {
130
- const normalizedReturnType = normalizeObjectLikeType(checker, checker.getReturnTypeOfSignature(factorySignature));
131
- if (normalizedReturnType !== void 0) {
132
- return normalizedReturnType;
133
- }
134
- }
135
- return void 0;
136
- }
137
- export { isOuterCastRequired, normalizeObjectLikeType, resolveFactoryReturnType, };
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1zaGFwZS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3ByZWZlci12aXRlc3QtaW5jcmVtZW50YWwtY2FzdHMvdHlwZS1zaGFwZS1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixXQUFXLEdBQ1osTUFBTSxZQUFZLENBQUM7QUFhcEI7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyw0QkFBNEIsQ0FDbkMsT0FBdUIsRUFDdkIsU0FBdUI7SUFFdkIsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUN0RCxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUM5QixDQUFDO0lBRUYsT0FBTyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxjQUFjLENBQUMsT0FBdUIsRUFBRSxVQUFtQjtJQUNsRSxPQUFPLENBQ0wsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ2xELE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ3RFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQzVFLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNH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QztZQUNyRCxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDWixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsd0JBQXdCLENBQy9CLE9BQXVCLEVBQ3ZCLG9CQUE2QjtJQUU3QixLQUFLLE1BQU0sZ0JBQWdCLElBQUksT0FBTyxDQUFDLG1CQUFtQixDQUN4RCxvQkFBb0IsRUFDcEIsYUFBYSxDQUFDLElBQUksQ0FDbkIsRUFBRSxDQUFDO1FBQ0YsTUFBTSxvQkFBb0IsR0FBRyx1QkFBdUIsQ0FDbEQsT0FBTyxFQUNQLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUNuRCxDQUFDO1FBRUYsSUFBSSxvQkFBb0IsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sb0JBQW9CLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0FBQ2hCLENBQUM7QUFFRCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2Qix3QkFBd0IsR0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgdHMgZnJvbSBcInR5cGVzY3JpcHRcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgaXNNZXRob2REZWNsYXJhdGlvbixcclxuICBpc01ldGhvZFNpZ25hdHVyZSxcclxuICBpc1BhcmFtZXRlcixcclxuICBpc1Byb3BlcnR5RGVjbGFyYXRpb24sXHJcbiAgaXNQcm9wZXJ0eVNpZ25hdHVyZSxcclxuICBTaWduYXR1cmVLaW5kLFxyXG4gIFN5bWJvbEZsYWdzLFxyXG59IGZyb20gXCJ0eXBlc2NyaXB0XCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7IE91dGVyQ2FzdENvbnRleHQgfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5cclxuLyoqIE1pbmltYWwgc3ltYm9sLWZsYWcgc2hhcGUgdXNlZCBieSB1bml0LXRlc3QgZG91Ymxlcy4gKi9cclxuaW50ZXJmYWNlIFN5bWJvbFdpdGhPcHRpb25hbEZsYWdzIHtcclxuICAvKiogT3B0aW9uYWwgbnVtZXJpYyBmbGFnIGJpdHNldCBzdXBwbGllZCBieSB0ZXN0IGRvdWJsZXMuICovXHJcbiAgZmxhZ3M/OiBudW1iZXI7XHJcblxyXG4gIC8qKiBPcHRpb25hbCBnZXR0ZXIgdXNlZCBieSByZWFsIFR5cGVTY3JpcHQgc3ltYm9scy4gKi9cclxuICBnZXRGbGFncz86ICgpID0+IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNlbGVjdHMgYSBzaW5nbGUgb2JqZWN0LWxpa2UgYnJhbmNoIGZyb20gYSB1bmlvbiB3aGVuIG9uZSBleGlzdHMuXHJcbiAqIEBwYXJhbSBjaGVja2VyIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyIGluc3RhbmNlLlxyXG4gKiBAcGFyYW0gdW5pb25UeXBlIFVuaW9uIHR5cGUgdG8gaW5zcGVjdC5cclxuICogQHJldHVybnMgVGhlIHNpbmdsZSBvYmplY3QtbGlrZSBicmFuY2ggd2hlbiB0aGUgdW5pb24gaXMgdW5hbWJpZ3VvdXMuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgYnJhbmNoID0gZ2V0U2luZ2xlVW5pb25PYmplY3RMaWtlVHlwZShjaGVja2VyLCB1bmlvblR5cGUpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldFNpbmdsZVVuaW9uT2JqZWN0TGlrZVR5cGUoXHJcbiAgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsXHJcbiAgdW5pb25UeXBlOiB0cy5VbmlvblR5cGUsXHJcbik6IHRzLlR5cGUgfCB1bmRlZmluZWQge1xyXG4gIGNvbnN0IG9iamVjdExpa2VUeXBlcyA9IHVuaW9uVHlwZS50eXBlcy5maWx0ZXIoKHR5cGUpID0+XHJcbiAgICBoYXNPYmplY3RTaGFwZShjaGVja2VyLCB0eXBlKSxcclxuICApO1xyXG5cclxuICByZXR1cm4gb2JqZWN0TGlrZVR5cGVzLmxlbmd0aCA9PT0gMSA/IG9iamVjdExpa2VUeXBlc1swXSA6IHZvaWQgMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIERldGVjdHMgd2hldGhlciBhIFR5cGVTY3JpcHQgdHlwZSBoYXMgYW4gb2JqZWN0LWxpa2Ugc3VyZmFjZS5cclxuICogQHBhcmFtIGNoZWNrZXIgVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIgaW5zdGFuY2UuXHJcbiAqIEBwYXJhbSB0YXJnZXRUeXBlIENhbmRpZGF0ZSB0YXJnZXQgdHlwZS5cclxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSB0eXBlIGV4cG9zZXMgcHJvcGVydGllcyBvciBjYWxsYWJsZSBzaWduYXR1cmVzLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IG9iamVjdExpa2UgPSBoYXNPYmplY3RTaGFwZShjaGVja2VyLCB0YXJnZXRUeXBlKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBoYXNPYmplY3RTaGFwZShjaGVja2VyOiB0cy5UeXBlQ2hlY2tlciwgdGFyZ2V0VHlwZTogdHMuVHlwZSk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAoXHJcbiAgICBjaGVja2VyLmdldFByb3BlcnRpZXNPZlR5cGUodGFyZ2V0VHlwZSkubGVuZ3RoID4gMCB8fFxyXG4gICAgY2hlY2tlci5nZXRTaWduYXR1cmVzT2ZUeXBlKHRhcmdldFR5cGUsIFNpZ25hdHVyZUtpbmQuQ2FsbCkubGVuZ3RoID4gMCB8fFxyXG4gICAgY2hlY2tlci5nZXRTaWduYXR1cmVzT2ZUeXBlKHRhcmdldFR5cGUsIFNpZ25hdHVyZUtpbmQuQ29uc3RydWN0KS5sZW5ndGggPiAwXHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyB3aGV0aGVyIGEgVHlwZVNjcmlwdCBzeW1ib2wgZmxhZyBpcyBwcmVzZW50IHdpdGhvdXQgdXNpbmcgYml0d2lzZSBzeW50YXguXHJcbiAqIEBwYXJhbSBmbGFncyBTeW1ib2wgZmxhZyBiaXRzZXQgdG8gaW5zcGVjdC5cclxuICogQHBhcmFtIGZsYWcgU3BlY2lmaWMgZmxhZyB0byB0ZXN0LlxyXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGZsYWcgaXMgcHJlc2VudCBpbiB0aGUgYml0c2V0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGhhc09wdGlvbmFsRmxhZyA9IGhhc1N5bWJvbEZsYWcoU3ltYm9sRmxhZ3MuT3B0aW9uYWwsIFN5bWJvbEZsYWdzLk9wdGlvbmFsKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBoYXNTeW1ib2xGbGFnKGZsYWdzOiBudW1iZXIsIGZsYWc6IFN5bWJvbEZsYWdzKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIE1hdGgudHJ1bmMoZmxhZ3MgLyBmbGFnKSAlIDIgPT09IDE7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBzeW1ib2wgcmVwcmVzZW50cyBhbiBvcHRpb25hbCBvYmplY3QgcHJvcGVydHkuXHJcbiAqIEBwYXJhbSBwcm9wZXJ0eVN5bWJvbCBQcm9wZXJ0eSBzeW1ib2wgYmVpbmcgY2hlY2tlZC5cclxuICogQHJldHVybnMgVHJ1ZSB3aGVuIGEgZGVjbGFyYXRpb24gbWFya3MgdGhlIHByb3BlcnR5IGFzIG9wdGlvbmFsLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IG9wdGlvbmFsID0gaXNPcHRpb25hbFN5bWJvbChwcm9wZXJ0eVN5bWJvbCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNPcHRpb25hbFN5bWJvbChwcm9wZXJ0eVN5bWJvbDogdHMuU3ltYm9sKTogYm9vbGVhbiB7XHJcbiAgY29uc3QgZmxhZ3MgPVxyXG4gICAgdHlwZW9mIHByb3BlcnR5U3ltYm9sLmdldEZsYWdzID09PSBcImZ1bmN0aW9uXCJcclxuICAgICAgPyBwcm9wZXJ0eVN5bWJvbC5nZXRGbGFncygpXHJcbiAgICAgIDogKChwcm9wZXJ0eVN5bWJvbCBhcyBTeW1ib2xXaXRoT3B0aW9uYWxGbGFncykuZmxhZ3MgPz8gMCk7XHJcblxyXG4gIGlmIChoYXNTeW1ib2xGbGFnKGZsYWdzLCBTeW1ib2xGbGFncy5PcHRpb25hbCkpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZGVjbGFyYXRpb25zID0gcHJvcGVydHlTeW1ib2wuZ2V0RGVjbGFyYXRpb25zKCkgPz8gW107XHJcblxyXG4gIHJldHVybiBkZWNsYXJhdGlvbnMuc29tZSgoZGVjbGFyYXRpb24pID0+IHtcclxuICAgIGlmIChcclxuICAgICAgaXNQYXJhbWV0ZXIoZGVjbGFyYXRpb24pIHx8XHJcbiAgICAgIGlzUHJvcGVydHlEZWNsYXJhdGlvbihkZWNsYXJhdGlvbikgfHxcclxuICAgICAgaXNQcm9wZXJ0eVNpZ25hdHVyZShkZWNsYXJhdGlvbikgfHxcclxuICAgICAgaXNNZXRob2REZWNsYXJhdGlvbihkZWNsYXJhdGlvbikgfHxcclxuICAgICAgaXNNZXRob2RTaWduYXR1cmUoZGVjbGFyYXRpb24pXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIGRlY2xhcmF0aW9uLnF1ZXN0aW9uVG9rZW4gIT09IHZvaWQgMDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIG9iamVjdCBsaXRlcmFsIHN0aWxsIG5lZWRzIGFuIG91dGVyIGNhc3QuXHJcbiAqIEBwYXJhbSBjb250ZXh0IERhdGEgdXNlZCB0byBkZWNpZGUgd2hldGhlciB0aGUgZnVsbCBvYmplY3QgbmVlZHMgY2FzdGluZy5cclxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBmdWxsIG9iamVjdCBzdGlsbCBuZWVkcyBjYXN0aW5nLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IG5lZWRzT3V0ZXJDYXN0ID0gaXNPdXRlckNhc3RSZXF1aXJlZChjb250ZXh0KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc091dGVyQ2FzdFJlcXVpcmVkKGNvbnRleHQ6IE91dGVyQ2FzdENvbnRleHQpOiBib29sZWFuIHtcclxuICBjb25zdCB7IGNoZWNrZXIsIHByb3BlcnR5TmFtZXMsIHRhcmdldFR5cGUgfSA9IGNvbnRleHQ7XHJcblxyXG4gIGlmIChjaGVja2VyLmdldFNpZ25hdHVyZXNPZlR5cGUodGFyZ2V0VHlwZSwgU2lnbmF0dXJlS2luZC5DYWxsKS5sZW5ndGggPiAwKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGlmIChcclxuICAgIGNoZWNrZXIuZ2V0U2lnbmF0dXJlc09mVHlwZSh0YXJnZXRUeXBlLCBTaWduYXR1cmVLaW5kLkNvbnN0cnVjdCkubGVuZ3RoID4gMFxyXG4gICkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gY2hlY2tlclxyXG4gICAgLmdldFByb3BlcnRpZXNPZlR5cGUodGFyZ2V0VHlwZSlcclxuICAgIC5zb21lKFxyXG4gICAgICAocHJvcGVydHlTeW1ib2wpID0+XHJcbiAgICAgICAgIWlzT3B0aW9uYWxTeW1ib2wocHJvcGVydHlTeW1ib2wpICYmXHJcbiAgICAgICAgIXByb3BlcnR5TmFtZXMuaGFzKHByb3BlcnR5U3ltYm9sLmdldE5hbWUoKSksXHJcbiAgICApO1xyXG59XHJcblxyXG4vKipcclxuICogTmFycm93cyBhIHRhcmdldCB0eXBlIHRvIHRoZSBvYmplY3QtbGlrZSB0eXBlIHRoZSBmaXhlciBjYW4gcmVhc29uIGFib3V0LlxyXG4gKiBAcGFyYW0gY2hlY2tlciBUeXBlU2NyaXB0IHR5cGUgY2hlY2tlciBpbnN0YW5jZS5cclxuICogQHBhcmFtIHRhcmdldFR5cGUgQ2FuZGlkYXRlIHRhcmdldCB0eXBlLlxyXG4gKiBAcmV0dXJucyBPYmplY3QtbGlrZSB0eXBlIHdoZW4gdGhlIHRhcmdldCBjYW4gYmUgbm9ybWFsaXplZCBzYWZlbHkuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3Qgbm9ybWFsaXplZFR5cGUgPSBub3JtYWxpemVPYmplY3RMaWtlVHlwZShjaGVja2VyLCB0YXJnZXRUeXBlKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBub3JtYWxpemVPYmplY3RMaWtlVHlwZShcclxuICBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlcixcclxuICB0YXJnZXRUeXBlOiB0cy5UeXBlIHwgdW5kZWZpbmVkLFxyXG4pOiB0cy5UeXBlIHwgdW5kZWZpbmVkIHtcclxuICBpZiAodGFyZ2V0VHlwZSA9PT0gdm9pZCAwKSB7XHJcbiAgICByZXR1cm4gdm9pZCAwO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgcmVzb2x2ZWRUeXBlID0gY2hlY2tlci5nZXRBd2FpdGVkVHlwZSh0YXJnZXRUeXBlKTtcclxuXHJcbiAgaWYgKHJlc29sdmVkVHlwZSA9PT0gdm9pZCAwKSB7XHJcbiAgICByZXR1cm4gdm9pZCAwO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZGlyZWN0T2JqZWN0TGlrZVR5cGUgPSBbcmVzb2x2ZWRUeXBlXS5maW5kKCh0eXBlKSA9PlxyXG4gICAgaGFzT2JqZWN0U2hhcGUoY2hlY2tlciwgdHlwZSksXHJcbiAgKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIGRpcmVjdE9iamVjdExpa2VUeXBlID8/XHJcbiAgICAocmVzb2x2ZWRUeXBlLmlzVW5pb24oKVxyXG4gICAgICA/IGdldFNpbmdsZVVuaW9uT2JqZWN0TGlrZVR5cGUoY2hlY2tlciwgcmVzb2x2ZWRUeXBlKVxyXG4gICAgICA6IHZvaWQgMClcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogUmVzb2x2ZXMgdGhlIGZhY3RvcnkgZnVuY3Rpb24ncyByZXR1cm5lZCBvYmplY3QgdHlwZSBmcm9tIGl0cyBjYWxsIHNpZ25hdHVyZXMuXHJcbiAqIEBwYXJhbSBjaGVja2VyIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyIGluc3RhbmNlLlxyXG4gKiBAcGFyYW0gZmFjdG9yeVBhcmFtZXRlclR5cGUgVHlwZSBvZiB0aGUgZmFjdG9yeSBjYWxsYmFjayBwYXJhbWV0ZXIuXHJcbiAqIEByZXR1cm5zIE5vcm1hbGl6ZWQgb2JqZWN0LWxpa2UgcmV0dXJuIHR5cGUgd2hlbiBvbmUgaXMgYXZhaWxhYmxlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IHJldHVyblR5cGUgPSByZXNvbHZlRmFjdG9yeVJldHVyblR5cGUoY2hlY2tlciwgZmFjdG9yeVBhcmFtZXRlclR5cGUpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHJlc29sdmVGYWN0b3J5UmV0dXJuVHlwZShcclxuICBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlcixcclxuICBmYWN0b3J5UGFyYW1ldGVyVHlwZTogdHMuVHlwZSxcclxuKTogdHMuVHlwZSB8IHVuZGVmaW5lZCB7XHJcbiAgZm9yIChjb25zdCBmYWN0b3J5U2lnbmF0dXJlIG9mIGNoZWNrZXIuZ2V0U2lnbmF0dXJlc09mVHlwZShcclxuICAgIGZhY3RvcnlQYXJhbWV0ZXJUeXBlLFxyXG4gICAgU2lnbmF0dXJlS2luZC5DYWxsLFxyXG4gICkpIHtcclxuICAgIGNvbnN0IG5vcm1hbGl6ZWRSZXR1cm5UeXBlID0gbm9ybWFsaXplT2JqZWN0TGlrZVR5cGUoXHJcbiAgICAgIGNoZWNrZXIsXHJcbiAgICAgIGNoZWNrZXIuZ2V0UmV0dXJuVHlwZU9mU2lnbmF0dXJlKGZhY3RvcnlTaWduYXR1cmUpLFxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAobm9ybWFsaXplZFJldHVyblR5cGUgIT09IHZvaWQgMCkge1xyXG4gICAgICByZXR1cm4gbm9ybWFsaXplZFJldHVyblR5cGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdm9pZCAwO1xyXG59XHJcblxyXG5leHBvcnQge1xyXG4gIGlzT3V0ZXJDYXN0UmVxdWlyZWQsXHJcbiAgbm9ybWFsaXplT2JqZWN0TGlrZVR5cGUsXHJcbiAgcmVzb2x2ZUZhY3RvcnlSZXR1cm5UeXBlLFxyXG59O1xyXG4iXX0=
@@ -1,187 +0,0 @@
1
- import type { ESLintUtils, TSESLint, TSESTree } from "@typescript-eslint/utils";
2
- import type * as ts from "typescript";
3
- /** Context used to build the final replacement for a matching mock object. */
4
- interface BuildMatchResultContext {
5
- /** TypeScript type checker used for assignability checks. */
6
- checker: ts.TypeChecker;
7
- /** Factory function supplied to `vi.mock` or `vi.doMock`. */
8
- factoryArgument: FactoryFunctionExpression;
9
- /** Static module specifier used by the mock call. */
10
- moduleSpecifier: string;
11
- /** Namespace alias for the module specifier, when a namespace import is present. */
12
- namespaceAlias: string | undefined;
13
- /** Returned object literal from the mock factory. */
14
- objectExpression: TSESTree.ObjectExpression;
15
- /** Property names already present in the rewritten object literal. */
16
- propertyNames: Set<string>;
17
- /** Nested property replacements collected for the object literal. */
18
- replacements: PropertyReplacement[];
19
- /** Expression returned by the mock factory. */
20
- returnExpression: TSESTree.Expression;
21
- /** Full source text of the current file. */
22
- sourceText: string;
23
- /** Target type inferred for the factory object. */
24
- targetType: ts.Type;
25
- }
26
- /** Context required to replace one object literal property safely. */
27
- interface BuildPropertyReplacementContext {
28
- /** TypeScript type checker used for assignability checks. */
29
- checker: ts.TypeChecker;
30
- /** Stable property key name from the mock object literal. */
31
- keyName: string;
32
- /** Static module specifier used by the mock call. */
33
- moduleSpecifier: string;
34
- /** Namespace alias for the module specifier, when a namespace import is present. */
35
- namespaceAlias: string | undefined;
36
- /** Supported property being rewritten. */
37
- property: SupportedProperty;
38
- /** Parser services supplied by `@typescript-eslint`. */
39
- services: ParserServices;
40
- /** Full source text of the current file. */
41
- sourceText: string;
42
- /** Target property symbol from the imported module type. */
43
- targetPropertySymbol: ts.Symbol;
44
- }
45
- /** Input required to analyze a `vi.mock` or `vi.doMock` call. */
46
- interface CollectMatchContext {
47
- /** Call expression currently being analyzed. */
48
- callExpression: TSESTree.CallExpression;
49
- /** TypeScript type checker used for assignability checks. */
50
- checker: ts.TypeChecker;
51
- /** Namespace imports present in the current file, keyed by module specifier. */
52
- namespaceImports: ReadonlyMap<string, string>;
53
- /** Parser services supplied by `@typescript-eslint`. */
54
- services: ParserServices;
55
- /** Full source text of the current file. */
56
- sourceText: string;
57
- }
58
- /** Context used to collect nested property replacements. */
59
- interface CollectPropertyReplacementsContext {
60
- /** TypeScript type checker used for assignability checks. */
61
- checker: ts.TypeChecker;
62
- /** Static module specifier used by the mock call. */
63
- moduleSpecifier: string;
64
- /** Namespace alias for the module specifier, when a namespace import is present. */
65
- namespaceAlias: string | undefined;
66
- /** Returned object literal from the mock factory. */
67
- objectExpression: TSESTree.ObjectExpression;
68
- /** Parser services supplied by `@typescript-eslint`. */
69
- services: ParserServices;
70
- /** Full source text of the current file. */
71
- sourceText: string;
72
- /** Target type inferred for the factory object. */
73
- targetType: ts.Type;
74
- }
75
- /** Function expressions supported as Vitest mock factories. */
76
- type FactoryFunctionExpression = TSESTree.ArrowFunctionExpression | TSESTree.FunctionExpression;
77
- /** Resolved inputs required to analyze a matching Vitest mock factory. */
78
- interface FactoryMatchInput {
79
- /** Factory function supplied to `vi.mock` or `vi.doMock`. */
80
- factoryArgument: FactoryFunctionExpression;
81
- /** Static module specifier used by the mock call. */
82
- moduleSpecifier: string;
83
- /** Returned object literal from the mock factory. */
84
- objectExpression: TSESTree.ObjectExpression;
85
- /** Expression returned by the mock factory. */
86
- returnExpression: TSESTree.Expression;
87
- }
88
- /** Text replacement emitted for a matching factory object. */
89
- interface MatchResult {
90
- /** Replacement source text for the returned object expression. */
91
- replacementText: string;
92
- /** Absolute range of the return expression to replace. */
93
- returnExpressionRange: TSESTree.Range;
94
- }
95
- /** Rule message identifiers emitted by this rule. */
96
- type MessageIds = "preferVitestIncrementalCasts";
97
- /** Normalized arguments extracted from a supported mock call. */
98
- interface MockFactoryArguments {
99
- /** Factory function supplied to `vi.mock` or `vi.doMock`. */
100
- factoryArgument: FactoryFunctionExpression;
101
- /** Static or import-expression module argument. */
102
- moduleArgument: TSESTree.Expression;
103
- }
104
- /** Rule options accepted by this rule. */
105
- type Options = [];
106
- /** Context required to decide whether an outer cast is still needed. */
107
- interface OuterCastContext {
108
- /** TypeScript type checker used for assignability checks. */
109
- checker: ts.TypeChecker;
110
- /** Property names already present in the rewritten object literal. */
111
- propertyNames: ReadonlySet<string>;
112
- /** Target type inferred for the factory object. */
113
- targetType: ts.Type;
114
- }
115
- /** Parser services resolved from the configured TypeScript parser. */
116
- type ParserServices = ReturnType<typeof ESLintUtils.getParserServices>;
117
- /** Individual replacement details for one property inside the object literal. */
118
- interface PropertyReplacement {
119
- /** Absolute range of the property inside the object literal. */
120
- range: TSESTree.Range;
121
- /** Replacement source text for the property. */
122
- replacementText: string;
123
- }
124
- /** Replacement collection result for the object literal properties. */
125
- interface PropertyReplacementCollection {
126
- /** Property names already present in the rewritten object literal. */
127
- propertyNames: Set<string>;
128
- /** Nested property replacements collected for the object literal. */
129
- replacements: PropertyReplacement[];
130
- }
131
- /** Context for resolving the target type of a mock factory object literal. */
132
- interface ResolveFactoryTargetTypeContext {
133
- /** Call expression currently being analyzed. */
134
- callExpression: TSESTree.CallExpression;
135
- /** TypeScript type checker used for assignability checks. */
136
- checker: ts.TypeChecker;
137
- /** Factory function supplied to `vi.mock` or `vi.doMock`. */
138
- factoryArgument: FactoryFunctionExpression;
139
- /** Returned object literal from the mock factory. */
140
- objectExpression: TSESTree.ObjectExpression;
141
- /** Parser services supplied by `@typescript-eslint`. */
142
- services: ParserServices;
143
- }
144
- /** Context for determining whether shorthand syntax remains valid. */
145
- interface ShorthandContext {
146
- /** Expression used as the property's value. */
147
- baseValue: TSESTree.Expression;
148
- /** Stable property key name from the mock object literal. */
149
- keyName: string;
150
- /** Whether the property value needs a nested cast. */
151
- needsCast: boolean;
152
- /** Supported property being rewritten. */
153
- property: SupportedProperty;
154
- }
155
- /** Object literal properties supported by the fixer. */
156
- type SupportedProperty = Extract<TSESTree.ObjectLiteralElement, TSESTree.Property> & {
157
- /** Indicates that computed property syntax is not allowed. */
158
- computed: false;
159
- /** Restricts the key to statically readable property names. */
160
- key: SupportedPropertyKey;
161
- /** Restricts the property to initializer syntax. */
162
- kind: "init";
163
- /** Indicates that method shorthand is not allowed. */
164
- method: false;
165
- /** Absolute range of the full property inside the source file. */
166
- range: TSESTree.Range;
167
- /** Expression value assigned to the property. */
168
- value: SupportedPropertyValueRange & TSESTree.Expression;
169
- };
170
- /** Property keys supported by the fixer. */
171
- type SupportedPropertyKey = (SupportedPropertyKeyRange & TSESTree.Identifier) | (SupportedPropertyKeyRange & TSESTree.Literal);
172
- /** Stable property-key range metadata. */
173
- interface SupportedPropertyKeyRange {
174
- /** Absolute range of the property key inside the source file. */
175
- range: TSESTree.Range;
176
- }
177
- /** Stable property-value range metadata. */
178
- interface SupportedPropertyValueRange {
179
- /** Absolute range of the property value inside the source file. */
180
- range: TSESTree.Range;
181
- }
182
- /** Property-symbol lookup keyed by object literal property name. */
183
- type TargetPropertyMap = ReadonlyMap<string, ts.Symbol>;
184
- /** Typed rule context used by the typed RuleCreator wrapper. */
185
- type TypedRuleContext = Readonly<TSESLint.RuleContext<MessageIds, Options>>;
186
- export type { BuildMatchResultContext, BuildPropertyReplacementContext, CollectMatchContext, CollectPropertyReplacementsContext, FactoryFunctionExpression, FactoryMatchInput, MatchResult, MessageIds, MockFactoryArguments, Options, OuterCastContext, ParserServices, PropertyReplacement, PropertyReplacementCollection, ResolveFactoryTargetTypeContext, ShorthandContext, SupportedProperty, TargetPropertyMap, TypedRuleContext, };
187
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpdGVzdC1pbmNyZW1lbnRhbC1jYXN0cy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFU0xpbnRVdGlscywgVFNFU0xpbnQsIFRTRVNUcmVlIH0gZnJvbSBcIkB0eXBlc2NyaXB0LWVzbGludC91dGlsc1wiO1xyXG5pbXBvcnQgdHlwZSAqIGFzIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XHJcblxyXG4vKiogQ29udGV4dCB1c2VkIHRvIGJ1aWxkIHRoZSBmaW5hbCByZXBsYWNlbWVudCBmb3IgYSBtYXRjaGluZyBtb2NrIG9iamVjdC4gKi9cclxuaW50ZXJmYWNlIEJ1aWxkTWF0Y2hSZXN1bHRDb250ZXh0IHtcclxuICAvKiogVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIgdXNlZCBmb3IgYXNzaWduYWJpbGl0eSBjaGVja3MuICovXHJcbiAgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXI7XHJcblxyXG4gIC8qKiBGYWN0b3J5IGZ1bmN0aW9uIHN1cHBsaWVkIHRvIGB2aS5tb2NrYCBvciBgdmkuZG9Nb2NrYC4gKi9cclxuICBmYWN0b3J5QXJndW1lbnQ6IEZhY3RvcnlGdW5jdGlvbkV4cHJlc3Npb247XHJcblxyXG4gIC8qKiBTdGF0aWMgbW9kdWxlIHNwZWNpZmllciB1c2VkIGJ5IHRoZSBtb2NrIGNhbGwuICovXHJcbiAgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmc7XHJcblxyXG4gIC8qKiBOYW1lc3BhY2UgYWxpYXMgZm9yIHRoZSBtb2R1bGUgc3BlY2lmaWVyLCB3aGVuIGEgbmFtZXNwYWNlIGltcG9ydCBpcyBwcmVzZW50LiAqL1xyXG4gIG5hbWVzcGFjZUFsaWFzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKiBSZXR1cm5lZCBvYmplY3QgbGl0ZXJhbCBmcm9tIHRoZSBtb2NrIGZhY3RvcnkuICovXHJcbiAgb2JqZWN0RXhwcmVzc2lvbjogVFNFU1RyZWUuT2JqZWN0RXhwcmVzc2lvbjtcclxuXHJcbiAgLyoqIFByb3BlcnR5IG5hbWVzIGFscmVhZHkgcHJlc2VudCBpbiB0aGUgcmV3cml0dGVuIG9iamVjdCBsaXRlcmFsLiAqL1xyXG4gIHByb3BlcnR5TmFtZXM6IFNldDxzdHJpbmc+O1xyXG5cclxuICAvKiogTmVzdGVkIHByb3BlcnR5IHJlcGxhY2VtZW50cyBjb2xsZWN0ZWQgZm9yIHRoZSBvYmplY3QgbGl0ZXJhbC4gKi9cclxuICByZXBsYWNlbWVudHM6IFByb3BlcnR5UmVwbGFjZW1lbnRbXTtcclxuXHJcbiAgLyoqIEV4cHJlc3Npb24gcmV0dXJuZWQgYnkgdGhlIG1vY2sgZmFjdG9yeS4gKi9cclxuICByZXR1cm5FeHByZXNzaW9uOiBUU0VTVHJlZS5FeHByZXNzaW9uO1xyXG5cclxuICAvKiogRnVsbCBzb3VyY2UgdGV4dCBvZiB0aGUgY3VycmVudCBmaWxlLiAqL1xyXG4gIHNvdXJjZVRleHQ6IHN0cmluZztcclxuXHJcbiAgLyoqIFRhcmdldCB0eXBlIGluZmVycmVkIGZvciB0aGUgZmFjdG9yeSBvYmplY3QuICovXHJcbiAgdGFyZ2V0VHlwZTogdHMuVHlwZTtcclxufVxyXG5cclxuLyoqIENvbnRleHQgcmVxdWlyZWQgdG8gcmVwbGFjZSBvbmUgb2JqZWN0IGxpdGVyYWwgcHJvcGVydHkgc2FmZWx5LiAqL1xyXG5pbnRlcmZhY2UgQnVpbGRQcm9wZXJ0eVJlcGxhY2VtZW50Q29udGV4dCB7XHJcbiAgLyoqIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyIHVzZWQgZm9yIGFzc2lnbmFiaWxpdHkgY2hlY2tzLiAqL1xyXG4gIGNoZWNrZXI6IHRzLlR5cGVDaGVja2VyO1xyXG5cclxuICAvKiogU3RhYmxlIHByb3BlcnR5IGtleSBuYW1lIGZyb20gdGhlIG1vY2sgb2JqZWN0IGxpdGVyYWwuICovXHJcbiAga2V5TmFtZTogc3RyaW5nO1xyXG5cclxuICAvKiogU3RhdGljIG1vZHVsZSBzcGVjaWZpZXIgdXNlZCBieSB0aGUgbW9jayBjYWxsLiAqL1xyXG4gIG1vZHVsZVNwZWNpZmllcjogc3RyaW5nO1xyXG5cclxuICAvKiogTmFtZXNwYWNlIGFsaWFzIGZvciB0aGUgbW9kdWxlIHNwZWNpZmllciwgd2hlbiBhIG5hbWVzcGFjZSBpbXBvcnQgaXMgcHJlc2VudC4gKi9cclxuICBuYW1lc3BhY2VBbGlhczogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKiogU3VwcG9ydGVkIHByb3BlcnR5IGJlaW5nIHJld3JpdHRlbi4gKi9cclxuICBwcm9wZXJ0eTogU3VwcG9ydGVkUHJvcGVydHk7XHJcblxyXG4gIC8qKiBQYXJzZXIgc2VydmljZXMgc3VwcGxpZWQgYnkgYEB0eXBlc2NyaXB0LWVzbGludGAuICovXHJcbiAgc2VydmljZXM6IFBhcnNlclNlcnZpY2VzO1xyXG5cclxuICAvKiogRnVsbCBzb3VyY2UgdGV4dCBvZiB0aGUgY3VycmVudCBmaWxlLiAqL1xyXG4gIHNvdXJjZVRleHQ6IHN0cmluZztcclxuXHJcbiAgLyoqIFRhcmdldCBwcm9wZXJ0eSBzeW1ib2wgZnJvbSB0aGUgaW1wb3J0ZWQgbW9kdWxlIHR5cGUuICovXHJcbiAgdGFyZ2V0UHJvcGVydHlTeW1ib2w6IHRzLlN5bWJvbDtcclxufVxyXG5cclxuLyoqIElucHV0IHJlcXVpcmVkIHRvIGFuYWx5emUgYSBgdmkubW9ja2Agb3IgYHZpLmRvTW9ja2AgY2FsbC4gKi9cclxuaW50ZXJmYWNlIENvbGxlY3RNYXRjaENvbnRleHQge1xyXG4gIC8qKiBDYWxsIGV4cHJlc3Npb24gY3VycmVudGx5IGJlaW5nIGFuYWx5emVkLiAqL1xyXG4gIGNhbGxFeHByZXNzaW9uOiBUU0VTVHJlZS5DYWxsRXhwcmVzc2lvbjtcclxuXHJcbiAgLyoqIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyIHVzZWQgZm9yIGFzc2lnbmFiaWxpdHkgY2hlY2tzLiAqL1xyXG4gIGNoZWNrZXI6IHRzLlR5cGVDaGVja2VyO1xyXG5cclxuICAvKiogTmFtZXNwYWNlIGltcG9ydHMgcHJlc2VudCBpbiB0aGUgY3VycmVudCBmaWxlLCBrZXllZCBieSBtb2R1bGUgc3BlY2lmaWVyLiAqL1xyXG4gIG5hbWVzcGFjZUltcG9ydHM6IFJlYWRvbmx5TWFwPHN0cmluZywgc3RyaW5nPjtcclxuXHJcbiAgLyoqIFBhcnNlciBzZXJ2aWNlcyBzdXBwbGllZCBieSBgQHR5cGVzY3JpcHQtZXNsaW50YC4gKi9cclxuICBzZXJ2aWNlczogUGFyc2VyU2VydmljZXM7XHJcblxyXG4gIC8qKiBGdWxsIHNvdXJjZSB0ZXh0IG9mIHRoZSBjdXJyZW50IGZpbGUuICovXHJcbiAgc291cmNlVGV4dDogc3RyaW5nO1xyXG59XHJcblxyXG4vKiogQ29udGV4dCB1c2VkIHRvIGNvbGxlY3QgbmVzdGVkIHByb3BlcnR5IHJlcGxhY2VtZW50cy4gKi9cclxuaW50ZXJmYWNlIENvbGxlY3RQcm9wZXJ0eVJlcGxhY2VtZW50c0NvbnRleHQge1xyXG4gIC8qKiBUeXBlU2NyaXB0IHR5cGUgY2hlY2tlciB1c2VkIGZvciBhc3NpZ25hYmlsaXR5IGNoZWNrcy4gKi9cclxuICBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlcjtcclxuXHJcbiAgLyoqIFN0YXRpYyBtb2R1bGUgc3BlY2lmaWVyIHVzZWQgYnkgdGhlIG1vY2sgY2FsbC4gKi9cclxuICBtb2R1bGVTcGVjaWZpZXI6IHN0cmluZztcclxuXHJcbiAgLyoqIE5hbWVzcGFjZSBhbGlhcyBmb3IgdGhlIG1vZHVsZSBzcGVjaWZpZXIsIHdoZW4gYSBuYW1lc3BhY2UgaW1wb3J0IGlzIHByZXNlbnQuICovXHJcbiAgbmFtZXNwYWNlQWxpYXM6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqIFJldHVybmVkIG9iamVjdCBsaXRlcmFsIGZyb20gdGhlIG1vY2sgZmFjdG9yeS4gKi9cclxuICBvYmplY3RFeHByZXNzaW9uOiBUU0VTVHJlZS5PYmplY3RFeHByZXNzaW9uO1xyXG5cclxuICAvKiogUGFyc2VyIHNlcnZpY2VzIHN1cHBsaWVkIGJ5IGBAdHlwZXNjcmlwdC1lc2xpbnRgLiAqL1xyXG4gIHNlcnZpY2VzOiBQYXJzZXJTZXJ2aWNlcztcclxuXHJcbiAgLyoqIEZ1bGwgc291cmNlIHRleHQgb2YgdGhlIGN1cnJlbnQgZmlsZS4gKi9cclxuICBzb3VyY2VUZXh0OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBUYXJnZXQgdHlwZSBpbmZlcnJlZCBmb3IgdGhlIGZhY3Rvcnkgb2JqZWN0LiAqL1xyXG4gIHRhcmdldFR5cGU6IHRzLlR5cGU7XHJcbn1cclxuXHJcbi8qKiBGdW5jdGlvbiBleHByZXNzaW9ucyBzdXBwb3J0ZWQgYXMgVml0ZXN0IG1vY2sgZmFjdG9yaWVzLiAqL1xyXG50eXBlIEZhY3RvcnlGdW5jdGlvbkV4cHJlc3Npb24gPVxyXG4gIHwgVFNFU1RyZWUuQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cclxuICB8IFRTRVNUcmVlLkZ1bmN0aW9uRXhwcmVzc2lvbjtcclxuXHJcbi8qKiBSZXNvbHZlZCBpbnB1dHMgcmVxdWlyZWQgdG8gYW5hbHl6ZSBhIG1hdGNoaW5nIFZpdGVzdCBtb2NrIGZhY3RvcnkuICovXHJcbmludGVyZmFjZSBGYWN0b3J5TWF0Y2hJbnB1dCB7XHJcbiAgLyoqIEZhY3RvcnkgZnVuY3Rpb24gc3VwcGxpZWQgdG8gYHZpLm1vY2tgIG9yIGB2aS5kb01vY2tgLiAqL1xyXG4gIGZhY3RvcnlBcmd1bWVudDogRmFjdG9yeUZ1bmN0aW9uRXhwcmVzc2lvbjtcclxuXHJcbiAgLyoqIFN0YXRpYyBtb2R1bGUgc3BlY2lmaWVyIHVzZWQgYnkgdGhlIG1vY2sgY2FsbC4gKi9cclxuICBtb2R1bGVTcGVjaWZpZXI6IHN0cmluZztcclxuXHJcbiAgLyoqIFJldHVybmVkIG9iamVjdCBsaXRlcmFsIGZyb20gdGhlIG1vY2sgZmFjdG9yeS4gKi9cclxuICBvYmplY3RFeHByZXNzaW9uOiBUU0VTVHJlZS5PYmplY3RFeHByZXNzaW9uO1xyXG5cclxuICAvKiogRXhwcmVzc2lvbiByZXR1cm5lZCBieSB0aGUgbW9jayBmYWN0b3J5LiAqL1xyXG4gIHJldHVybkV4cHJlc3Npb246IFRTRVNUcmVlLkV4cHJlc3Npb247XHJcbn1cclxuXHJcbi8qKiBUZXh0IHJlcGxhY2VtZW50IGVtaXR0ZWQgZm9yIGEgbWF0Y2hpbmcgZmFjdG9yeSBvYmplY3QuICovXHJcbmludGVyZmFjZSBNYXRjaFJlc3VsdCB7XHJcbiAgLyoqIFJlcGxhY2VtZW50IHNvdXJjZSB0ZXh0IGZvciB0aGUgcmV0dXJuZWQgb2JqZWN0IGV4cHJlc3Npb24uICovXHJcbiAgcmVwbGFjZW1lbnRUZXh0OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBBYnNvbHV0ZSByYW5nZSBvZiB0aGUgcmV0dXJuIGV4cHJlc3Npb24gdG8gcmVwbGFjZS4gKi9cclxuICByZXR1cm5FeHByZXNzaW9uUmFuZ2U6IFRTRVNUcmVlLlJhbmdlO1xyXG59XHJcblxyXG4vKiogUnVsZSBtZXNzYWdlIGlkZW50aWZpZXJzIGVtaXR0ZWQgYnkgdGhpcyBydWxlLiAqL1xyXG50eXBlIE1lc3NhZ2VJZHMgPSBcInByZWZlclZpdGVzdEluY3JlbWVudGFsQ2FzdHNcIjtcclxuXHJcbi8qKiBOb3JtYWxpemVkIGFyZ3VtZW50cyBleHRyYWN0ZWQgZnJvbSBhIHN1cHBvcnRlZCBtb2NrIGNhbGwuICovXHJcbmludGVyZmFjZSBNb2NrRmFjdG9yeUFyZ3VtZW50cyB7XHJcbiAgLyoqIEZhY3RvcnkgZnVuY3Rpb24gc3VwcGxpZWQgdG8gYHZpLm1vY2tgIG9yIGB2aS5kb01vY2tgLiAqL1xyXG4gIGZhY3RvcnlBcmd1bWVudDogRmFjdG9yeUZ1bmN0aW9uRXhwcmVzc2lvbjtcclxuXHJcbiAgLyoqIFN0YXRpYyBvciBpbXBvcnQtZXhwcmVzc2lvbiBtb2R1bGUgYXJndW1lbnQuICovXHJcbiAgbW9kdWxlQXJndW1lbnQ6IFRTRVNUcmVlLkV4cHJlc3Npb247XHJcbn1cclxuXHJcbi8qKiBSdWxlIG9wdGlvbnMgYWNjZXB0ZWQgYnkgdGhpcyBydWxlLiAqL1xyXG50eXBlIE9wdGlvbnMgPSBbXTtcclxuXHJcbi8qKiBDb250ZXh0IHJlcXVpcmVkIHRvIGRlY2lkZSB3aGV0aGVyIGFuIG91dGVyIGNhc3QgaXMgc3RpbGwgbmVlZGVkLiAqL1xyXG5pbnRlcmZhY2UgT3V0ZXJDYXN0Q29udGV4dCB7XHJcbiAgLyoqIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyIHVzZWQgZm9yIGFzc2lnbmFiaWxpdHkgY2hlY2tzLiAqL1xyXG4gIGNoZWNrZXI6IHRzLlR5cGVDaGVja2VyO1xyXG5cclxuICAvKiogUHJvcGVydHkgbmFtZXMgYWxyZWFkeSBwcmVzZW50IGluIHRoZSByZXdyaXR0ZW4gb2JqZWN0IGxpdGVyYWwuICovXHJcbiAgcHJvcGVydHlOYW1lczogUmVhZG9ubHlTZXQ8c3RyaW5nPjtcclxuXHJcbiAgLyoqIFRhcmdldCB0eXBlIGluZmVycmVkIGZvciB0aGUgZmFjdG9yeSBvYmplY3QuICovXHJcbiAgdGFyZ2V0VHlwZTogdHMuVHlwZTtcclxufVxyXG4vKiogUGFyc2VyIHNlcnZpY2VzIHJlc29sdmVkIGZyb20gdGhlIGNvbmZpZ3VyZWQgVHlwZVNjcmlwdCBwYXJzZXIuICovXHJcbnR5cGUgUGFyc2VyU2VydmljZXMgPSBSZXR1cm5UeXBlPHR5cGVvZiBFU0xpbnRVdGlscy5nZXRQYXJzZXJTZXJ2aWNlcz47XHJcbi8qKiBJbmRpdmlkdWFsIHJlcGxhY2VtZW50IGRldGFpbHMgZm9yIG9uZSBwcm9wZXJ0eSBpbnNpZGUgdGhlIG9iamVjdCBsaXRlcmFsLiAqL1xyXG5pbnRlcmZhY2UgUHJvcGVydHlSZXBsYWNlbWVudCB7XHJcbiAgLyoqIEFic29sdXRlIHJhbmdlIG9mIHRoZSBwcm9wZXJ0eSBpbnNpZGUgdGhlIG9iamVjdCBsaXRlcmFsLiAqL1xyXG4gIHJhbmdlOiBUU0VTVHJlZS5SYW5nZTtcclxuXHJcbiAgLyoqIFJlcGxhY2VtZW50IHNvdXJjZSB0ZXh0IGZvciB0aGUgcHJvcGVydHkuICovXHJcbiAgcmVwbGFjZW1lbnRUZXh0OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKiBSZXBsYWNlbWVudCBjb2xsZWN0aW9uIHJlc3VsdCBmb3IgdGhlIG9iamVjdCBsaXRlcmFsIHByb3BlcnRpZXMuICovXHJcbmludGVyZmFjZSBQcm9wZXJ0eVJlcGxhY2VtZW50Q29sbGVjdGlvbiB7XHJcbiAgLyoqIFByb3BlcnR5IG5hbWVzIGFscmVhZHkgcHJlc2VudCBpbiB0aGUgcmV3cml0dGVuIG9iamVjdCBsaXRlcmFsLiAqL1xyXG4gIHByb3BlcnR5TmFtZXM6IFNldDxzdHJpbmc+O1xyXG5cclxuICAvKiogTmVzdGVkIHByb3BlcnR5IHJlcGxhY2VtZW50cyBjb2xsZWN0ZWQgZm9yIHRoZSBvYmplY3QgbGl0ZXJhbC4gKi9cclxuICByZXBsYWNlbWVudHM6IFByb3BlcnR5UmVwbGFjZW1lbnRbXTtcclxufVxyXG5cclxuLyoqIENvbnRleHQgZm9yIHJlc29sdmluZyB0aGUgdGFyZ2V0IHR5cGUgb2YgYSBtb2NrIGZhY3Rvcnkgb2JqZWN0IGxpdGVyYWwuICovXHJcbmludGVyZmFjZSBSZXNvbHZlRmFjdG9yeVRhcmdldFR5cGVDb250ZXh0IHtcclxuICAvKiogQ2FsbCBleHByZXNzaW9uIGN1cnJlbnRseSBiZWluZyBhbmFseXplZC4gKi9cclxuICBjYWxsRXhwcmVzc2lvbjogVFNFU1RyZWUuQ2FsbEV4cHJlc3Npb247XHJcblxyXG4gIC8qKiBUeXBlU2NyaXB0IHR5cGUgY2hlY2tlciB1c2VkIGZvciBhc3NpZ25hYmlsaXR5IGNoZWNrcy4gKi9cclxuICBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlcjtcclxuXHJcbiAgLyoqIEZhY3RvcnkgZnVuY3Rpb24gc3VwcGxpZWQgdG8gYHZpLm1vY2tgIG9yIGB2aS5kb01vY2tgLiAqL1xyXG4gIGZhY3RvcnlBcmd1bWVudDogRmFjdG9yeUZ1bmN0aW9uRXhwcmVzc2lvbjtcclxuXHJcbiAgLyoqIFJldHVybmVkIG9iamVjdCBsaXRlcmFsIGZyb20gdGhlIG1vY2sgZmFjdG9yeS4gKi9cclxuICBvYmplY3RFeHByZXNzaW9uOiBUU0VTVHJlZS5PYmplY3RFeHByZXNzaW9uO1xyXG5cclxuICAvKiogUGFyc2VyIHNlcnZpY2VzIHN1cHBsaWVkIGJ5IGBAdHlwZXNjcmlwdC1lc2xpbnRgLiAqL1xyXG4gIHNlcnZpY2VzOiBQYXJzZXJTZXJ2aWNlcztcclxufVxyXG4vKiogQ29udGV4dCBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciBzaG9ydGhhbmQgc3ludGF4IHJlbWFpbnMgdmFsaWQuICovXHJcbmludGVyZmFjZSBTaG9ydGhhbmRDb250ZXh0IHtcclxuICAvKiogRXhwcmVzc2lvbiB1c2VkIGFzIHRoZSBwcm9wZXJ0eSdzIHZhbHVlLiAqL1xyXG4gIGJhc2VWYWx1ZTogVFNFU1RyZWUuRXhwcmVzc2lvbjtcclxuXHJcbiAgLyoqIFN0YWJsZSBwcm9wZXJ0eSBrZXkgbmFtZSBmcm9tIHRoZSBtb2NrIG9iamVjdCBsaXRlcmFsLiAqL1xyXG4gIGtleU5hbWU6IHN0cmluZztcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIHByb3BlcnR5IHZhbHVlIG5lZWRzIGEgbmVzdGVkIGNhc3QuICovXHJcbiAgbmVlZHNDYXN0OiBib29sZWFuO1xyXG5cclxuICAvKiogU3VwcG9ydGVkIHByb3BlcnR5IGJlaW5nIHJld3JpdHRlbi4gKi9cclxuICBwcm9wZXJ0eTogU3VwcG9ydGVkUHJvcGVydHk7XHJcbn1cclxuLyoqIE9iamVjdCBsaXRlcmFsIHByb3BlcnRpZXMgc3VwcG9ydGVkIGJ5IHRoZSBmaXhlci4gKi9cclxudHlwZSBTdXBwb3J0ZWRQcm9wZXJ0eSA9IEV4dHJhY3Q8XHJcbiAgVFNFU1RyZWUuT2JqZWN0TGl0ZXJhbEVsZW1lbnQsXHJcbiAgVFNFU1RyZWUuUHJvcGVydHlcclxuPiAmIHtcclxuICAvKiogSW5kaWNhdGVzIHRoYXQgY29tcHV0ZWQgcHJvcGVydHkgc3ludGF4IGlzIG5vdCBhbGxvd2VkLiAqL1xyXG4gIGNvbXB1dGVkOiBmYWxzZTtcclxuXHJcbiAgLyoqIFJlc3RyaWN0cyB0aGUga2V5IHRvIHN0YXRpY2FsbHkgcmVhZGFibGUgcHJvcGVydHkgbmFtZXMuICovXHJcbiAga2V5OiBTdXBwb3J0ZWRQcm9wZXJ0eUtleTtcclxuXHJcbiAgLyoqIFJlc3RyaWN0cyB0aGUgcHJvcGVydHkgdG8gaW5pdGlhbGl6ZXIgc3ludGF4LiAqL1xyXG4gIGtpbmQ6IFwiaW5pdFwiO1xyXG5cclxuICAvKiogSW5kaWNhdGVzIHRoYXQgbWV0aG9kIHNob3J0aGFuZCBpcyBub3QgYWxsb3dlZC4gKi9cclxuICBtZXRob2Q6IGZhbHNlO1xyXG5cclxuICAvKiogQWJzb2x1dGUgcmFuZ2Ugb2YgdGhlIGZ1bGwgcHJvcGVydHkgaW5zaWRlIHRoZSBzb3VyY2UgZmlsZS4gKi9cclxuICByYW5nZTogVFNFU1RyZWUuUmFuZ2U7XHJcblxyXG4gIC8qKiBFeHByZXNzaW9uIHZhbHVlIGFzc2lnbmVkIHRvIHRoZSBwcm9wZXJ0eS4gKi9cclxuICB2YWx1ZTogU3VwcG9ydGVkUHJvcGVydHlWYWx1ZVJhbmdlICYgVFNFU1RyZWUuRXhwcmVzc2lvbjtcclxufTtcclxuLyoqIFByb3BlcnR5IGtleXMgc3VwcG9ydGVkIGJ5IHRoZSBmaXhlci4gKi9cclxudHlwZSBTdXBwb3J0ZWRQcm9wZXJ0eUtleSA9XHJcbiAgfCAoU3VwcG9ydGVkUHJvcGVydHlLZXlSYW5nZSAmIFRTRVNUcmVlLklkZW50aWZpZXIpXHJcbiAgfCAoU3VwcG9ydGVkUHJvcGVydHlLZXlSYW5nZSAmIFRTRVNUcmVlLkxpdGVyYWwpO1xyXG4vKiogU3RhYmxlIHByb3BlcnR5LWtleSByYW5nZSBtZXRhZGF0YS4gKi9cclxuaW50ZXJmYWNlIFN1cHBvcnRlZFByb3BlcnR5S2V5UmFuZ2Uge1xyXG4gIC8qKiBBYnNvbHV0ZSByYW5nZSBvZiB0aGUgcHJvcGVydHkga2V5IGluc2lkZSB0aGUgc291cmNlIGZpbGUuICovXHJcbiAgcmFuZ2U6IFRTRVNUcmVlLlJhbmdlO1xyXG59XHJcbi8qKiBTdGFibGUgcHJvcGVydHktdmFsdWUgcmFuZ2UgbWV0YWRhdGEuICovXHJcbmludGVyZmFjZSBTdXBwb3J0ZWRQcm9wZXJ0eVZhbHVlUmFuZ2Uge1xyXG4gIC8qKiBBYnNvbHV0ZSByYW5nZSBvZiB0aGUgcHJvcGVydHkgdmFsdWUgaW5zaWRlIHRoZSBzb3VyY2UgZmlsZS4gKi9cclxuICByYW5nZTogVFNFU1RyZWUuUmFuZ2U7XHJcbn1cclxuLyoqIFByb3BlcnR5LXN5bWJvbCBsb29rdXAga2V5ZWQgYnkgb2JqZWN0IGxpdGVyYWwgcHJvcGVydHkgbmFtZS4gKi9cclxudHlwZSBUYXJnZXRQcm9wZXJ0eU1hcCA9IFJlYWRvbmx5TWFwPHN0cmluZywgdHMuU3ltYm9sPjtcclxuXHJcbi8qKiBUeXBlZCBydWxlIGNvbnRleHQgdXNlZCBieSB0aGUgdHlwZWQgUnVsZUNyZWF0b3Igd3JhcHBlci4gKi9cclxudHlwZSBUeXBlZFJ1bGVDb250ZXh0ID0gUmVhZG9ubHk8VFNFU0xpbnQuUnVsZUNvbnRleHQ8TWVzc2FnZUlkcywgT3B0aW9ucz4+O1xyXG5cclxuZXhwb3J0IHR5cGUge1xyXG4gIEJ1aWxkTWF0Y2hSZXN1bHRDb250ZXh0LFxyXG4gIEJ1aWxkUHJvcGVydHlSZXBsYWNlbWVudENvbnRleHQsXHJcbiAgQ29sbGVjdE1hdGNoQ29udGV4dCxcclxuICBDb2xsZWN0UHJvcGVydHlSZXBsYWNlbWVudHNDb250ZXh0LFxyXG4gIEZhY3RvcnlGdW5jdGlvbkV4cHJlc3Npb24sXHJcbiAgRmFjdG9yeU1hdGNoSW5wdXQsXHJcbiAgTWF0Y2hSZXN1bHQsXHJcbiAgTWVzc2FnZUlkcyxcclxuICBNb2NrRmFjdG9yeUFyZ3VtZW50cyxcclxuICBPcHRpb25zLFxyXG4gIE91dGVyQ2FzdENvbnRleHQsXHJcbiAgUGFyc2VyU2VydmljZXMsXHJcbiAgUHJvcGVydHlSZXBsYWNlbWVudCxcclxuICBQcm9wZXJ0eVJlcGxhY2VtZW50Q29sbGVjdGlvbixcclxuICBSZXNvbHZlRmFjdG9yeVRhcmdldFR5cGVDb250ZXh0LFxyXG4gIFNob3J0aGFuZENvbnRleHQsXHJcbiAgU3VwcG9ydGVkUHJvcGVydHksXHJcbiAgVGFyZ2V0UHJvcGVydHlNYXAsXHJcbiAgVHlwZWRSdWxlQ29udGV4dCxcclxufTtcclxuIl19
@@ -1,2 +0,0 @@
1
- export { requireAaaSectionsRule } from "./rule.js";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-aaa-sections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC"}
@@ -1,2 +0,0 @@
1
- export { requireAaaSectionsRule } from "./rule.js";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcmVxdWlyZS1hYWEtc2VjdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgcmVxdWlyZUFhYVNlY3Rpb25zUnVsZSB9IGZyb20gXCIuL3J1bGVcIjtcbiJdfQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"missing-section-fixes.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-aaa-sections/missing-section-fixes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAmG1D;;;;;;;;;;;GAWG;AACH,iBAAS,wBAAwB,CAC/B,QAAQ,EAAE,iBAAiB,EAC3B,eAAe,EAAE,SAAS,QAAQ,EAAE,EACpC,KAAK,EAAE,IAAI,CAAC,SAAS,GACpB,IAAI,CAAC,GAAG,EAAE,CAWZ;AA4GD,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1,150 +0,0 @@
1
- import { aaaPhaseOrder, getLineStartRange } from "../aaa/index.js";
2
- /**
3
- * Groups missing phases by insertion offset.
4
- * @param anchors Anchor statements available for insertion.
5
- * @param missingSections Missing AAA phases to insert.
6
- * @returns Map of source offsets to phases that should be inserted there.
7
- * @example
8
- * ```typescript
9
- * const anchorMap = buildAnchorMap({ firstStatement: { range: [0, 1] } as never, lastStatement: { range: [2, 3] } as never, middleStatement: { range: [1, 2] } as never }, ["Arrange"]);
10
- * void anchorMap;
11
- * ```
12
- */
13
- function buildAnchorMap(anchors, missingSections) {
14
- const anchorMap = new Map();
15
- for (const phase of missingSections) {
16
- const anchorNode = getAnchorNode(anchors, phase);
17
- const existing = anchorMap.get(anchorNode.range[0]) ?? [];
18
- existing.push(phase);
19
- anchorMap.set(anchorNode.range[0], existing);
20
- }
21
- return anchorMap;
22
- }
23
- /**
24
- * Builds one autofix that inserts missing section markers before a statement.
25
- * @param input Composite input for one missing-section fix.
26
- * @returns Fix that inserts the missing section marker text.
27
- * @example
28
- * ```typescript
29
- * const fix = buildMissingSectionFix({ analysis: { newline: "\n", sourceText: "value" } as never, fixer: {} as never, offset: 0, phases: ["Arrange"] });
30
- * void fix;
31
- * ```
32
- */
33
- function buildMissingSectionFix(input) {
34
- const { analysis, fixer, offset, phases } = input;
35
- const sourceLines = analysis.sourceText.split(/\r\n|\n/u);
36
- const sortedPhases = phases.toSorted((left, right) => aaaPhaseOrder[left] - aaaPhaseOrder[right]);
37
- const statementLine = analysis.sourceText
38
- .slice(0, offset)
39
- .split(/\r\n|\n/u).length;
40
- const lineStartRange = getLineStartRange(analysis.sourceText, statementLine);
41
- const [previousLine = ""] = statementLine > 1
42
- ? sourceLines.slice(statementLine - 2, statementLine - 1)
43
- : [];
44
- const needsLeadingBlankLine = shouldInsertLeadingBlankLine(sortedPhases, previousLine);
45
- const [currentLine = ""] = sourceLines.slice(statementLine - 1, statementLine);
46
- const indentation = getLineIndentation(currentLine);
47
- return fixer.insertTextBeforeRange(lineStartRange, `${needsLeadingBlankLine ? analysis.newline : ""}${indentation}// ${sortedPhases.join(" & ")}${analysis.newline}`);
48
- }
49
- /**
50
- * Builds autofix edits for each missing AAA section marker.
51
- * @param analysis Parsed test-block analysis.
52
- * @param missingSections Missing AAA phases to insert.
53
- * @param fixer ESLint fixer instance.
54
- * @returns Fixes that add the missing section comments.
55
- * @example
56
- * ```typescript
57
- * const fixes = buildMissingSectionFixes({ newline: "\n", sourceText: "value" } as never, ["Arrange"], {} as never);
58
- * void fixes;
59
- * ```
60
- */
61
- function buildMissingSectionFixes(analysis, missingSections, fixer) {
62
- const anchors = getSectionAnchors(analysis);
63
- if (anchors === void 0) {
64
- return [];
65
- }
66
- return [...buildAnchorMap(anchors, missingSections).entries()].map(([offset, phases]) => buildMissingSectionFix({ analysis, fixer, offset, phases }));
67
- }
68
- /**
69
- * Selects the anchor statement used for one missing AAA phase.
70
- * @param anchors Anchor statements available for insertion.
71
- * @param phase Missing phase being inserted.
72
- * @returns Statement node used as the insertion anchor.
73
- * @example
74
- * ```typescript
75
- * const anchor = getAnchorNode({ firstStatement: {} as never, lastStatement: {} as never, middleStatement: {} as never }, "Arrange");
76
- * void anchor;
77
- * ```
78
- */
79
- function getAnchorNode(anchors, phase) {
80
- switch (phase) {
81
- case "Act": {
82
- return anchors.middleStatement;
83
- }
84
- case "Arrange": {
85
- return anchors.firstStatement;
86
- }
87
- case "Assert": {
88
- return anchors.lastStatement;
89
- }
90
- default: {
91
- return anchors.lastStatement;
92
- }
93
- }
94
- }
95
- /**
96
- * Reads the indentation prefix from a source line.
97
- * @param lineText Source line text.
98
- * @returns Leading whitespace for the line.
99
- * @example
100
- * ```typescript
101
- * const indentation = getLineIndentation(" value");
102
- * void indentation;
103
- * ```
104
- */
105
- function getLineIndentation(lineText) {
106
- const trimmedLine = lineText.trimStart();
107
- return lineText.slice(0, lineText.length - trimmedLine.length);
108
- }
109
- /**
110
- * Selects the statement nodes used as insertion anchors for missing sections.
111
- * @param analysis Parsed test-block analysis.
112
- * @returns Anchor statements for Arrange, Act, and Assert insertion.
113
- * @example
114
- * ```typescript
115
- * const anchors = getSectionAnchors({ statements: [] } as never);
116
- * void anchors;
117
- * ```
118
- */
119
- function getSectionAnchors(analysis) {
120
- const [firstStatementEntry] = analysis.statements;
121
- const middleStatementEntry = analysis.statements[Math.min(analysis.statements.length - 1, Math.floor(analysis.statements.length / 2))];
122
- const lastStatementEntry = analysis.statements.at(-1);
123
- if (firstStatementEntry === void 0 ||
124
- middleStatementEntry === void 0 ||
125
- lastStatementEntry === void 0) {
126
- return void 0;
127
- }
128
- return {
129
- firstStatement: firstStatementEntry.node,
130
- lastStatement: lastStatementEntry.node,
131
- middleStatement: middleStatementEntry.node,
132
- };
133
- }
134
- /**
135
- * Determines whether a missing section insertion needs a blank line prefix.
136
- * @param phases Missing phases inserted at the same offset.
137
- * @param previousLine Source line immediately above the insertion point.
138
- * @returns Whether the inserted marker should start with a blank line.
139
- * @example
140
- * ```typescript
141
- * const actual = shouldInsertLeadingBlankLine(["Act"], "run();");
142
- * void actual;
143
- * ```
144
- */
145
- function shouldInsertLeadingBlankLine(phases, previousLine) {
146
- return (phases.some((phase) => phase !== "Arrange") &&
147
- previousLine.trim().length > 0);
148
- }
149
- export { buildMissingSectionFixes };
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzc2luZy1zZWN0aW9uLWZpeGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3JlcXVpcmUtYWFhLXNlY3Rpb25zL21pc3Npbmctc2VjdGlvbi1maXhlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBNkIxRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBUyxjQUFjLENBQ3JCLE9BQXlCLEVBQ3pCLGVBQW9DO0lBRXBDLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxFQUFzQixDQUFDO0lBRWhELEtBQUssTUFBTSxLQUFLLElBQUksZUFBZSxFQUFFLENBQUM7UUFDcEMsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFMUQsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLHNCQUFzQixDQUFDLEtBQTZCO0lBQzNELE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDbEQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FDbEMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUM1RCxDQUFDO0lBQ0YsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLFVBQVU7U0FDdEMsS0FBSyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUM7U0FDaEIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM1QixNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzdFLE1BQU0sQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLEdBQ3ZCLGFBQWEsR0FBRyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLENBQUMsRUFBRSxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDVCxNQUFNLHFCQUFxQixHQUFHLDRCQUE0QixDQUN4RCxZQUFZLEVBQ1osWUFBWSxDQUNiLENBQUM7SUFDRixNQUFNLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQzFDLGFBQWEsR0FBRyxDQUFDLEVBQ2pCLGFBQWEsQ0FDZCxDQUFDO0lBQ0YsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFcEQsT0FBTyxLQUFLLENBQUMscUJBQXFCLENBQ2hDLGNBQWMsRUFDZCxHQUFHLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsV0FBVyxNQUFNLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUNsSCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBUyx3QkFBd0IsQ0FDL0IsUUFBMkIsRUFDM0IsZUFBb0MsRUFDcEMsS0FBcUI7SUFFckIsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFNUMsSUFBSSxPQUFPLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBRyxjQUFjLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUNoRSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FDbkIsc0JBQXNCLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUM5RCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLGFBQWEsQ0FDcEIsT0FBeUIsRUFDekIsS0FBZTtJQUVmLFFBQVEsS0FBSyxFQUFFLENBQUM7UUFDZCxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDWCxPQUFPLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDakMsQ0FBQztRQUNELEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNmLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2QsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQy9CLENBQUM7UUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ1IsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsa0JBQWtCLENBQUMsUUFBZ0I7SUFDMUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRXpDLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsaUJBQWlCLENBQ3hCLFFBQTJCO0lBRTNCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUM7SUFDbEQsTUFBTSxvQkFBb0IsR0FDeEIsUUFBUSxDQUFDLFVBQVUsQ0FDakIsSUFBSSxDQUFDLEdBQUcsQ0FDTixRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQzNDLENBQ0YsQ0FBQztJQUNKLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV0RCxJQUNFLG1CQUFtQixLQUFLLEtBQUssQ0FBQztRQUM5QixvQkFBb0IsS0FBSyxLQUFLLENBQUM7UUFDL0Isa0JBQWtCLEtBQUssS0FBSyxDQUFDLEVBQzdCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPO1FBQ0wsY0FBYyxFQUFFLG1CQUFtQixDQUFDLElBQUk7UUFDeEMsYUFBYSxFQUFFLGtCQUFrQixDQUFDLElBQUk7UUFDdEMsZUFBZSxFQUFFLG9CQUFvQixDQUFDLElBQUk7S0FDM0MsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBUyw0QkFBNEIsQ0FDbkMsTUFBMkIsRUFDM0IsWUFBb0I7SUFFcEIsT0FBTyxDQUNMLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7UUFDM0MsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQy9CLENBQUM7QUFDSixDQUFDO0FBRUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7IEFhYVBoYXNlLCBUZXN0QmxvY2tBbmFseXNpcyB9IGZyb20gXCIuLi9hYWFcIjtcclxuXHJcbmltcG9ydCB7IGFhYVBoYXNlT3JkZXIsIGdldExpbmVTdGFydFJhbmdlIH0gZnJvbSBcIi4uL2FhYVwiO1xyXG5cclxuLyoqIENvbXBvc2l0ZSBpbnB1dCBmb3IgYnVpbGRpbmcgb25lIG1pc3Npbmctc2VjdGlvbiBmaXguICovXHJcbmludGVyZmFjZSBNaXNzaW5nU2VjdGlvbkZpeElucHV0IHtcclxuICAvKiogUGFyc2VkIHRlc3QtYmxvY2sgYW5hbHlzaXMuICovXHJcbiAgYW5hbHlzaXM6IFRlc3RCbG9ja0FuYWx5c2lzO1xyXG5cclxuICAvKiogRVNMaW50IGZpeGVyIGluc3RhbmNlLiAqL1xyXG4gIGZpeGVyOiBSdWxlLlJ1bGVGaXhlcjtcclxuXHJcbiAgLyoqIFNvdXJjZSBvZmZzZXQgd2hlcmUgdGhlIHNlY3Rpb24gbWFya2VyIHNob3VsZCBiZSBpbnNlcnRlZC4gKi9cclxuICBvZmZzZXQ6IG51bWJlcjtcclxuXHJcbiAgLyoqIE1pc3NpbmcgcGhhc2VzIHRoYXQgc2hhcmUgdGhlIHNhbWUgaW5zZXJ0aW9uIG9mZnNldC4gKi9cclxuICBwaGFzZXM6IHJlYWRvbmx5IEFhYVBoYXNlW107XHJcbn1cclxuXHJcbi8qKiBBbmNob3Igc3RhdGVtZW50cyB1c2VkIHRvIHBsYWNlIG1pc3NpbmcgQUFBIHNlY3Rpb24gY29tbWVudHMuICovXHJcbmludGVyZmFjZSBTdGF0ZW1lbnRBbmNob3JzIHtcclxuICAvKiogRmlyc3Qgc3RhdGVtZW50IGF2YWlsYWJsZSBmb3IgYW4gQXJyYW5nZSBpbnNlcnRpb24uICovXHJcbiAgZmlyc3RTdGF0ZW1lbnQ6IFRlc3RCbG9ja0FuYWx5c2lzW1wic3RhdGVtZW50c1wiXVtudW1iZXJdW1wibm9kZVwiXTtcclxuXHJcbiAgLyoqIExhc3Qgc3RhdGVtZW50IGF2YWlsYWJsZSBmb3IgYW4gQXNzZXJ0IGluc2VydGlvbi4gKi9cclxuICBsYXN0U3RhdGVtZW50OiBUZXN0QmxvY2tBbmFseXNpc1tcInN0YXRlbWVudHNcIl1bbnVtYmVyXVtcIm5vZGVcIl07XHJcblxyXG4gIC8qKiBNaWRkbGUgc3RhdGVtZW50IGF2YWlsYWJsZSBmb3IgYW4gQWN0IGluc2VydGlvbi4gKi9cclxuICBtaWRkbGVTdGF0ZW1lbnQ6IFRlc3RCbG9ja0FuYWx5c2lzW1wic3RhdGVtZW50c1wiXVtudW1iZXJdW1wibm9kZVwiXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdyb3VwcyBtaXNzaW5nIHBoYXNlcyBieSBpbnNlcnRpb24gb2Zmc2V0LlxyXG4gKiBAcGFyYW0gYW5jaG9ycyBBbmNob3Igc3RhdGVtZW50cyBhdmFpbGFibGUgZm9yIGluc2VydGlvbi5cclxuICogQHBhcmFtIG1pc3NpbmdTZWN0aW9ucyBNaXNzaW5nIEFBQSBwaGFzZXMgdG8gaW5zZXJ0LlxyXG4gKiBAcmV0dXJucyBNYXAgb2Ygc291cmNlIG9mZnNldHMgdG8gcGhhc2VzIHRoYXQgc2hvdWxkIGJlIGluc2VydGVkIHRoZXJlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGFuY2hvck1hcCA9IGJ1aWxkQW5jaG9yTWFwKHsgZmlyc3RTdGF0ZW1lbnQ6IHsgcmFuZ2U6IFswLCAxXSB9IGFzIG5ldmVyLCBsYXN0U3RhdGVtZW50OiB7IHJhbmdlOiBbMiwgM10gfSBhcyBuZXZlciwgbWlkZGxlU3RhdGVtZW50OiB7IHJhbmdlOiBbMSwgMl0gfSBhcyBuZXZlciB9LCBbXCJBcnJhbmdlXCJdKTtcclxuICogdm9pZCBhbmNob3JNYXA7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRBbmNob3JNYXAoXHJcbiAgYW5jaG9yczogU3RhdGVtZW50QW5jaG9ycyxcclxuICBtaXNzaW5nU2VjdGlvbnM6IHJlYWRvbmx5IEFhYVBoYXNlW10sXHJcbik6IE1hcDxudW1iZXIsIEFhYVBoYXNlW10+IHtcclxuICBjb25zdCBhbmNob3JNYXAgPSBuZXcgTWFwPG51bWJlciwgQWFhUGhhc2VbXT4oKTtcclxuXHJcbiAgZm9yIChjb25zdCBwaGFzZSBvZiBtaXNzaW5nU2VjdGlvbnMpIHtcclxuICAgIGNvbnN0IGFuY2hvck5vZGUgPSBnZXRBbmNob3JOb2RlKGFuY2hvcnMsIHBoYXNlKTtcclxuICAgIGNvbnN0IGV4aXN0aW5nID0gYW5jaG9yTWFwLmdldChhbmNob3JOb2RlLnJhbmdlWzBdKSA/PyBbXTtcclxuXHJcbiAgICBleGlzdGluZy5wdXNoKHBoYXNlKTtcclxuICAgIGFuY2hvck1hcC5zZXQoYW5jaG9yTm9kZS5yYW5nZVswXSwgZXhpc3RpbmcpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGFuY2hvck1hcDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEJ1aWxkcyBvbmUgYXV0b2ZpeCB0aGF0IGluc2VydHMgbWlzc2luZyBzZWN0aW9uIG1hcmtlcnMgYmVmb3JlIGEgc3RhdGVtZW50LlxyXG4gKiBAcGFyYW0gaW5wdXQgQ29tcG9zaXRlIGlucHV0IGZvciBvbmUgbWlzc2luZy1zZWN0aW9uIGZpeC5cclxuICogQHJldHVybnMgRml4IHRoYXQgaW5zZXJ0cyB0aGUgbWlzc2luZyBzZWN0aW9uIG1hcmtlciB0ZXh0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGZpeCA9IGJ1aWxkTWlzc2luZ1NlY3Rpb25GaXgoeyBhbmFseXNpczogeyBuZXdsaW5lOiBcIlxcblwiLCBzb3VyY2VUZXh0OiBcInZhbHVlXCIgfSBhcyBuZXZlciwgZml4ZXI6IHt9IGFzIG5ldmVyLCBvZmZzZXQ6IDAsIHBoYXNlczogW1wiQXJyYW5nZVwiXSB9KTtcclxuICogdm9pZCBmaXg7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRNaXNzaW5nU2VjdGlvbkZpeChpbnB1dDogTWlzc2luZ1NlY3Rpb25GaXhJbnB1dCk6IFJ1bGUuRml4IHtcclxuICBjb25zdCB7IGFuYWx5c2lzLCBmaXhlciwgb2Zmc2V0LCBwaGFzZXMgfSA9IGlucHV0O1xyXG4gIGNvbnN0IHNvdXJjZUxpbmVzID0gYW5hbHlzaXMuc291cmNlVGV4dC5zcGxpdCgvXFxyXFxufFxcbi91KTtcclxuICBjb25zdCBzb3J0ZWRQaGFzZXMgPSBwaGFzZXMudG9Tb3J0ZWQoXHJcbiAgICAobGVmdCwgcmlnaHQpID0+IGFhYVBoYXNlT3JkZXJbbGVmdF0gLSBhYWFQaGFzZU9yZGVyW3JpZ2h0XSxcclxuICApO1xyXG4gIGNvbnN0IHN0YXRlbWVudExpbmUgPSBhbmFseXNpcy5zb3VyY2VUZXh0XHJcbiAgICAuc2xpY2UoMCwgb2Zmc2V0KVxyXG4gICAgLnNwbGl0KC9cXHJcXG58XFxuL3UpLmxlbmd0aDtcclxuICBjb25zdCBsaW5lU3RhcnRSYW5nZSA9IGdldExpbmVTdGFydFJhbmdlKGFuYWx5c2lzLnNvdXJjZVRleHQsIHN0YXRlbWVudExpbmUpO1xyXG4gIGNvbnN0IFtwcmV2aW91c0xpbmUgPSBcIlwiXSA9XHJcbiAgICBzdGF0ZW1lbnRMaW5lID4gMVxyXG4gICAgICA/IHNvdXJjZUxpbmVzLnNsaWNlKHN0YXRlbWVudExpbmUgLSAyLCBzdGF0ZW1lbnRMaW5lIC0gMSlcclxuICAgICAgOiBbXTtcclxuICBjb25zdCBuZWVkc0xlYWRpbmdCbGFua0xpbmUgPSBzaG91bGRJbnNlcnRMZWFkaW5nQmxhbmtMaW5lKFxyXG4gICAgc29ydGVkUGhhc2VzLFxyXG4gICAgcHJldmlvdXNMaW5lLFxyXG4gICk7XHJcbiAgY29uc3QgW2N1cnJlbnRMaW5lID0gXCJcIl0gPSBzb3VyY2VMaW5lcy5zbGljZShcclxuICAgIHN0YXRlbWVudExpbmUgLSAxLFxyXG4gICAgc3RhdGVtZW50TGluZSxcclxuICApO1xyXG4gIGNvbnN0IGluZGVudGF0aW9uID0gZ2V0TGluZUluZGVudGF0aW9uKGN1cnJlbnRMaW5lKTtcclxuXHJcbiAgcmV0dXJuIGZpeGVyLmluc2VydFRleHRCZWZvcmVSYW5nZShcclxuICAgIGxpbmVTdGFydFJhbmdlLFxyXG4gICAgYCR7bmVlZHNMZWFkaW5nQmxhbmtMaW5lID8gYW5hbHlzaXMubmV3bGluZSA6IFwiXCJ9JHtpbmRlbnRhdGlvbn0vLyAke3NvcnRlZFBoYXNlcy5qb2luKFwiICYgXCIpfSR7YW5hbHlzaXMubmV3bGluZX1gLFxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBCdWlsZHMgYXV0b2ZpeCBlZGl0cyBmb3IgZWFjaCBtaXNzaW5nIEFBQSBzZWN0aW9uIG1hcmtlci5cclxuICogQHBhcmFtIGFuYWx5c2lzIFBhcnNlZCB0ZXN0LWJsb2NrIGFuYWx5c2lzLlxyXG4gKiBAcGFyYW0gbWlzc2luZ1NlY3Rpb25zIE1pc3NpbmcgQUFBIHBoYXNlcyB0byBpbnNlcnQuXHJcbiAqIEBwYXJhbSBmaXhlciBFU0xpbnQgZml4ZXIgaW5zdGFuY2UuXHJcbiAqIEByZXR1cm5zIEZpeGVzIHRoYXQgYWRkIHRoZSBtaXNzaW5nIHNlY3Rpb24gY29tbWVudHMuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZml4ZXMgPSBidWlsZE1pc3NpbmdTZWN0aW9uRml4ZXMoeyBuZXdsaW5lOiBcIlxcblwiLCBzb3VyY2VUZXh0OiBcInZhbHVlXCIgfSBhcyBuZXZlciwgW1wiQXJyYW5nZVwiXSwge30gYXMgbmV2ZXIpO1xyXG4gKiB2b2lkIGZpeGVzO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGJ1aWxkTWlzc2luZ1NlY3Rpb25GaXhlcyhcclxuICBhbmFseXNpczogVGVzdEJsb2NrQW5hbHlzaXMsXHJcbiAgbWlzc2luZ1NlY3Rpb25zOiByZWFkb25seSBBYWFQaGFzZVtdLFxyXG4gIGZpeGVyOiBSdWxlLlJ1bGVGaXhlcixcclxuKTogUnVsZS5GaXhbXSB7XHJcbiAgY29uc3QgYW5jaG9ycyA9IGdldFNlY3Rpb25BbmNob3JzKGFuYWx5c2lzKTtcclxuXHJcbiAgaWYgKGFuY2hvcnMgPT09IHZvaWQgMCkge1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIFsuLi5idWlsZEFuY2hvck1hcChhbmNob3JzLCBtaXNzaW5nU2VjdGlvbnMpLmVudHJpZXMoKV0ubWFwKFxyXG4gICAgKFtvZmZzZXQsIHBoYXNlc10pID0+XHJcbiAgICAgIGJ1aWxkTWlzc2luZ1NlY3Rpb25GaXgoeyBhbmFseXNpcywgZml4ZXIsIG9mZnNldCwgcGhhc2VzIH0pLFxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZWxlY3RzIHRoZSBhbmNob3Igc3RhdGVtZW50IHVzZWQgZm9yIG9uZSBtaXNzaW5nIEFBQSBwaGFzZS5cclxuICogQHBhcmFtIGFuY2hvcnMgQW5jaG9yIHN0YXRlbWVudHMgYXZhaWxhYmxlIGZvciBpbnNlcnRpb24uXHJcbiAqIEBwYXJhbSBwaGFzZSBNaXNzaW5nIHBoYXNlIGJlaW5nIGluc2VydGVkLlxyXG4gKiBAcmV0dXJucyBTdGF0ZW1lbnQgbm9kZSB1c2VkIGFzIHRoZSBpbnNlcnRpb24gYW5jaG9yLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGFuY2hvciA9IGdldEFuY2hvck5vZGUoeyBmaXJzdFN0YXRlbWVudDoge30gYXMgbmV2ZXIsIGxhc3RTdGF0ZW1lbnQ6IHt9IGFzIG5ldmVyLCBtaWRkbGVTdGF0ZW1lbnQ6IHt9IGFzIG5ldmVyIH0sIFwiQXJyYW5nZVwiKTtcclxuICogdm9pZCBhbmNob3I7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0QW5jaG9yTm9kZShcclxuICBhbmNob3JzOiBTdGF0ZW1lbnRBbmNob3JzLFxyXG4gIHBoYXNlOiBBYWFQaGFzZSxcclxuKTogU3RhdGVtZW50QW5jaG9yc1trZXlvZiBTdGF0ZW1lbnRBbmNob3JzXSB7XHJcbiAgc3dpdGNoIChwaGFzZSkge1xyXG4gICAgY2FzZSBcIkFjdFwiOiB7XHJcbiAgICAgIHJldHVybiBhbmNob3JzLm1pZGRsZVN0YXRlbWVudDtcclxuICAgIH1cclxuICAgIGNhc2UgXCJBcnJhbmdlXCI6IHtcclxuICAgICAgcmV0dXJuIGFuY2hvcnMuZmlyc3RTdGF0ZW1lbnQ7XHJcbiAgICB9XHJcbiAgICBjYXNlIFwiQXNzZXJ0XCI6IHtcclxuICAgICAgcmV0dXJuIGFuY2hvcnMubGFzdFN0YXRlbWVudDtcclxuICAgIH1cclxuICAgIGRlZmF1bHQ6IHtcclxuICAgICAgcmV0dXJuIGFuY2hvcnMubGFzdFN0YXRlbWVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZWFkcyB0aGUgaW5kZW50YXRpb24gcHJlZml4IGZyb20gYSBzb3VyY2UgbGluZS5cclxuICogQHBhcmFtIGxpbmVUZXh0IFNvdXJjZSBsaW5lIHRleHQuXHJcbiAqIEByZXR1cm5zIExlYWRpbmcgd2hpdGVzcGFjZSBmb3IgdGhlIGxpbmUuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgaW5kZW50YXRpb24gPSBnZXRMaW5lSW5kZW50YXRpb24oXCIgIHZhbHVlXCIpO1xyXG4gKiB2b2lkIGluZGVudGF0aW9uO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldExpbmVJbmRlbnRhdGlvbihsaW5lVGV4dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICBjb25zdCB0cmltbWVkTGluZSA9IGxpbmVUZXh0LnRyaW1TdGFydCgpO1xyXG5cclxuICByZXR1cm4gbGluZVRleHQuc2xpY2UoMCwgbGluZVRleHQubGVuZ3RoIC0gdHJpbW1lZExpbmUubGVuZ3RoKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNlbGVjdHMgdGhlIHN0YXRlbWVudCBub2RlcyB1c2VkIGFzIGluc2VydGlvbiBhbmNob3JzIGZvciBtaXNzaW5nIHNlY3Rpb25zLlxyXG4gKiBAcGFyYW0gYW5hbHlzaXMgUGFyc2VkIHRlc3QtYmxvY2sgYW5hbHlzaXMuXHJcbiAqIEByZXR1cm5zIEFuY2hvciBzdGF0ZW1lbnRzIGZvciBBcnJhbmdlLCBBY3QsIGFuZCBBc3NlcnQgaW5zZXJ0aW9uLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGFuY2hvcnMgPSBnZXRTZWN0aW9uQW5jaG9ycyh7IHN0YXRlbWVudHM6IFtdIH0gYXMgbmV2ZXIpO1xyXG4gKiB2b2lkIGFuY2hvcnM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0U2VjdGlvbkFuY2hvcnMoXHJcbiAgYW5hbHlzaXM6IFRlc3RCbG9ja0FuYWx5c2lzLFxyXG4pOiBTdGF0ZW1lbnRBbmNob3JzIHwgdW5kZWZpbmVkIHtcclxuICBjb25zdCBbZmlyc3RTdGF0ZW1lbnRFbnRyeV0gPSBhbmFseXNpcy5zdGF0ZW1lbnRzO1xyXG4gIGNvbnN0IG1pZGRsZVN0YXRlbWVudEVudHJ5ID1cclxuICAgIGFuYWx5c2lzLnN0YXRlbWVudHNbXHJcbiAgICAgIE1hdGgubWluKFxyXG4gICAgICAgIGFuYWx5c2lzLnN0YXRlbWVudHMubGVuZ3RoIC0gMSxcclxuICAgICAgICBNYXRoLmZsb29yKGFuYWx5c2lzLnN0YXRlbWVudHMubGVuZ3RoIC8gMiksXHJcbiAgICAgIClcclxuICAgIF07XHJcbiAgY29uc3QgbGFzdFN0YXRlbWVudEVudHJ5ID0gYW5hbHlzaXMuc3RhdGVtZW50cy5hdCgtMSk7XHJcblxyXG4gIGlmIChcclxuICAgIGZpcnN0U3RhdGVtZW50RW50cnkgPT09IHZvaWQgMCB8fFxyXG4gICAgbWlkZGxlU3RhdGVtZW50RW50cnkgPT09IHZvaWQgMCB8fFxyXG4gICAgbGFzdFN0YXRlbWVudEVudHJ5ID09PSB2b2lkIDBcclxuICApIHtcclxuICAgIHJldHVybiB2b2lkIDA7XHJcbiAgfVxyXG5cclxuICByZXR1cm4ge1xyXG4gICAgZmlyc3RTdGF0ZW1lbnQ6IGZpcnN0U3RhdGVtZW50RW50cnkubm9kZSxcclxuICAgIGxhc3RTdGF0ZW1lbnQ6IGxhc3RTdGF0ZW1lbnRFbnRyeS5ub2RlLFxyXG4gICAgbWlkZGxlU3RhdGVtZW50OiBtaWRkbGVTdGF0ZW1lbnRFbnRyeS5ub2RlLFxyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBtaXNzaW5nIHNlY3Rpb24gaW5zZXJ0aW9uIG5lZWRzIGEgYmxhbmsgbGluZSBwcmVmaXguXHJcbiAqIEBwYXJhbSBwaGFzZXMgTWlzc2luZyBwaGFzZXMgaW5zZXJ0ZWQgYXQgdGhlIHNhbWUgb2Zmc2V0LlxyXG4gKiBAcGFyYW0gcHJldmlvdXNMaW5lIFNvdXJjZSBsaW5lIGltbWVkaWF0ZWx5IGFib3ZlIHRoZSBpbnNlcnRpb24gcG9pbnQuXHJcbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGluc2VydGVkIG1hcmtlciBzaG91bGQgc3RhcnQgd2l0aCBhIGJsYW5rIGxpbmUuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgYWN0dWFsID0gc2hvdWxkSW5zZXJ0TGVhZGluZ0JsYW5rTGluZShbXCJBY3RcIl0sIFwicnVuKCk7XCIpO1xyXG4gKiB2b2lkIGFjdHVhbDtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBzaG91bGRJbnNlcnRMZWFkaW5nQmxhbmtMaW5lKFxyXG4gIHBoYXNlczogcmVhZG9ubHkgQWFhUGhhc2VbXSxcclxuICBwcmV2aW91c0xpbmU6IHN0cmluZyxcclxuKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIChcclxuICAgIHBoYXNlcy5zb21lKChwaGFzZSkgPT4gcGhhc2UgIT09IFwiQXJyYW5nZVwiKSAmJlxyXG4gICAgcHJldmlvdXNMaW5lLnRyaW0oKS5sZW5ndGggPiAwXHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IHsgYnVpbGRNaXNzaW5nU2VjdGlvbkZpeGVzIH07XHJcbiJdfQ==
@@ -1,5 +0,0 @@
1
- import type { Rule } from "eslint";
2
- /** Enforces explicit AAA section comments and spacing within supported test blocks. */
3
- declare const requireAaaSectionsRule: Rule.RuleModule;
4
- export { requireAaaSectionsRule };
5
- //# sourceMappingURL=rule.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-aaa-sections/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAYnC,uFAAuF;AACvF,QAAA,MAAM,sBAAsB,EAAE,IAAI,CAAC,UAoClC,CAAC;AAgJF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}