@component-compass/cli 0.1.4 → 0.1.6

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 (41) hide show
  1. package/dist/cli/help.d.ts +4 -0
  2. package/dist/cli/help.js +58 -0
  3. package/dist/cli/help.js.map +1 -0
  4. package/dist/cli/parse.d.ts +14 -0
  5. package/dist/cli/parse.js +78 -0
  6. package/dist/cli/parse.js.map +1 -0
  7. package/dist/cli/suggest.d.ts +4 -0
  8. package/dist/cli/suggest.js +38 -0
  9. package/dist/cli/suggest.js.map +1 -0
  10. package/dist/cli.js +114 -111
  11. package/dist/cli.js.map +1 -1
  12. package/dist/commands/auth.d.ts +9 -2
  13. package/dist/commands/auth.js +94 -25
  14. package/dist/commands/auth.js.map +1 -1
  15. package/dist/commands/init.d.ts +6 -1
  16. package/dist/commands/init.js +86 -30
  17. package/dist/commands/init.js.map +1 -1
  18. package/dist/manifest/barrel-parser.js +22 -12
  19. package/dist/manifest/barrel-parser.js.map +1 -1
  20. package/dist/manifest/lazy-resolver.d.ts +5 -22
  21. package/dist/manifest/lazy-resolver.js +14 -46
  22. package/dist/manifest/lazy-resolver.js.map +1 -1
  23. package/dist/prompts/adapter.d.ts +43 -0
  24. package/dist/prompts/adapter.js +32 -0
  25. package/dist/prompts/adapter.js.map +1 -0
  26. package/dist/reporter/stdout.d.ts +2 -1
  27. package/dist/reporter/stdout.js +14 -13
  28. package/dist/reporter/stdout.js.map +1 -1
  29. package/dist/util/color.d.ts +24 -0
  30. package/dist/util/color.js +45 -0
  31. package/dist/util/color.js.map +1 -0
  32. package/dist/util/interactive.d.ts +17 -0
  33. package/dist/util/interactive.js +19 -0
  34. package/dist/util/interactive.js.map +1 -0
  35. package/dist/util/log.d.ts +3 -1
  36. package/dist/util/log.js +6 -3
  37. package/dist/util/log.js.map +1 -1
  38. package/dist/util/version.d.ts +7 -0
  39. package/dist/util/version.js +13 -0
  40. package/dist/util/version.js.map +1 -0
  41. package/package.json +10 -9
@@ -2,11 +2,24 @@ import { loadStore, saveStore, normalizeHost } from "../auth/store.js";
2
2
  import { requestDeviceCode, pollToken, whoami, AuthHttpError } from "../auth/client.js";
3
3
  import { openBrowser } from "../auth/browser.js";
4
4
  import { resolveHost, getAccessToken, formatAuthError } from "../auth/session.js";
5
+ import { parseCommand } from "../cli/parse.js";
6
+ import { assertNotCancelled, PromptCancelledError } from "../prompts/adapter.js";
5
7
  const out = (s) => process.stdout.write(s);
6
8
  const err = (s) => process.stderr.write(s);
7
9
  function defaultSleep(ms) {
8
10
  return new Promise((resolve) => setTimeout(resolve, ms));
9
11
  }
12
+ function isValidUrl(value) {
13
+ if (!value)
14
+ return "Enter a valid host URL.";
15
+ try {
16
+ normalizeHost(value);
17
+ return undefined;
18
+ }
19
+ catch {
20
+ return "Enter a valid host URL.";
21
+ }
22
+ }
10
23
  export async function runAuthLogin(opts) {
11
24
  const base = normalizeHost(opts.host);
12
25
  const sleep = opts.sleep ?? defaultSleep;
@@ -23,7 +36,11 @@ export async function runAuthLogin(opts) {
23
36
  out(`To authorize this device, open:\n ${device.verificationUri}\nCode: ${device.userCode}\n`);
24
37
  if (openBrowser(device.verificationUriComplete))
25
38
  out("Opened your browser…\n");
26
- out("Waiting for approval… ");
39
+ const spin = opts.prompts?.spinner();
40
+ if (spin)
41
+ spin.start("Waiting for approval…");
42
+ else
43
+ out("Waiting for approval… ");
27
44
  let intervalMs = device.interval * 1000;
28
45
  const deadline = now() + device.expiresIn * 1000;
29
46
  while (now() < deadline) {
@@ -33,6 +50,7 @@ export async function runAuthLogin(opts) {
33
50
  result = await pollToken(base, device.deviceCode);
34
51
  }
35
52
  catch (e) {
53
+ spin?.stop("Login failed");
36
54
  err(`\nLogin failed${e instanceof AuthHttpError ? ` (HTTP ${e.status})` : ""}. Run \`compass auth login\` again.\n`);
37
55
  return 1;
38
56
  }
@@ -48,6 +66,8 @@ export async function runAuthLogin(opts) {
48
66
  if (!store.default)
49
67
  store.default = base;
50
68
  await saveStore(store, filePath);
69
+ if (spin)
70
+ spin.stop("Approved");
51
71
  out(`✓ Signed in as ${entry.userEmail || "your account"}\n`);
52
72
  return 0;
53
73
  }
@@ -56,15 +76,18 @@ export async function runAuthLogin(opts) {
56
76
  continue;
57
77
  }
58
78
  if (result.kind === "expired") {
79
+ spin?.stop("Code expired");
59
80
  err("\nCode expired. Run `compass auth login` again.\n");
60
81
  return 1;
61
82
  }
62
83
  if (result.kind === "denied") {
84
+ spin?.stop("Authorization declined");
63
85
  err("\nAuthorization was declined.\n");
64
86
  return 1;
65
87
  }
66
88
  // pending → keep polling
67
89
  }
90
+ spin?.stop("Timed out");
68
91
  err("\nTimed out waiting for approval. Run `compass auth login` again.\n");
69
92
  return 1;
70
93
  }
@@ -112,7 +135,6 @@ export async function runAuthLogout(opts) {
112
135
  write(`Not signed in to ${base}.\n`);
113
136
  return 0;
114
137
  }
115
- // No server revoke endpoint exists yet; this is a local delete (best-effort revoke is a future no-op).
116
138
  const { [base]: _removed, ...remaining } = store.hosts;
117
139
  const next = {
118
140
  hosts: remaining,
@@ -122,35 +144,82 @@ export async function runAuthLogout(opts) {
122
144
  write(`Signed out of ${base}.\n`);
123
145
  return 0;
124
146
  }
125
- /** Parse `--host <url>` out of an arg list. */
126
- function hostFlag(argv) {
127
- const i = argv.indexOf("--host");
128
- return i >= 0 ? argv[i + 1] : undefined;
147
+ /**
148
+ * Resolve a host for status/logout. Returns a concrete host only when the user
149
+ * actively picks one from a select (interactive + several stored hosts + no
150
+ * flag/env/default). Otherwise returns undefined, letting the callee resolve
151
+ * (flag/env/default) and print its own "not signed in" message as before.
152
+ */
153
+ async function selectHostIfAmbiguous(flagHost, env, deps, interactive, prompts) {
154
+ if (flagHost !== undefined)
155
+ return flagHost;
156
+ const store = await loadStore(deps.store?.filePath);
157
+ try {
158
+ resolveHost({ env, store });
159
+ return undefined;
160
+ }
161
+ catch {
162
+ const hosts = Object.keys(store.hosts);
163
+ if (interactive && prompts && hosts.length > 1) {
164
+ const picked = assertNotCancelled(await prompts.select({ message: "Which host?", options: hosts.map((h) => ({ value: h, label: h })) }), prompts);
165
+ return normalizeHost(picked);
166
+ }
167
+ return undefined;
168
+ }
129
169
  }
130
170
  export async function runAuth(argv, deps = {}) {
131
- const [sub, ...rest] = argv;
132
- const flagHost = hostFlag(rest);
171
+ const { positionals, values } = parseCommand("auth", argv);
172
+ const sub = positionals[0];
173
+ const { host } = values;
174
+ const flagHost = typeof host === "string" ? host : undefined;
133
175
  const env = deps.env ?? process.env;
134
- switch (sub) {
135
- case "login": {
136
- const store = await loadStore(deps.store?.filePath);
137
- let host;
138
- try {
139
- host = resolveHost({ ...(flagHost !== undefined ? { flagHost } : {}), env, store });
176
+ const interactive = deps.interactive ?? false;
177
+ const prompts = deps.prompts;
178
+ try {
179
+ switch (sub) {
180
+ case "login": {
181
+ const store = await loadStore(deps.store?.filePath);
182
+ let resolved;
183
+ try {
184
+ resolved = resolveHost({ ...(flagHost !== undefined ? { flagHost } : {}), env, store });
185
+ }
186
+ catch {
187
+ if (interactive && prompts) {
188
+ const entered = assertNotCancelled(await prompts.text({ message: "Host URL", placeholder: "https://compass.example.com", validate: isValidUrl }), prompts);
189
+ resolved = normalizeHost(entered);
190
+ }
191
+ else {
192
+ err("Specify a host: `compass auth login --host <url>` (or set COMPASS_HOST).\n");
193
+ return 2;
194
+ }
195
+ }
196
+ return runAuthLogin({
197
+ host: resolved,
198
+ ...(deps.store ? { store: deps.store } : {}),
199
+ ...(prompts ? { prompts } : {}),
200
+ ...(deps.sleep ? { sleep: deps.sleep } : {}),
201
+ ...(deps.now ? { now: deps.now } : {}),
202
+ });
140
203
  }
141
- catch {
142
- err("Specify a host: `compass auth login --host <url>` (or set COMPASS_HOST).\n");
143
- return 2;
204
+ case "status": {
205
+ const picked = await selectHostIfAmbiguous(flagHost, env, deps, interactive, prompts);
206
+ return runAuthStatus({ ...(picked !== undefined ? { host: picked } : {}), ...(deps.store ? { store: deps.store } : {}), env });
207
+ }
208
+ case "logout": {
209
+ const picked = await selectHostIfAmbiguous(flagHost, env, deps, interactive, prompts);
210
+ return runAuthLogout({ ...(picked !== undefined ? { host: picked } : {}), ...(deps.store ? { store: deps.store } : {}), env });
144
211
  }
145
- return runAuthLogin({ host, ...(deps.store ? { store: deps.store } : {}) });
212
+ default:
213
+ err(`Unknown auth subcommand: ${sub ?? "(none)"}\nUsage: compass auth <login|logout|status> [--host <url>]\n`);
214
+ return 2;
215
+ }
216
+ }
217
+ catch (e) {
218
+ if (e instanceof PromptCancelledError) {
219
+ err("Cancelled.\n");
220
+ return 130;
146
221
  }
147
- case "status":
148
- return runAuthStatus({ ...(flagHost !== undefined ? { host: flagHost } : {}), ...(deps.store ? { store: deps.store } : {}), env });
149
- case "logout":
150
- return runAuthLogout({ ...(flagHost !== undefined ? { host: flagHost } : {}), ...(deps.store ? { store: deps.store } : {}), env });
151
- default:
152
- err(`Unknown auth subcommand: ${sub ?? "(none)"}\nUsage: compass auth <login|logout|status> [--host <url>]\n`);
153
- return 2;
222
+ throw e;
154
223
  }
155
224
  }
156
225
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
+ import { type PromptAdapter } from "../prompts/adapter.js";
2
+ export type Framework = "react" | "vue" | "lit" | "html" | "wc";
1
3
  export type InitOptions = {
2
4
  cwd: string;
3
5
  outputPath?: string;
6
+ repoId?: string;
7
+ frameworks?: Framework[];
8
+ interactive?: boolean;
9
+ prompts?: PromptAdapter;
4
10
  };
5
11
  export declare function runInit(opts: InitOptions): Promise<void>;
6
- export declare function runInitCli(_argv: string[]): Promise<number>;
@@ -1,18 +1,93 @@
1
1
  import { writeFile, stat, readFile } from "node:fs/promises";
2
2
  import { basename, isAbsolute, resolve } from "node:path";
3
- import { errorMessage } from "@component-compass/ast-utils";
4
- const TEMPLATE = (repoId) => ({
5
- $schema: "https://unpkg.com/@component-compass/cli/schema/config.schema.json",
6
- repoId,
7
- include: ["src/**/*.{ts,tsx,jsx,js,vue,html}"],
8
- exclude: ["**/*.{test,spec,stories}.*", "**/node_modules/**"],
9
- captureValues: false,
10
- output: "./component-compass.json",
11
- });
3
+ import { assertNotCancelled } from "../prompts/adapter.js";
4
+ const DEFAULT_INCLUDE = "src/**/*.{ts,tsx,jsx,js,vue,html}";
5
+ const FRAMEWORK_EXTS = {
6
+ react: ["ts", "tsx", "js", "jsx"],
7
+ vue: ["vue"],
8
+ lit: ["ts", "js"],
9
+ html: ["html"],
10
+ wc: ["ts", "js"],
11
+ };
12
+ const FRAMEWORK_OPTIONS = [
13
+ { value: "react", label: "React" },
14
+ { value: "vue", label: "Vue" },
15
+ { value: "lit", label: "Lit" },
16
+ { value: "html", label: "HTML" },
17
+ { value: "wc", label: "Web components" },
18
+ ];
19
+ function includeGlob(frameworks) {
20
+ const exts = new Set();
21
+ for (const f of frameworks)
22
+ for (const e of FRAMEWORK_EXTS[f])
23
+ exts.add(e);
24
+ if (exts.size === 0)
25
+ return DEFAULT_INCLUDE;
26
+ return `src/**/*.{${[...exts].sort().join(",")}}`;
27
+ }
28
+ function buildConfig(o) {
29
+ return {
30
+ $schema: "https://unpkg.com/@component-compass/cli/schema/config.schema.json",
31
+ repoId: o.repoId,
32
+ include: [o.include],
33
+ exclude: ["**/*.{test,spec,stories}.*", "**/node_modules/**"],
34
+ captureValues: o.captureValues,
35
+ output: o.output,
36
+ };
37
+ }
12
38
  export async function runInit(opts) {
13
39
  const cwd = isAbsolute(opts.cwd) ? opts.cwd : resolve(opts.cwd);
14
40
  const out = opts.outputPath ?? resolve(cwd, "component-compass.config.json");
15
- // Don't clobber existing config.
41
+ await assertNoExistingConfig(out);
42
+ const repoId = opts.repoId ?? (await deriveRepoId(cwd));
43
+ if (opts.interactive && opts.prompts) {
44
+ const cfg = await runWizard(opts.prompts, cwd, repoId);
45
+ await writeFile(out, `${JSON.stringify(cfg, null, 2)}\n`, "utf8");
46
+ opts.prompts.outro(`Wrote ${out}. Run \`compass scan\` to generate your first artifact.`);
47
+ return;
48
+ }
49
+ const cfg = buildConfig({
50
+ repoId,
51
+ include: opts.frameworks && opts.frameworks.length > 0 ? includeGlob(opts.frameworks) : DEFAULT_INCLUDE,
52
+ output: "./component-compass.json",
53
+ captureValues: false,
54
+ });
55
+ await writeFile(out, `${JSON.stringify(cfg, null, 2)}\n`, "utf8");
56
+ // eslint-disable-next-line no-console
57
+ console.log(`Wrote ${out}.\nCustomize the config to match your repo structure.`);
58
+ }
59
+ async function runWizard(prompts, cwd, repoId) {
60
+ prompts.intro("component-compass init");
61
+ const detected = await detectFrameworks(cwd);
62
+ const frameworks = assertNotCancelled(await prompts.multiselect({
63
+ message: "Which frameworks does this repo use?",
64
+ options: FRAMEWORK_OPTIONS,
65
+ initialValues: detected,
66
+ required: true,
67
+ }), prompts);
68
+ const output = assertNotCancelled(await prompts.text({ message: "Output path for the artifact", initialValue: "./component-compass.json" }), prompts);
69
+ const captureValues = assertNotCancelled(await prompts.confirm({ message: "Capture literal prop values?", initialValue: false }), prompts);
70
+ return buildConfig({ repoId, include: includeGlob(frameworks), output, captureValues });
71
+ }
72
+ async function detectFrameworks(cwd) {
73
+ try {
74
+ const pkg = JSON.parse(await readFile(resolve(cwd, "package.json"), "utf8"));
75
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
76
+ const { react, vue, lit } = deps;
77
+ const out = [];
78
+ if (react)
79
+ out.push("react");
80
+ if (vue)
81
+ out.push("vue");
82
+ if (lit)
83
+ out.push("lit");
84
+ return out.length > 0 ? out : ["react"];
85
+ }
86
+ catch {
87
+ return ["react"];
88
+ }
89
+ }
90
+ async function assertNoExistingConfig(out) {
16
91
  try {
17
92
  await stat(out);
18
93
  throw new Error(`Config already exists at ${out}. Refusing to overwrite.`);
@@ -20,23 +95,15 @@ export async function runInit(opts) {
20
95
  catch (err) {
21
96
  const e = err;
22
97
  if (e.code !== "ENOENT") {
23
- // If the stat succeeded (no ENOENT), the throw above re-fires here. Detect
24
- // by message and re-throw cleanly.
25
98
  if (e.message?.startsWith("Config already exists"))
26
99
  throw e;
27
100
  throw err;
28
101
  }
29
102
  }
30
- const repoId = await deriveRepoId(cwd);
31
- const cfg = TEMPLATE(repoId);
32
- await writeFile(out, `${JSON.stringify(cfg, null, 2)}\n`, "utf8");
33
- // eslint-disable-next-line no-console
34
- console.log(`Wrote ${out}.\nCustomize the config to match your repo structure.`);
35
103
  }
36
104
  async function deriveRepoId(cwd) {
37
105
  try {
38
- const pkgRaw = await readFile(resolve(cwd, "package.json"), "utf8");
39
- const pkg = JSON.parse(pkgRaw);
106
+ const pkg = JSON.parse(await readFile(resolve(cwd, "package.json"), "utf8"));
40
107
  if (pkg.name)
41
108
  return pkg.name;
42
109
  }
@@ -45,15 +112,4 @@ async function deriveRepoId(cwd) {
45
112
  }
46
113
  return basename(cwd) || "unknown";
47
114
  }
48
- export async function runInitCli(_argv) {
49
- const cwd = process.cwd();
50
- try {
51
- await runInit({ cwd });
52
- return 0;
53
- }
54
- catch (err) {
55
- process.stderr.write(`init failed: ${errorMessage(err)}\n`);
56
- return 1;
57
- }
58
- }
59
115
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAO5D,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACpC,OAAO,EAAE,oEAAoE;IAC7E,MAAM;IACN,OAAO,EAAE,CAAC,mCAAmC,CAAC;IAC9C,OAAO,EAAE,CAAC,4BAA4B,EAAE,oBAAoB,CAAC;IAC7D,aAAa,EAAE,KAAK;IACpB,MAAM,EAAE,0BAA0B;CACnC,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAiB;IAC7C,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,+BAA+B,CAAC,CAAC;IAE7E,iCAAiC;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,0BAA0B,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,GAAmD,CAAC;QAC9D,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxB,2EAA2E;YAC3E,mCAAmC;YACnC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,uBAAuB,CAAC;gBAAE,MAAM,CAAC,CAAC;YAC5D,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAElE,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,uDAAuD,CAAC,CAAC;AACnF,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAsB,CAAC;QACpD,IAAI,GAAG,CAAC,IAAI;YAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAe;IAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvB,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -89,8 +89,9 @@ export function parseBarrelTopLevelDetailedFromAst(ast) {
89
89
  unsupported.push(entry);
90
90
  continue;
91
91
  }
92
- // Anything wrapping a CJS reassignment in a conditional.
93
- if (t.isIfStatement(node) && containsCjsReexport(node)) {
92
+ // Anything wrapping a CJS reassignment in a conditional (if / try / switch).
93
+ if ((t.isIfStatement(node) || t.isTryStatement(node) || t.isSwitchStatement(node)) &&
94
+ visitConditionalBody(node)) {
94
95
  const entry = { form: "conditional-reexport" };
95
96
  if (typeof node.loc?.start.line === "number")
96
97
  entry.line = node.loc.start.line;
@@ -108,18 +109,15 @@ function isCjsReexport(expr) {
108
109
  t.isIdentifier(expr.left.property, { name: "exports" }));
109
110
  }
110
111
  /**
111
- * Walk an `IfStatement` looking for a top-level `module.exports = ...`
112
- * inside the consequent / alternate.
112
+ * Walk a conditional wrapper (`if` / `try` / `switch`) looking for a
113
+ * `module.exports = ...` reassignment inside any of its branches.
113
114
  *
114
115
  * The walk is type-aware: it descends only into structural children that
115
- * execute when the if branch executes. Function and class bodies are
116
+ * execute when the wrapper executes. Function and class bodies are
116
117
  * treated as opaque boundaries — `module.exports = ...` defined inside a
117
118
  * nested function declaration / arrow / class method does not run when the
118
- * `if` body runs, so it would be a false positive to flag it.
119
+ * branch body runs, so it would be a false positive to flag it.
119
120
  */
120
- function containsCjsReexport(node) {
121
- return visitConditionalBody(node.consequent) || visitConditionalBody(node.alternate);
122
- }
123
121
  function visitConditionalBody(node) {
124
122
  if (!node)
125
123
  return false;
@@ -147,12 +145,24 @@ function visitConditionalBody(node) {
147
145
  if (t.isIfStatement(node)) {
148
146
  return (visitConditionalBody(node.consequent) || visitConditionalBody(node.alternate));
149
147
  }
148
+ if (t.isTryStatement(node)) {
149
+ return (visitConditionalBody(node.block) ||
150
+ visitConditionalBody(node.handler?.body) ||
151
+ visitConditionalBody(node.finalizer));
152
+ }
153
+ if (t.isSwitchStatement(node)) {
154
+ for (const switchCase of node.cases) {
155
+ for (const stmt of switchCase.consequent) {
156
+ if (visitConditionalBody(stmt))
157
+ return true;
158
+ }
159
+ }
160
+ return false;
161
+ }
150
162
  if (t.isLabeledStatement(node) || t.isWithStatement(node)) {
151
163
  return visitConditionalBody(node.body);
152
164
  }
153
- // Other statement types (loops, try/catch, switch, return, throw, ...) are
154
- // not unwrapped here. The Phase 1 spec is IfStatement-only; broader
155
- // detection (try/catch, switch) is tracked as a follow-up.
165
+ // Other statement types (loops, return, throw, ...) are not unwrapped here.
156
166
  return false;
157
167
  }
158
168
  //# sourceMappingURL=barrel-parser.js.map
@@ -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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"}
@@ -82,33 +82,16 @@ export interface WarmedResolver extends LazyResolver {
82
82
  /**
83
83
  * Look up the custom-element a React wrapper export maps to.
84
84
  *
85
- * Two-tier lookup:
86
- *
87
- * **Tier 1 — Direct CEM className match.**
85
+ * **Direct CEM className match.**
88
86
  * When `packageName` has a loaded CEM, scan its `components[]` for a
89
87
  * custom-element whose `className === exportName`. Returns
90
- * `{ tagName, packageName }` on match. This mirrors the second-pass
91
- * (className-equality) logic of `matchInLeaf`.
92
- *
93
- * **Tier 2 — Aggregator-chain fallback.**
94
- * When `packageName` has no loaded CEM (e.g. it is a barrel/aggregator
95
- * package that re-exports from leaf packages), scan ALL currently-loaded
96
- * leaf manifests for any custom-element whose
97
- * `componentCompass.imports.react[]` declares `export === exportName`.
98
- * Returns the matching leaf's `{ tagName, packageName }` on match.
99
- *
100
- * **Limitation (tier 2):** the scan is export-name-only — it does not have
101
- * access to the chain specifiers used by `matchInLeaf`'s first pass. If two
102
- * distinct leaf packages both declare an `imports.react[]` entry with the
103
- * same `export` name, the first-inserted leaf in `visitedLeafs` wins. In
104
- * practice this collision cannot occur today (no real CEMs ship
105
- * `imports.react[]`), but it is a known limitation; specifier-aware
106
- * disambiguation is a future follow-up if it ever becomes necessary.
88
+ * `{ tagName, packageName }` on match. This mirrors the className-equality
89
+ * second pass of `matchInLeaf`.
107
90
  *
108
91
  * Returns null when:
109
92
  * - `packageName` is not manifest-eligible (excluded by `manifestPatterns`)
110
- * - tier 1: package has a loaded CEM but no className match
111
- * - tier 2: no loaded leaf declares `imports.react[]` with a matching export
93
+ * - the package has no loaded CEM
94
+ * - the package has a loaded CEM but no className match
112
95
  */
113
96
  lookupReactWrapper(packageName: string, exportName: string): {
114
97
  tagName: string;
@@ -142,31 +142,20 @@ export function createLazyResolver(opts) {
142
142
  }
143
143
  return null;
144
144
  }
145
- function matchInLeaf(components, chainSpecifiers, exportName) {
146
- // First pass: explicit imports.react[] match (strongest signal).
145
+ function matchInLeaf(components, exportName) {
146
+ // First pass: react/vue components match on their declared export name.
147
147
  for (const c of components) {
148
- if (c.kind === "custom-element") {
149
- const imports = c.imports?.react ?? [];
150
- for (const i of imports) {
151
- if (i.export !== exportName)
152
- continue;
153
- // Match if any specifier in the chain equals i.specifier (or stripped form).
154
- const stripped = i.specifier.replace(/\.(js|mjs|cjs)$/, "");
155
- if (chainSpecifiers.some((s) => s === i.specifier || s === stripped))
156
- return c;
157
- }
158
- }
159
- else if (c.kind === "react-component" || c.kind === "vue-component") {
148
+ if (c.kind === "react-component" || c.kind === "vue-component") {
160
149
  if (c.export === exportName)
161
150
  return c;
162
151
  }
163
152
  }
164
- // Second pass: className-equality fallback for CEMs that don't declare
165
- // componentCompass.imports.react[]. Scoped to THIS leaf only — never
166
- // iterates a global byTag map (the old heuristic's failure mode). Safe
167
- // because the resolver has already traversed the chain to a specific
168
- // leaf package; if that leaf's CEM declares a custom-element class with
169
- // exactly this name, the consumer's import is the React wrapper for it.
153
+ // Second pass: className-equality match for custom-elements. Scoped to
154
+ // THIS leaf only — never iterates a global byTag map (the old heuristic's
155
+ // failure mode). Safe because the resolver has already traversed the chain
156
+ // to a specific leaf package; if that leaf's CEM declares a custom-element
157
+ // class with exactly this name, the consumer's import is the React wrapper
158
+ // for it.
170
159
  for (const c of components) {
171
160
  if (c.kind === "custom-element" && c.className === exportName)
172
161
  return c;
@@ -207,7 +196,6 @@ export function createLazyResolver(opts) {
207
196
  if (hitCache.has(cacheKey))
208
197
  return hitCache.get(cacheKey) ?? null;
209
198
  const visited = new Set();
210
- const chainSpecifiers = [specifier];
211
199
  let currentAbs = initialAbs;
212
200
  let currentExport = exportName;
213
201
  // Walk the re-export chain. If we advance MAX_REEXPORT_HOPS times without
@@ -274,7 +262,6 @@ export function createLazyResolver(opts) {
274
262
  });
275
263
  break;
276
264
  }
277
- chainSpecifiers.push(next.from);
278
265
  currentAbs = nextAbs;
279
266
  currentExport = next.targetExport;
280
267
  hops++;
@@ -300,7 +287,7 @@ export function createLazyResolver(opts) {
300
287
  return identityOnlyHit;
301
288
  }
302
289
  const components = loadLeafManifest(pkg.name, pkg.dir);
303
- const matched = matchInLeaf(components, chainSpecifiers, currentExport);
290
+ const matched = matchInLeaf(components, currentExport);
304
291
  const hit = { leafPackage: pkg.name, modulePath, matched };
305
292
  hitCache.set(cacheKey, hit);
306
293
  return hit;
@@ -381,29 +368,11 @@ export function createLazyResolver(opts) {
381
368
  if (!isManifestEligible(packageName))
382
369
  return null;
383
370
  const cached = visitedLeafs.get(packageName);
384
- if (cached) {
385
- for (const c of cached.components) {
386
- if (c.kind === "custom-element" && c.className === exportName) {
387
- return { tagName: c.tagName, packageName };
388
- }
389
- }
371
+ if (!cached)
390
372
  return null;
391
- }
392
- // Aggregator-chain fallback: `packageName` is an aggregator barrel with no
393
- // CEM of its own (not in visitedLeafs). Search all loaded leaf manifests
394
- // for a custom-element that explicitly declares this exportName via
395
- // componentCompass.imports.react[]. This is safe because it relies on an
396
- // authoritative CEM declaration, not a heuristic tag-name match.
397
- for (const [leafPkg, leaf] of visitedLeafs) {
398
- for (const c of leaf.components) {
399
- if (c.kind !== "custom-element")
400
- continue;
401
- const reactImports = c.imports?.react ?? [];
402
- for (const i of reactImports) {
403
- if (i.export === exportName) {
404
- return { tagName: c.tagName, packageName: leafPkg };
405
- }
406
- }
373
+ for (const c of cached.components) {
374
+ if (c.kind === "custom-element" && c.className === exportName) {
375
+ return { tagName: c.tagName, packageName };
407
376
  }
408
377
  }
409
378
  return null;
@@ -523,7 +492,6 @@ function absorbCemDeclarations(cem, packageName) {
523
492
  events,
524
493
  slots,
525
494
  className: d.name,
526
- imports: d.componentCompass?.imports ?? {},
527
495
  };
528
496
  if (d.description !== undefined)
529
497
  entry.description = d.description;