@wix/himalaya-cli 0.1072.0 → 0.1073.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.
@@ -224,5 +224,23 @@ export interface AppConfigDocument {
224
224
  * `/v1/boot` uses this too, so the first-paint optimization cannot drift from
225
225
  * the authoritative per-document fallback in locale handling, overrides, or
226
226
  * navigation-bundle expansion. */
227
+ /** Every linkable-screen entry with all five fields — the defaults Kotlin and Swift apply. Binaries
228
+ * shipped before #3318 decode a linkable screen with all five REQUIRED and drop the whole
229
+ * NavigationConfig when one is missing, so nothing served may carry a partial entry. */
230
+ export declare function completeLinkableScreens<T extends {
231
+ screenId: string;
232
+ isPublic?: boolean;
233
+ paramKeys?: string[];
234
+ parentScreenId?: string;
235
+ tabId?: string;
236
+ }>(list: readonly T[]): (T & {
237
+ isPublic: boolean;
238
+ paramKeys: string[];
239
+ parentScreenId: string;
240
+ tabId: string;
241
+ })[];
242
+ /** A merged (overridden) config with its linkable screens completed — ONE rule for every place that
243
+ * shows or serves the effective config, so the admin view and the device payload cannot diverge. */
244
+ export declare function withCompleteLinkables<T extends object>(cfg: T): T;
227
245
  export declare function buildAppConfigDocument(req: IncomingMessage, meta: DerivedAppMeta, override?: Record<string, unknown>, bundleCtx?: NavBundleContext): AppConfigDocument;
228
246
  export declare function handleAppConfigRequest(req: IncomingMessage, res: ServerResponse, meta: DerivedAppMeta, override?: Record<string, unknown>, bundleCtx?: NavBundleContext): void;
package/dist/cli.mjs CHANGED
@@ -6732,7 +6732,6 @@ function walk(node, registry, path2, out) {
6732
6732
  var SYSTEM_FONT_FAMILY, TONAL_ELEVATION_ALPHA;
6733
6733
  var init_tokens = __esm({
6734
6734
  "../../core/ts/src/tokens.ts"() {
6735
- "use strict";
6736
6735
  SYSTEM_FONT_FAMILY = "$system";
6737
6736
  TONAL_ELEVATION_ALPHA = [0, 0.05, 0.08, 0.11, 0.12, 0.14];
6738
6737
  }
@@ -6759,7 +6758,6 @@ function resolveTranslation(value, catalog, sourceCatalog) {
6759
6758
  var BINDING_SIGILS, BINDING_SIGIL_RE, TRANSLATION_PREFIX, TRANSLATION_KEY_RE;
6760
6759
  var init_bindings = __esm({
6761
6760
  "../../core/ts/src/bindings.ts"() {
6762
- "use strict";
6763
6761
  BINDING_SIGILS = ["service", "flag", "item", "t"];
6764
6762
  BINDING_SIGIL_RE = new RegExp(
6765
6763
  `^\\$(?:${BINDING_SIGILS.filter((s) => s !== "t").join("|")})\\b|^\\$t:`
@@ -27757,6 +27755,13 @@ function fitZoom(pts, w, h, fallback) {
27757
27755
  }
27758
27756
  return 1;
27759
27757
  }
27758
+ function layoutScale(el) {
27759
+ const r = el.getBoundingClientRect();
27760
+ return {
27761
+ kx: r.width > 0 && el.offsetWidth > 0 ? el.offsetWidth / r.width : 1,
27762
+ ky: r.height > 0 && el.offsetHeight > 0 ? el.offsetHeight / r.height : 1
27763
+ };
27764
+ }
27760
27765
  function parseLocalDate(when) {
27761
27766
  if (when == null || when === "") return null;
27762
27767
  if (typeof when === "string") {
@@ -31752,18 +31757,18 @@ var init_renderNode = __esm({
31752
31757
  }), [JSON.stringify(shapesRaw)]);
31753
31758
  const boundCameraRaw = useResolvedScalar(props.cameraPath, ctx);
31754
31759
  const commandedCamera = React5.useMemo(() => decodeCamera(boundCameraRaw), [boundCameraRaw]);
31755
- const boxRef = React5.useRef(null);
31756
31760
  const [box, setBox] = React5.useState({ w: 400, h });
31757
31761
  const [userCam, setUserCam] = React5.useState(null);
31758
31762
  const dragRef = React5.useRef(null);
31759
31763
  const dragMovedRef = React5.useRef(false);
31760
31764
  const regionReportedRef = React5.useRef(false);
31765
+ const [boxEl, setBoxEl] = React5.useState(null);
31766
+ const attachBox = React5.useCallback((el) => setBoxEl(el), []);
31761
31767
  React5.useEffect(() => {
31762
- const el = boxRef.current;
31768
+ const el = boxEl;
31763
31769
  if (!el) return;
31764
31770
  const measure = () => {
31765
- const r = el.getBoundingClientRect();
31766
- if (r.width > 0 && r.height > 0) setBox({ w: r.width, h: r.height });
31771
+ if (el.clientWidth > 0 && el.clientHeight > 0) setBox({ w: el.clientWidth, h: el.clientHeight });
31767
31772
  };
31768
31773
  measure();
31769
31774
  const RO = globalThis.ResizeObserver;
@@ -31771,12 +31776,18 @@ var init_renderNode = __esm({
31771
31776
  const ro = new RO(measure);
31772
31777
  ro.observe(el);
31773
31778
  return () => ro.disconnect();
31774
- }, [h]);
31775
- const usesTileArm = (route.length > 0 || shapes.length > 0 || hasEvents || props.cameraPath != null || props.showUserLocation === true || props.fitToContent === true) && !usesSchematicRoute(props);
31779
+ }, [boxEl, h]);
31780
+ const hasMarkerFeed = typeof props.markersPath === "string" && props.markersPath !== "";
31781
+ const hasStaticMarkers = markers.length > 0 && !hasMarkerFeed;
31782
+ const otherTileReason = route.length > 0 || shapes.length > 0 || hasEvents || props.cameraPath != null || props.showUserLocation === true || props.fitToContent === true;
31783
+ const usesTileArm = (otherTileReason || hasStaticMarkers) && !usesSchematicRoute(props);
31784
+ const pinsOnly = hasStaticMarkers && !otherTileReason;
31776
31785
  {
31777
31786
  const all = [...route, ...markers, ...shapes.flatMap((sh) => sh.points)].filter((p) => p && typeof p.latitude === "number" && typeof p.longitude === "number");
31778
31787
  const declared = typeof props.zoom === "number" && props.zoom > 0 ? Math.max(1, Math.min(19, props.zoom)) : 13;
31779
- const shouldFit = props.fitToContent === true || route.length > 0;
31788
+ const hasCenter = typeof props.latitude === "number" && typeof props.longitude === "number";
31789
+ const hasZoom = typeof props.zoom === "number" && props.zoom > 0;
31790
+ const shouldFit = props.fitToContent === true || route.length > 0 || pinsOnly && (!hasCenter || markers.length > 1 && !hasZoom);
31780
31791
  const W = box.w;
31781
31792
  const H = box.h;
31782
31793
  const fitted = shouldFit ? fitZoom(all, W - 48, H - 48, declared) : declared;
@@ -31796,7 +31807,7 @@ var init_renderNode = __esm({
31796
31807
  }, [commandedCamera]);
31797
31808
  const originX = mercatorX(cLng, z) - W / 2;
31798
31809
  const originY = mercatorY(cLat, z) - H / 2;
31799
- const interactive = props.interactive !== false;
31810
+ const interactive = pinsOnly ? props.interactive === true : props.interactive !== false;
31800
31811
  const resolvedTileSource = resolveTileSource(props.tileSource);
31801
31812
  const fireMapEvent = (action, payload) => {
31802
31813
  if (!action || !ctx.onAction) return;
@@ -31808,9 +31819,11 @@ var init_renderNode = __esm({
31808
31819
  return;
31809
31820
  }
31810
31821
  if (!props.onMapTap && !props.onMarkerTap) return;
31811
- const r = e.currentTarget.getBoundingClientRect();
31812
- const px = e.clientX - r.left;
31813
- const py = e.clientY - r.top;
31822
+ const el = e.currentTarget;
31823
+ const r = el.getBoundingClientRect();
31824
+ const { kx, ky } = layoutScale(el);
31825
+ const px = (e.clientX - r.left) * kx - el.clientLeft;
31826
+ const py = (e.clientY - r.top) * ky - el.clientTop;
31814
31827
  const hit = markerHit(px, py, markers, z, originX, originY);
31815
31828
  if (hit !== null) {
31816
31829
  const m = markers[hit];
@@ -31842,14 +31855,14 @@ var init_renderNode = __esm({
31842
31855
  };
31843
31856
  const onPointerDown = (e) => {
31844
31857
  if (!interactive) return;
31845
- dragRef.current = { x: e.clientX, y: e.clientY, lat: cLat, lng: cLng, z };
31858
+ dragRef.current = { x: e.clientX, y: e.clientY, lat: cLat, lng: cLng, z, ...layoutScale(e.currentTarget) };
31846
31859
  dragMovedRef.current = false;
31847
31860
  };
31848
31861
  const onPointerMove = (e) => {
31849
31862
  const d2 = dragRef.current;
31850
31863
  if (!d2) return;
31851
- const dx = e.clientX - d2.x;
31852
- const dy = e.clientY - d2.y;
31864
+ const dx = (e.clientX - d2.x) * d2.kx;
31865
+ const dy = (e.clientY - d2.y) * d2.ky;
31853
31866
  if (Math.abs(dx) + Math.abs(dy) < 3) return;
31854
31867
  dragMovedRef.current = true;
31855
31868
  const cx = mercatorX(d2.lng, d2.z) - dx;
@@ -31902,7 +31915,7 @@ var init_renderNode = __esm({
31902
31915
  if (usesTileArm) return /* @__PURE__ */ jsxs3(
31903
31916
  "div",
31904
31917
  {
31905
- ref: boxRef,
31918
+ ref: attachBox,
31906
31919
  "data-map-mode": "tile",
31907
31920
  "data-route-points": route.length,
31908
31921
  "data-map-zoom": z,
@@ -31914,6 +31927,7 @@ var init_renderNode = __esm({
31914
31927
  onWheel,
31915
31928
  style: {
31916
31929
  width: "100%",
31930
+ boxSizing: "border-box",
31917
31931
  height: h,
31918
31932
  borderRadius: ctx.radius("md", 8),
31919
31933
  overflow: "hidden",
@@ -33404,7 +33418,7 @@ function deriveNavigationConfig(app, bundleCtx) {
33404
33418
  if (ov.parents[s.screenId]) s.parentScreenId = ov.parents[s.screenId];
33405
33419
  }
33406
33420
  }
33407
- const linkableScreens = app.linkableScreens?.length ? app.linkableScreens : [...concrete, ...templated];
33421
+ const linkableScreens = app.linkableScreens?.length ? completeLinkableScreens(app.linkableScreens) : [...concrete, ...templated];
33408
33422
  const config = {
33409
33423
  scheme: app.urlScheme,
33410
33424
  deepLinkPatterns: app.deepLinkPatterns ?? ov?.deepLinkPatterns ?? [],
@@ -33477,8 +33491,21 @@ function mergeConfig(base, patch) {
33477
33491
  }
33478
33492
  return out;
33479
33493
  }
33494
+ function completeLinkableScreens(list) {
33495
+ return list.map((s) => ({
33496
+ ...s,
33497
+ isPublic: s.isPublic ?? false,
33498
+ paramKeys: s.paramKeys ?? [],
33499
+ parentScreenId: s.parentScreenId ?? "",
33500
+ tabId: s.tabId ?? ""
33501
+ }));
33502
+ }
33503
+ function withCompleteLinkables(cfg) {
33504
+ const list = cfg.linkableScreens;
33505
+ return Array.isArray(list) ? { ...cfg, linkableScreens: completeLinkableScreens(list) } : cfg;
33506
+ }
33480
33507
  function buildAppConfigDocument(req, meta, override, bundleCtx) {
33481
- const baseline = override ? mergeConfig(deriveNavigationConfig(meta, bundleCtx), override) : deriveNavigationConfig(meta, bundleCtx);
33508
+ const baseline = override ? withCompleteLinkables(mergeConfig(deriveNavigationConfig(meta, bundleCtx), override)) : deriveNavigationConfig(meta, bundleCtx);
33482
33509
  const acceptLanguage = req.headers["accept-language"];
33483
33510
  const locale = pickLocale(typeof acceptLanguage === "string" ? acceptLanguage : null);
33484
33511
  const config = locale ? translate(JSON.parse(JSON.stringify(baseline)), locale) : baseline;
@@ -37302,9 +37329,9 @@ async function handleAdminPlayground(req, res, state) {
37302
37329
  }
37303
37330
  if (path2 === "/v1/admin/app-config" && state.app) {
37304
37331
  const built = deriveNavigationConfig(state.app.meta);
37332
+ const effectiveConfig = () => state.appConfigOverride ? withCompleteLinkables(deepMerge3(built, state.appConfigOverride)) : built;
37305
37333
  if (req.method === "GET") {
37306
- const effective = state.appConfigOverride ? deepMerge3(built, state.appConfigOverride) : built;
37307
- return sendJson(res, 200, { source: state.appConfigOverride ? "override" : "built", built, effective });
37334
+ return sendJson(res, 200, { source: state.appConfigOverride ? "override" : "built", built, effective: effectiveConfig() });
37308
37335
  }
37309
37336
  if (req.method === "PUT") {
37310
37337
  let patch;
@@ -37317,7 +37344,7 @@ async function handleAdminPlayground(req, res, state) {
37317
37344
  const nav = isNavControlPatch(patch);
37318
37345
  state.appConfigOverride = nav && state.appConfigOverride ? deepMerge3(state.appConfigOverride, patch) : patch;
37319
37346
  publishSSE(state, "config.invalidated", { reason: nav ? "navigate" : "admin_override", at: Date.now() });
37320
- return sendJson(res, 200, { status: "ok", effective: deepMerge3(built, state.appConfigOverride) });
37347
+ return sendJson(res, 200, { status: "ok", effective: effectiveConfig() });
37321
37348
  }
37322
37349
  if (req.method === "DELETE") {
37323
37350
  const existed = state.appConfigOverride !== void 0;
@@ -47772,6 +47799,43 @@ function unreachedNativeWrites(screen, bundleJs, observed) {
47772
47799
  }
47773
47800
  return out;
47774
47801
  }
47802
+ function splitEntries(cell) {
47803
+ const out = [];
47804
+ let depth = 0;
47805
+ let cur = "";
47806
+ for (const ch of cell) {
47807
+ if (ch === "(" || ch === "[") depth++;
47808
+ else if ((ch === ")" || ch === "]") && depth > 0) depth--;
47809
+ if ((ch === "," || ch === ";") && depth === 0) {
47810
+ out.push(cur);
47811
+ cur = "";
47812
+ continue;
47813
+ }
47814
+ cur += ch;
47815
+ }
47816
+ out.push(cur);
47817
+ if (depth > 0) return cell.split(/[,;]/).map((e) => e.trim()).filter(Boolean);
47818
+ return out.map((e) => e.trim()).filter(Boolean);
47819
+ }
47820
+ function entryHead(entry) {
47821
+ if (/^\s*[—–-]\s/.test(entry)) return "";
47822
+ return entry.split(/\s*[([]|\s+[—–]\s*|\s+-\s+/)[0].trim();
47823
+ }
47824
+ function entryNames(entry) {
47825
+ const head = entryHead(entry);
47826
+ return head ? [head] : [];
47827
+ }
47828
+ function hasNote(entry) {
47829
+ return entryHead(entry) !== entry.trim();
47830
+ }
47831
+ function namesLine(allowed2) {
47832
+ const names = [...new Set(allowed2.flatMap(entryNames))];
47833
+ return names.length ? `it names: ${names.join(", ")}` : "its entries are only notes, which approve nothing";
47834
+ }
47835
+ function isNoneEntry(entry) {
47836
+ const head = entryHead(entry);
47837
+ return NONE.test(entry) || head !== "" && NONE.test(head);
47838
+ }
47775
47839
  function parseDataAccess(text5, from) {
47776
47840
  const body = text5.replace(/<!--[\s\S]*?(?:-->|$)/g, "");
47777
47841
  const heading = new RegExp(`(?:^|\\n)##[ \\t]+${DATA_ACCESS_HEADING}\\b[^\\n]*([\\s\\S]*?)(?=\\n##[ \\t]|$)`, "i").exec(body);
@@ -47791,7 +47855,7 @@ function parseDataAccess(text5, from) {
47791
47855
  const screen = unquote(row[screenCol] ?? "");
47792
47856
  if (!screen) continue;
47793
47857
  const cell = unquote(row[writesCol] ?? "");
47794
- const entries = cell.split(/[,;]/).map((e) => e.trim()).filter((e) => e && !NONE.test(e));
47858
+ const entries = splitEntries(cell).filter((e) => !isNoneEntry(e));
47795
47859
  rows.push({ screen, allowed: NONE.test(cell) || !entries.length ? null : entries });
47796
47860
  }
47797
47861
  return rows.length ? { from, rows } : null;
@@ -47812,15 +47876,19 @@ function readDataAccess(dir) {
47812
47876
  return null;
47813
47877
  }
47814
47878
  function entryApproves(entry, w) {
47815
- const e = entry.trim();
47879
+ const head = entryHead(entry);
47880
+ return head !== "" && nameApproves(head, w, !hasNote(entry));
47881
+ }
47882
+ function nameApproves(name, w, kinds) {
47883
+ const e = name.trim();
47816
47884
  const lower = e.toLowerCase();
47817
47885
  const actionTail = w.action.split(".").pop() ?? w.action;
47818
47886
  if (e === w.action || e === actionTail) return true;
47819
47887
  if (w.via === "native") {
47820
47888
  const tail = w.capability.split(".").pop();
47821
47889
  if (e === w.capability || e === tail || e === nativeWriteOf(w.capability)?.canonical) return true;
47822
- if (w.kind === "payment" && /^payments?$/.test(lower)) return true;
47823
- if (w.kind === "member-signup" && /^(sign-?up|register|registration|member[- ]signup)$/.test(lower)) return true;
47890
+ if (kinds && w.kind === "payment" && /^payments?$/.test(lower)) return true;
47891
+ if (kinds && w.kind === "member-signup" && /^(sign-?up|register|registration|member[- ]signup)$/.test(lower)) return true;
47824
47892
  return false;
47825
47893
  }
47826
47894
  const m = /^(?:(GET|POST|PUT|PATCH|DELETE)\s+)?(\/\S*|https?:\/\/\S+)$/i.exec(e);
@@ -47865,7 +47933,9 @@ function unapprovedWriteFindings(writes, plan) {
47865
47933
  trigger,
47866
47934
  invariant: "write-not-approved",
47867
47935
  severity: "warning",
47868
- message: allowed2.length ? `${does}, which ${plan.from}'s data-access table does not name for this screen (approved: ${allowed2.join(", ")})` : `${does}, but ${plan.from}'s data-access table approves no writes on this screen`,
47936
+ // Quote the NAMES the table offers, not its raw cells: printing `registerDirect (member sign-up)`
47937
+ // as "approved" beside "does not name registerDirect" read as a contradiction (#3317).
47938
+ message: allowed2.length ? `${does}, which ${plan.from}'s data-access table does not name for this screen (${namesLine(allowed2)})` : `${does}, but ${plan.from}'s data-access table approves no writes on this screen`,
47869
47939
  hint
47870
47940
  });
47871
47941
  }
@@ -53308,21 +53378,21 @@ var init_preview_assets_generated = __esm({
53308
53378
  "../../packages/serve/src/preview-assets.generated.ts"() {
53309
53379
  init_preview_assets_format();
53310
53380
  PREVIEW_ASSET_MANIFEST = [
53311
- { key: "assets/index-DlDXdHId.js", contentType: "application/javascript; charset=utf-8", offset: 8, length: 1063092, sha256: "758c655ba88cbb54101f690281513fcff56aaa8b4a31dd49545d0f30f45e05f8" },
53312
- { key: "fonts/Roboto-LICENSE.txt", contentType: "application/octet-stream", offset: 1063100, length: 4610, sha256: "994062dd7af4186a739de55dd9e151c63b6301f8e2cbafc608d35c2e87da0cd2" },
53313
- { key: "fonts/Roboto-Variable.ttf", contentType: "font/ttf", offset: 1067710, length: 488584, sha256: "d7598e12c5dbef095ff8272cfc55da0250bd07fbdecbac8a530b9b277872a134" },
53314
- { key: "fonts/WixMadeforDisplay-Bold.ttf", contentType: "font/ttf", offset: 1556294, length: 90924, sha256: "ec4c7d63772d980d6e147b2df6215fd2737e4b04cebe0cf7e11dc695fb63cdcf" },
53315
- { key: "fonts/WixMadeforDisplay-ExtraBold.ttf", contentType: "font/ttf", offset: 1647218, length: 90984, sha256: "bf4c16a2774edd38a921edf3099469866cd74c094fd596f3fa4e81f54a04dfaa" },
53316
- { key: "fonts/WixMadeforDisplay-Medium.ttf", contentType: "font/ttf", offset: 1738202, length: 90980, sha256: "368faca44fb9f7207e4af784e94750b1ee59c1098b8689e0f4a918926f244fb5" },
53317
- { key: "fonts/WixMadeforDisplay-Regular.ttf", contentType: "font/ttf", offset: 1829182, length: 90872, sha256: "97ed8f1a6772abe26e3d8af5cecfc4b02faa94497d585b0398b5053b739a70c1" },
53318
- { key: "fonts/WixMadeforDisplay-SemiBold.ttf", contentType: "font/ttf", offset: 1920054, length: 90980, sha256: "642feab8a48ddf6c7a89d7c2a7c0edfa0e6e773f671287e460e222703563191e" },
53319
- { key: "fonts/WixMadeforText-Bold.ttf", contentType: "font/ttf", offset: 2011034, length: 108636, sha256: "37c179b4fefb63ea9637322b84583a2df53aa226c150294eea1675c14b1b8e29" },
53320
- { key: "fonts/WixMadeforText-ExtraBold.ttf", contentType: "font/ttf", offset: 2119670, length: 109084, sha256: "62e2fe4718129f36ecdb0ae4de385bd6b81ecc876146447167c6c140fad699a9" },
53321
- { key: "fonts/WixMadeforText-Medium.ttf", contentType: "font/ttf", offset: 2228754, length: 109048, sha256: "4ecf270136af928612c76fe4ebade91d8156975e5ea4c0cf9225501dd1788e02" },
53322
- { key: "fonts/WixMadeforText-Regular.ttf", contentType: "font/ttf", offset: 2337802, length: 107700, sha256: "dee56f09fd3efc127c1ea95557edc74110c1460a46287da36e0af25efd341ef5" },
53323
- { key: "fonts/WixMadeforText-SemiBold.ttf", contentType: "font/ttf", offset: 2445502, length: 88108, sha256: "dced97a77624bc5f8b1ae65850360908297f4588e09feb6f22792d29dc7e765b" },
53324
- { key: "index.html", contentType: "text/html; charset=utf-8", offset: 2533610, length: 4947, sha256: "7a5bedfb0fdf0c376ce40bba70539332bca4b2fad4e4112465fb1875e03aa29b" },
53325
- { key: "t5-frame.html", contentType: "text/html; charset=utf-8", offset: 2538557, length: 17209, sha256: "dffc9718e2faa63ae2cc919e0a842f585ed565aaaa7c53778e90379442c731b6" }
53381
+ { key: "assets/index-m9AT09y1.js", contentType: "application/javascript; charset=utf-8", offset: 8, length: 1063636, sha256: "21533f17025f9aff5e289562f02ca918ecb42fe690ccd8456a479b934be895f9" },
53382
+ { key: "fonts/Roboto-LICENSE.txt", contentType: "application/octet-stream", offset: 1063644, length: 4610, sha256: "994062dd7af4186a739de55dd9e151c63b6301f8e2cbafc608d35c2e87da0cd2" },
53383
+ { key: "fonts/Roboto-Variable.ttf", contentType: "font/ttf", offset: 1068254, length: 488584, sha256: "d7598e12c5dbef095ff8272cfc55da0250bd07fbdecbac8a530b9b277872a134" },
53384
+ { key: "fonts/WixMadeforDisplay-Bold.ttf", contentType: "font/ttf", offset: 1556838, length: 90924, sha256: "ec4c7d63772d980d6e147b2df6215fd2737e4b04cebe0cf7e11dc695fb63cdcf" },
53385
+ { key: "fonts/WixMadeforDisplay-ExtraBold.ttf", contentType: "font/ttf", offset: 1647762, length: 90984, sha256: "bf4c16a2774edd38a921edf3099469866cd74c094fd596f3fa4e81f54a04dfaa" },
53386
+ { key: "fonts/WixMadeforDisplay-Medium.ttf", contentType: "font/ttf", offset: 1738746, length: 90980, sha256: "368faca44fb9f7207e4af784e94750b1ee59c1098b8689e0f4a918926f244fb5" },
53387
+ { key: "fonts/WixMadeforDisplay-Regular.ttf", contentType: "font/ttf", offset: 1829726, length: 90872, sha256: "97ed8f1a6772abe26e3d8af5cecfc4b02faa94497d585b0398b5053b739a70c1" },
53388
+ { key: "fonts/WixMadeforDisplay-SemiBold.ttf", contentType: "font/ttf", offset: 1920598, length: 90980, sha256: "642feab8a48ddf6c7a89d7c2a7c0edfa0e6e773f671287e460e222703563191e" },
53389
+ { key: "fonts/WixMadeforText-Bold.ttf", contentType: "font/ttf", offset: 2011578, length: 108636, sha256: "37c179b4fefb63ea9637322b84583a2df53aa226c150294eea1675c14b1b8e29" },
53390
+ { key: "fonts/WixMadeforText-ExtraBold.ttf", contentType: "font/ttf", offset: 2120214, length: 109084, sha256: "62e2fe4718129f36ecdb0ae4de385bd6b81ecc876146447167c6c140fad699a9" },
53391
+ { key: "fonts/WixMadeforText-Medium.ttf", contentType: "font/ttf", offset: 2229298, length: 109048, sha256: "4ecf270136af928612c76fe4ebade91d8156975e5ea4c0cf9225501dd1788e02" },
53392
+ { key: "fonts/WixMadeforText-Regular.ttf", contentType: "font/ttf", offset: 2338346, length: 107700, sha256: "dee56f09fd3efc127c1ea95557edc74110c1460a46287da36e0af25efd341ef5" },
53393
+ { key: "fonts/WixMadeforText-SemiBold.ttf", contentType: "font/ttf", offset: 2446046, length: 88108, sha256: "dced97a77624bc5f8b1ae65850360908297f4588e09feb6f22792d29dc7e765b" },
53394
+ { key: "index.html", contentType: "text/html; charset=utf-8", offset: 2534154, length: 4947, sha256: "087ac1ca63900b0a2a73517170f77427493eb3c5ad226e535d14998227157118" },
53395
+ { key: "t5-frame.html", contentType: "text/html; charset=utf-8", offset: 2539101, length: 17209, sha256: "dffc9718e2faa63ae2cc919e0a842f585ed565aaaa7c53778e90379442c731b6" }
53326
53396
  ];
53327
53397
  }
53328
53398
  });
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/himalaya-cli",
3
- "version": "0.1072.0",
3
+ "version": "0.1073.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": "18f2e2636552474acd27ddb5b45d00aa4507785ea72311c47c6039ae"
68
+ "falconPackageHash": "f53841877488b72f64021f8682b974243c8e0b92b972ba48c02e5c78"
69
69
  }
@@ -1092,6 +1092,7 @@ const SCREENS = runtimeSetting({
1092
1092
  "top": 16,
1093
1093
  "bottom": 16
1094
1094
  },
1095
+ "fillMaxWidth": true,
1095
1096
  "hiddenPath": "$service:himiBrandedHome.hideHeroFallback"
1096
1097
  }
1097
1098
  },
@@ -1092,6 +1092,7 @@ const SCREENS = runtimeSetting({
1092
1092
  "top": 16,
1093
1093
  "bottom": 16
1094
1094
  },
1095
+ "fillMaxWidth": true,
1095
1096
  "hiddenPath": "$service:himiBrandedHome.hideHeroFallback"
1096
1097
  }
1097
1098
  },
@@ -647,6 +647,7 @@ const SCREENS = runtimeSetting({
647
647
  "top": 16,
648
648
  "bottom": 16
649
649
  },
650
+ "fillMaxWidth": true,
650
651
  "hiddenPath": "$service:himiBrandedHome.hasDishHeroImage"
651
652
  }
652
653
  }