@weaverse/hydrogen 5.3.4 → 5.4.1-beta.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/dist/index.d.mts +102 -53
- package/dist/index.d.ts +102 -53
- package/dist/index.js +155 -81
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +152 -83
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SelectedOptionInput } from '@shopify/hydrogen/storefront-api-types';
|
|
2
|
-
import { EventEmitter,
|
|
2
|
+
import { EventEmitter, Weaverse, PlatformTypeEnum, WeaverseItemStore, ElementData, WeaverseElement, WeaverseProjectDataType, WeaverseCoreParams, WeaverseResourcePickerData } from '@weaverse/react';
|
|
3
3
|
export { PositionInputValue, WeaverseImage, WeaverseVideo, isBrowser, isIframe, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
|
|
4
4
|
import { PageType, InspectorGroup, SchemaType, ComponentPresets, SchemaValidationResult } from '@weaverse/schema';
|
|
5
5
|
export * from '@weaverse/schema';
|
|
@@ -7,7 +7,7 @@ export { BasicInput, HeadingInput, InputType, InspectorGroup, PageType, SchemaVa
|
|
|
7
7
|
import { createWithCache, I18nBase, HydrogenContext, HydrogenEnv } from '@shopify/hydrogen';
|
|
8
8
|
import { LoaderFunctionArgs, AppLoadContext } from '@shopify/remix-oxygen';
|
|
9
9
|
import * as React$1 from 'react';
|
|
10
|
-
import {
|
|
10
|
+
import { ComponentType, JSX, ForwardRefExoticComponent } from 'react';
|
|
11
11
|
import { NavigateFunction } from 'react-router';
|
|
12
12
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
13
13
|
|
|
@@ -26,8 +26,42 @@ declare class ThemeSettingsStore extends EventEmitter {
|
|
|
26
26
|
getServerSnapshot: () => HydrogenThemeSettings;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
declare class WeaverseHydrogenItem extends WeaverseItemStore {
|
|
30
|
+
weaverse: WeaverseHydrogen;
|
|
31
|
+
constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen);
|
|
32
|
+
get Element(): HydrogenElement;
|
|
33
|
+
}
|
|
34
|
+
declare class WeaverseHydrogen extends Weaverse {
|
|
35
|
+
platformType: PlatformTypeEnum;
|
|
36
|
+
pageId: string;
|
|
37
|
+
internal: Partial<WeaverseInternal>;
|
|
38
|
+
requestInfo: WeaverseLoaderRequestInfo;
|
|
39
|
+
projectId: string;
|
|
40
|
+
weaverseHost: string;
|
|
41
|
+
weaverseApiBase: string;
|
|
42
|
+
weaverseApiKey: string;
|
|
43
|
+
weaverseVersion: string;
|
|
44
|
+
isDesignMode: boolean;
|
|
45
|
+
isPreviewMode: boolean;
|
|
46
|
+
sectionType: string;
|
|
47
|
+
ItemConstructor: typeof WeaverseHydrogenItem;
|
|
48
|
+
data: HydrogenPageData;
|
|
49
|
+
static itemInstances: Map<string, WeaverseHydrogenItem>;
|
|
50
|
+
static elementRegistry: Map<string, HydrogenElement>;
|
|
51
|
+
constructor(params: WeaverseHydrogenParams);
|
|
52
|
+
}
|
|
53
|
+
declare function registerComponent(element: HydrogenElement): void;
|
|
54
|
+
declare let WeaverseHydrogenRoot: React$1.MemoExoticComponent<({ components, errorComponent: ErrorComponent, }: {
|
|
55
|
+
components: HydrogenComponent[];
|
|
56
|
+
errorComponent?: React.FC<{
|
|
57
|
+
error: any;
|
|
58
|
+
}>;
|
|
59
|
+
}) => react_jsx_runtime.JSX.Element>;
|
|
60
|
+
declare function withWeaverse(Component: ComponentType<any>): (props: JSX.IntrinsicAttributes) => react_jsx_runtime.JSX.Element;
|
|
61
|
+
declare function useThemeSettings<T = HydrogenThemeSettings>(): T;
|
|
62
|
+
|
|
29
63
|
declare class WeaverseClient {
|
|
30
|
-
API:
|
|
64
|
+
API: "v1";
|
|
31
65
|
basePageConfigs: Omit<WeaverseProjectConfigs, 'requestInfo'>;
|
|
32
66
|
basePageRequestBody: Omit<FetchProjectRequestBody, 'url'>;
|
|
33
67
|
configs: WeaverseProjectConfigs;
|
|
@@ -40,11 +74,12 @@ declare class WeaverseClient {
|
|
|
40
74
|
cache: WeaverseClientArgs['cache'];
|
|
41
75
|
waitUntil: WeaverseClientArgs['waitUntil'];
|
|
42
76
|
constructor(args: WeaverseClientArgs);
|
|
43
|
-
private directFetch;
|
|
44
|
-
|
|
77
|
+
private readonly directFetch;
|
|
78
|
+
private getApiUrl;
|
|
79
|
+
fetchWithCache: <T = unknown>(url: string, options?: RequestInit & {
|
|
45
80
|
strategy?: AllCacheOptions;
|
|
46
81
|
}) => Promise<T>;
|
|
47
|
-
loadThemeSettings: (strategy?: AllCacheOptions) => Promise<
|
|
82
|
+
loadThemeSettings: (strategy?: AllCacheOptions) => Promise<ThemeSettingsResponse>;
|
|
48
83
|
generateFallbackPage: (message: string) => HydrogenPageData;
|
|
49
84
|
loadPage: (params?: {
|
|
50
85
|
type?: PageType;
|
|
@@ -55,14 +90,14 @@ declare class WeaverseClient {
|
|
|
55
90
|
execComponentLoader: (item: HydrogenComponentData) => Promise<HydrogenComponentData>;
|
|
56
91
|
}
|
|
57
92
|
|
|
58
|
-
|
|
59
|
-
mode?: string;
|
|
93
|
+
type AllCacheOptions = {
|
|
94
|
+
mode?: 'must-revalidate' | 'no-cache' | 'no-store' | 'private' | 'public' | string;
|
|
60
95
|
maxAge?: number;
|
|
61
96
|
staleWhileRevalidate?: number;
|
|
62
97
|
sMaxAge?: number;
|
|
63
98
|
staleIfError?: number;
|
|
64
|
-
}
|
|
65
|
-
type ComponentLoaderArgs<T = any,
|
|
99
|
+
};
|
|
100
|
+
type ComponentLoaderArgs<T = any, _E = any> = {
|
|
66
101
|
data: T;
|
|
67
102
|
weaverse: WeaverseClient;
|
|
68
103
|
};
|
|
@@ -120,25 +155,33 @@ type WeaverseInternal = {
|
|
|
120
155
|
* Optimized: Use direct type alias to maintain consistency
|
|
121
156
|
*/
|
|
122
157
|
type HydrogenComponentPresets = ComponentPresets;
|
|
123
|
-
|
|
158
|
+
type HydrogenElement = {
|
|
124
159
|
Component: ForwardRefExoticComponent<HydrogenComponentProps> | ((props: HydrogenComponentProps) => React$1.JSX.Element);
|
|
125
160
|
type: string;
|
|
126
161
|
schema?: HydrogenComponentSchema;
|
|
127
162
|
/** Optional data loader function for server-side data fetching */
|
|
128
163
|
loader?: (args: ComponentLoaderArgs) => Promise<unknown>;
|
|
129
|
-
}
|
|
164
|
+
};
|
|
130
165
|
interface WeaverseHydrogenParams extends Omit<WeaverseCoreParams, 'ItemConstructor'> {
|
|
131
166
|
data: HydrogenPageData;
|
|
132
167
|
pageId: string;
|
|
133
168
|
internal: Partial<WeaverseInternal>;
|
|
134
169
|
requestInfo: WeaverseLoaderRequestInfo;
|
|
170
|
+
projectId: string;
|
|
171
|
+
weaverseHost: string;
|
|
172
|
+
weaverseApiBase: string;
|
|
173
|
+
weaverseApiKey: string;
|
|
174
|
+
weaverseVersion?: string;
|
|
175
|
+
isDesignMode?: boolean;
|
|
176
|
+
isPreviewMode?: boolean;
|
|
177
|
+
sectionType?: string;
|
|
135
178
|
}
|
|
136
|
-
|
|
179
|
+
type HydrogenComponent<T extends HydrogenComponentProps = any> = {
|
|
137
180
|
default: ForwardRefExoticComponent<T> | ((props: T) => React$1.JSX.Element);
|
|
138
181
|
schema: HydrogenComponentSchema;
|
|
139
182
|
/** Optional data loader function for server-side data fetching */
|
|
140
183
|
loader?: (args: ComponentLoaderArgs) => Promise<unknown>;
|
|
141
|
-
}
|
|
184
|
+
};
|
|
142
185
|
type WeaverseStudioQueries = {
|
|
143
186
|
weaverseProjectId: string;
|
|
144
187
|
weaverseApiKey: string;
|
|
@@ -155,6 +198,7 @@ type PublicEnv = {
|
|
|
155
198
|
type WeaverseProjectConfigs = {
|
|
156
199
|
projectId: string;
|
|
157
200
|
weaverseHost: string;
|
|
201
|
+
weaverseApiBase: string;
|
|
158
202
|
weaverseApiKey: string;
|
|
159
203
|
weaverseVersion?: string;
|
|
160
204
|
isDesignMode?: boolean;
|
|
@@ -168,14 +212,14 @@ type HydrogenPageAssignment = {
|
|
|
168
212
|
handle: string;
|
|
169
213
|
locale: string;
|
|
170
214
|
};
|
|
171
|
-
|
|
215
|
+
type WeaverseLoaderData = {
|
|
172
216
|
configs: Omit<WeaverseProjectConfigs, 'publicEnv'> & {
|
|
173
217
|
requestInfo: WeaverseLoaderRequestInfo;
|
|
174
218
|
};
|
|
175
219
|
page: HydrogenPageData;
|
|
176
220
|
project: HydrogenProjectType;
|
|
177
221
|
pageAssignment: HydrogenPageAssignment;
|
|
178
|
-
}
|
|
222
|
+
};
|
|
179
223
|
interface HydrogenPageData extends WeaverseProjectDataType {
|
|
180
224
|
id: string;
|
|
181
225
|
name: string;
|
|
@@ -188,7 +232,7 @@ type WeaverseI18n = I18nBase & {
|
|
|
188
232
|
pathPrefix?: string;
|
|
189
233
|
[key: string]: any;
|
|
190
234
|
};
|
|
191
|
-
|
|
235
|
+
type HydrogenThemeSchema = {
|
|
192
236
|
info: {
|
|
193
237
|
name: string;
|
|
194
238
|
version: string;
|
|
@@ -205,7 +249,7 @@ interface HydrogenThemeSchema {
|
|
|
205
249
|
defaultLocale: WeaverseI18n;
|
|
206
250
|
shopLocales: WeaverseI18n[];
|
|
207
251
|
};
|
|
208
|
-
}
|
|
252
|
+
};
|
|
209
253
|
type FetchProjectRequestBody = {
|
|
210
254
|
projectId: string;
|
|
211
255
|
url: string;
|
|
@@ -218,10 +262,11 @@ type FetchProjectRequestBody = {
|
|
|
218
262
|
isDesignMode?: boolean;
|
|
219
263
|
};
|
|
220
264
|
type FetchProjectPayload = {
|
|
221
|
-
page
|
|
222
|
-
project
|
|
223
|
-
pageAssignment
|
|
265
|
+
page?: HydrogenPageData;
|
|
266
|
+
project?: HydrogenProjectType;
|
|
267
|
+
pageAssignment?: HydrogenPageAssignment;
|
|
224
268
|
error?: string;
|
|
269
|
+
[key: string]: any;
|
|
225
270
|
};
|
|
226
271
|
type WeaverseClientArgs = HydrogenContext & {
|
|
227
272
|
components: HydrogenComponent[];
|
|
@@ -234,6 +279,38 @@ type WeaverseCollection = WeaverseResourcePickerData;
|
|
|
234
279
|
type WeaverseBlog = WeaverseResourcePickerData;
|
|
235
280
|
type WeaverseArticle = WeaverseResourcePickerData;
|
|
236
281
|
type WeaverseMetaObject = WeaverseResourcePickerData;
|
|
282
|
+
/**
|
|
283
|
+
* Response types for improved type safety
|
|
284
|
+
*/
|
|
285
|
+
type WithCacheFetchResponse<T> = {
|
|
286
|
+
data: T;
|
|
287
|
+
response: Response;
|
|
288
|
+
};
|
|
289
|
+
type ThemeSettingsResponse = {
|
|
290
|
+
theme?: HydrogenThemeSettings;
|
|
291
|
+
schema?: HydrogenThemeSchema;
|
|
292
|
+
publicEnv?: PublicEnv;
|
|
293
|
+
};
|
|
294
|
+
type DirectFetchResponse<T = unknown> = {
|
|
295
|
+
data?: T;
|
|
296
|
+
error?: string;
|
|
297
|
+
};
|
|
298
|
+
type CacheResponseValidator<T = unknown> = (response: WithCacheFetchResponse<T> | T) => boolean;
|
|
299
|
+
declare class WeaverseError extends Error {
|
|
300
|
+
readonly code: string;
|
|
301
|
+
readonly statusCode?: number;
|
|
302
|
+
readonly context?: Record<string, unknown>;
|
|
303
|
+
constructor(message: string, code?: string, statusCode?: number, context?: Record<string, unknown>);
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Type guards for response validation
|
|
307
|
+
*/
|
|
308
|
+
declare function isWithCacheFetchResponse<T>(response: unknown): response is WithCacheFetchResponse<T>;
|
|
309
|
+
declare function isFetchProjectPayload(payload: unknown): payload is FetchProjectPayload;
|
|
310
|
+
declare function hasError(response: unknown): response is {
|
|
311
|
+
error: string;
|
|
312
|
+
};
|
|
313
|
+
declare function isThemeSettingsResponse(data: unknown): data is ThemeSettingsResponse;
|
|
237
314
|
/**
|
|
238
315
|
* Enhanced type utilities for better development experience
|
|
239
316
|
*/
|
|
@@ -266,11 +343,6 @@ declare global {
|
|
|
266
343
|
__weaverses: Record<string, WeaverseHydrogen>;
|
|
267
344
|
__weaverseThemeSettingsStore: ThemeSettingsStore;
|
|
268
345
|
}
|
|
269
|
-
interface Env {
|
|
270
|
-
WEAVERSE_PROJECT_ID: string;
|
|
271
|
-
WEAVERSE_HOST: string;
|
|
272
|
-
WEAVERSE_API_KEY: string;
|
|
273
|
-
}
|
|
274
346
|
}
|
|
275
347
|
declare module '@shopify/remix-oxygen' {
|
|
276
348
|
interface AppLoadContext {
|
|
@@ -281,7 +353,10 @@ declare module '@shopify/hydrogen' {
|
|
|
281
353
|
interface HydrogenEnv {
|
|
282
354
|
WEAVERSE_PROJECT_ID: string;
|
|
283
355
|
WEAVERSE_HOST?: string;
|
|
356
|
+
WEAVERSE_API_BASE?: string;
|
|
284
357
|
WEAVERSE_API_KEY: string;
|
|
358
|
+
PUBLIC_STORE_DOMAIN: string;
|
|
359
|
+
PUBLIC_STOREFRONT_API_TOKEN: string;
|
|
285
360
|
PUBLIC_GOOGLE_GTM_ID: string;
|
|
286
361
|
JUDGEME_PRIVATE_API_TOKEN: string;
|
|
287
362
|
CUSTOM_COLLECTION_BANNER_METAFIELD: string;
|
|
@@ -300,32 +375,6 @@ declare function getWeaverseConfigs(request: Request, env: HydrogenEnv): Weavers
|
|
|
300
375
|
declare function generateDataFromSchema(schema: HydrogenComponentSchema | HydrogenThemeSchema): Record<string, any>;
|
|
301
376
|
declare function getPreviewData(type: string, components: HydrogenComponent[], weaverseHost: string): WeaverseLoaderData;
|
|
302
377
|
|
|
303
|
-
declare class WeaverseHydrogenItem extends WeaverseItemStore {
|
|
304
|
-
weaverse: WeaverseHydrogen;
|
|
305
|
-
constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen);
|
|
306
|
-
get Element(): HydrogenElement;
|
|
307
|
-
}
|
|
308
|
-
declare class WeaverseHydrogen extends Weaverse {
|
|
309
|
-
platformType: PlatformTypeEnum;
|
|
310
|
-
pageId: string;
|
|
311
|
-
internal: Partial<WeaverseInternal>;
|
|
312
|
-
requestInfo: WeaverseLoaderRequestInfo;
|
|
313
|
-
ItemConstructor: typeof WeaverseHydrogenItem;
|
|
314
|
-
data: HydrogenPageData;
|
|
315
|
-
static itemInstances: Map<string, WeaverseHydrogenItem>;
|
|
316
|
-
static elementRegistry: Map<string, HydrogenElement>;
|
|
317
|
-
constructor(params: WeaverseHydrogenParams);
|
|
318
|
-
}
|
|
319
|
-
declare function registerComponent(element: HydrogenElement): void;
|
|
320
|
-
declare let WeaverseHydrogenRoot: React$1.MemoExoticComponent<({ components, errorComponent: ErrorComponent, }: {
|
|
321
|
-
components: HydrogenComponent[];
|
|
322
|
-
errorComponent?: React.FC<{
|
|
323
|
-
error: any;
|
|
324
|
-
}>;
|
|
325
|
-
}) => react_jsx_runtime.JSX.Element>;
|
|
326
|
-
declare function withWeaverse(Component: ComponentType<any>): (props: JSX.IntrinsicAttributes) => react_jsx_runtime.JSX.Element;
|
|
327
|
-
declare function useThemeSettings<T = HydrogenThemeSettings>(): T;
|
|
328
|
-
|
|
329
378
|
declare function getSelectedProductOptions(request: Request): SelectedOptionInput[];
|
|
330
379
|
declare const IMAGES_PLACEHOLDERS: {
|
|
331
380
|
logo_white: string;
|
|
@@ -359,4 +408,4 @@ declare const IMAGES_PLACEHOLDERS: {
|
|
|
359
408
|
product_18: string;
|
|
360
409
|
};
|
|
361
410
|
|
|
362
|
-
export { type AllCacheOptions, type ComponentLoaderArgs, type CreateHydrogenSchemaOptions, type FetchProjectPayload, type FetchProjectRequestBody, type HydrogenComponent, type HydrogenComponentData, type HydrogenComponentPresets, type HydrogenComponentProps, type HydrogenComponentSchema, type HydrogenElement, type HydrogenPageAssignment, type HydrogenPageData, type HydrogenProjectType, type HydrogenSchemaValidationResult, type HydrogenThemeSchema, type HydrogenThemeSettings, IMAGES_PLACEHOLDERS, type PublicEnv, type RouteLoaderArgs, type WeaverseArticle, type WeaverseBlog, WeaverseClient, type WeaverseClientArgs, type WeaverseCollection, WeaverseHydrogen, WeaverseHydrogenItem, type WeaverseHydrogenParams, WeaverseHydrogenRoot, type WeaverseI18n, type WeaverseInternal, type WeaverseLoaderData, type WeaverseLoaderRequestInfo, type WeaverseMetaObject, type WeaverseProduct, type WeaverseProjectConfigs, type WeaverseStudioQueries, defaultComponents, generateDataFromSchema, getPreviewData, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, isValidHydrogenSchema, registerComponent, useThemeSettings, withWeaverse };
|
|
411
|
+
export { type AllCacheOptions, type CacheResponseValidator, type ComponentLoaderArgs, type CreateHydrogenSchemaOptions, type DirectFetchResponse, type FetchProjectPayload, type FetchProjectRequestBody, type HydrogenComponent, type HydrogenComponentData, type HydrogenComponentPresets, type HydrogenComponentProps, type HydrogenComponentSchema, type HydrogenElement, type HydrogenPageAssignment, type HydrogenPageData, type HydrogenProjectType, type HydrogenSchemaValidationResult, type HydrogenThemeSchema, type HydrogenThemeSettings, IMAGES_PLACEHOLDERS, type PublicEnv, type RouteLoaderArgs, type ThemeSettingsResponse, type WeaverseArticle, type WeaverseBlog, WeaverseClient, type WeaverseClientArgs, type WeaverseCollection, WeaverseError, WeaverseHydrogen, WeaverseHydrogenItem, type WeaverseHydrogenParams, WeaverseHydrogenRoot, type WeaverseI18n, type WeaverseInternal, type WeaverseLoaderData, type WeaverseLoaderRequestInfo, type WeaverseMetaObject, type WeaverseProduct, type WeaverseProjectConfigs, type WeaverseStudioQueries, type WithCacheFetchResponse, defaultComponents, generateDataFromSchema, getPreviewData, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, hasError, isFetchProjectPayload, isThemeSettingsResponse, isValidHydrogenSchema, isWithCacheFetchResponse, registerComponent, useThemeSettings, withWeaverse };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SelectedOptionInput } from '@shopify/hydrogen/storefront-api-types';
|
|
2
|
-
import { EventEmitter,
|
|
2
|
+
import { EventEmitter, Weaverse, PlatformTypeEnum, WeaverseItemStore, ElementData, WeaverseElement, WeaverseProjectDataType, WeaverseCoreParams, WeaverseResourcePickerData } from '@weaverse/react';
|
|
3
3
|
export { PositionInputValue, WeaverseImage, WeaverseVideo, isBrowser, isIframe, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
|
|
4
4
|
import { PageType, InspectorGroup, SchemaType, ComponentPresets, SchemaValidationResult } from '@weaverse/schema';
|
|
5
5
|
export * from '@weaverse/schema';
|
|
@@ -7,7 +7,7 @@ export { BasicInput, HeadingInput, InputType, InspectorGroup, PageType, SchemaVa
|
|
|
7
7
|
import { createWithCache, I18nBase, HydrogenContext, HydrogenEnv } from '@shopify/hydrogen';
|
|
8
8
|
import { LoaderFunctionArgs, AppLoadContext } from '@shopify/remix-oxygen';
|
|
9
9
|
import * as React$1 from 'react';
|
|
10
|
-
import {
|
|
10
|
+
import { ComponentType, JSX, ForwardRefExoticComponent } from 'react';
|
|
11
11
|
import { NavigateFunction } from 'react-router';
|
|
12
12
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
13
13
|
|
|
@@ -26,8 +26,42 @@ declare class ThemeSettingsStore extends EventEmitter {
|
|
|
26
26
|
getServerSnapshot: () => HydrogenThemeSettings;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
declare class WeaverseHydrogenItem extends WeaverseItemStore {
|
|
30
|
+
weaverse: WeaverseHydrogen;
|
|
31
|
+
constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen);
|
|
32
|
+
get Element(): HydrogenElement;
|
|
33
|
+
}
|
|
34
|
+
declare class WeaverseHydrogen extends Weaverse {
|
|
35
|
+
platformType: PlatformTypeEnum;
|
|
36
|
+
pageId: string;
|
|
37
|
+
internal: Partial<WeaverseInternal>;
|
|
38
|
+
requestInfo: WeaverseLoaderRequestInfo;
|
|
39
|
+
projectId: string;
|
|
40
|
+
weaverseHost: string;
|
|
41
|
+
weaverseApiBase: string;
|
|
42
|
+
weaverseApiKey: string;
|
|
43
|
+
weaverseVersion: string;
|
|
44
|
+
isDesignMode: boolean;
|
|
45
|
+
isPreviewMode: boolean;
|
|
46
|
+
sectionType: string;
|
|
47
|
+
ItemConstructor: typeof WeaverseHydrogenItem;
|
|
48
|
+
data: HydrogenPageData;
|
|
49
|
+
static itemInstances: Map<string, WeaverseHydrogenItem>;
|
|
50
|
+
static elementRegistry: Map<string, HydrogenElement>;
|
|
51
|
+
constructor(params: WeaverseHydrogenParams);
|
|
52
|
+
}
|
|
53
|
+
declare function registerComponent(element: HydrogenElement): void;
|
|
54
|
+
declare let WeaverseHydrogenRoot: React$1.MemoExoticComponent<({ components, errorComponent: ErrorComponent, }: {
|
|
55
|
+
components: HydrogenComponent[];
|
|
56
|
+
errorComponent?: React.FC<{
|
|
57
|
+
error: any;
|
|
58
|
+
}>;
|
|
59
|
+
}) => react_jsx_runtime.JSX.Element>;
|
|
60
|
+
declare function withWeaverse(Component: ComponentType<any>): (props: JSX.IntrinsicAttributes) => react_jsx_runtime.JSX.Element;
|
|
61
|
+
declare function useThemeSettings<T = HydrogenThemeSettings>(): T;
|
|
62
|
+
|
|
29
63
|
declare class WeaverseClient {
|
|
30
|
-
API:
|
|
64
|
+
API: "v1";
|
|
31
65
|
basePageConfigs: Omit<WeaverseProjectConfigs, 'requestInfo'>;
|
|
32
66
|
basePageRequestBody: Omit<FetchProjectRequestBody, 'url'>;
|
|
33
67
|
configs: WeaverseProjectConfigs;
|
|
@@ -40,11 +74,12 @@ declare class WeaverseClient {
|
|
|
40
74
|
cache: WeaverseClientArgs['cache'];
|
|
41
75
|
waitUntil: WeaverseClientArgs['waitUntil'];
|
|
42
76
|
constructor(args: WeaverseClientArgs);
|
|
43
|
-
private directFetch;
|
|
44
|
-
|
|
77
|
+
private readonly directFetch;
|
|
78
|
+
private getApiUrl;
|
|
79
|
+
fetchWithCache: <T = unknown>(url: string, options?: RequestInit & {
|
|
45
80
|
strategy?: AllCacheOptions;
|
|
46
81
|
}) => Promise<T>;
|
|
47
|
-
loadThemeSettings: (strategy?: AllCacheOptions) => Promise<
|
|
82
|
+
loadThemeSettings: (strategy?: AllCacheOptions) => Promise<ThemeSettingsResponse>;
|
|
48
83
|
generateFallbackPage: (message: string) => HydrogenPageData;
|
|
49
84
|
loadPage: (params?: {
|
|
50
85
|
type?: PageType;
|
|
@@ -55,14 +90,14 @@ declare class WeaverseClient {
|
|
|
55
90
|
execComponentLoader: (item: HydrogenComponentData) => Promise<HydrogenComponentData>;
|
|
56
91
|
}
|
|
57
92
|
|
|
58
|
-
|
|
59
|
-
mode?: string;
|
|
93
|
+
type AllCacheOptions = {
|
|
94
|
+
mode?: 'must-revalidate' | 'no-cache' | 'no-store' | 'private' | 'public' | string;
|
|
60
95
|
maxAge?: number;
|
|
61
96
|
staleWhileRevalidate?: number;
|
|
62
97
|
sMaxAge?: number;
|
|
63
98
|
staleIfError?: number;
|
|
64
|
-
}
|
|
65
|
-
type ComponentLoaderArgs<T = any,
|
|
99
|
+
};
|
|
100
|
+
type ComponentLoaderArgs<T = any, _E = any> = {
|
|
66
101
|
data: T;
|
|
67
102
|
weaverse: WeaverseClient;
|
|
68
103
|
};
|
|
@@ -120,25 +155,33 @@ type WeaverseInternal = {
|
|
|
120
155
|
* Optimized: Use direct type alias to maintain consistency
|
|
121
156
|
*/
|
|
122
157
|
type HydrogenComponentPresets = ComponentPresets;
|
|
123
|
-
|
|
158
|
+
type HydrogenElement = {
|
|
124
159
|
Component: ForwardRefExoticComponent<HydrogenComponentProps> | ((props: HydrogenComponentProps) => React$1.JSX.Element);
|
|
125
160
|
type: string;
|
|
126
161
|
schema?: HydrogenComponentSchema;
|
|
127
162
|
/** Optional data loader function for server-side data fetching */
|
|
128
163
|
loader?: (args: ComponentLoaderArgs) => Promise<unknown>;
|
|
129
|
-
}
|
|
164
|
+
};
|
|
130
165
|
interface WeaverseHydrogenParams extends Omit<WeaverseCoreParams, 'ItemConstructor'> {
|
|
131
166
|
data: HydrogenPageData;
|
|
132
167
|
pageId: string;
|
|
133
168
|
internal: Partial<WeaverseInternal>;
|
|
134
169
|
requestInfo: WeaverseLoaderRequestInfo;
|
|
170
|
+
projectId: string;
|
|
171
|
+
weaverseHost: string;
|
|
172
|
+
weaverseApiBase: string;
|
|
173
|
+
weaverseApiKey: string;
|
|
174
|
+
weaverseVersion?: string;
|
|
175
|
+
isDesignMode?: boolean;
|
|
176
|
+
isPreviewMode?: boolean;
|
|
177
|
+
sectionType?: string;
|
|
135
178
|
}
|
|
136
|
-
|
|
179
|
+
type HydrogenComponent<T extends HydrogenComponentProps = any> = {
|
|
137
180
|
default: ForwardRefExoticComponent<T> | ((props: T) => React$1.JSX.Element);
|
|
138
181
|
schema: HydrogenComponentSchema;
|
|
139
182
|
/** Optional data loader function for server-side data fetching */
|
|
140
183
|
loader?: (args: ComponentLoaderArgs) => Promise<unknown>;
|
|
141
|
-
}
|
|
184
|
+
};
|
|
142
185
|
type WeaverseStudioQueries = {
|
|
143
186
|
weaverseProjectId: string;
|
|
144
187
|
weaverseApiKey: string;
|
|
@@ -155,6 +198,7 @@ type PublicEnv = {
|
|
|
155
198
|
type WeaverseProjectConfigs = {
|
|
156
199
|
projectId: string;
|
|
157
200
|
weaverseHost: string;
|
|
201
|
+
weaverseApiBase: string;
|
|
158
202
|
weaverseApiKey: string;
|
|
159
203
|
weaverseVersion?: string;
|
|
160
204
|
isDesignMode?: boolean;
|
|
@@ -168,14 +212,14 @@ type HydrogenPageAssignment = {
|
|
|
168
212
|
handle: string;
|
|
169
213
|
locale: string;
|
|
170
214
|
};
|
|
171
|
-
|
|
215
|
+
type WeaverseLoaderData = {
|
|
172
216
|
configs: Omit<WeaverseProjectConfigs, 'publicEnv'> & {
|
|
173
217
|
requestInfo: WeaverseLoaderRequestInfo;
|
|
174
218
|
};
|
|
175
219
|
page: HydrogenPageData;
|
|
176
220
|
project: HydrogenProjectType;
|
|
177
221
|
pageAssignment: HydrogenPageAssignment;
|
|
178
|
-
}
|
|
222
|
+
};
|
|
179
223
|
interface HydrogenPageData extends WeaverseProjectDataType {
|
|
180
224
|
id: string;
|
|
181
225
|
name: string;
|
|
@@ -188,7 +232,7 @@ type WeaverseI18n = I18nBase & {
|
|
|
188
232
|
pathPrefix?: string;
|
|
189
233
|
[key: string]: any;
|
|
190
234
|
};
|
|
191
|
-
|
|
235
|
+
type HydrogenThemeSchema = {
|
|
192
236
|
info: {
|
|
193
237
|
name: string;
|
|
194
238
|
version: string;
|
|
@@ -205,7 +249,7 @@ interface HydrogenThemeSchema {
|
|
|
205
249
|
defaultLocale: WeaverseI18n;
|
|
206
250
|
shopLocales: WeaverseI18n[];
|
|
207
251
|
};
|
|
208
|
-
}
|
|
252
|
+
};
|
|
209
253
|
type FetchProjectRequestBody = {
|
|
210
254
|
projectId: string;
|
|
211
255
|
url: string;
|
|
@@ -218,10 +262,11 @@ type FetchProjectRequestBody = {
|
|
|
218
262
|
isDesignMode?: boolean;
|
|
219
263
|
};
|
|
220
264
|
type FetchProjectPayload = {
|
|
221
|
-
page
|
|
222
|
-
project
|
|
223
|
-
pageAssignment
|
|
265
|
+
page?: HydrogenPageData;
|
|
266
|
+
project?: HydrogenProjectType;
|
|
267
|
+
pageAssignment?: HydrogenPageAssignment;
|
|
224
268
|
error?: string;
|
|
269
|
+
[key: string]: any;
|
|
225
270
|
};
|
|
226
271
|
type WeaverseClientArgs = HydrogenContext & {
|
|
227
272
|
components: HydrogenComponent[];
|
|
@@ -234,6 +279,38 @@ type WeaverseCollection = WeaverseResourcePickerData;
|
|
|
234
279
|
type WeaverseBlog = WeaverseResourcePickerData;
|
|
235
280
|
type WeaverseArticle = WeaverseResourcePickerData;
|
|
236
281
|
type WeaverseMetaObject = WeaverseResourcePickerData;
|
|
282
|
+
/**
|
|
283
|
+
* Response types for improved type safety
|
|
284
|
+
*/
|
|
285
|
+
type WithCacheFetchResponse<T> = {
|
|
286
|
+
data: T;
|
|
287
|
+
response: Response;
|
|
288
|
+
};
|
|
289
|
+
type ThemeSettingsResponse = {
|
|
290
|
+
theme?: HydrogenThemeSettings;
|
|
291
|
+
schema?: HydrogenThemeSchema;
|
|
292
|
+
publicEnv?: PublicEnv;
|
|
293
|
+
};
|
|
294
|
+
type DirectFetchResponse<T = unknown> = {
|
|
295
|
+
data?: T;
|
|
296
|
+
error?: string;
|
|
297
|
+
};
|
|
298
|
+
type CacheResponseValidator<T = unknown> = (response: WithCacheFetchResponse<T> | T) => boolean;
|
|
299
|
+
declare class WeaverseError extends Error {
|
|
300
|
+
readonly code: string;
|
|
301
|
+
readonly statusCode?: number;
|
|
302
|
+
readonly context?: Record<string, unknown>;
|
|
303
|
+
constructor(message: string, code?: string, statusCode?: number, context?: Record<string, unknown>);
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Type guards for response validation
|
|
307
|
+
*/
|
|
308
|
+
declare function isWithCacheFetchResponse<T>(response: unknown): response is WithCacheFetchResponse<T>;
|
|
309
|
+
declare function isFetchProjectPayload(payload: unknown): payload is FetchProjectPayload;
|
|
310
|
+
declare function hasError(response: unknown): response is {
|
|
311
|
+
error: string;
|
|
312
|
+
};
|
|
313
|
+
declare function isThemeSettingsResponse(data: unknown): data is ThemeSettingsResponse;
|
|
237
314
|
/**
|
|
238
315
|
* Enhanced type utilities for better development experience
|
|
239
316
|
*/
|
|
@@ -266,11 +343,6 @@ declare global {
|
|
|
266
343
|
__weaverses: Record<string, WeaverseHydrogen>;
|
|
267
344
|
__weaverseThemeSettingsStore: ThemeSettingsStore;
|
|
268
345
|
}
|
|
269
|
-
interface Env {
|
|
270
|
-
WEAVERSE_PROJECT_ID: string;
|
|
271
|
-
WEAVERSE_HOST: string;
|
|
272
|
-
WEAVERSE_API_KEY: string;
|
|
273
|
-
}
|
|
274
346
|
}
|
|
275
347
|
declare module '@shopify/remix-oxygen' {
|
|
276
348
|
interface AppLoadContext {
|
|
@@ -281,7 +353,10 @@ declare module '@shopify/hydrogen' {
|
|
|
281
353
|
interface HydrogenEnv {
|
|
282
354
|
WEAVERSE_PROJECT_ID: string;
|
|
283
355
|
WEAVERSE_HOST?: string;
|
|
356
|
+
WEAVERSE_API_BASE?: string;
|
|
284
357
|
WEAVERSE_API_KEY: string;
|
|
358
|
+
PUBLIC_STORE_DOMAIN: string;
|
|
359
|
+
PUBLIC_STOREFRONT_API_TOKEN: string;
|
|
285
360
|
PUBLIC_GOOGLE_GTM_ID: string;
|
|
286
361
|
JUDGEME_PRIVATE_API_TOKEN: string;
|
|
287
362
|
CUSTOM_COLLECTION_BANNER_METAFIELD: string;
|
|
@@ -300,32 +375,6 @@ declare function getWeaverseConfigs(request: Request, env: HydrogenEnv): Weavers
|
|
|
300
375
|
declare function generateDataFromSchema(schema: HydrogenComponentSchema | HydrogenThemeSchema): Record<string, any>;
|
|
301
376
|
declare function getPreviewData(type: string, components: HydrogenComponent[], weaverseHost: string): WeaverseLoaderData;
|
|
302
377
|
|
|
303
|
-
declare class WeaverseHydrogenItem extends WeaverseItemStore {
|
|
304
|
-
weaverse: WeaverseHydrogen;
|
|
305
|
-
constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen);
|
|
306
|
-
get Element(): HydrogenElement;
|
|
307
|
-
}
|
|
308
|
-
declare class WeaverseHydrogen extends Weaverse {
|
|
309
|
-
platformType: PlatformTypeEnum;
|
|
310
|
-
pageId: string;
|
|
311
|
-
internal: Partial<WeaverseInternal>;
|
|
312
|
-
requestInfo: WeaverseLoaderRequestInfo;
|
|
313
|
-
ItemConstructor: typeof WeaverseHydrogenItem;
|
|
314
|
-
data: HydrogenPageData;
|
|
315
|
-
static itemInstances: Map<string, WeaverseHydrogenItem>;
|
|
316
|
-
static elementRegistry: Map<string, HydrogenElement>;
|
|
317
|
-
constructor(params: WeaverseHydrogenParams);
|
|
318
|
-
}
|
|
319
|
-
declare function registerComponent(element: HydrogenElement): void;
|
|
320
|
-
declare let WeaverseHydrogenRoot: React$1.MemoExoticComponent<({ components, errorComponent: ErrorComponent, }: {
|
|
321
|
-
components: HydrogenComponent[];
|
|
322
|
-
errorComponent?: React.FC<{
|
|
323
|
-
error: any;
|
|
324
|
-
}>;
|
|
325
|
-
}) => react_jsx_runtime.JSX.Element>;
|
|
326
|
-
declare function withWeaverse(Component: ComponentType<any>): (props: JSX.IntrinsicAttributes) => react_jsx_runtime.JSX.Element;
|
|
327
|
-
declare function useThemeSettings<T = HydrogenThemeSettings>(): T;
|
|
328
|
-
|
|
329
378
|
declare function getSelectedProductOptions(request: Request): SelectedOptionInput[];
|
|
330
379
|
declare const IMAGES_PLACEHOLDERS: {
|
|
331
380
|
logo_white: string;
|
|
@@ -359,4 +408,4 @@ declare const IMAGES_PLACEHOLDERS: {
|
|
|
359
408
|
product_18: string;
|
|
360
409
|
};
|
|
361
410
|
|
|
362
|
-
export { type AllCacheOptions, type ComponentLoaderArgs, type CreateHydrogenSchemaOptions, type FetchProjectPayload, type FetchProjectRequestBody, type HydrogenComponent, type HydrogenComponentData, type HydrogenComponentPresets, type HydrogenComponentProps, type HydrogenComponentSchema, type HydrogenElement, type HydrogenPageAssignment, type HydrogenPageData, type HydrogenProjectType, type HydrogenSchemaValidationResult, type HydrogenThemeSchema, type HydrogenThemeSettings, IMAGES_PLACEHOLDERS, type PublicEnv, type RouteLoaderArgs, type WeaverseArticle, type WeaverseBlog, WeaverseClient, type WeaverseClientArgs, type WeaverseCollection, WeaverseHydrogen, WeaverseHydrogenItem, type WeaverseHydrogenParams, WeaverseHydrogenRoot, type WeaverseI18n, type WeaverseInternal, type WeaverseLoaderData, type WeaverseLoaderRequestInfo, type WeaverseMetaObject, type WeaverseProduct, type WeaverseProjectConfigs, type WeaverseStudioQueries, defaultComponents, generateDataFromSchema, getPreviewData, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, isValidHydrogenSchema, registerComponent, useThemeSettings, withWeaverse };
|
|
411
|
+
export { type AllCacheOptions, type CacheResponseValidator, type ComponentLoaderArgs, type CreateHydrogenSchemaOptions, type DirectFetchResponse, type FetchProjectPayload, type FetchProjectRequestBody, type HydrogenComponent, type HydrogenComponentData, type HydrogenComponentPresets, type HydrogenComponentProps, type HydrogenComponentSchema, type HydrogenElement, type HydrogenPageAssignment, type HydrogenPageData, type HydrogenProjectType, type HydrogenSchemaValidationResult, type HydrogenThemeSchema, type HydrogenThemeSettings, IMAGES_PLACEHOLDERS, type PublicEnv, type RouteLoaderArgs, type ThemeSettingsResponse, type WeaverseArticle, type WeaverseBlog, WeaverseClient, type WeaverseClientArgs, type WeaverseCollection, WeaverseError, WeaverseHydrogen, WeaverseHydrogenItem, type WeaverseHydrogenParams, WeaverseHydrogenRoot, type WeaverseI18n, type WeaverseInternal, type WeaverseLoaderData, type WeaverseLoaderRequestInfo, type WeaverseMetaObject, type WeaverseProduct, type WeaverseProjectConfigs, type WeaverseStudioQueries, type WithCacheFetchResponse, defaultComponents, generateDataFromSchema, getPreviewData, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, hasError, isFetchProjectPayload, isThemeSettingsResponse, isValidHydrogenSchema, isWithCacheFetchResponse, registerComponent, useThemeSettings, withWeaverse };
|