{"version":3,"sources":["../src/StorageKeys.ts","../src/utils/environment.ts","../src/StorageManager.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Storage keys\n */\nexport const STORAGE_KEYS = {\n  CART: \"fs_cart\",\n  EVENT_QUEUE: \"fs_event_queue\",\n  SESSION: \"fs_session\",\n  FINGERPRINT: \"fs_fingerprint\",\n  COUNTRY: \"fs_country\",\n  LOCALE: \"fs_locale\",\n  SERVER_SETTINGS: \"fs_server_settings\",\n  SETTINGS_OVERRIDE: \"fs_settings_override\",\n  ATTRIBUTION: \"fs_attribution\",\n  ATTRIBUTION_CACHE: \"fs_attribution_cache\",\n};\n","/**\n * Check if the code is running in a browser environment\n */\nexport const isBrowser =\n  typeof window !== \"undefined\" && typeof document !== \"undefined\";\n\n/**\n * Get a cookie value by name\n * @param name The name of the cookie to retrieve\n * @returns The cookie value or null if not found\n */\nexport const getCookie = (name: string): string | null => {\n  if (!isBrowser) return null;\n\n  try {\n    const cookies = document.cookie.split(\";\");\n    for (const cookieStr of cookies) {\n      const cookie = cookieStr.trim();\n      if (cookie.startsWith(name + \"=\")) {\n        return cookie.substring(name.length + 1);\n      }\n    }\n    return null;\n  } catch (error) {\n    console.error(\"Error reading cookie:\", error);\n    return null;\n  }\n};\n\n/**\n * Get a wrapper for localStorage with error handling\n * @returns An object with methods to interact with localStorage\n */\nexport const getLocalStorage = () => {\n  return {\n    /**\n     * Get an item from localStorage\n     * @param key The key to retrieve\n     * @returns The value or null if not found or an error occurred\n     */\n    get: (key: string): string | null => {\n      if (!isBrowser) return null;\n      try {\n        return localStorage.getItem(key);\n      } catch (error) {\n        console.error(\"Error accessing localStorage:\", error);\n        return null;\n      }\n    },\n\n    /**\n     * Set an item in localStorage\n     * @param key The key to set\n     * @param value The value to store\n     */\n    set: (key: string, value: string): void => {\n      if (!isBrowser) return;\n      try {\n        localStorage.setItem(key, value);\n      } catch (error) {\n        console.error(\"Error writing to localStorage:\", error);\n      }\n    },\n\n    /**\n     * Remove an item from localStorage\n     * @param key The key to remove\n     */\n    remove: (key: string): void => {\n      if (!isBrowser) return;\n      try {\n        localStorage.removeItem(key);\n      } catch (error) {\n        console.error(\"Error removing from localStorage:\", error);\n      }\n    },\n  };\n};\n","import { STORAGE_KEYS } from \"./StorageKeys\";\nimport { getCookie, getLocalStorage } from \"./utils/environment\";\n\n/**\n * Manages storage operations\n */\nexport class StorageManager {\n  private storage = getLocalStorage();\n\n  /**\n   * Set an item in storage\n   * @param key Storage key\n   * @param value Storage value\n   */\n  public setItem(key: string, value: string): void {\n    this.storage.set(key, value);\n  }\n\n  /**\n   * Get an item from storage\n   * @param key Storage key\n   * @returns The stored value or null if not found\n   */\n  public getItem(key: string): string | null {\n    return this.storage.get(key);\n  }\n\n  /**\n   * Remove an item from storage\n   * @param key Storage key\n   */\n  public removeItem(key: string): void {\n    this.storage.remove(key);\n  }\n\n  /**\n   * Set an object in storage (serialized as JSON)\n   * @param key Storage key\n   * @param value Object to store\n   */\n  public setObject<T>(key: string, value: T): void {\n    this.storage.set(key, JSON.stringify(value));\n  }\n\n  /**\n   * Get an object from storage (deserialized from JSON)\n   * @param key Storage key\n   * @returns The stored object or null if not found or invalid\n   */\n  public getObject<T>(key: string): T | null {\n    const value = this.storage.get(key);\n    if (!value) return null;\n\n    try {\n      return JSON.parse(value) as T;\n    } catch (error) {\n      console.error(\"Error parsing stored object:\", error);\n      return null;\n    }\n  }\n\n  /**\n   * Gets country code from storage or cookies\n   * @returns The country code or null if not found\n   */\n  public getCountryCode(): string | null {\n    // First try to get from localStorage\n    const storedCountry = this.getItem(STORAGE_KEYS.COUNTRY);\n    if (storedCountry) return storedCountry;\n\n    // If not in localStorage, try to get from cookies\n    const cookieCountry = getCookie(\"country\");\n\n    // If found in cookies, store in localStorage for future use\n    if (cookieCountry) {\n      this.setItem(STORAGE_KEYS.COUNTRY, cookieCountry);\n      return cookieCountry;\n    }\n\n    return null;\n  }\n\n  /**\n   * Sets the country code in storage\n   * @param countryCode The country code to store\n   */\n  public setCountryCode(countryCode: string): void {\n    this.setItem(STORAGE_KEYS.COUNTRY, countryCode);\n  }\n\n  /**\n   * Gets locale from storage or cookies\n   * @returns The locale or null if not found\n   */\n  public getLocale(): string | null {\n    // First try to get from localStorage\n    const storedLocale = this.getItem(STORAGE_KEYS.LOCALE);\n    if (storedLocale) return storedLocale;\n\n    // If not in localStorage, try to get from cookies\n    const cookieLocale = getCookie(\"locale\");\n\n    // If found in cookies, store in localStorage for future use\n    if (cookieLocale) {\n      this.setItem(STORAGE_KEYS.LOCALE, cookieLocale);\n      return cookieLocale;\n    }\n\n    return \"EN\";\n  }\n\n  /**\n   * Sets the locale in storage\n   * @param locale The locale to store\n   */\n  public setLocale(locale: string): void {\n    this.setItem(STORAGE_KEYS.LOCALE, locale);\n  }\n}\n","// Export implementations\nexport { STORAGE_KEYS } from \"./StorageKeys\";\nexport { StorageManager } from \"./StorageManager\";\n\n// Export utilities\nexport { getCookie, isBrowser } from \"./utils/environment\";\n\n// Define constant keys for country and locale cookies\nexport const COOKIE_KEYS = {\n  COUNTRY: \"country\",\n  LOCALE: \"locale\",\n};\n"]}