@forgecart/sdk 1.2.7 → 1.202607061936.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.
- package/README.md +2 -2
- package/dist/admin-types.generated.d.ts +481 -33
- package/dist/admin.d.ts +2 -0
- package/dist/admin.generated.d.ts +67 -27
- package/dist/admin.generated.js +88 -4
- package/dist/admin.js +35 -31
- package/dist/client.generated.d.ts +40 -1
- package/dist/client.generated.js +152 -6
- package/dist/documents.generated.d.ts +28 -6
- package/dist/documents.generated.js +517 -41
- package/dist/index.d.ts +1 -0
- package/dist/shop-types.generated.d.ts +205 -13
- package/dist/shop.d.ts +1 -0
- package/dist/shop.generated.d.ts +13 -4
- package/dist/shop.generated.js +19 -1
- package/dist/shop.js +17 -15
- package/package.json +8 -4
- package/src/admin-types.generated.d.ts +10013 -0
- package/src/admin-types.generated.ts +1019 -96
- package/src/admin.generated.d.ts +806 -0
- package/src/admin.generated.ts +117 -29
- package/src/admin.ts +2 -0
- package/src/client.generated.d.ts +249 -0
- package/src/client.generated.ts +185 -5
- package/src/documents.generated.d.ts +473 -0
- package/src/documents.generated.ts +530 -32
- package/src/error-utils.d.ts +25 -0
- package/src/hook-event-map.generated.d.ts +243 -0
- package/src/index.d.ts +22 -0
- package/src/index.ts +1 -0
- package/src/sdk-hook-subscription.generated.d.ts +29 -0
- package/src/sdk-plugin.generated.d.ts +38 -0
- package/src/sdk-types.generated.d.ts +56 -0
- package/src/shop-types.generated.d.ts +4786 -0
- package/src/shop-types.generated.ts +275 -13
- package/src/shop.generated.d.ts +213 -0
- package/src/shop.generated.ts +22 -5
- package/src/shop.ts +1 -0
- package/src/upload.d.ts +14 -0
package/dist/admin.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.ZoneCategory = exports.TransactionCategory = exports.TaxCategory = exports.SubscriptionCategory = exports.StockCategory = exports.ShippingCategory = void 0;
|
|
3
|
+
exports.ScheduledJobCategory = exports.RoleCategory = exports.PromotionCategory = exports.ProductCategory = exports.ProductVariantCategory = exports.ProductOptionCategory = exports.OptionCategory = exports.OptionGroupCategory = exports.PluginCategory = exports.ManageableCategory = exports.PaymentCategory = exports.OrderCategory = exports.OrderModificationCategory = exports.NoteCategory = exports.ModificationCategory = exports.DraftCategory = exports.CouponCategory = exports.OnboardingCategory = exports.MissionCategory = exports.MarketingIdentityCategory = exports.MarketingEventCategory = exports.MarketingAttributionCategory = exports.MarketCategory = exports.HookCategory = exports.HookDispatchCategory = exports.FulfillmentCategory = exports.FulfillmentRequestCategory = exports.FacetCategory = exports.DeploymentCategory = exports.CustomerCategory = exports.CustomerGroupCategory = exports.GroupCategory = exports.AddressCategory = exports.CountryCategory = exports.CollectionCategory = exports.ChatCategory = exports.ChannelCategory = exports.SettingsCategory = exports.AuthCategory = exports.AudienceSegmentCategory = exports.AudienceMembershipCategory = exports.AssetCategory = exports.AnalyticsGatewayCategory = exports.AdministratorCategory = exports.AcfCategory = exports.AcfSchemaCategory = exports.PublishCategory = exports.FieldDefinitionCategory = exports.EntryCategory = exports.AdminNamespace = void 0;
|
|
4
|
+
exports.ZoneCategory = exports.TransactionCategory = exports.TaxCategory = exports.SubscriptionCategory = exports.StockCategory = exports.ShippingCategory = exports.SellerCategory = exports.SearchCategory = void 0;
|
|
5
5
|
var admin_generated_1 = require("./admin.generated");
|
|
6
6
|
Object.defineProperty(exports, "AdminNamespace", { enumerable: true, get: function () { return admin_generated_1.AdminNamespace; } });
|
|
7
7
|
var admin_generated_2 = require("./admin.generated");
|
|
@@ -57,60 +57,64 @@ Object.defineProperty(exports, "HookDispatchCategory", { enumerable: true, get:
|
|
|
57
57
|
var admin_generated_27 = require("./admin.generated");
|
|
58
58
|
Object.defineProperty(exports, "HookCategory", { enumerable: true, get: function () { return admin_generated_27.HookCategory; } });
|
|
59
59
|
var admin_generated_28 = require("./admin.generated");
|
|
60
|
-
Object.defineProperty(exports, "
|
|
60
|
+
Object.defineProperty(exports, "MarketCategory", { enumerable: true, get: function () { return admin_generated_28.MarketCategory; } });
|
|
61
61
|
var admin_generated_29 = require("./admin.generated");
|
|
62
|
-
Object.defineProperty(exports, "
|
|
62
|
+
Object.defineProperty(exports, "MarketingAttributionCategory", { enumerable: true, get: function () { return admin_generated_29.MarketingAttributionCategory; } });
|
|
63
63
|
var admin_generated_30 = require("./admin.generated");
|
|
64
|
-
Object.defineProperty(exports, "
|
|
64
|
+
Object.defineProperty(exports, "MarketingEventCategory", { enumerable: true, get: function () { return admin_generated_30.MarketingEventCategory; } });
|
|
65
65
|
var admin_generated_31 = require("./admin.generated");
|
|
66
|
-
Object.defineProperty(exports, "
|
|
66
|
+
Object.defineProperty(exports, "MarketingIdentityCategory", { enumerable: true, get: function () { return admin_generated_31.MarketingIdentityCategory; } });
|
|
67
67
|
var admin_generated_32 = require("./admin.generated");
|
|
68
|
-
Object.defineProperty(exports, "
|
|
68
|
+
Object.defineProperty(exports, "MissionCategory", { enumerable: true, get: function () { return admin_generated_32.MissionCategory; } });
|
|
69
69
|
var admin_generated_33 = require("./admin.generated");
|
|
70
|
-
Object.defineProperty(exports, "
|
|
70
|
+
Object.defineProperty(exports, "OnboardingCategory", { enumerable: true, get: function () { return admin_generated_33.OnboardingCategory; } });
|
|
71
71
|
var admin_generated_34 = require("./admin.generated");
|
|
72
|
-
Object.defineProperty(exports, "
|
|
72
|
+
Object.defineProperty(exports, "CouponCategory", { enumerable: true, get: function () { return admin_generated_34.CouponCategory; } });
|
|
73
73
|
var admin_generated_35 = require("./admin.generated");
|
|
74
|
-
Object.defineProperty(exports, "
|
|
74
|
+
Object.defineProperty(exports, "DraftCategory", { enumerable: true, get: function () { return admin_generated_35.DraftCategory; } });
|
|
75
75
|
var admin_generated_36 = require("./admin.generated");
|
|
76
|
-
Object.defineProperty(exports, "
|
|
76
|
+
Object.defineProperty(exports, "ModificationCategory", { enumerable: true, get: function () { return admin_generated_36.ModificationCategory; } });
|
|
77
77
|
var admin_generated_37 = require("./admin.generated");
|
|
78
|
-
Object.defineProperty(exports, "
|
|
78
|
+
Object.defineProperty(exports, "NoteCategory", { enumerable: true, get: function () { return admin_generated_37.NoteCategory; } });
|
|
79
79
|
var admin_generated_38 = require("./admin.generated");
|
|
80
|
-
Object.defineProperty(exports, "
|
|
80
|
+
Object.defineProperty(exports, "OrderModificationCategory", { enumerable: true, get: function () { return admin_generated_38.OrderModificationCategory; } });
|
|
81
81
|
var admin_generated_39 = require("./admin.generated");
|
|
82
|
-
Object.defineProperty(exports, "
|
|
82
|
+
Object.defineProperty(exports, "OrderCategory", { enumerable: true, get: function () { return admin_generated_39.OrderCategory; } });
|
|
83
83
|
var admin_generated_40 = require("./admin.generated");
|
|
84
|
-
Object.defineProperty(exports, "
|
|
84
|
+
Object.defineProperty(exports, "PaymentCategory", { enumerable: true, get: function () { return admin_generated_40.PaymentCategory; } });
|
|
85
85
|
var admin_generated_41 = require("./admin.generated");
|
|
86
|
-
Object.defineProperty(exports, "
|
|
86
|
+
Object.defineProperty(exports, "ManageableCategory", { enumerable: true, get: function () { return admin_generated_41.ManageableCategory; } });
|
|
87
87
|
var admin_generated_42 = require("./admin.generated");
|
|
88
|
-
Object.defineProperty(exports, "
|
|
88
|
+
Object.defineProperty(exports, "PluginCategory", { enumerable: true, get: function () { return admin_generated_42.PluginCategory; } });
|
|
89
89
|
var admin_generated_43 = require("./admin.generated");
|
|
90
|
-
Object.defineProperty(exports, "
|
|
90
|
+
Object.defineProperty(exports, "OptionGroupCategory", { enumerable: true, get: function () { return admin_generated_43.OptionGroupCategory; } });
|
|
91
91
|
var admin_generated_44 = require("./admin.generated");
|
|
92
|
-
Object.defineProperty(exports, "
|
|
92
|
+
Object.defineProperty(exports, "OptionCategory", { enumerable: true, get: function () { return admin_generated_44.OptionCategory; } });
|
|
93
93
|
var admin_generated_45 = require("./admin.generated");
|
|
94
|
-
Object.defineProperty(exports, "
|
|
94
|
+
Object.defineProperty(exports, "ProductOptionCategory", { enumerable: true, get: function () { return admin_generated_45.ProductOptionCategory; } });
|
|
95
95
|
var admin_generated_46 = require("./admin.generated");
|
|
96
|
-
Object.defineProperty(exports, "
|
|
96
|
+
Object.defineProperty(exports, "ProductVariantCategory", { enumerable: true, get: function () { return admin_generated_46.ProductVariantCategory; } });
|
|
97
97
|
var admin_generated_47 = require("./admin.generated");
|
|
98
|
-
Object.defineProperty(exports, "
|
|
98
|
+
Object.defineProperty(exports, "ProductCategory", { enumerable: true, get: function () { return admin_generated_47.ProductCategory; } });
|
|
99
99
|
var admin_generated_48 = require("./admin.generated");
|
|
100
|
-
Object.defineProperty(exports, "
|
|
100
|
+
Object.defineProperty(exports, "PromotionCategory", { enumerable: true, get: function () { return admin_generated_48.PromotionCategory; } });
|
|
101
101
|
var admin_generated_49 = require("./admin.generated");
|
|
102
|
-
Object.defineProperty(exports, "
|
|
102
|
+
Object.defineProperty(exports, "RoleCategory", { enumerable: true, get: function () { return admin_generated_49.RoleCategory; } });
|
|
103
103
|
var admin_generated_50 = require("./admin.generated");
|
|
104
|
-
Object.defineProperty(exports, "
|
|
104
|
+
Object.defineProperty(exports, "ScheduledJobCategory", { enumerable: true, get: function () { return admin_generated_50.ScheduledJobCategory; } });
|
|
105
105
|
var admin_generated_51 = require("./admin.generated");
|
|
106
|
-
Object.defineProperty(exports, "
|
|
106
|
+
Object.defineProperty(exports, "SearchCategory", { enumerable: true, get: function () { return admin_generated_51.SearchCategory; } });
|
|
107
107
|
var admin_generated_52 = require("./admin.generated");
|
|
108
|
-
Object.defineProperty(exports, "
|
|
108
|
+
Object.defineProperty(exports, "SellerCategory", { enumerable: true, get: function () { return admin_generated_52.SellerCategory; } });
|
|
109
109
|
var admin_generated_53 = require("./admin.generated");
|
|
110
|
-
Object.defineProperty(exports, "
|
|
110
|
+
Object.defineProperty(exports, "ShippingCategory", { enumerable: true, get: function () { return admin_generated_53.ShippingCategory; } });
|
|
111
111
|
var admin_generated_54 = require("./admin.generated");
|
|
112
|
-
Object.defineProperty(exports, "
|
|
112
|
+
Object.defineProperty(exports, "StockCategory", { enumerable: true, get: function () { return admin_generated_54.StockCategory; } });
|
|
113
113
|
var admin_generated_55 = require("./admin.generated");
|
|
114
|
-
Object.defineProperty(exports, "
|
|
114
|
+
Object.defineProperty(exports, "SubscriptionCategory", { enumerable: true, get: function () { return admin_generated_55.SubscriptionCategory; } });
|
|
115
115
|
var admin_generated_56 = require("./admin.generated");
|
|
116
|
-
Object.defineProperty(exports, "
|
|
116
|
+
Object.defineProperty(exports, "TaxCategory", { enumerable: true, get: function () { return admin_generated_56.TaxCategory; } });
|
|
117
|
+
var admin_generated_57 = require("./admin.generated");
|
|
118
|
+
Object.defineProperty(exports, "TransactionCategory", { enumerable: true, get: function () { return admin_generated_57.TransactionCategory; } });
|
|
119
|
+
var admin_generated_58 = require("./admin.generated");
|
|
120
|
+
Object.defineProperty(exports, "ZoneCategory", { enumerable: true, get: function () { return admin_generated_58.ZoneCategory; } });
|
|
@@ -13,23 +13,32 @@ import { ShopNamespace } from './shop.generated';
|
|
|
13
13
|
import type * as Shop from './shop.generated';
|
|
14
14
|
export interface ForgeCartAdminClientConfig {
|
|
15
15
|
endpoint: string;
|
|
16
|
+
wsEndpoint?: string;
|
|
16
17
|
channelToken: string;
|
|
17
18
|
adminSecret?: string;
|
|
18
19
|
uploadEndpoint?: string;
|
|
19
20
|
headers?: Record<string, string>;
|
|
21
|
+
currencyCode?: string;
|
|
22
|
+
languageCode?: string;
|
|
20
23
|
}
|
|
21
24
|
export interface ForgeCartShopClientConfig {
|
|
22
25
|
endpoint: string;
|
|
26
|
+
wsEndpoint?: string;
|
|
23
27
|
channelToken: string;
|
|
24
28
|
uploadEndpoint?: string;
|
|
25
29
|
headers?: Record<string, string>;
|
|
30
|
+
currencyCode?: string;
|
|
31
|
+
languageCode?: string;
|
|
26
32
|
}
|
|
27
33
|
export interface ForgeCartClientConfig {
|
|
28
34
|
endpoint: string;
|
|
35
|
+
wsEndpoint?: string;
|
|
29
36
|
channelToken: string;
|
|
30
37
|
adminSecret?: string;
|
|
31
38
|
uploadEndpoint?: string;
|
|
32
39
|
headers?: Record<string, string>;
|
|
40
|
+
currencyCode?: string;
|
|
41
|
+
languageCode?: string;
|
|
33
42
|
}
|
|
34
43
|
export declare class SDKLogger {
|
|
35
44
|
private readonly prefix;
|
|
@@ -88,13 +97,26 @@ export declare class BaseGraphQLClient {
|
|
|
88
97
|
private wsClientStale;
|
|
89
98
|
private authToken;
|
|
90
99
|
private transactionToken;
|
|
100
|
+
private currencyCode;
|
|
101
|
+
private languageCode;
|
|
91
102
|
private errorHandler;
|
|
92
|
-
|
|
103
|
+
private readonly persistSession;
|
|
104
|
+
private readonly tokenStorageKey;
|
|
105
|
+
constructor(endpoint: string, baseHeaders: Record<string, string>, uploadEndpoint?: string | undefined, options?: {
|
|
106
|
+
persistSession?: boolean;
|
|
107
|
+
currencyCode?: string;
|
|
108
|
+
languageCode?: string;
|
|
109
|
+
wsEndpoint?: string;
|
|
110
|
+
});
|
|
93
111
|
private getWsClient;
|
|
94
112
|
private getHeaders;
|
|
95
113
|
setAuthToken(token: string): void;
|
|
96
114
|
getAuthToken(): string | null;
|
|
97
115
|
clearAuthToken(): void;
|
|
116
|
+
setCurrencyCode(currencyCode: string): void;
|
|
117
|
+
clearCurrencyCode(): void;
|
|
118
|
+
setLanguageCode(languageCode: string): void;
|
|
119
|
+
clearLanguageCode(): void;
|
|
98
120
|
setTransactionToken(token: string): void;
|
|
99
121
|
clearTransactionToken(): void;
|
|
100
122
|
setErrorHandler(handler: ErrorHandler): void;
|
|
@@ -106,6 +128,8 @@ export declare class BaseGraphQLClient {
|
|
|
106
128
|
private getPerOperationExtensions;
|
|
107
129
|
private captureSessionToken;
|
|
108
130
|
private captureSessionTokenFromUpload;
|
|
131
|
+
private readPersistedToken;
|
|
132
|
+
private persistToken;
|
|
109
133
|
private containsFiles;
|
|
110
134
|
private resolveUploadEndpoint;
|
|
111
135
|
private disposeWsClient;
|
|
@@ -130,6 +154,10 @@ export declare class ForgeCartAdminClient {
|
|
|
130
154
|
setAuthToken(token: string): void;
|
|
131
155
|
getAuthToken(): string | null;
|
|
132
156
|
clearAuthToken(): void;
|
|
157
|
+
setCurrencyCode(currencyCode: string): void;
|
|
158
|
+
clearCurrencyCode(): void;
|
|
159
|
+
setLanguageCode(languageCode: string): void;
|
|
160
|
+
clearLanguageCode(): void;
|
|
133
161
|
setTransactionToken(token: string): void;
|
|
134
162
|
clearTransactionToken(): void;
|
|
135
163
|
setErrorHandler(handler: ErrorHandler): void;
|
|
@@ -171,9 +199,11 @@ export declare class ForgeCartAdminClient {
|
|
|
171
199
|
get fulfillment(): Admin.FulfillmentCategory;
|
|
172
200
|
get hookDispatch(): Admin.HookDispatchCategory;
|
|
173
201
|
get hook(): Admin.HookCategory;
|
|
202
|
+
get market(): Admin.MarketCategory;
|
|
174
203
|
get marketingAttribution(): Admin.MarketingAttributionCategory;
|
|
175
204
|
get marketingEvent(): Admin.MarketingEventCategory;
|
|
176
205
|
get marketingIdentity(): Admin.MarketingIdentityCategory;
|
|
206
|
+
get mission(): Admin.MissionCategory;
|
|
177
207
|
get onboarding(): Admin.OnboardingCategory;
|
|
178
208
|
get coupon(): Admin.CouponCategory;
|
|
179
209
|
get draft(): Admin.DraftCategory;
|
|
@@ -208,6 +238,10 @@ export declare class ForgeCartShopClient {
|
|
|
208
238
|
setAuthToken(token: string): void;
|
|
209
239
|
getAuthToken(): string | null;
|
|
210
240
|
clearAuthToken(): void;
|
|
241
|
+
setCurrencyCode(currencyCode: string): void;
|
|
242
|
+
clearCurrencyCode(): void;
|
|
243
|
+
setLanguageCode(languageCode: string): void;
|
|
244
|
+
clearLanguageCode(): void;
|
|
211
245
|
setTransactionToken(token: string): void;
|
|
212
246
|
clearTransactionToken(): void;
|
|
213
247
|
setErrorHandler(handler: ErrorHandler): void;
|
|
@@ -221,6 +255,7 @@ export declare class ForgeCartShopClient {
|
|
|
221
255
|
get acf(): Shop.AcfCategory;
|
|
222
256
|
get auth(): Shop.AuthCategory;
|
|
223
257
|
get cart(): Shop.CartCategory;
|
|
258
|
+
get channel(): Shop.ChannelCategory;
|
|
224
259
|
get checkout(): Shop.CheckoutCategory;
|
|
225
260
|
get collection(): Shop.CollectionCategory;
|
|
226
261
|
get customer(): Shop.CustomerCategory;
|
|
@@ -242,6 +277,10 @@ export declare class ForgeCartClient {
|
|
|
242
277
|
constructor(config: ForgeCartClientConfig);
|
|
243
278
|
setAuthToken(token: string): void;
|
|
244
279
|
clearAuthToken(): void;
|
|
280
|
+
setCurrencyCode(currencyCode: string): void;
|
|
281
|
+
clearCurrencyCode(): void;
|
|
282
|
+
setLanguageCode(languageCode: string): void;
|
|
283
|
+
clearLanguageCode(): void;
|
|
245
284
|
setTransactionToken(token: string): void;
|
|
246
285
|
clearTransactionToken(): void;
|
|
247
286
|
get admin(): ForgeCartAdminClient;
|
package/dist/client.generated.js
CHANGED
|
@@ -60,11 +60,29 @@ class BaseGraphQLClient {
|
|
|
60
60
|
wsClientStale = false;
|
|
61
61
|
authToken = null;
|
|
62
62
|
transactionToken = null;
|
|
63
|
+
currencyCode = null;
|
|
64
|
+
languageCode = null;
|
|
63
65
|
errorHandler = null;
|
|
64
|
-
|
|
66
|
+
persistSession;
|
|
67
|
+
tokenStorageKey;
|
|
68
|
+
constructor(endpoint, baseHeaders, uploadEndpoint, options) {
|
|
65
69
|
this.baseHeaders = baseHeaders;
|
|
66
70
|
this.uploadEndpoint = uploadEndpoint;
|
|
67
|
-
this.endpoint = endpoint.replace(/^http:/, "ws:").replace(/^https:/, "wss:");
|
|
71
|
+
this.endpoint = (options?.wsEndpoint ?? endpoint).replace(/^http:/, "ws:").replace(/^https:/, "wss:");
|
|
72
|
+
// Cross-tab session continuity: each new tab or reload builds a fresh
|
|
73
|
+
// client instance, so without a shared store every one would mint a new
|
|
74
|
+
// anonymous session server-side — and be counted as a new active user.
|
|
75
|
+
// Persist the captured token in localStorage (shared across same-origin
|
|
76
|
+
// tabs), keyed per endpoint + channel so separate stores never collide.
|
|
77
|
+
// Opt out with `{ persistSession: false }` when the host app owns token
|
|
78
|
+
// storage (e.g. the admin dashboard).
|
|
79
|
+
this.persistSession = options?.persistSession ?? true;
|
|
80
|
+
this.currencyCode = options?.currencyCode ?? null;
|
|
81
|
+
this.languageCode = options?.languageCode ?? null;
|
|
82
|
+
this.tokenStorageKey = `forgecart:auth:${this.endpoint}:${this.baseHeaders["forgecart-token"] ?? ""}`;
|
|
83
|
+
if (this.persistSession) {
|
|
84
|
+
this.authToken = this.readPersistedToken();
|
|
85
|
+
}
|
|
68
86
|
}
|
|
69
87
|
getWsClient() {
|
|
70
88
|
if (this.wsClient && this.wsClientStale) {
|
|
@@ -93,12 +111,19 @@ class BaseGraphQLClient {
|
|
|
93
111
|
if (this.transactionToken) {
|
|
94
112
|
headers["forgecart-transaction-token"] = this.transactionToken;
|
|
95
113
|
}
|
|
114
|
+
if (this.currencyCode) {
|
|
115
|
+
headers["forgecart-currency"] = this.currencyCode;
|
|
116
|
+
}
|
|
117
|
+
if (this.languageCode) {
|
|
118
|
+
headers["forgecart-language"] = this.languageCode;
|
|
119
|
+
}
|
|
96
120
|
return headers;
|
|
97
121
|
}
|
|
98
122
|
setAuthToken(token) {
|
|
99
123
|
if (this.authToken === token)
|
|
100
124
|
return;
|
|
101
125
|
this.authToken = token;
|
|
126
|
+
this.persistToken(token);
|
|
102
127
|
this.disposeWsClient();
|
|
103
128
|
this.logger.info("Auth token set");
|
|
104
129
|
}
|
|
@@ -107,9 +132,41 @@ class BaseGraphQLClient {
|
|
|
107
132
|
}
|
|
108
133
|
clearAuthToken() {
|
|
109
134
|
this.authToken = null;
|
|
135
|
+
this.persistToken(null);
|
|
110
136
|
this.disposeWsClient();
|
|
111
137
|
this.logger.info("Auth token cleared");
|
|
112
138
|
}
|
|
139
|
+
// Currency/language preferences ride the WebSocket connection params,
|
|
140
|
+
// so changing one disposes the connection — the next request reconnects
|
|
141
|
+
// with the new forgecart-currency / forgecart-language headers.
|
|
142
|
+
setCurrencyCode(currencyCode) {
|
|
143
|
+
if (this.currencyCode === currencyCode)
|
|
144
|
+
return;
|
|
145
|
+
this.currencyCode = currencyCode;
|
|
146
|
+
this.disposeWsClient();
|
|
147
|
+
this.logger.info("Currency code set");
|
|
148
|
+
}
|
|
149
|
+
clearCurrencyCode() {
|
|
150
|
+
if (this.currencyCode === null)
|
|
151
|
+
return;
|
|
152
|
+
this.currencyCode = null;
|
|
153
|
+
this.disposeWsClient();
|
|
154
|
+
this.logger.info("Currency code cleared");
|
|
155
|
+
}
|
|
156
|
+
setLanguageCode(languageCode) {
|
|
157
|
+
if (this.languageCode === languageCode)
|
|
158
|
+
return;
|
|
159
|
+
this.languageCode = languageCode;
|
|
160
|
+
this.disposeWsClient();
|
|
161
|
+
this.logger.info("Language code set");
|
|
162
|
+
}
|
|
163
|
+
clearLanguageCode() {
|
|
164
|
+
if (this.languageCode === null)
|
|
165
|
+
return;
|
|
166
|
+
this.languageCode = null;
|
|
167
|
+
this.disposeWsClient();
|
|
168
|
+
this.logger.info("Language code cleared");
|
|
169
|
+
}
|
|
113
170
|
setTransactionToken(token) {
|
|
114
171
|
this.transactionToken = token;
|
|
115
172
|
this.logger.info("Transaction token set");
|
|
@@ -204,6 +261,7 @@ class BaseGraphQLClient {
|
|
|
204
261
|
const token = result.extensions["forgecart-auth-token"];
|
|
205
262
|
if (token && !this.authToken) {
|
|
206
263
|
this.authToken = token;
|
|
264
|
+
this.persistToken(token);
|
|
207
265
|
this.wsClientStale = true;
|
|
208
266
|
this.logger.info("Session token captured from extensions");
|
|
209
267
|
}
|
|
@@ -214,10 +272,39 @@ class BaseGraphQLClient {
|
|
|
214
272
|
const token = result.extensions["forgecart-auth-token"];
|
|
215
273
|
if (token && !this.authToken) {
|
|
216
274
|
this.authToken = token;
|
|
275
|
+
this.persistToken(token);
|
|
217
276
|
this.wsClientStale = true;
|
|
218
277
|
this.logger.info("Session token captured from upload response");
|
|
219
278
|
}
|
|
220
279
|
}
|
|
280
|
+
readPersistedToken() {
|
|
281
|
+
if (typeof localStorage === "undefined")
|
|
282
|
+
return null;
|
|
283
|
+
try {
|
|
284
|
+
return localStorage.getItem(this.tokenStorageKey);
|
|
285
|
+
}
|
|
286
|
+
catch {
|
|
287
|
+
// Storage can throw (Safari private mode, disabled cookies, quota).
|
|
288
|
+
// Falling back to an in-memory session keeps the SDK functional.
|
|
289
|
+
return null;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
persistToken(token) {
|
|
293
|
+
if (!this.persistSession || typeof localStorage === "undefined")
|
|
294
|
+
return;
|
|
295
|
+
try {
|
|
296
|
+
if (token === null) {
|
|
297
|
+
localStorage.removeItem(this.tokenStorageKey);
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
localStorage.setItem(this.tokenStorageKey, token);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
catch {
|
|
304
|
+
// Persistence is best-effort; a storage failure must never break a
|
|
305
|
+
// request. The in-memory token still serves the current page.
|
|
306
|
+
}
|
|
307
|
+
}
|
|
221
308
|
containsFiles(obj) {
|
|
222
309
|
if (obj === null || obj === undefined)
|
|
223
310
|
return false;
|
|
@@ -251,6 +338,8 @@ class BaseGraphQLClient {
|
|
|
251
338
|
const forked = new BaseGraphQLClient(this.endpoint, this.baseHeaders, this.uploadEndpoint);
|
|
252
339
|
forked.authToken = this.authToken;
|
|
253
340
|
forked.transactionToken = transactionToken;
|
|
341
|
+
forked.currencyCode = this.currencyCode;
|
|
342
|
+
forked.languageCode = this.languageCode;
|
|
254
343
|
forked.wsClient = this.wsClient;
|
|
255
344
|
forked.ownsWsClient = false;
|
|
256
345
|
return forked;
|
|
@@ -295,7 +384,11 @@ class ForgeCartAdminClient {
|
|
|
295
384
|
if (config.adminSecret) {
|
|
296
385
|
headers['forgecart-secret'] = config.adminSecret;
|
|
297
386
|
}
|
|
298
|
-
this.client = new BaseGraphQLClient(config.endpoint, headers, config.uploadEndpoint
|
|
387
|
+
this.client = new BaseGraphQLClient(config.endpoint, headers, config.uploadEndpoint, {
|
|
388
|
+
wsEndpoint: config.wsEndpoint,
|
|
389
|
+
currencyCode: config.currencyCode,
|
|
390
|
+
languageCode: config.languageCode,
|
|
391
|
+
});
|
|
299
392
|
this._namespace = new admin_generated_1.AdminNamespace(this.client);
|
|
300
393
|
}
|
|
301
394
|
setAuthToken(token) {
|
|
@@ -307,6 +400,18 @@ class ForgeCartAdminClient {
|
|
|
307
400
|
clearAuthToken() {
|
|
308
401
|
this.client.clearAuthToken();
|
|
309
402
|
}
|
|
403
|
+
setCurrencyCode(currencyCode) {
|
|
404
|
+
this.client.setCurrencyCode(currencyCode);
|
|
405
|
+
}
|
|
406
|
+
clearCurrencyCode() {
|
|
407
|
+
this.client.clearCurrencyCode();
|
|
408
|
+
}
|
|
409
|
+
setLanguageCode(languageCode) {
|
|
410
|
+
this.client.setLanguageCode(languageCode);
|
|
411
|
+
}
|
|
412
|
+
clearLanguageCode() {
|
|
413
|
+
this.client.clearLanguageCode();
|
|
414
|
+
}
|
|
310
415
|
setTransactionToken(token) {
|
|
311
416
|
this.client.setTransactionToken(token);
|
|
312
417
|
}
|
|
@@ -460,6 +565,9 @@ class ForgeCartAdminClient {
|
|
|
460
565
|
get hook() {
|
|
461
566
|
return this._namespace.hook;
|
|
462
567
|
}
|
|
568
|
+
get market() {
|
|
569
|
+
return this._namespace.market;
|
|
570
|
+
}
|
|
463
571
|
get marketingAttribution() {
|
|
464
572
|
return this._namespace.marketingAttribution;
|
|
465
573
|
}
|
|
@@ -469,6 +577,9 @@ class ForgeCartAdminClient {
|
|
|
469
577
|
get marketingIdentity() {
|
|
470
578
|
return this._namespace.marketingIdentity;
|
|
471
579
|
}
|
|
580
|
+
get mission() {
|
|
581
|
+
return this._namespace.mission;
|
|
582
|
+
}
|
|
472
583
|
get onboarding() {
|
|
473
584
|
return this._namespace.onboarding;
|
|
474
585
|
}
|
|
@@ -554,7 +665,11 @@ class ForgeCartShopClient {
|
|
|
554
665
|
_namespace;
|
|
555
666
|
constructor(config) {
|
|
556
667
|
const headers = { 'forgecart-token': config.channelToken, ...config.headers };
|
|
557
|
-
this.client = new BaseGraphQLClient(config.endpoint, headers, config.uploadEndpoint
|
|
668
|
+
this.client = new BaseGraphQLClient(config.endpoint, headers, config.uploadEndpoint, {
|
|
669
|
+
wsEndpoint: config.wsEndpoint,
|
|
670
|
+
currencyCode: config.currencyCode,
|
|
671
|
+
languageCode: config.languageCode,
|
|
672
|
+
});
|
|
558
673
|
this._namespace = new shop_generated_1.ShopNamespace(this.client);
|
|
559
674
|
}
|
|
560
675
|
setAuthToken(token) {
|
|
@@ -566,6 +681,18 @@ class ForgeCartShopClient {
|
|
|
566
681
|
clearAuthToken() {
|
|
567
682
|
this.client.clearAuthToken();
|
|
568
683
|
}
|
|
684
|
+
setCurrencyCode(currencyCode) {
|
|
685
|
+
this.client.setCurrencyCode(currencyCode);
|
|
686
|
+
}
|
|
687
|
+
clearCurrencyCode() {
|
|
688
|
+
this.client.clearCurrencyCode();
|
|
689
|
+
}
|
|
690
|
+
setLanguageCode(languageCode) {
|
|
691
|
+
this.client.setLanguageCode(languageCode);
|
|
692
|
+
}
|
|
693
|
+
clearLanguageCode() {
|
|
694
|
+
this.client.clearLanguageCode();
|
|
695
|
+
}
|
|
569
696
|
setTransactionToken(token) {
|
|
570
697
|
this.client.setTransactionToken(token);
|
|
571
698
|
}
|
|
@@ -610,6 +737,9 @@ class ForgeCartShopClient {
|
|
|
610
737
|
get cart() {
|
|
611
738
|
return this._namespace.cart;
|
|
612
739
|
}
|
|
740
|
+
get channel() {
|
|
741
|
+
return this._namespace.channel;
|
|
742
|
+
}
|
|
613
743
|
get checkout() {
|
|
614
744
|
return this._namespace.checkout;
|
|
615
745
|
}
|
|
@@ -658,8 +788,8 @@ class ForgeCartClient {
|
|
|
658
788
|
_admin;
|
|
659
789
|
_shop;
|
|
660
790
|
constructor(config) {
|
|
661
|
-
this._admin = new ForgeCartAdminClient({ endpoint: config.endpoint + '/admin-api', channelToken: config.channelToken, adminSecret: config.adminSecret, uploadEndpoint: config.uploadEndpoint ? config.uploadEndpoint + '/admin-api' : undefined, headers: config.headers });
|
|
662
|
-
this._shop = new ForgeCartShopClient({ endpoint: config.endpoint + '/shop-api', channelToken: config.channelToken, uploadEndpoint: config.uploadEndpoint ? config.uploadEndpoint + '/shop-api' : undefined, headers: config.headers });
|
|
791
|
+
this._admin = new ForgeCartAdminClient({ endpoint: config.endpoint + '/admin-api', channelToken: config.channelToken, adminSecret: config.adminSecret, uploadEndpoint: config.uploadEndpoint ? config.uploadEndpoint + '/admin-api' : undefined, headers: config.headers, currencyCode: config.currencyCode, languageCode: config.languageCode });
|
|
792
|
+
this._shop = new ForgeCartShopClient({ endpoint: config.endpoint + '/shop-api', channelToken: config.channelToken, uploadEndpoint: config.uploadEndpoint ? config.uploadEndpoint + '/shop-api' : undefined, headers: config.headers, currencyCode: config.currencyCode, languageCode: config.languageCode });
|
|
663
793
|
this._admin.setShopPeer(this._shop);
|
|
664
794
|
}
|
|
665
795
|
setAuthToken(token) {
|
|
@@ -670,6 +800,22 @@ class ForgeCartClient {
|
|
|
670
800
|
this._admin.clearAuthToken();
|
|
671
801
|
this._shop.clearAuthToken();
|
|
672
802
|
}
|
|
803
|
+
setCurrencyCode(currencyCode) {
|
|
804
|
+
this._admin.setCurrencyCode(currencyCode);
|
|
805
|
+
this._shop.setCurrencyCode(currencyCode);
|
|
806
|
+
}
|
|
807
|
+
clearCurrencyCode() {
|
|
808
|
+
this._admin.clearCurrencyCode();
|
|
809
|
+
this._shop.clearCurrencyCode();
|
|
810
|
+
}
|
|
811
|
+
setLanguageCode(languageCode) {
|
|
812
|
+
this._admin.setLanguageCode(languageCode);
|
|
813
|
+
this._shop.setLanguageCode(languageCode);
|
|
814
|
+
}
|
|
815
|
+
clearLanguageCode() {
|
|
816
|
+
this._admin.clearLanguageCode();
|
|
817
|
+
this._shop.clearLanguageCode();
|
|
818
|
+
}
|
|
673
819
|
setTransactionToken(token) {
|
|
674
820
|
this._admin.setTransactionToken(token);
|
|
675
821
|
this._shop.setTransactionToken(token);
|