lecodes-cli 2.0.3 → 2.0.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/index.js +67 -20
- package/package.json +8 -8
- package/runtime/sdk-types.json +1 -1
- package/runtime/web/VERSION.json +3 -3
- package/runtime/web/player.js +18 -18
- package/runtime/web-lite/assets/canvas-C6G_Pb2Q.js +1 -0
- package/runtime/web-lite/assets/pager-O712dZv9.js +1 -0
- package/runtime/web-lite/assets/roboto-cyrillic-DVBNKCCH.woff2 +0 -0
- package/runtime/web-lite/assets/roboto-cyrillic-ext-1gPz9dK9.woff2 +0 -0
- package/runtime/web-lite/assets/roboto-greek-DVLYEgdx.woff2 +0 -0
- package/runtime/web-lite/assets/roboto-greek-ext-D98D44EL.woff2 +0 -0
- package/runtime/web-lite/assets/roboto-latin-cAJwcdBQ.woff2 +0 -0
- package/runtime/web-lite/assets/roboto-latin-ext-t610Sqxq.woff2 +0 -0
- package/runtime/web-lite/assets/roboto-rest-C7JkyNHT.woff2 +0 -0
- package/runtime/web-lite/assets/roboto-vietnamese-w-p-nKZZ.woff2 +0 -0
- package/runtime/web-lite/assets/tween-t_XDy3Nd.js +1 -0
- package/runtime/web-lite/assets/vlist-gEB8Sn0S.js +1 -0
- package/runtime/web-lite/features.json +51 -0
- package/runtime/web-lite/lite.js +60 -12
- package/src/commands/update/index.ts +5 -4
- package/src/hosts/archives.ts +41 -7
- package/src/hosts/peerInstall.ts +7 -7
- package/src/web/build.ts +26 -3
- package/runtime/web-lite/assets/Roboto-Variable-DHm9jpd-.woff2 +0 -0
- package/runtime/web-lite/assets/creatorTween-PF8B6T8V.wasm +0 -0
package/dist/index.js
CHANGED
|
@@ -52,7 +52,7 @@ var package_default;
|
|
|
52
52
|
var init_package = __esm(() => {
|
|
53
53
|
package_default = {
|
|
54
54
|
name: "lecodes-cli",
|
|
55
|
-
version: "2.0.
|
|
55
|
+
version: "2.0.4",
|
|
56
56
|
dependencies: {
|
|
57
57
|
"@letary/chisel": "^0.13.0",
|
|
58
58
|
jimp: "^1.6.1",
|
|
@@ -73,7 +73,7 @@ var init_package = __esm(() => {
|
|
|
73
73
|
},
|
|
74
74
|
peerDependencies: {
|
|
75
75
|
"lecodes-design": "^0.11.0",
|
|
76
|
-
"lecodes-headless": "^2.0.
|
|
76
|
+
"lecodes-headless": "^2.0.4",
|
|
77
77
|
"lecodes-3d-editor": "^0.9.0",
|
|
78
78
|
"lecodes-assets": "^0.2.1"
|
|
79
79
|
},
|
|
@@ -127,7 +127,7 @@ var init_package = __esm(() => {
|
|
|
127
127
|
});
|
|
128
128
|
|
|
129
129
|
// ../../sdk/src/version.ts
|
|
130
|
-
var SDK_VERSION = "2.0.
|
|
130
|
+
var SDK_VERSION = "2.0.4", sdkMajor = (version) => {
|
|
131
131
|
const m = version?.match(/^(\d+)\.\d+\.\d+/);
|
|
132
132
|
return m ? Number(m[1]) : null;
|
|
133
133
|
}, bundleSdkVersion = (head) => head.slice(0, 2000).match(/^\/\/ sdk: (\d+\.\d+\.\d+\S*)/m)?.[1] ?? null, bundleRunsOn = (bundleVersion, hostVersion) => sdkMajor(bundleVersion) !== null && sdkMajor(bundleVersion) === sdkMajor(hostVersion);
|
|
@@ -212719,21 +212719,50 @@ var init_peers = __esm(() => {
|
|
|
212719
212719
|
});
|
|
212720
212720
|
|
|
212721
212721
|
// src/hosts/archives.ts
|
|
212722
|
-
var ARCHIVED_PEERS, BASE = "https://storage.yandexcloud.net/le-codes/releases/packages", packagesBase = () => (process.env.LECODES_PACKAGES_URL || BASE).replace(/\/$/, ""), archiveUrl = (name, version) => `${packagesBase()}/${name}/${name}-${version}.tgz`,
|
|
212722
|
+
var ARCHIVED_PEERS, BASE = "https://storage.yandexcloud.net/le-codes/releases/packages", packagesBase = () => (process.env.LECODES_PACKAGES_URL || BASE).replace(/\/$/, ""), archiveUrl = (name, version) => `${packagesBase()}/${name}/${name}-${version}.tgz`, numbers = (version) => version.split(/[.-]/).slice(0, 3).map(Number), byVersion = (a2, b) => {
|
|
212723
|
+
const pa = numbers(a2), pb = numbers(b);
|
|
212724
|
+
for (let i2 = 0;i2 < 3; i2++) {
|
|
212725
|
+
const d = (pa[i2] ?? 0) - (pb[i2] ?? 0);
|
|
212726
|
+
if (d)
|
|
212727
|
+
return d;
|
|
212728
|
+
}
|
|
212729
|
+
return 0;
|
|
212730
|
+
}, caretTakes = (floor, version) => {
|
|
212731
|
+
if (!/^\d+\.\d+\.\d+$/.test(version) || byVersion(version, floor) < 0)
|
|
212732
|
+
return false;
|
|
212733
|
+
const f5 = numbers(floor), v = numbers(version);
|
|
212734
|
+
const held = f5[0] ? 1 : f5[1] ? 2 : 3;
|
|
212735
|
+
for (let i2 = 0;i2 < held; i2++)
|
|
212736
|
+
if (f5[i2] !== v[i2])
|
|
212737
|
+
return false;
|
|
212738
|
+
return true;
|
|
212739
|
+
}, asked, versionsOut = (name) => {
|
|
212740
|
+
const url = `${packagesBase()}/${name}/index.json`;
|
|
212741
|
+
let answer = asked.get(url);
|
|
212742
|
+
if (!answer) {
|
|
212743
|
+
answer = fetch(`${url}?t=${Date.now()}`, { signal: AbortSignal.timeout(4000) }).then(async (res) => res.ok ? (await res.json()).versions ?? [] : []).catch(() => []);
|
|
212744
|
+
asked.set(url, answer);
|
|
212745
|
+
}
|
|
212746
|
+
return answer;
|
|
212747
|
+
}, archivedVersion = async (name) => {
|
|
212723
212748
|
if (!ARCHIVED_PEERS.has(name))
|
|
212724
212749
|
return null;
|
|
212725
212750
|
if (name === "lecodes-headless")
|
|
212726
212751
|
return package_default.version;
|
|
212727
212752
|
const range = package_default.peerDependencies?.[name];
|
|
212728
|
-
const
|
|
212729
|
-
|
|
212730
|
-
|
|
212731
|
-
const
|
|
212753
|
+
const floor = range?.replace(/^[\^~>=\s]+/, "");
|
|
212754
|
+
if (!floor || !/^\d+\.\d+\.\d+/.test(floor))
|
|
212755
|
+
return null;
|
|
212756
|
+
const newest = (await versionsOut(name)).filter((version) => caretTakes(floor, version)).sort(byVersion).pop();
|
|
212757
|
+
return newest ?? floor;
|
|
212758
|
+
}, archiveSpec = async (name) => {
|
|
212759
|
+
const version = await archivedVersion(name);
|
|
212732
212760
|
return version ? archiveUrl(name, version) : null;
|
|
212733
212761
|
};
|
|
212734
212762
|
var init_archives = __esm(() => {
|
|
212735
212763
|
init_package();
|
|
212736
212764
|
ARCHIVED_PEERS = new Set(["lecodes-headless", "lecodes-design", "lecodes-3d-editor"]);
|
|
212765
|
+
asked = new Map;
|
|
212737
212766
|
});
|
|
212738
212767
|
|
|
212739
212768
|
// src/hosts/peerInstall.ts
|
|
@@ -212754,7 +212783,7 @@ async function loadPeer(name, subpath, opts) {
|
|
|
212754
212783
|
if (opts.install === false)
|
|
212755
212784
|
return null;
|
|
212756
212785
|
if (peerVersionGlobal(name, spec) !== null)
|
|
212757
|
-
throw new CliError(`${name} is installed but "${spec}" can't be loaded from it — reinstall it: npm install -g ${peerSpec(name)}`);
|
|
212786
|
+
throw new CliError(`${name} is installed but "${spec}" can't be loaded from it — reinstall it: npm install -g ${await peerSpec(name)}`);
|
|
212758
212787
|
await installPeers(companions(name), opts.for);
|
|
212759
212788
|
}
|
|
212760
212789
|
return await import(pathToFileURL(resolveEntry(dir, subpath)).href);
|
|
@@ -212765,8 +212794,8 @@ var CANVAS_RANGE_FALLBACK = "^0.1.65", readJson2 = (path2) => {
|
|
|
212765
212794
|
} catch {
|
|
212766
212795
|
return null;
|
|
212767
212796
|
}
|
|
212768
|
-
}, peerSpec = (name) => {
|
|
212769
|
-
const archive = archiveSpec(name);
|
|
212797
|
+
}, peerSpec = async (name) => {
|
|
212798
|
+
const archive = await archiveSpec(name);
|
|
212770
212799
|
if (archive)
|
|
212771
212800
|
return archive;
|
|
212772
212801
|
if (name === "@napi-rs/canvas") {
|
|
@@ -212795,7 +212824,7 @@ var CANVAS_RANGE_FALLBACK = "^0.1.65", readJson2 = (path2) => {
|
|
|
212795
212824
|
`);
|
|
212796
212825
|
}
|
|
212797
212826
|
const ordered = [...names3].sort((a2, b) => a2 === "lecodes-headless" ? -1 : b === "lecodes-headless" ? 1 : 0);
|
|
212798
|
-
const specsNow = ordered.map(peerSpec);
|
|
212827
|
+
const specsNow = await Promise.all(ordered.map(peerSpec));
|
|
212799
212828
|
const yes = opts.yes === true || !!process.env.LECODES_YES;
|
|
212800
212829
|
if (!yes) {
|
|
212801
212830
|
const interactive = process.stdin.isTTY && process.stdout.isTTY;
|
|
@@ -212812,7 +212841,7 @@ var CANVAS_RANGE_FALLBACK = "^0.1.65", readJson2 = (path2) => {
|
|
|
212812
212841
|
if (!tool)
|
|
212813
212842
|
throw new CliError(`Neither npm nor bun is on PATH, so ${names3.join(" + ")} can't be installed automatically. Install one, or run on a machine with Node: ${manualCommand(dir, specsNow)}`);
|
|
212814
212843
|
for (const name of ordered) {
|
|
212815
|
-
const spec = peerSpec(name);
|
|
212844
|
+
const spec = await peerSpec(name);
|
|
212816
212845
|
const argv = tool === "npm" ? ["install", "--prefix", dir, "--no-audit", "--no-fund", "--loglevel=error", spec] : ["add", "--cwd", dir, spec];
|
|
212817
212846
|
note(`$ ${tool} ${argv.join(" ")}`);
|
|
212818
212847
|
const r2 = spawnSync6(tool, argv, { stdio: "inherit", shell: process.platform === "win32", timeout: 10 * 60000 });
|
|
@@ -230640,15 +230669,15 @@ var parsePlatforms = (raw) => {
|
|
|
230640
230669
|
if (raw === undefined)
|
|
230641
230670
|
return;
|
|
230642
230671
|
const known = allShaderPlatforms();
|
|
230643
|
-
const
|
|
230644
|
-
if (
|
|
230672
|
+
const asked2 = raw.split(",").map((p2) => p2.trim()).filter(Boolean);
|
|
230673
|
+
if (asked2.length === 0)
|
|
230645
230674
|
throw new CliError(`--platform needs at least one target. Known: ${known.join(", ")}`);
|
|
230646
|
-
const bad =
|
|
230675
|
+
const bad = asked2.filter((p2) => !known.includes(p2));
|
|
230647
230676
|
if (bad.length > 0) {
|
|
230648
230677
|
throw new CliError(`Unknown shader platform${bad.length > 1 ? "s" : ""}: ${bad.join(", ")}
|
|
230649
230678
|
Known: ${known.join(", ")}`);
|
|
230650
230679
|
}
|
|
230651
|
-
return
|
|
230680
|
+
return asked2;
|
|
230652
230681
|
};
|
|
230653
230682
|
var compileShaders = async (platforms) => {
|
|
230654
230683
|
const { root, shaders } = collectShaders();
|
|
@@ -231886,7 +231915,7 @@ ${c.bold(name)} ${c.dim(what)}`);
|
|
|
231886
231915
|
for (const [name, probe] of OPTIONAL_PEERS) {
|
|
231887
231916
|
const where = peerSource(name, probe);
|
|
231888
231917
|
const installed = peerVersion(name, probe);
|
|
231889
|
-
const latest = !installed ? null : archivedVersion(name) ?? await npmLatest(name);
|
|
231918
|
+
const latest = !installed ? null : await archivedVersion(name) ?? await npmLatest(name);
|
|
231890
231919
|
rows.push({ name, installed, latest, where });
|
|
231891
231920
|
}
|
|
231892
231921
|
rows.push({ name: "lecodes-cli", installed: package_default.version, latest: await npmLatest("lecodes-cli"), where: "global" });
|
|
@@ -231900,7 +231929,7 @@ ${c.bold(name)} ${c.dim(what)}`);
|
|
|
231900
231929
|
if (behind.length === 0)
|
|
231901
231930
|
return "ok";
|
|
231902
231931
|
const prefixBehind = behind.filter((r2) => r2.where === "prefix");
|
|
231903
|
-
const globalSpecs = behind.filter((r2) => r2.where !== "prefix").map((r2) => archiveSpec(r2.name) ?? r2.name + "@latest");
|
|
231932
|
+
const globalSpecs = await Promise.all(behind.filter((r2) => r2.where !== "prefix").map(async (r2) => await archiveSpec(r2.name) ?? r2.name + "@latest"));
|
|
231904
231933
|
if (flags.check) {
|
|
231905
231934
|
return ["updated", behind.length + " behind — run: lecodes update" + (globalSpecs.length ? " (global: npm install -g " + globalSpecs.join(" ") + ")" : "")];
|
|
231906
231935
|
}
|
|
@@ -232022,6 +232051,20 @@ var buildWeb = async (options) => {
|
|
|
232022
232051
|
rmSync14(out, { recursive: true, force: true });
|
|
232023
232052
|
mkdirSync33(out, { recursive: true });
|
|
232024
232053
|
cpSync6(lite, out, { recursive: true });
|
|
232054
|
+
const table2 = join51(out, "features.json");
|
|
232055
|
+
if (existsSync51(table2)) {
|
|
232056
|
+
const { features, fonts } = JSON.parse(readFileSync41(table2, "utf8"));
|
|
232057
|
+
if (config.font === "system")
|
|
232058
|
+
for (const file of fonts ?? [])
|
|
232059
|
+
rmSync14(join51(out, file), { force: true });
|
|
232060
|
+
for (const feature of features) {
|
|
232061
|
+
if (feature.uses.some((name2) => js.includes(name2)))
|
|
232062
|
+
continue;
|
|
232063
|
+
for (const file of feature.files)
|
|
232064
|
+
rmSync14(join51(out, file), { force: true });
|
|
232065
|
+
}
|
|
232066
|
+
rmSync14(table2);
|
|
232067
|
+
}
|
|
232025
232068
|
const bundle = `app.${createHash9("sha256").update(js).digest("hex").slice(0, 10)}.js`;
|
|
232026
232069
|
writeFileSync35(join51(out, bundle), js);
|
|
232027
232070
|
for (const entry of entries) {
|
|
@@ -232053,7 +232096,11 @@ var buildWeb = async (options) => {
|
|
|
232053
232096
|
}
|
|
232054
232097
|
if (mode === "path")
|
|
232055
232098
|
head.unshift(`<base href="${escapeHtml(base)}" />`);
|
|
232056
|
-
const attrs = [
|
|
232099
|
+
const attrs = [
|
|
232100
|
+
`data-src="${bundle}"`,
|
|
232101
|
+
...mode === "path" ? [`data-urls="path"`, `data-base="${escapeHtml(base)}"`] : [],
|
|
232102
|
+
...config.font === "system" ? [`data-font="system"`] : []
|
|
232103
|
+
].join(" ");
|
|
232057
232104
|
const replace = (from, to2) => {
|
|
232058
232105
|
const next = html.replace(from, to2);
|
|
232059
232106
|
if (next === html)
|
package/package.json
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lecodes-cli",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.4",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"@letary/chisel": "^0.13.0",
|
|
6
6
|
"jimp": "^1.6.1",
|
|
7
|
-
"lecodes-sdk": "2.0.
|
|
7
|
+
"lecodes-sdk": "2.0.4"
|
|
8
8
|
},
|
|
9
9
|
"devDependencies": {
|
|
10
10
|
"lecodes-design": "https://storage.yandexcloud.net/le-codes/releases/packages/lecodes-design/lecodes-design-0.11.0.tgz",
|
|
11
|
-
"lecodes-headless": "2.0.
|
|
11
|
+
"lecodes-headless": "2.0.4",
|
|
12
12
|
"qrcode-terminal": "^0.12.0",
|
|
13
13
|
"lecodes-3d-editor": "https://storage.yandexcloud.net/le-codes/releases/packages/lecodes-3d-editor/lecodes-3d-editor-0.9.0.tgz",
|
|
14
14
|
"lecodes-assets": "0.2.1",
|
|
15
15
|
"lecodes-creator-nav": "0.19.0",
|
|
16
|
-
"lecodes-gl-lite": "2.0.
|
|
17
|
-
"lecodes-web-frame": "2.0.
|
|
18
|
-
"lecodes-web-player": "2.0.
|
|
19
|
-
"lecodes-web-shared": "2.0.
|
|
16
|
+
"lecodes-gl-lite": "2.0.4",
|
|
17
|
+
"lecodes-web-frame": "2.0.4",
|
|
18
|
+
"lecodes-web-player": "2.0.4",
|
|
19
|
+
"lecodes-web-shared": "2.0.4",
|
|
20
20
|
"lecodes-web-lite": "2.0.2"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
23
|
"lecodes-design": "^0.11.0",
|
|
24
|
-
"lecodes-headless": "^2.0.
|
|
24
|
+
"lecodes-headless": "^2.0.4",
|
|
25
25
|
"lecodes-3d-editor": "^0.9.0",
|
|
26
26
|
"lecodes-assets": "^0.2.1"
|
|
27
27
|
},
|