@wix/himalaya-cli 0.1215.0 → 0.1217.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/cli.mjs +10 -1
- package/guides/push-cli-onboarding.md +14 -3
- package/guides/qa-builds.md +18 -12
- package/package.json +2 -2
package/dist/cli.mjs
CHANGED
|
@@ -25393,6 +25393,7 @@ function shouldRevealError(args) {
|
|
|
25393
25393
|
var EMAIL_RE, URL_HOST_RE, INTEGER_RE, NUMBER_RE;
|
|
25394
25394
|
var init_validation = __esm({
|
|
25395
25395
|
"../../core/ts/src/validation.ts"() {
|
|
25396
|
+
"use strict";
|
|
25396
25397
|
EMAIL_RE = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)*\.[A-Za-z]{2,}$/;
|
|
25397
25398
|
URL_HOST_RE = /^[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)*(:[0-9]+)?$/;
|
|
25398
25399
|
INTEGER_RE = /^[+-]?[0-9]+$/;
|
|
@@ -26052,6 +26053,7 @@ function validateWorkerSubtree(raw, slotId, policy, actionCatalog) {
|
|
|
26052
26053
|
var WORKER_SUBTREE_CEILINGS, ID_PART, ACTION_ID;
|
|
26053
26054
|
var init_worker_subtree = __esm({
|
|
26054
26055
|
"../../core/ts/src/worker-subtree.ts"() {
|
|
26056
|
+
"use strict";
|
|
26055
26057
|
init_worker_subtree_safe_types_generated();
|
|
26056
26058
|
WORKER_SUBTREE_CEILINGS = Object.freeze({
|
|
26057
26059
|
maxEncodedBytes: 65536,
|
|
@@ -66909,10 +66911,17 @@ var init_push_send = __esm({
|
|
|
66909
66911
|
}
|
|
66910
66912
|
});
|
|
66911
66913
|
|
|
66914
|
+
// ../../core/ts/src/push-routes.ts
|
|
66915
|
+
var init_push_routes = __esm({
|
|
66916
|
+
"../../core/ts/src/push-routes.ts"() {
|
|
66917
|
+
}
|
|
66918
|
+
});
|
|
66919
|
+
|
|
66912
66920
|
// ../../core/serve-control/src/push-send-service.ts
|
|
66913
66921
|
var PUSH_SEND_ERROR_CODES, PushSendError;
|
|
66914
66922
|
var init_push_send_service = __esm({
|
|
66915
66923
|
"../../core/serve-control/src/push-send-service.ts"() {
|
|
66924
|
+
init_push_routes();
|
|
66916
66925
|
PUSH_SEND_ERROR_CODES = [
|
|
66917
66926
|
"unauthorized",
|
|
66918
66927
|
"token_revoked",
|
|
@@ -67295,7 +67304,7 @@ var init_notify_ping = __esm({
|
|
|
67295
67304
|
member_not_found: "Use the login email of an approved member of this site.",
|
|
67296
67305
|
member_ambiguous: "More than one member has this login email; resolve it in the site's Members.",
|
|
67297
67306
|
member_not_active: "The member must be approved before they can be notified.",
|
|
67298
|
-
link_not_routable: "Link to a screen this app's published release ships, e.g. <scheme>://screen/<screenId>?id=\u2026.",
|
|
67307
|
+
link_not_routable: "Link to a screen this app's published release ships, e.g. <scheme>://screen/<screenId>?id=\u2026, or a Wix link one of its push.routes translates.",
|
|
67299
67308
|
forbidden_site: "The Wix account from wix login must own this site.",
|
|
67300
67309
|
site_token_invalid: "Run wix login as the site owner; the site token must belong to the app owner's account.",
|
|
67301
67310
|
ping_permission_denied: "Himi Serve is not permitted to send through Ping; this is a platform issue, not your setup."
|
|
@@ -246,11 +246,22 @@ Before anything is sent, the server checks:
|
|
|
246
246
|
- that push setup is `ready` for this app on this site;
|
|
247
247
|
- that the link opens a screen the app's live release ships, using the app's exact scheme and
|
|
248
248
|
either a linkable `screen/<id>` or a deep-link pattern (a device on a different rollout ring
|
|
249
|
-
may have a different set of screens)
|
|
249
|
+
may have a different set of screens). A **Wix link** (`wix:/…`, `https://www.wix.app/…`,
|
|
250
|
+
`https://manage.wix.app/…`, `https://m-<msid>.branded.wix.app/…`) passes when one of the app's
|
|
251
|
+
`push.routes` translates it to such a screen and it names no other site — the same translation
|
|
252
|
+
a tap runs on the device. A link a route conditioned on a Ping `templateId` or `topic` matches is
|
|
253
|
+
refused, because the device picks that route from payload fields the check cannot see. That is how to test a route with the link Wix itself would send;
|
|
250
254
|
- that exactly one approved member has that login email.
|
|
251
255
|
|
|
252
256
|
`--dry-run` runs every check and sends nothing. The link is forwarded exactly as given, query
|
|
253
|
-
string included
|
|
257
|
+
string included — a Wix link reaches the device as the Wix link, and the app translates it on tap:
|
|
258
|
+
|
|
259
|
+
```sh
|
|
260
|
+
himi notify send --provider ping --target wix --content ./liftgear \
|
|
261
|
+
--member-email member@example.com --title 'Your order shipped' \
|
|
262
|
+
--link 'wix:/my-account/<siteId>/stores/orders/<orderId>' --dry-run
|
|
263
|
+
```
|
|
264
|
+
A private screen is allowed; the app's login gate still applies when tapped.
|
|
254
265
|
|
|
255
266
|
To notify **every approved member** of the site, use `--all-members` in place of
|
|
256
267
|
`--member-email`:
|
|
@@ -300,7 +311,7 @@ link, is a new notification.
|
|
|
300
311
|
| --- | --- |
|
|
301
312
|
| `push_not_ready` | Run `himi notify setup` for this app and site first. |
|
|
302
313
|
| `member_not_found` / `member_ambiguous` / `member_not_active` | Use the login email of one approved site member. |
|
|
303
|
-
| `link_not_routable` | The link's scheme or screen is not in the published release. |
|
|
314
|
+
| `link_not_routable` | The link's scheme or screen is not in the published release, or a Wix link matches none of the app's `push.routes` (or names another site). |
|
|
304
315
|
| `forbidden_site` / `site_token_invalid` | Both Wix logins must belong to the site owner. |
|
|
305
316
|
| `rate_limited` | Wait `retry-after` seconds; test sends are limited per owner. |
|
|
306
317
|
|
package/guides/qa-builds.md
CHANGED
|
@@ -44,8 +44,9 @@ The Mac archive, provisioning request, and release notification use the same der
|
|
|
44
44
|
Android keeps its normal, account-neutral application ID.
|
|
45
45
|
|
|
46
46
|
This pipeline produces QA builds **on demand**, **without any GitHub secrets** —
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
the commit-triggered path folds into Falcon's Argus Job Service job: Mac for iOS,
|
|
48
|
+
Linux for Android. Brokered `himi dist` jobs use Mac workers for iOS and Android.
|
|
49
|
+
CI credentials come from the Falcon databag; iOS signing certs are already on the Mac
|
|
49
50
|
machines. It's modeled on `wix-private/ai-scheduling-assistant` `native-apps/scripts/ci-ios.sh`
|
|
50
51
|
+ the `wix-private/mre` S3/distributer infra.
|
|
51
52
|
|
|
@@ -55,14 +56,16 @@ NATIVE delta: a new SDUI component, a newly declared capability or entitlement,
|
|
|
55
56
|
bundle id, or a `minBinaryVersion` floor bump. If you are unsure which you need, you
|
|
56
57
|
almost certainly want `himi push`.
|
|
57
58
|
|
|
58
|
-
###
|
|
59
|
+
### Legacy standalone Mac dispatch retries
|
|
59
60
|
|
|
60
61
|
The pool bootstraps before it runs anything of ours (sandbox volume, home dir, then
|
|
61
62
|
`npm i` of its own helpers from the internal registry). When that registry is degraded the
|
|
62
|
-
job dies in 44s–150s, long before any compile.
|
|
63
|
-
fast as infrastructure and **re-dispatches,
|
|
63
|
+
job dies in 44s–150s, long before any compile. For legacy standalone Apple commands,
|
|
64
|
+
`run-native-mac.mjs` treats a failure that fast as infrastructure and **re-dispatches,
|
|
65
|
+
up to 3 attempts**, logging the details each
|
|
64
66
|
time. A failure slow enough to have reached real work is never retried — that one is
|
|
65
|
-
yours, and it fails immediately at full speed.
|
|
67
|
+
yours, and it fails immediately at full speed. Apple batch and Android dispatches run
|
|
68
|
+
once, so this retry policy does not replay their work.
|
|
66
69
|
|
|
67
70
|
## Two ways to trigger one
|
|
68
71
|
|
|
@@ -76,9 +79,10 @@ There are two paths to the same artifact. Pick by whether you have the repo.
|
|
|
76
79
|
| Result arrives | job id → poll → install link | PR comment / Slack DM / build log |
|
|
77
80
|
| Good for | an off-repo developer or coding agent | a change you are already pushing |
|
|
78
81
|
|
|
79
|
-
Both
|
|
80
|
-
|
|
81
|
-
for
|
|
82
|
+
Both run `tools/mobile-dist/run-dist.ts`. Brokered requests use the Wix Job Service
|
|
83
|
+
Mac pool for either platform; tagged commits use the validation job's pool (Mac for iOS,
|
|
84
|
+
Linux for Android). The brokered path replaces "push a commit and wait for Falcon"
|
|
85
|
+
with "ask the serve plane".
|
|
82
86
|
|
|
83
87
|
## Path A — `himi dist` (no repo needed)
|
|
84
88
|
|
|
@@ -466,14 +470,15 @@ git commit --allow-empty -m "[dist] QA build"
|
|
|
466
470
|
git push
|
|
467
471
|
```
|
|
468
472
|
|
|
469
|
-
Falcon rebuilds, the Argus
|
|
473
|
+
Falcon rebuilds, the platform's Argus job sees the tag, and folds the QA build in
|
|
470
474
|
(next section). The install link lands in the build log and, when a PR token is
|
|
471
475
|
available, as a **PR comment**. The **`/dist-himalaya-app`** skill automates the
|
|
472
476
|
whole loop (empty commit → PR → watch Falcon → hand back the link).
|
|
473
477
|
|
|
474
478
|
## How it runs: folded into the warm Argus job (build once)
|
|
475
479
|
|
|
476
|
-
The QA build runs **inside the same
|
|
480
|
+
The QA build runs **inside the same Job Service job as the Argus run** (Mac for iOS,
|
|
481
|
+
Linux for Android; `native-ci`
|
|
477
482
|
`run-argus.mjs` → `tools/mobile-dist/run-dist.ts`), so it reuses that already-warm
|
|
478
483
|
machine — no second dispatch, no cold checkout/SPM-resolve:
|
|
479
484
|
|
|
@@ -1230,5 +1235,6 @@ operator smoke: `himi dist --app <app> --platform android --release <id> --wait`
|
|
|
1230
1235
|
manifest/link). Unit-tested in `dist-lib.test.ts`.
|
|
1231
1236
|
- `tools/mobile-dist/run-dist.ts` — the orchestrator (creds → build/sign → S3 →
|
|
1232
1237
|
presign → OTA link → PR comment). Non-fatal by contract.
|
|
1233
|
-
- `native-ci/scripts/run-argus.mjs` — folds `run-dist` into the Argus Mac
|
|
1238
|
+
- `native-ci/scripts/run-argus.mjs` — folds `run-dist` into the Argus job (Mac for iOS,
|
|
1239
|
+
Linux for Android).
|
|
1234
1240
|
- `apps/<app>/ios/fastlane/Fastfile` — the env-driven `dist` lane (enterprise export).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/himalaya-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1217.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": [
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"artifactId": "himalaya-cli"
|
|
68
68
|
}
|
|
69
69
|
},
|
|
70
|
-
"falconPackageHash": "
|
|
70
|
+
"falconPackageHash": "792d624fe9e25410a3d851724ce7ec7a347ca4b00f93c526e46095ef"
|
|
71
71
|
}
|