@tagadapay/headless-sdk 1.1.1 → 1.3.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 (64) hide show
  1. package/dist/core/client.d.ts +2 -5
  2. package/dist/core/client.d.ts.map +1 -1
  3. package/dist/core/client.js +1 -3
  4. package/dist/core/client.js.map +1 -1
  5. package/dist/core/helpers/autocomplete.d.ts +89 -0
  6. package/dist/core/helpers/autocomplete.d.ts.map +1 -0
  7. package/dist/core/helpers/autocomplete.js +186 -0
  8. package/dist/core/helpers/autocomplete.js.map +1 -0
  9. package/dist/core/helpers/countries.d.ts +45 -0
  10. package/dist/core/helpers/countries.d.ts.map +1 -0
  11. package/dist/core/helpers/countries.js +65 -0
  12. package/dist/core/helpers/countries.js.map +1 -0
  13. package/dist/core/helpers/currency.d.ts +26 -0
  14. package/dist/core/helpers/currency.d.ts.map +1 -0
  15. package/dist/core/helpers/currency.js +72 -0
  16. package/dist/core/helpers/currency.js.map +1 -0
  17. package/dist/core/helpers/index.d.ts +5 -0
  18. package/dist/core/helpers/index.d.ts.map +1 -0
  19. package/dist/core/helpers/index.js +5 -0
  20. package/dist/core/helpers/index.js.map +1 -0
  21. package/dist/core/helpers/iso3166.d.ts +28 -0
  22. package/dist/core/helpers/iso3166.d.ts.map +1 -0
  23. package/dist/core/helpers/iso3166.js +84 -0
  24. package/dist/core/helpers/iso3166.js.map +1 -0
  25. package/dist/core/index.d.ts +3 -2
  26. package/dist/core/index.d.ts.map +1 -1
  27. package/dist/core/index.js +2 -1
  28. package/dist/core/index.js.map +1 -1
  29. package/dist/core/modules/offers.d.ts +64 -23
  30. package/dist/core/modules/offers.d.ts.map +1 -1
  31. package/dist/core/modules/offers.js +70 -33
  32. package/dist/core/modules/offers.js.map +1 -1
  33. package/dist/core/types.d.ts +26 -16
  34. package/dist/core/types.d.ts.map +1 -1
  35. package/dist/react/hooks/useGoogleAutocomplete.d.ts +26 -0
  36. package/dist/react/hooks/useGoogleAutocomplete.d.ts.map +1 -0
  37. package/dist/react/hooks/useGoogleAutocomplete.js +70 -0
  38. package/dist/react/hooks/useGoogleAutocomplete.js.map +1 -0
  39. package/dist/react/hooks/useISOData.d.ts +23 -0
  40. package/dist/react/hooks/useISOData.d.ts.map +1 -0
  41. package/dist/react/hooks/useISOData.js +63 -0
  42. package/dist/react/hooks/useISOData.js.map +1 -0
  43. package/dist/react/hooks/useOffers.d.ts +63 -22
  44. package/dist/react/hooks/useOffers.d.ts.map +1 -1
  45. package/dist/react/hooks/useOffers.js +36 -52
  46. package/dist/react/hooks/useOffers.js.map +1 -1
  47. package/dist/react/index.d.ts +7 -3
  48. package/dist/react/index.d.ts.map +1 -1
  49. package/dist/react/index.js +4 -1
  50. package/dist/react/index.js.map +1 -1
  51. package/dist/tagada-headless-react.min.js +2 -2
  52. package/dist/tagada-headless-react.min.js.map +4 -4
  53. package/dist/tagada-headless.js +536 -292
  54. package/dist/tagada-headless.min.js +2 -2
  55. package/dist/tagada-headless.min.js.map +4 -4
  56. package/package.json +3 -3
  57. package/dist/core/modules/analytics.d.ts +0 -79
  58. package/dist/core/modules/analytics.d.ts.map +0 -1
  59. package/dist/core/modules/analytics.js +0 -265
  60. package/dist/core/modules/analytics.js.map +0 -1
  61. package/dist/react/hooks/useAnalytics.d.ts +0 -59
  62. package/dist/react/hooks/useAnalytics.d.ts.map +0 -1
  63. package/dist/react/hooks/useAnalytics.js +0 -49
  64. package/dist/react/hooks/useAnalytics.js.map +0 -1
@@ -0,0 +1,70 @@
1
+ /**
2
+ * React hook for Google Places Autocomplete — handles script injection,
3
+ * debounced prediction search, place detail fetching, and address extraction.
4
+ */
5
+ import { useCallback, useEffect, useRef, useState } from 'react';
6
+ import { GoogleAutocompleteCore, loadGoogleMapsScript, } from '../../core/helpers/autocomplete.js';
7
+ export function useGoogleAutocomplete(options) {
8
+ const { apiKey, language, region, version, defer = false } = options;
9
+ const [predictions, setPredictions] = useState([]);
10
+ const [isLoading, setIsLoading] = useState(false);
11
+ const [isScriptLoaded, setIsScriptLoaded] = useState(false);
12
+ const debounceRef = useRef(null);
13
+ const pendingRef = useRef(null);
14
+ const inject = useCallback(() => {
15
+ loadGoogleMapsScript(apiKey, { language, region, version }).then(() => setIsScriptLoaded(true));
16
+ }, [apiKey, language, region, version]);
17
+ // Eager load unless defer
18
+ useEffect(() => {
19
+ if (!apiKey || defer)
20
+ return;
21
+ inject();
22
+ }, [apiKey, defer, inject]);
23
+ // Replay pending search after deferred load
24
+ useEffect(() => {
25
+ if (isScriptLoaded && pendingRef.current) {
26
+ const { input, country } = pendingRef.current;
27
+ pendingRef.current = null;
28
+ doSearch(input, country);
29
+ }
30
+ // eslint-disable-next-line react-hooks/exhaustive-deps
31
+ }, [isScriptLoaded]);
32
+ const doSearch = useCallback((input, countryRestriction) => {
33
+ if (!isScriptLoaded) {
34
+ if (defer) {
35
+ pendingRef.current = { input, country: countryRestriction };
36
+ inject();
37
+ }
38
+ return;
39
+ }
40
+ if (input.length < 3) {
41
+ setPredictions([]);
42
+ return;
43
+ }
44
+ if (debounceRef.current)
45
+ clearTimeout(debounceRef.current);
46
+ debounceRef.current = setTimeout(async () => {
47
+ setIsLoading(true);
48
+ const results = await GoogleAutocompleteCore.searchPlaces(input, {
49
+ componentRestrictions: countryRestriction ? { country: countryRestriction.toLowerCase() } : undefined,
50
+ });
51
+ setPredictions(results);
52
+ setIsLoading(false);
53
+ }, 300);
54
+ }, [isScriptLoaded, defer, inject]);
55
+ const getPlaceDetails = useCallback((placeId) => GoogleAutocompleteCore.getPlaceDetails(placeId), []);
56
+ const extractAddressComponents = useCallback((place) => GoogleAutocompleteCore.extractAddressComponents(place), []);
57
+ const extractFormattedAddress = useCallback((place) => GoogleAutocompleteCore.extractFormattedAddress(place), []);
58
+ const clearPredictions = useCallback(() => setPredictions([]), []);
59
+ return {
60
+ predictions,
61
+ isLoading,
62
+ isScriptLoaded,
63
+ searchPlaces: doSearch,
64
+ getPlaceDetails,
65
+ extractAddressComponents,
66
+ extractFormattedAddress,
67
+ clearPredictions,
68
+ };
69
+ }
70
+ //# sourceMappingURL=useGoogleAutocomplete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGoogleAutocomplete.js","sourceRoot":"","sources":["../../../src/react/hooks/useGoogleAutocomplete.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * React hooks for ISO country/region data — CDN-backed,
3
+ * with Google Places → ISO region mapping.
4
+ */
5
+ import { type ISOCountry, type ISORegion, type SupportedLanguage } from '../../core/helpers/countries.js';
6
+ export type { ISOCountry, ISORegion, SupportedLanguage };
7
+ export interface UseISODataReturn {
8
+ countries: Record<string, ISOCountry>;
9
+ getRegions: (countryCode: string) => ISORegion[];
10
+ findRegion: (countryCode: string, regionCode: string) => ISORegion | null;
11
+ mapGoogleToISO: (googleState: string, googleStateLong: string, countryCode: string) => ISORegion | null;
12
+ isLoaded: boolean;
13
+ }
14
+ export declare function useISOData(language?: SupportedLanguage): UseISODataReturn;
15
+ export declare function useCountryOptions(language?: SupportedLanguage): Array<{
16
+ value: string;
17
+ label: string;
18
+ }>;
19
+ export declare function useRegionOptions(countryCode: string, language?: SupportedLanguage): Array<{
20
+ value: string;
21
+ label: string;
22
+ }>;
23
+ //# sourceMappingURL=useISOData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useISOData.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useISOData.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,iBAAiB,EACvB,MAAM,iCAAiC,CAAC;AAGzC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;AAMzD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;IACjD,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,SAAS,GAAG,IAAI,CAAC;IAC1E,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,SAAS,GAAG,IAAI,CAAC;IACxG,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,UAAU,CAAC,QAAQ,GAAE,iBAAwB,GAAG,gBAAgB,CA8B/E;AAMD,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,iBAAwB,GAAG,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAQ7G;AAMD,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,iBAAwB,GACjC,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAQzC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * React hooks for ISO country/region data — CDN-backed,
3
+ * with Google Places → ISO region mapping.
4
+ */
5
+ import { useEffect, useMemo, useState } from 'react';
6
+ import { ISODataCore, } from '../../core/helpers/countries.js';
7
+ import { ensureGeoDataLoaded, isLanguageLoaded } from '../../core/helpers/iso3166.js';
8
+ export function useISOData(language = 'en') {
9
+ const [isLoaded, setIsLoaded] = useState(isLanguageLoaded(language));
10
+ useEffect(() => {
11
+ let cancelled = false;
12
+ ensureGeoDataLoaded(language)
13
+ .then(() => { if (!cancelled)
14
+ setIsLoaded(true); })
15
+ .catch((err) => console.error('[headless-sdk] Failed to load geodata:', err));
16
+ return () => { cancelled = true; };
17
+ }, [language]);
18
+ return useMemo(() => {
19
+ if (!isLoaded) {
20
+ return {
21
+ countries: {},
22
+ getRegions: () => [],
23
+ findRegion: () => null,
24
+ mapGoogleToISO: () => null,
25
+ isLoaded: false,
26
+ };
27
+ }
28
+ return {
29
+ countries: ISODataCore.getCountries(language),
30
+ getRegions: (cc) => ISODataCore.getRegions(cc, language),
31
+ findRegion: (cc, rc) => ISODataCore.findRegion(cc, rc, language),
32
+ mapGoogleToISO: (gs, gsl, cc) => ISODataCore.mapGoogleToISO(gs, gsl, cc, language),
33
+ isLoaded: true,
34
+ };
35
+ }, [language, isLoaded]);
36
+ }
37
+ // ---------------------------------------------------------------------------
38
+ // useCountryOptions — countries as select options
39
+ // ---------------------------------------------------------------------------
40
+ export function useCountryOptions(language = 'en') {
41
+ const { countries, isLoaded } = useISOData(language);
42
+ return useMemo(() => {
43
+ if (!isLoaded)
44
+ return [];
45
+ return Object.values(countries)
46
+ .map((c) => ({ value: c.iso, label: c.name }))
47
+ .sort((a, b) => a.label.localeCompare(b.label));
48
+ }, [countries, isLoaded]);
49
+ }
50
+ // ---------------------------------------------------------------------------
51
+ // useRegionOptions — regions/states for a country as select options
52
+ // ---------------------------------------------------------------------------
53
+ export function useRegionOptions(countryCode, language = 'en') {
54
+ const { getRegions, isLoaded } = useISOData(language);
55
+ return useMemo(() => {
56
+ if (!isLoaded || !countryCode)
57
+ return [];
58
+ return getRegions(countryCode)
59
+ .map((r) => ({ value: r.iso, label: r.name }))
60
+ .sort((a, b) => a.label.localeCompare(b.label));
61
+ }, [countryCode, getRegions, isLoaded]);
62
+ }
63
+ //# sourceMappingURL=useISOData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useISOData.js","sourceRoot":"","sources":["../../../src/react/hooks/useISOData.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAe,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,EACL,WAAW,GAIZ,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAgBtF,MAAM,UAAU,UAAU,CAAC,WAA8B,IAAI;IAC3D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAErE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,mBAAmB,CAAC,QAAQ,CAAC;aAC1B,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS;YAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aAClD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAC,CAAC;QAChF,OAAO,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE;gBACpB,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI;gBACtB,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;gBAC1B,QAAQ,EAAE,KAAK;aAChB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,SAAS,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC7C,UAAU,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC;YAChE,UAAU,EAAE,CAAC,EAAU,EAAE,EAAU,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC;YAChF,cAAc,EAAE,CAAC,EAAU,EAAE,GAAW,EAAE,EAAU,EAAE,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC;YAC1G,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,8EAA8E;AAC9E,kDAAkD;AAClD,8EAA8E;AAE9E,MAAM,UAAU,iBAAiB,CAAC,WAA8B,IAAI;IAClE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;aAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAC7C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,8EAA8E;AAC9E,oEAAoE;AACpE,8EAA8E;AAE9E,MAAM,UAAU,gBAAgB,CAC9B,WAAmB,EACnB,WAA8B,IAAI;IAElC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QACzC,OAAO,UAAU,CAAC,WAAW,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAC7C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC1C,CAAC"}
@@ -1,44 +1,85 @@
1
- import type { Offer, OfferResult } from '../../core/types.js';
1
+ import type { Offer, OfferPreview, OfferPayResult } from '../../core/types.js';
2
2
  export interface UseOffersReturn {
3
3
  /** Current loaded offer. */
4
4
  offer: Offer | null;
5
- /** Whether an offer operation is in progress. */
5
+ /** Current preview (pricing breakdown). */
6
+ preview: OfferPreview | null;
7
+ /** Whether an operation is in progress. */
6
8
  isLoading: boolean;
7
9
  /** Last error. */
8
10
  error: Error | null;
9
- /** Last result from accept/decline. */
10
- result: OfferResult | null;
11
- /** Load an offer by ID. */
12
- loadOffer: (offerId: string) => Promise<Offer>;
13
- /** List all offers for the store. */
11
+ /** Get a single offer by ID. */
12
+ getOffer: (offerId: string) => Promise<Offer>;
13
+ /** List offers for the store, optionally filtered by type or IDs. */
14
14
  listOffers: (opts?: {
15
15
  type?: 'upsell' | 'orderbump';
16
+ ids?: string[];
16
17
  }) => Promise<Offer[]>;
17
- /** Accept an offer (one-click upsell). */
18
- acceptOffer: (opts: {
18
+ /** Preview offer pricing (line items with amounts). */
19
+ previewOffer: (opts: {
19
20
  offerId: string;
20
- checkoutSessionId: string;
21
- }) => Promise<OfferResult>;
22
- /** Decline an offer. */
23
- declineOffer: (opts: {
21
+ currency?: string;
22
+ lineItems?: Array<{
23
+ variantId: string;
24
+ quantity: number;
25
+ }>;
26
+ }) => Promise<OfferPreview>;
27
+ /** Pay a previewed offer (one-click upsell charge using stored instrument). */
28
+ payPreviewedOffer: (opts: {
24
29
  offerId: string;
30
+ mainOrderId: string;
31
+ currency?: string;
32
+ lineItems?: Array<{
33
+ variantId: string;
34
+ quantity: number;
35
+ }>;
36
+ returnUrl?: string;
37
+ paymentInstrumentId?: string;
38
+ }) => Promise<OfferPayResult>;
39
+ /** Toggle an order bump on/off within a checkout session. */
40
+ toggleOrderBump: (opts: {
25
41
  checkoutSessionId: string;
26
- }) => Promise<OfferResult>;
27
- /** List order bumps for a checkout session. */
28
- listOrderBumps: (checkoutSessionId: string) => Promise<Offer[]>;
42
+ orderBumpOfferId: string;
43
+ selected: boolean;
44
+ }) => Promise<unknown>;
45
+ /** List post-purchase offers for an order. */
46
+ listPostPurchaseOffers: (orderId: string) => Promise<Offer[]>;
47
+ /** Accept a post-purchase offer. */
48
+ acceptPostPurchaseOffer: (opts: {
49
+ orderId: string;
50
+ offerId: string;
51
+ items?: Array<{
52
+ variantId: string;
53
+ quantity: number;
54
+ }>;
55
+ }) => Promise<{
56
+ success: boolean;
57
+ error?: string;
58
+ }>;
59
+ /** Decline a post-purchase offer. */
60
+ declinePostPurchaseOffer: (opts: {
61
+ orderId: string;
62
+ offerId: string;
63
+ }) => Promise<{
64
+ success: boolean;
65
+ error?: string;
66
+ }>;
29
67
  }
30
68
  /**
31
- * React hook for post-purchase offers -- upsells, downsells, order bumps.
69
+ * React hook for offers — upsells, order bumps, and post-purchase offers.
32
70
  *
33
71
  * @example
34
72
  * ```tsx
35
- * const { offer, loadOffer, acceptOffer, declineOffer } = useOffers();
73
+ * const { getOffer, previewOffer, payPreviewedOffer, listPostPurchaseOffers } = useOffers();
74
+ *
75
+ * // Preview an upsell offer
76
+ * const preview = await previewOffer({ offerId: 'offer_xxx' });
36
77
  *
37
- * useEffect(() => { loadOffer('offer_xxx'); }, []);
78
+ * // One-click pay (reuses stored instrument from main order)
79
+ * await payPreviewedOffer({ offerId: 'offer_xxx', mainOrderId: 'order_yyy' });
38
80
  *
39
- * <button onClick={() => acceptOffer({ offerId: offer.id, checkoutSessionId })}>
40
- * Yes, add it!
41
- * </button>
81
+ * // Or list post-purchase offers
82
+ * const ppOffers = await listPostPurchaseOffers('order_yyy');
42
83
  * ```
43
84
  */
44
85
  export declare function useOffers(): UseOffersReturn;
@@ -1 +1 @@
1
- {"version":3,"file":"useOffers.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useOffers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,iDAAiD;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,uCAAuC;IACvC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,2BAA2B;IAC3B,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/C,qCAAqC;IACrC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAA;KAAE,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3E,0CAA0C;IAC1C,WAAW,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5F,wBAAwB;IACxB,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7F,+CAA+C;IAC/C,cAAc,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;CACjE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,IAAI,eAAe,CA4E3C"}
1
+ {"version":3,"file":"useOffers.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useOffers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,2CAA2C;IAC3C,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,2CAA2C;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,gCAAgC;IAChC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9C,qEAAqE;IACrE,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3F,uDAAuD;IACvD,YAAY,EAAE,CAAC,IAAI,EAAE;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,KAAK,CAAC;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC5D,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5B,+EAA+E;IAC/E,iBAAiB,EAAE,CAAC,IAAI,EAAE;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,KAAK,CAAC;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAE9B,6DAA6D;IAC7D,eAAe,EAAE,CAAC,IAAI,EAAE;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,OAAO,CAAC;KACnB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvB,8CAA8C;IAC9C,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9D,oCAAoC;IACpC,uBAAuB,EAAE,CAAC,IAAI,EAAE;QAC9B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,KAAK,CAAC;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACxD,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,qCAAqC;IACrC,wBAAwB,EAAE,CAAC,IAAI,EAAE;QAC/B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,IAAI,eAAe,CAgG3C"}
@@ -1,32 +1,33 @@
1
1
  import { useState, useCallback } from 'react';
2
2
  import { useHeadlessClient } from '../provider.js';
3
3
  /**
4
- * React hook for post-purchase offers -- upsells, downsells, order bumps.
4
+ * React hook for offers — upsells, order bumps, and post-purchase offers.
5
5
  *
6
6
  * @example
7
7
  * ```tsx
8
- * const { offer, loadOffer, acceptOffer, declineOffer } = useOffers();
8
+ * const { getOffer, previewOffer, payPreviewedOffer, listPostPurchaseOffers } = useOffers();
9
9
  *
10
- * useEffect(() => { loadOffer('offer_xxx'); }, []);
10
+ * // Preview an upsell offer
11
+ * const preview = await previewOffer({ offerId: 'offer_xxx' });
11
12
  *
12
- * <button onClick={() => acceptOffer({ offerId: offer.id, checkoutSessionId })}>
13
- * Yes, add it!
14
- * </button>
13
+ * // One-click pay (reuses stored instrument from main order)
14
+ * await payPreviewedOffer({ offerId: 'offer_xxx', mainOrderId: 'order_yyy' });
15
+ *
16
+ * // Or list post-purchase offers
17
+ * const ppOffers = await listPostPurchaseOffers('order_yyy');
15
18
  * ```
16
19
  */
17
20
  export function useOffers() {
18
21
  const client = useHeadlessClient();
19
22
  const [offer, setOffer] = useState(null);
23
+ const [preview, setPreview] = useState(null);
20
24
  const [isLoading, setIsLoading] = useState(false);
21
25
  const [error, setError] = useState(null);
22
- const [result, setResult] = useState(null);
23
- const loadOffer = useCallback(async (offerId) => {
26
+ const wrap = useCallback(async (fn) => {
24
27
  setIsLoading(true);
25
28
  setError(null);
26
29
  try {
27
- const o = await client.offers.loadOffer(offerId);
28
- setOffer(o);
29
- return o;
30
+ return await fn();
30
31
  }
31
32
  catch (err) {
32
33
  const e = err instanceof Error ? err : new Error(String(err));
@@ -36,53 +37,36 @@ export function useOffers() {
36
37
  finally {
37
38
  setIsLoading(false);
38
39
  }
39
- }, [client]);
40
+ }, []);
41
+ const getOffer = useCallback((offerId) => wrap(async () => {
42
+ const o = await client.offers.getOffer(offerId);
43
+ setOffer(o);
44
+ return o;
45
+ }), [client, wrap]);
40
46
  const listOffers = useCallback((opts) => client.offers.listOffers(opts), [client]);
41
- const acceptOffer = useCallback(async (opts) => {
42
- setIsLoading(true);
43
- setError(null);
44
- try {
45
- const r = await client.offers.acceptOffer(opts);
46
- setResult(r);
47
- return r;
48
- }
49
- catch (err) {
50
- const e = err instanceof Error ? err : new Error(String(err));
51
- setError(e);
52
- throw e;
53
- }
54
- finally {
55
- setIsLoading(false);
56
- }
57
- }, [client]);
58
- const declineOffer = useCallback(async (opts) => {
59
- setIsLoading(true);
60
- setError(null);
61
- try {
62
- const r = await client.offers.declineOffer(opts);
63
- setResult(r);
64
- return r;
65
- }
66
- catch (err) {
67
- const e = err instanceof Error ? err : new Error(String(err));
68
- setError(e);
69
- throw e;
70
- }
71
- finally {
72
- setIsLoading(false);
73
- }
74
- }, [client]);
75
- const listOrderBumps = useCallback((checkoutSessionId) => client.offers.listOrderBumps(checkoutSessionId), [client]);
47
+ const previewOffer = useCallback((opts) => wrap(async () => {
48
+ const p = await client.offers.previewOffer(opts);
49
+ setPreview(p);
50
+ return p;
51
+ }), [client, wrap]);
52
+ const payPreviewedOffer = useCallback((opts) => wrap(() => client.offers.payPreviewedOffer(opts)), [client, wrap]);
53
+ const toggleOrderBump = useCallback((opts) => client.offers.toggleOrderBump(opts), [client]);
54
+ const listPostPurchaseOffers = useCallback((orderId) => client.offers.listPostPurchaseOffers(orderId), [client]);
55
+ const acceptPostPurchaseOffer = useCallback((opts) => wrap(() => client.offers.acceptPostPurchaseOffer(opts)), [client, wrap]);
56
+ const declinePostPurchaseOffer = useCallback((opts) => wrap(() => client.offers.declinePostPurchaseOffer(opts)), [client, wrap]);
76
57
  return {
77
58
  offer,
59
+ preview,
78
60
  isLoading,
79
61
  error,
80
- result,
81
- loadOffer,
62
+ getOffer,
82
63
  listOffers,
83
- acceptOffer,
84
- declineOffer,
85
- listOrderBumps,
64
+ previewOffer,
65
+ payPreviewedOffer,
66
+ toggleOrderBump,
67
+ listPostPurchaseOffers,
68
+ acceptPostPurchaseOffer,
69
+ declinePostPurchaseOffer,
86
70
  };
87
71
  }
88
72
  //# sourceMappingURL=useOffers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOffers.js","sourceRoot":"","sources":["../../../src/react/hooks/useOffers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useOffers.js","sourceRoot":"","sources":["../../../src/react/hooks/useOffers.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,13 @@ export { useOffers } from './hooks/useOffers.js';
8
8
  export type { UseOffersReturn } from './hooks/useOffers.js';
9
9
  export { useCustomer } from './hooks/useCustomer.js';
10
10
  export type { UseCustomerReturn } from './hooks/useCustomer.js';
11
- export { useAnalytics } from './hooks/useAnalytics.js';
12
- export type { UseAnalyticsReturn } from './hooks/useAnalytics.js';
13
11
  export { useCatalog } from './hooks/useCatalog.js';
14
12
  export type { UseCatalogReturn } from './hooks/useCatalog.js';
15
- export type { HeadlessConfig, Environment, CheckoutSession, CheckoutLineItem, CheckoutTotals, CheckoutCustomer, Address, ShippingRate, LineItem, PaymentSetupConfig, PaymentMethodConfig, ExpressMethods, ExpressMethod, StoreConfig, PayResult, PayOptions, PaymentStatus, Offer, OfferResult, Customer, Order, Subscription, PixelConfig, CatalogProduct, CatalogVariant, CatalogPrice, CurrencyOption, } from '../core/types.js';
13
+ export { useGoogleAutocomplete } from './hooks/useGoogleAutocomplete.js';
14
+ export type { UseGoogleAutocompleteOptions, UseGoogleAutocompleteReturn } from './hooks/useGoogleAutocomplete.js';
15
+ export { useISOData, useCountryOptions, useRegionOptions } from './hooks/useISOData.js';
16
+ export type { UseISODataReturn } from './hooks/useISOData.js';
17
+ export type { GooglePrediction, GooglePlaceDetails, ExtractedAddress, FormattedAddress, SupportedLanguage, ISOCountry, ISORegion, Currency, } from '../core/helpers/index.js';
18
+ export { formatMoney, CurrencyUtils, ISODataCore, GoogleAutocompleteCore, loadGoogleMapsScript } from '../core/helpers/index.js';
19
+ export type { HeadlessConfig, Environment, CheckoutSession, CheckoutLineItem, CheckoutTotals, CheckoutCustomer, Address, ShippingRate, LineItem, PaymentSetupConfig, PaymentMethodConfig, ExpressMethods, ExpressMethod, StoreConfig, PayResult, PayOptions, PaymentStatus, Offer, OfferLineItem, OfferPreview, OfferPreviewItem, OfferPayResult, Customer, Order, Subscription, CatalogProduct, CatalogVariant, CatalogPrice, CurrencyOption, } from '../core/types.js';
16
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC1E,YAAY,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,YAAY,EACV,cAAc,EACd,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,WAAW,EACX,SAAS,EACT,UAAU,EACV,aAAa,EACb,KAAK,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC1E,YAAY,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,YAAY,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAElH,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACxF,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,QAAQ,GACT,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEjI,YAAY,EACV,cAAc,EACd,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,WAAW,EACX,SAAS,EACT,UAAU,EACV,aAAa,EACb,KAAK,EACL,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC"}
@@ -3,6 +3,9 @@ export { useCheckout } from './hooks/useCheckout.js';
3
3
  export { usePayment } from './hooks/usePayment.js';
4
4
  export { useOffers } from './hooks/useOffers.js';
5
5
  export { useCustomer } from './hooks/useCustomer.js';
6
- export { useAnalytics } from './hooks/useAnalytics.js';
7
6
  export { useCatalog } from './hooks/useCatalog.js';
7
+ // Helpers hooks
8
+ export { useGoogleAutocomplete } from './hooks/useGoogleAutocomplete.js';
9
+ export { useISOData, useCountryOptions, useRegionOptions } from './hooks/useISOData.js';
10
+ export { formatMoney, CurrencyUtils, ISODataCore, GoogleAutocompleteCore, loadGoogleMapsScript } from '../core/helpers/index.js';
8
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAG1E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAG1E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,gBAAgB;AAChB,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAexF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC"}