@otalan/cli 1.4.0 → 1.5.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/CHANGELOG.md CHANGED
@@ -2,6 +2,28 @@
2
2
 
3
3
  All notable changes to `@otalan/cli` will be documented in this file.
4
4
 
5
+ ## 1.5.0 - 2026-05-23
6
+
7
+ ### Added
8
+
9
+ - Add `otalan channels` to print the resolved organization/project context and list project release channels with their apps from `GET /v1/releases/channels`; it supports `--app-id`, and interactive runs default to `All` before optionally filtering by app.
10
+
11
+ ### Changed
12
+
13
+ - Document Expo SDK 56 as officially supported.
14
+
15
+ ### Fixed
16
+
17
+ - Avoid Bun worker ZIP compression failures when packaging large Expo export assets.
18
+
19
+ ## 1.4.1 - 2026-05-22
20
+
21
+ ### Changed
22
+
23
+ - Hide interactive OTA Publish Key input during `otalan login` and validate credentials before saving them.
24
+ - Surface skipped duplicate-bundle checks, non-JSON API error bodies, and truncated bundle table cells more clearly.
25
+ - Harden direct uploads, argument parsing, global config permissions, Expo CLI resolution, and Expo runtime metadata scanning.
26
+
5
27
  ## 1.4.0 - 2026-05-22
6
28
 
7
29
  ### Changed
package/README.md CHANGED
@@ -9,7 +9,7 @@ Published as an npm package, but the CLI itself runs on Bun.
9
9
  ## Requirements
10
10
 
11
11
  - Bun `>= 1.3.11` installed and available on your `PATH`
12
- - An Otalan **OTA Publish Key** for commands that talk to the Otalan API
12
+ - An Otalan **OTA Publish Key**, generated from the Otalan Dashboard, for commands that talk to the Otalan API
13
13
 
14
14
  Otalan key prefixes are stable API identifiers:
15
15
 
@@ -31,7 +31,7 @@ The npm package ships a Bun-based CLI entrypoint, not standalone native binaries
31
31
  Officially supported app targets and versions:
32
32
 
33
33
  - Capacitor 7 and 8 with `--target capacitor`
34
- - Expo SDK 54 and 55 with `--target expo`
34
+ - Expo SDK 54, 55, and 56 with `--target expo`
35
35
 
36
36
  Other app targets and older framework versions may work, but they are not officially supported for the moment.
37
37
 
@@ -339,7 +339,7 @@ otalan bundle --target expo --platform ios
339
339
 
340
340
  Current behavior:
341
341
 
342
- - Official support covers Capacitor 7 and 8, and Expo SDK 54 and 55
342
+ - Official support covers Capacitor 7 and 8, and Expo SDK 54, 55, and 56
343
343
  - Other app targets and older framework versions may work, but they are not officially supported for the moment
344
344
  - Capacitor packages prebuilt web assets; it does not run your app build command
345
345
  - without `--input-dir`, Capacitor checks `dist/` first and then `www/`
@@ -362,6 +362,8 @@ Runtime version defaults:
362
362
  - Expo runtimeVersion reads `--runtime-version`, Expo export metadata, or Expo config runtimeVersion policies/strings; if none are present, the CLI falls back to the selected platform Expo `version`
363
363
  - `--runtime-version` overrides auto-detection
364
364
 
365
+ Native project file parsing is best-effort. If your `Info.plist`, Xcode build settings, or Gradle files use patterns the CLI cannot read, pass `--runtime-version` explicitly.
366
+
365
367
  For Expo projects, the recommended app config is:
366
368
 
367
369
  ```json
@@ -429,6 +431,7 @@ Current behavior:
429
431
  - `--release-notes` attaches release notes to the published bundle
430
432
  - Expo publish forwards the full generated Otalan satellite manifest when present
431
433
  - Expo publish sends the generated manifest with `runtimeVersion`
434
+ - Expo manifests include the Expo config captured from `bunx expo config --json`; avoid placing secrets in Expo config fields that are not intended to be uploaded
432
435
  - Otalan validates the release ZIP before the publish completes
433
436
  - active rollouts can be paused and resumed later without changing the selected bundle
434
437
 
@@ -463,6 +466,32 @@ The ZIP is opened as a disk-backed `Bun.file` and passed directly to the returne
463
466
 
464
467
  If validation fails, `otalan publish` exits non-zero and prints the ingest failure reason when the API provides one. This makes the command safe to use directly in CI/CD pipelines.
465
468
 
469
+ ### `otalan channels`
470
+
471
+ Prints the resolved organization/project context, then lists distinct release channels for the project resolved from the configured OTA Publish Key. This command does not require `otalan init`.
472
+
473
+ ```bash
474
+ otalan channels
475
+ otalan channels --app-id com.example.app
476
+ ```
477
+
478
+ When `--app-id` is omitted in an interactive terminal, the CLI prompts for an app filter with `All` selected by default. Non-interactive runs default to `All`.
479
+
480
+ The command uses `GET /v1/releases/channels`, optionally with `?appId=...`, and prints each returned channel with the apps that use it:
481
+
482
+ ```json
483
+ {
484
+ "items": [
485
+ {
486
+ "channel": "production",
487
+ "apps": [
488
+ { "appId": "com.example.app", "name": "Example App" }
489
+ ]
490
+ }
491
+ ]
492
+ }
493
+ ```
494
+
466
495
  ### `otalan bundles`
467
496
 
468
497
  Lists remote bundles for the current app so you can choose a bundle for rollback or rollout operations.