@tagadapay/headless-sdk 1.1.0 → 1.2.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 (44) 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/index.d.ts +1 -2
  6. package/dist/core/index.d.ts.map +1 -1
  7. package/dist/core/index.js +0 -1
  8. package/dist/core/index.js.map +1 -1
  9. package/dist/core/modules/checkout.d.ts +15 -8
  10. package/dist/core/modules/checkout.d.ts.map +1 -1
  11. package/dist/core/modules/checkout.js +50 -14
  12. package/dist/core/modules/checkout.js.map +1 -1
  13. package/dist/core/modules/offers.d.ts +64 -23
  14. package/dist/core/modules/offers.d.ts.map +1 -1
  15. package/dist/core/modules/offers.js +70 -33
  16. package/dist/core/modules/offers.js.map +1 -1
  17. package/dist/core/types.d.ts +26 -16
  18. package/dist/core/types.d.ts.map +1 -1
  19. package/dist/react/hooks/useCheckout.d.ts +1 -1
  20. package/dist/react/hooks/useCheckout.d.ts.map +1 -1
  21. package/dist/react/hooks/useCheckout.js +61 -16
  22. package/dist/react/hooks/useCheckout.js.map +1 -1
  23. package/dist/react/hooks/useOffers.d.ts +63 -22
  24. package/dist/react/hooks/useOffers.d.ts.map +1 -1
  25. package/dist/react/hooks/useOffers.js +36 -52
  26. package/dist/react/hooks/useOffers.js.map +1 -1
  27. package/dist/react/index.d.ts +1 -3
  28. package/dist/react/index.d.ts.map +1 -1
  29. package/dist/react/index.js +0 -1
  30. package/dist/react/index.js.map +1 -1
  31. package/dist/tagada-headless-react.min.js +2 -2
  32. package/dist/tagada-headless-react.min.js.map +4 -4
  33. package/dist/tagada-headless.js +127 -311
  34. package/dist/tagada-headless.min.js +2 -2
  35. package/dist/tagada-headless.min.js.map +4 -4
  36. package/package.json +3 -3
  37. package/dist/core/modules/analytics.d.ts +0 -79
  38. package/dist/core/modules/analytics.d.ts.map +0 -1
  39. package/dist/core/modules/analytics.js +0 -265
  40. package/dist/core/modules/analytics.js.map +0 -1
  41. package/dist/react/hooks/useAnalytics.d.ts +0 -59
  42. package/dist/react/hooks/useAnalytics.d.ts.map +0 -1
  43. package/dist/react/hooks/useAnalytics.js +0 -49
  44. package/dist/react/hooks/useAnalytics.js.map +0 -1
@@ -1,6 +1,5 @@
1
1
  import { CheckoutModule } from './modules/checkout.js';
2
2
  import { PaymentModule } from './modules/payment.js';
3
- import { AnalyticsModule } from './modules/analytics.js';
4
3
  import { OffersModule } from './modules/offers.js';
5
4
  import { CustomerModule } from './modules/customer.js';
6
5
  import { CatalogModule } from './modules/catalog.js';
@@ -8,7 +7,7 @@ import type { HeadlessConfig } from './types.js';
8
7
  /**
9
8
  * Main entry point for the TagadaPay Headless SDK.
10
9
  *
11
- * Composes all domain modules (checkout, payment, analytics, offers, customer)
10
+ * Composes all domain modules (checkout, payment, offers, customer, catalog)
12
11
  * over a single lightweight HTTP client built on native fetch.
13
12
  */
14
13
  export declare class HeadlessClient {
@@ -20,9 +19,7 @@ export declare class HeadlessClient {
20
19
  readonly checkout: CheckoutModule;
21
20
  /** Payment processing -- setup config, APMs, tokenize, pay, 3DS, poll. */
22
21
  readonly payment: PaymentModule;
23
- /** Analytics and pixel tracking -- page views, checkout steps, conversions. */
24
- readonly analytics: AnalyticsModule;
25
- /** Post-purchase offers -- load, accept, decline upsells and order bumps. */
22
+ /** Offers -- preview, pay, accept/decline upsells and order bumps. */
26
23
  readonly offers: OffersModule;
27
24
  /** Customer data -- profile, orders, subscriptions. */
28
25
  readonly customer: CustomerModule;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,YAAY,CAAC;AAE9D;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,aAAa,CAAC,CAAC,GAAG,cAAc,CAAC;IAE5F,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAElC,4EAA4E;IAC5E,OAAO,CAAC,aAAa,CAAqB;IAE1C,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAEhC,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IAEpC,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAE9B,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;gBAEpB,MAAM,EAAE,cAAc;IA8BlC,0EAA0E;IAC1E,eAAe,CAAC,KAAK,EAAE,MAAM;CAG9B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAE3E"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,YAAY,CAAC;AAE9D;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,aAAa,CAAC,CAAC,GAAG,cAAc,CAAC;IAE5F,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAElC,4EAA4E;IAC5E,OAAO,CAAC,aAAa,CAAqB;IAE1C,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAEhC,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAE9B,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;gBAEpB,MAAM,EAAE,cAAc;IA6BlC,0EAA0E;IAC1E,eAAe,CAAC,KAAK,EAAE,MAAM;CAG9B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAE3E"}
@@ -1,14 +1,13 @@
1
1
  import { HttpClient } from './http.js';
2
2
  import { CheckoutModule } from './modules/checkout.js';
3
3
  import { PaymentModule } from './modules/payment.js';
4
- import { AnalyticsModule } from './modules/analytics.js';
5
4
  import { OffersModule } from './modules/offers.js';
6
5
  import { CustomerModule } from './modules/customer.js';
7
6
  import { CatalogModule } from './modules/catalog.js';
8
7
  /**
9
8
  * Main entry point for the TagadaPay Headless SDK.
10
9
  *
11
- * Composes all domain modules (checkout, payment, analytics, offers, customer)
10
+ * Composes all domain modules (checkout, payment, offers, customer, catalog)
12
11
  * over a single lightweight HTTP client built on native fetch.
13
12
  */
14
13
  export class HeadlessClient {
@@ -32,7 +31,6 @@ export class HeadlessClient {
32
31
  };
33
32
  this.checkout = new CheckoutModule(this.http, this.config.storeId, setToken);
34
33
  this.payment = new PaymentModule(this.http, this.config.storeId, environment);
35
- this.analytics = new AnalyticsModule(this.http, this.config.storeId);
36
34
  this.offers = new OffersModule(this.http, this.config.storeId);
37
35
  this.customer = new CustomerModule(this.http, this.config.storeId);
38
36
  this.catalog = new CatalogModule(this.http, this.config.storeId);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD;;;;;GAKG;AACH,MAAM,OAAO,cAAc;IA0BzB,YAAY,MAAsB;QAChC,MAAM,WAAW,GAAgB,MAAM,CAAC,WAAW,IAAI,YAAY,CAAC;QACpE,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvE,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,MAAM;YACT,WAAW;YACX,OAAO;YACP,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAM;SAClC,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC;YACzB,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAQ;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;SACnC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;YACjC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,0EAA0E;IAC1E,eAAe,CAAC,KAAa;QAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAsB;IACzD,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD;;;;;GAKG;AACH,MAAM,OAAO,cAAc;IAuBzB,YAAY,MAAsB;QAChC,MAAM,WAAW,GAAgB,MAAM,CAAC,WAAW,IAAI,YAAY,CAAC;QACpE,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvE,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,MAAM;YACT,WAAW;YACX,OAAO;YACP,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAM;SAClC,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC;YACzB,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAQ;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;SACnC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;YACjC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,0EAA0E;IAC1E,eAAe,CAAC,KAAa;QAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAsB;IACzD,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
@@ -1,11 +1,10 @@
1
1
  export { HeadlessClient, createHeadlessClient } from './client.js';
2
2
  export { CheckoutModule } from './modules/checkout.js';
3
3
  export { PaymentModule } from './modules/payment.js';
4
- export { AnalyticsModule } from './modules/analytics.js';
5
4
  export { OffersModule } from './modules/offers.js';
6
5
  export { CustomerModule } from './modules/customer.js';
7
6
  export { CatalogModule } from './modules/catalog.js';
8
7
  export { HttpClient } from './http.js';
9
8
  export { TagadaError, TagadaAuthError, TagadaValidationError, TagadaNotFoundError, TagadaRateLimitError, TagadaPaymentError, TagadaNetworkError, } from './errors.js';
10
- export type { Environment, HeadlessConfig, HttpRequestOptions, LineItem, CheckoutSession, CheckoutLineItem, CheckoutTotals, CheckoutCustomer, Address, ShippingRate, PaymentMethodConfig, PaymentSetupConfig, ExpressMethod, ExpressMethods, StoreConfig, PayResult, PayOptions, PayDirectOptions, CreateInstrumentOptions, PaymentInstrument, ThreedsSession, PaymentStatus, AnalyticsEvent, PixelConfig, Offer, OfferLineItem, OfferResult, Customer, Order, OrderItem, Subscription, CatalogProduct, CatalogVariant, CatalogPrice, CurrencyOption, } from './types.js';
9
+ export type { Environment, HeadlessConfig, HttpRequestOptions, LineItem, CheckoutSession, CheckoutLineItem, CheckoutTotals, CheckoutCustomer, Address, ShippingRate, PaymentMethodConfig, PaymentSetupConfig, ExpressMethod, ExpressMethods, StoreConfig, PayResult, PayOptions, PayDirectOptions, CreateInstrumentOptions, PaymentInstrument, ThreedsSession, PaymentStatus, Offer, OfferLineItem, OfferPreview, OfferPreviewItem, OfferPayResult, Customer, Order, OrderItem, Subscription, CatalogProduct, CatalogVariant, CatalogPrice, CurrencyOption, } from './types.js';
11
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EACL,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,WAAW,EACX,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,cAAc,EACd,WAAW,EACX,KAAK,EACL,aAAa,EACb,WAAW,EACX,QAAQ,EACR,KAAK,EACL,SAAS,EACT,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EACL,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,WAAW,EACX,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,KAAK,EACL,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,KAAK,EACL,SAAS,EACT,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC"}
@@ -1,7 +1,6 @@
1
1
  export { HeadlessClient, createHeadlessClient } from './client.js';
2
2
  export { CheckoutModule } from './modules/checkout.js';
3
3
  export { PaymentModule } from './modules/payment.js';
4
- export { AnalyticsModule } from './modules/analytics.js';
5
4
  export { OffersModule } from './modules/offers.js';
6
5
  export { CustomerModule } from './modules/customer.js';
7
6
  export { CatalogModule } from './modules/catalog.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EACL,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EACL,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
@@ -43,21 +43,28 @@ export declare class CheckoutModule {
43
43
  }>;
44
44
  /** Replace the cart items for an existing session. */
45
45
  updateCart(sessionId: string, items: LineItem[]): Promise<CheckoutSession>;
46
- /** Update customer information on the session. */
47
- updateCustomer(sessionId: string, customer: Partial<CheckoutCustomer>): Promise<CheckoutSession>;
48
- /** Update shipping and/or billing address on the session. */
46
+ /**
47
+ * Update customer + address information on the session.
48
+ * Uses the combined endpoint with `partial: true` so missing fields are tolerated.
49
+ */
50
+ updateCustomer(sessionId: string, customer: Partial<CheckoutCustomer>): Promise<void>;
51
+ /**
52
+ * Update shipping and/or billing address on the session.
53
+ *
54
+ * Address fields use the API's naming: `address1`, `postal`, etc.
55
+ */
49
56
  updateAddress(sessionId: string, addresses: {
50
57
  shippingAddress?: Address;
51
58
  billingAddress?: Address;
52
- }): Promise<CheckoutSession>;
59
+ }): Promise<void>;
53
60
  /** Apply a promotion code to the session. */
54
- applyPromoCode(sessionId: string, code: string): Promise<CheckoutSession>;
55
- /** Remove the currently applied promotion code. */
56
- removePromoCode(sessionId: string): Promise<CheckoutSession>;
61
+ applyPromoCode(sessionId: string, code: string): Promise<void>;
62
+ /** Remove a promotion from the session by promotion ID. */
63
+ removePromoCode(sessionId: string, promotionId?: string): Promise<void>;
57
64
  /** Fetch available shipping rates for the session's address. */
58
65
  getShippingRates(sessionId: string): Promise<ShippingRate[]>;
59
66
  /** Select a shipping rate for the session. */
60
- selectShippingRate(sessionId: string, rateId: string): Promise<CheckoutSession>;
67
+ selectShippingRate(sessionId: string, rateId: string): Promise<void>;
61
68
  /**
62
69
  * Normalize the raw v2 API response into a cleaner CheckoutSession shape.
63
70
  * The raw response has nested `checkoutSession` + `summary` -- we flatten it.
@@ -1 +1 @@
1
- {"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../../src/core/modules/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,qBAAa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IALjC,OAAO,CAAC,YAAY,CAAqB;gBAGtB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,aAAA;IAG1D;;;;;;;;OAQG;IACG,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAiBzF;;;;;OAKG;IACG,aAAa,CAAC,IAAI,EAAE;QACxB,KAAK,EAAE,QAAQ,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IA0CrG,sDAAsD;IAChD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAQhF,kDAAkD;IAC5C,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAClC,OAAO,CAAC,eAAe,CAAC;IAQ3B,6DAA6D;IACvD,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GACjE,OAAO,CAAC,eAAe,CAAC;IAQ3B,6CAA6C;IACvC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAQ/E,mDAAmD;IAC7C,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAMlE,gEAAgE;IAC1D,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAQlE,8CAA8C;IACxC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAQrF;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAwDzB"}
1
+ {"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../../src/core/modules/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,qBAAa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IALjC,OAAO,CAAC,YAAY,CAAqB;gBAGtB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,aAAA;IAG1D;;;;;;;;OAQG;IACG,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAiBzF;;;;;OAKG;IACG,aAAa,CAAC,IAAI,EAAE;QACxB,KAAK,EAAE,QAAQ,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAyCrG,sDAAsD;IAChD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAQhF;;;OAGG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC;IAqBhB;;;;OAIG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GACjE,OAAO,CAAC,IAAI,CAAC;IA0BhB,6CAA6C;IACvC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpE,2DAA2D;IACrD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7E,gEAAgE;IAC1D,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAQlE,8CAA8C;IACxC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1E;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAwDzB"}
@@ -59,7 +59,6 @@ export class CheckoutModule {
59
59
  };
60
60
  }
61
61
  const res = await this.http.post('/api/v1/checkout/session/init', body);
62
- // Extract the JWT token from the checkoutUrl query params
63
62
  const url = new URL(res.checkoutUrl);
64
63
  const sessionToken = url.searchParams.get('token') ?? '';
65
64
  this.sessionToken = sessionToken;
@@ -74,34 +73,71 @@ export class CheckoutModule {
74
73
  }
75
74
  /** Replace the cart items for an existing session. */
76
75
  async updateCart(sessionId, items) {
77
- return this.http.post(`/api/v1/checkout-sessions/${sessionId}/items`, { items }, { token: this.sessionToken });
76
+ return this.http.post(`/api/v1/checkout-sessions/${sessionId}/line-items`, { items }, { token: this.sessionToken });
78
77
  }
79
- /** Update customer information on the session. */
78
+ /**
79
+ * Update customer + address information on the session.
80
+ * Uses the combined endpoint with `partial: true` so missing fields are tolerated.
81
+ */
80
82
  async updateCustomer(sessionId, customer) {
81
- return this.http.patch(`/api/v1/checkout-sessions/${sessionId}/customer`, { data: customer }, { token: this.sessionToken });
83
+ await this.http.post(`/api/v1/checkout-sessions/${sessionId}/customer-and-session-info`, {
84
+ checkoutSessionId: sessionId,
85
+ partial: true,
86
+ customerData: {
87
+ email: customer.email,
88
+ },
89
+ shippingAddress: {
90
+ firstName: customer.firstName,
91
+ lastName: customer.lastName,
92
+ phone: customer.phone,
93
+ },
94
+ billingAddress: {},
95
+ differentBillingAddress: false,
96
+ }, { token: this.sessionToken });
82
97
  }
83
- /** Update shipping and/or billing address on the session. */
98
+ /**
99
+ * Update shipping and/or billing address on the session.
100
+ *
101
+ * Address fields use the API's naming: `address1`, `postal`, etc.
102
+ */
84
103
  async updateAddress(sessionId, addresses) {
85
- return this.http.post(`/api/v1/checkout-sessions/${sessionId}/address`, { data: addresses }, { token: this.sessionToken });
104
+ const mapAddress = (a) => {
105
+ if (!a)
106
+ return undefined;
107
+ return {
108
+ address1: a.line1,
109
+ address2: a.line2,
110
+ city: a.city,
111
+ state: a.state,
112
+ postal: a.postalCode,
113
+ country: a.country,
114
+ };
115
+ };
116
+ await this.http.post(`/api/v1/checkout-sessions/${sessionId}/address`, {
117
+ checkoutSessionId: sessionId,
118
+ data: {
119
+ shippingAddress: mapAddress(addresses.shippingAddress) ?? {},
120
+ billingAddress: mapAddress(addresses.billingAddress),
121
+ },
122
+ }, { token: this.sessionToken });
86
123
  }
87
124
  /** Apply a promotion code to the session. */
88
125
  async applyPromoCode(sessionId, code) {
89
- return this.http.post(`/api/v1/checkout-sessions/${sessionId}/promo`, { code }, { token: this.sessionToken });
126
+ await this.http.post(`/api/v1/checkout-sessions/${sessionId}/promotions/apply`, { checkoutSessionId: sessionId, code }, { token: this.sessionToken });
90
127
  }
91
- /** Remove the currently applied promotion code. */
92
- async removePromoCode(sessionId) {
93
- return this.http.delete(`/api/v1/checkout-sessions/${sessionId}/promo`, {
94
- token: this.sessionToken,
95
- });
128
+ /** Remove a promotion from the session by promotion ID. */
129
+ async removePromoCode(sessionId, promotionId) {
130
+ const promoId = promotionId ?? 'default';
131
+ await this.http.delete(`/api/v1/checkout-sessions/${sessionId}/promotions/${promoId}`, { token: this.sessionToken });
96
132
  }
97
133
  /** Fetch available shipping rates for the session's address. */
98
134
  async getShippingRates(sessionId) {
99
135
  const res = await this.http.get(`/api/v1/checkout-sessions/${sessionId}/shipping-rates`, { token: this.sessionToken });
100
- return res.rates;
136
+ return res.rates ?? [];
101
137
  }
102
138
  /** Select a shipping rate for the session. */
103
139
  async selectShippingRate(sessionId, rateId) {
104
- return this.http.post(`/api/v1/checkout-sessions/${sessionId}/shipping-rates`, { rateId }, { token: this.sessionToken });
140
+ await this.http.post(`/api/v1/checkout-sessions/${sessionId}/shipping-rate`, { checkoutSessionId: sessionId, shippingRateId: rateId }, { token: this.sessionToken });
105
141
  }
106
142
  /**
107
143
  * Normalize the raw v2 API response into a cleaner CheckoutSession shape.
@@ -1 +1 @@
1
- {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../../src/core/modules/checkout.ts"],"names":[],"mappings":"AASA;;;;;GAKG;AACH,MAAM,OAAO,cAAc;IAGzB,YACmB,IAAgB,EAChB,OAAe,EACf,aAAuC;QAFvC,SAAI,GAAJ,IAAI,CAAY;QAChB,YAAO,GAAP,OAAO,CAAQ;QACf,kBAAa,GAAb,aAAa,CAA0B;IACvD,CAAC;IAEJ;;;;;;;;OAQG;IACH,KAAK,CAAC,WAAW,CAAC,aAAqB,EAAE,YAAqB;QAC5D,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;YACjC,IAAI,CAAC,aAAa,EAAE,CAAC,YAAY,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7B,6BAA6B,aAAa,KAAK,EAC/C;YACE,MAAM,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE;YAClC,KAAK,EAAE,IAAI,CAAC,YAAY;SACzB,CACF,CAAC;QAEF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,IAOnB;QACC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC,CAAC;QAEJ,MAAM,IAAI,GAA4B;YACpC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS;SACV,CAAC;QACF,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACjD,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACpD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG;gBACd,KAAK,EAAE,IAAI,CAAC,aAAa;gBACzB,SAAS,EAAE,IAAI,CAAC,iBAAiB;gBACjC,QAAQ,EAAE,IAAI,CAAC,gBAAgB;gBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAI7B,+BAA+B,EAAE,IAAI,CAAC,CAAC;QAE1C,0DAA0D;QAC1D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,YAAY;YAAE,IAAI,CAAC,aAAa,EAAE,CAAC,YAAY,CAAC,CAAC;QAErD,OAAO;YACL,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,YAAY;YACZ,UAAU,EAAE,GAAG,CAAC,UAAU;SAC3B,CAAC;IACJ,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,KAAiB;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,6BAA6B,SAAS,QAAQ,EAC9C,EAAE,KAAK,EAAE,EACT,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAC7B,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,cAAc,CAClB,SAAiB,EACjB,QAAmC;QAEnC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CACpB,6BAA6B,SAAS,WAAW,EACjD,EAAE,IAAI,EAAE,QAAQ,EAAE,EAClB,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAC7B,CAAC;IACJ,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,aAAa,CACjB,SAAiB,EACjB,SAAkE;QAElE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,6BAA6B,SAAS,UAAU,EAChD,EAAE,IAAI,EAAE,SAAS,EAAE,EACnB,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAC7B,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,IAAY;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,6BAA6B,SAAS,QAAQ,EAC9C,EAAE,IAAI,EAAE,EACR,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAC7B,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,6BAA6B,SAAS,QAAQ,EAAE;YACtE,KAAK,EAAE,IAAI,CAAC,YAAY;SACzB,CAAC,CAAC;IACL,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QACtC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7B,6BAA6B,SAAS,iBAAiB,EACvD,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAC7B,CAAC;QACF,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,kBAAkB,CAAC,SAAiB,EAAE,MAAc;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,6BAA6B,SAAS,iBAAiB,EACvD,EAAE,MAAM,EAAE,EACV,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAC7B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,GAAmD;QAC1E,MAAM,EAAE,GAAG,GAAG,CAAC,eAA0C,CAAC;QAC1D,MAAM,cAAc,GAAG,CAAC,EAAE,CAAC,cAAc,IAAI,EAAE,CAAmC,CAAC;QACnF,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;QAClG,MAAM,SAAS,GAAG,CAAC,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAmC,CAAC;QAChF,MAAM,QAAQ,GAAG,EAAE,CAAC,QAA+C,CAAC;QAEpE,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACjC,MAAM,KAAK,GAAG,EAAE,CAAC,KAA4C,CAAC;YAC9D,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAA4B,CAAC;YAClE,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;YACnE,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,eAAe,IAAI,EAAE,CAAuC,CAAC;YAC1F,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3E,OAAO;gBACL,EAAE,EAAE,EAAE,CAAC,EAAY;gBACnB,SAAS,EAAE,EAAE,CAAC,SAAmB;gBACjC,OAAO,EAAE,EAAE,CAAC,OAAiB;gBAC7B,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAW;gBAC3C,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAW;gBAC3C,QAAQ,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAW;gBACtC,UAAU,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;gBAC5B,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,CAAC,GAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAY;gBAChE,QAAQ,EAAE,CAAC,EAAE,CAAC,2BAA2B,IAAI,KAAK,CAAW;gBAC7D,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAW;aAC7C,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAmC,CAAC;QAE7E,OAAO;YACL,EAAE,EAAE,EAAE,CAAC,EAAY;YACnB,OAAO,EAAE,EAAE,CAAC,OAAiB;YAC7B,aAAa,EAAE,EAAE,CAAC,aAAuB;YACzC,QAAQ,EAAE,CAAC,EAAE,CAAC,2BAA2B,IAAI,KAAK,CAAW;YAC7D,KAAK;YACL,MAAM,EAAE;gBACN,QAAQ,EAAE,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAW;gBACjD,QAAQ,EAAE,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,CAAW;gBACvD,QAAQ,EAAE,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,CAAW;gBAC/C,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAW;gBAC5C,KAAK,EAAE,CAAC,OAAO,CAAC,WAAW,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,CAA0B,EAAE,EAAE,CAAC,CAAC,GAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAY,EAAE,CAAC,CAAC,CAAW;gBAC5I,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,2BAA2B,IAAI,KAAK,CAAW;aAClF;YACD,QAAQ,EAAE,QAAQ;gBAChB,CAAC,CAAC;oBACE,EAAE,EAAE,QAAQ,CAAC,EAAY;oBACzB,KAAK,EAAE,QAAQ,CAAC,KAA2B;oBAC3C,SAAS,EAAE,QAAQ,CAAC,SAA+B;oBACnD,QAAQ,EAAE,QAAQ,CAAC,QAA8B;iBAClD;gBACH,CAAC,CAAC,SAAS;YACb,eAAe,EAAE,EAAE,CAAC,eAAqD;YACzE,cAAc,EAAE,EAAE,CAAC,cAAmD;YACtE,QAAQ,EAAE,EAAE,CAAC,QAAmC;SACjD,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../../src/core/modules/checkout.ts"],"names":[],"mappings":"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"}
@@ -1,43 +1,84 @@
1
1
  import type { HttpClient } from '../http.js';
2
- import type { Offer, OfferResult } from '../types.js';
2
+ import type { Offer, OfferPreview, OfferPayResult } from '../types.js';
3
3
  /**
4
- * Post-purchase offers -- upsells, downsells, and order bumps.
4
+ * Offers — upsells, downsells, order bumps, and post-purchase offers.
5
5
  *
6
- * Offers are configured in the CRM and referenced by ID.
7
- * The headless SDK lets you load offer details, accept (one-click charge),
8
- * or decline from your own UI.
6
+ * Endpoints align with the plugin-sdk patterns:
7
+ * GET /api/v1/offers/:id — single offer
8
+ * GET /api/v1/stores/:storeId/offers — list store offers
9
+ * POST /api/v1/offers/:offerId/preview — preview pricing
10
+ * POST /api/v1/offers/:offerId/pay-preview — pay a previewed offer (one-click)
11
+ * POST /api/v1/checkout-sessions/:id/toggle-order-bump — toggle order bump
12
+ * GET /api/v1/post-purchase/:orderId/offers — post-purchase offers for an order
13
+ * POST /api/v1/orders/:orderId/post-purchase-offers/:offerId/accept — accept
14
+ * POST /api/v1/orders/:orderId/post-purchase-offers/:offerId/decline — decline
9
15
  */
10
16
  export declare class OffersModule {
11
17
  private readonly http;
12
18
  private readonly storeId;
13
19
  constructor(http: HttpClient, storeId: string);
14
- /** Load offer details by ID. */
15
- loadOffer(offerId: string): Promise<Offer>;
16
- /** List all offers for the store. */
20
+ /** Get a single offer by ID. */
21
+ getOffer(offerId: string): Promise<Offer>;
22
+ /** List offers for the current store. Optionally filter by type or a set of IDs. */
17
23
  listOffers(opts?: {
18
24
  type?: 'upsell' | 'orderbump';
25
+ ids?: string[];
19
26
  }): Promise<Offer[]>;
27
+ /** Preview offer pricing. Returns line items with amounts and totals. */
28
+ previewOffer(opts: {
29
+ offerId: string;
30
+ currency?: string;
31
+ lineItems?: Array<{
32
+ lineItemId?: string;
33
+ productId?: string;
34
+ variantId: string;
35
+ quantity: number;
36
+ }>;
37
+ }): Promise<OfferPreview>;
20
38
  /**
21
- * Accept an offer (one-click upsell).
22
- * Charges the stored payment instrument from the main checkout order.
39
+ * Pay a previously previewed offer (one-click charge).
40
+ * Used after a main order so the stored payment instrument is reused.
23
41
  */
24
- acceptOffer(opts: {
42
+ payPreviewedOffer(opts: {
25
43
  offerId: string;
26
- checkoutSessionId: string;
44
+ mainOrderId: string;
45
+ currency?: string;
46
+ lineItems?: Array<{
47
+ lineItemId?: string;
48
+ productId?: string;
49
+ variantId: string;
50
+ quantity: number;
51
+ }>;
52
+ returnUrl?: string;
27
53
  paymentInstrumentId?: string;
28
- }): Promise<OfferResult>;
29
- /** Decline an offer. Advances the funnel to the next step. */
30
- declineOffer(opts: {
31
- offerId: string;
32
- checkoutSessionId: string;
33
- }): Promise<OfferResult>;
34
- /** List order bumps available for a checkout session (shown on the checkout page). */
35
- listOrderBumps(checkoutSessionId: string): Promise<Offer[]>;
36
- /** Toggle an order bump on/off for a checkout session. */
54
+ }): Promise<OfferPayResult>;
55
+ /** Toggle an order bump on/off within a checkout session. */
37
56
  toggleOrderBump(opts: {
38
57
  checkoutSessionId: string;
39
- offerId: string;
58
+ orderBumpOfferId: string;
40
59
  selected: boolean;
41
- }): Promise<void>;
60
+ }): Promise<unknown>;
61
+ /** List post-purchase offers for an order. */
62
+ listPostPurchaseOffers(orderId: string): Promise<Offer[]>;
63
+ /** Accept a post-purchase offer. */
64
+ acceptPostPurchaseOffer(opts: {
65
+ orderId: string;
66
+ offerId: string;
67
+ items?: Array<{
68
+ variantId: string;
69
+ quantity: number;
70
+ }>;
71
+ }): Promise<{
72
+ success: boolean;
73
+ error?: string;
74
+ }>;
75
+ /** Decline a post-purchase offer. */
76
+ declinePostPurchaseOffer(opts: {
77
+ orderId: string;
78
+ offerId: string;
79
+ }): Promise<{
80
+ success: boolean;
81
+ error?: string;
82
+ }>;
42
83
  }
43
84
  //# sourceMappingURL=offers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"offers.d.ts","sourceRoot":"","sources":["../../../src/core/modules/offers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtD;;;;;;GAMG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM;IAGlC,gCAAgC;IAC1B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAQhD,qCAAqC;IAC/B,UAAU,CAAC,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAQ5E;;;OAGG;IACG,WAAW,CAAC,IAAI,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,GAAG,OAAO,CAAC,WAAW,CAAC;IASxB,8DAA8D;IACxD,YAAY,CAAC,IAAI,EAAE;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,WAAW,CAAC;IAQxB,sFAAsF;IAChF,cAAc,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAQjE,0DAA0D;IACpD,eAAe,CAAC,IAAI,EAAE;QAC1B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,OAAO,CAAC;KACnB,GAAG,OAAO,CAAC,IAAI,CAAC;CAMlB"}
1
+ {"version":3,"file":"offers.d.ts","sourceRoot":"","sources":["../../../src/core/modules/offers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvE;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM;IAOlC,gCAAgC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAI/C,oFAAoF;IAC9E,UAAU,CAAC,IAAI,CAAC,EAAE;QACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;QAC9B,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;KAChB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAkBpB,yEAAyE;IACnE,YAAY,CAAC,IAAI,EAAE;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,KAAK,CAAC;YAAE,UAAU,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACrG,GAAG,OAAO,CAAC,YAAY,CAAC;IAQzB;;;OAGG;IACG,iBAAiB,CAAC,IAAI,EAAE;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,KAAK,CAAC;YAAE,UAAU,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACpG,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,GAAG,OAAO,CAAC,cAAc,CAAC;IAe3B,6DAA6D;IACvD,eAAe,CAAC,IAAI,EAAE;QAC1B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,OAAO,CAAC;KACnB,GAAG,OAAO,CAAC,OAAO,CAAC;IAcpB,8CAA8C;IACxC,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAK/D,oCAAoC;IAC9B,uBAAuB,CAAC,IAAI,EAAE;QAClC,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,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAOjD,qCAAqC;IAC/B,wBAAwB,CAAC,IAAI,EAAE;QACnC,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAKlD"}
@@ -1,56 +1,93 @@
1
1
  /**
2
- * Post-purchase offers -- upsells, downsells, and order bumps.
2
+ * Offers — upsells, downsells, order bumps, and post-purchase offers.
3
3
  *
4
- * Offers are configured in the CRM and referenced by ID.
5
- * The headless SDK lets you load offer details, accept (one-click charge),
6
- * or decline from your own UI.
4
+ * Endpoints align with the plugin-sdk patterns:
5
+ * GET /api/v1/offers/:id — single offer
6
+ * GET /api/v1/stores/:storeId/offers — list store offers
7
+ * POST /api/v1/offers/:offerId/preview — preview pricing
8
+ * POST /api/v1/offers/:offerId/pay-preview — pay a previewed offer (one-click)
9
+ * POST /api/v1/checkout-sessions/:id/toggle-order-bump — toggle order bump
10
+ * GET /api/v1/post-purchase/:orderId/offers — post-purchase offers for an order
11
+ * POST /api/v1/orders/:orderId/post-purchase-offers/:offerId/accept — accept
12
+ * POST /api/v1/orders/:orderId/post-purchase-offers/:offerId/decline — decline
7
13
  */
8
14
  export class OffersModule {
9
15
  constructor(http, storeId) {
10
16
  this.http = http;
11
17
  this.storeId = storeId;
12
18
  }
13
- /** Load offer details by ID. */
14
- async loadOffer(offerId) {
15
- const res = await this.http.get(`/api/v1/checkout-offers/${offerId}`, { params: { storeId: this.storeId } });
16
- return res.offer;
19
+ // ---------------------------------------------------------------------------
20
+ // Offer loading
21
+ // ---------------------------------------------------------------------------
22
+ /** Get a single offer by ID. */
23
+ async getOffer(offerId) {
24
+ return this.http.get(`/api/v1/offers/${offerId}`);
17
25
  }
18
- /** List all offers for the store. */
26
+ /** List offers for the current store. Optionally filter by type or a set of IDs. */
19
27
  async listOffers(opts) {
20
- const res = await this.http.get('/api/v1/checkout-offers', { params: { storeId: this.storeId, type: opts?.type } });
21
- return res.offers;
28
+ let url = `/api/v1/stores/${this.storeId}/offers`;
29
+ const queryParts = [];
30
+ if (opts?.type)
31
+ queryParts.push(`type=${encodeURIComponent(opts.type)}`);
32
+ if (opts?.ids?.length) {
33
+ for (const id of opts.ids)
34
+ queryParts.push(`ids=${encodeURIComponent(id)}`);
35
+ }
36
+ if (queryParts.length)
37
+ url += `?${queryParts.join('&')}`;
38
+ const res = await this.http.get(url);
39
+ return res.offers ?? [];
22
40
  }
23
- /**
24
- * Accept an offer (one-click upsell).
25
- * Charges the stored payment instrument from the main checkout order.
26
- */
27
- async acceptOffer(opts) {
28
- return this.http.post('/api/v1/checkout-offers/accept', {
41
+ // ---------------------------------------------------------------------------
42
+ // Preview & pay (one-click upsell flow from plugin-sdk)
43
+ // ---------------------------------------------------------------------------
44
+ /** Preview offer pricing. Returns line items with amounts and totals. */
45
+ async previewOffer(opts) {
46
+ return this.http.post(`/api/v1/offers/${opts.offerId}/preview`, {
29
47
  offerId: opts.offerId,
30
- checkoutSessionId: opts.checkoutSessionId,
31
- storeId: this.storeId,
32
- paymentInstrumentId: opts.paymentInstrumentId,
48
+ currency: opts.currency ?? '',
49
+ lineItems: opts.lineItems,
33
50
  });
34
51
  }
35
- /** Decline an offer. Advances the funnel to the next step. */
36
- async declineOffer(opts) {
37
- return this.http.post('/api/v1/checkout-offers/decline', {
52
+ /**
53
+ * Pay a previously previewed offer (one-click charge).
54
+ * Used after a main order so the stored payment instrument is reused.
55
+ */
56
+ async payPreviewedOffer(opts) {
57
+ return this.http.post(`/api/v1/offers/${opts.offerId}/pay-preview`, {
38
58
  offerId: opts.offerId,
39
- checkoutSessionId: opts.checkoutSessionId,
40
- storeId: this.storeId,
59
+ currency: opts.currency ?? '',
60
+ lineItems: opts.lineItems,
61
+ returnUrl: opts.returnUrl ?? (typeof window !== 'undefined' ? window.location.href : ''),
62
+ mainOrderId: opts.mainOrderId,
63
+ paymentInstrumentId: opts.paymentInstrumentId,
41
64
  });
42
65
  }
43
- /** List order bumps available for a checkout session (shown on the checkout page). */
44
- async listOrderBumps(checkoutSessionId) {
45
- const res = await this.http.get('/api/v1/checkout-offers', { params: { storeId: this.storeId, checkoutSessionId, type: 'orderbump' } });
46
- return res.offers;
47
- }
48
- /** Toggle an order bump on/off for a checkout session. */
66
+ // ---------------------------------------------------------------------------
67
+ // Order bumps (checkout-session scoped)
68
+ // ---------------------------------------------------------------------------
69
+ /** Toggle an order bump on/off within a checkout session. */
49
70
  async toggleOrderBump(opts) {
50
- await this.http.post(`/api/v1/checkout-sessions/${opts.checkoutSessionId}/order-bumps`, {
51
- offerId: opts.offerId,
71
+ return this.http.post(`/api/v1/checkout-sessions/${opts.checkoutSessionId}/toggle-order-bump`, {
72
+ orderBumpOfferId: opts.orderBumpOfferId,
52
73
  selected: opts.selected,
53
74
  });
54
75
  }
76
+ // ---------------------------------------------------------------------------
77
+ // Post-purchase offers (order-scoped)
78
+ // ---------------------------------------------------------------------------
79
+ /** List post-purchase offers for an order. */
80
+ async listPostPurchaseOffers(orderId) {
81
+ const res = await this.http.get(`/api/v1/post-purchase/${orderId}/offers`);
82
+ return Array.isArray(res) ? res : [];
83
+ }
84
+ /** Accept a post-purchase offer. */
85
+ async acceptPostPurchaseOffer(opts) {
86
+ return this.http.post(`/api/v1/orders/${opts.orderId}/post-purchase-offers/${opts.offerId}/accept`, { items: opts.items ?? [] });
87
+ }
88
+ /** Decline a post-purchase offer. */
89
+ async declinePostPurchaseOffer(opts) {
90
+ return this.http.post(`/api/v1/orders/${opts.orderId}/post-purchase-offers/${opts.offerId}/decline`);
91
+ }
55
92
  }
56
93
  //# sourceMappingURL=offers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"offers.js","sourceRoot":"","sources":["../../../src/core/modules/offers.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IACvB,YACmB,IAAgB,EAChB,OAAe;QADf,SAAI,GAAJ,IAAI,CAAY;QAChB,YAAO,GAAP,OAAO,CAAQ;IAC/B,CAAC;IAEJ,gCAAgC;IAChC,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7B,2BAA2B,OAAO,EAAE,EACpC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CACtC,CAAC;QACF,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,UAAU,CAAC,IAAwC;QACvD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7B,yBAAyB,EACzB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CACxD,CAAC;QACF,OAAO,GAAG,CAAC,MAAM,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,IAIjB;QACC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAc,gCAAgC,EAAE;YACnE,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,YAAY,CAAC,IAGlB;QACC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAc,iCAAiC,EAAE;YACpE,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IAED,sFAAsF;IACtF,KAAK,CAAC,cAAc,CAAC,iBAAyB;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7B,yBAAyB,EACzB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAC5E,CAAC;QACF,OAAO,GAAG,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,eAAe,CAAC,IAIrB;QACC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,iBAAiB,cAAc,EAAE;YACtF,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"offers.js","sourceRoot":"","sources":["../../../src/core/modules/offers.ts"],"names":[],"mappings":"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"}
@@ -191,19 +191,6 @@ export interface PaymentStatus {
191
191
  status: 'succeeded' | 'pending' | 'failed' | 'declined';
192
192
  requireAction?: string;
193
193
  }
194
- export interface AnalyticsEvent {
195
- event: string;
196
- data?: Record<string, unknown>;
197
- timestamp?: number;
198
- }
199
- export interface PixelConfig {
200
- metaPixelId?: string;
201
- tiktokPixelId?: string;
202
- snapchatPixelId?: string;
203
- pinterestTagId?: string;
204
- gtmId?: string;
205
- gaId?: string;
206
- }
207
194
  export interface Offer {
208
195
  id: string;
209
196
  type: 'upsell' | 'downsell' | 'orderbump';
@@ -219,16 +206,39 @@ export interface Offer {
219
206
  metadata?: Record<string, unknown>;
220
207
  }
221
208
  export interface OfferLineItem {
209
+ id: string;
222
210
  priceId: string;
211
+ productId?: string;
212
+ variantId?: string;
223
213
  quantity: number;
224
214
  productName?: string;
225
215
  variantName?: string;
226
- amount?: number;
216
+ imageUrl?: string;
217
+ unitAmount?: number;
218
+ currency?: string;
219
+ }
220
+ export interface OfferPreview {
221
+ items: OfferPreviewItem[];
222
+ totalAmount: number;
223
+ totalAdjustedAmount: number;
224
+ currency: string;
225
+ }
226
+ export interface OfferPreviewItem {
227
+ id: string;
228
+ productId: string;
229
+ productName: string;
230
+ variantId: string;
231
+ variantName: string;
232
+ imageUrl?: string;
233
+ quantity: number;
234
+ unitAmount: number;
235
+ currency: string;
227
236
  }
228
- export interface OfferResult {
237
+ export interface OfferPayResult {
229
238
  success: boolean;
230
239
  orderId?: string;
231
- paymentId?: string;
240
+ checkoutSessionId?: string;
241
+ checkoutUrl?: string;
232
242
  error?: string;
233
243
  }
234
244
  export interface CatalogProduct {