@weaverse/hydrogen 4.2.2 → 4.2.6

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 CHANGED
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
+ var hydrogen = require('@shopify/hydrogen');
3
4
  var react = require('@weaverse/react');
4
5
  var react$2 = require('@remix-run/react');
5
6
  var react$1 = require('react');
6
7
  var reactErrorBoundary = require('react-error-boundary');
7
8
  var jsxRuntime = require('react/jsx-runtime');
8
- var hydrogen = require('@shopify/hydrogen');
9
9
 
10
10
  var __defProp = Object.defineProperty;
11
11
  var __export = (target, all) => {
@@ -13,7 +13,7 @@ var __export = (target, all) => {
13
13
  __defProp(target, name, { get: all[name], enumerable: true });
14
14
  };
15
15
 
16
- // src/utils.ts
16
+ // src/utils/index.ts
17
17
  function getRequestQueries(request) {
18
18
  let url = new URL(request.url);
19
19
  return Array.from(url.searchParams.entries()).reduce(
@@ -57,10 +57,9 @@ function getWeaverseConfigs(request, env) {
57
57
  }
58
58
  };
59
59
  }
60
- function generateDataFromSchema({
61
- inspector
62
- }) {
60
+ function generateDataFromSchema(schema2) {
63
61
  let data = {};
62
+ let inspector = schema2?.inspector;
64
63
  if (inspector) {
65
64
  for (let group of inspector) {
66
65
  for (let input of group.inputs) {
@@ -73,36 +72,19 @@ function generateDataFromSchema({
73
72
  }
74
73
  return data;
75
74
  }
76
- function resizeShopifyImage(imageURL, size) {
77
- try {
78
- if (!imageURL.includes("cdn.shopify.com") || size === "original") {
79
- return imageURL;
80
- }
81
- let [, path, ext] = imageURL.match(/(.*\/[\w-_.]+)\.(\w{2,4})/);
82
- return `${path}_${size}.${ext}`;
83
- } catch (e) {
84
- return imageURL;
85
- }
86
- }
87
75
  function recursivelyAddDataItem(type, components, items, initData) {
88
- const component = components.find((c) => c.schema.type === type);
76
+ let component = components.find((c) => c.schema.type === type);
89
77
  if (!component) {
90
78
  return;
91
79
  }
92
- let childIDs = [];
93
- const id = crypto.randomUUID();
94
- const { children, ...data } = component.schema?.presets || {};
80
+ let childIds = [];
81
+ let id = crypto.randomUUID();
82
+ let { children, ...data } = component.schema?.presets || {};
95
83
  if (children) {
96
- for (const child of children) {
97
- const { type: type2, children: children2, ...data2 } = child;
98
- const childID = recursivelyAddDataItem(
99
- child.type,
100
- components,
101
- items,
102
- data2
103
- );
104
- childIDs.push({
105
- id: childID
84
+ for (let c of children) {
85
+ let { type: type2, children: children2, ...data2 } = c;
86
+ childIds.push({
87
+ id: recursivelyAddDataItem(type2, components, items, data2)
106
88
  });
107
89
  }
108
90
  }
@@ -110,23 +92,13 @@ function recursivelyAddDataItem(type, components, items, initData) {
110
92
  data: { ...data, ...initData },
111
93
  id,
112
94
  type,
113
- children: childIDs
95
+ children: childIds
114
96
  });
115
97
  return id;
116
98
  }
117
99
  function getPreviewData(type, components, weaverseHost) {
118
- const initialData = {
119
- project: {
120
- id: "x",
121
- weaverseShopId: "shopid",
122
- name: "Section Preview"
123
- },
124
- // pageAssignment: {
125
- // projectId: "x",
126
- // type: "CUSTOM",
127
- // locale: "en-us",
128
- // handle: "",
129
- // },
100
+ return {
101
+ project: { id: "x", weaverseShopId: "shop-id", name: "Section Preview" },
130
102
  configs: {
131
103
  projectId: "x",
132
104
  weaverseHost,
@@ -144,239 +116,24 @@ function getPreviewData(type, components, weaverseHost) {
144
116
  pathname: "/",
145
117
  search: ""
146
118
  }
119
+ },
120
+ page: {
121
+ id: "0",
122
+ name: "Preview section",
123
+ rootId: "1",
124
+ items: [
125
+ {
126
+ data: {},
127
+ id: "1",
128
+ type: "main",
129
+ children: [{ id: recursivelyAddDataItem(type, components, []) }]
130
+ }
131
+ ]
147
132
  }
148
133
  };
149
- let items = [];
150
- const id = recursivelyAddDataItem(type, components, items);
151
- const page = {
152
- id: "0",
153
- name: "Preview section",
154
- rootId: "1",
155
- items: [
156
- {
157
- data: {},
158
- id: "1",
159
- type: "main",
160
- children: [
161
- {
162
- id
163
- }
164
- ]
165
- },
166
- ...items
167
- ]
168
- };
169
- const previewData = {
170
- ...initialData,
171
- page
172
- };
173
- return previewData;
174
- }
175
- var ThemeSettingsStore = class extends react.EventEmitter {
176
- settings = {};
177
- countries;
178
- schema;
179
- publicEnv;
180
- constructor(data) {
181
- super();
182
- let { theme, countries, schema: schema2, publicEnv } = data || {};
183
- this.settings = { ...theme };
184
- this.countries = countries;
185
- this.schema = schema2;
186
- this.publicEnv = publicEnv;
187
- if (react.isBrowser) {
188
- window.__weaverseThemeSettingsStore = this;
189
- }
190
- }
191
- updateThemeSettings = (newSettings) => {
192
- this.settings = {
193
- ...this.settings,
194
- ...newSettings
195
- };
196
- this.emit(this.settings);
197
- };
198
- getSnapshot = () => {
199
- return this.settings;
200
- };
201
- getServerSnapshot = () => {
202
- return this.settings;
203
- };
204
- };
205
- function useThemeSettingsStore() {
206
- let data = react$2.useRouteLoaderData("root");
207
- if (react.isBrowser && window.__weaverseThemeSettingsStore) {
208
- return window.__weaverseThemeSettingsStore;
209
- }
210
- return new ThemeSettingsStore(data?.weaverseTheme);
211
- }
212
- function useThemeSettings() {
213
- let themeSettingsStore = useThemeSettingsStore();
214
- let settings = react$1.useSyncExternalStore(
215
- themeSettingsStore.subscribe,
216
- themeSettingsStore.getSnapshot,
217
- themeSettingsStore.getServerSnapshot
218
- );
219
- return settings;
220
134
  }
221
135
 
222
- // src/hooks/use-studio.ts
223
- function useStudio(weaverse) {
224
- let { revalidate } = react$2.useRevalidator();
225
- let navigation = react$2.useNavigation();
226
- let { pathname, search } = react$2.useLocation();
227
- let navigate = react$2.useNavigate();
228
- let themeSettingsStore = useThemeSettingsStore();
229
- let { isDesignMode, weaverseHost, weaverseVersion, isPreviewMode } = weaverse;
230
- react$1.useEffect(() => {
231
- if (navigation.state === "idle") {
232
- if (isPreviewMode) {
233
- let previewSrc = `${weaverseHost}/static/studio/hydrogen/preview.js?v=${weaverseVersion}`;
234
- react.loadScript(previewSrc).catch(console.error);
235
- } else if (isDesignMode) {
236
- weaverse.internal = {
237
- ...weaverse.internal,
238
- navigate,
239
- revalidate,
240
- themeSettingsStore
241
- };
242
- let studioSrc = `${weaverseHost}/static/studio/hydrogen/index.js?v=${weaverseVersion}`;
243
- react.loadScript(studioSrc).then(() => {
244
- window.weaverseStudio?.init(weaverse);
245
- }).catch(console.error);
246
- }
247
- }
248
- }, [pathname, search, navigation.state]);
249
- usePixel(weaverse);
250
- }
251
- function usePixel(context) {
252
- let { projectId, pageId, weaverseHost, isDesignMode } = context;
253
- react$1.useEffect(() => {
254
- if (!projectId || !pageId || !weaverseHost || isDesignMode) return;
255
- let url = `${weaverseHost}/api/public/px`;
256
- let img = new Image();
257
- img.onload = () => {
258
- img.remove();
259
- };
260
- img.src = `${url}?projectId=${projectId}&pageId=${pageId}`;
261
- }, []);
262
- }
263
-
264
- // src/Effect.tsx
265
- var WeaverseEffect = react$1.memo(
266
- ({ context }) => {
267
- useStudio(context);
268
- return null;
269
- }
270
- );
271
-
272
- // src/components/main.tsx
273
- var main_exports = {};
274
- __export(main_exports, {
275
- default: () => main_default,
276
- schema: () => schema
277
- });
278
- var Main = react$1.forwardRef((props, ref) => {
279
- let { children, dangerouslySetInnerHTML, ...rest } = props;
280
- return /* @__PURE__ */ jsxRuntime.jsx(
281
- "div",
282
- {
283
- ref,
284
- ...rest,
285
- children,
286
- dangerouslySetInnerHTML: children ? void 0 : dangerouslySetInnerHTML
287
- }
288
- );
289
- });
290
- var main_default = Main;
291
- var schema = {
292
- type: "main",
293
- title: "Main",
294
- inspector: []
295
- };
296
-
297
- // src/components/index.ts
298
- var defaultComponents = [main_exports];
299
-
300
- // src/context.ts
301
- function registerComponents(components) {
302
- for (const comp of components) {
303
- comp?.schema?.type && WeaverseHydrogen.registerElement({
304
- type: comp?.schema.type,
305
- Component: comp.default,
306
- schema: comp.schema,
307
- loader: comp.loader
308
- });
309
- }
310
- }
311
- function createCachedWeaverseInstance(params) {
312
- if (react.isBrowser) {
313
- window.__weaverses = window.__weaverses || {};
314
- let weaverse = window.__weaverses[params.pageId];
315
- if (!weaverse || weaverse?.requestInfo?.pathname !== params.requestInfo.pathname || weaverse?.requestInfo?.search !== params.requestInfo.search) {
316
- weaverse = new WeaverseHydrogen(params);
317
- window.__weaverses[params.pageId] = weaverse;
318
- }
319
- if (weaverse?.isDesignMode) {
320
- weaverse.requestInfo = params.requestInfo;
321
- window.weaverseStudio?.refreshStudio(params);
322
- }
323
- return weaverse;
324
- }
325
- return new WeaverseHydrogen(params);
326
- }
327
- function createWeaverseInstance(weaverseData, components) {
328
- let { page, configs, project, pageAssignment } = weaverseData || {};
329
- registerComponents(components);
330
- registerComponents(defaultComponents);
331
- return createCachedWeaverseInstance({
332
- ...configs,
333
- data: page,
334
- pageId: page?.id,
335
- internal: { project, pageAssignment }
336
- });
337
- }
338
- var ThemeSettingsProvider = react$1.createContext(
339
- null
340
- );
341
- ThemeSettingsProvider.displayName = "WeaverseThemeSettingsProvider";
342
- var WeaverseHydrogenRoot = react$1.memo(
343
- ({
344
- errorComponent: ErrorComponent = FallbackError,
345
- components
346
- }) => {
347
- let loaderData = react$2.useLoaderData();
348
- let data = loaderData?.weaverseData;
349
- if (data) {
350
- if (data instanceof Promise) {
351
- return /* @__PURE__ */ jsxRuntime.jsx(reactErrorBoundary.ErrorBoundary, { fallbackRender: ErrorComponent, children: /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { children: /* @__PURE__ */ jsxRuntime.jsx(react$2.Await, { resolve: data, children: (resolvedData) => /* @__PURE__ */ jsxRuntime.jsx(RenderRoot, { data: resolvedData, components }) }) }) });
352
- }
353
- return /* @__PURE__ */ jsxRuntime.jsx(RenderRoot, { data, components });
354
- }
355
- return /* @__PURE__ */ jsxRuntime.jsx(
356
- ErrorComponent,
357
- {
358
- error: { message: "No Weaverse data return from route loader!" }
359
- }
360
- );
361
- }
362
- );
363
- function RenderRoot(props) {
364
- let { data, components } = props;
365
- let weaverse = createWeaverseInstance(data, components);
366
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
367
- /* @__PURE__ */ jsxRuntime.jsx(react.WeaverseRoot, { context: weaverse }),
368
- /* @__PURE__ */ jsxRuntime.jsx(WeaverseEffect, { context: weaverse })
369
- ] });
370
- }
371
- function withWeaverse(Component) {
372
- return (props) => {
373
- let { settings } = useThemeSettingsStore();
374
- return /* @__PURE__ */ jsxRuntime.jsx(ThemeSettingsProvider.Provider, { value: settings, children: /* @__PURE__ */ jsxRuntime.jsx(Component, { ...props }) });
375
- };
376
- }
377
- function FallbackError({ error }) {
378
- return /* @__PURE__ */ jsxRuntime.jsx("div", { children: error?.message || "An unexpected error occurred" });
379
- }
136
+ // src/weaverse-client.ts
380
137
  var API_PATH = "api/public";
381
138
  var DEFAULT_CACHE_STRATEGY = {
382
139
  maxAge: 5,
@@ -397,13 +154,11 @@ var WeaverseClient = class {
397
154
  env;
398
155
  cache;
399
156
  waitUntil;
400
- countries;
401
157
  constructor(args) {
402
158
  const {
403
159
  env,
404
160
  storefront,
405
161
  components,
406
- countries,
407
162
  cache,
408
163
  waitUntil,
409
164
  themeSchema,
@@ -416,7 +171,6 @@ var WeaverseClient = class {
416
171
  this.env = env;
417
172
  this.cache = cache;
418
173
  this.waitUntil = waitUntil;
419
- this.countries = countries;
420
174
  this.withCache = hydrogen.createWithCache({ cache, waitUntil, request });
421
175
  this.configs = getWeaverseConfigs(request, env);
422
176
  this.basePageConfigs = {
@@ -472,10 +226,7 @@ var WeaverseClient = class {
472
226
  );
473
227
  }
474
228
  loadThemeSettings = async (strategy) => {
475
- let defaultThemeSettings = {};
476
- if (this.themeSchema) {
477
- defaultThemeSettings = generateDataFromSchema(this.themeSchema);
478
- }
229
+ let defaultThemeSettings = generateDataFromSchema(this.themeSchema);
479
230
  try {
480
231
  let { API, configs } = this;
481
232
  let { weaverseHost, projectId, isDesignMode } = configs;
@@ -497,7 +248,7 @@ var WeaverseClient = class {
497
248
  });
498
249
  }
499
250
  let data = res || {};
500
- if (data?.theme && this.themeSchema?.inspector) {
251
+ if (this.themeSchema?.inspector) {
501
252
  data.theme = {
502
253
  ...defaultThemeSettings,
503
254
  ...data.theme
@@ -507,7 +258,6 @@ var WeaverseClient = class {
507
258
  data = {
508
259
  ...data,
509
260
  schema: this.themeSchema,
510
- countries: this.countries || [],
511
261
  publicEnv: this.configs.publicEnv
512
262
  };
513
263
  }
@@ -601,7 +351,6 @@ var WeaverseClient = class {
601
351
  ...basePageConfigs,
602
352
  requestInfo: {
603
353
  i18n: storefront.i18n,
604
- // TODO: @hta218 - migrate to Remix hooks
605
354
  queries: getRequestQueries(request),
606
355
  pathname: new URL(request.url).pathname,
607
356
  search: new URL(request.url).search
@@ -636,14 +385,224 @@ var WeaverseClient = class {
636
385
  return item;
637
386
  };
638
387
  };
388
+
389
+ // src/components/main.tsx
390
+ var main_exports = {};
391
+ __export(main_exports, {
392
+ default: () => main_default,
393
+ schema: () => schema
394
+ });
395
+ var Main = react$1.forwardRef((props, ref) => {
396
+ let { children, dangerouslySetInnerHTML, ...rest } = props;
397
+ return /* @__PURE__ */ jsxRuntime.jsx(
398
+ "div",
399
+ {
400
+ ref,
401
+ ...rest,
402
+ children,
403
+ dangerouslySetInnerHTML: children ? void 0 : dangerouslySetInnerHTML
404
+ }
405
+ );
406
+ });
407
+ var main_default = Main;
408
+ var schema = {
409
+ type: "main",
410
+ title: "Main",
411
+ inspector: []
412
+ };
413
+
414
+ // src/components/index.ts
415
+ var defaultComponents = [main_exports];
416
+ var ThemeSettingsStore = class extends react.EventEmitter {
417
+ settings = {};
418
+ schema;
419
+ publicEnv;
420
+ constructor(data) {
421
+ super();
422
+ let { theme, schema: schema2, publicEnv } = data || {};
423
+ this.settings = { ...theme };
424
+ this.schema = schema2;
425
+ this.publicEnv = publicEnv;
426
+ if (react.isBrowser) {
427
+ window.__weaverseThemeSettingsStore = this;
428
+ }
429
+ }
430
+ updateThemeSettings = (newSettings) => {
431
+ this.settings = {
432
+ ...this.settings,
433
+ ...newSettings
434
+ };
435
+ this.emit(this.settings);
436
+ };
437
+ getSnapshot = () => {
438
+ return this.settings;
439
+ };
440
+ getServerSnapshot = () => {
441
+ return this.settings;
442
+ };
443
+ };
444
+ function useThemeSettingsStore() {
445
+ let data = react$2.useRouteLoaderData("root");
446
+ if (react.isBrowser && window.__weaverseThemeSettingsStore) {
447
+ return window.__weaverseThemeSettingsStore;
448
+ }
449
+ return new ThemeSettingsStore(data?.weaverseTheme);
450
+ }
451
+
452
+ // src/utils/use-studio.ts
453
+ function useStudio(weaverse) {
454
+ let { revalidate } = react$2.useRevalidator();
455
+ let navigation = react$2.useNavigation();
456
+ let { pathname, search } = react$2.useLocation();
457
+ let navigate = react$2.useNavigate();
458
+ let themeSettingsStore = useThemeSettingsStore();
459
+ let { isDesignMode, weaverseHost, weaverseVersion, isPreviewMode } = weaverse;
460
+ react$1.useEffect(() => {
461
+ if (navigation.state === "idle") {
462
+ if (isPreviewMode) {
463
+ let previewSrc = `${weaverseHost}/static/studio/hydrogen/preview.js?v=${weaverseVersion}`;
464
+ react.loadScript(previewSrc).catch(console.error);
465
+ } else if (isDesignMode) {
466
+ weaverse.internal = {
467
+ ...weaverse.internal,
468
+ navigate,
469
+ revalidate,
470
+ themeSettingsStore
471
+ };
472
+ let studioSrc = `${weaverseHost}/static/studio/hydrogen/index.js?v=${weaverseVersion}`;
473
+ react.loadScript(studioSrc).then(() => {
474
+ window.weaverseStudio?.init(weaverse);
475
+ }).catch(console.error);
476
+ }
477
+ }
478
+ }, [pathname, search, navigation.state]);
479
+ usePixel(weaverse);
480
+ }
481
+ function usePixel(context) {
482
+ let { projectId, pageId, weaverseHost, isDesignMode } = context;
483
+ react$1.useEffect(() => {
484
+ if (!projectId || !pageId || !weaverseHost || isDesignMode) return;
485
+ let url = `${weaverseHost}/api/public/px`;
486
+ let img = new Image();
487
+ img.onload = () => img.remove();
488
+ img.src = `${url}?projectId=${projectId}&pageId=${pageId}`;
489
+ }, []);
490
+ }
491
+ var WeaverseHydrogenItem = class extends react.WeaverseItemStore {
492
+ constructor(initialData, weaverse) {
493
+ super(initialData, weaverse);
494
+ let { data, ...rest } = initialData;
495
+ let schemaData = generateDataFromSchema(this.Element.schema);
496
+ Object.assign(this._store, schemaData, data, rest);
497
+ }
498
+ get Element() {
499
+ return super.Element;
500
+ }
501
+ };
502
+ react.Weaverse.ItemConstructor = WeaverseHydrogenItem;
503
+ var WeaverseHydrogen = class extends react.Weaverse {
504
+ platformType = "shopify-hydrogen";
505
+ pageId;
506
+ internal;
507
+ requestInfo;
508
+ static itemInstances;
509
+ static elementRegistry;
510
+ constructor(params) {
511
+ let { internal, pageId, requestInfo, ...coreParams } = params;
512
+ super({ ...coreParams });
513
+ this.internal = internal;
514
+ this.pageId = pageId;
515
+ this.requestInfo = requestInfo;
516
+ }
517
+ };
518
+ function createWeaverseInstance(params) {
519
+ if (react.isBrowser) {
520
+ window.__weaverses = window.__weaverses || {};
521
+ let weaverse = window.__weaverses[params.pageId];
522
+ if (!weaverse || weaverse?.requestInfo?.pathname !== params.requestInfo.pathname || weaverse?.requestInfo?.search !== params.requestInfo.search) {
523
+ weaverse = new WeaverseHydrogen(params);
524
+ window.__weaverses[params.pageId] = weaverse;
525
+ }
526
+ if (weaverse?.isDesignMode) {
527
+ weaverse.requestInfo = params.requestInfo;
528
+ window.weaverseStudio?.refreshStudio(params);
529
+ }
530
+ return weaverse;
531
+ }
532
+ return new WeaverseHydrogen(params);
533
+ }
534
+ var StudioBridge = react$1.memo(({ context }) => {
535
+ useStudio(context);
536
+ return null;
537
+ });
538
+ function RenderRoot(props) {
539
+ let { data, components } = props;
540
+ for (let comp of [...components, ...defaultComponents]) {
541
+ comp?.schema?.type && WeaverseHydrogen.registerElement({
542
+ type: comp?.schema.type,
543
+ Component: comp.default,
544
+ schema: comp.schema,
545
+ loader: comp.loader
546
+ });
547
+ }
548
+ let { page, configs, project, pageAssignment } = data || {};
549
+ let weaverse = createWeaverseInstance({
550
+ ...configs,
551
+ data: page,
552
+ pageId: page?.id,
553
+ internal: { project, pageAssignment }
554
+ });
555
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
556
+ /* @__PURE__ */ jsxRuntime.jsx(react.WeaverseRoot, { context: weaverse }),
557
+ /* @__PURE__ */ jsxRuntime.jsx(StudioBridge, { context: weaverse })
558
+ ] });
559
+ }
560
+ var WeaverseHydrogenRoot = react$1.memo(
561
+ ({
562
+ components,
563
+ errorComponent: ErrorComponent = ({ error }) => /* @__PURE__ */ jsxRuntime.jsx("div", { children: error?.message || "An unexpected error occurred" })
564
+ }) => {
565
+ let loaderData = react$2.useLoaderData();
566
+ let data = loaderData?.weaverseData;
567
+ if (data) {
568
+ if (data instanceof Promise) {
569
+ return /* @__PURE__ */ jsxRuntime.jsx(reactErrorBoundary.ErrorBoundary, { fallbackRender: ErrorComponent, children: /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { children: /* @__PURE__ */ jsxRuntime.jsx(react$2.Await, { resolve: data, children: (resolvedData) => /* @__PURE__ */ jsxRuntime.jsx(RenderRoot, { data: resolvedData, components }) }) }) });
570
+ }
571
+ return /* @__PURE__ */ jsxRuntime.jsx(RenderRoot, { data, components });
572
+ }
573
+ return /* @__PURE__ */ jsxRuntime.jsx(
574
+ ErrorComponent,
575
+ {
576
+ error: { message: "No Weaverse data return from route loader!" }
577
+ }
578
+ );
579
+ }
580
+ );
581
+ var ThemeSettingsProvider = react$1.createContext(null);
582
+ ThemeSettingsProvider.displayName = "WeaverseThemeSettingsProvider";
583
+ function withWeaverse(Component) {
584
+ return (props) => {
585
+ let { settings } = useThemeSettingsStore();
586
+ return /* @__PURE__ */ jsxRuntime.jsx(ThemeSettingsProvider.Provider, { value: settings, children: /* @__PURE__ */ jsxRuntime.jsx(Component, { ...props }) });
587
+ };
588
+ }
589
+ function useThemeSettings() {
590
+ let themeSettingsStore = useThemeSettingsStore();
591
+ let settings = react$1.useSyncExternalStore(
592
+ themeSettingsStore.subscribe,
593
+ themeSettingsStore.getSnapshot,
594
+ themeSettingsStore.getServerSnapshot
595
+ );
596
+ return settings;
597
+ }
598
+
599
+ // src/index.ts
639
600
  function getSelectedProductOptions(request) {
640
601
  let options = hydrogen.getSelectedProductOptions(request);
641
602
  return options.filter(
642
603
  ({ name }) => name !== "isDesignMode" && !name.startsWith("weaverse")
643
604
  );
644
605
  }
645
-
646
- // src/placeholders.ts
647
606
  var IMAGES_PLACEHOLDERS = {
648
607
  logo_white: "https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-logo-w-600x200.svg",
649
608
  logo_black: "https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-logo-k-600x200.svg",
@@ -676,40 +635,6 @@ var IMAGES_PLACEHOLDERS = {
676
635
  product_18: "https://cdn.shopify.com/s/files/1/0838/0052/3057/files/fpo-product-watch-2-1024x1024.svg"
677
636
  };
678
637
 
679
- // src/index.ts
680
- var WeaverseHydrogen = class extends react.Weaverse {
681
- platformType = "shopify-hydrogen";
682
- pageId;
683
- internal;
684
- requestInfo;
685
- static itemInstances;
686
- static elementRegistry;
687
- constructor(params) {
688
- let { internal, pageId, requestInfo, ...coreParams } = params;
689
- super({ ...coreParams });
690
- this.internal = internal;
691
- this.pageId = pageId;
692
- this.requestInfo = requestInfo;
693
- }
694
- };
695
- var WeaverseHydrogenItem = class extends react.WeaverseItemStore {
696
- constructor(initialData, weaverse) {
697
- super(initialData, weaverse);
698
- let { data, ...rest } = initialData;
699
- Object.assign(this._store, this._schemaData, data, rest);
700
- }
701
- get Element() {
702
- return super.Element;
703
- }
704
- get _schemaData() {
705
- if (this.Element?.schema) {
706
- return generateDataFromSchema(this.Element.schema);
707
- }
708
- return {};
709
- }
710
- };
711
- react.Weaverse.ItemConstructor = WeaverseHydrogenItem;
712
-
713
638
  Object.defineProperty(exports, "isBrowser", {
714
639
  enumerable: true,
715
640
  get: function () { return react.isBrowser; }
@@ -739,13 +664,7 @@ exports.WeaverseClient = WeaverseClient;
739
664
  exports.WeaverseHydrogen = WeaverseHydrogen;
740
665
  exports.WeaverseHydrogenItem = WeaverseHydrogenItem;
741
666
  exports.WeaverseHydrogenRoot = WeaverseHydrogenRoot;
742
- exports.generateDataFromSchema = generateDataFromSchema;
743
- exports.getPreviewData = getPreviewData;
744
- exports.getRequestQueries = getRequestQueries;
745
667
  exports.getSelectedProductOptions = getSelectedProductOptions;
746
- exports.getWeaverseConfigs = getWeaverseConfigs;
747
- exports.recursivelyAddDataItem = recursivelyAddDataItem;
748
- exports.resizeShopifyImage = resizeShopifyImage;
749
668
  exports.useThemeSettings = useThemeSettings;
750
669
  exports.withWeaverse = withWeaverse;
751
670
  //# sourceMappingURL=index.js.map