@cplieger/deadset-ts 8.0.0-dev.1 → 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.
- package/README.md +1 -1
- package/dist/bin/mapper-connection.js +2 -1
- package/dist/bin/node-host.js +24 -5
- package/dist/src/analysis.js +181 -341
- package/dist/src/augmentations.js +106 -13
- package/dist/src/automatic-types.js +10 -29
- package/dist/src/build-scripts.js +425 -0
- package/dist/src/component-layer.js +4 -2
- package/dist/src/components.js +2 -3
- package/dist/src/config.js +6 -82
- package/dist/src/configuration-files.js +28 -176
- package/dist/src/configured-declarations.js +15 -20
- package/dist/src/conformance-record.js +1 -1
- package/dist/src/consumers.js +3 -30
- package/dist/src/contextual-uses.js +56 -9
- package/dist/src/contract/config.generated.js +558 -0
- package/dist/src/contract/contract.generated.js +1244 -0
- package/dist/src/contract/report.generated.js +862 -0
- package/dist/src/convention-rows.js +73 -3
- package/dist/src/conventions.js +36 -66
- package/dist/src/dependencies.js +103 -40
- package/dist/src/edges.js +38 -122
- package/dist/src/element-access.js +4 -6
- package/dist/src/entry-point-gaps.js +2 -8
- package/dist/src/entry-points.js +11 -27
- package/dist/src/enum-group.js +3 -10
- package/dist/src/erased-stores.js +4 -6
- package/dist/src/exempt-classes.js +1 -63
- package/dist/src/exempt.js +21 -40
- package/dist/src/failure.js +36 -0
- package/dist/src/file-facts.js +2 -25
- package/dist/src/findings/completion.js +139 -72
- package/dist/src/findings/dependencies-and-module-machinery.js +4 -5
- package/dist/src/findings/emitters.js +5 -5
- package/dist/src/findings/interfaces.js +4 -5
- package/dist/src/findings/intra-function.js +13 -10
- package/dist/src/findings/non-code-artifacts.js +7 -8
- package/dist/src/findings/reads-and-writes.js +16 -13
- package/dist/src/findings/self-check.js +10 -12
- package/dist/src/findings/unused-declarations.js +41 -32
- package/dist/src/findings/visibility-narrowing.js +19 -16
- package/dist/src/findings-pass.js +8 -15
- package/dist/src/framework-lifecycle.js +7 -7
- package/dist/src/fs/document.js +52 -0
- package/dist/src/fs/manifest.js +72 -0
- package/dist/src/fs/tree.js +88 -0
- package/dist/src/generated-file.js +7 -4
- package/dist/src/git-ignore.js +39 -26
- package/dist/src/graph.js +5 -3
- package/dist/src/html-entries.js +6 -33
- package/dist/src/in-operands.js +2 -1
- package/dist/src/index.js +1 -1
- package/dist/src/injection-container.js +1 -1
- package/dist/src/intra-function-parts.js +63 -43
- package/dist/src/inventory.js +2 -21
- package/dist/src/javascript-file.js +33 -0
- package/dist/src/json-document.js +198 -67
- package/dist/src/keyof-comparisons.js +4 -6
- package/dist/src/kinds.js +3 -366
- package/dist/src/load/classify.js +270 -0
- package/dist/src/load/diagnostics.js +80 -0
- package/dist/src/load/discover.js +277 -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/plan.js +313 -0
- package/dist/src/load/specifiers.js +115 -0
- package/dist/src/load/synthesize.js +140 -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} +23 -65
- 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/manifest.js +49 -54
- package/dist/src/matrix.js +76 -4
- package/dist/src/mdx-entries.js +3 -26
- package/dist/src/outside-tests.js +1 -1
- package/dist/src/partial.js +2 -1
- package/dist/src/paths.js +26 -15
- package/dist/src/position.js +2 -1
- package/dist/src/print.js +11 -79
- package/dist/src/product.js +13 -0
- package/dist/src/query.js +1 -0
- package/dist/src/ref.js +1 -0
- package/dist/src/references.js +48 -30
- 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 +245 -729
- package/dist/src/roots.js +273 -87
- package/dist/src/run.js +66 -77
- package/dist/src/schema.js +320 -343
- package/dist/src/scope.js +38 -115
- package/dist/src/serialization-contract.js +595 -21
- package/dist/src/session.js +34 -29
- package/dist/src/source-files.js +1 -1
- package/dist/src/suppress-file.js +25 -28
- package/dist/src/suppress-inline.js +3 -2
- package/dist/src/suppress.js +33 -51
- package/dist/src/sweep.js +7 -9
- package/dist/src/symbol-keys.js +3 -5
- package/dist/src/template-field.js +9 -19
- package/dist/src/test-support.js +8 -11
- package/dist/src/text/compare.js +26 -0
- package/dist/src/text/glob.js +194 -0
- package/dist/src/text/named-files.js +54 -0
- package/dist/src/text/shell.js +159 -0
- package/dist/src/text/yaml.js +393 -0
- package/dist/src/type-errors.js +11 -232
- package/dist/src/unseen-loads.js +100 -0
- package/dist/src/unwrap.js +23 -0
- package/dist/src/usage.js +10 -0
- package/dist/src/verbs/analyze.js +166 -126
- package/dist/src/verbs/describe.js +9 -16
- package/dist/src/verbs/explain.js +10 -7
- 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 +4 -2
- 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/dist/src/workflow-steps.js +62 -64
- package/jsr.json +1 -1
- package/package.json +4 -3
- package/src/analysis.ts +245 -502
- package/src/augmentations.ts +135 -17
- package/src/automatic-types.ts +11 -29
- package/src/build-scripts.ts +543 -0
- package/src/component-layer.ts +4 -2
- package/src/components.ts +2 -4
- package/src/config.ts +31 -302
- package/src/configuration-files.ts +34 -179
- package/src/configured-declarations.ts +18 -23
- package/src/conformance-record.ts +1 -1
- package/src/consumers.ts +6 -57
- package/src/contextual-uses.ts +64 -12
- package/src/contract/config.generated.ts +818 -0
- package/src/contract/contract.generated.ts +1308 -0
- package/src/contract/report.generated.ts +1237 -0
- package/src/convention-rows.ts +85 -3
- package/src/conventions.ts +46 -84
- package/src/dependencies.ts +118 -46
- package/src/edges.ts +41 -140
- package/src/element-access.ts +4 -7
- package/src/entry-point-gaps.ts +3 -9
- package/src/entry-points.ts +12 -38
- package/src/enum-group.ts +2 -11
- package/src/erased-stores.ts +3 -7
- package/src/exempt-classes.ts +1 -75
- package/src/exempt.ts +36 -50
- package/src/failure.ts +63 -0
- package/src/file-facts.ts +9 -24
- package/src/finding.ts +14 -9
- package/src/findings/boundary.ts +2 -0
- package/src/findings/completion.ts +181 -84
- package/src/findings/dependencies-and-module-machinery.ts +4 -7
- package/src/findings/emitter.ts +8 -9
- package/src/findings/emitters.ts +7 -7
- package/src/findings/interfaces.ts +4 -6
- package/src/findings/intra-function.ts +13 -11
- package/src/findings/non-code-artifacts.ts +9 -11
- package/src/findings/reads-and-writes.ts +20 -16
- package/src/findings/self-check.ts +11 -17
- package/src/findings/unused-declarations.ts +45 -32
- package/src/findings/visibility-narrowing.ts +20 -17
- package/src/findings-pass.ts +10 -19
- package/src/framework-lifecycle.ts +7 -7
- package/src/fs/document.ts +70 -0
- package/src/fs/manifest.ts +92 -0
- package/src/fs/tree.ts +110 -0
- package/src/generated-file.ts +7 -4
- package/src/git-ignore.ts +50 -26
- package/src/graph.ts +5 -3
- package/src/host.ts +12 -5
- package/src/html-entries.ts +6 -33
- package/src/in-operands.ts +2 -1
- package/src/index.ts +1 -1
- package/src/injection-container.ts +1 -1
- package/src/intra-function-parts.ts +73 -44
- package/src/inventory.ts +2 -20
- package/src/javascript-file.ts +37 -0
- package/src/json-document.ts +241 -76
- package/src/keyof-comparisons.ts +3 -7
- package/src/kinds.ts +5 -413
- package/src/load/classify.ts +397 -0
- package/src/load/diagnostics.ts +144 -0
- package/src/load/discover.ts +455 -0
- package/src/{emit-map.ts → load/emit-map.ts} +1 -1
- package/src/load/expected-module.ts +188 -0
- package/src/load/load.ts +73 -0
- package/src/load/module-lookup.ts +50 -0
- package/src/load/plan.ts +504 -0
- package/src/load/specifiers.ts +168 -0
- package/src/load/synthesize.ts +211 -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} +33 -76
- package/src/{workspace-run.ts → load/workspace-run.ts} +18 -16
- package/src/{workspace.ts → load/workspace.ts} +90 -134
- package/src/manifest.ts +81 -75
- package/src/matrix.ts +122 -4
- package/src/mdx-entries.ts +3 -26
- package/src/outside-tests.ts +1 -1
- package/src/partial.ts +3 -2
- package/src/paths.ts +27 -15
- package/src/position.ts +2 -1
- package/src/print.ts +12 -92
- package/src/product.ts +18 -0
- package/src/query.ts +11 -0
- package/src/ref.ts +1 -0
- package/src/references.ts +52 -31
- package/src/report-schema.ts +68 -0
- package/src/report.ts +101 -224
- 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 +283 -1114
- package/src/roots.ts +339 -104
- package/src/run.ts +75 -91
- package/src/schema.ts +391 -388
- package/src/scope.ts +46 -138
- package/src/serialization-contract.ts +763 -22
- package/src/session.ts +70 -54
- package/src/source-files.ts +1 -1
- package/src/suppress-file.ts +24 -33
- package/src/suppress-inline.ts +2 -2
- package/src/suppress.ts +43 -58
- package/src/sweep.ts +23 -9
- package/src/symbol-keys.ts +2 -5
- package/src/template-field.ts +15 -25
- package/src/test-support.ts +17 -13
- package/src/text/compare.ts +27 -0
- package/src/text/glob.ts +210 -0
- package/src/text/named-files.inputs.json +1522 -0
- package/src/text/named-files.ts +68 -0
- package/src/text/shell.ts +161 -0
- package/src/text/yaml.ts +423 -0
- package/src/type-errors.ts +18 -288
- package/src/unseen-loads.ts +134 -0
- package/src/unwrap.ts +34 -0
- package/src/usage.ts +10 -0
- package/src/verbs/analyze.ts +224 -162
- package/src/verbs/describe.ts +14 -15
- package/src/verbs/explain.ts +10 -11
- package/src/verbs/print-config.ts +2 -1
- package/src/verbs/print-projects.ts +6 -4
- package/src/verbs/print-retained.ts +4 -2
- package/src/verbs/print-roots.ts +4 -2
- package/src/verbs/verb.ts +2 -8
- package/src/verbs/version.ts +15 -3
- package/src/workflow-steps.ts +74 -64
- package/dist/src/base-url.js +0 -18
- package/dist/src/discover.js +0 -468
- package/dist/src/glob.js +0 -65
- package/dist/src/pnpm-workspace.js +0 -120
- package/dist/src/setup-failure.js +0 -23
- package/dist/src/test-joins.js +0 -101
- package/dist/src/version.js +0 -7
- package/src/base-url.ts +0 -24
- package/src/discover.ts +0 -653
- package/src/glob.ts +0 -67
- package/src/pnpm-workspace.ts +0 -135
- package/src/setup-failure.ts +0 -39
- package/src/test-joins.ts +0 -120
- package/src/version.ts +0 -7
package/dist/src/test-joins.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The test files a derived matrix holds although no configuration's file list names them.
|
|
3
|
-
* The test runner compiles such a file with the options of the nearest compiler
|
|
4
|
-
* configuration at or above it, so the file joins that configuration's program as a file
|
|
5
|
-
* its list names, unless a `package.json` below that configuration's directory makes the
|
|
6
|
-
* file another package's, which its own test runner compiles.
|
|
7
|
-
*/
|
|
8
|
-
import { sourcePaths } from "./file-facts.js";
|
|
9
|
-
import { dirnamePath, joinPath, relativePath } from "./paths.js";
|
|
10
|
-
import { writtenPath } from "./workspace-programs.js";
|
|
11
|
-
const PREFERRED = "/tsconfig.json";
|
|
12
|
-
/** The configurations of one directory in the order a file joins them: `tsconfig.json` first. */
|
|
13
|
-
function byPreference(a, b) {
|
|
14
|
-
const first = a.endsWith(PREFERRED) ? 0 : 1;
|
|
15
|
-
const second = b.endsWith(PREFERRED) ? 0 : 1;
|
|
16
|
-
return first - second || (a < b ? -1 : a > b ? 1 : 0);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Per configuration of `configFiles`, the absolute paths of the test files that join it:
|
|
20
|
-
* each file below `root` a pattern of `patterns` names, that no configuration's file list
|
|
21
|
-
* holds, joins the configuration nearest at or above its directory when no `package.json`
|
|
22
|
-
* sits between them. A configuration the compiler cannot read lists nothing and is joined
|
|
23
|
-
* by nothing.
|
|
24
|
-
*/
|
|
25
|
-
export function joinedTestFiles(engine, host, root, configFiles, patterns) {
|
|
26
|
-
const listed = new Set();
|
|
27
|
-
const byDir = new Map();
|
|
28
|
-
for (const configFile of configFiles) {
|
|
29
|
-
let fileNames;
|
|
30
|
-
try {
|
|
31
|
-
fileNames = engine.parseConfigFile(configFile).fileNames;
|
|
32
|
-
}
|
|
33
|
-
catch {
|
|
34
|
-
continue;
|
|
35
|
-
}
|
|
36
|
-
fileNames.forEach((name) => listed.add(name));
|
|
37
|
-
const dir = dirnamePath(configFile);
|
|
38
|
-
byDir.set(dir, [...(byDir.get(dir) ?? []), configFile].sort(byPreference));
|
|
39
|
-
}
|
|
40
|
-
const joins = new Map();
|
|
41
|
-
for (const path of sourcePaths(host, root)) {
|
|
42
|
-
const file = joinPath(root, path);
|
|
43
|
-
if (listed.has(file) || !patterns.some((pattern) => pattern.test(path))) {
|
|
44
|
-
continue;
|
|
45
|
-
}
|
|
46
|
-
for (let dir = dirnamePath(file);; dir = dirnamePath(dir)) {
|
|
47
|
-
const [nearest] = byDir.get(dir) ?? [];
|
|
48
|
-
if (nearest !== undefined) {
|
|
49
|
-
joins.set(nearest, [...(joins.get(nearest) ?? []), file]);
|
|
50
|
-
break;
|
|
51
|
-
}
|
|
52
|
-
if (host.kindOf(joinPath(dir, "package.json")) === "file" ||
|
|
53
|
-
dir === root ||
|
|
54
|
-
relativePath(root, dir) === undefined) {
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return joins;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* How the snapshot reads each configuration a test file joins: the program `programs`
|
|
63
|
-
* describes with the files added to its root files, or a configuration only the snapshot
|
|
64
|
-
* holds that extends the one `programs` writes, or the configuration itself, and lists
|
|
65
|
-
* every file the configuration lists and the joined ones.
|
|
66
|
-
*/
|
|
67
|
-
export function withJoinedTests(engine, host, programs, joins) {
|
|
68
|
-
const found = new Map(programs);
|
|
69
|
-
for (const [configFile, files] of joins) {
|
|
70
|
-
const program = programs.get(configFile);
|
|
71
|
-
if (program?.kind === "program") {
|
|
72
|
-
found.set(configFile, {
|
|
73
|
-
kind: "program",
|
|
74
|
-
params: {
|
|
75
|
-
...program.params,
|
|
76
|
-
rootFiles: [...(program.params.rootFiles ?? []), ...files],
|
|
77
|
-
},
|
|
78
|
-
});
|
|
79
|
-
continue;
|
|
80
|
-
}
|
|
81
|
-
let listed;
|
|
82
|
-
try {
|
|
83
|
-
listed =
|
|
84
|
-
program?.kind === "configuration"
|
|
85
|
-
? engine.parseConfigJson(JSON.parse(program.text), program.file).fileNames
|
|
86
|
-
: engine.parseConfigFile(configFile).fileNames;
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
continue;
|
|
90
|
-
}
|
|
91
|
-
const value = program?.kind === "configuration"
|
|
92
|
-
? { ...JSON.parse(program.text), files: [...listed, ...files] }
|
|
93
|
-
: { extends: configFile, files: [...listed, ...files] };
|
|
94
|
-
found.set(configFile, {
|
|
95
|
-
kind: "configuration",
|
|
96
|
-
file: program?.kind === "configuration" ? program.file : writtenPath(host, configFile),
|
|
97
|
-
text: `${JSON.stringify({ ...value, include: [] }, null, 2)}\n`,
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
return found;
|
|
101
|
-
}
|
package/dist/src/version.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The Contract version this analyzer implements. It is the resolved value of
|
|
3
|
-
* `contract_version` when no configuration source supplies one, and it moves
|
|
4
|
-
* independently of the analyzer's own version, which is the one the host answers
|
|
5
|
-
* from the package the analyzer was installed from.
|
|
6
|
-
*/
|
|
7
|
-
export const CONTRACT_VERSION = "8.0.0";
|
package/src/base-url.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { resolvePath } from "./paths.ts";
|
|
2
|
-
import type { Engine } from "./session.ts";
|
|
3
|
-
|
|
4
|
-
type CompilerOptions = ReturnType<Engine["parseConfigFile"]>["options"];
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* The `paths` one configuration's resolved options map under the compilers before version
|
|
8
|
-
* 7, each target absolute: a target is read against the effective `baseUrl`, and a specifier
|
|
9
|
-
* no other pattern maps is looked up below it. Undefined where no `baseUrl` is set, so the
|
|
10
|
-
* options' own `paths` stand. Version 7 reads no `baseUrl`:
|
|
11
|
-
* https://github.com/microsoft/TypeScript/issues/62207
|
|
12
|
-
*/
|
|
13
|
-
export function baseUrlPaths(options: CompilerOptions): Record<string, string[]> | undefined {
|
|
14
|
-
const baseUrl: unknown = Reflect.get(options, "baseUrl");
|
|
15
|
-
if (typeof baseUrl !== "string") {
|
|
16
|
-
return undefined;
|
|
17
|
-
}
|
|
18
|
-
return Object.fromEntries(
|
|
19
|
-
Object.entries({ "*": ["*"], ...options.paths }).map(([key, targets]) => [
|
|
20
|
-
key,
|
|
21
|
-
targets.map((target) => resolvePath(baseUrl, target)),
|
|
22
|
-
]),
|
|
23
|
-
);
|
|
24
|
-
}
|