@wix/himalaya-cli 0.998.0 → 0.1000.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
@@ -5307,6 +5307,7 @@ function walk(node, registry, path, out) {
5307
5307
  var SYSTEM_FONT_FAMILY;
5308
5308
  var init_tokens = __esm({
5309
5309
  "../../core/ts/src/tokens.ts"() {
5310
+ "use strict";
5310
5311
  SYSTEM_FONT_FAMILY = "$system";
5311
5312
  }
5312
5313
  });
@@ -5332,6 +5333,7 @@ function resolveTranslation(value, catalog, sourceCatalog) {
5332
5333
  var BINDING_SIGILS, BINDING_SIGIL_RE, TRANSLATION_PREFIX, TRANSLATION_KEY_RE;
5333
5334
  var init_bindings = __esm({
5334
5335
  "../../core/ts/src/bindings.ts"() {
5336
+ "use strict";
5335
5337
  BINDING_SIGILS = ["service", "flag", "item", "t"];
5336
5338
  BINDING_SIGIL_RE = new RegExp(
5337
5339
  `^\\$(?:${BINDING_SIGILS.filter((s) => s !== "t").join("|")})\\b|^\\$t:`
@@ -45117,19 +45119,19 @@ var init_preview_assets_generated = __esm({
45117
45119
  "../../packages/serve/src/preview-assets.generated.ts"() {
45118
45120
  init_preview_assets_format();
45119
45121
  PREVIEW_ASSET_MANIFEST = [
45120
- { key: "assets/index-CD7rJtUy.js", contentType: "application/javascript; charset=utf-8", offset: 8, length: 1006255, sha256: "1f775ada818f0f8d26665e3fb4eeff5ef99a4eb2d8dd493a0bf76e64569eef4a" },
45121
- { key: "fonts/WixMadeforDisplay-Bold.ttf", contentType: "font/ttf", offset: 1006263, length: 90924, sha256: "ec4c7d63772d980d6e147b2df6215fd2737e4b04cebe0cf7e11dc695fb63cdcf" },
45122
- { key: "fonts/WixMadeforDisplay-ExtraBold.ttf", contentType: "font/ttf", offset: 1097187, length: 90984, sha256: "bf4c16a2774edd38a921edf3099469866cd74c094fd596f3fa4e81f54a04dfaa" },
45123
- { key: "fonts/WixMadeforDisplay-Medium.ttf", contentType: "font/ttf", offset: 1188171, length: 90980, sha256: "368faca44fb9f7207e4af784e94750b1ee59c1098b8689e0f4a918926f244fb5" },
45124
- { key: "fonts/WixMadeforDisplay-Regular.ttf", contentType: "font/ttf", offset: 1279151, length: 90872, sha256: "97ed8f1a6772abe26e3d8af5cecfc4b02faa94497d585b0398b5053b739a70c1" },
45125
- { key: "fonts/WixMadeforDisplay-SemiBold.ttf", contentType: "font/ttf", offset: 1370023, length: 90980, sha256: "642feab8a48ddf6c7a89d7c2a7c0edfa0e6e773f671287e460e222703563191e" },
45126
- { key: "fonts/WixMadeforText-Bold.ttf", contentType: "font/ttf", offset: 1461003, length: 108636, sha256: "37c179b4fefb63ea9637322b84583a2df53aa226c150294eea1675c14b1b8e29" },
45127
- { key: "fonts/WixMadeforText-ExtraBold.ttf", contentType: "font/ttf", offset: 1569639, length: 109084, sha256: "62e2fe4718129f36ecdb0ae4de385bd6b81ecc876146447167c6c140fad699a9" },
45128
- { key: "fonts/WixMadeforText-Medium.ttf", contentType: "font/ttf", offset: 1678723, length: 109048, sha256: "4ecf270136af928612c76fe4ebade91d8156975e5ea4c0cf9225501dd1788e02" },
45129
- { key: "fonts/WixMadeforText-Regular.ttf", contentType: "font/ttf", offset: 1787771, length: 107700, sha256: "dee56f09fd3efc127c1ea95557edc74110c1460a46287da36e0af25efd341ef5" },
45130
- { key: "fonts/WixMadeforText-SemiBold.ttf", contentType: "font/ttf", offset: 1895471, length: 88108, sha256: "dced97a77624bc5f8b1ae65850360908297f4588e09feb6f22792d29dc7e765b" },
45131
- { key: "index.html", contentType: "text/html; charset=utf-8", offset: 1983579, length: 4448, sha256: "c1e9a6eea6af68bc7e7ae1044a9f46f5938c69b8a5998ea02c3fed7c7db5523a" },
45132
- { key: "t5-frame.html", contentType: "text/html; charset=utf-8", offset: 1988027, length: 17209, sha256: "dffc9718e2faa63ae2cc919e0a842f585ed565aaaa7c53778e90379442c731b6" }
45122
+ { key: "assets/index-DDTP2AZP.js", contentType: "application/javascript; charset=utf-8", offset: 8, length: 1006262, sha256: "a58db7c122941f1b116a9f14d311e8a7215b9f2cfa89aed7c948c894613753d9" },
45123
+ { key: "fonts/WixMadeforDisplay-Bold.ttf", contentType: "font/ttf", offset: 1006270, length: 90924, sha256: "ec4c7d63772d980d6e147b2df6215fd2737e4b04cebe0cf7e11dc695fb63cdcf" },
45124
+ { key: "fonts/WixMadeforDisplay-ExtraBold.ttf", contentType: "font/ttf", offset: 1097194, length: 90984, sha256: "bf4c16a2774edd38a921edf3099469866cd74c094fd596f3fa4e81f54a04dfaa" },
45125
+ { key: "fonts/WixMadeforDisplay-Medium.ttf", contentType: "font/ttf", offset: 1188178, length: 90980, sha256: "368faca44fb9f7207e4af784e94750b1ee59c1098b8689e0f4a918926f244fb5" },
45126
+ { key: "fonts/WixMadeforDisplay-Regular.ttf", contentType: "font/ttf", offset: 1279158, length: 90872, sha256: "97ed8f1a6772abe26e3d8af5cecfc4b02faa94497d585b0398b5053b739a70c1" },
45127
+ { key: "fonts/WixMadeforDisplay-SemiBold.ttf", contentType: "font/ttf", offset: 1370030, length: 90980, sha256: "642feab8a48ddf6c7a89d7c2a7c0edfa0e6e773f671287e460e222703563191e" },
45128
+ { key: "fonts/WixMadeforText-Bold.ttf", contentType: "font/ttf", offset: 1461010, length: 108636, sha256: "37c179b4fefb63ea9637322b84583a2df53aa226c150294eea1675c14b1b8e29" },
45129
+ { key: "fonts/WixMadeforText-ExtraBold.ttf", contentType: "font/ttf", offset: 1569646, length: 109084, sha256: "62e2fe4718129f36ecdb0ae4de385bd6b81ecc876146447167c6c140fad699a9" },
45130
+ { key: "fonts/WixMadeforText-Medium.ttf", contentType: "font/ttf", offset: 1678730, length: 109048, sha256: "4ecf270136af928612c76fe4ebade91d8156975e5ea4c0cf9225501dd1788e02" },
45131
+ { key: "fonts/WixMadeforText-Regular.ttf", contentType: "font/ttf", offset: 1787778, length: 107700, sha256: "dee56f09fd3efc127c1ea95557edc74110c1460a46287da36e0af25efd341ef5" },
45132
+ { key: "fonts/WixMadeforText-SemiBold.ttf", contentType: "font/ttf", offset: 1895478, length: 88108, sha256: "dced97a77624bc5f8b1ae65850360908297f4588e09feb6f22792d29dc7e765b" },
45133
+ { key: "index.html", contentType: "text/html; charset=utf-8", offset: 1983586, length: 4448, sha256: "65ea76642aa529b3a8f3826561ee9627fe9cde9d249abc1bba3e6a9b462ac25c" },
45134
+ { key: "t5-frame.html", contentType: "text/html; charset=utf-8", offset: 1988034, length: 17209, sha256: "dffc9718e2faa63ae2cc919e0a842f585ed565aaaa7c53778e90379442c731b6" }
45133
45135
  ];
45134
45136
  }
45135
45137
  });
Binary file
@@ -247,6 +247,49 @@ the complete decision order and examples.
247
247
  instead — the mode a CI container can satisfy. Wix employees can use `--dpx`.)
248
248
  Everything up to the push runs locally.
249
249
 
250
+ ## Optional push notifications
251
+
252
+ Interactive `himi init my-app` offers **Set up now / Later — continue building** after
253
+ creating the project, with or without a template. Missing credentials or failed setup do not
254
+ fail app creation. Use `--no-push-setup` to defer deliberately. Non-interactive runs,
255
+ `--json`, and `init --yes` do not prompt or configure push unless `--push-setup` is
256
+ explicitly supplied. Never combine `--push-setup` and `--no-push-setup`.
257
+
258
+ Resume when the customer has a Wix site and the required keys:
259
+
260
+ ```sh
261
+ himi login --browser --target wix
262
+ wix login
263
+ himi notify setup --content ./my-app --target wix
264
+ himi notify status --content ./my-app --target wix --refresh --json
265
+ ```
266
+
267
+ **Browser login alone is not sufficient for site authorization today.** Setup and status
268
+ also use the Wix CLI account credential; use the same customer account for both logins.
269
+ The CLI verifies app ownership and site access. A new app can be claimed as part of confirmed
270
+ setup. Existing public bindings are reused and the prompts collect missing values.
271
+
272
+ Supply the APNs key by local file path, its Key ID, Apple Team ID, bundle ID and environment;
273
+ align the Android application ID with Firebase. The current wizard requires APNs input and
274
+ has no separate Android-only mode. For automatic Apple signing, choose that option or use
275
+ `--apple-signing` with a separate App Store Connect key file, Key ID and Issuer ID.
276
+ Review the public plan before confirmation; agents use `--yes` only for authorized setup.
277
+ Keys are transmitted to the authenticated backend for Branded/Ping custody, not copied into
278
+ project settings or output. Enter Later to defer and continue building.
279
+
280
+ `notify status` is read-only and needs no key files; `--refresh` checks providers live.
281
+ Backend readiness does not prove notification delivery. This setup does not rewrite native
282
+ configuration, select a Ping family, build a binary, register a device or send a notification.
283
+ Continue building and publishing app content. Customer iOS push testing through `himi dist`
284
+ is blocked until the hosted build service supports customer signing keys; the current Wix-managed QA
285
+ binary cannot test the customer's saved push configuration. After an uncertain setup response, inspect status before
286
+ retrying; the CLI does not automatically repeat provisioning.
287
+
288
+ Full inputs, script flags and status meanings: `himi docs push-cli-onboarding`
289
+ (https://apps.wix.com/_api/himi-serve/docs/push-cli-onboarding.md). The guide is bundled with the public npm package
290
+ and is also served at that public URL. No repository access is required. This is notification setup; `himi push` publishes
291
+ app content. Existing `notify send|tokens|doctor` commands use the local notification server.
292
+
250
293
  ## Shipping — over the air by default, a binary only for a native delta
251
294
 
252
295
  `himi push` → `himi promote` ships screens, Tier-5 bundles, tokens and app-config in **seconds**,
@@ -268,10 +311,16 @@ Tier-5 bundle, plus tokens, app-config and the icon — so a fresh install paint
268
311
  iOS returns an **https install page** whose button carries the `itms-services:` URL (chat clients
269
312
  won't linkify that scheme, so the page is what you share); open it in Safari on the device.
270
313
 
271
- **iOS signing needs nothing from you.** The pool MINTS a provisioning profile for the app's own
314
+ **Wix-managed QA signing needs no customer signing files.** The pool MINTS a provisioning profile for the app's own
272
315
  bundle id per job — there is no profile to pre-provision and nothing to borrow. `--borrow-ios-id
273
316
  <bundleId>` still exists as an escape hatch (the binary then installs under *that* id, which is
274
317
  fine for QA and wrong for anything else), but it is rarely what you want.
318
+ For customer push credentials, the binary's Apple team, bundle ID and APNs environment must
319
+ match the saved delivery configuration. The current self-serve `himi dist` path uses Wix's
320
+ Apple team and a `com.wix.himi.<app>` bundle ID, so its QA binary cannot test customer iOS
321
+ push. `--signing byo` is not supported. Testing through `himi dist` must wait for the hosted build service
322
+ to support customer signing keys. Notification setup can verify backend configuration now,
323
+ but does not make a matching customer-signed build available.
275
324
 
276
325
  **Android signing needs nothing either.** `--android-signing` defaults to `qa-keystore` — the
277
326
  repo's committed QA key, identical on every pool machine, so a new build installs *over* the last
package/guides/index.json CHANGED
@@ -279,6 +279,12 @@
279
279
  "title": "QA builds — an installable IPA/APK + install link",
280
280
  "category": "CLI & Loop",
281
281
  "file": "qa-builds.md"
282
+ },
283
+ {
284
+ "id": "push-cli-onboarding",
285
+ "title": "Push notifications — optional setup and readiness checks",
286
+ "category": "CLI & Loop",
287
+ "file": "push-cli-onboarding.md"
282
288
  }
283
289
  ],
284
290
  "componentReferenceFile": "component-reference.json",
@@ -0,0 +1,101 @@
1
+ # Customer push setup with the Himi CLI
2
+
3
+ Create an app with `himi init liftgear`. In a terminal, Himi offers **Set up now** or
4
+ **Later — continue building** after the scaffold is created. A skipped or failed push
5
+ setup does not fail app creation. This works with and without a template.
6
+
7
+ - `--no-push-setup` records a deliberate deferral.
8
+ - Non-interactive runs, `--json`, and `init --yes` do not prompt or provision push.
9
+ - `--push-setup` explicitly requests the setup flow after creation.
10
+ - Resume with `himi notify setup --content ./liftgear --target wix`.
11
+
12
+ ## Authentication
13
+
14
+ The existing server requires two different credentials on both setup and status:
15
+
16
+ 1. A Himi owner control token, obtained through `himi login --browser --target wix`
17
+ or the supported Wix login flow.
18
+ 2. A Wix account credential obtained through the Wix CLI (`wix login`, then Himi
19
+ invokes `wix token`). Use the same customer account as the Himi app owner.
20
+
21
+ **Browser login alone is not sufficient for site authorization today.** The command
22
+ reports `wix_account_token_required` before opening key files or making setup requests
23
+ when the second credential is unavailable. It does not substitute an employee credential
24
+ or bypass site ownership. A browser-only site-authorization exchange is separate backend
25
+ work; this CLI does not implement one. Customers can continue building while setup is deferred.
26
+
27
+ ## Configure now
28
+
29
+ Interactive setup asks for missing site/native identifiers and paths to local key files.
30
+ Choose push only, or push plus automatic Apple signing. Enter `Later` at any question
31
+ to defer. The CLI displays the public setup plan before asking for confirmation.
32
+
33
+ For an agent or script, supply the values and approve the displayed plan with `--yes`:
34
+
35
+ ```sh
36
+ himi notify setup --content ./liftgear --target wix \
37
+ --site <metaSiteId> \
38
+ --ios-bundle-id com.examplecustomer.liftgear \
39
+ --android-package-name com.examplecustomer.liftgear.android \
40
+ --apns-key-file /private/path/AuthKey.p8 \
41
+ --apns-key-id <keyId> --apple-team-id <teamId> \
42
+ --apns-environment production --yes --json
43
+ ```
44
+
45
+ The APNs environment must match the signed app. The Android package must match its
46
+ Firebase client configuration; it need not equal the iOS bundle ID. Existing public
47
+ bindings come from `provisioning.json`; flags override them. Keep the build configuration
48
+ aligned with the selections. This command does not rewrite `config.ts` or build a binary.
49
+
50
+ To also request Apple signing resources, add `--apple-signing`, `--asc-key-file`,
51
+ `--asc-key-id`, and `--asc-issuer-id`. The App Store Connect key is separate from the
52
+ APNs delivery key. The CLI calls the existing server provisioning flow; it does not
53
+ create certificates directly or select a signing method for `himi dist`.
54
+
55
+ The CLI verifies app ownership and site access before sending keys. A new app claim
56
+ requires the same setup confirmation and is checked again after claiming. The server
57
+ then performs Branded registration, push credential provisioning and Ping verification,
58
+ plus Apple signing if requested.
59
+
60
+ Keys are read from local files and sent to the selected, authenticated serve endpoint.
61
+ Branded/Ping retain the credentials needed for their operations. The CLI does not copy
62
+ keys or key-file paths into project configuration, onboarding records, or output.
63
+ Public selections and deferral progress live under `.himi/push-onboarding.json`, excluded
64
+ from published source archives. A local record never proves backend readiness.
65
+
66
+ ## Read status
67
+
68
+ ```sh
69
+ himi notify status --content ./liftgear --target wix --json
70
+ himi notify status --content ./liftgear --target wix --refresh --json
71
+ ```
72
+
73
+ Status is read-only and needs no Apple key files. `--refresh` requests live provider
74
+ checks. The output separates the saved setup state, backend configuration readiness,
75
+ Apple signing readiness, native build, Himi routing and device delivery. A server that
76
+ cannot provide live verification is reported as `live_verification_unavailable`.
77
+
78
+ A setup response of HTTP 202 may mean `needs_attention`, not a running background job.
79
+ After a timeout the CLI reads status once and reports an uncertain submission; it never
80
+ repeats the provisioning POST automatically. Inspect status before retrying.
81
+
82
+ After setup, continue normal app development, validation, publish/preview/promote and
83
+ native distribution. Native push configuration, member authentication, device-token
84
+ registration and a delivery/tap test are still required. This command does not enable
85
+ native capabilities, choose a Ping family, send notifications or verify phone delivery.
86
+
87
+ **Customer iOS push testing through `himi dist` is not available yet.** The current
88
+ Wix-managed QA build uses Wix's Apple team and a `com.wix.himi.<app>` bundle ID, which
89
+ do not match the customer's saved push configuration. `--signing byo` is unsupported.
90
+ Testing through `himi dist` must wait for the hosted build service to support customer signing keys.
91
+ Backend setup and verification can proceed now; they do not prove device delivery.
92
+
93
+ `himi notify send|tokens|doctor` keep their existing local admin-server behavior; they
94
+ are separate from the backend `setup|status` commands.
95
+
96
+ If ownership cannot be verified, stderr includes a `push_ownership_check_failed` event
97
+ with the failing check (`list_apps` or `app_role`), endpoint path and HTTP status.
98
+ It excludes credentials, query parameters and response bodies. A `404` does not prove
99
+ that the app is missing: serve can hide a route when its origin guard rejects the request.
100
+ The CLI sends the pinned issuer's `Origin` on the collaborator read; the server still
101
+ validates the owner token and checks the app's ownership record.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/himalaya-cli",
3
- "version": "0.998.0",
3
+ "version": "0.1000.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": "5ebc9c2a8de3fd169d9b17811f10f0d83ae07430d18ea0c242214539"
68
+ "falconPackageHash": "519641ffda704c66d21d2a3cde931411fcd450f37795d9941d1cb0a9"
69
69
  }