@weaverse/next 0.1.0-alpha.9 → 1.0.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.
Files changed (116) hide show
  1. package/README.md +161 -73
  2. package/dist/{chunk-6PMZ77RA.mjs → chunk-OSC5HR5V.mjs} +117 -8
  3. package/dist/chunk-OSC5HR5V.mjs.map +1 -0
  4. package/dist/client-boundary.js +1425 -0
  5. package/dist/client-boundary.js.map +1 -0
  6. package/dist/client-boundary.mjs +1395 -0
  7. package/dist/client-boundary.mjs.map +1 -0
  8. package/dist/index.js +292 -1003
  9. package/dist/index.js.map +1 -1
  10. package/dist/index.mjs +90 -966
  11. package/dist/index.mjs.map +1 -1
  12. package/dist/server.js +321 -91
  13. package/dist/server.js.map +1 -1
  14. package/dist/server.mjs +205 -28
  15. package/dist/server.mjs.map +1 -1
  16. package/dist/types/client-boundary.d.ts +25 -0
  17. package/dist/types/client-boundary.d.ts.map +1 -0
  18. package/dist/types/client.d.ts +16 -0
  19. package/dist/types/client.d.ts.map +1 -0
  20. package/dist/types/hooks.d.ts +20 -0
  21. package/dist/types/hooks.d.ts.map +1 -0
  22. package/dist/types/index.d.ts +33 -0
  23. package/dist/types/index.d.ts.map +1 -0
  24. package/dist/types/item.d.ts +60 -0
  25. package/dist/types/item.d.ts.map +1 -0
  26. package/dist/types/loader.d.ts +25 -0
  27. package/dist/types/loader.d.ts.map +1 -0
  28. package/dist/types/main.d.ts +11 -0
  29. package/dist/types/main.d.ts.map +1 -0
  30. package/dist/types/provider.d.ts +82 -0
  31. package/dist/types/provider.d.ts.map +1 -0
  32. package/dist/types/registry.d.ts +15 -0
  33. package/dist/types/registry.d.ts.map +1 -0
  34. package/dist/types/renderer.d.ts +21 -0
  35. package/dist/types/renderer.d.ts.map +1 -0
  36. package/dist/types/request-info.d.ts +19 -0
  37. package/dist/types/request-info.d.ts.map +1 -0
  38. package/dist/types/revalidate-item.d.ts +82 -0
  39. package/dist/types/revalidate-item.d.ts.map +1 -0
  40. package/dist/types/root-provider.d.ts +62 -0
  41. package/dist/types/root-provider.d.ts.map +1 -0
  42. package/dist/types/runtime.d.ts +113 -0
  43. package/dist/types/runtime.d.ts.map +1 -0
  44. package/dist/types/seo.d.ts +55 -0
  45. package/dist/types/seo.d.ts.map +1 -0
  46. package/dist/types/server/configs.d.ts +27 -0
  47. package/dist/types/server/configs.d.ts.map +1 -0
  48. package/dist/types/server/normalize-page-url.d.ts +19 -0
  49. package/dist/types/server/normalize-page-url.d.ts.map +1 -0
  50. package/dist/types/server/revalidate-handler.d.ts +55 -0
  51. package/dist/types/server/revalidate-handler.d.ts.map +1 -0
  52. package/dist/types/server/server-client.d.ts +21 -0
  53. package/dist/types/server/server-client.d.ts.map +1 -0
  54. package/dist/types/server.d.ts +19 -0
  55. package/dist/types/server.d.ts.map +1 -0
  56. package/dist/types/studio-bridge.d.ts +16 -0
  57. package/dist/types/studio-bridge.d.ts.map +1 -0
  58. package/dist/types/studio-connect.d.ts +27 -0
  59. package/dist/types/studio-connect.d.ts.map +1 -0
  60. package/dist/types/studio-router.d.ts +50 -0
  61. package/dist/types/studio-router.d.ts.map +1 -0
  62. package/dist/types/studio-script-src.d.ts +12 -0
  63. package/dist/types/studio-script-src.d.ts.map +1 -0
  64. package/dist/types/theme-settings-store.d.ts +18 -0
  65. package/dist/types/theme-settings-store.d.ts.map +1 -0
  66. package/dist/types/translate.d.ts +56 -0
  67. package/dist/types/translate.d.ts.map +1 -0
  68. package/dist/types/translation-context.d.ts +109 -0
  69. package/dist/types/translation-context.d.ts.map +1 -0
  70. package/dist/types/translation-store.d.ts +44 -0
  71. package/dist/types/translation-store.d.ts.map +1 -0
  72. package/dist/types/types.d.ts +665 -0
  73. package/dist/types/types.d.ts.map +1 -0
  74. package/dist/types/use-weaverse-next-studio.d.ts +34 -0
  75. package/dist/types/use-weaverse-next-studio.d.ts.map +1 -0
  76. package/dist/types/utils.d.ts +22 -0
  77. package/dist/types/utils.d.ts.map +1 -0
  78. package/package.json +12 -27
  79. package/src/client-boundary.ts +50 -0
  80. package/src/client.ts +102 -0
  81. package/src/hooks.ts +50 -0
  82. package/src/index.ts +143 -0
  83. package/src/item.ts +167 -0
  84. package/src/loader.ts +135 -0
  85. package/src/main.tsx +45 -0
  86. package/src/provider.tsx +223 -0
  87. package/src/registry.ts +63 -0
  88. package/src/renderer.tsx +100 -0
  89. package/src/request-info.ts +124 -0
  90. package/src/revalidate-item.ts +211 -0
  91. package/src/root-provider.tsx +180 -0
  92. package/src/runtime.ts +555 -0
  93. package/src/seo.ts +157 -0
  94. package/src/server/configs.ts +178 -0
  95. package/src/server/normalize-page-url.ts +73 -0
  96. package/src/server/revalidate-handler.ts +357 -0
  97. package/src/server/server-client.ts +728 -0
  98. package/src/server.ts +67 -0
  99. package/src/studio-bridge.tsx +82 -0
  100. package/src/studio-connect.tsx +88 -0
  101. package/src/studio-router.ts +85 -0
  102. package/src/studio-script-src.ts +128 -0
  103. package/src/theme-settings-store.ts +47 -0
  104. package/src/translate.ts +125 -0
  105. package/src/translation-context.tsx +182 -0
  106. package/src/translation-store.ts +69 -0
  107. package/src/types.ts +753 -0
  108. package/src/use-weaverse-next-studio.tsx +106 -0
  109. package/src/utils.ts +49 -0
  110. package/dist/chunk-6PMZ77RA.mjs.map +0 -1
  111. package/dist/index.d.mts +0 -580
  112. package/dist/index.d.ts +0 -580
  113. package/dist/seo-Dos9t22_.d.mts +0 -477
  114. package/dist/seo-Dos9t22_.d.ts +0 -477
  115. package/dist/server.d.mts +0 -99
  116. package/dist/server.d.ts +0 -99
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { WeaverseNextRuntime } from './runtime';
2
+ import { type CreateWeaverseNextStudioInternalsOptions, type WeaverseNextStudioInternals } from './studio-router';
3
+ /**
4
+ * Resolve stable Studio `navigate` / `revalidate` callbacks from the Next App
5
+ * Router. `useRouter()` is stable across renders, but the derived callbacks are
6
+ * cached in a ref keyed on the router instance so the bridge's bind effect
7
+ * (which depends on `navigate` / `revalidate` identity) doesn't re-run — and
8
+ * re-`refreshStudio` — on every render.
9
+ */
10
+ export declare function useWeaverseNextStudioInternals(options?: CreateWeaverseNextStudioInternalsOptions): WeaverseNextStudioInternals;
11
+ /** Props for the page-level Next App Router Studio binder. */
12
+ export interface WeaverseNextStudioProps extends CreateWeaverseNextStudioInternalsOptions {
13
+ /**
14
+ * Route the app mounted with `createWeaverseNextRevalidateHandler`.
15
+ * Defaults to `/api/weaverse/revalidate`.
16
+ */
17
+ revalidateEndpoint?: string;
18
+ /** Browser runtime to bind to Builder Studio. */
19
+ runtime: WeaverseNextRuntime;
20
+ }
21
+ /**
22
+ * Page-level Studio binder wired to the Next App Router. Mirrors Hydrogen's
23
+ * `useStudio` (which binds the runtime and feeds it React Router's `navigate` /
24
+ * `revalidate`): it resolves the App Router callbacks via
25
+ * {@link useWeaverseNextStudioInternals} and hands them to
26
+ * {@link WeaverseNextStudioBridge}, so consuming apps get Studio navigation and
27
+ * revalidation without manually wiring `next/navigation`.
28
+ *
29
+ * Client-only — it is the single place `@weaverse/next` touches
30
+ * `next/navigation`, keeping the runtime/renderer and `@weaverse/next/server`
31
+ * free of router imports.
32
+ */
33
+ export declare function WeaverseNextStudio(props: WeaverseNextStudioProps): import("react/jsx-runtime").JSX.Element;
34
+ //# sourceMappingURL=use-weaverse-next-studio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-weaverse-next-studio.d.ts","sourceRoot":"","sources":["../../src/use-weaverse-next-studio.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAEpD,OAAO,EACL,KAAK,wCAAwC,EAE7C,KAAK,2BAA2B,EACjC,MAAM,iBAAiB,CAAA;AAGxB;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,CAAC,EAAE,wCAAwC,GACjD,2BAA2B,CAqB7B;AAED,8DAA8D;AAC9D,MAAM,WAAW,uBACf,SAAQ,wCAAwC;IAChD;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,iDAAiD;IACjD,OAAO,EAAE,mBAAmB,CAAA;CAC7B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CAgChE"}
@@ -0,0 +1,22 @@
1
+ import type { SchemaType } from '@weaverse/schema';
2
+ import type { WeaverseNextThemeSchema } from './types';
3
+ /**
4
+ * Generate default component data from a schema's `settings` inputs.
5
+ *
6
+ * Mirrors Hydrogen's `generateDataFromSchema` (settings → `{ [name]:
7
+ * defaultValue }`) but is kept local so `@weaverse/next` doesn't depend on
8
+ * `@weaverse/hydrogen`. Falls back to the deprecated `inspector` array when a
9
+ * schema predates `settings`.
10
+ */
11
+ export declare function generateDataFromSchema(schema: SchemaType | WeaverseNextThemeSchema | undefined): Record<string, unknown>;
12
+ /**
13
+ * Whether the code runs in a browser window.
14
+ *
15
+ * Defined here rather than re-exported from `@weaverse/react`, which sits
16
+ * behind the `'use client'` boundary: there a Server Component would receive a
17
+ * client reference, a truthy object, instead of `false`.
18
+ */
19
+ export declare let isBrowser: boolean;
20
+ /** Whether the code runs in a browser window embedded in an iframe. */
21
+ export declare let isIframe: boolean;
22
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAEtD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,GAAG,uBAAuB,GAAG,SAAS,GACvD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuBzB;AAED;;;;;;GAMG;AACH,eAAO,IAAI,SAAS,SAAgC,CAAA;AAEpD,uEAAuE;AACvE,eAAO,IAAI,QAAQ,SAA0C,CAAA"}
package/package.json CHANGED
@@ -2,19 +2,19 @@
2
2
  "name": "@weaverse/next",
3
3
  "author": "Weaverse Team",
4
4
  "description": "Next.js App Router integration for building Weaverse-powered storefronts",
5
- "version": "0.1.0-alpha.9",
5
+ "version": "1.0.1",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",
8
- "typings": "dist/index.d.ts",
8
+ "typings": "dist/types/index.d.ts",
9
9
  "module": "dist/index.mjs",
10
10
  "exports": {
11
11
  ".": {
12
- "types": "./dist/index.d.ts",
12
+ "types": "./dist/types/index.d.ts",
13
13
  "import": "./dist/index.mjs",
14
14
  "require": "./dist/index.js"
15
15
  },
16
16
  "./server": {
17
- "types": "./dist/server.d.ts",
17
+ "types": "./dist/types/server.d.ts",
18
18
  "import": "./dist/server.mjs",
19
19
  "require": "./dist/server.js"
20
20
  },
@@ -29,40 +29,25 @@
29
29
  "directory": "packages/next"
30
30
  },
31
31
  "files": [
32
- "dist/*"
32
+ "dist",
33
+ "src"
33
34
  ],
34
35
  "engines": {
35
36
  "node": ">=20"
36
37
  },
37
38
  "scripts": {
38
39
  "dev": "tsup --watch",
39
- "build": "tsup",
40
+ "build": "rimraf dist && tsup && node ../../scripts/build-declarations.mjs",
40
41
  "clean": "rimraf dist",
41
42
  "test": "vp test --run --config vitest.config.ts",
42
43
  "typecheck": "tsc --noEmit"
43
44
  },
44
- "tsup": {
45
- "entry": [
46
- "src/index.ts",
47
- "src/server.ts"
48
- ],
49
- "format": [
50
- "esm",
51
- "cjs"
52
- ],
53
- "dts": true,
54
- "sourcemap": true,
55
- "clean": true,
56
- "outDir": "dist",
57
- "treeshake": true,
58
- "external": [
59
- "next",
60
- "next/navigation"
61
- ]
62
- },
63
45
  "dependencies": {
64
- "@weaverse/react": "5.16.3",
65
- "@weaverse/schema": "0.10.0"
46
+ "@weaverse/react": "5.22.1",
47
+ "@weaverse/schema": "0.18.0"
48
+ },
49
+ "devDependencies": {
50
+ "next": "16.3.4"
66
51
  },
67
52
  "peerDependencies": {
68
53
  "next": ">=14",
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Everything in the root entry that must run as client code.
3
+ *
4
+ * These exports render components, call hooks, or reach `@weaverse/react`,
5
+ * which creates React contexts at module scope. The build emits this module as
6
+ * its own file under a `'use client'` banner, so a Server Component that
7
+ * imports `@weaverse/next` gets client references for them instead of
8
+ * evaluating `createContext` on the server. The root entry re-exports them by
9
+ * name next to its server-safe exports.
10
+ *
11
+ * Pure helpers stay out, so server code gets real values: the translate
12
+ * functions live in `./translate`, and `isBrowser`/`isIframe` in `./utils`.
13
+ */
14
+
15
+ export {
16
+ useChildInstances,
17
+ useItemInstance,
18
+ useParentInstance,
19
+ useWeaverse,
20
+ } from '@weaverse/react'
21
+ export { createWeaverseNextClient } from './client'
22
+ export {
23
+ useThemeSettings,
24
+ useWeaverseCommerce,
25
+ useWeaversePageData,
26
+ useWeaverseRootData,
27
+ } from './hooks'
28
+ export { WeaverseNextProvider } from './provider'
29
+ export { WeaverseNextRenderer } from './renderer'
30
+ export { WeaverseNextRootProvider } from './root-provider'
31
+ export {
32
+ bindWeaverseNextStudioRuntime,
33
+ createWeaverseNextRuntime,
34
+ WeaverseNextRuntime,
35
+ } from './runtime'
36
+ export { WeaverseNextStudioBridge } from './studio-bridge'
37
+ export {
38
+ loadWeaverseNextStudioScript,
39
+ WeaverseNextStudioConnect,
40
+ } from './studio-connect'
41
+ export {
42
+ ThemeTextProvider,
43
+ TranslationProvider,
44
+ useThemeText,
45
+ useTranslation,
46
+ } from './translation-context'
47
+ export {
48
+ useWeaverseNextStudioInternals,
49
+ WeaverseNextStudio,
50
+ } from './use-weaverse-next-studio'
package/src/client.ts ADDED
@@ -0,0 +1,102 @@
1
+ import type { SchemaType } from '@weaverse/schema'
2
+ import { registerWeaverseNextComponents } from './registry'
3
+ import type {
4
+ WeaverseNextClient,
5
+ WeaverseNextClientConfig,
6
+ WeaverseNextCommerceContext,
7
+ WeaverseNextComponent,
8
+ WeaverseNextLoaderData,
9
+ WeaverseNextLoadPageInput,
10
+ WeaverseNextRequestContext,
11
+ WeaverseNextStorefront,
12
+ WeaverseNextThemeSchema,
13
+ } from './types'
14
+ import { generateDataFromSchema } from './utils'
15
+
16
+ /**
17
+ * Request-safe Weaverse client for Next.js. Holds the component registry, theme
18
+ * data, request/commerce context, and the currently loaded page payload.
19
+ *
20
+ * Unlike Hydrogen's `WeaverseClient`, it never receives a React Router
21
+ * `Request`/`LoaderFunctionArgs`. Network I/O is delegated to `fetchPage` /
22
+ * `fetchThemeSettings` injected through config, keeping v0 testable without
23
+ * real Weaverse API calls.
24
+ */
25
+ class NextClient implements WeaverseNextClient {
26
+ projectId: string
27
+ components: WeaverseNextComponent[]
28
+ themeSchema?: SchemaType | WeaverseNextThemeSchema
29
+ themeSettings: Record<string, unknown>
30
+ requestContext?: WeaverseNextRequestContext
31
+ commerce?: WeaverseNextCommerceContext
32
+ data: WeaverseNextLoaderData | null = null
33
+ dataContext: Record<string, unknown> = {}
34
+
35
+ private readonly _fetchPage?: WeaverseNextClientConfig['fetchPage']
36
+ private readonly _fetchThemeSettings?: WeaverseNextClientConfig['fetchThemeSettings']
37
+
38
+ constructor(config: WeaverseNextClientConfig) {
39
+ this.projectId = config.projectId
40
+ this.components = config.components
41
+ registerWeaverseNextComponents(this.components)
42
+ this.themeSchema = config.themeSchema
43
+ // Seed `themeSchema` defaults before merchant-provided overrides, mirroring
44
+ // Hydrogen's `loadThemeSettings` (schema defaults under remote `theme`).
45
+ // Without this, `useThemeSettings()` would miss any setting the merchant
46
+ // never explicitly overrode.
47
+ this.themeSettings = {
48
+ ...generateDataFromSchema(config.themeSchema),
49
+ ...config.themeSettings,
50
+ }
51
+ this.requestContext = config.requestContext
52
+ this.commerce = config.commerce
53
+ this._fetchPage = config.fetchPage
54
+ this._fetchThemeSettings = config.fetchThemeSettings
55
+ }
56
+
57
+ /** Compatibility alias so loaders can call `weaverse.storefront.query(...)`. */
58
+ get storefront(): WeaverseNextStorefront | undefined {
59
+ return this.commerce?.storefront
60
+ }
61
+
62
+ loadPage = (
63
+ input: WeaverseNextLoadPageInput = {}
64
+ ): Promise<WeaverseNextLoaderData | null> => {
65
+ if (!this._fetchPage) {
66
+ throw new Error(
67
+ '[WeaverseNextClient] loadPage requires a `fetchPage` function in client config.'
68
+ )
69
+ }
70
+ return this._fetchPage(input)
71
+ }
72
+
73
+ loadThemeSettings = (
74
+ context?: WeaverseNextRequestContext
75
+ ): Promise<unknown> => {
76
+ if (!this._fetchThemeSettings) {
77
+ throw new Error(
78
+ '[WeaverseNextClient] loadThemeSettings requires a `fetchThemeSettings` function in client config.'
79
+ )
80
+ }
81
+ return this._fetchThemeSettings(context ?? this.requestContext)
82
+ }
83
+ }
84
+
85
+ /**
86
+ * Create a {@link WeaverseNextClient} from explicit config.
87
+ *
88
+ * @example
89
+ * ```ts
90
+ * let client = createWeaverseNextClient({
91
+ * projectId: process.env.WEAVERSE_PROJECT_ID!,
92
+ * components,
93
+ * commerce: { storefront },
94
+ * fetchPage: async ({ type, handle }) => fetchWeaversePage({ type, handle }),
95
+ * })
96
+ * ```
97
+ */
98
+ export function createWeaverseNextClient(
99
+ config: WeaverseNextClientConfig
100
+ ): WeaverseNextClient {
101
+ return new NextClient(config)
102
+ }
package/src/hooks.ts ADDED
@@ -0,0 +1,50 @@
1
+ 'use client'
2
+
3
+ import { useContext, useSyncExternalStore } from 'react'
4
+ import { WeaverseNextContext } from './provider'
5
+ import type { WeaverseNextCommerceContext } from './types'
6
+
7
+ const OUTSIDE_PROVIDER_ERROR = 'must be used inside a <WeaverseNextProvider>.'
8
+
9
+ function useWeaverseNextContext(hookName: string) {
10
+ let context = useContext(WeaverseNextContext)
11
+ if (!context) {
12
+ throw new Error(`[@weaverse/next] ${hookName} ${OUTSIDE_PROVIDER_ERROR}`)
13
+ }
14
+ return context
15
+ }
16
+
17
+ /**
18
+ * Read explicit root/global data passed to the provider. Next-native
19
+ * replacement for `useRouteLoaderData('root')`.
20
+ */
21
+ export function useWeaverseRootData<T = unknown>(): T {
22
+ return useWeaverseNextContext('useWeaverseRootData').rootData as T
23
+ }
24
+
25
+ /**
26
+ * Read explicit page/route commerce data passed to the provider. Next-native
27
+ * replacement for section-level `useLoaderData()`.
28
+ */
29
+ export function useWeaversePageData<T = unknown>(): T {
30
+ return useWeaverseNextContext('useWeaversePageData').pageData as T
31
+ }
32
+
33
+ /** Read the app-provided commerce context (storefront/cart/customer). */
34
+ export function useWeaverseCommerce<T = WeaverseNextCommerceContext>(): T {
35
+ return useWeaverseNextContext('useWeaverseCommerce').commerce as T
36
+ }
37
+
38
+ /**
39
+ * Read live Weaverse theme settings. The Studio bridge updates the provider's
40
+ * external store via `updateThemeSettings`, so components re-render during live
41
+ * design-mode edits.
42
+ */
43
+ export function useThemeSettings<T = Record<string, unknown>>(): T {
44
+ let { themeSettingsStore } = useWeaverseNextContext('useThemeSettings')
45
+ return useSyncExternalStore(
46
+ themeSettingsStore.subscribe,
47
+ themeSettingsStore.getSnapshot,
48
+ themeSettingsStore.getServerSnapshot
49
+ ) as T
50
+ }
package/src/index.ts ADDED
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Next.js App Router rendering, provider, Studio, translation, and schema APIs.
3
+ *
4
+ * When migrating from `@weaverse/hydrogen`, replace route-loader context with
5
+ * {@link WeaverseNextProvider} props and render page data with
6
+ * {@link WeaverseNextRenderer}. Import server-only fetching and route-handler
7
+ * helpers from `@weaverse/next/server`.
8
+ *
9
+ * @packageDocumentation
10
+ */
11
+
12
+ // Re-export schema authoring for migration ergonomics.
13
+ export * from '@weaverse/schema'
14
+ // Client code (components, hooks, runtime, and the `@weaverse/react`
15
+ // re-exports) comes by name from `./client-boundary`, which the build emits as
16
+ // its own `'use client'` file. Every other value export below is server-safe,
17
+ // so a Server Component can import this entry.
18
+ export {
19
+ bindWeaverseNextStudioRuntime,
20
+ createWeaverseNextClient,
21
+ createWeaverseNextRuntime,
22
+ loadWeaverseNextStudioScript,
23
+ ThemeTextProvider,
24
+ TranslationProvider,
25
+ useChildInstances,
26
+ useItemInstance,
27
+ useParentInstance,
28
+ useThemeSettings,
29
+ useThemeText,
30
+ useTranslation,
31
+ useWeaverse,
32
+ useWeaverseCommerce,
33
+ useWeaverseNextStudioInternals,
34
+ useWeaversePageData,
35
+ useWeaverseRootData,
36
+ WeaverseNextProvider,
37
+ WeaverseNextRenderer,
38
+ WeaverseNextRootProvider,
39
+ WeaverseNextRuntime,
40
+ WeaverseNextStudio,
41
+ WeaverseNextStudioBridge,
42
+ WeaverseNextStudioConnect,
43
+ } from './client-boundary'
44
+ export type { WeaverseNextItem } from './item'
45
+ export {
46
+ type RunComponentLoadersArgs,
47
+ runWeaverseComponentLoaders,
48
+ } from './loader'
49
+ export type { WeaverseNextProviderProps } from './provider'
50
+ export type { WeaverseNextRendererProps } from './renderer'
51
+ export { buildWeaverseNextRequestInfo } from './request-info'
52
+ export {
53
+ buildWeaverseNextRevalidateRouteContext,
54
+ DEFAULT_REVALIDATE_ENDPOINT,
55
+ type RevalidateItemRuntimeLike,
56
+ revalidateWeaverseNextItem,
57
+ type WeaverseNextRevalidateRouteContext,
58
+ } from './revalidate-item'
59
+ export type {
60
+ WeaverseNextRootContextValue,
61
+ WeaverseNextRootProviderProps,
62
+ } from './root-provider'
63
+ export type { WeaverseNextRenderablePage } from './runtime'
64
+ export {
65
+ formatWeaverseNextSeoMetadata,
66
+ getWeaverseNextSeoMetadata,
67
+ type NextOpenGraph,
68
+ type NextTwitter,
69
+ type WeaverseNextSeoInput,
70
+ type WeaverseNextSeoMetadata,
71
+ type WeaverseNextSeoPageContainer,
72
+ } from './seo'
73
+ export type { WeaverseNextStudioBridgeProps } from './studio-bridge'
74
+ export type {
75
+ LoadWeaverseNextStudioScriptOptions,
76
+ WeaverseNextStudioConnectProps,
77
+ } from './studio-connect'
78
+ export {
79
+ type CreateWeaverseNextStudioInternalsOptions,
80
+ createWeaverseNextStudioInternals,
81
+ type WeaverseNextRouterLike,
82
+ type WeaverseNextStudioInternals,
83
+ } from './studio-router'
84
+ export {
85
+ type ResolveWeaverseNextStudioScriptSrcOptions,
86
+ resolveWeaverseNextStudioScriptSrc,
87
+ } from './studio-script-src'
88
+ export {
89
+ type CreateWeaverseNextThemeSettingsStoreOptions,
90
+ createWeaverseNextThemeSettingsStore,
91
+ } from './theme-settings-store'
92
+ export {
93
+ type CreateTranslateSources,
94
+ createTranslate,
95
+ getNestedKey,
96
+ interpolate,
97
+ type TranslateFunction,
98
+ } from './translate'
99
+ export type {
100
+ ThemeTextProviderProps,
101
+ ThemeTextValue,
102
+ TranslationProviderProps,
103
+ TranslationValue,
104
+ } from './translation-context'
105
+ export { ThemeTextStore, TranslationStore } from './translation-store'
106
+ export type {
107
+ WeaverseArticle,
108
+ WeaverseBlog,
109
+ WeaverseCollection,
110
+ WeaverseMetaObject,
111
+ WeaverseNextCacheConfig,
112
+ WeaverseNextClient,
113
+ WeaverseNextClientConfig,
114
+ WeaverseNextCommerceContext,
115
+ WeaverseNextComponent,
116
+ WeaverseNextComponentData,
117
+ WeaverseNextComponentLoaderArgs,
118
+ WeaverseNextComponentProps,
119
+ WeaverseNextCustomPageEntry,
120
+ WeaverseNextFetchCustomPagesOptions,
121
+ WeaverseNextI18n,
122
+ WeaverseNextLoaderData,
123
+ WeaverseNextLoadPageInput,
124
+ WeaverseNextPageAssignment,
125
+ WeaverseNextPageData,
126
+ WeaverseNextRequestContext,
127
+ WeaverseNextRequestInfo,
128
+ WeaverseNextRuntimeConfig,
129
+ WeaverseNextRuntimeInternal,
130
+ WeaverseNextStorefront,
131
+ WeaverseNextThemeSchema,
132
+ WeaverseNextThemeSchemaGroup,
133
+ WeaverseNextThemeSchemaInput,
134
+ WeaverseNextThemeSettingsStore,
135
+ WeaverseNextTranslationChanges,
136
+ WeaverseNextTranslationEntry,
137
+ WeaverseNextTranslationItemEntry,
138
+ WeaverseNextTranslationMap,
139
+ WeaverseNextTranslationMapEntry,
140
+ WeaverseProduct,
141
+ } from './types'
142
+ export type { WeaverseNextStudioProps } from './use-weaverse-next-studio'
143
+ export { generateDataFromSchema, isBrowser, isIframe } from './utils'