lecodes-cli 2.1.0 → 2.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/dist/index.js +31 -16
- package/package.json +8 -8
- 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,7 +52,7 @@ var package_default;
|
|
|
52
52
|
var init_package = __esm(() => {
|
|
53
53
|
package_default = {
|
|
54
54
|
name: "lecodes-cli",
|
|
55
|
-
version: "2.1.
|
|
55
|
+
version: "2.1.1",
|
|
56
56
|
dependencies: {
|
|
57
57
|
"@letary/chisel": "^0.13.0",
|
|
58
58
|
jimp: "^1.6.1",
|
|
@@ -76,7 +76,7 @@ var init_package = __esm(() => {
|
|
|
76
76
|
},
|
|
77
77
|
peerDependencies: {
|
|
78
78
|
"lecodes-design": "^0.11.0",
|
|
79
|
-
"lecodes-headless": "^2.1.
|
|
79
|
+
"lecodes-headless": "^2.1.1",
|
|
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.1.
|
|
149
|
+
var SDK_VERSION = "2.1.1", 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);
|
|
@@ -215995,8 +215995,10 @@ var describeField = (f5) => {
|
|
|
215995
215995
|
const fields = Object.entries(m.fields).filter(([k]) => !shown[name] || shown[name].includes(k));
|
|
215996
215996
|
const described = Object.fromEntries(fields.map(([k, f5]) => [k, describeField(f5)]));
|
|
215997
215997
|
for (const f5 of files) {
|
|
215998
|
-
if (f5.model
|
|
215999
|
-
|
|
215998
|
+
if (f5.model !== name)
|
|
215999
|
+
continue;
|
|
216000
|
+
const declared = db.$given[name]?.fields?.[f5.key]?.def;
|
|
216001
|
+
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
216002
|
}
|
|
216001
216003
|
models[name] = { fields: described, ...name === FILE_MODEL ? { files: true } : shown[name] ? { auth: true } : {} };
|
|
216002
216004
|
}
|
|
@@ -217921,6 +217923,15 @@ var resolveVariant = (requested, bundleJs, configKey = "ios.variant") => {
|
|
|
217921
217923
|
}
|
|
217922
217924
|
return { variant, detected };
|
|
217923
217925
|
};
|
|
217926
|
+
var ANDROID_SDK_VARIANTS = [...SDK_VARIANTS, "vulkan"];
|
|
217927
|
+
var ANDROID_SDK_VULKAN_MIN = "2.1.0";
|
|
217928
|
+
var androidSdkArtifact = (variant, sdkVersion) => {
|
|
217929
|
+
if (variant === "vulkan" && sdkVersion && cmpVersion(sdkVersion, ANDROID_SDK_VULKAN_MIN) < 0) {
|
|
217930
|
+
throw new CliError(`android.variant "vulkan" needs lecodes-android-sdk >= ${ANDROID_SDK_VULKAN_MIN} (pinned: ${sdkVersion}) — run \`lecodes app update\` or set android.sdk.`);
|
|
217931
|
+
}
|
|
217932
|
+
return variant === "full" ? "lecodes-sdk" : `lecodes-sdk-${variant}`;
|
|
217933
|
+
};
|
|
217934
|
+
var androidVariantEngines = (variant) => variant === "vulkan" ? "full" : variant;
|
|
217924
217935
|
var VERSION_RE = /^\d+\.\d+\.\d+$/;
|
|
217925
217936
|
var cmpVersion = (a, b) => {
|
|
217926
217937
|
const pa = a.split(".").map(Number);
|
|
@@ -220005,6 +220016,10 @@ engines the bundle uses and cannot see those, so a project using \`Physics\`,
|
|
|
220005
220016
|
\`CharacterController\`, \`NavMesh\` or networking must set \`android.variant: "full"\` in
|
|
220006
220017
|
\`../app.json\` — otherwise those aspects silently do nothing on device.
|
|
220007
220018
|
|
|
220019
|
+
\`android.variant: "vulkan"\` links \`lecodes-sdk-vulkan\`: the full engine set with Filament on
|
|
220020
|
+
Vulkan (OpenGL ES where the device has no Vulkan 1.1), \`arm64-v8a\` only — for 3D games. Never
|
|
220021
|
+
auto-selected; needs lecodes-android-sdk >= 2.1.0.
|
|
220022
|
+
|
|
220008
220023
|
## App-local native code
|
|
220009
220024
|
|
|
220010
220025
|
Drop Kotlin files into \`app/src/main/java/\` and register them in \`MainActivity\` after the
|
|
@@ -220720,7 +220735,6 @@ if "%OS%"=="Windows_NT" endlocal
|
|
|
220720
220735
|
var ANDROID_SDK_REPO = "letary/lecodes-android-sdk";
|
|
220721
220736
|
var ANDROID_SDK_MIN_VERSION = "2.0.13";
|
|
220722
220737
|
var ANDROID_SDK_VARIANTS_MIN = "1.3.0";
|
|
220723
|
-
var variantArtifact = (variant) => variant === "full" ? "lecodes-sdk" : `lecodes-sdk-${variant}`;
|
|
220724
220738
|
var ANDROID_SDK_URL_DEFAULT = `https://github.com/${ANDROID_SDK_REPO}/releases/download`;
|
|
220725
220739
|
var sdkRepoUrl = () => process.env.LECODES_ANDROID_SDK_URL ?? ANDROID_SDK_URL_DEFAULT;
|
|
220726
220740
|
var ANDROID_SDK_OPTS = { repo: ANDROID_SDK_REPO, minVersion: ANDROID_SDK_MIN_VERSION, configKey: "android.sdk" };
|
|
@@ -220762,8 +220776,8 @@ var initAndroid = async (opts) => {
|
|
|
220762
220776
|
}
|
|
220763
220777
|
const existing = readJson2(join21(root, "app.json")) ?? {};
|
|
220764
220778
|
const variant = opts.variant ?? existing.android?.variant ?? "auto";
|
|
220765
|
-
if (variant !== "auto" && !
|
|
220766
|
-
throw new CliError(`--variant must be auto, ${
|
|
220779
|
+
if (variant !== "auto" && !ANDROID_SDK_VARIANTS.includes(variant)) {
|
|
220780
|
+
throw new CliError(`--variant must be auto, ${ANDROID_SDK_VARIANTS.join(", ")} (got "${variant}")`);
|
|
220767
220781
|
}
|
|
220768
220782
|
const sdkFlag = opts.sdk ?? existing.android?.sdk;
|
|
220769
220783
|
const sdkVersion = await resolveSdkVersion(process.env.LECODES_ANDROID_SDK ?? sdkFlag ?? "latest", null, ANDROID_SDK_OPTS);
|
|
@@ -220824,7 +220838,7 @@ var initAndroid = async (opts) => {
|
|
|
220824
220838
|
write("app/src/main/res/values/strings.xml", stringsXmlTemplate(name));
|
|
220825
220839
|
write("app/src/main/res/drawable/ic_launcher.xml", IC_LAUNCHER_XML);
|
|
220826
220840
|
const initVariant = variant === "auto" ? "core" : variant;
|
|
220827
|
-
const initArtifact = cmpVersion(sdkVersion, ANDROID_SDK_VARIANTS_MIN) >= 0 ?
|
|
220841
|
+
const initArtifact = cmpVersion(sdkVersion, ANDROID_SDK_VARIANTS_MIN) >= 0 ? androidSdkArtifact(initVariant, sdkVersion) : "lecodes-sdk";
|
|
220828
220842
|
write("lecodes-runtime/build.gradle.kts", runtimeBuildGradleTemplate(sdkVersion, [], initArtifact));
|
|
220829
220843
|
write("lecodes-runtime/src/main/kotlin/io/letary/lecodes/runtime/LeCodesRuntime.kt", runtimeKotlinTemplate([]));
|
|
220830
220844
|
log("");
|
|
@@ -220868,11 +220882,12 @@ var syncAndroid = async (root, config, prior) => {
|
|
|
220868
220882
|
bundleJs = readFileSync18(join21(assetsDir, "app.js"), "utf8");
|
|
220869
220883
|
}
|
|
220870
220884
|
const requestedVariant = config.android?.variant ?? "auto";
|
|
220871
|
-
if (requestedVariant !== "auto" && !
|
|
220872
|
-
throw new CliError(`app.json android.variant must be "auto" or one of ${
|
|
220885
|
+
if (requestedVariant !== "auto" && !ANDROID_SDK_VARIANTS.includes(requestedVariant)) {
|
|
220886
|
+
throw new CliError(`app.json android.variant must be "auto" or one of ${ANDROID_SDK_VARIANTS.join(", ")} (got "${requestedVariant}").`);
|
|
220873
220887
|
}
|
|
220874
|
-
const { variant, detected } = resolveVariant(requestedVariant, bundleJs, "android.variant");
|
|
220875
|
-
|
|
220888
|
+
const { variant: covered, detected } = resolveVariant(requestedVariant === "auto" ? "auto" : androidVariantEngines(requestedVariant), bundleJs, "android.variant");
|
|
220889
|
+
const variant = requestedVariant === "vulkan" ? "vulkan" : covered;
|
|
220890
|
+
let sdkArtifact = androidSdkArtifact(variant, sdkVersion);
|
|
220876
220891
|
if (sdkArtifact !== "lecodes-sdk" && cmpVersion(sdkVersion, ANDROID_SDK_VARIANTS_MIN) < 0) {
|
|
220877
220892
|
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
220893
|
sdkArtifact = "lecodes-sdk";
|
|
@@ -221502,8 +221517,8 @@ var doctorAndroidChecks = async (root, config, check) => {
|
|
|
221502
221517
|
const hasSdkHome = !!(process.env.ANDROID_HOME ?? process.env.ANDROID_SDK_ROOT) || existsSync19(join21(androidDir, "local.properties"));
|
|
221503
221518
|
check(hasSdkHome, "Android SDK location", "set ANDROID_HOME or create android/local.properties");
|
|
221504
221519
|
const requestedVariant = config.android?.variant ?? "auto";
|
|
221505
|
-
const validVariant = requestedVariant === "auto" ||
|
|
221506
|
-
check(validVariant, `android.variant "${requestedVariant}"`, `use "auto" or one of ${
|
|
221520
|
+
const validVariant = requestedVariant === "auto" || ANDROID_SDK_VARIANTS.includes(requestedVariant);
|
|
221521
|
+
check(validVariant, `android.variant "${requestedVariant}"`, `use "auto" or one of ${ANDROID_SDK_VARIANTS.join(", ")}`);
|
|
221507
221522
|
const wrapperJar = join21(androidDir, "gradle", "wrapper", "gradle-wrapper.jar");
|
|
221508
221523
|
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
221524
|
check(existsSync19(join21(androidDir, "app", "src", "main", "assets", "app.js")), "Bundled app.js", "run `lecodes app sync`");
|
|
@@ -222821,7 +222836,7 @@ var init = defineCommand({
|
|
|
222821
222836
|
"bundle-id": str("iOS bundle identifier (default com.example.<slug>)", { value: "<id>" }),
|
|
222822
222837
|
"app-id": str("Android applicationId (default com.example.<slug>)", { value: "<id>" }),
|
|
222823
222838
|
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>" }),
|
|
222839
|
+
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
222840
|
sdk: str("native SDK release (default: the newest one, pinned in app.json); 'latest' floats it — every sync re-resolves", { value: "<v|latest>" }),
|
|
222826
222841
|
fullscreen: bool("(desktop) borderless fullscreen on the primary monitor — kiosks")
|
|
222827
222842
|
},
|
package/package.json
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lecodes-cli",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"@letary/chisel": "^0.13.0",
|
|
6
6
|
"jimp": "^1.6.1",
|
|
7
|
-
"lecodes-sdk": "2.1.
|
|
7
|
+
"lecodes-sdk": "2.1.1"
|
|
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.1.
|
|
11
|
+
"lecodes-headless": "2.1.1",
|
|
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.1.
|
|
17
|
-
"lecodes-web-frame": "2.1.
|
|
18
|
-
"lecodes-web-player": "2.1.
|
|
19
|
-
"lecodes-web-shared": "2.1.
|
|
16
|
+
"lecodes-gl-lite": "2.1.1",
|
|
17
|
+
"lecodes-web-frame": "2.1.1",
|
|
18
|
+
"lecodes-web-player": "2.1.1",
|
|
19
|
+
"lecodes-web-shared": "2.1.1",
|
|
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.1.
|
|
27
|
+
"lecodes-headless": "^2.1.1",
|
|
28
28
|
"lecodes-3d-editor": "^0.9.0",
|
|
29
29
|
"lecodes-assets": "^0.2.1",
|
|
30
30
|
"heic-decode": "^2.1.0",
|