@weaverse/next 0.1.0-alpha.0 → 0.1.0-alpha.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.
- package/README.md +149 -0
- package/dist/chunk-SS6QUKYY.mjs +149 -0
- package/dist/chunk-SS6QUKYY.mjs.map +1 -0
- package/dist/index.d.mts +79 -160
- package/dist/index.d.ts +79 -160
- package/dist/index.js +426 -18
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +361 -110
- package/dist/index.mjs.map +1 -1
- package/dist/server.d.mts +60 -0
- package/dist/server.d.ts +60 -0
- package/dist/server.js +662 -0
- package/dist/server.js.map +1 -0
- package/dist/server.mjs +513 -0
- package/dist/server.mjs.map +1 -0
- package/dist/types-DvEeLX6L.d.mts +321 -0
- package/dist/types-DvEeLX6L.d.ts +321 -0
- package/package.json +16 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,163 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Weaverse } from '@weaverse/react';
|
|
2
2
|
export { isBrowser, isIframe, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
|
|
3
|
-
import { PageType, SchemaType } from '@weaverse/schema';
|
|
4
3
|
export { InspectorGroup, PageType, SchemaType, createSchema } from '@weaverse/schema';
|
|
5
|
-
import
|
|
6
|
-
|
|
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';
|
|
7
6
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* Locale/market info passed through to component loaders and the Storefront
|
|
11
|
-
* client. Kept structurally close to Hydrogen's `WeaverseI18n` but without the
|
|
12
|
-
* `@shopify/hydrogen` `I18nBase` dependency so the adapter stays framework
|
|
13
|
-
* neutral.
|
|
14
|
-
*/
|
|
15
|
-
interface WeaverseNextI18n {
|
|
16
|
-
country?: string;
|
|
17
|
-
label?: string;
|
|
18
|
-
language?: string;
|
|
19
|
-
locale?: string;
|
|
20
|
-
pathPrefix?: string;
|
|
21
|
-
[key: string]: unknown;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Minimal Storefront client shape required by component loaders. The host app
|
|
25
|
-
* provides this (public or private token mode); Weaverse never owns it.
|
|
26
|
-
*/
|
|
27
|
-
interface WeaverseNextStorefront {
|
|
28
|
-
i18n?: WeaverseNextI18n;
|
|
29
|
-
query: (query: string, options?: unknown) => Promise<unknown>;
|
|
30
|
-
[key: string]: unknown;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* App-provided commerce context. `storefront` is the only v0 must-have; cart
|
|
34
|
-
* and customer-account stay app-owned and are passed through untouched.
|
|
35
|
-
*/
|
|
36
|
-
interface WeaverseNextCommerceContext {
|
|
37
|
-
cart?: unknown;
|
|
38
|
-
customerAccount?: unknown;
|
|
39
|
-
storefront?: WeaverseNextStorefront;
|
|
40
|
-
[key: string]: unknown;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Explicit, framework-neutral replacement for React Router's
|
|
44
|
-
* `LoaderFunctionArgs`. Built by the Next route/page from params + headers +
|
|
45
|
-
* searchParams instead of an implicit loader context.
|
|
46
|
-
*/
|
|
47
|
-
interface WeaverseNextRequestContext {
|
|
48
|
-
handle?: string;
|
|
49
|
-
headers?: Headers;
|
|
50
|
-
i18n?: WeaverseNextI18n;
|
|
51
|
-
isDesignMode?: boolean;
|
|
52
|
-
isPreviewMode?: boolean;
|
|
53
|
-
isRevisionPreview?: boolean;
|
|
54
|
-
pageType?: PageType;
|
|
55
|
-
pathname?: string;
|
|
56
|
-
searchParams?: URLSearchParams;
|
|
57
|
-
sectionType?: string;
|
|
58
|
-
url?: URL | string;
|
|
59
|
-
[key: string]: unknown;
|
|
60
|
-
}
|
|
61
|
-
/** A single serialized item in a Weaverse page tree. */
|
|
62
|
-
interface WeaverseNextComponentData {
|
|
63
|
-
children?: WeaverseNextComponentData[] | {
|
|
64
|
-
id: string;
|
|
65
|
-
}[];
|
|
66
|
-
data?: Record<string, unknown>;
|
|
67
|
-
id: string;
|
|
68
|
-
/** Attached by {@link runWeaverseComponentLoaders} after a loader runs. */
|
|
69
|
-
loaderData?: unknown;
|
|
70
|
-
type: string;
|
|
71
|
-
[key: string]: unknown;
|
|
72
|
-
}
|
|
73
|
-
/** Serialized page tree fetched from Weaverse. */
|
|
74
|
-
interface WeaverseNextPageData {
|
|
75
|
-
id: string;
|
|
76
|
-
items: WeaverseNextComponentData[];
|
|
77
|
-
name?: string;
|
|
78
|
-
rootId?: string;
|
|
79
|
-
[key: string]: unknown;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Top-level payload returned by `client.loadPage`. Kept close to Hydrogen's
|
|
83
|
-
* `WeaverseLoaderData` so registered components stay portable.
|
|
84
|
-
*/
|
|
85
|
-
interface WeaverseNextLoaderData {
|
|
86
|
-
configs?: Record<string, unknown>;
|
|
87
|
-
page: WeaverseNextPageData;
|
|
88
|
-
pageAssignment?: Record<string, unknown>;
|
|
89
|
-
project?: Record<string, unknown>;
|
|
90
|
-
[key: string]: unknown;
|
|
91
|
-
}
|
|
92
|
-
/** Props injected into every registered Weaverse component. */
|
|
93
|
-
interface WeaverseNextComponentProps<L = unknown> extends Partial<WeaverseElement> {
|
|
94
|
-
children?: ReactNode;
|
|
95
|
-
className?: string;
|
|
96
|
-
loaderData?: L;
|
|
97
|
-
[key: string]: unknown;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Arguments passed to a component `loader`. `commerce.storefront` is the
|
|
101
|
-
* explicit contract; `weaverse.storefront` exists as a compatibility alias for
|
|
102
|
-
* Pilot-style loaders that call `weaverse.storefront.query(...)`.
|
|
103
|
-
*/
|
|
104
|
-
interface WeaverseNextComponentLoaderArgs<TData = unknown> {
|
|
105
|
-
commerce?: WeaverseNextCommerceContext;
|
|
106
|
-
context?: WeaverseNextRequestContext;
|
|
107
|
-
data: TData;
|
|
108
|
-
weaverse: WeaverseNextClient;
|
|
109
|
-
}
|
|
110
|
-
/** Registered component module shape: `default` + `schema` + optional `loader`. */
|
|
111
|
-
interface WeaverseNextComponent<TProps extends WeaverseNextComponentProps = WeaverseNextComponentProps> {
|
|
112
|
-
default: ComponentType<TProps> | ForwardRefExoticComponent<TProps>;
|
|
113
|
-
loader?: (args: WeaverseNextComponentLoaderArgs) => Promise<unknown>;
|
|
114
|
-
schema: SchemaType;
|
|
115
|
-
}
|
|
116
|
-
/** Input for `client.loadPage`. The Next route maps `params` → `type/handle`. */
|
|
117
|
-
interface WeaverseNextLoadPageInput {
|
|
118
|
-
handle?: string;
|
|
119
|
-
locale?: string;
|
|
120
|
-
type?: PageType;
|
|
121
|
-
[key: string]: unknown;
|
|
122
|
-
}
|
|
123
|
-
interface WeaverseNextClientConfig {
|
|
124
|
-
commerce?: WeaverseNextCommerceContext;
|
|
125
|
-
components: WeaverseNextComponent[];
|
|
126
|
-
/**
|
|
127
|
-
* Injected page fetcher. v0 delegates network I/O to the host app so the
|
|
128
|
-
* adapter can be tested without real Weaverse API calls.
|
|
129
|
-
*/
|
|
130
|
-
fetchPage?: (input: WeaverseNextLoadPageInput) => Promise<WeaverseNextLoaderData | null>;
|
|
131
|
-
/** Injected theme-settings fetcher. */
|
|
132
|
-
fetchThemeSettings?: (context?: WeaverseNextRequestContext) => Promise<unknown>;
|
|
133
|
-
projectId: string;
|
|
134
|
-
requestContext?: WeaverseNextRequestContext;
|
|
135
|
-
themeSchema?: unknown;
|
|
136
|
-
themeSettings?: Record<string, unknown>;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Request-safe client returned by {@link createWeaverseNextClient}. Holds the
|
|
140
|
-
* registry/config plus the currently loaded page data, and is the object passed
|
|
141
|
-
* to component loaders as `weaverse`.
|
|
142
|
-
*/
|
|
143
|
-
interface WeaverseNextClient {
|
|
144
|
-
commerce?: WeaverseNextCommerceContext;
|
|
145
|
-
components: WeaverseNextComponent[];
|
|
146
|
-
/** Currently loaded page payload (set by `loadPage`). */
|
|
147
|
-
data: WeaverseNextLoaderData | null;
|
|
148
|
-
/** Data-connector context handed to the React renderer. */
|
|
149
|
-
dataContext: Record<string, unknown>;
|
|
150
|
-
loadPage: (input?: WeaverseNextLoadPageInput) => Promise<WeaverseNextLoaderData | null>;
|
|
151
|
-
loadThemeSettings: (context?: WeaverseNextRequestContext) => Promise<unknown>;
|
|
152
|
-
projectId: string;
|
|
153
|
-
requestContext?: WeaverseNextRequestContext;
|
|
154
|
-
/** Compatibility alias for `commerce.storefront`. */
|
|
155
|
-
storefront?: WeaverseNextStorefront;
|
|
156
|
-
themeSchema?: unknown;
|
|
157
|
-
themeSettings: Record<string, unknown>;
|
|
158
|
-
}
|
|
159
|
-
type WeaverseProduct = WeaverseResourcePickerData;
|
|
160
|
-
type WeaverseCollection = WeaverseResourcePickerData;
|
|
7
|
+
import * as react from 'react';
|
|
8
|
+
import { ReactNode } from 'react';
|
|
161
9
|
|
|
162
10
|
/**
|
|
163
11
|
* Create a {@link WeaverseNextClient} from explicit config.
|
|
@@ -187,8 +35,9 @@ declare function useWeaversePageData<T = unknown>(): T;
|
|
|
187
35
|
/** Read the app-provided commerce context (storefront/cart/customer). */
|
|
188
36
|
declare function useWeaverseCommerce<T = WeaverseNextCommerceContext>(): T;
|
|
189
37
|
/**
|
|
190
|
-
* Read Weaverse theme settings.
|
|
191
|
-
*
|
|
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.
|
|
192
41
|
*/
|
|
193
42
|
declare function useThemeSettings<T = Record<string, unknown>>(): T;
|
|
194
43
|
|
|
@@ -262,4 +111,74 @@ interface WeaverseNextRendererProps {
|
|
|
262
111
|
*/
|
|
263
112
|
declare const WeaverseNextRenderer: react.MemoExoticComponent<(props: WeaverseNextRendererProps) => react_jsx_runtime.JSX.Element | null>;
|
|
264
113
|
|
|
265
|
-
|
|
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
|
+
interface ResolveWeaverseNextStudioScriptSrcOptions {
|
|
162
|
+
framework?: 'hydrogen' | 'next';
|
|
163
|
+
storefrontHostname?: string;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Resolve the Studio script URL from request/search context. v0 intentionally
|
|
167
|
+
* reuses the existing structural Hydrogen bridge script until a concrete Builder
|
|
168
|
+
* incompatibility requires a dedicated Next bundle.
|
|
169
|
+
*/
|
|
170
|
+
declare function resolveWeaverseNextStudioScriptSrc(context?: WeaverseNextRequestContext, options?: ResolveWeaverseNextStudioScriptSrcOptions): string | null;
|
|
171
|
+
|
|
172
|
+
interface CreateWeaverseNextThemeSettingsStoreOptions {
|
|
173
|
+
publicEnv?: Record<string, string | undefined>;
|
|
174
|
+
schema?: unknown;
|
|
175
|
+
settings?: Record<string, unknown>;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Small external store shape compatible with the Studio bridge and React's
|
|
179
|
+
* `useSyncExternalStore` contract. The bridge calls `updateThemeSettings` during
|
|
180
|
+
* live theme edits, so keep that method name stable.
|
|
181
|
+
*/
|
|
182
|
+
declare function createWeaverseNextThemeSettingsStore(options?: CreateWeaverseNextThemeSettingsStoreOptions): WeaverseNextThemeSettingsStore;
|
|
183
|
+
|
|
184
|
+
export { type CreateWeaverseNextThemeSettingsStoreOptions, type ResolveWeaverseNextStudioScriptSrcOptions, type RunComponentLoadersArgs, WeaverseNextClient, WeaverseNextClientConfig, WeaverseNextCommerceContext, WeaverseNextLoaderData, WeaverseNextProvider, type WeaverseNextProviderProps, WeaverseNextRenderer, type WeaverseNextRendererProps, WeaverseNextRequestContext, WeaverseNextRequestInfo, WeaverseNextRuntime, WeaverseNextRuntimeConfig, WeaverseNextRuntimeInternal, WeaverseNextStudioBridge, type WeaverseNextStudioBridgeProps, WeaverseNextStudioConnect, type WeaverseNextStudioConnectProps, WeaverseNextThemeSettingsStore, bindWeaverseNextStudioRuntime, buildWeaverseNextRequestInfo, createWeaverseNextClient, createWeaverseNextRuntime, createWeaverseNextThemeSettingsStore, resolveWeaverseNextStudioScriptSrc, runWeaverseComponentLoaders, useThemeSettings, useWeaverseCommerce, useWeaversePageData, useWeaverseRootData };
|