@weaverse/hydrogen 6.1.1 → 6.1.3

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.
Files changed (40) hide show
  1. package/dist/index.js +6 -5
  2. package/dist/index.mjs +2 -1
  3. package/dist/internal.js +17 -16
  4. package/dist/internal.mjs +3 -2
  5. package/dist/{translation-store-BpPWqZ0B.js → nested-key-CR3-YMFi.js} +1 -68
  6. package/dist/nested-key-CR3-YMFi.js.map +1 -0
  7. package/dist/{translation-store-C42QdI0e.mjs → nested-key-_k9aW_Wd.mjs} +2 -57
  8. package/dist/nested-key-_k9aW_Wd.mjs.map +1 -0
  9. package/dist/next.js +14 -11
  10. package/dist/next.mjs +4 -5
  11. package/dist/react-router.js +13 -6
  12. package/dist/react-router.mjs +5 -4
  13. package/dist/react.js +6 -0
  14. package/dist/react.mjs +2 -2
  15. package/dist/translation-store-4fAV771j.js +69 -0
  16. package/dist/translation-store-4fAV771j.js.map +1 -0
  17. package/dist/translation-store-BBrw0FOk.mjs +58 -0
  18. package/dist/translation-store-BBrw0FOk.mjs.map +1 -0
  19. package/dist/types/WeaverseHydrogenRoot.d.ts.map +1 -1
  20. package/dist/types/next.d.ts +7 -3
  21. package/dist/types/next.d.ts.map +1 -1
  22. package/dist/types/react.d.ts +1 -1
  23. package/dist/types/react.d.ts.map +1 -1
  24. package/dist/types/types.d.ts +7 -1
  25. package/dist/types/types.d.ts.map +1 -1
  26. package/dist/types/utils/use-studio.d.ts.map +1 -1
  27. package/dist/{weaverse-client-CNPZ6ueD.js → weaverse-client-C9IgIH7O.js} +69 -55
  28. package/dist/weaverse-client-C9IgIH7O.js.map +1 -0
  29. package/dist/{weaverse-client-6ztuUmvu.mjs → weaverse-client-D59mBW0j.mjs} +24 -10
  30. package/dist/weaverse-client-D59mBW0j.mjs.map +1 -0
  31. package/package.json +5 -4
  32. package/src/WeaverseHydrogenRoot.tsx +15 -9
  33. package/src/next.ts +23 -4
  34. package/src/react.ts +2 -0
  35. package/src/types.ts +7 -0
  36. package/src/utils/use-studio.ts +20 -2
  37. package/dist/translation-store-BpPWqZ0B.js.map +0 -1
  38. package/dist/translation-store-C42QdI0e.mjs.map +0 -1
  39. package/dist/weaverse-client-6ztuUmvu.mjs.map +0 -1
  40. package/dist/weaverse-client-CNPZ6ueD.js.map +0 -1
@@ -1,4 +1,5 @@
1
- const require_translation_store = require("./translation-store-BpPWqZ0B.js");
1
+ const require_nested_key = require("./nested-key-CR3-YMFi.js");
2
+ const require_translation_store = require("./translation-store-4fAV771j.js");
2
3
  let _weaverse_react = require("@weaverse/react");
3
4
  let _weaverse_schema = require("@weaverse/schema");
4
5
  let react = require("react");
@@ -47,8 +48,8 @@ function createTranslate(sources) {
47
48
  if (external && external !== key) return external;
48
49
  }
49
50
  const design = designOverrides && Object.hasOwn(designOverrides, key) ? designOverrides[key] : void 0;
50
- const override = merchantOverrides ? require_translation_store.getNestedKey(merchantOverrides, key) : void 0;
51
- const staticValue = require_translation_store.getNestedKey(staticContent, key);
51
+ const override = merchantOverrides ? require_nested_key.getNestedKey(merchantOverrides, key) : void 0;
52
+ const staticValue = require_nested_key.getNestedKey(staticContent, key);
52
53
  return interpolate(design ?? override ?? staticValue ?? key, variables);
53
54
  };
54
55
  }
@@ -620,7 +621,7 @@ function waitForStudio() {
620
621
  return new Promise((resolve) => {
621
622
  let startedAt = Date.now();
622
623
  function check() {
623
- if (require_translation_store.hasWeaverseStudio(window)) return resolve(window.weaverseStudio);
624
+ if (require_nested_key.hasWeaverseStudio(window)) return resolve(window.weaverseStudio);
624
625
  if (Date.now() - startedAt >= STUDIO_READY_TIMEOUT_MS) {
625
626
  console.warn("[Weaverse] Studio script did not initialize in time");
626
627
  return resolve(null);
@@ -661,21 +662,28 @@ function waitForStudio() {
661
662
  function useStudioConnect() {
662
663
  let { search } = (0, react_router.useLocation)();
663
664
  (0, react.useEffect)(() => {
664
- let src = require_translation_store.resolveStudioScriptSrc(search, typeof window === "undefined" ? "" : window.location.hostname);
665
+ let src = require_nested_key.resolveStudioScriptSrc(search, typeof window === "undefined" ? "" : window.location.hostname);
665
666
  if (src) (0, _weaverse_react.loadScript)(src).catch(console.error);
666
667
  }, [search]);
667
668
  }
669
+ let warnedMissingSelectionStore = false;
670
+ function warnMissingSelectionStore() {
671
+ if (warnedMissingSelectionStore) return;
672
+ warnedMissingSelectionStore = true;
673
+ console.warn("[Weaverse] useStudioSelection() needs the root Layout wrapped with withWeaverse(); Studio selections will not reach the theme.");
674
+ }
668
675
  function useStudio(weaverse) {
669
676
  let { revalidate } = (0, react_router.useRevalidator)();
670
677
  let navigation = (0, react_router.useNavigation)();
671
678
  let { pathname, search } = (0, react_router.useLocation)();
672
679
  let navigate = (0, react_router.useNavigate)();
673
680
  let themeSettingsStore = useThemeSettingsStore();
681
+ let studioSelectionStore = (0, react.useContext)(_weaverse_react.StudioSelectionStoreContext);
674
682
  let { translationStore, themeTextStore, merchantOverrides } = useTranslation();
675
683
  let { isDesignMode, weaverseHost, weaverseVersion, isPreviewMode, isRevisionPreview } = weaverse;
676
684
  (0, react.useEffect)(() => {
677
685
  if (navigation.state !== "idle") return;
678
- let src = require_translation_store.getStudioScriptSrc({
686
+ let src = require_nested_key.getStudioScriptSrc({
679
687
  isDesignMode,
680
688
  isPreviewMode,
681
689
  isRevisionPreview,
@@ -685,12 +693,14 @@ function useStudio(weaverse) {
685
693
  if (!src) return;
686
694
  if (isRevisionPreview || isPreviewMode) (0, _weaverse_react.loadScript)(src).catch(console.error);
687
695
  else {
696
+ if (!studioSelectionStore) warnMissingSelectionStore();
688
697
  weaverse.internal = {
689
698
  ...weaverse.internal,
690
699
  navigate,
691
700
  revalidate,
692
701
  merchantOverrides,
693
702
  themeSettingsStore,
703
+ studioSelectionStore,
694
704
  translationStore,
695
705
  themeTextStore
696
706
  };
@@ -721,7 +731,7 @@ var WeaverseHydrogenItem = class extends _weaverse_react.WeaverseItemStore {
721
731
  console.error("Element is missing schema or not found!");
722
732
  return;
723
733
  }
724
- const schemaData = require_translation_store.generateDataFromSchema(this.Element.schema);
734
+ const schemaData = require_nested_key.generateDataFromSchema(this.Element.schema);
725
735
  Object.assign(this._store, schemaData, data, rest);
726
736
  }
727
737
  /** Registered component definition for this item's type. */
@@ -754,7 +764,7 @@ var WeaverseHydrogenItem = class extends _weaverse_react.WeaverseItemStore {
754
764
  let isSerializedItem = "id" in source && "type" in source;
755
765
  if (schema && (data !== void 0 || isSerializedItem)) {
756
766
  let { data: _previousData, ...store } = this._store;
757
- let schemaData = require_translation_store.generateDataFromSchema(schema);
767
+ let schemaData = require_nested_key.generateDataFromSchema(schema);
758
768
  this._store = {
759
769
  ...store,
760
770
  ...data === void 0 ? {} : { data },
@@ -931,7 +941,7 @@ function createWeaverseInstance(params) {
931
941
  runtimeWindow.__weaverses[normalizedParams.pageId] = weaverse;
932
942
  if (weaverse.isDesignMode) {
933
943
  weaverse.requestInfo = normalizedParams.requestInfo;
934
- if (require_translation_store.hasWeaverseStudio(window)) window.weaverseStudio.refreshStudio(normalizedParams);
944
+ if (require_nested_key.hasWeaverseStudio(window)) window.weaverseStudio.refreshStudio(normalizedParams);
935
945
  } else if (isReused) syncReusedInstance(weaverse, normalizedParams);
936
946
  return weaverse;
937
947
  }
@@ -1069,14 +1079,18 @@ function withWeaverse(Component, options) {
1069
1079
  const translationData = useTranslationData();
1070
1080
  const translationStoreRef = (0, react.useRef)(null);
1071
1081
  if (!translationStoreRef.current) translationStoreRef.current = new require_translation_store.TranslationStore();
1082
+ let [studioSelectionStore] = (0, react.useState)(() => new _weaverse_react.StudioSelectionStore());
1072
1083
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ThemeSettingsStoreContext.Provider, {
1073
1084
  value: themeSettingsStore,
1074
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(TranslationProvider, {
1075
- merchantOverrides: translationData.merchantOverrides,
1076
- staticContent: translationData.staticContent,
1077
- t: options?.t,
1078
- translationStore: translationStoreRef.current,
1079
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(StudioConnect, {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, { ...props })]
1085
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_weaverse_react.StudioSelectionStoreContext.Provider, {
1086
+ value: studioSelectionStore,
1087
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(TranslationProvider, {
1088
+ merchantOverrides: translationData.merchantOverrides,
1089
+ staticContent: translationData.staticContent,
1090
+ t: options?.t,
1091
+ translationStore: translationStoreRef.current,
1092
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(StudioConnect, {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, { ...props })]
1093
+ })
1080
1094
  })
1081
1095
  });
1082
1096
  };
@@ -1175,7 +1189,7 @@ const FETCH_RETRY_BACKOFF_MS = 300;
1175
1189
  * 5xx. A 4xx is deterministic (e.g. a genuine 404) — retrying just wastes time.
1176
1190
  */
1177
1191
  function isRetryableFetchError(error) {
1178
- if (!(error instanceof require_translation_store.WeaverseError)) return false;
1192
+ if (!(error instanceof require_nested_key.WeaverseError)) return false;
1179
1193
  if (error.code === "TIMEOUT_ERROR" || error.code === "NETWORK_ERROR" || error.code === "INVALID_RESPONSE") return true;
1180
1194
  return error.code === "FETCH_ERROR" && (error.statusCode ?? 0) >= 500;
1181
1195
  }
@@ -1199,7 +1213,7 @@ function isPlainObject(value) {
1199
1213
  * a page that has no item list is not an answer about this URL at all.
1200
1214
  */
1201
1215
  function isProjectEnvelope(payload) {
1202
- if (!isPlainObject(payload) || require_translation_store.hasError(payload) || !("page" in payload)) return false;
1216
+ if (!isPlainObject(payload) || require_nested_key.hasError(payload) || !("page" in payload)) return false;
1203
1217
  const { page, project } = payload;
1204
1218
  return (page === null || isPlainObject(page) && Array.isArray(page.items)) && (project == null || isPlainObject(project));
1205
1219
  }
@@ -1210,15 +1224,15 @@ function isProjectEnvelope(payload) {
1210
1224
  * saved settings, so schema defaults are the real configuration.
1211
1225
  */
1212
1226
  function isThemeConfigsEnvelope(payload) {
1213
- return isPlainObject(payload) && !require_translation_store.hasError(payload) && "theme" in payload && (payload.theme === null || isPlainObject(payload.theme));
1227
+ return isPlainObject(payload) && !require_nested_key.hasError(payload) && "theme" in payload && (payload.theme === null || isPlainObject(payload.theme));
1214
1228
  }
1215
1229
  /**
1216
1230
  * Classifies a page-load failure. `'absent'` is Builder's 404 for a project
1217
1231
  * that does not exist, which keeps resolving to `null` like before.
1218
1232
  */
1219
1233
  function classifyPageLoadFailure(error) {
1220
- if (error instanceof require_translation_store.WeaverseLoadError) return error.kind;
1221
- if (!(error instanceof require_translation_store.WeaverseError)) return "invalid-response";
1234
+ if (error instanceof require_nested_key.WeaverseLoadError) return error.kind;
1235
+ if (!(error instanceof require_nested_key.WeaverseError)) return "invalid-response";
1222
1236
  if (error.code === "TIMEOUT_ERROR" || error.code === "NETWORK_ERROR") return "unavailable";
1223
1237
  if (error.code === "INVALID_RESPONSE") return "invalid-response";
1224
1238
  if (error.code === "FETCH_ERROR") {
@@ -1247,9 +1261,9 @@ const builderPayloadValidators = /* @__PURE__ */ new WeakMap();
1247
1261
  * outages. Anything else is returned unchanged, so it is not reported as one.
1248
1262
  */
1249
1263
  function cachedTransportError(error, url) {
1250
- if (error instanceof require_translation_store.WeaverseError || !(error instanceof Error)) return error;
1251
- if (error.name === "AbortError" || error.name === "TimeoutError") return new require_translation_store.WeaverseError("Request timed out", "TIMEOUT_ERROR", void 0, { url });
1252
- if (error instanceof TypeError) return new require_translation_store.WeaverseError("Network error during fetch", "NETWORK_ERROR", void 0, {
1264
+ if (error instanceof require_nested_key.WeaverseError || !(error instanceof Error)) return error;
1265
+ if (error.name === "AbortError" || error.name === "TimeoutError") return new require_nested_key.WeaverseError("Request timed out", "TIMEOUT_ERROR", void 0, { url });
1266
+ if (error instanceof TypeError) return new require_nested_key.WeaverseError("Network error during fetch", "NETWORK_ERROR", void 0, {
1253
1267
  url,
1254
1268
  cause: error.message
1255
1269
  });
@@ -1371,9 +1385,9 @@ var WeaverseClient = class {
1371
1385
  * Throws WeaverseError if projectId cannot be resolved.
1372
1386
  */
1373
1387
  initializeConfigs(args) {
1374
- const baseConfigs = require_translation_store.getWeaverseConfigs(args.request, args.env);
1388
+ const baseConfigs = require_nested_key.getWeaverseConfigs(args.request, args.env);
1375
1389
  const resolvedProjectId = this.resolveProjectIdSync(args.projectId, args.request, args.env, baseConfigs);
1376
- if (!resolvedProjectId || resolvedProjectId.trim() === "") throw new require_translation_store.WeaverseError("Failed to initialize WeaverseClient: No valid projectId found. Set WEAVERSE_PROJECT_ID environment variable or provide projectId parameter.", "MISSING_PROJECT_ID");
1390
+ if (!resolvedProjectId || resolvedProjectId.trim() === "") throw new require_nested_key.WeaverseError("Failed to initialize WeaverseClient: No valid projectId found. Set WEAVERSE_PROJECT_ID environment variable or provide projectId parameter.", "MISSING_PROJECT_ID");
1377
1391
  this.configs = {
1378
1392
  ...baseConfigs,
1379
1393
  projectId: resolvedProjectId
@@ -1422,7 +1436,7 @@ var WeaverseClient = class {
1422
1436
  * ```
1423
1437
  */
1424
1438
  extractErrorInfo(error) {
1425
- if (error instanceof require_translation_store.WeaverseError) return {
1439
+ if (error instanceof require_nested_key.WeaverseError) return {
1426
1440
  message: error.message,
1427
1441
  code: error.code,
1428
1442
  context: error.context,
@@ -1479,27 +1493,27 @@ var WeaverseClient = class {
1479
1493
  * Used for design mode and preview mode overrides.
1480
1494
  */
1481
1495
  resolveFromQueryParams(request) {
1482
- return require_translation_store.getRequestQueries(request).weaverseProjectId || null;
1496
+ return require_nested_key.getRequestQueries(request).weaverseProjectId || null;
1483
1497
  }
1484
1498
  /**
1485
1499
  * Priority 2: Resolve projectId from function parameter.
1486
1500
  * Detects and rejects async functions with helpful error.
1487
1501
  */
1488
1502
  resolveFromFunction(projectId) {
1489
- if (!require_translation_store.isProjectIdFunction(projectId)) return null;
1490
- if (projectId.constructor.name === "AsyncFunction") throw new require_translation_store.WeaverseError("Async projectId functions must be awaited before passing to WeaverseClient. Use: projectId: await getProjectAsync() instead of: projectId: getProjectAsync", "ASYNC_PROJECT_ID");
1503
+ if (!require_nested_key.isProjectIdFunction(projectId)) return null;
1504
+ if (projectId.constructor.name === "AsyncFunction") throw new require_nested_key.WeaverseError("Async projectId functions must be awaited before passing to WeaverseClient. Use: projectId: await getProjectAsync() instead of: projectId: getProjectAsync", "ASYNC_PROJECT_ID");
1491
1505
  try {
1492
1506
  const result = projectId();
1493
- if (result instanceof Promise) throw new require_translation_store.WeaverseError("Async projectId functions must be awaited before passing to WeaverseClient. Use: projectId: await getProjectAsync() instead of: projectId: getProjectAsync", "ASYNC_PROJECT_ID");
1507
+ if (result instanceof Promise) throw new require_nested_key.WeaverseError("Async projectId functions must be awaited before passing to WeaverseClient. Use: projectId: await getProjectAsync() instead of: projectId: getProjectAsync", "ASYNC_PROJECT_ID");
1494
1508
  if (result && result.trim() !== "") {
1495
1509
  const trimmed = result.trim();
1496
1510
  const validation = this.validateProjectId(trimmed);
1497
1511
  if (validation.valid) return trimmed;
1498
- throw new require_translation_store.WeaverseError(validation.error || "Invalid projectId format", "INVALID_PROJECT_ID");
1512
+ throw new require_nested_key.WeaverseError(validation.error || "Invalid projectId format", "INVALID_PROJECT_ID");
1499
1513
  }
1500
1514
  } catch (err) {
1501
- if (err instanceof require_translation_store.WeaverseError) throw err;
1502
- throw new require_translation_store.WeaverseError(`Failed to evaluate projectId function: ${err instanceof Error ? err.message : String(err)}`, "PROJECT_ID_FUNCTION_ERROR", void 0, { cause: err instanceof Error ? err.stack : String(err) });
1515
+ if (err instanceof require_nested_key.WeaverseError) throw err;
1516
+ throw new require_nested_key.WeaverseError(`Failed to evaluate projectId function: ${err instanceof Error ? err.message : String(err)}`, "PROJECT_ID_FUNCTION_ERROR", void 0, { cause: err instanceof Error ? err.stack : String(err) });
1503
1517
  }
1504
1518
  return null;
1505
1519
  }
@@ -1512,13 +1526,13 @@ var WeaverseClient = class {
1512
1526
  if (trimmed === "") return null;
1513
1527
  const validation = this.validateProjectId(trimmed);
1514
1528
  if (validation.valid) return trimmed;
1515
- throw new require_translation_store.WeaverseError(validation.error || "Invalid projectId format", "INVALID_PROJECT_ID");
1529
+ throw new require_nested_key.WeaverseError(validation.error || "Invalid projectId format", "INVALID_PROJECT_ID");
1516
1530
  }
1517
1531
  /**
1518
1532
  * Priority 4: Resolve projectId from environment variables.
1519
1533
  */
1520
1534
  resolveFromEnvironment(baseConfigs, request, env) {
1521
- const configs = baseConfigs || require_translation_store.getWeaverseConfigs(request, env);
1535
+ const configs = baseConfigs || require_nested_key.getWeaverseConfigs(request, env);
1522
1536
  if (configs.projectId && configs.projectId.trim() !== "") return configs.projectId.trim();
1523
1537
  return null;
1524
1538
  }
@@ -1536,7 +1550,7 @@ var WeaverseClient = class {
1536
1550
  });
1537
1551
  if (!response.ok) {
1538
1552
  const errorText = await response.text();
1539
- throw new require_translation_store.WeaverseError(`HTTP ${response.status}: ${response.statusText}`, "FETCH_ERROR", response.status, {
1553
+ throw new require_nested_key.WeaverseError(`HTTP ${response.status}: ${response.statusText}`, "FETCH_ERROR", response.status, {
1540
1554
  url,
1541
1555
  errorText
1542
1556
  });
@@ -1546,19 +1560,19 @@ var WeaverseClient = class {
1546
1560
  data = await response.json();
1547
1561
  } catch (parseError) {
1548
1562
  if (parseError?.name === "AbortError") throw parseError;
1549
- throw new require_translation_store.WeaverseError("Response body is not valid JSON", "INVALID_RESPONSE", response.status, { url });
1563
+ throw new require_nested_key.WeaverseError("Response body is not valid JSON", "INVALID_RESPONSE", response.status, { url });
1550
1564
  }
1551
1565
  return {
1552
1566
  data,
1553
1567
  response
1554
1568
  };
1555
1569
  } catch (err) {
1556
- if (err instanceof require_translation_store.WeaverseError) throw err;
1557
- if (err.name === "AbortError") throw new require_translation_store.WeaverseError(`Request timeout after ${timeoutMs}ms`, "TIMEOUT_ERROR", void 0, {
1570
+ if (err instanceof require_nested_key.WeaverseError) throw err;
1571
+ if (err.name === "AbortError") throw new require_nested_key.WeaverseError(`Request timeout after ${timeoutMs}ms`, "TIMEOUT_ERROR", void 0, {
1558
1572
  url,
1559
1573
  timeoutMs
1560
1574
  });
1561
- throw new require_translation_store.WeaverseError("Network error during fetch", "NETWORK_ERROR", void 0, {
1575
+ throw new require_nested_key.WeaverseError("Network error during fetch", "NETWORK_ERROR", void 0, {
1562
1576
  url,
1563
1577
  cause: err instanceof Error ? err.message : String(err)
1564
1578
  });
@@ -1627,7 +1641,7 @@ var WeaverseClient = class {
1627
1641
  if (fetchOptions.signal?.aborted) return false;
1628
1642
  const payload = parseResponseText(await readText());
1629
1643
  if (validateBuilderPayload && !validateBuilderPayload(payload)) return false;
1630
- return !require_translation_store.hasError(payload) && payload !== null && payload !== "";
1644
+ return !require_nested_key.hasError(payload) && payload !== null && payload !== "";
1631
1645
  }
1632
1646
  });
1633
1647
  text = await response.text();
@@ -1635,7 +1649,7 @@ var WeaverseClient = class {
1635
1649
  throw validateBuilderPayload ? cachedTransportError(error, url) : error;
1636
1650
  }
1637
1651
  if (!response.ok) {
1638
- if (validateBuilderPayload) throw new require_translation_store.WeaverseError(`HTTP ${response.status}: ${response.statusText}`, "FETCH_ERROR", response.status, { url });
1652
+ if (validateBuilderPayload) throw new require_nested_key.WeaverseError(`HTTP ${response.status}: ${response.statusText}`, "FETCH_ERROR", response.status, { url });
1639
1653
  return null;
1640
1654
  }
1641
1655
  return parseResponseText(text);
@@ -1665,7 +1679,7 @@ var WeaverseClient = class {
1665
1679
  * ```
1666
1680
  */
1667
1681
  loadThemeSettings = async (strategy) => {
1668
- const defaultThemeSettings = require_translation_store.generateDataFromSchema(this.themeSchema);
1682
+ const defaultThemeSettings = require_nested_key.generateDataFromSchema(this.themeSchema);
1669
1683
  try {
1670
1684
  const { configs } = this;
1671
1685
  const { projectId, isDesignMode } = configs;
@@ -1689,7 +1703,7 @@ var WeaverseClient = class {
1689
1703
  bodyFreeCacheRequests.add(themeSettingsOptions);
1690
1704
  builderPayloadValidators.set(themeSettingsOptions, isThemeConfigsEnvelope);
1691
1705
  const [data, merchantOverrides] = await Promise.all([this.fetchWithCache(url, themeSettingsOptions), this.fetchMerchantOverrides(strategy)]);
1692
- if (!isThemeConfigsEnvelope(data)) throw new require_translation_store.WeaverseError("Invalid theme settings response format", "INVALID_RESPONSE");
1706
+ if (!isThemeConfigsEnvelope(data)) throw new require_nested_key.WeaverseError("Invalid theme settings response format", "INVALID_RESPONSE");
1693
1707
  let result = data;
1694
1708
  if (this.themeSchema?.settings || this.themeSchema?.inspector) if (!result.theme || typeof result.theme !== "object") result.theme = defaultThemeSettings;
1695
1709
  else result.theme = {
@@ -1839,7 +1853,7 @@ var WeaverseClient = class {
1839
1853
  const message = typeof params.projectId === "string" ? this.validateProjectId(params.projectId).error : `must be a string. Received: ${typeof params.projectId}`;
1840
1854
  if (message) {
1841
1855
  console.error(`Route-level projectId validation failed: ${message}`);
1842
- if (this.throwPageLoadFailures) throw new require_translation_store.WeaverseLoadError("Route-level projectId validation failed", "configuration");
1856
+ if (this.throwPageLoadFailures) throw new require_nested_key.WeaverseLoadError("Route-level projectId validation failed", "configuration");
1843
1857
  return null;
1844
1858
  }
1845
1859
  }
@@ -1847,8 +1861,8 @@ var WeaverseClient = class {
1847
1861
  const { request, basePageRequestBody, basePageConfigs } = this;
1848
1862
  const { projectId: clientProjectId, weaverseHost, isPreviewMode, sectionType } = this.configs;
1849
1863
  const effectiveProjectId = params.projectId || clientProjectId;
1850
- if (isPreviewMode) return require_translation_store.getPreviewData(sectionType || "", this.components, weaverseHost);
1851
- if (!effectiveProjectId) throw new require_translation_store.WeaverseLoadError("Missing Weaverse projectId!", "configuration");
1864
+ if (isPreviewMode) return require_nested_key.getPreviewData(sectionType || "", this.components, weaverseHost);
1865
+ if (!effectiveProjectId) throw new require_nested_key.WeaverseLoadError("Missing Weaverse projectId!", "configuration");
1852
1866
  const { strategy, ...pageLoadParams } = params;
1853
1867
  const body = {
1854
1868
  ...basePageRequestBody,
@@ -1874,9 +1888,9 @@ var WeaverseClient = class {
1874
1888
  };
1875
1889
  builderPayloadValidators.set(projectOptions, isProjectEnvelope);
1876
1890
  const projectData = await this.fetchWithCache(url, projectOptions);
1877
- if (require_translation_store.hasError(projectData)) throw new require_translation_store.WeaverseLoadError("Weaverse API returned an error body", "invalid-response");
1891
+ if (require_nested_key.hasError(projectData)) throw new require_nested_key.WeaverseLoadError("Weaverse API returned an error body", "invalid-response");
1878
1892
  if (!isProjectEnvelope(projectData)) {
1879
- if (this.throwPageLoadFailures) throw new require_translation_store.WeaverseLoadError("Invalid project data structure received from API", "invalid-response");
1893
+ if (this.throwPageLoadFailures) throw new require_nested_key.WeaverseLoadError("Invalid project data structure received from API", "invalid-response");
1880
1894
  console.warn("Invalid project data structure received from API, using fallback data", { projectId: effectiveProjectId });
1881
1895
  }
1882
1896
  const responseData = projectData;
@@ -1909,7 +1923,7 @@ var WeaverseClient = class {
1909
1923
  ...basePageConfigs,
1910
1924
  requestInfo: {
1911
1925
  i18n: this.locale,
1912
- queries: require_translation_store.getRequestQueries(request),
1926
+ queries: require_nested_key.getRequestQueries(request),
1913
1927
  pathname: this.parsedUrl.pathname,
1914
1928
  search: this.parsedUrl.search
1915
1929
  }
@@ -1919,7 +1933,7 @@ var WeaverseClient = class {
1919
1933
  const failure = classifyPageLoadFailure(error);
1920
1934
  const errorMessage = "❌ Page load failed";
1921
1935
  const errorContext = { projectId: params.projectId || this.configs.projectId };
1922
- if (error instanceof require_translation_store.WeaverseError) console.error(errorMessage, {
1936
+ if (error instanceof require_nested_key.WeaverseError) console.error(errorMessage, {
1923
1937
  code: error.code,
1924
1938
  message: error.message,
1925
1939
  ...errorContext,
@@ -1935,8 +1949,8 @@ var WeaverseClient = class {
1935
1949
  ...errorContext
1936
1950
  });
1937
1951
  if (failure === "absent" || !this.throwPageLoadFailures) return null;
1938
- if (error instanceof require_translation_store.WeaverseLoadError) throw error;
1939
- throw new require_translation_store.WeaverseLoadError("Unable to load Weaverse page", failure, error instanceof require_translation_store.WeaverseError ? error.statusCode : void 0);
1952
+ if (error instanceof require_nested_key.WeaverseLoadError) throw error;
1953
+ throw new require_nested_key.WeaverseLoadError("Unable to load Weaverse page", failure, error instanceof require_nested_key.WeaverseError ? error.statusCode : void 0);
1940
1954
  }
1941
1955
  };
1942
1956
  /** Executes the registered loader for one component and attaches its result. */
@@ -1949,7 +1963,7 @@ var WeaverseClient = class {
1949
1963
  ...item,
1950
1964
  loaderData: await Promise.resolve(loader({
1951
1965
  data: {
1952
- ...require_translation_store.generateDataFromSchema(component.schema),
1966
+ ...require_nested_key.generateDataFromSchema(component.schema),
1953
1967
  ...data
1954
1968
  },
1955
1969
  weaverse: this
@@ -2072,4 +2086,4 @@ Object.defineProperty(exports, "withWeaverse", {
2072
2086
  }
2073
2087
  });
2074
2088
 
2075
- //# sourceMappingURL=weaverse-client-CNPZ6ueD.js.map
2089
+ //# sourceMappingURL=weaverse-client-C9IgIH7O.js.map