@somewhere-tech/cli 0.29.1 → 0.30.1

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 (45) hide show
  1. package/dist/commands/auth.js +50 -4
  2. package/dist/commands/auth.js.map +1 -1
  3. package/dist/commands/browser.js +115 -16
  4. package/dist/commands/browser.js.map +1 -1
  5. package/dist/commands/check.js +7 -0
  6. package/dist/commands/check.js.map +1 -1
  7. package/dist/commands/deploy.js +82 -6
  8. package/dist/commands/deploy.js.map +1 -1
  9. package/dist/commands/dev.js +64 -7
  10. package/dist/commands/dev.js.map +1 -1
  11. package/dist/commands/docs.js +139 -7
  12. package/dist/commands/docs.js.map +1 -1
  13. package/dist/commands/errors.js +29 -6
  14. package/dist/commands/errors.js.map +1 -1
  15. package/dist/commands/status.js +89 -4
  16. package/dist/commands/status.js.map +1 -1
  17. package/dist/lib/client.js +59 -4
  18. package/dist/lib/client.js.map +1 -1
  19. package/dist/lib/config.js +18 -0
  20. package/dist/lib/config.js.map +1 -1
  21. package/dist/lib/files.js +57 -6
  22. package/dist/lib/files.js.map +1 -1
  23. package/dist/lib/output.js +4 -2
  24. package/dist/lib/output.js.map +1 -1
  25. package/dist/lib/publish-surface.js +94 -0
  26. package/dist/lib/publish-surface.js.map +1 -0
  27. package/dist/local/browser-run.js +321 -0
  28. package/dist/local/browser-run.js.map +1 -0
  29. package/dist/local/chrome.js +320 -0
  30. package/dist/local/chrome.js.map +1 -0
  31. package/dist/local/compiler.js +67 -12
  32. package/dist/local/compiler.js.map +1 -1
  33. package/dist/local/runtime.js +72 -2
  34. package/dist/local/runtime.js.map +1 -1
  35. package/dist/local/telemetry-filter.js +120 -0
  36. package/dist/local/telemetry-filter.js.map +1 -0
  37. package/npm-shrinkwrap.json +2 -2
  38. package/package.json +2 -2
  39. package/runtime/VENDOR.json +4 -3
  40. package/runtime/browser-probes.mjs +6 -0
  41. package/runtime/compiler/VENDOR.json +40 -3
  42. package/runtime/compiler/compile-core.cjs +18 -0
  43. package/runtime/compiler/typed-functions.cjs +31 -1
  44. package/runtime/platform-context.mjs +241 -23
  45. package/runtime/sw-init.mjs +1 -1
@@ -0,0 +1,320 @@
1
+ /**
2
+ * A browser for the app on localhost.
3
+ *
4
+ * `somewhere browser` drives the platform's hosted browser, which lives on the
5
+ * internet and therefore cannot reach a developer's loopback address — the two
6
+ * halves of this CLI could not talk to each other, so the app `somewhere dev`
7
+ * was serving was the one address its own browser tool refused to visit. Every
8
+ * visual and DOM check had to wait until after the first production deploy.
9
+ *
10
+ * This is the loopback half: the browser already installed on the developer's
11
+ * machine, driven directly over the DevTools protocol. No new dependency (the
12
+ * socket comes from undici, which the CLI already bundles) and no download —
13
+ * if there is no browser on the machine we say so plainly instead of fetching
14
+ * one hundreds of megabytes at a time.
15
+ *
16
+ * The probe it runs is the PLATFORM's probe, vendored in
17
+ * runtime/browser-probes.mjs, so the interactive-element map you get for
18
+ * localhost is the same map the hosted browser reports for the deployed app.
19
+ */
20
+ import { spawn } from 'node:child_process';
21
+ import { existsSync, mkdtempSync, rmSync } from 'node:fs';
22
+ import { homedir, tmpdir } from 'node:os';
23
+ import { join } from 'node:path';
24
+ import { readdirSync } from 'node:fs';
25
+ import { WebSocket } from 'undici';
26
+ /** Env vars that name a browser binary, in the order they win. */
27
+ export const BROWSER_PATH_ENV_VARS = [
28
+ 'SOMEWHERE_BROWSER_PATH',
29
+ 'CHROME_PATH',
30
+ 'PUPPETEER_EXECUTABLE_PATH',
31
+ ];
32
+ /**
33
+ * Where a Chrome-family browser normally lives, per platform. Ordered: a real
34
+ * installed browser first, then the caches the common tooling downloads into.
35
+ */
36
+ function candidatePaths() {
37
+ const home = homedir();
38
+ const out = [];
39
+ if (process.platform === 'darwin') {
40
+ out.push('/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', '/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary', '/Applications/Chromium.app/Contents/MacOS/Chromium', '/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge', '/Applications/Brave Browser.app/Contents/MacOS/Brave Browser', join(home, 'Applications/Google Chrome.app/Contents/MacOS/Google Chrome'));
41
+ }
42
+ else if (process.platform === 'win32') {
43
+ const programFiles = [
44
+ process.env['PROGRAMFILES'] ?? 'C:\\Program Files',
45
+ process.env['PROGRAMFILES(X86)'] ?? 'C:\\Program Files (x86)',
46
+ process.env['LOCALAPPDATA'] ?? join(home, 'AppData', 'Local'),
47
+ ];
48
+ for (const base of programFiles) {
49
+ out.push(join(base, 'Google\\Chrome\\Application\\chrome.exe'), join(base, 'Microsoft\\Edge\\Application\\msedge.exe'), join(base, 'Chromium\\Application\\chrome.exe'));
50
+ }
51
+ }
52
+ else {
53
+ out.push('/usr/bin/google-chrome', '/usr/bin/google-chrome-stable', '/usr/bin/chromium', '/usr/bin/chromium-browser', '/usr/bin/microsoft-edge', '/snap/bin/chromium');
54
+ }
55
+ out.push(...puppeteerCachePaths(join(home, '.cache', 'puppeteer')));
56
+ return out;
57
+ }
58
+ /**
59
+ * Browsers the common tooling has already downloaded. Worth checking: a
60
+ * developer whose project uses Playwright or Puppeteer has a working browser
61
+ * on disk even when the machine has no browser installed for a human.
62
+ */
63
+ function puppeteerCachePaths(cacheDir) {
64
+ const out = [];
65
+ let products;
66
+ try {
67
+ products = readdirSync(cacheDir);
68
+ }
69
+ catch {
70
+ return out;
71
+ }
72
+ for (const product of products) {
73
+ if (!product.startsWith('chrome'))
74
+ continue;
75
+ let builds;
76
+ try {
77
+ builds = readdirSync(join(cacheDir, product)).sort().reverse();
78
+ }
79
+ catch {
80
+ continue;
81
+ }
82
+ for (const build of builds) {
83
+ const base = join(cacheDir, product, build);
84
+ out.push(join(base, 'chrome-mac-arm64', 'Google Chrome for Testing.app', 'Contents', 'MacOS', 'Google Chrome for Testing'), join(base, 'chrome-mac-x64', 'Google Chrome for Testing.app', 'Contents', 'MacOS', 'Google Chrome for Testing'), join(base, 'chrome-linux64', 'chrome'), join(base, 'chrome-win64', 'chrome.exe'), join(base, 'chrome-headless-shell-mac-arm64', 'chrome-headless-shell'), join(base, 'chrome-headless-shell-mac-x64', 'chrome-headless-shell'), join(base, 'chrome-headless-shell-linux64', 'chrome-headless-shell'), join(base, 'chrome-headless-shell-win64', 'chrome-headless-shell.exe'));
85
+ }
86
+ }
87
+ return out;
88
+ }
89
+ /**
90
+ * The browser this machine will use, or null when it has none. An env var
91
+ * always wins — including one that points at a path that does not exist, which
92
+ * is reported as the error it is rather than silently ignored in favour of some
93
+ * other browser.
94
+ */
95
+ export function findBrowser(env = process.env, exists = existsSync) {
96
+ for (const key of BROWSER_PATH_ENV_VARS) {
97
+ const value = env[key];
98
+ if (value)
99
+ return { path: value, source: 'env' };
100
+ }
101
+ for (const candidate of candidatePaths()) {
102
+ if (exists(candidate))
103
+ return { path: candidate, source: 'installed' };
104
+ }
105
+ return null;
106
+ }
107
+ export const NO_BROWSER_MESSAGE = 'No browser found on this machine to open the local app with. ' +
108
+ 'Install Chrome, Chromium, Edge, or Brave, or point ' +
109
+ `${BROWSER_PATH_ENV_VARS[0]} at a browser you already have.`;
110
+ /**
111
+ * How long one DevTools command may wait for its reply. Nothing this command
112
+ * asks a browser to do is slow enough to need more; a command still waiting
113
+ * after this means the browser has stopped answering, not that the page is
114
+ * busy. The whole-run budget is separate and larger.
115
+ */
116
+ export const DEVTOOLS_COMMAND_TIMEOUT_MS = 15_000;
117
+ /** One request/response + event channel to a running browser. */
118
+ export class DevToolsSession {
119
+ socket;
120
+ nextId = 1;
121
+ pending = new Map();
122
+ listeners = new Map();
123
+ closed = false;
124
+ constructor(socket) {
125
+ this.socket = socket;
126
+ socket.addEventListener('message', (event) => this.onMessage(String(event.data)));
127
+ socket.addEventListener('close', () => this.failAll(new Error('The browser closed the connection.')));
128
+ socket.addEventListener('error', () => this.failAll(new Error('The connection to the browser failed.')));
129
+ }
130
+ static async connect(wsUrl, timeoutMs) {
131
+ const socket = new WebSocket(wsUrl);
132
+ await new Promise((resolve, reject) => {
133
+ const timer = setTimeout(() => reject(new Error('Timed out connecting to the browser.')), timeoutMs);
134
+ socket.addEventListener('open', () => { clearTimeout(timer); resolve(); }, { once: true });
135
+ socket.addEventListener('error', () => { clearTimeout(timer); reject(new Error('Could not connect to the browser.')); }, { once: true });
136
+ });
137
+ return new DevToolsSession(socket);
138
+ }
139
+ onMessage(raw) {
140
+ let msg;
141
+ try {
142
+ msg = JSON.parse(raw);
143
+ }
144
+ catch {
145
+ return;
146
+ }
147
+ const id = msg['id'];
148
+ if (typeof id === 'number') {
149
+ const waiter = this.pending.get(id);
150
+ if (!waiter)
151
+ return;
152
+ this.pending.delete(id);
153
+ const error = msg['error'];
154
+ if (error)
155
+ waiter.reject(new Error(error.message ?? 'The browser rejected the command.'));
156
+ else
157
+ waiter.resolve(msg['result'] ?? {});
158
+ return;
159
+ }
160
+ const method = msg['method'];
161
+ if (typeof method !== 'string')
162
+ return;
163
+ for (const fn of this.listeners.get(method) ?? []) {
164
+ fn(msg['params'] ?? {});
165
+ }
166
+ }
167
+ failAll(err) {
168
+ this.closed = true;
169
+ for (const waiter of this.pending.values())
170
+ waiter.reject(err);
171
+ this.pending.clear();
172
+ }
173
+ on(method, fn) {
174
+ const list = this.listeners.get(method) ?? [];
175
+ list.push(fn);
176
+ this.listeners.set(method, list);
177
+ }
178
+ /**
179
+ * Send one DevTools command and wait for its reply, BOUNDED.
180
+ *
181
+ * A reply only ever arrives from `onMessage` (matching id) or `failAll`
182
+ * (socket closed/errored). A browser that accepts the socket and then stops
183
+ * answering satisfies neither, so an unbounded wait here hung the whole
184
+ * command with nothing printed — the silent >90s stall. Every command now
185
+ * carries its own deadline, and the waiter is registered BEFORE the write so
186
+ * a reply can never land before there is anything to receive it.
187
+ */
188
+ send(method, params = {}, timeoutMs = DEVTOOLS_COMMAND_TIMEOUT_MS) {
189
+ if (this.closed)
190
+ return Promise.reject(new Error('The connection to the browser is closed.'));
191
+ const id = this.nextId++;
192
+ return new Promise((resolve, reject) => {
193
+ const timer = setTimeout(() => {
194
+ this.pending.delete(id);
195
+ reject(new Error(`The browser did not answer \`${method}\` within ${Math.round(timeoutMs / 1000)}s. ` +
196
+ 'The page may be stuck; run it again, and close any browser this command left behind.'));
197
+ }, timeoutMs);
198
+ timer.unref();
199
+ this.pending.set(id, {
200
+ resolve: (v) => { clearTimeout(timer); resolve(v); },
201
+ reject: (e) => { clearTimeout(timer); reject(e); },
202
+ });
203
+ try {
204
+ this.socket.send(JSON.stringify({ id, method, params, sessionId: this.sessionId }));
205
+ }
206
+ catch (err) {
207
+ clearTimeout(timer);
208
+ this.pending.delete(id);
209
+ reject(err instanceof Error ? err : new Error(String(err)));
210
+ }
211
+ });
212
+ }
213
+ /** Set once the session is attached to a page target. */
214
+ sessionId;
215
+ close() {
216
+ this.closed = true;
217
+ try {
218
+ this.socket.close();
219
+ }
220
+ catch {
221
+ /* already gone */
222
+ }
223
+ }
224
+ }
225
+ /** The DevTools endpoint a freshly launched browser prints on stderr. */
226
+ function readEndpoint(child, timeoutMs) {
227
+ return new Promise((resolve, reject) => {
228
+ let buffered = '';
229
+ const timer = setTimeout(() => {
230
+ cleanup();
231
+ reject(new Error(`The browser did not report a DevTools endpoint within ${timeoutMs}ms.`));
232
+ }, timeoutMs);
233
+ const onData = (chunk) => {
234
+ buffered += chunk.toString('utf8');
235
+ const match = buffered.match(/ws:\/\/[^\s]+/);
236
+ if (!match)
237
+ return;
238
+ cleanup();
239
+ resolve(match[0]);
240
+ };
241
+ const onExit = (code) => {
242
+ cleanup();
243
+ reject(new Error(`The browser exited (code ${code ?? 'unknown'}) before it was ready.`));
244
+ };
245
+ function cleanup() {
246
+ clearTimeout(timer);
247
+ child.stderr?.off('data', onData);
248
+ child.off('exit', onExit);
249
+ }
250
+ child.stderr?.on('data', onData);
251
+ child.on('exit', onExit);
252
+ });
253
+ }
254
+ /**
255
+ * Launch a headless browser and attach to a fresh page.
256
+ *
257
+ * Every run gets its own empty profile directory, so a local check never reads
258
+ * or writes the developer's real browser profile — no cookies of theirs leak
259
+ * into the page, and nothing the page does survives the run.
260
+ */
261
+ export async function launchLocalBrowser(opts) {
262
+ const profileDir = mkdtempSync(join(tmpdir(), 'somewhere-browser-'));
263
+ const child = spawn(opts.executablePath, [
264
+ '--headless=new',
265
+ '--remote-debugging-port=0',
266
+ `--user-data-dir=${profileDir}`,
267
+ `--window-size=${opts.viewport.width},${opts.viewport.height}`,
268
+ '--no-first-run',
269
+ '--no-default-browser-check',
270
+ '--disable-background-networking',
271
+ '--disable-extensions',
272
+ '--disable-gpu',
273
+ '--hide-scrollbars',
274
+ 'about:blank',
275
+ ], { stdio: ['ignore', 'ignore', 'pipe'] });
276
+ const cleanup = async () => {
277
+ if (child.exitCode === null && child.signalCode === null) {
278
+ const exited = new Promise((resolve) => {
279
+ child.once('exit', () => resolve());
280
+ setTimeout(resolve, 2_000).unref();
281
+ });
282
+ try {
283
+ child.kill('SIGKILL');
284
+ }
285
+ catch {
286
+ /* already gone */
287
+ }
288
+ await exited;
289
+ }
290
+ // The profile is a scratch directory in the OS temp dir. Failing to remove
291
+ // it is not worth failing a run over — the browser may still be flushing —
292
+ // and the OS reclaims it.
293
+ try {
294
+ rmSync(profileDir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 });
295
+ }
296
+ catch {
297
+ /* the OS will reclaim it */
298
+ }
299
+ };
300
+ let session;
301
+ try {
302
+ const endpoint = await readEndpoint(child, opts.timeoutMs);
303
+ session = await DevToolsSession.connect(endpoint, opts.timeoutMs);
304
+ const { targetId } = (await session.send('Target.createTarget', { url: 'about:blank' }));
305
+ const attached = (await session.send('Target.attachToTarget', { targetId, flatten: true }));
306
+ session.sessionId = attached.sessionId;
307
+ }
308
+ catch (err) {
309
+ await cleanup();
310
+ throw err;
311
+ }
312
+ return {
313
+ session,
314
+ close: async () => {
315
+ session.close();
316
+ await cleanup();
317
+ },
318
+ };
319
+ }
320
+ //# sourceMappingURL=chrome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chrome.js","sourceRoot":"","sources":["../../src/local/chrome.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,7 @@ import { homedir } from 'node:os';
44
44
  import { dirname, join, resolve } from 'node:path';
45
45
  import { fileURLToPath } from 'node:url';
46
46
  import { promisify } from 'node:util';
47
+ import semver from 'semver';
47
48
  const execFileAsync = promisify(execFile);
48
49
  /** A compile that failed, located in the developer's own source. */
49
50
  export class CompileFailure extends Error {
@@ -123,8 +124,9 @@ async function prepareToolchain(manifest, groups, onFirstInstall) {
123
124
  return dirs;
124
125
  }
125
126
  /**
126
- * Install React at the version the compile image bakes, not the floor of the
127
- * declared range (tsk_0312cf17).
127
+ * Install a dependency at the version the compile image BAKES, not the floor of
128
+ * the declared range (tsk_0312cf17 for React, tsk_a8cb3d23 for the rest of the
129
+ * baked set).
128
130
  *
129
131
  * The image keeps React 19 in a tree of its own and prefers it over installing
130
132
  * the app's range; locally that set does not exist, so the compiler took its
@@ -132,6 +134,22 @@ async function prepareToolchain(manifest, groups, onFirstInstall) {
132
134
  * 19.2.0 while the image served 19.2.7. The same tree, compiled by the same
133
135
  * compiler, against two different Reacts.
134
136
  *
137
+ * That was never only about React. The image bakes ~20 more packages (router,
138
+ * query, forms, validation, dates, charts, icons…), and `ensureDeps` prefers a
139
+ * baked copy whenever its version satisfies the declared range — so `zod:
140
+ * ^3.23.0` served the image's baked 3.24.x on deploy and a floor-pinned 3.23.0
141
+ * locally. Same divergence, same fix: every group the vendor records is offered
142
+ * here, in the container's own order (baked first, then the isolated React 19
143
+ * set), each guarded by imagePinSatisfies so a pin is only ever taken when the
144
+ * container itself would have taken the baked copy.
145
+ *
146
+ * WHAT THIS DOES NOT COVER, stated plainly: when the project has its own
147
+ * node_modules, that tree is first on the search path and the local build uses
148
+ * the copy the developer installed. Deliberate — it is the exact tree they
149
+ * installed, and it is why a local loop beats a cloud one. These pins decide
150
+ * what the CLI's own dependency cache installs when a package is NOT already
151
+ * on the search path.
152
+ *
135
153
  * The fix is to rewrite the spec, NOT to add a second node_modules tree. That
136
154
  * was tried and is actively worse: a package that physically lives inside the
137
155
  * dependency cache resolves `react` to its own sibling before any search path
@@ -143,15 +161,49 @@ async function prepareToolchain(manifest, groups, onFirstInstall) {
143
161
  * something else (react-router-dom pulls one in), which is how a warm cache
144
162
  * ended up serving a third version again.
145
163
  */
146
- export function applyImagePins(specs, pins) {
147
- if (!Object.keys(pins).length)
164
+ export function applyImagePins(specs, deps, pinGroups) {
165
+ const groups = pinGroups.filter((g) => g && Object.keys(g).length > 0);
166
+ if (!groups.length)
148
167
  return specs;
149
168
  return specs.map((spec) => {
150
169
  const at = spec.lastIndexOf('@');
151
170
  const name = at > 0 ? spec.slice(0, at) : spec;
152
- return pins[name] ? `${name}@${pins[name]}` : spec;
171
+ const range = deps[name];
172
+ for (const group of groups) {
173
+ const version = group[name];
174
+ if (version && imagePinSatisfies(version, range))
175
+ return `${name}@${version}`;
176
+ }
177
+ return spec;
153
178
  });
154
179
  }
180
+ /**
181
+ * May the image's baked VERSION stand in for the project's declared RANGE?
182
+ *
183
+ * This is `bakedSatisfies` from the compile core, asked from the other side:
184
+ * the container prefers its baked copy only when that copy satisfies the range,
185
+ * so the local loop may pin to it only under the same condition. Without the
186
+ * check a project that declares `react-router-dom: ^7.9.5` would be pinned to
187
+ * the image's baked 6.x — a build that works today refused tomorrow.
188
+ *
189
+ * The bias is the core's, one-directional: anything we cannot POSITIVELY prove
190
+ * satisfies — an unparseable range (`latest`, a git or alias spec), a version
191
+ * semver rejects, semver itself unavailable — returns false and leaves the
192
+ * core's own spec alone. A false negative costs an install of the floor-pin,
193
+ * which is exactly today's behaviour; a false positive would compile the
194
+ * developer's app against a library they did not ask for.
195
+ */
196
+ export function imagePinSatisfies(version, range) {
197
+ const wanted = typeof range === 'string' && range.trim() ? range.trim() : '*';
198
+ try {
199
+ if (semver.validRange(wanted) === null)
200
+ return false;
201
+ return semver.satisfies(version, wanted, { includePrerelease: false });
202
+ }
203
+ catch {
204
+ return false;
205
+ }
206
+ }
155
207
  function digestOf(value) {
156
208
  return createHash('sha256').update(JSON.stringify(value)).digest('hex').slice(0, 12);
157
209
  }
@@ -170,16 +222,16 @@ function digestOf(value) {
170
222
  * overwrite each other, and two projects with identical dependencies share the
171
223
  * install for free.
172
224
  */
173
- function resolveAppDependencies(cwd, pkg, pins) {
225
+ function resolveAppDependencies(cwd, pkg, pinGroups) {
174
226
  const search = [];
175
227
  const projectModules = join(cwd, 'node_modules');
176
228
  if (existsSync(projectModules))
177
229
  search.push(projectModules);
178
230
  const deps = pkg.dependencies ?? {};
179
231
  // The pins are part of the cache identity (tsk_0312cf17): when the image
180
- // bumps its React and the CLI re-vendors, the old cache is simply not reused,
181
- // so a warm cache can never keep serving the version we just moved off.
182
- const cacheDir = join(cacheHome(), 'dev-deps', digestOf([Object.entries(deps).sort(), pins]));
232
+ // bumps a baked package and the CLI re-vendors, the old cache is simply not
233
+ // reused, so a warm cache can never keep serving the version we moved off.
234
+ const cacheDir = join(cacheHome(), 'dev-deps', digestOf([Object.entries(deps).sort(), pinGroups]));
183
235
  // The core decides what is actually missing (its baked-satisfies rules run
184
236
  // against this exact search path) and calls host.installPackages for the
185
237
  // rest. All we do here is make the cache dir part of the search path.
@@ -305,8 +357,11 @@ export class LocalCompiler {
305
357
  const requireCli = createRequire(join(root, 'package.json'));
306
358
  const groups = ['base', ...(tailwindVersion === 4 ? ['tw4'] : tailwindVersion === 3 ? ['tw3'] : [])];
307
359
  const toolchainDirs = await prepareToolchain(manifest, groups, this.opts.onPrepare);
308
- const react19Pins = manifest.toolchain.react19 ?? {};
309
- this.searchPath = resolveAppDependencies(this.opts.cwd, pkg, react19Pins);
360
+ // The image's own versions, in the container's preference order: the baked
361
+ // tree first, the isolated React 19 set second (ensureDeps only reaches
362
+ // react19 when the baked React 18 does not satisfy the pin).
363
+ const imagePinGroups = [manifest.toolchain.baked ?? {}, manifest.toolchain.react19 ?? {}];
364
+ this.searchPath = resolveAppDependencies(this.opts.cwd, pkg, imagePinGroups);
310
365
  this.depCacheDir = resolve(this.searchPath[this.searchPath.length - 1], '..');
311
366
  const requireToolchain = (group) => createRequire(join(toolchainDirs[group], 'package.json'));
312
367
  const requireBase = requireToolchain('base');
@@ -340,7 +395,7 @@ export class LocalCompiler {
340
395
  // is not a safety signal.
341
396
  requiresPackageProxy: false,
342
397
  installPackages: async ({ specs }) => {
343
- const pinned = applyImagePins(specs, react19Pins);
398
+ const pinned = applyImagePins(specs, pkg.dependencies ?? {}, imagePinGroups);
344
399
  this.opts.onPrepare?.(`${pinned.length} ${pinned.length === 1 ? 'dependency' : 'dependencies'} (${pinned.join(', ')})`);
345
400
  await installInto(this.depCacheDir, pinned);
346
401
  },
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/local/compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/local/compiler.ts"],"names":[],"mappings":"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"}