@codeperfect/eslint-plugin 1.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (587) hide show
  1. package/README.md +26 -4
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/{custom-rules.d.ts → application/custom-rules.d.ts} +3 -0
  4. package/dist/application/custom-rules.d.ts.map +1 -0
  5. package/dist/application/custom-rules.js +74 -0
  6. package/dist/application/index.d.ts +4 -0
  7. package/dist/application/index.d.ts.map +1 -0
  8. package/dist/application/index.js +3 -0
  9. package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
  10. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts +56 -0
  11. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts.map +1 -0
  12. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +149 -0
  13. package/dist/{architecture → domain/architecture}/consistent-barrel-files/consistent-barrel-files-listeners.d.ts +4 -4
  14. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +1 -0
  15. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +98 -0
  16. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +45 -0
  17. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -0
  18. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +64 -0
  19. package/dist/{architecture → domain/architecture}/consistent-barrel-files/exports-only-rule-test-utilities.d.ts +5 -4
  20. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +1 -0
  21. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +87 -0
  22. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -0
  23. package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +145 -0
  24. package/dist/domain/architecture/consistent-barrel-files/index.d.ts +5 -0
  25. package/dist/domain/architecture/consistent-barrel-files/index.d.ts.map +1 -0
  26. package/dist/domain/architecture/consistent-barrel-files/index.js +4 -0
  27. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -0
  28. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +90 -0
  29. package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts +1 -1
  30. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +1 -0
  31. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +91 -0
  32. package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts +4 -6
  33. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +1 -0
  34. package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +95 -0
  35. package/dist/domain/architecture/consistent-barrel-files/rule.d.ts.map +1 -0
  36. package/dist/domain/architecture/consistent-barrel-files/rule.js +51 -0
  37. package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts +4 -0
  38. package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts.map +1 -0
  39. package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.js +4 -0
  40. package/dist/{architecture → domain/architecture}/consistent-barrel-files/test-helpers.d.ts +48 -48
  41. package/dist/domain/architecture/consistent-barrel-files/test-helpers.d.ts.map +1 -0
  42. package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts +20 -0
  43. package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts.map +1 -0
  44. package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.js +25 -0
  45. package/dist/domain/architecture/consistent-barrel-files/test-helpers.js +235 -0
  46. package/dist/domain/architecture/consistent-barrel-files/types.d.ts +19 -0
  47. package/dist/domain/architecture/consistent-barrel-files/types.d.ts.map +1 -0
  48. package/dist/domain/architecture/consistent-barrel-files/types.js +2 -0
  49. package/dist/{architecture → domain/architecture}/index.d.ts +1 -1
  50. package/dist/domain/architecture/index.d.ts.map +1 -0
  51. package/dist/domain/architecture/index.js +2 -0
  52. package/dist/{core → domain/core}/index.d.ts +2 -2
  53. package/dist/domain/core/index.d.ts.map +1 -0
  54. package/dist/domain/core/index.js +3 -0
  55. package/dist/domain/core/no-multiple-declarators/index.d.ts +2 -0
  56. package/dist/domain/core/no-multiple-declarators/index.d.ts.map +1 -0
  57. package/dist/domain/core/no-multiple-declarators/index.js +2 -0
  58. package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts +101 -0
  59. package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts.map +1 -0
  60. package/dist/domain/core/no-multiple-declarators/rule-test-helpers.js +108 -0
  61. package/dist/{core → domain/core}/no-multiple-declarators/rule.d.ts +1 -0
  62. package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -0
  63. package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts +35 -0
  64. package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts.map +1 -0
  65. package/dist/domain/core/no-multiple-declarators/rule.fixes.js +95 -0
  66. package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts +4 -0
  67. package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts.map +1 -0
  68. package/dist/domain/core/no-multiple-declarators/rule.guardrails.js +4 -0
  69. package/dist/domain/core/no-multiple-declarators/rule.js +222 -0
  70. package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts +4 -0
  71. package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts.map +1 -0
  72. package/dist/domain/core/no-multiple-declarators/rule.mocked-types.js +4 -0
  73. package/dist/domain/core/no-multiple-declarators/types.d.ts +77 -0
  74. package/dist/domain/core/no-multiple-declarators/types.d.ts.map +1 -0
  75. package/dist/domain/core/no-multiple-declarators/types.js +38 -0
  76. package/dist/domain/core/prefer-interface-types/index.d.ts +2 -0
  77. package/dist/domain/core/prefer-interface-types/index.d.ts.map +1 -0
  78. package/dist/domain/core/prefer-interface-types/index.js +2 -0
  79. package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -0
  80. package/dist/domain/core/prefer-interface-types/rule.js +148 -0
  81. package/dist/domain/core/prefer-interface-types/test-helpers.d.ts.map +1 -0
  82. package/dist/domain/core/prefer-interface-types/test-helpers.js +116 -0
  83. package/dist/{custom-rule-documentation.d.ts → domain/custom-rule-documentation.d.ts} +3 -1
  84. package/dist/domain/custom-rule-documentation.d.ts.map +1 -0
  85. package/dist/domain/custom-rule-documentation.js +36 -0
  86. package/dist/domain/docs/index.d.ts +4 -0
  87. package/dist/domain/docs/index.d.ts.map +1 -0
  88. package/dist/domain/docs/index.js +4 -0
  89. package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +1 -0
  90. package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.js +129 -0
  91. package/dist/{docs → domain/docs}/no-interface-member-docs/comment-utilities.d.ts +1 -1
  92. package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -0
  93. package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +146 -0
  94. package/dist/domain/docs/no-interface-member-docs/index.d.ts +2 -0
  95. package/dist/domain/docs/no-interface-member-docs/index.d.ts.map +1 -0
  96. package/dist/domain/docs/no-interface-member-docs/index.js +2 -0
  97. package/dist/{docs → domain/docs}/no-interface-member-docs/parameter-tags.d.ts +1 -1
  98. package/dist/domain/docs/no-interface-member-docs/parameter-tags.d.ts.map +1 -0
  99. package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +101 -0
  100. package/dist/{docs → domain/docs}/no-interface-member-docs/parameter-utilities.d.ts +1 -1
  101. package/dist/domain/docs/no-interface-member-docs/parameter-utilities.d.ts.map +1 -0
  102. package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +125 -0
  103. package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -0
  104. package/dist/domain/docs/no-interface-member-docs/rule.js +171 -0
  105. package/dist/domain/docs/no-interface-member-docs/test-helpers.d.ts.map +1 -0
  106. package/dist/{docs → domain/docs}/no-interface-member-docs/test-helpers.js +2 -2
  107. package/dist/{docs → domain/docs}/no-interface-member-docs/types.d.ts +2 -2
  108. package/dist/domain/docs/no-interface-member-docs/types.d.ts.map +1 -0
  109. package/dist/domain/docs/no-interface-member-docs/types.js +2 -0
  110. package/dist/domain/docs/require-example-language/create-fixer.d.ts +5 -0
  111. package/dist/domain/docs/require-example-language/create-fixer.d.ts.map +1 -0
  112. package/dist/domain/docs/require-example-language/create-fixer.js +5 -0
  113. package/dist/domain/docs/require-example-language/empty-fence-fixes.d.ts.map +1 -0
  114. package/dist/domain/docs/require-example-language/empty-fence-fixes.js +169 -0
  115. package/dist/domain/docs/require-example-language/example-utilities.d.ts.map +1 -0
  116. package/dist/domain/docs/require-example-language/example-utilities.js +76 -0
  117. package/dist/{docs → domain/docs}/require-example-language/examples.d.ts +1 -1
  118. package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -0
  119. package/dist/domain/docs/require-example-language/examples.js +181 -0
  120. package/dist/{docs → domain/docs}/require-example-language/fixes.d.ts +2 -2
  121. package/dist/domain/docs/require-example-language/fixes.d.ts.map +1 -0
  122. package/dist/domain/docs/require-example-language/fixes.js +182 -0
  123. package/dist/domain/docs/require-example-language/index.d.ts +3 -0
  124. package/dist/domain/docs/require-example-language/index.d.ts.map +1 -0
  125. package/dist/domain/docs/require-example-language/index.js +2 -0
  126. package/dist/{docs → domain/docs}/require-example-language/reporting.d.ts +1 -1
  127. package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -0
  128. package/dist/domain/docs/require-example-language/reporting.js +148 -0
  129. package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -0
  130. package/dist/domain/docs/require-example-language/rule.js +37 -0
  131. package/dist/domain/docs/require-example-language/types.d.ts.map +1 -0
  132. package/dist/domain/docs/require-example-language/types.js +2 -0
  133. package/dist/domain/docs/single-line-jsdoc/index.d.ts +2 -0
  134. package/dist/domain/docs/single-line-jsdoc/index.d.ts.map +1 -0
  135. package/dist/domain/docs/single-line-jsdoc/index.js +2 -0
  136. package/dist/domain/docs/single-line-jsdoc/rule.d.ts +4 -0
  137. package/dist/domain/docs/single-line-jsdoc/rule.d.ts.map +1 -0
  138. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts +4 -0
  139. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts.map +1 -0
  140. package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.js +5 -0
  141. package/dist/domain/docs/single-line-jsdoc/rule.js +201 -0
  142. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts +4 -0
  143. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts.map +1 -0
  144. package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.js +5 -0
  145. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +1 -0
  146. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.js +95 -0
  147. package/dist/{docs → domain/docs}/single-line-jsdoc/single-line-jsdoc-utilities.d.ts +1 -1
  148. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +1 -0
  149. package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +140 -0
  150. package/dist/domain/docs/test-helpers.d.ts.map +1 -0
  151. package/dist/domain/docs/test-helpers.js +107 -0
  152. package/dist/domain/index.d.ts +6 -0
  153. package/dist/domain/index.d.ts.map +1 -0
  154. package/dist/domain/index.js +6 -0
  155. package/dist/domain/testing/aaa/analyzer.analysis.d.ts +34 -0
  156. package/dist/domain/testing/aaa/analyzer.analysis.d.ts.map +1 -0
  157. package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts +145 -0
  158. package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -0
  159. package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +203 -0
  160. package/dist/domain/testing/aaa/analyzer.analysis.js +82 -0
  161. package/dist/domain/testing/aaa/analyzer.analysis.unsupported.d.ts +4 -0
  162. package/dist/domain/testing/aaa/analyzer.analysis.unsupported.d.ts.map +1 -0
  163. package/dist/domain/testing/aaa/analyzer.analysis.unsupported.js +4 -0
  164. package/dist/domain/testing/aaa/analyzer.assertions.d.ts +18 -0
  165. package/dist/domain/testing/aaa/analyzer.assertions.d.ts.map +1 -0
  166. package/dist/domain/testing/aaa/analyzer.assertions.destructured.d.ts +4 -0
  167. package/dist/domain/testing/aaa/analyzer.assertions.destructured.d.ts.map +1 -0
  168. package/dist/domain/testing/aaa/analyzer.assertions.destructured.js +4 -0
  169. package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts +95 -0
  170. package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -0
  171. package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +185 -0
  172. package/dist/domain/testing/aaa/analyzer.assertions.js +33 -0
  173. package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts +64 -0
  174. package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts.map +1 -0
  175. package/dist/domain/testing/aaa/analyzer.assertions.operands.js +105 -0
  176. package/dist/domain/testing/aaa/analyzer.classification.d.ts +16 -0
  177. package/dist/domain/testing/aaa/analyzer.classification.d.ts.map +1 -0
  178. package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts +77 -0
  179. package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts.map +1 -0
  180. package/dist/domain/testing/aaa/analyzer.classification.helpers.js +203 -0
  181. package/dist/domain/testing/aaa/analyzer.classification.js +31 -0
  182. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts +9 -0
  183. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts.map +1 -0
  184. package/dist/domain/testing/aaa/analyzer.classification.member-patterns.js +10 -0
  185. package/dist/domain/testing/aaa/analyzer.classification.mutations.d.ts +4 -0
  186. package/dist/domain/testing/aaa/analyzer.classification.mutations.d.ts.map +1 -0
  187. package/dist/domain/testing/aaa/analyzer.classification.mutations.js +4 -0
  188. package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts +15 -0
  189. package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts.map +1 -0
  190. package/dist/domain/testing/aaa/analyzer.classification.traversal.js +34 -0
  191. package/dist/domain/testing/aaa/analyzer.d.ts +46 -0
  192. package/dist/domain/testing/aaa/analyzer.d.ts.map +1 -0
  193. package/dist/domain/testing/aaa/analyzer.js +59 -0
  194. package/dist/domain/testing/aaa/analyzer.super.d.ts +106 -0
  195. package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -0
  196. package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts +27 -0
  197. package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts.map +1 -0
  198. package/dist/domain/testing/aaa/analyzer.super.helpers.js +66 -0
  199. package/dist/domain/testing/aaa/analyzer.super.js +211 -0
  200. package/dist/{testing → domain/testing}/aaa/index.d.ts +2 -2
  201. package/dist/domain/testing/aaa/index.d.ts.map +1 -0
  202. package/dist/domain/testing/aaa/index.js +2 -0
  203. package/dist/domain/testing/aaa/types.d.ts +58 -0
  204. package/dist/domain/testing/aaa/types.d.ts.map +1 -0
  205. package/dist/domain/testing/aaa/types.js +2 -0
  206. package/dist/domain/testing/assert-actual-expected-names/index.d.ts +2 -0
  207. package/dist/domain/testing/assert-actual-expected-names/index.d.ts.map +1 -0
  208. package/dist/domain/testing/assert-actual-expected-names/index.js +2 -0
  209. package/dist/{testing → domain/testing}/assert-actual-expected-names/rule.d.ts +1 -0
  210. package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -0
  211. package/dist/domain/testing/assert-actual-expected-names/rule.js +116 -0
  212. package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts +2 -0
  213. package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts.map +1 -0
  214. package/dist/domain/testing/enforce-aaa-phase-purity/index.js +2 -0
  215. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts +13 -0
  216. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -0
  217. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +134 -0
  218. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts +25 -0
  219. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts.map +1 -0
  220. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.js +138 -0
  221. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.d.ts +4 -0
  222. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.d.ts.map +1 -0
  223. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.js +4 -0
  224. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.d.ts +4 -0
  225. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.d.ts.map +1 -0
  226. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.js +4 -0
  227. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts +4 -0
  228. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts.map +1 -0
  229. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.js +4 -0
  230. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts +14 -0
  231. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts.map +1 -0
  232. package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.js +180 -0
  233. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts +42 -0
  234. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts.map +1 -0
  235. package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.js +188 -0
  236. package/dist/{testing → domain/testing}/enforce-aaa-phase-purity/rule.d.ts +1 -0
  237. package/dist/domain/testing/enforce-aaa-phase-purity/rule.d.ts.map +1 -0
  238. package/dist/domain/testing/enforce-aaa-phase-purity/rule.js +37 -0
  239. package/dist/domain/testing/enforce-aaa-structure/index.d.ts +2 -0
  240. package/dist/domain/testing/enforce-aaa-structure/index.d.ts.map +1 -0
  241. package/dist/domain/testing/enforce-aaa-structure/index.js +2 -0
  242. package/dist/{testing → domain/testing}/enforce-aaa-structure/rule.d.ts +1 -0
  243. package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -0
  244. package/dist/domain/testing/enforce-aaa-structure/rule.js +88 -0
  245. package/dist/{testing → domain/testing}/index.d.ts +9 -8
  246. package/dist/domain/testing/index.d.ts.map +1 -0
  247. package/dist/domain/testing/index.js +10 -0
  248. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts +29 -0
  249. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts.map +1 -0
  250. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.js +90 -0
  251. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts +31 -0
  252. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts.map +1 -0
  253. package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.js +43 -0
  254. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts +16 -0
  255. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts.map +1 -0
  256. package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +205 -0
  257. package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts +28 -0
  258. package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts.map +1 -0
  259. package/dist/domain/testing/prefer-vi-mocked-import/fix.js +171 -0
  260. package/dist/domain/testing/prefer-vi-mocked-import/index.d.ts +2 -0
  261. package/dist/domain/testing/prefer-vi-mocked-import/index.d.ts.map +1 -0
  262. package/dist/domain/testing/prefer-vi-mocked-import/index.js +2 -0
  263. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-bindings.d.ts +1 -1
  264. package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +1 -0
  265. package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.js +52 -0
  266. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-declarations.d.ts +2 -1
  267. package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +1 -0
  268. package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.js +131 -0
  269. package/dist/domain/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +1 -0
  270. package/dist/domain/testing/prefer-vi-mocked-import/match-helpers.js +102 -0
  271. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-imports.d.ts +1 -1
  272. package/dist/domain/testing/prefer-vi-mocked-import/match-imports.d.ts.map +1 -0
  273. package/dist/domain/testing/prefer-vi-mocked-import/match-imports.js +156 -0
  274. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-rewrites.d.ts +1 -1
  275. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +1 -0
  276. package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +119 -0
  277. package/dist/domain/testing/prefer-vi-mocked-import/match-walk.d.ts.map +1 -0
  278. package/dist/domain/testing/prefer-vi-mocked-import/match-walk.js +62 -0
  279. package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts +26 -0
  280. package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -0
  281. package/dist/domain/testing/prefer-vi-mocked-import/match.js +198 -0
  282. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts +20 -0
  283. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts.map +1 -0
  284. package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.js +39 -0
  285. package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -0
  286. package/dist/domain/testing/prefer-vi-mocked-import/rule.js +39 -0
  287. package/dist/{testing → domain/testing}/prefer-vi-mocked-import/types.d.ts +1 -1
  288. package/dist/domain/testing/prefer-vi-mocked-import/types.d.ts.map +1 -0
  289. package/dist/domain/testing/prefer-vi-mocked-import/types.js +2 -0
  290. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts +97 -0
  291. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts.map +1 -0
  292. package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.js +174 -0
  293. package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts +2 -0
  294. package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts.map +1 -0
  295. package/dist/domain/testing/prefer-vitest-incremental-casts/index.js +2 -0
  296. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts +14 -0
  297. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts.map +1 -0
  298. package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.js +84 -0
  299. package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts +13 -0
  300. package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts.map +1 -0
  301. package/dist/domain/testing/prefer-vitest-incremental-casts/match.js +195 -0
  302. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts +25 -0
  303. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts.map +1 -0
  304. package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.js +96 -0
  305. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts +32 -0
  306. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts.map +1 -0
  307. package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.js +164 -0
  308. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts +5 -0
  309. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts.map +1 -0
  310. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts +4 -0
  311. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts.map +1 -0
  312. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.js +4 -0
  313. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts +4 -0
  314. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts.map +1 -0
  315. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.js +4 -0
  316. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.js +88 -0
  317. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts +4 -0
  318. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts.map +1 -0
  319. package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.js +4 -0
  320. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts +24 -0
  321. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts.map +1 -0
  322. package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.js +113 -0
  323. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts +36 -0
  324. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts.map +1 -0
  325. package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.js +138 -0
  326. package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts +187 -0
  327. package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts.map +1 -0
  328. package/dist/domain/testing/prefer-vitest-incremental-casts/types.js +2 -0
  329. package/dist/domain/testing/require-aaa-sections/index.d.ts +2 -0
  330. package/dist/domain/testing/require-aaa-sections/index.d.ts.map +1 -0
  331. package/dist/domain/testing/require-aaa-sections/index.js +2 -0
  332. package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts +17 -0
  333. package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts.map +1 -0
  334. package/dist/domain/testing/require-aaa-sections/missing-section-fixes.js +150 -0
  335. package/dist/{testing → domain/testing}/require-aaa-sections/rule.d.ts +1 -0
  336. package/dist/domain/testing/require-aaa-sections/rule.d.ts.map +1 -0
  337. package/dist/domain/testing/require-aaa-sections/rule.js +134 -0
  338. package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts +104 -0
  339. package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts.map +1 -0
  340. package/dist/domain/testing/require-aaa-sections/rule.reporting.js +216 -0
  341. package/dist/domain/testing/require-act-result-capture/index.d.ts +2 -0
  342. package/dist/domain/testing/require-act-result-capture/index.d.ts.map +1 -0
  343. package/dist/domain/testing/require-act-result-capture/index.js +2 -0
  344. package/dist/{testing → domain/testing}/require-act-result-capture/rule.d.ts +1 -0
  345. package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -0
  346. package/dist/domain/testing/require-act-result-capture/rule.js +109 -0
  347. package/dist/domain/testing/require-test-companion/index.d.ts +3 -0
  348. package/dist/domain/testing/require-test-companion/index.d.ts.map +1 -0
  349. package/dist/domain/testing/require-test-companion/index.js +3 -0
  350. package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-listeners.d.ts +1 -1
  351. package/dist/domain/testing/require-test-companion/require-test-companion-listeners.d.ts.map +1 -0
  352. package/dist/domain/testing/require-test-companion/require-test-companion-listeners.js +145 -0
  353. package/dist/domain/testing/require-test-companion/require-test-companion-options.d.ts.map +1 -0
  354. package/dist/domain/testing/require-test-companion/require-test-companion-options.js +113 -0
  355. package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-test-helpers.d.ts +1 -1
  356. package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +1 -0
  357. package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.js +184 -0
  358. package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-utilities.d.ts +1 -1
  359. package/dist/domain/testing/require-test-companion/require-test-companion-utilities.d.ts.map +1 -0
  360. package/dist/domain/testing/require-test-companion/require-test-companion-utilities.js +26 -0
  361. package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -0
  362. package/dist/domain/testing/require-test-companion/rule.js +82 -0
  363. package/dist/domain/testing/require-test-companion/types.d.ts.map +1 -0
  364. package/dist/domain/testing/require-test-companion/types.js +2 -0
  365. package/dist/domain/testing/single-act-statement/index.d.ts +2 -0
  366. package/dist/domain/testing/single-act-statement/index.d.ts.map +1 -0
  367. package/dist/domain/testing/single-act-statement/index.js +2 -0
  368. package/dist/{testing → domain/testing}/single-act-statement/rule.d.ts +1 -0
  369. package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -0
  370. package/dist/domain/testing/single-act-statement/rule.js +37 -0
  371. package/dist/index.d.ts +4 -5
  372. package/dist/index.d.ts.map +1 -1
  373. package/dist/index.js +3 -6
  374. package/dist/{codeperfect-plugin.d.ts → infrastructure/codeperfect-plugin.d.ts} +2 -0
  375. package/dist/infrastructure/codeperfect-plugin.d.ts.map +1 -0
  376. package/dist/infrastructure/codeperfect-plugin.js +30 -0
  377. package/dist/infrastructure/index.d.ts +5 -0
  378. package/dist/infrastructure/index.d.ts.map +1 -0
  379. package/dist/infrastructure/index.js +4 -0
  380. package/dist/infrastructure/presets.d.ts +18 -0
  381. package/dist/infrastructure/presets.d.ts.map +1 -0
  382. package/dist/infrastructure/presets.js +81 -0
  383. package/package.json +67 -32
  384. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +0 -1
  385. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +0 -131
  386. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +0 -48
  387. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +0 -1
  388. package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.js +0 -126
  389. package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +0 -1
  390. package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +0 -90
  391. package/dist/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +0 -1
  392. package/dist/architecture/consistent-barrel-files/exports-only-rule.js +0 -218
  393. package/dist/architecture/consistent-barrel-files/index.d.ts +0 -5
  394. package/dist/architecture/consistent-barrel-files/index.d.ts.map +0 -1
  395. package/dist/architecture/consistent-barrel-files/index.js +0 -4
  396. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +0 -1
  397. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +0 -100
  398. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +0 -1
  399. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +0 -90
  400. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +0 -1
  401. package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +0 -154
  402. package/dist/architecture/consistent-barrel-files/rule.d.ts.map +0 -1
  403. package/dist/architecture/consistent-barrel-files/rule.js +0 -58
  404. package/dist/architecture/consistent-barrel-files/test-helpers.d.ts.map +0 -1
  405. package/dist/architecture/consistent-barrel-files/test-helpers.js +0 -229
  406. package/dist/architecture/consistent-barrel-files/types.d.ts +0 -25
  407. package/dist/architecture/consistent-barrel-files/types.d.ts.map +0 -1
  408. package/dist/architecture/consistent-barrel-files/types.js +0 -2
  409. package/dist/architecture/index.d.ts.map +0 -1
  410. package/dist/architecture/index.js +0 -2
  411. package/dist/benchmark-rules.d.ts +0 -83
  412. package/dist/benchmark-rules.d.ts.map +0 -1
  413. package/dist/benchmark-rules.js +0 -175
  414. package/dist/codeperfect-plugin.d.ts.map +0 -1
  415. package/dist/codeperfect-plugin.js +0 -29
  416. package/dist/core/index.d.ts.map +0 -1
  417. package/dist/core/index.js +0 -3
  418. package/dist/core/no-multiple-declarators/index.d.ts +0 -2
  419. package/dist/core/no-multiple-declarators/index.d.ts.map +0 -1
  420. package/dist/core/no-multiple-declarators/index.js +0 -2
  421. package/dist/core/no-multiple-declarators/rule.d.ts.map +0 -1
  422. package/dist/core/no-multiple-declarators/rule.js +0 -100
  423. package/dist/core/prefer-interface-types/index.d.ts +0 -2
  424. package/dist/core/prefer-interface-types/index.d.ts.map +0 -1
  425. package/dist/core/prefer-interface-types/index.js +0 -2
  426. package/dist/core/prefer-interface-types/rule.d.ts.map +0 -1
  427. package/dist/core/prefer-interface-types/rule.js +0 -145
  428. package/dist/core/prefer-interface-types/test-helpers.d.ts.map +0 -1
  429. package/dist/core/prefer-interface-types/test-helpers.js +0 -116
  430. package/dist/custom-rule-documentation.d.ts.map +0 -1
  431. package/dist/custom-rule-documentation.js +0 -35
  432. package/dist/custom-rules.d.ts.map +0 -1
  433. package/dist/custom-rules.js +0 -70
  434. package/dist/docs/index.d.ts +0 -4
  435. package/dist/docs/index.d.ts.map +0 -1
  436. package/dist/docs/index.js +0 -4
  437. package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +0 -1
  438. package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.js +0 -129
  439. package/dist/docs/no-interface-member-docs/comment-utilities.d.ts.map +0 -1
  440. package/dist/docs/no-interface-member-docs/comment-utilities.js +0 -146
  441. package/dist/docs/no-interface-member-docs/index.d.ts +0 -2
  442. package/dist/docs/no-interface-member-docs/index.d.ts.map +0 -1
  443. package/dist/docs/no-interface-member-docs/index.js +0 -2
  444. package/dist/docs/no-interface-member-docs/parameter-tags.d.ts.map +0 -1
  445. package/dist/docs/no-interface-member-docs/parameter-tags.js +0 -101
  446. package/dist/docs/no-interface-member-docs/parameter-utilities.d.ts.map +0 -1
  447. package/dist/docs/no-interface-member-docs/parameter-utilities.js +0 -125
  448. package/dist/docs/no-interface-member-docs/rule.d.ts.map +0 -1
  449. package/dist/docs/no-interface-member-docs/rule.js +0 -168
  450. package/dist/docs/no-interface-member-docs/test-helpers.d.ts.map +0 -1
  451. package/dist/docs/no-interface-member-docs/types.d.ts.map +0 -1
  452. package/dist/docs/no-interface-member-docs/types.js +0 -2
  453. package/dist/docs/require-example-language/empty-fence-fixes.d.ts.map +0 -1
  454. package/dist/docs/require-example-language/empty-fence-fixes.js +0 -169
  455. package/dist/docs/require-example-language/example-utilities.d.ts.map +0 -1
  456. package/dist/docs/require-example-language/example-utilities.js +0 -76
  457. package/dist/docs/require-example-language/examples.d.ts.map +0 -1
  458. package/dist/docs/require-example-language/examples.js +0 -181
  459. package/dist/docs/require-example-language/fixes.d.ts.map +0 -1
  460. package/dist/docs/require-example-language/fixes.js +0 -182
  461. package/dist/docs/require-example-language/index.d.ts +0 -3
  462. package/dist/docs/require-example-language/index.d.ts.map +0 -1
  463. package/dist/docs/require-example-language/index.js +0 -2
  464. package/dist/docs/require-example-language/reporting.d.ts.map +0 -1
  465. package/dist/docs/require-example-language/reporting.js +0 -145
  466. package/dist/docs/require-example-language/rule.d.ts.map +0 -1
  467. package/dist/docs/require-example-language/rule.js +0 -34
  468. package/dist/docs/require-example-language/types.d.ts.map +0 -1
  469. package/dist/docs/require-example-language/types.js +0 -2
  470. package/dist/docs/single-line-jsdoc/index.d.ts +0 -2
  471. package/dist/docs/single-line-jsdoc/index.d.ts.map +0 -1
  472. package/dist/docs/single-line-jsdoc/index.js +0 -2
  473. package/dist/docs/single-line-jsdoc/rule.d.ts +0 -5
  474. package/dist/docs/single-line-jsdoc/rule.d.ts.map +0 -1
  475. package/dist/docs/single-line-jsdoc/rule.js +0 -196
  476. package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +0 -1
  477. package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.js +0 -95
  478. package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +0 -1
  479. package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +0 -140
  480. package/dist/docs/test-helpers.d.ts.map +0 -1
  481. package/dist/docs/test-helpers.js +0 -107
  482. package/dist/presets.d.ts +0 -10
  483. package/dist/presets.d.ts.map +0 -1
  484. package/dist/presets.js +0 -50
  485. package/dist/rules/index.d.ts +0 -5
  486. package/dist/rules/index.d.ts.map +0 -1
  487. package/dist/rules/index.js +0 -6
  488. package/dist/testing/aaa/analyzer.d.ts +0 -36
  489. package/dist/testing/aaa/analyzer.d.ts.map +0 -1
  490. package/dist/testing/aaa/analyzer.js +0 -490
  491. package/dist/testing/aaa/index.d.ts.map +0 -1
  492. package/dist/testing/aaa/index.js +0 -2
  493. package/dist/testing/aaa/types.d.ts +0 -31
  494. package/dist/testing/aaa/types.d.ts.map +0 -1
  495. package/dist/testing/aaa/types.js +0 -2
  496. package/dist/testing/assert-actual-expected-names/index.d.ts +0 -2
  497. package/dist/testing/assert-actual-expected-names/index.d.ts.map +0 -1
  498. package/dist/testing/assert-actual-expected-names/index.js +0 -2
  499. package/dist/testing/assert-actual-expected-names/rule.d.ts.map +0 -1
  500. package/dist/testing/assert-actual-expected-names/rule.js +0 -54
  501. package/dist/testing/enforce-aaa-phase-purity/index.d.ts +0 -2
  502. package/dist/testing/enforce-aaa-phase-purity/index.d.ts.map +0 -1
  503. package/dist/testing/enforce-aaa-phase-purity/index.js +0 -2
  504. package/dist/testing/enforce-aaa-phase-purity/rule.d.ts.map +0 -1
  505. package/dist/testing/enforce-aaa-phase-purity/rule.js +0 -110
  506. package/dist/testing/enforce-aaa-structure/index.d.ts +0 -2
  507. package/dist/testing/enforce-aaa-structure/index.d.ts.map +0 -1
  508. package/dist/testing/enforce-aaa-structure/index.js +0 -2
  509. package/dist/testing/enforce-aaa-structure/rule.d.ts.map +0 -1
  510. package/dist/testing/enforce-aaa-structure/rule.js +0 -48
  511. package/dist/testing/index.d.ts.map +0 -1
  512. package/dist/testing/index.js +0 -9
  513. package/dist/testing/prefer-vi-mocked-import/fix.d.ts +0 -16
  514. package/dist/testing/prefer-vi-mocked-import/fix.d.ts.map +0 -1
  515. package/dist/testing/prefer-vi-mocked-import/fix.js +0 -224
  516. package/dist/testing/prefer-vi-mocked-import/index.d.ts +0 -2
  517. package/dist/testing/prefer-vi-mocked-import/index.d.ts.map +0 -1
  518. package/dist/testing/prefer-vi-mocked-import/index.js +0 -2
  519. package/dist/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +0 -1
  520. package/dist/testing/prefer-vi-mocked-import/match-bindings.js +0 -52
  521. package/dist/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +0 -1
  522. package/dist/testing/prefer-vi-mocked-import/match-declarations.js +0 -99
  523. package/dist/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +0 -1
  524. package/dist/testing/prefer-vi-mocked-import/match-helpers.js +0 -102
  525. package/dist/testing/prefer-vi-mocked-import/match-imports.d.ts.map +0 -1
  526. package/dist/testing/prefer-vi-mocked-import/match-imports.js +0 -156
  527. package/dist/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +0 -1
  528. package/dist/testing/prefer-vi-mocked-import/match-rewrites.js +0 -119
  529. package/dist/testing/prefer-vi-mocked-import/match-walk.d.ts.map +0 -1
  530. package/dist/testing/prefer-vi-mocked-import/match-walk.js +0 -62
  531. package/dist/testing/prefer-vi-mocked-import/match.d.ts +0 -15
  532. package/dist/testing/prefer-vi-mocked-import/match.d.ts.map +0 -1
  533. package/dist/testing/prefer-vi-mocked-import/match.js +0 -193
  534. package/dist/testing/prefer-vi-mocked-import/rule.d.ts.map +0 -1
  535. package/dist/testing/prefer-vi-mocked-import/rule.js +0 -32
  536. package/dist/testing/prefer-vi-mocked-import/types.d.ts.map +0 -1
  537. package/dist/testing/prefer-vi-mocked-import/types.js +0 -2
  538. package/dist/testing/require-aaa-sections/index.d.ts +0 -2
  539. package/dist/testing/require-aaa-sections/index.d.ts.map +0 -1
  540. package/dist/testing/require-aaa-sections/index.js +0 -2
  541. package/dist/testing/require-aaa-sections/rule.d.ts.map +0 -1
  542. package/dist/testing/require-aaa-sections/rule.js +0 -111
  543. package/dist/testing/require-act-result-capture/index.d.ts +0 -2
  544. package/dist/testing/require-act-result-capture/index.d.ts.map +0 -1
  545. package/dist/testing/require-act-result-capture/index.js +0 -2
  546. package/dist/testing/require-act-result-capture/rule.d.ts.map +0 -1
  547. package/dist/testing/require-act-result-capture/rule.js +0 -34
  548. package/dist/testing/require-test-companion/index.d.ts +0 -3
  549. package/dist/testing/require-test-companion/index.d.ts.map +0 -1
  550. package/dist/testing/require-test-companion/index.js +0 -3
  551. package/dist/testing/require-test-companion/require-test-companion-listeners.d.ts.map +0 -1
  552. package/dist/testing/require-test-companion/require-test-companion-listeners.js +0 -145
  553. package/dist/testing/require-test-companion/require-test-companion-options.d.ts.map +0 -1
  554. package/dist/testing/require-test-companion/require-test-companion-options.js +0 -112
  555. package/dist/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +0 -1
  556. package/dist/testing/require-test-companion/require-test-companion-test-helpers.js +0 -183
  557. package/dist/testing/require-test-companion/require-test-companion-utilities.d.ts.map +0 -1
  558. package/dist/testing/require-test-companion/require-test-companion-utilities.js +0 -26
  559. package/dist/testing/require-test-companion/rule.d.ts.map +0 -1
  560. package/dist/testing/require-test-companion/rule.js +0 -57
  561. package/dist/testing/require-test-companion/types.d.ts.map +0 -1
  562. package/dist/testing/require-test-companion/types.js +0 -2
  563. package/dist/testing/single-act-statement/index.d.ts +0 -2
  564. package/dist/testing/single-act-statement/index.d.ts.map +0 -1
  565. package/dist/testing/single-act-statement/index.js +0 -2
  566. package/dist/testing/single-act-statement/rule.d.ts.map +0 -1
  567. package/dist/testing/single-act-statement/rule.js +0 -33
  568. /package/dist/{architecture → domain/architecture}/consistent-barrel-files/exports-only-rule.d.ts +0 -0
  569. /package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts +0 -0
  570. /package/dist/{architecture → domain/architecture}/consistent-barrel-files/rule.d.ts +0 -0
  571. /package/dist/{core → domain/core}/prefer-interface-types/rule.d.ts +0 -0
  572. /package/dist/{core → domain/core}/prefer-interface-types/test-helpers.d.ts +0 -0
  573. /package/dist/{docs → domain/docs}/no-interface-member-docs/comment-utilities-test-helpers.d.ts +0 -0
  574. /package/dist/{docs → domain/docs}/no-interface-member-docs/rule.d.ts +0 -0
  575. /package/dist/{docs → domain/docs}/no-interface-member-docs/test-helpers.d.ts +0 -0
  576. /package/dist/{docs → domain/docs}/require-example-language/empty-fence-fixes.d.ts +0 -0
  577. /package/dist/{docs → domain/docs}/require-example-language/example-utilities.d.ts +0 -0
  578. /package/dist/{docs → domain/docs}/require-example-language/rule.d.ts +0 -0
  579. /package/dist/{docs → domain/docs}/require-example-language/types.d.ts +0 -0
  580. /package/dist/{docs → domain/docs}/single-line-jsdoc/single-line-jsdoc-content.d.ts +0 -0
  581. /package/dist/{docs → domain/docs}/test-helpers.d.ts +0 -0
  582. /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-helpers.d.ts +0 -0
  583. /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-walk.d.ts +0 -0
  584. /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/rule.d.ts +0 -0
  585. /package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-options.d.ts +0 -0
  586. /package/dist/{testing → domain/testing}/require-test-companion/rule.d.ts +0 -0
  587. /package/dist/{testing → domain/testing}/require-test-companion/types.d.ts +0 -0
@@ -1,52 +0,0 @@
1
- import { hasRange } from "./match-helpers";
2
- /**
3
- * Collects bindings from a mock factory object.
4
- * @param objectExpression Returned object expression.
5
- * @param declarations Known declarations by local name.
6
- * @returns Collected bindings.
7
- * @example
8
- * ```typescript
9
- * const bindings = collectBindings({ properties: [], type: "ObjectExpression" } as never, new Map());
10
- * void bindings;
11
- * ```
12
- */
13
- function collectBindings(objectExpression, declarations) {
14
- return objectExpression.properties
15
- .map((propertyNode) => toBinding(propertyNode, declarations))
16
- .filter((binding) => binding !== void 0);
17
- }
18
- /**
19
- * Converts one object property into a binding when supported.
20
- * @param propertyNode Object property candidate.
21
- * @param declarations Known declarations.
22
- * @returns Binding when property matches the rule shape.
23
- * @example
24
- * ```typescript
25
- * const binding = toBinding({ type: "SpreadElement" } as never, new Map());
26
- * void binding;
27
- * ```
28
- */
29
- function toBinding(propertyNode, declarations) {
30
- if (propertyNode.type !== "Property" ||
31
- propertyNode.key.type !== "Identifier") {
32
- return void 0;
33
- }
34
- if (!hasRange(propertyNode) ||
35
- !hasRange(propertyNode.key) ||
36
- propertyNode.value.type !== "Identifier") {
37
- return void 0;
38
- }
39
- if (!hasRange(propertyNode.value) ||
40
- !declarations.has(propertyNode.value.name)) {
41
- return void 0;
42
- }
43
- return {
44
- exportedName: propertyNode.key.name,
45
- localName: propertyNode.value.name,
46
- propertyKeyRange: propertyNode.key.range,
47
- propertyRange: propertyNode.range,
48
- propertyValueRange: propertyNode.value.range,
49
- };
50
- }
51
- export { collectBindings };
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtYmluZGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdGluZy9wcmVmZXItdmktbW9ja2VkLWltcG9ydC9tYXRjaC1iaW5kaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0M7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsZUFBZSxDQUN0QixnQkFBeUMsRUFDekMsWUFBc0M7SUFFdEMsT0FBTyxnQkFBZ0IsQ0FBQyxVQUFVO1NBQy9CLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztTQUM1RCxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQXNCLEVBQUUsQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNqRSxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsU0FBUyxDQUNoQixZQUFvRCxFQUNwRCxZQUFzQztJQUV0QyxJQUNFLFlBQVksQ0FBQyxJQUFJLEtBQUssVUFBVTtRQUNoQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxZQUFZLEVBQ3RDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFDRCxJQUNFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUN2QixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDO1FBQzNCLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksRUFDeEMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUNELElBQ0UsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUM3QixDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFDMUMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU87UUFDTCxZQUFZLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJO1FBQ25DLFNBQVMsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUk7UUFDbEMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLO1FBQ3hDLGFBQWEsRUFBRSxZQUFZLENBQUMsS0FBSztRQUNqQyxrQkFBa0IsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUs7S0FDN0MsQ0FBQztBQUNKLENBQUM7QUFFRCxPQUFPLEVBQUUsZUFBZSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbmltcG9ydCB0eXBlIHsgQmluZGluZywgRGVjbGFyYXRpb24gfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5pbXBvcnQgeyBoYXNSYW5nZSB9IGZyb20gXCIuL21hdGNoLWhlbHBlcnNcIjtcblxuLyoqXG4gKiBDb2xsZWN0cyBiaW5kaW5ncyBmcm9tIGEgbW9jayBmYWN0b3J5IG9iamVjdC5cbiAqIEBwYXJhbSBvYmplY3RFeHByZXNzaW9uIFJldHVybmVkIG9iamVjdCBleHByZXNzaW9uLlxuICogQHBhcmFtIGRlY2xhcmF0aW9ucyBLbm93biBkZWNsYXJhdGlvbnMgYnkgbG9jYWwgbmFtZS5cbiAqIEByZXR1cm5zIENvbGxlY3RlZCBiaW5kaW5ncy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBiaW5kaW5ncyA9IGNvbGxlY3RCaW5kaW5ncyh7IHByb3BlcnRpZXM6IFtdLCB0eXBlOiBcIk9iamVjdEV4cHJlc3Npb25cIiB9IGFzIG5ldmVyLCBuZXcgTWFwKCkpO1xuICogdm9pZCBiaW5kaW5ncztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBjb2xsZWN0QmluZGluZ3MoXG4gIG9iamVjdEV4cHJlc3Npb246IEVTVHJlZS5PYmplY3RFeHByZXNzaW9uLFxuICBkZWNsYXJhdGlvbnM6IE1hcDxzdHJpbmcsIERlY2xhcmF0aW9uPixcbik6IEJpbmRpbmdbXSB7XG4gIHJldHVybiBvYmplY3RFeHByZXNzaW9uLnByb3BlcnRpZXNcbiAgICAubWFwKChwcm9wZXJ0eU5vZGUpID0+IHRvQmluZGluZyhwcm9wZXJ0eU5vZGUsIGRlY2xhcmF0aW9ucykpXG4gICAgLmZpbHRlcigoYmluZGluZyk6IGJpbmRpbmcgaXMgQmluZGluZyA9PiBiaW5kaW5nICE9PSB2b2lkIDApO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIG9uZSBvYmplY3QgcHJvcGVydHkgaW50byBhIGJpbmRpbmcgd2hlbiBzdXBwb3J0ZWQuXG4gKiBAcGFyYW0gcHJvcGVydHlOb2RlIE9iamVjdCBwcm9wZXJ0eSBjYW5kaWRhdGUuXG4gKiBAcGFyYW0gZGVjbGFyYXRpb25zIEtub3duIGRlY2xhcmF0aW9ucy5cbiAqIEByZXR1cm5zIEJpbmRpbmcgd2hlbiBwcm9wZXJ0eSBtYXRjaGVzIHRoZSBydWxlIHNoYXBlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGJpbmRpbmcgPSB0b0JpbmRpbmcoeyB0eXBlOiBcIlNwcmVhZEVsZW1lbnRcIiB9IGFzIG5ldmVyLCBuZXcgTWFwKCkpO1xuICogdm9pZCBiaW5kaW5nO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHRvQmluZGluZyhcbiAgcHJvcGVydHlOb2RlOiBFU1RyZWUuUHJvcGVydHkgfCBFU1RyZWUuU3ByZWFkRWxlbWVudCxcbiAgZGVjbGFyYXRpb25zOiBNYXA8c3RyaW5nLCBEZWNsYXJhdGlvbj4sXG4pOiBCaW5kaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKFxuICAgIHByb3BlcnR5Tm9kZS50eXBlICE9PSBcIlByb3BlcnR5XCIgfHxcbiAgICBwcm9wZXJ0eU5vZGUua2V5LnR5cGUgIT09IFwiSWRlbnRpZmllclwiXG4gICkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgaWYgKFxuICAgICFoYXNSYW5nZShwcm9wZXJ0eU5vZGUpIHx8XG4gICAgIWhhc1JhbmdlKHByb3BlcnR5Tm9kZS5rZXkpIHx8XG4gICAgcHJvcGVydHlOb2RlLnZhbHVlLnR5cGUgIT09IFwiSWRlbnRpZmllclwiXG4gICkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgaWYgKFxuICAgICFoYXNSYW5nZShwcm9wZXJ0eU5vZGUudmFsdWUpIHx8XG4gICAgIWRlY2xhcmF0aW9ucy5oYXMocHJvcGVydHlOb2RlLnZhbHVlLm5hbWUpXG4gICkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGV4cG9ydGVkTmFtZTogcHJvcGVydHlOb2RlLmtleS5uYW1lLFxuICAgIGxvY2FsTmFtZTogcHJvcGVydHlOb2RlLnZhbHVlLm5hbWUsXG4gICAgcHJvcGVydHlLZXlSYW5nZTogcHJvcGVydHlOb2RlLmtleS5yYW5nZSxcbiAgICBwcm9wZXJ0eVJhbmdlOiBwcm9wZXJ0eU5vZGUucmFuZ2UsXG4gICAgcHJvcGVydHlWYWx1ZVJhbmdlOiBwcm9wZXJ0eU5vZGUudmFsdWUucmFuZ2UsXG4gIH07XG59XG5cbmV4cG9ydCB7IGNvbGxlY3RCaW5kaW5ncyB9O1xuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"match-declarations.d.ts","sourceRoot":"","sources":["../../../src/testing/prefer-vi-mocked-import/match-declarations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C;;;;;;;;;GASG;AACH,iBAAS,mBAAmB,CAC1B,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,UAAU,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAC1C,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAU1B;AAwGD,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1,99 +0,0 @@
1
- import { hasRange, isViFunctionCall } from "./match-helpers";
2
- /**
3
- * Collects top-level `const x = vi.fn(...)` declarations.
4
- * @param program Program node.
5
- * @returns Declarations by local name.
6
- * @example
7
- * ```typescript
8
- * const declarations = collectDeclarations({ body: [], sourceType: "module", type: "Program" } as never);
9
- * void declarations;
10
- * ```
11
- */
12
- function collectDeclarations(program, sourceCode) {
13
- const declarations = program.body
14
- .map((statement) => toDeclaration(statement, sourceCode))
15
- .filter((declaration) => declaration !== void 0);
16
- return new Map(declarations.map((declaration) => [declaration.localName, declaration]));
17
- }
18
- /**
19
- * Converts one top-level statement into a declaration when supported.
20
- * @param statement Candidate statement.
21
- * @returns Declaration when statement matches the rule shape.
22
- * @example
23
- * ```typescript
24
- * const declaration = toDeclaration({ type: "EmptyStatement" } as never);
25
- * void declaration;
26
- * ```
27
- */
28
- function toDeclaration(statement, sourceCode) {
29
- if (statement.type !== "VariableDeclaration" || statement.kind !== "const") {
30
- return void 0;
31
- }
32
- if (!hasRange(statement) || statement.declarations.length !== 1) {
33
- return void 0;
34
- }
35
- const [declarator] = statement.declarations;
36
- if (declarator === void 0 ||
37
- declarator.id.type !== "Identifier" ||
38
- !hasRange(declarator.id) ||
39
- declarator.init === null ||
40
- declarator.init === void 0 ||
41
- !hasRange(declarator.init) ||
42
- !isViFunctionCall(declarator.init)) {
43
- return void 0;
44
- }
45
- return {
46
- declarationIdRange: declarator.id.range,
47
- initializerRange: declarator.init.range,
48
- localName: declarator.id.name,
49
- statementRange: getRemovalRange(statement, sourceCode),
50
- };
51
- }
52
- /**
53
- * Returns the declaration removal range, including directly attached comments.
54
- * @param statement Variable declaration statement.
55
- * @param sourceCode Source code wrapper when available.
56
- * @returns Statement range expanded to attached leading comments.
57
- * @example
58
- * ```typescript
59
- * const range = getRemovalRange({ range: [5, 10], type: "VariableDeclaration" } as never);
60
- * void range;
61
- * ```
62
- */
63
- function getRemovalRange(statement, sourceCode) {
64
- const statementStart = statement.range[0];
65
- const commentsBefore = sourceCode?.getCommentsBefore(statement) ?? [];
66
- if (commentsBefore.length === 0) {
67
- return statement.range;
68
- }
69
- let removalStart = statementStart;
70
- let nextStart = statementStart;
71
- for (const comment of [...commentsBefore].reverse()) {
72
- const commentRange = comment.range;
73
- if (commentRange === void 0) {
74
- break;
75
- }
76
- const gapText = sourceCode?.text.slice(commentRange[1], nextStart) ?? "";
77
- if (!isAttachedLeadingGap(gapText)) {
78
- break;
79
- }
80
- removalStart = commentRange[0];
81
- nextStart = commentRange[0];
82
- }
83
- return [removalStart, statement.range[1]];
84
- }
85
- /**
86
- * Returns true when whitespace between a comment and declaration keeps them attached.
87
- * @param gapText Source text between adjacent nodes.
88
- * @returns True when the gap contains no blank line.
89
- * @example
90
- * ```typescript
91
- * const ok = isAttachedLeadingGap("\n");
92
- * void ok;
93
- * ```
94
- */
95
- function isAttachedLeadingGap(gapText) {
96
- return (/^[\t \r\n]*$/u.test(gapText) && !/(\r?\n)[\t ]*(\r?\n)/u.test(gapText));
97
- }
98
- export { collectDeclarations };
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtZGVjbGFyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rlc3RpbmcvcHJlZmVyLXZpLW1vY2tlZC1pbXBvcnQvbWF0Y2gtZGVjbGFyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLG1CQUFtQixDQUMxQixPQUF1QixFQUN2QixVQUEyQztJQUUzQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSTtTQUM5QixHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDeEQsTUFBTSxDQUNMLENBQUMsV0FBVyxFQUE4QixFQUFFLENBQUMsV0FBVyxLQUFLLEtBQUssQ0FBQyxDQUNwRSxDQUFDO0lBRUosT0FBTyxJQUFJLEdBQUcsQ0FDWixZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FDeEUsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGFBQWEsQ0FDcEIsU0FBeUMsRUFDekMsVUFBMkM7SUFFM0MsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLHFCQUFxQixJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7UUFDM0UsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNoRSxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQztJQUM1QyxJQUNFLFVBQVUsS0FBSyxLQUFLLENBQUM7UUFDckIsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssWUFBWTtRQUNuQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3hCLFVBQVUsQ0FBQyxJQUFJLEtBQUssSUFBSTtRQUN4QixVQUFVLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQztRQUMxQixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQzFCLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUNsQyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTztRQUNMLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsS0FBSztRQUN2QyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUs7UUFDdkMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSTtRQUM3QixjQUFjLEVBQUUsZUFBZSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUM7S0FDdkQsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBUyxlQUFlLENBQ3RCLFNBQW1FLEVBQ25FLFVBQTJDO0lBRTNDLE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsTUFBTSxjQUFjLEdBQUcsVUFBVSxFQUFFLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUV0RSxJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDaEMsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFlBQVksR0FBRyxjQUFjLENBQUM7SUFDbEMsSUFBSSxTQUFTLEdBQUcsY0FBYyxDQUFDO0lBRS9CLEtBQUssTUFBTSxPQUFPLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDcEQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUVuQyxJQUFJLFlBQVksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVCLE1BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6RSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNO1FBQ1IsQ0FBQztRQUVELFlBQVksR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0IsU0FBUyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsb0JBQW9CLENBQUMsT0FBZTtJQUMzQyxPQUFPLENBQ0wsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FDeEUsQ0FBQztBQUNKLENBQUM7QUFFRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcblxuaW1wb3J0IHR5cGUgeyBEZWNsYXJhdGlvbiB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmltcG9ydCB7IGhhc1JhbmdlLCBpc1ZpRnVuY3Rpb25DYWxsIH0gZnJvbSBcIi4vbWF0Y2gtaGVscGVyc1wiO1xuXG4vKipcbiAqIENvbGxlY3RzIHRvcC1sZXZlbCBgY29uc3QgeCA9IHZpLmZuKC4uLilgIGRlY2xhcmF0aW9ucy5cbiAqIEBwYXJhbSBwcm9ncmFtIFByb2dyYW0gbm9kZS5cbiAqIEByZXR1cm5zIERlY2xhcmF0aW9ucyBieSBsb2NhbCBuYW1lLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGRlY2xhcmF0aW9ucyA9IGNvbGxlY3REZWNsYXJhdGlvbnMoeyBib2R5OiBbXSwgc291cmNlVHlwZTogXCJtb2R1bGVcIiwgdHlwZTogXCJQcm9ncmFtXCIgfSBhcyBuZXZlcik7XG4gKiB2b2lkIGRlY2xhcmF0aW9ucztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBjb2xsZWN0RGVjbGFyYXRpb25zKFxuICBwcm9ncmFtOiBFU1RyZWUuUHJvZ3JhbSxcbiAgc291cmNlQ29kZT86IFJ1bGUuUnVsZUNvbnRleHRbXCJzb3VyY2VDb2RlXCJdLFxuKTogTWFwPHN0cmluZywgRGVjbGFyYXRpb24+IHtcbiAgY29uc3QgZGVjbGFyYXRpb25zID0gcHJvZ3JhbS5ib2R5XG4gICAgLm1hcCgoc3RhdGVtZW50KSA9PiB0b0RlY2xhcmF0aW9uKHN0YXRlbWVudCwgc291cmNlQ29kZSkpXG4gICAgLmZpbHRlcihcbiAgICAgIChkZWNsYXJhdGlvbik6IGRlY2xhcmF0aW9uIGlzIERlY2xhcmF0aW9uID0+IGRlY2xhcmF0aW9uICE9PSB2b2lkIDAsXG4gICAgKTtcblxuICByZXR1cm4gbmV3IE1hcChcbiAgICBkZWNsYXJhdGlvbnMubWFwKChkZWNsYXJhdGlvbikgPT4gW2RlY2xhcmF0aW9uLmxvY2FsTmFtZSwgZGVjbGFyYXRpb25dKSxcbiAgKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBvbmUgdG9wLWxldmVsIHN0YXRlbWVudCBpbnRvIGEgZGVjbGFyYXRpb24gd2hlbiBzdXBwb3J0ZWQuXG4gKiBAcGFyYW0gc3RhdGVtZW50IENhbmRpZGF0ZSBzdGF0ZW1lbnQuXG4gKiBAcmV0dXJucyBEZWNsYXJhdGlvbiB3aGVuIHN0YXRlbWVudCBtYXRjaGVzIHRoZSBydWxlIHNoYXBlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGRlY2xhcmF0aW9uID0gdG9EZWNsYXJhdGlvbih7IHR5cGU6IFwiRW1wdHlTdGF0ZW1lbnRcIiB9IGFzIG5ldmVyKTtcbiAqIHZvaWQgZGVjbGFyYXRpb247XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gdG9EZWNsYXJhdGlvbihcbiAgc3RhdGVtZW50OiBFU1RyZWUuUHJvZ3JhbVtcImJvZHlcIl1bbnVtYmVyXSxcbiAgc291cmNlQ29kZT86IFJ1bGUuUnVsZUNvbnRleHRbXCJzb3VyY2VDb2RlXCJdLFxuKTogRGVjbGFyYXRpb24gfCB1bmRlZmluZWQge1xuICBpZiAoc3RhdGVtZW50LnR5cGUgIT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiIHx8IHN0YXRlbWVudC5raW5kICE9PSBcImNvbnN0XCIpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG4gIGlmICghaGFzUmFuZ2Uoc3RhdGVtZW50KSB8fCBzdGF0ZW1lbnQuZGVjbGFyYXRpb25zLmxlbmd0aCAhPT0gMSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCBbZGVjbGFyYXRvcl0gPSBzdGF0ZW1lbnQuZGVjbGFyYXRpb25zO1xuICBpZiAoXG4gICAgZGVjbGFyYXRvciA9PT0gdm9pZCAwIHx8XG4gICAgZGVjbGFyYXRvci5pZC50eXBlICE9PSBcIklkZW50aWZpZXJcIiB8fFxuICAgICFoYXNSYW5nZShkZWNsYXJhdG9yLmlkKSB8fFxuICAgIGRlY2xhcmF0b3IuaW5pdCA9PT0gbnVsbCB8fFxuICAgIGRlY2xhcmF0b3IuaW5pdCA9PT0gdm9pZCAwIHx8XG4gICAgIWhhc1JhbmdlKGRlY2xhcmF0b3IuaW5pdCkgfHxcbiAgICAhaXNWaUZ1bmN0aW9uQ2FsbChkZWNsYXJhdG9yLmluaXQpXG4gICkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRlY2xhcmF0aW9uSWRSYW5nZTogZGVjbGFyYXRvci5pZC5yYW5nZSxcbiAgICBpbml0aWFsaXplclJhbmdlOiBkZWNsYXJhdG9yLmluaXQucmFuZ2UsXG4gICAgbG9jYWxOYW1lOiBkZWNsYXJhdG9yLmlkLm5hbWUsXG4gICAgc3RhdGVtZW50UmFuZ2U6IGdldFJlbW92YWxSYW5nZShzdGF0ZW1lbnQsIHNvdXJjZUNvZGUpLFxuICB9O1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGRlY2xhcmF0aW9uIHJlbW92YWwgcmFuZ2UsIGluY2x1ZGluZyBkaXJlY3RseSBhdHRhY2hlZCBjb21tZW50cy5cbiAqIEBwYXJhbSBzdGF0ZW1lbnQgVmFyaWFibGUgZGVjbGFyYXRpb24gc3RhdGVtZW50LlxuICogQHBhcmFtIHNvdXJjZUNvZGUgU291cmNlIGNvZGUgd3JhcHBlciB3aGVuIGF2YWlsYWJsZS5cbiAqIEByZXR1cm5zIFN0YXRlbWVudCByYW5nZSBleHBhbmRlZCB0byBhdHRhY2hlZCBsZWFkaW5nIGNvbW1lbnRzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJhbmdlID0gZ2V0UmVtb3ZhbFJhbmdlKHsgcmFuZ2U6IFs1LCAxMF0sIHR5cGU6IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiIH0gYXMgbmV2ZXIpO1xuICogdm9pZCByYW5nZTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRSZW1vdmFsUmFuZ2UoXG4gIHN0YXRlbWVudDogRVNUcmVlLlZhcmlhYmxlRGVjbGFyYXRpb24gJiB7IHJhbmdlOiBbbnVtYmVyLCBudW1iZXJdIH0sXG4gIHNvdXJjZUNvZGU/OiBSdWxlLlJ1bGVDb250ZXh0W1wic291cmNlQ29kZVwiXSxcbik6IFtudW1iZXIsIG51bWJlcl0ge1xuICBjb25zdCBzdGF0ZW1lbnRTdGFydCA9IHN0YXRlbWVudC5yYW5nZVswXTtcbiAgY29uc3QgY29tbWVudHNCZWZvcmUgPSBzb3VyY2VDb2RlPy5nZXRDb21tZW50c0JlZm9yZShzdGF0ZW1lbnQpID8/IFtdO1xuXG4gIGlmIChjb21tZW50c0JlZm9yZS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gc3RhdGVtZW50LnJhbmdlO1xuICB9XG5cbiAgbGV0IHJlbW92YWxTdGFydCA9IHN0YXRlbWVudFN0YXJ0O1xuICBsZXQgbmV4dFN0YXJ0ID0gc3RhdGVtZW50U3RhcnQ7XG5cbiAgZm9yIChjb25zdCBjb21tZW50IG9mIFsuLi5jb21tZW50c0JlZm9yZV0ucmV2ZXJzZSgpKSB7XG4gICAgY29uc3QgY29tbWVudFJhbmdlID0gY29tbWVudC5yYW5nZTtcblxuICAgIGlmIChjb21tZW50UmFuZ2UgPT09IHZvaWQgMCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY29uc3QgZ2FwVGV4dCA9IHNvdXJjZUNvZGU/LnRleHQuc2xpY2UoY29tbWVudFJhbmdlWzFdLCBuZXh0U3RhcnQpID8/IFwiXCI7XG4gICAgaWYgKCFpc0F0dGFjaGVkTGVhZGluZ0dhcChnYXBUZXh0KSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmVtb3ZhbFN0YXJ0ID0gY29tbWVudFJhbmdlWzBdO1xuICAgIG5leHRTdGFydCA9IGNvbW1lbnRSYW5nZVswXTtcbiAgfVxuXG4gIHJldHVybiBbcmVtb3ZhbFN0YXJ0LCBzdGF0ZW1lbnQucmFuZ2VbMV1dO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSB3aGVuIHdoaXRlc3BhY2UgYmV0d2VlbiBhIGNvbW1lbnQgYW5kIGRlY2xhcmF0aW9uIGtlZXBzIHRoZW0gYXR0YWNoZWQuXG4gKiBAcGFyYW0gZ2FwVGV4dCBTb3VyY2UgdGV4dCBiZXR3ZWVuIGFkamFjZW50IG5vZGVzLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBnYXAgY29udGFpbnMgbm8gYmxhbmsgbGluZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBvayA9IGlzQXR0YWNoZWRMZWFkaW5nR2FwKFwiXFxuXCIpO1xuICogdm9pZCBvaztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBpc0F0dGFjaGVkTGVhZGluZ0dhcChnYXBUZXh0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICAvXltcXHQgXFxyXFxuXSokL3UudGVzdChnYXBUZXh0KSAmJiAhLyhcXHI/XFxuKVtcXHQgXSooXFxyP1xcbikvdS50ZXN0KGdhcFRleHQpXG4gICk7XG59XG5cbmV4cG9ydCB7IGNvbGxlY3REZWNsYXJhdGlvbnMgfTtcbiJdfQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"match-helpers.d.ts","sourceRoot":"","sources":["../../../src/testing/prefer-vi-mocked-import/match-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAQtC,qCAAqC;AACrC,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9B,qCAAqC;AACrC,KAAK,SAAS,GAAG,MAAM,CAAC,IAAI,GAAG;IAC7B,uCAAuC;IACvC,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF;;;;;;;;;GASG;AACH,iBAAS,sBAAsB,CAC7B,iBAAiB,EAAE,MAAM,CAAC,UAAU,GACnC,MAAM,CAAC,gBAAgB,GAAG,SAAS,CAmBrC;AAED;;;;;;;;;GASG;AACH,iBAAS,kBAAkB,CACzB,cAAc,EAAE,MAAM,CAAC,UAAU,GAChC,MAAM,GAAG,SAAS,CAYpB;AAED;;;;;;;;;GASG;AACH,iBAAS,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAErD;AAED;;;;;;;;;GASG;AACH,iBAAS,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,IAAI,IAAI,SAAS,CAQtD;AAED;;;;;;;;;GASG;AACH,iBAAS,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,GAAG,OAAO,CAevE;AAED,YAAY,EAAE,KAAK,EAAE,CAAC;AACtB,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,UAAU,EACV,QAAQ,EACR,gBAAgB,GACjB,CAAC"}
@@ -1,102 +0,0 @@
1
- /**
2
- * Resolves the object literal returned from a mock factory.
3
- * @param factoryExpression Factory expression from `vi.mock` or `vi.doMock`.
4
- * @returns Returned object expression when present.
5
- * @example
6
- * ```typescript
7
- * const result = getFactoryReturnObject({ type: "Identifier" } as never);
8
- * void result;
9
- * ```
10
- */
11
- function getFactoryReturnObject(factoryExpression) {
12
- if (factoryExpression.type !== "ArrowFunctionExpression") {
13
- return void 0;
14
- }
15
- const { body } = factoryExpression;
16
- if (body.type === "ObjectExpression") {
17
- return body;
18
- }
19
- if (body.type !== "BlockStatement") {
20
- return void 0;
21
- }
22
- const returnStatement = body.body.find((statement) => statement.type === "ReturnStatement");
23
- const returnArgument = returnStatement?.argument;
24
- return returnArgument?.type === "ObjectExpression" ? returnArgument : void 0;
25
- }
26
- /**
27
- * Extracts a module specifier string from a mock call argument.
28
- * @param moduleArgument First argument of `vi.mock` or `vi.doMock`.
29
- * @returns String module specifier when available.
30
- * @example
31
- * ```typescript
32
- * const specifier = getModuleSpecifier({ type: "Literal", value: "./x" } as never);
33
- * void specifier;
34
- * ```
35
- */
36
- function getModuleSpecifier(moduleArgument) {
37
- if (moduleArgument.type === "ImportExpression") {
38
- const { source } = moduleArgument;
39
- return source.type === "Literal" && typeof source.value === "string"
40
- ? source.value
41
- : void 0;
42
- }
43
- return moduleArgument.type === "Literal" &&
44
- typeof moduleArgument.value === "string"
45
- ? moduleArgument.value
46
- : void 0;
47
- }
48
- /**
49
- * Determines the newline sequence used in source text.
50
- * @param sourceText Full source text.
51
- * @returns Detected newline sequence.
52
- * @example
53
- * ```typescript
54
- * const newline = getNewline("a\r\nb");
55
- * void newline;
56
- * ```
57
- */
58
- function getNewline(sourceText) {
59
- return sourceText.includes("\r\n") ? "\r\n" : "\n";
60
- }
61
- /**
62
- * Checks whether a node includes a numeric `range` tuple.
63
- * @param node Node to inspect.
64
- * @returns True when the node has a valid `range`.
65
- * @example
66
- * ```typescript
67
- * const ok = hasRange({ range: [0, 1] } as never);
68
- * void ok;
69
- * ```
70
- */
71
- function hasRange(node) {
72
- const rangeValue = node.range;
73
- return (Array.isArray(rangeValue) &&
74
- rangeValue.length === 2 &&
75
- typeof rangeValue[0] === "number" &&
76
- typeof rangeValue[1] === "number");
77
- }
78
- /**
79
- * Returns true when an expression is a `vi.fn(...)` call.
80
- * @param expression Expression to inspect.
81
- * @returns True when the expression is a `vi.fn` call.
82
- * @example
83
- * ```typescript
84
- * const ok = isViFunctionCall(null);
85
- * void ok;
86
- * ```
87
- */
88
- function isViFunctionCall(expression) {
89
- if (expression?.type !== "CallExpression") {
90
- return false;
91
- }
92
- if (expression.callee.type !== "MemberExpression") {
93
- return false;
94
- }
95
- const { object, property } = expression.callee;
96
- return (object.type === "Identifier" &&
97
- object.name === "vi" &&
98
- property.type === "Identifier" &&
99
- property.name === "fn");
100
- }
101
- export { getFactoryReturnObject, getModuleSpecifier, getNewline, hasRange, isViFunctionCall, };
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0aW5nL3ByZWZlci12aS1tb2NrZWQtaW1wb3J0L21hdGNoLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsc0JBQXNCLENBQzdCLGlCQUFvQztJQUVwQyxJQUFJLGlCQUFpQixDQUFDLElBQUksS0FBSyx5QkFBeUIsRUFBRSxDQUFDO1FBQ3pELE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztJQUNuQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUNuQyxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDcEMsQ0FBQyxTQUFTLEVBQXVDLEVBQUUsQ0FDakQsU0FBUyxDQUFDLElBQUksS0FBSyxpQkFBaUIsQ0FDdkMsQ0FBQztJQUNGLE1BQU0sY0FBYyxHQUFHLGVBQWUsRUFBRSxRQUFRLENBQUM7SUFDakQsT0FBTyxjQUFjLEVBQUUsSUFBSSxLQUFLLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9FLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGtCQUFrQixDQUN6QixjQUFpQztJQUVqQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztRQUMvQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsY0FBYyxDQUFDO1FBQ2xDLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksT0FBTyxNQUFNLENBQUMsS0FBSyxLQUFLLFFBQVE7WUFDbEUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ2QsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELE9BQU8sY0FBYyxDQUFDLElBQUksS0FBSyxTQUFTO1FBQ3RDLE9BQU8sY0FBYyxDQUFDLEtBQUssS0FBSyxRQUFRO1FBQ3hDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSztRQUN0QixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDYixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxVQUFVLENBQUMsVUFBa0I7SUFDcEMsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNyRCxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxRQUFRLENBQUMsSUFBaUI7SUFDakMsTUFBTSxVQUFVLEdBQUksSUFBc0MsQ0FBQyxLQUFLLENBQUM7SUFDakUsT0FBTyxDQUNMLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3pCLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUN2QixPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRO1FBQ2pDLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FDbEMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGdCQUFnQixDQUFDLFVBQW9DO0lBQzVELElBQUksVUFBVSxFQUFFLElBQUksS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztRQUNsRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFDL0MsT0FBTyxDQUNMLE1BQU0sQ0FBQyxJQUFJLEtBQUssWUFBWTtRQUM1QixNQUFNLENBQUMsSUFBSSxLQUFLLElBQUk7UUFDcEIsUUFBUSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQzlCLFFBQVEsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUN2QixDQUFDO0FBQ0osQ0FBQztBQUdELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLFVBQVUsRUFDVixRQUFRLEVBQ1IsZ0JBQWdCLEdBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBPcHRpb25hbFJhbmdlRmllbGQge1xuICAvKiogUG90ZW50aWFsIHJhbmdlIHBheWxvYWQgZnJvbSB1bmtub3duIG5vZGUtbGlrZSB2YWx1ZXMuICovXG4gIHJhbmdlPzogdW5rbm93bjtcbn1cblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xudHlwZSBSYW5nZSA9IFtudW1iZXIsIG51bWJlcl07XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbnR5cGUgUmFuZ2VOb2RlID0gRVNUcmVlLk5vZGUgJiB7XG4gIC8qKiBTb3VyY2UgcmFuZ2UgdHVwbGUgZm9yIHRoZSBub2RlLiAqL1xuICByYW5nZTogUmFuZ2U7XG59O1xuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBvYmplY3QgbGl0ZXJhbCByZXR1cm5lZCBmcm9tIGEgbW9jayBmYWN0b3J5LlxuICogQHBhcmFtIGZhY3RvcnlFeHByZXNzaW9uIEZhY3RvcnkgZXhwcmVzc2lvbiBmcm9tIGB2aS5tb2NrYCBvciBgdmkuZG9Nb2NrYC5cbiAqIEByZXR1cm5zIFJldHVybmVkIG9iamVjdCBleHByZXNzaW9uIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXN1bHQgPSBnZXRGYWN0b3J5UmV0dXJuT2JqZWN0KHsgdHlwZTogXCJJZGVudGlmaWVyXCIgfSBhcyBuZXZlcik7XG4gKiB2b2lkIHJlc3VsdDtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRGYWN0b3J5UmV0dXJuT2JqZWN0KFxuICBmYWN0b3J5RXhwcmVzc2lvbjogRVNUcmVlLkV4cHJlc3Npb24sXG4pOiBFU1RyZWUuT2JqZWN0RXhwcmVzc2lvbiB8IHVuZGVmaW5lZCB7XG4gIGlmIChmYWN0b3J5RXhwcmVzc2lvbi50eXBlICE9PSBcIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCIpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgeyBib2R5IH0gPSBmYWN0b3J5RXhwcmVzc2lvbjtcbiAgaWYgKGJvZHkudHlwZSA9PT0gXCJPYmplY3RFeHByZXNzaW9uXCIpIHtcbiAgICByZXR1cm4gYm9keTtcbiAgfVxuICBpZiAoYm9keS50eXBlICE9PSBcIkJsb2NrU3RhdGVtZW50XCIpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgcmV0dXJuU3RhdGVtZW50ID0gYm9keS5ib2R5LmZpbmQoXG4gICAgKHN0YXRlbWVudCk6IHN0YXRlbWVudCBpcyBFU1RyZWUuUmV0dXJuU3RhdGVtZW50ID0+XG4gICAgICBzdGF0ZW1lbnQudHlwZSA9PT0gXCJSZXR1cm5TdGF0ZW1lbnRcIixcbiAgKTtcbiAgY29uc3QgcmV0dXJuQXJndW1lbnQgPSByZXR1cm5TdGF0ZW1lbnQ/LmFyZ3VtZW50O1xuICByZXR1cm4gcmV0dXJuQXJndW1lbnQ/LnR5cGUgPT09IFwiT2JqZWN0RXhwcmVzc2lvblwiID8gcmV0dXJuQXJndW1lbnQgOiB2b2lkIDA7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgYSBtb2R1bGUgc3BlY2lmaWVyIHN0cmluZyBmcm9tIGEgbW9jayBjYWxsIGFyZ3VtZW50LlxuICogQHBhcmFtIG1vZHVsZUFyZ3VtZW50IEZpcnN0IGFyZ3VtZW50IG9mIGB2aS5tb2NrYCBvciBgdmkuZG9Nb2NrYC5cbiAqIEByZXR1cm5zIFN0cmluZyBtb2R1bGUgc3BlY2lmaWVyIHdoZW4gYXZhaWxhYmxlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHNwZWNpZmllciA9IGdldE1vZHVsZVNwZWNpZmllcih7IHR5cGU6IFwiTGl0ZXJhbFwiLCB2YWx1ZTogXCIuL3hcIiB9IGFzIG5ldmVyKTtcbiAqIHZvaWQgc3BlY2lmaWVyO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldE1vZHVsZVNwZWNpZmllcihcbiAgbW9kdWxlQXJndW1lbnQ6IEVTVHJlZS5FeHByZXNzaW9uLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKG1vZHVsZUFyZ3VtZW50LnR5cGUgPT09IFwiSW1wb3J0RXhwcmVzc2lvblwiKSB7XG4gICAgY29uc3QgeyBzb3VyY2UgfSA9IG1vZHVsZUFyZ3VtZW50O1xuICAgIHJldHVybiBzb3VyY2UudHlwZSA9PT0gXCJMaXRlcmFsXCIgJiYgdHlwZW9mIHNvdXJjZS52YWx1ZSA9PT0gXCJzdHJpbmdcIlxuICAgICAgPyBzb3VyY2UudmFsdWVcbiAgICAgIDogdm9pZCAwO1xuICB9XG5cbiAgcmV0dXJuIG1vZHVsZUFyZ3VtZW50LnR5cGUgPT09IFwiTGl0ZXJhbFwiICYmXG4gICAgdHlwZW9mIG1vZHVsZUFyZ3VtZW50LnZhbHVlID09PSBcInN0cmluZ1wiXG4gICAgPyBtb2R1bGVBcmd1bWVudC52YWx1ZVxuICAgIDogdm9pZCAwO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgdGhlIG5ld2xpbmUgc2VxdWVuY2UgdXNlZCBpbiBzb3VyY2UgdGV4dC5cbiAqIEBwYXJhbSBzb3VyY2VUZXh0IEZ1bGwgc291cmNlIHRleHQuXG4gKiBAcmV0dXJucyBEZXRlY3RlZCBuZXdsaW5lIHNlcXVlbmNlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5ld2xpbmUgPSBnZXROZXdsaW5lKFwiYVxcclxcbmJcIik7XG4gKiB2b2lkIG5ld2xpbmU7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZ2V0TmV3bGluZShzb3VyY2VUZXh0OiBzdHJpbmcpOiBcIlxcblwiIHwgXCJcXHJcXG5cIiB7XG4gIHJldHVybiBzb3VyY2VUZXh0LmluY2x1ZGVzKFwiXFxyXFxuXCIpID8gXCJcXHJcXG5cIiA6IFwiXFxuXCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBub2RlIGluY2x1ZGVzIGEgbnVtZXJpYyBgcmFuZ2VgIHR1cGxlLlxuICogQHBhcmFtIG5vZGUgTm9kZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBub2RlIGhhcyBhIHZhbGlkIGByYW5nZWAuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb2sgPSBoYXNSYW5nZSh7IHJhbmdlOiBbMCwgMV0gfSBhcyBuZXZlcik7XG4gKiB2b2lkIG9rO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGhhc1JhbmdlKG5vZGU6IEVTVHJlZS5Ob2RlKTogbm9kZSBpcyBSYW5nZU5vZGUge1xuICBjb25zdCByYW5nZVZhbHVlID0gKG5vZGUgYXMgdW5rbm93biBhcyBPcHRpb25hbFJhbmdlRmllbGQpLnJhbmdlO1xuICByZXR1cm4gKFxuICAgIEFycmF5LmlzQXJyYXkocmFuZ2VWYWx1ZSkgJiZcbiAgICByYW5nZVZhbHVlLmxlbmd0aCA9PT0gMiAmJlxuICAgIHR5cGVvZiByYW5nZVZhbHVlWzBdID09PSBcIm51bWJlclwiICYmXG4gICAgdHlwZW9mIHJhbmdlVmFsdWVbMV0gPT09IFwibnVtYmVyXCJcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgd2hlbiBhbiBleHByZXNzaW9uIGlzIGEgYHZpLmZuKC4uLilgIGNhbGwuXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBFeHByZXNzaW9uIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGV4cHJlc3Npb24gaXMgYSBgdmkuZm5gIGNhbGwuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb2sgPSBpc1ZpRnVuY3Rpb25DYWxsKG51bGwpO1xuICogdm9pZCBvaztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBpc1ZpRnVuY3Rpb25DYWxsKGV4cHJlc3Npb246IEVTVHJlZS5FeHByZXNzaW9uIHwgbnVsbCk6IGJvb2xlYW4ge1xuICBpZiAoZXhwcmVzc2lvbj8udHlwZSAhPT0gXCJDYWxsRXhwcmVzc2lvblwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChleHByZXNzaW9uLmNhbGxlZS50eXBlICE9PSBcIk1lbWJlckV4cHJlc3Npb25cIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHsgb2JqZWN0LCBwcm9wZXJ0eSB9ID0gZXhwcmVzc2lvbi5jYWxsZWU7XG4gIHJldHVybiAoXG4gICAgb2JqZWN0LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAgb2JqZWN0Lm5hbWUgPT09IFwidmlcIiAmJlxuICAgIHByb3BlcnR5LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAgcHJvcGVydHkubmFtZSA9PT0gXCJmblwiXG4gICk7XG59XG5cbmV4cG9ydCB0eXBlIHsgUmFuZ2UgfTtcbmV4cG9ydCB7XG4gIGdldEZhY3RvcnlSZXR1cm5PYmplY3QsXG4gIGdldE1vZHVsZVNwZWNpZmllcixcbiAgZ2V0TmV3bGluZSxcbiAgaGFzUmFuZ2UsXG4gIGlzVmlGdW5jdGlvbkNhbGwsXG59O1xuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"match-imports.d.ts","sourceRoot":"","sources":["../../../src/testing/prefer-vi-mocked-import/match-imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAwK1C;;;;;;;;;;;GAWG;AACH,iBAAS,iBAAiB,CACxB,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,MAAM,EAAE,GACd,UAAU,CASZ;AAqBD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1,156 +0,0 @@
1
- import { hasRange } from "./match-helpers";
2
- /**
3
- * Builds an import plan for insertion mode.
4
- * @param moduleSpecifier Target module path.
5
- * @param names Names to import.
6
- * @param afterRange Range to insert after.
7
- * @returns Insert plan payload.
8
- * @example
9
- * ```typescript
10
- * const plan = createInsertPlan("./x", ["a"], [0, 1]);
11
- * void plan;
12
- * ```
13
- */
14
- function createInsertPlan(moduleSpecifier, names, afterRange) {
15
- return afterRange === void 0
16
- ? { insert: {}, moduleSpecifier, names }
17
- : { insert: { afterRange }, moduleSpecifier, names };
18
- }
19
- /**
20
- * Builds an import plan for update mode.
21
- * @param statement Existing import declaration.
22
- * @param moduleSpecifier Target module path.
23
- * @param names Names to import.
24
- * @returns Update plan payload.
25
- * @example
26
- * ```typescript
27
- * const plan = createUpdatePlan({ specifiers: [], source: { type: "Literal", value: "./x" }, type: "ImportDeclaration", range: [0, 1] } as never, "./x", ["a"]);
28
- * void plan;
29
- * ```
30
- */
31
- function createUpdatePlan(statement, moduleSpecifier, names) {
32
- if (hasNamespaceImport(statement)) {
33
- return createInsertPlan(moduleSpecifier, names, statement.range);
34
- }
35
- const defaultImportName = getDefaultImportName(statement);
36
- const baseUpdate = {
37
- existingNamedImports: getNamedImports(statement),
38
- range: statement.range,
39
- };
40
- const update = defaultImportName === void 0
41
- ? baseUpdate
42
- : { ...baseUpdate, defaultImportName };
43
- return {
44
- moduleSpecifier,
45
- names,
46
- update,
47
- };
48
- }
49
- /**
50
- * Returns the default import local name.
51
- * @param statement Import declaration.
52
- * @returns Default local name when present.
53
- * @example
54
- * ```typescript
55
- * const localName = getDefaultImportName({ specifiers: [], type: "ImportDeclaration" } as never);
56
- * void localName;
57
- * ```
58
- */
59
- function getDefaultImportName(statement) {
60
- const defaultSpecifier = statement.specifiers.find((specifier) => specifier.type === "ImportDefaultSpecifier");
61
- return defaultSpecifier?.local.name;
62
- }
63
- /**
64
- * Filters top-level import declarations that include a `range`.
65
- * @param program Program node.
66
- * @returns Import declarations with stable ranges.
67
- * @example
68
- * ```typescript
69
- * const imports = getImportDeclarations({ body: [], sourceType: "module", type: "Program" } as never);
70
- * void imports;
71
- * ```
72
- */
73
- function getImportDeclarations(program) {
74
- return program.body.filter((statement) => statement.type === "ImportDeclaration" && hasRange(statement));
75
- }
76
- /**
77
- * Returns all named imports from a declaration.
78
- * @param statement Import declaration.
79
- * @returns Named import identifiers.
80
- * @example
81
- * ```typescript
82
- * const named = getNamedImports({ specifiers: [], type: "ImportDeclaration" } as never);
83
- * void named;
84
- * ```
85
- */
86
- function getNamedImports(statement) {
87
- return statement.specifiers.flatMap((specifier) => {
88
- const importedName = toImportedName(specifier);
89
- return importedName === void 0 ? [] : [importedName];
90
- });
91
- }
92
- /**
93
- * Checks whether an import includes a namespace specifier.
94
- * @param statement Import declaration.
95
- * @returns True when declaration includes `* as x` form.
96
- * @example
97
- * ```typescript
98
- * const hasNamespace = hasNamespaceImport({ specifiers: [], type: "ImportDeclaration" } as never);
99
- * void hasNamespace;
100
- * ```
101
- */
102
- function hasNamespaceImport(statement) {
103
- return statement.specifiers.some((specifier) => specifier.type === "ImportNamespaceSpecifier");
104
- }
105
- /**
106
- * Checks whether an import declaration matches the mocked module.
107
- * @param statement Import declaration candidate.
108
- * @param moduleSpecifier Expected module path.
109
- * @returns True when declaration targets the same module.
110
- * @example
111
- * ```typescript
112
- * const matched = isMatchingImport({ source: { type: "Literal", value: "./x" }, type: "ImportDeclaration" } as never, "./x");
113
- * void matched;
114
- * ```
115
- */
116
- function isMatchingImport(statement, moduleSpecifier) {
117
- const sourceValue = statement.source.value;
118
- return typeof sourceValue === "string" && sourceValue === moduleSpecifier;
119
- }
120
- /**
121
- * Resolves whether imports should be updated in place or inserted.
122
- * @param program Program node to inspect.
123
- * @param moduleSpecifier Target module path.
124
- * @param names Import names that must exist.
125
- * @returns Insert or update plan for the import section.
126
- * @example
127
- * ```typescript
128
- * const plan = resolveImportPlan({ body: [], sourceType: "module", type: "Program" } as never, "./x", ["a"]);
129
- * void plan;
130
- * ```
131
- */
132
- function resolveImportPlan(program, moduleSpecifier, names) {
133
- const imports = getImportDeclarations(program);
134
- const existingImport = imports.find((statement) => isMatchingImport(statement, moduleSpecifier));
135
- return existingImport === void 0
136
- ? createInsertPlan(moduleSpecifier, names, imports.at(-1)?.range)
137
- : createUpdatePlan(existingImport, moduleSpecifier, names);
138
- }
139
- /**
140
- * Extracts imported identifier name from one specifier.
141
- * @param specifier Import clause entry.
142
- * @returns Imported identifier name.
143
- * @example
144
- * ```typescript
145
- * const imported = toImportedName({ type: "ImportSpecifier", imported: { type: "Identifier", name: "x" } } as never);
146
- * void imported;
147
- * ```
148
- */
149
- function toImportedName(specifier) {
150
- return specifier.type === "ImportSpecifier" &&
151
- specifier.imported.type === "Identifier"
152
- ? specifier.imported.name
153
- : void 0;
154
- }
155
- export { resolveImportPlan };
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtaW1wb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0aW5nL3ByZWZlci12aS1tb2NrZWQtaW1wb3J0L21hdGNoLWltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBZTNDOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FDdkIsZUFBdUIsRUFDdkIsS0FBZSxFQUNmLFVBQTZCO0lBRTdCLE9BQU8sVUFBVSxLQUFLLEtBQUssQ0FBQztRQUMxQixDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUU7UUFDeEMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ3pELENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILFNBQVMsZ0JBQWdCLENBQ3ZCLFNBQWtDLEVBQ2xDLGVBQXVCLEVBQ3ZCLEtBQWU7SUFFZixJQUFJLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDbEMsT0FBTyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsTUFBTSxpQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRCxNQUFNLFVBQVUsR0FBRztRQUNqQixvQkFBb0IsRUFBRSxlQUFlLENBQUMsU0FBUyxDQUFDO1FBQ2hELEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSztLQUN2QixDQUFDO0lBQ0YsTUFBTSxNQUFNLEdBQ1YsaUJBQWlCLEtBQUssS0FBSyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxVQUFVO1FBQ1osQ0FBQyxDQUFDLEVBQUUsR0FBRyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUs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ImVzdHJlZVwiO1xuXG5pbXBvcnQgdHlwZSB7IFJhbmdlIH0gZnJvbSBcIi4vbWF0Y2gtaGVscGVyc1wiO1xuaW1wb3J0IHR5cGUgeyBJbXBvcnRQbGFuIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHsgaGFzUmFuZ2UgfSBmcm9tIFwiLi9tYXRjaC1oZWxwZXJzXCI7XG5cbi8qKlxuICogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGVjbGFyYXRpb24gPSB7fSBhcyBSYW5nZWRJbXBvcnREZWNsYXJhdGlvbjtcbiAqIHZvaWQgZGVjbGFyYXRpb247XG4gKiBgYGBcbiAqL1xuaW50ZXJmYWNlIFJhbmdlZEltcG9ydERlY2xhcmF0aW9uIGV4dGVuZHMgRVNUcmVlLkltcG9ydERlY2xhcmF0aW9uIHtcbiAgLyoqIEltcG9ydCBkZWNsYXJhdGlvbiBzb3VyY2UgcmFuZ2UuICovXG4gIHJhbmdlOiBSYW5nZTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYW4gaW1wb3J0IHBsYW4gZm9yIGluc2VydGlvbiBtb2RlLlxuICogQHBhcmFtIG1vZHVsZVNwZWNpZmllciBUYXJnZXQgbW9kdWxlIHBhdGguXG4gKiBAcGFyYW0gbmFtZXMgTmFtZXMgdG8gaW1wb3J0LlxuICogQHBhcmFtIGFmdGVyUmFuZ2UgUmFuZ2UgdG8gaW5zZXJ0IGFmdGVyLlxuICogQHJldHVybnMgSW5zZXJ0IHBsYW4gcGF5bG9hZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwbGFuID0gY3JlYXRlSW5zZXJ0UGxhbihcIi4veFwiLCBbXCJhXCJdLCBbMCwgMV0pO1xuICogdm9pZCBwbGFuO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUluc2VydFBsYW4oXG4gIG1vZHVsZVNwZWNpZmllcjogc3RyaW5nLFxuICBuYW1lczogc3RyaW5nW10sXG4gIGFmdGVyUmFuZ2U6IFJhbmdlIHwgdW5kZWZpbmVkLFxuKTogSW1wb3J0UGxhbiB7XG4gIHJldHVybiBhZnRlclJhbmdlID09PSB2b2lkIDBcbiAgICA/IHsgaW5zZXJ0OiB7fSwgbW9kdWxlU3BlY2lmaWVyLCBuYW1lcyB9XG4gICAgOiB7IGluc2VydDogeyBhZnRlclJhbmdlIH0sIG1vZHVsZVNwZWNpZmllciwgbmFtZXMgfTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYW4gaW1wb3J0IHBsYW4gZm9yIHVwZGF0ZSBtb2RlLlxuICogQHBhcmFtIHN0YXRlbWVudCBFeGlzdGluZyBpbXBvcnQgZGVjbGFyYXRpb24uXG4gKiBAcGFyYW0gbW9kdWxlU3BlY2lmaWVyIFRhcmdldCBtb2R1bGUgcGF0aC5cbiAqIEBwYXJhbSBuYW1lcyBOYW1lcyB0byBpbXBvcnQuXG4gKiBAcmV0dXJucyBVcGRhdGUgcGxhbiBwYXlsb2FkLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHBsYW4gPSBjcmVhdGVVcGRhdGVQbGFuKHsgc3BlY2lmaWVyczogW10sIHNvdXJjZTogeyB0eXBlOiBcIkxpdGVyYWxcIiwgdmFsdWU6IFwiLi94XCIgfSwgdHlwZTogXCJJbXBvcnREZWNsYXJhdGlvblwiLCByYW5nZTogWzAsIDFdIH0gYXMgbmV2ZXIsIFwiLi94XCIsIFtcImFcIl0pO1xuICogdm9pZCBwbGFuO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZVBsYW4oXG4gIHN0YXRlbWVudDogUmFuZ2VkSW1wb3J0RGVjbGFyYXRpb24sXG4gIG1vZHVsZVNwZWNpZmllcjogc3RyaW5nLFxuICBuYW1lczogc3RyaW5nW10sXG4pOiBJbXBvcnRQbGFuIHtcbiAgaWYgKGhhc05hbWVzcGFjZUltcG9ydChzdGF0ZW1lbnQpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUluc2VydFBsYW4obW9kdWxlU3BlY2lmaWVyLCBuYW1lcywgc3RhdGVtZW50LnJhbmdlKTtcbiAgfVxuXG4gIGNvbnN0IGRlZmF1bHRJbXBvcnROYW1lID0gZ2V0RGVmYXVsdEltcG9ydE5hbWUoc3RhdGVtZW50KTtcbiAgY29uc3QgYmFzZVVwZGF0ZSA9IHtcbiAgICBleGlzdGluZ05hbWVkSW1wb3J0czogZ2V0TmFtZWRJbXBvcnRzKHN0YXRlbWVudCksXG4gICAgcmFuZ2U6IHN0YXRlbWVudC5yYW5nZSxcbiAgfTtcbiAgY29uc3QgdXBkYXRlID1cbiAgICBkZWZhdWx0SW1wb3J0TmFtZSA9PT0gdm9pZCAwXG4gICAgICA/IGJhc2VVcGRhdGVcbiAgICAgIDogeyAuLi5iYXNlVXBkYXRlLCBkZWZhdWx0SW1wb3J0TmFtZSB9O1xuXG4gIHJldHVybiB7XG4gICAgbW9kdWxlU3BlY2lmaWVyLFxuICAgIG5hbWVzLFxuICAgIHVwZGF0ZSxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBkZWZhdWx0IGltcG9ydCBsb2NhbCBuYW1lLlxuICogQHBhcmFtIHN0YXRlbWVudCBJbXBvcnQgZGVjbGFyYXRpb24uXG4gKiBAcmV0dXJucyBEZWZhdWx0IGxvY2FsIG5hbWUgd2hlbiBwcmVzZW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGxvY2FsTmFtZSA9IGdldERlZmF1bHRJbXBvcnROYW1lKHsgc3BlY2lmaWVyczogW10sIHR5cGU6IFwiSW1wb3J0RGVjbGFyYXRpb25cIiB9IGFzIG5ldmVyKTtcbiAqIHZvaWQgbG9jYWxOYW1lO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldERlZmF1bHRJbXBvcnROYW1lKFxuICBzdGF0ZW1lbnQ6IEVTVHJlZS5JbXBvcnREZWNsYXJhdGlvbixcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRlZmF1bHRTcGVjaWZpZXIgPSBzdGF0ZW1lbnQuc3BlY2lmaWVycy5maW5kKFxuICAgIChzcGVjaWZpZXIpOiBzcGVjaWZpZXIgaXMgRVNUcmVlLkltcG9ydERlZmF1bHRTcGVjaWZpZXIgPT5cbiAgICAgIHNwZWNpZmllci50eXBlID09PSBcIkltcG9ydERlZmF1bHRTcGVjaWZpZXJcIixcbiAgKTtcbiAgcmV0dXJuIGRlZmF1bHRTcGVjaWZpZXI/LmxvY2FsLm5hbWU7XG59XG5cbi8qKlxuICogRmlsdGVycyB0b3AtbGV2ZWwgaW1wb3J0IGRlY2xhcmF0aW9ucyB0aGF0IGluY2x1ZGUgYSBgcmFuZ2VgLlxuICogQHBhcmFtIHByb2dyYW0gUHJvZ3JhbSBub2RlLlxuICogQHJldHVybnMgSW1wb3J0IGRlY2xhcmF0aW9ucyB3aXRoIHN0YWJsZSByYW5nZXMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaW1wb3J0cyA9IGdldEltcG9ydERlY2xhcmF0aW9ucyh7IGJvZHk6IFtdLCBzb3VyY2VUeXBlOiBcIm1vZHVsZVwiLCB0eXBlOiBcIlByb2dyYW1cIiB9IGFzIG5ldmVyKTtcbiAqIHZvaWQgaW1wb3J0cztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRJbXBvcnREZWNsYXJhdGlvbnMoXG4gIHByb2dyYW06IEVTVHJlZS5Qcm9ncmFtLFxuKTogUmFuZ2VkSW1wb3J0RGVjbGFyYXRpb25bXSB7XG4gIHJldHVybiBwcm9ncmFtLmJvZHkuZmlsdGVyKFxuICAgIChzdGF0ZW1lbnQpOiBzdGF0ZW1lbnQgaXMgUmFuZ2VkSW1wb3J0RGVjbGFyYXRpb24gPT5cbiAgICAgIHN0YXRlbWVudC50eXBlID09PSBcIkltcG9ydERlY2xhcmF0aW9uXCIgJiYgaGFzUmFuZ2Uoc3RhdGVtZW50KSxcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFsbCBuYW1lZCBpbXBvcnRzIGZyb20gYSBkZWNsYXJhdGlvbi5cbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW1wb3J0IGRlY2xhcmF0aW9uLlxuICogQHJldHVybnMgTmFtZWQgaW1wb3J0IGlkZW50aWZpZXJzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5hbWVkID0gZ2V0TmFtZWRJbXBvcnRzKHsgc3BlY2lmaWVyczogW10sIHR5cGU6IFwiSW1wb3J0RGVjbGFyYXRpb25cIiB9IGFzIG5ldmVyKTtcbiAqIHZvaWQgbmFtZWQ7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZ2V0TmFtZWRJbXBvcnRzKHN0YXRlbWVudDogRVNUcmVlLkltcG9ydERlY2xhcmF0aW9uKTogc3RyaW5nW10ge1xuICByZXR1cm4gc3RhdGVtZW50LnNwZWNpZmllcnMuZmxhdE1hcCgoc3BlY2lmaWVyKSA9PiB7XG4gICAgY29uc3QgaW1wb3J0ZWROYW1lID0gdG9JbXBvcnRlZE5hbWUoc3BlY2lmaWVyKTtcbiAgICByZXR1cm4gaW1wb3J0ZWROYW1lID09PSB2b2lkIDAgPyBbXSA6IFtpbXBvcnRlZE5hbWVdO1xuICB9KTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhbiBpbXBvcnQgaW5jbHVkZXMgYSBuYW1lc3BhY2Ugc3BlY2lmaWVyLlxuICogQHBhcmFtIHN0YXRlbWVudCBJbXBvcnQgZGVjbGFyYXRpb24uXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gZGVjbGFyYXRpb24gaW5jbHVkZXMgYCogYXMgeGAgZm9ybS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBoYXNOYW1lc3BhY2UgPSBoYXNOYW1lc3BhY2VJbXBvcnQoeyBzcGVjaWZpZXJzOiBbXSwgdHlwZTogXCJJbXBvcnREZWNsYXJhdGlvblwiIH0gYXMgbmV2ZXIpO1xuICogdm9pZCBoYXNOYW1lc3BhY2U7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaGFzTmFtZXNwYWNlSW1wb3J0KHN0YXRlbWVudDogRVNUcmVlLkltcG9ydERlY2xhcmF0aW9uKTogYm9vbGVhbiB7XG4gIHJldHVybiBzdGF0ZW1lbnQuc3BlY2lmaWVycy5zb21lKFxuICAgIChzcGVjaWZpZXIpID0+IHNwZWNpZmllci50eXBlID09PSBcIkltcG9ydE5hbWVzcGFjZVNwZWNpZmllclwiLFxuICApO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGFuIGltcG9ydCBkZWNsYXJhdGlvbiBtYXRjaGVzIHRoZSBtb2NrZWQgbW9kdWxlLlxuICogQHBhcmFtIHN0YXRlbWVudCBJbXBvcnQgZGVjbGFyYXRpb24gY2FuZGlkYXRlLlxuICogQHBhcmFtIG1vZHVsZVNwZWNpZmllciBFeHBlY3RlZCBtb2R1bGUgcGF0aC5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiBkZWNsYXJhdGlvbiB0YXJnZXRzIHRoZSBzYW1lIG1vZHVsZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBtYXRjaGVkID0gaXNNYXRjaGluZ0ltcG9ydCh7IHNvdXJjZTogeyB0eXBlOiBcIkxpdGVyYWxcIiwgdmFsdWU6IFwiLi94XCIgfSwgdHlwZTogXCJJbXBvcnREZWNsYXJhdGlvblwiIH0gYXMgbmV2ZXIsIFwiLi94XCIpO1xuICogdm9pZCBtYXRjaGVkO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGlzTWF0Y2hpbmdJbXBvcnQoXG4gIHN0YXRlbWVudDogRVNUcmVlLkltcG9ydERlY2xhcmF0aW9uLFxuICBtb2R1bGVTcGVjaWZpZXI6IHN0cmluZyxcbik6IGJvb2xlYW4ge1xuICBjb25zdCBzb3VyY2VWYWx1ZSA9IHN0YXRlbWVudC5zb3VyY2UudmFsdWU7XG4gIHJldHVybiB0eXBlb2Ygc291cmNlVmFsdWUgPT09IFwic3RyaW5nXCIgJiYgc291cmNlVmFsdWUgPT09IG1vZHVsZVNwZWNpZmllcjtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB3aGV0aGVyIGltcG9ydHMgc2hvdWxkIGJlIHVwZGF0ZWQgaW4gcGxhY2Ugb3IgaW5zZXJ0ZWQuXG4gKiBAcGFyYW0gcHJvZ3JhbSBQcm9ncmFtIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSBtb2R1bGVTcGVjaWZpZXIgVGFyZ2V0IG1vZHVsZSBwYXRoLlxuICogQHBhcmFtIG5hbWVzIEltcG9ydCBuYW1lcyB0aGF0IG11c3QgZXhpc3QuXG4gKiBAcmV0dXJucyBJbnNlcnQgb3IgdXBkYXRlIHBsYW4gZm9yIHRoZSBpbXBvcnQgc2VjdGlvbi5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwbGFuID0gcmVzb2x2ZUltcG9ydFBsYW4oeyBib2R5OiBbXSwgc291cmNlVHlwZTogXCJtb2R1bGVcIiwgdHlwZTogXCJQcm9ncmFtXCIgfSBhcyBuZXZlciwgXCIuL3hcIiwgW1wiYVwiXSk7XG4gKiB2b2lkIHBsYW47XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUltcG9ydFBsYW4oXG4gIHByb2dyYW06IEVTVHJlZS5Qcm9ncmFtLFxuICBtb2R1bGVTcGVjaWZpZXI6IHN0cmluZyxcbiAgbmFtZXM6IHN0cmluZ1tdLFxuKTogSW1wb3J0UGxhbiB7XG4gIGNvbnN0IGltcG9ydHMgPSBnZXRJbXBvcnREZWNsYXJhdGlvbnMocHJvZ3JhbSk7XG4gIGNvbnN0IGV4aXN0aW5nSW1wb3J0ID0gaW1wb3J0cy5maW5kKChzdGF0ZW1lbnQpID0+XG4gICAgaXNNYXRjaGluZ0ltcG9ydChzdGF0ZW1lbnQsIG1vZHVsZVNwZWNpZmllciksXG4gICk7XG5cbiAgcmV0dXJuIGV4aXN0aW5nSW1wb3J0ID09PSB2b2lkIDBcbiAgICA/IGNyZWF0ZUluc2VydFBsYW4obW9kdWxlU3BlY2lmaWVyLCBuYW1lcywgaW1wb3J0cy5hdCgtMSk/LnJhbmdlKVxuICAgIDogY3JlYXRlVXBkYXRlUGxhbihleGlzdGluZ0ltcG9ydCwgbW9kdWxlU3BlY2lmaWVyLCBuYW1lcyk7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgaW1wb3J0ZWQgaWRlbnRpZmllciBuYW1lIGZyb20gb25lIHNwZWNpZmllci5cbiAqIEBwYXJhbSBzcGVjaWZpZXIgSW1wb3J0IGNsYXVzZSBlbnRyeS5cbiAqIEByZXR1cm5zIEltcG9ydGVkIGlkZW50aWZpZXIgbmFtZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBpbXBvcnRlZCA9IHRvSW1wb3J0ZWROYW1lKHsgdHlwZTogXCJJbXBvcnRTcGVjaWZpZXJcIiwgaW1wb3J0ZWQ6IHsgdHlwZTogXCJJZGVudGlmaWVyXCIsIG5hbWU6IFwieFwiIH0gfSBhcyBuZXZlcik7XG4gKiB2b2lkIGltcG9ydGVkO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHRvSW1wb3J0ZWROYW1lKFxuICBzcGVjaWZpZXI6IEVTVHJlZS5JbXBvcnREZWNsYXJhdGlvbltcInNwZWNpZmllcnNcIl1bbnVtYmVyXSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBzcGVjaWZpZXIudHlwZSA9PT0gXCJJbXBvcnRTcGVjaWZpZXJcIiAmJlxuICAgIHNwZWNpZmllci5pbXBvcnRlZC50eXBlID09PSBcIklkZW50aWZpZXJcIlxuICAgID8gc3BlY2lmaWVyLmltcG9ydGVkLm5hbWVcbiAgICA6IHZvaWQgMDtcbn1cblxuZXhwb3J0IHsgcmVzb2x2ZUltcG9ydFBsYW4gfTtcbiJdfQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"match-rewrites.d.ts","sourceRoot":"","sources":["../../../src/testing/prefer-vi-mocked-import/match-rewrites.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAyBnE;;;;;;;;;;;GAWG;AACH,iBAAS,qBAAqB,CAC5B,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,EACpC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GACtB,OAAO,CAkBT;AAED;;;;;;;;;;;GAWG;AACH,iBAAS,kBAAkB,CACzB,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACtC,QAAQ,EAAE,aAAa,EAAE,GACxB,GAAG,CAAC,MAAM,CAAC,CAkBb;AAED;;;;;;;;;;GAUG;AACH,iBAAS,qBAAqB,CAC5B,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,aAAa,EAAE,CAUjB;AAqCD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,CAAC"}
@@ -1,119 +0,0 @@
1
- import { hasRange } from "./match-helpers";
2
- import { walkNode } from "./match-walk";
3
- /**
4
- * Adds declaration identifier range to the allowed set.
5
- * @param allowedRanges Allowed range set.
6
- * @param declaration Declaration to include.
7
- * @example
8
- * ```typescript
9
- * const allowed = new Set<string>();
10
- * addDeclarationIdRange(allowed, void 0);
11
- * ```
12
- */
13
- function addDeclarationIdRange(allowedRanges, declaration) {
14
- if (declaration !== void 0) {
15
- const rangeKey = `${declaration.declarationIdRange[0]}:${declaration.declarationIdRange[1]}`;
16
- allowedRanges.add(rangeKey);
17
- }
18
- }
19
- /**
20
- * Returns false if a binding local is used outside allowed rewrite sites.
21
- * @param program Program node containing mock usage.
22
- * @param allowedIdentifierRanges Identifier ranges that are safe to rewrite.
23
- * @param localNames Local names tracked by the matcher.
24
- * @returns True when all local usages are safe.
25
- * @example
26
- * ```typescript
27
- * const safe = areLocalsSafeToInline({ body: [], sourceType: "module", type: "Program" } as never, new Set(), new Set());
28
- * void safe;
29
- * ```
30
- */
31
- function areLocalsSafeToInline(program, allowedIdentifierRanges, localNames) {
32
- let isSafe = true;
33
- walkNode(program, (currentNode) => {
34
- if (!isSafe ||
35
- currentNode.type !== "Identifier" ||
36
- !hasRange(currentNode)) {
37
- return;
38
- }
39
- const key = `${currentNode.range[0]}:${currentNode.range[1]}`;
40
- if (localNames.has(currentNode.name) && !allowedIdentifierRanges.has(key)) {
41
- isSafe = false;
42
- }
43
- });
44
- return isSafe;
45
- }
46
- /**
47
- * Builds a set of allowed identifier ranges for safe-inline validation.
48
- * @param bindings Bindings list.
49
- * @param declarations Declarations map.
50
- * @param rewrites Member rewrites.
51
- * @returns Allowed identifier range keys.
52
- * @example
53
- * ```typescript
54
- * const ranges = buildAllowedRanges([], new Map(), []);
55
- * void ranges;
56
- * ```
57
- */
58
- function buildAllowedRanges(bindings, declarations, rewrites) {
59
- const allowedRanges = new Set();
60
- for (const binding of bindings) {
61
- allowedRanges.add(`${binding.propertyKeyRange[0]}:${binding.propertyKeyRange[1]}`);
62
- allowedRanges.add(`${binding.propertyValueRange[0]}:${binding.propertyValueRange[1]}`);
63
- addDeclarationIdRange(allowedRanges, declarations.get(binding.localName));
64
- }
65
- for (const rewrite of rewrites) {
66
- allowedRanges.add(`${rewrite.localObjectRange[0]}:${rewrite.localObjectRange[1]}`);
67
- }
68
- return allowedRanges;
69
- }
70
- /**
71
- * Collects member-expression object rewrites for `.mock*` calls.
72
- * @param program Program node.
73
- * @param localToExported Local to exported name map.
74
- * @returns Collected member rewrites.
75
- * @example
76
- * ```typescript
77
- * const rewrites = collectMemberRewrites({ body: [], sourceType: "module", type: "Program" } as never, new Map());
78
- * void rewrites;
79
- * ```
80
- */
81
- function collectMemberRewrites(program, localToExported) {
82
- const rewrites = [];
83
- walkNode(program, (currentNode) => {
84
- const rewrite = toMemberRewrite(currentNode, localToExported);
85
- if (rewrite !== void 0) {
86
- rewrites.push(rewrite);
87
- }
88
- });
89
- return rewrites;
90
- }
91
- /**
92
- * Converts a node into a member rewrite when supported.
93
- * @param currentNode Candidate node.
94
- * @param localToExported Local to exported name map.
95
- * @returns Member rewrite when node is supported.
96
- * @example
97
- * ```typescript
98
- * const rewrite = toMemberRewrite({ type: "Identifier", name: "x" } as never, new Map());
99
- * void rewrite;
100
- * ```
101
- */
102
- function toMemberRewrite(currentNode, localToExported) {
103
- if (currentNode.type !== "MemberExpression") {
104
- return void 0;
105
- }
106
- const { object, property } = currentNode;
107
- if (object.type !== "Identifier" ||
108
- !hasRange(object) ||
109
- property.type !== "Identifier" ||
110
- !property.name.startsWith("mock")) {
111
- return void 0;
112
- }
113
- const exportedName = localToExported.get(object.name);
114
- return exportedName === void 0
115
- ? void 0
116
- : { exportedName, localObjectRange: object.range };
117
- }
118
- export { areLocalsSafeToInline, buildAllowedRanges, collectMemberRewrites };
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtcmV3cml0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdGluZy9wcmVmZXItdmktbW9ja2VkLWltcG9ydC9tYXRjaC1yZXdyaXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV4Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLHFCQUFxQixDQUM1QixhQUEwQixFQUMxQixXQUFvQztJQUVwQyxJQUFJLFdBQVcsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzNCLE1BQU0sUUFBUSxHQUFHLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdGLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILFNBQVMscUJBQXFCLENBQzVCLE9BQXVCLEVBQ3ZCLHVCQUFvQyxFQUNwQyxVQUF1QjtJQUV2QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDbEIsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFO1FBQ2hDLElBQ0UsQ0FBQyxNQUFNO1lBQ1AsV0FBVyxDQUFDLElBQUksS0FBSyxZQUFZO1lBQ2pDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUN0QixDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlELElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxRSxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILFNBQVMsa0JBQWtCLENBQ3pCLFFBQW1CLEVBQ25CLFlBQXNDLEVBQ3RDLFFBQXlCO0lBRXpCLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDeEMsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMvQixhQUFhLENBQUMsR0FBRyxDQUNmLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNoRSxDQUFDO1FBQ0YsYUFBYSxDQUFDLEdBQUcsQ0FDZixHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDcEUsQ0FBQztRQUNGLHFCQUFxQixDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFDRCxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLGFBQWEsQ0FBQyxHQUFHLENBQ2YsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ2hFLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLHFCQUFxQixDQUM1QixPQUF1QixFQUN2QixlQUFvQztJQUVwQyxNQUFNLFFBQVEsR0FBb0IsRUFBRSxDQUFDO0lBQ3JDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNoQyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQzlELElBQUksT0FBTyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkIsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsZUFBZSxDQUN0QixXQUF3QixFQUN4QixlQUFvQztJQUVwQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztRQUM1QyxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLFdBQVcsQ0FBQztJQUN6QyxJQUNFLE1BQU0sQ0FBQyxJQUFJLEtBQUssWUFBWTtRQUM1QixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDakIsUUFBUSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQzlCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQ2pDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RCxPQUFPLFlBQVksS0FBSyxLQUFLLENBQUM7UUFDNUIsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNSLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDdkQsQ0FBQztBQUVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xuXG5pbXBvcnQgdHlwZSB7IEJpbmRpbmcsIERlY2xhcmF0aW9uLCBNZW1iZXJSZXdyaXRlIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHsgaGFzUmFuZ2UgfSBmcm9tIFwiLi9tYXRjaC1oZWxwZXJzXCI7XG5pbXBvcnQgeyB3YWxrTm9kZSB9IGZyb20gXCIuL21hdGNoLXdhbGtcIjtcblxuLyoqXG4gKiBBZGRzIGRlY2xhcmF0aW9uIGlkZW50aWZpZXIgcmFuZ2UgdG8gdGhlIGFsbG93ZWQgc2V0LlxuICogQHBhcmFtIGFsbG93ZWRSYW5nZXMgQWxsb3dlZCByYW5nZSBzZXQuXG4gKiBAcGFyYW0gZGVjbGFyYXRpb24gRGVjbGFyYXRpb24gdG8gaW5jbHVkZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBhbGxvd2VkID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gKiBhZGREZWNsYXJhdGlvbklkUmFuZ2UoYWxsb3dlZCwgdm9pZCAwKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBhZGREZWNsYXJhdGlvbklkUmFuZ2UoXG4gIGFsbG93ZWRSYW5nZXM6IFNldDxzdHJpbmc+LFxuICBkZWNsYXJhdGlvbjogRGVjbGFyYXRpb24gfCB1bmRlZmluZWQsXG4pOiB2b2lkIHtcbiAgaWYgKGRlY2xhcmF0aW9uICE9PSB2b2lkIDApIHtcbiAgICBjb25zdCByYW5nZUtleSA9IGAke2RlY2xhcmF0aW9uLmRlY2xhcmF0aW9uSWRSYW5nZVswXX06JHtkZWNsYXJhdGlvbi5kZWNsYXJhdGlvbklkUmFuZ2VbMV19YDtcbiAgICBhbGxvd2VkUmFuZ2VzLmFkZChyYW5nZUtleSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIGZhbHNlIGlmIGEgYmluZGluZyBsb2NhbCBpcyB1c2VkIG91dHNpZGUgYWxsb3dlZCByZXdyaXRlIHNpdGVzLlxuICogQHBhcmFtIHByb2dyYW0gUHJvZ3JhbSBub2RlIGNvbnRhaW5pbmcgbW9jayB1c2FnZS5cbiAqIEBwYXJhbSBhbGxvd2VkSWRlbnRpZmllclJhbmdlcyBJZGVudGlmaWVyIHJhbmdlcyB0aGF0IGFyZSBzYWZlIHRvIHJld3JpdGUuXG4gKiBAcGFyYW0gbG9jYWxOYW1lcyBMb2NhbCBuYW1lcyB0cmFja2VkIGJ5IHRoZSBtYXRjaGVyLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIGFsbCBsb2NhbCB1c2FnZXMgYXJlIHNhZmUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc2FmZSA9IGFyZUxvY2Fsc1NhZmVUb0lubGluZSh7IGJvZHk6IFtdLCBzb3VyY2VUeXBlOiBcIm1vZHVsZVwiLCB0eXBlOiBcIlByb2dyYW1cIiB9IGFzIG5ldmVyLCBuZXcgU2V0KCksIG5ldyBTZXQoKSk7XG4gKiB2b2lkIHNhZmU7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gYXJlTG9jYWxzU2FmZVRvSW5saW5lKFxuICBwcm9ncmFtOiBFU1RyZWUuUHJvZ3JhbSxcbiAgYWxsb3dlZElkZW50aWZpZXJSYW5nZXM6IFNldDxzdHJpbmc+LFxuICBsb2NhbE5hbWVzOiBTZXQ8c3RyaW5nPixcbik6IGJvb2xlYW4ge1xuICBsZXQgaXNTYWZlID0gdHJ1ZTtcbiAgd2Fsa05vZGUocHJvZ3JhbSwgKGN1cnJlbnROb2RlKSA9PiB7XG4gICAgaWYgKFxuICAgICAgIWlzU2FmZSB8fFxuICAgICAgY3VycmVudE5vZGUudHlwZSAhPT0gXCJJZGVudGlmaWVyXCIgfHxcbiAgICAgICFoYXNSYW5nZShjdXJyZW50Tm9kZSlcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBrZXkgPSBgJHtjdXJyZW50Tm9kZS5yYW5nZVswXX06JHtjdXJyZW50Tm9kZS5yYW5nZVsxXX1gO1xuICAgIGlmIChsb2NhbE5hbWVzLmhhcyhjdXJyZW50Tm9kZS5uYW1lKSAmJiAhYWxsb3dlZElkZW50aWZpZXJSYW5nZXMuaGFzKGtleSkpIHtcbiAgICAgIGlzU2FmZSA9IGZhbHNlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGlzU2FmZTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBzZXQgb2YgYWxsb3dlZCBpZGVudGlmaWVyIHJhbmdlcyBmb3Igc2FmZS1pbmxpbmUgdmFsaWRhdGlvbi5cbiAqIEBwYXJhbSBiaW5kaW5ncyBCaW5kaW5ncyBsaXN0LlxuICogQHBhcmFtIGRlY2xhcmF0aW9ucyBEZWNsYXJhdGlvbnMgbWFwLlxuICogQHBhcmFtIHJld3JpdGVzIE1lbWJlciByZXdyaXRlcy5cbiAqIEByZXR1cm5zIEFsbG93ZWQgaWRlbnRpZmllciByYW5nZSBrZXlzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJhbmdlcyA9IGJ1aWxkQWxsb3dlZFJhbmdlcyhbXSwgbmV3IE1hcCgpLCBbXSk7XG4gKiB2b2lkIHJhbmdlcztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBidWlsZEFsbG93ZWRSYW5nZXMoXG4gIGJpbmRpbmdzOiBCaW5kaW5nW10sXG4gIGRlY2xhcmF0aW9uczogTWFwPHN0cmluZywgRGVjbGFyYXRpb24+LFxuICByZXdyaXRlczogTWVtYmVyUmV3cml0ZVtdLFxuKTogU2V0PHN0cmluZz4ge1xuICBjb25zdCBhbGxvd2VkUmFuZ2VzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgYmluZGluZyBvZiBiaW5kaW5ncykge1xuICAgIGFsbG93ZWRSYW5nZXMuYWRkKFxuICAgICAgYCR7YmluZGluZy5wcm9wZXJ0eUtleVJhbmdlWzBdfToke2JpbmRpbmcucHJvcGVydHlLZXlSYW5nZVsxXX1gLFxuICAgICk7XG4gICAgYWxsb3dlZFJhbmdlcy5hZGQoXG4gICAgICBgJHtiaW5kaW5nLnByb3BlcnR5VmFsdWVSYW5nZVswXX06JHtiaW5kaW5nLnByb3BlcnR5VmFsdWVSYW5nZVsxXX1gLFxuICAgICk7XG4gICAgYWRkRGVjbGFyYXRpb25JZFJhbmdlKGFsbG93ZWRSYW5nZXMsIGRlY2xhcmF0aW9ucy5nZXQoYmluZGluZy5sb2NhbE5hbWUpKTtcbiAgfVxuICBmb3IgKGNvbnN0IHJld3JpdGUgb2YgcmV3cml0ZXMpIHtcbiAgICBhbGxvd2VkUmFuZ2VzLmFkZChcbiAgICAgIGAke3Jld3JpdGUubG9jYWxPYmplY3RSYW5nZVswXX06JHtyZXdyaXRlLmxvY2FsT2JqZWN0UmFuZ2VbMV19YCxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGFsbG93ZWRSYW5nZXM7XG59XG5cbi8qKlxuICogQ29sbGVjdHMgbWVtYmVyLWV4cHJlc3Npb24gb2JqZWN0IHJld3JpdGVzIGZvciBgLm1vY2sqYCBjYWxscy5cbiAqIEBwYXJhbSBwcm9ncmFtIFByb2dyYW0gbm9kZS5cbiAqIEBwYXJhbSBsb2NhbFRvRXhwb3J0ZWQgTG9jYWwgdG8gZXhwb3J0ZWQgbmFtZSBtYXAuXG4gKiBAcmV0dXJucyBDb2xsZWN0ZWQgbWVtYmVyIHJld3JpdGVzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJld3JpdGVzID0gY29sbGVjdE1lbWJlclJld3JpdGVzKHsgYm9keTogW10sIHNvdXJjZVR5cGU6IFwibW9kdWxlXCIsIHR5cGU6IFwiUHJvZ3JhbVwiIH0gYXMgbmV2ZXIsIG5ldyBNYXAoKSk7XG4gKiB2b2lkIHJld3JpdGVzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGNvbGxlY3RNZW1iZXJSZXdyaXRlcyhcbiAgcHJvZ3JhbTogRVNUcmVlLlByb2dyYW0sXG4gIGxvY2FsVG9FeHBvcnRlZDogTWFwPHN0cmluZywgc3RyaW5nPixcbik6IE1lbWJlclJld3JpdGVbXSB7XG4gIGNvbnN0IHJld3JpdGVzOiBNZW1iZXJSZXdyaXRlW10gPSBbXTtcbiAgd2Fsa05vZGUocHJvZ3JhbSwgKGN1cnJlbnROb2RlKSA9PiB7XG4gICAgY29uc3QgcmV3cml0ZSA9IHRvTWVtYmVyUmV3cml0ZShjdXJyZW50Tm9kZSwgbG9jYWxUb0V4cG9ydGVkKTtcbiAgICBpZiAocmV3cml0ZSAhPT0gdm9pZCAwKSB7XG4gICAgICByZXdyaXRlcy5wdXNoKHJld3JpdGUpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHJld3JpdGVzO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgbm9kZSBpbnRvIGEgbWVtYmVyIHJld3JpdGUgd2hlbiBzdXBwb3J0ZWQuXG4gKiBAcGFyYW0gY3VycmVudE5vZGUgQ2FuZGlkYXRlIG5vZGUuXG4gKiBAcGFyYW0gbG9jYWxUb0V4cG9ydGVkIExvY2FsIHRvIGV4cG9ydGVkIG5hbWUgbWFwLlxuICogQHJldHVybnMgTWVtYmVyIHJld3JpdGUgd2hlbiBub2RlIGlzIHN1cHBvcnRlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXdyaXRlID0gdG9NZW1iZXJSZXdyaXRlKHsgdHlwZTogXCJJZGVudGlmaWVyXCIsIG5hbWU6IFwieFwiIH0gYXMgbmV2ZXIsIG5ldyBNYXAoKSk7XG4gKiB2b2lkIHJld3JpdGU7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gdG9NZW1iZXJSZXdyaXRlKFxuICBjdXJyZW50Tm9kZTogRVNUcmVlLk5vZGUsXG4gIGxvY2FsVG9FeHBvcnRlZDogTWFwPHN0cmluZywgc3RyaW5nPixcbik6IE1lbWJlclJld3JpdGUgfCB1bmRlZmluZWQge1xuICBpZiAoY3VycmVudE5vZGUudHlwZSAhPT0gXCJNZW1iZXJFeHByZXNzaW9uXCIpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgeyBvYmplY3QsIHByb3BlcnR5IH0gPSBjdXJyZW50Tm9kZTtcbiAgaWYgKFxuICAgIG9iamVjdC50eXBlICE9PSBcIklkZW50aWZpZXJcIiB8fFxuICAgICFoYXNSYW5nZShvYmplY3QpIHx8XG4gICAgcHJvcGVydHkudHlwZSAhPT0gXCJJZGVudGlmaWVyXCIgfHxcbiAgICAhcHJvcGVydHkubmFtZS5zdGFydHNXaXRoKFwibW9ja1wiKVxuICApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgZXhwb3J0ZWROYW1lID0gbG9jYWxUb0V4cG9ydGVkLmdldChvYmplY3QubmFtZSk7XG4gIHJldHVybiBleHBvcnRlZE5hbWUgPT09IHZvaWQgMFxuICAgID8gdm9pZCAwXG4gICAgOiB7IGV4cG9ydGVkTmFtZSwgbG9jYWxPYmplY3RSYW5nZTogb2JqZWN0LnJhbmdlIH07XG59XG5cbmV4cG9ydCB7IGFyZUxvY2Fsc1NhZmVUb0lubGluZSwgYnVpbGRBbGxvd2VkUmFuZ2VzLCBjb2xsZWN0TWVtYmVyUmV3cml0ZXMgfTtcbiJdfQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"match-walk.d.ts","sourceRoot":"","sources":["../../../src/testing/prefer-vi-mocked-import/match-walk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAqDtC;;;;;;;;GAQG;AACH,iBAAS,QAAQ,CACf,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,GAC1C,IAAI,CAKN;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}