@tiledev/sdk-shopify 0.9.1 → 0.10.0

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.
Files changed (143) hide show
  1. package/README.md +650 -50
  2. package/dist/alertSettings.d.ts.map +1 -1
  3. package/dist/alertSettings.js +2 -0
  4. package/dist/alertSettings.js.map +1 -1
  5. package/dist/attribution.d.ts +21 -0
  6. package/dist/attribution.d.ts.map +1 -1
  7. package/dist/attribution.js +17 -0
  8. package/dist/attribution.js.map +1 -1
  9. package/dist/auth/pkce.d.ts +30 -0
  10. package/dist/auth/pkce.d.ts.map +1 -0
  11. package/dist/auth/pkce.js +128 -0
  12. package/dist/auth/pkce.js.map +1 -0
  13. package/dist/auth/session.d.ts +118 -0
  14. package/dist/auth/session.d.ts.map +1 -0
  15. package/dist/auth/session.js +896 -0
  16. package/dist/auth/session.js.map +1 -0
  17. package/dist/auth/storeCredit.d.ts +64 -0
  18. package/dist/auth/storeCredit.d.ts.map +1 -0
  19. package/dist/auth/storeCredit.js +274 -0
  20. package/dist/auth/storeCredit.js.map +1 -0
  21. package/dist/cart.d.ts +25 -1
  22. package/dist/cart.d.ts.map +1 -1
  23. package/dist/cart.js +95 -2
  24. package/dist/cart.js.map +1 -1
  25. package/dist/cartPolicy.js +4 -4
  26. package/dist/checkout.d.ts +123 -0
  27. package/dist/checkout.d.ts.map +1 -0
  28. package/dist/checkout.js +205 -0
  29. package/dist/checkout.js.map +1 -0
  30. package/dist/customer.d.ts.map +1 -1
  31. package/dist/customer.js +8 -0
  32. package/dist/customer.js.map +1 -1
  33. package/dist/index.d.ts +12 -4
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +74 -2
  36. package/dist/index.js.map +1 -1
  37. package/dist/messages.d.ts.map +1 -1
  38. package/dist/messages.js +2 -0
  39. package/dist/messages.js.map +1 -1
  40. package/dist/money.d.ts +16 -0
  41. package/dist/money.d.ts.map +1 -1
  42. package/dist/money.js +55 -0
  43. package/dist/money.js.map +1 -1
  44. package/dist/orders.d.ts +99 -0
  45. package/dist/orders.d.ts.map +1 -0
  46. package/dist/orders.js +439 -0
  47. package/dist/orders.js.map +1 -0
  48. package/dist/productPage.d.ts +100 -0
  49. package/dist/productPage.d.ts.map +1 -0
  50. package/dist/productPage.js +298 -0
  51. package/dist/productPage.js.map +1 -0
  52. package/dist/productStore.d.ts +1 -1
  53. package/dist/productStore.d.ts.map +1 -1
  54. package/dist/productStore.js +63 -5
  55. package/dist/productStore.js.map +1 -1
  56. package/dist/products.d.ts.map +1 -1
  57. package/dist/products.js +15 -3
  58. package/dist/products.js.map +1 -1
  59. package/dist/purchaseRules.d.ts +74 -0
  60. package/dist/purchaseRules.d.ts.map +1 -0
  61. package/dist/purchaseRules.js +73 -0
  62. package/dist/purchaseRules.js.map +1 -0
  63. package/dist/queries.d.ts +15 -13
  64. package/dist/queries.d.ts.map +1 -1
  65. package/dist/queries.js +43 -7
  66. package/dist/queries.js.map +1 -1
  67. package/dist/react/ShopifyProvider.d.ts +167 -25
  68. package/dist/react/ShopifyProvider.d.ts.map +1 -1
  69. package/dist/react/ShopifyProvider.js +352 -207
  70. package/dist/react/ShopifyProvider.js.map +1 -1
  71. package/dist/react/appForeground.d.ts +6 -0
  72. package/dist/react/appForeground.d.ts.map +1 -0
  73. package/dist/react/appForeground.js +19 -0
  74. package/dist/react/appForeground.js.map +1 -0
  75. package/dist/react/appForeground.native.d.ts +2 -0
  76. package/dist/react/appForeground.native.d.ts.map +1 -0
  77. package/dist/react/appForeground.native.js +23 -0
  78. package/dist/react/appForeground.native.js.map +1 -0
  79. package/dist/react/index.d.ts +7 -1
  80. package/dist/react/index.d.ts.map +1 -1
  81. package/dist/react/index.js +23 -1
  82. package/dist/react/index.js.map +1 -1
  83. package/dist/react/tileCreditClient.d.ts +4 -0
  84. package/dist/react/tileCreditClient.d.ts.map +1 -0
  85. package/dist/react/tileCreditClient.js +27 -0
  86. package/dist/react/tileCreditClient.js.map +1 -0
  87. package/dist/react/useAppDiscountCode.d.ts +19 -0
  88. package/dist/react/useAppDiscountCode.d.ts.map +1 -0
  89. package/dist/react/useAppDiscountCode.js +44 -0
  90. package/dist/react/useAppDiscountCode.js.map +1 -0
  91. package/dist/react/useCartStoreCredit.d.ts +25 -0
  92. package/dist/react/useCartStoreCredit.d.ts.map +1 -0
  93. package/dist/react/useCartStoreCredit.js +292 -0
  94. package/dist/react/useCartStoreCredit.js.map +1 -0
  95. package/dist/react/useOrders.d.ts +104 -0
  96. package/dist/react/useOrders.d.ts.map +1 -0
  97. package/dist/react/useOrders.js +287 -0
  98. package/dist/react/useOrders.js.map +1 -0
  99. package/dist/react/useProduct.d.ts.map +1 -1
  100. package/dist/react/useProduct.js +1 -9
  101. package/dist/react/useProduct.js.map +1 -1
  102. package/dist/react/useProductPage.d.ts +148 -0
  103. package/dist/react/useProductPage.d.ts.map +1 -0
  104. package/dist/react/useProductPage.js +178 -0
  105. package/dist/react/useProductPage.js.map +1 -0
  106. package/dist/react/useProductRecommendations.d.ts +27 -0
  107. package/dist/react/useProductRecommendations.d.ts.map +1 -0
  108. package/dist/react/useProductRecommendations.js +76 -0
  109. package/dist/react/useProductRecommendations.js.map +1 -0
  110. package/dist/react/useStoreCredit.d.ts +58 -0
  111. package/dist/react/useStoreCredit.d.ts.map +1 -0
  112. package/dist/react/useStoreCredit.js +209 -0
  113. package/dist/react/useStoreCredit.js.map +1 -0
  114. package/dist/react/useTileCredit.d.ts +4 -3
  115. package/dist/react/useTileCredit.d.ts.map +1 -1
  116. package/dist/react/useTileCredit.js +63 -55
  117. package/dist/react/useTileCredit.js.map +1 -1
  118. package/dist/shopify.d.ts.map +1 -1
  119. package/dist/shopify.js +2 -0
  120. package/dist/shopify.js.map +1 -1
  121. package/dist/storedList.d.ts +27 -0
  122. package/dist/storedList.d.ts.map +1 -0
  123. package/dist/storedList.js +152 -0
  124. package/dist/storedList.js.map +1 -0
  125. package/dist/tileCredit.d.ts +25 -10
  126. package/dist/tileCredit.d.ts.map +1 -1
  127. package/dist/tileCredit.js +97 -45
  128. package/dist/tileCredit.js.map +1 -1
  129. package/dist/types.d.ts +407 -34
  130. package/dist/types.d.ts.map +1 -1
  131. package/dist/types.js +1 -2
  132. package/dist/types.js.map +1 -1
  133. package/dist/variants.d.ts.map +1 -1
  134. package/dist/variants.js +4 -3
  135. package/dist/variants.js.map +1 -1
  136. package/dist/waitlist.d.ts +4 -0
  137. package/dist/waitlist.d.ts.map +1 -0
  138. package/dist/waitlist.js +213 -0
  139. package/dist/waitlist.js.map +1 -0
  140. package/dist/wishlist.d.ts.map +1 -1
  141. package/dist/wishlist.js +70 -47
  142. package/dist/wishlist.js.map +1 -1
  143. package/package.json +2 -2
@@ -1,6 +1,8 @@
1
1
  import { ReactNode } from "react";
2
+ import { type CheckoutPreparation, type PrepareCheckoutOptions } from "../checkout";
2
3
  import type { AttributionSource } from "../attribution";
3
- import type { AlertMessageKey, AlertMessages, Cart, CartAttribute, CartLineAttribute, CartLineGuard, CartLineInput, CartPolicy, CartWriteResult, Customer, MessageResolver, Product, ShopifyConfig, WishlistItem, WishlistStorageAdapter } from "../types";
4
+ import { type ProfileChanges, type SignupInput } from "../auth/session";
5
+ import type { AlertMessageKey, AuthMethod, AuthOptions, AlertMessages, Cart, CartLine, CartAttribute, CartLineAttribute, CartLineGuard, CartLineInput, CartPolicy, CartWriteResult, Customer, MessageResolver, Product, ShopifyConfig, SignInAttempt, StoreCreditOptions, WaitlistEntryInput, WaitlistItem, WishlistItem, WishlistStorageAdapter } from "../types";
4
6
  interface CartState {
5
7
  cart: Cart | null;
6
8
  loading: boolean;
@@ -18,8 +20,15 @@ interface CartState {
18
20
  /**
19
21
  * Returns the resulting cart, `null` when nothing landed. One unsellable line fails the whole
20
22
  * `cartLinesAdd`, so a rejected batch is retried line by line and the successes are kept.
23
+ *
24
+ * `options.quiet`: the caller reports the outcome itself. Every `cartGuard.beforeAdd` is passed it
25
+ * (so the guard says nothing about a refusal), and the one `cart:outOfStock` the line-by-line retry
26
+ * raises for the lines Shopify refused is not emitted. `cart:add` (something landed) and
27
+ * `cart:limitExceeded` (the line limit refused the whole batch) still are.
21
28
  */
22
- addLines: (inputs: CartLineInput[]) => Promise<Cart | null>;
29
+ addLines: (inputs: CartLineInput[], options?: {
30
+ quiet?: boolean;
31
+ }) => Promise<Cart | null>;
23
32
  /**
24
33
  * `false` when a `cartGuard` cancelled the increase. `attributes` REPLACE the line's set —
25
34
  * Shopify does not merge them — so omit the argument to leave them untouched. `opts.source` is
@@ -46,6 +55,25 @@ interface CartState {
46
55
  countryCode?: string;
47
56
  customerAccessToken?: string;
48
57
  }) => Promise<boolean>;
58
+ /**
59
+ * Adds gift-card codes to the cart and keeps the cards already on it (`cartGiftCardCodesAdd`), in
60
+ * the cart's write queue like every other write. Returns the cart; null when there is no cart yet
61
+ * (none is created for this).
62
+ *
63
+ * Shopify takes a gift card only on a cart with a country, so a cart without one gets the
64
+ * provider's `config.country` (else the shop's) first, keeping its email and, when signed in, the
65
+ * shopper's link. A cart that has a country keeps its buyer identity untouched.
66
+ *
67
+ * Throws a `ShopifyError` when Shopify refuses a code (its `userErrors`), and also when it answers
68
+ * without applying one, which it does without an error (`code: 'GIFT_CARD_NOT_APPLIED'`, the cart
69
+ * still updated). Gift cards change no lines, so `cartGuard` isn't asked.
70
+ */
71
+ addGiftCardCodes: (codes: string[]) => Promise<Cart | null>;
72
+ /**
73
+ * Takes the given gift cards off the cart by their `AppliedGiftCard.id` (not the code), leaving every
74
+ * other card on it, in the write queue. Null when there is no cart.
75
+ */
76
+ removeGiftCards: (appliedGiftCardIds: string[]) => Promise<Cart | null>;
49
77
  /** Re-reads the cart and returns it, so a caller need not wait for the re-render. */
50
78
  refresh: () => Promise<Cart | null>;
51
79
  /**
@@ -82,45 +110,96 @@ interface WishlistState {
82
110
  clear: () => Promise<void>;
83
111
  refresh: () => Promise<void>;
84
112
  }
113
+ /** The sizes or colours the shopper is waiting on, kept on the device (see `WaitlistItem`). */
114
+ interface WaitlistState {
115
+ items: WaitlistItem[];
116
+ /** The variant ids waited on, in `items` order. The same array until the list changes. */
117
+ ids: string[];
118
+ count: number;
119
+ has: (variantId: string) => boolean;
120
+ /** Emits `waitlist:add` ("Added to waitlist"). */
121
+ add: (entry: WaitlistEntryInput) => Promise<void>;
122
+ /** Emits `waitlist:remove`, which carries no message: removing raises no toast. */
123
+ remove: (variantId: string) => Promise<void>;
124
+ /** Fetches every variant again; rejects, changing nothing, when it can't (offline). */
125
+ refresh: () => Promise<void>;
126
+ }
85
127
  /**
86
- * The customer session, so the four Login alerts have somewhere to originate.
87
- * `shopify.customer.*` stays available for everything else; this owns only what
88
- * a session needs — the token, who it belongs to, and the events.
128
+ * The shopper's session, for both ways of signing in: email and password (`login`, `signup`,
129
+ * `recoverPassword`) and Shopify's web sign-in (`signIn`, `startSignIn`). `auth.method` on the
130
+ * provider says which one the app offers now; `sessionKind` says which one the current session is.
131
+ * The session itself lives in `auth/session.ts`; base cases in test/auth-*.test.mjs.
89
132
  */
90
133
  interface CustomerState {
91
134
  customer: Customer | null;
92
- /** True once a stored token has been exchanged for a profile. */
135
+ /**
136
+ * A session exists. Offline on app open it can be true while `customer` is still null: the
137
+ * profile loads on the next `refresh()`.
138
+ */
93
139
  loggedIn: boolean;
94
- /** The stored access token, for callers that need it (Tile Credit, checkout). */
140
+ /** The current access token, possibly stale. Callers that send it somewhere use `getAccessToken()`. */
95
141
  accessToken: string | null;
96
142
  loading: boolean;
97
- /** Restoring a stored token on mount — distinct from "logged out". */
143
+ /** Reading a stored session on app open, as distinct from "signed out". */
98
144
  restoring: boolean;
99
- /** `false` on bad credentials, which emits `auth:loginFailed`. Everything else throws. */
145
+ /** Which sign-in the app offers now: `auth.method`, `password` when unset. */
146
+ method: AuthMethod;
147
+ /** How the current session was signed in; null when signed out. */
148
+ sessionKind: AuthMethod | null;
149
+ /** Password sign-in. `false` on bad credentials, which emits `auth:loginFailed`. Everything else throws. */
100
150
  login: (email: string, password: string) => Promise<boolean>;
101
- signup: (input: {
102
- email: string;
103
- password: string;
104
- firstName?: string;
105
- lastName?: string;
106
- acceptsMarketing?: boolean;
107
- }) => Promise<boolean>;
108
- /** Always resolves — Shopify refusing the token delete still ends the local session. */
151
+ signup: (input: SignupInput) => Promise<boolean>;
152
+ /** Always resolves: Shopify being unreachable still ends the local session. */
109
153
  logout: () => Promise<void>;
110
154
  /** Emits `auth:recoverSent`. Shopify does not reveal whether the email exists. */
111
155
  recoverPassword: (email: string) => Promise<void>;
112
- /** Re-reads the profile for the stored token. Null if the token no longer resolves. */
156
+ /** Re-reads the profile. Null when signed out or the session ended. */
113
157
  refresh: () => Promise<Customer | null>;
158
+ /**
159
+ * Changes the name and email marketing consent, for either kind of session, sending only what
160
+ * differs from `customer`. `true` once Shopify accepted it all, with `customer` showing the new
161
+ * values. `false` when signed out, refused or offline (logged with `console.warn`). Never throws.
162
+ */
163
+ updateProfile: (changes: ProfileChanges) => Promise<boolean>;
164
+ /**
165
+ * Shopify web sign-in in the system browser sheet (`auth.openAuthSession`). `false` when the
166
+ * shopper backs out (no event) or Shopify refuses (`auth:loginFailed`). Throws when offline.
167
+ */
168
+ signIn: () => Promise<boolean>;
169
+ /** Shopify web sign-in in the app's own web view. See `SignInAttempt`. */
170
+ startSignIn: () => SignInAttempt;
171
+ /** A usable access token, refreshed when needed. Null when signed out or the session ended. */
172
+ getAccessToken: () => Promise<string | null>;
173
+ /**
174
+ * A token renewed now, even if the current one looks valid: for a service that just answered 401
175
+ * (Tile Credit does). A Shopify session refreshes, sharing a refresh already on its way; a password
176
+ * session can't renew, so null. It never signs the shopper out; only Shopify refusing the refresh
177
+ * ends the session, as it would anyway. Throws when offline.
178
+ */
179
+ renewAccessToken: () => Promise<string | null>;
180
+ /** A Customer Account API GraphQL call for the signed-in shopper (`shopify` sessions only). */
181
+ request: <T>(query: string, variables?: Record<string, unknown>) => Promise<T>;
114
182
  }
115
183
  /**
116
184
  * Checkout is Shopify-hosted, so the SDK cannot see the outcome itself. The host
117
185
  * webview reports it here and gets the configured copy on the event, rather than
118
186
  * every app hard-coding "Your order has been placed".
119
187
  *
120
- * A `checkout.observe(url)` helper that classifies the return URL is the next
121
- * piece of work; this is the seam it will emit through.
188
+ * Before it opens, `prepare` gets the cart ready (SDK move 6); the page's address says when the order
189
+ * is placed (`isOrderPlacedUrl`, `../checkout`).
122
190
  */
123
191
  interface CheckoutState {
192
+ /**
193
+ * Gets the cart ready for checkout: reads it again, checks for a reservation that ran out
194
+ * (`options.hasLapsedHold`), attaches the signed-in shopper with the cart's country, lands the
195
+ * cart's attribution and the provider's `cartAttributes` (with 0.9.1's attribution), and reports
196
+ * the start. Answers `ready`,
197
+ * `empty`, `lapsedHold` or `failed` (`prepareCheckout` in `../checkout` has the rule). Never throws.
198
+ * Going to the checkout page is the app's, on `ready`.
199
+ */
200
+ prepare: (options?: PrepareCheckoutOptions) => Promise<CheckoutPreparation>;
201
+ /** This hook's `prepare` is running (for a spinner on the button that started it). */
202
+ preparing: boolean;
124
203
  /**
125
204
  * Call as checkout opens for the shared cart. A checked-out cart reads back null exactly like an
126
205
  * expired one, so without this a missed `reportOrderPlaced` would refill the cart on next launch
@@ -140,11 +219,19 @@ interface ShopifyContextType {
140
219
  error: string | null;
141
220
  cart: CartState;
142
221
  wishlist: WishlistState;
222
+ waitlist: WaitlistState;
143
223
  customer: CustomerState;
144
- checkout: CheckoutState;
224
+ /** `useCheckout()` adds `preparing`, which is each caller's own. */
225
+ checkout: Omit<CheckoutState, "preparing">;
226
+ /** The app's store-credit choice, read by `useStoreCredit`. */
227
+ storeCredit: StoreCreditOptions | null;
145
228
  /** Resolved alert copy, for labelling UI that isn't a toast — e.g. the
146
229
  * empty-wishlist placeholder (`wishlist.empty`), which has no event. */
147
230
  message: (key: AlertMessageKey) => string;
231
+ /** Every event the provider raises, for `useShopifyEvents` (0.10). */
232
+ events: {
233
+ subscribe: (listener: (event: ShopifyEvent) => void) => () => void;
234
+ };
148
235
  }
149
236
  /**
150
237
  * Everything the host may want to tell the shopper about. One event per alert the
@@ -154,7 +241,9 @@ interface ShopifyContextType {
154
241
  * signal as much as a success does, and wrapping every call in try/catch to find
155
242
  * out is what this replaces. Errors still throw for callers that want them.
156
243
  */
157
- export type ShopifyEventType = "cart:add" | "cart:update" | "cart:remove" | "cart:limitExceeded" | "cart:outOfStock" | "cart:buyerIdentity" | "wishlist:add" | "wishlist:remove" | "auth:loginSuccess" | "auth:loginFailed" | "auth:signup" | "auth:logout" | "auth:recoverSent" | "checkout:orderPlaced" | "checkout:paymentFailed";
244
+ export type ShopifyEventType = "cart:add" | "cart:update" | "cart:remove" | "cart:limitExceeded" | "cart:stockLimit" | "cart:outOfStock" | "cart:buyerIdentity" | "wishlist:add" | "wishlist:remove" | "waitlist:add" | "waitlist:remove" | "auth:loginSuccess" | "auth:loginFailed" | "auth:signup" | "auth:logout" | "auth:recoverSent"
245
+ /** A session Shopify stopped accepting, while the app was in use. No message: a host may route to sign-in. */
246
+ | "auth:sessionExpired" | "checkout:orderPlaced" | "checkout:paymentFailed";
158
247
  export interface ShopifyEvent {
159
248
  type: ShopifyEventType;
160
249
  /** How to present it — a toast tone, not a log level. */
@@ -169,6 +258,32 @@ export interface ShopifyEvent {
169
258
  messageKey?: AlertMessageKey;
170
259
  /** Present on failures. `ShopifyError.errors` carries the Shopify codes. */
171
260
  error?: unknown;
261
+ /**
262
+ * The cart after the write, on `cart:add`, `cart:update` and `cart:remove` (0.10). A listener can
263
+ * report from it straight away: React's `useCart().cart` hasn't caught up when the event arrives.
264
+ */
265
+ cart?: Cart;
266
+ /**
267
+ * The lines the write changed, on the same three events (0.10): usually one; an `addLines` that
268
+ * landed several lines lists each once. Empty when the line wasn't in the cart the write started from.
269
+ */
270
+ changedLines?: CartLineChange[];
271
+ /** The product saved or unsaved, on `wishlist:add` and `wishlist:remove` (0.10). */
272
+ productId?: string;
273
+ /**
274
+ * The signed-in customer, on `auth:loginSuccess` (0.10). Null when their profile hadn't loaded when
275
+ * the sign-in finished: `useCustomer().customer` has it once it does.
276
+ */
277
+ customer?: Customer | null;
278
+ /** How that session signed in (`useCustomer().sessionKind`), on `auth:loginSuccess` (0.10). */
279
+ sessionKind?: AuthMethod | null;
280
+ }
281
+ /** One cart line a write changed, on `ShopifyEvent.changedLines`. */
282
+ export interface CartLineChange {
283
+ /** The line after the write. For a line the write took out of the cart, the line as it was. */
284
+ line: CartLine;
285
+ /** Units added (above 0) or taken away (below 0). 0 when only the line's attributes changed. */
286
+ quantityChange: number;
172
287
  }
173
288
  export interface ShopifyProviderProps {
174
289
  children: ReactNode;
@@ -184,6 +299,14 @@ export interface ShopifyProviderProps {
184
299
  cartGuard?: CartLineGuard;
185
300
  /** See `WishlistInitOptions.keepDeleted`. Recommended for a shopper-facing wishlist. */
186
301
  wishlistKeepDeleted?: boolean;
302
+ /** See `WishlistInitOptions.storageKey`: an app moving from Apptile's engine passes its old key. */
303
+ wishlistStorageKey?: string;
304
+ /** See `WishlistInitOptions.migrateFrom`: keys an earlier app kept its wishlist under. */
305
+ wishlistMigrateFrom?: string[];
306
+ /** See `WaitlistInitOptions.storageKey`: an app moving from Apptile's engine passes its old key. */
307
+ waitlistStorageKey?: string;
308
+ /** See `WaitlistInitOptions.migrateFrom`: keys an earlier app kept its waitlist under. */
309
+ waitlistMigrateFrom?: string[];
187
310
  /**
188
311
  * Alert copy, outside `config` so a Live Layer publish can change it without
189
312
  * re-running `init` (which would re-load the shop and re-create the cart).
@@ -204,6 +327,13 @@ export interface ShopifyProviderProps {
204
327
  * sets it here or the cart goes out anonymous.
205
328
  */
206
329
  cartAttributes?: CartAttribute[];
330
+ /**
331
+ * How shoppers sign in. Unset: email and password only, as before. `method` can change while the
332
+ * app runs: `password` for App Store review, `shopify` for shoppers.
333
+ */
334
+ auth?: AuthOptions;
335
+ /** Where store credit comes from, for `useStoreCredit`. Unset: the app shows none. */
336
+ storeCredit?: StoreCreditOptions;
207
337
  /**
208
338
  * Records where the cart's units came from (live show, replay, or the rest of the app) in the
209
339
  * `_apptile_attribution` cart attribute, after each line write lands. Off by default.
@@ -212,18 +342,30 @@ export interface ShopifyProviderProps {
212
342
  enabled: boolean;
213
343
  };
214
344
  }
215
- export declare function ShopifyProvider({ children, config, storage, onEvent, cartGuard, wishlistKeepDeleted, messages, translate, cartPolicy, cartAttributes, attribution, }: ShopifyProviderProps): import("react").JSX.Element;
345
+ export declare function ShopifyProvider({ children, config, storage, onEvent, cartGuard, wishlistKeepDeleted, wishlistStorageKey, wishlistMigrateFrom, waitlistStorageKey, waitlistMigrateFrom, messages, translate, cartPolicy, cartAttributes, auth, storeCredit, attribution, }: ShopifyProviderProps): import("react").JSX.Element;
216
346
  export declare function useShopify(): ShopifyContextType;
217
347
  export declare function useCart(): CartState;
218
348
  export declare function useWishlist(): WishlistState;
349
+ export declare function useWaitlist(): WaitlistState;
219
350
  /** Customer session — the source of the four Login alerts. */
220
351
  export declare function useCustomer(): CustomerState;
221
- /** Reports a hosted-checkout outcome so the two Checkout alerts can fire. */
352
+ /**
353
+ * Gets the cart ready before checkout opens (`prepare`, with this caller's own `preparing`), and
354
+ * reports a hosted-checkout outcome so the two Checkout alerts can fire.
355
+ */
222
356
  export declare function useCheckout(): CheckoutState;
357
+ /**
358
+ * Hears every event the provider raises, from anywhere inside it (0.10): the same events `onEvent`
359
+ * gets, told right after it, in the order they happen. Cart events carry the cart and the lines they
360
+ * changed, so a listener reports from the event rather than waiting for `useCart()` to catch up. The
361
+ * listener is read when an event fires, so a new function each render is fine. It starts hearing once
362
+ * the component has mounted and stops when it unmounts.
363
+ */
364
+ export declare function useShopifyEvents(listener: (event: ShopifyEvent) => void): void;
223
365
  /**
224
366
  * Resolved alert copy, for UI that isn't a toast — the empty-wishlist
225
367
  * placeholder (`wishlist.empty`) is configurable but has no event.
226
368
  */
227
369
  export declare function useShopifyMessage(): (key: AlertMessageKey) => string;
228
- export type { CartState, WishlistState, CustomerState, CheckoutState };
370
+ export type { CartState, WishlistState, WaitlistState, CustomerState, CheckoutState };
229
371
  //# sourceMappingURL=ShopifyProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShopifyProvider.d.ts","sourceRoot":"","sources":["../../src/react/ShopifyProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShopifyProvider.d.ts","sourceRoot":"","sources":["../../src/react/ShopifyProvider.tsx"],"names":[],"mappings":"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"}