@personizely/shopify-hydrogen 1.0.0 → 1.0.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.cjs +386 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +342 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +342 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +264 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +13 -4
- package/dist/classes/Adapter.d.ts +0 -33
- package/dist/classes/Adapter.d.ts.map +0 -1
- package/dist/classes/Adapter.js +0 -126
- package/dist/classes/Adapter.js.map +0 -1
- package/dist/classes/Cart.d.ts +0 -29
- package/dist/classes/Cart.d.ts.map +0 -1
- package/dist/classes/Cart.js +0 -272
- package/dist/classes/Cart.js.map +0 -1
- package/dist/components/PersonizelyProvider.d.ts +0 -36
- package/dist/components/PersonizelyProvider.d.ts.map +0 -1
- package/dist/components/PersonizelyProvider.js +0 -118
- package/dist/components/PersonizelyProvider.js.map +0 -1
- package/dist/graphql/queries/cart.d.ts +0 -7
- package/dist/graphql/queries/cart.d.ts.map +0 -1
- package/dist/graphql/queries/cart.js +0 -142
- package/dist/graphql/queries/cart.js.map +0 -1
- package/dist/graphql/queries/customer.d.ts +0 -5
- package/dist/graphql/queries/customer.d.ts.map +0 -1
- package/dist/graphql/queries/customer.js +0 -72
- package/dist/graphql/queries/customer.js.map +0 -1
- package/dist/graphql/queries/product.d.ts +0 -5
- package/dist/graphql/queries/product.d.ts.map +0 -1
- package/dist/graphql/queries/product.js +0 -114
- package/dist/graphql/queries/product.js.map +0 -1
- package/dist/hooks/useCartAdd.d.ts +0 -3
- package/dist/hooks/useCartAdd.d.ts.map +0 -1
- package/dist/hooks/useCartAdd.js +0 -18
- package/dist/hooks/useCartAdd.js.map +0 -1
- package/dist/hooks/useCheckout.d.ts +0 -2
- package/dist/hooks/useCheckout.d.ts.map +0 -1
- package/dist/hooks/useCheckout.js +0 -12
- package/dist/hooks/useCheckout.js.map +0 -1
- package/dist/hooks/usePageContext.d.ts +0 -3
- package/dist/hooks/usePageContext.d.ts.map +0 -1
- package/dist/hooks/usePageContext.js +0 -6
- package/dist/hooks/usePageContext.js.map +0 -1
- package/dist/hooks/usePersonizely.d.ts +0 -3
- package/dist/hooks/usePersonizely.d.ts.map +0 -1
- package/dist/hooks/usePersonizely.js +0 -11
- package/dist/hooks/usePersonizely.js.map +0 -1
- package/dist/index.d.ts +0 -10
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -8
- package/dist/index.js.map +0 -1
- package/dist/types/index.d.ts +0 -170
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -2
- package/dist/types/index.js.map +0 -1
- package/dist/types/interfaces.d.ts +0 -35
- package/dist/types/interfaces.d.ts.map +0 -1
- package/dist/types/interfaces.js +0 -2
- package/dist/types/interfaces.js.map +0 -1
- package/dist/utils/cookies.d.ts +0 -4
- package/dist/utils/cookies.d.ts.map +0 -1
- package/dist/utils/cookies.js +0 -33
- package/dist/utils/cookies.js.map +0 -1
- package/dist/utils/id.d.ts +0 -3
- package/dist/utils/id.d.ts.map +0 -1
- package/dist/utils/id.js +0 -7
- package/dist/utils/id.js.map +0 -1
- package/dist/utils/storefront-client.d.ts +0 -15
- package/dist/utils/storefront-client.d.ts.map +0 -1
- package/dist/utils/storefront-client.js +0 -39
- package/dist/utils/storefront-client.js.map +0 -1
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
|
+
import { CartReturn } from "@shopify/hydrogen";
|
|
3
|
+
|
|
4
|
+
//#region src/types/interfaces.d.ts
|
|
5
|
+
interface ICart {
|
|
6
|
+
isSynced(): boolean;
|
|
7
|
+
onChange(callback: (cart: CartData) => void): () => void;
|
|
8
|
+
fetch(force?: boolean): Promise<CartData | null>;
|
|
9
|
+
update(action: string, data: any): Promise<void>;
|
|
10
|
+
buy(variantId: string, quantity?: number): void;
|
|
11
|
+
get(property?: string): any;
|
|
12
|
+
getToken(): string | null;
|
|
13
|
+
getItemsIds(): string[];
|
|
14
|
+
getValue(currency?: string): number;
|
|
15
|
+
getSize(distinct?: boolean): number;
|
|
16
|
+
fetchCollections(force?: boolean): Promise<any>;
|
|
17
|
+
applyCoupon(code: string, expiresIn?: number): Promise<void>;
|
|
18
|
+
getCoupon(): string | null;
|
|
19
|
+
}
|
|
20
|
+
interface IShopifyAdapter {
|
|
21
|
+
fetchProduct(handle: string): Promise<ProductData>;
|
|
22
|
+
fetchProductCollections(handle: string, productId: number): Promise<any>;
|
|
23
|
+
fetchRecommendations(productId: number, intent: string): Promise<{
|
|
24
|
+
products: ProductData[];
|
|
25
|
+
intent: string;
|
|
26
|
+
}>;
|
|
27
|
+
buildProductPath(params: {
|
|
28
|
+
handle: string;
|
|
29
|
+
}): string;
|
|
30
|
+
convertToBaseCurrency(amount: number): number;
|
|
31
|
+
convertFromBaseCurrency(amount: number): number;
|
|
32
|
+
formatMoney(amount: number, includeDecimals: boolean): string;
|
|
33
|
+
getCustomer(): Promise<Customer | null>;
|
|
34
|
+
getPageContext(): PageContext;
|
|
35
|
+
getVisitorId(): string | null;
|
|
36
|
+
getMarket(): string | null;
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
//#region src/types/index.d.ts
|
|
40
|
+
type ProductData = {
|
|
41
|
+
id: number;
|
|
42
|
+
handle: string;
|
|
43
|
+
title: string;
|
|
44
|
+
available: boolean;
|
|
45
|
+
requires_selling_plan: boolean;
|
|
46
|
+
images: string[];
|
|
47
|
+
variants: ProductDataVariant[];
|
|
48
|
+
};
|
|
49
|
+
type ProductDataVariant = {
|
|
50
|
+
id: number;
|
|
51
|
+
title: string;
|
|
52
|
+
available: boolean;
|
|
53
|
+
price: number;
|
|
54
|
+
compare_at_price: number | null;
|
|
55
|
+
featured_image: {
|
|
56
|
+
src: string;
|
|
57
|
+
} | null;
|
|
58
|
+
selling_plan_allocations: Array<{
|
|
59
|
+
selling_plan_id: string;
|
|
60
|
+
}>;
|
|
61
|
+
};
|
|
62
|
+
type Product = {
|
|
63
|
+
id: string;
|
|
64
|
+
handle: string;
|
|
65
|
+
title: string;
|
|
66
|
+
description: string;
|
|
67
|
+
descriptionHtml: string;
|
|
68
|
+
variants: {
|
|
69
|
+
nodes: Variant[];
|
|
70
|
+
};
|
|
71
|
+
images: {
|
|
72
|
+
nodes: Image[];
|
|
73
|
+
};
|
|
74
|
+
featuredImage?: Image | null;
|
|
75
|
+
priceRange: PriceRange;
|
|
76
|
+
tags: string[];
|
|
77
|
+
productType: string;
|
|
78
|
+
vendor: string;
|
|
79
|
+
collections: {
|
|
80
|
+
nodes: Collection[];
|
|
81
|
+
};
|
|
82
|
+
requiresSellingPlan: boolean;
|
|
83
|
+
availableForSale: boolean;
|
|
84
|
+
options: ProductOption[];
|
|
85
|
+
};
|
|
86
|
+
type Variant = {
|
|
87
|
+
id: string;
|
|
88
|
+
title: string;
|
|
89
|
+
price: Money;
|
|
90
|
+
compareAtPrice?: Money | null;
|
|
91
|
+
availableForSale: boolean;
|
|
92
|
+
sellingPlanAllocations: {
|
|
93
|
+
edges: Array<{
|
|
94
|
+
node: {
|
|
95
|
+
sellingPlan: {
|
|
96
|
+
id: string;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
}>;
|
|
100
|
+
};
|
|
101
|
+
selectedOptions: SelectedOption[];
|
|
102
|
+
image?: Image | null;
|
|
103
|
+
sku?: string | null;
|
|
104
|
+
quantityAvailable?: number;
|
|
105
|
+
};
|
|
106
|
+
type Image = {
|
|
107
|
+
id?: string;
|
|
108
|
+
url: string;
|
|
109
|
+
altText?: string | null;
|
|
110
|
+
width?: number;
|
|
111
|
+
height?: number;
|
|
112
|
+
};
|
|
113
|
+
type Money = {
|
|
114
|
+
amount: string;
|
|
115
|
+
currencyCode: string;
|
|
116
|
+
};
|
|
117
|
+
type PriceRange = {
|
|
118
|
+
minVariantPrice: Money;
|
|
119
|
+
maxVariantPrice: Money;
|
|
120
|
+
};
|
|
121
|
+
type ProductOption = {
|
|
122
|
+
id?: string;
|
|
123
|
+
name: string;
|
|
124
|
+
values: string[];
|
|
125
|
+
};
|
|
126
|
+
type SelectedOption = {
|
|
127
|
+
name: string;
|
|
128
|
+
value: string;
|
|
129
|
+
};
|
|
130
|
+
type Collection = {
|
|
131
|
+
id: string;
|
|
132
|
+
handle: string;
|
|
133
|
+
title: string;
|
|
134
|
+
description?: string;
|
|
135
|
+
};
|
|
136
|
+
type CartData = {
|
|
137
|
+
token: string;
|
|
138
|
+
item_count: number;
|
|
139
|
+
items: CartDataItem[];
|
|
140
|
+
total_price: number;
|
|
141
|
+
discount_codes?: DiscountCode[];
|
|
142
|
+
attributes?: Record<string, any>;
|
|
143
|
+
note?: string | null;
|
|
144
|
+
};
|
|
145
|
+
type CartDataItem = {
|
|
146
|
+
id: number;
|
|
147
|
+
quantity: number;
|
|
148
|
+
product_id: number;
|
|
149
|
+
variant_id: number;
|
|
150
|
+
price: number;
|
|
151
|
+
};
|
|
152
|
+
type DiscountCode = {
|
|
153
|
+
code: string;
|
|
154
|
+
applicable: boolean;
|
|
155
|
+
};
|
|
156
|
+
type Customer = {
|
|
157
|
+
id: string;
|
|
158
|
+
email?: string | null;
|
|
159
|
+
phone?: string | null;
|
|
160
|
+
firstName?: string | null;
|
|
161
|
+
lastName?: string | null;
|
|
162
|
+
displayName: string;
|
|
163
|
+
hasAccount: boolean;
|
|
164
|
+
tags: string[];
|
|
165
|
+
};
|
|
166
|
+
type PageContext = {
|
|
167
|
+
pageType?: string | number;
|
|
168
|
+
product?: {
|
|
169
|
+
handle: string;
|
|
170
|
+
id: number;
|
|
171
|
+
tags?: string[];
|
|
172
|
+
} | null;
|
|
173
|
+
collection?: {
|
|
174
|
+
id: number;
|
|
175
|
+
} | null;
|
|
176
|
+
};
|
|
177
|
+
type CartAddProduct = {
|
|
178
|
+
id: string | number;
|
|
179
|
+
variantId: string | number;
|
|
180
|
+
price?: string | number;
|
|
181
|
+
quantity?: number;
|
|
182
|
+
handle?: string;
|
|
183
|
+
properties?: Record<string, string>;
|
|
184
|
+
};
|
|
185
|
+
type PersonizelyConfigMethods = {
|
|
186
|
+
formatMoney: (amount: number, includeDecimals: boolean) => string;
|
|
187
|
+
builtProductPath?: ({
|
|
188
|
+
handle
|
|
189
|
+
}: {
|
|
190
|
+
handle: string;
|
|
191
|
+
}) => string;
|
|
192
|
+
};
|
|
193
|
+
type PersonizelyConfig = {
|
|
194
|
+
locale?: string;
|
|
195
|
+
currency?: {
|
|
196
|
+
rate?: number;
|
|
197
|
+
active?: string;
|
|
198
|
+
base?: string;
|
|
199
|
+
};
|
|
200
|
+
market?: string;
|
|
201
|
+
methods?: PersonizelyConfigMethods;
|
|
202
|
+
};
|
|
203
|
+
type HydrogenConfig = {
|
|
204
|
+
cart: ICart;
|
|
205
|
+
adapter: IShopifyAdapter;
|
|
206
|
+
onCartAdd: (callback: (product: CartAddProduct) => Promise<boolean>) => () => void;
|
|
207
|
+
onCheckout: (callback: () => Promise<boolean>) => () => void;
|
|
208
|
+
};
|
|
209
|
+
//#endregion
|
|
210
|
+
//#region src/utils/storefront-client.d.ts
|
|
211
|
+
type StorefrontClientConfig = {
|
|
212
|
+
storefrontAccessToken: string;
|
|
213
|
+
shopDomain: string;
|
|
214
|
+
apiVersion?: string;
|
|
215
|
+
};
|
|
216
|
+
declare class StorefrontClient {
|
|
217
|
+
private storefrontAccessToken;
|
|
218
|
+
private shopDomain;
|
|
219
|
+
private apiVersion;
|
|
220
|
+
private endpoint;
|
|
221
|
+
constructor(config: StorefrontClientConfig);
|
|
222
|
+
query<T = any>(query: string, variables?: Record<string, any>): Promise<T>;
|
|
223
|
+
mutate<T = any>(mutation: string, variables?: Record<string, any>): Promise<T>;
|
|
224
|
+
}
|
|
225
|
+
//#endregion
|
|
226
|
+
//#region src/classes/Cart.d.ts
|
|
227
|
+
declare class Cart implements ICart {
|
|
228
|
+
private storefrontClient;
|
|
229
|
+
private listeners;
|
|
230
|
+
private cart;
|
|
231
|
+
private cartPromise;
|
|
232
|
+
private revalidate?;
|
|
233
|
+
constructor(cartPromise: Promise<CartReturn>, storefrontClient: StorefrontClient, revalidate?: () => void);
|
|
234
|
+
updateCartData(cart: CartReturn): void;
|
|
235
|
+
notifyListeners(): void;
|
|
236
|
+
isSynced(): boolean;
|
|
237
|
+
onChange(callback: (cart: CartData) => void): () => void;
|
|
238
|
+
fetch(force?: boolean): Promise<CartData | null>;
|
|
239
|
+
update(action: string, data: any): Promise<void>;
|
|
240
|
+
buy(_variantId: string, _quantity?: number): Promise<void>;
|
|
241
|
+
get(property?: string): any;
|
|
242
|
+
getToken(): string | null;
|
|
243
|
+
getItemsIds(): string[];
|
|
244
|
+
getCurrency(): string;
|
|
245
|
+
getValue(_currency?: string): number;
|
|
246
|
+
getSize(distinct?: boolean): number;
|
|
247
|
+
fetchCollections(_force?: boolean): Promise<any>;
|
|
248
|
+
applyCoupon(code: string, expiresIn?: number): Promise<void>;
|
|
249
|
+
getCoupon(): string | null;
|
|
250
|
+
private toCartData;
|
|
251
|
+
}
|
|
252
|
+
//#endregion
|
|
253
|
+
//#region src/classes/Adapter.d.ts
|
|
254
|
+
declare class Adapter implements IShopifyAdapter {
|
|
255
|
+
private client;
|
|
256
|
+
private currency;
|
|
257
|
+
private market;
|
|
258
|
+
private locale;
|
|
259
|
+
private pageContext;
|
|
260
|
+
private methods?;
|
|
261
|
+
private customerAccessToken;
|
|
262
|
+
constructor(config: PersonizelyConfig, storefrontClient: StorefrontClient);
|
|
263
|
+
setCustomerAccessToken(token: string | null): void;
|
|
264
|
+
fetchProduct(handle: string): Promise<ProductData>;
|
|
265
|
+
fetchProductCollections(handle: string, productId: number): Promise<number[]>;
|
|
266
|
+
fetchRecommendations(productId: number, intent: string): Promise<{
|
|
267
|
+
products: ProductData[];
|
|
268
|
+
intent: string;
|
|
269
|
+
}>;
|
|
270
|
+
buildProductPath(product: {
|
|
271
|
+
handle: string;
|
|
272
|
+
}): string;
|
|
273
|
+
convertToBaseCurrency(amount: number): number;
|
|
274
|
+
convertFromBaseCurrency(amount: number): number;
|
|
275
|
+
formatMoney(amount: number, includeDecimals?: boolean): string;
|
|
276
|
+
getCustomer(): Promise<Customer | null>;
|
|
277
|
+
getPageContext(): PageContext;
|
|
278
|
+
setPageContext(context: Partial<PageContext>): void;
|
|
279
|
+
getVisitorId(): string | null;
|
|
280
|
+
getMarket(): string | null;
|
|
281
|
+
getCurrencyRate(): number;
|
|
282
|
+
toProductData(product: Product): ProductData;
|
|
283
|
+
}
|
|
284
|
+
//#endregion
|
|
285
|
+
//#region src/components/PersonizelyProvider.d.ts
|
|
286
|
+
declare global {
|
|
287
|
+
interface Window {
|
|
288
|
+
__PLY_HYDROGEN_CONFIG__?: HydrogenConfig;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
type PersonizelyContextType = {
|
|
292
|
+
cart: Cart;
|
|
293
|
+
adapter: Adapter;
|
|
294
|
+
websiteApiKey: string;
|
|
295
|
+
triggerCartAdd: (product: CartAddProduct) => Promise<boolean>;
|
|
296
|
+
triggerCheckout: () => Promise<boolean>;
|
|
297
|
+
};
|
|
298
|
+
type PersonizelyProviderProps = {
|
|
299
|
+
websiteApiKey: string;
|
|
300
|
+
storefrontAccessToken: string;
|
|
301
|
+
shopDomain: string;
|
|
302
|
+
apiVersion?: string;
|
|
303
|
+
scriptBaseUrl?: string;
|
|
304
|
+
locale?: string;
|
|
305
|
+
currency?: {
|
|
306
|
+
rate: number;
|
|
307
|
+
active: string;
|
|
308
|
+
base: string;
|
|
309
|
+
};
|
|
310
|
+
market?: string;
|
|
311
|
+
methods?: PersonizelyConfigMethods;
|
|
312
|
+
children: ReactNode;
|
|
313
|
+
customerAccessToken?: string | null;
|
|
314
|
+
};
|
|
315
|
+
declare function PersonizelyProvider({
|
|
316
|
+
websiteApiKey,
|
|
317
|
+
storefrontAccessToken,
|
|
318
|
+
shopDomain,
|
|
319
|
+
locale,
|
|
320
|
+
currency,
|
|
321
|
+
market,
|
|
322
|
+
apiVersion,
|
|
323
|
+
scriptBaseUrl,
|
|
324
|
+
methods,
|
|
325
|
+
children,
|
|
326
|
+
customerAccessToken
|
|
327
|
+
}: PersonizelyProviderProps): React.JSX.Element;
|
|
328
|
+
//#endregion
|
|
329
|
+
//#region src/hooks/usePersonizely.d.ts
|
|
330
|
+
declare function usePersonizely(): PersonizelyContextType;
|
|
331
|
+
//#endregion
|
|
332
|
+
//#region src/hooks/useCartAdd.d.ts
|
|
333
|
+
declare function useCartAdd(): (product: CartAddProduct) => Promise<boolean>;
|
|
334
|
+
//#endregion
|
|
335
|
+
//#region src/hooks/useCheckout.d.ts
|
|
336
|
+
declare function useCheckout(): () => Promise<boolean>;
|
|
337
|
+
//#endregion
|
|
338
|
+
//#region src/hooks/usePageContext.d.ts
|
|
339
|
+
declare function usePageContext(context: Partial<PageContext>): void;
|
|
340
|
+
//#endregion
|
|
341
|
+
export { Adapter, Cart, type CartAddProduct, type HydrogenConfig, type ICart, type IShopifyAdapter, type PageContext, type PersonizelyConfig, type PersonizelyContextType, PersonizelyProvider, type PersonizelyProviderProps, useCartAdd, useCheckout, usePageContext, usePersonizely };
|
|
342
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types/interfaces.ts","../src/types/index.ts","../src/utils/storefront-client.ts","../src/classes/Cart.ts","../src/classes/Adapter.ts","../src/components/PersonizelyProvider.tsx","../src/hooks/usePersonizely.ts","../src/hooks/useCartAdd.ts","../src/hooks/useCheckout.ts","../src/hooks/usePageContext.ts"],"sourcesContent":[],"mappings":";;;;UAWiB,KAAA;;4BAUW;EAVX,KAAA,CAAA,KAAK,CAAA,EAAA,OAAA,CAAA,EAgBI,OAhBJ,CAgBY,QAhBZ,GAAA,IAAA,CAAA;EAUM,MAAA,CAAA,MAAA,EAAA,MAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAYS,OAZT,CAAA,IAAA,CAAA;EAMM,GAAA,CAAA,SAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAAR,GAAA,CAAA,QAAA,CAAA,EAAA,MAAA,CAAA,EAAA,GAAA;EAMW,QAAA,EAAA,EAAA,MAAA,GAAA,IAAA;EAoCA,WAAA,EAAA,EAAA,MAAA,EAAA;EAKY,QAAA,CAAA,QAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;EAAO,OAAA,CAAA,QAAA,CAAA,EAAA,OAAA,CAAA,EAAA,MAAA;EAWvC,gBAAA,CAAA,KAAe,CAAA,EAAA,OAAA,CAAA,EAhBK,OAgBL,CAAA,GAAA,CAAA;EAIQ,WAAA,CAAA,IAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,MAAA,CAAA,EAfS,OAeT,CAAA,IAAA,CAAA;EAAR,SAAA,EAAA,EAAA,MAAA,GAAA,IAAA;;AAY+C,UAhB9D,eAAA,CAgB8D;EAApB,YAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAZ3B,OAY2B,CAZnB,WAYmB,CAAA;EAyBlC,uBAAA,CAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAhCqC,OAgCrC,CAAA,GAAA,CAAA;EAAR,oBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAzB0C,OAyB1C,CAAA;IAKG,QAAA,EA9B2D,WA8B3D,EAAA;IAAW,MAAA,EAAA,MAAA;;;;EC9HnB,CAAA,CAAA,EAAA,MAAA;EAaA,qBAAkB,CAAA,MAAA,EAAA,MAOF,CAAA,EAAK,MAAA;EAMrB,uBAAO,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,MAAA;EAOR,WAAA,CAAA,MAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,MAAA;EAGA,WAAA,EAAA,EDqFM,OCrFN,CDqFc,QCrFd,GAAA,IAAA,CAAA;EAEO,cAAA,EAAA,EDwFE,WCxFF;EACJ,YAAA,EAAA,EAAA,MAAA,GAAA,IAAA;EAKH,SAAA,EAAA,EAAA,MAAA,GAAA,IAAA;;;;KA5CC,WAAA;;;EDMK,KAAA,EAAA,MAAK;EAUM,SAAA,EAAA,OAAA;EAMM,qBAAA,EAAA,OAAA;EAAR,MAAA,EAAA,MAAA,EAAA;EAMW,QAAA,ECrBzB,kBDqByB,EAAA;CAoCA;AAKY,KCxDrC,kBAAA,GDwDqC;EAAO,EAAA,EAAA,MAAA;EAWvC,KAAA,EAAA,MAAA;EAIuB,SAAA,EAAA,OAAA;EAAR,KAAA,EAAA,MAAA;EAK8B,gBAAA,EAAA,MAAA,GAAA,IAAA;EAOiB,cAAA,EAAA;IAApB,GAAA,EAAA,MAAA;EAyBlC,CAAA,GAAA,IAAA;EAAR,wBAAA,ECrGW,KDqGX,CAAA;IAKG,eAAA,EAAA,MAAA;EAAW,CAAA,CAAA;;KCpGnB,OAAA;;EA1BA,MAAA,EAAA,MAAW;EAaX,KAAA,EAAA,MAAA;EAaA,WAAO,EAAA,MAAA;EAOR,eAAA,EAAA,MAAA;EAGA,QAAA,EAAA;IAEO,KAAA,EALP,OAKO,EAAA;EACJ,CAAA;EAKH,MAAA,EAAA;IAIA,KAAA,EAZA,KAYA,EAAA;EAAa,CAAA;EAMZ,aAAO,CAAA,EAhBD,KAgBC,GAAA,IAAA;EAGV,UAAA,EAlBK,UAkBL;EACU,IAAA,EAAA,MAAA,EAAA;EAGR,WAAA,EAAA,MAAA;EAQQ,MAAA,EAAA,MAAA;EACT,WAAA,EAAA;IAAK,KAAA,EA1BJ,UA0BI,EAAA;EAQH,CAAA;EAWA,mBAAK,EAAA,OAAA;EAQL,gBAAU,EAAA,OACH;EAOP,OAAA,EAzDD,aAyDc,EAAA;AASzB,CAAA;AAQY,KApEA,OAAA,GAoEU;EAUV,EAAA,EAAA,MAAA;EAGH,KAAA,EAAA,MAAA;EAEU,KAAA,EAhFV,KAgFU;EACJ,cAAA,CAAA,EAhFI,KAgFJ,GAAA,IAAA;EAAM,gBAAA,EAAA,OAAA;EAOT,sBAAY,EAAA;IAYZ,KAAA,EAhGD,KAgGa,CAAA;MAQZ,IAAQ,EAAA;QAcR,WAAW,EAAA;UASX,EAAc,EAAA,MAAA;QASd,CAAA;MAQA,CAAA;IAsCA,CAAA,CAAA;EACJ,CAAA;EACG,eAAA,EAhLQ,cAgLR,EAAA;EACuB,KAAA,CAAA,EAhLxB,KAgLwB,GAAA,IAAA;EAAmB,GAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EACtB,iBAAA,CAAA,EAAA,MAAA;CAAO;KAzK1B,KAAA;;;EC/EA,OAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAMC,KAAA,CAAA,EAAA,MAAA;EASU,MAAA,CAAA,EAAA,MAAA;CAU2B;AAA8B,KDiEpE,KAAA,GCjEoE;EAAR,MAAA,EAAA,MAAA;EAkClB,YAAA,EAAA,MAAA;CAA8B;AAAR,KDuChE,UAAA,GCvCgE;EAAO,eAAA,EDwChE,KCxCgE;mBDyChE;;KAMP,aAAA;EEhGC,EAAA,CAAA,EAAA,MAAK;EAWkB,IAAA,EAAA,MAAA;EAAR,MAAA,EAAA,MAAA,EAAA;CAAuC;AAU3C,KFoFZ,cAAA,GEpFY;EAkCK,IAAA,EAAA,MAAA;EAgBkB,KAAA,EAAA,MAAA;CAAR;AAmBK,KFuBhC,UAAA,GEvBgC;EAmJa,EAAA,EAAA,MAAA;EAqFL,MAAA,EAAA,MAAA;EAQI,KAAA,EAAA,MAAA;EA1U3B,WAAA,CAAA,EAAA,MAAA;CAAK;KF2HtB,QAAA;;;EGxHC,KAAA,EH2HJ,YG3HY,EAAA;EAmBE,WAAA,EAAA,MAAA;EAAqC,cAAA,CAAA,EH0GzC,YG1GyC,EAAA;EAyBb,UAAA,CAAA,EHkFhC,MGlFgC,CAAA,MAAA,EAAA,GAAA,CAAA;EAAR,IAAA,CAAA,EAAA,MAAA,GAAA,IAAA;CAa8B;AAkBiB,KH0D1E,YAAA,GG1D0E;EAApB,EAAA,EAAA,MAAA;EAiDlC,QAAA,EAAA,MAAA;EAAR,UAAA,EAAA,MAAA;EAmBH,UAAA,EAAA,MAAA;EAIc,KAAA,EAAA,MAAA;CAAR;AAgCD,KHlCd,YAAA,GGkCc;EAAU,IAAA,EAAA,MAAA;EAnLJ,UAAA,EAAA,OAAA;CAAe;KHyJnC,QAAA;;;EIjKgC,KAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAAA,SAAA,CAAA,EAAA,MAAA,GAAA,IAAA;UAKd,CAAA,EAAA,MAAA,GAAc,IAAA;EAAA,WAAA,EAAA,MAAA;EAAA,UAAA,EAAA,OAAA;EAIhC,IAAA,EAAA,MAAA,EAAA;CACJ;AACG,KJoKC,WAAA,GIpKD;EAEiB,QAAA,CAAA,EAAA,MAAA,GAAA,MAAA;EAAmB,OAAA,CAAA,EAAA;IACtB,MAAA,EAAA,MAAA;IAAO,EAAA,EAAA,MAAA;IAKpB,IAAA,CAAA,EAAA,MAAA,EAAA;EAqBI,CAAA,GAAA,IAAA;EACd,UAAA,CAAA,EAAA;IACA,EAAA,EAAA,MAAA;EACA,CAAA,GAAA,IAAA;CACA;AACA,KJ2IU,cAAA,GI3IV;EACA,EAAA,EAAA,MAAA,GAAA,MAAA;EACA,SAAA,EAAA,MAAA,GAAA,MAAA;EACA,KAAA,CAAA,EAAA,MAAA,GAAA,MAAA;EACA,QAAA,CAAA,EAAA,MAAA;EACA,MAAA,CAAA,EAAA,MAAA;EACA,UAAA,CAAA,EJ2Ia,MI3Ib,CAAA,MAAA,EAAA,MAAA,CAAA;CACC;AAAwB,KJ6If,wBAAA,GI7Ie;EAAA,WAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,GAAA,MAAA;;;;;;ACvC3B,CAAA;KL4LY,iBAAA;;;IMzKI,IAAA,CAAA,EAAA,MAAU;;;;ECXV,MAAA,CAAA,EAAA,MAAW;YPoNf;;KAMA,cAAA;EQrPI,IAAA,ERsPR,KQtPQ;WRuPL;kCACuB,mBAAmB;+BACtB;;;;KCxPnB,sBAAA;;;;AFOZ,CAAA;AAU4B,cEXf,gBAAA,CFWe;EAMM,QAAA,qBAAA;EAAR,QAAA,UAAA;EAMW,QAAA,UAAA;EAoCA,QAAA,QAAA;EAKY,WAAA,CAAA,MAAA,EEvD1B,sBFuD0B;EAAO,KAAA,CAAA,IAAA,GAAA,CAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EE7CN,MF6CM,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,EE7CgB,OF6ChB,CE7CwB,CF6CxB,CAAA;EAWvC,MAAA,CAAA,IAAA,GAAA,CAAA,CAAA,QAAe,EAAA,MAAA,EAAA,SAAA,CAAA,EEtBsB,MFsBtB,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,EEtB4C,OFsB5C,CEtBoD,CFsBpD,CAAA;;;;cGvEnB,IAAA,YAAgB;EHHZ,QAAK,gBAAA;EAUM,QAAA,SAAA;EAMM,QAAA,IAAA;EAAR,QAAA,WAAA;EAMW,QAAA,UAAA;EAoCA,WAAA,CAAA,WAAA,EG5CT,OH4CS,CG5CD,UH4CC,CAAA,EAAA,gBAAA,EG5C8B,gBH4C9B,EAAA,UAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAKY,cAAA,CAAA,IAAA,EGvCzB,UHuCyB,CAAA,EAAA,IAAA;EAAO,eAAA,CAAA,CAAA,EAAA,IAAA;EAWvC,QAAA,CAAA,CAAA,EAAA,OAAe;EAIQ,QAAA,CAAA,QAAA,EAAA,CAAA,IAAA,EGpBX,QHoBW,EAAA,GAAA,IAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAAR,KAAA,CAAA,KAAA,CAAA,EAAA,OAAA,CAAA,EGJO,OHIP,CGJe,QHIf,GAAA,IAAA,CAAA;EAK8B,MAAA,CAAA,MAAA,EAAA,MAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EGUlB,OHVkB,CAAA,IAAA,CAAA;EAOiB,GAAA,CAAA,UAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,MAAA,CAAA,EGsJtB,OHtJsB,CAAA,IAAA,CAAA;EAApB,GAAA,CAAA,QAAA,CAAA,EAAA,MAAA,CAAA,EAAA,GAAA;EAyBlC,QAAA,CAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAAR,WAAA,CAAA,CAAA,EAAA,MAAA,EAAA;EAKG,WAAA,CAAA,CAAA,EAAA,MAAA;EAAW,QAAA,CAAA,SAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;sCG6MqB;iDAQI;EFnV5C,SAAA,CAAA,CAAA,EAAA,MAAW,GAAA,IAOX;EAMA,QAAA,UAAA;AAaZ;;;cGda,OAAA,YAAmB;;EJNf,QAAK,QAAA;EAUM,QAAA,MAAA;EAMM,QAAA,MAAA;EAAR,QAAA,WAAA;EAMW,QAAA,OAAA;EAoCA,QAAA,mBAAA;EAKY,WAAA,CAAA,MAAA,EItC1B,iBJsC0B,EAAA,gBAAA,EItCW,gBJsCX;EAAO,sBAAA,CAAA,KAAA,EAAA,MAAA,GAAA,IAAA,CAAA,EAAA,IAAA;EAWvC,YAAA,CAAA,MAAe,EAAA,MAAA,CAAA,EIxBO,OJwBP,CIxBe,WJwBf,CAAA;EAIQ,uBAAA,CAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EIf6B,OJe7B,CAAA,MAAA,EAAA,CAAA;EAAR,oBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EIGkC,OJHlC,CAAA;IAK8B,QAAA,EIFwB,WJExB,EAAA;IAOiB,MAAA,EAAA,MAAA;EAApB,CAAA,CAAA;EAyBlC,gBAAA,CAAA,OAAA,EAAA;IAAR,MAAA,EAAA,MAAA;EAKG,CAAA,CAAA,EAAA,MAAA;EAAW,qBAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;iBIUP,QAAQ;EHxIpB,cAAW,CAAA,CAAA,EG2JF,WHpJT;EAMA,cAAA,CAAA,OAAkB,EGkJH,OHlJG,CGkJK,WH3IF,CAAA,CAAA,EAAA,IAAA;EAMrB,YAAO,CAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAOR,SAAA,CAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAGA,eAAA,CAAA,CAAA,EAAA,MAAA;EAEO,aAAA,CAAA,OAAA,EGyJQ,OHzJR,CAAA,EGyJkB,WHzJlB;;;;ADhClB,QAAiB,MAAK,CAAA;EAUM,UAAA,MAAA,CAAA;IAMM,uBAAA,CAAA,EKbJ,cLaI;EAAR;;AA0CW,KKnDzB,sBAAA,GLmDyB;EAKY,IAAA,EKvDzC,ILuDyC;EAAO,OAAA,EKtD7C,OLsD6C;EAWvC,aAAA,EAAA,MAAe;EAIQ,cAAA,EAAA,CAAA,OAAA,EKnEZ,cLmEY,EAAA,GKnEO,OLmEP,CAAA,OAAA,CAAA;EAAR,eAAA,EAAA,GAAA,GKlEP,OLkEO,CAAA,OAAA,CAAA;CAK8B;AAOH,KKzE/C,wBAAA,GLyE+C;EAyBlC,aAAA,EAAA,MAAA;EAAR,qBAAA,EAAA,MAAA;EAKG,UAAA,EAAA,MAAA;EAAW,UAAA,CAAA,EAAA,MAAA;;;;IC9HnB,IAAA,EAAA,MAAW;IAaX,MAAA,EAAA,MAAA;IAaA,IAAA,EAAO,MAAA;EAOR,CAAA;EAGA,MAAA,CAAA,EAAA,MAAA;EAEO,OAAA,CAAA,EIFN,wBJEM;EACJ,QAAA,EIFF,SJEE;EAKH,mBAAA,CAAA,EAAA,MAAA,GAAA,IAAA;CAIA;AAAa,iBIJR,mBAAA,CJIQ;EAAA,aAAA;EAAA,qBAAA;EAAA,UAAA;EAAA,MAAA;EAAA,QAAA;EAAA,MAAA;EAAA,UAAA;EAAA,aAAA;EAAA,OAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EIQrB,wBJRqB,CAAA,EIQG,KAAA,CAAA,GAAA,CAAA,OJRH;;;iBK/BR,cAAA,CAAA,GAAmB;;;iBCmBnB,UAAA,CAAA,aAGqB,mBAAiB;;;iBCdtC,WAAA,CAAA,SAGe;;;iBC9Bf,cAAA,UAAyB,QAAQ"}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
|
+
import { CartReturn } from "@shopify/hydrogen";
|
|
3
|
+
|
|
4
|
+
//#region src/types/interfaces.d.ts
|
|
5
|
+
interface ICart {
|
|
6
|
+
isSynced(): boolean;
|
|
7
|
+
onChange(callback: (cart: CartData) => void): () => void;
|
|
8
|
+
fetch(force?: boolean): Promise<CartData | null>;
|
|
9
|
+
update(action: string, data: any): Promise<void>;
|
|
10
|
+
buy(variantId: string, quantity?: number): void;
|
|
11
|
+
get(property?: string): any;
|
|
12
|
+
getToken(): string | null;
|
|
13
|
+
getItemsIds(): string[];
|
|
14
|
+
getValue(currency?: string): number;
|
|
15
|
+
getSize(distinct?: boolean): number;
|
|
16
|
+
fetchCollections(force?: boolean): Promise<any>;
|
|
17
|
+
applyCoupon(code: string, expiresIn?: number): Promise<void>;
|
|
18
|
+
getCoupon(): string | null;
|
|
19
|
+
}
|
|
20
|
+
interface IShopifyAdapter {
|
|
21
|
+
fetchProduct(handle: string): Promise<ProductData>;
|
|
22
|
+
fetchProductCollections(handle: string, productId: number): Promise<any>;
|
|
23
|
+
fetchRecommendations(productId: number, intent: string): Promise<{
|
|
24
|
+
products: ProductData[];
|
|
25
|
+
intent: string;
|
|
26
|
+
}>;
|
|
27
|
+
buildProductPath(params: {
|
|
28
|
+
handle: string;
|
|
29
|
+
}): string;
|
|
30
|
+
convertToBaseCurrency(amount: number): number;
|
|
31
|
+
convertFromBaseCurrency(amount: number): number;
|
|
32
|
+
formatMoney(amount: number, includeDecimals: boolean): string;
|
|
33
|
+
getCustomer(): Promise<Customer | null>;
|
|
34
|
+
getPageContext(): PageContext;
|
|
35
|
+
getVisitorId(): string | null;
|
|
36
|
+
getMarket(): string | null;
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
//#region src/types/index.d.ts
|
|
40
|
+
type ProductData = {
|
|
41
|
+
id: number;
|
|
42
|
+
handle: string;
|
|
43
|
+
title: string;
|
|
44
|
+
available: boolean;
|
|
45
|
+
requires_selling_plan: boolean;
|
|
46
|
+
images: string[];
|
|
47
|
+
variants: ProductDataVariant[];
|
|
48
|
+
};
|
|
49
|
+
type ProductDataVariant = {
|
|
50
|
+
id: number;
|
|
51
|
+
title: string;
|
|
52
|
+
available: boolean;
|
|
53
|
+
price: number;
|
|
54
|
+
compare_at_price: number | null;
|
|
55
|
+
featured_image: {
|
|
56
|
+
src: string;
|
|
57
|
+
} | null;
|
|
58
|
+
selling_plan_allocations: Array<{
|
|
59
|
+
selling_plan_id: string;
|
|
60
|
+
}>;
|
|
61
|
+
};
|
|
62
|
+
type Product = {
|
|
63
|
+
id: string;
|
|
64
|
+
handle: string;
|
|
65
|
+
title: string;
|
|
66
|
+
description: string;
|
|
67
|
+
descriptionHtml: string;
|
|
68
|
+
variants: {
|
|
69
|
+
nodes: Variant[];
|
|
70
|
+
};
|
|
71
|
+
images: {
|
|
72
|
+
nodes: Image[];
|
|
73
|
+
};
|
|
74
|
+
featuredImage?: Image | null;
|
|
75
|
+
priceRange: PriceRange;
|
|
76
|
+
tags: string[];
|
|
77
|
+
productType: string;
|
|
78
|
+
vendor: string;
|
|
79
|
+
collections: {
|
|
80
|
+
nodes: Collection[];
|
|
81
|
+
};
|
|
82
|
+
requiresSellingPlan: boolean;
|
|
83
|
+
availableForSale: boolean;
|
|
84
|
+
options: ProductOption[];
|
|
85
|
+
};
|
|
86
|
+
type Variant = {
|
|
87
|
+
id: string;
|
|
88
|
+
title: string;
|
|
89
|
+
price: Money;
|
|
90
|
+
compareAtPrice?: Money | null;
|
|
91
|
+
availableForSale: boolean;
|
|
92
|
+
sellingPlanAllocations: {
|
|
93
|
+
edges: Array<{
|
|
94
|
+
node: {
|
|
95
|
+
sellingPlan: {
|
|
96
|
+
id: string;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
}>;
|
|
100
|
+
};
|
|
101
|
+
selectedOptions: SelectedOption[];
|
|
102
|
+
image?: Image | null;
|
|
103
|
+
sku?: string | null;
|
|
104
|
+
quantityAvailable?: number;
|
|
105
|
+
};
|
|
106
|
+
type Image = {
|
|
107
|
+
id?: string;
|
|
108
|
+
url: string;
|
|
109
|
+
altText?: string | null;
|
|
110
|
+
width?: number;
|
|
111
|
+
height?: number;
|
|
112
|
+
};
|
|
113
|
+
type Money = {
|
|
114
|
+
amount: string;
|
|
115
|
+
currencyCode: string;
|
|
116
|
+
};
|
|
117
|
+
type PriceRange = {
|
|
118
|
+
minVariantPrice: Money;
|
|
119
|
+
maxVariantPrice: Money;
|
|
120
|
+
};
|
|
121
|
+
type ProductOption = {
|
|
122
|
+
id?: string;
|
|
123
|
+
name: string;
|
|
124
|
+
values: string[];
|
|
125
|
+
};
|
|
126
|
+
type SelectedOption = {
|
|
127
|
+
name: string;
|
|
128
|
+
value: string;
|
|
129
|
+
};
|
|
130
|
+
type Collection = {
|
|
131
|
+
id: string;
|
|
132
|
+
handle: string;
|
|
133
|
+
title: string;
|
|
134
|
+
description?: string;
|
|
135
|
+
};
|
|
136
|
+
type CartData = {
|
|
137
|
+
token: string;
|
|
138
|
+
item_count: number;
|
|
139
|
+
items: CartDataItem[];
|
|
140
|
+
total_price: number;
|
|
141
|
+
discount_codes?: DiscountCode[];
|
|
142
|
+
attributes?: Record<string, any>;
|
|
143
|
+
note?: string | null;
|
|
144
|
+
};
|
|
145
|
+
type CartDataItem = {
|
|
146
|
+
id: number;
|
|
147
|
+
quantity: number;
|
|
148
|
+
product_id: number;
|
|
149
|
+
variant_id: number;
|
|
150
|
+
price: number;
|
|
151
|
+
};
|
|
152
|
+
type DiscountCode = {
|
|
153
|
+
code: string;
|
|
154
|
+
applicable: boolean;
|
|
155
|
+
};
|
|
156
|
+
type Customer = {
|
|
157
|
+
id: string;
|
|
158
|
+
email?: string | null;
|
|
159
|
+
phone?: string | null;
|
|
160
|
+
firstName?: string | null;
|
|
161
|
+
lastName?: string | null;
|
|
162
|
+
displayName: string;
|
|
163
|
+
hasAccount: boolean;
|
|
164
|
+
tags: string[];
|
|
165
|
+
};
|
|
166
|
+
type PageContext = {
|
|
167
|
+
pageType?: string | number;
|
|
168
|
+
product?: {
|
|
169
|
+
handle: string;
|
|
170
|
+
id: number;
|
|
171
|
+
tags?: string[];
|
|
172
|
+
} | null;
|
|
173
|
+
collection?: {
|
|
174
|
+
id: number;
|
|
175
|
+
} | null;
|
|
176
|
+
};
|
|
177
|
+
type CartAddProduct = {
|
|
178
|
+
id: string | number;
|
|
179
|
+
variantId: string | number;
|
|
180
|
+
price?: string | number;
|
|
181
|
+
quantity?: number;
|
|
182
|
+
handle?: string;
|
|
183
|
+
properties?: Record<string, string>;
|
|
184
|
+
};
|
|
185
|
+
type PersonizelyConfigMethods = {
|
|
186
|
+
formatMoney: (amount: number, includeDecimals: boolean) => string;
|
|
187
|
+
builtProductPath?: ({
|
|
188
|
+
handle
|
|
189
|
+
}: {
|
|
190
|
+
handle: string;
|
|
191
|
+
}) => string;
|
|
192
|
+
};
|
|
193
|
+
type PersonizelyConfig = {
|
|
194
|
+
locale?: string;
|
|
195
|
+
currency?: {
|
|
196
|
+
rate?: number;
|
|
197
|
+
active?: string;
|
|
198
|
+
base?: string;
|
|
199
|
+
};
|
|
200
|
+
market?: string;
|
|
201
|
+
methods?: PersonizelyConfigMethods;
|
|
202
|
+
};
|
|
203
|
+
type HydrogenConfig = {
|
|
204
|
+
cart: ICart;
|
|
205
|
+
adapter: IShopifyAdapter;
|
|
206
|
+
onCartAdd: (callback: (product: CartAddProduct) => Promise<boolean>) => () => void;
|
|
207
|
+
onCheckout: (callback: () => Promise<boolean>) => () => void;
|
|
208
|
+
};
|
|
209
|
+
//#endregion
|
|
210
|
+
//#region src/utils/storefront-client.d.ts
|
|
211
|
+
type StorefrontClientConfig = {
|
|
212
|
+
storefrontAccessToken: string;
|
|
213
|
+
shopDomain: string;
|
|
214
|
+
apiVersion?: string;
|
|
215
|
+
};
|
|
216
|
+
declare class StorefrontClient {
|
|
217
|
+
private storefrontAccessToken;
|
|
218
|
+
private shopDomain;
|
|
219
|
+
private apiVersion;
|
|
220
|
+
private endpoint;
|
|
221
|
+
constructor(config: StorefrontClientConfig);
|
|
222
|
+
query<T = any>(query: string, variables?: Record<string, any>): Promise<T>;
|
|
223
|
+
mutate<T = any>(mutation: string, variables?: Record<string, any>): Promise<T>;
|
|
224
|
+
}
|
|
225
|
+
//#endregion
|
|
226
|
+
//#region src/classes/Cart.d.ts
|
|
227
|
+
declare class Cart implements ICart {
|
|
228
|
+
private storefrontClient;
|
|
229
|
+
private listeners;
|
|
230
|
+
private cart;
|
|
231
|
+
private cartPromise;
|
|
232
|
+
private revalidate?;
|
|
233
|
+
constructor(cartPromise: Promise<CartReturn>, storefrontClient: StorefrontClient, revalidate?: () => void);
|
|
234
|
+
updateCartData(cart: CartReturn): void;
|
|
235
|
+
notifyListeners(): void;
|
|
236
|
+
isSynced(): boolean;
|
|
237
|
+
onChange(callback: (cart: CartData) => void): () => void;
|
|
238
|
+
fetch(force?: boolean): Promise<CartData | null>;
|
|
239
|
+
update(action: string, data: any): Promise<void>;
|
|
240
|
+
buy(_variantId: string, _quantity?: number): Promise<void>;
|
|
241
|
+
get(property?: string): any;
|
|
242
|
+
getToken(): string | null;
|
|
243
|
+
getItemsIds(): string[];
|
|
244
|
+
getCurrency(): string;
|
|
245
|
+
getValue(_currency?: string): number;
|
|
246
|
+
getSize(distinct?: boolean): number;
|
|
247
|
+
fetchCollections(_force?: boolean): Promise<any>;
|
|
248
|
+
applyCoupon(code: string, expiresIn?: number): Promise<void>;
|
|
249
|
+
getCoupon(): string | null;
|
|
250
|
+
private toCartData;
|
|
251
|
+
}
|
|
252
|
+
//#endregion
|
|
253
|
+
//#region src/classes/Adapter.d.ts
|
|
254
|
+
declare class Adapter implements IShopifyAdapter {
|
|
255
|
+
private client;
|
|
256
|
+
private currency;
|
|
257
|
+
private market;
|
|
258
|
+
private locale;
|
|
259
|
+
private pageContext;
|
|
260
|
+
private methods?;
|
|
261
|
+
private customerAccessToken;
|
|
262
|
+
constructor(config: PersonizelyConfig, storefrontClient: StorefrontClient);
|
|
263
|
+
setCustomerAccessToken(token: string | null): void;
|
|
264
|
+
fetchProduct(handle: string): Promise<ProductData>;
|
|
265
|
+
fetchProductCollections(handle: string, productId: number): Promise<number[]>;
|
|
266
|
+
fetchRecommendations(productId: number, intent: string): Promise<{
|
|
267
|
+
products: ProductData[];
|
|
268
|
+
intent: string;
|
|
269
|
+
}>;
|
|
270
|
+
buildProductPath(product: {
|
|
271
|
+
handle: string;
|
|
272
|
+
}): string;
|
|
273
|
+
convertToBaseCurrency(amount: number): number;
|
|
274
|
+
convertFromBaseCurrency(amount: number): number;
|
|
275
|
+
formatMoney(amount: number, includeDecimals?: boolean): string;
|
|
276
|
+
getCustomer(): Promise<Customer | null>;
|
|
277
|
+
getPageContext(): PageContext;
|
|
278
|
+
setPageContext(context: Partial<PageContext>): void;
|
|
279
|
+
getVisitorId(): string | null;
|
|
280
|
+
getMarket(): string | null;
|
|
281
|
+
getCurrencyRate(): number;
|
|
282
|
+
toProductData(product: Product): ProductData;
|
|
283
|
+
}
|
|
284
|
+
//#endregion
|
|
285
|
+
//#region src/components/PersonizelyProvider.d.ts
|
|
286
|
+
declare global {
|
|
287
|
+
interface Window {
|
|
288
|
+
__PLY_HYDROGEN_CONFIG__?: HydrogenConfig;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
type PersonizelyContextType = {
|
|
292
|
+
cart: Cart;
|
|
293
|
+
adapter: Adapter;
|
|
294
|
+
websiteApiKey: string;
|
|
295
|
+
triggerCartAdd: (product: CartAddProduct) => Promise<boolean>;
|
|
296
|
+
triggerCheckout: () => Promise<boolean>;
|
|
297
|
+
};
|
|
298
|
+
type PersonizelyProviderProps = {
|
|
299
|
+
websiteApiKey: string;
|
|
300
|
+
storefrontAccessToken: string;
|
|
301
|
+
shopDomain: string;
|
|
302
|
+
apiVersion?: string;
|
|
303
|
+
scriptBaseUrl?: string;
|
|
304
|
+
locale?: string;
|
|
305
|
+
currency?: {
|
|
306
|
+
rate: number;
|
|
307
|
+
active: string;
|
|
308
|
+
base: string;
|
|
309
|
+
};
|
|
310
|
+
market?: string;
|
|
311
|
+
methods?: PersonizelyConfigMethods;
|
|
312
|
+
children: ReactNode;
|
|
313
|
+
customerAccessToken?: string | null;
|
|
314
|
+
};
|
|
315
|
+
declare function PersonizelyProvider({
|
|
316
|
+
websiteApiKey,
|
|
317
|
+
storefrontAccessToken,
|
|
318
|
+
shopDomain,
|
|
319
|
+
locale,
|
|
320
|
+
currency,
|
|
321
|
+
market,
|
|
322
|
+
apiVersion,
|
|
323
|
+
scriptBaseUrl,
|
|
324
|
+
methods,
|
|
325
|
+
children,
|
|
326
|
+
customerAccessToken
|
|
327
|
+
}: PersonizelyProviderProps): React.JSX.Element;
|
|
328
|
+
//#endregion
|
|
329
|
+
//#region src/hooks/usePersonizely.d.ts
|
|
330
|
+
declare function usePersonizely(): PersonizelyContextType;
|
|
331
|
+
//#endregion
|
|
332
|
+
//#region src/hooks/useCartAdd.d.ts
|
|
333
|
+
declare function useCartAdd(): (product: CartAddProduct) => Promise<boolean>;
|
|
334
|
+
//#endregion
|
|
335
|
+
//#region src/hooks/useCheckout.d.ts
|
|
336
|
+
declare function useCheckout(): () => Promise<boolean>;
|
|
337
|
+
//#endregion
|
|
338
|
+
//#region src/hooks/usePageContext.d.ts
|
|
339
|
+
declare function usePageContext(context: Partial<PageContext>): void;
|
|
340
|
+
//#endregion
|
|
341
|
+
export { Adapter, Cart, type CartAddProduct, type HydrogenConfig, type ICart, type IShopifyAdapter, type PageContext, type PersonizelyConfig, type PersonizelyContextType, PersonizelyProvider, type PersonizelyProviderProps, useCartAdd, useCheckout, usePageContext, usePersonizely };
|
|
342
|
+
//# sourceMappingURL=index.d.mts.map
|