electrobun 1.18.1 → 1.18.4-beta.10
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/README.md +37 -14
- package/dash.config.ts +28 -0
- package/dist/api/browser/global.d.ts +6 -0
- package/dist/api/browser/index.ts +162 -44
- package/dist/api/{bun → config}/ElectrobunConfig.ts +109 -40
- package/dist/api/config/validate.test.ts +31 -0
- package/dist/api/config/validate.ts +19 -0
- package/dist/api/preload/.generated/compiled.ts +8 -0
- package/dist/api/{bun/preload → preload}/build.ts +6 -6
- package/dist/api/{bun/preload → preload}/encryption.ts +11 -5
- package/dist/api/{bun/preload → preload}/globals.d.ts +8 -0
- package/dist/api/{bun/preload → preload}/index.ts +18 -8
- package/dist/api/{bun/preload → preload}/webviewTag.ts +32 -3
- package/dist/api/{bun/preload → preload}/wgpuTag.ts +33 -2
- package/dist/api/{bun → sdks/bun}/__tests__/ffi-contract.test.ts +6 -9
- package/dist/api/{bun → sdks/bun}/core/BrowserView.ts +96 -55
- package/dist/api/{bun → sdks/bun}/core/BrowserWindow.ts +20 -30
- package/dist/api/{bun → sdks/bun}/core/BuildConfig.ts +32 -5
- package/dist/api/{bun → sdks/bun}/core/GpuWindow.ts +20 -7
- package/dist/api/sdks/bun/core/Socket.ts +22 -0
- package/dist/api/{bun → sdks/bun}/core/Tray.ts +33 -32
- package/dist/api/{bun → sdks/bun}/core/Updater.ts +10 -10
- package/dist/api/{bun → sdks/bun}/core/Utils.ts +3 -5
- package/dist/api/{bun → sdks/bun}/core/WGPUView.ts +43 -13
- package/dist/api/{bun → sdks/bun}/index.ts +39 -10
- package/dist/api/{bun → sdks/bun}/proc/native.ts +942 -746
- package/dist/api/{bun → sdks/bun}/webGPU.ts +1 -1
- package/dist/api/{bun → sdks/bun}/webgpuAdapter.ts +40 -33
- package/dist/api/shared/build-dependencies.test.ts +48 -0
- package/dist/api/shared/build-dependencies.ts +46 -0
- package/dist/api/shared/go-version.ts +3 -0
- package/dist/api/shared/odin-version.ts +6 -0
- package/dist/api/shared/rust-version.ts +3 -0
- package/dist/go-sdk/callbacks.go +260 -0
- package/dist/go-sdk/electrobun.go +2021 -0
- package/dist/main.js +35 -28
- package/dist/odin-sdk/electrobun/electrobun.odin +2337 -0
- package/dist/preload-full.js +948 -0
- package/dist/preload-sandboxed.js +111 -0
- package/dist/rust-sdk/electrobun.rs +2396 -0
- package/dist/zig-sdk/electrobun.zig +2005 -0
- package/package.json +5 -29
- package/src/cli/index.ts +868 -654
- package/bin/electrobun.cjs +0 -169
- package/dist/api/bun/core/Socket.ts +0 -205
- package/dist/api/bun/core/windowIds.ts +0 -5
- package/dist/api/bun/preload/.generated/compiled.ts +0 -8
- package/dist/api/shared/bun-version.ts +0 -3
- /package/dist/api/{bun/preload → preload}/dragRegions.ts +0 -0
- /package/dist/api/{bun/preload → preload}/events.ts +0 -0
- /package/dist/api/{bun/preload → preload}/index-sandboxed.ts +0 -0
- /package/dist/api/{bun/preload → preload}/internalRpc.ts +0 -0
- /package/dist/api/{bun/preload → preload}/overlaySync.ts +0 -0
- /package/dist/api/{bun → sdks/bun}/core/ApplicationMenu.ts +0 -0
- /package/dist/api/{bun → sdks/bun}/core/ContextMenu.ts +0 -0
- /package/dist/api/{bun → sdks/bun}/core/Paths.ts +0 -0
- /package/dist/api/{bun → sdks/bun}/core/menuRoles.ts +0 -0
- /package/dist/api/{bun → sdks/bun}/events/ApplicationEvents.ts +0 -0
- /package/dist/api/{bun → sdks/bun}/events/event.ts +0 -0
- /package/dist/api/{bun → sdks/bun}/events/eventEmitter.ts +0 -0
- /package/dist/api/{bun → sdks/bun}/events/trayEvents.ts +0 -0
- /package/dist/api/{bun → sdks/bun}/events/webviewEvents.ts +0 -0
- /package/dist/api/{bun → sdks/bun}/events/windowEvents.ts +0 -0
- /package/dist/api/{bun → sdks/bun}/proc/linux.md +0 -0
package/dist/main.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var __require = import.meta.require;
|
|
3
|
-
|
|
4
2
|
// src/launcher/main.ts
|
|
5
3
|
import { join, dirname, resolve } from "path";
|
|
6
4
|
import { dlopen, suffix, ptr, toArrayBuffer } from "bun:ffi";
|
|
7
|
-
import { existsSync, writeFileSync } from "fs";
|
|
5
|
+
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
8
6
|
import { tmpdir } from "os";
|
|
7
|
+
import { spawn } from "child_process";
|
|
9
8
|
var pathToMacOS = dirname(process.argv0);
|
|
10
|
-
var
|
|
11
|
-
var
|
|
9
|
+
var coreLibFileName = process.platform === "win32" ? "ElectrobunCore.dll" : `libElectrobunCore.${suffix}`;
|
|
10
|
+
var coreLibPath = join(pathToMacOS, coreLibFileName);
|
|
11
|
+
var absoluteCoreLibPath = resolve(coreLibPath);
|
|
12
12
|
function main() {
|
|
13
13
|
let channel = "";
|
|
14
14
|
let identifier = "";
|
|
@@ -18,7 +18,7 @@ function main() {
|
|
|
18
18
|
const pathToBinDir2 = dirname(pathToLauncherBin2);
|
|
19
19
|
const versionJsonPath = join(pathToBinDir2, "..", "Resources", "version.json");
|
|
20
20
|
if (existsSync(versionJsonPath)) {
|
|
21
|
-
const versionInfo =
|
|
21
|
+
const versionInfo = JSON.parse(readFileSync(versionJsonPath, "utf8"));
|
|
22
22
|
if (versionInfo.identifier) {
|
|
23
23
|
identifier = versionInfo.identifier;
|
|
24
24
|
}
|
|
@@ -43,7 +43,6 @@ function main() {
|
|
|
43
43
|
console.error(`[LAUNCHER] ERROR: CEF libraries found but LD_PRELOAD not set!`);
|
|
44
44
|
console.error(`[LAUNCHER] Please run through the wrapper script: ./run.sh`);
|
|
45
45
|
console.error(`[LAUNCHER] Or set: LD_PRELOAD="${existingCefLibs.join(":")}" before starting.`);
|
|
46
|
-
const { spawn } = __require("child_process");
|
|
47
46
|
const env = { ...process.env, LD_PRELOAD: existingCefLibs.join(":") };
|
|
48
47
|
const child = spawn(process.argv[0], process.argv.slice(1), {
|
|
49
48
|
env,
|
|
@@ -58,31 +57,31 @@ function main() {
|
|
|
58
57
|
if (!process.env["LD_LIBRARY_PATH"]?.includes(".")) {
|
|
59
58
|
process.env["LD_LIBRARY_PATH"] = `.${process.env["LD_LIBRARY_PATH"] ? ":" + process.env["LD_LIBRARY_PATH"] : ""}`;
|
|
60
59
|
}
|
|
61
|
-
lib = dlopen(
|
|
62
|
-
|
|
63
|
-
args: ["cstring", "cstring", "cstring"],
|
|
64
|
-
returns: "
|
|
60
|
+
lib = dlopen(coreLibPath, {
|
|
61
|
+
electrobun_core_run_main_thread: {
|
|
62
|
+
args: ["cstring", "cstring", "cstring", "i32"],
|
|
63
|
+
returns: "i32"
|
|
65
64
|
},
|
|
66
|
-
|
|
67
|
-
args: [
|
|
68
|
-
returns: "
|
|
65
|
+
electrobun_core_last_error: {
|
|
66
|
+
args: [],
|
|
67
|
+
returns: "cstring"
|
|
69
68
|
}
|
|
70
69
|
});
|
|
71
70
|
} catch (error) {
|
|
72
|
-
console.error(`[LAUNCHER] Failed to load
|
|
71
|
+
console.error(`[LAUNCHER] Failed to load ElectrobunCore: ${error.message}`);
|
|
73
72
|
try {
|
|
74
|
-
lib = dlopen(
|
|
75
|
-
|
|
76
|
-
args: ["cstring", "cstring", "cstring"],
|
|
77
|
-
returns: "
|
|
73
|
+
lib = dlopen(absoluteCoreLibPath, {
|
|
74
|
+
electrobun_core_run_main_thread: {
|
|
75
|
+
args: ["cstring", "cstring", "cstring", "i32"],
|
|
76
|
+
returns: "i32"
|
|
78
77
|
},
|
|
79
|
-
|
|
80
|
-
args: [
|
|
81
|
-
returns: "
|
|
78
|
+
electrobun_core_last_error: {
|
|
79
|
+
args: [],
|
|
80
|
+
returns: "cstring"
|
|
82
81
|
}
|
|
83
82
|
});
|
|
84
83
|
} catch (absError) {
|
|
85
|
-
console.error(`[LAUNCHER]
|
|
84
|
+
console.error(`[LAUNCHER] Core library loading failed. Try running: ldd ${coreLibPath}`);
|
|
86
85
|
throw error;
|
|
87
86
|
}
|
|
88
87
|
}
|
|
@@ -97,8 +96,8 @@ function main() {
|
|
|
97
96
|
let asarLibPath;
|
|
98
97
|
let asarLib;
|
|
99
98
|
if (process.platform === "win32") {
|
|
100
|
-
|
|
101
|
-
|
|
99
|
+
const nativeWrapperAsarLibPath = join(pathToMacOS, "libNativeWrapper.dll");
|
|
100
|
+
asarLibPath = existsSync(nativeWrapperAsarLibPath) ? nativeWrapperAsarLibPath : join(pathToMacOS, "libasar.dll");
|
|
102
101
|
} else {
|
|
103
102
|
asarLibPath = join(pathToMacOS, `libasar.${suffix}`);
|
|
104
103
|
}
|
|
@@ -138,7 +137,11 @@ function main() {
|
|
|
138
137
|
const __tempFilePath = "${appEntrypointPath}";
|
|
139
138
|
setTimeout(() => {
|
|
140
139
|
try {
|
|
141
|
-
|
|
140
|
+
if (globalThis.cottontail?.unlinkSync) {
|
|
141
|
+
globalThis.cottontail.unlinkSync(__tempFilePath);
|
|
142
|
+
} else if (typeof require === "function") {
|
|
143
|
+
require("fs").unlinkSync(__tempFilePath);
|
|
144
|
+
}
|
|
142
145
|
console.log("[LAUNCHER] Deleted temp file:", __tempFilePath);
|
|
143
146
|
} catch (error) {
|
|
144
147
|
console.warn("[LAUNCHER] Failed to delete temp file:", error.message);
|
|
@@ -158,7 +161,11 @@ ${fileData.toString("utf8")}
|
|
|
158
161
|
process.on("SIGINT", () => {});
|
|
159
162
|
process.on("SIGTERM", () => {});
|
|
160
163
|
new Worker(appEntrypointPath, {});
|
|
161
|
-
lib.symbols.
|
|
162
|
-
|
|
164
|
+
const runStatus = lib.symbols.electrobun_core_run_main_thread(ptr(new Uint8Array(Buffer.from(identifier + "\x00", "utf8"))), ptr(new Uint8Array(Buffer.from(name + "\x00", "utf8"))), ptr(new Uint8Array(Buffer.from(channel + "\x00", "utf8"))), 0);
|
|
165
|
+
if (runStatus !== 0) {
|
|
166
|
+
const coreError = lib.symbols.electrobun_core_last_error();
|
|
167
|
+
console.error(`[LAUNCHER] ElectrobunCore failed: ${coreError ? coreError.toString() : "Unknown error"}`);
|
|
168
|
+
process.exit(runStatus);
|
|
169
|
+
}
|
|
163
170
|
}
|
|
164
171
|
main();
|