@pixelbyte-software/pixcode 1.40.4 → 1.40.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.
- package/dist/assets/{index-pC1RxVq6.js → index-ZA4sMw0s.js} +44 -44
- package/dist/index.html +1 -1
- package/dist/landing.html +1 -1
- package/dist-server/server/services/install-jobs.js +1 -1
- package/dist-server/server/services/install-jobs.js.map +1 -1
- package/dist-server/server/services/live-view.js +75 -18
- package/dist-server/server/services/live-view.js.map +1 -1
- package/dist-server/server/services/managed-runtimes.js +136 -33
- package/dist-server/server/services/managed-runtimes.js.map +1 -1
- package/package.json +1 -1
- package/scripts/smoke/live-view-integration.mjs +103 -1
- package/server/services/install-jobs.js +1 -1
- package/server/services/live-view.js +79 -19
- package/server/services/managed-runtimes.js +147 -33
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-runtimes.js","sourceRoot":"","sources":["../../../server/services/managed-runtimes.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"managed-runtimes.js","sourceRoot":"","sources":["../../../server/services/managed-runtimes.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pixelbyte-software/pixcode",
|
|
3
|
-
"version": "1.40.
|
|
3
|
+
"version": "1.40.6",
|
|
4
4
|
"description": "Self-hosted AI coding agent control room for Claude Code, Cursor CLI, OpenAI Codex, Gemini CLI, Qwen Code, and OpenCode with chat, files, shell, Git, orchestration, API keys, Telegram, MCP, plugins, themes, and desktop/server deployment.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist-server/server/index.js",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { mkdtemp, writeFile } from 'node:fs/promises';
|
|
1
|
+
import { chmod, mkdtemp, readFile, writeFile } from 'node:fs/promises';
|
|
2
2
|
import { tmpdir } from 'node:os';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
@@ -87,6 +87,10 @@ assert.ok(
|
|
|
87
87
|
liveViewPanel.includes('managedRuntime') && liveViewPanel.includes('liveView.managedRuntimePreparing'),
|
|
88
88
|
'Live View panel should explain that Pixcode can prepare managed runtimes automatically.',
|
|
89
89
|
);
|
|
90
|
+
assert.ok(
|
|
91
|
+
liveViewPanel.includes('isPreparingManagedRuntime') && liveViewPanel.includes('liveView.preparingRuntime'),
|
|
92
|
+
'Live View panel should show a visible in-progress state while Pixcode downloads and installs a managed runtime.',
|
|
93
|
+
);
|
|
90
94
|
assert.ok(
|
|
91
95
|
liveViewPanel.includes("runAction('restart')"),
|
|
92
96
|
'Live View panel should expose a restart action for failed process runners.',
|
|
@@ -101,6 +105,20 @@ assert.ok(
|
|
|
101
105
|
managedRuntimes.includes('extractZip') && managedRuntimes.includes('extractTarGz'),
|
|
102
106
|
'Managed runtime installation should handle common Windows zip and macOS/Linux tarball assets.',
|
|
103
107
|
);
|
|
108
|
+
assert.ok(
|
|
109
|
+
managedRuntimes.includes('preferManaged'),
|
|
110
|
+
'Managed PHP Live View should be able to skip external runtimes and prefer Pixcode-owned binaries.',
|
|
111
|
+
);
|
|
112
|
+
assert.ok(
|
|
113
|
+
managedRuntimes.includes("id === 'npm'") && managedRuntimes.includes('installNpmRuntime'),
|
|
114
|
+
'Managed runtimes should include a Pixcode-owned npm runner for JavaScript projects when npm is not on PATH.',
|
|
115
|
+
);
|
|
116
|
+
assert.ok(
|
|
117
|
+
managedRuntimes.includes('buildPowerShellExpandArchiveArgs')
|
|
118
|
+
&& managedRuntimes.includes('param([string]$archive, [string]$destination)')
|
|
119
|
+
&& !managedRuntimes.includes('LiteralPath $args[0]'),
|
|
120
|
+
'Windows zip extraction should pass archive paths through a PowerShell param block instead of unreliable $args indexing.',
|
|
121
|
+
);
|
|
104
122
|
|
|
105
123
|
const serverIndex = await read('server/index.js');
|
|
106
124
|
assert.ok(
|
|
@@ -122,6 +140,7 @@ const {
|
|
|
122
140
|
startLiveView,
|
|
123
141
|
stopLiveView,
|
|
124
142
|
} = await import('../../server/services/live-view.js');
|
|
143
|
+
const { ensureManagedRuntime } = await import('../../server/services/managed-runtimes.js');
|
|
125
144
|
const workspace = await mkdtemp(path.join(tmpdir(), 'pixcode-live-view-smoke-'));
|
|
126
145
|
const staticProject = path.join(workspace, 'static');
|
|
127
146
|
const viteProject = path.join(workspace, 'vite');
|
|
@@ -152,6 +171,18 @@ const viteTarget = await detectLiveViewTarget(viteProject);
|
|
|
152
171
|
assert.equal(viteTarget.available, true, 'Vite projects should be detected.');
|
|
153
172
|
assert.equal(viteTarget.command?.id, 'npm-dev-vite', 'Vite projects should get a Vite-aware command.');
|
|
154
173
|
|
|
174
|
+
const viteMissingNpmTarget = await detectLiveViewTarget(viteProject, {
|
|
175
|
+
env: {
|
|
176
|
+
...process.env,
|
|
177
|
+
PATH: '',
|
|
178
|
+
Path: '',
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
assert.equal(viteMissingNpmTarget.available, true, 'Vite projects should remain runnable through a Pixcode-managed package runner when npm is missing from PATH.');
|
|
182
|
+
assert.equal(viteMissingNpmTarget.command?.id, 'npm-dev-vite', 'Vite projects should keep the original Vite command identity.');
|
|
183
|
+
assert.equal(viteMissingNpmTarget.managedRuntime?.id, 'npm', 'Missing npm should select the Pixcode-managed npm runner.');
|
|
184
|
+
assert.equal(viteMissingNpmTarget.managedRuntime?.status, 'missing', 'Missing npm should report that the managed package runner still needs preparation.');
|
|
185
|
+
|
|
155
186
|
const djangoTarget = await detectLiveViewTarget(djangoProject);
|
|
156
187
|
assert.equal(djangoTarget.available, true, 'Django projects should be detected from manage.py.');
|
|
157
188
|
assert.equal(djangoTarget.command?.id, 'python-django', 'Django projects should get a runserver command.');
|
|
@@ -172,6 +203,77 @@ assert.ok(
|
|
|
172
203
|
'Missing PHP should use product language instead of exposing PATH setup as the primary message.',
|
|
173
204
|
);
|
|
174
205
|
|
|
206
|
+
const fakeBin = path.join(workspace, 'fake-bin');
|
|
207
|
+
await mkdir(fakeBin, { recursive: true });
|
|
208
|
+
const fakePhp = path.join(fakeBin, process.platform === 'win32' ? 'php.cmd' : 'php');
|
|
209
|
+
await writeFile(fakePhp, process.platform === 'win32' ? '@echo off\r\nexit /b 0\r\n' : '#!/bin/sh\nexit 0\n');
|
|
210
|
+
if (process.platform !== 'win32') {
|
|
211
|
+
await chmod(fakePhp, 0o755);
|
|
212
|
+
}
|
|
213
|
+
const fakePath = process.platform === 'win32'
|
|
214
|
+
? `${fakeBin};${process.env.PATH || ''}`
|
|
215
|
+
: `${fakeBin}:${process.env.PATH || ''}`;
|
|
216
|
+
const phpSystemRuntimeTarget = await detectLiveViewTarget(phpProject, {
|
|
217
|
+
env: {
|
|
218
|
+
...process.env,
|
|
219
|
+
PATH: fakePath,
|
|
220
|
+
Path: fakePath,
|
|
221
|
+
},
|
|
222
|
+
});
|
|
223
|
+
assert.equal(phpSystemRuntimeTarget.available, true, 'PHP projects should stay runnable when php exists on PATH.');
|
|
224
|
+
assert.equal(phpSystemRuntimeTarget.command?.id, 'frankenphp-php-server', 'PHP projects should still use the Pixcode-managed runtime even when external php exists.');
|
|
225
|
+
assert.equal(phpSystemRuntimeTarget.managedRuntime?.id, 'frankenphp', 'PHP projects should prefer the Pixcode-owned FrankenPHP runtime instead of external php.');
|
|
226
|
+
|
|
227
|
+
const tar = await import('tar');
|
|
228
|
+
const npmPackageRoot = path.join(workspace, 'npm-package-root');
|
|
229
|
+
const npmPackageDir = path.join(npmPackageRoot, 'package');
|
|
230
|
+
await mkdir(path.join(npmPackageDir, 'bin'), { recursive: true });
|
|
231
|
+
await writeFile(path.join(npmPackageDir, 'package.json'), JSON.stringify({ name: 'npm', version: '10.0.0' }));
|
|
232
|
+
await writeFile(path.join(npmPackageDir, 'bin', 'npm-cli.js'), '#!/usr/bin/env node\nconsole.log("npm smoke");\n');
|
|
233
|
+
const npmTarball = path.join(workspace, 'npm-runtime.tgz');
|
|
234
|
+
await tar.c({ cwd: npmPackageRoot, file: npmTarball, gzip: true }, ['package']);
|
|
235
|
+
const npmTarballBuffer = await readFile(npmTarball);
|
|
236
|
+
const originalFetch = globalThis.fetch;
|
|
237
|
+
const metadataAcceptHeaders = [];
|
|
238
|
+
globalThis.fetch = async (url, options = {}) => {
|
|
239
|
+
const requestUrl = String(url);
|
|
240
|
+
const headers = options.headers || {};
|
|
241
|
+
const accept = typeof headers.get === 'function' ? headers.get('Accept') : headers.Accept;
|
|
242
|
+
if (requestUrl === 'https://registry.test/npm/latest') {
|
|
243
|
+
metadataAcceptHeaders.push(String(accept || ''));
|
|
244
|
+
if (!String(accept || '').includes('application/json')) {
|
|
245
|
+
return new Response(JSON.stringify({ error: 'not acceptable' }), { status: 406 });
|
|
246
|
+
}
|
|
247
|
+
return new Response(JSON.stringify({
|
|
248
|
+
version: '10.0.0',
|
|
249
|
+
dist: { tarball: 'https://registry.test/npm/-/npm-10.0.0.tgz' },
|
|
250
|
+
}), { status: 200, headers: { 'Content-Type': 'application/json' } });
|
|
251
|
+
}
|
|
252
|
+
if (requestUrl === 'https://registry.test/npm/-/npm-10.0.0.tgz') {
|
|
253
|
+
return new Response(npmTarballBuffer, { status: 200 });
|
|
254
|
+
}
|
|
255
|
+
return originalFetch(url, options);
|
|
256
|
+
};
|
|
257
|
+
try {
|
|
258
|
+
const npmRuntime = await ensureManagedRuntime('npm', {
|
|
259
|
+
preferManaged: true,
|
|
260
|
+
env: {
|
|
261
|
+
...process.env,
|
|
262
|
+
PATH: '',
|
|
263
|
+
Path: '',
|
|
264
|
+
PIXCODE_MANAGED_RUNTIMES_HOME: path.join(workspace, 'managed-runtimes'),
|
|
265
|
+
PIXCODE_NPM_RUNTIME_REGISTRY: 'https://registry.test/npm/latest',
|
|
266
|
+
},
|
|
267
|
+
});
|
|
268
|
+
assert.equal(npmRuntime.status, 'installed', 'Managed npm runtime should install from npm registry metadata.');
|
|
269
|
+
assert.ok(
|
|
270
|
+
metadataAcceptHeaders.every((accept) => accept.includes('application/json')),
|
|
271
|
+
'Managed npm runtime metadata requests should use an npm-compatible JSON Accept header.',
|
|
272
|
+
);
|
|
273
|
+
} finally {
|
|
274
|
+
globalThis.fetch = originalFetch;
|
|
275
|
+
}
|
|
276
|
+
|
|
175
277
|
const staticSession = await startLiveView('static-smoke', staticProject);
|
|
176
278
|
assert.equal(staticSession.status, 'running', 'Static Live View should start without a child process.');
|
|
177
279
|
assert.match(staticSession.sharePath, /^\/live\/[a-f0-9]{24}\/$/, 'Live View should expose a random public share path.');
|
|
@@ -459,7 +459,7 @@ export function findExecutableOnPath(name, env = process.env) {
|
|
|
459
459
|
* more reliable than trusting PATH — when Pixcode runs as a daemon, PATH
|
|
460
460
|
* is often minimal and doesn't include the user's node install.
|
|
461
461
|
*/
|
|
462
|
-
function resolveNpmCommand(env = process.env) {
|
|
462
|
+
export function resolveNpmCommand(env = process.env) {
|
|
463
463
|
const nodeDir = path.dirname(process.execPath);
|
|
464
464
|
const isWindows = process.platform === 'win32';
|
|
465
465
|
const candidates = isWindows
|
|
@@ -4,6 +4,7 @@ import { promises as fs } from 'node:fs';
|
|
|
4
4
|
import net from 'node:net';
|
|
5
5
|
import path from 'node:path';
|
|
6
6
|
|
|
7
|
+
import { buildCliSpawnEnv } from './install-jobs.js';
|
|
7
8
|
import { ensureManagedRuntime, getManagedRuntimeStatus } from './managed-runtimes.js';
|
|
8
9
|
|
|
9
10
|
const sessionsByProject = new Map();
|
|
@@ -99,7 +100,7 @@ function runtimeMissingReason(command, framework) {
|
|
|
99
100
|
return 'Pixcode can prepare a local PHP runtime automatically before starting this project.';
|
|
100
101
|
}
|
|
101
102
|
if (command === 'npm' || command === 'pnpm' || command === 'yarn' || command === 'bun') {
|
|
102
|
-
return `${base} Pixcode
|
|
103
|
+
return `${base} Pixcode can prepare a local Node package runner automatically before starting this project.`;
|
|
103
104
|
}
|
|
104
105
|
if (command === 'python' || command === 'python3') {
|
|
105
106
|
return `${base} Pixcode does not have a managed Python runtime for this stack yet.`;
|
|
@@ -169,12 +170,44 @@ function buildPackageCommand(packageManager, scriptName, id, label, framework, e
|
|
|
169
170
|
id,
|
|
170
171
|
label,
|
|
171
172
|
framework,
|
|
173
|
+
packageManager,
|
|
174
|
+
scriptName,
|
|
175
|
+
extraArgs,
|
|
172
176
|
command: packageManager,
|
|
173
177
|
args,
|
|
174
178
|
displayCommand: buildDisplayCommand(packageManager, args),
|
|
175
179
|
};
|
|
176
180
|
}
|
|
177
181
|
|
|
182
|
+
function isPackageManagerCommand(command) {
|
|
183
|
+
return command === 'npm' || command === 'pnpm' || command === 'yarn' || command === 'bun';
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
function buildManagedPackageCommand(command, runtimeStatus) {
|
|
187
|
+
const npmArgs = command.scriptName
|
|
188
|
+
? packageRunArgs('npm', command.scriptName, command.extraArgs || [])
|
|
189
|
+
: command.args;
|
|
190
|
+
const runtimeExecutable = runtimeStatus?.executablePath || null;
|
|
191
|
+
const commandExecutable = runtimeExecutable
|
|
192
|
+
? (runtimeStatus?.runner === 'node' || runtimeExecutable.endsWith('.js') ? process.execPath : runtimeExecutable)
|
|
193
|
+
: command.command;
|
|
194
|
+
const args = runtimeExecutable && (runtimeStatus?.runner === 'node' || runtimeExecutable.endsWith('.js'))
|
|
195
|
+
? [runtimeExecutable, ...npmArgs]
|
|
196
|
+
: npmArgs;
|
|
197
|
+
|
|
198
|
+
return {
|
|
199
|
+
...command,
|
|
200
|
+
packageManager: 'npm',
|
|
201
|
+
command: commandExecutable,
|
|
202
|
+
args,
|
|
203
|
+
displayCommand: buildDisplayCommand('npm', npmArgs),
|
|
204
|
+
managedRuntime: {
|
|
205
|
+
id: 'npm',
|
|
206
|
+
status: runtimeStatus?.status || 'missing',
|
|
207
|
+
},
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
|
|
178
211
|
function buildManagedPhpCommand(runtimeStatus) {
|
|
179
212
|
const executable = runtimeStatus?.executablePath || 'frankenphp';
|
|
180
213
|
return {
|
|
@@ -414,24 +447,46 @@ export async function detectLiveViewTarget(projectPath, options = {}) {
|
|
|
414
447
|
|
|
415
448
|
const processCommand = await detectProcessCommand(projectPath);
|
|
416
449
|
if (processCommand) {
|
|
450
|
+
if (isPackageManagerCommand(processCommand.command)) {
|
|
451
|
+
const managedRuntime = await getManagedRuntimeStatus('npm', {
|
|
452
|
+
env: options.env || process.env,
|
|
453
|
+
preferManaged: true,
|
|
454
|
+
});
|
|
455
|
+
const command = buildManagedPackageCommand(processCommand, managedRuntime);
|
|
456
|
+
return {
|
|
457
|
+
available: true,
|
|
458
|
+
kind: 'process',
|
|
459
|
+
label: processCommand.label,
|
|
460
|
+
framework: processCommand.framework,
|
|
461
|
+
command,
|
|
462
|
+
managedRuntime,
|
|
463
|
+
reason: managedRuntime.status === 'missing'
|
|
464
|
+
? 'Pixcode will prepare a local Node package runner automatically before starting this project.'
|
|
465
|
+
: 'Pixcode will run this project with its managed Node package runner.',
|
|
466
|
+
};
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
if (processCommand.framework === 'PHP' || processCommand.command === 'php') {
|
|
470
|
+
const managedRuntime = await getManagedRuntimeStatus('frankenphp', {
|
|
471
|
+
env: options.env || process.env,
|
|
472
|
+
preferManaged: true,
|
|
473
|
+
});
|
|
474
|
+
const command = buildManagedPhpCommand(managedRuntime);
|
|
475
|
+
return {
|
|
476
|
+
available: true,
|
|
477
|
+
kind: 'process',
|
|
478
|
+
label: command.label,
|
|
479
|
+
framework: command.framework,
|
|
480
|
+
command,
|
|
481
|
+
managedRuntime,
|
|
482
|
+
reason: managedRuntime.status === 'missing'
|
|
483
|
+
? 'Pixcode will prepare a local PHP runtime automatically before starting this project.'
|
|
484
|
+
: 'Pixcode will run this project with its managed PHP runtime.',
|
|
485
|
+
};
|
|
486
|
+
}
|
|
487
|
+
|
|
417
488
|
const runtimeAvailable = await checkCommandAvailability(processCommand.command, options.env || process.env);
|
|
418
489
|
if (!runtimeAvailable) {
|
|
419
|
-
if (processCommand.framework === 'PHP' || processCommand.command === 'php') {
|
|
420
|
-
const managedRuntime = await getManagedRuntimeStatus('frankenphp', { env: options.env || process.env });
|
|
421
|
-
const command = buildManagedPhpCommand(managedRuntime);
|
|
422
|
-
return {
|
|
423
|
-
available: true,
|
|
424
|
-
kind: 'process',
|
|
425
|
-
label: command.label,
|
|
426
|
-
framework: command.framework,
|
|
427
|
-
command,
|
|
428
|
-
managedRuntime,
|
|
429
|
-
reason: managedRuntime.status === 'missing'
|
|
430
|
-
? 'Pixcode will prepare a local PHP runtime automatically before starting this project.'
|
|
431
|
-
: 'Pixcode will run this project with its managed PHP runtime.',
|
|
432
|
-
};
|
|
433
|
-
}
|
|
434
|
-
|
|
435
490
|
return {
|
|
436
491
|
available: false,
|
|
437
492
|
kind: 'process',
|
|
@@ -618,9 +673,13 @@ export async function startLiveView(projectName, projectPath, options = {}) {
|
|
|
618
673
|
let runtimeStatus = target.managedRuntime || target.command?.managedRuntime || null;
|
|
619
674
|
let targetCommand = target.command;
|
|
620
675
|
if (runtimeStatus?.id && runtimeStatus.status !== 'system' && runtimeStatus.status !== 'installed') {
|
|
621
|
-
runtimeStatus = await ensureManagedRuntime(runtimeStatus.id
|
|
676
|
+
runtimeStatus = await ensureManagedRuntime(runtimeStatus.id, {
|
|
677
|
+
preferManaged: runtimeStatus.id === 'frankenphp' || runtimeStatus.id === 'npm',
|
|
678
|
+
});
|
|
622
679
|
if (runtimeStatus.id === 'frankenphp') {
|
|
623
680
|
targetCommand = buildManagedPhpCommand(runtimeStatus);
|
|
681
|
+
} else if (runtimeStatus.id === 'npm') {
|
|
682
|
+
targetCommand = buildManagedPackageCommand(targetCommand, runtimeStatus);
|
|
624
683
|
}
|
|
625
684
|
}
|
|
626
685
|
|
|
@@ -649,8 +708,9 @@ export async function startLiveView(projectName, projectPath, options = {}) {
|
|
|
649
708
|
};
|
|
650
709
|
|
|
651
710
|
const env = {
|
|
652
|
-
...process.env,
|
|
711
|
+
...buildCliSpawnEnv(process.env),
|
|
653
712
|
...(command.env || {}),
|
|
713
|
+
...(process.versions.electron ? { ELECTRON_RUN_AS_NODE: '1' } : {}),
|
|
654
714
|
PORT: String(port),
|
|
655
715
|
HOST: '127.0.0.1',
|
|
656
716
|
VITE_HOST: '127.0.0.1',
|
|
@@ -3,7 +3,9 @@ import { promises as fs } from 'node:fs';
|
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
|
|
6
|
-
import
|
|
6
|
+
import * as tar from 'tar';
|
|
7
|
+
|
|
8
|
+
import { buildCliSpawnEnv, findExecutableOnPath, resolveNpmCommand } from './install-jobs.js';
|
|
7
9
|
|
|
8
10
|
const DEFAULT_RUNTIMES_HOME = path.join(os.homedir(), '.pixcode', 'runtimes');
|
|
9
11
|
const MANIFEST_FILE = 'pixcode-runtime.json';
|
|
@@ -81,12 +83,21 @@ function selectFrankenPhpAsset(release) {
|
|
|
81
83
|
return candidates[0]?.asset || null;
|
|
82
84
|
}
|
|
83
85
|
|
|
84
|
-
|
|
86
|
+
function isGitHubUrl(url) {
|
|
87
|
+
try {
|
|
88
|
+
const hostname = new URL(url).hostname.toLowerCase();
|
|
89
|
+
return hostname === 'github.com' || hostname === 'api.github.com' || hostname.endsWith('.github.com');
|
|
90
|
+
} catch {
|
|
91
|
+
return String(url).includes('github.com');
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
async function fetchJson(url, env = process.env, options = {}) {
|
|
85
96
|
const headers = {
|
|
86
|
-
Accept: 'application/
|
|
97
|
+
Accept: options.accept || 'application/json',
|
|
87
98
|
'User-Agent': 'Pixcode Live View',
|
|
88
99
|
};
|
|
89
|
-
if (env.GITHUB_TOKEN) headers.Authorization = `Bearer ${env.GITHUB_TOKEN}`;
|
|
100
|
+
if (env.GITHUB_TOKEN && isGitHubUrl(url)) headers.Authorization = `Bearer ${env.GITHUB_TOKEN}`;
|
|
90
101
|
|
|
91
102
|
const response = await fetch(url, { headers });
|
|
92
103
|
if (!response.ok) {
|
|
@@ -97,7 +108,7 @@ async function fetchJson(url, env = process.env) {
|
|
|
97
108
|
|
|
98
109
|
async function downloadFile(url, targetFile, env = process.env) {
|
|
99
110
|
const headers = { 'User-Agent': 'Pixcode Live View' };
|
|
100
|
-
if (env.GITHUB_TOKEN && url
|
|
111
|
+
if (env.GITHUB_TOKEN && isGitHubUrl(url)) headers.Authorization = `Bearer ${env.GITHUB_TOKEN}`;
|
|
101
112
|
|
|
102
113
|
const response = await fetch(url, { headers });
|
|
103
114
|
if (!response.ok) {
|
|
@@ -129,31 +140,28 @@ function runProcess(command, args, options = {}) {
|
|
|
129
140
|
});
|
|
130
141
|
}
|
|
131
142
|
|
|
143
|
+
function buildPowerShellExpandArchiveArgs(archivePath, targetDir) {
|
|
144
|
+
return [
|
|
145
|
+
'-NoProfile',
|
|
146
|
+
'-ExecutionPolicy',
|
|
147
|
+
'Bypass',
|
|
148
|
+
'-Command',
|
|
149
|
+
'& { param([string]$archive, [string]$destination) Expand-Archive -Force -LiteralPath $archive -DestinationPath $destination }',
|
|
150
|
+
archivePath,
|
|
151
|
+
targetDir,
|
|
152
|
+
];
|
|
153
|
+
}
|
|
154
|
+
|
|
132
155
|
async function extractZip(archivePath, targetDir, env = process.env) {
|
|
133
156
|
if (process.platform === 'win32') {
|
|
134
157
|
const shell = env.ComSpec || process.env.ComSpec || 'powershell.exe';
|
|
135
158
|
const isCmd = shell.toLowerCase().endsWith('cmd.exe');
|
|
159
|
+
const expandArgs = buildPowerShellExpandArchiveArgs(archivePath, targetDir);
|
|
136
160
|
if (isCmd) {
|
|
137
|
-
await runProcess('powershell.exe',
|
|
138
|
-
'-NoProfile',
|
|
139
|
-
'-ExecutionPolicy',
|
|
140
|
-
'Bypass',
|
|
141
|
-
'-Command',
|
|
142
|
-
'Expand-Archive -Force -LiteralPath $args[0] -DestinationPath $args[1]',
|
|
143
|
-
archivePath,
|
|
144
|
-
targetDir,
|
|
145
|
-
], { env });
|
|
161
|
+
await runProcess('powershell.exe', expandArgs, { env });
|
|
146
162
|
return;
|
|
147
163
|
}
|
|
148
|
-
await runProcess(shell,
|
|
149
|
-
'-NoProfile',
|
|
150
|
-
'-ExecutionPolicy',
|
|
151
|
-
'Bypass',
|
|
152
|
-
'-Command',
|
|
153
|
-
'Expand-Archive -Force -LiteralPath $args[0] -DestinationPath $args[1]',
|
|
154
|
-
archivePath,
|
|
155
|
-
targetDir,
|
|
156
|
-
], { env });
|
|
164
|
+
await runProcess(shell, expandArgs, { env });
|
|
157
165
|
return;
|
|
158
166
|
}
|
|
159
167
|
|
|
@@ -161,7 +169,11 @@ async function extractZip(archivePath, targetDir, env = process.env) {
|
|
|
161
169
|
}
|
|
162
170
|
|
|
163
171
|
async function extractTarGz(archivePath, targetDir, env = process.env) {
|
|
164
|
-
|
|
172
|
+
void env;
|
|
173
|
+
await tar.x({
|
|
174
|
+
file: archivePath,
|
|
175
|
+
cwd: targetDir,
|
|
176
|
+
});
|
|
165
177
|
}
|
|
166
178
|
|
|
167
179
|
async function findRuntimeExecutable(searchRoot, binaryName) {
|
|
@@ -191,7 +203,9 @@ async function findRuntimeExecutable(searchRoot, binaryName) {
|
|
|
191
203
|
async function installFrankenPhp(env = process.env) {
|
|
192
204
|
const releaseApiUrl = env.PIXCODE_FRANKENPHP_RELEASE_API
|
|
193
205
|
|| 'https://api.github.com/repos/php/frankenphp/releases/latest';
|
|
194
|
-
const release = env.PIXCODE_FRANKENPHP_URL
|
|
206
|
+
const release = env.PIXCODE_FRANKENPHP_URL
|
|
207
|
+
? null
|
|
208
|
+
: await fetchJson(releaseApiUrl, env, { accept: 'application/vnd.github+json' });
|
|
195
209
|
const asset = env.PIXCODE_FRANKENPHP_URL
|
|
196
210
|
? {
|
|
197
211
|
name: path.basename(new URL(env.PIXCODE_FRANKENPHP_URL).pathname),
|
|
@@ -255,9 +269,53 @@ async function installFrankenPhp(env = process.env) {
|
|
|
255
269
|
return manifest;
|
|
256
270
|
}
|
|
257
271
|
|
|
272
|
+
async function installNpmRuntime(env = process.env) {
|
|
273
|
+
const registryUrl = env.PIXCODE_NPM_RUNTIME_REGISTRY
|
|
274
|
+
|| 'https://registry.npmjs.org/npm/latest';
|
|
275
|
+
const metadata = await fetchJson(registryUrl, env, { accept: 'application/json' });
|
|
276
|
+
const tarballUrl = metadata?.dist?.tarball;
|
|
277
|
+
if (!tarballUrl) {
|
|
278
|
+
throw new Error('No npm runtime tarball is available from the npm registry.');
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
const baseDir = runtimeDir('npm', env);
|
|
282
|
+
const stagingDir = path.join(baseDir, `.staging-${Date.now()}`);
|
|
283
|
+
const currentDir = path.join(baseDir, 'current');
|
|
284
|
+
await fs.mkdir(stagingDir, { recursive: true });
|
|
285
|
+
|
|
286
|
+
const archivePath = path.join(stagingDir, 'npm-runtime.tgz');
|
|
287
|
+
await downloadFile(tarballUrl, archivePath, env);
|
|
288
|
+
await extractTarGz(archivePath, stagingDir, env);
|
|
289
|
+
|
|
290
|
+
const packageDir = path.join(stagingDir, 'package');
|
|
291
|
+
const executablePath = path.join(packageDir, 'bin', 'npm-cli.js');
|
|
292
|
+
if (!(await fileExists(executablePath))) {
|
|
293
|
+
throw new Error('Downloaded npm runtime did not contain bin/npm-cli.js.');
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
await fs.rm(currentDir, { recursive: true, force: true });
|
|
297
|
+
await fs.cp(packageDir, currentDir, { recursive: true, force: true });
|
|
298
|
+
|
|
299
|
+
const finalExecutable = path.join(currentDir, 'bin', 'npm-cli.js');
|
|
300
|
+
const manifest = {
|
|
301
|
+
id: 'npm',
|
|
302
|
+
label: 'Pixcode Node package runner',
|
|
303
|
+
provider: 'npm',
|
|
304
|
+
version: metadata?.version || 'latest',
|
|
305
|
+
executablePath: finalExecutable,
|
|
306
|
+
runner: 'node',
|
|
307
|
+
sourceUrl: tarballUrl,
|
|
308
|
+
installedAt: new Date().toISOString(),
|
|
309
|
+
};
|
|
310
|
+
await fs.writeFile(manifestPath('npm', env), JSON.stringify(manifest, null, 2));
|
|
311
|
+
await fs.rm(stagingDir, { recursive: true, force: true }).catch(() => undefined);
|
|
312
|
+
return manifest;
|
|
313
|
+
}
|
|
314
|
+
|
|
258
315
|
export async function getManagedRuntimeStatus(id, options = {}) {
|
|
259
316
|
const env = options.env || process.env;
|
|
260
|
-
|
|
317
|
+
const preferManaged = Boolean(options.preferManaged);
|
|
318
|
+
if (id !== 'frankenphp' && id !== 'npm') {
|
|
261
319
|
return {
|
|
262
320
|
id,
|
|
263
321
|
status: 'unsupported',
|
|
@@ -266,18 +324,59 @@ export async function getManagedRuntimeStatus(id, options = {}) {
|
|
|
266
324
|
};
|
|
267
325
|
}
|
|
268
326
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
327
|
+
if (id === 'npm') {
|
|
328
|
+
if (!preferManaged) {
|
|
329
|
+
const spawnEnv = buildCliSpawnEnv(env);
|
|
330
|
+
const npmExecutable = resolveNpmCommand(spawnEnv);
|
|
331
|
+
if (npmExecutable) {
|
|
332
|
+
return {
|
|
333
|
+
id,
|
|
334
|
+
label: 'npm',
|
|
335
|
+
status: 'system',
|
|
336
|
+
installable: true,
|
|
337
|
+
executablePath: npmExecutable,
|
|
338
|
+
runner: npmExecutable.endsWith('.js') ? 'node' : undefined,
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
const manifest = await readManifest(id, env);
|
|
344
|
+
if (manifest) {
|
|
345
|
+
return {
|
|
346
|
+
id,
|
|
347
|
+
label: manifest.label || 'Pixcode Node package runner',
|
|
348
|
+
status: 'installed',
|
|
349
|
+
installable: true,
|
|
350
|
+
executablePath: manifest.executablePath,
|
|
351
|
+
runner: manifest.runner || 'node',
|
|
352
|
+
version: manifest.version,
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
|
|
272
356
|
return {
|
|
273
357
|
id,
|
|
274
|
-
label: '
|
|
275
|
-
|
|
358
|
+
label: 'Pixcode Node package runner',
|
|
359
|
+
provider: 'npm',
|
|
360
|
+
status: 'missing',
|
|
276
361
|
installable: true,
|
|
277
|
-
|
|
362
|
+
reason: 'Pixcode will prepare a local Node package runner automatically before starting this project.',
|
|
278
363
|
};
|
|
279
364
|
}
|
|
280
365
|
|
|
366
|
+
if (!preferManaged) {
|
|
367
|
+
const spawnEnv = buildCliSpawnEnv(env);
|
|
368
|
+
const systemExecutable = findExecutableOnPath('frankenphp', spawnEnv);
|
|
369
|
+
if (systemExecutable) {
|
|
370
|
+
return {
|
|
371
|
+
id,
|
|
372
|
+
label: 'FrankenPHP',
|
|
373
|
+
status: 'system',
|
|
374
|
+
installable: true,
|
|
375
|
+
executablePath: systemExecutable,
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
|
|
281
380
|
const manifest = await readManifest(id, env);
|
|
282
381
|
if (manifest) {
|
|
283
382
|
return {
|
|
@@ -302,7 +401,10 @@ export async function getManagedRuntimeStatus(id, options = {}) {
|
|
|
302
401
|
|
|
303
402
|
export async function ensureManagedRuntime(id, options = {}) {
|
|
304
403
|
const env = options.env || process.env;
|
|
305
|
-
const status = await getManagedRuntimeStatus(id, {
|
|
404
|
+
const status = await getManagedRuntimeStatus(id, {
|
|
405
|
+
env,
|
|
406
|
+
preferManaged: options.preferManaged,
|
|
407
|
+
});
|
|
306
408
|
if (status.executablePath) return status;
|
|
307
409
|
if (!status.installable) {
|
|
308
410
|
throw new Error(status.reason || 'This runtime cannot be prepared automatically.');
|
|
@@ -323,6 +425,18 @@ export async function ensureManagedRuntime(id, options = {}) {
|
|
|
323
425
|
version: manifest.version,
|
|
324
426
|
};
|
|
325
427
|
}
|
|
428
|
+
if (id === 'npm') {
|
|
429
|
+
const manifest = await installNpmRuntime(env);
|
|
430
|
+
return {
|
|
431
|
+
id,
|
|
432
|
+
label: manifest.label,
|
|
433
|
+
status: 'installed',
|
|
434
|
+
installable: true,
|
|
435
|
+
executablePath: manifest.executablePath,
|
|
436
|
+
runner: manifest.runner || 'node',
|
|
437
|
+
version: manifest.version,
|
|
438
|
+
};
|
|
439
|
+
}
|
|
326
440
|
throw new Error(`Unsupported managed runtime: ${id}`);
|
|
327
441
|
})().finally(() => {
|
|
328
442
|
installLocks.delete(lockKey);
|