@weaverse/hydrogen 2.7.2 → 2.8.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/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ElementData, ElementSchema, BasicInput as BasicInput$1, WeaverseElement, WeaverseCoreParams, WeaverseProjectDataType, WeaverseResourcePickerData, Weaverse, PlatformTypeEnum, WeaverseItemStore } from '@weaverse/react';
2
- export { InputType, WeaverseImage, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
2
+ export { InputType, PositionInputValue, WeaverseImage, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
3
3
  import { NavigateFunction } from '@remix-run/react';
4
4
  import { createWithCache, Storefront } from '@shopify/hydrogen';
5
5
  import { LanguageCode, CountryCode, CurrencyCode } from '@shopify/hydrogen/storefront-api-types';
@@ -112,9 +112,15 @@ interface HydrogenComponentSchema extends ElementSchema {
112
112
  type BasicInput = BasicInput$1 & {
113
113
  shouldRevalidate?: boolean;
114
114
  };
115
+ type HeadingInputType = 'heading';
116
+ type HeadingInput = {
117
+ type: HeadingInputType;
118
+ label: string;
119
+ [key: string]: any;
120
+ };
115
121
  interface InspectorGroup {
116
122
  group: string;
117
- inputs: BasicInput[];
123
+ inputs: (BasicInput | HeadingInput)[];
118
124
  }
119
125
  interface HydrogenComponentProps<L = any> extends WeaverseElement {
120
126
  className?: string;
@@ -134,7 +140,6 @@ type WeaverseLoaderRequestInfo = {
134
140
  };
135
141
  type WeaverseStorefrontData = {
136
142
  id?: string;
137
- __cachedId?: string;
138
143
  rootId: string;
139
144
  name: string;
140
145
  items: HydrogenComponentData[];
@@ -221,9 +226,9 @@ interface WeaverseLoaderData {
221
226
  }
222
227
  interface HydrogenPageData extends WeaverseProjectDataType {
223
228
  id: string;
224
- pageId: string;
225
229
  name: string;
226
230
  items: HydrogenComponentData[];
231
+ __cacheId?: string;
227
232
  [key: string]: any;
228
233
  }
229
234
  interface WeaverseHydrogenRootProps {
@@ -267,6 +272,7 @@ type FetchProjectPayload = {
267
272
  page: HydrogenPageData;
268
273
  project: HydrogenProjectType;
269
274
  pageAssignment: HydrogenPageAssignment;
275
+ error?: string;
270
276
  };
271
277
  type HydrogenThemeEnv = {
272
278
  WEAVERSE_PROJECT_ID: string;
@@ -304,7 +310,7 @@ type WeaverseArticle = WeaverseResourcePickerData;
304
310
  declare global {
305
311
  interface Window {
306
312
  __weaverse: WeaverseHydrogen;
307
- __weaverses: WeaverseHydrogen[];
313
+ __weaverses: Record<string, WeaverseHydrogen>;
308
314
  }
309
315
  }
310
316
 
@@ -336,4 +342,4 @@ declare class WeaverseHydrogenItem extends WeaverseItemStore {
336
342
  set data(update: HydrogenComponentData);
337
343
  }
338
344
 
339
- export { type AllCacheOptions, type BasicInput, type ComponentLoaderArgs, type FetchProjectPayload, type FetchProjectRequestBody, type FetchWithCacheOptions, type HydrogenComponent, type HydrogenComponentData, type HydrogenComponentLoaderFunction, type HydrogenComponentPresets, type HydrogenComponentProps, type HydrogenComponentSchema, type HydrogenElement, type HydrogenPageAssignment, type HydrogenPageConfigs, type HydrogenPageData, type HydrogenProjectConfig, type HydrogenProjectType, type HydrogenThemeEnv, type HydrogenThemeInfo, type HydrogenThemeSchema, type HydrogenThemeSettings, type HydrogenToolbarAction, type I18nLocale, type InspectorGroup, type LoadPageParams, type Locale, type Localizations, type PageAssignmentParams, type PageType, type PublicEnv, type RootRouteData, type RouteLoaderArgs, ThemeSettingsStore, type WeaverseArticle, type WeaverseBlog, WeaverseClient, type WeaverseClientArgs, type WeaverseCollection, WeaverseHydrogen, WeaverseHydrogenItem, type WeaverseHydrogenParams, WeaverseHydrogenRoot, type WeaverseHydrogenRootProps, type WeaverseInternal, type WeaverseLoaderData, type WeaverseLoaderRequestInfo, type WeaverseProduct, type WeaverseProjectConfigs, type WeaverseStorefrontData, type WeaverseStudioQueries, type WeaverseThemeConfigs, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, useThemeSettings, withWeaverse };
345
+ export { type AllCacheOptions, type BasicInput, type ComponentLoaderArgs, type FetchProjectPayload, type FetchProjectRequestBody, type FetchWithCacheOptions, type HeadingInput, type HeadingInputType, type HydrogenComponent, type HydrogenComponentData, type HydrogenComponentLoaderFunction, type HydrogenComponentPresets, type HydrogenComponentProps, type HydrogenComponentSchema, type HydrogenElement, type HydrogenPageAssignment, type HydrogenPageConfigs, type HydrogenPageData, type HydrogenProjectConfig, type HydrogenProjectType, type HydrogenThemeEnv, type HydrogenThemeInfo, type HydrogenThemeSchema, type HydrogenThemeSettings, type HydrogenToolbarAction, type I18nLocale, type InspectorGroup, type LoadPageParams, type Locale, type Localizations, type PageAssignmentParams, type PageType, type PublicEnv, type RootRouteData, type RouteLoaderArgs, ThemeSettingsStore, type WeaverseArticle, type WeaverseBlog, WeaverseClient, type WeaverseClientArgs, type WeaverseCollection, WeaverseHydrogen, WeaverseHydrogenItem, type WeaverseHydrogenParams, WeaverseHydrogenRoot, type WeaverseHydrogenRootProps, type WeaverseInternal, type WeaverseLoaderData, type WeaverseLoaderRequestInfo, type WeaverseProduct, type WeaverseProjectConfigs, type WeaverseStorefrontData, type WeaverseStudioQueries, type WeaverseThemeConfigs, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, useThemeSettings, withWeaverse };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ElementData, ElementSchema, BasicInput as BasicInput$1, WeaverseElement, WeaverseCoreParams, WeaverseProjectDataType, WeaverseResourcePickerData, Weaverse, PlatformTypeEnum, WeaverseItemStore } from '@weaverse/react';
2
- export { InputType, WeaverseImage, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
2
+ export { InputType, PositionInputValue, WeaverseImage, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
3
3
  import { NavigateFunction } from '@remix-run/react';
4
4
  import { createWithCache, Storefront } from '@shopify/hydrogen';
5
5
  import { LanguageCode, CountryCode, CurrencyCode } from '@shopify/hydrogen/storefront-api-types';
@@ -112,9 +112,15 @@ interface HydrogenComponentSchema extends ElementSchema {
112
112
  type BasicInput = BasicInput$1 & {
113
113
  shouldRevalidate?: boolean;
114
114
  };
115
+ type HeadingInputType = 'heading';
116
+ type HeadingInput = {
117
+ type: HeadingInputType;
118
+ label: string;
119
+ [key: string]: any;
120
+ };
115
121
  interface InspectorGroup {
116
122
  group: string;
117
- inputs: BasicInput[];
123
+ inputs: (BasicInput | HeadingInput)[];
118
124
  }
119
125
  interface HydrogenComponentProps<L = any> extends WeaverseElement {
120
126
  className?: string;
@@ -134,7 +140,6 @@ type WeaverseLoaderRequestInfo = {
134
140
  };
135
141
  type WeaverseStorefrontData = {
136
142
  id?: string;
137
- __cachedId?: string;
138
143
  rootId: string;
139
144
  name: string;
140
145
  items: HydrogenComponentData[];
@@ -221,9 +226,9 @@ interface WeaverseLoaderData {
221
226
  }
222
227
  interface HydrogenPageData extends WeaverseProjectDataType {
223
228
  id: string;
224
- pageId: string;
225
229
  name: string;
226
230
  items: HydrogenComponentData[];
231
+ __cacheId?: string;
227
232
  [key: string]: any;
228
233
  }
229
234
  interface WeaverseHydrogenRootProps {
@@ -267,6 +272,7 @@ type FetchProjectPayload = {
267
272
  page: HydrogenPageData;
268
273
  project: HydrogenProjectType;
269
274
  pageAssignment: HydrogenPageAssignment;
275
+ error?: string;
270
276
  };
271
277
  type HydrogenThemeEnv = {
272
278
  WEAVERSE_PROJECT_ID: string;
@@ -304,7 +310,7 @@ type WeaverseArticle = WeaverseResourcePickerData;
304
310
  declare global {
305
311
  interface Window {
306
312
  __weaverse: WeaverseHydrogen;
307
- __weaverses: WeaverseHydrogen[];
313
+ __weaverses: Record<string, WeaverseHydrogen>;
308
314
  }
309
315
  }
310
316
 
@@ -336,4 +342,4 @@ declare class WeaverseHydrogenItem extends WeaverseItemStore {
336
342
  set data(update: HydrogenComponentData);
337
343
  }
338
344
 
339
- export { type AllCacheOptions, type BasicInput, type ComponentLoaderArgs, type FetchProjectPayload, type FetchProjectRequestBody, type FetchWithCacheOptions, type HydrogenComponent, type HydrogenComponentData, type HydrogenComponentLoaderFunction, type HydrogenComponentPresets, type HydrogenComponentProps, type HydrogenComponentSchema, type HydrogenElement, type HydrogenPageAssignment, type HydrogenPageConfigs, type HydrogenPageData, type HydrogenProjectConfig, type HydrogenProjectType, type HydrogenThemeEnv, type HydrogenThemeInfo, type HydrogenThemeSchema, type HydrogenThemeSettings, type HydrogenToolbarAction, type I18nLocale, type InspectorGroup, type LoadPageParams, type Locale, type Localizations, type PageAssignmentParams, type PageType, type PublicEnv, type RootRouteData, type RouteLoaderArgs, ThemeSettingsStore, type WeaverseArticle, type WeaverseBlog, WeaverseClient, type WeaverseClientArgs, type WeaverseCollection, WeaverseHydrogen, WeaverseHydrogenItem, type WeaverseHydrogenParams, WeaverseHydrogenRoot, type WeaverseHydrogenRootProps, type WeaverseInternal, type WeaverseLoaderData, type WeaverseLoaderRequestInfo, type WeaverseProduct, type WeaverseProjectConfigs, type WeaverseStorefrontData, type WeaverseStudioQueries, type WeaverseThemeConfigs, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, useThemeSettings, withWeaverse };
345
+ export { type AllCacheOptions, type BasicInput, type ComponentLoaderArgs, type FetchProjectPayload, type FetchProjectRequestBody, type FetchWithCacheOptions, type HeadingInput, type HeadingInputType, type HydrogenComponent, type HydrogenComponentData, type HydrogenComponentLoaderFunction, type HydrogenComponentPresets, type HydrogenComponentProps, type HydrogenComponentSchema, type HydrogenElement, type HydrogenPageAssignment, type HydrogenPageConfigs, type HydrogenPageData, type HydrogenProjectConfig, type HydrogenProjectType, type HydrogenThemeEnv, type HydrogenThemeInfo, type HydrogenThemeSchema, type HydrogenThemeSettings, type HydrogenToolbarAction, type I18nLocale, type InspectorGroup, type LoadPageParams, type Locale, type Localizations, type PageAssignmentParams, type PageType, type PublicEnv, type RootRouteData, type RouteLoaderArgs, ThemeSettingsStore, type WeaverseArticle, type WeaverseBlog, WeaverseClient, type WeaverseClientArgs, type WeaverseCollection, WeaverseHydrogen, WeaverseHydrogenItem, type WeaverseHydrogenParams, WeaverseHydrogenRoot, type WeaverseHydrogenRootProps, type WeaverseInternal, type WeaverseLoaderData, type WeaverseLoaderRequestInfo, type WeaverseProduct, type WeaverseProjectConfigs, type WeaverseStorefrontData, type WeaverseStudioQueries, type WeaverseThemeConfigs, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, useThemeSettings, withWeaverse };
package/dist/index.js CHANGED
@@ -79,17 +79,13 @@ var import_react2 = require("@weaverse/react");
79
79
  var import_react3 = require("react");
80
80
  function createCachedWeaverseInstance(params, components) {
81
81
  if (import_react2.isBrowser) {
82
- window.__weaverses = window.__weaverses || [];
83
- let weaverse = window.__weaverses.find((w) => {
84
- let { pathname } = w.requestInfo;
85
- return pathname === params.requestInfo.pathname;
86
- });
82
+ window.__weaverses = window.__weaverses || {};
83
+ let weaverse = window.__weaverses[params.pageId];
87
84
  if (!weaverse) {
88
85
  weaverse = new WeaverseHydrogen(params, components);
89
- window.__weaverses.push(weaverse);
86
+ window.__weaverses[params.pageId] = weaverse;
90
87
  } else if (weaverse.isDesignMode) {
91
- weaverse.requestInfo = params.requestInfo;
92
- weaverse.setProjectData(params.data);
88
+ window.weaverseStudio?.refresh(params);
93
89
  }
94
90
  return weaverse;
95
91
  }
@@ -185,41 +181,38 @@ function useThemeContext() {
185
181
  // src/hooks/use-studio.ts
186
182
  function useStudio(weaverse) {
187
183
  let { revalidate } = (0, import_react7.useRevalidator)();
184
+ let { pathname, search } = (0, import_react7.useLocation)();
188
185
  let navigate = (0, import_react7.useNavigate)();
189
186
  let themeSettingsStore = useThemeContext();
190
187
  let { isDesignMode, weaverseHost, weaverseVersion } = weaverse;
191
- let isStudio = import_react8.isIframe && isDesignMode && weaverseHost && weaverseVersion;
192
188
  (0, import_react9.useEffect)(() => {
193
- if (isStudio) {
189
+ if (isDesignMode) {
194
190
  weaverse.internal = {
195
191
  ...weaverse.internal,
196
192
  navigate,
197
193
  revalidate,
198
194
  themeSettingsStore
199
195
  };
200
- window.__weaverse = weaverse;
201
- if (window.weaverseStudio) {
202
- window.weaverseStudio.init(weaverse);
203
- } else {
204
- let studioSrc = `${weaverseHost}/static/studio/hydrogen/index.js?v=${weaverseVersion}`;
205
- (0, import_react8.loadScript)(studioSrc);
206
- }
196
+ let studioSrc = `${weaverseHost}/static/studio/hydrogen/index.js?v=${weaverseVersion}`;
197
+ (0, import_react8.loadScript)(studioSrc).then(() => {
198
+ window.weaverseStudio?.init(weaverse);
199
+ }).catch(console.error);
207
200
  }
208
- }, [weaverse.requestInfo]);
201
+ }, [pathname, search]);
209
202
  }
210
203
 
211
204
  // src/pixel.tsx
212
205
  var import_react10 = __toESM(require("react"));
213
- var Pixel = ({ baseUrl, projectId, pageId }) => {
206
+ function Pixel({ baseUrl, projectId, pageId }) {
214
207
  const url = `${baseUrl}/api/public/px?projectId=${projectId}&pageId=${pageId}`;
215
208
  return /* @__PURE__ */ import_react10.default.createElement("img", { src: url, alt: "weaverse pixel", style: { display: "none" } });
216
- };
217
- var WeaversePixel = ({ context }) => {
209
+ }
210
+ function WeaversePixel({ context }) {
218
211
  let { projectId, pageId, weaverseHost, isDesignMode } = context;
219
212
  if (isDesignMode || !projectId || !pageId || !weaverseHost)
220
213
  return null;
221
214
  return /* @__PURE__ */ import_react10.default.createElement(Pixel, { baseUrl: weaverseHost, projectId, pageId });
222
- };
215
+ }
223
216
 
224
217
  // src/WeaverseHydrogenRoot.tsx
225
218
  var WeaverseHydrogenRoot = (0, import_react13.memo)(
@@ -270,7 +263,7 @@ var package_default = {
270
263
  name: "@weaverse/hydrogen",
271
264
  author: "Weaverse Team",
272
265
  description: "Components, hooks, and utilities for building Shopify Hydrogen websites with Weaverse",
273
- version: "2.7.2",
266
+ version: "2.8.0",
274
267
  license: "MIT",
275
268
  main: "dist/index.js",
276
269
  typings: "dist/index.d.ts",
@@ -308,7 +301,7 @@ var package_default = {
308
301
  singleQuote: true
309
302
  },
310
303
  dependencies: {
311
- "@weaverse/react": "2.7.2",
304
+ "@weaverse/react": "2.8.0",
312
305
  "react-error-boundary": "^4.0.11"
313
306
  },
314
307
  devDependencies: {
@@ -337,7 +330,13 @@ function getWeaverseConfigs(request, env) {
337
330
  PUBLIC_STOREFRONT_API_TOKEN
338
331
  } = env || {};
339
332
  let envFromProcess = typeof process !== "undefined" && process.env || {};
340
- let { weaverseProjectId, weaverseHost, isDesignMode, weaverseVersion, weaverseApiKey } = queries;
333
+ let {
334
+ weaverseProjectId,
335
+ weaverseHost,
336
+ isDesignMode,
337
+ weaverseVersion,
338
+ weaverseApiKey
339
+ } = queries;
341
340
  return {
342
341
  projectId: weaverseProjectId || WEAVERSE_PROJECT_ID || envFromProcess.WEAVERSE_PROJECT_ID || "",
343
342
  weaverseHost: weaverseHost || WEAVERSE_HOST || envFromProcess.WEAVERSE_HOST || "https://weaverse.io",
@@ -413,10 +412,13 @@ var WeaverseClient = class {
413
412
  } = options;
414
413
  let res = this.withCache(cacheKey, strategy, async () => {
415
414
  let cacheControlHeader = (0, import_hydrogen.generateCacheControlHeader)(strategy);
416
- let response = await fetch(url, { ...reqInit, headers: {
417
- "Cache-Control": cacheControlHeader,
418
- ...reqInit.headers
419
- } });
415
+ let response = await fetch(url, {
416
+ ...reqInit,
417
+ headers: {
418
+ "Cache-Control": cacheControlHeader,
419
+ ...reqInit.headers
420
+ }
421
+ });
420
422
  if (!response.ok) {
421
423
  let error = await response.text();
422
424
  let { status, statusText } = response;
@@ -504,12 +506,15 @@ var WeaverseClient = class {
504
506
  strategy
505
507
  });
506
508
  }
509
+ if (payload?.error) {
510
+ throw new Error(payload?.error);
511
+ }
507
512
  let { page, project, pageAssignment } = payload;
508
- if (!page || !project || !pageAssignment) {
509
- throw new Error(
510
- // @ts-ignore
511
- payload?.error || "Invalid Weaverse project payload!"
512
- );
513
+ if (!project) {
514
+ throw new Error(`Weaverse project not found. Id: ${projectId}`);
515
+ }
516
+ if (!page) {
517
+ throw new Error(`No Weaverse page assigned to this url.`);
513
518
  }
514
519
  if (page?.items) {
515
520
  let items = page.items;
@@ -576,6 +581,7 @@ var WeaverseHydrogen = class extends import_react14.Weaverse {
576
581
  internal;
577
582
  requestInfo;
578
583
  constructor(params, components) {
584
+ console.log("\u{1F4BF} New WeaverseHydrogen", params);
579
585
  let { internal, pageId, requestInfo, ...coreParams } = params;
580
586
  super({ ...coreParams, ItemConstructor: WeaverseHydrogenItem });
581
587
  this.internal = internal;
package/dist/index.mjs CHANGED
@@ -45,17 +45,13 @@ import { isBrowser } from "@weaverse/react";
45
45
  import { createContext } from "react";
46
46
  function createCachedWeaverseInstance(params, components) {
47
47
  if (isBrowser) {
48
- window.__weaverses = window.__weaverses || [];
49
- let weaverse = window.__weaverses.find((w) => {
50
- let { pathname } = w.requestInfo;
51
- return pathname === params.requestInfo.pathname;
52
- });
48
+ window.__weaverses = window.__weaverses || {};
49
+ let weaverse = window.__weaverses[params.pageId];
53
50
  if (!weaverse) {
54
51
  weaverse = new WeaverseHydrogen(params, components);
55
- window.__weaverses.push(weaverse);
52
+ window.__weaverses[params.pageId] = weaverse;
56
53
  } else if (weaverse.isDesignMode) {
57
- weaverse.requestInfo = params.requestInfo;
58
- weaverse.setProjectData(params.data);
54
+ window.weaverseStudio?.refresh(params);
59
55
  }
60
56
  return weaverse;
61
57
  }
@@ -77,8 +73,8 @@ var ThemeProvider = createContext(null);
77
73
  ThemeProvider.displayName = "WeaverseThemeProvider";
78
74
 
79
75
  // src/hooks/use-studio.ts
80
- import { useNavigate, useRevalidator } from "@remix-run/react";
81
- import { isIframe, loadScript } from "@weaverse/react";
76
+ import { useLocation, useNavigate, useRevalidator } from "@remix-run/react";
77
+ import { loadScript } from "@weaverse/react";
82
78
  import { useEffect } from "react";
83
79
 
84
80
  // src/hooks/use-theme-context.ts
@@ -151,41 +147,38 @@ function useThemeContext() {
151
147
  // src/hooks/use-studio.ts
152
148
  function useStudio(weaverse) {
153
149
  let { revalidate } = useRevalidator();
150
+ let { pathname, search } = useLocation();
154
151
  let navigate = useNavigate();
155
152
  let themeSettingsStore = useThemeContext();
156
153
  let { isDesignMode, weaverseHost, weaverseVersion } = weaverse;
157
- let isStudio = isIframe && isDesignMode && weaverseHost && weaverseVersion;
158
154
  useEffect(() => {
159
- if (isStudio) {
155
+ if (isDesignMode) {
160
156
  weaverse.internal = {
161
157
  ...weaverse.internal,
162
158
  navigate,
163
159
  revalidate,
164
160
  themeSettingsStore
165
161
  };
166
- window.__weaverse = weaverse;
167
- if (window.weaverseStudio) {
168
- window.weaverseStudio.init(weaverse);
169
- } else {
170
- let studioSrc = `${weaverseHost}/static/studio/hydrogen/index.js?v=${weaverseVersion}`;
171
- loadScript(studioSrc);
172
- }
162
+ let studioSrc = `${weaverseHost}/static/studio/hydrogen/index.js?v=${weaverseVersion}`;
163
+ loadScript(studioSrc).then(() => {
164
+ window.weaverseStudio?.init(weaverse);
165
+ }).catch(console.error);
173
166
  }
174
- }, [weaverse.requestInfo]);
167
+ }, [pathname, search]);
175
168
  }
176
169
 
177
170
  // src/pixel.tsx
178
171
  import React2 from "react";
179
- var Pixel = ({ baseUrl, projectId, pageId }) => {
172
+ function Pixel({ baseUrl, projectId, pageId }) {
180
173
  const url = `${baseUrl}/api/public/px?projectId=${projectId}&pageId=${pageId}`;
181
174
  return /* @__PURE__ */ React2.createElement("img", { src: url, alt: "weaverse pixel", style: { display: "none" } });
182
- };
183
- var WeaversePixel = ({ context }) => {
175
+ }
176
+ function WeaversePixel({ context }) {
184
177
  let { projectId, pageId, weaverseHost, isDesignMode } = context;
185
178
  if (isDesignMode || !projectId || !pageId || !weaverseHost)
186
179
  return null;
187
180
  return /* @__PURE__ */ React2.createElement(Pixel, { baseUrl: weaverseHost, projectId, pageId });
188
- };
181
+ }
189
182
 
190
183
  // src/WeaverseHydrogenRoot.tsx
191
184
  var WeaverseHydrogenRoot = memo(
@@ -236,7 +229,7 @@ var package_default = {
236
229
  name: "@weaverse/hydrogen",
237
230
  author: "Weaverse Team",
238
231
  description: "Components, hooks, and utilities for building Shopify Hydrogen websites with Weaverse",
239
- version: "2.7.2",
232
+ version: "2.8.0",
240
233
  license: "MIT",
241
234
  main: "dist/index.js",
242
235
  typings: "dist/index.d.ts",
@@ -274,7 +267,7 @@ var package_default = {
274
267
  singleQuote: true
275
268
  },
276
269
  dependencies: {
277
- "@weaverse/react": "2.7.2",
270
+ "@weaverse/react": "2.8.0",
278
271
  "react-error-boundary": "^4.0.11"
279
272
  },
280
273
  devDependencies: {
@@ -303,7 +296,13 @@ function getWeaverseConfigs(request, env) {
303
296
  PUBLIC_STOREFRONT_API_TOKEN
304
297
  } = env || {};
305
298
  let envFromProcess = typeof process !== "undefined" && process.env || {};
306
- let { weaverseProjectId, weaverseHost, isDesignMode, weaverseVersion, weaverseApiKey } = queries;
299
+ let {
300
+ weaverseProjectId,
301
+ weaverseHost,
302
+ isDesignMode,
303
+ weaverseVersion,
304
+ weaverseApiKey
305
+ } = queries;
307
306
  return {
308
307
  projectId: weaverseProjectId || WEAVERSE_PROJECT_ID || envFromProcess.WEAVERSE_PROJECT_ID || "",
309
308
  weaverseHost: weaverseHost || WEAVERSE_HOST || envFromProcess.WEAVERSE_HOST || "https://weaverse.io",
@@ -379,10 +378,13 @@ var WeaverseClient = class {
379
378
  } = options;
380
379
  let res = this.withCache(cacheKey, strategy, async () => {
381
380
  let cacheControlHeader = generateCacheControlHeader(strategy);
382
- let response = await fetch(url, { ...reqInit, headers: {
383
- "Cache-Control": cacheControlHeader,
384
- ...reqInit.headers
385
- } });
381
+ let response = await fetch(url, {
382
+ ...reqInit,
383
+ headers: {
384
+ "Cache-Control": cacheControlHeader,
385
+ ...reqInit.headers
386
+ }
387
+ });
386
388
  if (!response.ok) {
387
389
  let error = await response.text();
388
390
  let { status, statusText } = response;
@@ -470,12 +472,15 @@ var WeaverseClient = class {
470
472
  strategy
471
473
  });
472
474
  }
475
+ if (payload?.error) {
476
+ throw new Error(payload?.error);
477
+ }
473
478
  let { page, project, pageAssignment } = payload;
474
- if (!page || !project || !pageAssignment) {
475
- throw new Error(
476
- // @ts-ignore
477
- payload?.error || "Invalid Weaverse project payload!"
478
- );
479
+ if (!project) {
480
+ throw new Error(`Weaverse project not found. Id: ${projectId}`);
481
+ }
482
+ if (!page) {
483
+ throw new Error(`No Weaverse page assigned to this url.`);
479
484
  }
480
485
  if (page?.items) {
481
486
  let items = page.items;
@@ -542,6 +547,7 @@ var WeaverseHydrogen = class extends Weaverse {
542
547
  internal;
543
548
  requestInfo;
544
549
  constructor(params, components) {
550
+ console.log("\u{1F4BF} New WeaverseHydrogen", params);
545
551
  let { internal, pageId, requestInfo, ...coreParams } = params;
546
552
  super({ ...coreParams, ItemConstructor: WeaverseHydrogenItem });
547
553
  this.internal = internal;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@weaverse/hydrogen",
3
3
  "author": "Weaverse Team",
4
4
  "description": "Components, hooks, and utilities for building Shopify Hydrogen websites with Weaverse",
5
- "version": "2.7.2",
5
+ "version": "2.8.0",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",
8
8
  "typings": "dist/index.d.ts",
@@ -40,10 +40,10 @@
40
40
  "singleQuote": true
41
41
  },
42
42
  "dependencies": {
43
- "@weaverse/react": "2.7.2",
43
+ "@weaverse/react": "2.8.0",
44
44
  "react-error-boundary": "^4.0.11"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@shopify/remix-oxygen": "^2.0.1"
48
48
  }
49
- }
49
+ }