@exyconn/common 2.3.3 → 2.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.
@@ -347,17 +347,97 @@ var simpleParseDualDataResponse = (response) => {
347
347
  };
348
348
 
349
349
  // src/client/http/http.ts
350
- var isDevelopment = typeof window !== "undefined" && window.location.hostname === "localhost";
351
- var API_BASE_URL = isDevelopment ? "http://localhost:4002" : "https://service-api.exyconn.com";
352
- var API_PREFIX = "/v1/api";
353
- var axiosInstance = axios.create({
354
- baseURL: API_BASE_URL,
350
+ var defaultConfig = {
351
+ baseUrl: typeof window !== "undefined" && window.location.hostname === "localhost" ? "http://localhost:4002" : "https://service-api.exyconn.com",
352
+ apiPrefix: "/v1/api",
355
353
  timeout: 3e4,
356
- // 30 seconds
354
+ defaultHeaders: {}
355
+ };
356
+ var currentConfig = { ...defaultConfig };
357
+ var axiosInstance = axios.create({
358
+ baseURL: defaultConfig.baseUrl,
359
+ timeout: defaultConfig.timeout,
357
360
  headers: {
358
361
  "Content-Type": "application/json"
359
362
  }
360
363
  });
364
+ var getApiBaseUrl = () => {
365
+ return currentConfig.baseUrl || defaultConfig.baseUrl;
366
+ };
367
+ var setApiBaseUrl = (baseUrl) => {
368
+ currentConfig.baseUrl = baseUrl;
369
+ axiosInstance.defaults.baseURL = baseUrl;
370
+ logger.info(`API Base URL updated to: ${baseUrl}`);
371
+ };
372
+ var getApiPrefix = () => {
373
+ return currentConfig.apiPrefix || defaultConfig.apiPrefix;
374
+ };
375
+ var setApiPrefix = (prefix) => {
376
+ currentConfig.apiPrefix = prefix;
377
+ logger.info(`API Prefix updated to: ${prefix}`);
378
+ };
379
+ var getCustomHeaders = () => {
380
+ return { ...currentConfig.defaultHeaders };
381
+ };
382
+ var setCustomHeader = (key, value) => {
383
+ if (!currentConfig.defaultHeaders) {
384
+ currentConfig.defaultHeaders = {};
385
+ }
386
+ currentConfig.defaultHeaders[key] = value;
387
+ axiosInstance.defaults.headers.common[key] = value;
388
+ logger.info(`Custom header added: ${key}`);
389
+ };
390
+ var removeCustomHeader = (key) => {
391
+ if (currentConfig.defaultHeaders) {
392
+ delete currentConfig.defaultHeaders[key];
393
+ }
394
+ delete axiosInstance.defaults.headers.common[key];
395
+ logger.info(`Custom header removed: ${key}`);
396
+ };
397
+ var setCustomHeaders = (headers) => {
398
+ currentConfig.defaultHeaders = { ...currentConfig.defaultHeaders, ...headers };
399
+ Object.entries(headers).forEach(([key, value]) => {
400
+ axiosInstance.defaults.headers.common[key] = value;
401
+ });
402
+ logger.info(`Multiple custom headers added: ${Object.keys(headers).join(", ")}`);
403
+ };
404
+ var clearCustomHeaders = () => {
405
+ if (currentConfig.defaultHeaders) {
406
+ Object.keys(currentConfig.defaultHeaders).forEach((key) => {
407
+ delete axiosInstance.defaults.headers.common[key];
408
+ });
409
+ }
410
+ currentConfig.defaultHeaders = {};
411
+ logger.info("All custom headers cleared");
412
+ };
413
+ var configureHttp = (config) => {
414
+ if (config.baseUrl) {
415
+ setApiBaseUrl(config.baseUrl);
416
+ }
417
+ if (config.apiPrefix) {
418
+ setApiPrefix(config.apiPrefix);
419
+ }
420
+ if (config.timeout !== void 0) {
421
+ currentConfig.timeout = config.timeout;
422
+ axiosInstance.defaults.timeout = config.timeout;
423
+ }
424
+ if (config.defaultHeaders) {
425
+ setCustomHeaders(config.defaultHeaders);
426
+ }
427
+ logger.info("HTTP client configured successfully");
428
+ };
429
+ var getHttpConfig = () => {
430
+ return { ...currentConfig };
431
+ };
432
+ var resetHttpConfig = () => {
433
+ currentConfig = { ...defaultConfig };
434
+ axiosInstance.defaults.baseURL = defaultConfig.baseUrl;
435
+ axiosInstance.defaults.timeout = defaultConfig.timeout;
436
+ clearCustomHeaders();
437
+ logger.info("HTTP configuration reset to defaults");
438
+ };
439
+ var API_BASE_URL = getApiBaseUrl();
440
+ var API_PREFIX = getApiPrefix();
361
441
  axiosInstance.interceptors.request.use(
362
442
  (config) => {
363
443
  try {
@@ -390,7 +470,10 @@ axiosInstance.interceptors.response.use(
390
470
  var buildHeaders = (customHeaders) => {
391
471
  const headers = {
392
472
  "Content-Type": "application/json",
473
+ ...currentConfig.defaultHeaders,
474
+ // Add global custom headers
393
475
  ...customHeaders
476
+ // Request-specific headers override global ones
394
477
  };
395
478
  return headers;
396
479
  };
@@ -5762,6 +5845,6 @@ function RegisterForm({
5762
5845
  ) });
5763
5846
  }
5764
5847
 
5765
- export { API_BASE_URL, API_PREFIX, ClientLogger, ContactForm, ERROR_CODES, LoginForm, NewsletterForm, RegisterForm, STATUS_CODES, STATUS_MESSAGES, SUCCESS_CODES, ThemeContext, ThemeProvider, ThemeToggle, VALIDATION_MESSAGES, adjustColor, axiosInstance as axios, camelToKebab, capitalize, capitalizeWords, clientLogger, contactFormSchema, copyToClipboard, createClientLogger, createEmptyPaginationMeta, createErrorResponse, createRegisterFormSchema, createSuccessResponse, createTheme, createThemeFromBrand, cssVar, deepMerge, defaultDarkTheme, defaultLightTheme, deleteRequest, dummyBannerData, dummyFaqItems, dummyFeatures, dummyFooterData, dummyHeaderData, dummyImage, dummyPricingPlans, dummyTestimonials, extractData, extractMessage, extractNestedData, extractPaginatedData, flattenToCssVars, formatDate, formatDateTime, formatRelativeTime, generateCssVars, generateSlug, generateSnakeSlug, generateUrlSlug, getContrastColor, getErrorMessage, getNextPage, getPrevPage, getRequest, getResponseData, getSystemColorScheme, hasData, hasMorePages, hexToRgba, injectCssVars, isErrorResponse, isSuccess, isSuccessResponse, isErrorResponse2 as isUtilErrorResponse, isSuccessResponse2 as isUtilSuccessResponse, kebabToCamel, loadThemeFromUrl, loadThemeMode, logger, loginFormSchema, loremIpsum, newsletterFormSchema, packageCheck, parseAxiosErrorMessage, parseError, parsePaginatedResponse, parseResponseData, parseResponseMessage, parseResponseStatus, parseResponseStatusMessage, patchRequest, postRequest, putRequest, registerFormSchema, removeCssVars, resolveThemeMode, safeJsonParse, saveThemeMode, simpleMetaParseResponse, simpleParseDualDataResponse, simpleParseResponse, slugify, slugifyUnique, truncate, truncateWords, unslugify, uploadFile, useBattery_default as useBattery, useClickAway_default as useClickAway, useContinuousRetry_default as useContinuousRetry, useCopyToClipboard_default as useCopyToClipboard, useCountdown_default as useCountdown, useCounter_default as useCounter, useDebounce_default as useDebounce, useDefault_default as useDefault, useDocumentTitle_default as useDocumentTitle, useEventListener_default as useEventListener, useFavicon_default as useFavicon, useFetch_default as useFetch, useGeolocation_default as useGeolocation, useHistoryState_default as useHistoryState, useHover_default as useHover, useIdle_default as useIdle, useIntersectionObserver_default as useIntersectionObserver, useInterval_default as useInterval, useIntervalWhen_default as useIntervalWhen, useIsClient_default as useIsClient, useIsDesktop, useIsFirstRender_default as useIsFirstRender, useIsMobile, useIsMobileOrTablet, useIsTablet, useKeyPress_default as useKeyPress, useList_default as useList, useLocalStorage_default as useLocalStorage, useLockBodyScroll_default as useLockBodyScroll, useLogger_default as useLogger, useLongPress_default as useLongPress, useMap_default as useMap, useMeasure_default as useMeasure, useMediaQuery_default as useMediaQuery, useMouse_default as useMouse, useNetworkState_default as useNetworkState, useObjectState_default as useObjectState, useOnClickOutside_default as useOnClickOutside, useOrientation_default as useOrientation, usePageLeave_default as usePageLeave, usePageTitle_default as usePageTitle, usePreferredLanguage_default as usePreferredLanguage, usePrevious_default as usePrevious, useQueue_default as useQueue, useRandomInterval_default as useRandomInterval, useRenderCount_default as useRenderCount, useRenderInfo_default as useRenderInfo, useScript_default as useScript, useSessionStorage_default as useSessionStorage, useSet_default as useSet, useSnackbar_default as useSnackbar, useTheme, useThemeDetector_default as useThemeDetector, useThemeValue, useThrottle_default as useThrottle, useTimeout_default as useTimeout, useToggle_default as useToggle, useVisibilityChange_default as useVisibilityChange, useWindowScroll_default as useWindowScroll, useWindowSize_default as useWindowSize };
5848
+ export { API_BASE_URL, API_PREFIX, ClientLogger, ContactForm, ERROR_CODES, LoginForm, NewsletterForm, RegisterForm, STATUS_CODES, STATUS_MESSAGES, SUCCESS_CODES, ThemeContext, ThemeProvider, ThemeToggle, VALIDATION_MESSAGES, adjustColor, axiosInstance as axios, camelToKebab, capitalize, capitalizeWords, clearCustomHeaders, clientLogger, configureHttp, contactFormSchema, copyToClipboard, createClientLogger, createEmptyPaginationMeta, createErrorResponse, createRegisterFormSchema, createSuccessResponse, createTheme, createThemeFromBrand, cssVar, deepMerge, defaultDarkTheme, defaultLightTheme, deleteRequest, dummyBannerData, dummyFaqItems, dummyFeatures, dummyFooterData, dummyHeaderData, dummyImage, dummyPricingPlans, dummyTestimonials, extractData, extractMessage, extractNestedData, extractPaginatedData, flattenToCssVars, formatDate, formatDateTime, formatRelativeTime, generateCssVars, generateSlug, generateSnakeSlug, generateUrlSlug, getApiBaseUrl, getApiPrefix, getContrastColor, getCustomHeaders, getErrorMessage, getHttpConfig, getNextPage, getPrevPage, getRequest, getResponseData, getSystemColorScheme, hasData, hasMorePages, hexToRgba, injectCssVars, isErrorResponse, isSuccess, isSuccessResponse, isErrorResponse2 as isUtilErrorResponse, isSuccessResponse2 as isUtilSuccessResponse, kebabToCamel, loadThemeFromUrl, loadThemeMode, logger, loginFormSchema, loremIpsum, newsletterFormSchema, packageCheck, parseAxiosErrorMessage, parseError, parsePaginatedResponse, parseResponseData, parseResponseMessage, parseResponseStatus, parseResponseStatusMessage, patchRequest, postRequest, putRequest, registerFormSchema, removeCssVars, removeCustomHeader, resetHttpConfig, resolveThemeMode, safeJsonParse, saveThemeMode, setApiBaseUrl, setApiPrefix, setCustomHeader, setCustomHeaders, simpleMetaParseResponse, simpleParseDualDataResponse, simpleParseResponse, slugify, slugifyUnique, truncate, truncateWords, unslugify, uploadFile, useBattery_default as useBattery, useClickAway_default as useClickAway, useContinuousRetry_default as useContinuousRetry, useCopyToClipboard_default as useCopyToClipboard, useCountdown_default as useCountdown, useCounter_default as useCounter, useDebounce_default as useDebounce, useDefault_default as useDefault, useDocumentTitle_default as useDocumentTitle, useEventListener_default as useEventListener, useFavicon_default as useFavicon, useFetch_default as useFetch, useGeolocation_default as useGeolocation, useHistoryState_default as useHistoryState, useHover_default as useHover, useIdle_default as useIdle, useIntersectionObserver_default as useIntersectionObserver, useInterval_default as useInterval, useIntervalWhen_default as useIntervalWhen, useIsClient_default as useIsClient, useIsDesktop, useIsFirstRender_default as useIsFirstRender, useIsMobile, useIsMobileOrTablet, useIsTablet, useKeyPress_default as useKeyPress, useList_default as useList, useLocalStorage_default as useLocalStorage, useLockBodyScroll_default as useLockBodyScroll, useLogger_default as useLogger, useLongPress_default as useLongPress, useMap_default as useMap, useMeasure_default as useMeasure, useMediaQuery_default as useMediaQuery, useMouse_default as useMouse, useNetworkState_default as useNetworkState, useObjectState_default as useObjectState, useOnClickOutside_default as useOnClickOutside, useOrientation_default as useOrientation, usePageLeave_default as usePageLeave, usePageTitle_default as usePageTitle, usePreferredLanguage_default as usePreferredLanguage, usePrevious_default as usePrevious, useQueue_default as useQueue, useRandomInterval_default as useRandomInterval, useRenderCount_default as useRenderCount, useRenderInfo_default as useRenderInfo, useScript_default as useScript, useSessionStorage_default as useSessionStorage, useSet_default as useSet, useSnackbar_default as useSnackbar, useTheme, useThemeDetector_default as useThemeDetector, useThemeValue, useThrottle_default as useThrottle, useTimeout_default as useTimeout, useToggle_default as useToggle, useVisibilityChange_default as useVisibilityChange, useWindowScroll_default as useWindowScroll, useWindowSize_default as useWindowSize };
5766
5849
  //# sourceMappingURL=index.mjs.map
5767
5850
  //# sourceMappingURL=index.mjs.map