@weaverse/hydrogen 4.2.2 → 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,7 +88,6 @@ interface HydrogenComponentSchema extends ElementSchema {
99
88
  pages?: ('*' | PageType)[];
100
89
  groups?: ('*' | 'header' | 'footer' | 'body')[];
101
90
  };
102
- toolbar?: (HydrogenToolbarAction | HydrogenToolbarAction[])[];
103
91
  }
104
92
  type BasicInput = Omit<BasicInput$1, 'condition'> & {
105
93
  shouldRevalidate?: boolean;
@@ -120,16 +108,13 @@ interface HydrogenComponentProps<L = any> extends WeaverseElement {
120
108
  loaderData?: L;
121
109
  children?: React.JSX.Element[];
122
110
  }
123
- type I18nLocale = Locale & {
124
- pathPrefix: string;
125
- };
126
111
  type WeaverseLoaderRequestInfo = {
127
112
  search: string;
128
113
  pathname: string;
129
114
  queries: {
130
115
  [key: string]: string | boolean;
131
116
  };
132
- i18n: I18nBase;
117
+ i18n: WeaverseI18n;
133
118
  };
134
119
  type HydrogenThemeSettings = {
135
120
  [key: string]: any;
@@ -198,11 +183,10 @@ type HydrogenPageAssignment = {
198
183
  handle: string;
199
184
  locale: string;
200
185
  };
201
- type HydrogenPageConfigs = Omit<WeaverseProjectConfigs, 'publicEnv'> & {
202
- requestInfo: WeaverseLoaderRequestInfo;
203
- };
204
186
  interface WeaverseLoaderData {
205
- configs: HydrogenPageConfigs;
187
+ configs: Omit<WeaverseProjectConfigs, 'publicEnv'> & {
188
+ requestInfo: WeaverseLoaderRequestInfo;
189
+ };
206
190
  page: HydrogenPageData;
207
191
  project: HydrogenProjectType;
208
192
  pageAssignment: HydrogenPageAssignment;
@@ -214,45 +198,37 @@ interface HydrogenPageData extends WeaverseProjectDataType {
214
198
  __cacheId?: string;
215
199
  [key: string]: any;
216
200
  }
217
- interface WeaverseHydrogenRootProps {
218
- components: HydrogenComponent[];
219
- errorComponent?: React.FC<{
220
- error: {
221
- message: string;
222
- stack?: string;
223
- };
224
- }>;
225
- }
226
- type HydrogenThemeInfo = {
227
- name: string;
228
- version: string;
229
- author: string;
230
- authorProfilePhoto: string;
231
- documentationUrl: string;
232
- supportUrl: string;
201
+ type WeaverseI18n = I18nBase & {
202
+ label?: string;
203
+ pathPrefix?: string;
204
+ [key: string]: any;
233
205
  };
234
206
  interface HydrogenThemeSchema {
235
- info: HydrogenThemeInfo;
207
+ info: {
208
+ name: string;
209
+ version: string;
210
+ author: string;
211
+ authorProfilePhoto: string;
212
+ documentationUrl: string;
213
+ supportUrl: string;
214
+ };
236
215
  inspector: InspectorGroup[];
237
- i18n?: Array<I18nBase & {
238
- label?: string;
239
- }>;
240
- defaultLocale?: string;
216
+ i18n?: {
217
+ urlStructure: 'url-path' | 'subdomain' | 'top-level-domain';
218
+ defaultLocale: WeaverseI18n;
219
+ shopLocales: WeaverseI18n[];
220
+ };
241
221
  }
242
- type PageType = keyof typeof STORE_PAGES;
243
- type PageAssignmentParams = {
244
- type?: PageType;
245
- locale?: string;
246
- handle?: string;
247
- };
248
- type LoadPageParams = PageAssignmentParams & {
249
- strategy?: AllCacheOptions;
250
- };
222
+ type PageType = 'INDEX' | 'PRODUCT' | 'ALL_PRODUCTS' | 'COLLECTION' | 'COLLECTION_LIST' | 'PAGE' | 'BLOG' | 'ARTICLE' | 'CUSTOM';
251
223
  type FetchProjectRequestBody = {
252
224
  projectId: string;
253
225
  url: string;
254
- i18n?: I18nBase;
255
- params?: PageAssignmentParams;
226
+ i18n?: WeaverseI18n;
227
+ params?: {
228
+ type?: PageType;
229
+ locale?: string;
230
+ handle?: string;
231
+ };
256
232
  isDesignMode?: boolean;
257
233
  };
258
234
  type FetchProjectPayload = {
@@ -263,23 +239,10 @@ type FetchProjectPayload = {
263
239
  };
264
240
  type WeaverseClientArgs = HydrogenContext & {
265
241
  components: HydrogenComponent[];
266
- countries?: Localizations;
267
242
  themeSchema: HydrogenThemeSchema;
268
243
  request: Request;
269
244
  cache: Cache;
270
245
  };
271
- type FetchWithCacheOptions = RequestInit & {
272
- strategy?: AllCacheOptions;
273
- };
274
- type RootRouteData = {
275
- weaverseTheme?: {
276
- theme: HydrogenThemeSettings;
277
- countries?: Localizations;
278
- schema?: HydrogenThemeSchema;
279
- publicEnv?: PublicEnv;
280
- };
281
- [key: string]: any;
282
- };
283
246
  type WeaverseProduct = WeaverseResourcePickerData;
284
247
  type WeaverseCollection = WeaverseResourcePickerData;
285
248
  type WeaverseBlog = WeaverseResourcePickerData;
@@ -310,60 +273,34 @@ declare module '@shopify/hydrogen' {
310
273
  }
311
274
  }
312
275
 
313
- 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>;
314
299
  declare function withWeaverse(Component: ComponentType<any>): (props: JSX.IntrinsicAttributes) => react_jsx_runtime.JSX.Element;
315
-
316
- declare function getRequestQueries<T = Record<string, string | boolean>>(request: Request): T;
317
- declare function getWeaverseConfigs(request: Request, env: HydrogenEnv): WeaverseProjectConfigs;
318
- declare function generateDataFromSchema({ inspector, }: HydrogenComponentSchema | HydrogenThemeSchema): Record<string, any>;
319
- /**
320
- * Resize an image to the specified dimensions.
321
- *
322
- * @param imageURL {string} URL of the image
323
- * @param size {string} Shopify size attribute
324
- * @returns {string} URL with size attribute
325
- *
326
- * @example
327
- * resizeImage('https://cdn.shopify.com/image.jpg', '100x')
328
- * resizeImage('https://cdn.shopify.com/image.jpg', '100x100')
329
- */
330
- declare function resizeShopifyImage(imageURL: string, size: string): string;
331
- declare function recursivelyAddDataItem(type: string, components: HydrogenComponent<any>[], items: any[], initData?: object): `${string}-${string}-${string}-${string}-${string}`;
332
- declare function getPreviewData(type: string, components: any, weaverseHost: string): {
333
- page: {
334
- id: string;
335
- name: string;
336
- rootId: string;
337
- items: any[];
338
- };
339
- project: {
340
- id: string;
341
- weaverseShopId: string;
342
- name: string;
343
- };
344
- configs: {
345
- projectId: string;
346
- weaverseHost: string;
347
- isDesignMode: boolean;
348
- isPreviewMode: boolean;
349
- requestInfo: {
350
- i18n: {
351
- label: string;
352
- language: string;
353
- country: string;
354
- currency: string;
355
- pathPrefix: string;
356
- };
357
- queries: {};
358
- pathname: string;
359
- search: string;
360
- };
361
- };
362
- };
300
+ declare function useThemeSettings<T = HydrogenThemeSettings>(): T;
363
301
 
364
302
  declare function getSelectedProductOptions(request: Request): SelectedOptionInput[];
365
-
366
- declare let IMAGES_PLACEHOLDERS: {
303
+ declare const IMAGES_PLACEHOLDERS: {
367
304
  logo_white: string;
368
305
  logo_black: string;
369
306
  image: string;
@@ -395,22 +332,4 @@ declare let IMAGES_PLACEHOLDERS: {
395
332
  product_18: string;
396
333
  };
397
334
 
398
- declare class WeaverseHydrogen extends Weaverse {
399
- platformType: PlatformTypeEnum;
400
- pageId: string;
401
- internal: Partial<WeaverseInternal>;
402
- requestInfo: WeaverseLoaderRequestInfo;
403
- ItemConstructor: typeof WeaverseHydrogenItem;
404
- data: HydrogenPageData;
405
- static itemInstances: Map<string, WeaverseHydrogenItem>;
406
- static elementRegistry: Map<string, HydrogenElement>;
407
- constructor(params: WeaverseHydrogenParams);
408
- }
409
- declare class WeaverseHydrogenItem extends WeaverseItemStore {
410
- weaverse: WeaverseHydrogen;
411
- constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen);
412
- get Element(): HydrogenElement;
413
- get _schemaData(): Record<string, any>;
414
- }
415
-
416
- 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,7 +88,6 @@ interface HydrogenComponentSchema extends ElementSchema {
99
88
  pages?: ('*' | PageType)[];
100
89
  groups?: ('*' | 'header' | 'footer' | 'body')[];
101
90
  };
102
- toolbar?: (HydrogenToolbarAction | HydrogenToolbarAction[])[];
103
91
  }
104
92
  type BasicInput = Omit<BasicInput$1, 'condition'> & {
105
93
  shouldRevalidate?: boolean;
@@ -120,16 +108,13 @@ interface HydrogenComponentProps<L = any> extends WeaverseElement {
120
108
  loaderData?: L;
121
109
  children?: React.JSX.Element[];
122
110
  }
123
- type I18nLocale = Locale & {
124
- pathPrefix: string;
125
- };
126
111
  type WeaverseLoaderRequestInfo = {
127
112
  search: string;
128
113
  pathname: string;
129
114
  queries: {
130
115
  [key: string]: string | boolean;
131
116
  };
132
- i18n: I18nBase;
117
+ i18n: WeaverseI18n;
133
118
  };
134
119
  type HydrogenThemeSettings = {
135
120
  [key: string]: any;
@@ -198,11 +183,10 @@ type HydrogenPageAssignment = {
198
183
  handle: string;
199
184
  locale: string;
200
185
  };
201
- type HydrogenPageConfigs = Omit<WeaverseProjectConfigs, 'publicEnv'> & {
202
- requestInfo: WeaverseLoaderRequestInfo;
203
- };
204
186
  interface WeaverseLoaderData {
205
- configs: HydrogenPageConfigs;
187
+ configs: Omit<WeaverseProjectConfigs, 'publicEnv'> & {
188
+ requestInfo: WeaverseLoaderRequestInfo;
189
+ };
206
190
  page: HydrogenPageData;
207
191
  project: HydrogenProjectType;
208
192
  pageAssignment: HydrogenPageAssignment;
@@ -214,45 +198,37 @@ interface HydrogenPageData extends WeaverseProjectDataType {
214
198
  __cacheId?: string;
215
199
  [key: string]: any;
216
200
  }
217
- interface WeaverseHydrogenRootProps {
218
- components: HydrogenComponent[];
219
- errorComponent?: React.FC<{
220
- error: {
221
- message: string;
222
- stack?: string;
223
- };
224
- }>;
225
- }
226
- type HydrogenThemeInfo = {
227
- name: string;
228
- version: string;
229
- author: string;
230
- authorProfilePhoto: string;
231
- documentationUrl: string;
232
- supportUrl: string;
201
+ type WeaverseI18n = I18nBase & {
202
+ label?: string;
203
+ pathPrefix?: string;
204
+ [key: string]: any;
233
205
  };
234
206
  interface HydrogenThemeSchema {
235
- info: HydrogenThemeInfo;
207
+ info: {
208
+ name: string;
209
+ version: string;
210
+ author: string;
211
+ authorProfilePhoto: string;
212
+ documentationUrl: string;
213
+ supportUrl: string;
214
+ };
236
215
  inspector: InspectorGroup[];
237
- i18n?: Array<I18nBase & {
238
- label?: string;
239
- }>;
240
- defaultLocale?: string;
216
+ i18n?: {
217
+ urlStructure: 'url-path' | 'subdomain' | 'top-level-domain';
218
+ defaultLocale: WeaverseI18n;
219
+ shopLocales: WeaverseI18n[];
220
+ };
241
221
  }
242
- type PageType = keyof typeof STORE_PAGES;
243
- type PageAssignmentParams = {
244
- type?: PageType;
245
- locale?: string;
246
- handle?: string;
247
- };
248
- type LoadPageParams = PageAssignmentParams & {
249
- strategy?: AllCacheOptions;
250
- };
222
+ type PageType = 'INDEX' | 'PRODUCT' | 'ALL_PRODUCTS' | 'COLLECTION' | 'COLLECTION_LIST' | 'PAGE' | 'BLOG' | 'ARTICLE' | 'CUSTOM';
251
223
  type FetchProjectRequestBody = {
252
224
  projectId: string;
253
225
  url: string;
254
- i18n?: I18nBase;
255
- params?: PageAssignmentParams;
226
+ i18n?: WeaverseI18n;
227
+ params?: {
228
+ type?: PageType;
229
+ locale?: string;
230
+ handle?: string;
231
+ };
256
232
  isDesignMode?: boolean;
257
233
  };
258
234
  type FetchProjectPayload = {
@@ -263,23 +239,10 @@ type FetchProjectPayload = {
263
239
  };
264
240
  type WeaverseClientArgs = HydrogenContext & {
265
241
  components: HydrogenComponent[];
266
- countries?: Localizations;
267
242
  themeSchema: HydrogenThemeSchema;
268
243
  request: Request;
269
244
  cache: Cache;
270
245
  };
271
- type FetchWithCacheOptions = RequestInit & {
272
- strategy?: AllCacheOptions;
273
- };
274
- type RootRouteData = {
275
- weaverseTheme?: {
276
- theme: HydrogenThemeSettings;
277
- countries?: Localizations;
278
- schema?: HydrogenThemeSchema;
279
- publicEnv?: PublicEnv;
280
- };
281
- [key: string]: any;
282
- };
283
246
  type WeaverseProduct = WeaverseResourcePickerData;
284
247
  type WeaverseCollection = WeaverseResourcePickerData;
285
248
  type WeaverseBlog = WeaverseResourcePickerData;
@@ -310,60 +273,34 @@ declare module '@shopify/hydrogen' {
310
273
  }
311
274
  }
312
275
 
313
- 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>;
314
299
  declare function withWeaverse(Component: ComponentType<any>): (props: JSX.IntrinsicAttributes) => react_jsx_runtime.JSX.Element;
315
-
316
- declare function getRequestQueries<T = Record<string, string | boolean>>(request: Request): T;
317
- declare function getWeaverseConfigs(request: Request, env: HydrogenEnv): WeaverseProjectConfigs;
318
- declare function generateDataFromSchema({ inspector, }: HydrogenComponentSchema | HydrogenThemeSchema): Record<string, any>;
319
- /**
320
- * Resize an image to the specified dimensions.
321
- *
322
- * @param imageURL {string} URL of the image
323
- * @param size {string} Shopify size attribute
324
- * @returns {string} URL with size attribute
325
- *
326
- * @example
327
- * resizeImage('https://cdn.shopify.com/image.jpg', '100x')
328
- * resizeImage('https://cdn.shopify.com/image.jpg', '100x100')
329
- */
330
- declare function resizeShopifyImage(imageURL: string, size: string): string;
331
- declare function recursivelyAddDataItem(type: string, components: HydrogenComponent<any>[], items: any[], initData?: object): `${string}-${string}-${string}-${string}-${string}`;
332
- declare function getPreviewData(type: string, components: any, weaverseHost: string): {
333
- page: {
334
- id: string;
335
- name: string;
336
- rootId: string;
337
- items: any[];
338
- };
339
- project: {
340
- id: string;
341
- weaverseShopId: string;
342
- name: string;
343
- };
344
- configs: {
345
- projectId: string;
346
- weaverseHost: string;
347
- isDesignMode: boolean;
348
- isPreviewMode: boolean;
349
- requestInfo: {
350
- i18n: {
351
- label: string;
352
- language: string;
353
- country: string;
354
- currency: string;
355
- pathPrefix: string;
356
- };
357
- queries: {};
358
- pathname: string;
359
- search: string;
360
- };
361
- };
362
- };
300
+ declare function useThemeSettings<T = HydrogenThemeSettings>(): T;
363
301
 
364
302
  declare function getSelectedProductOptions(request: Request): SelectedOptionInput[];
365
-
366
- declare let IMAGES_PLACEHOLDERS: {
303
+ declare const IMAGES_PLACEHOLDERS: {
367
304
  logo_white: string;
368
305
  logo_black: string;
369
306
  image: string;
@@ -395,22 +332,4 @@ declare let IMAGES_PLACEHOLDERS: {
395
332
  product_18: string;
396
333
  };
397
334
 
398
- declare class WeaverseHydrogen extends Weaverse {
399
- platformType: PlatformTypeEnum;
400
- pageId: string;
401
- internal: Partial<WeaverseInternal>;
402
- requestInfo: WeaverseLoaderRequestInfo;
403
- ItemConstructor: typeof WeaverseHydrogenItem;
404
- data: HydrogenPageData;
405
- static itemInstances: Map<string, WeaverseHydrogenItem>;
406
- static elementRegistry: Map<string, HydrogenElement>;
407
- constructor(params: WeaverseHydrogenParams);
408
- }
409
- declare class WeaverseHydrogenItem extends WeaverseItemStore {
410
- weaverse: WeaverseHydrogen;
411
- constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen);
412
- get Element(): HydrogenElement;
413
- get _schemaData(): Record<string, any>;
414
- }
415
-
416
- 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 };