@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.
- package/dist/commands/auth.js +50 -4
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/browser.js +115 -16
- package/dist/commands/browser.js.map +1 -1
- package/dist/commands/check.js +7 -0
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/deploy.js +82 -6
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.js +64 -7
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/docs.js +139 -7
- package/dist/commands/docs.js.map +1 -1
- package/dist/commands/errors.js +29 -6
- package/dist/commands/errors.js.map +1 -1
- package/dist/commands/status.js +89 -4
- package/dist/commands/status.js.map +1 -1
- package/dist/lib/client.js +59 -4
- package/dist/lib/client.js.map +1 -1
- package/dist/lib/config.js +18 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/files.js +57 -6
- package/dist/lib/files.js.map +1 -1
- package/dist/lib/output.js +4 -2
- package/dist/lib/output.js.map +1 -1
- package/dist/lib/publish-surface.js +94 -0
- package/dist/lib/publish-surface.js.map +1 -0
- package/dist/local/browser-run.js +321 -0
- package/dist/local/browser-run.js.map +1 -0
- package/dist/local/chrome.js +320 -0
- package/dist/local/chrome.js.map +1 -0
- package/dist/local/compiler.js +67 -12
- package/dist/local/compiler.js.map +1 -1
- package/dist/local/runtime.js +72 -2
- package/dist/local/runtime.js.map +1 -1
- package/dist/local/telemetry-filter.js +120 -0
- package/dist/local/telemetry-filter.js.map +1 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
- package/runtime/VENDOR.json +4 -3
- package/runtime/browser-probes.mjs +6 -0
- package/runtime/compiler/VENDOR.json +40 -3
- package/runtime/compiler/compile-core.cjs +18 -0
- package/runtime/compiler/typed-functions.cjs +31 -1
- package/runtime/platform-context.mjs +241 -23
- 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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"}
|
package/dist/local/compiler.js
CHANGED
|
@@ -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
|
|
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,
|
|
147
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
|
181
|
-
// so a warm cache can never keep serving the version we
|
|
182
|
-
const cacheDir = join(cacheHome(), 'dev-deps', digestOf([Object.entries(deps).sort(),
|
|
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
|
-
|
|
309
|
-
|
|
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,
|
|
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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"}
|