@component-compass/cli 0.0.3 → 0.0.5

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 (101) hide show
  1. package/dist/cli.js +1 -1
  2. package/dist/commands/init.js +1 -3
  3. package/dist/commands/init.js.map +1 -1
  4. package/dist/commands/scan.d.ts +12 -1
  5. package/dist/commands/scan.js +158 -55
  6. package/dist/commands/scan.js.map +1 -1
  7. package/dist/config/loader.js +5 -9
  8. package/dist/config/loader.js.map +1 -1
  9. package/dist/config/schema.d.ts +2 -15
  10. package/dist/config/schema.js.map +1 -1
  11. package/dist/envelope/index.d.ts +0 -9
  12. package/dist/envelope/index.js +1 -46
  13. package/dist/envelope/index.js.map +1 -1
  14. package/dist/identity.d.ts +11 -15
  15. package/dist/identity.js +29 -20
  16. package/dist/identity.js.map +1 -1
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.js +1 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/local-index/detect-react.d.ts +2 -1
  21. package/dist/local-index/detect-react.js +135 -115
  22. package/dist/local-index/detect-react.js.map +1 -1
  23. package/dist/local-index/detect-vue.d.ts +15 -1
  24. package/dist/local-index/detect-vue.js +130 -107
  25. package/dist/local-index/detect-vue.js.map +1 -1
  26. package/dist/local-index/detect-wc.d.ts +7 -1
  27. package/dist/local-index/detect-wc.js +56 -60
  28. package/dist/local-index/detect-wc.js.map +1 -1
  29. package/dist/local-index/index.d.ts +11 -6
  30. package/dist/local-index/index.js +25 -27
  31. package/dist/local-index/index.js.map +1 -1
  32. package/dist/manifest/barrel-parser.d.ts +10 -0
  33. package/dist/manifest/barrel-parser.js +11 -0
  34. package/dist/manifest/barrel-parser.js.map +1 -1
  35. package/dist/manifest/derived-manifest-stub.d.ts +15 -6
  36. package/dist/manifest/derived-manifest-stub.js +43 -7
  37. package/dist/manifest/derived-manifest-stub.js.map +1 -1
  38. package/dist/manifest/lazy-resolver.d.ts +42 -16
  39. package/dist/manifest/lazy-resolver.js +122 -49
  40. package/dist/manifest/lazy-resolver.js.map +1 -1
  41. package/dist/occurrences.js +20 -4
  42. package/dist/occurrences.js.map +1 -1
  43. package/dist/parse-by-ext.d.ts +21 -0
  44. package/dist/parse-by-ext.js +53 -0
  45. package/dist/parse-by-ext.js.map +1 -0
  46. package/dist/reporter/index.d.ts +5 -21
  47. package/dist/reporter/index.js +6 -52
  48. package/dist/reporter/index.js.map +1 -1
  49. package/dist/reporter/stdout.js +4 -4
  50. package/dist/reporter/stdout.js.map +1 -1
  51. package/dist/rollup.d.ts +5 -4
  52. package/dist/rollup.js +7 -4
  53. package/dist/rollup.js.map +1 -1
  54. package/dist/scan/cem-index.d.ts +38 -0
  55. package/dist/scan/cem-index.js +139 -0
  56. package/dist/scan/cem-index.js.map +1 -0
  57. package/dist/scan/git-mtime.d.ts +2 -0
  58. package/dist/scan/git-mtime.js +22 -0
  59. package/dist/scan/git-mtime.js.map +1 -0
  60. package/dist/scan/meta.d.ts +5 -0
  61. package/dist/scan/meta.js +58 -0
  62. package/dist/scan/meta.js.map +1 -0
  63. package/dist/scan/stamp-deprecated.d.ts +16 -0
  64. package/dist/scan/stamp-deprecated.js +33 -0
  65. package/dist/scan/stamp-deprecated.js.map +1 -0
  66. package/dist/scan/stamp-version.d.ts +18 -0
  67. package/dist/scan/stamp-version.js +94 -0
  68. package/dist/scan/stamp-version.js.map +1 -0
  69. package/dist/seeds.d.ts +18 -18
  70. package/dist/seeds.js +82 -45
  71. package/dist/seeds.js.map +1 -1
  72. package/dist/types.d.ts +2 -5
  73. package/dist/util/git.d.ts +8 -0
  74. package/dist/util/git.js +73 -0
  75. package/dist/util/git.js.map +1 -1
  76. package/dist/util/progress.d.ts +21 -0
  77. package/dist/util/progress.js +54 -0
  78. package/dist/util/progress.js.map +1 -0
  79. package/dist/walker/files.d.ts +1 -0
  80. package/dist/walker/files.js +11 -5
  81. package/dist/walker/files.js.map +1 -1
  82. package/dist/workspace/find-owning-package.d.ts +6 -0
  83. package/dist/workspace/find-owning-package.js +22 -2
  84. package/dist/workspace/find-owning-package.js.map +1 -1
  85. package/dist/workspace/index.d.ts +1 -1
  86. package/dist/workspace/index.js +1 -1
  87. package/dist/workspace/index.js.map +1 -1
  88. package/package.json +13 -7
  89. package/schema/config.schema.json +2 -24
  90. package/dist/commands/no-deps-diagnostic.d.ts +0 -15
  91. package/dist/commands/no-deps-diagnostic.js +0 -23
  92. package/dist/commands/no-deps-diagnostic.js.map +0 -1
  93. package/dist/config/tag-rules.d.ts +0 -2
  94. package/dist/config/tag-rules.js +0 -34
  95. package/dist/config/tag-rules.js.map +0 -1
  96. package/dist/local-index/walker.d.ts +0 -11
  97. package/dist/local-index/walker.js +0 -47
  98. package/dist/local-index/walker.js.map +0 -1
  99. package/dist/manifest/diagnostic-filter.d.ts +0 -13
  100. package/dist/manifest/diagnostic-filter.js +0 -36
  101. package/dist/manifest/diagnostic-filter.js.map +0 -1
@@ -1,33 +1,29 @@
1
1
  /**
2
- * Three-lane identity derivation + stable id keying.
2
+ * Two-lane identity derivation + stable id keying.
3
3
  *
4
- * Two pure functions that translate a per-occurrence `ComponentId +
5
- * derivedTags + repoId` tuple into the rolled-up `OutputIdentity` and a
6
- * deterministic short hash used as the component's `id` in the emitted
7
- * artifact.
4
+ * Two pure functions that translate a per-occurrence `ComponentId + repoId`
5
+ * tuple into the rolled-up `OutputIdentity` and a deterministic short hash
6
+ * used as the component's `id` in the emitted artifact.
8
7
  *
9
8
  * Lanes (scope):
10
9
  * - "local" — `componentId.source.type === "local"`. Siloed per
11
10
  * `{repoId, filePath, exportName, kind}` so two consumer
12
11
  * repos with locally-named components don't collide.
13
- * - "ds" — externally-sourced AND `derivedTags.length > 0` (i.e.
14
- * matched the workspace's tag rules — the "design system"
15
- * you're tracking).
16
- * - "external" — externally-sourced with no tag matches (third-party noise).
12
+ * - "external" — externally-sourced (ds/external grouping is the web app's
13
+ * responsibility, not CC's).
17
14
  *
18
15
  * Stable-id key composition:
19
- * - local → `local::<repoId>::<filePath>::<exportName>::<kind>`
20
- * - ds | external custom-element → `ce::<packageName>::<tagName>`
21
- * - ds | external react/vue → `rc::<packageName>::<exportName>`
16
+ * - local → `local::<repoId>::<filePath>::<exportName>::<kind>`
17
+ * - custom-element, no modulePath (byTag) → `ce::<packageName>::<tagName>`
18
+ * - custom-element, with modulePath (resolver folded WC) → `ce::<packageName>::<modulePath>::<tagName>`
19
+ * - react/vue, no modulePath (classifyImportOrigin) → `rc::<packageName>::<exportName>`
20
+ * - react/vue, with modulePath (resolver-driven) → `rc::<packageName>::<modulePath>::<exportName>`
22
21
  * Hashed with SHA-1, truncated to 16 hex chars.
23
- *
24
- * NOT yet wired into the scan pipeline — wiring is a separate task.
25
22
  */
26
23
  import type { ComponentId, OutputIdentity } from "@component-compass/plugin-core";
27
24
  import type { WorkspaceGraph } from "./workspace/types.js";
28
25
  export type IdentityInputs = {
29
26
  componentId: ComponentId;
30
- derivedTags: readonly string[];
31
27
  repoId: string;
32
28
  workspaceGraph?: WorkspaceGraph;
33
29
  /** Optional declaration position (only meaningful for local scope). */
package/dist/identity.js CHANGED
@@ -1,46 +1,42 @@
1
1
  /**
2
- * Three-lane identity derivation + stable id keying.
2
+ * Two-lane identity derivation + stable id keying.
3
3
  *
4
- * Two pure functions that translate a per-occurrence `ComponentId +
5
- * derivedTags + repoId` tuple into the rolled-up `OutputIdentity` and a
6
- * deterministic short hash used as the component's `id` in the emitted
7
- * artifact.
4
+ * Two pure functions that translate a per-occurrence `ComponentId + repoId`
5
+ * tuple into the rolled-up `OutputIdentity` and a deterministic short hash
6
+ * used as the component's `id` in the emitted artifact.
8
7
  *
9
8
  * Lanes (scope):
10
9
  * - "local" — `componentId.source.type === "local"`. Siloed per
11
10
  * `{repoId, filePath, exportName, kind}` so two consumer
12
11
  * repos with locally-named components don't collide.
13
- * - "ds" — externally-sourced AND `derivedTags.length > 0` (i.e.
14
- * matched the workspace's tag rules — the "design system"
15
- * you're tracking).
16
- * - "external" — externally-sourced with no tag matches (third-party noise).
12
+ * - "external" — externally-sourced (ds/external grouping is the web app's
13
+ * responsibility, not CC's).
17
14
  *
18
15
  * Stable-id key composition:
19
- * - local → `local::<repoId>::<filePath>::<exportName>::<kind>`
20
- * - ds | external custom-element → `ce::<packageName>::<tagName>`
21
- * - ds | external react/vue → `rc::<packageName>::<exportName>`
16
+ * - local → `local::<repoId>::<filePath>::<exportName>::<kind>`
17
+ * - custom-element, no modulePath (byTag) → `ce::<packageName>::<tagName>`
18
+ * - custom-element, with modulePath (resolver folded WC) → `ce::<packageName>::<modulePath>::<tagName>`
19
+ * - react/vue, no modulePath (classifyImportOrigin) → `rc::<packageName>::<exportName>`
20
+ * - react/vue, with modulePath (resolver-driven) → `rc::<packageName>::<modulePath>::<exportName>`
22
21
  * Hashed with SHA-1, truncated to 16 hex chars.
23
- *
24
- * NOT yet wired into the scan pipeline — wiring is a separate task.
25
22
  */
26
23
  import { createHash } from "node:crypto";
27
24
  import { join } from "node:path";
28
25
  import { findOwningPackage } from "./workspace/find-owning-package.js";
29
26
  export function computeOutputIdentity(inputs) {
30
- const { componentId, derivedTags, repoId, definitionLoc } = inputs;
27
+ const { componentId, repoId, definitionLoc } = inputs;
31
28
  const { source, kind } = componentId;
32
29
  const isLocal = source.type === "local";
33
- const scope = isLocal
34
- ? "local"
35
- : derivedTags.length > 0
36
- ? "ds"
37
- : "external";
30
+ const scope = isLocal ? "local" : "external";
38
31
  const identity = {
39
32
  scope,
40
33
  kind,
41
34
  };
42
35
  if (source.type === "external") {
43
36
  identity.packageName = source.package;
37
+ if (source.modulePath !== undefined) {
38
+ identity.modulePath = source.modulePath;
39
+ }
44
40
  }
45
41
  if (componentId.kind === "custom-element") {
46
42
  identity.tagName = componentId.tagName;
@@ -72,8 +68,14 @@ export function computeStableId(identity) {
72
68
  return sha1Short(`local::${identity.repoId}::${identity.filePath}::${identity.exportName}::${identity.kind}`);
73
69
  }
74
70
  if (identity.kind === "custom-element") {
71
+ if (identity.modulePath !== undefined) {
72
+ return sha1Short(`ce::${identity.packageName}::${identity.modulePath}::${identity.tagName}`);
73
+ }
75
74
  return sha1Short(`ce::${identity.packageName}::${identity.tagName}`);
76
75
  }
76
+ if (identity.modulePath !== undefined) {
77
+ return sha1Short(`rc::${identity.packageName}::${identity.modulePath}::${identity.exportName}`);
78
+ }
77
79
  return sha1Short(`rc::${identity.packageName}::${identity.exportName}`);
78
80
  }
79
81
  /**
@@ -96,9 +98,16 @@ export function computeStableIdFromComponentId(c) {
96
98
  return sha1Short(`local::::${c.source.filePath}::${exportOrTag}::${c.kind}`);
97
99
  }
98
100
  const pkg = c.source.type === "external" ? c.source.package : "unknown";
101
+ const modulePath = c.source.type === "external" ? c.source.modulePath : undefined;
99
102
  if (c.kind === "custom-element") {
103
+ if (modulePath !== undefined) {
104
+ return sha1Short(`ce::${pkg}::${modulePath}::${c.tagName}`);
105
+ }
100
106
  return sha1Short(`ce::${pkg}::${c.tagName}`);
101
107
  }
108
+ if (modulePath !== undefined) {
109
+ return sha1Short(`rc::${pkg}::${modulePath}::${c.export}`);
110
+ }
102
111
  return sha1Short(`rc::${pkg}::${c.export}`);
103
112
  }
104
113
  //# sourceMappingURL=identity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1 +1,3 @@
1
1
  export declare const VERSION = "0.1.0";
2
+ export { runScan } from "./commands/scan.js";
3
+ export type { ScanOptions, ScanResult } from "./commands/scan.js";
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export const VERSION = "0.1.0";
2
+ export { runScan } from "./commands/scan.js";
2
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,2 +1,3 @@
1
+ import type { Program } from "@oxc-project/types";
1
2
  import type { LocalDefinition } from "./types.js";
2
- export declare function detectReactComponents(source: string, filePath: string, extension: string): LocalDefinition[];
3
+ export declare function detectReactComponents(program: Program, filePath: string, source?: string): LocalDefinition[];
@@ -1,55 +1,46 @@
1
- import { parse } from "@babel/parser";
2
- const REACT_EXTS = new Set([".tsx", ".jsx", ".ts", ".js"]);
3
- export function detectReactComponents(source, filePath, extension) {
4
- if (!REACT_EXTS.has(extension))
5
- return [];
6
- // `.ts` files cannot contain JSX; enabling the jsx plugin there causes
7
- // valid TypeScript like `return <const>{...}` to fail to parse.
8
- const plugins = ["typescript", "decorators-legacy", "classProperties"];
9
- if (extension !== ".ts")
10
- plugins.push("jsx");
11
- const ast = (() => {
12
- try {
13
- return parse(source, {
14
- sourceType: "module",
15
- plugins,
16
- errorRecovery: true,
17
- });
18
- }
19
- catch {
20
- return null;
21
- }
22
- })();
23
- if (!ast)
24
- return [];
1
+ export function detectReactComponents(program, filePath, source) {
25
2
  const found = [];
26
3
  const filePathSource = { type: "local", filePath };
4
+ // Bound helper — closes over filePath and source so call sites are concise.
5
+ const loc = (node) => nodeLoc(node, filePath, source);
27
6
  // ── Pass 1: collect top-level PascalCase declarations as candidates ──────
28
7
  // "Top-level" = direct child of Program, or inline declaration inside an
29
8
  // Export*Declaration that is a direct child of Program.
30
9
  const candidates = new Map();
31
- for (const stmt of ast.program.body) {
10
+ for (const stmt of program.body) {
32
11
  // Unwrap export wrappers to get the inner declaration (if any).
33
- const inner = stmt.type === "ExportNamedDeclaration" && stmt.declaration
34
- ? stmt.declaration
35
- : stmt.type === "ExportDefaultDeclaration" && isDeclaration(stmt.declaration)
36
- ? stmt.declaration
37
- : stmt;
38
- if (inner.type === "FunctionDeclaration" && inner.id && isPascalCase(inner.id.name) && returnsJsx(inner)) {
39
- const name = inner.id.name;
40
- candidates.set(name, {
41
- componentId: { kind: "react-component", export: name, source: filePathSource },
42
- detector: "react-default-fn",
43
- loc: nodeLoc(inner, filePath),
44
- });
12
+ // Use Node so that all member types stay structurally compatible.
13
+ let inner = null;
14
+ if (stmt.type === "ExportNamedDeclaration" && stmt.declaration) {
15
+ inner = stmt.declaration;
16
+ }
17
+ else if (stmt.type === "ExportDefaultDeclaration" && isDeclaration(stmt.declaration)) {
18
+ inner = stmt.declaration;
19
+ }
20
+ else {
21
+ inner = stmt;
45
22
  }
46
- else if (inner.type === "ClassDeclaration" && inner.id && isPascalCase(inner.id.name) && hasRenderMethod(inner)) {
47
- const name = inner.id.name;
48
- candidates.set(name, {
49
- componentId: { kind: "react-component", export: name, source: filePathSource },
50
- detector: "react-class",
51
- loc: nodeLoc(inner, filePath),
52
- });
23
+ if (inner.type === "FunctionDeclaration") {
24
+ const fn = inner;
25
+ if (fn.id && isPascalCase(fn.id.name) && returnsJsx(fn)) {
26
+ const name = fn.id.name;
27
+ candidates.set(name, {
28
+ componentId: { kind: "react-component", export: name, source: filePathSource },
29
+ detector: "react-default-fn",
30
+ loc: loc(fn),
31
+ });
32
+ }
33
+ }
34
+ else if (inner.type === "ClassDeclaration") {
35
+ const cls = inner;
36
+ if (cls.id && isPascalCase(cls.id.name) && hasRenderMethod(cls)) {
37
+ const name = cls.id.name;
38
+ candidates.set(name, {
39
+ componentId: { kind: "react-component", export: name, source: filePathSource },
40
+ detector: "react-class",
41
+ loc: loc(cls),
42
+ });
43
+ }
53
44
  }
54
45
  else if (inner.type === "VariableDeclaration") {
55
46
  for (const d of inner.declarations) {
@@ -61,7 +52,7 @@ export function detectReactComponents(source, filePath, extension) {
61
52
  candidates.set(name, {
62
53
  componentId: { kind: "react-component", export: name, source: filePathSource },
63
54
  detector,
64
- loc: nodeLoc(d, filePath),
55
+ loc: loc(d),
65
56
  });
66
57
  }
67
58
  }
@@ -81,59 +72,65 @@ export function detectReactComponents(source, filePath, extension) {
81
72
  emitted.add(key);
82
73
  found.push(def);
83
74
  }
84
- for (const stmt of ast.program.body) {
75
+ for (const stmt of program.body) {
85
76
  // ── ExportDefaultDeclaration ──────────────────────────────────────────
86
77
  if (stmt.type === "ExportDefaultDeclaration") {
87
78
  const decl = stmt.declaration;
88
79
  // Named function declaration: `export default function Foo() {}`
89
- if (decl.type === "FunctionDeclaration" && decl.id && isPascalCase(decl.id.name) && returnsJsx(decl)) {
90
- emit({
91
- componentId: { kind: "react-component", export: decl.id.name, source: filePathSource },
92
- exportName: decl.id.name,
93
- isDefault: true,
94
- detector: "react-default-fn",
95
- ...withLoc(nodeLoc(decl, filePath)),
96
- });
97
- continue;
98
- }
99
- // Anonymous function-declaration default: `export default function() {}`
100
- if (decl.type === "FunctionDeclaration" && returnsJsx(decl)) {
101
- emit({
102
- componentId: { kind: "react-component", export: "default", source: filePathSource },
103
- exportName: "default",
104
- isDefault: true,
105
- detector: "react-default-fn",
106
- ...withLoc(nodeLoc(decl, filePath)),
107
- });
80
+ if (decl.type === "FunctionDeclaration") {
81
+ const fn = decl;
82
+ if (fn.id && isPascalCase(fn.id.name) && returnsJsx(fn)) {
83
+ emit({
84
+ componentId: { kind: "react-component", export: fn.id.name, source: filePathSource },
85
+ exportName: fn.id.name,
86
+ isDefault: true,
87
+ detector: "react-default-fn",
88
+ ...withLoc(loc(fn)),
89
+ });
90
+ continue;
91
+ }
92
+ // Anonymous function-declaration default: `export default function() {}`
93
+ if (returnsJsx(fn)) {
94
+ emit({
95
+ componentId: { kind: "react-component", export: "default", source: filePathSource },
96
+ exportName: "default",
97
+ isDefault: true,
98
+ detector: "react-default-fn",
99
+ ...withLoc(loc(fn)),
100
+ });
101
+ continue;
102
+ }
108
103
  continue;
109
104
  }
110
105
  // Anonymous arrow / function expression default: `export default () => <Foo/>`
111
- if ((decl.type === "ArrowFunctionExpression" || decl.type === "FunctionExpression") &&
112
- returnsJsx(decl)) {
113
- emit({
114
- componentId: { kind: "react-component", export: "default", source: filePathSource },
115
- exportName: "default",
116
- isDefault: true,
117
- detector: "react-arrow",
118
- ...withLoc(nodeLoc(decl, filePath)),
119
- });
106
+ if (decl.type === "ArrowFunctionExpression" || decl.type === "FunctionExpression") {
107
+ const fn = decl;
108
+ if (returnsJsx(fn)) {
109
+ emit({
110
+ componentId: { kind: "react-component", export: "default", source: filePathSource },
111
+ exportName: "default",
112
+ isDefault: true,
113
+ detector: "react-arrow",
114
+ ...withLoc(loc(fn)),
115
+ });
116
+ }
120
117
  continue;
121
118
  }
122
119
  // Class component default: `export default class Foo extends Component { render() {} }`
123
- if (decl.type === "ClassDeclaration" &&
124
- decl.id &&
125
- isPascalCase(decl.id.name) &&
126
- hasRenderMethod(decl)) {
127
- emit({
128
- componentId: { kind: "react-component", export: decl.id.name, source: filePathSource },
129
- exportName: decl.id.name,
130
- isDefault: true,
131
- detector: "react-class",
132
- ...withLoc(nodeLoc(decl, filePath)),
133
- });
120
+ if (decl.type === "ClassDeclaration") {
121
+ const cls = decl;
122
+ if (cls.id && isPascalCase(cls.id.name) && hasRenderMethod(cls)) {
123
+ emit({
124
+ componentId: { kind: "react-component", export: cls.id.name, source: filePathSource },
125
+ exportName: cls.id.name,
126
+ isDefault: true,
127
+ detector: "react-class",
128
+ ...withLoc(loc(cls)),
129
+ });
130
+ }
134
131
  continue;
135
132
  }
136
- // NEW: `export default Identifier` — look up in candidates
133
+ // `export default Identifier` — look up in candidates
137
134
  if (decl.type === "Identifier") {
138
135
  const candidate = candidates.get(decl.name);
139
136
  if (candidate) {
@@ -147,17 +144,18 @@ export function detectReactComponents(source, filePath, extension) {
147
144
  }
148
145
  continue;
149
146
  }
150
- // NEW: `export default memo(Foo)` / `export default forwardRef(Foo)` etc.
147
+ // `export default memo(Foo)` / `export default forwardRef(Foo)` etc.
151
148
  if (decl.type === "CallExpression") {
152
- const callee = decl.callee;
149
+ const call = decl;
150
+ const callee = call.callee;
153
151
  let calleeName;
154
152
  if (callee.type === "Identifier")
155
153
  calleeName = callee.name;
156
154
  else if (callee.type === "MemberExpression" && callee.property.type === "Identifier")
157
155
  calleeName = callee.property.name;
158
156
  const isHoc = calleeName === "memo" || calleeName === "forwardRef" || calleeName === "observer";
159
- if (isHoc && decl.arguments.length > 0) {
160
- const firstArg = decl.arguments[0];
157
+ if (isHoc && call.arguments.length > 0) {
158
+ const firstArg = call.arguments[0];
161
159
  if (firstArg && firstArg.type === "Identifier") {
162
160
  const candidate = candidates.get(firstArg.name);
163
161
  if (candidate) {
@@ -183,23 +181,29 @@ export function detectReactComponents(source, filePath, extension) {
183
181
  const decl = stmt.declaration;
184
182
  // Inline declaration: `export function Foo() {}`, `export const Foo = ...`, etc.
185
183
  if (decl) {
186
- if (decl.type === "FunctionDeclaration" && decl.id && isPascalCase(decl.id.name) && returnsJsx(decl)) {
187
- emit({
188
- componentId: { kind: "react-component", export: decl.id.name, source: filePathSource },
189
- exportName: decl.id.name,
190
- isDefault: false,
191
- detector: "react-default-fn",
192
- ...withLoc(nodeLoc(decl, filePath)),
193
- });
184
+ if (decl.type === "FunctionDeclaration") {
185
+ const fn = decl;
186
+ if (fn.id && isPascalCase(fn.id.name) && returnsJsx(fn)) {
187
+ emit({
188
+ componentId: { kind: "react-component", export: fn.id.name, source: filePathSource },
189
+ exportName: fn.id.name,
190
+ isDefault: false,
191
+ detector: "react-default-fn",
192
+ ...withLoc(loc(fn)),
193
+ });
194
+ }
194
195
  }
195
- if (decl.type === "ClassDeclaration" && decl.id && isPascalCase(decl.id.name) && hasRenderMethod(decl)) {
196
- emit({
197
- componentId: { kind: "react-component", export: decl.id.name, source: filePathSource },
198
- exportName: decl.id.name,
199
- isDefault: false,
200
- detector: "react-class",
201
- ...withLoc(nodeLoc(decl, filePath)),
202
- });
196
+ if (decl.type === "ClassDeclaration") {
197
+ const cls = decl;
198
+ if (cls.id && isPascalCase(cls.id.name) && hasRenderMethod(cls)) {
199
+ emit({
200
+ componentId: { kind: "react-component", export: cls.id.name, source: filePathSource },
201
+ exportName: cls.id.name,
202
+ isDefault: false,
203
+ detector: "react-class",
204
+ ...withLoc(loc(cls)),
205
+ });
206
+ }
203
207
  }
204
208
  if (decl.type === "VariableDeclaration") {
205
209
  for (const d of decl.declarations) {
@@ -212,22 +216,29 @@ export function detectReactComponents(source, filePath, extension) {
212
216
  exportName: d.id.name,
213
217
  isDefault: false,
214
218
  detector,
215
- ...withLoc(nodeLoc(d, filePath)),
219
+ ...withLoc(loc(d)),
216
220
  });
217
221
  }
218
222
  }
219
223
  }
220
224
  continue;
221
225
  }
222
- // NEW: `export { X }` or `export { X as Y }` — local re-exports (no source).
226
+ // `export { X }` or `export { X as Y }` — local re-exports (no source).
223
227
  // Skip if this is a re-export from another module (`stmt.source` is non-null).
224
228
  if (!stmt.source && stmt.specifiers.length > 0) {
225
229
  for (const specifier of stmt.specifiers) {
226
230
  if (specifier.type !== "ExportSpecifier")
227
231
  continue;
228
- const localName = specifier.local.name;
232
+ const localNode = specifier.local;
233
+ // ModuleExportName can be IdentifierName | IdentifierReference | StringLiteral;
234
+ // only Identifier-typed nodes carry a usable binding name.
235
+ if (localNode.type !== "Identifier")
236
+ continue;
237
+ const localName = localNode.name;
229
238
  const exportedNode = specifier.exported;
230
- const exportedName = exportedNode.type === "Identifier" ? exportedNode.name : exportedNode.value;
239
+ const exportedName = exportedNode.type === "Identifier"
240
+ ? exportedNode.name
241
+ : exportedNode.value;
231
242
  const isDefault = exportedName === "default";
232
243
  const candidate = candidates.get(localName);
233
244
  if (!candidate)
@@ -246,7 +257,7 @@ export function detectReactComponents(source, filePath, extension) {
246
257
  return found;
247
258
  }
248
259
  // ── Helpers ────────────────────────────────────────────────────────────────
249
- /** Narrow whether an ExportDefaultDeclaration's `.declaration` is a statement-like node */
260
+ /** Narrow whether an ExportDefaultDeclaration's `.declaration` is a function or class node */
250
261
  function isDeclaration(node) {
251
262
  return node.type === "FunctionDeclaration" || node.type === "ClassDeclaration";
252
263
  }
@@ -267,6 +278,9 @@ function returnsJsx(fn) {
267
278
  function isJsxNode(node) {
268
279
  if (node.type === "JSXElement" || node.type === "JSXFragment")
269
280
  return true;
281
+ // OXC preserves parentheses as ParenthesizedExpression nodes; Babel strips them.
282
+ if (node.type === "ParenthesizedExpression")
283
+ return isJsxNode(node.expression);
270
284
  if (node.type === "ConditionalExpression")
271
285
  return isJsxNode(node.consequent) || isJsxNode(node.alternate);
272
286
  if (node.type === "LogicalExpression")
@@ -274,13 +288,19 @@ function isJsxNode(node) {
274
288
  return false;
275
289
  }
276
290
  function hasRenderMethod(decl) {
277
- return decl.body.body.some((m) => (m.type === "ClassMethod" || m.type === "ClassProperty") &&
291
+ return decl.body.body.some((m) => (m.type === "MethodDefinition" || m.type === "PropertyDefinition") &&
278
292
  m.key.type === "Identifier" &&
279
293
  m.key.name === "render");
280
294
  }
281
- function nodeLoc(node, filePath) {
282
- const s = node.loc?.start;
283
- return s ? { file: filePath, line: s.line, column: s.column } : undefined;
295
+ function nodeLoc(node, filePath, source) {
296
+ // oxc nodes carry byte offsets (start/end), not loc objects.
297
+ // Compute line/column by counting newlines in the source prefix.
298
+ if (source !== undefined && typeof node.start === "number") {
299
+ const before = source.slice(0, node.start);
300
+ const lines = before.split("\n");
301
+ return { file: filePath, line: lines.length, column: (lines[lines.length - 1] ?? "").length };
302
+ }
303
+ return undefined;
284
304
  }
285
305
  function withLoc(loc) {
286
306
  return loc !== undefined ? { loc } : {};
@@ -1 +1 @@
1
- {"version":3,"file":"detect-react.js","sourceRoot":"","sources":["../../src/local-index/detect-react.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detect-react.js","sourceRoot":"","sources":["../../src/local-index/detect-react.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,16 @@
1
+ import type { SFCDescriptor } from "@vue/compiler-sfc";
2
+ import type { Program } from "@oxc-project/types";
1
3
  import type { LocalDefinition } from "./types.js";
2
- export declare function detectVueComponents(source: string, filePath: string, extension: string): LocalDefinition[];
4
+ export type VueParseWrapper = {
5
+ descriptor: SFCDescriptor;
6
+ scriptProgram?: Program;
7
+ };
8
+ export type VueDetectorInput = {
9
+ kind: "sfc";
10
+ wrapper: VueParseWrapper;
11
+ } | {
12
+ kind: "script";
13
+ program: Program;
14
+ source: string;
15
+ };
16
+ export declare function detectVueComponents(input: VueDetectorInput, filePath: string): LocalDefinition[];