brosh 0.1.2 → 0.1.4
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/lib.d.ts +1 -1
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +1 -1
- package/dist/lib.js.map +1 -1
- package/dist/terminal/index.d.ts +1 -1
- package/dist/terminal/index.d.ts.map +1 -1
- package/dist/terminal/index.js +1 -1
- package/dist/terminal/index.js.map +1 -1
- package/dist/terminal/session.d.ts +10 -0
- package/dist/terminal/session.d.ts.map +1 -1
- package/dist/terminal/session.js +239 -65
- package/dist/terminal/session.js.map +1 -1
- package/package.json +1 -1
- package/packages/desktop-electron/build/afterPack.cjs +29 -19
- package/packages/desktop-electron/package-lock.json +617 -122
- package/packages/desktop-electron/package.json +12 -6
- package/packages/desktop-electron/scripts/bundle-main.mjs +97 -0
- package/packages/desktop-electron/scripts/bytecode-compiler.cjs +3 -0
- package/website/install.sh.asc +13 -13
|
@@ -12,19 +12,22 @@
|
|
|
12
12
|
"main": "dist/main/index.js",
|
|
13
13
|
"type": "module",
|
|
14
14
|
"scripts": {
|
|
15
|
-
"dev": "ELECTRON_DEV=true npm run build:main && concurrently \"npm run watch:main\" \"npm run watch:renderer\" \"ELECTRON_DEV=true npm run electron\"",
|
|
15
|
+
"dev": "ELECTRON_DEV=true npm run build:main:dev && concurrently \"npm run watch:main\" \"npm run watch:renderer\" \"ELECTRON_DEV=true npm run electron\"",
|
|
16
16
|
"build": "npm run build:main && npm run build:renderer",
|
|
17
|
-
"build:main": "tsc -p tsconfig.main.json &&
|
|
17
|
+
"build:main": "tsc -p tsconfig.main.json --noEmit && node scripts/bundle-main.mjs",
|
|
18
|
+
"build:main:bytecode": "tsc -p tsconfig.main.json --noEmit && node scripts/bundle-main.mjs --bytecode",
|
|
19
|
+
"build:bytecode": "npm run build:main:bytecode && npm run build:renderer",
|
|
20
|
+
"build:main:dev": "tsc -p tsconfig.main.json && cp src/main/preload.cjs dist/main/",
|
|
18
21
|
"build:renderer": "vite build",
|
|
19
22
|
"watch:main": "tsc -p tsconfig.main.json --watch",
|
|
20
23
|
"watch:renderer": "vite build --watch",
|
|
21
24
|
"electron": "electron .",
|
|
22
25
|
"start": "npm run build && electron .",
|
|
23
26
|
"prepackage": "node scripts/prepare-sandbox-bins.js && rm -rf node_modules/brosh && mkdir -p node_modules/brosh && cp -r ../../dist ../../package.json node_modules/brosh/",
|
|
24
|
-
"package": "npm run prepackage && npm run build && electron-builder",
|
|
25
|
-
"package:mac": "npm run prepackage && npm run build && electron-builder --mac",
|
|
26
|
-
"package:win": "npm run prepackage && npm run build && electron-builder --win",
|
|
27
|
-
"package:linux": "npm run prepackage && npm run build && electron-builder --linux",
|
|
27
|
+
"package": "npm run prepackage && npm run build:bytecode && electron-builder",
|
|
28
|
+
"package:mac": "npm run prepackage && npm run build:bytecode && electron-builder --mac -c.extraMetadata.localBuild=true",
|
|
29
|
+
"package:win": "npm run prepackage && npm run build:bytecode && electron-builder --win -c.extraMetadata.localBuild=true",
|
|
30
|
+
"package:linux": "npm run prepackage && npm run build:bytecode && electron-builder --linux -c.extraMetadata.localBuild=true",
|
|
28
31
|
"postpackage": "rm -rf node_modules/brosh && npm install",
|
|
29
32
|
"download-models": "node scripts/download-models.js",
|
|
30
33
|
"prepare-sandbox-bins": "node scripts/prepare-sandbox-bins.js",
|
|
@@ -57,6 +60,7 @@
|
|
|
57
60
|
"@xterm/addon-webgl": "^0.18.0",
|
|
58
61
|
"@xterm/xterm": "^5.5.0",
|
|
59
62
|
"brosh": "file:../..",
|
|
63
|
+
"bytenode": "^1.5.7",
|
|
60
64
|
"chokidar": "^5.0.0",
|
|
61
65
|
"cli-highlight": "^2.1.11",
|
|
62
66
|
"electron-store": "^10.0.0",
|
|
@@ -79,6 +83,7 @@
|
|
|
79
83
|
"concurrently": "^8.2.0",
|
|
80
84
|
"electron": "^33.4.11",
|
|
81
85
|
"electron-builder": "^25.0.0",
|
|
86
|
+
"esbuild": "^0.25.12",
|
|
82
87
|
"react": "^18.2.0",
|
|
83
88
|
"react-dom": "^18.2.0",
|
|
84
89
|
"typescript": "^5.0.0",
|
|
@@ -88,6 +93,7 @@
|
|
|
88
93
|
"build": {
|
|
89
94
|
"appId": "com.ellery.brosh",
|
|
90
95
|
"productName": "brosh",
|
|
96
|
+
"asar": false,
|
|
91
97
|
"afterPack": "./build/afterPack.cjs",
|
|
92
98
|
"directories": {
|
|
93
99
|
"output": "release"
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { build } from "esbuild";
|
|
2
|
+
import { cpSync, existsSync, writeFileSync, unlinkSync } from "fs";
|
|
3
|
+
import { execFileSync } from "child_process";
|
|
4
|
+
import { createRequire } from "module";
|
|
5
|
+
|
|
6
|
+
const bytecode = process.argv.includes("--bytecode");
|
|
7
|
+
|
|
8
|
+
if (bytecode) {
|
|
9
|
+
// Bytecode path: bundle as CJS → compile with Electron's V8 → ESM loader stub
|
|
10
|
+
await build({
|
|
11
|
+
entryPoints: ["src/main/index.ts"],
|
|
12
|
+
bundle: true,
|
|
13
|
+
outfile: "dist/main/bundle.cjs",
|
|
14
|
+
platform: "node",
|
|
15
|
+
format: "cjs",
|
|
16
|
+
target: "node20",
|
|
17
|
+
sourcemap: false,
|
|
18
|
+
// Bytecode externals differ from ESM: CJS can't require() ESM-only packages,
|
|
19
|
+
// so we inline them (electron-store, chokidar, brosh) and let esbuild convert
|
|
20
|
+
// to CJS. node-pty stays external (native addon).
|
|
21
|
+
external: [
|
|
22
|
+
"electron",
|
|
23
|
+
"electron-updater",
|
|
24
|
+
"node-pty",
|
|
25
|
+
"ws",
|
|
26
|
+
"posthog-node",
|
|
27
|
+
"@huggingface/transformers",
|
|
28
|
+
"cli-highlight",
|
|
29
|
+
"bytenode",
|
|
30
|
+
],
|
|
31
|
+
// Convert import() → require() so no dynamic imports in bytecode (vm.Script
|
|
32
|
+
// doesn't support import() without --experimental-vm-modules).
|
|
33
|
+
supported: { "dynamic-import": false },
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
// Compile CJS bundle to V8 bytecode using Electron's V8
|
|
37
|
+
const require = createRequire(import.meta.url);
|
|
38
|
+
const electronPath = require("electron");
|
|
39
|
+
execFileSync(electronPath, ["scripts/bytecode-compiler.cjs", "dist/main/bundle.cjs"], {
|
|
40
|
+
env: { ...process.env, ELECTRON_RUN_AS_NODE: "1" },
|
|
41
|
+
stdio: "inherit",
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// Write ESM loader stub
|
|
45
|
+
writeFileSync(
|
|
46
|
+
"dist/main/index.js",
|
|
47
|
+
[
|
|
48
|
+
`import { createRequire } from 'module';`,
|
|
49
|
+
`import v8 from 'v8';`,
|
|
50
|
+
`v8.setFlagsFromString('--no-lazy');`,
|
|
51
|
+
`v8.setFlagsFromString('--no-flush-bytecode');`,
|
|
52
|
+
`const require = createRequire(import.meta.url);`,
|
|
53
|
+
`require('bytenode');`,
|
|
54
|
+
`require('./bundle.jsc');`,
|
|
55
|
+
``,
|
|
56
|
+
].join("\n"),
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
// Clean up intermediate CJS bundle and stale sourcemap from previous ESM builds
|
|
60
|
+
unlinkSync("dist/main/bundle.cjs");
|
|
61
|
+
if (existsSync("dist/main/index.js.map")) {
|
|
62
|
+
unlinkSync("dist/main/index.js.map");
|
|
63
|
+
}
|
|
64
|
+
} else {
|
|
65
|
+
// Standard ESM bundle path
|
|
66
|
+
await build({
|
|
67
|
+
entryPoints: ["src/main/index.ts"],
|
|
68
|
+
bundle: true,
|
|
69
|
+
outfile: "dist/main/index.js",
|
|
70
|
+
platform: "node",
|
|
71
|
+
format: "esm",
|
|
72
|
+
target: "node20",
|
|
73
|
+
sourcemap: true,
|
|
74
|
+
external: [
|
|
75
|
+
"electron",
|
|
76
|
+
"electron-store",
|
|
77
|
+
"electron-updater",
|
|
78
|
+
"brosh",
|
|
79
|
+
"ws",
|
|
80
|
+
"posthog-node",
|
|
81
|
+
"@huggingface/transformers",
|
|
82
|
+
"chokidar",
|
|
83
|
+
"cli-highlight",
|
|
84
|
+
],
|
|
85
|
+
banner: {
|
|
86
|
+
js: [
|
|
87
|
+
`import { fileURLToPath as _bundled_fileURLToPath } from 'url';`,
|
|
88
|
+
`import { dirname as _bundled_dirname } from 'path';`,
|
|
89
|
+
`const __filename = _bundled_fileURLToPath(import.meta.url);`,
|
|
90
|
+
`const __dirname = _bundled_dirname(__filename);`,
|
|
91
|
+
].join("\n"),
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Preload script is CJS, loaded separately by Electron — just copy it
|
|
97
|
+
cpSync("src/main/preload.cjs", "dist/main/preload.cjs");
|
package/website/install.sh.asc
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
-----BEGIN PGP SIGNATURE-----
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
/
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
=
|
|
3
|
+
iQIzBAABCgAdFiEEX8WeGtXPO7P8xoFftW8bjWv2UfkFAmmaIE0ACgkQtW8bjWv2
|
|
4
|
+
Ufk3LBAA613qi4AgnMOlAwzKhZNiqFw0cLCRh4IZgoxdaoXiZNf6N5BkM8iRPKXV
|
|
5
|
+
30qpEqp3gKAG6V319aMOE5q6jmWV0ElcJ6jpJVwfmaM2sUnFBt1fPdd/3Qfdn2oQ
|
|
6
|
+
ow7NAQVs8z5dVnuNTvfC8swwRmqIGlbP2MApyC0QAf41bdQhZ7T/PaiFVYM0iHmZ
|
|
7
|
+
w97WCYyGCilB2rt3rgdwz3h/lvWNb1Ss9FQfo1rzv1EtksLPvvfdYC3GAQc7K147
|
|
8
|
+
Z9mimB06o3kSuTYY3jeCPPolEhdoXytf1hhT03VODYKM68Wcb5aRckJE5WdBUsEC
|
|
9
|
+
MrWEerCOGlNNAkmjP67Lkd2bJdN3a6kDGHr7yNyi91GwgQSL/KBSs7rgawfmPrX5
|
|
10
|
+
gg4N4bQ9neHT1mcU+pg6IO5LeX/wsLAZGzObqIUJtbIRgYZFDDYdQ2H/CFJe6Omf
|
|
11
|
+
Sxb1TYNHNi562I91aOtgQ7cU+mbUv8PyoyTY5ShdUyNkzQNeqn/oii0yuVK0Jjk9
|
|
12
|
+
a8MWuT9JcbBlCUCf6qbgV440dtcQkWGFagtiTAP5wMnPLnWBU+q5bspZdAMstsY7
|
|
13
|
+
dKjPIb5/B3Z0bjX5Tr/OYQPO9Bxytqi5maUmdHA6lTc3qSDinrLAO56gYygZrtUt
|
|
14
|
+
XqSjBYxS+dc/ePCo+rIHWKZa3+gYuMjBcWLXJWP9Eax3em8qOcM=
|
|
15
|
+
=R2Pr
|
|
16
16
|
-----END PGP SIGNATURE-----
|