@gymspace/sdk 1.3.2 → 1.3.4

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
@@ -83,10 +83,11 @@ var ApiClient = class {
83
83
  setupInterceptors() {
84
84
  this.axiosInstance.interceptors.request.use(
85
85
  (config) => {
86
- if (this.config.apiKey && config.headers) {
86
+ const skipAuth = config.skipAuth;
87
+ if (this.config.apiKey && config.headers && !skipAuth) {
87
88
  config.headers["Authorization"] = `Bearer ${this.config.apiKey}`;
88
89
  }
89
- if (this.refreshToken && this.config.apiKey && config.headers) {
90
+ if (this.refreshToken && this.config.apiKey && config.headers && !skipAuth) {
90
91
  config.headers["X-Refresh-Token"] = this.refreshToken;
91
92
  }
92
93
  return config;
@@ -165,12 +166,14 @@ var ApiClient = class {
165
166
  return { headers };
166
167
  }
167
168
  async request(method, path, data, options) {
168
- const { headers, ...axiosConfig } = options || {};
169
+ const { headers, skipAuth, ...axiosConfig } = options || {};
169
170
  const config = {
170
171
  method,
171
172
  url: path,
172
173
  ...this.mergeOptions({ headers }),
173
- ...axiosConfig
174
+ ...axiosConfig,
175
+ skipAuth
176
+ // Pass skipAuth flag to interceptor
174
177
  };
175
178
  if (data && ["POST", "PUT", "PATCH"].includes(method.toUpperCase())) {
176
179
  config.data = data;
@@ -1068,19 +1071,80 @@ var HealthResource = class extends BaseResource {
1068
1071
  }
1069
1072
  };
1070
1073
 
1074
+ // src/models/onboarding.ts
1075
+ var OnboardingCacheStatus = /* @__PURE__ */ ((OnboardingCacheStatus2) => {
1076
+ OnboardingCacheStatus2["PROCESSING"] = "PROCESSING";
1077
+ OnboardingCacheStatus2["COMPLETED"] = "COMPLETED";
1078
+ OnboardingCacheStatus2["FAILED"] = "FAILED";
1079
+ return OnboardingCacheStatus2;
1080
+ })(OnboardingCacheStatus || {});
1081
+ var OnboardingStep = /* @__PURE__ */ ((OnboardingStep2) => {
1082
+ OnboardingStep2["ACCOUNT_CREATED"] = "account_created";
1083
+ OnboardingStep2["GYM_SETTINGS"] = "gym_settings";
1084
+ OnboardingStep2["FEATURES_CONFIGURED"] = "features_configured";
1085
+ OnboardingStep2["COMPLETED"] = "completed";
1086
+ return OnboardingStep2;
1087
+ })(OnboardingStep || {});
1088
+
1071
1089
  // src/resources/onboarding.ts
1072
1090
  var OnboardingResource = class extends BaseResource {
1073
1091
  /**
1074
- * Creates owner account, organization, and initial gym
1075
- * Now also sends verification and organization codes via email
1092
+ * Start onboarding process (async)
1093
+ * Creates user account and triggers background setup
1094
+ * Returns immediately with PROCESSING status
1095
+ * Use getStatusByEmail() to poll for completion
1076
1096
  */
1077
1097
  async start(data) {
1078
- const response = await this.client.post("/onboarding/start", data);
1098
+ const response = await this.client.post(
1099
+ "/onboarding/start",
1100
+ data,
1101
+ { skipAuth: true }
1102
+ // Public endpoint - no auth required
1103
+ );
1079
1104
  if (response.access_token) {
1080
1105
  this.client.setAuthToken(response.access_token);
1081
1106
  }
1082
1107
  return response;
1083
1108
  }
1109
+ /**
1110
+ * Get onboarding status by email (polling endpoint)
1111
+ * Use this to check if async onboarding setup is complete
1112
+ *
1113
+ * @param email - User email to check status
1114
+ * @returns Status object with PROCESSING, COMPLETED, or FAILED
1115
+ */
1116
+ async getStatusByEmail(email) {
1117
+ return this.client.get(
1118
+ "/onboarding/status",
1119
+ { email },
1120
+ { skipAuth: true }
1121
+ );
1122
+ }
1123
+ /**
1124
+ * Poll for onboarding completion
1125
+ * Automatically polls until status is COMPLETED or FAILED
1126
+ *
1127
+ * @param email - User email
1128
+ * @param options - Polling options
1129
+ * @returns Final status when completed or failed
1130
+ */
1131
+ async waitForCompletion(email, options = {}) {
1132
+ const { maxAttempts = 60, intervalMs = 1e3, onProgress } = options;
1133
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
1134
+ const status = await this.getStatusByEmail(email);
1135
+ if (onProgress) {
1136
+ onProgress(attempt, status.status);
1137
+ }
1138
+ if (status.status === "COMPLETED" /* COMPLETED */) {
1139
+ return status;
1140
+ }
1141
+ if (status.status === "FAILED" /* FAILED */) {
1142
+ throw new Error(`Onboarding failed: ${status.error || "Unknown error"}`);
1143
+ }
1144
+ await new Promise((resolve) => setTimeout(resolve, intervalMs));
1145
+ }
1146
+ throw new Error("Onboarding timeout - process is still running in background");
1147
+ }
1084
1148
  /**
1085
1149
  * Updates basic gym settings (step 2 of onboarding)
1086
1150
  * Configure basic gym information like name, address, etc.
@@ -1102,7 +1166,7 @@ var OnboardingResource = class extends BaseResource {
1102
1166
  return this.client.post("/onboarding/complete", data);
1103
1167
  }
1104
1168
  /**
1105
- * Get current onboarding status
1169
+ * Get current onboarding status by gym ID
1106
1170
  * Check progress and next steps
1107
1171
  */
1108
1172
  async getStatus(gymId) {
@@ -2780,15 +2844,6 @@ var bulkMessageSchema = z.object({
2780
2844
  suggestions: z.array(z.string()).optional().describe("Additional message suggestions")
2781
2845
  });
2782
2846
 
2783
- // src/models/onboarding.ts
2784
- var OnboardingStep = /* @__PURE__ */ ((OnboardingStep2) => {
2785
- OnboardingStep2["ACCOUNT_CREATED"] = "account_created";
2786
- OnboardingStep2["GYM_SETTINGS"] = "gym_settings";
2787
- OnboardingStep2["FEATURES_CONFIGURED"] = "features_configured";
2788
- OnboardingStep2["COMPLETED"] = "completed";
2789
- return OnboardingStep2;
2790
- })(OnboardingStep || {});
2791
-
2792
2847
  // src/models/commissions.ts
2793
2848
  var CommissionRuleType = /* @__PURE__ */ ((CommissionRuleType2) => {
2794
2849
  CommissionRuleType2["PLAN"] = "PLAN";
@@ -2823,6 +2878,6 @@ var LeadGender = /* @__PURE__ */ ((LeadGender2) => {
2823
2878
  return LeadGender2;
2824
2879
  })(LeadGender || {});
2825
2880
 
2826
- export { ACTIVITY_EVENTS, ActivitiesResource, AdminCatalogResource, AdminSubscriptionManagementResource, ApiClient, AssetCategory, AssetStatus, AssetsResource, AuthResource, AuthenticationError, AuthorizationError, BULK_MESSAGE_VARIABLES, BULK_MESSAGE_VARIABLE_CATEGORIES, BULK_MESSAGING_EVENTS, BulkMessagingResource, CACHE_TTL, CancellationReason, CheckInsResource, ClientStatus, ClientsResource, CollaboratorStatus, CollaboratorsResource, CommissionCalculationsResource, CommissionChangeType, CommissionConfigResource, CommissionEntityType, CommissionPromotionsResource, CommissionReportsResource, CommissionRuleType, CommissionRulesResource, CommissionStatus, ContractAssetType, ContractStatus, ContractsResource, DATE_FORMATS, DashboardResource, FILE_LIMITS, FilesResource, GymSpaceError, GymSpaceSdk, GymsResource, HEADERS, HealthResource, InvitationStatus, InvitationsResource, LeadGender, MembershipPlansResource, NetworkError, NotFoundError, OnboardingResource, OnboardingStep, OrganizationsResource, PAGINATION_DEFAULTS, PERMISSIONS, PaymentFrequency, PaymentMethodsResource, PlanStatus, ProductsResource, PublicCatalogResource, ROLE_NAMES, ROLE_PERMISSIONS, RoleNames, RolesResource, SalesResource, SubscriptionPlansResource, SubscriptionStatus, SubscriptionsResource, SuppliersResource, SuspensionType, TEMPLATE_CODES, TEMPLATE_METADATA, TagsResource, TemplateCode, TemplateType, UserType, UsersResource, ValidationError, WHATSAPP_EVENTS, WHATSAPP_TEMPLATE_EVENTS, WhatsAppResource, WhatsAppTemplatesResource, aiGeneratedTemplateSchema, bulkMessageGenerationRequestSchema, bulkMessageSchema, canAccessFeature, getRoleCapabilities, getRoleDescription, getRoleDisplayName, isAdminRole, isEncargadoRole, templateGenerationRequestSchema };
2881
+ export { ACTIVITY_EVENTS, ActivitiesResource, AdminCatalogResource, AdminSubscriptionManagementResource, ApiClient, AssetCategory, AssetStatus, AssetsResource, AuthResource, AuthenticationError, AuthorizationError, BULK_MESSAGE_VARIABLES, BULK_MESSAGE_VARIABLE_CATEGORIES, BULK_MESSAGING_EVENTS, BulkMessagingResource, CACHE_TTL, CancellationReason, CheckInsResource, ClientStatus, ClientsResource, CollaboratorStatus, CollaboratorsResource, CommissionCalculationsResource, CommissionChangeType, CommissionConfigResource, CommissionEntityType, CommissionPromotionsResource, CommissionReportsResource, CommissionRuleType, CommissionRulesResource, CommissionStatus, ContractAssetType, ContractStatus, ContractsResource, DATE_FORMATS, DashboardResource, FILE_LIMITS, FilesResource, GymSpaceError, GymSpaceSdk, GymsResource, HEADERS, HealthResource, InvitationStatus, InvitationsResource, LeadGender, MembershipPlansResource, NetworkError, NotFoundError, OnboardingCacheStatus, OnboardingResource, OnboardingStep, OrganizationsResource, PAGINATION_DEFAULTS, PERMISSIONS, PaymentFrequency, PaymentMethodsResource, PlanStatus, ProductsResource, PublicCatalogResource, ROLE_NAMES, ROLE_PERMISSIONS, RoleNames, RolesResource, SalesResource, SubscriptionPlansResource, SubscriptionStatus, SubscriptionsResource, SuppliersResource, SuspensionType, TEMPLATE_CODES, TEMPLATE_METADATA, TagsResource, TemplateCode, TemplateType, UserType, UsersResource, ValidationError, WHATSAPP_EVENTS, WHATSAPP_TEMPLATE_EVENTS, WhatsAppResource, WhatsAppTemplatesResource, aiGeneratedTemplateSchema, bulkMessageGenerationRequestSchema, bulkMessageSchema, canAccessFeature, getRoleCapabilities, getRoleDescription, getRoleDisplayName, isAdminRole, isEncargadoRole, templateGenerationRequestSchema };
2827
2882
  //# sourceMappingURL=index.mjs.map
2828
2883
  //# sourceMappingURL=index.mjs.map