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 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.1.0",
55
+ version: "2.2.0",
56
56
  dependencies: {
57
- "@letary/chisel": "^0.13.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.1.0",
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.1.0", sdkMajor = (version) => {
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 === name)
215999
- described[f5.key] = { kind: "file", optional: false, unique: false, index: false, hasDefault: false, array: f5.array, isId: false };
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" && !SDK_VARIANTS.includes(variant)) {
220766
- throw new CliError(`--variant must be auto, ${SDK_VARIANTS.join(", ")} (got "${variant}")`);
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 ? variantArtifact(initVariant) : "lecodes-sdk";
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" && !SDK_VARIANTS.includes(requestedVariant)) {
220872
- throw new CliError(`app.json android.variant must be "auto" or one of ${SDK_VARIANTS.join(", ")} (got "${requestedVariant}").`);
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
- let sdkArtifact = variantArtifact(variant);
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" || SDK_VARIANTS.includes(requestedVariant);
221506
- check(validVariant, `android.variant "${requestedVariant}"`, `use "auto" or one of ${SDK_VARIANTS.join(", ")}`);
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.1.0",
3
+ "version": "2.2.0",
4
4
  "dependencies": {
5
- "@letary/chisel": "^0.13.0",
5
+ "@letary/chisel": "^0.14.0",
6
6
  "jimp": "^1.6.1",
7
- "lecodes-sdk": "2.1.0"
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.1.0",
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.1.0",
17
- "lecodes-web-frame": "2.1.0",
18
- "lecodes-web-player": "2.1.0",
19
- "lecodes-web-shared": "2.1.0",
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.1.0",
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",