@weaverse/next 0.1.0-alpha.0 → 0.1.0-alpha.10

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.
@@ -0,0 +1,99 @@
1
+ import { x as WeaverseNextRequestContext, e as WeaverseNextBaseConfigs, C as WeaverseNextServerClient, k as WeaverseNextComponentData, D as WeaverseNextServerClientConfig } from './seo-CgO21rLg.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, H as WeaverseNextThemeSettingsOptions, I as WeaverseNextThemeSettingsResponse, Q as formatWeaverseNextSeoMetadata, R as getWeaverseNextSeoMetadata } from './seo-CgO21rLg.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 };