lecodes-cli 2.1.0 → 2.2.0
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 +33 -20
- package/package.json +9 -9
- package/runtime/sdk-types.json +1 -1
- package/runtime/web/VERSION.json +3 -3
- package/runtime/web/assets/{creator-2d-CRsyKKtS.js → creator-2d-DLHrdeSK.js} +1 -1
- package/runtime/web/assets/{creator-2d-Ci0AyJGg.wasm → creator-2d-Snuv_nNZ.wasm} +0 -0
- package/runtime/web/assets/{creator-full-vPAzqY1M.wasm → creator-full-Bvx6gAyw.wasm} +0 -0
- package/runtime/web/assets/{creator-full-DBIPcQIa.js → creator-full-CgGclZfm.js} +1 -1
- package/runtime/web/assets/{creator-full.js-CfRfMmmc.symbols → creator-full.js-6Drlco-f.symbols} +7066 -7055
- package/runtime/web/assets/{creator-ui-CULpA-Fz.wasm → creator-ui-BnClYxZP.wasm} +0 -0
- package/runtime/web/assets/{creator-ui-C7wLARUu.js → creator-ui-DWJK-phk.js} +1 -1
- package/runtime/web/player.js +12 -12
- package/runtime/web-lite/lite.js +1 -1
- package/src/commands/app/android.ts +18 -19
- package/src/commands/app/index.ts +1 -1
- package/src/commands/app/shared.ts +29 -1
- package/src/commands/app/templates/android.ts +4 -0
package/dist/index.js
CHANGED
|
@@ -52,9 +52,9 @@ var package_default;
|
|
|
52
52
|
var init_package = __esm(() => {
|
|
53
53
|
package_default = {
|
|
54
54
|
name: "lecodes-cli",
|
|
55
|
-
version: "2.
|
|
55
|
+
version: "2.2.0",
|
|
56
56
|
dependencies: {
|
|
57
|
-
"@letary/chisel": "^0.
|
|
57
|
+
"@letary/chisel": "^0.14.0",
|
|
58
58
|
jimp: "^1.6.1",
|
|
59
59
|
"lecodes-sdk": "workspace:*"
|
|
60
60
|
},
|
|
@@ -76,7 +76,7 @@ var init_package = __esm(() => {
|
|
|
76
76
|
},
|
|
77
77
|
peerDependencies: {
|
|
78
78
|
"lecodes-design": "^0.11.0",
|
|
79
|
-
"lecodes-headless": "^2.
|
|
79
|
+
"lecodes-headless": "^2.2.0",
|
|
80
80
|
"lecodes-3d-editor": "^0.9.0",
|
|
81
81
|
"lecodes-assets": "^0.2.1",
|
|
82
82
|
"heic-decode": "^2.1.0",
|
|
@@ -146,7 +146,7 @@ var init_package = __esm(() => {
|
|
|
146
146
|
});
|
|
147
147
|
|
|
148
148
|
// ../../sdk/src/version.ts
|
|
149
|
-
var SDK_VERSION = "2.
|
|
149
|
+
var SDK_VERSION = "2.2.0", sdkMajor = (version) => {
|
|
150
150
|
const m = version?.match(/^(\d+)\.\d+\.\d+/);
|
|
151
151
|
return m ? Number(m[1]) : null;
|
|
152
152
|
}, 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);
|
|
@@ -1643,9 +1643,6 @@ var init_chisel = __esm(() => {
|
|
|
1643
1643
|
"select",
|
|
1644
1644
|
"badge",
|
|
1645
1645
|
"setData",
|
|
1646
|
-
"update",
|
|
1647
|
-
"prepend",
|
|
1648
|
-
"removeByKey",
|
|
1649
1646
|
"on",
|
|
1650
1647
|
"off",
|
|
1651
1648
|
"onReady",
|
|
@@ -1665,6 +1662,7 @@ var init_chisel = __esm(() => {
|
|
|
1665
1662
|
},
|
|
1666
1663
|
signals: {
|
|
1667
1664
|
factories: ["signal", "computed"],
|
|
1665
|
+
chain: ["stored"],
|
|
1668
1666
|
value: "value"
|
|
1669
1667
|
},
|
|
1670
1668
|
fusion: {
|
|
@@ -215995,8 +215993,10 @@ var describeField = (f5) => {
|
|
|
215995
215993
|
const fields = Object.entries(m.fields).filter(([k]) => !shown[name] || shown[name].includes(k));
|
|
215996
215994
|
const described = Object.fromEntries(fields.map(([k, f5]) => [k, describeField(f5)]));
|
|
215997
215995
|
for (const f5 of files) {
|
|
215998
|
-
if (f5.model
|
|
215999
|
-
|
|
215996
|
+
if (f5.model !== name)
|
|
215997
|
+
continue;
|
|
215998
|
+
const declared = db.$given[name]?.fields?.[f5.key]?.def;
|
|
215999
|
+
described[f5.key] = { kind: "file", optional: declared?.optional ?? false, unique: false, index: false, hasDefault: false, array: f5.array, isId: false, ...f5.image ? { image: f5.image } : {} };
|
|
216000
216000
|
}
|
|
216001
216001
|
models[name] = { fields: described, ...name === FILE_MODEL ? { files: true } : shown[name] ? { auth: true } : {} };
|
|
216002
216002
|
}
|
|
@@ -217921,6 +217921,15 @@ var resolveVariant = (requested, bundleJs, configKey = "ios.variant") => {
|
|
|
217921
217921
|
}
|
|
217922
217922
|
return { variant, detected };
|
|
217923
217923
|
};
|
|
217924
|
+
var ANDROID_SDK_VARIANTS = [...SDK_VARIANTS, "vulkan"];
|
|
217925
|
+
var ANDROID_SDK_VULKAN_MIN = "2.1.0";
|
|
217926
|
+
var androidSdkArtifact = (variant, sdkVersion) => {
|
|
217927
|
+
if (variant === "vulkan" && sdkVersion && cmpVersion(sdkVersion, ANDROID_SDK_VULKAN_MIN) < 0) {
|
|
217928
|
+
throw new CliError(`android.variant "vulkan" needs lecodes-android-sdk >= ${ANDROID_SDK_VULKAN_MIN} (pinned: ${sdkVersion}) — run \`lecodes app update\` or set android.sdk.`);
|
|
217929
|
+
}
|
|
217930
|
+
return variant === "full" ? "lecodes-sdk" : `lecodes-sdk-${variant}`;
|
|
217931
|
+
};
|
|
217932
|
+
var androidVariantEngines = (variant) => variant === "vulkan" ? "full" : variant;
|
|
217924
217933
|
var VERSION_RE = /^\d+\.\d+\.\d+$/;
|
|
217925
217934
|
var cmpVersion = (a, b) => {
|
|
217926
217935
|
const pa = a.split(".").map(Number);
|
|
@@ -220005,6 +220014,10 @@ engines the bundle uses and cannot see those, so a project using \`Physics\`,
|
|
|
220005
220014
|
\`CharacterController\`, \`NavMesh\` or networking must set \`android.variant: "full"\` in
|
|
220006
220015
|
\`../app.json\` — otherwise those aspects silently do nothing on device.
|
|
220007
220016
|
|
|
220017
|
+
\`android.variant: "vulkan"\` links \`lecodes-sdk-vulkan\`: the full engine set with Filament on
|
|
220018
|
+
Vulkan (OpenGL ES where the device has no Vulkan 1.1), \`arm64-v8a\` only — for 3D games. Never
|
|
220019
|
+
auto-selected; needs lecodes-android-sdk >= 2.1.0.
|
|
220020
|
+
|
|
220008
220021
|
## App-local native code
|
|
220009
220022
|
|
|
220010
220023
|
Drop Kotlin files into \`app/src/main/java/\` and register them in \`MainActivity\` after the
|
|
@@ -220720,7 +220733,6 @@ if "%OS%"=="Windows_NT" endlocal
|
|
|
220720
220733
|
var ANDROID_SDK_REPO = "letary/lecodes-android-sdk";
|
|
220721
220734
|
var ANDROID_SDK_MIN_VERSION = "2.0.13";
|
|
220722
220735
|
var ANDROID_SDK_VARIANTS_MIN = "1.3.0";
|
|
220723
|
-
var variantArtifact = (variant) => variant === "full" ? "lecodes-sdk" : `lecodes-sdk-${variant}`;
|
|
220724
220736
|
var ANDROID_SDK_URL_DEFAULT = `https://github.com/${ANDROID_SDK_REPO}/releases/download`;
|
|
220725
220737
|
var sdkRepoUrl = () => process.env.LECODES_ANDROID_SDK_URL ?? ANDROID_SDK_URL_DEFAULT;
|
|
220726
220738
|
var ANDROID_SDK_OPTS = { repo: ANDROID_SDK_REPO, minVersion: ANDROID_SDK_MIN_VERSION, configKey: "android.sdk" };
|
|
@@ -220762,8 +220774,8 @@ var initAndroid = async (opts) => {
|
|
|
220762
220774
|
}
|
|
220763
220775
|
const existing = readJson2(join21(root, "app.json")) ?? {};
|
|
220764
220776
|
const variant = opts.variant ?? existing.android?.variant ?? "auto";
|
|
220765
|
-
if (variant !== "auto" && !
|
|
220766
|
-
throw new CliError(`--variant must be auto, ${
|
|
220777
|
+
if (variant !== "auto" && !ANDROID_SDK_VARIANTS.includes(variant)) {
|
|
220778
|
+
throw new CliError(`--variant must be auto, ${ANDROID_SDK_VARIANTS.join(", ")} (got "${variant}")`);
|
|
220767
220779
|
}
|
|
220768
220780
|
const sdkFlag = opts.sdk ?? existing.android?.sdk;
|
|
220769
220781
|
const sdkVersion = await resolveSdkVersion(process.env.LECODES_ANDROID_SDK ?? sdkFlag ?? "latest", null, ANDROID_SDK_OPTS);
|
|
@@ -220824,7 +220836,7 @@ var initAndroid = async (opts) => {
|
|
|
220824
220836
|
write("app/src/main/res/values/strings.xml", stringsXmlTemplate(name));
|
|
220825
220837
|
write("app/src/main/res/drawable/ic_launcher.xml", IC_LAUNCHER_XML);
|
|
220826
220838
|
const initVariant = variant === "auto" ? "core" : variant;
|
|
220827
|
-
const initArtifact = cmpVersion(sdkVersion, ANDROID_SDK_VARIANTS_MIN) >= 0 ?
|
|
220839
|
+
const initArtifact = cmpVersion(sdkVersion, ANDROID_SDK_VARIANTS_MIN) >= 0 ? androidSdkArtifact(initVariant, sdkVersion) : "lecodes-sdk";
|
|
220828
220840
|
write("lecodes-runtime/build.gradle.kts", runtimeBuildGradleTemplate(sdkVersion, [], initArtifact));
|
|
220829
220841
|
write("lecodes-runtime/src/main/kotlin/io/letary/lecodes/runtime/LeCodesRuntime.kt", runtimeKotlinTemplate([]));
|
|
220830
220842
|
log("");
|
|
@@ -220868,11 +220880,12 @@ var syncAndroid = async (root, config, prior) => {
|
|
|
220868
220880
|
bundleJs = readFileSync18(join21(assetsDir, "app.js"), "utf8");
|
|
220869
220881
|
}
|
|
220870
220882
|
const requestedVariant = config.android?.variant ?? "auto";
|
|
220871
|
-
if (requestedVariant !== "auto" && !
|
|
220872
|
-
throw new CliError(`app.json android.variant must be "auto" or one of ${
|
|
220883
|
+
if (requestedVariant !== "auto" && !ANDROID_SDK_VARIANTS.includes(requestedVariant)) {
|
|
220884
|
+
throw new CliError(`app.json android.variant must be "auto" or one of ${ANDROID_SDK_VARIANTS.join(", ")} (got "${requestedVariant}").`);
|
|
220873
220885
|
}
|
|
220874
|
-
const { variant, detected } = resolveVariant(requestedVariant, bundleJs, "android.variant");
|
|
220875
|
-
|
|
220886
|
+
const { variant: covered, detected } = resolveVariant(requestedVariant === "auto" ? "auto" : androidVariantEngines(requestedVariant), bundleJs, "android.variant");
|
|
220887
|
+
const variant = requestedVariant === "vulkan" ? "vulkan" : covered;
|
|
220888
|
+
let sdkArtifact = androidSdkArtifact(variant, sdkVersion);
|
|
220876
220889
|
if (sdkArtifact !== "lecodes-sdk" && cmpVersion(sdkVersion, ANDROID_SDK_VARIANTS_MIN) < 0) {
|
|
220877
220890
|
warn(`lecodes-android-sdk ${sdkVersion} predates the variant matrix (${ANDROID_SDK_VARIANTS_MIN}) — linking the full lecodes-sdk AAR; run \`lecodes app update\` to pick up variant builds.`);
|
|
220878
220891
|
sdkArtifact = "lecodes-sdk";
|
|
@@ -221502,8 +221515,8 @@ var doctorAndroidChecks = async (root, config, check) => {
|
|
|
221502
221515
|
const hasSdkHome = !!(process.env.ANDROID_HOME ?? process.env.ANDROID_SDK_ROOT) || existsSync19(join21(androidDir, "local.properties"));
|
|
221503
221516
|
check(hasSdkHome, "Android SDK location", "set ANDROID_HOME or create android/local.properties");
|
|
221504
221517
|
const requestedVariant = config.android?.variant ?? "auto";
|
|
221505
|
-
const validVariant = requestedVariant === "auto" ||
|
|
221506
|
-
check(validVariant, `android.variant "${requestedVariant}"`, `use "auto" or one of ${
|
|
221518
|
+
const validVariant = requestedVariant === "auto" || ANDROID_SDK_VARIANTS.includes(requestedVariant);
|
|
221519
|
+
check(validVariant, `android.variant "${requestedVariant}"`, `use "auto" or one of ${ANDROID_SDK_VARIANTS.join(", ")}`);
|
|
221507
221520
|
const wrapperJar = join21(androidDir, "gradle", "wrapper", "gradle-wrapper.jar");
|
|
221508
221521
|
check(existsSync19(wrapperJar) && statSync5(wrapperJar).size > 0, "Gradle wrapper jar", `run \`gradle wrapper --gradle-version ${GRADLE_VERSION}\` in android/ (or let Android Studio repair it)`);
|
|
221509
221522
|
check(existsSync19(join21(androidDir, "app", "src", "main", "assets", "app.js")), "Bundled app.js", "run `lecodes app sync`");
|
|
@@ -222821,7 +222834,7 @@ var init = defineCommand({
|
|
|
222821
222834
|
"bundle-id": str("iOS bundle identifier (default com.example.<slug>)", { value: "<id>" }),
|
|
222822
222835
|
"app-id": str("Android applicationId (default com.example.<slug>)", { value: "<id>" }),
|
|
222823
222836
|
team: str("Apple development team id", { value: "<id>" }),
|
|
222824
|
-
variant: str("SDK variant: auto (default — sync picks the smallest of core/2d/3d/full covering what the bundle uses), or one of those to pin", { value: "<v>" }),
|
|
222837
|
+
variant: str("SDK variant: auto (default — sync picks the smallest of core/2d/3d/full covering what the bundle uses), or one of those to pin; Android also vulkan (full on Vulkan, arm64 only)", { value: "<v>" }),
|
|
222825
222838
|
sdk: str("native SDK release (default: the newest one, pinned in app.json); 'latest' floats it — every sync re-resolves", { value: "<v|latest>" }),
|
|
222826
222839
|
fullscreen: bool("(desktop) borderless fullscreen on the primary monitor — kiosks")
|
|
222827
222840
|
},
|
package/package.json
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lecodes-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"@letary/chisel": "^0.
|
|
5
|
+
"@letary/chisel": "^0.14.0",
|
|
6
6
|
"jimp": "^1.6.1",
|
|
7
|
-
"lecodes-sdk": "2.
|
|
7
|
+
"lecodes-sdk": "2.2.0"
|
|
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.
|
|
11
|
+
"lecodes-headless": "2.2.0",
|
|
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.
|
|
17
|
-
"lecodes-web-frame": "2.
|
|
18
|
-
"lecodes-web-player": "2.
|
|
19
|
-
"lecodes-web-shared": "2.
|
|
16
|
+
"lecodes-gl-lite": "2.2.0",
|
|
17
|
+
"lecodes-web-frame": "2.2.0",
|
|
18
|
+
"lecodes-web-player": "2.2.0",
|
|
19
|
+
"lecodes-web-shared": "2.2.0",
|
|
20
20
|
"lecodes-web-lite": "2.0.2",
|
|
21
21
|
"heic-decode": "^2.1.0",
|
|
22
22
|
"marcidb-embedded": "^0.14.1",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
26
|
"lecodes-design": "^0.11.0",
|
|
27
|
-
"lecodes-headless": "^2.
|
|
27
|
+
"lecodes-headless": "^2.2.0",
|
|
28
28
|
"lecodes-3d-editor": "^0.9.0",
|
|
29
29
|
"lecodes-assets": "^0.2.1",
|
|
30
30
|
"heic-decode": "^2.1.0",
|