@shoppexio/storefront 1.0.58 → 1.0.60
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 +103 -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} +71 -62
- 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 +1857 -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 -32
- 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 -148
- 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 -766
- 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,97 +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
|
-
|
|
77
|
-
|
|
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 {
|
|
78
87
|
title?: string;
|
|
79
88
|
message: string;
|
|
80
89
|
invoiceId?: string;
|
|
81
90
|
}
|
|
82
|
-
|
|
91
|
+
interface HeadlessCustomerOrderReviewInput {
|
|
83
92
|
score: 1 | 3 | 5;
|
|
84
93
|
message: string;
|
|
85
94
|
}
|
|
86
|
-
|
|
95
|
+
interface HeadlessCustomerAffiliateLinkInput {
|
|
87
96
|
code: string;
|
|
88
97
|
label: string;
|
|
89
98
|
requestedRevenuePercent?: number | null;
|
|
90
99
|
requestedCustomerDiscountPercent?: number | null;
|
|
91
100
|
}
|
|
92
|
-
|
|
101
|
+
interface HeadlessCustomerSubscriptionCancelOptions {
|
|
93
102
|
cancelAtPeriodEnd?: boolean;
|
|
94
103
|
reason?: string | null;
|
|
95
104
|
}
|
|
96
|
-
|
|
105
|
+
interface HeadlessCustomerEmailPreferencesPatch {
|
|
97
106
|
globalUnsubscribed?: boolean;
|
|
98
107
|
listSubscriptions?: Array<{
|
|
99
108
|
listId: string;
|
|
100
109
|
subscribed: boolean;
|
|
101
110
|
}>;
|
|
102
111
|
}
|
|
103
|
-
|
|
112
|
+
interface HeadlessCustomerNotificationPreferencesPatch {
|
|
104
113
|
orderCreatedEmails?: boolean;
|
|
105
114
|
orderCompletedEmails?: boolean;
|
|
106
115
|
paymentIssueEmails?: boolean;
|
|
107
116
|
}
|
|
108
|
-
|
|
117
|
+
interface HeadlessCustomerReplacementOptions {
|
|
109
118
|
lineItemId?: string | null;
|
|
110
119
|
reason: string;
|
|
111
120
|
idempotencyKey?: string;
|
|
112
121
|
}
|
|
113
|
-
|
|
122
|
+
interface HeadlessCustomerResellerCatalogQuery {
|
|
114
123
|
search?: string;
|
|
115
124
|
page?: number;
|
|
116
125
|
perPage?: number;
|
|
117
126
|
}
|
|
118
|
-
|
|
127
|
+
interface HeadlessCustomerResellerOrdersQuery {
|
|
119
128
|
page?: number;
|
|
120
129
|
perPage?: number;
|
|
121
130
|
}
|
|
122
|
-
|
|
131
|
+
interface HeadlessCustomerResellerOrderItem {
|
|
123
132
|
productId: string;
|
|
124
133
|
variantId?: string;
|
|
125
134
|
quantity: number;
|
|
126
135
|
}
|
|
127
136
|
/** Public DTOs mirror the producer-owned schemas imported above. Passing each
|
|
128
137
|
* schema into `request<T>` makes TypeScript reject drift in required fields. */
|
|
129
|
-
|
|
138
|
+
interface HeadlessCustomerMe {
|
|
130
139
|
customer: {
|
|
131
140
|
id: string | null;
|
|
132
141
|
email: string;
|
|
@@ -147,7 +156,7 @@ export interface HeadlessCustomerMe {
|
|
|
147
156
|
};
|
|
148
157
|
};
|
|
149
158
|
}
|
|
150
|
-
|
|
159
|
+
interface HeadlessCustomerOrderSummary {
|
|
151
160
|
uniqid: string;
|
|
152
161
|
status: string;
|
|
153
162
|
total: string;
|
|
@@ -164,7 +173,7 @@ export interface HeadlessCustomerOrderSummary {
|
|
|
164
173
|
} | null;
|
|
165
174
|
}>;
|
|
166
175
|
}
|
|
167
|
-
|
|
176
|
+
interface HeadlessCustomerOrders {
|
|
168
177
|
invoices: HeadlessCustomerOrderSummary[];
|
|
169
178
|
pagination: {
|
|
170
179
|
page: number;
|
|
@@ -173,7 +182,7 @@ export interface HeadlessCustomerOrders {
|
|
|
173
182
|
has_more: boolean;
|
|
174
183
|
};
|
|
175
184
|
}
|
|
176
|
-
|
|
185
|
+
interface HeadlessCustomerPayment {
|
|
177
186
|
gateway: string;
|
|
178
187
|
displayName: string | null;
|
|
179
188
|
cryptoGateway?: string | null;
|
|
@@ -181,7 +190,7 @@ export interface HeadlessCustomerPayment {
|
|
|
181
190
|
cryptoAddress: string | null;
|
|
182
191
|
apmMethod: string | null;
|
|
183
192
|
}
|
|
184
|
-
|
|
193
|
+
interface HeadlessCustomerOrder {
|
|
185
194
|
id: string;
|
|
186
195
|
uniqid: string;
|
|
187
196
|
status: string;
|
|
@@ -241,12 +250,12 @@ export interface HeadlessCustomerOrder {
|
|
|
241
250
|
currentPayment: HeadlessCustomerPayment | null;
|
|
242
251
|
payments: HeadlessCustomerPayment[];
|
|
243
252
|
}
|
|
244
|
-
|
|
253
|
+
declare class HeadlessCustomerError extends Error {
|
|
245
254
|
readonly status: number;
|
|
246
255
|
readonly code?: string | null | undefined;
|
|
247
256
|
constructor(status: number, message: string, code?: string | null | undefined);
|
|
248
257
|
}
|
|
249
|
-
|
|
258
|
+
declare class HeadlessCustomerClient {
|
|
250
259
|
private readonly base;
|
|
251
260
|
private readonly shop;
|
|
252
261
|
private readonly publishableKey;
|
|
@@ -325,6 +334,6 @@ export declare class HeadlessCustomerClient {
|
|
|
325
334
|
resellerApiKeys(): Promise<HeadlessCustomerResellerApiKeys>;
|
|
326
335
|
logout(): Promise<void>;
|
|
327
336
|
}
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
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 };
|