@wix/himalaya-cli 0.1059.0 → 0.1061.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/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/dev-server/src/app-config.d.ts +11 -4
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/sdk/wix-platform/src/index.d.ts +3 -1
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/wix-platform.mjs +3 -8
- package/dist/cli.mjs +992 -542
- package/guides/headless-loop.md +6 -1
- package/guides/himi-test.md +17 -0
- package/guides/sdk-reference.json +1 -1
- package/guides/wix-platform-usage.md +14 -9
- package/package.json +2 -2
- package/templates/surface-showcase/dev/index.ts +3 -1
package/guides/headless-loop.md
CHANGED
|
@@ -104,7 +104,12 @@ press Replay for a thirty-second making-of, checks included — pop the live pho
|
|
|
104
104
|
always-on-top window, and show the owner their website next to their app the moment the brand lands.
|
|
105
105
|
To put the preview on the owner's phone, run `himi run --watch --lan` instead: it prints a QR (and
|
|
106
106
|
the board shows one) that a phone on the same Wi-Fi opens as the real app, full screen, repainting as
|
|
107
|
-
you edit. Say that anyone on that network can open it; it is read-only.
|
|
107
|
+
you edit. Say that anyone on that network can open it; it is read-only. The board also draws the app
|
|
108
|
+
map while `himi test` crawls — every screen, how they link, the entries (tab bar and menu), what nothing
|
|
109
|
+
was seen linking to, and links to screens that do not exist — and each `--watch` rebuild says what it
|
|
110
|
+
changed (the text, the component, the token, "logic changed" for a worker-only edit), on the board and
|
|
111
|
+
in its `{"watch":"rebuilt"}` line. Check the map before handover: an unreached screen or a broken
|
|
112
|
+
link is a gap to close or to name. `himi test` writes one PNG per
|
|
108
113
|
screen to `.himi/shots/` on every run, so take the new screens from there instead of rendering each
|
|
109
114
|
one again; a bare `--png` on `himi render` writes `.himi/shots/<id>.png`. `himi progress` copies each image into `.himi/history/`
|
|
110
115
|
as it was when you journaled it, so a later render cannot change what the record says the owner saw;
|
package/guides/himi-test.md
CHANGED
|
@@ -202,6 +202,23 @@ every run; record against a **QA site**, never production. See
|
|
|
202
202
|
Every run prints a machine envelope with `--json`. Findings are source-mapped to the line
|
|
203
203
|
you edit; the gap ledger routes you to whatever the crawl couldn't prove.
|
|
204
204
|
|
|
205
|
+
It also carries `navGraph`, the app's navigation as the crawl saw it, which the build board
|
|
206
|
+
draws as its **App map** and fills in while the crawl runs:
|
|
207
|
+
|
|
208
|
+
- `screens` — every declared screen: `entry` (the home screen, or a screen the navigation chrome
|
|
209
|
+
opens: a tab bar, drawer or sidebar item, a drawer or sidebar header or its actions, a hosted content
|
|
210
|
+
screen, a default top-bar action), `reached` (walkable from an entry over every link seen),
|
|
211
|
+
`status` (`ok`, `failed`, `skipped`), and `unfollowed`, the links on it whose target the crawl could
|
|
212
|
+
not resolve (bound to list data with no row, or to a value the boot state lacks);
|
|
213
|
+
- `edges` — every link seen, one per pair, not only the ones `edges` then followed; a link to an
|
|
214
|
+
instance of a linkable screen (`program_prog-1`) is a link to that screen. The list stops at 600;
|
|
215
|
+
`edgesDropped` counts the rest, which `reached` still walked;
|
|
216
|
+
- `broken` — links to a target that is neither a baked nor a linkable screen, judged exactly like the
|
|
217
|
+
`nav-target-missing` check (and, like it, never without the app's linkable screens);
|
|
218
|
+
- `unreached` and `unfollowed` — read them together: with no unfollowed links an unreached screen has
|
|
219
|
+
nothing leading to it; with some, it may be opened from list data, so name it as unverified rather
|
|
220
|
+
than dead.
|
|
221
|
+
|
|
205
222
|
```jsonc
|
|
206
223
|
{
|
|
207
224
|
"ok": false, // exit 1
|
|
@@ -3475,7 +3475,7 @@
|
|
|
3475
3475
|
"name": "i18n",
|
|
3476
3476
|
"kind": "const",
|
|
3477
3477
|
"jsdoc": "",
|
|
3478
|
-
"decl": "export const i18n = {\n /** Resolve a translation key for the current locale; `fallback` (or the key)\n * when unknown.
|
|
3478
|
+
"decl": "export const i18n = {\n /** Resolve a translation key for the current locale; `fallback` (or the key)\n * when unknown. Always the native seam: `/_api/translations-server/v1/translation/<key>`\n * has no route on any Wix host a himi app reaches (the same 404 as a made-up path, with or\n * without a token), so `real.i18n` no longer sends it anywhere — it only ever 404ed. */\n async t(key: string, fallback?: string): Promise<string> {\n const r = await call<{ value?: string }>(\"i18nTranslate\", { key, fallback: fallback ?? key });\n return r?.value ?? fallback ?? key;\n },\n /** Current resolved UI locale (2-letter). */\n async locale(): Promise<string> {\n const r = await call<{ locale?: string }>(\"i18nLocale\");\n return r?.locale ?? \"en\";\n },\n};"
|
|
3479
3479
|
},
|
|
3480
3480
|
{
|
|
3481
3481
|
"name": "PingRegistration",
|
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
**platform-agnostic** — the same JS runs on iOS, Android, macOS and web, with **one documented
|
|
5
5
|
exception**: on web, `auth.signIn()` rejects rather than resolving (see
|
|
6
6
|
[Real vs dev seam](#real-vs-dev-seam-and-best-effort) below). Each
|
|
7
|
-
member dispatches to the native `wix_platform` capability (with an on-device dev seam)
|
|
8
|
-
and
|
|
9
|
-
([opt-in guide](wix-platform-opt-in.md))
|
|
7
|
+
member dispatches to the native `wix_platform` capability (with an on-device dev seam);
|
|
8
|
+
`bi`, `monitoring`, `session` and `auth` take their real backend when the app enables them
|
|
9
|
+
([opt-in guide](wix-platform-opt-in.md)), while `experiments` / `flags` always read the app's
|
|
10
|
+
served flags and `i18n`, `ping` and `deeplink` always answer from the seam. This is the authoritative reference for
|
|
10
11
|
*calling* the members; source of truth is `core/sdk/wix-platform/src/index.ts` +
|
|
11
12
|
[RFC 0042](../core/schema/RFC/0042-wix-platform-sdk.md).
|
|
12
13
|
|
|
@@ -63,12 +64,16 @@ await monitoring.captureError("thing failed", { code: "E1" });
|
|
|
63
64
|
|
|
64
65
|
- With no `wixPlatform.real.<member>`, a member returns the **dev seam** (deterministic
|
|
65
66
|
on-device value; no network). `isMemberReal(member)` reflects the flag.
|
|
66
|
-
- With `real.<member> = true`, REST-shaped
|
|
67
|
-
|
|
68
|
-
falls back to the seam value
|
|
69
|
-
(`
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
- With `real.<member> = true`, the one REST-shaped member that still has a reachable Wix
|
|
68
|
+
route takes it: `auth.signedInstance` mints through the real `wixApi` chokepoint. That is
|
|
69
|
+
**best-effort**: a failure falls back to the seam value, so feature-gating stays correct
|
|
70
|
+
either way. Every method returns a resolved value (or `null`) — never throws on a Wix
|
|
71
|
+
error — so a worker never crashes on the SDK.
|
|
72
|
+
- `real` does nothing for the rest. `experiments` / `flags` always answer from the app's
|
|
73
|
+
served flags (`GET /v1/flags/<app>/assignments`, set with `himi flags`), never Wix Petri;
|
|
74
|
+
`i18n`, `ping` and `deeplink` have no Wix route a himi app can reach (a 404 with or without
|
|
75
|
+
a token), so they always answer from the seam and `real.i18n` / `real.ping` /
|
|
76
|
+
`real.deeplink` are ignored.
|
|
72
77
|
- `bi`, `monitoring`, and `auth` route through their native backends (Frog sink, Sentry
|
|
73
78
|
sink, `WixNativeAuthProvider`) rather than raw `wixApi`, but the calling contract is
|
|
74
79
|
identical — **except `auth.signIn()` on web**, below.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/himalaya-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1061.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "himi — the Himalaya authoring CLI. Build a Tier-5 content package on your own machine, push it to the production serve as a draft, preview it on web + Himi Player, and read worker logs back — the remote dev loop. Wraps @himalaya/serve-cli for transport.",
|
|
6
6
|
"keywords": [
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"artifactId": "himalaya-cli"
|
|
66
66
|
}
|
|
67
67
|
},
|
|
68
|
-
"falconPackageHash": "
|
|
68
|
+
"falconPackageHash": "b243ee9fc8a6a890b9210aa28588552b0722079d8481a0e61fb76869"
|
|
69
69
|
}
|