@component-compass/cli 0.0.2 → 0.0.4

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 (112) hide show
  1. package/dist/cli.js +5 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/init.js +1 -3
  4. package/dist/commands/init.js.map +1 -1
  5. package/dist/commands/scan.d.ts +13 -1
  6. package/dist/commands/scan.js +192 -72
  7. package/dist/commands/scan.js.map +1 -1
  8. package/dist/composition-rollup.d.ts +16 -14
  9. package/dist/composition-rollup.js +33 -43
  10. package/dist/composition-rollup.js.map +1 -1
  11. package/dist/config/loader.js +5 -9
  12. package/dist/config/loader.js.map +1 -1
  13. package/dist/config/schema.d.ts +2 -15
  14. package/dist/config/schema.js.map +1 -1
  15. package/dist/envelope/index.d.ts +0 -9
  16. package/dist/envelope/index.js +1 -46
  17. package/dist/envelope/index.js.map +1 -1
  18. package/dist/identity.d.ts +19 -17
  19. package/dist/identity.js +42 -21
  20. package/dist/identity.js.map +1 -1
  21. package/dist/index.d.ts +2 -0
  22. package/dist/index.js +1 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/local-index/detect-react.d.ts +2 -1
  25. package/dist/local-index/detect-react.js +269 -72
  26. package/dist/local-index/detect-react.js.map +1 -1
  27. package/dist/local-index/detect-vue.d.ts +15 -1
  28. package/dist/local-index/detect-vue.js +130 -107
  29. package/dist/local-index/detect-vue.js.map +1 -1
  30. package/dist/local-index/detect-wc.d.ts +7 -1
  31. package/dist/local-index/detect-wc.js +56 -60
  32. package/dist/local-index/detect-wc.js.map +1 -1
  33. package/dist/local-index/index.d.ts +12 -4
  34. package/dist/local-index/index.js +40 -25
  35. package/dist/local-index/index.js.map +1 -1
  36. package/dist/manifest/barrel-parser.d.ts +10 -0
  37. package/dist/manifest/barrel-parser.js +11 -0
  38. package/dist/manifest/barrel-parser.js.map +1 -1
  39. package/dist/manifest/derived-manifest-stub.d.ts +16 -7
  40. package/dist/manifest/derived-manifest-stub.js +43 -7
  41. package/dist/manifest/derived-manifest-stub.js.map +1 -1
  42. package/dist/manifest/lazy-resolver.d.ts +52 -34
  43. package/dist/manifest/lazy-resolver.js +269 -69
  44. package/dist/manifest/lazy-resolver.js.map +1 -1
  45. package/dist/occurrences.d.ts +4 -4
  46. package/dist/occurrences.js +49 -9
  47. package/dist/occurrences.js.map +1 -1
  48. package/dist/parse-by-ext.d.ts +21 -0
  49. package/dist/parse-by-ext.js +53 -0
  50. package/dist/parse-by-ext.js.map +1 -0
  51. package/dist/reporter/index.d.ts +27 -28
  52. package/dist/reporter/index.js +99 -58
  53. package/dist/reporter/index.js.map +1 -1
  54. package/dist/reporter/stdout.js +4 -4
  55. package/dist/reporter/stdout.js.map +1 -1
  56. package/dist/rollup.d.ts +13 -6
  57. package/dist/rollup.js +9 -6
  58. package/dist/rollup.js.map +1 -1
  59. package/dist/scan/cem-index.d.ts +38 -0
  60. package/dist/scan/cem-index.js +139 -0
  61. package/dist/scan/cem-index.js.map +1 -0
  62. package/dist/scan/git-mtime.d.ts +2 -0
  63. package/dist/scan/git-mtime.js +22 -0
  64. package/dist/scan/git-mtime.js.map +1 -0
  65. package/dist/scan/meta.d.ts +5 -0
  66. package/dist/scan/meta.js +58 -0
  67. package/dist/scan/meta.js.map +1 -0
  68. package/dist/scan/stamp-deprecated.d.ts +16 -0
  69. package/dist/scan/stamp-deprecated.js +33 -0
  70. package/dist/scan/stamp-deprecated.js.map +1 -0
  71. package/dist/scan/stamp-version.d.ts +18 -0
  72. package/dist/scan/stamp-version.js +94 -0
  73. package/dist/scan/stamp-version.js.map +1 -0
  74. package/dist/seeds.d.ts +20 -19
  75. package/dist/seeds.js +136 -68
  76. package/dist/seeds.js.map +1 -1
  77. package/dist/types.d.ts +2 -5
  78. package/dist/util/git.d.ts +8 -0
  79. package/dist/util/git.js +73 -0
  80. package/dist/util/git.js.map +1 -1
  81. package/dist/util/progress.d.ts +21 -0
  82. package/dist/util/progress.js +54 -0
  83. package/dist/util/progress.js.map +1 -0
  84. package/dist/walker/files.d.ts +1 -0
  85. package/dist/walker/files.js +11 -5
  86. package/dist/walker/files.js.map +1 -1
  87. package/dist/workspace/build-graph.d.ts +2 -0
  88. package/dist/workspace/build-graph.js +117 -0
  89. package/dist/workspace/build-graph.js.map +1 -0
  90. package/dist/workspace/declared-deps.d.ts +5 -0
  91. package/dist/workspace/declared-deps.js +42 -0
  92. package/dist/workspace/declared-deps.js.map +1 -0
  93. package/dist/workspace/find-owning-package.d.ts +8 -0
  94. package/dist/workspace/find-owning-package.js +69 -0
  95. package/dist/workspace/find-owning-package.js.map +1 -0
  96. package/dist/workspace/index.d.ts +4 -0
  97. package/dist/workspace/index.js +4 -0
  98. package/dist/workspace/index.js.map +1 -0
  99. package/dist/workspace/types.d.ts +46 -0
  100. package/dist/workspace/types.js +13 -0
  101. package/dist/workspace/types.js.map +1 -0
  102. package/package.json +15 -7
  103. package/schema/config.schema.json +2 -24
  104. package/dist/config/tag-rules.d.ts +0 -2
  105. package/dist/config/tag-rules.js +0 -34
  106. package/dist/config/tag-rules.js.map +0 -1
  107. package/dist/local-index/walker.d.ts +0 -11
  108. package/dist/local-index/walker.js +0 -47
  109. package/dist/local-index/walker.js.map +0 -1
  110. package/dist/manifest/diagnostic-filter.d.ts +0 -12
  111. package/dist/manifest/diagnostic-filter.js +0 -23
  112. package/dist/manifest/diagnostic-filter.js.map +0 -1
@@ -33,6 +33,17 @@ export function parseBarrelTopLevelDetailed(source) {
33
33
  catch {
34
34
  return { reExports: [], unsupported: [] };
35
35
  }
36
+ return parseBarrelTopLevelDetailedFromAst(ast);
37
+ }
38
+ /**
39
+ * AST-taking variant of {@link parseBarrelTopLevelDetailed}. Lets callers
40
+ * that already hold a parsed `BabelFile` reuse it across passes (the lazy
41
+ * resolver caches barrel ASTs to avoid re-parsing the same file once per
42
+ * import resolution).
43
+ *
44
+ * Performs the same top-level analysis on `ast.program` — never re-parses.
45
+ */
46
+ export function parseBarrelTopLevelDetailedFromAst(ast) {
36
47
  const reExports = [];
37
48
  const unsupported = [];
38
49
  for (const node of ast.program.body) {
@@ -1 +1 @@
1
- {"version":3,"file":"barrel-parser.js","sourceRoot":"","sources":["../../src/manifest/barrel-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"barrel-parser.js","sourceRoot":"","sources":["../../src/manifest/barrel-parser.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,18 @@
1
- import type { DerivedManifestData } from "@component-compass/plugin-core";
1
+ import type { DerivedLeafPayload } from "@component-compass/plugin-core";
2
2
  /**
3
- * Phase 4 hook for extracting `derived` manifest data from leaf source when
4
- * no authored manifest exists. Phase 1 ships the contract only — extractor
5
- * implementations live in `manifest-react` / `manifest-vue` and land in
6
- * Phase 4. Until then this returns null and `components[].manifest` stays
7
- * null for any leaf without an authored manifest.
3
+ * Phase 4 hook: extract derived manifest data from leaf source when no
4
+ * authored manifest (CEM / CCM) exists.
5
+ *
6
+ * Fires only for workspace packages those whose realpath resolves outside
7
+ * `node_modules`. Published packages with only a `dist/` tree are skipped;
8
+ * both extractor implementations return `null` in that case.
9
+ *
10
+ * The extractor to run is inferred from the package's source content:
11
+ * - `.vue` files present in `src/` → manifest-vue extractor
12
+ * - Otherwise → manifest-react extractor (handles TS/JS source)
13
+ *
14
+ * Pre-MVP: source-mapping config (no source-mapping paradigm for publishing
15
+ * packages without source — pre-MVP scope) is out of scope. Only source that
16
+ * lives at the default `src/` path is walked.
8
17
  */
9
- export declare function extractDerivedManifest(_leafPackageDir: string): DerivedManifestData | null;
18
+ export declare function extractDerivedManifest(leafPackageDir: string): DerivedLeafPayload | null;
@@ -1,11 +1,47 @@
1
+ import { extractReactManifestSync } from "@component-compass/manifest-react";
2
+ import { extractVueManifestSync } from "@component-compass/manifest-vue";
3
+ import { readdirSync, existsSync } from "node:fs";
4
+ import { join } from "node:path";
1
5
  /**
2
- * Phase 4 hook for extracting `derived` manifest data from leaf source when
3
- * no authored manifest exists. Phase 1 ships the contract only — extractor
4
- * implementations live in `manifest-react` / `manifest-vue` and land in
5
- * Phase 4. Until then this returns null and `components[].manifest` stays
6
- * null for any leaf without an authored manifest.
6
+ * Phase 4 hook: extract derived manifest data from leaf source when no
7
+ * authored manifest (CEM / CCM) exists.
8
+ *
9
+ * Fires only for workspace packages those whose realpath resolves outside
10
+ * `node_modules`. Published packages with only a `dist/` tree are skipped;
11
+ * both extractor implementations return `null` in that case.
12
+ *
13
+ * The extractor to run is inferred from the package's source content:
14
+ * - `.vue` files present in `src/` → manifest-vue extractor
15
+ * - Otherwise → manifest-react extractor (handles TS/JS source)
16
+ *
17
+ * Pre-MVP: source-mapping config (no source-mapping paradigm for publishing
18
+ * packages without source — pre-MVP scope) is out of scope. Only source that
19
+ * lives at the default `src/` path is walked.
7
20
  */
8
- export function extractDerivedManifest(_leafPackageDir) {
9
- return null;
21
+ export function extractDerivedManifest(leafPackageDir) {
22
+ const srcDir = join(leafPackageDir, "src");
23
+ if (existsSync(srcDir) && hasVueSources(srcDir)) {
24
+ return extractVueManifestSync(leafPackageDir);
25
+ }
26
+ return extractReactManifestSync(leafPackageDir);
27
+ }
28
+ function hasVueSources(dir) {
29
+ let entries;
30
+ try {
31
+ entries = readdirSync(dir, { withFileTypes: true });
32
+ }
33
+ catch {
34
+ return false;
35
+ }
36
+ for (const entry of entries) {
37
+ const name = entry.name;
38
+ if (entry.isFile() && name.endsWith(".vue"))
39
+ return true;
40
+ if (entry.isDirectory()) {
41
+ if (hasVueSources(join(dir, name)))
42
+ return true;
43
+ }
44
+ }
45
+ return false;
10
46
  }
11
47
  //# sourceMappingURL=derived-manifest-stub.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"derived-manifest-stub.js","sourceRoot":"","sources":["../../src/manifest/derived-manifest-stub.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,eAAuB;IAC5D,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"derived-manifest-stub.js","sourceRoot":"","sources":["../../src/manifest/derived-manifest-stub.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAe,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB,CAAC,cAAsB;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAC3C,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,OAAO,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,wBAAwB,CAAC,cAAc,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAa,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACzD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,52 +1,70 @@
1
- import { type IndexedComponent, type LazyResolverHit, type ManifestRef } from "@component-compass/plugin-core";
1
+ import { type IndexedComponent, type LazyResolverHit, type ManifestRef, type Diagnostic, type DiagnosticCollector } from "@component-compass/plugin-core";
2
2
  import type { ResolveImport } from "../walker/resolve-import.js";
3
- export type ResolverDiagnostic = {
4
- code: "barrel-unsupported-form";
5
- file: string;
6
- form: string;
7
- line?: number;
8
- packageName?: string;
9
- } | {
10
- code: "untraceable-barrel";
11
- packageName: string;
12
- resolvedFile: string;
13
- } | {
14
- code: "cycle-detected";
15
- file: string;
16
- exportName: string;
17
- packageName?: string;
18
- } | {
19
- code: "chain-too-deep";
20
- file: string;
21
- exportName: string;
22
- depth: number;
23
- packageName?: string;
24
- };
25
3
  export type CreateLazyResolverOptions = {
26
4
  resolveImport: ResolveImport;
27
5
  /**
28
- * Anchor for `warmRoots`-style eager loads. Optional — `resolveLazyManifest`
6
+ * Anchor for eager loads via `.warm()`. Optional — `resolveLazyManifest`
29
7
  * itself never reads it (resolution is anchored on the calling file). When
30
- * absent, `warmRoots` falls back to `process.cwd()`.
8
+ * absent, `.warm()` falls back to `process.cwd()`.
31
9
  */
32
10
  repoRoot?: string;
33
- /** Phase 4 hook; defaults to the no-op stub. */
34
- extractDerivedManifest?: (leafPackageDir: string) => import("@component-compass/plugin-core").DerivedManifestData | null;
11
+ /** Derived-manifest extractor; defaults to the workspace-scoped impl from derived-manifest-stub.ts. */
12
+ extractDerivedManifest?: (leafPackageDir: string) => import("@component-compass/plugin-core").DerivedLeafPayload | null;
13
+ /**
14
+ * Optional shared diagnostic collector. If absent, the resolver creates
15
+ * its own internal collector accessible via `diagnostics()`.
16
+ */
17
+ collector?: DiagnosticCollector;
18
+ /**
19
+ * Glob patterns identifying packages whose manifests should be loaded.
20
+ * When set, the resolver loads manifests only for matching packages —
21
+ * non-matching packages still get identity resolution (`leafPackage` +
22
+ * `modulePath`) but `matched` is always null. When omitted or empty,
23
+ * manifest enrichment is fully disabled; identity resolution still runs.
24
+ * Use `["**"]` to enrich every package the resolver reaches (the
25
+ * single-star pattern `*` won't match scoped names like `@scope/pkg`
26
+ * because picomatch's `*` doesn't cross `/`).
27
+ */
28
+ manifestPatterns?: readonly string[];
35
29
  };
36
30
  export interface LazyResolver {
37
31
  resolveLazyManifest(fromFile: string, specifier: string, exportName: string): LazyResolverHit | null;
38
- lookupByTag(tagName: string): Extract<IndexedComponent, {
39
- kind: "custom-element";
40
- }> | null;
41
32
  snapshotComponents(): IndexedComponent[];
42
33
  snapshotManifestRefs(): ManifestRef[];
43
- diagnostics(): ResolverDiagnostic[];
34
+ /**
35
+ * Returns the set of package names whose enrichment came from the derived
36
+ * extractor (no authored CEM/CCM was found). Used by scan.ts to label
37
+ * `enrichmentSource: "derived"` on the snapshot entries for these packages.
38
+ */
39
+ snapshotDerivedPackages(): Set<string>;
40
+ diagnostics(): Diagnostic[];
44
41
  /**
45
42
  * Eagerly load each named package's root CEM/CCM (if present) so the
46
43
  * `byTag` cache covers tag-only consumers (HTML / Vue templates with no
47
- * JS-side import to prime the resolver). No barrel walking — just a single
48
- * leaf-load per package, mirroring the resolver's terminal-load step.
44
+ * JS-side import to prime the resolver). Returns a `WarmedResolver` that
45
+ * adds `lookupByTag` the only way to obtain it. No barrel walking; just
46
+ * one leaf-load per package, mirroring the resolver's terminal-load step.
47
+ */
48
+ warm(packageNames: string[]): WarmedResolver;
49
+ /**
50
+ * Test-only hook: number of times the named barrel path was passed through
51
+ * the parse step. The resolver caches parsed barrel ASTs per absolute path,
52
+ * so on the happy path this is 1 regardless of how many import resolutions
53
+ * traverse the same barrel. Underscore-prefixed because production callers
54
+ * shouldn't depend on it.
49
55
  */
50
- warmRoots(packageNames: string[]): void;
56
+ _barrelParseCount(absPath: string): number;
57
+ }
58
+ export interface WarmedResolver extends LazyResolver {
59
+ /**
60
+ * Tag-only lookup against the CEM index loaded during `warm(...)` (and any
61
+ * subsequent `resolveLazyManifest` calls that walked into eligible
62
+ * packages). Returns null when no matching custom-element has been indexed,
63
+ * including for resolvers constructed without any `manifestPatterns`
64
+ * (identity-only mode — `warm(...)` is then a structural no-op).
65
+ */
66
+ lookupByTag(tagName: string): Extract<IndexedComponent, {
67
+ kind: "custom-element";
68
+ }> | null;
51
69
  }
52
70
  export declare function createLazyResolver(opts: CreateLazyResolverOptions): LazyResolver;