@component-compass/cli 0.0.1 → 0.0.2
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/cli.js +8 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts +3 -2
- package/dist/commands/init.js +50 -62
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/scan.js +109 -82
- package/dist/commands/scan.js.map +1 -1
- package/dist/composition-rollup.d.ts +21 -0
- package/dist/composition-rollup.js +74 -0
- package/dist/composition-rollup.js.map +1 -0
- package/dist/config/loader.js +5 -3
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +1 -2
- package/dist/config/schema.js.map +1 -1
- package/dist/identity.d.ts +12 -0
- package/dist/identity.js +25 -0
- package/dist/identity.js.map +1 -1
- package/dist/manifest/barrel-parser.d.ts +20 -0
- package/dist/manifest/barrel-parser.js +101 -16
- package/dist/manifest/barrel-parser.js.map +1 -1
- package/dist/manifest/derived-manifest-stub.d.ts +9 -0
- package/dist/manifest/derived-manifest-stub.js +11 -0
- package/dist/manifest/derived-manifest-stub.js.map +1 -0
- package/dist/manifest/diagnostic-filter.d.ts +12 -0
- package/dist/manifest/diagnostic-filter.js +23 -0
- package/dist/manifest/diagnostic-filter.js.map +1 -0
- package/dist/manifest/lazy-resolver.d.ts +52 -0
- package/dist/manifest/lazy-resolver.js +405 -0
- package/dist/manifest/lazy-resolver.js.map +1 -0
- package/dist/occurrences.d.ts +17 -0
- package/dist/occurrences.js +73 -0
- package/dist/occurrences.js.map +1 -0
- package/dist/reporter/index.d.ts +26 -3
- package/dist/reporter/index.js +68 -5
- package/dist/reporter/index.js.map +1 -1
- package/dist/reporter/json.d.ts +6 -2
- package/dist/reporter/json.js +7 -3
- package/dist/reporter/json.js.map +1 -1
- package/dist/reporter/stdout.d.ts +2 -2
- package/dist/reporter/stdout.js +11 -23
- package/dist/reporter/stdout.js.map +1 -1
- package/dist/rollup.js +0 -1
- package/dist/rollup.js.map +1 -1
- package/dist/seeds.d.ts +40 -0
- package/dist/seeds.js +114 -0
- package/dist/seeds.js.map +1 -0
- package/dist/types.d.ts +0 -1
- package/package.json +9 -9
- package/schema/config.schema.json +2 -10
- package/dist/graph/builder.d.ts +0 -25
- package/dist/graph/builder.js +0 -176
- package/dist/graph/builder.js.map +0 -1
- package/dist/manifest/discovery.d.ts +0 -24
- package/dist/manifest/discovery.js +0 -194
- package/dist/manifest/discovery.js.map +0 -1
- package/dist/manifest/index.d.ts +0 -6
- package/dist/manifest/index.js +0 -98
- package/dist/manifest/index.js.map +0 -1
- package/dist/manifest/resolver.d.ts +0 -30
- package/dist/manifest/resolver.js +0 -136
- package/dist/manifest/resolver.js.map +0 -1
- package/dist/manifest/run-discovery.d.ts +0 -12
- package/dist/manifest/run-discovery.js +0 -46
- package/dist/manifest/run-discovery.js.map +0 -1
- package/dist/manifest/types.d.ts +0 -3
- package/dist/manifest/types.js +0 -2
- package/dist/manifest/types.js.map +0 -1
- package/dist/reporter/types.d.ts +0 -69
- package/dist/reporter/types.js +0 -2
- package/dist/reporter/types.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporter/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporter/index.ts"],"names":[],"mappings":"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"}
|
package/dist/reporter/json.d.ts
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { ScanOutput } from "@component-compass/plugin-core";
|
|
2
|
+
/**
|
|
3
|
+
* Writes the v2 ScanOutput artifact to disk as pretty-printed JSON.
|
|
4
|
+
* Creates parent directories as needed.
|
|
5
|
+
*/
|
|
6
|
+
export declare function writeJson(output: ScanOutput, outputPath: string): Promise<void>;
|
package/dist/reporter/json.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { writeFile, mkdir } from "node:fs/promises";
|
|
2
2
|
import { dirname } from "node:path";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Writes the v2 ScanOutput artifact to disk as pretty-printed JSON.
|
|
5
|
+
* Creates parent directories as needed.
|
|
6
|
+
*/
|
|
7
|
+
export async function writeJson(output, outputPath) {
|
|
8
|
+
await mkdir(dirname(outputPath), { recursive: true });
|
|
9
|
+
await writeFile(outputPath, `${JSON.stringify(output, null, 2)}\n`, "utf8");
|
|
6
10
|
}
|
|
7
11
|
//# sourceMappingURL=json.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/reporter/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/reporter/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAkB,EAAE,UAAkB;IACpE,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function printSummary(
|
|
1
|
+
import type { ScanOutput } from "@component-compass/plugin-core";
|
|
2
|
+
export declare function printSummary(out: ScanOutput, outputPath: string): void;
|
package/dist/reporter/stdout.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
export function printSummary(
|
|
2
|
-
const { envelope,
|
|
1
|
+
export function printSummary(out, outputPath) {
|
|
2
|
+
const { envelope, components, stats } = out;
|
|
3
3
|
const lines = [];
|
|
4
4
|
lines.push("");
|
|
5
5
|
lines.push("component-compass scan");
|
|
6
6
|
lines.push("──────────────────────");
|
|
7
7
|
lines.push(`scanId: ${envelope.scanId}`);
|
|
8
8
|
lines.push(`repoId: ${envelope.repoId}`);
|
|
9
|
-
lines.push(`commit: ${envelope.commitSha ?? "(none)"}`);
|
|
10
|
-
lines.push(`branch: ${envelope.branch ?? "(none)"}`);
|
|
11
9
|
lines.push(`timestamp: ${envelope.timestamp}`);
|
|
12
10
|
lines.push("");
|
|
13
11
|
lines.push(`Scanned ${stats.filesScanned} files in ${(stats.scanDurationMs / 1000).toFixed(1)}s — ${stats.filesWithUsage} files use design system components`);
|
|
12
|
+
lines.push(`Components detected: ${stats.componentsDetected}`);
|
|
13
|
+
lines.push(`Total occurrences: ${stats.totalOccurrences}`);
|
|
14
14
|
lines.push("");
|
|
15
15
|
const sorted = [...components]
|
|
16
|
-
.sort((a, b) => b.
|
|
16
|
+
.sort((a, b) => b.stats.occurrenceCount - a.stats.occurrenceCount)
|
|
17
17
|
.slice(0, 5);
|
|
18
18
|
if (sorted.length > 0) {
|
|
19
19
|
lines.push("Top by usage:");
|
|
@@ -22,31 +22,19 @@ export function printSummary(doc, outputPath) {
|
|
|
22
22
|
for (const [i, c] of sorted.entries()) {
|
|
23
23
|
const label = labels[i] ?? "";
|
|
24
24
|
const pad = " ".repeat(widest - label.length + 2);
|
|
25
|
-
lines.push(` ${label}${pad}${c.
|
|
25
|
+
lines.push(` ${label}${pad}${c.stats.occurrenceCount} [${c.identity.kind}]`);
|
|
26
26
|
}
|
|
27
27
|
lines.push("");
|
|
28
28
|
}
|
|
29
|
-
if (warnings.length > 0) {
|
|
30
|
-
const grouped = new Map();
|
|
31
|
-
for (const w of warnings)
|
|
32
|
-
grouped.set(w.code, (grouped.get(w.code) ?? 0) + 1);
|
|
33
|
-
lines.push(`⚠ ${warnings.length} warnings (see component-compass.json#/warnings)`);
|
|
34
|
-
for (const [code, count] of grouped)
|
|
35
|
-
lines.push(` - ${code} × ${count}`);
|
|
36
|
-
lines.push("");
|
|
37
|
-
}
|
|
38
29
|
lines.push(`→ ${outputPath}`);
|
|
39
30
|
lines.push("");
|
|
40
31
|
process.stdout.write(lines.join("\n"));
|
|
41
32
|
}
|
|
42
33
|
function componentLabel(c) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
? c.source.filePath
|
|
49
|
-
: "(unknown)";
|
|
50
|
-
return `${sourceLabel}::${c.export}`;
|
|
34
|
+
const { identity } = c;
|
|
35
|
+
if (identity.kind === "custom-element")
|
|
36
|
+
return identity.tagName ?? "(unknown)";
|
|
37
|
+
const pkg = identity.packageName ?? identity.filePath ?? "(unknown)";
|
|
38
|
+
return `${pkg}::${identity.exportName ?? "(unknown)"}`;
|
|
51
39
|
}
|
|
52
40
|
//# sourceMappingURL=stdout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdout.js","sourceRoot":"","sources":["../../src/reporter/stdout.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"stdout.js","sourceRoot":"","sources":["../../src/reporter/stdout.ts"],"names":[],"mappings":"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"}
|
package/dist/rollup.js
CHANGED
package/dist/rollup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollup.js","sourceRoot":"","sources":["../src/rollup.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rollup.js","sourceRoot":"","sources":["../src/rollup.ts"],"names":[],"mappings":"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"}
|
package/dist/seeds.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds per-component seeds from a resolver-emitted snapshot,
|
|
3
|
+
* parser-emitted occurrences, and the workspace tag rules. Seeds are the
|
|
4
|
+
* per-component input to `rollupOccurrencesToComponents`: they carry
|
|
5
|
+
* identity, derivedTags, and manifest enrichment but no occurrence data
|
|
6
|
+
* (that is merged separately during rollup).
|
|
7
|
+
*
|
|
8
|
+
* Pure function; no I/O.
|
|
9
|
+
*/
|
|
10
|
+
import type { IndexedComponent, ParseResult } from "@component-compass/plugin-core";
|
|
11
|
+
import type { TagRule } from "./config/schema.js";
|
|
12
|
+
import type { ComponentSeed } from "./rollup.js";
|
|
13
|
+
/**
|
|
14
|
+
* One entry in the resolver snapshot. Each entry pairs an `IndexedComponent`
|
|
15
|
+
* (the manifest-shaped record) with an `enrichmentSource` label distinguishing
|
|
16
|
+
* authored manifest data from heuristically-derived enrichment.
|
|
17
|
+
*/
|
|
18
|
+
export type SnapshotEntry = {
|
|
19
|
+
component: IndexedComponent;
|
|
20
|
+
enrichmentSource: "authored" | "derived";
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Project the resolver snapshot AND parser-emitted occurrences into
|
|
24
|
+
* ComponentSeeds.
|
|
25
|
+
*
|
|
26
|
+
* Two sources contribute:
|
|
27
|
+
* 1. Snapshotted components — full enrichment via `manifestComponentToOutput`,
|
|
28
|
+
* labelled with the snapshot entry's `enrichmentSource`.
|
|
29
|
+
* 2. Components observed in parser walks but absent from the snapshot —
|
|
30
|
+
* emitted with `manifest: null` so they surface in `components[]` per
|
|
31
|
+
* the realignment principle ("manifest is enrichment, not gate").
|
|
32
|
+
*
|
|
33
|
+
* Dedupe by stable id; snapshotted seeds win.
|
|
34
|
+
*
|
|
35
|
+
* Scope derivation follows the three-lane model in identity.ts:
|
|
36
|
+
* - local → source.type === "local"
|
|
37
|
+
* - ds → external + derivedTags.length > 0
|
|
38
|
+
* - external → external + no matching tag rules
|
|
39
|
+
*/
|
|
40
|
+
export declare function buildComponentSeeds(snapshot: SnapshotEntry[], parseResults: ParseResult[], tagRules: TagRule[] | undefined): ComponentSeed[];
|
package/dist/seeds.js
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds per-component seeds from a resolver-emitted snapshot,
|
|
3
|
+
* parser-emitted occurrences, and the workspace tag rules. Seeds are the
|
|
4
|
+
* per-component input to `rollupOccurrencesToComponents`: they carry
|
|
5
|
+
* identity, derivedTags, and manifest enrichment but no occurrence data
|
|
6
|
+
* (that is merged separately during rollup).
|
|
7
|
+
*
|
|
8
|
+
* Pure function; no I/O.
|
|
9
|
+
*/
|
|
10
|
+
import { evaluateTagRules } from "./config/tag-rules.js";
|
|
11
|
+
import { manifestComponentToOutput } from "./reporter/index.js";
|
|
12
|
+
import { computeOutputIdentity, computeStableId, computeStableIdFromComponentId, } from "./identity.js";
|
|
13
|
+
/**
|
|
14
|
+
* Project the resolver snapshot AND parser-emitted occurrences into
|
|
15
|
+
* ComponentSeeds.
|
|
16
|
+
*
|
|
17
|
+
* Two sources contribute:
|
|
18
|
+
* 1. Snapshotted components — full enrichment via `manifestComponentToOutput`,
|
|
19
|
+
* labelled with the snapshot entry's `enrichmentSource`.
|
|
20
|
+
* 2. Components observed in parser walks but absent from the snapshot —
|
|
21
|
+
* emitted with `manifest: null` so they surface in `components[]` per
|
|
22
|
+
* the realignment principle ("manifest is enrichment, not gate").
|
|
23
|
+
*
|
|
24
|
+
* Dedupe by stable id; snapshotted seeds win.
|
|
25
|
+
*
|
|
26
|
+
* Scope derivation follows the three-lane model in identity.ts:
|
|
27
|
+
* - local → source.type === "local"
|
|
28
|
+
* - ds → external + derivedTags.length > 0
|
|
29
|
+
* - external → external + no matching tag rules
|
|
30
|
+
*/
|
|
31
|
+
export function buildComponentSeeds(snapshot, parseResults, tagRules) {
|
|
32
|
+
const seedsById = new Map();
|
|
33
|
+
// 1. Resolver-snapshotted components first (so they win on dedupe).
|
|
34
|
+
for (const entry of snapshot) {
|
|
35
|
+
const componentId = indexedToComponentId(entry.component);
|
|
36
|
+
const packageName = entry.component.source.type === "external"
|
|
37
|
+
? entry.component.source.package
|
|
38
|
+
: null;
|
|
39
|
+
const derivedTags = evaluateTagRules(packageName, tagRules);
|
|
40
|
+
const via = defaultVia(entry.component);
|
|
41
|
+
const identity = computeOutputIdentity({
|
|
42
|
+
componentId,
|
|
43
|
+
via,
|
|
44
|
+
derivedTags,
|
|
45
|
+
repoId: "",
|
|
46
|
+
});
|
|
47
|
+
const id = computeStableId(identity);
|
|
48
|
+
const manifest = manifestComponentToOutput(entry.component, entry.enrichmentSource);
|
|
49
|
+
seedsById.set(id, { id, identity, derivedTags, manifest });
|
|
50
|
+
}
|
|
51
|
+
// 2. Components observed in parser walks but not yet seeded.
|
|
52
|
+
// Emitted with manifest: null per the realignment principle.
|
|
53
|
+
for (const result of parseResults) {
|
|
54
|
+
for (const occ of result.occurrences) {
|
|
55
|
+
const id = computeStableIdFromComponentId(occ.componentId);
|
|
56
|
+
if (seedsById.has(id))
|
|
57
|
+
continue;
|
|
58
|
+
const packageName = occ.componentId.source.type === "external"
|
|
59
|
+
? occ.componentId.source.package
|
|
60
|
+
: null;
|
|
61
|
+
const derivedTags = evaluateTagRules(packageName, tagRules);
|
|
62
|
+
const identity = computeOutputIdentity({
|
|
63
|
+
componentId: occ.componentId,
|
|
64
|
+
via: defaultViaForKind(occ.componentId),
|
|
65
|
+
derivedTags,
|
|
66
|
+
repoId: "",
|
|
67
|
+
});
|
|
68
|
+
seedsById.set(id, { id, identity, derivedTags, manifest: null });
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return [...seedsById.values()];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Convert an `IndexedComponent` to a `ComponentId` for use with
|
|
75
|
+
* `computeOutputIdentity`. `IndexedComponent` extends `ManifestComponent`
|
|
76
|
+
* which shares the same `source` / `kind` / `export` / `tagName` fields.
|
|
77
|
+
*/
|
|
78
|
+
function indexedToComponentId(c) {
|
|
79
|
+
if (c.kind === "custom-element") {
|
|
80
|
+
return {
|
|
81
|
+
kind: "custom-element",
|
|
82
|
+
tagName: c.tagName,
|
|
83
|
+
source: c.source,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
kind: c.kind,
|
|
88
|
+
export: c.export,
|
|
89
|
+
source: c.source,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Infer a default `via` for a snapshotted seed based on component kind.
|
|
94
|
+
* Only `via.kind` is consumed by `computeOutputIdentity`; the required
|
|
95
|
+
* `specifier`/`import` fields on `direct-import` are not meaningful for
|
|
96
|
+
* zero-occurrence seeds and are left as empty strings.
|
|
97
|
+
*/
|
|
98
|
+
function defaultVia(c) {
|
|
99
|
+
if (c.kind === "custom-element") {
|
|
100
|
+
return { kind: "html-tag" };
|
|
101
|
+
}
|
|
102
|
+
return { kind: "direct-import", specifier: "", import: "" };
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Infer a default `via` for an occurrence-observed seed based on the
|
|
106
|
+
* component's kind. Used when seeding a component that has no snapshot entry.
|
|
107
|
+
*/
|
|
108
|
+
function defaultViaForKind(c) {
|
|
109
|
+
if (c.kind === "custom-element") {
|
|
110
|
+
return { kind: "html-tag" };
|
|
111
|
+
}
|
|
112
|
+
return { kind: "direct-import", specifier: "", import: "" };
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=seeds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seeds.js","sourceRoot":"","sources":["../src/seeds.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@component-compass/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "Open-source CLI for measuring design-system component usage across multi-framework consumer repos.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.js",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
9
|
"bin": {
|
|
10
|
-
"compass": "
|
|
11
|
-
"component-compass": "
|
|
10
|
+
"compass": "dist/cli.js",
|
|
11
|
+
"component-compass": "dist/cli.js"
|
|
12
12
|
},
|
|
13
13
|
"files": [
|
|
14
14
|
"dist",
|
|
@@ -35,12 +35,12 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@babel/parser": "^7.29.3",
|
|
37
37
|
"@babel/types": "^7.29.0",
|
|
38
|
-
"@component-compass/ast-utils": "^0.0.
|
|
39
|
-
"@component-compass/parser-html": "^0.0.
|
|
40
|
-
"@component-compass/parser-lit": "^0.0.
|
|
41
|
-
"@component-compass/parser-react": "^0.0.
|
|
42
|
-
"@component-compass/parser-vue": "^0.0.
|
|
43
|
-
"@component-compass/plugin-core": "^0.0.
|
|
38
|
+
"@component-compass/ast-utils": "^0.0.2",
|
|
39
|
+
"@component-compass/parser-html": "^0.0.2",
|
|
40
|
+
"@component-compass/parser-lit": "^0.0.2",
|
|
41
|
+
"@component-compass/parser-react": "^0.0.2",
|
|
42
|
+
"@component-compass/parser-vue": "^0.0.2",
|
|
43
|
+
"@component-compass/plugin-core": "^0.0.2",
|
|
44
44
|
"@vue/compiler-sfc": "^3.5.33",
|
|
45
45
|
"ajv": "^8.20.0",
|
|
46
46
|
"glob": "^13.0.0",
|
|
@@ -4,21 +4,13 @@
|
|
|
4
4
|
"title": "component-compass config",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"additionalProperties": false,
|
|
7
|
-
"required": ["repoId", "
|
|
7
|
+
"required": ["repoId", "include"],
|
|
8
8
|
"properties": {
|
|
9
9
|
"$schema": { "type": "string" },
|
|
10
10
|
"repoId": { "type": "string", "minLength": 1 },
|
|
11
11
|
"packageScopes": {
|
|
12
12
|
"type": "array",
|
|
13
|
-
"items": { "type": "string", "minLength": 1 }
|
|
14
|
-
"minItems": 1
|
|
15
|
-
},
|
|
16
|
-
"manifestSources": {
|
|
17
|
-
"type": "object",
|
|
18
|
-
"additionalProperties": {
|
|
19
|
-
"type": "array",
|
|
20
|
-
"items": { "type": "string", "minLength": 1 }
|
|
21
|
-
}
|
|
13
|
+
"items": { "type": "string", "minLength": 1 }
|
|
22
14
|
},
|
|
23
15
|
"include": {
|
|
24
16
|
"type": "array",
|
package/dist/graph/builder.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { ScanEnvelope } from "@component-compass/plugin-core";
|
|
2
|
-
import type { ComponentIndex } from "../manifest/types.js";
|
|
3
|
-
import type { ParseResult } from "@component-compass/plugin-core";
|
|
4
|
-
import type { Warning } from "../types.js";
|
|
5
|
-
import type { OutputDocument, OutputManifestRef } from "../reporter/types.js";
|
|
6
|
-
export type BuildGraphOptions = {
|
|
7
|
-
index: ComponentIndex;
|
|
8
|
-
results: ParseResult[];
|
|
9
|
-
filesScanned: number;
|
|
10
|
-
scanDurationMs: number;
|
|
11
|
-
tool: {
|
|
12
|
-
name: string;
|
|
13
|
-
version: string;
|
|
14
|
-
};
|
|
15
|
-
repo: {
|
|
16
|
-
name: string;
|
|
17
|
-
root: string;
|
|
18
|
-
commit?: string | undefined;
|
|
19
|
-
};
|
|
20
|
-
manifests: OutputManifestRef[];
|
|
21
|
-
captureValues: boolean;
|
|
22
|
-
extraWarnings?: Warning[];
|
|
23
|
-
envelope: ScanEnvelope;
|
|
24
|
-
};
|
|
25
|
-
export declare function buildGraph(opts: BuildGraphOptions): OutputDocument;
|
package/dist/graph/builder.js
DELETED
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
import { serialiseComponentId, compareComponentId } from "@component-compass/plugin-core";
|
|
2
|
-
import { relativizePath } from "../util/posix.js";
|
|
3
|
-
export function buildGraph(opts) {
|
|
4
|
-
const componentsById = new Map();
|
|
5
|
-
const occurrencesByCompId = new Map();
|
|
6
|
-
const graph = {};
|
|
7
|
-
const filesWithUsage = new Set();
|
|
8
|
-
const warnings = [...(opts.extraWarnings ?? [])];
|
|
9
|
-
for (const r of opts.results) {
|
|
10
|
-
warnings.push(...r.warnings);
|
|
11
|
-
for (const occ of r.occurrences) {
|
|
12
|
-
const key = serialiseComponentId(occ.componentId);
|
|
13
|
-
const indexed = opts.index.byId.get(key);
|
|
14
|
-
filesWithUsage.add(occ.loc.file);
|
|
15
|
-
const outOcc = toOutputOccurrence(occ, opts.captureValues);
|
|
16
|
-
let bucket = occurrencesByCompId.get(key);
|
|
17
|
-
if (!bucket) {
|
|
18
|
-
bucket = [];
|
|
19
|
-
occurrencesByCompId.set(key, bucket);
|
|
20
|
-
}
|
|
21
|
-
bucket.push(outOcc);
|
|
22
|
-
if (!componentsById.has(key)) {
|
|
23
|
-
// Manifest-indexed components retain their full manifest metadata.
|
|
24
|
-
// For occurrences with no byId entry — opportunistic externals
|
|
25
|
-
// (Persona B), local-source identities (in-repo definitions), and
|
|
26
|
-
// unknown-source identities (unmapped hyphenated tags) — synthesise
|
|
27
|
-
// a minimal OutputComponent from the occurrence's componentId so the
|
|
28
|
-
// emission reaches the JSON output.
|
|
29
|
-
componentsById.set(key, indexed ? makeOutputComponent(indexed) : synthesiseOutputComponent(occ.componentId));
|
|
30
|
-
}
|
|
31
|
-
const fileKey = occ.loc.file;
|
|
32
|
-
let list = graph[fileKey];
|
|
33
|
-
if (!list) {
|
|
34
|
-
list = [];
|
|
35
|
-
graph[fileKey] = list;
|
|
36
|
-
}
|
|
37
|
-
if (!list.some((g) => serialiseComponentId(g) === key))
|
|
38
|
-
list.push(occ.componentId);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
for (const [key, occs] of occurrencesByCompId) {
|
|
42
|
-
const comp = componentsById.get(key);
|
|
43
|
-
if (!comp)
|
|
44
|
-
continue;
|
|
45
|
-
occs.sort(compareOccurrence);
|
|
46
|
-
comp.occurrences = occs;
|
|
47
|
-
}
|
|
48
|
-
const components = [...componentsById.values()].sort((a, b) => compareComponentId(componentIdOf(a), componentIdOf(b)));
|
|
49
|
-
const root = opts.repo.root;
|
|
50
|
-
for (const c of components)
|
|
51
|
-
for (const o of c.occurrences)
|
|
52
|
-
o.file = relativizePath(o.file, root);
|
|
53
|
-
const relativisedGraph = {};
|
|
54
|
-
for (const [file, entries] of Object.entries(graph)) {
|
|
55
|
-
relativisedGraph[relativizePath(file, root)] = entries;
|
|
56
|
-
}
|
|
57
|
-
for (const w of warnings) {
|
|
58
|
-
if ("file" in w && w.file)
|
|
59
|
-
w.file = relativizePath(w.file, root);
|
|
60
|
-
}
|
|
61
|
-
const repo = { name: opts.repo.name, root: opts.repo.root };
|
|
62
|
-
if (opts.repo.commit !== undefined)
|
|
63
|
-
repo.commit = opts.repo.commit;
|
|
64
|
-
const manifestsSorted = [...opts.manifests].sort((a, b) => a.package.localeCompare(b.package));
|
|
65
|
-
return {
|
|
66
|
-
envelope: opts.envelope,
|
|
67
|
-
components,
|
|
68
|
-
schemaVersion: "2.0.0",
|
|
69
|
-
scannedAt: new Date().toISOString(),
|
|
70
|
-
tool: opts.tool,
|
|
71
|
-
repo,
|
|
72
|
-
manifests: manifestsSorted,
|
|
73
|
-
stats: {
|
|
74
|
-
filesScanned: opts.filesScanned,
|
|
75
|
-
filesWithUsage: filesWithUsage.size,
|
|
76
|
-
scanDurationMs: opts.scanDurationMs,
|
|
77
|
-
componentsDetected: components.length,
|
|
78
|
-
totalOccurrences: components.reduce((n, c) => n + c.occurrences.length, 0),
|
|
79
|
-
},
|
|
80
|
-
graph: sortGraph(relativisedGraph),
|
|
81
|
-
warnings,
|
|
82
|
-
extensions: {},
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
function makeOutputComponent(indexed) {
|
|
86
|
-
if (indexed.kind === "custom-element") {
|
|
87
|
-
const out = {
|
|
88
|
-
kind: "custom-element",
|
|
89
|
-
tagName: indexed.tagName,
|
|
90
|
-
source: indexed.source,
|
|
91
|
-
deprecated: indexed.deprecated,
|
|
92
|
-
props: indexed.props,
|
|
93
|
-
occurrences: [],
|
|
94
|
-
extensions: {},
|
|
95
|
-
};
|
|
96
|
-
if (indexed.events && indexed.events.length > 0)
|
|
97
|
-
out.events = indexed.events;
|
|
98
|
-
if (indexed.slots && indexed.slots.length > 0)
|
|
99
|
-
out.slots = indexed.slots;
|
|
100
|
-
return out;
|
|
101
|
-
}
|
|
102
|
-
return {
|
|
103
|
-
kind: indexed.kind,
|
|
104
|
-
source: indexed.source,
|
|
105
|
-
export: indexed.export,
|
|
106
|
-
deprecated: indexed.deprecated,
|
|
107
|
-
props: indexed.props,
|
|
108
|
-
occurrences: [],
|
|
109
|
-
extensions: {},
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
function synthesiseOutputComponent(id) {
|
|
113
|
-
if (id.kind === "custom-element") {
|
|
114
|
-
return {
|
|
115
|
-
kind: "custom-element",
|
|
116
|
-
tagName: id.tagName,
|
|
117
|
-
source: id.source,
|
|
118
|
-
deprecated: false,
|
|
119
|
-
props: [],
|
|
120
|
-
occurrences: [],
|
|
121
|
-
extensions: {},
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
return {
|
|
125
|
-
kind: id.kind,
|
|
126
|
-
source: id.source,
|
|
127
|
-
export: id.export,
|
|
128
|
-
deprecated: false,
|
|
129
|
-
props: [],
|
|
130
|
-
occurrences: [],
|
|
131
|
-
extensions: {},
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
function componentIdOf(c) {
|
|
135
|
-
if (c.kind === "custom-element")
|
|
136
|
-
return { kind: "custom-element", tagName: c.tagName, source: c.source };
|
|
137
|
-
return { kind: c.kind, export: c.export, source: c.source };
|
|
138
|
-
}
|
|
139
|
-
function toOutputOccurrence(occ, captureValues) {
|
|
140
|
-
const props = {};
|
|
141
|
-
for (const p of occ.props) {
|
|
142
|
-
if (captureValues && p.literalValue !== undefined && !p.isDynamic) {
|
|
143
|
-
props[p.name] = p.literalValue;
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
props[p.name] = null;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
const out = {
|
|
150
|
-
file: occ.loc.file,
|
|
151
|
-
line: occ.loc.line,
|
|
152
|
-
column: occ.loc.column,
|
|
153
|
-
via: occ.via,
|
|
154
|
-
props,
|
|
155
|
-
};
|
|
156
|
-
return out;
|
|
157
|
-
}
|
|
158
|
-
function compareOccurrence(a, b) {
|
|
159
|
-
if (a.file !== b.file)
|
|
160
|
-
return a.file.localeCompare(b.file);
|
|
161
|
-
if (a.line !== b.line)
|
|
162
|
-
return a.line - b.line;
|
|
163
|
-
return a.column - b.column;
|
|
164
|
-
}
|
|
165
|
-
function sortGraph(g) {
|
|
166
|
-
const keys = Object.keys(g).sort();
|
|
167
|
-
const out = {};
|
|
168
|
-
for (const k of keys) {
|
|
169
|
-
const arr = g[k];
|
|
170
|
-
if (!arr)
|
|
171
|
-
continue;
|
|
172
|
-
out[k] = [...arr].sort(compareComponentId);
|
|
173
|
-
}
|
|
174
|
-
return out;
|
|
175
|
-
}
|
|
176
|
-
//# sourceMappingURL=builder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/graph/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { ResolvedManifest } from "./resolver.js";
|
|
2
|
-
export type DiscoverManifestOptions = {
|
|
3
|
-
repoRoot: string;
|
|
4
|
-
packageName: string;
|
|
5
|
-
manifestSources: Record<string, string[]>;
|
|
6
|
-
};
|
|
7
|
-
export type DiscoveryDiagnostic = {
|
|
8
|
-
code: "no-manifest-found";
|
|
9
|
-
packageName: string;
|
|
10
|
-
} | {
|
|
11
|
-
code: "untraceable-barrel";
|
|
12
|
-
packageName: string;
|
|
13
|
-
resolvedFile: string;
|
|
14
|
-
} | {
|
|
15
|
-
code: "cycle-detected";
|
|
16
|
-
packageName: string;
|
|
17
|
-
file: string;
|
|
18
|
-
};
|
|
19
|
-
export type DiscoveryResult = {
|
|
20
|
-
manifest: ResolvedManifest | null;
|
|
21
|
-
diagnostics: DiscoveryDiagnostic[];
|
|
22
|
-
};
|
|
23
|
-
export declare function discoverManifest(opts: DiscoverManifestOptions): ResolvedManifest | null;
|
|
24
|
-
export declare function discoverManifestWithDiagnostics(opts: DiscoverManifestOptions): DiscoveryResult;
|