@shoppexio/storefront 1.0.57 → 1.0.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +99 -0
- package/LICENSE +21 -0
- package/README.md +96 -180
- package/dist/chunk-ZVOFFURI.js +15364 -0
- package/dist/chunk-ZVOFFURI.js.map +1 -0
- package/dist/customer.cjs +16013 -1
- package/dist/customer.cjs.map +1 -1
- package/dist/{headless-customer.d.ts → customer.d.cts} +74 -61
- package/dist/customer.d.ts +336 -10
- package/dist/customer.js +726 -2
- package/dist/customer.js.map +1 -1
- package/dist/index.cjs +21533 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1979 -0
- package/dist/index.d.ts +1859 -49
- package/dist/index.js +6139 -0
- package/dist/index.js.map +1 -0
- package/package.json +18 -37
- package/dist/core/attribution.d.ts +0 -26
- package/dist/core/attribution.d.ts.map +0 -1
- package/dist/core/cache.d.ts +0 -26
- package/dist/core/cache.d.ts.map +0 -1
- package/dist/core/client.d.ts +0 -18
- package/dist/core/client.d.ts.map +0 -1
- package/dist/core/config.d.ts +0 -10
- package/dist/core/config.d.ts.map +0 -1
- package/dist/core/endpoint.d.ts +0 -2
- package/dist/core/endpoint.d.ts.map +0 -1
- package/dist/core/errors.d.ts +0 -34
- package/dist/core/errors.d.ts.map +0 -1
- package/dist/core/telemetry.d.ts +0 -20
- package/dist/core/telemetry.d.ts.map +0 -1
- package/dist/core/typed-client.d.ts +0 -15
- package/dist/core/typed-client.d.ts.map +0 -1
- package/dist/customer.d.ts.map +0 -1
- package/dist/headless-customer.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/modules/affiliates.d.ts +0 -15
- package/dist/modules/affiliates.d.ts.map +0 -1
- package/dist/modules/analytics.d.ts +0 -2
- package/dist/modules/analytics.d.ts.map +0 -1
- package/dist/modules/cart.d.ts +0 -62
- package/dist/modules/cart.d.ts.map +0 -1
- package/dist/modules/checkout.d.ts +0 -133
- package/dist/modules/checkout.d.ts.map +0 -1
- package/dist/modules/coupons.d.ts +0 -3
- package/dist/modules/coupons.d.ts.map +0 -1
- package/dist/modules/customer.d.ts +0 -147
- package/dist/modules/customer.d.ts.map +0 -1
- package/dist/modules/invoices.d.ts +0 -6
- package/dist/modules/invoices.d.ts.map +0 -1
- package/dist/modules/navigation.d.ts +0 -20
- package/dist/modules/navigation.d.ts.map +0 -1
- package/dist/modules/pages.d.ts +0 -10
- package/dist/modules/pages.d.ts.map +0 -1
- package/dist/modules/presence.d.ts +0 -12
- package/dist/modules/presence.d.ts.map +0 -1
- package/dist/modules/products.d.ts +0 -16
- package/dist/modules/products.d.ts.map +0 -1
- package/dist/modules/reviews.d.ts +0 -4
- package/dist/modules/reviews.d.ts.map +0 -1
- package/dist/modules/search.d.ts +0 -10
- package/dist/modules/search.d.ts.map +0 -1
- package/dist/modules/store.d.ts +0 -11
- package/dist/modules/store.d.ts.map +0 -1
- package/dist/modules/theme.d.ts +0 -27
- package/dist/modules/theme.d.ts.map +0 -1
- package/dist/shoppex.esm.js +0 -3
- package/dist/shoppex.esm.js.map +0 -1
- package/dist/shoppex.umd.js +0 -2
- package/dist/shoppex.umd.js.map +0 -1
- package/dist/types/api.d.ts +0 -757
- package/dist/types/api.d.ts.map +0 -1
- package/dist/types/cart.d.ts +0 -239
- package/dist/types/cart.d.ts.map +0 -1
- package/dist/types/config.d.ts +0 -18
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -7
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/theme-config.d.ts +0 -109
- package/dist/types/theme-config.d.ts.map +0 -1
- package/dist/utils/cart-line-id.d.ts +0 -5
- package/dist/utils/cart-line-id.d.ts.map +0 -1
- package/dist/utils/format.d.ts +0 -6
- package/dist/utils/format.d.ts.map +0 -1
- package/dist/utils/requested-currency.d.ts +0 -3
- package/dist/utils/requested-currency.d.ts.map +0 -1
- package/dist/utils/storage.d.ts +0 -10
- package/dist/utils/storage.d.ts.map +0 -1
- package/dist/utils/storefront-catalog.d.ts +0 -5
- package/dist/utils/storefront-catalog.d.ts.map +0 -1
- package/dist/utils/storefront-contact.d.ts +0 -32
- package/dist/utils/storefront-contact.d.ts.map +0 -1
- package/dist/utils/storefront-custom-fields.d.ts +0 -13
- package/dist/utils/storefront-custom-fields.d.ts.map +0 -1
- package/dist/utils/storefront-search.d.ts +0 -22
- package/dist/utils/storefront-search.d.ts.map +0 -1
- package/dist/utils/storefront-stock.d.ts +0 -14
- package/dist/utils/storefront-stock.d.ts.map +0 -1
|
@@ -1,5 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { CustomerPortalAffiliateSummaryWire, CustomerPortalAffiliateCreateLinkWire, CustomerPortalAffiliateStatsWire, CustomerPortalAvatarWire, CustomerPortalDashboardWire, CustomerPortalProfileUpdateWire, CustomerPortalEmailPreferencesWire, CustomerPortalEmailPreferencesUpdateWire, CustomerPortalNotificationPreferencesWire, CustomerPortalOrderReviewWire, CustomerReplacementEligibilityWire, CustomerReplacementRequestWire, CustomerPortalLicenseResetWire, CustomerPortalLicenseRenewalWire, CustomerPortalWalletTopupQuoteWire, CustomerPortalWalletTopupResultWire, CustomerPortalSubscriptionBillingHistoryWire, CustomerPortalSubscriptionCancelWire, CustomerPortalSubscriptionStatusWire, CustomerLoyaltyWire, CustomerLoyaltyRedeemWire, CustomerWarrantyListWire, CustomerWarrantyClaimWire, CustomerPortalFavoritesWire, CustomerPortalFavoriteMutationWire, CustomerPortalSupportCreateWire, CustomerPortalSupportTicketDetailWire, CustomerResellerSummaryWire, CustomerResellerEnrollmentWire, CustomerResellerCatalogWire, CustomerResellerQuoteWire, CustomerResellerOrdersWire, CustomerResellerOrderWire, CustomerResellerWalletWire, CustomerResellerTopupWire, CustomerResellerApiKeysWire } from '@shoppex/contracts/customer-portal-wire';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Browser client for a customer account hosted outside Shoppex.
|
|
5
|
+
*
|
|
6
|
+
* The publishable key identifies the merchant and the dashboard origin
|
|
7
|
+
* allowlist authorizes the browser origin. OTP verification returns a separate
|
|
8
|
+
* short-lived `hcs_` token; the SDK never exposes Shoppex's BetterAuth token.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
interface HeadlessCustomerClientConfig {
|
|
3
12
|
/** Shop slug or Shoppex storefront domain. */
|
|
4
13
|
shop: string;
|
|
5
14
|
/** Existing Headless Checkout publishable key (`pk_live_` / `pk_test_`). */
|
|
@@ -13,21 +22,21 @@ export interface HeadlessCustomerClientConfig {
|
|
|
13
22
|
/** Optional persistent storage override. Defaults to browser localStorage. */
|
|
14
23
|
persistentStorage?: Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>;
|
|
15
24
|
}
|
|
16
|
-
|
|
25
|
+
interface HeadlessCustomerSession {
|
|
17
26
|
accessToken: string;
|
|
18
27
|
expiresAt: string;
|
|
19
28
|
}
|
|
20
|
-
|
|
29
|
+
interface HeadlessCustomerVerifyOptions {
|
|
21
30
|
/** Persist the customer session across browser restarts for up to 30 days. */
|
|
22
31
|
rememberMe?: boolean;
|
|
23
32
|
}
|
|
24
|
-
|
|
33
|
+
interface HeadlessCustomerOrdersQuery {
|
|
25
34
|
page?: number;
|
|
26
35
|
limit?: number;
|
|
27
36
|
status?: string;
|
|
28
37
|
search?: string;
|
|
29
38
|
}
|
|
30
|
-
|
|
39
|
+
interface HeadlessCustomerDownload {
|
|
31
40
|
blob: Blob;
|
|
32
41
|
filename: string | null;
|
|
33
42
|
contentType: string | null;
|
|
@@ -36,96 +45,97 @@ type HeadlessCustomerDashboardDeliverable = CustomerPortalDashboardWire['deliver
|
|
|
36
45
|
/** Pass this value with `invoice_uniqid` to `customer.download()`. */
|
|
37
46
|
downloadIndex?: number | null;
|
|
38
47
|
};
|
|
39
|
-
|
|
48
|
+
type HeadlessCustomerDashboard = Omit<CustomerPortalDashboardWire, 'deliverables'> & {
|
|
40
49
|
deliverables: HeadlessCustomerDashboardDeliverable[];
|
|
41
50
|
};
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
51
|
+
type HeadlessCustomerProfileUpdate = CustomerPortalProfileUpdateWire;
|
|
52
|
+
type HeadlessCustomerAvatar = CustomerPortalAvatarWire;
|
|
53
|
+
type HeadlessCustomerEmailPreferences = CustomerPortalEmailPreferencesWire;
|
|
54
|
+
type HeadlessCustomerEmailPreferencesUpdate = CustomerPortalEmailPreferencesUpdateWire;
|
|
55
|
+
type HeadlessCustomerNotificationPreferences = CustomerPortalNotificationPreferencesWire;
|
|
56
|
+
type HeadlessCustomerOrderReview = CustomerPortalOrderReviewWire;
|
|
57
|
+
type HeadlessCustomerFavorites = CustomerPortalFavoritesWire;
|
|
58
|
+
type HeadlessCustomerFavoriteMutation = CustomerPortalFavoriteMutationWire;
|
|
59
|
+
type HeadlessCustomerAffiliate = CustomerPortalAffiliateSummaryWire;
|
|
60
|
+
type HeadlessCustomerAffiliateStats = CustomerPortalAffiliateStatsWire;
|
|
61
|
+
type HeadlessCustomerAffiliateLink = CustomerPortalAffiliateCreateLinkWire;
|
|
62
|
+
type HeadlessCustomerTicket = CustomerPortalSupportTicketDetailWire;
|
|
63
|
+
type HeadlessCustomerTicketCreateResult = CustomerPortalSupportCreateWire;
|
|
64
|
+
type HeadlessCustomerLicenseReset = CustomerPortalLicenseResetWire;
|
|
65
|
+
type HeadlessCustomerLicenseRenewal = CustomerPortalLicenseRenewalWire;
|
|
66
|
+
type HeadlessCustomerWalletTopupQuote = CustomerPortalWalletTopupQuoteWire;
|
|
67
|
+
type HeadlessCustomerWalletTopup = CustomerPortalWalletTopupResultWire;
|
|
68
|
+
type HeadlessCustomerSubscriptionBillingHistory = CustomerPortalSubscriptionBillingHistoryWire;
|
|
69
|
+
type HeadlessCustomerSubscriptionCancel = CustomerPortalSubscriptionCancelWire;
|
|
70
|
+
type HeadlessCustomerSubscriptionStatus = CustomerPortalSubscriptionStatusWire;
|
|
71
|
+
type HeadlessCustomerLoyalty = CustomerLoyaltyWire;
|
|
72
|
+
type HeadlessCustomerLoyaltyRedeem = CustomerLoyaltyRedeemWire;
|
|
73
|
+
type HeadlessCustomerWarranties = CustomerWarrantyListWire;
|
|
74
|
+
type HeadlessCustomerWarrantyClaim = CustomerWarrantyClaimWire;
|
|
75
|
+
type HeadlessCustomerReplacementEligibility = CustomerReplacementEligibilityWire;
|
|
76
|
+
type HeadlessCustomerReplacementRequest = CustomerReplacementRequestWire;
|
|
77
|
+
type HeadlessCustomerReseller = CustomerResellerSummaryWire;
|
|
78
|
+
type HeadlessCustomerResellerEnrollment = CustomerResellerEnrollmentWire;
|
|
79
|
+
type HeadlessCustomerResellerCatalog = CustomerResellerCatalogWire;
|
|
80
|
+
type HeadlessCustomerResellerQuote = CustomerResellerQuoteWire;
|
|
81
|
+
type HeadlessCustomerResellerOrders = CustomerResellerOrdersWire;
|
|
82
|
+
type HeadlessCustomerResellerOrder = CustomerResellerOrderWire;
|
|
83
|
+
type HeadlessCustomerResellerWallet = CustomerResellerWalletWire;
|
|
84
|
+
type HeadlessCustomerResellerApiKeys = CustomerResellerApiKeysWire;
|
|
85
|
+
type HeadlessCustomerResellerTopup = CustomerResellerTopupWire;
|
|
86
|
+
interface HeadlessCustomerTicketInput {
|
|
77
87
|
title?: string;
|
|
78
88
|
message: string;
|
|
79
89
|
invoiceId?: string;
|
|
80
90
|
}
|
|
81
|
-
|
|
91
|
+
interface HeadlessCustomerOrderReviewInput {
|
|
82
92
|
score: 1 | 3 | 5;
|
|
83
93
|
message: string;
|
|
84
94
|
}
|
|
85
|
-
|
|
95
|
+
interface HeadlessCustomerAffiliateLinkInput {
|
|
86
96
|
code: string;
|
|
87
97
|
label: string;
|
|
88
98
|
requestedRevenuePercent?: number | null;
|
|
89
99
|
requestedCustomerDiscountPercent?: number | null;
|
|
90
100
|
}
|
|
91
|
-
|
|
101
|
+
interface HeadlessCustomerSubscriptionCancelOptions {
|
|
92
102
|
cancelAtPeriodEnd?: boolean;
|
|
93
103
|
reason?: string | null;
|
|
94
104
|
}
|
|
95
|
-
|
|
105
|
+
interface HeadlessCustomerEmailPreferencesPatch {
|
|
96
106
|
globalUnsubscribed?: boolean;
|
|
97
107
|
listSubscriptions?: Array<{
|
|
98
108
|
listId: string;
|
|
99
109
|
subscribed: boolean;
|
|
100
110
|
}>;
|
|
101
111
|
}
|
|
102
|
-
|
|
112
|
+
interface HeadlessCustomerNotificationPreferencesPatch {
|
|
103
113
|
orderCreatedEmails?: boolean;
|
|
104
114
|
orderCompletedEmails?: boolean;
|
|
105
115
|
paymentIssueEmails?: boolean;
|
|
106
116
|
}
|
|
107
|
-
|
|
117
|
+
interface HeadlessCustomerReplacementOptions {
|
|
108
118
|
lineItemId?: string | null;
|
|
109
119
|
reason: string;
|
|
110
120
|
idempotencyKey?: string;
|
|
111
121
|
}
|
|
112
|
-
|
|
122
|
+
interface HeadlessCustomerResellerCatalogQuery {
|
|
113
123
|
search?: string;
|
|
114
124
|
page?: number;
|
|
115
125
|
perPage?: number;
|
|
116
126
|
}
|
|
117
|
-
|
|
127
|
+
interface HeadlessCustomerResellerOrdersQuery {
|
|
118
128
|
page?: number;
|
|
119
129
|
perPage?: number;
|
|
120
130
|
}
|
|
121
|
-
|
|
131
|
+
interface HeadlessCustomerResellerOrderItem {
|
|
122
132
|
productId: string;
|
|
123
133
|
variantId?: string;
|
|
124
134
|
quantity: number;
|
|
125
135
|
}
|
|
126
136
|
/** Public DTOs mirror the producer-owned schemas imported above. Passing each
|
|
127
137
|
* schema into `request<T>` makes TypeScript reject drift in required fields. */
|
|
128
|
-
|
|
138
|
+
interface HeadlessCustomerMe {
|
|
129
139
|
customer: {
|
|
130
140
|
id: string | null;
|
|
131
141
|
email: string;
|
|
@@ -146,7 +156,7 @@ export interface HeadlessCustomerMe {
|
|
|
146
156
|
};
|
|
147
157
|
};
|
|
148
158
|
}
|
|
149
|
-
|
|
159
|
+
interface HeadlessCustomerOrderSummary {
|
|
150
160
|
uniqid: string;
|
|
151
161
|
status: string;
|
|
152
162
|
total: string;
|
|
@@ -163,7 +173,7 @@ export interface HeadlessCustomerOrderSummary {
|
|
|
163
173
|
} | null;
|
|
164
174
|
}>;
|
|
165
175
|
}
|
|
166
|
-
|
|
176
|
+
interface HeadlessCustomerOrders {
|
|
167
177
|
invoices: HeadlessCustomerOrderSummary[];
|
|
168
178
|
pagination: {
|
|
169
179
|
page: number;
|
|
@@ -172,7 +182,7 @@ export interface HeadlessCustomerOrders {
|
|
|
172
182
|
has_more: boolean;
|
|
173
183
|
};
|
|
174
184
|
}
|
|
175
|
-
|
|
185
|
+
interface HeadlessCustomerPayment {
|
|
176
186
|
gateway: string;
|
|
177
187
|
displayName: string | null;
|
|
178
188
|
cryptoGateway?: string | null;
|
|
@@ -180,7 +190,7 @@ export interface HeadlessCustomerPayment {
|
|
|
180
190
|
cryptoAddress: string | null;
|
|
181
191
|
apmMethod: string | null;
|
|
182
192
|
}
|
|
183
|
-
|
|
193
|
+
interface HeadlessCustomerOrder {
|
|
184
194
|
id: string;
|
|
185
195
|
uniqid: string;
|
|
186
196
|
status: string;
|
|
@@ -240,12 +250,12 @@ export interface HeadlessCustomerOrder {
|
|
|
240
250
|
currentPayment: HeadlessCustomerPayment | null;
|
|
241
251
|
payments: HeadlessCustomerPayment[];
|
|
242
252
|
}
|
|
243
|
-
|
|
253
|
+
declare class HeadlessCustomerError extends Error {
|
|
244
254
|
readonly status: number;
|
|
245
255
|
readonly code?: string | null | undefined;
|
|
246
256
|
constructor(status: number, message: string, code?: string | null | undefined);
|
|
247
257
|
}
|
|
248
|
-
|
|
258
|
+
declare class HeadlessCustomerClient {
|
|
249
259
|
private readonly base;
|
|
250
260
|
private readonly shop;
|
|
251
261
|
private readonly publishableKey;
|
|
@@ -303,6 +313,9 @@ export declare class HeadlessCustomerClient {
|
|
|
303
313
|
addFavorite(productId: string): Promise<HeadlessCustomerFavoriteMutation>;
|
|
304
314
|
removeFavorite(productId: string): Promise<HeadlessCustomerFavoriteMutation>;
|
|
305
315
|
affiliate(): Promise<HeadlessCustomerAffiliate>;
|
|
316
|
+
affiliateStats(input?: {
|
|
317
|
+
days?: number;
|
|
318
|
+
}): Promise<HeadlessCustomerAffiliateStats>;
|
|
306
319
|
createAffiliateLink(input: HeadlessCustomerAffiliateLinkInput): Promise<HeadlessCustomerAffiliateLink>;
|
|
307
320
|
createTicket(input: HeadlessCustomerTicketInput): Promise<HeadlessCustomerTicketCreateResult>;
|
|
308
321
|
ticket(ticketId: string): Promise<HeadlessCustomerTicket>;
|
|
@@ -321,6 +334,6 @@ export declare class HeadlessCustomerClient {
|
|
|
321
334
|
resellerApiKeys(): Promise<HeadlessCustomerResellerApiKeys>;
|
|
322
335
|
logout(): Promise<void>;
|
|
323
336
|
}
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
337
|
+
declare function createCustomerClient(config: HeadlessCustomerClientConfig): HeadlessCustomerClient;
|
|
338
|
+
|
|
339
|
+
export { type HeadlessCustomerAffiliate, type HeadlessCustomerAffiliateLink, type HeadlessCustomerAffiliateLinkInput, type HeadlessCustomerAffiliateStats, type HeadlessCustomerAvatar, HeadlessCustomerClient, type HeadlessCustomerClientConfig, type HeadlessCustomerDashboard, type HeadlessCustomerDownload, type HeadlessCustomerEmailPreferences, type HeadlessCustomerEmailPreferencesPatch, type HeadlessCustomerEmailPreferencesUpdate, HeadlessCustomerError, type HeadlessCustomerFavoriteMutation, type HeadlessCustomerFavorites, type HeadlessCustomerLicenseRenewal, type HeadlessCustomerLicenseReset, type HeadlessCustomerLoyalty, type HeadlessCustomerLoyaltyRedeem, type HeadlessCustomerMe, type HeadlessCustomerNotificationPreferences, type HeadlessCustomerNotificationPreferencesPatch, type HeadlessCustomerOrder, type HeadlessCustomerOrderReview, type HeadlessCustomerOrderReviewInput, type HeadlessCustomerOrderSummary, type HeadlessCustomerOrders, type HeadlessCustomerOrdersQuery, type HeadlessCustomerPayment, type HeadlessCustomerProfileUpdate, type HeadlessCustomerReplacementEligibility, type HeadlessCustomerReplacementOptions, type HeadlessCustomerReplacementRequest, type HeadlessCustomerReseller, type HeadlessCustomerResellerApiKeys, type HeadlessCustomerResellerCatalog, type HeadlessCustomerResellerCatalogQuery, type HeadlessCustomerResellerEnrollment, type HeadlessCustomerResellerOrder, type HeadlessCustomerResellerOrderItem, type HeadlessCustomerResellerOrders, type HeadlessCustomerResellerOrdersQuery, type HeadlessCustomerResellerQuote, type HeadlessCustomerResellerTopup, type HeadlessCustomerResellerWallet, type HeadlessCustomerSession, type HeadlessCustomerSubscriptionBillingHistory, type HeadlessCustomerSubscriptionCancel, type HeadlessCustomerSubscriptionCancelOptions, type HeadlessCustomerSubscriptionStatus, type HeadlessCustomerTicket, type HeadlessCustomerTicketCreateResult, type HeadlessCustomerTicketInput, type HeadlessCustomerVerifyOptions, type HeadlessCustomerWalletTopup, type HeadlessCustomerWalletTopupQuote, type HeadlessCustomerWarranties, type HeadlessCustomerWarrantyClaim, createCustomerClient };
|
package/dist/customer.d.ts
CHANGED
|
@@ -1,13 +1,339 @@
|
|
|
1
|
+
import { CustomerPortalAffiliateSummaryWire, CustomerPortalAffiliateCreateLinkWire, CustomerPortalAffiliateStatsWire, CustomerPortalAvatarWire, CustomerPortalDashboardWire, CustomerPortalProfileUpdateWire, CustomerPortalEmailPreferencesWire, CustomerPortalEmailPreferencesUpdateWire, CustomerPortalNotificationPreferencesWire, CustomerPortalOrderReviewWire, CustomerReplacementEligibilityWire, CustomerReplacementRequestWire, CustomerPortalLicenseResetWire, CustomerPortalLicenseRenewalWire, CustomerPortalWalletTopupQuoteWire, CustomerPortalWalletTopupResultWire, CustomerPortalSubscriptionBillingHistoryWire, CustomerPortalSubscriptionCancelWire, CustomerPortalSubscriptionStatusWire, CustomerLoyaltyWire, CustomerLoyaltyRedeemWire, CustomerWarrantyListWire, CustomerWarrantyClaimWire, CustomerPortalFavoritesWire, CustomerPortalFavoriteMutationWire, CustomerPortalSupportCreateWire, CustomerPortalSupportTicketDetailWire, CustomerResellerSummaryWire, CustomerResellerEnrollmentWire, CustomerResellerCatalogWire, CustomerResellerQuoteWire, CustomerResellerOrdersWire, CustomerResellerOrderWire, CustomerResellerWalletWire, CustomerResellerTopupWire, CustomerResellerApiKeysWire } from '@shoppex/contracts/customer-portal-wire';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
|
-
*
|
|
4
|
+
* Browser client for a customer account hosted outside Shoppex.
|
|
3
5
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* documented customer-account import has to be exported HERE.
|
|
8
|
-
* `packages/storefront/src/customer.ts` mirrors the same surface for the
|
|
9
|
-
* standalone storefront-js repo.
|
|
6
|
+
* The publishable key identifies the merchant and the dashboard origin
|
|
7
|
+
* allowlist authorizes the browser origin. OTP verification returns a separate
|
|
8
|
+
* short-lived `hcs_` token; the SDK never exposes Shoppex's BetterAuth token.
|
|
10
9
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
|
|
11
|
+
interface HeadlessCustomerClientConfig {
|
|
12
|
+
/** Shop slug or Shoppex storefront domain. */
|
|
13
|
+
shop: string;
|
|
14
|
+
/** Existing Headless Checkout publishable key (`pk_live_` / `pk_test_`). */
|
|
15
|
+
publishableKey: string;
|
|
16
|
+
/** API origin override. Defaults to https://api.shoppex.io. */
|
|
17
|
+
apiBaseUrl?: string;
|
|
18
|
+
/** Optional fetch override for tests or compatible runtimes. */
|
|
19
|
+
fetchImpl?: typeof fetch;
|
|
20
|
+
/** Optional session storage override. Defaults to browser sessionStorage. */
|
|
21
|
+
storage?: Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>;
|
|
22
|
+
/** Optional persistent storage override. Defaults to browser localStorage. */
|
|
23
|
+
persistentStorage?: Pick<Storage, 'getItem' | 'setItem' | 'removeItem'>;
|
|
24
|
+
}
|
|
25
|
+
interface HeadlessCustomerSession {
|
|
26
|
+
accessToken: string;
|
|
27
|
+
expiresAt: string;
|
|
28
|
+
}
|
|
29
|
+
interface HeadlessCustomerVerifyOptions {
|
|
30
|
+
/** Persist the customer session across browser restarts for up to 30 days. */
|
|
31
|
+
rememberMe?: boolean;
|
|
32
|
+
}
|
|
33
|
+
interface HeadlessCustomerOrdersQuery {
|
|
34
|
+
page?: number;
|
|
35
|
+
limit?: number;
|
|
36
|
+
status?: string;
|
|
37
|
+
search?: string;
|
|
38
|
+
}
|
|
39
|
+
interface HeadlessCustomerDownload {
|
|
40
|
+
blob: Blob;
|
|
41
|
+
filename: string | null;
|
|
42
|
+
contentType: string | null;
|
|
43
|
+
}
|
|
44
|
+
type HeadlessCustomerDashboardDeliverable = CustomerPortalDashboardWire['deliverables'][number] & {
|
|
45
|
+
/** Pass this value with `invoice_uniqid` to `customer.download()`. */
|
|
46
|
+
downloadIndex?: number | null;
|
|
47
|
+
};
|
|
48
|
+
type HeadlessCustomerDashboard = Omit<CustomerPortalDashboardWire, 'deliverables'> & {
|
|
49
|
+
deliverables: HeadlessCustomerDashboardDeliverable[];
|
|
50
|
+
};
|
|
51
|
+
type HeadlessCustomerProfileUpdate = CustomerPortalProfileUpdateWire;
|
|
52
|
+
type HeadlessCustomerAvatar = CustomerPortalAvatarWire;
|
|
53
|
+
type HeadlessCustomerEmailPreferences = CustomerPortalEmailPreferencesWire;
|
|
54
|
+
type HeadlessCustomerEmailPreferencesUpdate = CustomerPortalEmailPreferencesUpdateWire;
|
|
55
|
+
type HeadlessCustomerNotificationPreferences = CustomerPortalNotificationPreferencesWire;
|
|
56
|
+
type HeadlessCustomerOrderReview = CustomerPortalOrderReviewWire;
|
|
57
|
+
type HeadlessCustomerFavorites = CustomerPortalFavoritesWire;
|
|
58
|
+
type HeadlessCustomerFavoriteMutation = CustomerPortalFavoriteMutationWire;
|
|
59
|
+
type HeadlessCustomerAffiliate = CustomerPortalAffiliateSummaryWire;
|
|
60
|
+
type HeadlessCustomerAffiliateStats = CustomerPortalAffiliateStatsWire;
|
|
61
|
+
type HeadlessCustomerAffiliateLink = CustomerPortalAffiliateCreateLinkWire;
|
|
62
|
+
type HeadlessCustomerTicket = CustomerPortalSupportTicketDetailWire;
|
|
63
|
+
type HeadlessCustomerTicketCreateResult = CustomerPortalSupportCreateWire;
|
|
64
|
+
type HeadlessCustomerLicenseReset = CustomerPortalLicenseResetWire;
|
|
65
|
+
type HeadlessCustomerLicenseRenewal = CustomerPortalLicenseRenewalWire;
|
|
66
|
+
type HeadlessCustomerWalletTopupQuote = CustomerPortalWalletTopupQuoteWire;
|
|
67
|
+
type HeadlessCustomerWalletTopup = CustomerPortalWalletTopupResultWire;
|
|
68
|
+
type HeadlessCustomerSubscriptionBillingHistory = CustomerPortalSubscriptionBillingHistoryWire;
|
|
69
|
+
type HeadlessCustomerSubscriptionCancel = CustomerPortalSubscriptionCancelWire;
|
|
70
|
+
type HeadlessCustomerSubscriptionStatus = CustomerPortalSubscriptionStatusWire;
|
|
71
|
+
type HeadlessCustomerLoyalty = CustomerLoyaltyWire;
|
|
72
|
+
type HeadlessCustomerLoyaltyRedeem = CustomerLoyaltyRedeemWire;
|
|
73
|
+
type HeadlessCustomerWarranties = CustomerWarrantyListWire;
|
|
74
|
+
type HeadlessCustomerWarrantyClaim = CustomerWarrantyClaimWire;
|
|
75
|
+
type HeadlessCustomerReplacementEligibility = CustomerReplacementEligibilityWire;
|
|
76
|
+
type HeadlessCustomerReplacementRequest = CustomerReplacementRequestWire;
|
|
77
|
+
type HeadlessCustomerReseller = CustomerResellerSummaryWire;
|
|
78
|
+
type HeadlessCustomerResellerEnrollment = CustomerResellerEnrollmentWire;
|
|
79
|
+
type HeadlessCustomerResellerCatalog = CustomerResellerCatalogWire;
|
|
80
|
+
type HeadlessCustomerResellerQuote = CustomerResellerQuoteWire;
|
|
81
|
+
type HeadlessCustomerResellerOrders = CustomerResellerOrdersWire;
|
|
82
|
+
type HeadlessCustomerResellerOrder = CustomerResellerOrderWire;
|
|
83
|
+
type HeadlessCustomerResellerWallet = CustomerResellerWalletWire;
|
|
84
|
+
type HeadlessCustomerResellerApiKeys = CustomerResellerApiKeysWire;
|
|
85
|
+
type HeadlessCustomerResellerTopup = CustomerResellerTopupWire;
|
|
86
|
+
interface HeadlessCustomerTicketInput {
|
|
87
|
+
title?: string;
|
|
88
|
+
message: string;
|
|
89
|
+
invoiceId?: string;
|
|
90
|
+
}
|
|
91
|
+
interface HeadlessCustomerOrderReviewInput {
|
|
92
|
+
score: 1 | 3 | 5;
|
|
93
|
+
message: string;
|
|
94
|
+
}
|
|
95
|
+
interface HeadlessCustomerAffiliateLinkInput {
|
|
96
|
+
code: string;
|
|
97
|
+
label: string;
|
|
98
|
+
requestedRevenuePercent?: number | null;
|
|
99
|
+
requestedCustomerDiscountPercent?: number | null;
|
|
100
|
+
}
|
|
101
|
+
interface HeadlessCustomerSubscriptionCancelOptions {
|
|
102
|
+
cancelAtPeriodEnd?: boolean;
|
|
103
|
+
reason?: string | null;
|
|
104
|
+
}
|
|
105
|
+
interface HeadlessCustomerEmailPreferencesPatch {
|
|
106
|
+
globalUnsubscribed?: boolean;
|
|
107
|
+
listSubscriptions?: Array<{
|
|
108
|
+
listId: string;
|
|
109
|
+
subscribed: boolean;
|
|
110
|
+
}>;
|
|
111
|
+
}
|
|
112
|
+
interface HeadlessCustomerNotificationPreferencesPatch {
|
|
113
|
+
orderCreatedEmails?: boolean;
|
|
114
|
+
orderCompletedEmails?: boolean;
|
|
115
|
+
paymentIssueEmails?: boolean;
|
|
116
|
+
}
|
|
117
|
+
interface HeadlessCustomerReplacementOptions {
|
|
118
|
+
lineItemId?: string | null;
|
|
119
|
+
reason: string;
|
|
120
|
+
idempotencyKey?: string;
|
|
121
|
+
}
|
|
122
|
+
interface HeadlessCustomerResellerCatalogQuery {
|
|
123
|
+
search?: string;
|
|
124
|
+
page?: number;
|
|
125
|
+
perPage?: number;
|
|
126
|
+
}
|
|
127
|
+
interface HeadlessCustomerResellerOrdersQuery {
|
|
128
|
+
page?: number;
|
|
129
|
+
perPage?: number;
|
|
130
|
+
}
|
|
131
|
+
interface HeadlessCustomerResellerOrderItem {
|
|
132
|
+
productId: string;
|
|
133
|
+
variantId?: string;
|
|
134
|
+
quantity: number;
|
|
135
|
+
}
|
|
136
|
+
/** Public DTOs mirror the producer-owned schemas imported above. Passing each
|
|
137
|
+
* schema into `request<T>` makes TypeScript reject drift in required fields. */
|
|
138
|
+
interface HeadlessCustomerMe {
|
|
139
|
+
customer: {
|
|
140
|
+
id: string | null;
|
|
141
|
+
email: string;
|
|
142
|
+
name: string;
|
|
143
|
+
avatar_url: string | null;
|
|
144
|
+
joined_at: string | null;
|
|
145
|
+
};
|
|
146
|
+
shop: {
|
|
147
|
+
id: string;
|
|
148
|
+
slug: string;
|
|
149
|
+
name: string;
|
|
150
|
+
currency: string;
|
|
151
|
+
branding: {
|
|
152
|
+
logo_url: string | null;
|
|
153
|
+
primary_color: string;
|
|
154
|
+
secondary_color: string;
|
|
155
|
+
accent_color: string;
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
interface HeadlessCustomerOrderSummary {
|
|
160
|
+
uniqid: string;
|
|
161
|
+
status: string;
|
|
162
|
+
total: string;
|
|
163
|
+
totalDisplay: string | null;
|
|
164
|
+
currency: string;
|
|
165
|
+
createdAt: string;
|
|
166
|
+
lineItems: Array<{
|
|
167
|
+
productTitle: string | null;
|
|
168
|
+
quantity: number;
|
|
169
|
+
product: {
|
|
170
|
+
attachment_imageId: {
|
|
171
|
+
cloudflareImageId: string | null;
|
|
172
|
+
} | null;
|
|
173
|
+
} | null;
|
|
174
|
+
}>;
|
|
175
|
+
}
|
|
176
|
+
interface HeadlessCustomerOrders {
|
|
177
|
+
invoices: HeadlessCustomerOrderSummary[];
|
|
178
|
+
pagination: {
|
|
179
|
+
page: number;
|
|
180
|
+
limit: number;
|
|
181
|
+
total: number;
|
|
182
|
+
has_more: boolean;
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
interface HeadlessCustomerPayment {
|
|
186
|
+
gateway: string;
|
|
187
|
+
displayName: string | null;
|
|
188
|
+
cryptoGateway?: string | null;
|
|
189
|
+
blockchain: string | null;
|
|
190
|
+
cryptoAddress: string | null;
|
|
191
|
+
apmMethod: string | null;
|
|
192
|
+
}
|
|
193
|
+
interface HeadlessCustomerOrder {
|
|
194
|
+
id: string;
|
|
195
|
+
uniqid: string;
|
|
196
|
+
status: string;
|
|
197
|
+
statusDetails: string | null;
|
|
198
|
+
total: string;
|
|
199
|
+
totalDisplay: string | null;
|
|
200
|
+
subtotal: string;
|
|
201
|
+
discount: string;
|
|
202
|
+
discountDisplay: string | null;
|
|
203
|
+
tax: string;
|
|
204
|
+
taxPercentage: string;
|
|
205
|
+
currency: string;
|
|
206
|
+
createdAt: string;
|
|
207
|
+
updatedAt: string;
|
|
208
|
+
gatewayUpdatedAt: string | null;
|
|
209
|
+
customFields: Record<string, unknown> | null;
|
|
210
|
+
balancePaidAmount: string;
|
|
211
|
+
currentPaymentAttemptId: string | null;
|
|
212
|
+
lineItems: Array<{
|
|
213
|
+
id: string;
|
|
214
|
+
productTitle: string;
|
|
215
|
+
productType: string;
|
|
216
|
+
variantTitle: string | null;
|
|
217
|
+
unitPrice: string;
|
|
218
|
+
quantity: number;
|
|
219
|
+
total: string;
|
|
220
|
+
deliveryText: string | null;
|
|
221
|
+
deliverySummary: {
|
|
222
|
+
codes: string[];
|
|
223
|
+
links: Array<{
|
|
224
|
+
label: string;
|
|
225
|
+
value: string;
|
|
226
|
+
/** External URL for non-Shoppex links. Portal-only download URLs are removed. */
|
|
227
|
+
href?: string | null;
|
|
228
|
+
/** Pass this value to `customer.download(orderId, downloadIndex)`. */
|
|
229
|
+
downloadIndex?: number | null;
|
|
230
|
+
}>;
|
|
231
|
+
notes: string[];
|
|
232
|
+
serials: Array<{
|
|
233
|
+
value: string;
|
|
234
|
+
is_replacement: boolean;
|
|
235
|
+
is_replaced: boolean;
|
|
236
|
+
}>;
|
|
237
|
+
} | null;
|
|
238
|
+
deliveredAt: string | null;
|
|
239
|
+
deliveryStatus: 'PENDING' | 'AWAITING_FULFILLMENT' | 'DELIVERED' | 'FAILED';
|
|
240
|
+
customFields: Record<string, unknown> | null;
|
|
241
|
+
product: {
|
|
242
|
+
uniqid: string;
|
|
243
|
+
slug: string | null;
|
|
244
|
+
serviceText: string | null;
|
|
245
|
+
attachment_imageId: {
|
|
246
|
+
cloudflareImageId: string | null;
|
|
247
|
+
} | null;
|
|
248
|
+
} | null;
|
|
249
|
+
}>;
|
|
250
|
+
currentPayment: HeadlessCustomerPayment | null;
|
|
251
|
+
payments: HeadlessCustomerPayment[];
|
|
252
|
+
}
|
|
253
|
+
declare class HeadlessCustomerError extends Error {
|
|
254
|
+
readonly status: number;
|
|
255
|
+
readonly code?: string | null | undefined;
|
|
256
|
+
constructor(status: number, message: string, code?: string | null | undefined);
|
|
257
|
+
}
|
|
258
|
+
declare class HeadlessCustomerClient {
|
|
259
|
+
private readonly base;
|
|
260
|
+
private readonly shop;
|
|
261
|
+
private readonly publishableKey;
|
|
262
|
+
private readonly fetchImpl;
|
|
263
|
+
private readonly storage;
|
|
264
|
+
private readonly persistentStorage;
|
|
265
|
+
private readonly storageKey;
|
|
266
|
+
private memorySession;
|
|
267
|
+
constructor(config: HeadlessCustomerClientConfig);
|
|
268
|
+
getSession(): HeadlessCustomerSession | null;
|
|
269
|
+
clearSession(): void;
|
|
270
|
+
private saveSession;
|
|
271
|
+
private url;
|
|
272
|
+
private request;
|
|
273
|
+
private requestFile;
|
|
274
|
+
requestOtp(email: string): Promise<{
|
|
275
|
+
requested: boolean;
|
|
276
|
+
}>;
|
|
277
|
+
verifyOtp(email: string, otp: string, options?: HeadlessCustomerVerifyOptions): Promise<HeadlessCustomerSession>;
|
|
278
|
+
me(): Promise<HeadlessCustomerMe>;
|
|
279
|
+
dashboard(): Promise<HeadlessCustomerDashboard>;
|
|
280
|
+
updateProfile(input: {
|
|
281
|
+
name: string;
|
|
282
|
+
}): Promise<HeadlessCustomerProfileUpdate>;
|
|
283
|
+
updateAvatar(file: File): Promise<HeadlessCustomerAvatar>;
|
|
284
|
+
removeAvatar(): Promise<HeadlessCustomerAvatar>;
|
|
285
|
+
emailPreferences(): Promise<HeadlessCustomerEmailPreferences>;
|
|
286
|
+
updateEmailPreferences(patch: HeadlessCustomerEmailPreferencesPatch): Promise<HeadlessCustomerEmailPreferencesUpdate>;
|
|
287
|
+
notificationPreferences(): Promise<HeadlessCustomerNotificationPreferences>;
|
|
288
|
+
updateNotificationPreferences(patch: HeadlessCustomerNotificationPreferencesPatch): Promise<HeadlessCustomerNotificationPreferences>;
|
|
289
|
+
orders(options?: HeadlessCustomerOrdersQuery): Promise<HeadlessCustomerOrders>;
|
|
290
|
+
order(id: string): Promise<HeadlessCustomerOrder>;
|
|
291
|
+
orderReview(orderId: string): Promise<HeadlessCustomerOrderReview>;
|
|
292
|
+
submitOrderReview(orderId: string, input: HeadlessCustomerOrderReviewInput): Promise<HeadlessCustomerOrderReview>;
|
|
293
|
+
invoicePdf(orderId: string): Promise<HeadlessCustomerDownload>;
|
|
294
|
+
replacementEligibility(orderId: string, lineItemId?: string): Promise<HeadlessCustomerReplacementEligibility>;
|
|
295
|
+
requestReplacement(orderId: string, options: HeadlessCustomerReplacementOptions): Promise<HeadlessCustomerReplacementRequest>;
|
|
296
|
+
download(orderId: string, fileIndex: number): Promise<HeadlessCustomerDownload>;
|
|
297
|
+
resetLicenseHwid(licenseId: string): Promise<HeadlessCustomerLicenseReset>;
|
|
298
|
+
renewLicense(licenseId: string): Promise<HeadlessCustomerLicenseRenewal>;
|
|
299
|
+
walletTopupQuote(): Promise<HeadlessCustomerWalletTopupQuote>;
|
|
300
|
+
createWalletTopup(amount: string): Promise<HeadlessCustomerWalletTopup>;
|
|
301
|
+
subscriptionBillingHistory(subscriptionId: string): Promise<HeadlessCustomerSubscriptionBillingHistory>;
|
|
302
|
+
cancelSubscription(subscriptionId: string, options?: HeadlessCustomerSubscriptionCancelOptions): Promise<HeadlessCustomerSubscriptionCancel>;
|
|
303
|
+
pauseSubscription(subscriptionId: string): Promise<HeadlessCustomerSubscriptionStatus>;
|
|
304
|
+
resumeSubscription(subscriptionId: string): Promise<HeadlessCustomerSubscriptionStatus>;
|
|
305
|
+
loyalty(): Promise<HeadlessCustomerLoyalty>;
|
|
306
|
+
redeemLoyaltyPoints(input: {
|
|
307
|
+
points: number;
|
|
308
|
+
idempotencyKey: string;
|
|
309
|
+
}): Promise<HeadlessCustomerLoyaltyRedeem>;
|
|
310
|
+
warranties(invoiceId?: string): Promise<HeadlessCustomerWarranties>;
|
|
311
|
+
claimWarranty(warrantyId: string, message?: string): Promise<HeadlessCustomerWarrantyClaim>;
|
|
312
|
+
favorites(): Promise<HeadlessCustomerFavorites>;
|
|
313
|
+
addFavorite(productId: string): Promise<HeadlessCustomerFavoriteMutation>;
|
|
314
|
+
removeFavorite(productId: string): Promise<HeadlessCustomerFavoriteMutation>;
|
|
315
|
+
affiliate(): Promise<HeadlessCustomerAffiliate>;
|
|
316
|
+
affiliateStats(input?: {
|
|
317
|
+
days?: number;
|
|
318
|
+
}): Promise<HeadlessCustomerAffiliateStats>;
|
|
319
|
+
createAffiliateLink(input: HeadlessCustomerAffiliateLinkInput): Promise<HeadlessCustomerAffiliateLink>;
|
|
320
|
+
createTicket(input: HeadlessCustomerTicketInput): Promise<HeadlessCustomerTicketCreateResult>;
|
|
321
|
+
ticket(ticketId: string): Promise<HeadlessCustomerTicket>;
|
|
322
|
+
replyToTicket(ticketId: string, message: string): Promise<void>;
|
|
323
|
+
reseller(): Promise<HeadlessCustomerReseller>;
|
|
324
|
+
applyForReseller(note?: string): Promise<HeadlessCustomerResellerEnrollment>;
|
|
325
|
+
enrollAsReseller(): Promise<HeadlessCustomerResellerEnrollment>;
|
|
326
|
+
acceptResellerInvite(token: string): Promise<HeadlessCustomerResellerEnrollment>;
|
|
327
|
+
resellerCatalog(options?: HeadlessCustomerResellerCatalogQuery): Promise<HeadlessCustomerResellerCatalog>;
|
|
328
|
+
quoteResellerOrder(items: HeadlessCustomerResellerOrderItem[]): Promise<HeadlessCustomerResellerQuote>;
|
|
329
|
+
resellerOrders(options?: HeadlessCustomerResellerOrdersQuery): Promise<HeadlessCustomerResellerOrders>;
|
|
330
|
+
resellerOrder(orderId: string): Promise<HeadlessCustomerResellerOrder>;
|
|
331
|
+
resellerWallet(): Promise<HeadlessCustomerResellerWallet>;
|
|
332
|
+
resellerTopupQuote(): Promise<HeadlessCustomerWalletTopupQuote>;
|
|
333
|
+
createResellerTopup(amount: string): Promise<HeadlessCustomerResellerTopup>;
|
|
334
|
+
resellerApiKeys(): Promise<HeadlessCustomerResellerApiKeys>;
|
|
335
|
+
logout(): Promise<void>;
|
|
336
|
+
}
|
|
337
|
+
declare function createCustomerClient(config: HeadlessCustomerClientConfig): HeadlessCustomerClient;
|
|
338
|
+
|
|
339
|
+
export { type HeadlessCustomerAffiliate, type HeadlessCustomerAffiliateLink, type HeadlessCustomerAffiliateLinkInput, type HeadlessCustomerAffiliateStats, type HeadlessCustomerAvatar, HeadlessCustomerClient, type HeadlessCustomerClientConfig, type HeadlessCustomerDashboard, type HeadlessCustomerDownload, type HeadlessCustomerEmailPreferences, type HeadlessCustomerEmailPreferencesPatch, type HeadlessCustomerEmailPreferencesUpdate, HeadlessCustomerError, type HeadlessCustomerFavoriteMutation, type HeadlessCustomerFavorites, type HeadlessCustomerLicenseRenewal, type HeadlessCustomerLicenseReset, type HeadlessCustomerLoyalty, type HeadlessCustomerLoyaltyRedeem, type HeadlessCustomerMe, type HeadlessCustomerNotificationPreferences, type HeadlessCustomerNotificationPreferencesPatch, type HeadlessCustomerOrder, type HeadlessCustomerOrderReview, type HeadlessCustomerOrderReviewInput, type HeadlessCustomerOrderSummary, type HeadlessCustomerOrders, type HeadlessCustomerOrdersQuery, type HeadlessCustomerPayment, type HeadlessCustomerProfileUpdate, type HeadlessCustomerReplacementEligibility, type HeadlessCustomerReplacementOptions, type HeadlessCustomerReplacementRequest, type HeadlessCustomerReseller, type HeadlessCustomerResellerApiKeys, type HeadlessCustomerResellerCatalog, type HeadlessCustomerResellerCatalogQuery, type HeadlessCustomerResellerEnrollment, type HeadlessCustomerResellerOrder, type HeadlessCustomerResellerOrderItem, type HeadlessCustomerResellerOrders, type HeadlessCustomerResellerOrdersQuery, type HeadlessCustomerResellerQuote, type HeadlessCustomerResellerTopup, type HeadlessCustomerResellerWallet, type HeadlessCustomerSession, type HeadlessCustomerSubscriptionBillingHistory, type HeadlessCustomerSubscriptionCancel, type HeadlessCustomerSubscriptionCancelOptions, type HeadlessCustomerSubscriptionStatus, type HeadlessCustomerTicket, type HeadlessCustomerTicketCreateResult, type HeadlessCustomerTicketInput, type HeadlessCustomerVerifyOptions, type HeadlessCustomerWalletTopup, type HeadlessCustomerWalletTopupQuote, type HeadlessCustomerWarranties, type HeadlessCustomerWarrantyClaim, createCustomerClient };
|