@wix/himalaya-cli 0.1597.0 → 0.1599.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/sdk/legacy-import/src/index.d.ts +30 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/sdk/sdk-types/src/capabilities.generated.d.ts +2 -1
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/sdk/webview-page/src/capabilities.generated.d.ts +2 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/ts/src/define-app.d.ts +12 -1
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/core/ts/src/legacy-import.d.ts +134 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/audio-record.mjs +1 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/calendar.mjs +1 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/calls.mjs +1 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/contacts.mjs +1 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/core.mjs +184 -16
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/legacy-import.mjs +40 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/location.mjs +1 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/motion.mjs +1 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/photos.mjs +1 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/sdk-types.mjs +1 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/tasks.mjs +1 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/package.json +4 -0
- package/dist/cli.mjs +641 -510
- package/dist/preview-assets.generated.bin +0 -0
- package/guides/app-config.md +1 -1
- package/guides/capabilities.md +1 -0
- package/guides/importable-sdks.md +1 -0
- package/guides/qa-builds.md +43 -1
- package/guides/sdk-reference.json +43 -0
- package/guides/web-page-native-sdk.md +1 -1
- package/guides/web-page-sdk-reference.md +1 -0
- package/package.json +2 -2
|
Binary file
|
package/guides/app-config.md
CHANGED
|
@@ -137,7 +137,7 @@ does not include answers `module_not_linked` on device. Some components need one
|
|
|
137
137
|
and `himi validate` errors on a screen that uses one the app does not declare.
|
|
138
138
|
`presigned_upload.putFile` also requires `files` on the calling screen.
|
|
139
139
|
|
|
140
|
-
App-level capability vocabulary: `camera`, `barcode_scanner`, `biometrics`, `secure_storage`, `share`, `push`, `file_picker`, `files`, `open_url`, `pdf`, `clipboard`, `theme`, `l10n`, `photos`, `presigned_upload`, `ui`, `calendar`, `contacts`, `tasks`, `audio_record`, `audio_record_background`, `calls`, `location`, `location_background`, `motion`, `health`, `media_playback`, `webview`, `browser_auth`, `haptic`, `himi_apps`, `iap`, `keyboard`, `torch`, `network`, `wix_cashier`, `wix_chat`, `live_activity`, `local_database`, `speech`, `speaker_diarization`, `system_intents`, `on_device_ai`, `app_info`, `release_control`, `godot`, `base44`, `animation`.
|
|
140
|
+
App-level capability vocabulary: `camera`, `barcode_scanner`, `biometrics`, `secure_storage`, `share`, `push`, `file_picker`, `files`, `open_url`, `pdf`, `clipboard`, `theme`, `l10n`, `photos`, `presigned_upload`, `ui`, `calendar`, `contacts`, `tasks`, `audio_record`, `audio_record_background`, `calls`, `location`, `location_background`, `motion`, `health`, `media_playback`, `webview`, `browser_auth`, `haptic`, `himi_apps`, `iap`, `keyboard`, `torch`, `network`, `wix_cashier`, `wix_chat`, `live_activity`, `local_database`, `speech`, `speaker_diarization`, `system_intents`, `on_device_ai`, `app_info`, `release_control`, `legacy_import`, `godot`, `base44`, `animation`.
|
|
141
141
|
|
|
142
142
|
## What `himi validate` checks (7 passes)
|
|
143
143
|
|
package/guides/capabilities.md
CHANGED
|
@@ -278,6 +278,7 @@ prompt.
|
|
|
278
278
|
| `app_info` | the shell's boot has to configure it with the app id it reports |
|
|
279
279
|
| `system_intents` | the shell has to wire the system-intents host (app identity, deep-link routing, refresh) |
|
|
280
280
|
| `release_control` | the shell's boot has to configure it with the app id whose releases it switches |
|
|
281
|
+
| `legacy_import` | the shell's boot has to run the legacy importer before auth and feed it the signed-in principal |
|
|
281
282
|
| `base44` | the shell's boot has to bind the Base44 app it talks to; the module links, the binding is the shell's |
|
|
282
283
|
| `godot` | needs the shell's game surface view and, on Android, the shell's pick of the engine's C++ runtime |
|
|
283
284
|
|
|
@@ -40,6 +40,7 @@ package in one greppable file) or `GET /v1/sdk/<name>` over HTTP; in the CLI,
|
|
|
40
40
|
- `@himalaya/keyboard` — Tier-5 typed binding for the platform's keyboard capability.
|
|
41
41
|
- `@himalaya/kyber-api` — narrow Tier-5 binding for Kyber BO HTTP calls.
|
|
42
42
|
- `@himalaya/l10n` — synchronous app-catalog copy (SDK foundation; requires host integration).
|
|
43
|
+
- `@himalaya/legacy-import` — Tier-5 typed binding for the one-time legacy import report.
|
|
43
44
|
- `@himalaya/live-activity` — Tier-5 typed binding to the platform's Live Activity capability.
|
|
44
45
|
- `@himalaya/local-db` — Tier-5 typed binding to the platform's local-database capability: a per-entity on-device store (EntityStore) + an offline WriteQueue, so a worker bundle can persist and query real data on device.
|
|
45
46
|
- `@himalaya/location` — Tier-5 typed binding for device location.
|
package/guides/qa-builds.md
CHANGED
|
@@ -1136,7 +1136,7 @@ himi dist --app <app> --platform android --aab --wait --target bo
|
|
|
1136
1136
|
any pool time is spent: `invalid_android_format` (anything but `apk` / `aab`),
|
|
1137
1137
|
`android_format_requires_link` (any destination but `link`), `android_format_requires_android`
|
|
1138
1138
|
(an iOS-only build, where the flag would be dropped in silence), and
|
|
1139
|
-
`android_format_requires_wix_keystore` (any `--android-signing` other than `wix-keystore`), and
|
|
1139
|
+
`android_format_requires_wix_keystore` (any `--android-signing` other than `wix-keystore` or `owner`), and
|
|
1140
1140
|
`android_format_shell_unsupported` (the `owner-lite` shell, whose gradle build refuses a store
|
|
1141
1141
|
bundle without a real Firebase config and customer identity). A mixed `--platform ios,android`
|
|
1142
1142
|
applies it to the Android leg only.
|
|
@@ -1283,6 +1283,48 @@ updates come from Wix builds too; leaving Wix needs an upload-key reset through
|
|
|
1283
1283
|
support. A pool machine without the key fails the build, naming the paths it searched, rather than
|
|
1284
1284
|
signing with another key.
|
|
1285
1285
|
|
|
1286
|
+
### An unsigned bundle under the owner's own name — an owner bundle
|
|
1287
|
+
|
|
1288
|
+
**Off by default.** A plane answers `501 owner_bundles_unconfigured` until `HIMI_DIST_OWNER_BUNDLES=1`
|
|
1289
|
+
is on its databag. It's the first half of a path for an owner who publishes to their own Google Play
|
|
1290
|
+
account with no WixOne link. The bundle isn't usable until it's signed, and nothing here signs it yet.
|
|
1291
|
+
|
|
1292
|
+
```sh
|
|
1293
|
+
himi dist --app <app> --platform android --aab --android-signing owner \
|
|
1294
|
+
--package-name com.acme.app --google-services ./google-services.json --version 1.0.0 --target wix
|
|
1295
|
+
```
|
|
1296
|
+
|
|
1297
|
+
- **What you get:** an **unsigned** `.aab` as `artifact.downloadUrl`, with `androidSigning: "unsigned"`
|
|
1298
|
+
and `ownerBundle` (`packageName`, `firebaseProjectId`, `configSha256`) on the job. No APK comes with
|
|
1299
|
+
it, because that would be an installable file on a Wix link under any name the caller typed.
|
|
1300
|
+
- **Why unsigned, not QA-signed:** Google Play should refuse an unsigned file on upload, so forgetting
|
|
1301
|
+
to sign costs nothing. A QA signature would be accepted, and would tie the listing to a key committed
|
|
1302
|
+
to this repo.
|
|
1303
|
+
- **It runs on Linux.** It's the one brokered job that does: `linux:dist:android` runs
|
|
1304
|
+
`native-ci/scripts/run-android.mjs`, which sets up the Android SDK and JDK before `run-dist`.
|
|
1305
|
+
- **The inputs come from the request:** `androidPackageName` and `googleServicesJson`, with nothing read
|
|
1306
|
+
from Branded, the Firebase pool or mobile-apps-containers-builder. The package name can't be under
|
|
1307
|
+
Wix's namespaces, but ownership isn't checked: Google Play binds a name at upload. The Firebase file is
|
|
1308
|
+
stored apart from the job record, served by `GET /v1/dist/android-config` to that job's token, and
|
|
1309
|
+
blanked when the job succeeds or is canceled, since Job Service may retry a failed one.
|
|
1310
|
+
- **It uses the self-serve quota tier**, like any other self-serve build.
|
|
1311
|
+
- **The pool proves the result.** `jarsigner` must say the file is unsigned, and the bundle's manifest
|
|
1312
|
+
must carry the owner's package name. The name can't be changed once it reaches a Play listing.
|
|
1313
|
+
- **Version skew.** An older `run-dist` ignores the request and signs with WixOne, so two checks guard
|
|
1314
|
+
this. The commit must carry `ownerBundle: 1` in `signing-protocol.json` (else
|
|
1315
|
+
`409 release_predates_owner_bundles`), and the result callback fails anything not reported as
|
|
1316
|
+
`unsigned` and drops its link (`android_format_wrong_signer`).
|
|
1317
|
+
- **A site-bound app is refused** (`409 owner_bundle_site_bound`). Its Google Play file is a store
|
|
1318
|
+
build, whose plan check this path must not bypass.
|
|
1319
|
+
|
|
1320
|
+
Other refusals, each with `code` equal to `error`: `android_signing_unsigned_requires_aab`,
|
|
1321
|
+
`owner_bundle_fields_unexpected` (the two fields on any other build), `owner_bundle_android_only`,
|
|
1322
|
+
`owner_bundle_incompatible_options` (`--signing`), `owner_bundle_shell_unsupported` (any shell but
|
|
1323
|
+
`branded-lite`), `owner_bundle_version_invalid`, `owner_bundle_package_invalid`,
|
|
1324
|
+
`owner_bundle_package_reserved` (Wix namespaces and the `himi.` prefix), `owner_bundle_firebase_required`, `owner_bundle_firebase_invalid` and
|
|
1325
|
+
`owner_bundle_firebase_package_mismatch` 400, and `owner_bundle_unavailable` 503. Design:
|
|
1326
|
+
[the design note](superpowers/specs/2026-11-07-owner-signed-play-bundle-design.md).
|
|
1327
|
+
|
|
1286
1328
|
### The iOS lane lives in one shared place
|
|
1287
1329
|
|
|
1288
1330
|
`fastlane dist` runs with `cwd = <app>/ios`, so it needs `<app>/ios/fastlane/Fastfile`. That file is
|
|
@@ -3198,6 +3198,49 @@
|
|
|
3198
3198
|
}
|
|
3199
3199
|
]
|
|
3200
3200
|
},
|
|
3201
|
+
{
|
|
3202
|
+
"name": "@himalaya/legacy-import",
|
|
3203
|
+
"source": "core/sdk/legacy-import/src/index.ts",
|
|
3204
|
+
"description": "Tier-5 typed binding for the one-time legacy import report.",
|
|
3205
|
+
"api": [
|
|
3206
|
+
{
|
|
3207
|
+
"name": "LegacyImportSourceReport",
|
|
3208
|
+
"kind": "interface",
|
|
3209
|
+
"jsdoc": "",
|
|
3210
|
+
"decl": "export interface LegacyImportSourceReport {\n id: string;\n /** `done` | `empty` | `incomplete` | `failed` | `unregistered_kind` | `invalid_options` */\n status: string;\n /** Item counts — `items`, plus one per sink the source's items went to. */\n counts: Record<string, number>;\n error?: string;\n}"
|
|
3211
|
+
},
|
|
3212
|
+
{
|
|
3213
|
+
"name": "LegacyImportReportItem",
|
|
3214
|
+
"kind": "interface",
|
|
3215
|
+
"jsdoc": "",
|
|
3216
|
+
"decl": "export interface LegacyImportReportItem {\n key: string;\n /** The item's value — UTF-8 text, or base64 when `meta.encoding === \"base64\"`. */\n value: string;\n meta?: Record<string, string>;\n}"
|
|
3217
|
+
},
|
|
3218
|
+
{
|
|
3219
|
+
"name": "LegacyImportReport",
|
|
3220
|
+
"kind": "interface",
|
|
3221
|
+
"jsdoc": "",
|
|
3222
|
+
"decl": "export interface LegacyImportReport {\n /** The `legacyImport.id` that produced it. */\n id: string;\n /** Epoch ms the import ran. */\n extractedAt: number;\n sources: LegacyImportSourceReport[];\n /** Only the `report` sink's items. */\n items: LegacyImportReportItem[];\n}"
|
|
3223
|
+
},
|
|
3224
|
+
{
|
|
3225
|
+
"name": "read",
|
|
3226
|
+
"kind": "function",
|
|
3227
|
+
"jsdoc": "/** The import report for the signed-in principal, or null — none ran, it was acknowledged, it\n * belongs to another account, or this host has nothing to import (web). */",
|
|
3228
|
+
"decl": "export async function read(): Promise<LegacyImportReport | null>;"
|
|
3229
|
+
},
|
|
3230
|
+
{
|
|
3231
|
+
"name": "ack",
|
|
3232
|
+
"kind": "function",
|
|
3233
|
+
"jsdoc": "/** Delete the report. Idempotent: acknowledging twice (or with nothing to acknowledge) is fine. */",
|
|
3234
|
+
"decl": "export async function ack(): Promise<void>;"
|
|
3235
|
+
},
|
|
3236
|
+
{
|
|
3237
|
+
"name": "version",
|
|
3238
|
+
"kind": "const",
|
|
3239
|
+
"jsdoc": "/** Capability version, for bundles that gate on min binary version. */",
|
|
3240
|
+
"decl": "export const version = 1;"
|
|
3241
|
+
}
|
|
3242
|
+
]
|
|
3243
|
+
},
|
|
3201
3244
|
{
|
|
3202
3245
|
"name": "@himalaya/live-activity",
|
|
3203
3246
|
"source": "core/sdk/live-activity/src/index.ts",
|
|
@@ -39,7 +39,7 @@ Your page can only use capabilities the **app owner** turned on for your site. I
|
|
|
39
39
|
`capabilities`, allowing **every** method the capability's page lists — except
|
|
40
40
|
`presigned_upload.putFile`, which reads a device file and is allowed only when `files` is enabled
|
|
41
41
|
too. So enabling a capability is enough; the owner does not list methods.
|
|
42
|
-
- **What a Brandy app cannot enable:** `app_info`, `godot`, `himi_apps`, `live_activity`,
|
|
42
|
+
- **What a Brandy app cannot enable:** `app_info`, `godot`, `himi_apps`, `legacy_import`, `live_activity`,
|
|
43
43
|
`local_database`, `release_control`, `system_intents`, `ui` and `wix_platform` — most need wiring
|
|
44
44
|
a website app's shell does not have, so plan your page without them. `base44` works only when the
|
|
45
45
|
app also has a Base44 binding. Every other capability in the reference can be enabled; other Himi
|
|
@@ -32,6 +32,7 @@ the SDK sources, so it matches the shipped SDKs.
|
|
|
32
32
|
- [`himi_apps`](https://apps.wix.com/_api/himi-serve/authoring/resource/web-sdk%2Fhimi_apps?format=md) — Cross-app open / host queries. 4 methods · not in Brandy.
|
|
33
33
|
- [`iap`](https://apps.wix.com/_api/himi-serve/authoring/resource/web-sdk%2Fiap?format=md) — In-app-purchase capability. 9 methods.
|
|
34
34
|
- [`keyboard`](https://apps.wix.com/_api/himi-serve/authoring/resource/web-sdk%2Fkeyboard?format=md) — Keyboard capability. 1 method.
|
|
35
|
+
- [`legacy_import`](https://apps.wix.com/_api/himi-serve/authoring/resource/web-sdk%2Flegacy_import?format=md) — One-time legacy import report. 2 methods · not in Brandy.
|
|
35
36
|
- [`live_activity`](https://apps.wix.com/_api/himi-serve/authoring/resource/web-sdk%2Flive_activity?format=md) — Live Activity capability. 3 methods · not in Brandy.
|
|
36
37
|
- [`local_database`](https://apps.wix.com/_api/himi-serve/authoring/resource/web-sdk%2Flocal_database?format=md) — Local-database capability: a per-entity on-device store (EntityStore) + an offline WriteQueue, so a worker bundle can persist and query real data on device. 11 methods · not in Brandy.
|
|
37
38
|
- [`location`](https://apps.wix.com/_api/himi-serve/authoring/resource/web-sdk%2Flocation?format=md) — Device location. 10 methods.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/himalaya-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1599.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": [
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"artifactId": "himalaya-cli"
|
|
73
73
|
}
|
|
74
74
|
},
|
|
75
|
-
"falconPackageHash": "
|
|
75
|
+
"falconPackageHash": "0492bb475381b374bdbf2ac75086d487a090cf829cbbf6f254c6ddd1"
|
|
76
76
|
}
|