@cplieger/deadset-ts 8.0.0-dev.2 → 8.0.0-dev.21

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 (431) hide show
  1. package/README.md +3 -1
  2. package/THIRD_PARTY_NOTICES.md +27 -0
  3. package/dist/bin/mapper-connection.js +2 -1
  4. package/dist/bin/node-host.js +24 -5
  5. package/dist/src/alias-chain.js +35 -9
  6. package/dist/src/amd.js +81 -0
  7. package/dist/src/analysis.js +274 -496
  8. package/dist/src/augmentations.js +64 -3
  9. package/dist/src/automatic-types.js +10 -29
  10. package/dist/src/bindings.js +382 -0
  11. package/dist/src/commands/held.js +499 -0
  12. package/dist/src/commands/read.js +161 -0
  13. package/dist/src/commands/shell.js +169 -0
  14. package/dist/src/commands/tools.js +1847 -0
  15. package/dist/src/component-files.js +3 -2
  16. package/dist/src/component-layer.js +4 -2
  17. package/dist/src/config.js +6 -82
  18. package/dist/src/conformance-record.js +2 -2
  19. package/dist/src/consumers.js +10 -38
  20. package/dist/src/contextual-uses.js +57 -26
  21. package/dist/src/contract/config.generated.js +561 -0
  22. package/dist/src/contract/contract.generated.js +1370 -0
  23. package/dist/src/contract/report.generated.js +866 -0
  24. package/dist/src/dependencies.js +165 -122
  25. package/dist/src/destructuring.js +1 -19
  26. package/dist/src/edges.js +38 -122
  27. package/dist/src/element-access.js +181 -168
  28. package/dist/src/entries/build-scripts.js +222 -0
  29. package/dist/src/{configuration-files.js → entries/configuration-files.js} +52 -256
  30. package/dist/src/{convention-rows.js → entries/convention-rows.js} +170 -30
  31. package/dist/src/entries/conventions.js +740 -0
  32. package/dist/src/{html-entries.js → entries/html-entries.js} +12 -42
  33. package/dist/src/{mdx-entries.js → entries/mdx-entries.js} +5 -28
  34. package/dist/src/entries/run-directories.js +77 -0
  35. package/dist/src/entries/sources.js +144 -0
  36. package/dist/src/entries/static-module.js +670 -0
  37. package/dist/src/entries/test-runners.js +650 -0
  38. package/dist/src/entries/workflow-steps.js +345 -0
  39. package/dist/src/exemptions/argument-places.js +131 -0
  40. package/dist/src/exemptions/calls.js +338 -0
  41. package/dist/src/exemptions/classes.js +13 -0
  42. package/dist/src/{decorator.js → exemptions/decorator.js} +19 -30
  43. package/dist/src/exemptions/detectors.js +48 -0
  44. package/dist/src/{enum-group.js → exemptions/enum-group.js} +9 -16
  45. package/dist/src/{erased-stores.js → exemptions/erased-stores.js} +7 -11
  46. package/dist/src/{framework-lifecycle.js → exemptions/framework-lifecycle.js} +76 -54
  47. package/dist/src/exemptions/generated-file.js +241 -0
  48. package/dist/src/{injection-container.js → exemptions/injection-container.js} +20 -26
  49. package/dist/src/exemptions/installed-globals.js +173 -0
  50. package/dist/src/{interface-satisfaction.js → exemptions/interface-satisfaction.js} +52 -121
  51. package/dist/src/exemptions/lifecycle.js +150 -0
  52. package/dist/src/{reflective-lookup.js → exemptions/reflective-lookup.js} +3 -3
  53. package/dist/src/exemptions/serialization-contract.js +1276 -0
  54. package/dist/src/exemptions/sites.js +182 -0
  55. package/dist/src/{template-field.js → exemptions/template-field.js} +13 -23
  56. package/dist/src/{value-reach.js → exemptions/value-reach.js} +14 -7
  57. package/dist/src/exposure.js +400 -0
  58. package/dist/src/extensions.js +37 -0
  59. package/dist/src/facts.js +38 -0
  60. package/dist/src/failure.js +36 -0
  61. package/dist/src/file-facts.js +3 -26
  62. package/dist/src/findings/completion.js +109 -56
  63. package/dist/src/findings/dependencies-and-module-machinery.js +4 -5
  64. package/dist/src/findings/emitters.js +27 -41
  65. package/dist/src/{implementations.js → findings/implementations.js} +3 -3
  66. package/dist/src/{in-operands.js → findings/in-operands.js} +3 -2
  67. package/dist/src/findings/interfaces.js +4 -5
  68. package/dist/src/findings/intra-function.js +16 -13
  69. package/dist/src/findings/non-code-artifacts.js +17 -12
  70. package/dist/src/findings/reads-and-writes.js +86 -27
  71. package/dist/src/findings/self-check.js +44 -30
  72. package/dist/src/findings/unused-declarations.js +29 -45
  73. package/dist/src/findings/visibility-narrowing.js +23 -31
  74. package/dist/src/findings-pass.js +13 -21
  75. package/dist/src/fs/document.js +52 -0
  76. package/dist/src/fs/manifest.js +67 -0
  77. package/dist/src/fs/tree.js +88 -0
  78. package/dist/src/git-ignore.js +39 -26
  79. package/dist/src/import-bindings.js +73 -28
  80. package/dist/src/index/sites.js +557 -0
  81. package/dist/src/index/values.js +124 -0
  82. package/dist/src/index.js +2 -2
  83. package/dist/src/indexed-access.js +523 -478
  84. package/dist/src/intra-function-parts.js +63 -43
  85. package/dist/src/inventory/commonjs.js +507 -0
  86. package/dist/src/inventory/enumerate.js +167 -0
  87. package/dist/src/inventory/syntax.js +236 -0
  88. package/dist/src/inventory.js +323 -724
  89. package/dist/src/javascript-file.js +48 -0
  90. package/dist/src/json-document.js +198 -67
  91. package/dist/src/keyof-comparisons.js +126 -107
  92. package/dist/src/kinds.js +3 -366
  93. package/dist/src/{components.js → liveness/components.js} +2 -3
  94. package/dist/src/{graph.js → liveness/graph.js} +52 -28
  95. package/dist/src/liveness/matrix.js +99 -0
  96. package/dist/src/liveness/sweep.js +558 -0
  97. package/dist/src/load/classify.js +289 -0
  98. package/dist/src/load/diagnostics.js +87 -0
  99. package/dist/src/load/discover.js +285 -0
  100. package/dist/src/{emit-map.js → load/emit-map.js} +1 -1
  101. package/dist/src/load/expected-module.js +136 -0
  102. package/dist/src/load/load.js +27 -0
  103. package/dist/src/load/module-lookup.js +37 -0
  104. package/dist/src/load/package-scope.js +56 -0
  105. package/dist/src/load/plan.js +313 -0
  106. package/dist/src/load/specifiers.js +113 -0
  107. package/dist/src/load/synthesize.js +152 -0
  108. package/dist/src/load/test-globals.js +207 -0
  109. package/dist/src/load/test-joins.js +82 -0
  110. package/dist/src/{workspace-manifests.js → load/workspace-manifests.js} +4 -4
  111. package/dist/src/{workspace-programs.js → load/workspace-programs.js} +89 -66
  112. package/dist/src/{workspace-resolution.js → load/workspace-resolution.js} +24 -66
  113. package/dist/src/{workspace-run.js → load/workspace-run.js} +7 -7
  114. package/dist/src/{workspace.js → load/workspace.js} +62 -124
  115. package/dist/src/module-declarations.js +70 -85
  116. package/dist/src/overrides.js +134 -112
  117. package/dist/src/partial.js +2 -1
  118. package/dist/src/paths.js +82 -16
  119. package/dist/src/platform-calls.js +78 -0
  120. package/dist/src/platform-symbols.js +134 -0
  121. package/dist/src/position.js +43 -1
  122. package/dist/src/print.js +11 -79
  123. package/dist/src/product.js +13 -0
  124. package/dist/src/query.js +95 -0
  125. package/dist/src/ref.js +12 -20
  126. package/dist/src/references/read-rule.js +1 -0
  127. package/dist/src/references/read-rules.js +48 -0
  128. package/dist/src/references/sink.js +237 -0
  129. package/dist/src/references/sources.js +450 -0
  130. package/dist/src/references.js +117 -1074
  131. package/dist/src/report-schema.js +51 -0
  132. package/dist/src/report.js +57 -41
  133. package/dist/src/reporters/annotations.js +15 -8
  134. package/dist/src/reporters/sarif.js +16 -10
  135. package/dist/src/reporters/template.js +4 -19
  136. package/dist/src/resolve.js +246 -730
  137. package/dist/src/{configured-declarations.js → roots/configured-declarations.js} +22 -24
  138. package/dist/src/{entry-point-gaps.js → roots/entry-point-gaps.js} +6 -15
  139. package/dist/src/roots/manifest.js +216 -0
  140. package/dist/src/roots/published-reach.js +412 -0
  141. package/dist/src/roots/root-set.js +487 -0
  142. package/dist/src/roots/unseen-loads.js +236 -0
  143. package/dist/src/run.js +66 -77
  144. package/dist/src/schema.js +320 -343
  145. package/dist/src/scope.js +38 -115
  146. package/dist/src/session.js +37 -29
  147. package/dist/src/source-files.js +6 -10
  148. package/dist/src/stores.js +4 -2
  149. package/dist/src/suppress-file.js +25 -28
  150. package/dist/src/suppress-inline.js +36 -83
  151. package/dist/src/suppress.js +50 -71
  152. package/dist/src/symbol-keys.js +92 -88
  153. package/dist/src/tests/file-class.js +76 -0
  154. package/dist/src/{outside-tests.js → tests/outside.js} +7 -7
  155. package/dist/src/{test-support.js → tests/support.js} +5 -12
  156. package/dist/src/text/compare.js +26 -0
  157. package/dist/src/text/glob.js +194 -0
  158. package/dist/src/text/named-files.js +298 -0
  159. package/dist/src/text/yaml.js +684 -0
  160. package/dist/src/type-errors.js +11 -232
  161. package/dist/src/type-parameter-reads.js +178 -139
  162. package/dist/src/unimplemented-callees.js +262 -242
  163. package/dist/src/unwrap.js +23 -0
  164. package/dist/src/usage.js +10 -0
  165. package/dist/src/vendor/unbash/ansi-c.js +132 -0
  166. package/dist/src/vendor/unbash/arithmetic-parts.js +37 -0
  167. package/dist/src/vendor/unbash/arithmetic.js +591 -0
  168. package/dist/src/vendor/unbash/assignment.js +131 -0
  169. package/dist/src/vendor/unbash/chars.js +48 -0
  170. package/dist/src/vendor/unbash/command.js +41 -0
  171. package/dist/src/vendor/unbash/expansion.js +80 -0
  172. package/dist/src/vendor/unbash/glob.js +268 -0
  173. package/dist/src/vendor/unbash/heredoc.js +27 -0
  174. package/dist/src/vendor/unbash/internal-types.js +1 -0
  175. package/dist/src/vendor/unbash/lexer.js +4274 -0
  176. package/dist/src/vendor/unbash/limits.js +3 -0
  177. package/dist/src/vendor/unbash/parser.js +1366 -0
  178. package/dist/src/vendor/unbash/parts.js +57 -0
  179. package/dist/src/vendor/unbash/substitution-context.js +8 -0
  180. package/dist/src/vendor/unbash/traversal.js +212 -0
  181. package/dist/src/vendor/unbash/types.js +1 -0
  182. package/dist/src/vendor/unbash/word-value.js +61 -0
  183. package/dist/src/vendor/unbash/word.js +40 -0
  184. package/dist/src/verbs/analyze.js +194 -127
  185. package/dist/src/verbs/describe.js +13 -18
  186. package/dist/src/verbs/explain.js +85 -139
  187. package/dist/src/verbs/print-config.js +2 -1
  188. package/dist/src/verbs/print-projects.js +6 -4
  189. package/dist/src/verbs/print-retained.js +30 -6
  190. package/dist/src/verbs/print-roots.js +4 -2
  191. package/dist/src/verbs/verb.js +1 -5
  192. package/dist/src/verbs/version.js +14 -3
  193. package/jsr.json +2 -1
  194. package/package.json +14 -8
  195. package/src/alias-chain.ts +40 -11
  196. package/src/amd.ts +130 -0
  197. package/src/analysis.ts +426 -733
  198. package/src/augmentations.ts +93 -4
  199. package/src/automatic-types.ts +12 -30
  200. package/src/bindings.ts +460 -0
  201. package/src/commands/held.ts +632 -0
  202. package/src/commands/read.ts +242 -0
  203. package/src/commands/shell.ts +228 -0
  204. package/src/commands/tools.ts +2382 -0
  205. package/src/component-files.ts +4 -2
  206. package/src/component-layer.ts +4 -2
  207. package/src/config.ts +31 -302
  208. package/src/conformance-record.ts +2 -2
  209. package/src/consumers.ts +16 -66
  210. package/src/contextual-uses.ts +66 -34
  211. package/src/contract/config.generated.ts +821 -0
  212. package/src/contract/contract.generated.ts +1453 -0
  213. package/src/contract/report.generated.ts +1241 -0
  214. package/src/dependencies.ts +223 -128
  215. package/src/destructuring.ts +1 -31
  216. package/src/edges.ts +41 -140
  217. package/src/element-access.ts +190 -187
  218. package/src/entries/build-scripts.ts +292 -0
  219. package/src/{configuration-files.ts → entries/configuration-files.ts} +68 -278
  220. package/src/{convention-rows.ts → entries/convention-rows.ts} +227 -31
  221. package/src/{conventions.ts → entries/conventions.ts} +367 -583
  222. package/src/{html-entries.ts → entries/html-entries.ts} +22 -48
  223. package/src/{mdx-entries.ts → entries/mdx-entries.ts} +7 -30
  224. package/src/entries/run-directories.ts +108 -0
  225. package/src/entries/sources.ts +266 -0
  226. package/src/entries/static-module.ts +858 -0
  227. package/src/entries/test-runners.ts +835 -0
  228. package/src/entries/workflow-steps.ts +432 -0
  229. package/src/exemptions/argument-places.ts +198 -0
  230. package/src/exemptions/calls.ts +483 -0
  231. package/src/exemptions/classes.ts +49 -0
  232. package/src/exemptions/decorator.ts +56 -0
  233. package/src/exemptions/detectors.ts +75 -0
  234. package/src/{enum-group.ts → exemptions/enum-group.ts} +10 -19
  235. package/src/{erased-stores.ts → exemptions/erased-stores.ts} +7 -14
  236. package/src/{framework-lifecycle.ts → exemptions/framework-lifecycle.ts} +85 -66
  237. package/src/exemptions/generated-file.ts +318 -0
  238. package/src/{injection-container.ts → exemptions/injection-container.ts} +29 -34
  239. package/src/exemptions/installed-globals.ts +255 -0
  240. package/src/{interface-satisfaction.ts → exemptions/interface-satisfaction.ts} +69 -160
  241. package/src/exemptions/lifecycle.ts +286 -0
  242. package/src/{reflective-lookup.ts → exemptions/reflective-lookup.ts} +5 -5
  243. package/src/exemptions/serialization-contract.ts +1729 -0
  244. package/src/exemptions/sites.ts +293 -0
  245. package/src/{template-field.ts → exemptions/template-field.ts} +22 -32
  246. package/src/{value-reach.ts → exemptions/value-reach.ts} +16 -8
  247. package/src/exposure.ts +492 -0
  248. package/src/extensions.ts +45 -0
  249. package/src/facts.ts +46 -0
  250. package/src/failure.ts +63 -0
  251. package/src/file-facts.ts +15 -25
  252. package/src/finding.ts +10 -10
  253. package/src/findings/boundary.ts +11 -0
  254. package/src/findings/completion.ts +133 -64
  255. package/src/findings/dependencies-and-module-machinery.ts +4 -7
  256. package/src/findings/emitter.ts +9 -10
  257. package/src/findings/emitters.ts +38 -52
  258. package/src/{implementations.ts → findings/implementations.ts} +4 -4
  259. package/src/{in-operands.ts → findings/in-operands.ts} +4 -3
  260. package/src/findings/interfaces.ts +7 -9
  261. package/src/findings/intra-function.ts +16 -14
  262. package/src/findings/non-code-artifacts.ts +24 -15
  263. package/src/findings/reads-and-writes.ts +118 -41
  264. package/src/findings/self-check.ts +51 -38
  265. package/src/findings/unused-declarations.ts +31 -49
  266. package/src/findings/visibility-narrowing.ts +36 -40
  267. package/src/findings-pass.ts +15 -31
  268. package/src/fs/document.ts +70 -0
  269. package/src/fs/manifest.ts +96 -0
  270. package/src/fs/tree.ts +110 -0
  271. package/src/git-ignore.ts +50 -26
  272. package/src/host.ts +12 -5
  273. package/src/import-bindings.ts +98 -29
  274. package/src/index/sites.ts +781 -0
  275. package/src/index/values.ts +170 -0
  276. package/src/index.ts +2 -2
  277. package/src/indexed-access.ts +570 -527
  278. package/src/intra-function-parts.ts +73 -44
  279. package/src/inventory/commonjs.ts +696 -0
  280. package/src/inventory/enumerate.ts +203 -0
  281. package/src/inventory/syntax.ts +311 -0
  282. package/src/inventory.ts +442 -895
  283. package/src/javascript-file.ts +54 -0
  284. package/src/json-document.ts +241 -76
  285. package/src/keyof-comparisons.ts +133 -122
  286. package/src/kinds.ts +5 -413
  287. package/src/{components.ts → liveness/components.ts} +4 -6
  288. package/src/{graph.ts → liveness/graph.ts} +100 -35
  289. package/src/liveness/matrix.ts +162 -0
  290. package/src/liveness/sweep.ts +855 -0
  291. package/src/load/classify.ts +433 -0
  292. package/src/load/diagnostics.ts +154 -0
  293. package/src/load/discover.ts +471 -0
  294. package/src/{emit-map.ts → load/emit-map.ts} +1 -1
  295. package/src/load/expected-module.ts +194 -0
  296. package/src/load/load.ts +73 -0
  297. package/src/load/module-lookup.ts +50 -0
  298. package/src/load/package-scope.ts +74 -0
  299. package/src/load/plan.ts +513 -0
  300. package/src/load/specifiers.ts +171 -0
  301. package/src/load/synthesize.ts +230 -0
  302. package/src/load/test-globals.ts +251 -0
  303. package/src/load/test-joins.ts +98 -0
  304. package/src/{workspace-manifests.ts → load/workspace-manifests.ts} +5 -5
  305. package/src/{workspace-programs.ts → load/workspace-programs.ts} +128 -85
  306. package/src/{workspace-resolution.ts → load/workspace-resolution.ts} +41 -77
  307. package/src/{workspace-run.ts → load/workspace-run.ts} +18 -16
  308. package/src/{workspace.ts → load/workspace.ts} +90 -134
  309. package/src/module-declarations.ts +74 -98
  310. package/src/overrides.ts +162 -134
  311. package/src/partial.ts +3 -2
  312. package/src/paths.ts +92 -16
  313. package/src/platform-calls.ts +119 -0
  314. package/src/platform-symbols.ts +189 -0
  315. package/src/position.ts +44 -1
  316. package/src/print.ts +12 -92
  317. package/src/product.ts +18 -0
  318. package/src/query.ts +201 -10
  319. package/src/ref.ts +12 -20
  320. package/src/references/read-rule.ts +60 -0
  321. package/src/references/read-rules.ts +55 -0
  322. package/src/references/sink.ts +314 -0
  323. package/src/references/sources.ts +632 -0
  324. package/src/references.ts +187 -1450
  325. package/src/report-schema.ts +68 -0
  326. package/src/report.ts +103 -226
  327. package/src/reporters/annotations.ts +22 -11
  328. package/src/reporters/json.ts +1 -1
  329. package/src/reporters/reporter.ts +2 -4
  330. package/src/reporters/reporters.ts +1 -1
  331. package/src/reporters/sarif.ts +29 -16
  332. package/src/reporters/template.ts +4 -20
  333. package/src/reporters/text.ts +3 -3
  334. package/src/resolve.ts +284 -1115
  335. package/src/{configured-declarations.ts → roots/configured-declarations.ts} +26 -29
  336. package/src/{entry-point-gaps.ts → roots/entry-point-gaps.ts} +7 -16
  337. package/src/roots/manifest.ts +303 -0
  338. package/src/roots/published-reach.ts +486 -0
  339. package/src/{roots.ts → roots/root-set.ts} +286 -469
  340. package/src/roots/unseen-loads.ts +345 -0
  341. package/src/run.ts +75 -91
  342. package/src/schema.ts +391 -388
  343. package/src/scope.ts +46 -138
  344. package/src/session.ts +87 -55
  345. package/src/source-files.ts +6 -11
  346. package/src/stores.ts +15 -3
  347. package/src/suppress-file.ts +24 -33
  348. package/src/suppress-inline.ts +55 -91
  349. package/src/suppress.ts +78 -79
  350. package/src/symbol-keys.ts +104 -107
  351. package/src/tests/file-class.ts +135 -0
  352. package/src/{outside-tests.ts → tests/outside.ts} +16 -10
  353. package/src/{test-support.ts → tests/support.ts} +15 -21
  354. package/src/text/compare.ts +27 -0
  355. package/src/text/glob.ts +210 -0
  356. package/src/text/named-files.ts +388 -0
  357. package/src/text/yaml.ts +747 -0
  358. package/src/type-errors.ts +18 -288
  359. package/src/type-parameter-reads.ts +187 -158
  360. package/src/unimplemented-callees.ts +297 -280
  361. package/src/unwrap.ts +34 -0
  362. package/src/usage.ts +10 -0
  363. package/src/vendor/unbash/LICENSE +15 -0
  364. package/src/vendor/unbash/VENDORED.md +16 -0
  365. package/src/vendor/unbash/ansi-c.ts +132 -0
  366. package/src/vendor/unbash/arithmetic-parts.ts +53 -0
  367. package/src/vendor/unbash/arithmetic.ts +641 -0
  368. package/src/vendor/unbash/assignment.ts +163 -0
  369. package/src/vendor/unbash/chars.ts +48 -0
  370. package/src/vendor/unbash/command.ts +47 -0
  371. package/src/vendor/unbash/expansion.ts +144 -0
  372. package/src/vendor/unbash/glob.ts +284 -0
  373. package/src/vendor/unbash/heredoc.ts +34 -0
  374. package/src/vendor/unbash/internal-types.ts +94 -0
  375. package/src/vendor/unbash/lexer.ts +4352 -0
  376. package/src/vendor/unbash/limits.ts +3 -0
  377. package/src/vendor/unbash/parser.ts +1612 -0
  378. package/src/vendor/unbash/parts.ts +96 -0
  379. package/src/vendor/unbash/substitution-context.ts +20 -0
  380. package/src/vendor/unbash/traversal.ts +182 -0
  381. package/src/vendor/unbash/types.ts +660 -0
  382. package/src/vendor/unbash/word-value.ts +64 -0
  383. package/src/vendor/unbash/word.ts +50 -0
  384. package/src/verbs/analyze.ts +255 -164
  385. package/src/verbs/describe.ts +19 -17
  386. package/src/verbs/explain.ts +93 -169
  387. package/src/verbs/print-config.ts +2 -1
  388. package/src/verbs/print-projects.ts +6 -4
  389. package/src/verbs/print-retained.ts +36 -6
  390. package/src/verbs/print-roots.ts +4 -2
  391. package/src/verbs/verb.ts +2 -8
  392. package/src/verbs/version.ts +15 -3
  393. package/dist/src/base-url.js +0 -18
  394. package/dist/src/calls.js +0 -155
  395. package/dist/src/conventions.js +0 -937
  396. package/dist/src/discover.js +0 -468
  397. package/dist/src/entry-points.js +0 -529
  398. package/dist/src/exempt-classes.js +0 -75
  399. package/dist/src/exempt.js +0 -209
  400. package/dist/src/generated-file.js +0 -95
  401. package/dist/src/glob.js +0 -65
  402. package/dist/src/manifest.js +0 -165
  403. package/dist/src/matrix.js +0 -246
  404. package/dist/src/pnpm-workspace.js +0 -120
  405. package/dist/src/roots.js +0 -672
  406. package/dist/src/serialization-contract.js +0 -611
  407. package/dist/src/setup-failure.js +0 -23
  408. package/dist/src/sweep.js +0 -224
  409. package/dist/src/test-joins.js +0 -101
  410. package/dist/src/value-flow.js +0 -74
  411. package/dist/src/version.js +0 -7
  412. package/dist/src/workflow-steps.js +0 -185
  413. package/src/base-url.ts +0 -24
  414. package/src/calls.ts +0 -225
  415. package/src/decorator.ts +0 -78
  416. package/src/discover.ts +0 -653
  417. package/src/entry-points.ts +0 -687
  418. package/src/exempt-classes.ts +0 -123
  419. package/src/exempt.ts +0 -323
  420. package/src/generated-file.ts +0 -111
  421. package/src/glob.ts +0 -67
  422. package/src/manifest.ts +0 -234
  423. package/src/matrix.ts +0 -423
  424. package/src/pnpm-workspace.ts +0 -135
  425. package/src/serialization-contract.ts +0 -849
  426. package/src/setup-failure.ts +0 -39
  427. package/src/sweep.ts +0 -347
  428. package/src/test-joins.ts +0 -120
  429. package/src/value-flow.ts +0 -104
  430. package/src/version.ts +0 -7
  431. package/src/workflow-steps.ts +0 -216
@@ -6,12 +6,14 @@
6
6
  * enabling package. A glob may hold `<id>` placeholders, each standing for the
7
7
  * directory one of the row's moves resolves to.
8
8
  */
9
+ import { braced, MODULE_EXTENSIONS } from "../extensions.js";
10
+ import { AVA_6, AVA_8, JEST_29, JEST_30, MOCHA_10, MOCHA_12, } from "./test-runners.js";
9
11
  const SCRIPT = "{js,jsx,ts,tsx}";
10
12
  const MODULE = "{js,mjs,ts,mts}";
11
- const ANY_MODULE = "{js,mjs,cjs,ts,mts,cts}";
13
+ const ANY_MODULE = braced(MODULE_EXTENSIONS);
12
14
  const VITE_CONFIG = `vite.config.${ANY_MODULE}`;
13
- /** The legacy configuration files of ESLint that hold JSON or a CommonJS module. */
14
- const ESLINTRC = [".eslintrc", ".eslintrc.json", ".eslintrc.{js,cjs}"];
15
+ /** The legacy configuration files of ESLint: JSON, YAML or a CommonJS module. */
16
+ const ESLINTRC = [".eslintrc", ".eslintrc.json", ".eslintrc.{yml,yaml}", ".eslintrc.{js,cjs}"];
15
17
  const SVELTEKIT_ROUTE_FILES = "+{page,layout,server,page.server,layout.server,error}";
16
18
  /** SvelteKit's entries other than its parameter matchers. */
17
19
  const SVELTEKIT_ENTRIES = [
@@ -47,6 +49,57 @@ const VITEST_CONFIG = `{vitest,vite}.config.${ANY_MODULE}`;
47
49
  * (https://vitest.dev/config/setupfiles, https://vitest.dev/config/globalsetup).
48
50
  */
49
51
  const VITEST_ROOTS = ["test.root", "root"];
52
+ /** The members of a Vitest configuration's `test` object that name setup files. */
53
+ const VITEST_SETUP = ["setupFiles", "globalSetup"];
54
+ /** Vitest's workspace files, which Vitest 4 no longer reads (https://vitest.dev/guide/workspace). */
55
+ const VITEST_WORKSPACE = `{vitest.workspace,vitest.projects}.${ANY_MODULE}`;
56
+ /**
57
+ * The Vitest row over one range: its configuration's setup files, those of each inline
58
+ * project of `test.projects`, and, where `workspace`, the workspace file with the setup
59
+ * files of each inline project it lists.
60
+ */
61
+ function vitestRow(range, workspace) {
62
+ const inline = (each, files) => VITEST_SETUP.map((member) => ({
63
+ property: `${each}.test.${member}`,
64
+ files: [files],
65
+ roots: VITEST_ROOTS,
66
+ }));
67
+ return {
68
+ name: "vitest",
69
+ package: "vitest",
70
+ range,
71
+ entries: [
72
+ `**/{vitest,vite}.config.${ANY_MODULE}`,
73
+ `**/{vitest,vite}.config.*.${ANY_MODULE}`,
74
+ `**/{vitest,vite}.*.config.${ANY_MODULE}`,
75
+ ...(workspace ? [VITEST_WORKSPACE] : []),
76
+ ],
77
+ moves: [],
78
+ shortNames: [
79
+ {
80
+ property: "test.coverage.provider",
81
+ files: [VITEST_CONFIG],
82
+ package: "@vitest/coverage-{}",
83
+ },
84
+ ],
85
+ selections: [
86
+ { property: "test.coverage.include", files: [VITEST_CONFIG] },
87
+ { property: "test.coverage.exclude", files: [VITEST_CONFIG] },
88
+ ],
89
+ testFiles: [
90
+ ...VITEST_SETUP.map((member) => ({
91
+ property: `test.${member}`,
92
+ files: [VITEST_CONFIG],
93
+ roots: VITEST_ROOTS,
94
+ })),
95
+ ...inline("test.projects.*", VITEST_CONFIG),
96
+ ...(workspace ? inline("*", VITEST_WORKSPACE) : []),
97
+ ],
98
+ };
99
+ }
100
+ const PLAYWRIGHT_CONFIG = `playwright.config.${ANY_MODULE}`;
101
+ /** Playwright's own test-file pattern (https://playwright.dev/docs/api/class-testconfig#test-config-test-match). */
102
+ const PLAYWRIGHT_TEST_MATCH = "**/*.{spec,test}.{js,ts,jsx,tsx,cjs,cts,cjsx,ctsx,mjs,mts,mjsx,mtsx}";
50
103
  /** The entry files of an Angular CLI project, at the workspace root or below `projects`. */
51
104
  const ANGULAR_ENTRIES = [
52
105
  "src/{main,main.server,server,polyfills,test}.ts",
@@ -61,6 +114,27 @@ const ANGULAR_PACKAGE_KEYS = [
61
114
  "styles",
62
115
  "scripts",
63
116
  ].map((key) => ({ key, files: ["angular.json"] }));
117
+ /**
118
+ * The row of a code generator that writes its output below one directory its
119
+ * configuration's `property` sets, `fallback` where no configuration file sets it, so
120
+ * every file there is a generated file.
121
+ */
122
+ function outputDirectoryRow(row) {
123
+ return {
124
+ name: row.name,
125
+ package: row.package,
126
+ range: row.range,
127
+ entries: [],
128
+ generated: ["<output>"],
129
+ moves: [
130
+ {
131
+ id: "output",
132
+ defaults: [row.fallback],
133
+ readings: [{ property: row.property, files: row.files }],
134
+ },
135
+ ],
136
+ };
137
+ }
64
138
  /**
65
139
  * The test runners and the assertion, mock and runner libraries whose import is test
66
140
  * evidence beside each runner a row reads test files for. Each applies whether or not a
@@ -104,6 +178,7 @@ export const CONVENTION_ROWS = [
104
178
  },
105
179
  {
106
180
  name: "astro",
181
+ bundles: true,
107
182
  package: "astro",
108
183
  range: ">=5.0.0 <8.0.0",
109
184
  entries: [
@@ -123,6 +198,22 @@ export const CONVENTION_ROWS = [
123
198
  },
124
199
  ],
125
200
  },
201
+ {
202
+ name: "ava",
203
+ package: "ava",
204
+ range: ">=6.0.0 <8.0.0",
205
+ entries: [],
206
+ moves: [],
207
+ testRunner: AVA_6,
208
+ },
209
+ {
210
+ name: "ava",
211
+ package: "ava",
212
+ range: ">=8.0.0 <9.0.0",
213
+ entries: [],
214
+ moves: [],
215
+ testRunner: AVA_8,
216
+ },
126
217
  {
127
218
  name: "babel",
128
219
  package: "@babel/core",
@@ -149,6 +240,7 @@ export const CONVENTION_ROWS = [
149
240
  range: ">=4.0.0 <10.0.0",
150
241
  entries: [],
151
242
  moves: [],
243
+ packageKeys: [{ key: "parser", files: ESLINTRC }],
152
244
  prefixedNames: [
153
245
  { property: "plugins", files: ESLINTRC, prefix: "eslint-plugin" },
154
246
  { property: "extends", files: ESLINTRC, prefix: "eslint-plugin", marker: "plugin:" },
@@ -172,12 +264,45 @@ export const CONVENTION_ROWS = [
172
264
  {
173
265
  name: "expo-router",
174
266
  package: "expo-router",
175
- range: ">=3.0.0 <58.0.0",
267
+ range: ">=3.0.0 <59.0.0",
176
268
  entries: [`{,src/}app/**/*.${SCRIPT}`],
177
269
  moves: [],
178
270
  },
271
+ {
272
+ name: "jest",
273
+ package: "jest",
274
+ range: ">=29.0.0 <30.0.0",
275
+ entries: [],
276
+ moves: [],
277
+ testRunner: JEST_29,
278
+ },
279
+ {
280
+ name: "jest",
281
+ package: "jest",
282
+ range: ">=30.0.0 <31.0.0",
283
+ entries: [],
284
+ moves: [],
285
+ testRunner: JEST_30,
286
+ },
287
+ {
288
+ name: "mocha",
289
+ package: "mocha",
290
+ range: ">=10.0.0 <12.0.0",
291
+ entries: [],
292
+ moves: [],
293
+ testRunner: MOCHA_10,
294
+ },
295
+ {
296
+ name: "mocha",
297
+ package: "mocha",
298
+ range: ">=12.0.0 <13.0.0",
299
+ entries: [],
300
+ moves: [],
301
+ testRunner: MOCHA_12,
302
+ },
179
303
  {
180
304
  name: "next",
305
+ bundles: true,
181
306
  package: "next",
182
307
  range: ">=13.4.0 <17.0.0",
183
308
  generated: [".next"],
@@ -195,6 +320,7 @@ export const CONVENTION_ROWS = [
195
320
  },
196
321
  {
197
322
  name: "nuxt",
323
+ bundles: true,
198
324
  package: "nuxt",
199
325
  range: ">=3.0.0 <5.0.0",
200
326
  generated: [".nuxt"],
@@ -264,8 +390,17 @@ export const CONVENTION_ROWS = [
264
390
  { key: "oclif.hooks", directory: false },
265
391
  ],
266
392
  },
393
+ outputDirectoryRow({
394
+ name: "panda",
395
+ package: "@pandacss/dev",
396
+ range: ">=0.1.0 <2.0.0",
397
+ files: [`panda.config.${ANY_MODULE}`],
398
+ property: "outdir",
399
+ fallback: "styled-system",
400
+ }),
267
401
  {
268
402
  name: "parcel",
403
+ bundles: true,
269
404
  package: "parcel",
270
405
  range: ">=2.0.0 <3.0.0",
271
406
  entries: [],
@@ -275,6 +410,22 @@ export const CONVENTION_ROWS = [
275
410
  { key: "targets.*.source", directory: false },
276
411
  ],
277
412
  },
413
+ {
414
+ name: "playwright",
415
+ package: "@playwright/test",
416
+ range: ">=1.0.0 <2.0.0",
417
+ entries: [PLAYWRIGHT_CONFIG],
418
+ moves: [],
419
+ testDirectories: [
420
+ {
421
+ files: [PLAYWRIGHT_CONFIG],
422
+ directory: "testDir",
423
+ match: "testMatch",
424
+ defaultMatch: PLAYWRIGHT_TEST_MATCH,
425
+ projects: "projects",
426
+ },
427
+ ],
428
+ },
278
429
  {
279
430
  name: "prettier",
280
431
  package: "prettier",
@@ -331,6 +482,13 @@ export const CONVENTION_ROWS = [
331
482
  },
332
483
  ],
333
484
  },
485
+ {
486
+ name: "react-scripts",
487
+ package: "react-scripts",
488
+ range: ">=1.0.0 <6.0.0",
489
+ entries: [`src/index.${SCRIPT}`, "src/setupProxy.js", `src/setupTests.${SCRIPT}`],
490
+ moves: [],
491
+ },
334
492
  {
335
493
  name: "remix",
336
494
  package: "@remix-run/dev",
@@ -358,6 +516,7 @@ export const CONVENTION_ROWS = [
358
516
  },
359
517
  {
360
518
  name: "rolldown",
519
+ bundles: true,
361
520
  package: "rolldown",
362
521
  range: ">=1.0.0 <2.0.0",
363
522
  entries: [],
@@ -403,6 +562,7 @@ export const CONVENTION_ROWS = [
403
562
  },
404
563
  {
405
564
  name: "storybook",
565
+ bundles: true,
406
566
  package: "storybook",
407
567
  range: ">=7.0.0 <11.0.0",
408
568
  entries: [
@@ -436,6 +596,7 @@ export const CONVENTION_ROWS = [
436
596
  },
437
597
  {
438
598
  name: "sveltekit",
599
+ bundles: true,
439
600
  package: "@sveltejs/kit",
440
601
  range: ">=2.0.0 <3.0.0",
441
602
  entries: [...SVELTEKIT_ENTRIES, "<params>/*.{js,ts}"],
@@ -501,6 +662,7 @@ export const CONVENTION_ROWS = [
501
662
  },
502
663
  {
503
664
  name: "sveltekit",
665
+ bundles: true,
504
666
  package: "@sveltejs/kit",
505
667
  range: ">=3.0.0 <4.0.0",
506
668
  entries: [...SVELTEKIT_ENTRIES, "<params>.{js,ts}"],
@@ -593,6 +755,7 @@ export const CONVENTION_ROWS = [
593
755
  },
594
756
  {
595
757
  name: "vite",
758
+ bundles: true,
596
759
  package: "vite",
597
760
  range: ">=8.0.0 <9.0.0",
598
761
  entries: [],
@@ -608,6 +771,7 @@ export const CONVENTION_ROWS = [
608
771
  },
609
772
  {
610
773
  name: "vitepress",
774
+ bundles: true,
611
775
  package: "vitepress",
612
776
  range: ">=1.0.0 <2.0.0-0 || >=2.0.0-alpha.0 <3.0.0",
613
777
  entries: [
@@ -618,30 +782,6 @@ export const CONVENTION_ROWS = [
618
782
  ],
619
783
  moves: [],
620
784
  },
621
- {
622
- name: "vitest",
623
- package: "vitest",
624
- range: ">=3.2.0 <6.0.0",
625
- entries: [
626
- `**/{vitest,vite}.config.${ANY_MODULE}`,
627
- `**/{vitest,vite}.config.*.${ANY_MODULE}`,
628
- `**/{vitest,vite}.*.config.${ANY_MODULE}`,
629
- ],
630
- moves: [],
631
- shortNames: [
632
- {
633
- property: "test.coverage.provider",
634
- files: [VITEST_CONFIG],
635
- package: "@vitest/coverage-{}",
636
- },
637
- ],
638
- selections: [
639
- { property: "test.coverage.include", files: [VITEST_CONFIG] },
640
- { property: "test.coverage.exclude", files: [VITEST_CONFIG] },
641
- ],
642
- testFiles: [
643
- { property: "test.setupFiles", files: [VITEST_CONFIG], roots: VITEST_ROOTS },
644
- { property: "test.globalSetup", files: [VITEST_CONFIG], roots: VITEST_ROOTS },
645
- ],
646
- },
785
+ vitestRow(">=3.2.0 <4.0.0", true),
786
+ vitestRow(">=4.0.0 <6.0.0", false),
647
787
  ];