@weaverse/hydrogen 5.24.0 → 6.0.0-beta.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.
Files changed (80) hide show
  1. package/dist/index.js +23 -2444
  2. package/dist/index.mjs +4 -2407
  3. package/dist/internal.js +64 -0
  4. package/dist/internal.js.map +1 -0
  5. package/dist/internal.mjs +16 -0
  6. package/dist/internal.mjs.map +1 -0
  7. package/dist/next-server.js +14 -0
  8. package/dist/next-server.mjs +2 -0
  9. package/dist/next.js +119 -0
  10. package/dist/next.mjs +5 -0
  11. package/dist/react-router.js +68 -0
  12. package/dist/react-router.mjs +5 -0
  13. package/dist/react.js +26 -0
  14. package/dist/react.mjs +2 -0
  15. package/dist/translation-store-BpPWqZ0B.js +548 -0
  16. package/dist/translation-store-BpPWqZ0B.js.map +1 -0
  17. package/dist/translation-store-C42QdI0e.mjs +441 -0
  18. package/dist/translation-store-C42QdI0e.mjs.map +1 -0
  19. package/dist/types/WeaverseHydrogenRoot.d.ts +7 -7
  20. package/dist/types/WeaverseHydrogenRoot.d.ts.map +1 -1
  21. package/dist/types/components/index.d.ts +2 -2
  22. package/dist/types/components/main.d.ts +2 -2
  23. package/dist/types/hooks/translation-context.d.ts +2 -8
  24. package/dist/types/hooks/translation-context.d.ts.map +1 -1
  25. package/dist/types/index.d.ts +12 -33
  26. package/dist/types/index.d.ts.map +1 -1
  27. package/dist/types/internal.d.ts +24 -0
  28. package/dist/types/internal.d.ts.map +1 -0
  29. package/dist/types/next-server.d.ts +8 -0
  30. package/dist/types/next-server.d.ts.map +1 -0
  31. package/dist/types/next.d.ts +12 -0
  32. package/dist/types/next.d.ts.map +1 -0
  33. package/dist/types/react-router.d.ts +18 -0
  34. package/dist/types/react-router.d.ts.map +1 -0
  35. package/dist/types/react.d.ts +11 -0
  36. package/dist/types/react.d.ts.map +1 -0
  37. package/dist/types/seo.d.ts +4 -4
  38. package/dist/types/seo.d.ts.map +1 -1
  39. package/dist/types/types.d.ts +88 -68
  40. package/dist/types/types.d.ts.map +1 -1
  41. package/dist/types/utils/index.d.ts +4 -5
  42. package/dist/types/utils/index.d.ts.map +1 -1
  43. package/dist/types/utils/nested-key.d.ts +9 -0
  44. package/dist/types/utils/nested-key.d.ts.map +1 -0
  45. package/dist/types/utils/normalize-page-url.d.ts +1 -1
  46. package/dist/types/utils/product-options.d.ts +18 -0
  47. package/dist/types/utils/product-options.d.ts.map +1 -0
  48. package/dist/types/utils/use-studio.d.ts +1 -1
  49. package/dist/types/utils/use-studio.d.ts.map +1 -1
  50. package/dist/types/utils/use-theme-settings-store.d.ts +8 -8
  51. package/dist/types/utils/use-theme-settings-store.d.ts.map +1 -1
  52. package/dist/types/weaverse-client.d.ts +14 -16
  53. package/dist/types/weaverse-client.d.ts.map +1 -1
  54. package/dist/weaverse-client-Clu3u7md.mjs +1966 -0
  55. package/dist/weaverse-client-Clu3u7md.mjs.map +1 -0
  56. package/dist/weaverse-client-yC4TYuVV.js +2073 -0
  57. package/dist/weaverse-client-yC4TYuVV.js.map +1 -0
  58. package/package.json +43 -5
  59. package/readme.md +44 -24
  60. package/src/WeaverseHydrogenRoot.tsx +18 -15
  61. package/src/components/index.ts +2 -2
  62. package/src/components/main.tsx +2 -2
  63. package/src/hooks/translation-context.tsx +3 -28
  64. package/src/index.ts +42 -81
  65. package/src/internal.ts +64 -0
  66. package/src/next-server.ts +13 -0
  67. package/src/next.ts +35 -0
  68. package/src/react-router.ts +52 -0
  69. package/src/react.ts +16 -0
  70. package/src/seo.ts +5 -5
  71. package/src/types.ts +104 -74
  72. package/src/utils/index.ts +15 -14
  73. package/src/utils/nested-key.ts +28 -0
  74. package/src/utils/normalize-page-url.ts +1 -1
  75. package/src/utils/product-options.ts +28 -0
  76. package/src/utils/use-studio.ts +1 -1
  77. package/src/utils/use-theme-settings-store.ts +7 -7
  78. package/src/weaverse-client.ts +88 -96
  79. package/dist/index.js.map +0 -1
  80. package/dist/index.mjs.map +0 -1
@@ -28,19 +28,19 @@ import {
28
28
  } from './hooks/translation-context'
29
29
  import { createWeaverseDataContext } from './hooks/use-weaverse-data-context'
30
30
  import type {
31
- HydrogenComponentData,
32
31
  HydrogenElement,
33
- HydrogenPageData,
34
- HydrogenThemeSettings,
35
32
  TranslationChanges,
36
33
  TranslationEntry,
37
34
  TranslationItemEntry,
38
35
  TranslationMap,
36
+ WeaverseComponentData,
39
37
  WeaverseInternal,
40
38
  WeaverseLoaderRequestInfo,
41
- } from './index'
39
+ WeaversePageData,
40
+ WeaverseThemeSettings,
41
+ } from './internal'
42
42
  import type {
43
- HydrogenComponent,
43
+ WeaverseComponent,
44
44
  WeaverseHydrogenParams,
45
45
  WeaverseLoaderData,
46
46
  } from './types'
@@ -91,7 +91,7 @@ export class WeaverseHydrogenItem extends WeaverseItemStore {
91
91
  private _snapshotTranslationRef: TranslationItemEntry | null = null
92
92
 
93
93
  /** Creates an item store from serialized component data and its owner. */
94
- constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen) {
94
+ constructor(initialData: WeaverseComponentData, weaverse: WeaverseHydrogen) {
95
95
  super(initialData, weaverse)
96
96
  const { data, ...rest } = initialData
97
97
  if (!this.Element?.schema) {
@@ -231,7 +231,7 @@ export class WeaverseHydrogen extends Weaverse {
231
231
  /** Component item store constructor used by the core runtime. */
232
232
  declare ItemConstructor: typeof WeaverseHydrogenItem
233
233
  /** Current page content owned by the runtime. */
234
- declare data: HydrogenPageData
234
+ declare data: WeaversePageData
235
235
  /** Component item stores indexed by instance ID. */
236
236
  declare static itemInstances: Map<string, WeaverseHydrogenItem>
237
237
  /** Registered component definitions indexed by component type. */
@@ -359,7 +359,7 @@ export class WeaverseHydrogen extends Weaverse {
359
359
  /**
360
360
  * Override setProjectData to re-extract translation sidecar from new page data.
361
361
  */
362
- setProjectData = (data: HydrogenPageData) => {
362
+ setProjectData = (data: WeaversePageData) => {
363
363
  this.data = data
364
364
  this.extractTranslationSidecar()
365
365
  this.initProject()
@@ -371,8 +371,11 @@ function createWeaverseInstance(
371
371
  ): WeaverseHydrogen {
372
372
  const normalizedParams = normalizeRequestInfo(params)
373
373
  if (isBrowser) {
374
- window.__weaverses = window.__weaverses || {}
375
- const existing = window.__weaverses[normalizedParams.pageId]
374
+ const runtimeWindow = window as unknown as {
375
+ __weaverses?: Record<string, WeaverseHydrogen>
376
+ }
377
+ runtimeWindow.__weaverses = runtimeWindow.__weaverses || {}
378
+ const existing = runtimeWindow.__weaverses[normalizedParams.pageId]
376
379
  // Reuse the instance only while the browser stays on the same URL —
377
380
  // navigation to a different pathname/search builds a fresh instance.
378
381
  const isReused =
@@ -382,7 +385,7 @@ function createWeaverseInstance(
382
385
  const weaverse = isReused
383
386
  ? existing
384
387
  : new WeaverseHydrogen(normalizedParams)
385
- window.__weaverses[normalizedParams.pageId] = weaverse
388
+ runtimeWindow.__weaverses[normalizedParams.pageId] = weaverse
386
389
  if (weaverse.isDesignMode) {
387
390
  weaverse.requestInfo = normalizedParams.requestInfo
388
391
  if (hasWeaverseStudio(window)) {
@@ -414,11 +417,11 @@ const StudioConnect = memo(() => {
414
417
  * allocates and loops on every render — theme component arrays are
415
418
  * module-level constants, so register each list identity once.
416
419
  */
417
- const registeredComponentLists = new WeakSet<HydrogenComponent[]>()
420
+ const registeredComponentLists = new WeakSet<WeaverseComponent[]>()
418
421
 
419
422
  function RenderRoot(props: {
420
423
  data: WeaverseLoaderData
421
- components: HydrogenComponent[]
424
+ components: WeaverseComponent[]
422
425
  dataContext?: Record<string, any>
423
426
  }) {
424
427
  const { data, components, dataContext } = props
@@ -488,7 +491,7 @@ export interface WeaverseHydrogenRootErrorProps {
488
491
  /** Props accepted by {@link WeaverseHydrogenRoot}. */
489
492
  export interface WeaverseHydrogenRootProps {
490
493
  /** Theme components available to the page renderer. */
491
- components: HydrogenComponent[]
494
+ components: WeaverseComponent[]
492
495
  /**
493
496
  * Optional explicit `weaverseData` payload. When provided, bypasses the
494
497
  * automatic route-scoped resolution. Accepts a resolved value, a
@@ -686,7 +689,7 @@ function useTranslationData(): {
686
689
  * }
687
690
  * ```
688
691
  */
689
- export function useThemeSettings<T = HydrogenThemeSettings>() {
692
+ export function useThemeSettings<T = WeaverseThemeSettings>() {
690
693
  const themeSettingsStore = useThemeSettingsStore()
691
694
  const settings = useSafeExternalStore(
692
695
  themeSettingsStore.subscribe,
@@ -1,8 +1,8 @@
1
- import type { HydrogenComponent } from '../types'
1
+ import type { WeaverseComponent } from '../types'
2
2
  import MainComponent, { schema as mainSchema } from './main'
3
3
 
4
4
  /** Built-in components required to render the root of every Weaverse page. */
5
- export let defaultComponents: HydrogenComponent[] = [
5
+ export let defaultComponents: WeaverseComponent[] = [
6
6
  {
7
7
  default: MainComponent,
8
8
  schema: mainSchema,
@@ -1,12 +1,12 @@
1
1
  import { createSchema, type SchemaType } from '@weaverse/schema'
2
2
  import type { HTMLAttributes } from 'react'
3
- import type { HydrogenComponentProps } from '../types'
3
+ import type { WeaverseComponentProps } from '../types'
4
4
 
5
5
  /*
6
6
  Main is the default Weaverse component that is used to render the main content.
7
7
  This component wraps all the sections/components inside a Weaverse page.
8
8
  */
9
- function Main(props: HydrogenComponentProps & HTMLAttributes<HTMLDivElement>) {
9
+ function Main(props: WeaverseComponentProps & HTMLAttributes<HTMLDivElement>) {
10
10
  let { children, dangerouslySetInnerHTML, ...rest } = props
11
11
 
12
12
  return (
@@ -1,35 +1,10 @@
1
1
  import { useSafeExternalStore } from '@weaverse/react'
2
2
  import { createContext, type ReactNode, useContext, useMemo } from 'react'
3
- import type { TranslationStore } from '../utils/translation-store'
4
-
5
- /**
6
- * Traverse a nested object by dot-path.
7
- *
8
- * @example
9
- * getNestedKey({ cart: { title: 'Cart' } }, 'cart.title') // => 'Cart'
10
- * getNestedKey({}, 'cart.title', 'fallback') // => 'fallback'
11
- */
12
- export function getNestedKey(
13
- obj: Record<string, unknown>,
14
- path: string,
15
- fallback?: string
16
- ): string | undefined {
17
- const keys = path.split('.')
18
- let current: unknown = obj
3
+ import { getNestedKey } from '../utils/nested-key'
19
4
 
20
- for (const key of keys) {
21
- if (current == null || typeof current !== 'object') {
22
- return fallback
23
- }
24
- current = (current as Record<string, unknown>)[key]
25
- }
26
-
27
- if (typeof current === 'string') {
28
- return current
29
- }
5
+ export { getNestedKey }
30
6
 
31
- return fallback
32
- }
7
+ import type { TranslationStore } from '../utils/translation-store'
33
8
 
34
9
  /**
35
10
  * Replace `{{variable}}` patterns in a string with provided values.
package/src/index.ts CHANGED
@@ -1,88 +1,49 @@
1
1
  /**
2
- * React and React Router integrations for rendering Weaverse content in
3
- * Shopify Hydrogen storefronts.
2
+ * Framework-independent core of the Weaverse SDK for Hydrogen storefronts:
3
+ * component and theme schemas, data helpers, translations and shared types.
4
4
  *
5
- * @packageDocumentation
6
- */
7
-
8
- import { getSelectedProductOptions as hydrogen_getSelectedProductOptions } from '@shopify/hydrogen'
9
- import type { SelectedOptionInput } from '@shopify/hydrogen/storefront-api-types'
10
- import {
11
- isBrowser,
12
- isIframe,
13
- useChildInstances,
14
- useItemInstance,
15
- useParentInstance,
16
- useWeaverse,
17
- } from '@weaverse/react'
18
-
19
- /**
20
- * Filter out Weaverse-specific query parameters from product options.
21
- * Removes `isDesignMode` and any parameters starting with `weaverse` prefix.
22
- *
23
- * @param request - The incoming HTTP request
24
- * @returns Filtered product options for Shopify Hydrogen
5
+ * Themes import from their framework's entry, such as
6
+ * `@weaverse/hydrogen/react-router`, which re-exports this core.
25
7
  *
26
- * @example
27
- * ```typescript
28
- * export async function loader({ request }: LoaderFunctionArgs) {
29
- * const selectedOptions = getSelectedProductOptions(request)
30
- * // Use selectedOptions for product queries without Weaverse params
31
- * }
32
- * ```
8
+ * @packageDocumentation
33
9
  */
34
- export function getSelectedProductOptions(
35
- request: Request
36
- ): SelectedOptionInput[] {
37
- let options = hydrogen_getSelectedProductOptions(request)
38
- return options.filter(
39
- ({ name }) => name !== 'isDesignMode' && !name.startsWith('weaverse')
40
- )
41
- }
42
10
 
43
- // Re-export all types and utilities from schema package
44
- export * from '@weaverse/schema'
45
- export * from './components'
46
- export {
47
- getNestedKey,
48
- interpolate,
49
- // Deprecated aliases — kept for backward compatibility.
50
- ThemeTextProvider,
51
- type ThemeTextProviderProps,
52
- type ThemeTextValue,
53
- type TranslateFunction,
54
- // Canonical translation API.
55
- TranslationProvider,
56
- type TranslationProviderProps,
57
- type TranslationValue,
58
- useThemeText,
59
- useTranslation,
60
- } from './hooks/translation-context'
61
- // Export Hydrogen-specific hooks
11
+ export { isBrowser, isIframe } from '@weaverse/react'
62
12
  export {
63
- createWeaverseDataContext,
64
- type RouteKeyedDataContext,
65
- useWeaverseDataContext,
66
- type WeaverseDataContext,
67
- } from './hooks/use-weaverse-data-context'
68
- // Export hydrogen-specific modules
69
- export * from './seo'
70
- export * from './types'
71
- export * from './utils'
72
- export type { WeaverseDataValue } from './utils/pick-weaverse-data'
73
- export { ThemeTextStore, TranslationStore } from './utils/translation-store'
74
- export type {
75
- ThemeSettingsStore,
76
- WeaverseThemeData,
77
- } from './utils/use-theme-settings-store'
78
- export * from './WeaverseHydrogenRoot'
79
- export * from './weaverse-client'
80
- // Re-export utilities from @weaverse/react
13
+ type BasicInput,
14
+ createSchema,
15
+ IMAGES_PLACEHOLDERS,
16
+ type InspectorGroup,
17
+ type PageType,
18
+ type SchemaType,
19
+ } from '@weaverse/schema'
20
+ export type { TranslateFunction } from './hooks/translation-context'
81
21
  export {
82
- isBrowser,
83
- isIframe,
84
- useChildInstances,
85
- useItemInstance,
86
- useParentInstance,
87
- useWeaverse,
88
- }
22
+ type ComponentDataValue,
23
+ type PublicEnv,
24
+ type WeaverseBlog,
25
+ type WeaverseChildComponentReference,
26
+ type WeaverseCollection,
27
+ type WeaverseComponentData,
28
+ type WeaverseComponentSchema,
29
+ WeaverseError,
30
+ type WeaverseI18n,
31
+ type WeaverseImage,
32
+ WeaverseLoadError,
33
+ type WeaverseLoaderData,
34
+ type WeaverseLoaderRequestInfo,
35
+ type WeaverseLoadFailureKind,
36
+ type WeaverseMetaObject,
37
+ type WeaversePageAssignment,
38
+ type WeaversePageData,
39
+ type WeaverseProduct,
40
+ type WeaverseProjectConfigs,
41
+ type WeaverseProjectType,
42
+ type WeaverseThemeSchema,
43
+ type WeaverseThemeSettings,
44
+ type WeaverseThemeSettingsResponse,
45
+ type WeaverseVideo,
46
+ } from './types'
47
+ export { generateDataFromSchema } from './utils'
48
+ export { getNestedKey } from './utils/nested-key'
49
+ export { TranslationStore } from './utils/translation-store'
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Internal surface of `@weaverse/hydrogen` for Weaverse's own tools (Builder,
3
+ * CLI). Undocumented and not covered by semver: themes import from
4
+ * `@weaverse/hydrogen/react-router` instead.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+
9
+ import {
10
+ isBrowser,
11
+ isIframe,
12
+ useChildInstances,
13
+ useItemInstance,
14
+ useParentInstance,
15
+ useWeaverse,
16
+ } from '@weaverse/react'
17
+
18
+ // Re-export all types and utilities from schema package
19
+ export * from '@weaverse/schema'
20
+ export * from './components'
21
+ export {
22
+ interpolate,
23
+ // Deprecated aliases — kept for backward compatibility.
24
+ ThemeTextProvider,
25
+ type ThemeTextProviderProps,
26
+ type ThemeTextValue,
27
+ type TranslateFunction,
28
+ // Canonical translation API.
29
+ TranslationProvider,
30
+ type TranslationProviderProps,
31
+ type TranslationValue,
32
+ useThemeText,
33
+ useTranslation,
34
+ } from './hooks/translation-context'
35
+ // Export Hydrogen-specific hooks
36
+ export {
37
+ createWeaverseDataContext,
38
+ type RouteKeyedDataContext,
39
+ useWeaverseDataContext,
40
+ type WeaverseDataContext,
41
+ } from './hooks/use-weaverse-data-context'
42
+ // Export hydrogen-specific modules
43
+ export * from './seo'
44
+ export * from './types'
45
+ export * from './utils'
46
+ export { getNestedKey } from './utils/nested-key'
47
+ export type { WeaverseDataValue } from './utils/pick-weaverse-data'
48
+ export { getSelectedProductOptions } from './utils/product-options'
49
+ export { ThemeTextStore, TranslationStore } from './utils/translation-store'
50
+ export type {
51
+ ThemeSettingsStore,
52
+ WeaverseThemeData,
53
+ } from './utils/use-theme-settings-store'
54
+ export * from './WeaverseHydrogenRoot'
55
+ export * from './weaverse-client'
56
+ // Re-export utilities from @weaverse/react
57
+ export {
58
+ isBrowser,
59
+ isIframe,
60
+ useChildInstances,
61
+ useItemInstance,
62
+ useParentInstance,
63
+ useWeaverse,
64
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Server-only part of the Next.js adapter: the server client that loads pages
3
+ * and theme settings, and the revalidation route handler.
4
+ *
5
+ * @packageDocumentation
6
+ */
7
+
8
+ export {
9
+ createWeaverseNextRevalidateHandler,
10
+ createWeaverseNextServerClient,
11
+ type WeaverseNextServerClient,
12
+ type WeaverseNextThemeSettingsResponse,
13
+ } from '@weaverse/next/server'
package/src/next.ts ADDED
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Next.js App Router adapter of the Weaverse SDK: the client factory, root and
3
+ * page providers, renderer and Studio connection. Re-exports the core and the
4
+ * React bindings, so a Next.js storefront imports client and shared code from
5
+ * this entry and server-only code from `@weaverse/hydrogen/next/server`.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+
10
+ // Hooks and stores come from the Next adapter itself so they share its React
11
+ // contexts; these named exports take precedence over the star re-exports.
12
+ export {
13
+ buildWeaverseNextRequestInfo,
14
+ createWeaverseNextClient,
15
+ TranslationProvider,
16
+ TranslationStore,
17
+ useChildInstances,
18
+ useItemInstance,
19
+ useParentInstance,
20
+ useThemeSettings,
21
+ useTranslation,
22
+ useWeaverse,
23
+ type WeaverseNextComponent,
24
+ type WeaverseNextI18n,
25
+ type WeaverseNextLoaderData,
26
+ WeaverseNextProvider,
27
+ WeaverseNextRenderer,
28
+ type WeaverseNextRequestContext,
29
+ WeaverseNextRootProvider,
30
+ WeaverseNextStudioConnect,
31
+ type WeaverseNextThemeSchema,
32
+ type WeaverseNextThemeSchemaGroup,
33
+ } from '@weaverse/next'
34
+ export * from './index'
35
+ export * from './react'
@@ -0,0 +1,52 @@
1
+ /**
2
+ * React Router adapter of the Weaverse SDK for Hydrogen 2026.10+ storefronts:
3
+ * the request-scoped client, root rendering, Studio connection, SEO and
4
+ * commerce helpers. Re-exports the core and the React bindings, so a theme
5
+ * imports everything from this entry.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+
10
+ export {
11
+ TranslationProvider,
12
+ type TranslationProviderProps,
13
+ type TranslationValue,
14
+ useTranslation,
15
+ } from './hooks/translation-context'
16
+ export * from './index'
17
+ export * from './react'
18
+ export {
19
+ getWeaverseSeoMeta,
20
+ type WeaverseSeoInput,
21
+ type WeaverseSeoPageContainer,
22
+ } from './seo'
23
+ export type {
24
+ CustomPageEntry,
25
+ FetchProjectRequestBody,
26
+ LoadPageParams,
27
+ ProjectIdValue,
28
+ RouteLoaderArgs,
29
+ WeaverseClientArgs,
30
+ WeaverseComponent,
31
+ WeaverseComponentLoaderArgs,
32
+ WeaverseEnv,
33
+ WeaverseRouteAppLoadContext,
34
+ WeaverseStorefront,
35
+ WeaverseStorefrontCallOptions,
36
+ } from './types'
37
+ export type { WeaverseDataValue } from './utils/pick-weaverse-data'
38
+ export { getSelectedProductOptions } from './utils/product-options'
39
+ export {
40
+ useThemeSettings,
41
+ WeaverseHydrogenRoot,
42
+ type WeaverseHydrogenRootErrorProps,
43
+ type WeaverseHydrogenRootProps,
44
+ type WithWeaverseOptions,
45
+ withWeaverse,
46
+ } from './WeaverseHydrogenRoot'
47
+ export {
48
+ type BuilderApiCacheTarget,
49
+ type FetchCustomPagesOptions,
50
+ WeaverseClient,
51
+ type WeaverseFetchWithCacheOptions,
52
+ } from './weaverse-client'
package/src/react.ts ADDED
@@ -0,0 +1,16 @@
1
+ /**
2
+ * React bindings of the Weaverse SDK that work in any React framework.
3
+ *
4
+ * Themes import from their framework's entry, such as
5
+ * `@weaverse/hydrogen/react-router`, which re-exports these bindings.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+
10
+ export {
11
+ useChildInstances,
12
+ useItemInstance,
13
+ useParentInstance,
14
+ useWeaverse,
15
+ } from '@weaverse/react'
16
+ export type { WeaverseComponentProps } from './types'
package/src/seo.ts CHANGED
@@ -1,17 +1,17 @@
1
1
  import type { PageSEOData } from '@weaverse/schema'
2
2
  import type { MetaDescriptor } from 'react-router'
3
- import type { HydrogenPageData, WeaverseLoaderData } from './types'
3
+ import type { WeaverseLoaderData, WeaversePageData } from './types'
4
4
 
5
5
  /** Object containing an optional Weaverse page for SEO extraction. */
6
6
  export interface WeaverseSeoPageContainer {
7
7
  /** Page whose published SEO fields should be formatted. */
8
- page?: HydrogenPageData | null
8
+ page?: WeaversePageData | null
9
9
  }
10
10
 
11
11
  /** Input accepted by {@link getWeaverseSeoMeta}. */
12
12
  export type WeaverseSeoInput =
13
13
  | WeaverseLoaderData
14
- | HydrogenPageData
14
+ | WeaversePageData
15
15
  | WeaverseSeoPageContainer
16
16
  | null
17
17
  | undefined
@@ -104,7 +104,7 @@ export function formatMetaDescriptors(
104
104
 
105
105
  /**
106
106
  * Convenience accessor: pull `page.seo` out of a `WeaverseLoaderData`
107
- * (or `HydrogenPageData`) and emit `MetaDescriptor[]`. Null-safe.
107
+ * (or `WeaversePageData`) and emit `MetaDescriptor[]`. Null-safe.
108
108
  *
109
109
  * @example
110
110
  * ```ts
@@ -119,7 +119,7 @@ export function getWeaverseSeoMeta(data: WeaverseSeoInput): MetaDescriptor[] {
119
119
  }
120
120
  let page =
121
121
  'items' in data && 'id' in data
122
- ? (data as HydrogenPageData)
122
+ ? (data as WeaversePageData)
123
123
  : ((data as WeaverseSeoPageContainer).page ?? null)
124
124
  return formatMetaDescriptors(page?.seo ?? null)
125
125
  }