@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.mjs CHANGED
@@ -47,7 +47,6 @@ var NetworkError = class extends GymSpaceError {
47
47
  // src/client.ts
48
48
  var ApiClient = class {
49
49
  constructor(config) {
50
- this.refreshPromise = null;
51
50
  this.config = config;
52
51
  this.axiosInstance = axios.create({
53
52
  baseURL: config.baseURL,
@@ -65,9 +64,6 @@ var ApiClient = class {
65
64
  if (this.config.apiKey && config.headers) {
66
65
  config.headers["Authorization"] = `Bearer ${this.config.apiKey}`;
67
66
  }
68
- if (this.config.refreshToken && config.headers) {
69
- config.headers["X-Refresh-Token"] = this.config.refreshToken;
70
- }
71
67
  return config;
72
68
  },
73
69
  (error) => {
@@ -76,64 +72,13 @@ var ApiClient = class {
76
72
  );
77
73
  this.axiosInstance.interceptors.response.use(
78
74
  (response) => {
79
- const newAccessToken = response.headers["x-new-access-token"];
80
- const newRefreshToken = response.headers["x-new-refresh-token"];
81
- if (newAccessToken && newRefreshToken) {
82
- this.setTokens(newAccessToken, newRefreshToken);
83
- this.onTokensUpdated?.(newAccessToken, newRefreshToken);
84
- }
85
75
  return response;
86
76
  },
87
77
  async (error) => {
88
- const originalRequest = error.config;
89
- if (error.response?.status === 401 && !originalRequest._retry && this.config.refreshToken) {
90
- originalRequest._retry = true;
91
- try {
92
- if (!this.refreshPromise) {
93
- this.refreshPromise = this.refreshAccessToken();
94
- }
95
- const newTokens = await this.refreshPromise;
96
- this.refreshPromise = null;
97
- if (newTokens) {
98
- originalRequest.headers = originalRequest.headers || {};
99
- originalRequest.headers["Authorization"] = `Bearer ${newTokens.access_token}`;
100
- return this.axiosInstance(originalRequest);
101
- }
102
- } catch (refreshError) {
103
- this.refreshPromise = null;
104
- this.clearAuth();
105
- this.onAuthError?.(refreshError);
106
- }
107
- }
108
78
  throw this.handleError(error);
109
79
  }
110
80
  );
111
81
  }
112
- /**
113
- * Refresh the access token using the stored refresh token
114
- */
115
- async refreshAccessToken() {
116
- if (!this.config.refreshToken) {
117
- throw new AuthenticationError("No refresh token available");
118
- }
119
- try {
120
- const response = await axios.post(
121
- `${this.config.baseURL}/auth/refresh`,
122
- { refresh_token: this.config.refreshToken },
123
- {
124
- headers: {
125
- "Content-Type": "application/json"
126
- },
127
- timeout: this.config.timeout || 3e4
128
- }
129
- );
130
- const newTokens = response.data;
131
- this.setTokens(newTokens.access_token, newTokens.refresh_token);
132
- return newTokens;
133
- } catch (error) {
134
- throw new AuthenticationError("Failed to refresh token");
135
- }
136
- }
137
82
  handleError(error) {
138
83
  const requestPath = error.config?.url || "unknown";
139
84
  const method = error.config?.method?.toUpperCase() || "unknown";
@@ -216,16 +161,11 @@ var ApiClient = class {
216
161
  setAuthToken(token) {
217
162
  this.config.apiKey = token;
218
163
  }
219
- setTokens(accessToken, refreshToken) {
220
- this.config.apiKey = accessToken;
221
- this.config.refreshToken = refreshToken;
222
- }
223
164
  setGymId(gymId) {
224
165
  this.axiosInstance.defaults.headers.common["X-Gym-Id"] = gymId;
225
166
  }
226
167
  clearAuth() {
227
168
  delete this.config.apiKey;
228
- delete this.config.refreshToken;
229
169
  delete this.axiosInstance.defaults.headers.common["Authorization"];
230
170
  delete this.axiosInstance.defaults.headers.common["X-Gym-Id"];
231
171
  }
@@ -360,6 +300,9 @@ var OrganizationsResource = class extends BaseResource {
360
300
  async getOrganizationStats(id, options) {
361
301
  return this.client.get(`${this.basePath}/${id}/stats`, void 0, options);
362
302
  }
303
+ async listOrganizations(options) {
304
+ return this.client.get(`${this.basePath}/list`, void 0, options);
305
+ }
363
306
  };
364
307
 
365
308
  // src/resources/gyms.ts
@@ -897,8 +840,8 @@ var OnboardingResource = class extends BaseResource {
897
840
  */
898
841
  async start(data) {
899
842
  const response = await this.client.post("/onboarding/start", data);
900
- if (response.access_token && response.refresh_token) {
901
- this.client.setTokens(response.access_token, response.refresh_token);
843
+ if (response.access_token) {
844
+ this.client.setAuthToken(response.access_token);
902
845
  }
903
846
  return response;
904
847
  }
@@ -1198,12 +1141,6 @@ var GymSpaceSdk = class {
1198
1141
  setAuthToken(token) {
1199
1142
  this.client.setAuthToken(token);
1200
1143
  }
1201
- /**
1202
- * Set both access and refresh tokens
1203
- */
1204
- setTokens(accessToken, refreshToken) {
1205
- this.client.setTokens(accessToken, refreshToken);
1206
- }
1207
1144
  /**
1208
1145
  * Set the current gym context
1209
1146
  */
@@ -1224,7 +1161,7 @@ var GymSpaceSdk = class {
1224
1161
  }
1225
1162
  };
1226
1163
 
1227
- // node_modules/@gymspace/shared/dist/index.mjs
1164
+ // ../../node_modules/@gymspace/shared/dist/index.mjs
1228
1165
  var UserType = /* @__PURE__ */ ((UserType2) => {
1229
1166
  UserType2["OWNER"] = "owner";
1230
1167
  UserType2["COLLABORATOR"] = "collaborator";
@@ -1234,6 +1171,8 @@ var SubscriptionStatus = /* @__PURE__ */ ((SubscriptionStatus2) => {
1234
1171
  SubscriptionStatus2["ACTIVE"] = "active";
1235
1172
  SubscriptionStatus2["INACTIVE"] = "inactive";
1236
1173
  SubscriptionStatus2["EXPIRED"] = "expired";
1174
+ SubscriptionStatus2["PAUSED"] = "paused";
1175
+ SubscriptionStatus2["PENDING_UPGRADE"] = "pending_upgrade";
1237
1176
  return SubscriptionStatus2;
1238
1177
  })(SubscriptionStatus || {});
1239
1178
  var CollaboratorStatus = /* @__PURE__ */ ((CollaboratorStatus2) => {
@@ -1265,6 +1204,7 @@ var ContractStatus = /* @__PURE__ */ ((ContractStatus2) => {
1265
1204
  ContractStatus2["EXPIRING_SOON"] = "expiring_soon";
1266
1205
  ContractStatus2["EXPIRED"] = "expired";
1267
1206
  ContractStatus2["CANCELLED"] = "cancelled";
1207
+ ContractStatus2["FOR_RENEW"] = "for_renew";
1268
1208
  return ContractStatus2;
1269
1209
  })(ContractStatus || {});
1270
1210
  var PaymentFrequency = /* @__PURE__ */ ((PaymentFrequency2) => {
@@ -1408,7 +1348,12 @@ var PERMISSIONS = {
1408
1348
  SUPPLIERS_CREATE: "SUPPLIERS_CREATE",
1409
1349
  SUPPLIERS_READ: "SUPPLIERS_READ",
1410
1350
  SUPPLIERS_UPDATE: "SUPPLIERS_UPDATE",
1411
- SUPPLIERS_DELETE: "SUPPLIERS_DELETE"
1351
+ SUPPLIERS_DELETE: "SUPPLIERS_DELETE",
1352
+ // Payment Methods
1353
+ PAYMENT_METHODS_CREATE: "PAYMENT_METHODS_CREATE",
1354
+ PAYMENT_METHODS_READ: "PAYMENT_METHODS_READ",
1355
+ PAYMENT_METHODS_UPDATE: "PAYMENT_METHODS_UPDATE",
1356
+ PAYMENT_METHODS_DELETE: "PAYMENT_METHODS_DELETE"
1412
1357
  };
1413
1358
  var ROLE_PERMISSIONS = {
1414
1359
  OWNER: Object.values(PERMISSIONS),
@@ -1446,7 +1391,11 @@ var ROLE_PERMISSIONS = {
1446
1391
  PERMISSIONS.SUPPLIERS_CREATE,
1447
1392
  PERMISSIONS.SUPPLIERS_READ,
1448
1393
  PERMISSIONS.SUPPLIERS_UPDATE,
1449
- PERMISSIONS.SUPPLIERS_DELETE
1394
+ PERMISSIONS.SUPPLIERS_DELETE,
1395
+ PERMISSIONS.PAYMENT_METHODS_CREATE,
1396
+ PERMISSIONS.PAYMENT_METHODS_READ,
1397
+ PERMISSIONS.PAYMENT_METHODS_UPDATE,
1398
+ PERMISSIONS.PAYMENT_METHODS_DELETE
1450
1399
  ],
1451
1400
  STAFF: [
1452
1401
  PERMISSIONS.CLIENTS_READ,
@@ -1455,7 +1404,8 @@ var ROLE_PERMISSIONS = {
1455
1404
  PERMISSIONS.PRODUCTS_READ,
1456
1405
  PERMISSIONS.PRODUCT_CATEGORIES_READ,
1457
1406
  PERMISSIONS.SALES_CREATE,
1458
- PERMISSIONS.SALES_READ
1407
+ PERMISSIONS.SALES_READ,
1408
+ PERMISSIONS.PAYMENT_METHODS_READ
1459
1409
  ],
1460
1410
  ADVISOR: [
1461
1411
  PERMISSIONS.CLIENTS_READ,
@@ -1475,8 +1425,10 @@ var CACHE_TTL = {
1475
1425
  // 30 minutes
1476
1426
  STATIC_DATA: 3600,
1477
1427
  // 60 minutes
1478
- REPORTS: 300
1428
+ REPORTS: 300,
1479
1429
  // 5 minutes
1430
+ DASHBOARD: 180
1431
+ // 3 minutes
1480
1432
  };
1481
1433
  var FILE_LIMITS = {
1482
1434
  MAX_FILE_SIZE: 10 * 1024 * 1024,