@wix/himalaya-cli 0.1233.0 → 0.1234.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.
@@ -189,8 +189,8 @@ export interface DevGatewayConfig {
189
189
  * `passthrough` (default) forwards it to the real host; `fail` answers a deterministic
190
190
  * `404 HIMI_HERMETIC_NO_FIXTURE` and sends nothing upstream (#3019). Honoured by the
191
191
  * dev-server's `/v1/__webwix/call` bridge (web host) and `/__dev/{wix,net}/proxy`
192
- * (native redirect). On-device `NetFake` does not read it yet — an unmatched call there
193
- * still falls through to the real capability. */
192
+ * (native redirect). On-device `NetFake` (iOS/Android, DEBUG) reads it too: a sealed scenario
193
+ * answers a miss with the same 404 and never calls the real capability. */
194
194
  unmatched?: "passthrough" | "fail";
195
195
  }
196
196
  /** Derive the OTA authConfig block from a defineApp auth block
@@ -1038,8 +1038,8 @@ export interface DevGatewayConfig {
1038
1038
  * `passthrough` (default) forwards it to the real host; `fail` answers a deterministic
1039
1039
  * `404 HIMI_HERMETIC_NO_FIXTURE` and sends nothing upstream (#3019). Honoured by the
1040
1040
  * dev-server's `/v1/__webwix/call` bridge (web host) and `/__dev/{wix,net}/proxy`
1041
- * (native redirect). On-device `NetFake` does not read it yet — an unmatched call there
1042
- * still falls through to the real capability. */
1041
+ * (native redirect). On-device `NetFake` (iOS/Android, DEBUG) reads it too: a sealed scenario
1042
+ * answers a miss with the same 404 and never calls the real capability. */
1043
1043
  unmatched?: "passthrough" | "fail";
1044
1044
  }
1045
1045
  export declare function defineApp(config: AppConfig): AppConfig;
package/dist/cli.mjs CHANGED
@@ -28951,7 +28951,10 @@ function applyNetMocks(gw, mocks) {
28951
28951
  function resolveNetMocks(fileMocks, appDeclared) {
28952
28952
  if (fileMocks) return { mocks: fileMocks, source: "file" };
28953
28953
  const declared = Array.isArray(appDeclared?.rules) ? appDeclared.rules : [];
28954
- if (declared.length > 0) return { mocks: { mode: appDeclared?.mode, rules: declared, unmatched: appDeclared?.unmatched }, source: "app" };
28954
+ if (declared.length > 0 || appDeclared?.mode !== void 0 || appDeclared?.unmatched !== void 0) {
28955
+ const mode = appDeclared?.mode ?? (appDeclared?.unmatched === "fail" ? "mock" : void 0);
28956
+ return { mocks: { mode, rules: declared, unmatched: appDeclared?.unmatched }, source: "app" };
28957
+ }
28955
28958
  return null;
28956
28959
  }
28957
28960
  function readNetMocksFile(path2) {
@@ -126511,13 +126514,6 @@ function createDevServer(opts = {}) {
126511
126514
  const from = resolved2.source === "file" ? netMocksPath : `${state.appName} devGateway.rules`;
126512
126515
  console.error(`[himalaya-dev] net-mocks: seeded ${seeded.rules} rule(s), mode=${seeded.mode} from ${from}`);
126513
126516
  }
126514
- const appScenario = state.app?.meta.devGateway;
126515
- if (!netMocksDisabled && appScenario?.rules?.length && state.wix.rules.length === 0) {
126516
- const seeded = applyNetMocks(state.wix, { mode: appScenario.mode, rules: appScenario.rules, unmatched: appScenario.unmatched });
126517
- state.wixSeededOn = todayYmd();
126518
- state.wixSeededFromApp = true;
126519
- console.error(`[himalaya-dev] net-mocks: seeded ${seeded.rules} rule(s), mode=${seeded.mode} from the app's devGateway scenario`);
126520
- }
126521
126517
  if (state.hotReloadEnabled) {
126522
126518
  state.bundleWatcher = startBundleArtifactWatcher(state);
126523
126519
  state.bundleSourceWatcher = startBundleSourceWatcher(state);
@@ -379,6 +379,13 @@ snapshot tests. `FakeServiceProvider` answers `value(at: "counter.value")` from
379
379
  -himalaya.fake.services '{"ownerInbox":{"count":3,"items":[{"title":"New order"}]}}'
380
380
  ```
381
381
 
382
+ **From an XCUITest, write every `'` in the blob as `\u0027`.** `XCUIApplication.launchArguments`
383
+ are re-quoted shell-style on the way to the app: an apostrophe opens a quoted run whose spaces and
384
+ `"` arrive backslash-escaped, so `"today's"` turns a valid fixture into invalid JSON. The launch
385
+ manifest then keeps the value as a plain string, `fake.services` is silently off, and the screen
386
+ renders its live worker. `xcrun simctl launch` passes argv untouched, so the same blob works by
387
+ hand. `BrandedLiteUITestCase.launchSafeJSON` does the escaping for the branded-lite target.
388
+
382
389
  The **web/headless** tier has the same seam: `POST /__dev/render { descriptor, services: {…} }`
383
390
  builds a `FakeServiceProvider` (core/web-renderer/src/FakeServiceProvider.ts) so the browser-free
384
391
  render resolves the same `$service:`/`$item.` bindings — text filled and repeaters expanded — with
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/himalaya-cli",
3
- "version": "0.1233.0",
3
+ "version": "0.1234.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": "275f14082a30c282271a3f592ad642e90be8aa534e36c4920d763121"
70
+ "falconPackageHash": "eeef93bad6f73772bf97da835fa24f3c52b393873be055a3ae232dfe"
71
71
  }