@bkm016/basalt 0.1.0 → 0.1.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/chunk-09vr609h.js +2 -0
- package/chunk-0qqb6v41.js +3753 -0
- package/{chunk-1egbcp85.js → chunk-0yytz0r1.js} +7 -7
- package/{chunk-rjdhaasf.js → chunk-1aspj1hn.js} +2 -2
- package/chunk-1b7gbe8g.js +10 -0
- package/{chunk-665jzf2w.js → chunk-1v7st27a.js} +11 -11
- package/{chunk-5fdgy0q2.js → chunk-2bb01ddq.js} +10 -10
- package/{chunk-kjr81mrd.js → chunk-2wkaw73s.js} +3 -3
- package/{chunk-xhk54h2q.js → chunk-3m7qwfm3.js} +4 -4
- package/{chunk-0tdv0t5q.js → chunk-44ek81ad.js} +2 -2
- package/{chunk-wc5j0hfw.js → chunk-45cz26ap.js} +2 -2
- package/{chunk-0rya8cxe.js → chunk-6e49xsf5.js} +2 -2
- package/{chunk-bj14jshr.js → chunk-6qertm2t.js} +2 -2
- package/chunk-8dxzqwq3.js +2 -0
- package/chunk-9mmz6wt3.js +2 -0
- package/{chunk-3jz9g8ab.js → chunk-a3tqx584.js} +3 -3
- package/{chunk-y9xe9ct2.js → chunk-a8nyk4k9.js} +1 -1
- package/{chunk-qffb7een.js → chunk-bhqyxyap.js} +2 -2
- package/chunk-bpw6q7g0.js +3 -0
- package/{chunk-tnrqkc7b.js → chunk-cv5wsd9m.js} +1 -1
- package/{chunk-5wp4egky.js → chunk-dhm42y04.js} +2 -2
- package/{chunk-913tfr9c.js → chunk-exnn1867.js} +1 -1
- package/{chunk-7yw8aa5j.js → chunk-f7egr55n.js} +4 -4
- package/{chunk-kgdrjqsy.js → chunk-g2t6t8fk.js} +2 -2
- package/{chunk-qbf8x2ft.js → chunk-h6sw8fbt.js} +1 -1
- package/chunk-jhd54p1b.js +3 -0
- package/{chunk-x9982ek7.js → chunk-kf8hq21a.js} +2 -2
- package/{chunk-zt1wvkyf.js → chunk-kfq8wyd3.js} +1 -1
- package/chunk-nt2gntad.js +2 -0
- package/{chunk-wd9zxhza.js → chunk-pmc3y1z8.js} +1 -1
- package/{chunk-3p7q2pyp.js → chunk-pvncysbb.js} +1 -1
- package/chunk-q8zx3kt6.js +2 -0
- package/{chunk-sf13azm4.js → chunk-qczbfccb.js} +3 -3
- package/chunk-qx0m82rw.js +2 -0
- package/chunk-ry0z4ev6.js +2 -0
- package/{chunk-g2k3yhgh.js → chunk-s37s3k24.js} +3 -3
- package/{chunk-y8ced1jm.js → chunk-sh74qzvt.js} +1 -1
- package/{chunk-9y69ywyg.js → chunk-szat3vp4.js} +2 -2
- package/chunk-tvm4zmgj.js +3 -0
- package/{chunk-8wjgbd9k.js → chunk-vgvq3q12.js} +2 -2
- package/{chunk-d913kpyw.js → chunk-vv7fp27r.js} +2 -2
- package/{chunk-97kjn55j.js → chunk-wjd9fr23.js} +1 -1
- package/{chunk-6gyhajhx.js → chunk-x3dnb9sz.js} +2 -2
- package/chunk-xysny0ve.js +3 -0
- package/{chunk-qcwnkr5y.js → chunk-yskm0hsy.js} +1 -1
- package/{chunk-sytpmbfp.js → chunk-zef13k3h.js} +36 -36
- package/cli.js +89 -0
- package/compiled.js +12 -3762
- package/package.json +4 -3
- package/ui-test-worker.js +31 -31
- package/web/{chunk-rkesqprv.js → chunk-05w4fyzc.js} +1 -1
- package/web/{chunk-ev1g5cqw.js → chunk-0vt9fg48.js} +1 -1
- package/web/{chunk-55kw67nv.js → chunk-22a4ety5.js} +1 -1
- package/web/{chunk-hryhthxr.js → chunk-2m12wyrb.js} +1 -1
- package/web/{chunk-svmhj9hd.js → chunk-2msj52w6.js} +1 -1
- package/web/{chunk-rsn8j7xv.js → chunk-2ps6mepk.js} +1 -1
- package/web/chunk-2pver6r4.js +1 -0
- package/web/{chunk-1t760bg0.js → chunk-2scce33n.js} +1 -1
- package/web/chunk-37ajk6zg.js +2 -0
- package/web/{chunk-haphmhz8.js → chunk-3ee04tmm.js} +1 -1
- package/web/{chunk-c85wxnpw.js → chunk-3jhyzmnf.js} +1 -1
- package/web/{chunk-pz934t6t.js → chunk-45fzdcgz.js} +1 -1
- package/web/{chunk-ea9swkkt.js → chunk-4ks96e4r.js} +1 -1
- package/web/{chunk-0k0hvh59.js → chunk-4v8en1yw.js} +1 -1
- package/web/chunk-4wkm9fda.js +1 -0
- package/web/{chunk-zk2f7x5e.js → chunk-5vw9rs4r.js} +1 -1
- package/web/{chunk-mq92vqb1.js → chunk-70qwwwak.js} +1 -1
- package/web/{chunk-4b5mt5pd.js → chunk-8p4tc9f4.js} +1 -1
- package/web/{chunk-3pm4645m.js → chunk-90kp4pnz.js} +1 -1
- package/web/{chunk-ytpwz01r.js → chunk-9an7cjd9.js} +1 -1
- package/web/{chunk-29e1trsq.js → chunk-9dxjafp2.js} +1 -1
- package/web/{chunk-ykxpb3wv.js → chunk-9p12mgs6.js} +1 -1
- package/web/{chunk-sc63gh9d.js → chunk-9yakxvjb.js} +1 -1
- package/web/{chunk-fdkp6tzq.js → chunk-a1z5qx1r.js} +1 -1
- package/web/{chunk-v6v831tc.js → chunk-a3verqw9.js} +1 -1
- package/web/{chunk-vqjs551t.js → chunk-a5x2zveg.js} +1 -1
- package/web/chunk-amzgyy1k.js +1 -0
- package/web/{chunk-e5rmr47n.js → chunk-b1pe46zz.js} +1 -1
- package/web/{chunk-1v3d60pp.js → chunk-b4wbk7vc.js} +1 -1
- package/web/{chunk-3bqh2dkw.js → chunk-bc78qf1m.js} +1 -1
- package/web/{chunk-tfyxp2qs.js → chunk-bgnnrpna.js} +1 -1
- package/web/{chunk-vadqkz3x.js → chunk-bj90t5gh.js} +1 -1
- package/web/{chunk-mdsgekpk.js → chunk-bjkc94mv.js} +1 -1
- package/web/{chunk-3cfabjey.js → chunk-ca682sm6.js} +1 -1
- package/web/chunk-cff5hcm8.js +8 -0
- package/web/{chunk-942prjb6.js → chunk-dt462hk9.js} +1 -1
- package/web/{chunk-bwyw10wx.js → chunk-dzwxgqgm.js} +1 -1
- package/web/{chunk-bhe4jzha.js → chunk-e32y85kx.js} +1 -1
- package/web/{chunk-v47rhg7b.js → chunk-e53wfgb8.js} +1 -1
- package/web/{chunk-ezyvv4ab.js → chunk-e6jxqbv7.js} +1 -1
- package/web/chunk-esp1mmgr.js +1 -0
- package/web/chunk-ew3cgdtd.js +1 -0
- package/web/{chunk-svdzmaxb.js → chunk-f26smjjf.js} +1 -1
- package/web/{chunk-jvhmna7z.js → chunk-fk0dh93x.js} +1 -1
- package/web/{chunk-3pf33xsm.js → chunk-fm2ybfj5.js} +1 -1
- package/web/{chunk-6r912gfj.js → chunk-fscafg24.js} +1 -1
- package/web/{chunk-canbct9d.js → chunk-fz06t6km.js} +1 -1
- package/web/{chunk-rz6wwdd5.js → chunk-g4azyef7.js} +1 -1
- package/web/chunk-gjq1pxw3.js +1 -0
- package/web/{chunk-0xck277j.js → chunk-gqw3f02j.js} +1 -1
- package/web/chunk-h5ejbf6e.js +1 -0
- package/web/{chunk-kbtbbarw.js → chunk-hev4hq89.js} +1 -1
- package/web/chunk-jjh5jvva.js +1 -0
- package/web/{chunk-a3xt6840.js → chunk-jrcyc9s9.js} +1 -1
- package/web/{chunk-4y2td14d.js → chunk-jwzd9tzk.js} +1 -1
- package/web/chunk-k5btcvbg.js +1 -0
- package/web/{chunk-z1jtv4c0.js → chunk-kdyjnwdx.js} +1 -1
- package/web/chunk-kpvgecwy.js +1 -0
- package/web/chunk-kq40ss39.js +1 -0
- package/web/{chunk-ghxe4gam.js → chunk-p3b9crsa.js} +1 -1
- package/web/{chunk-zakv2xdf.js → chunk-pf2ab8p8.js} +1 -1
- package/web/{chunk-d4d3mnak.js → chunk-q0p5xqe1.js} +1 -1
- package/web/{chunk-5hex8g0y.js → chunk-q5ke7a33.js} +1 -1
- package/web/chunk-q7dsnvpf.js +1 -0
- package/web/{chunk-vfqe8298.js → chunk-qd8bxxdj.js} +1 -1
- package/web/{chunk-3ahpr030.js → chunk-qefasa1j.js} +1 -1
- package/web/{chunk-x9q4kh67.js → chunk-qh7265qw.js} +1 -1
- package/web/{chunk-hejz98gw.js → chunk-qnaqf0cr.js} +1 -1
- package/web/chunk-rg426vkf.js +1 -0
- package/web/{chunk-s8vapqgr.js → chunk-rpmpttbk.js} +1 -1
- package/web/chunk-scpwc9ev.js +1 -0
- package/web/{chunk-b5brnfv9.js → chunk-ss1bcb0n.js} +1 -1
- package/web/chunk-ssy07dd2.js +1 -0
- package/web/{chunk-gxn0bey7.js → chunk-taynqrgq.js} +2 -2
- package/web/chunk-tgpbhzn9.js +1 -0
- package/web/{chunk-ejd43q75.js → chunk-tmvakq7n.js} +2 -2
- package/web/{chunk-nerx2q12.js → chunk-tqmwd9qp.js} +1 -1
- package/web/{chunk-n5fn9khr.js → chunk-v28fx2nd.js} +1 -1
- package/web/{chunk-32ezm0ry.js → chunk-vt40e1kp.js} +39 -39
- package/web/chunk-w53rba6g.js +1 -0
- package/web/chunk-w86n42dy.js +1 -0
- package/web/{chunk-ktqt87qw.js → chunk-w880psmw.js} +1 -1
- package/web/{chunk-p8y0hjx9.js → chunk-wptv8atc.js} +1 -1
- package/web/{chunk-g9qv15hq.js → chunk-xbty0rv7.js} +1 -1
- package/web/{chunk-7f0m2yrd.js → chunk-xjxv8dg8.js} +1 -1
- package/web/{chunk-x3zwjkwg.js → chunk-xrxne80b.js} +1 -1
- package/web/{chunk-jtwhjp20.js → chunk-y0m8hrwz.js} +2 -2
- package/web/{chunk-6atq9qtt.js → chunk-y49fhfda.js} +1 -1
- package/web/{chunk-1x8fn8w9.js → chunk-yd46jhqv.js} +1 -1
- package/web/{chunk-ngpq43vn.js → chunk-z7dcbxws.js} +1 -1
- package/web/chunk-zde7mj43.js +1 -0
- package/web/index.html +1 -1
- package/worker.js +1 -1
- package/chunk-1fv27j4b.js +0 -3
- package/chunk-356q8e0y.js +0 -10
- package/chunk-b9bg5fhd.js +0 -2
- package/chunk-j2x0g1vg.js +0 -2
- package/chunk-k0t23cmx.js +0 -2
- package/chunk-m38ber71.js +0 -2
- package/chunk-rad3dm0q.js +0 -2
- package/chunk-tjpvayr1.js +0 -2
- package/chunk-ve7qx8wm.js +0 -3
- package/chunk-yb1jxgnk.js +0 -2
- package/web/chunk-00mq7bhx.js +0 -1
- package/web/chunk-0atfn8jf.js +0 -1
- package/web/chunk-310yey4q.js +0 -1
- package/web/chunk-3hvgs5aw.js +0 -1
- package/web/chunk-3kh6zefg.js +0 -1
- package/web/chunk-401v5ht6.js +0 -8
- package/web/chunk-5r5kv4gh.js +0 -1
- package/web/chunk-95q1bwxn.js +0 -1
- package/web/chunk-9s7c178f.js +0 -1
- package/web/chunk-benmmqt2.js +0 -1
- package/web/chunk-bgqdcnke.js +0 -1
- package/web/chunk-eqegxtdt.js +0 -1
- package/web/chunk-gmfp7fg4.js +0 -1
- package/web/chunk-gxay64d5.js +0 -1
- package/web/chunk-jg6nzn6q.js +0 -1
- package/web/chunk-kx2xk3bb.js +0 -1
- package/web/chunk-vfqdy860.js +0 -1
- package/web/chunk-x59p8sg2.js +0 -1
- package/web/chunk-y7z144e3.js +0 -1
- package/web/chunk-ydgqrfvw.js +0 -2
- package/web/chunk-yj1a2d37.js +0 -1
package/cli.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { spawn, spawnSync } from "node:child_process";
|
|
3
|
+
import { chmodSync, existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
4
|
+
import { homedir } from "node:os";
|
|
5
|
+
import { delimiter, dirname, join, resolve } from "node:path";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
import { gunzipSync } from "node:zlib";
|
|
8
|
+
|
|
9
|
+
const dir = dirname(fileURLToPath(import.meta.url));
|
|
10
|
+
const entry = join(dir, "compiled.js");
|
|
11
|
+
|
|
12
|
+
if (typeof globalThis.Bun !== "undefined") {
|
|
13
|
+
await import("./compiled.js");
|
|
14
|
+
} else {
|
|
15
|
+
const isWin = process.platform === "win32";
|
|
16
|
+
const exeName = isWin ? "bun.exe" : "bun";
|
|
17
|
+
const bunVersion = "1.4.3";
|
|
18
|
+
|
|
19
|
+
function findExistingBun() {
|
|
20
|
+
const candidates = [
|
|
21
|
+
process.env.BASALT_BUN_PATH,
|
|
22
|
+
join(homedir(), ".bun", "bin", exeName),
|
|
23
|
+
resolve(dir, "..", "..", "bun", "bin", exeName),
|
|
24
|
+
resolve(dir, "..", "bun", "bin", exeName),
|
|
25
|
+
join(homedir(), ".basalt", "runtime", `bun-${bunVersion}`, exeName),
|
|
26
|
+
];
|
|
27
|
+
for (const item of (process.env.PATH ?? "").split(delimiter)) {
|
|
28
|
+
if (!item) continue;
|
|
29
|
+
candidates.push(join(item, exeName));
|
|
30
|
+
candidates.push(join(item, "node_modules", "bun", "bin", exeName));
|
|
31
|
+
}
|
|
32
|
+
for (const candidate of candidates) {
|
|
33
|
+
if (!candidate || !existsSync(candidate)) continue;
|
|
34
|
+
const check = spawnSync(candidate, ["--version"], { stdio: "ignore" });
|
|
35
|
+
if (check.status === 0) return candidate;
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
async function ensureBun() {
|
|
41
|
+
const found = findExistingBun();
|
|
42
|
+
if (found) return found;
|
|
43
|
+
const platformKey = `${process.platform}-${process.arch}`;
|
|
44
|
+
const pkgMap = {
|
|
45
|
+
"win32-x64": "bun-windows-x64",
|
|
46
|
+
"win32-arm64": "bun-windows-aarch64",
|
|
47
|
+
"darwin-arm64": "bun-darwin-aarch64",
|
|
48
|
+
"darwin-x64": "bun-darwin-x64",
|
|
49
|
+
"linux-x64": "bun-linux-x64",
|
|
50
|
+
"linux-arm64": "bun-linux-aarch64",
|
|
51
|
+
};
|
|
52
|
+
const pkgName = pkgMap[platformKey];
|
|
53
|
+
if (!pkgName) {
|
|
54
|
+
console.error(`未检测到 Bun 运行时,请先安装 Bun: https://bun.sh (当前平台: ${platformKey})`);
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
const runtimeDir = join(homedir(), ".basalt", "runtime", `bun-${bunVersion}`);
|
|
58
|
+
const targetExe = join(runtimeDir, exeName);
|
|
59
|
+
console.error(`首次运行正在下载 Bun ${bunVersion} 运行时 (${pkgName})...`);
|
|
60
|
+
const url = `https://registry.npmjs.org/@oven/${pkgName}/-/${pkgName}-${bunVersion}.tgz`;
|
|
61
|
+
const res = await fetch(url);
|
|
62
|
+
if (!res.ok) throw new Error(`下载 Bun 失败 (${res.status}): ${url}`);
|
|
63
|
+
const tar = gunzipSync(Buffer.from(await res.arrayBuffer()));
|
|
64
|
+
let offset = 0;
|
|
65
|
+
while (offset + 512 <= tar.length) {
|
|
66
|
+
const name = tar.subarray(offset, offset + 100).toString("utf8").replace(/\0.*$/, "");
|
|
67
|
+
const sizeText = tar.subarray(offset + 124, offset + 136).toString("utf8").replace(/\0.*$/, "").trim();
|
|
68
|
+
const size = Number.parseInt(sizeText, 8);
|
|
69
|
+
offset += 512;
|
|
70
|
+
if (!Number.isNaN(size) && size > 0) {
|
|
71
|
+
if (name.endsWith(`/${exeName}`)) {
|
|
72
|
+
mkdirSync(runtimeDir, { recursive: true });
|
|
73
|
+
writeFileSync(targetExe, tar.subarray(offset, offset + size));
|
|
74
|
+
if (!isWin) chmodSync(targetExe, 0o755);
|
|
75
|
+
return targetExe;
|
|
76
|
+
}
|
|
77
|
+
offset += (size + 511) & ~511;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
throw new Error("解压 Bun 运行时失败");
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const bunExe = await ensureBun();
|
|
84
|
+
const child = spawn(bunExe, [entry, ...process.argv.slice(2)], { stdio: "inherit" });
|
|
85
|
+
child.on("exit", (code, signal) => {
|
|
86
|
+
if (signal) process.kill(process.pid, signal);
|
|
87
|
+
process.exit(code ?? 0);
|
|
88
|
+
});
|
|
89
|
+
}
|