@gymspace/sdk 1.0.2 → 1.1.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/dist/index.d.mts +2065 -0
- package/dist/index.d.ts +2065 -0
- package/dist/index.js +25 -73
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +25 -73
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/client.ts +3 -87
- package/src/models/auth.ts +3 -14
- package/src/models/organizations.ts +16 -0
- package/src/resources/auth.ts +1 -1
- package/src/resources/onboarding.ts +2 -2
- package/src/resources/organizations.ts +5 -1
- package/src/sdk.ts +0 -6
package/dist/index.js
CHANGED
|
@@ -53,7 +53,6 @@ var NetworkError = class extends GymSpaceError {
|
|
|
53
53
|
// src/client.ts
|
|
54
54
|
var ApiClient = class {
|
|
55
55
|
constructor(config) {
|
|
56
|
-
this.refreshPromise = null;
|
|
57
56
|
this.config = config;
|
|
58
57
|
this.axiosInstance = axios__default.default.create({
|
|
59
58
|
baseURL: config.baseURL,
|
|
@@ -71,9 +70,6 @@ var ApiClient = class {
|
|
|
71
70
|
if (this.config.apiKey && config.headers) {
|
|
72
71
|
config.headers["Authorization"] = `Bearer ${this.config.apiKey}`;
|
|
73
72
|
}
|
|
74
|
-
if (this.config.refreshToken && config.headers) {
|
|
75
|
-
config.headers["X-Refresh-Token"] = this.config.refreshToken;
|
|
76
|
-
}
|
|
77
73
|
return config;
|
|
78
74
|
},
|
|
79
75
|
(error) => {
|
|
@@ -82,64 +78,13 @@ var ApiClient = class {
|
|
|
82
78
|
);
|
|
83
79
|
this.axiosInstance.interceptors.response.use(
|
|
84
80
|
(response) => {
|
|
85
|
-
const newAccessToken = response.headers["x-new-access-token"];
|
|
86
|
-
const newRefreshToken = response.headers["x-new-refresh-token"];
|
|
87
|
-
if (newAccessToken && newRefreshToken) {
|
|
88
|
-
this.setTokens(newAccessToken, newRefreshToken);
|
|
89
|
-
this.onTokensUpdated?.(newAccessToken, newRefreshToken);
|
|
90
|
-
}
|
|
91
81
|
return response;
|
|
92
82
|
},
|
|
93
83
|
async (error) => {
|
|
94
|
-
const originalRequest = error.config;
|
|
95
|
-
if (error.response?.status === 401 && !originalRequest._retry && this.config.refreshToken) {
|
|
96
|
-
originalRequest._retry = true;
|
|
97
|
-
try {
|
|
98
|
-
if (!this.refreshPromise) {
|
|
99
|
-
this.refreshPromise = this.refreshAccessToken();
|
|
100
|
-
}
|
|
101
|
-
const newTokens = await this.refreshPromise;
|
|
102
|
-
this.refreshPromise = null;
|
|
103
|
-
if (newTokens) {
|
|
104
|
-
originalRequest.headers = originalRequest.headers || {};
|
|
105
|
-
originalRequest.headers["Authorization"] = `Bearer ${newTokens.access_token}`;
|
|
106
|
-
return this.axiosInstance(originalRequest);
|
|
107
|
-
}
|
|
108
|
-
} catch (refreshError) {
|
|
109
|
-
this.refreshPromise = null;
|
|
110
|
-
this.clearAuth();
|
|
111
|
-
this.onAuthError?.(refreshError);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
84
|
throw this.handleError(error);
|
|
115
85
|
}
|
|
116
86
|
);
|
|
117
87
|
}
|
|
118
|
-
/**
|
|
119
|
-
* Refresh the access token using the stored refresh token
|
|
120
|
-
*/
|
|
121
|
-
async refreshAccessToken() {
|
|
122
|
-
if (!this.config.refreshToken) {
|
|
123
|
-
throw new AuthenticationError("No refresh token available");
|
|
124
|
-
}
|
|
125
|
-
try {
|
|
126
|
-
const response = await axios__default.default.post(
|
|
127
|
-
`${this.config.baseURL}/auth/refresh`,
|
|
128
|
-
{ refresh_token: this.config.refreshToken },
|
|
129
|
-
{
|
|
130
|
-
headers: {
|
|
131
|
-
"Content-Type": "application/json"
|
|
132
|
-
},
|
|
133
|
-
timeout: this.config.timeout || 3e4
|
|
134
|
-
}
|
|
135
|
-
);
|
|
136
|
-
const newTokens = response.data;
|
|
137
|
-
this.setTokens(newTokens.access_token, newTokens.refresh_token);
|
|
138
|
-
return newTokens;
|
|
139
|
-
} catch (error) {
|
|
140
|
-
throw new AuthenticationError("Failed to refresh token");
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
88
|
handleError(error) {
|
|
144
89
|
const requestPath = error.config?.url || "unknown";
|
|
145
90
|
const method = error.config?.method?.toUpperCase() || "unknown";
|
|
@@ -222,16 +167,11 @@ var ApiClient = class {
|
|
|
222
167
|
setAuthToken(token) {
|
|
223
168
|
this.config.apiKey = token;
|
|
224
169
|
}
|
|
225
|
-
setTokens(accessToken, refreshToken) {
|
|
226
|
-
this.config.apiKey = accessToken;
|
|
227
|
-
this.config.refreshToken = refreshToken;
|
|
228
|
-
}
|
|
229
170
|
setGymId(gymId) {
|
|
230
171
|
this.axiosInstance.defaults.headers.common["X-Gym-Id"] = gymId;
|
|
231
172
|
}
|
|
232
173
|
clearAuth() {
|
|
233
174
|
delete this.config.apiKey;
|
|
234
|
-
delete this.config.refreshToken;
|
|
235
175
|
delete this.axiosInstance.defaults.headers.common["Authorization"];
|
|
236
176
|
delete this.axiosInstance.defaults.headers.common["X-Gym-Id"];
|
|
237
177
|
}
|
|
@@ -366,6 +306,9 @@ var OrganizationsResource = class extends BaseResource {
|
|
|
366
306
|
async getOrganizationStats(id, options) {
|
|
367
307
|
return this.client.get(`${this.basePath}/${id}/stats`, void 0, options);
|
|
368
308
|
}
|
|
309
|
+
async listOrganizations(options) {
|
|
310
|
+
return this.client.get(`${this.basePath}/list`, void 0, options);
|
|
311
|
+
}
|
|
369
312
|
};
|
|
370
313
|
|
|
371
314
|
// src/resources/gyms.ts
|
|
@@ -903,8 +846,8 @@ var OnboardingResource = class extends BaseResource {
|
|
|
903
846
|
*/
|
|
904
847
|
async start(data) {
|
|
905
848
|
const response = await this.client.post("/onboarding/start", data);
|
|
906
|
-
if (response.access_token
|
|
907
|
-
this.client.
|
|
849
|
+
if (response.access_token) {
|
|
850
|
+
this.client.setAuthToken(response.access_token);
|
|
908
851
|
}
|
|
909
852
|
return response;
|
|
910
853
|
}
|
|
@@ -1204,12 +1147,6 @@ var GymSpaceSdk = class {
|
|
|
1204
1147
|
setAuthToken(token) {
|
|
1205
1148
|
this.client.setAuthToken(token);
|
|
1206
1149
|
}
|
|
1207
|
-
/**
|
|
1208
|
-
* Set both access and refresh tokens
|
|
1209
|
-
*/
|
|
1210
|
-
setTokens(accessToken, refreshToken) {
|
|
1211
|
-
this.client.setTokens(accessToken, refreshToken);
|
|
1212
|
-
}
|
|
1213
1150
|
/**
|
|
1214
1151
|
* Set the current gym context
|
|
1215
1152
|
*/
|
|
@@ -1230,7 +1167,7 @@ var GymSpaceSdk = class {
|
|
|
1230
1167
|
}
|
|
1231
1168
|
};
|
|
1232
1169
|
|
|
1233
|
-
// node_modules/@gymspace/shared/dist/index.mjs
|
|
1170
|
+
// ../../node_modules/@gymspace/shared/dist/index.mjs
|
|
1234
1171
|
var UserType = /* @__PURE__ */ ((UserType2) => {
|
|
1235
1172
|
UserType2["OWNER"] = "owner";
|
|
1236
1173
|
UserType2["COLLABORATOR"] = "collaborator";
|
|
@@ -1240,6 +1177,8 @@ var SubscriptionStatus = /* @__PURE__ */ ((SubscriptionStatus2) => {
|
|
|
1240
1177
|
SubscriptionStatus2["ACTIVE"] = "active";
|
|
1241
1178
|
SubscriptionStatus2["INACTIVE"] = "inactive";
|
|
1242
1179
|
SubscriptionStatus2["EXPIRED"] = "expired";
|
|
1180
|
+
SubscriptionStatus2["PAUSED"] = "paused";
|
|
1181
|
+
SubscriptionStatus2["PENDING_UPGRADE"] = "pending_upgrade";
|
|
1243
1182
|
return SubscriptionStatus2;
|
|
1244
1183
|
})(SubscriptionStatus || {});
|
|
1245
1184
|
var CollaboratorStatus = /* @__PURE__ */ ((CollaboratorStatus2) => {
|
|
@@ -1271,6 +1210,7 @@ var ContractStatus = /* @__PURE__ */ ((ContractStatus2) => {
|
|
|
1271
1210
|
ContractStatus2["EXPIRING_SOON"] = "expiring_soon";
|
|
1272
1211
|
ContractStatus2["EXPIRED"] = "expired";
|
|
1273
1212
|
ContractStatus2["CANCELLED"] = "cancelled";
|
|
1213
|
+
ContractStatus2["FOR_RENEW"] = "for_renew";
|
|
1274
1214
|
return ContractStatus2;
|
|
1275
1215
|
})(ContractStatus || {});
|
|
1276
1216
|
var PaymentFrequency = /* @__PURE__ */ ((PaymentFrequency2) => {
|
|
@@ -1414,7 +1354,12 @@ var PERMISSIONS = {
|
|
|
1414
1354
|
SUPPLIERS_CREATE: "SUPPLIERS_CREATE",
|
|
1415
1355
|
SUPPLIERS_READ: "SUPPLIERS_READ",
|
|
1416
1356
|
SUPPLIERS_UPDATE: "SUPPLIERS_UPDATE",
|
|
1417
|
-
SUPPLIERS_DELETE: "SUPPLIERS_DELETE"
|
|
1357
|
+
SUPPLIERS_DELETE: "SUPPLIERS_DELETE",
|
|
1358
|
+
// Payment Methods
|
|
1359
|
+
PAYMENT_METHODS_CREATE: "PAYMENT_METHODS_CREATE",
|
|
1360
|
+
PAYMENT_METHODS_READ: "PAYMENT_METHODS_READ",
|
|
1361
|
+
PAYMENT_METHODS_UPDATE: "PAYMENT_METHODS_UPDATE",
|
|
1362
|
+
PAYMENT_METHODS_DELETE: "PAYMENT_METHODS_DELETE"
|
|
1418
1363
|
};
|
|
1419
1364
|
var ROLE_PERMISSIONS = {
|
|
1420
1365
|
OWNER: Object.values(PERMISSIONS),
|
|
@@ -1452,7 +1397,11 @@ var ROLE_PERMISSIONS = {
|
|
|
1452
1397
|
PERMISSIONS.SUPPLIERS_CREATE,
|
|
1453
1398
|
PERMISSIONS.SUPPLIERS_READ,
|
|
1454
1399
|
PERMISSIONS.SUPPLIERS_UPDATE,
|
|
1455
|
-
PERMISSIONS.SUPPLIERS_DELETE
|
|
1400
|
+
PERMISSIONS.SUPPLIERS_DELETE,
|
|
1401
|
+
PERMISSIONS.PAYMENT_METHODS_CREATE,
|
|
1402
|
+
PERMISSIONS.PAYMENT_METHODS_READ,
|
|
1403
|
+
PERMISSIONS.PAYMENT_METHODS_UPDATE,
|
|
1404
|
+
PERMISSIONS.PAYMENT_METHODS_DELETE
|
|
1456
1405
|
],
|
|
1457
1406
|
STAFF: [
|
|
1458
1407
|
PERMISSIONS.CLIENTS_READ,
|
|
@@ -1461,7 +1410,8 @@ var ROLE_PERMISSIONS = {
|
|
|
1461
1410
|
PERMISSIONS.PRODUCTS_READ,
|
|
1462
1411
|
PERMISSIONS.PRODUCT_CATEGORIES_READ,
|
|
1463
1412
|
PERMISSIONS.SALES_CREATE,
|
|
1464
|
-
PERMISSIONS.SALES_READ
|
|
1413
|
+
PERMISSIONS.SALES_READ,
|
|
1414
|
+
PERMISSIONS.PAYMENT_METHODS_READ
|
|
1465
1415
|
],
|
|
1466
1416
|
ADVISOR: [
|
|
1467
1417
|
PERMISSIONS.CLIENTS_READ,
|
|
@@ -1481,8 +1431,10 @@ var CACHE_TTL = {
|
|
|
1481
1431
|
// 30 minutes
|
|
1482
1432
|
STATIC_DATA: 3600,
|
|
1483
1433
|
// 60 minutes
|
|
1484
|
-
REPORTS: 300
|
|
1434
|
+
REPORTS: 300,
|
|
1485
1435
|
// 5 minutes
|
|
1436
|
+
DASHBOARD: 180
|
|
1437
|
+
// 3 minutes
|
|
1486
1438
|
};
|
|
1487
1439
|
var FILE_LIMITS = {
|
|
1488
1440
|
MAX_FILE_SIZE: 10 * 1024 * 1024,
|