@weaverse/hydrogen 2.9.0 → 2.10.1

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
@@ -329,6 +329,7 @@ declare function getWeaverseConfigs(request: Request, env: HydrogenThemeEnv): We
329
329
 
330
330
  declare function getSelectedProductOptions(request: Request): _shopify_hydrogen_react_storefront_api_types.SelectedOptionInput[];
331
331
 
332
+ declare let registerComponents: (components: HydrogenComponent[]) => void;
332
333
  declare class WeaverseHydrogen extends Weaverse {
333
334
  platformType: PlatformTypeEnum;
334
335
  pageId: string;
@@ -338,15 +339,13 @@ declare class WeaverseHydrogen extends Weaverse {
338
339
  data: HydrogenPageData;
339
340
  static itemInstances: Map<string, WeaverseHydrogenItem>;
340
341
  static elementRegistry: Map<string, HydrogenElement>;
341
- constructor(params: WeaverseHydrogenParams, components: HydrogenComponent[]);
342
- registerComponents: (components: HydrogenComponent[]) => void;
342
+ constructor(params: WeaverseHydrogenParams);
343
343
  }
344
344
  declare class WeaverseHydrogenItem extends WeaverseItemStore {
345
345
  weaverse: WeaverseHydrogen;
346
346
  constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen);
347
347
  get Element(): HydrogenElement;
348
- get data(): HydrogenComponentData;
349
- set data(update: HydrogenComponentData);
348
+ getDefaultData: () => Record<string, any> | undefined;
350
349
  }
351
350
 
352
- export { type AllCacheOptions, type BasicInput, type ComponentLoaderArgs, type CreateWeaverseClientArgs, 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 };
351
+ export { type AllCacheOptions, type BasicInput, type ComponentLoaderArgs, type CreateWeaverseClientArgs, 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, registerComponents, useThemeSettings, withWeaverse };
package/dist/index.d.ts CHANGED
@@ -329,6 +329,7 @@ declare function getWeaverseConfigs(request: Request, env: HydrogenThemeEnv): We
329
329
 
330
330
  declare function getSelectedProductOptions(request: Request): _shopify_hydrogen_react_storefront_api_types.SelectedOptionInput[];
331
331
 
332
+ declare let registerComponents: (components: HydrogenComponent[]) => void;
332
333
  declare class WeaverseHydrogen extends Weaverse {
333
334
  platformType: PlatformTypeEnum;
334
335
  pageId: string;
@@ -338,15 +339,13 @@ declare class WeaverseHydrogen extends Weaverse {
338
339
  data: HydrogenPageData;
339
340
  static itemInstances: Map<string, WeaverseHydrogenItem>;
340
341
  static elementRegistry: Map<string, HydrogenElement>;
341
- constructor(params: WeaverseHydrogenParams, components: HydrogenComponent[]);
342
- registerComponents: (components: HydrogenComponent[]) => void;
342
+ constructor(params: WeaverseHydrogenParams);
343
343
  }
344
344
  declare class WeaverseHydrogenItem extends WeaverseItemStore {
345
345
  weaverse: WeaverseHydrogen;
346
346
  constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen);
347
347
  get Element(): HydrogenElement;
348
- get data(): HydrogenComponentData;
349
- set data(update: HydrogenComponentData);
348
+ getDefaultData: () => Record<string, any> | undefined;
350
349
  }
351
350
 
352
- export { type AllCacheOptions, type BasicInput, type ComponentLoaderArgs, type CreateWeaverseClientArgs, 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 };
351
+ export { type AllCacheOptions, type BasicInput, type ComponentLoaderArgs, type CreateWeaverseClientArgs, 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, registerComponents, useThemeSettings, withWeaverse };
package/dist/index.js CHANGED
@@ -38,6 +38,7 @@ __export(src_exports, {
38
38
  getRequestQueries: () => getRequestQueries,
39
39
  getSelectedProductOptions: () => getSelectedProductOptions,
40
40
  getWeaverseConfigs: () => getWeaverseConfigs,
41
+ registerComponents: () => registerComponents,
41
42
  useChildInstances: () => import_react14.useChildInstances,
42
43
  useItemInstance: () => import_react14.useItemInstance,
43
44
  useParentInstance: () => import_react14.useParentInstance,
@@ -48,6 +49,16 @@ __export(src_exports, {
48
49
  module.exports = __toCommonJS(src_exports);
49
50
  var import_react14 = require("@weaverse/react");
50
51
 
52
+ // src/WeaverseHydrogenRoot.tsx
53
+ var import_react11 = require("@remix-run/react");
54
+ var import_react12 = require("@weaverse/react");
55
+ var import_react13 = __toESM(require("react"));
56
+ var import_react_error_boundary = require("react-error-boundary");
57
+
58
+ // src/context.ts
59
+ var import_react2 = require("@weaverse/react");
60
+ var import_react3 = require("react");
61
+
51
62
  // src/components/main.tsx
52
63
  var main_exports = {};
53
64
  __export(main_exports, {
@@ -80,40 +91,31 @@ var schema = {
80
91
  // src/components/index.ts
81
92
  var defaultComponents = [main_exports];
82
93
 
83
- // src/WeaverseHydrogenRoot.tsx
84
- var import_react11 = require("@remix-run/react");
85
- var import_react12 = require("@weaverse/react");
86
- var import_react13 = __toESM(require("react"));
87
- var import_react_error_boundary = require("react-error-boundary");
88
-
89
94
  // src/context.ts
90
- var import_react2 = require("@weaverse/react");
91
- var import_react3 = require("react");
92
- function createCachedWeaverseInstance(params, components) {
95
+ function createCachedWeaverseInstance(params) {
93
96
  if (import_react2.isBrowser) {
94
97
  window.__weaverses = window.__weaverses || {};
95
98
  let weaverse = window.__weaverses[params.pageId];
96
99
  if (!weaverse) {
97
- weaverse = new WeaverseHydrogen(params, components);
100
+ weaverse = new WeaverseHydrogen(params);
98
101
  window.__weaverses[params.pageId] = weaverse;
99
102
  } else if (weaverse.isDesignMode) {
100
103
  window.weaverseStudio?.refresh(params);
101
104
  }
102
105
  return weaverse;
103
106
  }
104
- return new WeaverseHydrogen(params, components);
107
+ return new WeaverseHydrogen(params);
105
108
  }
106
109
  function createWeaverseInstance(weaverseData, components) {
107
110
  let { page, configs, project, pageAssignment } = weaverseData || {};
108
- return createCachedWeaverseInstance(
109
- {
110
- ...configs,
111
- data: page || {},
112
- pageId: page?.id,
113
- internal: { project, pageAssignment }
114
- },
115
- components
116
- );
111
+ registerComponents(components);
112
+ registerComponents(defaultComponents);
113
+ return createCachedWeaverseInstance({
114
+ ...configs,
115
+ data: page || {},
116
+ pageId: page?.id,
117
+ internal: { project, pageAssignment }
118
+ });
117
119
  }
118
120
  var ThemeProvider = (0, import_react3.createContext)(null);
119
121
  ThemeProvider.displayName = "WeaverseThemeProvider";
@@ -544,54 +546,48 @@ function getSelectedProductOptions(request) {
544
546
  }
545
547
 
546
548
  // src/index.ts
549
+ var registerComponents = (components) => {
550
+ components.forEach((comp) => {
551
+ WeaverseHydrogen.registerElement({
552
+ type: comp?.schema?.type,
553
+ Component: comp?.default,
554
+ schema: comp?.schema,
555
+ loader: comp?.loader
556
+ });
557
+ });
558
+ };
547
559
  var WeaverseHydrogen = class extends import_react14.Weaverse {
548
560
  platformType = "shopify-hydrogen";
549
561
  pageId;
550
562
  internal;
551
563
  requestInfo;
552
- constructor(params, components) {
553
- console.log("\u{1F4BF} New WeaverseHydrogen", params);
564
+ constructor(params) {
554
565
  let { internal, pageId, requestInfo, ...coreParams } = params;
555
- super({ ...coreParams, ItemConstructor: WeaverseHydrogenItem });
566
+ super({ ...coreParams });
556
567
  this.internal = internal;
557
568
  this.pageId = pageId;
558
569
  this.requestInfo = requestInfo;
559
- this.registerComponents(components);
560
- this.registerComponents(defaultComponents);
561
570
  }
562
- registerComponents = (components) => {
563
- components.forEach((comp) => {
564
- import_react14.Weaverse.registerElement({
565
- type: comp?.schema?.type,
566
- Component: comp?.default,
567
- schema: comp?.schema,
568
- loader: comp?.loader
569
- });
570
- });
571
- };
572
571
  };
573
572
  var WeaverseHydrogenItem = class extends import_react14.WeaverseItemStore {
574
573
  constructor(initialData, weaverse) {
575
574
  super(initialData, weaverse);
576
575
  let { data, ...rest } = initialData;
577
- this._store = { ...data, ...rest };
576
+ Object.assign(this._store, this.getDefaultData(), data, rest);
578
577
  }
579
578
  get Element() {
580
579
  return super.Element;
581
580
  }
582
- get data() {
583
- let defaultData = this.Element?.schema?.inspector?.flatMap((group) => group.inputs).reduce((a, { defaultValue, name }) => {
581
+ getDefaultData = () => {
582
+ return this.Element?.schema?.inspector?.flatMap((group) => group.inputs).reduce((a, { defaultValue, name }) => {
584
583
  if (name && defaultValue !== null && defaultValue !== void 0) {
585
584
  a[name] = defaultValue;
586
585
  }
587
586
  return a;
588
587
  }, {});
589
- return { ...defaultData, ...super.data };
590
- }
591
- set data(update) {
592
- super.data = update;
593
- }
588
+ };
594
589
  };
590
+ import_react14.Weaverse.ItemConstructor = WeaverseHydrogenItem;
595
591
  // Annotate the CommonJS export names for ESM import in node:
596
592
  0 && (module.exports = {
597
593
  ThemeSettingsStore,
@@ -602,6 +598,7 @@ var WeaverseHydrogenItem = class extends import_react14.WeaverseItemStore {
602
598
  getRequestQueries,
603
599
  getSelectedProductOptions,
604
600
  getWeaverseConfigs,
601
+ registerComponents,
605
602
  useChildInstances,
606
603
  useItemInstance,
607
604
  useParentInstance,
package/dist/index.mjs CHANGED
@@ -6,14 +6,24 @@ var __export = (target, all) => {
6
6
 
7
7
  // src/index.ts
8
8
  import {
9
- Weaverse,
10
- WeaverseItemStore,
11
- useItemInstance,
12
9
  useChildInstances,
10
+ useItemInstance,
13
11
  useParentInstance,
14
- useWeaverse
12
+ useWeaverse,
13
+ Weaverse,
14
+ WeaverseItemStore
15
15
  } from "@weaverse/react";
16
16
 
17
+ // src/WeaverseHydrogenRoot.tsx
18
+ import { Await, useLoaderData, useRouteLoaderData } from "@remix-run/react";
19
+ import { WeaverseRoot } from "@weaverse/react";
20
+ import React2, { memo as memo2, Suspense } from "react";
21
+ import { ErrorBoundary } from "react-error-boundary";
22
+
23
+ // src/context.ts
24
+ import { isBrowser } from "@weaverse/react";
25
+ import { createContext } from "react";
26
+
17
27
  // src/components/main.tsx
18
28
  var main_exports = {};
19
29
  __export(main_exports, {
@@ -46,40 +56,31 @@ var schema = {
46
56
  // src/components/index.ts
47
57
  var defaultComponents = [main_exports];
48
58
 
49
- // src/WeaverseHydrogenRoot.tsx
50
- import { Await, useLoaderData, useRouteLoaderData } from "@remix-run/react";
51
- import { WeaverseRoot } from "@weaverse/react";
52
- import React2, { memo as memo2, Suspense } from "react";
53
- import { ErrorBoundary } from "react-error-boundary";
54
-
55
59
  // src/context.ts
56
- import { isBrowser } from "@weaverse/react";
57
- import { createContext } from "react";
58
- function createCachedWeaverseInstance(params, components) {
60
+ function createCachedWeaverseInstance(params) {
59
61
  if (isBrowser) {
60
62
  window.__weaverses = window.__weaverses || {};
61
63
  let weaverse = window.__weaverses[params.pageId];
62
64
  if (!weaverse) {
63
- weaverse = new WeaverseHydrogen(params, components);
65
+ weaverse = new WeaverseHydrogen(params);
64
66
  window.__weaverses[params.pageId] = weaverse;
65
67
  } else if (weaverse.isDesignMode) {
66
68
  window.weaverseStudio?.refresh(params);
67
69
  }
68
70
  return weaverse;
69
71
  }
70
- return new WeaverseHydrogen(params, components);
72
+ return new WeaverseHydrogen(params);
71
73
  }
72
74
  function createWeaverseInstance(weaverseData, components) {
73
75
  let { page, configs, project, pageAssignment } = weaverseData || {};
74
- return createCachedWeaverseInstance(
75
- {
76
- ...configs,
77
- data: page || {},
78
- pageId: page?.id,
79
- internal: { project, pageAssignment }
80
- },
81
- components
82
- );
76
+ registerComponents(components);
77
+ registerComponents(defaultComponents);
78
+ return createCachedWeaverseInstance({
79
+ ...configs,
80
+ data: page || {},
81
+ pageId: page?.id,
82
+ internal: { project, pageAssignment }
83
+ });
83
84
  }
84
85
  var ThemeProvider = createContext(null);
85
86
  ThemeProvider.displayName = "WeaverseThemeProvider";
@@ -510,54 +511,48 @@ function getSelectedProductOptions(request) {
510
511
  }
511
512
 
512
513
  // src/index.ts
514
+ var registerComponents = (components) => {
515
+ components.forEach((comp) => {
516
+ WeaverseHydrogen.registerElement({
517
+ type: comp?.schema?.type,
518
+ Component: comp?.default,
519
+ schema: comp?.schema,
520
+ loader: comp?.loader
521
+ });
522
+ });
523
+ };
513
524
  var WeaverseHydrogen = class extends Weaverse {
514
525
  platformType = "shopify-hydrogen";
515
526
  pageId;
516
527
  internal;
517
528
  requestInfo;
518
- constructor(params, components) {
519
- console.log("\u{1F4BF} New WeaverseHydrogen", params);
529
+ constructor(params) {
520
530
  let { internal, pageId, requestInfo, ...coreParams } = params;
521
- super({ ...coreParams, ItemConstructor: WeaverseHydrogenItem });
531
+ super({ ...coreParams });
522
532
  this.internal = internal;
523
533
  this.pageId = pageId;
524
534
  this.requestInfo = requestInfo;
525
- this.registerComponents(components);
526
- this.registerComponents(defaultComponents);
527
535
  }
528
- registerComponents = (components) => {
529
- components.forEach((comp) => {
530
- Weaverse.registerElement({
531
- type: comp?.schema?.type,
532
- Component: comp?.default,
533
- schema: comp?.schema,
534
- loader: comp?.loader
535
- });
536
- });
537
- };
538
536
  };
539
537
  var WeaverseHydrogenItem = class extends WeaverseItemStore {
540
538
  constructor(initialData, weaverse) {
541
539
  super(initialData, weaverse);
542
540
  let { data, ...rest } = initialData;
543
- this._store = { ...data, ...rest };
541
+ Object.assign(this._store, this.getDefaultData(), data, rest);
544
542
  }
545
543
  get Element() {
546
544
  return super.Element;
547
545
  }
548
- get data() {
549
- let defaultData = this.Element?.schema?.inspector?.flatMap((group) => group.inputs).reduce((a, { defaultValue, name }) => {
546
+ getDefaultData = () => {
547
+ return this.Element?.schema?.inspector?.flatMap((group) => group.inputs).reduce((a, { defaultValue, name }) => {
550
548
  if (name && defaultValue !== null && defaultValue !== void 0) {
551
549
  a[name] = defaultValue;
552
550
  }
553
551
  return a;
554
552
  }, {});
555
- return { ...defaultData, ...super.data };
556
- }
557
- set data(update) {
558
- super.data = update;
559
- }
553
+ };
560
554
  };
555
+ Weaverse.ItemConstructor = WeaverseHydrogenItem;
561
556
  export {
562
557
  ThemeSettingsStore,
563
558
  WeaverseClient,
@@ -567,6 +562,7 @@ export {
567
562
  getRequestQueries,
568
563
  getSelectedProductOptions,
569
564
  getWeaverseConfigs,
565
+ registerComponents,
570
566
  useChildInstances,
571
567
  useItemInstance,
572
568
  useParentInstance,
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.9.0",
5
+ "version": "2.10.1",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",
8
8
  "typings": "dist/index.d.ts",
@@ -33,7 +33,7 @@
33
33
  "singleQuote": true
34
34
  },
35
35
  "dependencies": {
36
- "@weaverse/react": "2.9.0",
36
+ "@weaverse/react": "2.10.1",
37
37
  "react-error-boundary": "^4.0.12"
38
38
  },
39
39
  "devDependencies": {