@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 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. A private screen is allowed; the app's login gate still applies when tapped.
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
 
@@ -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
- everything runs through the same Falcon → Job Service Mac-pool wiring the Argus run
48
- uses, with credentials from the Falcon databag and signing certs already on the pool
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
- ### If a Mac leg fails in under ~4 minutes, it is probably not your change
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. `run-native-mac.mjs` treats a failure that
63
- fast as infrastructure and **re-dispatches, up to 3 attempts**, logging the details each
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 end up on the same Wix Job Service Mac pool running the same
80
- `tools/mobile-dist/run-dist.ts`. The brokered path just replaces "push a commit and wait
81
- for Falcon" with "ask the serve plane".
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 Mac-pool job sees the tag, and folds the QA build in
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 Mac-pool job as the Argus run** (`native-ci`
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-pool job.
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.1215.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": "ba6e51d93c561edb1aa2de10154bdd5848f7cb971441ea81f6876de7"
70
+ "falconPackageHash": "792d624fe9e25410a3d851724ce7ec7a347ca4b00f93c526e46095ef"
71
71
  }