@weaverse/hydrogen 4.2.1 → 4.2.5

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 CHANGED
@@ -1,41 +1,32 @@
1
+ import { SelectedOptionInput } from '@shopify/hydrogen/storefront-api-types';
1
2
  import { EventEmitter, BasicInput as BasicInput$1, ElementData, WeaverseElement, ElementSchema, WeaverseProjectDataType, WeaverseCoreParams, WeaverseResourcePickerData, Weaverse, PlatformTypeEnum, WeaverseItemStore } from '@weaverse/react';
2
3
  export { InputType, PositionInputValue, WeaverseImage, WeaverseVideo, isBrowser, isIframe, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
3
4
  import { NavigateFunction } from '@remix-run/react';
4
- import { createWithCache, I18nBase, HydrogenContext, HydrogenEnv } from '@shopify/hydrogen';
5
- import { CurrencyCode, SelectedOptionInput } from '@shopify/hydrogen/storefront-api-types';
5
+ import { createWithCache, I18nBase, HydrogenContext } from '@shopify/hydrogen';
6
6
  import { LoaderFunctionArgs, AppLoadContext } from '@shopify/remix-oxygen';
7
7
  import * as react from 'react';
8
8
  import { ForwardRefExoticComponent, ComponentType, JSX } from 'react';
9
9
  import * as react_jsx_runtime from 'react/jsx-runtime';
10
10
 
11
- declare let STORE_PAGES: {
12
- INDEX: string;
13
- PRODUCT: string;
14
- ALL_PRODUCTS: string;
15
- COLLECTION: string;
16
- COLLECTION_LIST: string;
17
- PAGE: string;
18
- BLOG: string;
19
- ARTICLE: string;
20
- CUSTOM: string;
11
+ type WeaverseThemeData = {
12
+ theme: HydrogenThemeSettings;
13
+ schema?: HydrogenThemeSchema;
14
+ publicEnv?: PublicEnv;
21
15
  };
22
-
23
16
  declare class ThemeSettingsStore extends EventEmitter {
24
17
  settings: HydrogenThemeSettings;
25
- countries?: Localizations;
26
18
  schema?: HydrogenThemeSchema;
27
19
  publicEnv?: PublicEnv;
28
- constructor(data: RootRouteData['weaverseTheme']);
20
+ constructor(data: WeaverseThemeData);
29
21
  updateThemeSettings: (newSettings: HydrogenThemeSettings) => void;
30
22
  getSnapshot: () => HydrogenThemeSettings;
31
23
  getServerSnapshot: () => HydrogenThemeSettings;
32
24
  }
33
- declare function useThemeSettings<T = HydrogenThemeSettings>(): T;
34
25
 
35
26
  declare class WeaverseClient {
36
27
  API: string;
37
28
  basePageConfigs: Omit<WeaverseProjectConfigs, 'requestInfo'>;
38
- basePageRequestBody: Omit<FetchProjectRequestBody, 'url' | 'countries'>;
29
+ basePageRequestBody: Omit<FetchProjectRequestBody, 'url'>;
39
30
  configs: WeaverseProjectConfigs;
40
31
  withCache: ReturnType<typeof createWithCache>;
41
32
  request: WeaverseClientArgs['request'];
@@ -45,23 +36,22 @@ declare class WeaverseClient {
45
36
  env: WeaverseClientArgs['env'];
46
37
  cache: WeaverseClientArgs['cache'];
47
38
  waitUntil: WeaverseClientArgs['waitUntil'];
48
- countries?: WeaverseClientArgs['countries'];
49
39
  constructor(args: WeaverseClientArgs);
50
40
  private directFetch;
51
- fetchWithCache<T extends object>(url: string, options?: FetchWithCacheOptions): Promise<T>;
41
+ fetchWithCache<T extends object>(url: string, options?: RequestInit & {
42
+ strategy?: AllCacheOptions;
43
+ }): Promise<T>;
52
44
  loadThemeSettings: (strategy?: AllCacheOptions) => Promise<any>;
53
45
  generateFallbackPage: (message: string) => HydrogenPageData;
54
- loadPage: (params?: LoadPageParams) => Promise<WeaverseLoaderData | null>;
46
+ loadPage: (params?: {
47
+ type?: PageType;
48
+ locale?: string;
49
+ handle?: string;
50
+ strategy?: AllCacheOptions;
51
+ }) => Promise<WeaverseLoaderData | null>;
55
52
  execComponentLoader: (item: HydrogenComponentData) => Promise<HydrogenComponentData>;
56
53
  }
57
54
 
58
- type Locale = I18nBase & {
59
- label: string;
60
- currency: CurrencyCode;
61
- };
62
- type Localizations = {
63
- [key: string]: Locale;
64
- };
65
55
  interface AllCacheOptions {
66
56
  mode?: string;
67
57
  maxAge?: number;
@@ -89,7 +79,6 @@ interface HydrogenComponentData extends ElementData {
89
79
  updatedAt?: string;
90
80
  deletedAt?: string;
91
81
  }
92
- type HydrogenToolbarAction = 'general-settings' | 'global-section' | 'move-up' | 'move-down' | 'toggle-visibility' | 'duplicate' | 'delete';
93
82
  interface HydrogenComponentSchema extends ElementSchema {
94
83
  childTypes?: string[];
95
84
  inspector: InspectorGroup[];
@@ -99,10 +88,10 @@ interface HydrogenComponentSchema extends ElementSchema {
99
88
  pages?: ('*' | PageType)[];
100
89
  groups?: ('*' | 'header' | 'footer' | 'body')[];
101
90
  };
102
- toolbar?: (HydrogenToolbarAction | HydrogenToolbarAction[])[];
103
91
  }
104
- type BasicInput = BasicInput$1 & {
92
+ type BasicInput = Omit<BasicInput$1, 'condition'> & {
105
93
  shouldRevalidate?: boolean;
94
+ condition?: string | ((data: ElementData, weaverse: WeaverseHydrogen) => boolean);
106
95
  };
107
96
  type HeadingInputType = 'heading';
108
97
  type HeadingInput = {
@@ -119,16 +108,13 @@ interface HydrogenComponentProps<L = any> extends WeaverseElement {
119
108
  loaderData?: L;
120
109
  children?: React.JSX.Element[];
121
110
  }
122
- type I18nLocale = Locale & {
123
- pathPrefix: string;
124
- };
125
111
  type WeaverseLoaderRequestInfo = {
126
112
  search: string;
127
113
  pathname: string;
128
114
  queries: {
129
115
  [key: string]: string | boolean;
130
116
  };
131
- i18n: I18nBase;
117
+ i18n: WeaverseI18n;
132
118
  };
133
119
  type HydrogenThemeSettings = {
134
120
  [key: string]: any;
@@ -197,11 +183,10 @@ type HydrogenPageAssignment = {
197
183
  handle: string;
198
184
  locale: string;
199
185
  };
200
- type HydrogenPageConfigs = Omit<WeaverseProjectConfigs, 'publicEnv'> & {
201
- requestInfo: WeaverseLoaderRequestInfo;
202
- };
203
186
  interface WeaverseLoaderData {
204
- configs: HydrogenPageConfigs;
187
+ configs: Omit<WeaverseProjectConfigs, 'publicEnv'> & {
188
+ requestInfo: WeaverseLoaderRequestInfo;
189
+ };
205
190
  page: HydrogenPageData;
206
191
  project: HydrogenProjectType;
207
192
  pageAssignment: HydrogenPageAssignment;
@@ -213,45 +198,37 @@ interface HydrogenPageData extends WeaverseProjectDataType {
213
198
  __cacheId?: string;
214
199
  [key: string]: any;
215
200
  }
216
- interface WeaverseHydrogenRootProps {
217
- components: HydrogenComponent[];
218
- errorComponent?: React.FC<{
219
- error: {
220
- message: string;
221
- stack?: string;
222
- };
223
- }>;
224
- }
225
- type HydrogenThemeInfo = {
226
- name: string;
227
- version: string;
228
- author: string;
229
- authorProfilePhoto: string;
230
- documentationUrl: string;
231
- supportUrl: string;
201
+ type WeaverseI18n = I18nBase & {
202
+ label?: string;
203
+ pathPrefix?: string;
204
+ [key: string]: any;
232
205
  };
233
206
  interface HydrogenThemeSchema {
234
- info: HydrogenThemeInfo;
207
+ info: {
208
+ name: string;
209
+ version: string;
210
+ author: string;
211
+ authorProfilePhoto: string;
212
+ documentationUrl: string;
213
+ supportUrl: string;
214
+ };
235
215
  inspector: InspectorGroup[];
236
- i18n?: Array<I18nBase & {
237
- label?: string;
238
- }>;
239
- defaultLocale?: string;
216
+ i18n?: {
217
+ urlStructure: 'url-path' | 'subdomain' | 'top-level-domain';
218
+ defaultLocale: WeaverseI18n;
219
+ shopLocales: WeaverseI18n[];
220
+ };
240
221
  }
241
- type PageType = keyof typeof STORE_PAGES;
242
- type PageAssignmentParams = {
243
- type?: PageType;
244
- locale?: string;
245
- handle?: string;
246
- };
247
- type LoadPageParams = PageAssignmentParams & {
248
- strategy?: AllCacheOptions;
249
- };
222
+ type PageType = 'INDEX' | 'PRODUCT' | 'ALL_PRODUCTS' | 'COLLECTION' | 'COLLECTION_LIST' | 'PAGE' | 'BLOG' | 'ARTICLE' | 'CUSTOM';
250
223
  type FetchProjectRequestBody = {
251
224
  projectId: string;
252
225
  url: string;
253
- i18n?: I18nBase;
254
- params?: PageAssignmentParams;
226
+ i18n?: WeaverseI18n;
227
+ params?: {
228
+ type?: PageType;
229
+ locale?: string;
230
+ handle?: string;
231
+ };
255
232
  isDesignMode?: boolean;
256
233
  };
257
234
  type FetchProjectPayload = {
@@ -262,23 +239,10 @@ type FetchProjectPayload = {
262
239
  };
263
240
  type WeaverseClientArgs = HydrogenContext & {
264
241
  components: HydrogenComponent[];
265
- countries?: Localizations;
266
242
  themeSchema: HydrogenThemeSchema;
267
243
  request: Request;
268
244
  cache: Cache;
269
245
  };
270
- type FetchWithCacheOptions = RequestInit & {
271
- strategy?: AllCacheOptions;
272
- };
273
- type RootRouteData = {
274
- weaverseTheme?: {
275
- theme: HydrogenThemeSettings;
276
- countries?: Localizations;
277
- schema?: HydrogenThemeSchema;
278
- publicEnv?: PublicEnv;
279
- };
280
- [key: string]: any;
281
- };
282
246
  type WeaverseProduct = WeaverseResourcePickerData;
283
247
  type WeaverseCollection = WeaverseResourcePickerData;
284
248
  type WeaverseBlog = WeaverseResourcePickerData;
@@ -309,60 +273,34 @@ declare module '@shopify/hydrogen' {
309
273
  }
310
274
  }
311
275
 
312
- declare let WeaverseHydrogenRoot: react.MemoExoticComponent<({ errorComponent: ErrorComponent, components, }: WeaverseHydrogenRootProps) => react_jsx_runtime.JSX.Element>;
276
+ declare class WeaverseHydrogenItem extends WeaverseItemStore {
277
+ weaverse: WeaverseHydrogen;
278
+ constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen);
279
+ get Element(): HydrogenElement;
280
+ get _schemaData(): Record<string, any>;
281
+ }
282
+ declare class WeaverseHydrogen extends Weaverse {
283
+ platformType: PlatformTypeEnum;
284
+ pageId: string;
285
+ internal: Partial<WeaverseInternal>;
286
+ requestInfo: WeaverseLoaderRequestInfo;
287
+ ItemConstructor: typeof WeaverseHydrogenItem;
288
+ data: HydrogenPageData;
289
+ static itemInstances: Map<string, WeaverseHydrogenItem>;
290
+ static elementRegistry: Map<string, HydrogenElement>;
291
+ constructor(params: WeaverseHydrogenParams);
292
+ }
293
+ declare let WeaverseHydrogenRoot: react.MemoExoticComponent<({ components, errorComponent: ErrorComponent, }: {
294
+ components: HydrogenComponent[];
295
+ errorComponent?: React.FC<{
296
+ error: any;
297
+ }>;
298
+ }) => react_jsx_runtime.JSX.Element>;
313
299
  declare function withWeaverse(Component: ComponentType<any>): (props: JSX.IntrinsicAttributes) => react_jsx_runtime.JSX.Element;
314
-
315
- declare function getRequestQueries<T = Record<string, string | boolean>>(request: Request): T;
316
- declare function getWeaverseConfigs(request: Request, env: HydrogenEnv): WeaverseProjectConfigs;
317
- declare function generateDataFromSchema({ inspector, }: HydrogenComponentSchema | HydrogenThemeSchema): Record<string, any>;
318
- /**
319
- * Resize an image to the specified dimensions.
320
- *
321
- * @param imageURL {string} URL of the image
322
- * @param size {string} Shopify size attribute
323
- * @returns {string} URL with size attribute
324
- *
325
- * @example
326
- * resizeImage('https://cdn.shopify.com/image.jpg', '100x')
327
- * resizeImage('https://cdn.shopify.com/image.jpg', '100x100')
328
- */
329
- declare function resizeShopifyImage(imageURL: string, size: string): string;
330
- declare function recursivelyAddDataItem(type: string, components: HydrogenComponent<any>[], items: any[], initData?: object): `${string}-${string}-${string}-${string}-${string}`;
331
- declare function getPreviewData(type: string, components: any, weaverseHost: string): {
332
- page: {
333
- id: string;
334
- name: string;
335
- rootId: string;
336
- items: any[];
337
- };
338
- project: {
339
- id: string;
340
- weaverseShopId: string;
341
- name: string;
342
- };
343
- configs: {
344
- projectId: string;
345
- weaverseHost: string;
346
- isDesignMode: boolean;
347
- isPreviewMode: boolean;
348
- requestInfo: {
349
- i18n: {
350
- label: string;
351
- language: string;
352
- country: string;
353
- currency: string;
354
- pathPrefix: string;
355
- };
356
- queries: {};
357
- pathname: string;
358
- search: string;
359
- };
360
- };
361
- };
300
+ declare function useThemeSettings<T = HydrogenThemeSettings>(): T;
362
301
 
363
302
  declare function getSelectedProductOptions(request: Request): SelectedOptionInput[];
364
-
365
- declare let IMAGES_PLACEHOLDERS: {
303
+ declare const IMAGES_PLACEHOLDERS: {
366
304
  logo_white: string;
367
305
  logo_black: string;
368
306
  image: string;
@@ -394,22 +332,4 @@ declare let IMAGES_PLACEHOLDERS: {
394
332
  product_18: string;
395
333
  };
396
334
 
397
- declare class WeaverseHydrogen extends Weaverse {
398
- platformType: PlatformTypeEnum;
399
- pageId: string;
400
- internal: Partial<WeaverseInternal>;
401
- requestInfo: WeaverseLoaderRequestInfo;
402
- ItemConstructor: typeof WeaverseHydrogenItem;
403
- data: HydrogenPageData;
404
- static itemInstances: Map<string, WeaverseHydrogenItem>;
405
- static elementRegistry: Map<string, HydrogenElement>;
406
- constructor(params: WeaverseHydrogenParams);
407
- }
408
- declare class WeaverseHydrogenItem extends WeaverseItemStore {
409
- weaverse: WeaverseHydrogen;
410
- constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen);
411
- get Element(): HydrogenElement;
412
- get _schemaData(): Record<string, any>;
413
- }
414
-
415
- export { type AllCacheOptions, type BasicInput, type ComponentLoaderArgs, type FetchProjectPayload, type FetchProjectRequestBody, type FetchWithCacheOptions, type HeadingInput, type HeadingInputType, type HydrogenComponent, type HydrogenComponentData, type HydrogenComponentPresets, type HydrogenComponentProps, type HydrogenComponentSchema, type HydrogenElement, type HydrogenPageAssignment, type HydrogenPageConfigs, type HydrogenPageData, type HydrogenProjectType, type HydrogenThemeInfo, type HydrogenThemeSchema, type HydrogenThemeSettings, type HydrogenToolbarAction, type I18nLocale, IMAGES_PLACEHOLDERS, type InspectorGroup, type LoadPageParams, type Locale, type Localizations, type PageAssignmentParams, type PageType, type PublicEnv, type RootRouteData, type RouteLoaderArgs, type WeaverseArticle, type WeaverseBlog, WeaverseClient, type WeaverseClientArgs, type WeaverseCollection, WeaverseHydrogen, WeaverseHydrogenItem, type WeaverseHydrogenParams, WeaverseHydrogenRoot, type WeaverseHydrogenRootProps, type WeaverseInternal, type WeaverseLoaderData, type WeaverseLoaderRequestInfo, type WeaverseMetaObject, type WeaverseProduct, type WeaverseProjectConfigs, type WeaverseStudioQueries, generateDataFromSchema, getPreviewData, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, recursivelyAddDataItem, resizeShopifyImage, useThemeSettings, withWeaverse };
335
+ export { type AllCacheOptions, type BasicInput, type ComponentLoaderArgs, type FetchProjectPayload, type FetchProjectRequestBody, type HeadingInput, type HeadingInputType, type HydrogenComponent, type HydrogenComponentData, type HydrogenComponentPresets, type HydrogenComponentProps, type HydrogenComponentSchema, type HydrogenElement, type HydrogenPageAssignment, type HydrogenPageData, type HydrogenProjectType, type HydrogenThemeSchema, type HydrogenThemeSettings, IMAGES_PLACEHOLDERS, type InspectorGroup, type PageType, 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, getSelectedProductOptions, useThemeSettings, withWeaverse };
package/dist/index.d.ts CHANGED
@@ -1,41 +1,32 @@
1
+ import { SelectedOptionInput } from '@shopify/hydrogen/storefront-api-types';
1
2
  import { EventEmitter, BasicInput as BasicInput$1, ElementData, WeaverseElement, ElementSchema, WeaverseProjectDataType, WeaverseCoreParams, WeaverseResourcePickerData, Weaverse, PlatformTypeEnum, WeaverseItemStore } from '@weaverse/react';
2
3
  export { InputType, PositionInputValue, WeaverseImage, WeaverseVideo, isBrowser, isIframe, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
3
4
  import { NavigateFunction } from '@remix-run/react';
4
- import { createWithCache, I18nBase, HydrogenContext, HydrogenEnv } from '@shopify/hydrogen';
5
- import { CurrencyCode, SelectedOptionInput } from '@shopify/hydrogen/storefront-api-types';
5
+ import { createWithCache, I18nBase, HydrogenContext } from '@shopify/hydrogen';
6
6
  import { LoaderFunctionArgs, AppLoadContext } from '@shopify/remix-oxygen';
7
7
  import * as react from 'react';
8
8
  import { ForwardRefExoticComponent, ComponentType, JSX } from 'react';
9
9
  import * as react_jsx_runtime from 'react/jsx-runtime';
10
10
 
11
- declare let STORE_PAGES: {
12
- INDEX: string;
13
- PRODUCT: string;
14
- ALL_PRODUCTS: string;
15
- COLLECTION: string;
16
- COLLECTION_LIST: string;
17
- PAGE: string;
18
- BLOG: string;
19
- ARTICLE: string;
20
- CUSTOM: string;
11
+ type WeaverseThemeData = {
12
+ theme: HydrogenThemeSettings;
13
+ schema?: HydrogenThemeSchema;
14
+ publicEnv?: PublicEnv;
21
15
  };
22
-
23
16
  declare class ThemeSettingsStore extends EventEmitter {
24
17
  settings: HydrogenThemeSettings;
25
- countries?: Localizations;
26
18
  schema?: HydrogenThemeSchema;
27
19
  publicEnv?: PublicEnv;
28
- constructor(data: RootRouteData['weaverseTheme']);
20
+ constructor(data: WeaverseThemeData);
29
21
  updateThemeSettings: (newSettings: HydrogenThemeSettings) => void;
30
22
  getSnapshot: () => HydrogenThemeSettings;
31
23
  getServerSnapshot: () => HydrogenThemeSettings;
32
24
  }
33
- declare function useThemeSettings<T = HydrogenThemeSettings>(): T;
34
25
 
35
26
  declare class WeaverseClient {
36
27
  API: string;
37
28
  basePageConfigs: Omit<WeaverseProjectConfigs, 'requestInfo'>;
38
- basePageRequestBody: Omit<FetchProjectRequestBody, 'url' | 'countries'>;
29
+ basePageRequestBody: Omit<FetchProjectRequestBody, 'url'>;
39
30
  configs: WeaverseProjectConfigs;
40
31
  withCache: ReturnType<typeof createWithCache>;
41
32
  request: WeaverseClientArgs['request'];
@@ -45,23 +36,22 @@ declare class WeaverseClient {
45
36
  env: WeaverseClientArgs['env'];
46
37
  cache: WeaverseClientArgs['cache'];
47
38
  waitUntil: WeaverseClientArgs['waitUntil'];
48
- countries?: WeaverseClientArgs['countries'];
49
39
  constructor(args: WeaverseClientArgs);
50
40
  private directFetch;
51
- fetchWithCache<T extends object>(url: string, options?: FetchWithCacheOptions): Promise<T>;
41
+ fetchWithCache<T extends object>(url: string, options?: RequestInit & {
42
+ strategy?: AllCacheOptions;
43
+ }): Promise<T>;
52
44
  loadThemeSettings: (strategy?: AllCacheOptions) => Promise<any>;
53
45
  generateFallbackPage: (message: string) => HydrogenPageData;
54
- loadPage: (params?: LoadPageParams) => Promise<WeaverseLoaderData | null>;
46
+ loadPage: (params?: {
47
+ type?: PageType;
48
+ locale?: string;
49
+ handle?: string;
50
+ strategy?: AllCacheOptions;
51
+ }) => Promise<WeaverseLoaderData | null>;
55
52
  execComponentLoader: (item: HydrogenComponentData) => Promise<HydrogenComponentData>;
56
53
  }
57
54
 
58
- type Locale = I18nBase & {
59
- label: string;
60
- currency: CurrencyCode;
61
- };
62
- type Localizations = {
63
- [key: string]: Locale;
64
- };
65
55
  interface AllCacheOptions {
66
56
  mode?: string;
67
57
  maxAge?: number;
@@ -89,7 +79,6 @@ interface HydrogenComponentData extends ElementData {
89
79
  updatedAt?: string;
90
80
  deletedAt?: string;
91
81
  }
92
- type HydrogenToolbarAction = 'general-settings' | 'global-section' | 'move-up' | 'move-down' | 'toggle-visibility' | 'duplicate' | 'delete';
93
82
  interface HydrogenComponentSchema extends ElementSchema {
94
83
  childTypes?: string[];
95
84
  inspector: InspectorGroup[];
@@ -99,10 +88,10 @@ interface HydrogenComponentSchema extends ElementSchema {
99
88
  pages?: ('*' | PageType)[];
100
89
  groups?: ('*' | 'header' | 'footer' | 'body')[];
101
90
  };
102
- toolbar?: (HydrogenToolbarAction | HydrogenToolbarAction[])[];
103
91
  }
104
- type BasicInput = BasicInput$1 & {
92
+ type BasicInput = Omit<BasicInput$1, 'condition'> & {
105
93
  shouldRevalidate?: boolean;
94
+ condition?: string | ((data: ElementData, weaverse: WeaverseHydrogen) => boolean);
106
95
  };
107
96
  type HeadingInputType = 'heading';
108
97
  type HeadingInput = {
@@ -119,16 +108,13 @@ interface HydrogenComponentProps<L = any> extends WeaverseElement {
119
108
  loaderData?: L;
120
109
  children?: React.JSX.Element[];
121
110
  }
122
- type I18nLocale = Locale & {
123
- pathPrefix: string;
124
- };
125
111
  type WeaverseLoaderRequestInfo = {
126
112
  search: string;
127
113
  pathname: string;
128
114
  queries: {
129
115
  [key: string]: string | boolean;
130
116
  };
131
- i18n: I18nBase;
117
+ i18n: WeaverseI18n;
132
118
  };
133
119
  type HydrogenThemeSettings = {
134
120
  [key: string]: any;
@@ -197,11 +183,10 @@ type HydrogenPageAssignment = {
197
183
  handle: string;
198
184
  locale: string;
199
185
  };
200
- type HydrogenPageConfigs = Omit<WeaverseProjectConfigs, 'publicEnv'> & {
201
- requestInfo: WeaverseLoaderRequestInfo;
202
- };
203
186
  interface WeaverseLoaderData {
204
- configs: HydrogenPageConfigs;
187
+ configs: Omit<WeaverseProjectConfigs, 'publicEnv'> & {
188
+ requestInfo: WeaverseLoaderRequestInfo;
189
+ };
205
190
  page: HydrogenPageData;
206
191
  project: HydrogenProjectType;
207
192
  pageAssignment: HydrogenPageAssignment;
@@ -213,45 +198,37 @@ interface HydrogenPageData extends WeaverseProjectDataType {
213
198
  __cacheId?: string;
214
199
  [key: string]: any;
215
200
  }
216
- interface WeaverseHydrogenRootProps {
217
- components: HydrogenComponent[];
218
- errorComponent?: React.FC<{
219
- error: {
220
- message: string;
221
- stack?: string;
222
- };
223
- }>;
224
- }
225
- type HydrogenThemeInfo = {
226
- name: string;
227
- version: string;
228
- author: string;
229
- authorProfilePhoto: string;
230
- documentationUrl: string;
231
- supportUrl: string;
201
+ type WeaverseI18n = I18nBase & {
202
+ label?: string;
203
+ pathPrefix?: string;
204
+ [key: string]: any;
232
205
  };
233
206
  interface HydrogenThemeSchema {
234
- info: HydrogenThemeInfo;
207
+ info: {
208
+ name: string;
209
+ version: string;
210
+ author: string;
211
+ authorProfilePhoto: string;
212
+ documentationUrl: string;
213
+ supportUrl: string;
214
+ };
235
215
  inspector: InspectorGroup[];
236
- i18n?: Array<I18nBase & {
237
- label?: string;
238
- }>;
239
- defaultLocale?: string;
216
+ i18n?: {
217
+ urlStructure: 'url-path' | 'subdomain' | 'top-level-domain';
218
+ defaultLocale: WeaverseI18n;
219
+ shopLocales: WeaverseI18n[];
220
+ };
240
221
  }
241
- type PageType = keyof typeof STORE_PAGES;
242
- type PageAssignmentParams = {
243
- type?: PageType;
244
- locale?: string;
245
- handle?: string;
246
- };
247
- type LoadPageParams = PageAssignmentParams & {
248
- strategy?: AllCacheOptions;
249
- };
222
+ type PageType = 'INDEX' | 'PRODUCT' | 'ALL_PRODUCTS' | 'COLLECTION' | 'COLLECTION_LIST' | 'PAGE' | 'BLOG' | 'ARTICLE' | 'CUSTOM';
250
223
  type FetchProjectRequestBody = {
251
224
  projectId: string;
252
225
  url: string;
253
- i18n?: I18nBase;
254
- params?: PageAssignmentParams;
226
+ i18n?: WeaverseI18n;
227
+ params?: {
228
+ type?: PageType;
229
+ locale?: string;
230
+ handle?: string;
231
+ };
255
232
  isDesignMode?: boolean;
256
233
  };
257
234
  type FetchProjectPayload = {
@@ -262,23 +239,10 @@ type FetchProjectPayload = {
262
239
  };
263
240
  type WeaverseClientArgs = HydrogenContext & {
264
241
  components: HydrogenComponent[];
265
- countries?: Localizations;
266
242
  themeSchema: HydrogenThemeSchema;
267
243
  request: Request;
268
244
  cache: Cache;
269
245
  };
270
- type FetchWithCacheOptions = RequestInit & {
271
- strategy?: AllCacheOptions;
272
- };
273
- type RootRouteData = {
274
- weaverseTheme?: {
275
- theme: HydrogenThemeSettings;
276
- countries?: Localizations;
277
- schema?: HydrogenThemeSchema;
278
- publicEnv?: PublicEnv;
279
- };
280
- [key: string]: any;
281
- };
282
246
  type WeaverseProduct = WeaverseResourcePickerData;
283
247
  type WeaverseCollection = WeaverseResourcePickerData;
284
248
  type WeaverseBlog = WeaverseResourcePickerData;
@@ -309,60 +273,34 @@ declare module '@shopify/hydrogen' {
309
273
  }
310
274
  }
311
275
 
312
- declare let WeaverseHydrogenRoot: react.MemoExoticComponent<({ errorComponent: ErrorComponent, components, }: WeaverseHydrogenRootProps) => react_jsx_runtime.JSX.Element>;
276
+ declare class WeaverseHydrogenItem extends WeaverseItemStore {
277
+ weaverse: WeaverseHydrogen;
278
+ constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen);
279
+ get Element(): HydrogenElement;
280
+ get _schemaData(): Record<string, any>;
281
+ }
282
+ declare class WeaverseHydrogen extends Weaverse {
283
+ platformType: PlatformTypeEnum;
284
+ pageId: string;
285
+ internal: Partial<WeaverseInternal>;
286
+ requestInfo: WeaverseLoaderRequestInfo;
287
+ ItemConstructor: typeof WeaverseHydrogenItem;
288
+ data: HydrogenPageData;
289
+ static itemInstances: Map<string, WeaverseHydrogenItem>;
290
+ static elementRegistry: Map<string, HydrogenElement>;
291
+ constructor(params: WeaverseHydrogenParams);
292
+ }
293
+ declare let WeaverseHydrogenRoot: react.MemoExoticComponent<({ components, errorComponent: ErrorComponent, }: {
294
+ components: HydrogenComponent[];
295
+ errorComponent?: React.FC<{
296
+ error: any;
297
+ }>;
298
+ }) => react_jsx_runtime.JSX.Element>;
313
299
  declare function withWeaverse(Component: ComponentType<any>): (props: JSX.IntrinsicAttributes) => react_jsx_runtime.JSX.Element;
314
-
315
- declare function getRequestQueries<T = Record<string, string | boolean>>(request: Request): T;
316
- declare function getWeaverseConfigs(request: Request, env: HydrogenEnv): WeaverseProjectConfigs;
317
- declare function generateDataFromSchema({ inspector, }: HydrogenComponentSchema | HydrogenThemeSchema): Record<string, any>;
318
- /**
319
- * Resize an image to the specified dimensions.
320
- *
321
- * @param imageURL {string} URL of the image
322
- * @param size {string} Shopify size attribute
323
- * @returns {string} URL with size attribute
324
- *
325
- * @example
326
- * resizeImage('https://cdn.shopify.com/image.jpg', '100x')
327
- * resizeImage('https://cdn.shopify.com/image.jpg', '100x100')
328
- */
329
- declare function resizeShopifyImage(imageURL: string, size: string): string;
330
- declare function recursivelyAddDataItem(type: string, components: HydrogenComponent<any>[], items: any[], initData?: object): `${string}-${string}-${string}-${string}-${string}`;
331
- declare function getPreviewData(type: string, components: any, weaverseHost: string): {
332
- page: {
333
- id: string;
334
- name: string;
335
- rootId: string;
336
- items: any[];
337
- };
338
- project: {
339
- id: string;
340
- weaverseShopId: string;
341
- name: string;
342
- };
343
- configs: {
344
- projectId: string;
345
- weaverseHost: string;
346
- isDesignMode: boolean;
347
- isPreviewMode: boolean;
348
- requestInfo: {
349
- i18n: {
350
- label: string;
351
- language: string;
352
- country: string;
353
- currency: string;
354
- pathPrefix: string;
355
- };
356
- queries: {};
357
- pathname: string;
358
- search: string;
359
- };
360
- };
361
- };
300
+ declare function useThemeSettings<T = HydrogenThemeSettings>(): T;
362
301
 
363
302
  declare function getSelectedProductOptions(request: Request): SelectedOptionInput[];
364
-
365
- declare let IMAGES_PLACEHOLDERS: {
303
+ declare const IMAGES_PLACEHOLDERS: {
366
304
  logo_white: string;
367
305
  logo_black: string;
368
306
  image: string;
@@ -394,22 +332,4 @@ declare let IMAGES_PLACEHOLDERS: {
394
332
  product_18: string;
395
333
  };
396
334
 
397
- declare class WeaverseHydrogen extends Weaverse {
398
- platformType: PlatformTypeEnum;
399
- pageId: string;
400
- internal: Partial<WeaverseInternal>;
401
- requestInfo: WeaverseLoaderRequestInfo;
402
- ItemConstructor: typeof WeaverseHydrogenItem;
403
- data: HydrogenPageData;
404
- static itemInstances: Map<string, WeaverseHydrogenItem>;
405
- static elementRegistry: Map<string, HydrogenElement>;
406
- constructor(params: WeaverseHydrogenParams);
407
- }
408
- declare class WeaverseHydrogenItem extends WeaverseItemStore {
409
- weaverse: WeaverseHydrogen;
410
- constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen);
411
- get Element(): HydrogenElement;
412
- get _schemaData(): Record<string, any>;
413
- }
414
-
415
- export { type AllCacheOptions, type BasicInput, type ComponentLoaderArgs, type FetchProjectPayload, type FetchProjectRequestBody, type FetchWithCacheOptions, type HeadingInput, type HeadingInputType, type HydrogenComponent, type HydrogenComponentData, type HydrogenComponentPresets, type HydrogenComponentProps, type HydrogenComponentSchema, type HydrogenElement, type HydrogenPageAssignment, type HydrogenPageConfigs, type HydrogenPageData, type HydrogenProjectType, type HydrogenThemeInfo, type HydrogenThemeSchema, type HydrogenThemeSettings, type HydrogenToolbarAction, type I18nLocale, IMAGES_PLACEHOLDERS, type InspectorGroup, type LoadPageParams, type Locale, type Localizations, type PageAssignmentParams, type PageType, type PublicEnv, type RootRouteData, type RouteLoaderArgs, type WeaverseArticle, type WeaverseBlog, WeaverseClient, type WeaverseClientArgs, type WeaverseCollection, WeaverseHydrogen, WeaverseHydrogenItem, type WeaverseHydrogenParams, WeaverseHydrogenRoot, type WeaverseHydrogenRootProps, type WeaverseInternal, type WeaverseLoaderData, type WeaverseLoaderRequestInfo, type WeaverseMetaObject, type WeaverseProduct, type WeaverseProjectConfigs, type WeaverseStudioQueries, generateDataFromSchema, getPreviewData, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, recursivelyAddDataItem, resizeShopifyImage, useThemeSettings, withWeaverse };
335
+ export { type AllCacheOptions, type BasicInput, type ComponentLoaderArgs, type FetchProjectPayload, type FetchProjectRequestBody, type HeadingInput, type HeadingInputType, type HydrogenComponent, type HydrogenComponentData, type HydrogenComponentPresets, type HydrogenComponentProps, type HydrogenComponentSchema, type HydrogenElement, type HydrogenPageAssignment, type HydrogenPageData, type HydrogenProjectType, type HydrogenThemeSchema, type HydrogenThemeSettings, IMAGES_PLACEHOLDERS, type InspectorGroup, type PageType, 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, getSelectedProductOptions, useThemeSettings, withWeaverse };