@weaverse/next 0.1.0-alpha.9 → 1.0.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/README.md +155 -73
- package/dist/{chunk-6PMZ77RA.mjs → chunk-LH6AAEIK.mjs} +115 -8
- package/dist/chunk-LH6AAEIK.mjs.map +1 -0
- package/dist/index.js +180 -32
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +86 -47
- package/dist/index.mjs.map +1 -1
- package/dist/server.js +321 -91
- package/dist/server.js.map +1 -1
- package/dist/server.mjs +205 -28
- package/dist/server.mjs.map +1 -1
- package/dist/types/client.d.ts +16 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/hooks.d.ts +20 -0
- package/dist/types/hooks.d.ts.map +1 -0
- package/dist/types/index.d.ts +34 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/item.d.ts +60 -0
- package/dist/types/item.d.ts.map +1 -0
- package/dist/types/loader.d.ts +25 -0
- package/dist/types/loader.d.ts.map +1 -0
- package/dist/types/main.d.ts +11 -0
- package/dist/types/main.d.ts.map +1 -0
- package/dist/types/provider.d.ts +82 -0
- package/dist/types/provider.d.ts.map +1 -0
- package/dist/types/registry.d.ts +15 -0
- package/dist/types/registry.d.ts.map +1 -0
- package/dist/types/renderer.d.ts +21 -0
- package/dist/types/renderer.d.ts.map +1 -0
- package/dist/types/request-info.d.ts +19 -0
- package/dist/types/request-info.d.ts.map +1 -0
- package/dist/types/revalidate-item.d.ts +82 -0
- package/dist/types/revalidate-item.d.ts.map +1 -0
- package/dist/types/root-provider.d.ts +62 -0
- package/dist/types/root-provider.d.ts.map +1 -0
- package/dist/types/runtime.d.ts +113 -0
- package/dist/types/runtime.d.ts.map +1 -0
- package/dist/types/seo.d.ts +55 -0
- package/dist/types/seo.d.ts.map +1 -0
- package/dist/types/server/configs.d.ts +27 -0
- package/dist/types/server/configs.d.ts.map +1 -0
- package/dist/types/server/normalize-page-url.d.ts +19 -0
- package/dist/types/server/normalize-page-url.d.ts.map +1 -0
- package/dist/types/server/revalidate-handler.d.ts +55 -0
- package/dist/types/server/revalidate-handler.d.ts.map +1 -0
- package/dist/types/server/server-client.d.ts +21 -0
- package/dist/types/server/server-client.d.ts.map +1 -0
- package/dist/types/server.d.ts +19 -0
- package/dist/types/server.d.ts.map +1 -0
- package/dist/types/studio-bridge.d.ts +16 -0
- package/dist/types/studio-bridge.d.ts.map +1 -0
- package/dist/types/studio-connect.d.ts +27 -0
- package/dist/types/studio-connect.d.ts.map +1 -0
- package/dist/types/studio-router.d.ts +50 -0
- package/dist/types/studio-router.d.ts.map +1 -0
- package/dist/types/studio-script-src.d.ts +12 -0
- package/dist/types/studio-script-src.d.ts.map +1 -0
- package/dist/types/theme-settings-store.d.ts +18 -0
- package/dist/types/theme-settings-store.d.ts.map +1 -0
- package/dist/types/translation-context.d.ts +156 -0
- package/dist/types/translation-context.d.ts.map +1 -0
- package/dist/types/translation-store.d.ts +44 -0
- package/dist/types/translation-store.d.ts.map +1 -0
- package/dist/types/types.d.ts +665 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/use-weaverse-next-studio.d.ts +34 -0
- package/dist/types/use-weaverse-next-studio.d.ts.map +1 -0
- package/dist/types/utils.d.ts +12 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/package.json +12 -8
- package/src/client.ts +102 -0
- package/src/hooks.ts +50 -0
- package/src/index.ts +153 -0
- package/src/item.ts +167 -0
- package/src/loader.ts +135 -0
- package/src/main.tsx +45 -0
- package/src/provider.tsx +225 -0
- package/src/registry.ts +63 -0
- package/src/renderer.tsx +100 -0
- package/src/request-info.ts +124 -0
- package/src/revalidate-item.ts +211 -0
- package/src/root-provider.tsx +182 -0
- package/src/runtime.ts +555 -0
- package/src/seo.ts +157 -0
- package/src/server/configs.ts +178 -0
- package/src/server/normalize-page-url.ts +73 -0
- package/src/server/revalidate-handler.ts +357 -0
- package/src/server/server-client.ts +728 -0
- package/src/server.ts +67 -0
- package/src/studio-bridge.tsx +82 -0
- package/src/studio-connect.tsx +88 -0
- package/src/studio-router.ts +85 -0
- package/src/studio-script-src.ts +128 -0
- package/src/theme-settings-store.ts +47 -0
- package/src/translation-context.tsx +299 -0
- package/src/translation-store.ts +69 -0
- package/src/types.ts +753 -0
- package/src/use-weaverse-next-studio.tsx +106 -0
- package/src/utils.ts +37 -0
- package/dist/chunk-6PMZ77RA.mjs.map +0 -1
- package/dist/index.d.mts +0 -580
- package/dist/index.d.ts +0 -580
- package/dist/seo-Dos9t22_.d.mts +0 -477
- package/dist/seo-Dos9t22_.d.ts +0 -477
- package/dist/server.d.mts +0 -99
- package/dist/server.d.ts +0 -99
package/dist/seo-Dos9t22_.d.ts
DELETED
|
@@ -1,477 +0,0 @@
|
|
|
1
|
-
import { PageType, PageSEOData, SchemaType } from '@weaverse/schema';
|
|
2
|
-
import { WeaverseElement, WeaverseResourcePickerData } from '@weaverse/react';
|
|
3
|
-
import { ReactNode, ComponentType, ForwardRefExoticComponent } from 'react';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Minimal mutable store for design-mode static text overrides.
|
|
7
|
-
*
|
|
8
|
-
* `useSyncExternalStore`-compatible. Passed into {@link TranslationProvider}
|
|
9
|
-
* (from `./translation-context`) which subscribes internally and layers
|
|
10
|
-
* overrides on top of `merchantOverrides`/`staticContent`. The Studio bridge
|
|
11
|
-
* calls `updateOverrides()` via `runtime.internal.translationStore` (also
|
|
12
|
-
* exposed as the deprecated `runtime.internal.themeTextStore` alias) so live
|
|
13
|
-
* static-text edits reach the runtime — identical surface to Hydrogen's store,
|
|
14
|
-
* so Builder's existing static-text RPC works with `@weaverse/next` unchanged.
|
|
15
|
-
*
|
|
16
|
-
* Shape: flat `Record<string, string>` — dot-notation keys map to values
|
|
17
|
-
* (e.g. "cart.title" → "Shopping Cart").
|
|
18
|
-
*/
|
|
19
|
-
declare class TranslationStore {
|
|
20
|
-
overrides: Record<string, string>;
|
|
21
|
-
private readonly listeners;
|
|
22
|
-
setOverrides: (overrides: Record<string, string>) => void;
|
|
23
|
-
updateOverrides: (newOverrides: Record<string, string>) => void;
|
|
24
|
-
getSnapshot: () => Record<string, string>;
|
|
25
|
-
getServerSnapshot: () => Record<string, string>;
|
|
26
|
-
subscribe: (callback: () => void) => () => void;
|
|
27
|
-
private readonly emit;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* @deprecated Use {@link TranslationStore} instead. Kept as a backward-compatible
|
|
31
|
-
* alias and will remain exported for existing integrations.
|
|
32
|
-
*/
|
|
33
|
-
declare const ThemeTextStore: typeof TranslationStore;
|
|
34
|
-
/**
|
|
35
|
-
* @deprecated Use {@link TranslationStore} instead. Kept as a backward-compatible
|
|
36
|
-
* alias and will remain exported for existing integrations.
|
|
37
|
-
*/
|
|
38
|
-
type ThemeTextStore = TranslationStore;
|
|
39
|
-
|
|
40
|
-
interface WeaverseNextRequestInfo {
|
|
41
|
-
i18n?: WeaverseNextI18n;
|
|
42
|
-
pathname: string;
|
|
43
|
-
queries: Record<string, string | boolean>;
|
|
44
|
-
search: string;
|
|
45
|
-
}
|
|
46
|
-
interface WeaverseNextThemeSettingsStore {
|
|
47
|
-
getServerSnapshot: () => Record<string, unknown>;
|
|
48
|
-
getSnapshot: () => Record<string, unknown>;
|
|
49
|
-
publicEnv?: Record<string, string | undefined>;
|
|
50
|
-
schema?: unknown;
|
|
51
|
-
settings: Record<string, unknown>;
|
|
52
|
-
subscribe: (listener: () => void) => () => void;
|
|
53
|
-
updateThemeSettings: (next: Record<string, unknown>) => void;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Page assignment payload returned by `/api/public/project` and preserved on
|
|
57
|
-
* loader data so the Builder Studio save pipeline receives the same shape it
|
|
58
|
-
* gets from Hydrogen (`{ projectId, type, locale, handle }`, plus optional
|
|
59
|
-
* inherited/fallback `meta`). Kept framework-neutral: `type` accepts a known
|
|
60
|
-
* {@link PageType} or any string, and `meta` preserves inherited/fallback
|
|
61
|
-
* metadata (unknown fields included) without asserting a strict shape.
|
|
62
|
-
*/
|
|
63
|
-
interface WeaverseNextPageAssignment {
|
|
64
|
-
handle: string;
|
|
65
|
-
locale: string;
|
|
66
|
-
/** Inherited/fallback page metadata; unknown fields preserved as-is. */
|
|
67
|
-
meta?: {
|
|
68
|
-
depth?: number;
|
|
69
|
-
inherited?: boolean;
|
|
70
|
-
sourceProjectId?: string;
|
|
71
|
-
[key: string]: unknown;
|
|
72
|
-
};
|
|
73
|
-
projectId: string;
|
|
74
|
-
type: PageType | string;
|
|
75
|
-
}
|
|
76
|
-
interface WeaverseNextRuntimeInternal {
|
|
77
|
-
/** Active-locale static-text overrides fetched from the API (nested). */
|
|
78
|
-
merchantOverrides?: Record<string, unknown>;
|
|
79
|
-
navigate?: (to: string, options?: {
|
|
80
|
-
preventScrollReset?: boolean;
|
|
81
|
-
} | Record<string, unknown>) => void;
|
|
82
|
-
pageAssignment?: WeaverseNextPageAssignment;
|
|
83
|
-
project?: unknown;
|
|
84
|
-
revalidate?: (options?: unknown) => Promise<void> | void;
|
|
85
|
-
/**
|
|
86
|
-
* Studio per-item loader revalidation. Builder feature-detects this and
|
|
87
|
-
* prefers it over the legacy `revalidate()` (`router.refresh()`) flow; it
|
|
88
|
-
* must reject on failure so Builder can fall back.
|
|
89
|
-
*/
|
|
90
|
-
revalidateItem?: (draftItem: WeaverseNextComponentData) => Promise<void>;
|
|
91
|
-
themeSettingsStore?: WeaverseNextThemeSettingsStore;
|
|
92
|
-
/**
|
|
93
|
-
* @deprecated Use {@link WeaverseNextRuntimeInternal.translationStore}
|
|
94
|
-
* instead. Same instance, kept so Builder's existing `updateStaticText()`
|
|
95
|
-
* RPC (which reads `internal.themeTextStore`) works with Next unchanged.
|
|
96
|
-
*/
|
|
97
|
-
themeTextStore?: TranslationStore;
|
|
98
|
-
/**
|
|
99
|
-
* Live design-mode static-text override store. Builder's `updateStaticText()`
|
|
100
|
-
* RPC mutates it via `updateOverrides()`; the `TranslationProvider` observing
|
|
101
|
-
* the same instance re-renders `useTranslation()` consumers.
|
|
102
|
-
*/
|
|
103
|
-
translationStore?: TranslationStore;
|
|
104
|
-
}
|
|
105
|
-
interface WeaverseNextRuntimeConfig {
|
|
106
|
-
client?: WeaverseNextClient;
|
|
107
|
-
data: WeaverseNextLoaderData;
|
|
108
|
-
dataContext?: Record<string, unknown>;
|
|
109
|
-
/** Active-locale static-text overrides threaded onto `internal`. */
|
|
110
|
-
merchantOverrides?: Record<string, unknown>;
|
|
111
|
-
navigate?: WeaverseNextRuntimeInternal['navigate'];
|
|
112
|
-
revalidate?: WeaverseNextRuntimeInternal['revalidate'];
|
|
113
|
-
themeSettingsStore?: WeaverseNextThemeSettingsStore;
|
|
114
|
-
/** Root/route-owned translation store to attach to `internal`. */
|
|
115
|
-
translationStore?: TranslationStore;
|
|
116
|
-
}
|
|
117
|
-
/** A single translated field for one item. */
|
|
118
|
-
interface WeaverseNextTranslationMapEntry {
|
|
119
|
-
originalValue: string;
|
|
120
|
-
translatedValue: string;
|
|
121
|
-
}
|
|
122
|
-
/** Per-item translation fields, keyed by field name. */
|
|
123
|
-
interface WeaverseNextTranslationItemEntry {
|
|
124
|
-
[key: string]: WeaverseNextTranslationMapEntry;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Translation map sent from Builder alongside page data in design mode.
|
|
128
|
-
* Keyed by item ID, each value maps field names to translation entries.
|
|
129
|
-
*/
|
|
130
|
-
interface WeaverseNextTranslationMap {
|
|
131
|
-
[itemId: string]: WeaverseNextTranslationItemEntry;
|
|
132
|
-
}
|
|
133
|
-
/** A single translation entry for save payloads. */
|
|
134
|
-
interface WeaverseNextTranslationEntry {
|
|
135
|
-
deleted?: boolean;
|
|
136
|
-
itemId: string;
|
|
137
|
-
key: string;
|
|
138
|
-
originalValue: string;
|
|
139
|
-
translatedValue: string;
|
|
140
|
-
}
|
|
141
|
-
/** Result of collecting translation changes for the save flow. */
|
|
142
|
-
interface WeaverseNextTranslationChanges {
|
|
143
|
-
entries: WeaverseNextTranslationEntry[];
|
|
144
|
-
languageId: string;
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Locale/market info passed through to component loaders and the Storefront
|
|
148
|
-
* client. Kept structurally close to Hydrogen's `WeaverseI18n` but without the
|
|
149
|
-
* `@shopify/hydrogen` `I18nBase` dependency so the adapter stays framework
|
|
150
|
-
* neutral.
|
|
151
|
-
*/
|
|
152
|
-
interface WeaverseNextI18n {
|
|
153
|
-
country?: string;
|
|
154
|
-
label?: string;
|
|
155
|
-
language?: string;
|
|
156
|
-
locale?: string;
|
|
157
|
-
pathPrefix?: string;
|
|
158
|
-
[key: string]: unknown;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Minimal Storefront client shape required by component loaders. The host app
|
|
162
|
-
* provides this (public or private token mode); Weaverse never owns it.
|
|
163
|
-
*/
|
|
164
|
-
interface WeaverseNextStorefront {
|
|
165
|
-
i18n?: WeaverseNextI18n;
|
|
166
|
-
query: (query: string, options?: unknown) => Promise<unknown>;
|
|
167
|
-
[key: string]: unknown;
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* App-provided commerce context. `storefront` is the only v0 must-have; cart
|
|
171
|
-
* and customer-account stay app-owned and are passed through untouched.
|
|
172
|
-
*/
|
|
173
|
-
interface WeaverseNextCommerceContext {
|
|
174
|
-
cart?: unknown;
|
|
175
|
-
customerAccount?: unknown;
|
|
176
|
-
storefront?: WeaverseNextStorefront;
|
|
177
|
-
[key: string]: unknown;
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Explicit, framework-neutral replacement for React Router's
|
|
181
|
-
* `LoaderFunctionArgs`. Built by the Next route/page from params + headers +
|
|
182
|
-
* searchParams instead of an implicit loader context.
|
|
183
|
-
*/
|
|
184
|
-
interface WeaverseNextRequestContext {
|
|
185
|
-
handle?: string;
|
|
186
|
-
headers?: Headers;
|
|
187
|
-
i18n?: WeaverseNextI18n;
|
|
188
|
-
isDesignMode?: boolean;
|
|
189
|
-
isPreviewMode?: boolean;
|
|
190
|
-
isRevisionPreview?: boolean;
|
|
191
|
-
pageType?: PageType;
|
|
192
|
-
pathname?: string;
|
|
193
|
-
searchParams?: URLSearchParams;
|
|
194
|
-
sectionType?: string;
|
|
195
|
-
url?: URL | string;
|
|
196
|
-
[key: string]: unknown;
|
|
197
|
-
}
|
|
198
|
-
/** A single serialized item in a Weaverse page tree. */
|
|
199
|
-
interface WeaverseNextComponentData {
|
|
200
|
-
children?: WeaverseNextComponentData[] | {
|
|
201
|
-
id: string;
|
|
202
|
-
}[];
|
|
203
|
-
data?: Record<string, unknown>;
|
|
204
|
-
id: string;
|
|
205
|
-
/** Attached by {@link runWeaverseComponentLoaders} after a loader runs. */
|
|
206
|
-
loaderData?: unknown;
|
|
207
|
-
type: string;
|
|
208
|
-
[key: string]: unknown;
|
|
209
|
-
}
|
|
210
|
-
/** Serialized page tree fetched from Weaverse. */
|
|
211
|
-
interface WeaverseNextPageData {
|
|
212
|
-
id: string;
|
|
213
|
-
items: WeaverseNextComponentData[];
|
|
214
|
-
name?: string;
|
|
215
|
-
rootId?: string;
|
|
216
|
-
/** Page-level SEO metadata published by Weaverse Builder. */
|
|
217
|
-
seo?: PageSEOData | null;
|
|
218
|
-
[key: string]: unknown;
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Top-level payload returned by `client.loadPage`. Kept close to Hydrogen's
|
|
222
|
-
* `WeaverseLoaderData` so registered components stay portable.
|
|
223
|
-
*/
|
|
224
|
-
interface WeaverseNextLoaderData {
|
|
225
|
-
configs?: Record<string, unknown>;
|
|
226
|
-
page: WeaverseNextPageData;
|
|
227
|
-
pageAssignment?: WeaverseNextPageAssignment;
|
|
228
|
-
project?: Record<string, unknown>;
|
|
229
|
-
[key: string]: unknown;
|
|
230
|
-
}
|
|
231
|
-
/** Props injected into every registered Weaverse component. */
|
|
232
|
-
interface WeaverseNextComponentProps<L = unknown> extends Partial<WeaverseElement> {
|
|
233
|
-
children?: ReactNode;
|
|
234
|
-
className?: string;
|
|
235
|
-
loaderData?: L;
|
|
236
|
-
[key: string]: unknown;
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* Arguments passed to a component `loader`. `commerce.storefront` is the
|
|
240
|
-
* explicit contract; `weaverse.storefront` exists as a compatibility alias for
|
|
241
|
-
* Pilot-style loaders that call `weaverse.storefront.query(...)`.
|
|
242
|
-
*/
|
|
243
|
-
interface WeaverseNextComponentLoaderArgs<TData = unknown> {
|
|
244
|
-
commerce?: WeaverseNextCommerceContext;
|
|
245
|
-
context?: WeaverseNextRequestContext;
|
|
246
|
-
data: TData;
|
|
247
|
-
weaverse: WeaverseNextClient;
|
|
248
|
-
}
|
|
249
|
-
/** Registered component module shape: `default` + `schema` + optional `loader`. */
|
|
250
|
-
interface WeaverseNextComponent<TProps extends WeaverseNextComponentProps = WeaverseNextComponentProps> {
|
|
251
|
-
default: ComponentType<TProps> | ForwardRefExoticComponent<TProps>;
|
|
252
|
-
loader?: (args: WeaverseNextComponentLoaderArgs) => Promise<unknown>;
|
|
253
|
-
schema: SchemaType;
|
|
254
|
-
}
|
|
255
|
-
/** Input for `client.loadPage`. The Next route maps `params` → `type/handle`. */
|
|
256
|
-
interface WeaverseNextLoadPageInput {
|
|
257
|
-
handle?: string;
|
|
258
|
-
locale?: string;
|
|
259
|
-
type?: PageType;
|
|
260
|
-
[key: string]: unknown;
|
|
261
|
-
}
|
|
262
|
-
interface WeaverseNextClientConfig {
|
|
263
|
-
commerce?: WeaverseNextCommerceContext;
|
|
264
|
-
components: WeaverseNextComponent[];
|
|
265
|
-
/**
|
|
266
|
-
* Injected page fetcher. v0 delegates network I/O to the host app so the
|
|
267
|
-
* adapter can be tested without real Weaverse API calls.
|
|
268
|
-
*/
|
|
269
|
-
fetchPage?: (input: WeaverseNextLoadPageInput) => Promise<WeaverseNextLoaderData | null>;
|
|
270
|
-
/** Injected theme-settings fetcher. */
|
|
271
|
-
fetchThemeSettings?: (context?: WeaverseNextRequestContext) => Promise<unknown>;
|
|
272
|
-
projectId: string;
|
|
273
|
-
requestContext?: WeaverseNextRequestContext;
|
|
274
|
-
themeSchema?: unknown;
|
|
275
|
-
themeSettings?: Record<string, unknown>;
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Request-safe client returned by {@link createWeaverseNextClient}. Holds the
|
|
279
|
-
* registry/config plus the currently loaded page data, and is the object passed
|
|
280
|
-
* to component loaders as `weaverse`.
|
|
281
|
-
*/
|
|
282
|
-
interface WeaverseNextClient {
|
|
283
|
-
commerce?: WeaverseNextCommerceContext;
|
|
284
|
-
components: WeaverseNextComponent[];
|
|
285
|
-
/** Currently loaded page payload (set by `loadPage`). */
|
|
286
|
-
data: WeaverseNextLoaderData | null;
|
|
287
|
-
/** Data-connector context handed to the React renderer. */
|
|
288
|
-
dataContext: Record<string, unknown>;
|
|
289
|
-
loadPage: (input?: WeaverseNextLoadPageInput) => Promise<WeaverseNextLoaderData | null>;
|
|
290
|
-
loadThemeSettings: (context?: WeaverseNextRequestContext) => Promise<unknown>;
|
|
291
|
-
projectId: string;
|
|
292
|
-
requestContext?: WeaverseNextRequestContext;
|
|
293
|
-
/** Compatibility alias for `commerce.storefront`. */
|
|
294
|
-
storefront?: WeaverseNextStorefront;
|
|
295
|
-
themeSchema?: unknown;
|
|
296
|
-
themeSettings: Record<string, unknown>;
|
|
297
|
-
}
|
|
298
|
-
type WeaverseProduct = WeaverseResourcePickerData;
|
|
299
|
-
type WeaverseCollection = WeaverseResourcePickerData;
|
|
300
|
-
type WeaverseBlog = WeaverseResourcePickerData;
|
|
301
|
-
type WeaverseArticle = WeaverseResourcePickerData;
|
|
302
|
-
type WeaverseMetaObject = WeaverseResourcePickerData;
|
|
303
|
-
/**
|
|
304
|
-
* Project identifier accepted by {@link WeaverseNextServerClientConfig}. Either
|
|
305
|
-
* a static string or a (possibly async) resolver that reads the request
|
|
306
|
-
* context — matching Hydrogen's static/dynamic projectId support.
|
|
307
|
-
*/
|
|
308
|
-
type WeaverseNextProjectId = string | ((context?: WeaverseNextRequestContext) => string | Promise<string> | undefined);
|
|
309
|
-
/** Simple Next.js fetch cache options used for published-mode requests. */
|
|
310
|
-
interface WeaverseNextCacheConfig {
|
|
311
|
-
/** Maps to Next's `fetch(..., { next: { revalidate } })`. */
|
|
312
|
-
revalidate?: number | false;
|
|
313
|
-
/** Maps to Next's `fetch(..., { next: { tags } })`. */
|
|
314
|
-
tags?: string[];
|
|
315
|
-
}
|
|
316
|
-
/**
|
|
317
|
-
* Per-request fetch options for {@link WeaverseNextServerClient.fetchWithCache}.
|
|
318
|
-
* Plain `RequestInit` plus the same simple Next cache knobs as
|
|
319
|
-
* {@link WeaverseNextCacheConfig}, so callers never need to import `next/*`.
|
|
320
|
-
*/
|
|
321
|
-
interface WeaverseNextFetchOptions extends RequestInit {
|
|
322
|
-
revalidate?: number | false;
|
|
323
|
-
tags?: string[];
|
|
324
|
-
}
|
|
325
|
-
/**
|
|
326
|
-
* Public, client-safe Weaverse config bundle. Mirrors Hydrogen's
|
|
327
|
-
* `WeaverseProjectConfigs` minus server secrets — `weaverseApiKey` is never
|
|
328
|
-
* included so it cannot leak into serialized loader data.
|
|
329
|
-
*/
|
|
330
|
-
interface WeaverseNextConfigs {
|
|
331
|
-
isDesignMode: boolean;
|
|
332
|
-
isPreviewMode: boolean;
|
|
333
|
-
isRevisionPreview: boolean;
|
|
334
|
-
projectId: string;
|
|
335
|
-
publicEnv: Record<string, string | undefined>;
|
|
336
|
-
sectionType: string;
|
|
337
|
-
weaverseApiBase: string;
|
|
338
|
-
weaverseHost: string;
|
|
339
|
-
weaversePublicApiBase: string;
|
|
340
|
-
weaverseVersion: string;
|
|
341
|
-
}
|
|
342
|
-
/**
|
|
343
|
-
* Resolved base configs derived from request context + env. Includes the
|
|
344
|
-
* server-only `weaverseApiKey`, so this stays internal to the server client and
|
|
345
|
-
* is never serialized into loader data.
|
|
346
|
-
*/
|
|
347
|
-
interface WeaverseNextBaseConfigs {
|
|
348
|
-
envProjectId: string;
|
|
349
|
-
isDesignMode: boolean;
|
|
350
|
-
isPreviewMode: boolean;
|
|
351
|
-
isRevisionPreview: boolean;
|
|
352
|
-
publicEnv: Record<string, string | undefined>;
|
|
353
|
-
queryProjectId: string;
|
|
354
|
-
sectionType: string;
|
|
355
|
-
weaverseApiBase: string;
|
|
356
|
-
weaverseApiKey: string;
|
|
357
|
-
weaverseHost: string;
|
|
358
|
-
weaverseVersion: string;
|
|
359
|
-
}
|
|
360
|
-
/** Theme settings payload returned by {@link WeaverseNextServerClient.loadThemeSettings}. */
|
|
361
|
-
interface WeaverseNextThemeSettingsResponse {
|
|
362
|
-
_error?: string;
|
|
363
|
-
_loadFailed?: boolean;
|
|
364
|
-
merchantOverrides?: Record<string, unknown>;
|
|
365
|
-
publicEnv?: Record<string, string | undefined>;
|
|
366
|
-
schema?: unknown;
|
|
367
|
-
staticContent?: Record<string, unknown>;
|
|
368
|
-
theme?: Record<string, unknown>;
|
|
369
|
-
[key: string]: unknown;
|
|
370
|
-
}
|
|
371
|
-
/**
|
|
372
|
-
* Options for {@link WeaverseNextServerClient.loadThemeSettings}. Cache knobs
|
|
373
|
-
* only — the server client always reads the request context it was created
|
|
374
|
-
* with, so there is no per-call context override.
|
|
375
|
-
*/
|
|
376
|
-
interface WeaverseNextThemeSettingsOptions extends WeaverseNextCacheConfig {
|
|
377
|
-
}
|
|
378
|
-
interface WeaverseNextCustomPageEntry {
|
|
379
|
-
changeFrequency?: 'daily' | 'weekly' | 'monthly';
|
|
380
|
-
handle: string;
|
|
381
|
-
lastModified: string;
|
|
382
|
-
locale: string | null;
|
|
383
|
-
path: string;
|
|
384
|
-
priority?: number;
|
|
385
|
-
}
|
|
386
|
-
interface WeaverseNextFetchCustomPagesOptions extends WeaverseNextCacheConfig {
|
|
387
|
-
limit?: number;
|
|
388
|
-
locale?: string;
|
|
389
|
-
}
|
|
390
|
-
/**
|
|
391
|
-
* Config for {@link createWeaverseNextServerClient}. Unlike
|
|
392
|
-
* {@link WeaverseNextClientConfig} (which delegates network I/O to injected
|
|
393
|
-
* fetchers), the server client performs the real Weaverse API fetch itself, so
|
|
394
|
-
* it accepts request context, env, and cache options instead.
|
|
395
|
-
*/
|
|
396
|
-
interface WeaverseNextServerClientConfig {
|
|
397
|
-
cache?: WeaverseNextCacheConfig;
|
|
398
|
-
commerce?: WeaverseNextCommerceContext;
|
|
399
|
-
components: WeaverseNextComponent[];
|
|
400
|
-
/** Plain env map; falls back to `process.env` for any missing key. */
|
|
401
|
-
env?: Record<string, string | undefined>;
|
|
402
|
-
/** Custom `fetch` (mainly for tests); defaults to the global `fetch`. */
|
|
403
|
-
fetch?: typeof fetch;
|
|
404
|
-
/** Per-request network timeout in ms. Defaults to 10s. */
|
|
405
|
-
fetchTimeoutMs?: number;
|
|
406
|
-
projectId?: WeaverseNextProjectId;
|
|
407
|
-
requestContext?: WeaverseNextRequestContext;
|
|
408
|
-
themeSchema?: unknown;
|
|
409
|
-
themeSettings?: Record<string, unknown>;
|
|
410
|
-
/** Optional override for the resolved Weaverse public API base. */
|
|
411
|
-
weaverseApiBase?: string;
|
|
412
|
-
/** Optional override for the resolved Weaverse host. */
|
|
413
|
-
weaverseHost?: string;
|
|
414
|
-
weaverseVersion?: string;
|
|
415
|
-
}
|
|
416
|
-
/**
|
|
417
|
-
* Server-side Weaverse client returned by {@link createWeaverseNextServerClient}.
|
|
418
|
-
* Closes the gap with Hydrogen's `context.weaverse.loadPage(...)` by performing
|
|
419
|
-
* the real Weaverse API fetch in Next server components/route handlers. It is
|
|
420
|
-
* also assignable to {@link WeaverseNextClient} so it can be passed straight to
|
|
421
|
-
* `runWeaverseComponentLoaders` and the renderer/runtime.
|
|
422
|
-
*/
|
|
423
|
-
interface WeaverseNextServerClient extends WeaverseNextClient {
|
|
424
|
-
/** Public, client-safe resolved configs (no server secrets). */
|
|
425
|
-
configs: WeaverseNextConfigs;
|
|
426
|
-
fetchCustomPages: (options?: WeaverseNextFetchCustomPagesOptions) => Promise<WeaverseNextCustomPageEntry[]>;
|
|
427
|
-
fetchWithCache: <T = unknown>(url: string, options?: WeaverseNextFetchOptions) => Promise<T>;
|
|
428
|
-
loadPage: (input?: WeaverseNextLoadPageInput) => Promise<WeaverseNextLoaderData | null>;
|
|
429
|
-
/**
|
|
430
|
-
* Load theme settings. Pass cache options (`revalidate` / `tags`) only — the
|
|
431
|
-
* request context is the one the client was created with, so there is no
|
|
432
|
-
* per-call context override. The parameter is typed broadly purely to stay
|
|
433
|
-
* assignable to the base {@link WeaverseNextClient.loadThemeSettings}; any
|
|
434
|
-
* non-cache fields are ignored.
|
|
435
|
-
*/
|
|
436
|
-
loadThemeSettings: (options?: WeaverseNextThemeSettingsOptions | WeaverseNextRequestContext) => Promise<WeaverseNextThemeSettingsResponse>;
|
|
437
|
-
/** Resolve the effective projectId (query → function → string → env). */
|
|
438
|
-
resolveProjectId: () => Promise<string>;
|
|
439
|
-
}
|
|
440
|
-
/** Input for {@link WeaverseNextServerClient.loadPage}. */
|
|
441
|
-
interface WeaverseNextServerLoadPageInput extends WeaverseNextLoadPageInput {
|
|
442
|
-
/** Per-call cache override merged over the client-level `cache` config. */
|
|
443
|
-
cache?: WeaverseNextCacheConfig;
|
|
444
|
-
/** Route-level project override (multi-project), like Hydrogen. */
|
|
445
|
-
projectId?: string;
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
interface WeaverseNextSeoMetadata {
|
|
449
|
-
alternates?: {
|
|
450
|
-
canonical?: string;
|
|
451
|
-
};
|
|
452
|
-
description?: string;
|
|
453
|
-
keywords?: string;
|
|
454
|
-
openGraph?: {
|
|
455
|
-
description?: string;
|
|
456
|
-
images?: string[];
|
|
457
|
-
title?: string;
|
|
458
|
-
type?: string;
|
|
459
|
-
};
|
|
460
|
-
robots: {
|
|
461
|
-
follow: boolean;
|
|
462
|
-
index: boolean;
|
|
463
|
-
};
|
|
464
|
-
title?: string;
|
|
465
|
-
twitter?: {
|
|
466
|
-
card?: string;
|
|
467
|
-
description?: string;
|
|
468
|
-
images?: string[];
|
|
469
|
-
title?: string;
|
|
470
|
-
};
|
|
471
|
-
}
|
|
472
|
-
declare function formatWeaverseNextSeoMetadata(seo: PageSEOData | null | undefined): WeaverseNextSeoMetadata;
|
|
473
|
-
declare function getWeaverseNextSeoMetadata(data: WeaverseNextLoaderData | WeaverseNextPageData | {
|
|
474
|
-
page?: WeaverseNextPageData | null;
|
|
475
|
-
} | null | undefined): WeaverseNextSeoMetadata;
|
|
476
|
-
|
|
477
|
-
export { type WeaverseNextRuntimeInternal as A, type WeaverseNextSeoMetadata as B, type WeaverseNextServerClient as C, type WeaverseNextServerClientConfig as D, type WeaverseNextServerLoadPageInput as E, type WeaverseNextStorefront as F, type WeaverseNextThemeSettingsOptions as G, type WeaverseNextThemeSettingsResponse as H, type WeaverseNextThemeSettingsStore as I, type WeaverseNextTranslationChanges as J, type WeaverseNextTranslationEntry as K, type WeaverseNextTranslationItemEntry as L, type WeaverseNextTranslationMap as M, type WeaverseNextTranslationMapEntry as N, type WeaverseProduct as O, formatWeaverseNextSeoMetadata as P, getWeaverseNextSeoMetadata as Q, ThemeTextStore as T, type WeaverseArticle as W, TranslationStore as a, type WeaverseBlog as b, type WeaverseCollection as c, type WeaverseMetaObject as d, type WeaverseNextBaseConfigs as e, type WeaverseNextCacheConfig as f, type WeaverseNextClient as g, type WeaverseNextClientConfig as h, type WeaverseNextCommerceContext as i, type WeaverseNextComponent as j, type WeaverseNextComponentData as k, type WeaverseNextComponentLoaderArgs as l, type WeaverseNextComponentProps as m, type WeaverseNextConfigs as n, type WeaverseNextCustomPageEntry as o, type WeaverseNextFetchCustomPagesOptions as p, type WeaverseNextFetchOptions as q, type WeaverseNextI18n as r, type WeaverseNextLoadPageInput as s, type WeaverseNextLoaderData as t, type WeaverseNextPageAssignment as u, type WeaverseNextPageData as v, type WeaverseNextProjectId as w, type WeaverseNextRequestContext as x, type WeaverseNextRequestInfo as y, type WeaverseNextRuntimeConfig as z };
|
package/dist/server.d.mts
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { x as WeaverseNextRequestContext, e as WeaverseNextBaseConfigs, C as WeaverseNextServerClient, k as WeaverseNextComponentData, D as WeaverseNextServerClientConfig } from './seo-Dos9t22_.mjs';
|
|
2
|
-
export { f as WeaverseNextCacheConfig, n as WeaverseNextConfigs, o as WeaverseNextCustomPageEntry, p as WeaverseNextFetchCustomPagesOptions, q as WeaverseNextFetchOptions, w as WeaverseNextProjectId, B as WeaverseNextSeoMetadata, E as WeaverseNextServerLoadPageInput, G as WeaverseNextThemeSettingsOptions, H as WeaverseNextThemeSettingsResponse, P as formatWeaverseNextSeoMetadata, Q as getWeaverseNextSeoMetadata } from './seo-Dos9t22_.mjs';
|
|
3
|
-
import '@weaverse/schema';
|
|
4
|
-
import '@weaverse/react';
|
|
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
|
-
interface WeaverseNextRevalidateHandlerConfig {
|
|
42
|
-
/**
|
|
43
|
-
* Reuse the app's server-client factory so the loader runs with the same
|
|
44
|
-
* component registry and commerce (storefront) context as page loads.
|
|
45
|
-
*/
|
|
46
|
-
getClient: (request: Request) => Promise<WeaverseNextServerClient> | WeaverseNextServerClient;
|
|
47
|
-
}
|
|
48
|
-
/** POST body accepted by the revalidate route. */
|
|
49
|
-
interface WeaverseNextRevalidateRequestBody {
|
|
50
|
-
draftItem: WeaverseNextComponentData;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Create the Studio per-item revalidation route handler.
|
|
54
|
-
*
|
|
55
|
-
* Studio design-mode edits to loader-backed inputs (e.g. resource pickers) need
|
|
56
|
-
* fresh server loader data for a single item. Re-running it through
|
|
57
|
-
* `router.refresh()` re-applies the whole RSC tree — and the draft-item query
|
|
58
|
-
* rewrite changes the App Router page segment key, remounting the page and
|
|
59
|
-
* resetting scroll. This handler runs just the edited component's `loader`
|
|
60
|
-
* with the unsaved draft settings and returns the payload for an in-place
|
|
61
|
-
* client update (see the `2026-07-02--next-item-revalidation` spec).
|
|
62
|
-
*
|
|
63
|
-
* Security: only registered component types are executable, the handler never
|
|
64
|
-
* persists anything, and responses are `no-store`. Exposure is equivalent to
|
|
65
|
-
* the existing `weaverseDraftItem` URL param, which already lets any visitor
|
|
66
|
-
* run design-mode loaders with arbitrary draft settings.
|
|
67
|
-
*
|
|
68
|
-
* @example
|
|
69
|
-
* ```ts
|
|
70
|
-
* // app/api/weaverse/revalidate/route.ts
|
|
71
|
-
* export const { POST } = createWeaverseNextRevalidateHandler({
|
|
72
|
-
* getClient: () => getWeaverseServerClient(Promise.resolve({})),
|
|
73
|
-
* })
|
|
74
|
-
* ```
|
|
75
|
-
*/
|
|
76
|
-
declare function createWeaverseNextRevalidateHandler(config: WeaverseNextRevalidateHandlerConfig): {
|
|
77
|
-
POST: (request: Request) => Promise<Response>;
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Create a server-side {@link WeaverseNextServerClient} for Next.js App Router
|
|
82
|
-
* routes / server components.
|
|
83
|
-
*
|
|
84
|
-
* @example
|
|
85
|
-
* ```ts
|
|
86
|
-
* let weaverse = createWeaverseNextServerClient({
|
|
87
|
-
* projectId: process.env.WEAVERSE_PROJECT_ID,
|
|
88
|
-
* components,
|
|
89
|
-
* commerce: { storefront },
|
|
90
|
-
* requestContext: { url, headers, searchParams, i18n },
|
|
91
|
-
* cache: { revalidate: 60, tags: ['weaverse'] },
|
|
92
|
-
* })
|
|
93
|
-
* let data = await weaverse.loadPage({ type: 'INDEX' })
|
|
94
|
-
* let theme = await weaverse.loadThemeSettings()
|
|
95
|
-
* ```
|
|
96
|
-
*/
|
|
97
|
-
declare function createWeaverseNextServerClient(config: WeaverseNextServerClientConfig): WeaverseNextServerClient;
|
|
98
|
-
|
|
99
|
-
export { WeaverseNextBaseConfigs, type WeaverseNextRevalidateHandlerConfig, type WeaverseNextRevalidateRequestBody, WeaverseNextServerClient, WeaverseNextServerClientConfig, createWeaverseNextRevalidateHandler, createWeaverseNextServerClient, getWeaverseNextConfigs, normalizeNextPageUrl, resolveRequestUrl };
|
package/dist/server.d.ts
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { x as WeaverseNextRequestContext, e as WeaverseNextBaseConfigs, C as WeaverseNextServerClient, k as WeaverseNextComponentData, D as WeaverseNextServerClientConfig } from './seo-Dos9t22_.js';
|
|
2
|
-
export { f as WeaverseNextCacheConfig, n as WeaverseNextConfigs, o as WeaverseNextCustomPageEntry, p as WeaverseNextFetchCustomPagesOptions, q as WeaverseNextFetchOptions, w as WeaverseNextProjectId, B as WeaverseNextSeoMetadata, E as WeaverseNextServerLoadPageInput, G as WeaverseNextThemeSettingsOptions, H as WeaverseNextThemeSettingsResponse, P as formatWeaverseNextSeoMetadata, Q as getWeaverseNextSeoMetadata } from './seo-Dos9t22_.js';
|
|
3
|
-
import '@weaverse/schema';
|
|
4
|
-
import '@weaverse/react';
|
|
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
|
-
interface WeaverseNextRevalidateHandlerConfig {
|
|
42
|
-
/**
|
|
43
|
-
* Reuse the app's server-client factory so the loader runs with the same
|
|
44
|
-
* component registry and commerce (storefront) context as page loads.
|
|
45
|
-
*/
|
|
46
|
-
getClient: (request: Request) => Promise<WeaverseNextServerClient> | WeaverseNextServerClient;
|
|
47
|
-
}
|
|
48
|
-
/** POST body accepted by the revalidate route. */
|
|
49
|
-
interface WeaverseNextRevalidateRequestBody {
|
|
50
|
-
draftItem: WeaverseNextComponentData;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Create the Studio per-item revalidation route handler.
|
|
54
|
-
*
|
|
55
|
-
* Studio design-mode edits to loader-backed inputs (e.g. resource pickers) need
|
|
56
|
-
* fresh server loader data for a single item. Re-running it through
|
|
57
|
-
* `router.refresh()` re-applies the whole RSC tree — and the draft-item query
|
|
58
|
-
* rewrite changes the App Router page segment key, remounting the page and
|
|
59
|
-
* resetting scroll. This handler runs just the edited component's `loader`
|
|
60
|
-
* with the unsaved draft settings and returns the payload for an in-place
|
|
61
|
-
* client update (see the `2026-07-02--next-item-revalidation` spec).
|
|
62
|
-
*
|
|
63
|
-
* Security: only registered component types are executable, the handler never
|
|
64
|
-
* persists anything, and responses are `no-store`. Exposure is equivalent to
|
|
65
|
-
* the existing `weaverseDraftItem` URL param, which already lets any visitor
|
|
66
|
-
* run design-mode loaders with arbitrary draft settings.
|
|
67
|
-
*
|
|
68
|
-
* @example
|
|
69
|
-
* ```ts
|
|
70
|
-
* // app/api/weaverse/revalidate/route.ts
|
|
71
|
-
* export const { POST } = createWeaverseNextRevalidateHandler({
|
|
72
|
-
* getClient: () => getWeaverseServerClient(Promise.resolve({})),
|
|
73
|
-
* })
|
|
74
|
-
* ```
|
|
75
|
-
*/
|
|
76
|
-
declare function createWeaverseNextRevalidateHandler(config: WeaverseNextRevalidateHandlerConfig): {
|
|
77
|
-
POST: (request: Request) => Promise<Response>;
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Create a server-side {@link WeaverseNextServerClient} for Next.js App Router
|
|
82
|
-
* routes / server components.
|
|
83
|
-
*
|
|
84
|
-
* @example
|
|
85
|
-
* ```ts
|
|
86
|
-
* let weaverse = createWeaverseNextServerClient({
|
|
87
|
-
* projectId: process.env.WEAVERSE_PROJECT_ID,
|
|
88
|
-
* components,
|
|
89
|
-
* commerce: { storefront },
|
|
90
|
-
* requestContext: { url, headers, searchParams, i18n },
|
|
91
|
-
* cache: { revalidate: 60, tags: ['weaverse'] },
|
|
92
|
-
* })
|
|
93
|
-
* let data = await weaverse.loadPage({ type: 'INDEX' })
|
|
94
|
-
* let theme = await weaverse.loadThemeSettings()
|
|
95
|
-
* ```
|
|
96
|
-
*/
|
|
97
|
-
declare function createWeaverseNextServerClient(config: WeaverseNextServerClientConfig): WeaverseNextServerClient;
|
|
98
|
-
|
|
99
|
-
export { WeaverseNextBaseConfigs, type WeaverseNextRevalidateHandlerConfig, type WeaverseNextRevalidateRequestBody, WeaverseNextServerClient, WeaverseNextServerClientConfig, createWeaverseNextRevalidateHandler, createWeaverseNextServerClient, getWeaverseNextConfigs, normalizeNextPageUrl, resolveRequestUrl };
|