@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.
Files changed (71) hide show
  1. package/README.md +1 -1
  2. package/dist/cli.js +8 -4
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/init.d.ts +3 -2
  5. package/dist/commands/init.js +50 -62
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/commands/scan.js +109 -82
  8. package/dist/commands/scan.js.map +1 -1
  9. package/dist/composition-rollup.d.ts +21 -0
  10. package/dist/composition-rollup.js +74 -0
  11. package/dist/composition-rollup.js.map +1 -0
  12. package/dist/config/loader.js +5 -3
  13. package/dist/config/loader.js.map +1 -1
  14. package/dist/config/schema.d.ts +1 -2
  15. package/dist/config/schema.js.map +1 -1
  16. package/dist/identity.d.ts +12 -0
  17. package/dist/identity.js +25 -0
  18. package/dist/identity.js.map +1 -1
  19. package/dist/manifest/barrel-parser.d.ts +20 -0
  20. package/dist/manifest/barrel-parser.js +101 -16
  21. package/dist/manifest/barrel-parser.js.map +1 -1
  22. package/dist/manifest/derived-manifest-stub.d.ts +9 -0
  23. package/dist/manifest/derived-manifest-stub.js +11 -0
  24. package/dist/manifest/derived-manifest-stub.js.map +1 -0
  25. package/dist/manifest/diagnostic-filter.d.ts +12 -0
  26. package/dist/manifest/diagnostic-filter.js +23 -0
  27. package/dist/manifest/diagnostic-filter.js.map +1 -0
  28. package/dist/manifest/lazy-resolver.d.ts +52 -0
  29. package/dist/manifest/lazy-resolver.js +405 -0
  30. package/dist/manifest/lazy-resolver.js.map +1 -0
  31. package/dist/occurrences.d.ts +17 -0
  32. package/dist/occurrences.js +73 -0
  33. package/dist/occurrences.js.map +1 -0
  34. package/dist/reporter/index.d.ts +26 -3
  35. package/dist/reporter/index.js +68 -5
  36. package/dist/reporter/index.js.map +1 -1
  37. package/dist/reporter/json.d.ts +6 -2
  38. package/dist/reporter/json.js +7 -3
  39. package/dist/reporter/json.js.map +1 -1
  40. package/dist/reporter/stdout.d.ts +2 -2
  41. package/dist/reporter/stdout.js +11 -23
  42. package/dist/reporter/stdout.js.map +1 -1
  43. package/dist/rollup.js +0 -1
  44. package/dist/rollup.js.map +1 -1
  45. package/dist/seeds.d.ts +40 -0
  46. package/dist/seeds.js +114 -0
  47. package/dist/seeds.js.map +1 -0
  48. package/dist/types.d.ts +0 -1
  49. package/package.json +9 -9
  50. package/schema/config.schema.json +2 -10
  51. package/dist/graph/builder.d.ts +0 -25
  52. package/dist/graph/builder.js +0 -176
  53. package/dist/graph/builder.js.map +0 -1
  54. package/dist/manifest/discovery.d.ts +0 -24
  55. package/dist/manifest/discovery.js +0 -194
  56. package/dist/manifest/discovery.js.map +0 -1
  57. package/dist/manifest/index.d.ts +0 -6
  58. package/dist/manifest/index.js +0 -98
  59. package/dist/manifest/index.js.map +0 -1
  60. package/dist/manifest/resolver.d.ts +0 -30
  61. package/dist/manifest/resolver.js +0 -136
  62. package/dist/manifest/resolver.js.map +0 -1
  63. package/dist/manifest/run-discovery.d.ts +0 -12
  64. package/dist/manifest/run-discovery.js +0 -46
  65. package/dist/manifest/run-discovery.js.map +0 -1
  66. package/dist/manifest/types.d.ts +0 -3
  67. package/dist/manifest/types.js +0 -2
  68. package/dist/manifest/types.js.map +0 -1
  69. package/dist/reporter/types.d.ts +0 -69
  70. package/dist/reporter/types.js +0 -2
  71. 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;AASH,OAAO,EAAE,6BAA6B,EAAsB,MAAM,cAAc,CAAC;AAEjF,MAAM,UAAU,eAAe,CAC7B,QAAsB,EACtB,KAAsB,EACtB,WAA+B;IAE/B,OAAO;QACL,QAAQ;QACR,UAAU,EAAE,6BAA6B,CAAC,WAAW,EAAE,KAAK,CAAC;QAC7D,WAAW;KACZ,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CACvC,CAAgC;IAEhC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,KAAK,GAAyC,EAAE,CAAC;IACvD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;YAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IACtE,CAAC;IACD,MAAM,GAAG,GAAmB,EAAE,KAAK,EAAE,CAAC;IACtC,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;QAAE,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;IAC3D,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporter/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,6 @@
1
- import type { OutputDocument } from "./types.js";
2
- export declare function writeJson(doc: OutputDocument, path: string): Promise<void>;
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>;
@@ -1,7 +1,11 @@
1
1
  import { writeFile, mkdir } from "node:fs/promises";
2
2
  import { dirname } from "node:path";
3
- export async function writeJson(doc, path) {
4
- await mkdir(dirname(path), { recursive: true });
5
- await writeFile(path, JSON.stringify(doc, null, 2), "utf8");
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,GAAmB,EAAE,IAAY;IAC/D,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC9D,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 { OutputDocument } from "./types.js";
2
- export declare function printSummary(doc: OutputDocument, outputPath: string): void;
1
+ import type { ScanOutput } from "@component-compass/plugin-core";
2
+ export declare function printSummary(out: ScanOutput, outputPath: string): void;
@@ -1,19 +1,19 @@
1
- export function printSummary(doc, outputPath) {
2
- const { envelope, stats, components, warnings } = doc;
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.occurrences.length - a.occurrences.length)
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.occurrences.length} [${c.kind}]`);
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
- if (c.kind === "custom-element")
44
- return c.tagName;
45
- const sourceLabel = c.source.type === "external"
46
- ? c.source.package
47
- : c.source.type === "local"
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":"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"}
1
+ {"version":3,"file":"stdout.js","sourceRoot":"","sources":["../../src/reporter/stdout.ts"],"names":[],"mappings":"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"}
package/dist/rollup.js CHANGED
@@ -72,7 +72,6 @@ export function rollupOccurrencesToComponents(occurrences, seeds) {
72
72
  manifest: seed.manifest,
73
73
  stats: { occurrenceCount: occs.length, fileCount: fileSet.size },
74
74
  props,
75
- edges: { renders: [], renderedBy: [] },
76
75
  };
77
76
  });
78
77
  }
@@ -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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"}
@@ -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
@@ -6,7 +6,6 @@ export type ResolvedConfig = {
6
6
  configDir: string;
7
7
  repoId: string;
8
8
  packageScopes: string[];
9
- manifestSources?: Record<string, string[]>;
10
9
  include: string[];
11
10
  exclude: string[];
12
11
  captureValues: boolean;
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@component-compass/cli",
3
- "version": "0.0.1",
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": "./dist/cli.js",
11
- "component-compass": "./dist/cli.js"
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.1",
39
- "@component-compass/parser-html": "^0.0.1",
40
- "@component-compass/parser-lit": "^0.0.1",
41
- "@component-compass/parser-react": "^0.0.1",
42
- "@component-compass/parser-vue": "^0.0.1",
43
- "@component-compass/plugin-core": "^0.0.1",
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", "packageScopes", "include"],
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",
@@ -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;
@@ -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;