@lionrapid/cli 0.1.2 → 0.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/CHANGELOG.md ADDED
@@ -0,0 +1,52 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@lionrapid/cli`. Format based on
4
+ [Keep a Changelog](https://keepachangelog.com/); this package follows semver.
5
+
6
+ ## 0.1.2 — 2026-06-26
7
+
8
+ Hardening from end-to-end validation against the live backend.
9
+
10
+ ### Fixed
11
+
12
+ - **Retry `sync already_processing`.** The backend serializes sync jobs per
13
+ project and returns `404 SYNC_JOB_NOT_FOUND / already_processing` while a prior
14
+ sync is still running. `push`/`scan --push` now retry that case with backoff
15
+ instead of failing — so a CI that re-pushes no longer errors out. A normal 404
16
+ still fails immediately.
17
+ - **Guard `push --target <locale>`.** `targets/batch` silently accepts any target
18
+ locale, so a typo (`--target sp`, `en-US`) would create orphan draft rows. The
19
+ CLI now requires the target to be one of your `lionrapid.yml` `targetLocales`.
20
+
21
+ ## 0.1.1 — 2026-06-25
22
+
23
+ ### Fixed
24
+
25
+ - **The `lionrapid` binary did nothing when run as a command.** The entry guard
26
+ compared `import.meta.url` to a raw `file://${process.argv[1]}`, which never
27
+ matched because npm installs the bin as a symlink — so `0.1.0` exited silently
28
+ unless invoked as `node dist/cli.js`. Resolved with `realpathSync`.
29
+ **Upgrade from 0.1.0.**
30
+
31
+ ## 0.1.0 — 2026-06-25
32
+
33
+ Initial public release — the non-web integration wedge (mobile, backend,
34
+ static sites, CI).
35
+
36
+ ### Added
37
+
38
+ - Commands: `init`, `push` (`--target`, `--dry-run`), `pull` (`--types`,
39
+ `--dry-run`), `validate` (`--ci`), `types generate|check` (`--server`),
40
+ `scan` (`--json`, `--push`), `snapshot`, `doctor`.
41
+ - Format adapters: JSON, YAML, PO (plurals + `msgctxt`), Flutter `.arb`, iOS
42
+ `.strings` + `.xcstrings`, Android `strings.xml`, XLIFF (1.2/2.0).
43
+ - Resilience + automation: retries/backoff with `429`/`Retry-After`
44
+ (`LIONRAPID_RETRIES`), a `--json` envelope contract on every command, a stable
45
+ exit-code taxonomy, concurrent `pull` (`LIONRAPID_CONCURRENCY`), multi-namespace
46
+ mapping, and offline-resilience `snapshot` bundles.
47
+ - Typed `lionrapid.yml` config; API key from `LIONRAPID_API_KEY` or
48
+ `~/.lionrapid/credentials` (never committed). Reuses `@lionrapid/core` for
49
+ content-hash `auto_key` parity with the web stack.
50
+
51
+ > ⚠️ **Known issue:** the `lionrapid` binary is a no-op when installed via npm
52
+ > (see 0.1.1). Use **0.1.1 or later**.
package/README.md CHANGED
@@ -10,6 +10,10 @@ surfaces (WordPress, edge proxy, JS snippet, React SDK) can't — mobile apps,
10
10
  backend services, static-site generators, and CI/CD — by speaking the existing
11
11
  `/api/integrations/*` REST surface instead of the DOM.
12
12
 
13
+ **New here?** Start with the
14
+ [Getting Started guide](../../docs/cli-getting-started.md) (install → init → push
15
+ → translate → pull), then use this README as the reference.
16
+
13
17
  ## Status
14
18
 
15
19
  Phase 1 (file-sync dev-loop) is implemented. Command surface:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lionrapid/cli",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "LionRapid CLI — sync translation files (iOS, Android, Flutter, JSON, YAML, PO) with the LionRapid backend",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -41,7 +41,8 @@
41
41
  },
42
42
  "files": [
43
43
  "dist",
44
- "README.md"
44
+ "README.md",
45
+ "CHANGELOG.md"
45
46
  ],
46
47
  "engines": {
47
48
  "node": ">=18.0.0"