@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,164 +0,0 @@
1
- import { ESLint } from "eslint";
2
- import { mkdtemp, rm, writeFile } from "node:fs/promises";
3
- import { tmpdir } from "node:os";
4
- import path from "node:path";
5
- import { parser } from "typescript-eslint";
6
- import { preferVitestIncrementalCastsRule } from "./rule.js";
7
- /** Ambient declarations used by the typed fixture project. */
8
- const defaultDeclarationText = [
9
- 'declare module "fixture-module" {',
10
- " export const configs: { disableTypeChecked: { rules: string[]; strict: boolean } };",
11
- " export const extra: number;",
12
- " export const parser: { parseForESLint(code: string): { ast: string } };",
13
- " export const plugin: { meta: { name: string } };",
14
- "}",
15
- "",
16
- "declare const vi: {",
17
- ' doMock(specifier: Promise<typeof import("fixture-module")>, factory: () => typeof import("fixture-module")): void;',
18
- ' doMock(specifier: Promise<typeof import("fixture-module")>, factory: () => Partial<typeof import("fixture-module")>): void;',
19
- ' doMock(specifier: Promise<typeof import("fixture-module")>, factory: () => Promise<Partial<typeof import("fixture-module")>>): void;',
20
- ' mock(specifier: Promise<typeof import("fixture-module")>, factory: () => typeof import("fixture-module")): void;',
21
- ' mock(specifier: Promise<typeof import("fixture-module")>, factory: () => Partial<typeof import("fixture-module")>): void;',
22
- ' mock(specifier: Promise<typeof import("fixture-module")>, factory: (importOriginal: () => Promise<typeof import("fixture-module")>) => Promise<Partial<typeof import("fixture-module")>>): void;',
23
- "};",
24
- "",
25
- ].join("\n");
26
- /** Temporary fixture directories pending cleanup. */
27
- const temporaryDirectories = [];
28
- /**
29
- * Creates the fixture tsconfig text used by typed rule runs.
30
- * @returns Serialized tsconfig file contents.
31
- * @example
32
- * ```typescript
33
- * const tsconfigText = createTsconfigText();
34
- * void tsconfigText;
35
- * ```
36
- */
37
- const createTsconfigText = () => JSON.stringify({
38
- compilerOptions: {
39
- module: "esnext",
40
- moduleResolution: "bundler",
41
- noEmit: true,
42
- strict: true,
43
- target: "esnext",
44
- },
45
- include: ["**/*.ts", "**/*.d.ts"],
46
- }, void 0, 2);
47
- /**
48
- * Creates the typed ESLint instance used by the rule tests.
49
- * @param directory Fixture directory that becomes ESLint cwd.
50
- * @param tsconfigPath Path to the generated fixture tsconfig.
51
- * @returns ESLint instance configured for the typed rule.
52
- * @example
53
- * ```typescript
54
- * const eslint = createTypedRuleEslint("/tmp/project", "/tmp/project/tsconfig.json");
55
- * void eslint;
56
- * ```
57
- */
58
- const createTypedRuleEslint = (directory, tsconfigPath) => new ESLint({
59
- cwd: directory,
60
- fix: true,
61
- ignore: false,
62
- overrideConfig: [
63
- {
64
- files: ["**/*.ts"],
65
- languageOptions: {
66
- parser,
67
- parserOptions: {
68
- ecmaVersion: 2022,
69
- project: [tsconfigPath],
70
- sourceType: "module",
71
- tsconfigRootDir: directory,
72
- },
73
- },
74
- plugins: {
75
- codeperfect: {
76
- rules: {
77
- "prefer-vitest-incremental-casts": preferVitestIncrementalCastsRule,
78
- },
79
- },
80
- },
81
- rules: {
82
- "codeperfect/prefer-vitest-incremental-casts": "error",
83
- },
84
- },
85
- ],
86
- overrideConfigFile: true,
87
- });
88
- /**
89
- * Creates the temporary fixture project used by typed helper runs.
90
- * @param declarationText Ambient declarations used by the fixture project.
91
- * @returns Fresh fixture project state.
92
- * @example
93
- * ```typescript
94
- * const fixtureProject = await createFixtureProject(defaultDeclarationText);
95
- * void fixtureProject;
96
- * ```
97
- */
98
- const createFixtureProject = async (declarationText) => {
99
- const directory = await mkdtemp(path.join(tmpdir(), "codeperfect-rule-"));
100
- const globalsPath = path.join(directory, "globals.d.ts");
101
- const tsconfigPath = path.join(directory, "tsconfig.json");
102
- temporaryDirectories.push(directory);
103
- await Promise.all([
104
- writeFile(globalsPath, declarationText, "utf8"),
105
- writeFile(tsconfigPath, createTsconfigText(), "utf8"),
106
- ]);
107
- return { directory, tsconfigPath };
108
- };
109
- /**
110
- * Creates a unique file path for one isolated lint run.
111
- * @param directory Temporary fixture directory.
112
- * @returns Unique file path for the current run.
113
- * @example
114
- * ```typescript
115
- * createRunFilePath("/tmp/project");
116
- * ```
117
- */
118
- const createRunFilePath = (directory) => path.join(directory, "example.spec.ts");
119
- /**
120
- * Removes temporary fixture projects created during rule tests.
121
- * @returns Promise that resolves after cleanup completes.
122
- * @example
123
- * ```typescript
124
- * await cleanupTemporaryDirectories();
125
- * ```
126
- */
127
- const cleanupTemporaryDirectories = async () => {
128
- await Promise.all(temporaryDirectories
129
- .splice(0)
130
- .map(async (directory) => rm(directory, { force: true, recursive: true })));
131
- };
132
- /**
133
- * Runs the rule with autofix enabled inside a temporary typed fixture project.
134
- * @param code Source code passed to ESLint.
135
- * @param declarationText Ambient declarations used by the fixture project.
136
- * @returns Fixed output and lint messages.
137
- * @throws {Error} When ESLint does not return a lint result.
138
- * @example
139
- * ```typescript
140
- * const result = await runFix("vi.doMock(import(\"fixture-module\"), () => ({}));\n");
141
- * void result;
142
- * ```
143
- */
144
- const runFix = async (code, declarationText = defaultDeclarationText) => {
145
- const fixtureProject = await createFixtureProject(declarationText);
146
- const filePath = createRunFilePath(fixtureProject.directory);
147
- const eslint = createTypedRuleEslint(fixtureProject.directory, fixtureProject.tsconfigPath);
148
- await writeFile(filePath, code, "utf8");
149
- try {
150
- const [result] = await eslint.lintText(code, { filePath });
151
- if (result === void 0) {
152
- throw new Error("Expected ESLint to return a lint result.");
153
- }
154
- return {
155
- messages: result.messages,
156
- output: result.output ?? code,
157
- };
158
- }
159
- finally {
160
- await rm(fixtureProject.directory, { force: true, recursive: true });
161
- }
162
- };
163
- export { cleanupTemporaryDirectories, runFix };
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS10ZXN0LWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpdGVzdC1pbmNyZW1lbnRhbC1jYXN0cy9ydWxlLXRlc3QtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFvQjFELDhEQUE4RDtBQUM5RCxNQUFNLHNCQUFzQixHQUFHO0lBQzdCLG1DQUFtQztJQUNuQyx1RkFBdUY7SUFDdkYsK0JBQStCO0lBQy9CLDJFQUEyRTtJQUMzRSxvREFBb0Q7SUFDcEQsR0FBRztJQUNILEVBQUU7SUFDRixxQkFBcUI7SUFDckIsc0hBQXNIO0lBQ3RILCtIQUErSDtJQUMvSCx3SUFBd0k7SUFDeEksb0hBQW9IO0lBQ3BILDZIQUE2SDtJQUM3SCxvTUFBb007SUFDcE0sSUFBSTtJQUNKLEVBQUU7Q0FDSCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUViLHFEQUFxRDtBQUNyRCxNQUFNLG9CQUFvQixHQUFhLEVBQUUsQ0FBQztBQUUxQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsR0FBVyxFQUFFLENBQ3RDLElBQUksQ0FBQyxTQUFTLENBQ1o7SUFDRSxlQUFlLEVBQUU7UUFDZixNQUFNLEVBQUUsUUFBUTtRQUNoQixnQkFBZ0IsRUFBRSxTQUFTO1FBQzNCLE1BQU0sRUFBRSxJQUFJO1FBQ1osTUFBTSxFQUFFLElBQUk7UUFDWixNQUFNLEVBQUUsUUFBUTtLQUNqQjtJQUNELE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUM7Q0FDbEMsRUFDRCxLQUFLLENBQUMsRUFDTixDQUFDLENBQ0YsQ0FBQztBQUVKOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLHFCQUFxQixHQUFHLENBQzVCLFNBQWlCLEVBQ2pCLFlBQW9CLEVBQ1osRUFBRSxDQUNWLElBQUksTUFBTSxDQUFDO0lBQ1QsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsSUFBSTtJQUNULE1BQU0sRUFBRSxLQUFLO0lBQ2IsY0FBYyxFQUFFO1FBQ2Q7WUFDRSxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDbEIsZUFBZSxFQUFFO2dCQUNmLE1BQU07Z0JBQ04sYUFBYSxFQUFFO29CQUNiLFdBQVcsRUFBRSxJQUFJO29CQUNqQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFVBQVUsRUFBRSxRQUFRO29CQUNwQixlQUFlLEVBQUUsU0FBUztpQkFDM0I7YUFDRjtZQUNELE9BQU8sRUFBRTtnQkFDUCxXQUFXLEVBQUU7b0JBQ1gsS0FBSyxFQUFFO3dCQUNMLGlDQUFpQyxFQUMvQixnQ0FBZ0M7cUJBQ25DO2lCQUNGO2FBQ0Y7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsNkNBQTZDLEVBQUUsT0FBTzthQUN2RDtTQUNGO0tBQ0Y7SUFDRCxrQkFBa0IsRUFBRSxJQUFJO0NBQ3pCLENBQUMsQ0FBQztBQUVMOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxFQUNoQyxlQUF1QixFQUNFLEVBQUU7SUFDM0IsTUFBTSxTQUFTLEdBQUcsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7SUFDMUUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDekQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFFM0Qsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUNoQixTQUFTLENBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLENBQUM7UUFDL0MsU0FBUyxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sQ0FBQztLQUN0RCxDQUFDLENBQUM7SUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxDQUFDO0FBQ3JDLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFNBQWlCLEVBQVUsRUFBRSxDQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0FBRTFDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLDJCQUEyQixHQUFHLEtBQUssSUFBbUIsRUFBRTtJQUM1RCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2Ysb0JBQW9CO1NBQ2pCLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDVCxHQUFHLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQ3ZCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNoRCxDQUNKLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sTUFBTSxHQUFHLEtBQUssRUFDbEIsSUFBWSxFQUNaLGVBQWUsR0FBRyxzQkFBc0IsRUFDakIsRUFBRTtJQUN6QixNQUFNLGNBQWMsR0FBRyxNQUFNLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25FLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3RCxNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FDbEMsY0FBYyxDQUFDLFNBQVMsRUFDeEIsY0FBYyxDQUFDLFlBQVksQ0FDNUIsQ0FBQztJQUVGLE1BQU0sU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDeEMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRTNELElBQUksTUFBTSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFFRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUk7U0FDOUIsQ0FBQztJQUNKLENBQUM7WUFBUyxDQUFDO1FBQ1QsTUFBTSxFQUFFLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xyXG5cclxuaW1wb3J0IHsgRVNMaW50IH0gZnJvbSBcImVzbGludFwiO1xyXG5pbXBvcnQgeyBta2R0ZW1wLCBybSwgd3JpdGVGaWxlIH0gZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIjtcclxuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSBcIm5vZGU6b3NcIjtcclxuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xyXG5pbXBvcnQgeyBwYXJzZXIgfSBmcm9tIFwidHlwZXNjcmlwdC1lc2xpbnRcIjtcclxuXHJcbmltcG9ydCB7IHByZWZlclZpdGVzdEluY3JlbWVudGFsQ2FzdHNSdWxlIH0gZnJvbSBcIi4vcnVsZVwiO1xyXG5cclxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xyXG5pbnRlcmZhY2UgRml4UnVuUmVzdWx0IHtcclxuICAvKiogTGludCBtZXNzYWdlcyBwcm9kdWNlZCBkdXJpbmcgdGhlIHJ1bi4gKi9cclxuICBtZXNzYWdlczogTGludGVyLkxpbnRNZXNzYWdlW107XHJcblxyXG4gIC8qKiBPdXRwdXQgY29kZSBhZnRlciBmaXhlcy4gKi9cclxuICBvdXRwdXQ6IHN0cmluZztcclxufVxyXG5cclxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xyXG5pbnRlcmZhY2UgRml4dHVyZVByb2plY3Qge1xyXG4gIC8qKiBUZW1wb3JhcnkgZml4dHVyZSBkaXJlY3RvcnkgcGF0aC4gKi9cclxuICBkaXJlY3Rvcnk6IHN0cmluZztcclxuXHJcbiAgLyoqIEZpeHR1cmUgdHNjb25maWcgcGF0aCB1c2VkIGJ5IHR5cGVkIEVTTGludC4gKi9cclxuICB0c2NvbmZpZ1BhdGg6IHN0cmluZztcclxufVxyXG5cclxuLyoqIEFtYmllbnQgZGVjbGFyYXRpb25zIHVzZWQgYnkgdGhlIHR5cGVkIGZpeHR1cmUgcHJvamVjdC4gKi9cclxuY29uc3QgZGVmYXVsdERlY2xhcmF0aW9uVGV4dCA9IFtcclxuICAnZGVjbGFyZSBtb2R1bGUgXCJmaXh0dXJlLW1vZHVsZVwiIHsnLFxyXG4gIFwiICBleHBvcnQgY29uc3QgY29uZmlnczogeyBkaXNhYmxlVHlwZUNoZWNrZWQ6IHsgcnVsZXM6IHN0cmluZ1tdOyBzdHJpY3Q6IGJvb2xlYW4gfSB9O1wiLFxyXG4gIFwiICBleHBvcnQgY29uc3QgZXh0cmE6IG51bWJlcjtcIixcclxuICBcIiAgZXhwb3J0IGNvbnN0IHBhcnNlcjogeyBwYXJzZUZvckVTTGludChjb2RlOiBzdHJpbmcpOiB7IGFzdDogc3RyaW5nIH0gfTtcIixcclxuICBcIiAgZXhwb3J0IGNvbnN0IHBsdWdpbjogeyBtZXRhOiB7IG5hbWU6IHN0cmluZyB9IH07XCIsXHJcbiAgXCJ9XCIsXHJcbiAgXCJcIixcclxuICBcImRlY2xhcmUgY29uc3Qgdmk6IHtcIixcclxuICAnICBkb01vY2soc3BlY2lmaWVyOiBQcm9taXNlPHR5cGVvZiBpbXBvcnQoXCJmaXh0dXJlLW1vZHVsZVwiKT4sIGZhY3Rvcnk6ICgpID0+IHR5cGVvZiBpbXBvcnQoXCJmaXh0dXJlLW1vZHVsZVwiKSk6IHZvaWQ7JyxcclxuICAnICBkb01vY2soc3BlY2lmaWVyOiBQcm9taXNlPHR5cGVvZiBpbXBvcnQoXCJmaXh0dXJlLW1vZHVsZVwiKT4sIGZhY3Rvcnk6ICgpID0+IFBhcnRpYWw8dHlwZW9mIGltcG9ydChcImZpeHR1cmUtbW9kdWxlXCIpPik6IHZvaWQ7JyxcclxuICAnICBkb01vY2soc3BlY2lmaWVyOiBQcm9taXNlPHR5cGVvZiBpbXBvcnQoXCJmaXh0dXJlLW1vZHVsZVwiKT4sIGZhY3Rvcnk6ICgpID0+IFByb21pc2U8UGFydGlhbDx0eXBlb2YgaW1wb3J0KFwiZml4dHVyZS1tb2R1bGVcIik+Pik6IHZvaWQ7JyxcclxuICAnICBtb2NrKHNwZWNpZmllcjogUHJvbWlzZTx0eXBlb2YgaW1wb3J0KFwiZml4dHVyZS1tb2R1bGVcIik+LCBmYWN0b3J5OiAoKSA9PiB0eXBlb2YgaW1wb3J0KFwiZml4dHVyZS1tb2R1bGVcIikpOiB2b2lkOycsXHJcbiAgJyAgbW9jayhzcGVjaWZpZXI6IFByb21pc2U8dHlwZW9mIGltcG9ydChcImZpeHR1cmUtbW9kdWxlXCIpPiwgZmFjdG9yeTogKCkgPT4gUGFydGlhbDx0eXBlb2YgaW1wb3J0KFwiZml4dHVyZS1tb2R1bGVcIik+KTogdm9pZDsnLFxyXG4gICcgIG1vY2soc3BlY2lmaWVyOiBQcm9taXNlPHR5cGVvZiBpbXBvcnQoXCJmaXh0dXJlLW1vZHVsZVwiKT4sIGZhY3Rvcnk6IChpbXBvcnRPcmlnaW5hbDogKCkgPT4gUHJvbWlzZTx0eXBlb2YgaW1wb3J0KFwiZml4dHVyZS1tb2R1bGVcIik+KSA9PiBQcm9taXNlPFBhcnRpYWw8dHlwZW9mIGltcG9ydChcImZpeHR1cmUtbW9kdWxlXCIpPj4pOiB2b2lkOycsXHJcbiAgXCJ9O1wiLFxyXG4gIFwiXCIsXHJcbl0uam9pbihcIlxcblwiKTtcclxuXHJcbi8qKiBUZW1wb3JhcnkgZml4dHVyZSBkaXJlY3RvcmllcyBwZW5kaW5nIGNsZWFudXAuICovXHJcbmNvbnN0IHRlbXBvcmFyeURpcmVjdG9yaWVzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgdGhlIGZpeHR1cmUgdHNjb25maWcgdGV4dCB1c2VkIGJ5IHR5cGVkIHJ1bGUgcnVucy5cclxuICogQHJldHVybnMgU2VyaWFsaXplZCB0c2NvbmZpZyBmaWxlIGNvbnRlbnRzLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IHRzY29uZmlnVGV4dCA9IGNyZWF0ZVRzY29uZmlnVGV4dCgpO1xyXG4gKiB2b2lkIHRzY29uZmlnVGV4dDtcclxuICogYGBgXHJcbiAqL1xyXG5jb25zdCBjcmVhdGVUc2NvbmZpZ1RleHQgPSAoKTogc3RyaW5nID0+XHJcbiAgSlNPTi5zdHJpbmdpZnkoXHJcbiAgICB7XHJcbiAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xyXG4gICAgICAgIG1vZHVsZTogXCJlc25leHRcIixcclxuICAgICAgICBtb2R1bGVSZXNvbHV0aW9uOiBcImJ1bmRsZXJcIixcclxuICAgICAgICBub0VtaXQ6IHRydWUsXHJcbiAgICAgICAgc3RyaWN0OiB0cnVlLFxyXG4gICAgICAgIHRhcmdldDogXCJlc25leHRcIixcclxuICAgICAgfSxcclxuICAgICAgaW5jbHVkZTogW1wiKiovKi50c1wiLCBcIioqLyouZC50c1wiXSxcclxuICAgIH0sXHJcbiAgICB2b2lkIDAsXHJcbiAgICAyLFxyXG4gICk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyB0aGUgdHlwZWQgRVNMaW50IGluc3RhbmNlIHVzZWQgYnkgdGhlIHJ1bGUgdGVzdHMuXHJcbiAqIEBwYXJhbSBkaXJlY3RvcnkgRml4dHVyZSBkaXJlY3RvcnkgdGhhdCBiZWNvbWVzIEVTTGludCBjd2QuXHJcbiAqIEBwYXJhbSB0c2NvbmZpZ1BhdGggUGF0aCB0byB0aGUgZ2VuZXJhdGVkIGZpeHR1cmUgdHNjb25maWcuXHJcbiAqIEByZXR1cm5zIEVTTGludCBpbnN0YW5jZSBjb25maWd1cmVkIGZvciB0aGUgdHlwZWQgcnVsZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBlc2xpbnQgPSBjcmVhdGVUeXBlZFJ1bGVFc2xpbnQoXCIvdG1wL3Byb2plY3RcIiwgXCIvdG1wL3Byb2plY3QvdHNjb25maWcuanNvblwiKTtcclxuICogdm9pZCBlc2xpbnQ7XHJcbiAqIGBgYFxyXG4gKi9cclxuY29uc3QgY3JlYXRlVHlwZWRSdWxlRXNsaW50ID0gKFxyXG4gIGRpcmVjdG9yeTogc3RyaW5nLFxyXG4gIHRzY29uZmlnUGF0aDogc3RyaW5nLFxyXG4pOiBFU0xpbnQgPT5cclxuICBuZXcgRVNMaW50KHtcclxuICAgIGN3ZDogZGlyZWN0b3J5LFxyXG4gICAgZml4OiB0cnVlLFxyXG4gICAgaWdub3JlOiBmYWxzZSxcclxuICAgIG92ZXJyaWRlQ29uZmlnOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBmaWxlczogW1wiKiovKi50c1wiXSxcclxuICAgICAgICBsYW5ndWFnZU9wdGlvbnM6IHtcclxuICAgICAgICAgIHBhcnNlcixcclxuICAgICAgICAgIHBhcnNlck9wdGlvbnM6IHtcclxuICAgICAgICAgICAgZWNtYVZlcnNpb246IDIwMjIsXHJcbiAgICAgICAgICAgIHByb2plY3Q6IFt0c2NvbmZpZ1BhdGhdLFxyXG4gICAgICAgICAgICBzb3VyY2VUeXBlOiBcIm1vZHVsZVwiLFxyXG4gICAgICAgICAgICB0c2NvbmZpZ1Jvb3REaXI6IGRpcmVjdG9yeSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICBwbHVnaW5zOiB7XHJcbiAgICAgICAgICBjb2RlcGVyZmVjdDoge1xyXG4gICAgICAgICAgICBydWxlczoge1xyXG4gICAgICAgICAgICAgIFwicHJlZmVyLXZpdGVzdC1pbmNyZW1lbnRhbC1jYXN0c1wiOlxyXG4gICAgICAgICAgICAgICAgcHJlZmVyVml0ZXN0SW5jcmVtZW50YWxDYXN0c1J1bGUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcnVsZXM6IHtcclxuICAgICAgICAgIFwiY29kZXBlcmZlY3QvcHJlZmVyLXZpdGVzdC1pbmNyZW1lbnRhbC1jYXN0c1wiOiBcImVycm9yXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBvdmVycmlkZUNvbmZpZ0ZpbGU6IHRydWUsXHJcbiAgfSk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyB0aGUgdGVtcG9yYXJ5IGZpeHR1cmUgcHJvamVjdCB1c2VkIGJ5IHR5cGVkIGhlbHBlciBydW5zLlxyXG4gKiBAcGFyYW0gZGVjbGFyYXRpb25UZXh0IEFtYmllbnQgZGVjbGFyYXRpb25zIHVzZWQgYnkgdGhlIGZpeHR1cmUgcHJvamVjdC5cclxuICogQHJldHVybnMgRnJlc2ggZml4dHVyZSBwcm9qZWN0IHN0YXRlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGZpeHR1cmVQcm9qZWN0ID0gYXdhaXQgY3JlYXRlRml4dHVyZVByb2plY3QoZGVmYXVsdERlY2xhcmF0aW9uVGV4dCk7XHJcbiAqIHZvaWQgZml4dHVyZVByb2plY3Q7XHJcbiAqIGBgYFxyXG4gKi9cclxuY29uc3QgY3JlYXRlRml4dHVyZVByb2plY3QgPSBhc3luYyAoXHJcbiAgZGVjbGFyYXRpb25UZXh0OiBzdHJpbmcsXHJcbik6IFByb21pc2U8Rml4dHVyZVByb2plY3Q+ID0+IHtcclxuICBjb25zdCBkaXJlY3RvcnkgPSBhd2FpdCBta2R0ZW1wKHBhdGguam9pbih0bXBkaXIoKSwgXCJjb2RlcGVyZmVjdC1ydWxlLVwiKSk7XHJcbiAgY29uc3QgZ2xvYmFsc1BhdGggPSBwYXRoLmpvaW4oZGlyZWN0b3J5LCBcImdsb2JhbHMuZC50c1wiKTtcclxuICBjb25zdCB0c2NvbmZpZ1BhdGggPSBwYXRoLmpvaW4oZGlyZWN0b3J5LCBcInRzY29uZmlnLmpzb25cIik7XHJcblxyXG4gIHRlbXBvcmFyeURpcmVjdG9yaWVzLnB1c2goZGlyZWN0b3J5KTtcclxuICBhd2FpdCBQcm9taXNlLmFsbChbXHJcbiAgICB3cml0ZUZpbGUoZ2xvYmFsc1BhdGgsIGRlY2xhcmF0aW9uVGV4dCwgXCJ1dGY4XCIpLFxyXG4gICAgd3JpdGVGaWxlKHRzY29uZmlnUGF0aCwgY3JlYXRlVHNjb25maWdUZXh0KCksIFwidXRmOFwiKSxcclxuICBdKTtcclxuXHJcbiAgcmV0dXJuIHsgZGlyZWN0b3J5LCB0c2NvbmZpZ1BhdGggfTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgdW5pcXVlIGZpbGUgcGF0aCBmb3Igb25lIGlzb2xhdGVkIGxpbnQgcnVuLlxyXG4gKiBAcGFyYW0gZGlyZWN0b3J5IFRlbXBvcmFyeSBmaXh0dXJlIGRpcmVjdG9yeS5cclxuICogQHJldHVybnMgVW5pcXVlIGZpbGUgcGF0aCBmb3IgdGhlIGN1cnJlbnQgcnVuLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNyZWF0ZVJ1bkZpbGVQYXRoKFwiL3RtcC9wcm9qZWN0XCIpO1xyXG4gKiBgYGBcclxuICovXHJcbmNvbnN0IGNyZWF0ZVJ1bkZpbGVQYXRoID0gKGRpcmVjdG9yeTogc3RyaW5nKTogc3RyaW5nID0+XHJcbiAgcGF0aC5qb2luKGRpcmVjdG9yeSwgXCJleGFtcGxlLnNwZWMudHNcIik7XHJcblxyXG4vKipcclxuICogUmVtb3ZlcyB0ZW1wb3JhcnkgZml4dHVyZSBwcm9qZWN0cyBjcmVhdGVkIGR1cmluZyBydWxlIHRlc3RzLlxyXG4gKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgY2xlYW51cCBjb21wbGV0ZXMuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogYXdhaXQgY2xlYW51cFRlbXBvcmFyeURpcmVjdG9yaWVzKCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuY29uc3QgY2xlYW51cFRlbXBvcmFyeURpcmVjdG9yaWVzID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xyXG4gIGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgdGVtcG9yYXJ5RGlyZWN0b3JpZXNcclxuICAgICAgLnNwbGljZSgwKVxyXG4gICAgICAubWFwKGFzeW5jIChkaXJlY3RvcnkpID0+XHJcbiAgICAgICAgcm0oZGlyZWN0b3J5LCB7IGZvcmNlOiB0cnVlLCByZWN1cnNpdmU6IHRydWUgfSksXHJcbiAgICAgICksXHJcbiAgKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSdW5zIHRoZSBydWxlIHdpdGggYXV0b2ZpeCBlbmFibGVkIGluc2lkZSBhIHRlbXBvcmFyeSB0eXBlZCBmaXh0dXJlIHByb2plY3QuXHJcbiAqIEBwYXJhbSBjb2RlIFNvdXJjZSBjb2RlIHBhc3NlZCB0byBFU0xpbnQuXHJcbiAqIEBwYXJhbSBkZWNsYXJhdGlvblRleHQgQW1iaWVudCBkZWNsYXJhdGlvbnMgdXNlZCBieSB0aGUgZml4dHVyZSBwcm9qZWN0LlxyXG4gKiBAcmV0dXJucyBGaXhlZCBvdXRwdXQgYW5kIGxpbnQgbWVzc2FnZXMuXHJcbiAqIEB0aHJvd3Mge0Vycm9yfSBXaGVuIEVTTGludCBkb2VzIG5vdCByZXR1cm4gYSBsaW50IHJlc3VsdC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCByZXN1bHQgPSBhd2FpdCBydW5GaXgoXCJ2aS5kb01vY2soaW1wb3J0KFxcXCJmaXh0dXJlLW1vZHVsZVxcXCIpLCAoKSA9PiAoe30pKTtcXG5cIik7XHJcbiAqIHZvaWQgcmVzdWx0O1xyXG4gKiBgYGBcclxuICovXHJcbmNvbnN0IHJ1bkZpeCA9IGFzeW5jIChcclxuICBjb2RlOiBzdHJpbmcsXHJcbiAgZGVjbGFyYXRpb25UZXh0ID0gZGVmYXVsdERlY2xhcmF0aW9uVGV4dCxcclxuKTogUHJvbWlzZTxGaXhSdW5SZXN1bHQ+ID0+IHtcclxuICBjb25zdCBmaXh0dXJlUHJvamVjdCA9IGF3YWl0IGNyZWF0ZUZpeHR1cmVQcm9qZWN0KGRlY2xhcmF0aW9uVGV4dCk7XHJcbiAgY29uc3QgZmlsZVBhdGggPSBjcmVhdGVSdW5GaWxlUGF0aChmaXh0dXJlUHJvamVjdC5kaXJlY3RvcnkpO1xyXG4gIGNvbnN0IGVzbGludCA9IGNyZWF0ZVR5cGVkUnVsZUVzbGludChcclxuICAgIGZpeHR1cmVQcm9qZWN0LmRpcmVjdG9yeSxcclxuICAgIGZpeHR1cmVQcm9qZWN0LnRzY29uZmlnUGF0aCxcclxuICApO1xyXG5cclxuICBhd2FpdCB3cml0ZUZpbGUoZmlsZVBhdGgsIGNvZGUsIFwidXRmOFwiKTtcclxuICB0cnkge1xyXG4gICAgY29uc3QgW3Jlc3VsdF0gPSBhd2FpdCBlc2xpbnQubGludFRleHQoY29kZSwgeyBmaWxlUGF0aCB9KTtcclxuXHJcbiAgICBpZiAocmVzdWx0ID09PSB2b2lkIDApIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgRVNMaW50IHRvIHJldHVybiBhIGxpbnQgcmVzdWx0LlwiKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBtZXNzYWdlczogcmVzdWx0Lm1lc3NhZ2VzLFxyXG4gICAgICBvdXRwdXQ6IHJlc3VsdC5vdXRwdXQgPz8gY29kZSxcclxuICAgIH07XHJcbiAgfSBmaW5hbGx5IHtcclxuICAgIGF3YWl0IHJtKGZpeHR1cmVQcm9qZWN0LmRpcmVjdG9yeSwgeyBmb3JjZTogdHJ1ZSwgcmVjdXJzaXZlOiB0cnVlIH0pO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCB7IGNsZWFudXBUZW1wb3JhcnlEaXJlY3RvcmllcywgcnVuRml4IH07XHJcbiJdfQ==
@@ -1,5 +0,0 @@
1
- import type { Rule } from "eslint";
2
- /** Enforces minimal nested casts for `vi.mock` and `vi.doMock` factory objects. */
3
- declare const preferVitestIncrementalCastsRule: Rule.RuleModule;
4
- export { preferVitestIncrementalCastsRule };
5
- //# sourceMappingURL=rule.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAkEnC,mFAAmF;AACnF,QAAA,MAAM,gCAAgC,EAwDrB,IAAI,CAAC,UAAU,CAAC;AAEjC,OAAO,EAAE,gCAAgC,EAAE,CAAC"}
@@ -1,4 +0,0 @@
1
- /** Suite name for the guardrail-focused companion spec. */
2
- declare const ruleGuardrailsSuiteName = "prefer-vitest-incremental-casts rule guardrails";
3
- export { ruleGuardrailsSuiteName };
4
- //# sourceMappingURL=rule.guardrails.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule.guardrails.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,QAAA,MAAM,uBAAuB,oDACsB,CAAC;AAEpD,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -1,4 +0,0 @@
1
- /** Suite name for the guardrail-focused companion spec. */
2
- const ruleGuardrailsSuiteName = "prefer-vitest-incremental-casts rule guardrails";
3
- export { ruleGuardrailsSuiteName };
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5ndWFyZHJhaWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3ByZWZlci12aXRlc3QtaW5jcmVtZW50YWwtY2FzdHMvcnVsZS5ndWFyZHJhaWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJEQUEyRDtBQUMzRCxNQUFNLHVCQUF1QixHQUMzQixpREFBaUQsQ0FBQztBQUVwRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBTdWl0ZSBuYW1lIGZvciB0aGUgZ3VhcmRyYWlsLWZvY3VzZWQgY29tcGFuaW9uIHNwZWMuICovXHJcbmNvbnN0IHJ1bGVHdWFyZHJhaWxzU3VpdGVOYW1lID1cclxuICBcInByZWZlci12aXRlc3QtaW5jcmVtZW50YWwtY2FzdHMgcnVsZSBndWFyZHJhaWxzXCI7XHJcblxyXG5leHBvcnQgeyBydWxlR3VhcmRyYWlsc1N1aXRlTmFtZSB9O1xyXG4iXX0=
@@ -1,4 +0,0 @@
1
- /** Suite name for the input-shape-focused companion spec. */
2
- declare const ruleInputShapesSuiteName = "prefer-vitest-incremental-casts rule input shapes";
3
- export { ruleInputShapesSuiteName };
4
- //# sourceMappingURL=rule.input-shapes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule.input-shapes.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,QAAA,MAAM,wBAAwB,sDACuB,CAAC;AAEtD,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1,4 +0,0 @@
1
- /** Suite name for the input-shape-focused companion spec. */
2
- const ruleInputShapesSuiteName = "prefer-vitest-incremental-casts rule input shapes";
3
- export { ruleInputShapesSuiteName };
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5pbnB1dC1zaGFwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpdGVzdC1pbmNyZW1lbnRhbC1jYXN0cy9ydWxlLmlucHV0LXNoYXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2REFBNkQ7QUFDN0QsTUFBTSx3QkFBd0IsR0FDNUIsbURBQW1ELENBQUM7QUFFdEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogU3VpdGUgbmFtZSBmb3IgdGhlIGlucHV0LXNoYXBlLWZvY3VzZWQgY29tcGFuaW9uIHNwZWMuICovXHJcbmNvbnN0IHJ1bGVJbnB1dFNoYXBlc1N1aXRlTmFtZSA9XHJcbiAgXCJwcmVmZXItdml0ZXN0LWluY3JlbWVudGFsLWNhc3RzIHJ1bGUgaW5wdXQgc2hhcGVzXCI7XHJcblxyXG5leHBvcnQgeyBydWxlSW5wdXRTaGFwZXNTdWl0ZU5hbWUgfTtcclxuIl19
@@ -1,88 +0,0 @@
1
- import { ESLintUtils, TSESTree } from "@typescript-eslint/utils";
2
- import { createRuleDocumentation } from "../../custom-rule-documentation.js";
3
- import { collectMatch } from "./match.js";
4
- /**
5
- * Builds a map of namespace import aliases for the current source file.
6
- * @param sourceCode Source code object from the ESLint rule context.
7
- * @returns Map of module specifier to namespace alias name.
8
- * @example
9
- * ```typescript
10
- * const namespaceImports = getNamespaceImports(context.sourceCode);
11
- * ```
12
- */
13
- function getNamespaceImports(sourceCode) {
14
- const result = new Map();
15
- for (const node of sourceCode.ast.body) {
16
- if (node.type === TSESTree.AST_NODE_TYPES.ImportDeclaration &&
17
- typeof node.source.value === "string") {
18
- for (const specifier of node.specifiers) {
19
- if (specifier.type === TSESTree.AST_NODE_TYPES.ImportNamespaceSpecifier) {
20
- result.set(node.source.value, specifier.local.name);
21
- break;
22
- }
23
- }
24
- }
25
- }
26
- return result;
27
- }
28
- /**
29
- * Resolves TypeScript parser services when the rule runs on a typed file.
30
- * @param context ESLint rule context.
31
- * @returns Parser services when TypeScript services are available.
32
- * @example
33
- * ```typescript
34
- * const services = getParserServices(context);
35
- * ```
36
- */
37
- function getParserServices(context) {
38
- try {
39
- return ESLintUtils.getParserServices(context);
40
- }
41
- catch {
42
- return void 0;
43
- }
44
- }
45
- /** Enforces minimal nested casts for `vi.mock` and `vi.doMock` factory objects. */
46
- const preferVitestIncrementalCastsRule = ESLintUtils.RuleCreator.withoutDocs({
47
- create(context) {
48
- const services = getParserServices(context);
49
- if (services === void 0 || services.program === null) {
50
- return {};
51
- }
52
- const checker = services.program.getTypeChecker();
53
- const sourceText = context.sourceCode.text;
54
- const namespaceImports = getNamespaceImports(context.sourceCode);
55
- return {
56
- CallExpression(node) {
57
- const match = collectMatch({
58
- callExpression: node,
59
- checker,
60
- namespaceImports,
61
- services,
62
- sourceText,
63
- });
64
- if (match === void 0) {
65
- return;
66
- }
67
- context.report({
68
- fix: (fixer) => fixer.replaceTextRange(match.returnExpressionRange, match.replacementText),
69
- messageId: "preferVitestIncrementalCasts",
70
- node,
71
- });
72
- },
73
- };
74
- },
75
- defaultOptions: [],
76
- meta: {
77
- docs: createRuleDocumentation("prefer-vitest-incremental-casts", "Prefer minimal nested casts in vi.mock/vi.doMock factory return objects when TypeScript rejects the module shape."),
78
- fixable: "code",
79
- messages: {
80
- preferVitestIncrementalCasts: "Normalize the mock factory to the smallest stable set of nested casts needed for the module type.",
81
- },
82
- schema: [],
83
- type: "suggestion",
84
- },
85
- name: "prefer-vitest-incremental-casts",
86
- });
87
- export { preferVitestIncrementalCastsRule };
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9wcmVmZXItdml0ZXN0LWluY3JlbWVudGFsLWNhc3RzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXZDOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FDMUIsVUFBMEM7SUFFMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFekMsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZDLElBQ0UsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsY0FBYyxDQUFDLGlCQUFpQjtZQUN2RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFDckMsQ0FBQztZQUNELEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN4QyxJQUNFLFNBQVMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsRUFDbkUsQ0FBQztvQkFDRCxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3BELE1BQU07Z0JBQ1IsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsaUJBQWlCLENBQ3hCLE9BQXlCO0lBRXpCLElBQUksQ0FBQztRQUNILE9BQU8sV0FBVyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7QUFDSCxDQUFDO0FBRUQsbUZBQW1GO0FBQ25GLE1BQU0sZ0NBQWdDLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBRzFFO0lBQ0EsTUFBTSxDQUFDLE9BQU87UUFDWixNQUFNLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU1QyxJQUFJLFFBQVEsS0FBSyxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3JELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDM0MsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFakUsT0FBTztZQUNMLGNBQWMsQ0FBQyxJQUFJO2dCQUNqQixNQUFNLEtBQUssR0FBRyxZQUFZLENBQUM7b0JBQ3pCLGNBQWMsRUFBRSxJQUFJO29CQUNwQixPQUFPO29CQUNQLGdCQUFnQjtvQkFDaEIsUUFBUTtvQkFDUixVQUFVO2lCQUNYLENBQUMsQ0FBQztnQkFFSCxJQUFJLEtBQUssS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNyQixPQUFPO2dCQUNULENBQUM7Z0JBRUQsT0FBTyxDQUFDLE1BQU0sQ0FBQztvQkFDYixHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNiLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDcEIsS0FBSyxDQUFDLHFCQUFxQixFQUMzQixLQUFLLENBQUMsZUFBZSxDQUN0QjtvQkFDSCxTQUFTLEVBQUUsOEJBQThCO29CQUN6QyxJQUFJO2lCQUNMLENBQUMsQ0FBQztZQUNMLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELGNBQWMsRUFBRSxFQUFFO0lBQ2xCLElBQUksRUFBRTtRQUNKLElBQUksRUFBRSx1QkFBdUIsQ0FDM0IsaUNBQWlDLEVBQ2pDLG1IQUFtSCxDQUNwSDtRQUNELE9BQU8sRUFBRSxNQUFNO1FBQ2YsUUFBUSxFQUFFO1lBQ1IsNEJBQTRCLEVBQzFCLG1HQUFtRztTQUN0RztRQUNELE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7S0FDbkI7SUFDRCxJQUFJLEVBQUUsaUNBQWlDO0NBQ3hDLENBQStCLENBQUM7QUFFakMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7IEVTTGludFV0aWxzLCBUU0VTVHJlZSB9IGZyb20gXCJAdHlwZXNjcmlwdC1lc2xpbnQvdXRpbHNcIjtcblxuaW1wb3J0IHR5cGUge1xuICBNZXNzYWdlSWRzLFxuICBPcHRpb25zLFxuICBQYXJzZXJTZXJ2aWNlcyxcbiAgVHlwZWRSdWxlQ29udGV4dCxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHsgY3JlYXRlUnVsZURvY3VtZW50YXRpb24gfSBmcm9tIFwiLi4vLi4vY3VzdG9tLXJ1bGUtZG9jdW1lbnRhdGlvblwiO1xuaW1wb3J0IHsgY29sbGVjdE1hdGNoIH0gZnJvbSBcIi4vbWF0Y2hcIjtcblxuLyoqXG4gKiBCdWlsZHMgYSBtYXAgb2YgbmFtZXNwYWNlIGltcG9ydCBhbGlhc2VzIGZvciB0aGUgY3VycmVudCBzb3VyY2UgZmlsZS5cbiAqIEBwYXJhbSBzb3VyY2VDb2RlIFNvdXJjZSBjb2RlIG9iamVjdCBmcm9tIHRoZSBFU0xpbnQgcnVsZSBjb250ZXh0LlxuICogQHJldHVybnMgTWFwIG9mIG1vZHVsZSBzcGVjaWZpZXIgdG8gbmFtZXNwYWNlIGFsaWFzIG5hbWUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbmFtZXNwYWNlSW1wb3J0cyA9IGdldE5hbWVzcGFjZUltcG9ydHMoY29udGV4dC5zb3VyY2VDb2RlKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXROYW1lc3BhY2VJbXBvcnRzKFxuICBzb3VyY2VDb2RlOiBUeXBlZFJ1bGVDb250ZXh0W1wic291cmNlQ29kZVwiXSxcbik6IFJlYWRvbmx5TWFwPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG5cbiAgZm9yIChjb25zdCBub2RlIG9mIHNvdXJjZUNvZGUuYXN0LmJvZHkpIHtcbiAgICBpZiAoXG4gICAgICBub2RlLnR5cGUgPT09IFRTRVNUcmVlLkFTVF9OT0RFX1RZUEVTLkltcG9ydERlY2xhcmF0aW9uICYmXG4gICAgICB0eXBlb2Ygbm9kZS5zb3VyY2UudmFsdWUgPT09IFwic3RyaW5nXCJcbiAgICApIHtcbiAgICAgIGZvciAoY29uc3Qgc3BlY2lmaWVyIG9mIG5vZGUuc3BlY2lmaWVycykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc3BlY2lmaWVyLnR5cGUgPT09IFRTRVNUcmVlLkFTVF9OT0RFX1RZUEVTLkltcG9ydE5hbWVzcGFjZVNwZWNpZmllclxuICAgICAgICApIHtcbiAgICAgICAgICByZXN1bHQuc2V0KG5vZGUuc291cmNlLnZhbHVlLCBzcGVjaWZpZXIubG9jYWwubmFtZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIFJlc29sdmVzIFR5cGVTY3JpcHQgcGFyc2VyIHNlcnZpY2VzIHdoZW4gdGhlIHJ1bGUgcnVucyBvbiBhIHR5cGVkIGZpbGUuXG4gKiBAcGFyYW0gY29udGV4dCBFU0xpbnQgcnVsZSBjb250ZXh0LlxuICogQHJldHVybnMgUGFyc2VyIHNlcnZpY2VzIHdoZW4gVHlwZVNjcmlwdCBzZXJ2aWNlcyBhcmUgYXZhaWxhYmxlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHNlcnZpY2VzID0gZ2V0UGFyc2VyU2VydmljZXMoY29udGV4dCk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZ2V0UGFyc2VyU2VydmljZXMoXG4gIGNvbnRleHQ6IFR5cGVkUnVsZUNvbnRleHQsXG4pOiBQYXJzZXJTZXJ2aWNlcyB8IHVuZGVmaW5lZCB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEVTTGludFV0aWxzLmdldFBhcnNlclNlcnZpY2VzKGNvbnRleHQpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG59XG5cbi8qKiBFbmZvcmNlcyBtaW5pbWFsIG5lc3RlZCBjYXN0cyBmb3IgYHZpLm1vY2tgIGFuZCBgdmkuZG9Nb2NrYCBmYWN0b3J5IG9iamVjdHMuICovXG5jb25zdCBwcmVmZXJWaXRlc3RJbmNyZW1lbnRhbENhc3RzUnVsZSA9IEVTTGludFV0aWxzLlJ1bGVDcmVhdG9yLndpdGhvdXREb2NzPFxuICBPcHRpb25zLFxuICBNZXNzYWdlSWRzXG4+KHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBzZXJ2aWNlcyA9IGdldFBhcnNlclNlcnZpY2VzKGNvbnRleHQpO1xuXG4gICAgaWYgKHNlcnZpY2VzID09PSB2b2lkIDAgfHwgc2VydmljZXMucHJvZ3JhbSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIGNvbnN0IGNoZWNrZXIgPSBzZXJ2aWNlcy5wcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG4gICAgY29uc3Qgc291cmNlVGV4dCA9IGNvbnRleHQuc291cmNlQ29kZS50ZXh0O1xuICAgIGNvbnN0IG5hbWVzcGFjZUltcG9ydHMgPSBnZXROYW1lc3BhY2VJbXBvcnRzKGNvbnRleHQuc291cmNlQ29kZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgQ2FsbEV4cHJlc3Npb24obm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBtYXRjaCA9IGNvbGxlY3RNYXRjaCh7XG4gICAgICAgICAgY2FsbEV4cHJlc3Npb246IG5vZGUsXG4gICAgICAgICAgY2hlY2tlcixcbiAgICAgICAgICBuYW1lc3BhY2VJbXBvcnRzLFxuICAgICAgICAgIHNlcnZpY2VzLFxuICAgICAgICAgIHNvdXJjZVRleHQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChtYXRjaCA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIGZpeDogKGZpeGVyKSA9PlxuICAgICAgICAgICAgZml4ZXIucmVwbGFjZVRleHRSYW5nZShcbiAgICAgICAgICAgICAgbWF0Y2gucmV0dXJuRXhwcmVzc2lvblJhbmdlLFxuICAgICAgICAgICAgICBtYXRjaC5yZXBsYWNlbWVudFRleHQsXG4gICAgICAgICAgICApLFxuICAgICAgICAgIG1lc3NhZ2VJZDogXCJwcmVmZXJWaXRlc3RJbmNyZW1lbnRhbENhc3RzXCIsXG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG4gIGRlZmF1bHRPcHRpb25zOiBbXSxcbiAgbWV0YToge1xuICAgIGRvY3M6IGNyZWF0ZVJ1bGVEb2N1bWVudGF0aW9uKFxuICAgICAgXCJwcmVmZXItdml0ZXN0LWluY3JlbWVudGFsLWNhc3RzXCIsXG4gICAgICBcIlByZWZlciBtaW5pbWFsIG5lc3RlZCBjYXN0cyBpbiB2aS5tb2NrL3ZpLmRvTW9jayBmYWN0b3J5IHJldHVybiBvYmplY3RzIHdoZW4gVHlwZVNjcmlwdCByZWplY3RzIHRoZSBtb2R1bGUgc2hhcGUuXCIsXG4gICAgKSxcbiAgICBmaXhhYmxlOiBcImNvZGVcIixcbiAgICBtZXNzYWdlczoge1xuICAgICAgcHJlZmVyVml0ZXN0SW5jcmVtZW50YWxDYXN0czpcbiAgICAgICAgXCJOb3JtYWxpemUgdGhlIG1vY2sgZmFjdG9yeSB0byB0aGUgc21hbGxlc3Qgc3RhYmxlIHNldCBvZiBuZXN0ZWQgY2FzdHMgbmVlZGVkIGZvciB0aGUgbW9kdWxlIHR5cGUuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6IFwic3VnZ2VzdGlvblwiLFxuICB9LFxuICBuYW1lOiBcInByZWZlci12aXRlc3QtaW5jcmVtZW50YWwtY2FzdHNcIixcbn0pIGFzIHVua25vd24gYXMgUnVsZS5SdWxlTW9kdWxlO1xuXG5leHBvcnQgeyBwcmVmZXJWaXRlc3RJbmNyZW1lbnRhbENhc3RzUnVsZSB9O1xuIl19
@@ -1,4 +0,0 @@
1
- /** Suite name for the signature-fallback companion spec. */
2
- declare const ruleSignatureFallbackSuiteName = "prefer-vitest-incremental-casts rule signature fallback";
3
- export { ruleSignatureFallbackSuiteName };
4
- //# sourceMappingURL=rule.signature-fallback.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule.signature-fallback.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,QAAA,MAAM,8BAA8B,4DACuB,CAAC;AAE5D,OAAO,EAAE,8BAA8B,EAAE,CAAC"}
@@ -1,4 +0,0 @@
1
- /** Suite name for the signature-fallback companion spec. */
2
- const ruleSignatureFallbackSuiteName = "prefer-vitest-incremental-casts rule signature fallback";
3
- export { ruleSignatureFallbackSuiteName };
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5zaWduYXR1cmUtZmFsbGJhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpdGVzdC1pbmNyZW1lbnRhbC1jYXN0cy9ydWxlLnNpZ25hdHVyZS1mYWxsYmFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsTUFBTSw4QkFBOEIsR0FDbEMseURBQXlELENBQUM7QUFFNUQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogU3VpdGUgbmFtZSBmb3IgdGhlIHNpZ25hdHVyZS1mYWxsYmFjayBjb21wYW5pb24gc3BlYy4gKi9cclxuY29uc3QgcnVsZVNpZ25hdHVyZUZhbGxiYWNrU3VpdGVOYW1lID1cclxuICBcInByZWZlci12aXRlc3QtaW5jcmVtZW50YWwtY2FzdHMgcnVsZSBzaWduYXR1cmUgZmFsbGJhY2tcIjtcclxuXHJcbmV4cG9ydCB7IHJ1bGVTaWduYXR1cmVGYWxsYmFja1N1aXRlTmFtZSB9O1xyXG4iXX0=
@@ -1,24 +0,0 @@
1
- import type * as ts from "typescript";
2
- import type { OuterCastContext, ResolveFactoryTargetTypeContext } from "./types.js";
3
- /**
4
- * Determines whether the object literal still needs an outer cast.
5
- * @param context Data used to decide whether the full object needs casting.
6
- * @returns True when the full object still needs casting.
7
- * @example
8
- * ```typescript
9
- * const needsOuterCast = isOuterCastRequired(context);
10
- * ```
11
- */
12
- declare function isOuterCastRequired(context: OuterCastContext): boolean;
13
- /**
14
- * Resolves the target type the factory object should satisfy.
15
- * @param context Type-resolution inputs for the current mock factory.
16
- * @returns Target type for the rewritten object literal.
17
- * @example
18
- * ```typescript
19
- * const targetType = resolveFactoryTargetType(context);
20
- * ```
21
- */
22
- declare function resolveFactoryTargetType(context: ResolveFactoryTargetTypeContext): ts.Type | undefined;
23
- export { isOuterCastRequired, resolveFactoryTargetType };
24
- //# sourceMappingURL=type-helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type-helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/type-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAItC,OAAO,KAAK,EACV,gBAAgB,EAChB,+BAA+B,EAChC,MAAM,SAAS,CAAC;AA4KjB;;;;;;;;GAQG;AACH,iBAAS,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAE/D;AAED;;;;;;;;GAQG;AACH,iBAAS,wBAAwB,CAC/B,OAAO,EAAE,+BAA+B,GACvC,EAAE,CAAC,IAAI,GAAG,SAAS,CAKrB;AAED,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1,113 +0,0 @@
1
- import { SignatureKind } from "typescript";
2
- import { isOuterCastRequired as isOuterCastRequiredImpl, normalizeObjectLikeType, resolveFactoryReturnType, } from "./type-shape-helpers.js";
3
- /**
4
- * Reads the contextual type assigned to the returned mock object literal.
5
- * @param context Type-resolution inputs for the current mock factory.
6
- * @returns Contextual object-like type when TypeScript provides one.
7
- * @example
8
- * ```typescript
9
- * const targetType = getContextualFactoryTargetType(context);
10
- * ```
11
- */
12
- function getContextualFactoryTargetType(context) {
13
- const { checker, objectExpression, services } = context;
14
- return normalizeObjectLikeType(checker, checker.getContextualType(services.esTreeNodeToTSNodeMap.get(objectExpression)));
15
- }
16
- /**
17
- * Resolves the factory return type for one compatible mock signature.
18
- * @param context Inputs required to inspect one callable signature.
19
- * @returns Normalized object-like return type when the signature matches.
20
- * @example
21
- * ```typescript
22
- * const returnType = getMatchingSignatureReturnType(context);
23
- * ```
24
- */
25
- function getMatchingSignatureReturnType(context) {
26
- const { checker, firstArgument, firstArgumentType, signature, tsFactoryArgument, } = context;
27
- const [specifierParameter, factoryParameter] = signature.getParameters();
28
- if (specifierParameter === void 0 || factoryParameter === void 0) {
29
- return void 0;
30
- }
31
- const specifierParameterType = checker.getTypeOfSymbolAtLocation(specifierParameter, firstArgument);
32
- if (!checker.isTypeAssignableTo(firstArgumentType, specifierParameterType)) {
33
- return void 0;
34
- }
35
- return resolveFactoryReturnType(checker, checker.getTypeOfSymbolAtLocation(factoryParameter, tsFactoryArgument));
36
- }
37
- /**
38
- * Resolves a target type by matching the mock call against callable signatures.
39
- * @param context Type-resolution inputs for the current mock factory.
40
- * @returns Object-like return type inferred from the matched signature.
41
- * @example
42
- * ```typescript
43
- * const targetType = getSignatureFactoryTargetType(context);
44
- * ```
45
- */
46
- function getSignatureFactoryTargetType(context) {
47
- const signatureMatchInputs = getSignatureMatchInputs(context);
48
- if (signatureMatchInputs === void 0) {
49
- return void 0;
50
- }
51
- for (const signature of context.checker.getSignaturesOfType(signatureMatchInputs.calleeType, SignatureKind.Call)) {
52
- const returnType = getMatchingSignatureReturnType({
53
- checker: context.checker,
54
- firstArgument: signatureMatchInputs.firstArgument,
55
- firstArgumentType: signatureMatchInputs.firstArgumentType,
56
- signature,
57
- tsFactoryArgument: signatureMatchInputs.tsFactoryArgument,
58
- });
59
- if (returnType !== void 0) {
60
- return returnType;
61
- }
62
- }
63
- return void 0;
64
- }
65
- /**
66
- * Collects the TypeScript nodes and types needed for signature matching.
67
- * @param context Type-resolution inputs for the current mock factory.
68
- * @returns Normalized signature-matching inputs when the call has a first argument.
69
- * @example
70
- * ```typescript
71
- * const inputs = getSignatureMatchInputs(context);
72
- * ```
73
- */
74
- function getSignatureMatchInputs(context) {
75
- const tsCallExpression = context.services.esTreeNodeToTSNodeMap.get(context.callExpression);
76
- const [firstArgument] = tsCallExpression.arguments;
77
- if (firstArgument === void 0) {
78
- return void 0;
79
- }
80
- return {
81
- calleeType: context.checker.getTypeAtLocation(tsCallExpression.expression),
82
- firstArgument,
83
- firstArgumentType: context.checker.getTypeAtLocation(firstArgument),
84
- tsFactoryArgument: context.services.esTreeNodeToTSNodeMap.get(context.factoryArgument),
85
- };
86
- }
87
- /**
88
- * Determines whether the object literal still needs an outer cast.
89
- * @param context Data used to decide whether the full object needs casting.
90
- * @returns True when the full object still needs casting.
91
- * @example
92
- * ```typescript
93
- * const needsOuterCast = isOuterCastRequired(context);
94
- * ```
95
- */
96
- function isOuterCastRequired(context) {
97
- return isOuterCastRequiredImpl(context);
98
- }
99
- /**
100
- * Resolves the target type the factory object should satisfy.
101
- * @param context Type-resolution inputs for the current mock factory.
102
- * @returns Target type for the rewritten object literal.
103
- * @example
104
- * ```typescript
105
- * const targetType = resolveFactoryTargetType(context);
106
- * ```
107
- */
108
- function resolveFactoryTargetType(context) {
109
- return (getContextualFactoryTargetType(context) ??
110
- getSignatureFactoryTargetType(context));
111
- }
112
- export { isOuterCastRequired, resolveFactoryTargetType };
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3ByZWZlci12aXRlc3QtaW5jcmVtZW50YWwtY2FzdHMvdHlwZS1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFPM0MsT0FBTyxFQUNMLG1CQUFtQixJQUFJLHVCQUF1QixFQUM5Qyx1QkFBdUIsRUFDdkIsd0JBQXdCLEdBQ3pCLE1BQU0sc0JBQXNCLENBQUM7QUFtQzlCOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyw4QkFBOEIsQ0FDckMsT0FBd0M7SUFFeEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFeEQsT0FBTyx1QkFBdUIsQ0FDNUIsT0FBTyxFQUNQLE9BQU8sQ0FBQyxpQkFBaUIsQ0FDdkIsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUNyRCxDQUNGLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLDhCQUE4QixDQUNyQyxPQUEyQztJQUUzQyxNQUFNLEVBQ0osT0FBTyxFQUNQLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGlCQUFpQixHQUNsQixHQUFHLE9BQU8sQ0FBQztJQUNaLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUV6RSxJQUFJLGtCQUFrQixLQUFLLEtBQUssQ0FBQyxJQUFJLGdCQUFnQixLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDakUsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxzQkFBc0IsR0FBRyxPQUFPLENBQUMseUJBQXlCLENBQzlELGtCQUFrQixFQUNsQixhQUFhLENBQ2QsQ0FBQztJQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDO1FBQzNFLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU8sd0JBQXdCLENBQzdCLE9BQU8sRUFDUCxPQUFPLENBQUMseUJBQXlCLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUMsQ0FDdkUsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsNkJBQTZCLENBQ3BDLE9BQXdDO0lBRXhDLE1BQU0sb0JBQW9CLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFOUQsSUFBSSxvQkFBb0IsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssTUFBTSxTQUFTLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FDekQsb0JBQW9CLENBQUMsVUFBVSxFQUMvQixhQUFhLENBQUMsSUFBSSxDQUNuQixFQUFFLENBQUM7UUFDRixNQUFNLFVBQVUsR0FBRyw4QkFBOEIsQ0FBQztZQUNoRCxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsYUFBYSxFQUFFLG9CQUFvQixDQUFDLGFBQWE7WUFDakQsaUJBQWlCLEVBQUUsb0JBQW9CLENBQUMsaUJBQWlCO1lBQ3pELFNBQVM7WUFDVCxpQkFBaUIsRUFBRSxvQkFBb0IsQ0FBQyxpQkFBaUI7U0FDMUQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxVQUFVLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyx1QkFBdUIsQ0FDOUIsT0FBd0M7SUFFeEMsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FDakUsT0FBTyxDQUFDLGNBQWMsQ0FDdkIsQ0FBQztJQUNGLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7SUFFbkQsSUFBSSxhQUFhLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPO1FBQ0wsVUFBVSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO1FBQzFFLGFBQWE7UUFDYixpQkFBaUIsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztRQUNuRSxpQkFBaUIsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FDM0QsT0FBTyxDQUFDLGVBQWUsQ0FDeEI7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxPQUF5QjtJQUNwRCxPQUFPLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsd0JBQXdCLENBQy9CLE9BQXdDO0lBRXhDLE9BQU8sQ0FDTCw4QkFBOEIsQ0FBQyxPQUFPLENBQUM7UUFDdkMsNkJBQTZCLENBQUMsT0FBTyxDQUFDLENBQ3ZDLENBQUM7QUFDSixDQUFDO0FBRUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHdCQUF3QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XHJcblxyXG5pbXBvcnQgeyBTaWduYXR1cmVLaW5kIH0gZnJvbSBcInR5cGVzY3JpcHRcIjtcclxuXHJcbmltcG9ydCB0eXBlIHtcclxuICBPdXRlckNhc3RDb250ZXh0LFxyXG4gIFJlc29sdmVGYWN0b3J5VGFyZ2V0VHlwZUNvbnRleHQsXHJcbn0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgaXNPdXRlckNhc3RSZXF1aXJlZCBhcyBpc091dGVyQ2FzdFJlcXVpcmVkSW1wbCxcclxuICBub3JtYWxpemVPYmplY3RMaWtlVHlwZSxcclxuICByZXNvbHZlRmFjdG9yeVJldHVyblR5cGUsXHJcbn0gZnJvbSBcIi4vdHlwZS1zaGFwZS1oZWxwZXJzXCI7XHJcblxyXG4vKiogQ29udGV4dCB1c2VkIHRvIGluc3BlY3Qgb25lIGNhbGxhYmxlIHNpZ25hdHVyZSBmb3IgYSBtb2NrIGZhY3RvcnkuICovXHJcbmludGVyZmFjZSBNYXRjaGluZ1NpZ25hdHVyZVJldHVyblR5cGVDb250ZXh0IHtcclxuICAvKiogVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIgdXNlZCBmb3IgYXNzaWduYWJpbGl0eSBjaGVja3MuICovXHJcbiAgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXI7XHJcblxyXG4gIC8qKiBGaXJzdCBtb2NrLWNhbGwgYXJndW1lbnQgbm9kZS4gKi9cclxuICBmaXJzdEFyZ3VtZW50OiB0cy5Ob2RlO1xyXG5cclxuICAvKiogVHlwZSByZXNvbHZlZCBmb3IgdGhlIGZpcnN0IG1vY2stY2FsbCBhcmd1bWVudC4gKi9cclxuICBmaXJzdEFyZ3VtZW50VHlwZTogdHMuVHlwZTtcclxuXHJcbiAgLyoqIENhbGxhYmxlIHNpZ25hdHVyZSBiZWluZyBpbnNwZWN0ZWQuICovXHJcbiAgc2lnbmF0dXJlOiB0cy5TaWduYXR1cmU7XHJcblxyXG4gIC8qKiBUeXBlU2NyaXB0IG5vZGUgZm9yIHRoZSBmYWN0b3J5IGNhbGxiYWNrIGFyZ3VtZW50LiAqL1xyXG4gIHRzRmFjdG9yeUFyZ3VtZW50OiB0cy5Ob2RlO1xyXG59XHJcblxyXG4vKiogTm9ybWFsaXplZCBpbnB1dHMgdXNlZCB3aGVuIG1hdGNoaW5nIGNhbGxhYmxlIFZpdGVzdCBzaWduYXR1cmVzLiAqL1xyXG5pbnRlcmZhY2UgU2lnbmF0dXJlTWF0Y2hJbnB1dHMge1xyXG4gIC8qKiBUeXBlIHJlc29sdmVkIGZvciB0aGUgbW9jayBjYWxsZWUgZXhwcmVzc2lvbi4gKi9cclxuICBjYWxsZWVUeXBlOiB0cy5UeXBlO1xyXG5cclxuICAvKiogRmlyc3QgbW9jay1jYWxsIGFyZ3VtZW50IG5vZGUuICovXHJcbiAgZmlyc3RBcmd1bWVudDogdHMuTm9kZTtcclxuXHJcbiAgLyoqIFR5cGUgcmVzb2x2ZWQgZm9yIHRoZSBmaXJzdCBtb2NrLWNhbGwgYXJndW1lbnQuICovXHJcbiAgZmlyc3RBcmd1bWVudFR5cGU6IHRzLlR5cGU7XHJcblxyXG4gIC8qKiBUeXBlU2NyaXB0IG5vZGUgZm9yIHRoZSBmYWN0b3J5IGNhbGxiYWNrIGFyZ3VtZW50LiAqL1xyXG4gIHRzRmFjdG9yeUFyZ3VtZW50OiB0cy5Ob2RlO1xyXG59XHJcblxyXG4vKipcclxuICogUmVhZHMgdGhlIGNvbnRleHR1YWwgdHlwZSBhc3NpZ25lZCB0byB0aGUgcmV0dXJuZWQgbW9jayBvYmplY3QgbGl0ZXJhbC5cclxuICogQHBhcmFtIGNvbnRleHQgVHlwZS1yZXNvbHV0aW9uIGlucHV0cyBmb3IgdGhlIGN1cnJlbnQgbW9jayBmYWN0b3J5LlxyXG4gKiBAcmV0dXJucyBDb250ZXh0dWFsIG9iamVjdC1saWtlIHR5cGUgd2hlbiBUeXBlU2NyaXB0IHByb3ZpZGVzIG9uZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCB0YXJnZXRUeXBlID0gZ2V0Q29udGV4dHVhbEZhY3RvcnlUYXJnZXRUeXBlKGNvbnRleHQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldENvbnRleHR1YWxGYWN0b3J5VGFyZ2V0VHlwZShcclxuICBjb250ZXh0OiBSZXNvbHZlRmFjdG9yeVRhcmdldFR5cGVDb250ZXh0LFxyXG4pOiB0cy5UeXBlIHwgdW5kZWZpbmVkIHtcclxuICBjb25zdCB7IGNoZWNrZXIsIG9iamVjdEV4cHJlc3Npb24sIHNlcnZpY2VzIH0gPSBjb250ZXh0O1xyXG5cclxuICByZXR1cm4gbm9ybWFsaXplT2JqZWN0TGlrZVR5cGUoXHJcbiAgICBjaGVja2VyLFxyXG4gICAgY2hlY2tlci5nZXRDb250ZXh0dWFsVHlwZShcclxuICAgICAgc2VydmljZXMuZXNUcmVlTm9kZVRvVFNOb2RlTWFwLmdldChvYmplY3RFeHByZXNzaW9uKSxcclxuICAgICksXHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlc29sdmVzIHRoZSBmYWN0b3J5IHJldHVybiB0eXBlIGZvciBvbmUgY29tcGF0aWJsZSBtb2NrIHNpZ25hdHVyZS5cclxuICogQHBhcmFtIGNvbnRleHQgSW5wdXRzIHJlcXVpcmVkIHRvIGluc3BlY3Qgb25lIGNhbGxhYmxlIHNpZ25hdHVyZS5cclxuICogQHJldHVybnMgTm9ybWFsaXplZCBvYmplY3QtbGlrZSByZXR1cm4gdHlwZSB3aGVuIHRoZSBzaWduYXR1cmUgbWF0Y2hlcy5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCByZXR1cm5UeXBlID0gZ2V0TWF0Y2hpbmdTaWduYXR1cmVSZXR1cm5UeXBlKGNvbnRleHQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldE1hdGNoaW5nU2lnbmF0dXJlUmV0dXJuVHlwZShcclxuICBjb250ZXh0OiBNYXRjaGluZ1NpZ25hdHVyZVJldHVyblR5cGVDb250ZXh0LFxyXG4pOiB0cy5UeXBlIHwgdW5kZWZpbmVkIHtcclxuICBjb25zdCB7XHJcbiAgICBjaGVja2VyLFxyXG4gICAgZmlyc3RBcmd1bWVudCxcclxuICAgIGZpcnN0QXJndW1lbnRUeXBlLFxyXG4gICAgc2lnbmF0dXJlLFxyXG4gICAgdHNGYWN0b3J5QXJndW1lbnQsXHJcbiAgfSA9IGNvbnRleHQ7XHJcbiAgY29uc3QgW3NwZWNpZmllclBhcmFtZXRlciwgZmFjdG9yeVBhcmFtZXRlcl0gPSBzaWduYXR1cmUuZ2V0UGFyYW1ldGVycygpO1xyXG5cclxuICBpZiAoc3BlY2lmaWVyUGFyYW1ldGVyID09PSB2b2lkIDAgfHwgZmFjdG9yeVBhcmFtZXRlciA9PT0gdm9pZCAwKSB7XHJcbiAgICByZXR1cm4gdm9pZCAwO1xyXG4gIH1cclxuXHJcbiAgY29uc3Qgc3BlY2lmaWVyUGFyYW1ldGVyVHlwZSA9IGNoZWNrZXIuZ2V0VHlwZU9mU3ltYm9sQXRMb2NhdGlvbihcclxuICAgIHNwZWNpZmllclBhcmFtZXRlcixcclxuICAgIGZpcnN0QXJndW1lbnQsXHJcbiAgKTtcclxuXHJcbiAgaWYgKCFjaGVja2VyLmlzVHlwZUFzc2lnbmFibGVUbyhmaXJzdEFyZ3VtZW50VHlwZSwgc3BlY2lmaWVyUGFyYW1ldGVyVHlwZSkpIHtcclxuICAgIHJldHVybiB2b2lkIDA7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcmVzb2x2ZUZhY3RvcnlSZXR1cm5UeXBlKFxyXG4gICAgY2hlY2tlcixcclxuICAgIGNoZWNrZXIuZ2V0VHlwZU9mU3ltYm9sQXRMb2NhdGlvbihmYWN0b3J5UGFyYW1ldGVyLCB0c0ZhY3RvcnlBcmd1bWVudCksXHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlc29sdmVzIGEgdGFyZ2V0IHR5cGUgYnkgbWF0Y2hpbmcgdGhlIG1vY2sgY2FsbCBhZ2FpbnN0IGNhbGxhYmxlIHNpZ25hdHVyZXMuXHJcbiAqIEBwYXJhbSBjb250ZXh0IFR5cGUtcmVzb2x1dGlvbiBpbnB1dHMgZm9yIHRoZSBjdXJyZW50IG1vY2sgZmFjdG9yeS5cclxuICogQHJldHVybnMgT2JqZWN0LWxpa2UgcmV0dXJuIHR5cGUgaW5mZXJyZWQgZnJvbSB0aGUgbWF0Y2hlZCBzaWduYXR1cmUuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgdGFyZ2V0VHlwZSA9IGdldFNpZ25hdHVyZUZhY3RvcnlUYXJnZXRUeXBlKGNvbnRleHQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldFNpZ25hdHVyZUZhY3RvcnlUYXJnZXRUeXBlKFxyXG4gIGNvbnRleHQ6IFJlc29sdmVGYWN0b3J5VGFyZ2V0VHlwZUNvbnRleHQsXHJcbik6IHRzLlR5cGUgfCB1bmRlZmluZWQge1xyXG4gIGNvbnN0IHNpZ25hdHVyZU1hdGNoSW5wdXRzID0gZ2V0U2lnbmF0dXJlTWF0Y2hJbnB1dHMoY29udGV4dCk7XHJcblxyXG4gIGlmIChzaWduYXR1cmVNYXRjaElucHV0cyA9PT0gdm9pZCAwKSB7XHJcbiAgICByZXR1cm4gdm9pZCAwO1xyXG4gIH1cclxuXHJcbiAgZm9yIChjb25zdCBzaWduYXR1cmUgb2YgY29udGV4dC5jaGVja2VyLmdldFNpZ25hdHVyZXNPZlR5cGUoXHJcbiAgICBzaWduYXR1cmVNYXRjaElucHV0cy5jYWxsZWVUeXBlLFxyXG4gICAgU2lnbmF0dXJlS2luZC5DYWxsLFxyXG4gICkpIHtcclxuICAgIGNvbnN0IHJldHVyblR5cGUgPSBnZXRNYXRjaGluZ1NpZ25hdHVyZVJldHVyblR5cGUoe1xyXG4gICAgICBjaGVja2VyOiBjb250ZXh0LmNoZWNrZXIsXHJcbiAgICAgIGZpcnN0QXJndW1lbnQ6IHNpZ25hdHVyZU1hdGNoSW5wdXRzLmZpcnN0QXJndW1lbnQsXHJcbiAgICAgIGZpcnN0QXJndW1lbnRUeXBlOiBzaWduYXR1cmVNYXRjaElucHV0cy5maXJzdEFyZ3VtZW50VHlwZSxcclxuICAgICAgc2lnbmF0dXJlLFxyXG4gICAgICB0c0ZhY3RvcnlBcmd1bWVudDogc2lnbmF0dXJlTWF0Y2hJbnB1dHMudHNGYWN0b3J5QXJndW1lbnQsXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAocmV0dXJuVHlwZSAhPT0gdm9pZCAwKSB7XHJcbiAgICAgIHJldHVybiByZXR1cm5UeXBlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHZvaWQgMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbGxlY3RzIHRoZSBUeXBlU2NyaXB0IG5vZGVzIGFuZCB0eXBlcyBuZWVkZWQgZm9yIHNpZ25hdHVyZSBtYXRjaGluZy5cclxuICogQHBhcmFtIGNvbnRleHQgVHlwZS1yZXNvbHV0aW9uIGlucHV0cyBmb3IgdGhlIGN1cnJlbnQgbW9jayBmYWN0b3J5LlxyXG4gKiBAcmV0dXJucyBOb3JtYWxpemVkIHNpZ25hdHVyZS1tYXRjaGluZyBpbnB1dHMgd2hlbiB0aGUgY2FsbCBoYXMgYSBmaXJzdCBhcmd1bWVudC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBpbnB1dHMgPSBnZXRTaWduYXR1cmVNYXRjaElucHV0cyhjb250ZXh0KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRTaWduYXR1cmVNYXRjaElucHV0cyhcclxuICBjb250ZXh0OiBSZXNvbHZlRmFjdG9yeVRhcmdldFR5cGVDb250ZXh0LFxyXG4pOiBTaWduYXR1cmVNYXRjaElucHV0cyB8IHVuZGVmaW5lZCB7XHJcbiAgY29uc3QgdHNDYWxsRXhwcmVzc2lvbiA9IGNvbnRleHQuc2VydmljZXMuZXNUcmVlTm9kZVRvVFNOb2RlTWFwLmdldChcclxuICAgIGNvbnRleHQuY2FsbEV4cHJlc3Npb24sXHJcbiAgKTtcclxuICBjb25zdCBbZmlyc3RBcmd1bWVudF0gPSB0c0NhbGxFeHByZXNzaW9uLmFyZ3VtZW50cztcclxuXHJcbiAgaWYgKGZpcnN0QXJndW1lbnQgPT09IHZvaWQgMCkge1xyXG4gICAgcmV0dXJuIHZvaWQgMDtcclxuICB9XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBjYWxsZWVUeXBlOiBjb250ZXh0LmNoZWNrZXIuZ2V0VHlwZUF0TG9jYXRpb24odHNDYWxsRXhwcmVzc2lvbi5leHByZXNzaW9uKSxcclxuICAgIGZpcnN0QXJndW1lbnQsXHJcbiAgICBmaXJzdEFyZ3VtZW50VHlwZTogY29udGV4dC5jaGVja2VyLmdldFR5cGVBdExvY2F0aW9uKGZpcnN0QXJndW1lbnQpLFxyXG4gICAgdHNGYWN0b3J5QXJndW1lbnQ6IGNvbnRleHQuc2VydmljZXMuZXNUcmVlTm9kZVRvVFNOb2RlTWFwLmdldChcclxuICAgICAgY29udGV4dC5mYWN0b3J5QXJndW1lbnQsXHJcbiAgICApLFxyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIG9iamVjdCBsaXRlcmFsIHN0aWxsIG5lZWRzIGFuIG91dGVyIGNhc3QuXHJcbiAqIEBwYXJhbSBjb250ZXh0IERhdGEgdXNlZCB0byBkZWNpZGUgd2hldGhlciB0aGUgZnVsbCBvYmplY3QgbmVlZHMgY2FzdGluZy5cclxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBmdWxsIG9iamVjdCBzdGlsbCBuZWVkcyBjYXN0aW5nLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IG5lZWRzT3V0ZXJDYXN0ID0gaXNPdXRlckNhc3RSZXF1aXJlZChjb250ZXh0KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc091dGVyQ2FzdFJlcXVpcmVkKGNvbnRleHQ6IE91dGVyQ2FzdENvbnRleHQpOiBib29sZWFuIHtcclxuICByZXR1cm4gaXNPdXRlckNhc3RSZXF1aXJlZEltcGwoY29udGV4dCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXNvbHZlcyB0aGUgdGFyZ2V0IHR5cGUgdGhlIGZhY3Rvcnkgb2JqZWN0IHNob3VsZCBzYXRpc2Z5LlxyXG4gKiBAcGFyYW0gY29udGV4dCBUeXBlLXJlc29sdXRpb24gaW5wdXRzIGZvciB0aGUgY3VycmVudCBtb2NrIGZhY3RvcnkuXHJcbiAqIEByZXR1cm5zIFRhcmdldCB0eXBlIGZvciB0aGUgcmV3cml0dGVuIG9iamVjdCBsaXRlcmFsLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IHRhcmdldFR5cGUgPSByZXNvbHZlRmFjdG9yeVRhcmdldFR5cGUoY29udGV4dCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gcmVzb2x2ZUZhY3RvcnlUYXJnZXRUeXBlKFxyXG4gIGNvbnRleHQ6IFJlc29sdmVGYWN0b3J5VGFyZ2V0VHlwZUNvbnRleHQsXHJcbik6IHRzLlR5cGUgfCB1bmRlZmluZWQge1xyXG4gIHJldHVybiAoXHJcbiAgICBnZXRDb250ZXh0dWFsRmFjdG9yeVRhcmdldFR5cGUoY29udGV4dCkgPz9cclxuICAgIGdldFNpZ25hdHVyZUZhY3RvcnlUYXJnZXRUeXBlKGNvbnRleHQpXHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IHsgaXNPdXRlckNhc3RSZXF1aXJlZCwgcmVzb2x2ZUZhY3RvcnlUYXJnZXRUeXBlIH07XHJcbiJdfQ==
@@ -1,36 +0,0 @@
1
- import type * as ts from "typescript";
2
- import type { OuterCastContext } from "./types.js";
3
- /**
4
- * Determines whether the object literal still needs an outer cast.
5
- * @param context Data used to decide whether the full object needs casting.
6
- * @returns True when the full object still needs casting.
7
- * @example
8
- * ```typescript
9
- * const needsOuterCast = isOuterCastRequired(context);
10
- * ```
11
- */
12
- declare function isOuterCastRequired(context: OuterCastContext): boolean;
13
- /**
14
- * Narrows a target type to the object-like type the fixer can reason about.
15
- * @param checker TypeScript type checker instance.
16
- * @param targetType Candidate target type.
17
- * @returns Object-like type when the target can be normalized safely.
18
- * @example
19
- * ```typescript
20
- * const normalizedType = normalizeObjectLikeType(checker, targetType);
21
- * ```
22
- */
23
- declare function normalizeObjectLikeType(checker: ts.TypeChecker, targetType: ts.Type | undefined): ts.Type | undefined;
24
- /**
25
- * Resolves the factory function's returned object type from its call signatures.
26
- * @param checker TypeScript type checker instance.
27
- * @param factoryParameterType Type of the factory callback parameter.
28
- * @returns Normalized object-like return type when one is available.
29
- * @example
30
- * ```typescript
31
- * const returnType = resolveFactoryReturnType(checker, factoryParameterType);
32
- * ```
33
- */
34
- declare function resolveFactoryReturnType(checker: ts.TypeChecker, factoryParameterType: ts.Type): ts.Type | undefined;
35
- export { isOuterCastRequired, normalizeObjectLikeType, resolveFactoryReturnType, };
36
- //# sourceMappingURL=type-shape-helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type-shape-helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAYtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAoGhD;;;;;;;;GAQG;AACH,iBAAS,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAoB/D;AAED;;;;;;;;;GASG;AACH,iBAAS,uBAAuB,CAC9B,OAAO,EAAE,EAAE,CAAC,WAAW,EACvB,UAAU,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,GAC9B,EAAE,CAAC,IAAI,GAAG,SAAS,CAqBrB;AAED;;;;;;;;;GASG;AACH,iBAAS,wBAAwB,CAC/B,OAAO,EAAE,EAAE,CAAC,WAAW,EACvB,oBAAoB,EAAE,EAAE,CAAC,IAAI,GAC5B,EAAE,CAAC,IAAI,GAAG,SAAS,CAgBrB;AAED,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GACzB,CAAC"}