@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.
- package/README.md +3 -1
- package/THIRD_PARTY_NOTICES.md +27 -0
- package/dist/bin/mapper-connection.js +2 -1
- package/dist/bin/node-host.js +24 -5
- package/dist/src/alias-chain.js +35 -9
- package/dist/src/amd.js +81 -0
- package/dist/src/analysis.js +274 -496
- package/dist/src/augmentations.js +64 -3
- package/dist/src/automatic-types.js +10 -29
- package/dist/src/bindings.js +382 -0
- package/dist/src/commands/held.js +499 -0
- package/dist/src/commands/read.js +161 -0
- package/dist/src/commands/shell.js +169 -0
- package/dist/src/commands/tools.js +1847 -0
- package/dist/src/component-files.js +3 -2
- package/dist/src/component-layer.js +4 -2
- package/dist/src/config.js +6 -82
- package/dist/src/conformance-record.js +2 -2
- package/dist/src/consumers.js +10 -38
- package/dist/src/contextual-uses.js +57 -26
- package/dist/src/contract/config.generated.js +561 -0
- package/dist/src/contract/contract.generated.js +1370 -0
- package/dist/src/contract/report.generated.js +866 -0
- package/dist/src/dependencies.js +165 -122
- package/dist/src/destructuring.js +1 -19
- package/dist/src/edges.js +38 -122
- package/dist/src/element-access.js +181 -168
- package/dist/src/entries/build-scripts.js +222 -0
- package/dist/src/{configuration-files.js → entries/configuration-files.js} +52 -256
- package/dist/src/{convention-rows.js → entries/convention-rows.js} +170 -30
- package/dist/src/entries/conventions.js +740 -0
- package/dist/src/{html-entries.js → entries/html-entries.js} +12 -42
- package/dist/src/{mdx-entries.js → entries/mdx-entries.js} +5 -28
- package/dist/src/entries/run-directories.js +77 -0
- package/dist/src/entries/sources.js +144 -0
- package/dist/src/entries/static-module.js +670 -0
- package/dist/src/entries/test-runners.js +650 -0
- package/dist/src/entries/workflow-steps.js +345 -0
- package/dist/src/exemptions/argument-places.js +131 -0
- package/dist/src/exemptions/calls.js +338 -0
- package/dist/src/exemptions/classes.js +13 -0
- package/dist/src/{decorator.js → exemptions/decorator.js} +19 -30
- package/dist/src/exemptions/detectors.js +48 -0
- package/dist/src/{enum-group.js → exemptions/enum-group.js} +9 -16
- package/dist/src/{erased-stores.js → exemptions/erased-stores.js} +7 -11
- package/dist/src/{framework-lifecycle.js → exemptions/framework-lifecycle.js} +76 -54
- package/dist/src/exemptions/generated-file.js +241 -0
- package/dist/src/{injection-container.js → exemptions/injection-container.js} +20 -26
- package/dist/src/exemptions/installed-globals.js +173 -0
- package/dist/src/{interface-satisfaction.js → exemptions/interface-satisfaction.js} +52 -121
- package/dist/src/exemptions/lifecycle.js +150 -0
- package/dist/src/{reflective-lookup.js → exemptions/reflective-lookup.js} +3 -3
- package/dist/src/exemptions/serialization-contract.js +1276 -0
- package/dist/src/exemptions/sites.js +182 -0
- package/dist/src/{template-field.js → exemptions/template-field.js} +13 -23
- package/dist/src/{value-reach.js → exemptions/value-reach.js} +14 -7
- package/dist/src/exposure.js +400 -0
- package/dist/src/extensions.js +37 -0
- package/dist/src/facts.js +38 -0
- package/dist/src/failure.js +36 -0
- package/dist/src/file-facts.js +3 -26
- package/dist/src/findings/completion.js +109 -56
- package/dist/src/findings/dependencies-and-module-machinery.js +4 -5
- package/dist/src/findings/emitters.js +27 -41
- package/dist/src/{implementations.js → findings/implementations.js} +3 -3
- package/dist/src/{in-operands.js → findings/in-operands.js} +3 -2
- package/dist/src/findings/interfaces.js +4 -5
- package/dist/src/findings/intra-function.js +16 -13
- package/dist/src/findings/non-code-artifacts.js +17 -12
- package/dist/src/findings/reads-and-writes.js +86 -27
- package/dist/src/findings/self-check.js +44 -30
- package/dist/src/findings/unused-declarations.js +29 -45
- package/dist/src/findings/visibility-narrowing.js +23 -31
- package/dist/src/findings-pass.js +13 -21
- package/dist/src/fs/document.js +52 -0
- package/dist/src/fs/manifest.js +67 -0
- package/dist/src/fs/tree.js +88 -0
- package/dist/src/git-ignore.js +39 -26
- package/dist/src/import-bindings.js +73 -28
- package/dist/src/index/sites.js +557 -0
- package/dist/src/index/values.js +124 -0
- package/dist/src/index.js +2 -2
- package/dist/src/indexed-access.js +523 -478
- package/dist/src/intra-function-parts.js +63 -43
- package/dist/src/inventory/commonjs.js +507 -0
- package/dist/src/inventory/enumerate.js +167 -0
- package/dist/src/inventory/syntax.js +236 -0
- package/dist/src/inventory.js +323 -724
- package/dist/src/javascript-file.js +48 -0
- package/dist/src/json-document.js +198 -67
- package/dist/src/keyof-comparisons.js +126 -107
- package/dist/src/kinds.js +3 -366
- package/dist/src/{components.js → liveness/components.js} +2 -3
- package/dist/src/{graph.js → liveness/graph.js} +52 -28
- package/dist/src/liveness/matrix.js +99 -0
- package/dist/src/liveness/sweep.js +558 -0
- package/dist/src/load/classify.js +289 -0
- package/dist/src/load/diagnostics.js +87 -0
- package/dist/src/load/discover.js +285 -0
- package/dist/src/{emit-map.js → load/emit-map.js} +1 -1
- package/dist/src/load/expected-module.js +136 -0
- package/dist/src/load/load.js +27 -0
- package/dist/src/load/module-lookup.js +37 -0
- package/dist/src/load/package-scope.js +56 -0
- package/dist/src/load/plan.js +313 -0
- package/dist/src/load/specifiers.js +113 -0
- package/dist/src/load/synthesize.js +152 -0
- package/dist/src/load/test-globals.js +207 -0
- package/dist/src/load/test-joins.js +82 -0
- package/dist/src/{workspace-manifests.js → load/workspace-manifests.js} +4 -4
- package/dist/src/{workspace-programs.js → load/workspace-programs.js} +89 -66
- package/dist/src/{workspace-resolution.js → load/workspace-resolution.js} +24 -66
- package/dist/src/{workspace-run.js → load/workspace-run.js} +7 -7
- package/dist/src/{workspace.js → load/workspace.js} +62 -124
- package/dist/src/module-declarations.js +70 -85
- package/dist/src/overrides.js +134 -112
- package/dist/src/partial.js +2 -1
- package/dist/src/paths.js +82 -16
- package/dist/src/platform-calls.js +78 -0
- package/dist/src/platform-symbols.js +134 -0
- package/dist/src/position.js +43 -1
- package/dist/src/print.js +11 -79
- package/dist/src/product.js +13 -0
- package/dist/src/query.js +95 -0
- package/dist/src/ref.js +12 -20
- package/dist/src/references/read-rule.js +1 -0
- package/dist/src/references/read-rules.js +48 -0
- package/dist/src/references/sink.js +237 -0
- package/dist/src/references/sources.js +450 -0
- package/dist/src/references.js +117 -1074
- package/dist/src/report-schema.js +51 -0
- package/dist/src/report.js +57 -41
- package/dist/src/reporters/annotations.js +15 -8
- package/dist/src/reporters/sarif.js +16 -10
- package/dist/src/reporters/template.js +4 -19
- package/dist/src/resolve.js +246 -730
- package/dist/src/{configured-declarations.js → roots/configured-declarations.js} +22 -24
- package/dist/src/{entry-point-gaps.js → roots/entry-point-gaps.js} +6 -15
- package/dist/src/roots/manifest.js +216 -0
- package/dist/src/roots/published-reach.js +412 -0
- package/dist/src/roots/root-set.js +487 -0
- package/dist/src/roots/unseen-loads.js +236 -0
- package/dist/src/run.js +66 -77
- package/dist/src/schema.js +320 -343
- package/dist/src/scope.js +38 -115
- package/dist/src/session.js +37 -29
- package/dist/src/source-files.js +6 -10
- package/dist/src/stores.js +4 -2
- package/dist/src/suppress-file.js +25 -28
- package/dist/src/suppress-inline.js +36 -83
- package/dist/src/suppress.js +50 -71
- package/dist/src/symbol-keys.js +92 -88
- package/dist/src/tests/file-class.js +76 -0
- package/dist/src/{outside-tests.js → tests/outside.js} +7 -7
- package/dist/src/{test-support.js → tests/support.js} +5 -12
- package/dist/src/text/compare.js +26 -0
- package/dist/src/text/glob.js +194 -0
- package/dist/src/text/named-files.js +298 -0
- package/dist/src/text/yaml.js +684 -0
- package/dist/src/type-errors.js +11 -232
- package/dist/src/type-parameter-reads.js +178 -139
- package/dist/src/unimplemented-callees.js +262 -242
- package/dist/src/unwrap.js +23 -0
- package/dist/src/usage.js +10 -0
- package/dist/src/vendor/unbash/ansi-c.js +132 -0
- package/dist/src/vendor/unbash/arithmetic-parts.js +37 -0
- package/dist/src/vendor/unbash/arithmetic.js +591 -0
- package/dist/src/vendor/unbash/assignment.js +131 -0
- package/dist/src/vendor/unbash/chars.js +48 -0
- package/dist/src/vendor/unbash/command.js +41 -0
- package/dist/src/vendor/unbash/expansion.js +80 -0
- package/dist/src/vendor/unbash/glob.js +268 -0
- package/dist/src/vendor/unbash/heredoc.js +27 -0
- package/dist/src/vendor/unbash/internal-types.js +1 -0
- package/dist/src/vendor/unbash/lexer.js +4274 -0
- package/dist/src/vendor/unbash/limits.js +3 -0
- package/dist/src/vendor/unbash/parser.js +1366 -0
- package/dist/src/vendor/unbash/parts.js +57 -0
- package/dist/src/vendor/unbash/substitution-context.js +8 -0
- package/dist/src/vendor/unbash/traversal.js +212 -0
- package/dist/src/vendor/unbash/types.js +1 -0
- package/dist/src/vendor/unbash/word-value.js +61 -0
- package/dist/src/vendor/unbash/word.js +40 -0
- package/dist/src/verbs/analyze.js +194 -127
- package/dist/src/verbs/describe.js +13 -18
- package/dist/src/verbs/explain.js +85 -139
- package/dist/src/verbs/print-config.js +2 -1
- package/dist/src/verbs/print-projects.js +6 -4
- package/dist/src/verbs/print-retained.js +30 -6
- package/dist/src/verbs/print-roots.js +4 -2
- package/dist/src/verbs/verb.js +1 -5
- package/dist/src/verbs/version.js +14 -3
- package/jsr.json +2 -1
- package/package.json +14 -8
- package/src/alias-chain.ts +40 -11
- package/src/amd.ts +130 -0
- package/src/analysis.ts +426 -733
- package/src/augmentations.ts +93 -4
- package/src/automatic-types.ts +12 -30
- package/src/bindings.ts +460 -0
- package/src/commands/held.ts +632 -0
- package/src/commands/read.ts +242 -0
- package/src/commands/shell.ts +228 -0
- package/src/commands/tools.ts +2382 -0
- package/src/component-files.ts +4 -2
- package/src/component-layer.ts +4 -2
- package/src/config.ts +31 -302
- package/src/conformance-record.ts +2 -2
- package/src/consumers.ts +16 -66
- package/src/contextual-uses.ts +66 -34
- package/src/contract/config.generated.ts +821 -0
- package/src/contract/contract.generated.ts +1453 -0
- package/src/contract/report.generated.ts +1241 -0
- package/src/dependencies.ts +223 -128
- package/src/destructuring.ts +1 -31
- package/src/edges.ts +41 -140
- package/src/element-access.ts +190 -187
- package/src/entries/build-scripts.ts +292 -0
- package/src/{configuration-files.ts → entries/configuration-files.ts} +68 -278
- package/src/{convention-rows.ts → entries/convention-rows.ts} +227 -31
- package/src/{conventions.ts → entries/conventions.ts} +367 -583
- package/src/{html-entries.ts → entries/html-entries.ts} +22 -48
- package/src/{mdx-entries.ts → entries/mdx-entries.ts} +7 -30
- package/src/entries/run-directories.ts +108 -0
- package/src/entries/sources.ts +266 -0
- package/src/entries/static-module.ts +858 -0
- package/src/entries/test-runners.ts +835 -0
- package/src/entries/workflow-steps.ts +432 -0
- package/src/exemptions/argument-places.ts +198 -0
- package/src/exemptions/calls.ts +483 -0
- package/src/exemptions/classes.ts +49 -0
- package/src/exemptions/decorator.ts +56 -0
- package/src/exemptions/detectors.ts +75 -0
- package/src/{enum-group.ts → exemptions/enum-group.ts} +10 -19
- package/src/{erased-stores.ts → exemptions/erased-stores.ts} +7 -14
- package/src/{framework-lifecycle.ts → exemptions/framework-lifecycle.ts} +85 -66
- package/src/exemptions/generated-file.ts +318 -0
- package/src/{injection-container.ts → exemptions/injection-container.ts} +29 -34
- package/src/exemptions/installed-globals.ts +255 -0
- package/src/{interface-satisfaction.ts → exemptions/interface-satisfaction.ts} +69 -160
- package/src/exemptions/lifecycle.ts +286 -0
- package/src/{reflective-lookup.ts → exemptions/reflective-lookup.ts} +5 -5
- package/src/exemptions/serialization-contract.ts +1729 -0
- package/src/exemptions/sites.ts +293 -0
- package/src/{template-field.ts → exemptions/template-field.ts} +22 -32
- package/src/{value-reach.ts → exemptions/value-reach.ts} +16 -8
- package/src/exposure.ts +492 -0
- package/src/extensions.ts +45 -0
- package/src/facts.ts +46 -0
- package/src/failure.ts +63 -0
- package/src/file-facts.ts +15 -25
- package/src/finding.ts +10 -10
- package/src/findings/boundary.ts +11 -0
- package/src/findings/completion.ts +133 -64
- package/src/findings/dependencies-and-module-machinery.ts +4 -7
- package/src/findings/emitter.ts +9 -10
- package/src/findings/emitters.ts +38 -52
- package/src/{implementations.ts → findings/implementations.ts} +4 -4
- package/src/{in-operands.ts → findings/in-operands.ts} +4 -3
- package/src/findings/interfaces.ts +7 -9
- package/src/findings/intra-function.ts +16 -14
- package/src/findings/non-code-artifacts.ts +24 -15
- package/src/findings/reads-and-writes.ts +118 -41
- package/src/findings/self-check.ts +51 -38
- package/src/findings/unused-declarations.ts +31 -49
- package/src/findings/visibility-narrowing.ts +36 -40
- package/src/findings-pass.ts +15 -31
- package/src/fs/document.ts +70 -0
- package/src/fs/manifest.ts +96 -0
- package/src/fs/tree.ts +110 -0
- package/src/git-ignore.ts +50 -26
- package/src/host.ts +12 -5
- package/src/import-bindings.ts +98 -29
- package/src/index/sites.ts +781 -0
- package/src/index/values.ts +170 -0
- package/src/index.ts +2 -2
- package/src/indexed-access.ts +570 -527
- package/src/intra-function-parts.ts +73 -44
- package/src/inventory/commonjs.ts +696 -0
- package/src/inventory/enumerate.ts +203 -0
- package/src/inventory/syntax.ts +311 -0
- package/src/inventory.ts +442 -895
- package/src/javascript-file.ts +54 -0
- package/src/json-document.ts +241 -76
- package/src/keyof-comparisons.ts +133 -122
- package/src/kinds.ts +5 -413
- package/src/{components.ts → liveness/components.ts} +4 -6
- package/src/{graph.ts → liveness/graph.ts} +100 -35
- package/src/liveness/matrix.ts +162 -0
- package/src/liveness/sweep.ts +855 -0
- package/src/load/classify.ts +433 -0
- package/src/load/diagnostics.ts +154 -0
- package/src/load/discover.ts +471 -0
- package/src/{emit-map.ts → load/emit-map.ts} +1 -1
- package/src/load/expected-module.ts +194 -0
- package/src/load/load.ts +73 -0
- package/src/load/module-lookup.ts +50 -0
- package/src/load/package-scope.ts +74 -0
- package/src/load/plan.ts +513 -0
- package/src/load/specifiers.ts +171 -0
- package/src/load/synthesize.ts +230 -0
- package/src/load/test-globals.ts +251 -0
- package/src/load/test-joins.ts +98 -0
- package/src/{workspace-manifests.ts → load/workspace-manifests.ts} +5 -5
- package/src/{workspace-programs.ts → load/workspace-programs.ts} +128 -85
- package/src/{workspace-resolution.ts → load/workspace-resolution.ts} +41 -77
- package/src/{workspace-run.ts → load/workspace-run.ts} +18 -16
- package/src/{workspace.ts → load/workspace.ts} +90 -134
- package/src/module-declarations.ts +74 -98
- package/src/overrides.ts +162 -134
- package/src/partial.ts +3 -2
- package/src/paths.ts +92 -16
- package/src/platform-calls.ts +119 -0
- package/src/platform-symbols.ts +189 -0
- package/src/position.ts +44 -1
- package/src/print.ts +12 -92
- package/src/product.ts +18 -0
- package/src/query.ts +201 -10
- package/src/ref.ts +12 -20
- package/src/references/read-rule.ts +60 -0
- package/src/references/read-rules.ts +55 -0
- package/src/references/sink.ts +314 -0
- package/src/references/sources.ts +632 -0
- package/src/references.ts +187 -1450
- package/src/report-schema.ts +68 -0
- package/src/report.ts +103 -226
- package/src/reporters/annotations.ts +22 -11
- package/src/reporters/json.ts +1 -1
- package/src/reporters/reporter.ts +2 -4
- package/src/reporters/reporters.ts +1 -1
- package/src/reporters/sarif.ts +29 -16
- package/src/reporters/template.ts +4 -20
- package/src/reporters/text.ts +3 -3
- package/src/resolve.ts +284 -1115
- package/src/{configured-declarations.ts → roots/configured-declarations.ts} +26 -29
- package/src/{entry-point-gaps.ts → roots/entry-point-gaps.ts} +7 -16
- package/src/roots/manifest.ts +303 -0
- package/src/roots/published-reach.ts +486 -0
- package/src/{roots.ts → roots/root-set.ts} +286 -469
- package/src/roots/unseen-loads.ts +345 -0
- package/src/run.ts +75 -91
- package/src/schema.ts +391 -388
- package/src/scope.ts +46 -138
- package/src/session.ts +87 -55
- package/src/source-files.ts +6 -11
- package/src/stores.ts +15 -3
- package/src/suppress-file.ts +24 -33
- package/src/suppress-inline.ts +55 -91
- package/src/suppress.ts +78 -79
- package/src/symbol-keys.ts +104 -107
- package/src/tests/file-class.ts +135 -0
- package/src/{outside-tests.ts → tests/outside.ts} +16 -10
- package/src/{test-support.ts → tests/support.ts} +15 -21
- package/src/text/compare.ts +27 -0
- package/src/text/glob.ts +210 -0
- package/src/text/named-files.ts +388 -0
- package/src/text/yaml.ts +747 -0
- package/src/type-errors.ts +18 -288
- package/src/type-parameter-reads.ts +187 -158
- package/src/unimplemented-callees.ts +297 -280
- package/src/unwrap.ts +34 -0
- package/src/usage.ts +10 -0
- package/src/vendor/unbash/LICENSE +15 -0
- package/src/vendor/unbash/VENDORED.md +16 -0
- package/src/vendor/unbash/ansi-c.ts +132 -0
- package/src/vendor/unbash/arithmetic-parts.ts +53 -0
- package/src/vendor/unbash/arithmetic.ts +641 -0
- package/src/vendor/unbash/assignment.ts +163 -0
- package/src/vendor/unbash/chars.ts +48 -0
- package/src/vendor/unbash/command.ts +47 -0
- package/src/vendor/unbash/expansion.ts +144 -0
- package/src/vendor/unbash/glob.ts +284 -0
- package/src/vendor/unbash/heredoc.ts +34 -0
- package/src/vendor/unbash/internal-types.ts +94 -0
- package/src/vendor/unbash/lexer.ts +4352 -0
- package/src/vendor/unbash/limits.ts +3 -0
- package/src/vendor/unbash/parser.ts +1612 -0
- package/src/vendor/unbash/parts.ts +96 -0
- package/src/vendor/unbash/substitution-context.ts +20 -0
- package/src/vendor/unbash/traversal.ts +182 -0
- package/src/vendor/unbash/types.ts +660 -0
- package/src/vendor/unbash/word-value.ts +64 -0
- package/src/vendor/unbash/word.ts +50 -0
- package/src/verbs/analyze.ts +255 -164
- package/src/verbs/describe.ts +19 -17
- package/src/verbs/explain.ts +93 -169
- package/src/verbs/print-config.ts +2 -1
- package/src/verbs/print-projects.ts +6 -4
- package/src/verbs/print-retained.ts +36 -6
- package/src/verbs/print-roots.ts +4 -2
- package/src/verbs/verb.ts +2 -8
- package/src/verbs/version.ts +15 -3
- package/dist/src/base-url.js +0 -18
- package/dist/src/calls.js +0 -155
- package/dist/src/conventions.js +0 -937
- package/dist/src/discover.js +0 -468
- package/dist/src/entry-points.js +0 -529
- package/dist/src/exempt-classes.js +0 -75
- package/dist/src/exempt.js +0 -209
- package/dist/src/generated-file.js +0 -95
- package/dist/src/glob.js +0 -65
- package/dist/src/manifest.js +0 -165
- package/dist/src/matrix.js +0 -246
- package/dist/src/pnpm-workspace.js +0 -120
- package/dist/src/roots.js +0 -672
- package/dist/src/serialization-contract.js +0 -611
- package/dist/src/setup-failure.js +0 -23
- package/dist/src/sweep.js +0 -224
- package/dist/src/test-joins.js +0 -101
- package/dist/src/value-flow.js +0 -74
- package/dist/src/version.js +0 -7
- package/dist/src/workflow-steps.js +0 -185
- package/src/base-url.ts +0 -24
- package/src/calls.ts +0 -225
- package/src/decorator.ts +0 -78
- package/src/discover.ts +0 -653
- package/src/entry-points.ts +0 -687
- package/src/exempt-classes.ts +0 -123
- package/src/exempt.ts +0 -323
- package/src/generated-file.ts +0 -111
- package/src/glob.ts +0 -67
- package/src/manifest.ts +0 -234
- package/src/matrix.ts +0 -423
- package/src/pnpm-workspace.ts +0 -135
- package/src/serialization-contract.ts +0 -849
- package/src/setup-failure.ts +0 -39
- package/src/sweep.ts +0 -347
- package/src/test-joins.ts +0 -120
- package/src/value-flow.ts +0 -104
- package/src/version.ts +0 -7
- package/src/workflow-steps.ts +0 -216
|
@@ -7,6 +7,17 @@
|
|
|
7
7
|
* directory one of the row's moves resolves to.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
import { braced, MODULE_EXTENSIONS } from "../extensions.ts";
|
|
11
|
+
import {
|
|
12
|
+
AVA_6,
|
|
13
|
+
AVA_8,
|
|
14
|
+
JEST_29,
|
|
15
|
+
JEST_30,
|
|
16
|
+
MOCHA_10,
|
|
17
|
+
MOCHA_12,
|
|
18
|
+
type TestRunner,
|
|
19
|
+
} from "./test-runners.ts";
|
|
20
|
+
|
|
10
21
|
/** A call whose first argument is the object a property is read from. */
|
|
11
22
|
export interface OptionsCall {
|
|
12
23
|
/** The module specifier the configuration file imports the callee from. */
|
|
@@ -17,7 +28,11 @@ export interface OptionsCall {
|
|
|
17
28
|
|
|
18
29
|
/** One configuration property, and the configuration files it is read from. */
|
|
19
30
|
export interface MoveReading {
|
|
20
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* The property's path through nested object literals, its keys joined by `.`; in a
|
|
33
|
+
* test-file property a `*` key stands for every element of an array and every member of
|
|
34
|
+
* an object, each read as an object of its own.
|
|
35
|
+
*/
|
|
21
36
|
readonly property: string;
|
|
22
37
|
/** Globs naming the configuration files, matched in the manifest's directory alone. */
|
|
23
38
|
readonly files: readonly string[];
|
|
@@ -79,6 +94,28 @@ export interface TestFileReading extends MoveReading {
|
|
|
79
94
|
readonly roots: readonly string[];
|
|
80
95
|
}
|
|
81
96
|
|
|
97
|
+
/**
|
|
98
|
+
* One configuration's test directory and test-file patterns, whose matching files the
|
|
99
|
+
* runner runs as tests. Each element of the projects property is read the same way, a
|
|
100
|
+
* member it does not write taken from the configuration's own.
|
|
101
|
+
*/
|
|
102
|
+
export interface TestDirectoryReading {
|
|
103
|
+
/** Globs naming the configuration files, matched in the manifest's directory alone. */
|
|
104
|
+
readonly files: readonly string[];
|
|
105
|
+
/** The property naming the directory, read against the configuration file's directory. */
|
|
106
|
+
readonly directory: string;
|
|
107
|
+
/**
|
|
108
|
+
* The property naming the patterns, each matched as Playwright matches one: anywhere
|
|
109
|
+
* below the directory, so a pattern gains a leading `**` segment unless it starts with
|
|
110
|
+
* one, and without regard to case.
|
|
111
|
+
*/
|
|
112
|
+
readonly match: string;
|
|
113
|
+
/** The pattern that holds where no object names one. */
|
|
114
|
+
readonly defaultMatch: string;
|
|
115
|
+
/** The property listing the projects. */
|
|
116
|
+
readonly projects: string;
|
|
117
|
+
}
|
|
118
|
+
|
|
82
119
|
/** One member of the declaring `package.json` whose strings name the tool's entries. */
|
|
83
120
|
export interface ManifestEntryKey {
|
|
84
121
|
/** The member's path through nested objects, its keys joined by `.`, a `*` key standing for every member. */
|
|
@@ -129,6 +166,10 @@ export interface ConventionRow {
|
|
|
129
166
|
readonly selections?: readonly MoveReading[];
|
|
130
167
|
/** The properties whose strings name a file the test runner loads beside the tests, a test file. */
|
|
131
168
|
readonly testFiles?: readonly TestFileReading[];
|
|
169
|
+
/** The configurations whose test directory and patterns name the test files the runner runs. */
|
|
170
|
+
readonly testDirectories?: readonly TestDirectoryReading[];
|
|
171
|
+
/** The reader of the files the row's test runner runs, from its configuration and the manifest's scripts. */
|
|
172
|
+
readonly testRunner?: TestRunner;
|
|
132
173
|
/**
|
|
133
174
|
* The members whose strings name a package the tool loads: the package itself, a
|
|
134
175
|
* subpath of it, or the package followed by `:` and a name.
|
|
@@ -140,14 +181,16 @@ export interface ConventionRow {
|
|
|
140
181
|
readonly manifestEntries?: readonly ManifestEntryKey[];
|
|
141
182
|
/** The settings that make the tool's output import a runtime helper package. */
|
|
142
183
|
readonly helpers?: readonly HelperReading[];
|
|
184
|
+
/** Whether the tool bundles the package's modules, so it resolves them as a bundler does. */
|
|
185
|
+
readonly bundles?: true;
|
|
143
186
|
}
|
|
144
187
|
|
|
145
188
|
const SCRIPT = "{js,jsx,ts,tsx}";
|
|
146
189
|
const MODULE = "{js,mjs,ts,mts}";
|
|
147
|
-
const ANY_MODULE =
|
|
190
|
+
const ANY_MODULE = braced(MODULE_EXTENSIONS);
|
|
148
191
|
const VITE_CONFIG = `vite.config.${ANY_MODULE}`;
|
|
149
|
-
/** The legacy configuration files of ESLint
|
|
150
|
-
const ESLINTRC = [".eslintrc", ".eslintrc.json", ".eslintrc.{js,cjs}"];
|
|
192
|
+
/** The legacy configuration files of ESLint: JSON, YAML or a CommonJS module. */
|
|
193
|
+
const ESLINTRC = [".eslintrc", ".eslintrc.json", ".eslintrc.{yml,yaml}", ".eslintrc.{js,cjs}"];
|
|
151
194
|
|
|
152
195
|
const SVELTEKIT_ROUTE_FILES = "+{page,layout,server,page.server,layout.server,error}";
|
|
153
196
|
|
|
@@ -193,6 +236,64 @@ const VITEST_CONFIG = `{vitest,vite}.config.${ANY_MODULE}`;
|
|
|
193
236
|
*/
|
|
194
237
|
const VITEST_ROOTS = ["test.root", "root"] as const;
|
|
195
238
|
|
|
239
|
+
/** The members of a Vitest configuration's `test` object that name setup files. */
|
|
240
|
+
const VITEST_SETUP = ["setupFiles", "globalSetup"] as const;
|
|
241
|
+
|
|
242
|
+
/** Vitest's workspace files, which Vitest 4 no longer reads (https://vitest.dev/guide/workspace). */
|
|
243
|
+
const VITEST_WORKSPACE = `{vitest.workspace,vitest.projects}.${ANY_MODULE}`;
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* The Vitest row over one range: its configuration's setup files, those of each inline
|
|
247
|
+
* project of `test.projects`, and, where `workspace`, the workspace file with the setup
|
|
248
|
+
* files of each inline project it lists.
|
|
249
|
+
*/
|
|
250
|
+
function vitestRow(range: string, workspace: boolean): ConventionRow {
|
|
251
|
+
const inline = (each: string, files: string): readonly TestFileReading[] =>
|
|
252
|
+
VITEST_SETUP.map((member) => ({
|
|
253
|
+
property: `${each}.test.${member}`,
|
|
254
|
+
files: [files],
|
|
255
|
+
roots: VITEST_ROOTS,
|
|
256
|
+
}));
|
|
257
|
+
return {
|
|
258
|
+
name: "vitest",
|
|
259
|
+
package: "vitest",
|
|
260
|
+
range,
|
|
261
|
+
entries: [
|
|
262
|
+
`**/{vitest,vite}.config.${ANY_MODULE}`,
|
|
263
|
+
`**/{vitest,vite}.config.*.${ANY_MODULE}`,
|
|
264
|
+
`**/{vitest,vite}.*.config.${ANY_MODULE}`,
|
|
265
|
+
...(workspace ? [VITEST_WORKSPACE] : []),
|
|
266
|
+
],
|
|
267
|
+
moves: [],
|
|
268
|
+
shortNames: [
|
|
269
|
+
{
|
|
270
|
+
property: "test.coverage.provider",
|
|
271
|
+
files: [VITEST_CONFIG],
|
|
272
|
+
package: "@vitest/coverage-{}",
|
|
273
|
+
},
|
|
274
|
+
],
|
|
275
|
+
selections: [
|
|
276
|
+
{ property: "test.coverage.include", files: [VITEST_CONFIG] },
|
|
277
|
+
{ property: "test.coverage.exclude", files: [VITEST_CONFIG] },
|
|
278
|
+
],
|
|
279
|
+
testFiles: [
|
|
280
|
+
...VITEST_SETUP.map((member) => ({
|
|
281
|
+
property: `test.${member}`,
|
|
282
|
+
files: [VITEST_CONFIG],
|
|
283
|
+
roots: VITEST_ROOTS,
|
|
284
|
+
})),
|
|
285
|
+
...inline("test.projects.*", VITEST_CONFIG),
|
|
286
|
+
...(workspace ? inline("*", VITEST_WORKSPACE) : []),
|
|
287
|
+
],
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
const PLAYWRIGHT_CONFIG = `playwright.config.${ANY_MODULE}`;
|
|
292
|
+
|
|
293
|
+
/** Playwright's own test-file pattern (https://playwright.dev/docs/api/class-testconfig#test-config-test-match). */
|
|
294
|
+
const PLAYWRIGHT_TEST_MATCH =
|
|
295
|
+
"**/*.{spec,test}.{js,ts,jsx,tsx,cjs,cts,cjsx,ctsx,mjs,mts,mjsx,mtsx}";
|
|
296
|
+
|
|
196
297
|
/** The entry files of an Angular CLI project, at the workspace root or below `projects`. */
|
|
197
298
|
const ANGULAR_ENTRIES = [
|
|
198
299
|
"src/{main,main.server,server,polyfills,test}.ts",
|
|
@@ -209,6 +310,35 @@ const ANGULAR_PACKAGE_KEYS: readonly PackageKey[] = [
|
|
|
209
310
|
"scripts",
|
|
210
311
|
].map((key) => ({ key, files: ["angular.json"] }));
|
|
211
312
|
|
|
313
|
+
/**
|
|
314
|
+
* The row of a code generator that writes its output below one directory its
|
|
315
|
+
* configuration's `property` sets, `fallback` where no configuration file sets it, so
|
|
316
|
+
* every file there is a generated file.
|
|
317
|
+
*/
|
|
318
|
+
function outputDirectoryRow(row: {
|
|
319
|
+
readonly name: string;
|
|
320
|
+
readonly package: string;
|
|
321
|
+
readonly range: string;
|
|
322
|
+
readonly files: readonly string[];
|
|
323
|
+
readonly property: string;
|
|
324
|
+
readonly fallback: string;
|
|
325
|
+
}): ConventionRow {
|
|
326
|
+
return {
|
|
327
|
+
name: row.name,
|
|
328
|
+
package: row.package,
|
|
329
|
+
range: row.range,
|
|
330
|
+
entries: [],
|
|
331
|
+
generated: ["<output>"],
|
|
332
|
+
moves: [
|
|
333
|
+
{
|
|
334
|
+
id: "output",
|
|
335
|
+
defaults: [row.fallback],
|
|
336
|
+
readings: [{ property: row.property, files: row.files }],
|
|
337
|
+
},
|
|
338
|
+
],
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
|
|
212
342
|
/**
|
|
213
343
|
* The test runners and the assertion, mock and runner libraries whose import is test
|
|
214
344
|
* evidence beside each runner a row reads test files for. Each applies whether or not a
|
|
@@ -254,6 +384,7 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
|
|
|
254
384
|
},
|
|
255
385
|
{
|
|
256
386
|
name: "astro",
|
|
387
|
+
bundles: true,
|
|
257
388
|
package: "astro",
|
|
258
389
|
range: ">=5.0.0 <8.0.0",
|
|
259
390
|
entries: [
|
|
@@ -273,6 +404,22 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
|
|
|
273
404
|
},
|
|
274
405
|
],
|
|
275
406
|
},
|
|
407
|
+
{
|
|
408
|
+
name: "ava",
|
|
409
|
+
package: "ava",
|
|
410
|
+
range: ">=6.0.0 <8.0.0",
|
|
411
|
+
entries: [],
|
|
412
|
+
moves: [],
|
|
413
|
+
testRunner: AVA_6,
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
name: "ava",
|
|
417
|
+
package: "ava",
|
|
418
|
+
range: ">=8.0.0 <9.0.0",
|
|
419
|
+
entries: [],
|
|
420
|
+
moves: [],
|
|
421
|
+
testRunner: AVA_8,
|
|
422
|
+
},
|
|
276
423
|
{
|
|
277
424
|
name: "babel",
|
|
278
425
|
package: "@babel/core",
|
|
@@ -299,6 +446,7 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
|
|
|
299
446
|
range: ">=4.0.0 <10.0.0",
|
|
300
447
|
entries: [],
|
|
301
448
|
moves: [],
|
|
449
|
+
packageKeys: [{ key: "parser", files: ESLINTRC }],
|
|
302
450
|
prefixedNames: [
|
|
303
451
|
{ property: "plugins", files: ESLINTRC, prefix: "eslint-plugin" },
|
|
304
452
|
{ property: "extends", files: ESLINTRC, prefix: "eslint-plugin", marker: "plugin:" },
|
|
@@ -322,12 +470,45 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
|
|
|
322
470
|
{
|
|
323
471
|
name: "expo-router",
|
|
324
472
|
package: "expo-router",
|
|
325
|
-
range: ">=3.0.0 <
|
|
473
|
+
range: ">=3.0.0 <59.0.0",
|
|
326
474
|
entries: [`{,src/}app/**/*.${SCRIPT}`],
|
|
327
475
|
moves: [],
|
|
328
476
|
},
|
|
477
|
+
{
|
|
478
|
+
name: "jest",
|
|
479
|
+
package: "jest",
|
|
480
|
+
range: ">=29.0.0 <30.0.0",
|
|
481
|
+
entries: [],
|
|
482
|
+
moves: [],
|
|
483
|
+
testRunner: JEST_29,
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
name: "jest",
|
|
487
|
+
package: "jest",
|
|
488
|
+
range: ">=30.0.0 <31.0.0",
|
|
489
|
+
entries: [],
|
|
490
|
+
moves: [],
|
|
491
|
+
testRunner: JEST_30,
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
name: "mocha",
|
|
495
|
+
package: "mocha",
|
|
496
|
+
range: ">=10.0.0 <12.0.0",
|
|
497
|
+
entries: [],
|
|
498
|
+
moves: [],
|
|
499
|
+
testRunner: MOCHA_10,
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
name: "mocha",
|
|
503
|
+
package: "mocha",
|
|
504
|
+
range: ">=12.0.0 <13.0.0",
|
|
505
|
+
entries: [],
|
|
506
|
+
moves: [],
|
|
507
|
+
testRunner: MOCHA_12,
|
|
508
|
+
},
|
|
329
509
|
{
|
|
330
510
|
name: "next",
|
|
511
|
+
bundles: true,
|
|
331
512
|
package: "next",
|
|
332
513
|
range: ">=13.4.0 <17.0.0",
|
|
333
514
|
generated: [".next"],
|
|
@@ -345,6 +526,7 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
|
|
|
345
526
|
},
|
|
346
527
|
{
|
|
347
528
|
name: "nuxt",
|
|
529
|
+
bundles: true,
|
|
348
530
|
package: "nuxt",
|
|
349
531
|
range: ">=3.0.0 <5.0.0",
|
|
350
532
|
generated: [".nuxt"],
|
|
@@ -414,8 +596,17 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
|
|
|
414
596
|
{ key: "oclif.hooks", directory: false },
|
|
415
597
|
],
|
|
416
598
|
},
|
|
599
|
+
outputDirectoryRow({
|
|
600
|
+
name: "panda",
|
|
601
|
+
package: "@pandacss/dev",
|
|
602
|
+
range: ">=0.1.0 <2.0.0",
|
|
603
|
+
files: [`panda.config.${ANY_MODULE}`],
|
|
604
|
+
property: "outdir",
|
|
605
|
+
fallback: "styled-system",
|
|
606
|
+
}),
|
|
417
607
|
{
|
|
418
608
|
name: "parcel",
|
|
609
|
+
bundles: true,
|
|
419
610
|
package: "parcel",
|
|
420
611
|
range: ">=2.0.0 <3.0.0",
|
|
421
612
|
entries: [],
|
|
@@ -425,6 +616,22 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
|
|
|
425
616
|
{ key: "targets.*.source", directory: false },
|
|
426
617
|
],
|
|
427
618
|
},
|
|
619
|
+
{
|
|
620
|
+
name: "playwright",
|
|
621
|
+
package: "@playwright/test",
|
|
622
|
+
range: ">=1.0.0 <2.0.0",
|
|
623
|
+
entries: [PLAYWRIGHT_CONFIG],
|
|
624
|
+
moves: [],
|
|
625
|
+
testDirectories: [
|
|
626
|
+
{
|
|
627
|
+
files: [PLAYWRIGHT_CONFIG],
|
|
628
|
+
directory: "testDir",
|
|
629
|
+
match: "testMatch",
|
|
630
|
+
defaultMatch: PLAYWRIGHT_TEST_MATCH,
|
|
631
|
+
projects: "projects",
|
|
632
|
+
},
|
|
633
|
+
],
|
|
634
|
+
},
|
|
428
635
|
{
|
|
429
636
|
name: "prettier",
|
|
430
637
|
package: "prettier",
|
|
@@ -481,6 +688,13 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
|
|
|
481
688
|
},
|
|
482
689
|
],
|
|
483
690
|
},
|
|
691
|
+
{
|
|
692
|
+
name: "react-scripts",
|
|
693
|
+
package: "react-scripts",
|
|
694
|
+
range: ">=1.0.0 <6.0.0",
|
|
695
|
+
entries: [`src/index.${SCRIPT}`, "src/setupProxy.js", `src/setupTests.${SCRIPT}`],
|
|
696
|
+
moves: [],
|
|
697
|
+
},
|
|
484
698
|
{
|
|
485
699
|
name: "remix",
|
|
486
700
|
package: "@remix-run/dev",
|
|
@@ -508,6 +722,7 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
|
|
|
508
722
|
},
|
|
509
723
|
{
|
|
510
724
|
name: "rolldown",
|
|
725
|
+
bundles: true,
|
|
511
726
|
package: "rolldown",
|
|
512
727
|
range: ">=1.0.0 <2.0.0",
|
|
513
728
|
entries: [],
|
|
@@ -553,6 +768,7 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
|
|
|
553
768
|
},
|
|
554
769
|
{
|
|
555
770
|
name: "storybook",
|
|
771
|
+
bundles: true,
|
|
556
772
|
package: "storybook",
|
|
557
773
|
range: ">=7.0.0 <11.0.0",
|
|
558
774
|
entries: [
|
|
@@ -586,6 +802,7 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
|
|
|
586
802
|
},
|
|
587
803
|
{
|
|
588
804
|
name: "sveltekit",
|
|
805
|
+
bundles: true,
|
|
589
806
|
package: "@sveltejs/kit",
|
|
590
807
|
range: ">=2.0.0 <3.0.0",
|
|
591
808
|
entries: [...SVELTEKIT_ENTRIES, "<params>/*.{js,ts}"],
|
|
@@ -651,6 +868,7 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
|
|
|
651
868
|
},
|
|
652
869
|
{
|
|
653
870
|
name: "sveltekit",
|
|
871
|
+
bundles: true,
|
|
654
872
|
package: "@sveltejs/kit",
|
|
655
873
|
range: ">=3.0.0 <4.0.0",
|
|
656
874
|
entries: [...SVELTEKIT_ENTRIES, "<params>.{js,ts}"],
|
|
@@ -743,6 +961,7 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
|
|
|
743
961
|
},
|
|
744
962
|
{
|
|
745
963
|
name: "vite",
|
|
964
|
+
bundles: true,
|
|
746
965
|
package: "vite",
|
|
747
966
|
range: ">=8.0.0 <9.0.0",
|
|
748
967
|
entries: [],
|
|
@@ -758,6 +977,7 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
|
|
|
758
977
|
},
|
|
759
978
|
{
|
|
760
979
|
name: "vitepress",
|
|
980
|
+
bundles: true,
|
|
761
981
|
package: "vitepress",
|
|
762
982
|
range: ">=1.0.0 <2.0.0-0 || >=2.0.0-alpha.0 <3.0.0",
|
|
763
983
|
entries: [
|
|
@@ -768,30 +988,6 @@ export const CONVENTION_ROWS: readonly ConventionRow[] = [
|
|
|
768
988
|
],
|
|
769
989
|
moves: [],
|
|
770
990
|
},
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
package: "vitest",
|
|
774
|
-
range: ">=3.2.0 <6.0.0",
|
|
775
|
-
entries: [
|
|
776
|
-
`**/{vitest,vite}.config.${ANY_MODULE}`,
|
|
777
|
-
`**/{vitest,vite}.config.*.${ANY_MODULE}`,
|
|
778
|
-
`**/{vitest,vite}.*.config.${ANY_MODULE}`,
|
|
779
|
-
],
|
|
780
|
-
moves: [],
|
|
781
|
-
shortNames: [
|
|
782
|
-
{
|
|
783
|
-
property: "test.coverage.provider",
|
|
784
|
-
files: [VITEST_CONFIG],
|
|
785
|
-
package: "@vitest/coverage-{}",
|
|
786
|
-
},
|
|
787
|
-
],
|
|
788
|
-
selections: [
|
|
789
|
-
{ property: "test.coverage.include", files: [VITEST_CONFIG] },
|
|
790
|
-
{ property: "test.coverage.exclude", files: [VITEST_CONFIG] },
|
|
791
|
-
],
|
|
792
|
-
testFiles: [
|
|
793
|
-
{ property: "test.setupFiles", files: [VITEST_CONFIG], roots: VITEST_ROOTS },
|
|
794
|
-
{ property: "test.globalSetup", files: [VITEST_CONFIG], roots: VITEST_ROOTS },
|
|
795
|
-
],
|
|
796
|
-
},
|
|
991
|
+
vitestRow(">=3.2.0 <4.0.0", true),
|
|
992
|
+
vitestRow(">=4.0.0 <6.0.0", false),
|
|
797
993
|
];
|