@weaverse/hydrogen 6.1.1 → 6.1.2
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/index.js +6 -5
- package/dist/index.mjs +2 -1
- package/dist/internal.js +17 -16
- package/dist/internal.mjs +3 -2
- package/dist/{translation-store-BpPWqZ0B.js → nested-key-CR3-YMFi.js} +1 -68
- package/dist/nested-key-CR3-YMFi.js.map +1 -0
- package/dist/{translation-store-C42QdI0e.mjs → nested-key-_k9aW_Wd.mjs} +2 -57
- package/dist/nested-key-_k9aW_Wd.mjs.map +1 -0
- package/dist/next.js +8 -11
- package/dist/next.mjs +3 -4
- package/dist/react-router.js +13 -6
- package/dist/react-router.mjs +5 -4
- package/dist/react.js +6 -0
- package/dist/react.mjs +2 -2
- package/dist/translation-store-4fAV771j.js +69 -0
- package/dist/translation-store-4fAV771j.js.map +1 -0
- package/dist/translation-store-BBrw0FOk.mjs +58 -0
- package/dist/translation-store-BBrw0FOk.mjs.map +1 -0
- package/dist/types/WeaverseHydrogenRoot.d.ts.map +1 -1
- package/dist/types/next.d.ts +8 -3
- package/dist/types/next.d.ts.map +1 -1
- package/dist/types/react.d.ts +1 -1
- package/dist/types/react.d.ts.map +1 -1
- package/dist/types/types.d.ts +7 -1
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/use-studio.d.ts.map +1 -1
- package/dist/{weaverse-client-CNPZ6ueD.js → weaverse-client-C9IgIH7O.js} +69 -55
- package/dist/weaverse-client-C9IgIH7O.js.map +1 -0
- package/dist/{weaverse-client-6ztuUmvu.mjs → weaverse-client-D59mBW0j.mjs} +24 -10
- package/dist/weaverse-client-D59mBW0j.mjs.map +1 -0
- package/package.json +5 -4
- package/src/WeaverseHydrogenRoot.tsx +15 -9
- package/src/next.ts +23 -4
- package/src/react.ts +2 -0
- package/src/types.ts +7 -0
- package/src/utils/use-studio.ts +20 -2
- package/dist/translation-store-BpPWqZ0B.js.map +0 -1
- package/dist/translation-store-C42QdI0e.mjs.map +0 -1
- package/dist/weaverse-client-6ztuUmvu.mjs.map +0 -1
- package/dist/weaverse-client-CNPZ6ueD.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
const
|
|
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 ?
|
|
51
|
-
const staticValue =
|
|
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 (
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 (
|
|
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.
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
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
|
|
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) ||
|
|
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) && !
|
|
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
|
|
1221
|
-
if (!(error instanceof
|
|
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
|
|
1251
|
-
if (error.name === "AbortError" || error.name === "TimeoutError") return new
|
|
1252
|
-
if (error instanceof TypeError) return new
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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 (!
|
|
1490
|
-
if (projectId.constructor.name === "AsyncFunction") throw new
|
|
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
|
|
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
|
|
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
|
|
1502
|
-
throw new
|
|
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
|
|
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 ||
|
|
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
|
|
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
|
|
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
|
|
1557
|
-
if (err.name === "AbortError") throw new
|
|
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
|
|
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 !
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
1851
|
-
if (!effectiveProjectId) throw new
|
|
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 (
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
1939
|
-
throw new
|
|
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
|
-
...
|
|
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-
|
|
2089
|
+
//# sourceMappingURL=weaverse-client-C9IgIH7O.js.map
|