@weaverse/hydrogen 2.8.12 → 2.10.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
@@ -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,39 +91,32 @@ 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 || {};
111
+ registerComponents(components);
112
+ registerComponents(defaultComponents);
108
113
  return createCachedWeaverseInstance(
109
114
  {
110
115
  ...configs,
111
116
  data: page || {},
112
117
  pageId: page?.id,
113
118
  internal: { project, pageAssignment }
114
- },
115
- components
119
+ }
116
120
  );
117
121
  }
118
122
  var ThemeProvider = (0, import_react3.createContext)(null);
@@ -359,8 +363,8 @@ var WeaverseClient = class {
359
363
  let cacheKey = [url, options.body];
360
364
  let {
361
365
  strategy = this.storefront.CacheCustom({
362
- maxAge: 10,
363
- sMaxAge: 10,
366
+ maxAge: 2,
367
+ sMaxAge: 2,
364
368
  staleWhileRevalidate: 82800
365
369
  }),
366
370
  ...reqInit
@@ -544,53 +548,46 @@ function getSelectedProductOptions(request) {
544
548
  }
545
549
 
546
550
  // src/index.ts
551
+ var registerComponents = (components) => {
552
+ components.forEach((comp) => {
553
+ WeaverseHydrogen.registerElement({
554
+ type: comp?.schema?.type,
555
+ Component: comp?.default,
556
+ schema: comp?.schema,
557
+ loader: comp?.loader
558
+ });
559
+ });
560
+ };
547
561
  var WeaverseHydrogen = class extends import_react14.Weaverse {
548
562
  platformType = "shopify-hydrogen";
549
563
  pageId;
550
564
  internal;
551
565
  requestInfo;
552
- constructor(params, components) {
553
- console.log("\u{1F4BF} New WeaverseHydrogen", params);
566
+ constructor(params) {
554
567
  let { internal, pageId, requestInfo, ...coreParams } = params;
555
568
  super({ ...coreParams, ItemConstructor: WeaverseHydrogenItem });
556
569
  this.internal = internal;
557
570
  this.pageId = pageId;
558
571
  this.requestInfo = requestInfo;
559
- this.registerComponents(components);
560
- this.registerComponents(defaultComponents);
561
572
  }
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
573
  };
573
574
  var WeaverseHydrogenItem = class extends import_react14.WeaverseItemStore {
574
575
  constructor(initialData, weaverse) {
575
576
  super(initialData, weaverse);
576
577
  let { data, ...rest } = initialData;
577
- this._store = { ...data, ...rest };
578
+ this._store = { ...this.getDefaultData, ...data, ...rest };
578
579
  }
579
580
  get Element() {
580
581
  return super.Element;
581
582
  }
582
- get data() {
583
- let defaultData = this.Element?.schema?.inspector?.flatMap((group) => group.inputs).reduce((a, { defaultValue, name }) => {
583
+ getDefaultData = () => {
584
+ return this.Element?.schema?.inspector?.flatMap((group) => group.inputs).reduce((a, { defaultValue, name }) => {
584
585
  if (name && defaultValue !== null && defaultValue !== void 0) {
585
586
  a[name] = defaultValue;
586
587
  }
587
588
  return a;
588
589
  }, {});
589
- return { ...defaultData, ...super.data };
590
- }
591
- set data(update) {
592
- super.data = update;
593
- }
590
+ };
594
591
  };
595
592
  // Annotate the CommonJS export names for ESM import in node:
596
593
  0 && (module.exports = {
@@ -602,6 +599,7 @@ var WeaverseHydrogenItem = class extends import_react14.WeaverseItemStore {
602
599
  getRequestQueries,
603
600
  getSelectedProductOptions,
604
601
  getWeaverseConfigs,
602
+ registerComponents,
605
603
  useChildInstances,
606
604
  useItemInstance,
607
605
  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,39 +56,32 @@ 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 || {};
76
+ registerComponents(components);
77
+ registerComponents(defaultComponents);
74
78
  return createCachedWeaverseInstance(
75
79
  {
76
80
  ...configs,
77
81
  data: page || {},
78
82
  pageId: page?.id,
79
83
  internal: { project, pageAssignment }
80
- },
81
- components
84
+ }
82
85
  );
83
86
  }
84
87
  var ThemeProvider = createContext(null);
@@ -325,8 +328,8 @@ var WeaverseClient = class {
325
328
  let cacheKey = [url, options.body];
326
329
  let {
327
330
  strategy = this.storefront.CacheCustom({
328
- maxAge: 10,
329
- sMaxAge: 10,
331
+ maxAge: 2,
332
+ sMaxAge: 2,
330
333
  staleWhileRevalidate: 82800
331
334
  }),
332
335
  ...reqInit
@@ -510,53 +513,46 @@ function getSelectedProductOptions(request) {
510
513
  }
511
514
 
512
515
  // src/index.ts
516
+ var registerComponents = (components) => {
517
+ components.forEach((comp) => {
518
+ WeaverseHydrogen.registerElement({
519
+ type: comp?.schema?.type,
520
+ Component: comp?.default,
521
+ schema: comp?.schema,
522
+ loader: comp?.loader
523
+ });
524
+ });
525
+ };
513
526
  var WeaverseHydrogen = class extends Weaverse {
514
527
  platformType = "shopify-hydrogen";
515
528
  pageId;
516
529
  internal;
517
530
  requestInfo;
518
- constructor(params, components) {
519
- console.log("\u{1F4BF} New WeaverseHydrogen", params);
531
+ constructor(params) {
520
532
  let { internal, pageId, requestInfo, ...coreParams } = params;
521
533
  super({ ...coreParams, ItemConstructor: WeaverseHydrogenItem });
522
534
  this.internal = internal;
523
535
  this.pageId = pageId;
524
536
  this.requestInfo = requestInfo;
525
- this.registerComponents(components);
526
- this.registerComponents(defaultComponents);
527
537
  }
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
538
  };
539
539
  var WeaverseHydrogenItem = class extends WeaverseItemStore {
540
540
  constructor(initialData, weaverse) {
541
541
  super(initialData, weaverse);
542
542
  let { data, ...rest } = initialData;
543
- this._store = { ...data, ...rest };
543
+ this._store = { ...this.getDefaultData, ...data, ...rest };
544
544
  }
545
545
  get Element() {
546
546
  return super.Element;
547
547
  }
548
- get data() {
549
- let defaultData = this.Element?.schema?.inspector?.flatMap((group) => group.inputs).reduce((a, { defaultValue, name }) => {
548
+ getDefaultData = () => {
549
+ return this.Element?.schema?.inspector?.flatMap((group) => group.inputs).reduce((a, { defaultValue, name }) => {
550
550
  if (name && defaultValue !== null && defaultValue !== void 0) {
551
551
  a[name] = defaultValue;
552
552
  }
553
553
  return a;
554
554
  }, {});
555
- return { ...defaultData, ...super.data };
556
- }
557
- set data(update) {
558
- super.data = update;
559
- }
555
+ };
560
556
  };
561
557
  export {
562
558
  ThemeSettingsStore,
@@ -567,6 +563,7 @@ export {
567
563
  getRequestQueries,
568
564
  getSelectedProductOptions,
569
565
  getWeaverseConfigs,
566
+ registerComponents,
570
567
  useChildInstances,
571
568
  useItemInstance,
572
569
  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.8.12",
5
+ "version": "2.10.0",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",
8
8
  "typings": "dist/index.d.ts",
@@ -22,8 +22,8 @@
22
22
  "node": ">=18"
23
23
  },
24
24
  "peerDependencies": {
25
- "@remix-run/react": "^2.1.0",
26
- "@shopify/hydrogen": "^2023.10.2",
25
+ "@remix-run/react": "^2",
26
+ "@shopify/hydrogen": "^2023.10",
27
27
  "react": ">=18",
28
28
  "react-dom": ">=18"
29
29
  },
@@ -33,11 +33,11 @@
33
33
  "singleQuote": true
34
34
  },
35
35
  "dependencies": {
36
- "@weaverse/react": "2.8.12",
37
- "react-error-boundary": "^4.0.11"
36
+ "@weaverse/react": "2.10.0",
37
+ "react-error-boundary": "^4.0.12"
38
38
  },
39
39
  "devDependencies": {
40
- "@shopify/remix-oxygen": "^2.0.1"
40
+ "@shopify/remix-oxygen": "^2"
41
41
  },
42
42
  "scripts": {
43
43
  "start": "npm run dev",