@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.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 && response.refresh_token) {
907
- this.client.setTokens(response.access_token, response.refresh_token);
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,