UNPKG

@fluid-app/storage-manager

Version:

Storage management utilities for Fluid Commerce applications

1 lines 9.65 kB
{"version":3,"sources":["../src/StorageKeys.ts","../src/utils/environment.ts","../src/StorageManager.ts","../src/index.ts"],"names":[],"mappings":";;;AAGO,IAAM,YAAe,GAAA;AAAA,EAC1B,IAAM,EAAA,SAAA;AAAA,EACN,WAAa,EAAA,gBAAA;AAAA,EACb,OAAS,EAAA,YAAA;AAAA,EACT,WAAa,EAAA,gBAAA;AAAA,EACb,OAAS,EAAA,YAAA;AAAA,EACT,MAAQ,EAAA,WAAA;AAAA,EACR,eAAiB,EAAA,oBAAA;AAAA,EACjB,iBAAmB,EAAA,sBAAA;AAAA,EACnB,WAAa,EAAA,gBAAA;AAAA,EACb,iBAAmB,EAAA;AACrB;;;ACXO,IAAM,SACX,GAAA,OAAO,MAAW,KAAA,WAAA,IAAe,OAAO,QAAa,KAAA;AAO1C,IAAA,SAAA,GAAY,CAAC,IAAgC,KAAA;AACxD,EAAI,IAAA,CAAC,WAAkB,OAAA,IAAA;AAEvB,EAAI,IAAA;AACF,IAAA,MAAM,OAAU,GAAA,QAAA,CAAS,MAAO,CAAA,KAAA,CAAM,GAAG,CAAA;AACzC,IAAA,KAAA,MAAW,aAAa,OAAS,EAAA;AAC/B,MAAM,MAAA,MAAA,GAAS,UAAU,IAAK,EAAA;AAC9B,MAAA,IAAI,MAAO,CAAA,UAAA,CAAW,IAAO,GAAA,GAAG,CAAG,EAAA;AACjC,QAAA,OAAO,MAAO,CAAA,SAAA,CAAU,IAAK,CAAA,MAAA,GAAS,CAAC,CAAA;AAAA;AACzC;AAEF,IAAO,OAAA,IAAA;AAAA,WACA,KAAO,EAAA;AACd,IAAQ,OAAA,CAAA,KAAA,CAAM,yBAAyB,KAAK,CAAA;AAC5C,IAAO,OAAA,IAAA;AAAA;AAEX;AAMO,IAAM,kBAAkB,MAAM;AACnC,EAAO,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAML,GAAA,EAAK,CAAC,GAA+B,KAAA;AACnC,MAAI,IAAA,CAAC,WAAkB,OAAA,IAAA;AACvB,MAAI,IAAA;AACF,QAAO,OAAA,YAAA,CAAa,QAAQ,GAAG,CAAA;AAAA,eACxB,KAAO,EAAA;AACd,QAAQ,OAAA,CAAA,KAAA,CAAM,iCAAiC,KAAK,CAAA;AACpD,QAAO,OAAA,IAAA;AAAA;AACT,KACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,GAAA,EAAK,CAAC,GAAA,EAAa,KAAwB,KAAA;AACzC,MAAA,IAAI,CAAC,SAAW,EAAA;AAChB,MAAI,IAAA;AACF,QAAa,YAAA,CAAA,OAAA,CAAQ,KAAK,KAAK,CAAA;AAAA,eACxB,KAAO,EAAA;AACd,QAAQ,OAAA,CAAA,KAAA,CAAM,kCAAkC,KAAK,CAAA;AAAA;AACvD,KACF;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,MAAA,EAAQ,CAAC,GAAsB,KAAA;AAC7B,MAAA,IAAI,CAAC,SAAW,EAAA;AAChB,MAAI,IAAA;AACF,QAAA,YAAA,CAAa,WAAW,GAAG,CAAA;AAAA,eACpB,KAAO,EAAA;AACd,QAAQ,OAAA,CAAA,KAAA,CAAM,qCAAqC,KAAK,CAAA;AAAA;AAC1D;AACF,GACF;AACF,CAAA;;;ACvEO,IAAM,iBAAN,MAAqB;AAAA,EAClB,UAAU,eAAgB,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO3B,OAAA,CAAQ,KAAa,KAAqB,EAAA;AAC/C,IAAK,IAAA,CAAA,OAAA,CAAQ,GAAI,CAAA,GAAA,EAAK,KAAK,CAAA;AAAA;AAC7B;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,QAAQ,GAA4B,EAAA;AACzC,IAAO,OAAA,IAAA,CAAK,OAAQ,CAAA,GAAA,CAAI,GAAG,CAAA;AAAA;AAC7B;AAAA;AAAA;AAAA;AAAA,EAMO,WAAW,GAAmB,EAAA;AACnC,IAAK,IAAA,CAAA,OAAA,CAAQ,OAAO,GAAG,CAAA;AAAA;AACzB;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,SAAA,CAAa,KAAa,KAAgB,EAAA;AAC/C,IAAA,IAAA,CAAK,QAAQ,GAAI,CAAA,GAAA,EAAK,IAAK,CAAA,SAAA,CAAU,KAAK,CAAC,CAAA;AAAA;AAC7C;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,UAAa,GAAuB,EAAA;AACzC,IAAA,MAAM,KAAQ,GAAA,IAAA,CAAK,OAAQ,CAAA,GAAA,CAAI,GAAG,CAAA;AAClC,IAAI,IAAA,CAAC,OAAc,OAAA,IAAA;AAEnB,IAAI,IAAA;AACF,MAAO,OAAA,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA,aAChB,KAAO,EAAA;AACd,MAAQ,OAAA,CAAA,KAAA,CAAM,gCAAgC,KAAK,CAAA;AACnD,MAAO,OAAA,IAAA;AAAA;AACT;AACF;AAAA;AAAA;AAAA;AAAA,EAMO,cAAgC,GAAA;AAErC,IAAA,MAAM,aAAgB,GAAA,IAAA,CAAK,OAAQ,CAAA,YAAA,CAAa,OAAO,CAAA;AACvD,IAAA,IAAI,eAAsB,OAAA,aAAA;AAG1B,IAAM,MAAA,aAAA,GAAgB,UAAU,SAAS,CAAA;AAGzC,IAAA,IAAI,aAAe,EAAA;AACjB,MAAK,IAAA,CAAA,OAAA,CAAQ,YAAa,CAAA,OAAA,EAAS,aAAa,CAAA;AAChD,MAAO,OAAA,aAAA;AAAA;AAGT,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA,EAMO,eAAe,WAA2B,EAAA;AAC/C,IAAK,IAAA,CAAA,OAAA,CAAQ,YAAa,CAAA,OAAA,EAAS,WAAW,CAAA;AAAA;AAChD;AAAA;AAAA;AAAA;AAAA,EAMO,SAA2B,GAAA;AAEhC,IAAA,MAAM,YAAe,GAAA,IAAA,CAAK,OAAQ,CAAA,YAAA,CAAa,MAAM,CAAA;AACrD,IAAA,IAAI,cAAqB,OAAA,YAAA;AAGzB,IAAM,MAAA,YAAA,GAAe,UAAU,QAAQ,CAAA;AAGvC,IAAA,IAAI,YAAc,EAAA;AAChB,MAAK,IAAA,CAAA,OAAA,CAAQ,YAAa,CAAA,MAAA,EAAQ,YAAY,CAAA;AAC9C,MAAO,OAAA,YAAA;AAAA;AAGT,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA,EAMO,UAAU,MAAsB,EAAA;AACrC,IAAK,IAAA,CAAA,OAAA,CAAQ,YAAa,CAAA,MAAA,EAAQ,MAAM,CAAA;AAAA;AAE5C;;;AC9GO,IAAM,WAAc,GAAA;AAAA,EACzB,OAAS,EAAA,SAAA;AAAA,EACT,MAAQ,EAAA;AACV","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"]}