@cplieger/deadset-ts 7.2.0-dev.4 → 8.0.0-dev.10

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 (288) hide show
  1. package/README.md +1 -1
  2. package/dist/bin/mapper-connection.js +2 -1
  3. package/dist/bin/node-host.js +24 -5
  4. package/dist/src/analysis.js +245 -309
  5. package/dist/src/augmentations.js +124 -18
  6. package/dist/src/automatic-types.js +170 -0
  7. package/dist/src/build-scripts.js +425 -0
  8. package/dist/src/component-layer.js +4 -2
  9. package/dist/src/components.js +9 -9
  10. package/dist/src/config.js +6 -81
  11. package/dist/src/configuration-files.js +78 -188
  12. package/dist/src/configured-declarations.js +15 -20
  13. package/dist/src/conformance-record.js +2 -2
  14. package/dist/src/consumers.js +3 -30
  15. package/dist/src/contextual-uses.js +56 -9
  16. package/dist/src/contract/config.generated.js +558 -0
  17. package/dist/src/contract/contract.generated.js +1244 -0
  18. package/dist/src/contract/report.generated.js +862 -0
  19. package/dist/src/convention-rows.js +146 -1
  20. package/dist/src/conventions.js +136 -70
  21. package/dist/src/decorator.js +21 -18
  22. package/dist/src/dependencies.js +280 -62
  23. package/dist/src/edges.js +38 -122
  24. package/dist/src/element-access.js +4 -6
  25. package/dist/src/entry-point-gaps.js +9 -18
  26. package/dist/src/entry-points.js +106 -21
  27. package/dist/src/enum-group.js +3 -10
  28. package/dist/src/erased-stores.js +4 -6
  29. package/dist/src/exempt-classes.js +1 -63
  30. package/dist/src/exempt.js +21 -40
  31. package/dist/src/failure.js +36 -0
  32. package/dist/src/file-facts.js +2 -25
  33. package/dist/src/findings/completion.js +225 -63
  34. package/dist/src/findings/dependencies-and-module-machinery.js +72 -27
  35. package/dist/src/findings/emitters.js +6 -6
  36. package/dist/src/findings/interfaces.js +4 -5
  37. package/dist/src/findings/intra-function.js +53 -19
  38. package/dist/src/findings/non-code-artifacts.js +71 -39
  39. package/dist/src/findings/reads-and-writes.js +16 -13
  40. package/dist/src/findings/self-check.js +10 -12
  41. package/dist/src/findings/unused-declarations.js +57 -28
  42. package/dist/src/findings/visibility-narrowing.js +40 -18
  43. package/dist/src/findings-pass.js +8 -15
  44. package/dist/src/framework-lifecycle.js +7 -7
  45. package/dist/src/fs/document.js +52 -0
  46. package/dist/src/fs/manifest.js +72 -0
  47. package/dist/src/fs/tree.js +88 -0
  48. package/dist/src/generated-file.js +18 -4
  49. package/dist/src/git-ignore.js +99 -0
  50. package/dist/src/graph.js +9 -4
  51. package/dist/src/html-entries.js +6 -33
  52. package/dist/src/import-bindings.js +97 -0
  53. package/dist/src/in-operands.js +2 -1
  54. package/dist/src/index.js +1 -1
  55. package/dist/src/indexed-access.js +130 -28
  56. package/dist/src/injection-container.js +1 -1
  57. package/dist/src/interface-satisfaction.js +30 -12
  58. package/dist/src/intra-function-parts.js +341 -69
  59. package/dist/src/inventory.js +54 -29
  60. package/dist/src/javascript-file.js +33 -0
  61. package/dist/src/json-document.js +198 -67
  62. package/dist/src/keyof-comparisons.js +4 -6
  63. package/dist/src/kinds.js +3 -366
  64. package/dist/src/load/classify.js +270 -0
  65. package/dist/src/load/diagnostics.js +80 -0
  66. package/dist/src/load/discover.js +277 -0
  67. package/dist/src/{emit-map.js → load/emit-map.js} +1 -1
  68. package/dist/src/load/expected-module.js +136 -0
  69. package/dist/src/load/load.js +27 -0
  70. package/dist/src/load/module-lookup.js +37 -0
  71. package/dist/src/load/plan.js +313 -0
  72. package/dist/src/load/specifiers.js +115 -0
  73. package/dist/src/load/synthesize.js +140 -0
  74. package/dist/src/load/test-globals.js +207 -0
  75. package/dist/src/load/test-joins.js +82 -0
  76. package/dist/src/{workspace-manifests.js → load/workspace-manifests.js} +4 -4
  77. package/dist/src/{workspace-programs.js → load/workspace-programs.js} +88 -61
  78. package/dist/src/{workspace-resolution.js → load/workspace-resolution.js} +60 -59
  79. package/dist/src/{workspace-run.js → load/workspace-run.js} +7 -7
  80. package/dist/src/{workspace.js → load/workspace.js} +62 -124
  81. package/dist/src/manifest.js +49 -54
  82. package/dist/src/matrix.js +94 -13
  83. package/dist/src/mdx-entries.js +174 -0
  84. package/dist/src/module-declarations.js +9 -13
  85. package/dist/src/outside-tests.js +1 -1
  86. package/dist/src/overrides.js +41 -10
  87. package/dist/src/partial.js +2 -1
  88. package/dist/src/paths.js +26 -15
  89. package/dist/src/position.js +2 -1
  90. package/dist/src/print.js +11 -78
  91. package/dist/src/product.js +13 -0
  92. package/dist/src/query.js +1 -0
  93. package/dist/src/ref.js +11 -0
  94. package/dist/src/references.js +52 -31
  95. package/dist/src/report-schema.js +51 -0
  96. package/dist/src/report.js +59 -41
  97. package/dist/src/reporters/annotations.js +15 -8
  98. package/dist/src/reporters/sarif.js +16 -10
  99. package/dist/src/reporters/template.js +4 -19
  100. package/dist/src/resolve.js +245 -727
  101. package/dist/src/roots.js +374 -116
  102. package/dist/src/run.js +66 -77
  103. package/dist/src/schema.js +320 -342
  104. package/dist/src/scope.js +38 -115
  105. package/dist/src/serialization-contract.js +649 -29
  106. package/dist/src/session.js +41 -29
  107. package/dist/src/source-files.js +40 -15
  108. package/dist/src/suppress-file.js +34 -29
  109. package/dist/src/suppress-inline.js +21 -4
  110. package/dist/src/suppress.js +40 -56
  111. package/dist/src/sweep.js +32 -17
  112. package/dist/src/symbol-keys.js +105 -6
  113. package/dist/src/template-field.js +9 -19
  114. package/dist/src/test-support.js +119 -18
  115. package/dist/src/text/compare.js +26 -0
  116. package/dist/src/text/glob.js +194 -0
  117. package/dist/src/text/named-files.js +54 -0
  118. package/dist/src/text/shell.js +159 -0
  119. package/dist/src/text/yaml.js +393 -0
  120. package/dist/src/type-errors.js +27 -221
  121. package/dist/src/type-parameter-reads.js +172 -0
  122. package/dist/src/unseen-loads.js +100 -0
  123. package/dist/src/unwrap.js +23 -0
  124. package/dist/src/usage.js +10 -0
  125. package/dist/src/verbs/analyze.js +181 -125
  126. package/dist/src/verbs/describe.js +9 -16
  127. package/dist/src/verbs/explain.js +14 -9
  128. package/dist/src/verbs/print-config.js +2 -1
  129. package/dist/src/verbs/print-projects.js +6 -4
  130. package/dist/src/verbs/print-retained.js +4 -2
  131. package/dist/src/verbs/print-roots.js +4 -2
  132. package/dist/src/verbs/verb.js +1 -5
  133. package/dist/src/verbs/version.js +14 -3
  134. package/dist/src/workflow-steps.js +128 -33
  135. package/jsr.json +1 -1
  136. package/package.json +5 -4
  137. package/src/analysis.ts +333 -457
  138. package/src/augmentations.ts +152 -23
  139. package/src/automatic-types.ts +228 -0
  140. package/src/build-scripts.ts +543 -0
  141. package/src/component-layer.ts +4 -2
  142. package/src/components.ts +9 -10
  143. package/src/config.ts +31 -299
  144. package/src/configuration-files.ts +100 -191
  145. package/src/configured-declarations.ts +18 -23
  146. package/src/conformance-record.ts +2 -2
  147. package/src/consumers.ts +6 -57
  148. package/src/contextual-uses.ts +64 -12
  149. package/src/contract/config.generated.ts +818 -0
  150. package/src/contract/contract.generated.ts +1308 -0
  151. package/src/contract/report.generated.ts +1237 -0
  152. package/src/convention-rows.ts +186 -1
  153. package/src/conventions.ts +166 -90
  154. package/src/decorator.ts +28 -18
  155. package/src/dependencies.ts +356 -78
  156. package/src/edges.ts +41 -140
  157. package/src/element-access.ts +4 -7
  158. package/src/entry-point-gaps.ts +11 -20
  159. package/src/entry-points.ts +124 -28
  160. package/src/enum-group.ts +2 -11
  161. package/src/erased-stores.ts +3 -7
  162. package/src/exempt-classes.ts +1 -75
  163. package/src/exempt.ts +36 -50
  164. package/src/failure.ts +63 -0
  165. package/src/file-facts.ts +9 -24
  166. package/src/finding.ts +24 -9
  167. package/src/findings/boundary.ts +2 -0
  168. package/src/findings/completion.ts +297 -77
  169. package/src/findings/dependencies-and-module-machinery.ts +90 -31
  170. package/src/findings/emitter.ts +8 -9
  171. package/src/findings/emitters.ts +8 -8
  172. package/src/findings/interfaces.ts +4 -6
  173. package/src/findings/intra-function.ts +64 -20
  174. package/src/findings/non-code-artifacts.ts +88 -50
  175. package/src/findings/reads-and-writes.ts +20 -16
  176. package/src/findings/self-check.ts +11 -17
  177. package/src/findings/unused-declarations.ts +65 -28
  178. package/src/findings/visibility-narrowing.ts +51 -19
  179. package/src/findings-pass.ts +10 -19
  180. package/src/framework-lifecycle.ts +7 -7
  181. package/src/fs/document.ts +70 -0
  182. package/src/fs/manifest.ts +92 -0
  183. package/src/fs/tree.ts +110 -0
  184. package/src/generated-file.ts +23 -4
  185. package/src/git-ignore.ts +122 -0
  186. package/src/graph.ts +11 -3
  187. package/src/host.ts +17 -14
  188. package/src/html-entries.ts +6 -33
  189. package/src/import-bindings.ts +128 -0
  190. package/src/in-operands.ts +2 -1
  191. package/src/index.ts +1 -1
  192. package/src/indexed-access.ts +152 -30
  193. package/src/injection-container.ts +1 -1
  194. package/src/interface-satisfaction.ts +33 -13
  195. package/src/intra-function-parts.ts +449 -85
  196. package/src/inventory.ts +73 -27
  197. package/src/javascript-file.ts +37 -0
  198. package/src/json-document.ts +241 -76
  199. package/src/keyof-comparisons.ts +3 -7
  200. package/src/kinds.ts +5 -413
  201. package/src/load/classify.ts +397 -0
  202. package/src/load/diagnostics.ts +144 -0
  203. package/src/load/discover.ts +455 -0
  204. package/src/{emit-map.ts → load/emit-map.ts} +1 -1
  205. package/src/load/expected-module.ts +188 -0
  206. package/src/load/load.ts +73 -0
  207. package/src/load/module-lookup.ts +50 -0
  208. package/src/load/plan.ts +504 -0
  209. package/src/load/specifiers.ts +168 -0
  210. package/src/load/synthesize.ts +211 -0
  211. package/src/load/test-globals.ts +251 -0
  212. package/src/load/test-joins.ts +98 -0
  213. package/src/{workspace-manifests.ts → load/workspace-manifests.ts} +5 -5
  214. package/src/{workspace-programs.ts → load/workspace-programs.ts} +127 -80
  215. package/src/{workspace-resolution.ts → load/workspace-resolution.ts} +73 -64
  216. package/src/{workspace-run.ts → load/workspace-run.ts} +18 -16
  217. package/src/{workspace.ts → load/workspace.ts} +90 -134
  218. package/src/manifest.ts +81 -75
  219. package/src/matrix.ts +154 -18
  220. package/src/mdx-entries.ts +218 -0
  221. package/src/module-declarations.ts +11 -13
  222. package/src/outside-tests.ts +1 -1
  223. package/src/overrides.ts +51 -12
  224. package/src/partial.ts +3 -2
  225. package/src/paths.ts +27 -15
  226. package/src/position.ts +2 -1
  227. package/src/print.ts +12 -91
  228. package/src/product.ts +18 -0
  229. package/src/query.ts +11 -0
  230. package/src/ref.ts +13 -0
  231. package/src/references.ts +62 -32
  232. package/src/report-schema.ts +68 -0
  233. package/src/report.ts +105 -215
  234. package/src/reporters/annotations.ts +22 -11
  235. package/src/reporters/json.ts +1 -1
  236. package/src/reporters/reporter.ts +2 -4
  237. package/src/reporters/reporters.ts +1 -1
  238. package/src/reporters/sarif.ts +29 -16
  239. package/src/reporters/template.ts +4 -20
  240. package/src/reporters/text.ts +3 -3
  241. package/src/resolve.ts +283 -1111
  242. package/src/roots.ts +490 -137
  243. package/src/run.ts +75 -91
  244. package/src/schema.ts +391 -387
  245. package/src/scope.ts +46 -138
  246. package/src/serialization-contract.ts +818 -26
  247. package/src/session.ts +77 -54
  248. package/src/source-files.ts +67 -17
  249. package/src/suppress-file.ts +36 -34
  250. package/src/suppress-inline.ts +20 -3
  251. package/src/suppress.ts +52 -63
  252. package/src/sweep.ts +53 -18
  253. package/src/symbol-keys.ts +131 -7
  254. package/src/template-field.ts +15 -25
  255. package/src/test-support.ts +155 -18
  256. package/src/text/compare.ts +27 -0
  257. package/src/text/glob.ts +210 -0
  258. package/src/text/named-files.inputs.json +1522 -0
  259. package/src/text/named-files.ts +68 -0
  260. package/src/text/shell.ts +161 -0
  261. package/src/text/yaml.ts +423 -0
  262. package/src/type-errors.ts +35 -273
  263. package/src/type-parameter-reads.ts +227 -0
  264. package/src/unseen-loads.ts +134 -0
  265. package/src/unwrap.ts +34 -0
  266. package/src/usage.ts +10 -0
  267. package/src/verbs/analyze.ts +245 -161
  268. package/src/verbs/describe.ts +14 -15
  269. package/src/verbs/explain.ts +15 -13
  270. package/src/verbs/print-config.ts +2 -1
  271. package/src/verbs/print-projects.ts +6 -4
  272. package/src/verbs/print-retained.ts +4 -2
  273. package/src/verbs/print-roots.ts +4 -2
  274. package/src/verbs/verb.ts +2 -8
  275. package/src/verbs/version.ts +15 -3
  276. package/src/workflow-steps.ts +149 -34
  277. package/dist/src/discover.js +0 -347
  278. package/dist/src/glob.js +0 -65
  279. package/dist/src/pnpm-workspace.js +0 -120
  280. package/dist/src/setup-failure.js +0 -23
  281. package/dist/src/test-joins.js +0 -101
  282. package/dist/src/version.js +0 -7
  283. package/src/discover.ts +0 -510
  284. package/src/glob.ts +0 -67
  285. package/src/pnpm-workspace.ts +0 -135
  286. package/src/setup-failure.ts +0 -39
  287. package/src/test-joins.ts +0 -120
  288. package/src/version.ts +0 -7
@@ -31,6 +31,22 @@ export interface ShortNameReading extends MoveReading {
31
31
  readonly package: string;
32
32
  }
33
33
 
34
+ /**
35
+ * One configuration property whose values name packages by the tool's prefix convention:
36
+ * `x` stands for `<prefix>-x`, `@s` for `@s/<prefix>` and `@s/x` for `@s/<prefix>-x`, and
37
+ * a name already holding the prefix for itself.
38
+ */
39
+ export interface PrefixedNameReading extends MoveReading {
40
+ /** The prefix the convention puts before a short name. */
41
+ readonly prefix: string;
42
+ /**
43
+ * The text a value starts with to name a package, the name ending at its last `/`.
44
+ * Absent, every value without a `:` names one, the name ending at its first `/` past
45
+ * a scope.
46
+ */
47
+ readonly marker?: string;
48
+ }
49
+
34
50
  /**
35
51
  * One configuration property whose value makes the tool's output import a runtime helper
36
52
  * package, so the package is used where the property holds that value.
@@ -63,6 +79,14 @@ export interface TestFileReading extends MoveReading {
63
79
  readonly roots: readonly string[];
64
80
  }
65
81
 
82
+ /** One member of the declaring `package.json` whose strings name the tool's entries. */
83
+ export interface ManifestEntryKey {
84
+ /** The member's path through nested objects, its keys joined by `.`, a `*` key standing for every member. */
85
+ readonly key: string;
86
+ /** Whether each string names a directory of entries, or one entry, its extension optional. */
87
+ readonly directory: boolean;
88
+ }
89
+
66
90
  /** One directory a row's globs name that a configuration property moves. */
67
91
  export interface DirectoryMove {
68
92
  /** The placeholder the row's globs and later moves write as `<id>`. */
@@ -96,6 +120,8 @@ export interface ConventionRow {
96
120
  readonly moves: readonly DirectoryMove[];
97
121
  /** The properties that name a package the configuration uses by a short name. */
98
122
  readonly shortNames?: readonly ShortNameReading[];
123
+ /** The properties that name a package the configuration uses by its prefix convention. */
124
+ readonly prefixedNames?: readonly PrefixedNameReading[];
99
125
  /**
100
126
  * The properties whose value only selects files to test, mutate, cover or ignore, so a
101
127
  * string there names no file the tool runs or loads.
@@ -110,14 +136,20 @@ export interface ConventionRow {
110
136
  readonly packageKeys?: readonly PackageKey[];
111
137
  /** The members of a `package.json` the tool reads its configuration from. */
112
138
  readonly manifestKeys?: readonly string[];
139
+ /** The members of the declaring `package.json` whose strings name entries, as an entry glob does. */
140
+ readonly manifestEntries?: readonly ManifestEntryKey[];
113
141
  /** The settings that make the tool's output import a runtime helper package. */
114
142
  readonly helpers?: readonly HelperReading[];
143
+ /** Whether the tool bundles the package's modules, so it resolves them as a bundler does. */
144
+ readonly bundles?: true;
115
145
  }
116
146
 
117
147
  const SCRIPT = "{js,jsx,ts,tsx}";
118
148
  const MODULE = "{js,mjs,ts,mts}";
119
149
  const ANY_MODULE = "{js,mjs,cjs,ts,mts,cts}";
120
150
  const VITE_CONFIG = `vite.config.${ANY_MODULE}`;
151
+ /** The legacy configuration files of ESLint: JSON, YAML or a CommonJS module. */
152
+ const ESLINTRC = [".eslintrc", ".eslintrc.json", ".eslintrc.{yml,yaml}", ".eslintrc.{js,cjs}"];
121
153
 
122
154
  const SVELTEKIT_ROUTE_FILES = "+{page,layout,server,page.server,layout.server,error}";
123
155
 
@@ -179,6 +211,60 @@ const ANGULAR_PACKAGE_KEYS: readonly PackageKey[] = [
179
211
  "scripts",
180
212
  ].map((key) => ({ key, files: ["angular.json"] }));
181
213
 
214
+ /**
215
+ * The row of a code generator that writes its output below one directory its
216
+ * configuration's `property` sets, `fallback` where no configuration file sets it, so
217
+ * every file there is a generated file.
218
+ */
219
+ function outputDirectoryRow(row: {
220
+ readonly name: string;
221
+ readonly package: string;
222
+ readonly range: string;
223
+ readonly files: readonly string[];
224
+ readonly property: string;
225
+ readonly fallback: string;
226
+ }): ConventionRow {
227
+ return {
228
+ name: row.name,
229
+ package: row.package,
230
+ range: row.range,
231
+ entries: [],
232
+ generated: ["<output>"],
233
+ moves: [
234
+ {
235
+ id: "output",
236
+ defaults: [row.fallback],
237
+ readings: [{ property: row.property, files: row.files }],
238
+ },
239
+ ],
240
+ };
241
+ }
242
+
243
+ /**
244
+ * The test runners and the assertion, mock and runner libraries whose import is test
245
+ * evidence beside each runner a row reads test files for. Each applies whether or not a
246
+ * manifest declares it, so none is a row.
247
+ */
248
+ export const TEST_LIBRARIES: readonly string[] = [
249
+ "@jest/globals",
250
+ "@playwright/test",
251
+ "ava",
252
+ "chai",
253
+ "expect",
254
+ "jasmine",
255
+ "jest",
256
+ "mocha",
257
+ "msw",
258
+ "nock",
259
+ "node:test",
260
+ "sinon",
261
+ "tap",
262
+ "uvu",
263
+ ];
264
+
265
+ /** The scopes every package of which is a test library. */
266
+ export const TEST_LIBRARY_SCOPES: readonly string[] = ["@testing-library/"];
267
+
182
268
  /** Every row, ordered by name and then by range. */
183
269
  export const CONVENTION_ROWS: readonly ConventionRow[] = [
184
270
  {
@@ -199,6 +285,7 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
199
285
  },
200
286
  {
201
287
  name: "astro",
288
+ bundles: true,
202
289
  package: "astro",
203
290
  range: ">=5.0.0 <8.0.0",
204
291
  entries: [
@@ -231,6 +318,26 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
231
318
  package: "@babel/runtime",
232
319
  })),
233
320
  },
321
+ {
322
+ name: "docusaurus",
323
+ package: "@docusaurus/core",
324
+ range: ">=2.0.0 <4.0.0",
325
+ entries: [`src/pages/**/*.${SCRIPT}`, `src/theme/**/*.${SCRIPT}`],
326
+ moves: [],
327
+ },
328
+ {
329
+ name: "eslint",
330
+ package: "eslint",
331
+ range: ">=4.0.0 <10.0.0",
332
+ entries: [],
333
+ moves: [],
334
+ packageKeys: [{ key: "parser", files: ESLINTRC }],
335
+ prefixedNames: [
336
+ { property: "plugins", files: ESLINTRC, prefix: "eslint-plugin" },
337
+ { property: "extends", files: ESLINTRC, prefix: "eslint-plugin", marker: "plugin:" },
338
+ { property: "extends", files: ESLINTRC, prefix: "eslint-config" },
339
+ ],
340
+ },
234
341
  {
235
342
  name: "eslint",
236
343
  package: "eslint",
@@ -238,15 +345,23 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
238
345
  entries: [`**/eslint.config.${ANY_MODULE}`],
239
346
  moves: [],
240
347
  },
348
+ {
349
+ name: "expo",
350
+ package: "expo",
351
+ range: ">=44.0.0 <60.0.0",
352
+ entries: [`{index,App}.${SCRIPT}`],
353
+ moves: [],
354
+ },
241
355
  {
242
356
  name: "expo-router",
243
357
  package: "expo-router",
244
- range: ">=3.0.0 <58.0.0",
358
+ range: ">=3.0.0 <59.0.0",
245
359
  entries: [`{,src/}app/**/*.${SCRIPT}`],
246
360
  moves: [],
247
361
  },
248
362
  {
249
363
  name: "next",
364
+ bundles: true,
250
365
  package: "next",
251
366
  range: ">=13.4.0 <17.0.0",
252
367
  generated: [".next"],
@@ -264,6 +379,7 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
264
379
  },
265
380
  {
266
381
  name: "nuxt",
382
+ bundles: true,
267
383
  package: "nuxt",
268
384
  range: ">=3.0.0 <5.0.0",
269
385
  generated: [".nuxt"],
@@ -322,6 +438,37 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
322
438
  },
323
439
  ],
324
440
  },
441
+ {
442
+ name: "oclif",
443
+ package: "@oclif/core",
444
+ range: ">=1.0.0 <5.0.0",
445
+ entries: [`src/{commands,hooks}/**/*.${SCRIPT}`],
446
+ moves: [],
447
+ manifestEntries: [
448
+ { key: "oclif.commands", directory: true },
449
+ { key: "oclif.hooks", directory: false },
450
+ ],
451
+ },
452
+ outputDirectoryRow({
453
+ name: "panda",
454
+ package: "@pandacss/dev",
455
+ range: ">=0.1.0 <2.0.0",
456
+ files: [`panda.config.${ANY_MODULE}`],
457
+ property: "outdir",
458
+ fallback: "styled-system",
459
+ }),
460
+ {
461
+ name: "parcel",
462
+ bundles: true,
463
+ package: "parcel",
464
+ range: ">=2.0.0 <3.0.0",
465
+ entries: [],
466
+ moves: [],
467
+ manifestEntries: [
468
+ { key: "source", directory: false },
469
+ { key: "targets.*.source", directory: false },
470
+ ],
471
+ },
325
472
  {
326
473
  name: "prettier",
327
474
  package: "prettier",
@@ -378,6 +525,13 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
378
525
  },
379
526
  ],
380
527
  },
528
+ {
529
+ name: "react-scripts",
530
+ package: "react-scripts",
531
+ range: ">=1.0.0 <6.0.0",
532
+ entries: [`src/index.${SCRIPT}`, "src/setupProxy.js", `src/setupTests.${SCRIPT}`],
533
+ moves: [],
534
+ },
381
535
  {
382
536
  name: "remix",
383
537
  package: "@remix-run/dev",
@@ -405,6 +559,7 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
405
559
  },
406
560
  {
407
561
  name: "rolldown",
562
+ bundles: true,
408
563
  package: "rolldown",
409
564
  range: ">=1.0.0 <2.0.0",
410
565
  entries: [],
@@ -450,6 +605,7 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
450
605
  },
451
606
  {
452
607
  name: "storybook",
608
+ bundles: true,
453
609
  package: "storybook",
454
610
  range: ">=7.0.0 <11.0.0",
455
611
  entries: [
@@ -483,6 +639,7 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
483
639
  },
484
640
  {
485
641
  name: "sveltekit",
642
+ bundles: true,
486
643
  package: "@sveltejs/kit",
487
644
  range: ">=2.0.0 <3.0.0",
488
645
  entries: [...SVELTEKIT_ENTRIES, "<params>/*.{js,ts}"],
@@ -548,6 +705,7 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
548
705
  },
549
706
  {
550
707
  name: "sveltekit",
708
+ bundles: true,
551
709
  package: "@sveltejs/kit",
552
710
  range: ">=3.0.0 <4.0.0",
553
711
  entries: [...SVELTEKIT_ENTRIES, "<params>.{js,ts}"],
@@ -613,8 +771,34 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
613
771
  },
614
772
  ],
615
773
  },
774
+ {
775
+ name: "tanstack-router",
776
+ package: "@tanstack/router-plugin",
777
+ range: ">=1.0.0 <2.0.0",
778
+ entries: [`<routes>/**/*.${SCRIPT}`],
779
+ moves: [
780
+ {
781
+ id: "routes",
782
+ defaults: ["src/routes"],
783
+ readings: [
784
+ { property: "routesDirectory", files: ["tsr.config.json"] },
785
+ {
786
+ property: "routesDirectory",
787
+ files: [VITE_CONFIG],
788
+ call: { module: "@tanstack/router-plugin/vite", export: "tanstackRouter" },
789
+ },
790
+ {
791
+ property: "routesDirectory",
792
+ files: [VITE_CONFIG],
793
+ call: { module: "@tanstack/router-plugin/vite", export: "TanStackRouterVite" },
794
+ },
795
+ ],
796
+ },
797
+ ],
798
+ },
616
799
  {
617
800
  name: "vite",
801
+ bundles: true,
618
802
  package: "vite",
619
803
  range: ">=8.0.0 <9.0.0",
620
804
  entries: [],
@@ -630,6 +814,7 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
630
814
  },
631
815
  {
632
816
  name: "vitepress",
817
+ bundles: true,
633
818
  package: "vitepress",
634
819
  range: ">=1.0.0 <2.0.0-0 || >=2.0.0-alpha.0 <3.0.0",
635
820
  entries: [