arky-sdk 0.3.70 → 0.3.71

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.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { UpdateUserProfileParams, RequestOptions, DeleteUserParams, AddPhoneNumberParams, PhoneNumberConfirmParams, GetMeParams, SearchUsersParams, SetRoleParams, LoginUserParams, RegisterUserParams, LogoutParams, ConfirmUserParams, GetLoginUrlParams, ForgotPasswordParams, ResetForgotPasswordParams, ResetPasswordParams, UserSubscribeParams, CreateBusinessParams, UpdateBusinessParams, DeleteBusinessParams, GetBusinessParams, GetBusinessesParams, GetBusinessParentsParams, TriggerBuildsParams, GetSubscriptionPlansParams, GetSubscriptionParams, SubscribeParams, CreatePortalSessionParams, InviteUserParams, HandleInvitationParams, TestWebhookParams, GetBusinessMediaParams2, SetProviderScheduleParams, ProcessRefundParams, UploadBusinessMediaParams, DeleteBusinessMediaParams, GetBusinessMediaParams, UpdateMediaParams, CreateRoleParams, UpdateRoleParams, DeleteRoleParams, GetRoleParams, GetRolesParams, TrackEmailOpenParams, GetDeliveryStatsParams, CreatePromoCodeParams, UpdatePromoCodeParams, DeletePromoCodeParams, GetPromoCodeParams, GetPromoCodesParams, GetAnalyticsParams, CreateCollectionParams, UpdateCollectionParams, DeleteCollectionParams, GetCollectionParams, GetCollectionsParams, GenerateBlocksParams, GetEntriesParams, CreateEntryParams, UpdateEntryParams, DeleteCollectionEntryParams, GetCollectionEntryParams, SendEntryParams, GetVariableMetadataParams, GetCollectionSubscribersParams, CreateProductParams, UpdateProductParams, DeleteProductParams, GetProductParams, GetProductsParams, CreateOrderParams, UpdateOrderParams, GetOrderParams, GetOrdersParams, UpdateOrderStatusParams, UpdateOrderPaymentStatusParams, GetQuoteParams, CheckoutParams, CreateReservationParams, UpdateReservationParams, ReservationCheckoutParams, GetReservationParams, SearchReservationsParams, SearchMyReservationsParams, GetReservationQuoteParams, CreateServiceParams, UpdateServiceParams, DeleteServiceParams, GetServiceParams, GetServicesParams, GetAvailableSlotsParams, CreateProviderParams, UpdateProviderParams, DeleteProviderParams, GetProviderParams, GetProvidersParams, GetBusinessServiceWorkingTimeParams } from './types.cjs';
1
+ import { UpdateUserProfileParams, RequestOptions, DeleteUserParams, AddPhoneNumberParams, PhoneNumberConfirmParams, GetMeParams, SearchUsersParams, SetRoleParams, LoginUserParams, RegisterUserParams, LogoutParams, ConfirmUserParams, GetLoginUrlParams, ForgotPasswordParams, ResetForgotPasswordParams, ResetPasswordParams, UserSubscribeParams, CreateBusinessParams, UpdateBusinessParams, DeleteBusinessParams, GetBusinessParams, GetBusinessesParams, GetBusinessParentsParams, TriggerBuildsParams, GetSubscriptionPlansParams, GetSubscriptionParams, SubscribeParams, CreatePortalSessionParams, InviteUserParams, HandleInvitationParams, TestWebhookParams, GetBusinessMediaParams2, SetProviderScheduleParams, ProcessRefundParams, UploadBusinessMediaParams, DeleteBusinessMediaParams, GetBusinessMediaParams, UpdateMediaParams, CreateRoleParams, UpdateRoleParams, DeleteRoleParams, GetRoleParams, GetRolesParams, TrackEmailOpenParams, GetDeliveryStatsParams, CreatePromoCodeParams, UpdatePromoCodeParams, DeletePromoCodeParams, GetPromoCodeParams, GetPromoCodesParams, GetAnalyticsParams, CreateCollectionParams, UpdateCollectionParams, DeleteCollectionParams, GetCollectionParams, GetCollectionsParams, GenerateBlocksParams, GetEntriesParams, CreateEntryParams, UpdateEntryParams, DeleteCollectionEntryParams, GetCollectionEntryParams, SendEntryParams, GetVariableMetadataParams, GetCollectionSubscribersParams, CreateProductParams, UpdateProductParams, DeleteProductParams, GetProductParams, GetProductsParams, CreateOrderParams, UpdateOrderParams, GetOrderParams, GetOrdersParams, UpdateOrderStatusParams, UpdateOrderPaymentStatusParams, GetQuoteParams, CheckoutParams, CreateReservationParams, UpdateReservationParams, ReservationCheckoutParams, GetReservationParams, SearchReservationsParams, SearchMyReservationsParams, GetReservationQuoteParams, CreateServiceParams, UpdateServiceParams, DeleteServiceParams, GetServiceParams, GetServicesParams, GetAvailableSlotsParams, CreateProviderParams, UpdateProviderParams, DeleteProviderParams, GetProviderParams, GetProvidersParams, GetBusinessServiceWorkingTimeParams, CreateFeatureFlagParams, FeatureFlag, GetFeatureFlagParams, GetFeatureFlagsParams, UpdateFeatureFlagParams, DeleteFeatureFlagParams, GetFeatureFlagResultsParams, FlagResults, GetVariantParams, GetVariantResponse, TrackEventParams, TrackEventResponse } from './types.cjs';
2
2
  export { ApiResponse, Block, Business, EshopCartItem, EshopStoreState, Price, ReservationCartItem, ReservationStoreState } from './types.cjs';
3
3
  import { g as getBlockLabel, a as getBlockTextValue, f as formatBlockValue, p as prepareBlocksForSubmission, e as extractBlockValues, b as getMarketPrice, c as getPriceAmount, d as formatPayment, h as formatMinor, i as createPaymentForCheckout, j as getCurrencySymbol, v as validatePhoneNumber, k as findTimeZone, s as slugify, l as humanize, m as categorify, n as formatDate, o as getSvgContentForAstro, q as fetchSvgContent, r as injectSvgIntoElement } from './svg-3F_m7296.cjs';
4
4
 
@@ -182,6 +182,27 @@ declare function createArkySDK(config: HttpClientConfig & {
182
182
  deleteData(params: DeleteDataParams, options?: RequestOptions): Promise<void>;
183
183
  runScript(params: RunScriptParams, options?: RequestOptions): Promise<RunScriptResponse>;
184
184
  };
185
+ featureFlags: {
186
+ createFlag(params: CreateFeatureFlagParams, options?: RequestOptions<FeatureFlag>): Promise<FeatureFlag>;
187
+ getFlag(params: GetFeatureFlagParams, options?: RequestOptions<FeatureFlag>): Promise<FeatureFlag>;
188
+ getFlags(params?: GetFeatureFlagsParams, options?: RequestOptions<FeatureFlag[]>): Promise<FeatureFlag[]>;
189
+ updateFlag(params: UpdateFeatureFlagParams, options?: RequestOptions<FeatureFlag>): Promise<FeatureFlag>;
190
+ deleteFlag(params: DeleteFeatureFlagParams, options?: RequestOptions<{
191
+ deleted: boolean;
192
+ }>): Promise<{
193
+ deleted: boolean;
194
+ }>;
195
+ getResults(params: GetFeatureFlagResultsParams, options?: RequestOptions<FlagResults>): Promise<FlagResults>;
196
+ getVariant(params: GetVariantParams, options?: RequestOptions<GetVariantResponse>): Promise<GetVariantResponse>;
197
+ trackEvent(params: TrackEventParams, options?: RequestOptions<TrackEventResponse>): Promise<TrackEventResponse>;
198
+ isEnabled(flagKey: string): Promise<boolean>;
199
+ getVariantWithDefault<T = any>(flagKey: string, defaultValue: T): Promise<{
200
+ variantKey: string;
201
+ payload: T;
202
+ }>;
203
+ activateFlag(id: string): Promise<FeatureFlag>;
204
+ archiveFlag(id: string): Promise<FeatureFlag>;
205
+ };
185
206
  setBusinessId: (businessId: string) => void;
186
207
  getBusinessId: () => string;
187
208
  setMarket: (market: string) => void;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { UpdateUserProfileParams, RequestOptions, DeleteUserParams, AddPhoneNumberParams, PhoneNumberConfirmParams, GetMeParams, SearchUsersParams, SetRoleParams, LoginUserParams, RegisterUserParams, LogoutParams, ConfirmUserParams, GetLoginUrlParams, ForgotPasswordParams, ResetForgotPasswordParams, ResetPasswordParams, UserSubscribeParams, CreateBusinessParams, UpdateBusinessParams, DeleteBusinessParams, GetBusinessParams, GetBusinessesParams, GetBusinessParentsParams, TriggerBuildsParams, GetSubscriptionPlansParams, GetSubscriptionParams, SubscribeParams, CreatePortalSessionParams, InviteUserParams, HandleInvitationParams, TestWebhookParams, GetBusinessMediaParams2, SetProviderScheduleParams, ProcessRefundParams, UploadBusinessMediaParams, DeleteBusinessMediaParams, GetBusinessMediaParams, UpdateMediaParams, CreateRoleParams, UpdateRoleParams, DeleteRoleParams, GetRoleParams, GetRolesParams, TrackEmailOpenParams, GetDeliveryStatsParams, CreatePromoCodeParams, UpdatePromoCodeParams, DeletePromoCodeParams, GetPromoCodeParams, GetPromoCodesParams, GetAnalyticsParams, CreateCollectionParams, UpdateCollectionParams, DeleteCollectionParams, GetCollectionParams, GetCollectionsParams, GenerateBlocksParams, GetEntriesParams, CreateEntryParams, UpdateEntryParams, DeleteCollectionEntryParams, GetCollectionEntryParams, SendEntryParams, GetVariableMetadataParams, GetCollectionSubscribersParams, CreateProductParams, UpdateProductParams, DeleteProductParams, GetProductParams, GetProductsParams, CreateOrderParams, UpdateOrderParams, GetOrderParams, GetOrdersParams, UpdateOrderStatusParams, UpdateOrderPaymentStatusParams, GetQuoteParams, CheckoutParams, CreateReservationParams, UpdateReservationParams, ReservationCheckoutParams, GetReservationParams, SearchReservationsParams, SearchMyReservationsParams, GetReservationQuoteParams, CreateServiceParams, UpdateServiceParams, DeleteServiceParams, GetServiceParams, GetServicesParams, GetAvailableSlotsParams, CreateProviderParams, UpdateProviderParams, DeleteProviderParams, GetProviderParams, GetProvidersParams, GetBusinessServiceWorkingTimeParams } from './types.js';
1
+ import { UpdateUserProfileParams, RequestOptions, DeleteUserParams, AddPhoneNumberParams, PhoneNumberConfirmParams, GetMeParams, SearchUsersParams, SetRoleParams, LoginUserParams, RegisterUserParams, LogoutParams, ConfirmUserParams, GetLoginUrlParams, ForgotPasswordParams, ResetForgotPasswordParams, ResetPasswordParams, UserSubscribeParams, CreateBusinessParams, UpdateBusinessParams, DeleteBusinessParams, GetBusinessParams, GetBusinessesParams, GetBusinessParentsParams, TriggerBuildsParams, GetSubscriptionPlansParams, GetSubscriptionParams, SubscribeParams, CreatePortalSessionParams, InviteUserParams, HandleInvitationParams, TestWebhookParams, GetBusinessMediaParams2, SetProviderScheduleParams, ProcessRefundParams, UploadBusinessMediaParams, DeleteBusinessMediaParams, GetBusinessMediaParams, UpdateMediaParams, CreateRoleParams, UpdateRoleParams, DeleteRoleParams, GetRoleParams, GetRolesParams, TrackEmailOpenParams, GetDeliveryStatsParams, CreatePromoCodeParams, UpdatePromoCodeParams, DeletePromoCodeParams, GetPromoCodeParams, GetPromoCodesParams, GetAnalyticsParams, CreateCollectionParams, UpdateCollectionParams, DeleteCollectionParams, GetCollectionParams, GetCollectionsParams, GenerateBlocksParams, GetEntriesParams, CreateEntryParams, UpdateEntryParams, DeleteCollectionEntryParams, GetCollectionEntryParams, SendEntryParams, GetVariableMetadataParams, GetCollectionSubscribersParams, CreateProductParams, UpdateProductParams, DeleteProductParams, GetProductParams, GetProductsParams, CreateOrderParams, UpdateOrderParams, GetOrderParams, GetOrdersParams, UpdateOrderStatusParams, UpdateOrderPaymentStatusParams, GetQuoteParams, CheckoutParams, CreateReservationParams, UpdateReservationParams, ReservationCheckoutParams, GetReservationParams, SearchReservationsParams, SearchMyReservationsParams, GetReservationQuoteParams, CreateServiceParams, UpdateServiceParams, DeleteServiceParams, GetServiceParams, GetServicesParams, GetAvailableSlotsParams, CreateProviderParams, UpdateProviderParams, DeleteProviderParams, GetProviderParams, GetProvidersParams, GetBusinessServiceWorkingTimeParams, CreateFeatureFlagParams, FeatureFlag, GetFeatureFlagParams, GetFeatureFlagsParams, UpdateFeatureFlagParams, DeleteFeatureFlagParams, GetFeatureFlagResultsParams, FlagResults, GetVariantParams, GetVariantResponse, TrackEventParams, TrackEventResponse } from './types.js';
2
2
  export { ApiResponse, Block, Business, EshopCartItem, EshopStoreState, Price, ReservationCartItem, ReservationStoreState } from './types.js';
3
3
  import { g as getBlockLabel, a as getBlockTextValue, f as formatBlockValue, p as prepareBlocksForSubmission, e as extractBlockValues, b as getMarketPrice, c as getPriceAmount, d as formatPayment, h as formatMinor, i as createPaymentForCheckout, j as getCurrencySymbol, v as validatePhoneNumber, k as findTimeZone, s as slugify, l as humanize, m as categorify, n as formatDate, o as getSvgContentForAstro, q as fetchSvgContent, r as injectSvgIntoElement } from './svg-4hIdMU6f.js';
4
4
 
@@ -182,6 +182,27 @@ declare function createArkySDK(config: HttpClientConfig & {
182
182
  deleteData(params: DeleteDataParams, options?: RequestOptions): Promise<void>;
183
183
  runScript(params: RunScriptParams, options?: RequestOptions): Promise<RunScriptResponse>;
184
184
  };
185
+ featureFlags: {
186
+ createFlag(params: CreateFeatureFlagParams, options?: RequestOptions<FeatureFlag>): Promise<FeatureFlag>;
187
+ getFlag(params: GetFeatureFlagParams, options?: RequestOptions<FeatureFlag>): Promise<FeatureFlag>;
188
+ getFlags(params?: GetFeatureFlagsParams, options?: RequestOptions<FeatureFlag[]>): Promise<FeatureFlag[]>;
189
+ updateFlag(params: UpdateFeatureFlagParams, options?: RequestOptions<FeatureFlag>): Promise<FeatureFlag>;
190
+ deleteFlag(params: DeleteFeatureFlagParams, options?: RequestOptions<{
191
+ deleted: boolean;
192
+ }>): Promise<{
193
+ deleted: boolean;
194
+ }>;
195
+ getResults(params: GetFeatureFlagResultsParams, options?: RequestOptions<FlagResults>): Promise<FlagResults>;
196
+ getVariant(params: GetVariantParams, options?: RequestOptions<GetVariantResponse>): Promise<GetVariantResponse>;
197
+ trackEvent(params: TrackEventParams, options?: RequestOptions<TrackEventResponse>): Promise<TrackEventResponse>;
198
+ isEnabled(flagKey: string): Promise<boolean>;
199
+ getVariantWithDefault<T = any>(flagKey: string, defaultValue: T): Promise<{
200
+ variantKey: string;
201
+ payload: T;
202
+ }>;
203
+ activateFlag(id: string): Promise<FeatureFlag>;
204
+ archiveFlag(id: string): Promise<FeatureFlag>;
205
+ };
185
206
  setBusinessId: (businessId: string) => void;
186
207
  getBusinessId: () => string;
187
208
  setMarket: (market: string) => void;
package/dist/index.js CHANGED
@@ -1186,6 +1186,135 @@ var createDatabaseApi = (apiConfig) => {
1186
1186
  };
1187
1187
  };
1188
1188
 
1189
+ // src/api/featureFlags.ts
1190
+ var createFeatureFlagsApi = (apiConfig) => {
1191
+ return {
1192
+ /**
1193
+ * Create a new feature flag
1194
+ */
1195
+ async createFlag(params, options) {
1196
+ return apiConfig.httpClient.post(
1197
+ `/v1/businesses/${apiConfig.businessId}/feature-flags`,
1198
+ params,
1199
+ options
1200
+ );
1201
+ },
1202
+ /**
1203
+ * Get a feature flag by ID
1204
+ */
1205
+ async getFlag(params, options) {
1206
+ return apiConfig.httpClient.get(
1207
+ `/v1/businesses/${apiConfig.businessId}/feature-flags/${params.id}`,
1208
+ options
1209
+ );
1210
+ },
1211
+ /**
1212
+ * List all feature flags for the business
1213
+ */
1214
+ async getFlags(params, options) {
1215
+ return apiConfig.httpClient.get(
1216
+ `/v1/businesses/${apiConfig.businessId}/feature-flags`,
1217
+ {
1218
+ ...options,
1219
+ params
1220
+ }
1221
+ );
1222
+ },
1223
+ /**
1224
+ * Update a feature flag
1225
+ */
1226
+ async updateFlag(params, options) {
1227
+ const { id, ...body } = params;
1228
+ return apiConfig.httpClient.put(
1229
+ `/v1/businesses/${apiConfig.businessId}/feature-flags/${id}`,
1230
+ body,
1231
+ options
1232
+ );
1233
+ },
1234
+ /**
1235
+ * Delete a feature flag
1236
+ */
1237
+ async deleteFlag(params, options) {
1238
+ return apiConfig.httpClient.delete(
1239
+ `/v1/businesses/${apiConfig.businessId}/feature-flags/${params.id}`,
1240
+ options
1241
+ );
1242
+ },
1243
+ /**
1244
+ * Get experiment results for a feature flag
1245
+ */
1246
+ async getResults(params, options) {
1247
+ return apiConfig.httpClient.get(
1248
+ `/v1/businesses/${apiConfig.businessId}/feature-flags/${params.id}/results`,
1249
+ options
1250
+ );
1251
+ },
1252
+ /**
1253
+ * Get the variant assignment for the current user
1254
+ * This is the main method for feature flag evaluation
1255
+ */
1256
+ async getVariant(params, options) {
1257
+ return apiConfig.httpClient.get(
1258
+ `/v1/businesses/${apiConfig.businessId}/feature-flags/key/${params.flagKey}/variant`,
1259
+ options
1260
+ );
1261
+ },
1262
+ /**
1263
+ * Track a conversion event for A/B testing
1264
+ */
1265
+ async trackEvent(params, options) {
1266
+ return apiConfig.httpClient.post(
1267
+ `/v1/businesses/${apiConfig.businessId}/feature-flags/track`,
1268
+ params,
1269
+ options
1270
+ );
1271
+ },
1272
+ // ===== CONVENIENCE METHODS =====
1273
+ /**
1274
+ * Check if a feature is enabled (returns true if variant is not 'control')
1275
+ * Convenience method for simple on/off flags
1276
+ */
1277
+ async isEnabled(flagKey) {
1278
+ try {
1279
+ const response = await this.getVariant({ flagKey });
1280
+ return response.variantKey !== "control";
1281
+ } catch {
1282
+ return false;
1283
+ }
1284
+ },
1285
+ /**
1286
+ * Get variant with payload, returning a default if flag not found
1287
+ * Useful for getting configuration values from variants
1288
+ */
1289
+ async getVariantWithDefault(flagKey, defaultValue) {
1290
+ try {
1291
+ const response = await this.getVariant({ flagKey });
1292
+ return {
1293
+ variantKey: response.variantKey,
1294
+ payload: response.payload ?? defaultValue
1295
+ };
1296
+ } catch {
1297
+ return {
1298
+ variantKey: "control",
1299
+ payload: defaultValue
1300
+ };
1301
+ }
1302
+ },
1303
+ /**
1304
+ * Activate a draft flag
1305
+ */
1306
+ async activateFlag(id) {
1307
+ return this.updateFlag({ id, status: "ACTIVE" });
1308
+ },
1309
+ /**
1310
+ * Archive an active flag
1311
+ */
1312
+ async archiveFlag(id) {
1313
+ return this.updateFlag({ id, status: "ARCHIVED" });
1314
+ }
1315
+ };
1316
+ };
1317
+
1189
1318
  // src/utils/currency.ts
1190
1319
  function getCurrencySymbol(currency) {
1191
1320
  const currencySymbols = {
@@ -1578,6 +1707,7 @@ function createArkySDK(config) {
1578
1707
  eshop: createEshopApi(apiConfig),
1579
1708
  reservation: createReservationApi(apiConfig),
1580
1709
  database: createDatabaseApi(apiConfig),
1710
+ featureFlags: createFeatureFlagsApi(apiConfig),
1581
1711
  setBusinessId: (businessId) => {
1582
1712
  apiConfig.businessId = businessId;
1583
1713
  },