@weaverse/next 0.1.0-alpha.2 → 0.1.0-alpha.20

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 (107) hide show
  1. package/README.md +586 -123
  2. package/dist/chunk-LH6AAEIK.mjs +326 -0
  3. package/dist/chunk-LH6AAEIK.mjs.map +1 -0
  4. package/dist/index.js +784 -60
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +588 -58
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/server.js +537 -76
  9. package/dist/server.js.map +1 -1
  10. package/dist/server.mjs +363 -27
  11. package/dist/server.mjs.map +1 -1
  12. package/dist/types/client.d.ts +16 -0
  13. package/dist/types/client.d.ts.map +1 -0
  14. package/dist/types/hooks.d.ts +20 -0
  15. package/dist/types/hooks.d.ts.map +1 -0
  16. package/dist/types/index.d.ts +34 -0
  17. package/dist/types/index.d.ts.map +1 -0
  18. package/dist/types/item.d.ts +60 -0
  19. package/dist/types/item.d.ts.map +1 -0
  20. package/dist/types/loader.d.ts +25 -0
  21. package/dist/types/loader.d.ts.map +1 -0
  22. package/dist/types/main.d.ts +11 -0
  23. package/dist/types/main.d.ts.map +1 -0
  24. package/dist/types/provider.d.ts +82 -0
  25. package/dist/types/provider.d.ts.map +1 -0
  26. package/dist/types/registry.d.ts +15 -0
  27. package/dist/types/registry.d.ts.map +1 -0
  28. package/dist/types/renderer.d.ts +21 -0
  29. package/dist/types/renderer.d.ts.map +1 -0
  30. package/dist/types/request-info.d.ts +19 -0
  31. package/dist/types/request-info.d.ts.map +1 -0
  32. package/dist/types/revalidate-item.d.ts +82 -0
  33. package/dist/types/revalidate-item.d.ts.map +1 -0
  34. package/dist/types/root-provider.d.ts +62 -0
  35. package/dist/types/root-provider.d.ts.map +1 -0
  36. package/dist/types/runtime.d.ts +113 -0
  37. package/dist/types/runtime.d.ts.map +1 -0
  38. package/dist/types/seo.d.ts +55 -0
  39. package/dist/types/seo.d.ts.map +1 -0
  40. package/dist/types/server/configs.d.ts +27 -0
  41. package/dist/types/server/configs.d.ts.map +1 -0
  42. package/dist/types/server/normalize-page-url.d.ts +19 -0
  43. package/dist/types/server/normalize-page-url.d.ts.map +1 -0
  44. package/dist/types/server/revalidate-handler.d.ts +55 -0
  45. package/dist/types/server/revalidate-handler.d.ts.map +1 -0
  46. package/dist/types/server/server-client.d.ts +21 -0
  47. package/dist/types/server/server-client.d.ts.map +1 -0
  48. package/dist/types/server.d.ts +19 -0
  49. package/dist/types/server.d.ts.map +1 -0
  50. package/dist/types/studio-bridge.d.ts +16 -0
  51. package/dist/types/studio-bridge.d.ts.map +1 -0
  52. package/dist/types/studio-connect.d.ts +27 -0
  53. package/dist/types/studio-connect.d.ts.map +1 -0
  54. package/dist/types/studio-router.d.ts +50 -0
  55. package/dist/types/studio-router.d.ts.map +1 -0
  56. package/dist/types/studio-script-src.d.ts +12 -0
  57. package/dist/types/studio-script-src.d.ts.map +1 -0
  58. package/dist/types/theme-settings-store.d.ts +18 -0
  59. package/dist/types/theme-settings-store.d.ts.map +1 -0
  60. package/dist/types/translation-context.d.ts +156 -0
  61. package/dist/types/translation-context.d.ts.map +1 -0
  62. package/dist/types/translation-store.d.ts +44 -0
  63. package/dist/types/translation-store.d.ts.map +1 -0
  64. package/dist/types/types.d.ts +665 -0
  65. package/dist/types/types.d.ts.map +1 -0
  66. package/dist/types/use-weaverse-next-studio.d.ts +34 -0
  67. package/dist/types/use-weaverse-next-studio.d.ts.map +1 -0
  68. package/dist/types/utils.d.ts +12 -0
  69. package/dist/types/utils.d.ts.map +1 -0
  70. package/package.json +12 -8
  71. package/src/client.ts +102 -0
  72. package/src/hooks.ts +50 -0
  73. package/src/index.ts +153 -0
  74. package/src/item.ts +167 -0
  75. package/src/loader.ts +135 -0
  76. package/src/main.tsx +45 -0
  77. package/src/provider.tsx +225 -0
  78. package/src/registry.ts +63 -0
  79. package/src/renderer.tsx +100 -0
  80. package/src/request-info.ts +124 -0
  81. package/src/revalidate-item.ts +211 -0
  82. package/src/root-provider.tsx +182 -0
  83. package/src/runtime.ts +555 -0
  84. package/src/seo.ts +157 -0
  85. package/src/server/configs.ts +178 -0
  86. package/src/server/normalize-page-url.ts +73 -0
  87. package/src/server/revalidate-handler.ts +357 -0
  88. package/src/server/server-client.ts +728 -0
  89. package/src/server.ts +67 -0
  90. package/src/studio-bridge.tsx +82 -0
  91. package/src/studio-connect.tsx +88 -0
  92. package/src/studio-router.ts +85 -0
  93. package/src/studio-script-src.ts +128 -0
  94. package/src/theme-settings-store.ts +47 -0
  95. package/src/translation-context.tsx +299 -0
  96. package/src/translation-store.ts +69 -0
  97. package/src/types.ts +753 -0
  98. package/src/use-weaverse-next-studio.tsx +106 -0
  99. package/src/utils.ts +37 -0
  100. package/dist/chunk-SS6QUKYY.mjs +0 -149
  101. package/dist/chunk-SS6QUKYY.mjs.map +0 -1
  102. package/dist/index.d.mts +0 -250
  103. package/dist/index.d.ts +0 -250
  104. package/dist/server.d.mts +0 -60
  105. package/dist/server.d.ts +0 -60
  106. package/dist/types-DvEeLX6L.d.mts +0 -321
  107. package/dist/types-DvEeLX6L.d.ts +0 -321
package/dist/index.d.ts DELETED
@@ -1,250 +0,0 @@
1
- import { Weaverse } from '@weaverse/react';
2
- export { isBrowser, isIframe, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
3
- export { InspectorGroup, PageType, SchemaType, createSchema } from '@weaverse/schema';
4
- import { d as WeaverseNextClientConfig, c as WeaverseNextClient, e as WeaverseNextCommerceContext, q as WeaverseNextRequestContext, n as WeaverseNextLoaderData, r as WeaverseNextRequestInfo, t as WeaverseNextRuntimeInternal, s as WeaverseNextRuntimeConfig, A as WeaverseNextThemeSettingsStore } from './types-DvEeLX6L.js';
5
- export { W as WeaverseCollection, f as WeaverseNextComponent, g as WeaverseNextComponentData, h as WeaverseNextComponentLoaderArgs, i as WeaverseNextComponentProps, l as WeaverseNextI18n, m as WeaverseNextLoadPageInput, o as WeaverseNextPageData, x as WeaverseNextStorefront, B as WeaverseProduct } from './types-DvEeLX6L.js';
6
- import * as react_jsx_runtime from 'react/jsx-runtime';
7
- import * as react from 'react';
8
- import { ReactNode } from 'react';
9
-
10
- /**
11
- * Create a {@link WeaverseNextClient} from explicit config.
12
- *
13
- * @example
14
- * ```ts
15
- * let client = createWeaverseNextClient({
16
- * projectId: process.env.WEAVERSE_PROJECT_ID!,
17
- * components,
18
- * commerce: { storefront },
19
- * fetchPage: async ({ type, handle }) => fetchWeaversePage({ type, handle }),
20
- * })
21
- * ```
22
- */
23
- declare function createWeaverseNextClient(config: WeaverseNextClientConfig): WeaverseNextClient;
24
-
25
- /**
26
- * Read explicit root/global data passed to the provider. Next-native
27
- * replacement for `useRouteLoaderData('root')`.
28
- */
29
- declare function useWeaverseRootData<T = unknown>(): T;
30
- /**
31
- * Read explicit page/route commerce data passed to the provider. Next-native
32
- * replacement for section-level `useLoaderData()`.
33
- */
34
- declare function useWeaversePageData<T = unknown>(): T;
35
- /** Read the app-provided commerce context (storefront/cart/customer). */
36
- declare function useWeaverseCommerce<T = WeaverseNextCommerceContext>(): T;
37
- /**
38
- * Read live Weaverse theme settings. The Studio bridge updates the provider's
39
- * external store via `updateThemeSettings`, so components re-render during live
40
- * design-mode edits.
41
- */
42
- declare function useThemeSettings<T = Record<string, unknown>>(): T;
43
-
44
- interface RunComponentLoadersArgs {
45
- client: WeaverseNextClient;
46
- commerce?: WeaverseNextCommerceContext;
47
- context?: WeaverseNextRequestContext;
48
- /** Page payload to walk; defaults to `client.data`. */
49
- data?: WeaverseNextLoaderData | null;
50
- }
51
- /**
52
- * Walk a serialized page tree and run each registered component's `loader`,
53
- * attaching the result to the item as `loaderData`.
54
- *
55
- * Loaders receive explicit `commerce.storefront` (and `weaverse.storefront` as
56
- * a compatibility alias via the client). Children are walked recursively when
57
- * they are inline item objects; flat `items` arrays are covered by the
58
- * top-level walk.
59
- *
60
- * @returns a cloned `data` object with `loaderData` attached to cloned items.
61
- */
62
- declare function runWeaverseComponentLoaders(args: RunComponentLoadersArgs): Promise<WeaverseNextLoaderData | null>;
63
-
64
- interface WeaverseNextProviderProps {
65
- children: ReactNode;
66
- client?: WeaverseNextClient;
67
- /** App-provided commerce context (storefront/cart/customer). */
68
- commerce?: WeaverseNextCommerceContext;
69
- /** Explicit page/route commerce data (replaces section-level `useLoaderData`). */
70
- pageData?: unknown;
71
- /** Explicit root/global data (replaces `useRouteLoaderData('root')`). */
72
- rootData?: unknown;
73
- /** Theme settings override; falls back to `client.themeSettings`. */
74
- themeSettings?: Record<string, unknown>;
75
- }
76
- /**
77
- * Client boundary that supplies explicit root/page/commerce data to Weaverse
78
- * sections. Next-native replacement for `withWeaverse` + route loader data —
79
- * no React Router route matches are emulated.
80
- *
81
- * In App Router, create/pass `client` only from a client component wrapper. A
82
- * `WeaverseNextClient` contains functions and component references, so it is
83
- * not serializable across a Server Component → Client Component boundary.
84
- *
85
- * @example
86
- * ```tsx
87
- * 'use client'
88
- *
89
- * <WeaverseNextProvider client={client} rootData={rootData} pageData={pageData} commerce={commerce}>
90
- * <WeaverseNextRenderer />
91
- * </WeaverseNextProvider>
92
- * ```
93
- */
94
- declare function WeaverseNextProvider(props: WeaverseNextProviderProps): react_jsx_runtime.JSX.Element;
95
-
96
- interface WeaverseNextRendererProps {
97
- /** Client to render from. Defaults to the provider's client. */
98
- client?: WeaverseNextClient;
99
- /** Page payload to render. Defaults to `client.data`. */
100
- data?: WeaverseNextLoaderData | null;
101
- /** Data-connector context for `{{...}}` template replacement. */
102
- dataContext?: Record<string, unknown>;
103
- }
104
- /**
105
- * Render a serialized Weaverse page tree through `@weaverse/react` primitives.
106
- *
107
- * Reads the client/page data from {@link WeaverseNextContext} when no props are
108
- * passed, or accepts an explicit `client` + `data` for standalone use. Builds a
109
- * framework-neutral `Weaverse` core instance (no React Router hooks) and hands
110
- * it to the shared `WeaverseRoot`.
111
- */
112
- declare const WeaverseNextRenderer: react.MemoExoticComponent<(props: WeaverseNextRendererProps) => react_jsx_runtime.JSX.Element | null>;
113
-
114
- /**
115
- * Build the Hydrogen-like request info shape consumed by the Studio bridge.
116
- * Duplicate query keys keep the last value, matching `URLSearchParams` iteration
117
- * assignment and Hydrogen's practical query-object behavior.
118
- */
119
- declare function buildWeaverseNextRequestInfo(context?: WeaverseNextRequestContext): WeaverseNextRequestInfo;
120
-
121
- declare global {
122
- interface Window {
123
- __weaverse?: WeaverseNextRuntime;
124
- __weaverses?: Record<string, WeaverseNextRuntime>;
125
- }
126
- }
127
- declare class WeaverseNextRuntime extends Weaverse {
128
- pageId: string;
129
- internal: WeaverseNextRuntimeInternal;
130
- requestInfo: WeaverseNextRequestInfo;
131
- isPreviewMode: boolean;
132
- isRevisionPreview: boolean;
133
- sectionType?: string;
134
- translationMap: Record<string, unknown>;
135
- translationLocale: string;
136
- translationLanguageId: string;
137
- constructor(config: WeaverseNextRuntimeConfig);
138
- extractTranslationSidecar: () => undefined;
139
- setTranslationSidecar: (map?: Record<string, unknown>, locale?: string, languageId?: string) => void;
140
- updateTranslation: () => undefined;
141
- getTranslationChanges: () => undefined;
142
- }
143
- declare function createWeaverseNextRuntime(config: WeaverseNextRuntimeConfig): WeaverseNextRuntime;
144
- declare function bindWeaverseNextStudioRuntime(runtime: WeaverseNextRuntime): boolean;
145
-
146
- interface WeaverseNextStudioBridgeProps {
147
- navigate?: WeaverseNextRuntimeInternal['navigate'];
148
- revalidate?: WeaverseNextRuntimeInternal['revalidate'];
149
- runtime: WeaverseNextRuntime;
150
- }
151
- /** Page-level Studio runtime binder. */
152
- declare function WeaverseNextStudioBridge(props: WeaverseNextStudioBridgeProps): null;
153
-
154
- interface WeaverseNextStudioConnectProps {
155
- context?: WeaverseNextRequestContext;
156
- storefrontHostname?: string;
157
- }
158
- /** Root-level Studio script connector for Next client boundaries. */
159
- declare function WeaverseNextStudioConnect(props: WeaverseNextStudioConnectProps): null;
160
-
161
- /**
162
- * Minimal structural shape of the Next App Router returned by `useRouter()`
163
- * (`next/navigation`) that the Studio bridge needs. Declared locally — rather
164
- * than importing `AppRouterInstance` from `next` — so the adapter stays a pure
165
- * function that unit tests can drive with a plain mock and never pulls
166
- * `next/navigation` into the test graph.
167
- */
168
- interface WeaverseNextRouterLike {
169
- push: (href: string, options?: {
170
- scroll?: boolean;
171
- }) => void;
172
- refresh: () => void;
173
- replace: (href: string, options?: {
174
- scroll?: boolean;
175
- }) => void;
176
- }
177
- /** Resolved Studio navigation/revalidation callbacks for a Next runtime. */
178
- interface WeaverseNextStudioInternals {
179
- navigate: NonNullable<WeaverseNextRuntimeInternal['navigate']>;
180
- revalidate: NonNullable<WeaverseNextRuntimeInternal['revalidate']>;
181
- }
182
- interface CreateWeaverseNextStudioInternalsOptions {
183
- /** Use `router.replace` instead of `router.push` for navigation. */
184
- replace?: boolean;
185
- }
186
- /**
187
- * Build Studio `navigate` / `revalidate` callbacks from a Next App Router.
188
- *
189
- * Maps Hydrogen's React Router semantics onto Next App Router:
190
- * - `navigate(to, { preventScrollReset })` → `router.push(to, { scroll })`,
191
- * where `scroll` is the inverse of `preventScrollReset`. Studio passes
192
- * `preventScrollReset` for in-place edits so the preview viewport is kept,
193
- * matching React Router's `navigate({ preventScrollReset })`.
194
- * - `revalidate()` → `router.refresh()`, the App Router's loader-backed refresh
195
- * and the closest equivalent to React Router's `useRevalidator`.
196
- *
197
- * Pure (no React, no `next/navigation`) so it is unit-testable with a mock
198
- * router; the {@link WeaverseNextRouterLike} contract is the only coupling.
199
- */
200
- declare function createWeaverseNextStudioInternals(router: WeaverseNextRouterLike, options?: CreateWeaverseNextStudioInternalsOptions): WeaverseNextStudioInternals;
201
-
202
- interface ResolveWeaverseNextStudioScriptSrcOptions {
203
- framework?: 'hydrogen' | 'next';
204
- storefrontHostname?: string;
205
- }
206
- /**
207
- * Resolve the Studio script URL from request/search context. v0 intentionally
208
- * reuses the existing structural Hydrogen bridge script until a concrete Builder
209
- * incompatibility requires a dedicated Next bundle.
210
- */
211
- declare function resolveWeaverseNextStudioScriptSrc(context?: WeaverseNextRequestContext, options?: ResolveWeaverseNextStudioScriptSrcOptions): string | null;
212
-
213
- interface CreateWeaverseNextThemeSettingsStoreOptions {
214
- publicEnv?: Record<string, string | undefined>;
215
- schema?: unknown;
216
- settings?: Record<string, unknown>;
217
- }
218
- /**
219
- * Small external store shape compatible with the Studio bridge and React's
220
- * `useSyncExternalStore` contract. The bridge calls `updateThemeSettings` during
221
- * live theme edits, so keep that method name stable.
222
- */
223
- declare function createWeaverseNextThemeSettingsStore(options?: CreateWeaverseNextThemeSettingsStoreOptions): WeaverseNextThemeSettingsStore;
224
-
225
- /**
226
- * Resolve stable Studio `navigate` / `revalidate` callbacks from the Next App
227
- * Router. `useRouter()` is stable across renders, but the derived callbacks are
228
- * cached in a ref keyed on the router instance so the bridge's bind effect
229
- * (which depends on `navigate` / `revalidate` identity) doesn't re-run — and
230
- * re-`refreshStudio` — on every render.
231
- */
232
- declare function useWeaverseNextStudioInternals(options?: CreateWeaverseNextStudioInternalsOptions): WeaverseNextStudioInternals;
233
- interface WeaverseNextStudioProps extends CreateWeaverseNextStudioInternalsOptions {
234
- runtime: WeaverseNextRuntime;
235
- }
236
- /**
237
- * Page-level Studio binder wired to the Next App Router. Mirrors Hydrogen's
238
- * `useStudio` (which binds the runtime and feeds it React Router's `navigate` /
239
- * `revalidate`): it resolves the App Router callbacks via
240
- * {@link useWeaverseNextStudioInternals} and hands them to
241
- * {@link WeaverseNextStudioBridge}, so consuming apps get Studio navigation and
242
- * revalidation without manually wiring `next/navigation`.
243
- *
244
- * Client-only — it is the single place `@weaverse/next` touches
245
- * `next/navigation`, keeping the runtime/renderer and `@weaverse/next/server`
246
- * free of router imports.
247
- */
248
- declare function WeaverseNextStudio(props: WeaverseNextStudioProps): react_jsx_runtime.JSX.Element;
249
-
250
- export { type CreateWeaverseNextStudioInternalsOptions, type CreateWeaverseNextThemeSettingsStoreOptions, type ResolveWeaverseNextStudioScriptSrcOptions, type RunComponentLoadersArgs, WeaverseNextClient, WeaverseNextClientConfig, WeaverseNextCommerceContext, WeaverseNextLoaderData, WeaverseNextProvider, type WeaverseNextProviderProps, WeaverseNextRenderer, type WeaverseNextRendererProps, WeaverseNextRequestContext, WeaverseNextRequestInfo, type WeaverseNextRouterLike, WeaverseNextRuntime, WeaverseNextRuntimeConfig, WeaverseNextRuntimeInternal, WeaverseNextStudio, WeaverseNextStudioBridge, type WeaverseNextStudioBridgeProps, WeaverseNextStudioConnect, type WeaverseNextStudioConnectProps, type WeaverseNextStudioInternals, type WeaverseNextStudioProps, WeaverseNextThemeSettingsStore, bindWeaverseNextStudioRuntime, buildWeaverseNextRequestInfo, createWeaverseNextClient, createWeaverseNextRuntime, createWeaverseNextStudioInternals, createWeaverseNextThemeSettingsStore, resolveWeaverseNextStudioScriptSrc, runWeaverseComponentLoaders, useThemeSettings, useWeaverseCommerce, useWeaverseNextStudioInternals, useWeaversePageData, useWeaverseRootData };
package/dist/server.d.mts DELETED
@@ -1,60 +0,0 @@
1
- import { q as WeaverseNextRequestContext, a as WeaverseNextBaseConfigs, v as WeaverseNextServerClientConfig, u as WeaverseNextServerClient } from './types-DvEeLX6L.mjs';
2
- export { b as WeaverseNextCacheConfig, j as WeaverseNextConfigs, k as WeaverseNextFetchOptions, p as WeaverseNextProjectId, w as WeaverseNextServerLoadPageInput, y as WeaverseNextThemeSettingsOptions, z as WeaverseNextThemeSettingsResponse } from './types-DvEeLX6L.mjs';
3
- import '@weaverse/react';
4
- import '@weaverse/schema';
5
- import 'react';
6
-
7
- interface ResolveConfigsOptions {
8
- env?: Record<string, string | undefined>;
9
- weaverseApiBase?: string;
10
- weaverseHost?: string;
11
- weaverseVersion?: string;
12
- }
13
- /**
14
- * Derive Weaverse configs from the request context and env, close to Hydrogen's
15
- * `getWeaverseConfigs`. Resolves the trusted host, public API base, design /
16
- * preview / revision flags, and public env — but never resolves the final
17
- * `projectId` (that priority chain, which may call an async resolver, lives in
18
- * the server client). Query/env projectId candidates are returned for the
19
- * client to combine with function/string inputs.
20
- */
21
- declare function getWeaverseNextConfigs(context?: WeaverseNextRequestContext, options?: ResolveConfigsOptions): WeaverseNextBaseConfigs;
22
-
23
- /**
24
- * Normalize the storefront URL sent in the Builder page API request body.
25
- *
26
- * The Builder reads only the pathname (locale/type/handle fallback) and the
27
- * Weaverse/Studio control params from this URL, so keep exactly those and drop
28
- * tracking params. Params are sorted for a stable, cache-friendly string.
29
- *
30
- * Ported from `@weaverse/hydrogen`'s `normalizePageUrl`, but tolerant of a
31
- * relative URL (Next route handlers may only know the pathname).
32
- */
33
- declare function normalizeNextPageUrl(url: string): string;
34
- /**
35
- * Build an absolute-ish request URL string from the explicit request context,
36
- * preferring `url`, then `pathname` + `searchParams`. Used as the input to
37
- * {@link normalizeNextPageUrl}.
38
- */
39
- declare function resolveRequestUrl(context?: WeaverseNextRequestContext): string;
40
-
41
- /**
42
- * Create a server-side {@link WeaverseNextServerClient} for Next.js App Router
43
- * routes / server components.
44
- *
45
- * @example
46
- * ```ts
47
- * let weaverse = createWeaverseNextServerClient({
48
- * projectId: process.env.WEAVERSE_PROJECT_ID,
49
- * components,
50
- * commerce: { storefront },
51
- * requestContext: { url, headers, searchParams, i18n },
52
- * cache: { revalidate: 60, tags: ['weaverse'] },
53
- * })
54
- * let data = await weaverse.loadPage({ type: 'INDEX' })
55
- * let theme = await weaverse.loadThemeSettings()
56
- * ```
57
- */
58
- declare function createWeaverseNextServerClient(config: WeaverseNextServerClientConfig): WeaverseNextServerClient;
59
-
60
- export { WeaverseNextBaseConfigs, WeaverseNextServerClient, WeaverseNextServerClientConfig, createWeaverseNextServerClient, getWeaverseNextConfigs, normalizeNextPageUrl, resolveRequestUrl };
package/dist/server.d.ts DELETED
@@ -1,60 +0,0 @@
1
- import { q as WeaverseNextRequestContext, a as WeaverseNextBaseConfigs, v as WeaverseNextServerClientConfig, u as WeaverseNextServerClient } from './types-DvEeLX6L.js';
2
- export { b as WeaverseNextCacheConfig, j as WeaverseNextConfigs, k as WeaverseNextFetchOptions, p as WeaverseNextProjectId, w as WeaverseNextServerLoadPageInput, y as WeaverseNextThemeSettingsOptions, z as WeaverseNextThemeSettingsResponse } from './types-DvEeLX6L.js';
3
- import '@weaverse/react';
4
- import '@weaverse/schema';
5
- import 'react';
6
-
7
- interface ResolveConfigsOptions {
8
- env?: Record<string, string | undefined>;
9
- weaverseApiBase?: string;
10
- weaverseHost?: string;
11
- weaverseVersion?: string;
12
- }
13
- /**
14
- * Derive Weaverse configs from the request context and env, close to Hydrogen's
15
- * `getWeaverseConfigs`. Resolves the trusted host, public API base, design /
16
- * preview / revision flags, and public env — but never resolves the final
17
- * `projectId` (that priority chain, which may call an async resolver, lives in
18
- * the server client). Query/env projectId candidates are returned for the
19
- * client to combine with function/string inputs.
20
- */
21
- declare function getWeaverseNextConfigs(context?: WeaverseNextRequestContext, options?: ResolveConfigsOptions): WeaverseNextBaseConfigs;
22
-
23
- /**
24
- * Normalize the storefront URL sent in the Builder page API request body.
25
- *
26
- * The Builder reads only the pathname (locale/type/handle fallback) and the
27
- * Weaverse/Studio control params from this URL, so keep exactly those and drop
28
- * tracking params. Params are sorted for a stable, cache-friendly string.
29
- *
30
- * Ported from `@weaverse/hydrogen`'s `normalizePageUrl`, but tolerant of a
31
- * relative URL (Next route handlers may only know the pathname).
32
- */
33
- declare function normalizeNextPageUrl(url: string): string;
34
- /**
35
- * Build an absolute-ish request URL string from the explicit request context,
36
- * preferring `url`, then `pathname` + `searchParams`. Used as the input to
37
- * {@link normalizeNextPageUrl}.
38
- */
39
- declare function resolveRequestUrl(context?: WeaverseNextRequestContext): string;
40
-
41
- /**
42
- * Create a server-side {@link WeaverseNextServerClient} for Next.js App Router
43
- * routes / server components.
44
- *
45
- * @example
46
- * ```ts
47
- * let weaverse = createWeaverseNextServerClient({
48
- * projectId: process.env.WEAVERSE_PROJECT_ID,
49
- * components,
50
- * commerce: { storefront },
51
- * requestContext: { url, headers, searchParams, i18n },
52
- * cache: { revalidate: 60, tags: ['weaverse'] },
53
- * })
54
- * let data = await weaverse.loadPage({ type: 'INDEX' })
55
- * let theme = await weaverse.loadThemeSettings()
56
- * ```
57
- */
58
- declare function createWeaverseNextServerClient(config: WeaverseNextServerClientConfig): WeaverseNextServerClient;
59
-
60
- export { WeaverseNextBaseConfigs, WeaverseNextServerClient, WeaverseNextServerClientConfig, createWeaverseNextServerClient, getWeaverseNextConfigs, normalizeNextPageUrl, resolveRequestUrl };