@formo/analytics 1.18.0 → 1.19.0
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/cjs/src/lib/event/EventFactory.d.ts.map +1 -1
- package/dist/cjs/src/lib/event/EventFactory.js +3 -3
- package/dist/cjs/src/lib/event/EventFactory.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/src/lib/event/EventFactory.d.ts.map +1 -1
- package/dist/esm/src/lib/event/EventFactory.js +3 -3
- package/dist/esm/src/lib/event/EventFactory.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.min.js","mappings":"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","sources":["webpack://FormoAnalytics/webpack/universalModuleDefinition","webpack://FormoAnalytics/./src/utils/chain.ts","webpack://FormoAnalytics/./src/lib/ramda/internal/_isPlaceholder.ts","webpack://FormoAnalytics/./src/lib/ramda/internal/_curry2.ts","webpack://FormoAnalytics/./src/lib/ramda/internal/_has.ts","webpack://FormoAnalytics/./src/lib/queue/EventQueue.ts","webpack://FormoAnalytics/./src/validators/network.ts","webpack://FormoAnalytics/./src/FormoAnalytics.ts","webpack://FormoAnalytics/./src/utils/address.ts","webpack://FormoAnalytics/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://FormoAnalytics/./src/lib/storage/StorageManager.ts","webpack://FormoAnalytics/./src/lib/ramda/mergeDeepRight.ts","webpack://FormoAnalytics/./node_modules/@noble/curves/abstract/utils.js","webpack://FormoAnalytics/./src/lib/storage/built-in/memory.ts","webpack://FormoAnalytics/./node_modules/ethereum-cryptography/keccak.js","webpack://FormoAnalytics/./src/lib/ramda/internal/_isObject.ts","webpack://FormoAnalytics/./src/lib/storage/built-in/blueprint.ts","webpack://FormoAnalytics/./src/constants/events.ts","webpack://FormoAnalytics/./node_modules/mipd/dist/cjs/utils.js","webpack://FormoAnalytics/./node_modules/@noble/hashes/_u64.js","webpack://FormoAnalytics/./node_modules/ethereum-cryptography/utils.js","webpack://FormoAnalytics/./src/lib/logger/Logger.ts","webpack://FormoAnalytics/./node_modules/@noble/hashes/sha3.js","webpack://FormoAnalytics/./src/initialization.ts","webpack://FormoAnalytics/./src/validators/uint8array.ts","webpack://FormoAnalytics/./node_modules/fetch-retry/dist/fetch-retry.umd.js","webpack://FormoAnalytics/./src/constants/config.ts","webpack://FormoAnalytics/./src/lib/queue/index.ts","webpack://FormoAnalytics/./src/types/index.ts","webpack://FormoAnalytics/./src/lib/ramda/mergeWithKey.ts","webpack://FormoAnalytics/./node_modules/mipd/dist/cjs/index.js","webpack://FormoAnalytics/./src/lib/ramda/internal/_curry3.ts","webpack://FormoAnalytics/./src/utils/converter.ts","webpack://FormoAnalytics/./src/lib/ramda/internal/_curry1.ts","webpack://FormoAnalytics/./src/lib/fetch.ts","webpack://FormoAnalytics/./src/types/events.ts","webpack://FormoAnalytics/./src/lib/version.ts","webpack://FormoAnalytics/./src/validators/object.ts","webpack://FormoAnalytics/./node_modules/react/jsx-runtime.js","webpack://FormoAnalytics/./node_modules/@noble/hashes/crypto.js","webpack://FormoAnalytics/./src/FormoAnalyticsProvider.tsx","webpack://FormoAnalytics/./node_modules/react/cjs/react.production.min.js","webpack://FormoAnalytics/./src/utils/generate.ts","webpack://FormoAnalytics/./src/lib/event/utils.ts","webpack://FormoAnalytics/./src/validators/checks.ts","webpack://FormoAnalytics/./src/validators/address.ts","webpack://FormoAnalytics/./src/validators/string.ts","webpack://FormoAnalytics/./src/lib/storage/built-in/web.ts","webpack://FormoAnalytics/./src/utils/timestamp.ts","webpack://FormoAnalytics/./src/utils/base.ts","webpack://FormoAnalytics/./node_modules/mipd/dist/cjs/store.js","webpack://FormoAnalytics/./src/constants/index.ts","webpack://FormoAnalytics/./src/lib/event/EventManager.ts","webpack://FormoAnalytics/./src/validators/agent.ts","webpack://FormoAnalytics/./node_modules/react/index.js","webpack://FormoAnalytics/./src/lib/storage/index.ts","webpack://FormoAnalytics/./src/constants/base.ts","webpack://FormoAnalytics/./src/lib/event/constants.ts","webpack://FormoAnalytics/./src/lib/storage/constant.ts","webpack://FormoAnalytics/./node_modules/@noble/hashes/_assert.js","webpack://FormoAnalytics/./src/lib/event/index.ts","webpack://FormoAnalytics/./src/index.ts","webpack://FormoAnalytics/./src/lib/logger/index.ts","webpack://FormoAnalytics/./src/lib/event/EventFactory.ts","webpack://FormoAnalytics/./src/lib/storage/built-in/cookie.ts","webpack://FormoAnalytics/./src/lib/index.ts","webpack://FormoAnalytics/./node_modules/@noble/hashes/utils.js","webpack://FormoAnalytics/./src/utils/index.ts","webpack://FormoAnalytics/./src/lib/ramda/mergeDeepWithKey.ts","webpack://FormoAnalytics/./src/validators/index.ts","webpack://FormoAnalytics/webpack/bootstrap","webpack://FormoAnalytics/webpack/runtime/global","webpack://FormoAnalytics/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"FormoAnalytics\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"FormoAnalytics\"] = factory();\n\telse\n\t\troot[\"FormoAnalytics\"] = factory();\n})(self, () => {\nreturn ","/**\n * Parses a chainId string (hex or decimal) to a number.\n * @param chainId - The chainId as a string (e.g., '0x1', '1')\n * @returns The chainId as a number\n */\nexport function parseChainId(chainId: string): number {\n if (typeof chainId !== 'string') return 0;\n if (chainId.startsWith('0x') || chainId.startsWith('0X')) {\n return parseInt(chainId, 16);\n }\n return parseInt(chainId, 10);\n} ","export default function _isPlaceholder(a: any) {\n return (\n a != null && typeof a === \"object\" && a[\"@@functional/placeholder\"] === true\n );\n}\n","import _curry1 from \"./_curry1\";\nimport _isPlaceholder from \"./_isPlaceholder\";\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn: Function) {\n return function f2(a: any, b: any) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a)\n ? f2\n : _curry1(function (_b: any) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b)\n ? f2\n : _isPlaceholder(a)\n ? _curry1(function (_a: any) {\n return fn(_a, b);\n })\n : _isPlaceholder(b)\n ? _curry1(function (_b: any) {\n return fn(a, _b);\n })\n : fn(a, b);\n }\n };\n}\n","export default function _has(prop: any, obj: any) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n","import { isNetworkError } from \"../../validators\";\nimport { IFormoEvent, IFormoEventPayload } from \"../../types\";\nimport {\n clampNumber,\n getActionDescriptor,\n hash,\n millisecondsToSecond,\n toDateHourMinute,\n} from \"../../utils\";\nimport { logger } from \"../logger\";\nimport { EVENTS_API_REQUEST_HEADER } from \"../../constants\";\nimport fetch from \"../fetch\";\nimport { IEventQueue } from \"./type\";\nconst noop = () => {};\n\ntype QueueItem = {\n message: IFormoEventPayload;\n callback: (...args: any) => any;\n};\n\ntype IFormoEventFlushPayload = IFormoEventPayload & {\n sent_at: string;\n};\n\ntype Options = {\n url: string;\n flushAt?: number;\n flushInterval?: number;\n host?: string;\n retryCount?: number;\n errorHandler?: any;\n maxQueueSize?: number;\n};\n\nconst DEFAULT_RETRY = 3;\nconst MAX_RETRY = 5;\nconst MIN_RETRY = 1;\n\nconst DEFAULT_FLUSH_AT = 20;\nconst MAX_FLUSH_AT = 20;\nconst MIN_FLUSH_AT = 1;\n\nconst DEFAULT_QUEUE_SIZE = 1_024 * 500; // 500kB\nconst MAX_QUEUE_SIZE = 1_024 * 500; // 500kB\nconst MIN_QUEUE_SIZE = 200; // 200 bytes\n\nconst DEFAULT_FLUSH_INTERVAL = 1_000 * 30; // 1 MINUTE\nconst MAX_FLUSH_INTERVAL = 1_000 * 300; // 5 MINUTES\nconst MIN_FLUSH_INTERVAL = 1_000 * 10; // 10 SECONDS\n\nexport class EventQueue implements IEventQueue {\n private writeKey: string;\n private url: string;\n private queue: QueueItem[] = [];\n private timer: null | NodeJS.Timeout;\n private flushAt: number;\n private flushIntervalMs: number;\n private flushed: boolean;\n private maxQueueSize: number; // min 200 bytes, max 500kB\n private errorHandler: any;\n private retryCount: number;\n private pendingFlush: Promise<any> | null;\n private payloadHashes: Set<string> = new Set();\n\n constructor(writeKey: string, options: Options) {\n options = options || {};\n\n this.queue = [];\n this.writeKey = writeKey;\n this.url = options.url;\n this.retryCount = clampNumber(\n options.retryCount || DEFAULT_RETRY,\n MAX_RETRY,\n MIN_RETRY\n );\n this.flushAt = clampNumber(\n options.flushAt || DEFAULT_FLUSH_AT,\n MAX_FLUSH_AT,\n MIN_FLUSH_AT\n );\n this.maxQueueSize = clampNumber(\n options.maxQueueSize || DEFAULT_QUEUE_SIZE,\n MAX_QUEUE_SIZE,\n MIN_QUEUE_SIZE\n );\n this.flushIntervalMs = clampNumber(\n options.flushInterval || DEFAULT_FLUSH_INTERVAL,\n MAX_FLUSH_INTERVAL,\n MIN_FLUSH_INTERVAL\n );\n this.flushed = true;\n this.errorHandler = options.errorHandler;\n this.pendingFlush = null;\n this.timer = null;\n\n this.onPageLeave(async (isAccessible: boolean) => {\n if (isAccessible === false) {\n await this.flush();\n }\n });\n }\n\n //#region Public functions\n private async generateMessageId(event: IFormoEvent): Promise<string> {\n const formattedTimestamp = toDateHourMinute(new Date(event.original_timestamp));\n const eventForHashing = { ...event, original_timestamp: formattedTimestamp };\n const eventString = JSON.stringify(eventForHashing);\n return hash(eventString);\n }\n\n async enqueue(event: IFormoEvent, callback?: (...args: any) => void) {\n callback = callback || noop;\n\n const message_id = await this.generateMessageId(event);\n // check if the message already exists\n if (await this.isDuplicate(message_id)) {\n logger.warn(\n `Event already enqueued, try again after ${millisecondsToSecond(\n this.flushIntervalMs\n )} seconds.`\n );\n return;\n }\n\n this.queue.push({\n message: { ...event, message_id },\n callback,\n });\n\n logger.log(\n `Event enqueued: ${getActionDescriptor(event.type, event.properties)}`\n );\n\n if (!this.flushed) {\n this.flushed = true;\n this.flush();\n return;\n }\n\n const hasReachedFlushAt = this.queue.length >= this.flushAt;\n const hasReachedQueueSize =\n this.queue.reduce((acc, item) => acc + JSON.stringify(item).length, 0) >=\n this.maxQueueSize;\n\n if (hasReachedFlushAt || hasReachedQueueSize) {\n this.flush();\n return;\n }\n\n if (this.flushIntervalMs && !this.timer) {\n this.timer = setTimeout(this.flush.bind(this), this.flushIntervalMs);\n }\n }\n\n async flush(callback?: (...args: any) => void) {\n callback = callback || noop;\n\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n\n if (!this.queue.length) {\n callback();\n return Promise.resolve();\n }\n\n try {\n if (this.pendingFlush) {\n await this.pendingFlush;\n }\n } catch (err) {\n this.pendingFlush = null;\n throw err;\n }\n\n const items = this.queue.splice(0, this.flushAt);\n this.payloadHashes.clear();\n \n // Generate sent_at once for the entire batch\n const sentAt = new Date().toISOString();\n const data: IFormoEventFlushPayload[] = items.map((item) => ({\n ...item.message,\n sent_at: sentAt\n }));\n\n const done = (err?: Error) => {\n items.forEach(({ message, callback }) => callback(err, message, data));\n callback(err, data);\n };\n\n return (this.pendingFlush = fetch(`${this.url}`, {\n headers: EVENTS_API_REQUEST_HEADER(this.writeKey),\n method: \"POST\",\n body: JSON.stringify(data),\n keepalive: true,\n retries: this.retryCount,\n retryDelay: (attempt) => Math.pow(2, attempt) * 1_000, // exponential backoff\n retryOn: (_, error) => this.isErrorRetryable(error),\n })\n .then(() => {\n done();\n return Promise.resolve(data);\n })\n .catch((err) => {\n if (typeof this.errorHandler === \"function\") {\n done(err);\n return this.errorHandler(err);\n }\n\n if (err.response) {\n const error = new Error(err.response.statusText);\n done(error);\n throw error;\n }\n\n done(err);\n throw err;\n }));\n }\n\n //#region Utility functions\n private isErrorRetryable(error: any) {\n // Retry Network Errors.\n if (isNetworkError(error)) return true;\n\n // Cannot determine if the request can be retried\n if (!error?.response) return false;\n\n // Retry Server Errors (5xx).\n if (error?.response?.status >= 500 && error?.response?.status <= 599)\n return true;\n\n // Retry if rate limited.\n if (error?.response?.status === 429) return true;\n\n return false;\n }\n\n private async isDuplicate(eventId: string) {\n // check if exists a message with identical payload within 1 minute\n if (this.payloadHashes.has(eventId)) return true;\n\n this.payloadHashes.add(eventId);\n return false;\n }\n\n private onPageLeave = (callback: (isAccessible: boolean) => void) => {\n // To ensure the callback is only called once even if more than one events\n // are fired at once.\n let pageLeft = false;\n let isAccessible = false;\n\n function handleOnLeave() {\n if (pageLeft) {\n return;\n }\n\n pageLeft = true;\n\n callback(isAccessible);\n\n // Reset pageLeft on the next tick\n // to ensure callback executes for other listeners\n // when closing an inactive browser tab.\n setTimeout(() => {\n pageLeft = false;\n }, 0);\n }\n\n // Catches the unloading of the page (e.g., closing the tab or navigating away).\n // Includes user actions like clicking a link, entering a new URL,\n // refreshing the page, or closing the browser tab\n // Note that 'pagehide' is not supported in IE.\n // So, this is a fallback.\n (globalThis as typeof window).addEventListener(\"beforeunload\", () => {\n isAccessible = false;\n handleOnLeave();\n });\n\n (globalThis as typeof window).addEventListener(\"blur\", () => {\n isAccessible = true;\n handleOnLeave();\n });\n\n (globalThis as typeof window).addEventListener(\"focus\", () => {\n pageLeft = false;\n });\n\n // Catches the page being hidden, including scenarios like closing the tab.\n document.addEventListener(\"pagehide\", () => {\n isAccessible = document.visibilityState === \"hidden\";\n handleOnLeave();\n });\n\n // Catches visibility changes, such as switching tabs or minimizing the browser.\n document.addEventListener(\"visibilitychange\", () => {\n isAccessible = true;\n if (document.visibilityState === \"hidden\") {\n handleOnLeave();\n } else {\n pageLeft = false;\n }\n });\n };\n}\n","const objectToString = Object.prototype.toString;\n\nconst isError = (value: any) => objectToString.call(value) === \"[object Error]\";\n\nconst errorMessages = new Set([\n \"network error\", // Chrome\n \"Failed to fetch\", // Chrome\n \"NetworkError when attempting to fetch resource.\", // Firefox\n \"The Internet connection appears to be offline.\", // Safari 16\n \"Load failed\", // Safari 17+\n \"Network request failed\", // `cross-fetch`\n \"fetch failed\", // Undici (Node.js)\n \"terminated\", // Undici (Node.js)\n]);\n\nexport function isNetworkError(error: any) {\n const isValid =\n error &&\n isError(error) &&\n error.name === \"TypeError\" &&\n typeof error.message === \"string\";\n\n if (!isValid) {\n return false;\n }\n\n // We do an extra check for Safari 17+ as it has a very generic error message.\n // Network errors in Safari have no stack.\n if (error.message === \"Load failed\") {\n return error.stack === undefined;\n }\n\n return errorMessages.has(error.message);\n}\n","import { createStore, EIP6963ProviderDetail } from \"mipd\";\nimport {\n EVENTS_API_URL,\n EventType,\n LOCAL_ANONYMOUS_ID_KEY,\n SESSION_CURRENT_URL_KEY,\n SESSION_USER_ID_KEY,\n SESSION_WALLET_DETECTED_KEY,\n TEventType,\n} from \"./constants\";\nimport {\n cookie,\n EventManager,\n EventQueue,\n IEventManager,\n initStorageManager,\n logger,\n Logger,\n} from \"./lib\";\nimport {\n Address,\n ChainID,\n Config,\n EIP1193Provider,\n IFormoAnalytics,\n IFormoEventContext,\n IFormoEventProperties,\n Options,\n RequestArguments,\n RPCError,\n SignatureStatus,\n TrackingOptions,\n TransactionStatus,\n ConnectInfo,\n} from \"./types\";\nimport { isAddress, isLocalhost } from \"./validators\";\nimport { parseChainId } from \"./utils/chain\";\n\nexport class FormoAnalytics implements IFormoAnalytics {\n private _provider?: EIP1193Provider;\n private _providerListeners: Record<string, (...args: unknown[]) => void> = {};\n private session: FormoAnalyticsSession;\n private eventManager: IEventManager;\n private _providers: readonly EIP6963ProviderDetail[] = [];\n\n config: Config;\n currentChainId?: ChainID;\n currentAddress?: Address = \"\";\n currentUserId?: string = \"\";\n\n private constructor(\n public readonly writeKey: string,\n public options: Options = {}\n ) {\n this.config = {\n writeKey,\n };\n this.options = options;\n\n this.session = new FormoAnalyticsSession();\n this.currentUserId =\n (cookie().get(SESSION_USER_ID_KEY) as string) || undefined;\n\n this.identify = this.identify.bind(this);\n this.connect = this.connect.bind(this);\n this.disconnect = this.disconnect.bind(this);\n this.chain = this.chain.bind(this);\n this.signature = this.signature.bind(this);\n this.transaction = this.transaction.bind(this);\n this.detect = this.detect.bind(this);\n this.track = this.track.bind(this);\n\n // Initialize logger with configuration from options\n Logger.init({\n enabled: options.logger?.enabled || false,\n enabledLevels: options.logger?.levels || [],\n });\n\n this.eventManager = new EventManager(\n new EventQueue(this.config.writeKey, {\n url: EVENTS_API_URL,\n flushAt: options.flushAt,\n retryCount: options.retryCount,\n maxQueueSize: options.maxQueueSize,\n flushInterval: options.flushInterval,\n })\n );\n\n // TODO: replace with eip6963\n const provider = options.provider || window?.ethereum;\n if (provider) {\n this.trackProvider(provider);\n }\n\n this.trackPageHit();\n this.trackPageHits();\n }\n\n static async init(\n writeKey: string,\n options?: Options\n ): Promise<FormoAnalytics> {\n initStorageManager(writeKey);\n const analytics = new FormoAnalytics(writeKey, options);\n\n // Auto-detect wallet provider\n analytics._providers = await analytics.getProviders();\n await analytics.detectWallets(analytics._providers);\n\n return analytics;\n }\n\n /*\n Public SDK functions\n */\n\n /**\n * Emits a page visit event with the current URL information, fire on page change.\n * @param {string} category - The category of the page\n * @param {string} name - The name of the page\n * @param {Record<string, any>} properties - Additional properties to include\n * @param {Record<string, any>} context - Additional context to include\n * @param {(...args: unknown[]) => void} callback - Optional callback function\n * @returns {Promise<void>}\n */\n public async page(\n category?: string,\n name?: string,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n await this.trackPageHit(category, name, properties, context, callback);\n }\n\n /**\n * Reset the current user session.\n * @returns {void}\n */\n public reset(): void {\n this.currentUserId = undefined;\n cookie().remove(LOCAL_ANONYMOUS_ID_KEY);\n cookie().remove(SESSION_USER_ID_KEY);\n }\n\n /**\n * Emits a connect wallet event.\n * @param {ChainID} params.chainId\n * @param {Address} params.address\n * @param {IFormoEventProperties} properties\n * @param {IFormoEventContext} context\n * @param {(...args: unknown[]) => void} callback\n * @throws {Error} If chainId or address is empty\n * @returns {Promise<void>}\n */\n async connect(\n {\n chainId,\n address,\n }: {\n chainId: ChainID;\n address: Address;\n },\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n if (!chainId) {\n logger.warn(\"Connect: Chain ID cannot be empty\");\n }\n if (!address) {\n logger.warn(\"Connect: Address cannot be empty\");\n }\n\n this.currentChainId = chainId;\n this.currentAddress = address;\n\n await this.trackEvent(\n EventType.CONNECT,\n {\n chainId,\n address,\n },\n properties,\n context,\n callback\n );\n }\n\n /**\n * Emits a disconnect wallet event.\n * @param {ChainID} [params.chainId]\n * @param {Address} [params.address]\n * @param {IFormoEventProperties} properties\n * @param {IFormoEventContext} context\n * @param {(...args: unknown[]) => void} callback\n * @returns {Promise<void>}\n */\n async disconnect(\n params?: {\n chainId?: ChainID;\n address?: Address;\n },\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n const chainId = params?.chainId || this.currentChainId;\n const address = params?.address || this.currentAddress;\n\n await this.trackEvent(\n EventType.DISCONNECT,\n {\n chainId,\n address,\n },\n properties,\n context,\n callback\n );\n\n this.currentAddress = undefined;\n this.currentChainId = undefined;\n logger.info(\"Wallet disconnected: Cleared currentAddress and currentChainId\"); \n }\n\n /**\n * Emits a chain network change event.\n * @param {ChainID} params.chainId\n * @param {Address} params.address\n * @param {IFormoEventProperties} properties\n * @param {IFormoEventContext} context\n * @param {(...args: unknown[]) => void} callback\n * @throws {Error} If chainId is empty, zero, or not a valid number\n * @throws {Error} If no address is provided and no previous address is recorded\n * @returns {Promise<void>}\n */\n async chain(\n {\n chainId,\n address,\n }: {\n chainId: ChainID;\n address?: Address;\n },\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n if (!chainId || Number(chainId) === 0) {\n throw new Error(\"FormoAnalytics::chain: chainId cannot be empty or 0\");\n }\n if (isNaN(Number(chainId))) {\n throw new Error(\n \"FormoAnalytics::chain: chainId must be a valid decimal number\"\n );\n }\n if (!address && !this.currentAddress) {\n throw new Error(\n \"FormoAnalytics::chain: address was empty and no previous address has been recorded\"\n );\n }\n\n this.currentChainId = chainId;\n\n await this.trackEvent(\n EventType.CHAIN,\n {\n chainId,\n address: address || this.currentAddress,\n },\n properties,\n context,\n callback\n );\n }\n\n /**\n * Emits a signature event.\n * @param {SignatureStatus} params.status - requested, confirmed, rejected\n * @param {ChainID} params.chainId\n * @param {Address} params.address\n * @param {string} params.message\n * @param {string} params.signatureHash - only provided if status is confirmed\n * @param {IFormoEventProperties} properties\n * @param {IFormoEventContext} context\n * @param {(...args: unknown[]) => void} callback\n * @returns {Promise<void>}\n */\n async signature(\n {\n status,\n chainId,\n address,\n message,\n signatureHash,\n }: {\n status: SignatureStatus;\n chainId?: ChainID;\n address: Address;\n message: string;\n signatureHash?: string;\n },\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n await this.trackEvent(\n EventType.SIGNATURE,\n {\n status,\n chainId,\n address,\n message,\n ...(signatureHash && { signatureHash }),\n },\n properties,\n context,\n callback\n );\n }\n\n /**\n * Emits a transaction event.\n * @param {TransactionStatus} params.status - started, broadcasted, rejected\n * @param {ChainID} params.chainId\n * @param {Address} params.address\n * @param {string} params.data\n * @param {string} params.to\n * @param {string} params.value\n * @param {string} params.transactionHash - only provided if status is broadcasted\n * @param {IFormoEventProperties} properties\n * @param {IFormoEventContext} context\n * @param {(...args: unknown[]) => void} callback\n * @returns {Promise<void>}\n */\n async transaction(\n {\n status,\n chainId,\n address,\n data,\n to,\n value,\n transactionHash,\n }: {\n status: TransactionStatus;\n chainId: ChainID;\n address: Address;\n data?: string;\n to?: string;\n value?: string;\n transactionHash?: string;\n },\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n await this.trackEvent(\n EventType.TRANSACTION,\n {\n status,\n chainId,\n address,\n data,\n to,\n value,\n ...(transactionHash && { transactionHash }),\n },\n properties,\n context,\n callback\n );\n }\n\n /**\n * Emits an identify event with current wallet address and provider info.\n * @param {string} params.address\n * @param {string} params.userId\n * @param {string} params.rdns\n * @param {string} params.providerName\n * @param {IFormoEventProperties} properties\n * @param {IFormoEventContext} context\n * @param {(...args: unknown[]) => void} callback\n * @returns {Promise<void>}\n */\n async identify(\n params?: {\n address?: Address;\n providerName?: string;\n userId?: string;\n rdns?: string;\n },\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n try {\n if (!params) {\n // If no params provided, auto-identify\n logger.info(\n \"Auto-identifying with providers:\",\n this._providers.map((p) => p.info.name)\n );\n for (const providerDetail of this._providers) {\n const provider = providerDetail.provider;\n if (!provider) continue;\n\n try {\n const address = await this.getAddress(provider);\n if (address) {\n logger.info(\n \"Auto-identifying\",\n address,\n providerDetail.info.name,\n providerDetail.info.rdns\n );\n // NOTE: do not set this.currentAddress without explicit connect or identify\n await this.identify(\n {\n address,\n providerName: providerDetail.info.name,\n rdns: providerDetail.info.rdns,\n },\n properties,\n context,\n callback\n );\n }\n } catch (err) {\n logger.error(\n `Failed to identify provider ${providerDetail.info.name}:`,\n err\n );\n }\n }\n return;\n }\n\n // Explicit identify\n const { userId, address, providerName, rdns } = params;\n logger.info(\"Identify\", address, userId, providerName, rdns);\n if (address) this.currentAddress = address;\n if (userId) {\n this.currentUserId = userId;\n cookie().set(SESSION_USER_ID_KEY, userId);\n }\n\n await this.trackEvent(\n EventType.IDENTIFY,\n {\n address,\n providerName,\n userId,\n rdns,\n },\n properties,\n context,\n callback\n );\n } catch (e) {\n logger.log(\"identify error\", e);\n }\n }\n\n /**\n * Emits a detect wallet event with current wallet provider info.\n * @param {string} params.providerName\n * @param {string} params.rdns\n * @param {IFormoEventProperties} properties\n * @param {IFormoEventContext} context\n * @param {(...args: unknown[]) => void} callback\n * @returns {Promise<void>}\n */\n async detect(\n {\n providerName,\n rdns,\n }: {\n providerName: string;\n rdns: string;\n },\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n if (this.session.isWalletDetected(rdns))\n return logger.warn(\n `Detect: Wallet ${providerName} already detected in this session`\n );\n\n this.session.markWalletDetected(rdns);\n await this.trackEvent(\n EventType.DETECT,\n {\n providerName,\n rdns,\n },\n properties,\n context,\n callback\n );\n }\n\n /**\n * Emits a custom user event with custom properties.\n * @param {string} event The name of the tracked event\n * @param {IFormoEventProperties} properties\n * @param {IFormoEventContext} context\n * @param {(...args: unknown[]) => void} callback\n * @returns {Promise<void>}\n */\n async track(\n event: string,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n await this.trackEvent(\n EventType.TRACK,\n { event },\n properties,\n context,\n callback\n );\n }\n\n /*\n SDK tracking and event listener functions\n */\n\n private trackProvider(provider: EIP1193Provider): void {\n logger.info(\"trackProvider\", provider);\n try {\n if (provider === this._provider) {\n logger.warn(\"TrackProvider: Provider already tracked.\");\n return;\n }\n\n this.currentChainId = undefined;\n this.currentAddress = undefined;\n\n if (this._provider) {\n const actions = Object.keys(this._providerListeners);\n for (const action of actions) {\n this._provider.removeListener(\n action,\n this._providerListeners[action]\n );\n delete this._providerListeners[action];\n }\n }\n\n this._provider = provider;\n\n // Register listeners for web3 provider events\n this.registerAccountsChangedListener();\n this.registerChainChangedListener();\n this.registerConnectListener();\n this.registerRequestListeners();\n } catch (error) {\n logger.error(\"Error tracking provider:\", error);\n }\n }\n\n private registerAccountsChangedListener(): void {\n logger.info(\"registerAccountsChangedListener\");\n const listener = (...args: unknown[]) =>\n this.onAccountsChanged(args[0] as string[]);\n\n this._provider?.on(\"accountsChanged\", listener);\n this._providerListeners[\"accountsChanged\"] = listener;\n }\n\n private async onAccountsChanged(accounts: Address[]): Promise<void> {\n logger.info(\"onAccountsChanged\", accounts);\n if (accounts.length === 0) {\n // Handle wallet disconnect\n await this.disconnect();\n return;\n }\n const address = accounts[0];\n if (address === this.currentAddress) {\n // We have already reported this address\n return;\n }\n // Handle wallet connect\n this.currentAddress = address;\n this.currentChainId = await this.getCurrentChainId();\n this.connect({ chainId: this.currentChainId, address });\n }\n\n private registerChainChangedListener(): void {\n logger.info(\"registerChainChangedListener\");\n const listener = (...args: unknown[]) =>\n this.onChainChanged(args[0] as string);\n this.provider?.on(\"chainChanged\", listener);\n this._providerListeners[\"chainChanged\"] = listener;\n }\n\n private async onChainChanged(chainIdHex: string): Promise<void> {\n logger.info(\"onChainChanged\", chainIdHex);\n this.currentChainId = parseChainId(chainIdHex);\n if (!this.currentAddress) {\n if (!this.provider) {\n logger.info(\n \"OnChainChanged: Provider not found. CHAIN_CHANGED not reported\"\n );\n return Promise.resolve();\n }\n\n const address = await this.getAddress();\n if (!address) {\n logger.info(\n \"OnChainChanged: Unable to fetch or store connected address\"\n );\n return Promise.resolve();\n }\n this.currentAddress = address;\n }\n\n // Proceed only if the address exists\n if (this.currentAddress) {\n return this.chain({\n chainId: this.currentChainId,\n address: this.currentAddress,\n });\n } else {\n logger.info(\n \"OnChainChanged: Current connected address is null despite fetch attempt\"\n );\n }\n }\n\n private registerConnectListener(): void {\n logger.info(\"registerConnectListener\");\n const listener = (...args: unknown[]) => {\n const connection: ConnectInfo = args[0] as ConnectInfo;\n this.onConnected(connection);\n };\n this._provider?.on(\"connect\", listener);\n this._providerListeners[\"connect\"] = listener;\n }\n\n private async onConnected(connection: ConnectInfo): Promise<void> {\n logger.info(\"onConnected\", connection);\n try {\n if (!connection || typeof connection.chainId !== 'string') return;\n const chainId = parseChainId(connection.chainId);\n const address = await this.getAddress();\n if (chainId !== null && chainId !== undefined && address) {\n this.connect({ chainId, address });\n }\n } catch (e) {\n logger.error(\"Error handling connect event\", e);\n }\n }\n\n private registerRequestListeners(): void {\n logger.info(\"registerRequestListeners\");\n if (!this.provider) {\n logger.error(\"Provider not found for request (signature, transaction) tracking\");\n return;\n }\n if (\n Object.getOwnPropertyDescriptor(this.provider, \"request\")?.writable ===\n false\n ) {\n logger.warn(\"Provider.request is not writable\");\n return;\n }\n\n const request = this.provider.request.bind(this.provider);\n\n this.provider.request = async <T>({\n method,\n params,\n }: RequestArguments): Promise<T | null | undefined> => {\n // Handle Signatures\n if (\n Array.isArray(params) &&\n [\"eth_signTypedData_v4\", \"personal_sign\"].includes(method)\n ) {\n // Fire-and-forget tracking\n (async () => {\n try {\n this.signature({\n status: SignatureStatus.REQUESTED,\n ...this.buildSignatureEventPayload(method, params),\n });\n } catch (e) {\n logger.error(\"Formo: Failed to track signature request\", e);\n }\n })();\n\n try {\n const response = (await request({ method, params })) as T;\n (async () => {\n try {\n if (response) {\n this.signature({\n status: SignatureStatus.CONFIRMED,\n ...this.buildSignatureEventPayload(method, params, response),\n });\n }\n } catch (e) {\n logger.error(\"Formo: Failed to track signature confirmation\", e);\n }\n })();\n return response;\n } catch (error) {\n (async () => {\n try {\n const rpcError = error as RPCError;\n if (rpcError && rpcError?.code === 4001) {\n this.signature({\n status: SignatureStatus.REJECTED,\n ...this.buildSignatureEventPayload(method, params),\n });\n }\n } catch (e) {\n logger.error(\"Formo: Failed to track signature rejection\", e);\n }\n })();\n throw error;\n }\n }\n\n // Handle Transactions\n // TODO: Support eip5792.xyz calls\n if (\n Array.isArray(params) &&\n method === \"eth_sendTransaction\" &&\n params[0]\n ) {\n (async () => {\n try {\n const payload = await this.buildTransactionEventPayload(params);\n this.transaction({ status: TransactionStatus.STARTED, ...payload });\n } catch (e) {\n logger.error(\"Formo: Failed to track transaction start\", e);\n }\n })();\n\n try {\n const transactionHash = (await request({\n method,\n params,\n })) as string;\n\n (async () => {\n try {\n const payload = await this.buildTransactionEventPayload(params);\n this.transaction({\n status: TransactionStatus.BROADCASTED,\n ...payload,\n transactionHash,\n });\n\n // Start async polling for transaction receipt\n this.pollTransactionReceipt(transactionHash, payload);\n } catch (e) {\n logger.error(\n \"Formo: Failed to track transaction broadcast\",\n e\n );\n }\n })();\n\n return transactionHash as unknown as T;\n } catch (error) {\n (async () => {\n try {\n const rpcError = error as RPCError;\n if (rpcError && rpcError?.code === 4001) {\n const payload = await this.buildTransactionEventPayload(\n params\n );\n this.transaction({\n status: TransactionStatus.REJECTED,\n ...payload,\n });\n }\n } catch (e) {\n logger.error(\"Formo: Failed to track transaction rejection\", e);\n }\n })();\n throw error;\n }\n }\n\n return request({ method, params });\n };\n }\n\n private async onLocationChange(): Promise<void> {\n const currentUrl = cookie().get(SESSION_CURRENT_URL_KEY);\n\n if (currentUrl !== window.location.href) {\n cookie().set(SESSION_CURRENT_URL_KEY, window.location.href);\n this.trackPageHit();\n }\n }\n\n private async trackPageHits(): Promise<void> {\n const oldPushState = history.pushState;\n history.pushState = function pushState(...args) {\n const ret = oldPushState.apply(this, args);\n window.dispatchEvent(new window.Event(\"locationchange\"));\n return ret;\n };\n\n const oldReplaceState = history.replaceState;\n history.replaceState = function replaceState(...args) {\n const ret = oldReplaceState.apply(this, args);\n window.dispatchEvent(new window.Event(\"locationchange\"));\n return ret;\n };\n\n window.addEventListener(\"popstate\", () => this.onLocationChange());\n window.addEventListener(\"locationchange\", () => this.onLocationChange());\n }\n\n private async trackPageHit(\n category?: string,\n name?: string,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n if (!this.shouldTrack()) {\n logger.info(\n \"Track page hit: Skipping event due to tracking configuration\"\n );\n return;\n }\n\n setTimeout(async () => {\n this.trackEvent(\n EventType.PAGE,\n {\n category,\n name,\n },\n properties,\n context,\n callback\n );\n }, 300);\n }\n\n private async trackEvent(\n type: TEventType,\n payload?: any,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n try {\n if (!this.shouldTrack()) {\n logger.info(`Skipping ${type} event due to tracking configuration`);\n return;\n }\n\n this.eventManager.addEvent(\n {\n type,\n ...payload,\n properties,\n context,\n callback,\n },\n this.currentAddress,\n this.currentUserId\n );\n } catch (error) {\n logger.error(\"Error tracking event:\", error);\n }\n }\n\n /**\n * Determines if tracking should be enabled based on configuration\n * @returns {boolean} True if tracking should be enabled\n */\n private shouldTrack(): boolean {\n // Check if tracking is explicitly provided as a boolean\n if (typeof this.options.tracking === 'boolean') {\n return this.options.tracking;\n }\n \n // Handle object configuration with exclusion rules\n if (this.options.tracking !== null && \n typeof this.options.tracking === 'object' && \n !Array.isArray(this.options.tracking)) {\n const { \n excludeHosts = [],\n excludePaths = [], \n excludeChains = [] \n } = this.options.tracking as TrackingOptions;\n \n // Check hostname exclusions - use exact matching\n if (excludeHosts.length > 0 && typeof window !== 'undefined') {\n const hostname = window.location.hostname;\n if (excludeHosts.includes(hostname)) {\n return false;\n }\n }\n \n // Check path exclusions - use exact matching\n if (excludePaths.length > 0 && typeof window !== 'undefined') {\n const pathname = window.location.pathname;\n if (excludePaths.includes(pathname)) {\n return false;\n }\n }\n \n // Check chainId exclusions\n if (excludeChains.length > 0 && \n this.currentChainId && \n excludeChains.includes(this.currentChainId)) {\n return false;\n }\n \n // If nothing is excluded, tracking is enabled\n return true;\n }\n \n // Default behavior: track everywhere except localhost\n return !isLocalhost();\n }\n\n /*\n Utility functions\n */\n\n private async getProviders(): Promise<readonly EIP6963ProviderDetail[]> {\n const store = createStore();\n let providers = store.getProviders();\n store.subscribe((providerDetails) => {\n providers = providerDetails;\n this._providers = providers;\n });\n\n // Fallback to injected provider if no providers are found\n if (providers.length === 0) {\n this._providers = window?.ethereum ? [window.ethereum] : [];\n return this._providers;\n }\n this._providers = providers;\n return providers;\n }\n\n get providers(): readonly EIP6963ProviderDetail[] {\n return this._providers;\n }\n\n private async detectWallets(\n providers: readonly EIP6963ProviderDetail[]\n ): Promise<void> {\n try {\n for (const eip6963ProviderDetail of providers) {\n await this.detect({\n providerName: eip6963ProviderDetail?.info.name,\n rdns: eip6963ProviderDetail?.info.rdns,\n });\n }\n } catch (err) {\n logger.error(\"Error detect all wallets:\", err);\n }\n }\n\n get provider(): EIP1193Provider | undefined {\n return this._provider;\n }\n\n private async getAddress(\n provider?: EIP1193Provider\n ): Promise<Address | null> {\n if (this.currentAddress) return this.currentAddress;\n const p = provider || this.provider;\n if (!p) {\n logger.info(\"The provider is not set\");\n return null;\n }\n\n try {\n const accounts = await this.getAccounts(p);\n if (accounts && accounts.length > 0) {\n if (isAddress(accounts[0])) {\n return accounts[0];\n }\n }\n } catch (err) {\n logger.error(\"Failed to fetch accounts from provider:\", err);\n return null;\n }\n return null;\n }\n\n private async getAccounts(\n provider?: EIP1193Provider\n ): Promise<Address[] | null> {\n const p = provider || this.provider;\n try {\n const res: string[] | null | undefined = await p?.request({\n method: \"eth_accounts\",\n });\n if (!res || res.length === 0) return null;\n return res.filter((e) => isAddress(e));\n } catch (err) {\n if ((err as any).code !== 4001) {\n logger.error(\n \"FormoAnalytics::getAccounts: eth_accounts threw an error\",\n err\n );\n }\n return null;\n }\n }\n\n private async getCurrentChainId(): Promise<number> {\n if (!this.provider) {\n logger.error(\"Provider not set for chain ID\");\n }\n\n let chainIdHex;\n try {\n chainIdHex = await this.provider?.request<string>({\n method: \"eth_chainId\",\n });\n if (!chainIdHex) {\n logger.info(\"Chain id not found\");\n return 0;\n }\n return parseChainId(chainIdHex);\n } catch (err) {\n logger.error(\"eth_chainId threw an error:\", err);\n return 0;\n }\n }\n\n private buildSignatureEventPayload(\n method: string,\n params: unknown[],\n response?: unknown\n ) {\n const basePayload = {\n chainId: this.currentChainId,\n address:\n method === \"personal_sign\"\n ? (params[1] as Address)\n : (params[0] as Address),\n };\n\n if (method === \"personal_sign\") {\n const message = Buffer.from(\n (params[0] as string).slice(2),\n \"hex\"\n ).toString(\"utf8\");\n return {\n ...basePayload,\n message,\n ...(response ? { signatureHash: response as string } : {}),\n };\n }\n\n return {\n ...basePayload,\n message: params[1] as string,\n ...(response ? { signatureHash: response as string } : {}),\n };\n }\n\n private async buildTransactionEventPayload(params: unknown[]) {\n const { data, from, to, value } = params[0] as {\n data: string;\n from: string;\n to: string;\n value: string;\n };\n return {\n chainId: this.currentChainId || (await this.getCurrentChainId()),\n data,\n address: from,\n to,\n value,\n };\n }\n\n /**\n * Polls for transaction receipt and emits tx.status = CONFIRMED or REVERTED.\n */\n private async pollTransactionReceipt(\n transactionHash: string,\n payload: any,\n maxAttempts = 10,\n intervalMs = 3000\n ) {\n let attempts = 0;\n const provider = this.provider;\n if (!provider) return;\n type Receipt = { status: string | number } | null;\n const poll = async () => {\n try {\n const receipt = (await provider.request({\n method: \"eth_getTransactionReceipt\",\n params: [transactionHash],\n })) as Receipt;\n if (receipt) {\n // status: 1 = success, 0 = reverted\n if (receipt.status === \"0x1\" || receipt.status === 1) {\n this.transaction({\n status: TransactionStatus.CONFIRMED,\n ...payload,\n transactionHash,\n });\n return;\n } else if (receipt.status === \"0x0\" || receipt.status === 0) {\n this.transaction({\n status: TransactionStatus.REVERTED,\n ...payload,\n transactionHash,\n });\n return;\n }\n }\n } catch (e) {\n logger.error(\"Error polling transaction receipt\", e);\n }\n attempts++;\n if (attempts < maxAttempts) {\n setTimeout(poll, intervalMs);\n }\n };\n poll();\n }\n}\n\ninterface IFormoAnalyticsSession {\n isWalletDetected(rdns: string): boolean;\n markWalletDetected(rdns: string): void;\n}\n\nclass FormoAnalyticsSession implements IFormoAnalyticsSession {\n public isWalletDetected(rdns: string): boolean {\n const rdnses = cookie().get(SESSION_WALLET_DETECTED_KEY)?.split(\",\") || [];\n return rdnses.includes(rdns);\n }\n\n public markWalletDetected(rdns: string): void {\n const rdnses = cookie().get(SESSION_WALLET_DETECTED_KEY)?.split(\",\") || [];\n rdnses.push(rdns);\n cookie().set(SESSION_WALLET_DETECTED_KEY, rdnses.join(\",\"), {\n // by the end of the day\n expires: new Date(Date.now() + 86400 * 1000).toUTCString(),\n path: \"/\",\n });\n }\n}\n","import { Address } from \"../types\";\nimport { keccak256 } from \"ethereum-cryptography/keccak.js\";\nimport { utf8ToBytes } from \"ethereum-cryptography/utils.js\";\nimport {\n ensureIfUint8Array,\n isAddress,\n uint8ArrayToHexString,\n} from \"../validators\";\nimport { isNullish } from \"../validators/object\";\n\nexport const toChecksumAddress = (address: Address): string => {\n if (!isAddress(address, false)) {\n throw new Error(\"Invalid address \" + address);\n }\n\n const lowerCaseAddress = address.toLowerCase().replace(/^0x/i, \"\");\n\n const hash = uint8ArrayToHexString(\n keccak256(ensureIfUint8Array(utf8ToBytes(lowerCaseAddress)))\n );\n\n if (\n isNullish(hash) ||\n hash ===\n \"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\"\n )\n return \"\"; // // EIP-1052 if hash is equal to c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470, keccak was given empty data\n\n let checksumAddress = \"0x\";\n\n const addressHash = hash.replace(/^0x/i, \"\");\n\n for (let i = 0; i < lowerCaseAddress.length; i += 1) {\n // If ith character is 8 to f then make it uppercase\n if (parseInt(addressHash[i], 16) > 7) {\n checksumAddress += lowerCaseAddress[i].toUpperCase();\n } else {\n checksumAddress += lowerCaseAddress[i];\n }\n }\n\n return checksumAddress;\n};\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","import { logger } from \"../logger\";\nimport CookieStorage from \"./built-in/cookie\";\nimport MemoryStorage from \"./built-in/memory\";\nimport WebStorage from \"./built-in/web\";\nimport { IStorage, StorageType } from \"./type\";\n\n// Fallback as follows: cookieStorage, localStorage, sessionStorage, memoryStorage\nconst TYPES: StorageType[] = [\n \"cookieStorage\",\n \"localStorage\",\n \"sessionStorage\",\n \"memoryStorage\",\n];\n\nexport class StorageManager {\n private storages: Map<StorageType, IStorage> = new Map();\n\n constructor(private readonly writeKey: string) {}\n\n getStorage(type: StorageType): IStorage {\n if (!this.storages.has(type)) {\n let storage = this.createStorage(type);\n // If storage is not available, try next\n while (!storage.isAvailable()) {\n const index = TYPES.indexOf(type);\n logger.warn(\n `Storage ${type} is not available, trying ${TYPES[index + 1]}`\n );\n storage = this.createStorage(TYPES[index + 1]);\n }\n\n // Add to cache\n this.storages.set(type, storage);\n }\n return this.storages.get(type)!;\n }\n\n private createStorage(type: StorageType): IStorage {\n switch (type) {\n case \"cookieStorage\":\n return new CookieStorage(this.writeKey);\n case \"localStorage\":\n return new WebStorage(this.writeKey, localStorage);\n case \"sessionStorage\":\n return new WebStorage(this.writeKey, sessionStorage);\n case \"memoryStorage\":\n default:\n return new MemoryStorage(this.writeKey);\n }\n }\n}\n","import _curry2 from \"./internal/_curry2\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey\";\n\nconst mergeDeepRight = _curry2(function mergeDeepRight(lObj: any, rObj: any) {\n return mergeDeepWithKey(\n function (_: Function, __: any, rVal: any) {\n return rVal;\n },\n lObj,\n rObj\n );\n});\nexport default mergeDeepRight;\n","\"use strict\";\n/**\n * Hex, bytes and number utilities.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.notImplemented = exports.bitMask = void 0;\nexports.isBytes = isBytes;\nexports.abytes = abytes;\nexports.abool = abool;\nexports.numberToHexUnpadded = numberToHexUnpadded;\nexports.hexToNumber = hexToNumber;\nexports.bytesToHex = bytesToHex;\nexports.hexToBytes = hexToBytes;\nexports.bytesToNumberBE = bytesToNumberBE;\nexports.bytesToNumberLE = bytesToNumberLE;\nexports.numberToBytesBE = numberToBytesBE;\nexports.numberToBytesLE = numberToBytesLE;\nexports.numberToVarBytesBE = numberToVarBytesBE;\nexports.ensureBytes = ensureBytes;\nexports.concatBytes = concatBytes;\nexports.equalBytes = equalBytes;\nexports.utf8ToBytes = utf8ToBytes;\nexports.inRange = inRange;\nexports.aInRange = aInRange;\nexports.bitLen = bitLen;\nexports.bitGet = bitGet;\nexports.bitSet = bitSet;\nexports.createHmacDrbg = createHmacDrbg;\nexports.validateObject = validateObject;\nexports.memoized = memoized;\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nfunction isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\nfunction abytes(item) {\n if (!isBytes(item))\n throw new Error('Uint8Array expected');\n}\nfunction abool(title, value) {\n if (typeof value !== 'boolean')\n throw new Error(title + ' boolean expected, got ' + value);\n}\n// Used in weierstrass, der\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? '0' + hex : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n return hex === '' ? _0n : BigInt('0x' + hex); // Big Endian\n}\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function';\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // @ts-ignore\n if (hasHexBuiltin)\n return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\n// BE: Big Endian, LE: Little Endian\nfunction bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nfunction bytesToNumberLE(bytes) {\n abytes(bytes);\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\nfunction numberToBytesBE(n, len) {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nfunction numberToBytesLE(n, len) {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nfunction numberToVarBytesBE(n) {\n return hexToBytes(numberToHexUnpadded(n));\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nfunction ensureBytes(title, hex, expectedLength) {\n let res;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n }\n catch (e) {\n throw new Error(title + ' must be hex string or Uint8Array, cause: ' + e);\n }\n }\n else if (isBytes(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n }\n else {\n throw new Error(title + ' must be hex string or Uint8Array');\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(title + ' of length ' + expectedLength + ' expected, got ' + len);\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nfunction concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n// Compares 2 u8a-s in kinda constant time\nfunction equalBytes(a, b) {\n if (a.length !== b.length)\n return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++)\n diff |= a[i] ^ b[i];\n return diff === 0;\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Is positive bigint\nconst isPosBig = (n) => typeof n === 'bigint' && _0n <= n;\nfunction inRange(n, min, max) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nfunction aInRange(title, n, min, max) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error('expected valid ' + title + ': ' + min + ' <= n < ' + max + ', got ' + n);\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n * TODO: merge with nLength in modular\n */\nfunction bitLen(n) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1)\n ;\n return len;\n}\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nfunction bitGet(n, pos) {\n return (n >> BigInt(pos)) & _1n;\n}\n/**\n * Sets single bit at position.\n */\nfunction bitSet(n, pos, value) {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n}\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nconst bitMask = (n) => (_1n << BigInt(n)) - _1n;\nexports.bitMask = bitMask;\n// DRBG\nconst u8n = (len) => new Uint8Array(len); // creates Uint8Array\nconst u8fr = (arr) => Uint8Array.from(arr); // another shortcut\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG<Key>(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nfunction createHmacDrbg(hashLen, qByteLen, hmacFn) {\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function')\n throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n(0)) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0)\n return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000)\n throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed, pred) => {\n reset();\n reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen())))\n reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n// Validating curves and fields\nconst validatorFns = {\n bigint: (val) => typeof val === 'bigint',\n function: (val) => typeof val === 'function',\n boolean: (val) => typeof val === 'boolean',\n string: (val) => typeof val === 'string',\n stringOrUint8Array: (val) => typeof val === 'string' || isBytes(val),\n isSafeInteger: (val) => Number.isSafeInteger(val),\n array: (val) => Array.isArray(val),\n field: (val, object) => object.Fp.isValid(val),\n hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n};\n// type Record<K extends string | number | symbol, T> = { [P in K]: T; }\nfunction validateObject(object, validators, optValidators = {}) {\n const checkField = (fieldName, type, isOptional) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error('invalid validator function');\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error('param ' + String(fieldName) + ' is invalid. Expected ' + type + ', got ' + val);\n }\n };\n for (const [fieldName, type] of Object.entries(validators))\n checkField(fieldName, type, false);\n for (const [fieldName, type] of Object.entries(optValidators))\n checkField(fieldName, type, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n/**\n * throws not implemented error\n */\nconst notImplemented = () => {\n throw new Error('not implemented');\n};\nexports.notImplemented = notImplemented;\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nfunction memoized(fn) {\n const map = new WeakMap();\n return (arg, ...args) => {\n const val = map.get(arg);\n if (val !== undefined)\n return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n//# sourceMappingURL=utils.js.map","import StorageBlueprint from \"./blueprint\";\n\nclass MemoryStorage extends StorageBlueprint {\n private memoryStorage: Record<string, string> = {};\n\n public override isAvailable(): boolean {\n return true;\n }\n\n public override set(key: string, value: string): void {\n this.memoryStorage[this.getKey(key)] = value;\n }\n\n public override get(key: string): string | null {\n return this.memoryStorage[this.getKey(key)] || null;\n }\n\n public override remove(key: string): void {\n delete this.memoryStorage[this.getKey(key)];\n }\n}\n\nexport default MemoryStorage;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.keccak512 = exports.keccak384 = exports.keccak256 = exports.keccak224 = void 0;\nconst sha3_1 = require(\"@noble/hashes/sha3\");\nconst utils_js_1 = require(\"./utils.js\");\nexports.keccak224 = (0, utils_js_1.wrapHash)(sha3_1.keccak_224);\nexports.keccak256 = (() => {\n const k = (0, utils_js_1.wrapHash)(sha3_1.keccak_256);\n k.create = sha3_1.keccak_256.create;\n return k;\n})();\nexports.keccak384 = (0, utils_js_1.wrapHash)(sha3_1.keccak_384);\nexports.keccak512 = (0, utils_js_1.wrapHash)(sha3_1.keccak_512);\n","export default function _isObject(x: any) {\n return Object.prototype.toString.call(x) === \"[object Object]\";\n}\n","import { KEY_PREFIX } from \"../constant\";\nimport { CookieOptions, IStorage } from \"../type\";\n\nabstract class StorageBlueprint implements IStorage {\n constructor(private readonly writeKey: string) {}\n\n abstract isAvailable(): boolean;\n abstract set(key: string, value: string, options?: CookieOptions): void;\n abstract get(key: string): any;\n abstract remove(key: string): void;\n\n protected getKey(key: string): string {\n return `${KEY_PREFIX}_${this.writeKey}.${key}`;\n }\n}\n\nexport default StorageBlueprint;\n","export enum EventType {\n PAGE = \"page\",\n IDENTIFY = \"identify\",\n DETECT = \"detect\",\n CONNECT = \"connect\",\n DISCONNECT = \"disconnect\",\n CHAIN = \"chain\",\n SIGNATURE = \"signature\",\n TRANSACTION = \"transaction\",\n TRACK = \"track\",\n}\n\nexport enum EventChannel {\n WEB = \"web\",\n MOBILE = \"mobile\",\n SERVER = \"server\",\n SOURCE = \"source\",\n}\n\nexport type TEventType = Lowercase<EventType>;\nexport type TEventChannel = Lowercase<EventChannel>;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.requestProviders = exports.announceProvider = void 0;\nfunction announceProvider(detail) {\n const event = new CustomEvent('eip6963:announceProvider', { detail: Object.freeze(detail) });\n window.dispatchEvent(event);\n const handler = () => window.dispatchEvent(event);\n window.addEventListener('eip6963:requestProvider', handler);\n return () => window.removeEventListener('eip6963:requestProvider', handler);\n}\nexports.announceProvider = announceProvider;\nfunction requestProviders(listener) {\n if (typeof window === 'undefined')\n return;\n const handler = (event) => listener(event.detail);\n window.addEventListener('eip6963:announceProvider', handler);\n window.dispatchEvent(new CustomEvent('eip6963:requestProvider'));\n return () => window.removeEventListener('eip6963:announceProvider', handler);\n}\nexports.requestProviders = requestProviders;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBig = exports.shrSL = exports.shrSH = exports.rotrSL = exports.rotrSH = exports.rotrBL = exports.rotrBH = exports.rotr32L = exports.rotr32H = exports.rotlSL = exports.rotlSH = exports.rotlBL = exports.rotlBH = exports.add5L = exports.add5H = exports.add4L = exports.add4H = exports.add3L = exports.add3H = void 0;\nexports.add = add;\nexports.fromBig = fromBig;\nexports.split = split;\n/**\n * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array.\n * @todo re-check https://issues.chromium.org/issues/42212588\n * @module\n */\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n const len = lst.length;\n let Ah = new Uint32Array(len);\n let Al = new Uint32Array(len);\n for (let i = 0; i < len; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\nexports.toBig = toBig;\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nexports.shrSH = shrSH;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.shrSL = shrSL;\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nexports.rotrSH = rotrSH;\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.rotrSL = rotrSL;\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nexports.rotrBH = rotrBH;\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\nexports.rotrBL = rotrBL;\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nexports.rotr32H = rotr32H;\nconst rotr32L = (h, _l) => h;\nexports.rotr32L = rotr32L;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nexports.rotlSH = rotlSH;\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\nexports.rotlSL = rotlSL;\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nexports.rotlBH = rotlBH;\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\nexports.rotlBL = rotlBL;\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nexports.add3L = add3L;\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nexports.add3H = add3H;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nexports.add4L = add4L;\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nexports.add4H = add4H;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nexports.add5L = add5L;\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\nexports.add5H = add5H;\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexports.default = u64;\n//# sourceMappingURL=_u64.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertBytes = exports.assertBool = exports.utf8ToBytes = exports.toHex = exports.createView = exports.concatBytes = exports.bytesToHex = void 0;\nexports.bytesToUtf8 = bytesToUtf8;\nexports.hexToBytes = hexToBytes;\nexports.equalsBytes = equalsBytes;\nexports.wrapHash = wrapHash;\nconst utils_1 = require(\"@noble/curves/abstract/utils\");\nObject.defineProperty(exports, \"assertBool\", { enumerable: true, get: function () { return utils_1.abool; } });\nconst _assert_1 = require(\"@noble/hashes/_assert\");\nObject.defineProperty(exports, \"assertBytes\", { enumerable: true, get: function () { return _assert_1.abytes; } });\nconst utils_2 = require(\"@noble/hashes/utils\");\nvar utils_3 = require(\"@noble/hashes/utils\");\nObject.defineProperty(exports, \"bytesToHex\", { enumerable: true, get: function () { return utils_3.bytesToHex; } });\nObject.defineProperty(exports, \"concatBytes\", { enumerable: true, get: function () { return utils_3.concatBytes; } });\nObject.defineProperty(exports, \"createView\", { enumerable: true, get: function () { return utils_3.createView; } });\nObject.defineProperty(exports, \"toHex\", { enumerable: true, get: function () { return utils_3.bytesToHex; } });\nObject.defineProperty(exports, \"utf8ToBytes\", { enumerable: true, get: function () { return utils_3.utf8ToBytes; } });\n// buf.toString('utf8') -> bytesToUtf8(buf)\nfunction bytesToUtf8(data) {\n if (!(data instanceof Uint8Array)) {\n throw new TypeError(`bytesToUtf8 expected Uint8Array, got ${typeof data}`);\n }\n return new TextDecoder().decode(data);\n}\nfunction hexToBytes(data) {\n const sliced = data.startsWith(\"0x\") ? data.substring(2) : data;\n return (0, utils_2.hexToBytes)(sliced);\n}\n// buf.equals(buf2) -> equalsBytes(buf, buf2)\nfunction equalsBytes(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n// Internal utils\nfunction wrapHash(hash) {\n return (msg) => {\n (0, _assert_1.abytes)(msg);\n return hash(msg);\n };\n}\n","import { ILogger, LogLevel } from \"./type\";\n\nexport class Logger implements ILogger {\n private static instance: ILogger;\n private enabledLevels: Set<LogLevel>;\n private enabled: boolean;\n\n private constructor(\n enabled: boolean = false,\n enabledLevels: LogLevel[] = []\n ) {\n this.enabled = enabled;\n this.enabledLevels = new Set(enabledLevels);\n }\n\n public static init(config: {\n enabled?: boolean;\n enabledLevels?: LogLevel[];\n }): void {\n // Get or create instance\n const instance = Logger.getInstance();\n\n // Update configuration\n if (config.enabled !== undefined) {\n instance.setEnabled(config.enabled);\n }\n if (config.enabledLevels !== undefined) {\n instance.setEnabledLevels(config.enabledLevels);\n }\n }\n\n public static getInstance(config?: {\n enabled?: boolean;\n enabledLevels?: LogLevel[];\n }): ILogger {\n if (!Logger.instance) {\n Logger.instance = new Logger(\n config?.enabled ?? false,\n config?.enabledLevels ?? []\n );\n }\n return Logger.instance;\n }\n\n public setEnabled(enabled: boolean): void {\n this.enabled = enabled;\n }\n\n public isLoggingEnabled(): boolean {\n return this.enabled;\n }\n\n public setEnabledLevels(levels: LogLevel[]): void {\n this.enabledLevels = new Set(levels);\n }\n\n public getEnabledLevels(): LogLevel[] {\n return Array.from(this.enabledLevels);\n }\n\n private shouldLog(level: LogLevel): boolean {\n if (!this.enabled) return false;\n return this.enabledLevels.has(level);\n }\n\n private formatMessage(message: string): string {\n const timestamp = new Date().toLocaleString(\"en-US\", {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n hour12: false,\n });\n return `[Formo SDK][${timestamp}] ${message}`;\n }\n\n public debug(message: string, ...args: any[]): void {\n if (this.shouldLog(\"debug\")) {\n console.debug(this.formatMessage(message), ...args);\n }\n }\n\n public info(message: string, ...args: any[]): void {\n if (this.shouldLog(\"info\")) {\n console.info(this.formatMessage(message), ...args);\n }\n }\n\n public warn(message: string, ...args: any[]): void {\n if (this.shouldLog(\"warn\")) {\n console.warn(this.formatMessage(message), ...args);\n }\n }\n\n public error(message: string, ...args: any[]): void {\n if (this.shouldLog(\"error\")) {\n console.error(this.formatMessage(message), ...args);\n }\n }\n\n public trace(message: string, ...args: any[]): void {\n if (this.shouldLog(\"trace\")) {\n console.trace(this.formatMessage(message), ...args);\n }\n }\n\n public log(message: string, ...args: any[]): void {\n this.info(message, ...args);\n }\n}\n\n// Export a default instance for easy use\nexport const logger = Logger.getInstance();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shake256 = exports.shake128 = exports.keccak_512 = exports.keccak_384 = exports.keccak_256 = exports.keccak_224 = exports.sha3_512 = exports.sha3_384 = exports.sha3_256 = exports.sha3_224 = exports.Keccak = void 0;\nexports.keccakP = keccakP;\n/**\n * SHA3 (keccak) hash function, based on a new \"Sponge function\" design.\n * Different from older hashes, the internal state is bigger than output size.\n *\n * Check out [FIPS-202](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf),\n * [Website](https://keccak.team/keccak.html),\n * [the differences between SHA-3 and Keccak](https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub).\n *\n * Check out `sha3-addons` module for cSHAKE, k12, and others.\n * @module\n */\nconst _u64_ts_1 = require(\"./_u64.js\");\n// prettier-ignore\nconst utils_ts_1 = require(\"./utils.js\");\n// No __PURE__ annotations in sha3 header:\n// EVERYTHING is in fact used on every export.\n// Various per round constants calculations\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nconst SHA3_PI = [];\nconst SHA3_ROTL = [];\nconst _SHA3_IOTA = [];\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst IOTAS = (0, _u64_ts_1.split)(_SHA3_IOTA, true);\nconst SHA3_IOTA_H = IOTAS[0];\nconst SHA3_IOTA_L = IOTAS[1];\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? (0, _u64_ts_1.rotlBH)(h, l, s) : (0, _u64_ts_1.rotlSH)(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? (0, _u64_ts_1.rotlBL)(h, l, s) : (0, _u64_ts_1.rotlSL)(h, l, s));\n/** `keccakf1600` internal function, additionally allows to adjust round count. */\nfunction keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n (0, utils_ts_1.clean)(B);\n}\n/** Keccak sponge function. */\nclass Keccak extends utils_ts_1.Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n this.enableXOF = false;\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n // Can be passed from user as dkLen\n (0, utils_ts_1.anumber)(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n // 0 < blockLen < 200\n if (!(0 < blockLen && blockLen < 200))\n throw new Error('only keccak-f1600 function is supported');\n this.state = new Uint8Array(200);\n this.state32 = (0, utils_ts_1.u32)(this.state);\n }\n clone() {\n return this._cloneInto();\n }\n keccak() {\n (0, utils_ts_1.swap32IfBE)(this.state32);\n keccakP(this.state32, this.rounds);\n (0, utils_ts_1.swap32IfBE)(this.state32);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n (0, utils_ts_1.aexists)(this);\n data = (0, utils_ts_1.toBytes)(data);\n (0, utils_ts_1.abytes)(data);\n const { blockLen, state } = this;\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n (0, utils_ts_1.aexists)(this, false);\n (0, utils_ts_1.abytes)(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n (0, utils_ts_1.anumber)(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n (0, utils_ts_1.aoutput)(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n (0, utils_ts_1.clean)(this.state);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nexports.Keccak = Keccak;\nconst gen = (suffix, blockLen, outputLen) => (0, utils_ts_1.createHasher)(() => new Keccak(blockLen, suffix, outputLen));\n/** SHA3-224 hash function. */\nexports.sha3_224 = (() => gen(0x06, 144, 224 / 8))();\n/** SHA3-256 hash function. Different from keccak-256. */\nexports.sha3_256 = (() => gen(0x06, 136, 256 / 8))();\n/** SHA3-384 hash function. */\nexports.sha3_384 = (() => gen(0x06, 104, 384 / 8))();\n/** SHA3-512 hash function. */\nexports.sha3_512 = (() => gen(0x06, 72, 512 / 8))();\n/** keccak-224 hash function. */\nexports.keccak_224 = (() => gen(0x01, 144, 224 / 8))();\n/** keccak-256 hash function. Different from SHA3-256. */\nexports.keccak_256 = (() => gen(0x01, 136, 256 / 8))();\n/** keccak-384 hash function. */\nexports.keccak_384 = (() => gen(0x01, 104, 384 / 8))();\n/** keccak-512 hash function. */\nexports.keccak_512 = (() => gen(0x01, 72, 512 / 8))();\nconst genShake = (suffix, blockLen, outputLen) => (0, utils_ts_1.createXOFer)((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\n/** SHAKE128 XOF with 128-bit security. */\nexports.shake128 = (() => genShake(0x1f, 168, 128 / 8))();\n/** SHAKE256 XOF with 256-bit security. */\nexports.shake256 = (() => genShake(0x1f, 136, 256 / 8))();\n//# sourceMappingURL=sha3.js.map","import { FormoAnalytics } from \"./FormoAnalytics\";\nimport { Options } from \"./types\";\n\nexport function formofy(writeKey: string, options?: Options) {\n if (writeKey && typeof window !== \"undefined\") {\n FormoAnalytics.init(writeKey, options)\n .then((f) => {\n (window as any).formo = f;\n })\n .catch((e) => console.error(\"Error initializing FormoAnalytics:\", e));\n } else {\n console.warn(\"FormoAnalytics not found\");\n }\n}\n","export function isUint8Array(data: unknown | Uint8Array): data is Uint8Array {\n return (\n data instanceof Uint8Array ||\n (data as { constructor: { name: string } })?.constructor?.name ===\n \"Uint8Array\" ||\n (data as { constructor: { name: string } })?.constructor?.name === \"Buffer\"\n );\n}\n\nexport function uint8ArrayToHexString(uint8Array: Uint8Array): string {\n let hexString = \"0x\";\n for (const e of uint8Array as any) {\n const hex = e.toString(16);\n hexString += hex.length === 1 ? `0${hex}` : hex;\n }\n return hexString;\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.fetchRetry = factory());\n})(this, (function () { 'use strict';\n\n var fetchRetry = function (fetch, defaults) {\n defaults = defaults || {};\n if (typeof fetch !== 'function') {\n throw new ArgumentError('fetch must be a function');\n }\n\n if (typeof defaults !== 'object') {\n throw new ArgumentError('defaults must be an object');\n }\n\n if (defaults.retries !== undefined && !isPositiveInteger(defaults.retries)) {\n throw new ArgumentError('retries must be a positive integer');\n }\n\n if (defaults.retryDelay !== undefined && !isPositiveInteger(defaults.retryDelay) && typeof defaults.retryDelay !== 'function') {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n\n if (defaults.retryOn !== undefined && !Array.isArray(defaults.retryOn) && typeof defaults.retryOn !== 'function') {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n\n var baseDefaults = {\n retries: 3,\n retryDelay: 1000,\n retryOn: [],\n };\n\n defaults = Object.assign(baseDefaults, defaults);\n\n return function fetchRetry(input, init) {\n var retries = defaults.retries;\n var retryDelay = defaults.retryDelay;\n var retryOn = defaults.retryOn;\n\n if (init && init.retries !== undefined) {\n if (isPositiveInteger(init.retries)) {\n retries = init.retries;\n } else {\n throw new ArgumentError('retries must be a positive integer');\n }\n }\n\n if (init && init.retryDelay !== undefined) {\n if (isPositiveInteger(init.retryDelay) || (typeof init.retryDelay === 'function')) {\n retryDelay = init.retryDelay;\n } else {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n }\n\n if (init && init.retryOn) {\n if (Array.isArray(init.retryOn) || (typeof init.retryOn === 'function')) {\n retryOn = init.retryOn;\n } else {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n }\n\n // eslint-disable-next-line no-undef\n return new Promise(function (resolve, reject) {\n var wrappedFetch = function (attempt) {\n // As of node 18, this is no longer needed since node comes with native support for fetch:\n /* istanbul ignore next */\n var _input =\n typeof Request !== 'undefined' && input instanceof Request\n ? input.clone()\n : input;\n fetch(_input, init)\n .then(function (response) {\n if (Array.isArray(retryOn) && retryOn.indexOf(response.status) === -1) {\n resolve(response);\n } else if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n return Promise.resolve(retryOn(attempt, null, response))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }).catch(reject);\n } catch (error) {\n reject(error);\n }\n } else {\n if (attempt < retries) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }\n })\n .catch(function (error) {\n if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n Promise.resolve(retryOn(attempt, error, null))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n })\n .catch(function(error) {\n reject(error);\n });\n } catch(error) {\n reject(error);\n }\n } else if (attempt < retries) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n });\n };\n\n function retry(attempt, error, response) {\n var delay = (typeof retryDelay === 'function') ?\n retryDelay(attempt, error, response) : retryDelay;\n setTimeout(function () {\n wrappedFetch(++attempt);\n }, delay);\n }\n\n wrappedFetch(0);\n });\n };\n };\n\n function isPositiveInteger(value) {\n return Number.isInteger(value) && value >= 0;\n }\n\n function ArgumentError(message) {\n this.name = 'ArgumentError';\n this.message = message;\n }\n\n return fetchRetry;\n\n}));\n","export const EVENTS_API_HOST = \"https://events.formo.so\";\nexport const EVENTS_API_URL = `${EVENTS_API_HOST}/v0/raw_events`;\nexport const USER_API_URL = `${EVENTS_API_HOST}/user`;\n\nexport const EVENTS_API_REQUEST_HEADER = (writeKey: string) => ({\n \"Content-Type\": \"application/json\",\n Authorization: `Basic ${writeKey}`,\n});\n\nexport const COUNTRY_LIST = {\n // Africa\n \"Africa/Abidjan\": \"CI\",\n \"Africa/Accra\": \"GH\",\n \"Africa/Addis_Ababa\": \"ET\",\n \"Africa/Algiers\": \"DZ\",\n \"Africa/Asmara\": \"ER\",\n \"Africa/Asmera\": \"ER\",\n \"Africa/Bamako\": \"ML\",\n \"Africa/Bangui\": \"CF\",\n \"Africa/Banjul\": \"GM\",\n \"Africa/Bissau\": \"GW\",\n \"Africa/Blantyre\": \"MW\",\n \"Africa/Brazzaville\": \"CG\",\n \"Africa/Bujumbura\": \"BI\",\n \"Africa/Cairo\": \"EG\",\n \"Africa/Casablanca\": \"MA\",\n \"Africa/Ceuta\": \"ES\",\n \"Africa/Conakry\": \"GN\",\n \"Africa/Dakar\": \"SN\",\n \"Africa/Dar_es_Salaam\": \"TZ\",\n \"Africa/Djibouti\": \"DJ\",\n \"Africa/Douala\": \"CM\",\n \"Africa/El_Aaiun\": \"EH\",\n \"Africa/Freetown\": \"SL\",\n \"Africa/Gaborone\": \"BW\",\n \"Africa/Harare\": \"ZW\",\n \"Africa/Johannesburg\": \"ZA\",\n \"Africa/Juba\": \"SS\",\n \"Africa/Kampala\": \"UG\",\n \"Africa/Khartoum\": \"SD\",\n \"Africa/Kigali\": \"RW\",\n \"Africa/Kinshasa\": \"CD\",\n \"Africa/Lagos\": \"NG\",\n \"Africa/Libreville\": \"GA\",\n \"Africa/Lome\": \"TG\",\n \"Africa/Luanda\": \"AO\",\n \"Africa/Lubumbashi\": \"CD\",\n \"Africa/Lusaka\": \"ZM\",\n \"Africa/Malabo\": \"GQ\",\n \"Africa/Maputo\": \"MZ\",\n \"Africa/Maseru\": \"LS\",\n \"Africa/Mbabane\": \"SZ\",\n \"Africa/Mogadishu\": \"SO\",\n \"Africa/Monrovia\": \"LR\",\n \"Africa/Nairobi\": \"KE\",\n \"Africa/Ndjamena\": \"TD\",\n \"Africa/Niamey\": \"NE\",\n \"Africa/Nouakchott\": \"MR\",\n \"Africa/Ouagadougou\": \"BF\",\n \"Africa/Porto-Novo\": \"BJ\",\n \"Africa/Sao_Tome\": \"ST\",\n \"Africa/Timbuktu\": \"ML\",\n \"Africa/Tripoli\": \"LY\",\n \"Africa/Tunis\": \"TN\",\n \"Africa/Windhoek\": \"NA\",\n // America\n \"America/Adak\": \"US\",\n \"America/Anchorage\": \"US\",\n \"America/Anguilla\": \"AI\",\n \"America/Antigua\": \"AG\",\n \"America/Araguaina\": \"BR\",\n \"America/Argentina/Buenos_Aires\": \"AR\",\n \"America/Argentina/Catamarca\": \"AR\",\n \"America/Argentina/ComodRivadavia\": \"AR\",\n \"America/Argentina/Cordoba\": \"AR\",\n \"America/Argentina/Jujuy\": \"AR\",\n \"America/Argentina/La_Rioja\": \"AR\",\n \"America/Argentina/Mendoza\": \"AR\",\n \"America/Argentina/Rio_Gallegos\": \"AR\",\n \"America/Argentina/Salta\": \"AR\",\n \"America/Argentina/San_Juan\": \"AR\",\n \"America/Argentina/San_Luis\": \"AR\",\n \"America/Argentina/Tucuman\": \"AR\",\n \"America/Argentina/Ushuaia\": \"AR\",\n \"America/Aruba\": \"AW\",\n \"America/Asuncion\": \"PY\",\n \"America/Atikokan\": \"CA\",\n \"America/Atka\": \"US\",\n \"America/Bahia\": \"BR\",\n \"America/Bahia_Banderas\": \"MX\",\n \"America/Barbados\": \"BB\",\n \"America/Belem\": \"BR\",\n \"America/Belize\": \"BZ\",\n \"America/Blanc-Sablon\": \"CA\",\n \"America/Boa_Vista\": \"BR\",\n \"America/Bogota\": \"CO\",\n \"America/Boise\": \"US\",\n \"America/Buenos_Aires\": \"AR\",\n \"America/Cambridge_Bay\": \"CA\",\n \"America/Campo_Grande\": \"BR\",\n \"America/Cancun\": \"MX\",\n \"America/Caracas\": \"VE\",\n \"America/Catamarca\": \"AR\",\n \"America/Cayenne\": \"GF\",\n \"America/Cayman\": \"KY\",\n \"America/Chicago\": \"US\",\n \"America/Chihuahua\": \"MX\",\n \"America/Ciudad_Juarez\": \"MX\",\n \"America/Coral_Harbour\": \"CA\",\n \"America/Cordoba\": \"AR\",\n \"America/Costa_Rica\": \"CR\",\n \"America/Creston\": \"CA\",\n \"America/Cuiaba\": \"BR\",\n \"America/Curacao\": \"CW\",\n \"America/Danmarkshavn\": \"GL\",\n \"America/Dawson\": \"CA\",\n \"America/Dawson_Creek\": \"CA\",\n \"America/Denver\": \"US\",\n \"America/Detroit\": \"US\",\n \"America/Dominica\": \"DM\",\n \"America/Edmonton\": \"CA\",\n \"America/Eirunepe\": \"BR\",\n \"America/El_Salvador\": \"SV\",\n \"America/Ensenada\": \"MX\",\n \"America/Fort_Nelson\": \"CA\",\n \"America/Fort_Wayne\": \"US\",\n \"America/Fortaleza\": \"BR\",\n \"America/Glace_Bay\": \"CA\",\n \"America/Godthab\": \"GL\",\n \"America/Goose_Bay\": \"CA\",\n \"America/Grand_Turk\": \"TC\",\n \"America/Grenada\": \"GD\",\n \"America/Guadeloupe\": \"GP\",\n \"America/Guatemala\": \"GT\",\n \"America/Guayaquil\": \"EC\",\n \"America/Guyana\": \"GY\",\n \"America/Halifax\": \"CA\",\n \"America/Havana\": \"CU\",\n \"America/Hermosillo\": \"MX\",\n \"America/Indiana/Indianapoli\": \"US\",\n \"America/Indiana/Knox\": \"US\",\n \"America/Indiana/Marengo\": \"US\",\n \"America/Indiana/Petersburg\": \"US\",\n \"America/Indiana/Tell_City\": \"US\",\n \"America/Indiana/Vevay\": \"US\",\n \"America/Indiana/Vincennes\": \"US\",\n \"America/Indiana/Winamac\": \"US\",\n \"America/Indianapoli\": \"US\",\n \"America/Inuvik\": \"CA\",\n \"America/Iqaluit\": \"CA\",\n \"America/Jamaica\": \"JM\",\n \"America/Jujuy\": \"AR\",\n \"America/Juneau\": \"US\",\n \"America/Kentucky/Louisville\": \"US\",\n \"America/Kentucky/Monticello\": \"US\",\n \"America/Knox_IN\": \"US\",\n \"America/Kralendijk\": \"BQ\",\n \"America/La_Paz\": \"BO\",\n \"America/Lima\": \"PE\",\n \"America/Los_Angeles\": \"US\",\n \"America/Louisville\": \"US\",\n \"America/Lower_Princes\": \"SX\",\n \"America/Maceio\": \"BR\",\n \"America/Managua\": \"NI\",\n \"America/Manaus\": \"BR\",\n \"America/Marigot\": \"MF\",\n \"America/Martinique\": \"MQ\",\n \"America/Matamoros\": \"MX\",\n \"America/Mazatlan\": \"MX\",\n \"America/Mendoza\": \"AR\",\n \"America/Menominee\": \"US\",\n \"America/Merida\": \"MX\",\n \"America/Metlakatla\": \"US\",\n \"America/Mexico_City\": \"MX\",\n \"America/Miquelon\": \"PM\",\n \"America/Moncton\": \"CA\",\n \"America/Monterrey\": \"MX\",\n \"America/Montevideo\": \"UY\",\n \"America/Montreal\": \"CA\",\n \"America/Montserrat\": \"MS\",\n \"America/Nassau\": \"BS\",\n \"America/New_York\": \"US\",\n \"America/Nipigon\": \"CA\",\n \"America/Nome\": \"US\",\n \"America/Noronha\": \"BR\",\n \"America/North_Dakota/Beulah\": \"US\",\n \"America/North_Dakota/Center\": \"US\",\n \"America/North_Dakota/New_Salem\": \"US\",\n \"America/Nuuk\": \"GL\",\n \"America/Ojinaga\": \"MX\",\n \"America/Panama\": \"PA\",\n \"America/Pangnirtung\": \"CA\",\n \"America/Paramaribo\": \"SR\",\n \"America/Phoenix\": \"US,CA\",\n \"America/Port-au-Prince\": \"HT\",\n \"America/Port_of_Spain\": \"TT\",\n \"America/Porto_Acre\": \"BR\",\n \"America/Porto_Velho\": \"BR\",\n \"America/Puerto_Rico\": \"PR\",\n \"America/Punta_Arenas\": \"CL\",\n \"America/Rainy_River\": \"CA\",\n \"America/Rankin_Inlet\": \"CA\",\n \"America/Recife\": \"BR\",\n \"America/Regina\": \"CA\",\n \"America/Resolute\": \"CA\",\n \"America/Rio_Branco\": \"BR\",\n \"America/Rosario\": \"AR\",\n \"America/Santa_Isabel\": \"MX\",\n \"America/Santarem\": \"BR\",\n \"America/Santiago\": \"CL\",\n \"America/Santo_Domingo\": \"DO\",\n \"America/Sao_Paulo\": \"BR\",\n \"America/Scoresbysund\": \"GL\",\n \"America/Shiprock\": \"US\",\n \"America/Sitka\": \"US\",\n \"America/St_Barthelemy\": \"BL\",\n \"America/St_Johns\": \"CA\",\n \"America/St_Kitts\": \"KN\",\n \"America/St_Lucia\": \"LC\",\n \"America/St_Thomas\": \"VI\",\n \"America/St_Vincent\": \"VC\",\n \"America/Swift_Current\": \"CA\",\n \"America/Tegucigalpa\": \"HN\",\n \"America/Thule\": \"GL\",\n \"America/Thunder_Bay\": \"CA\",\n \"America/Tijuana\": \"MX\",\n \"America/Toronto\": \"CA\",\n \"America/Tortola\": \"VG\",\n \"America/Vancouver\": \"CA\",\n \"America/Virgin\": \"VI\",\n \"America/Whitehorse\": \"CA\",\n \"America/Winnipeg\": \"CA\",\n \"America/Yakutat\": \"US\",\n \"America/Yellowknife\": \"CA\",\n // Antarctica\n \"Antarctica/Casey\": \"AQ\",\n \"Antarctica/Davis\": \"AQ\",\n \"Antarctica/DumontDUrville\": \"AQ\",\n \"Antarctica/Macquarie\": \"AU\",\n \"Antarctica/Mawson\": \"AQ\",\n \"Antarctica/McMurdo\": \"AQ\",\n \"Antarctica/Palmer\": \"AQ\",\n \"Antarctica/Rothera\": \"AQ\",\n \"Antarctica/South_Pole\": \"AQ\",\n \"Antarctica/Syowa\": \"AQ\",\n \"Antarctica/Troll\": \"AQ\",\n \"Antarctica/Vostok\": \"AQ\",\n // Arctic\n \"Arctic/Longyearbyen\": \"SJ\",\n // Asia\n \"Asia/Aden\": \"YE\",\n \"Asia/Almaty\": \"KZ\",\n \"Asia/Amman\": \"JO\",\n \"Asia/Anadyr\": \"RU\",\n \"Asia/Aqtau\": \"KZ\",\n \"Asia/Aqtobe\": \"KZ\",\n \"Asia/Ashgabat\": \"TM\",\n \"Asia/Ashkhabad\": \"TM\",\n \"Asia/Atyrau\": \"KZ\",\n \"Asia/Baghdad\": \"IQ\",\n \"Asia/Bahrain\": \"BH\",\n \"Asia/Baku\": \"AZ\",\n \"Asia/Bangkok\": \"TH\",\n \"Asia/Barnaul\": \"RU\",\n \"Asia/Beirut\": \"LB\",\n \"Asia/Bishkek\": \"KG\",\n \"Asia/Brunei\": \"BN\",\n \"Asia/Calcutta\": \"IN\",\n \"Asia/Chita\": \"RU\",\n \"Asia/Choibalsan\": \"MN\",\n \"Asia/Chongqing\": \"CN\",\n \"Asia/Chungking\": \"CN\",\n \"Asia/Colombo\": \"LK\",\n \"Asia/Dacca\": \"BD\",\n \"Asia/Damascus\": \"SY\",\n \"Asia/Dhaka\": \"BD\",\n \"Asia/Dili\": \"TL\",\n \"Asia/Dubai\": \"AE\",\n \"Asia/Dushanbe\": \"TJ\",\n \"Asia/Famagusta\": \"CY\",\n \"Asia/Gaza\": \"PS\",\n \"Asia/Harbin\": \"CN\",\n \"Asia/Hebron\": \"PS\",\n \"Asia/Ho_Chi_Minh\": \"VN\",\n \"Asia/Hong_Kong\": \"HK\",\n \"Asia/Hovd\": \"MN\",\n \"Asia/Irkutsk\": \"RU\",\n \"Asia/Istanbul\": \"TR\",\n \"Asia/Jakarta\": \"ID\",\n \"Asia/Jayapura\": \"ID\",\n \"Asia/Jerusalem\": \"IL\",\n \"Asia/Kabul\": \"AF\",\n \"Asia/Kamchatka\": \"RU\",\n \"Asia/Karachi\": \"PK\",\n \"Asia/Kashgar\": \"CN\",\n \"Asia/Kathmandu\": \"NP\",\n \"Asia/Katmandu\": \"NP\",\n \"Asia/Khandyga\": \"RU\",\n \"Asia/Kolkata\": \"IN\",\n \"Asia/Krasnoyarsk\": \"RU\",\n \"Asia/Kuala_Lumpur\": \"MY\",\n \"Asia/Kuching\": \"MY\",\n \"Asia/Kuwait\": \"KW\",\n \"Asia/Macao\": \"MO\",\n \"Asia/Macau\": \"MO\",\n \"Asia/Magadan\": \"RU\",\n \"Asia/Makassar\": \"ID\",\n \"Asia/Manila\": \"PH\",\n \"Asia/Muscat\": \"OM\",\n \"Asia/Nicosia\": \"CY\",\n \"Asia/Novokuznetsk\": \"RU\",\n \"Asia/Novosibirsk\": \"RU\",\n \"Asia/Omsk\": \"RU\",\n \"Asia/Oral\": \"KZ\",\n \"Asia/Phnom_Penh\": \"KH\",\n \"Asia/Pontianak\": \"ID\",\n \"Asia/Pyongyang\": \"KP\",\n \"Asia/Qatar\": \"QA\",\n \"Asia/Qostanay\": \"KZ\",\n \"Asia/Qyzylorda\": \"KZ\",\n \"Asia/Rangoon\": \"MM\",\n \"Asia/Riyadh\": \"SA\",\n \"Asia/Saigon\": \"VN\",\n \"Asia/Sakhalin\": \"RU\",\n \"Asia/Samarkand\": \"UZ\",\n \"Asia/Seoul\": \"KR\",\n \"Asia/Shanghai\": \"CN\",\n \"Asia/Singapore\": \"SG\",\n \"Asia/Srednekolymsk\": \"RU\",\n \"Asia/Taipei\": \"TW\",\n \"Asia/Tashkent\": \"UZ\",\n \"Asia/Tbilisi\": \"GE\",\n \"Asia/Tehran\": \"IR\",\n \"Asia/Tel_Aviv\": \"IL\",\n \"Asia/Thimbu\": \"BT\",\n \"Asia/Thimphu\": \"BT\",\n \"Asia/Tokyo\": \"JP\",\n \"Asia/Tomsk\": \"RU\",\n \"Asia/Ujung_Pandang\": \"ID\",\n \"Asia/Ulaanbaatar\": \"MN\",\n \"Asia/Ulan_Bator\": \"MN\",\n \"Asia/Urumqi\": \"CN\",\n \"Asia/Ust-Nera\": \"RU\",\n \"Asia/Vientiane\": \"LA\",\n \"Asia/Vladivostok\": \"RU\",\n \"Asia/Yakutsk\": \"RU\",\n \"Asia/Yangon\": \"MM\",\n \"Asia/Yekaterinburg\": \"RU\",\n \"Asia/Yerevan\": \"AM\",\n // Atlantic\n \"Atlantic/Azores\": \"PT\",\n \"Atlantic/Bermuda\": \"BM\",\n \"Atlantic/Canary\": \"ES\",\n \"Atlantic/Cape_Verde\": \"CV\",\n \"Atlantic/Faeroe\": \"FO\",\n \"Atlantic/Faroe\": \"FO\",\n \"Atlantic/Jan_Mayen\": \"SJ\",\n \"Atlantic/Madeira\": \"PT\",\n \"Atlantic/Reykjavik\": \"IS\",\n \"Atlantic/South_Georgia\": \"GS\",\n \"Atlantic/St_Helena\": \"SH\",\n \"Atlantic/Stanley\": \"FK\",\n // Australia\n \"Australia/ACT\": \"AU\",\n \"Australia/Adelaide\": \"AU\",\n \"Australia/Brisbane\": \"AU\",\n \"Australia/Broken_Hill\": \"AU\",\n \"Australia/Canberra\": \"AU\",\n \"Australia/Currie\": \"AU\",\n \"Australia/Darwin\": \"AU\",\n \"Australia/Eucla\": \"AU\",\n \"Australia/Hobart\": \"AU\",\n \"Australia/LHI\": \"AU\",\n \"Australia/Lindeman\": \"AU\",\n \"Australia/Lord_Howe\": \"AU\",\n \"Australia/Melbourne\": \"AU\",\n \"Australia/North\": \"AU\",\n \"Australia/NSW\": \"AU\",\n \"Australia/Perth\": \"AU\",\n \"Australia/Queensland\": \"AU\",\n \"Australia/South\": \"AU\",\n \"Australia/Sydney\": \"AU\",\n \"Australia/Tasmania\": \"AU\",\n \"Australia/Victoria\": \"AU\",\n \"Australia/West\": \"AU\",\n \"Australia/Yancowinna\": \"AU\",\n // Brazil\n \"Brazil/Acre\": \"BR\",\n \"Brazil/DeNoronha\": \"BR\",\n \"Brazil/East\": \"BR\",\n \"Brazil/West\": \"BR\",\n // Canada\n \"Canada/Atlantic\": \"CA\",\n \"Canada/Central\": \"CA\",\n \"Canada/Eastern\": \"CA\",\n \"Canada/Mountain\": \"CA\",\n \"Canada/Newfoundland\": \"CA\",\n \"Canada/Pacific\": \"CA\",\n \"Canada/Saskatchewan\": \"CA\",\n \"Canada/Yukon\": \"CA\",\n // CET\n CET: \"CET\",\n // Chile\n \"Chile/Continental\": \"CL\",\n \"Chile/EasterIsland\": \"CL\",\n // CST6CDT\n CST6CDT: \"CST6CDT\",\n // Cuba\n Cuba: \"CU\",\n // EET\n EET: \"EET\",\n // Egypt\n Egypt: \"EG\",\n // Eire\n Eire: \"IE\",\n // EST\n EST: \"EST\",\n EST5EDT: \"EST5EDT\",\n \"Etc/GMT\": \"Etc/GMT\",\n \"Etc/GMT+0\": \"Etc/GMT+0\",\n \"Etc/GMT+1\": \"Etc/GMT+1\",\n \"Etc/GMT+10\": \"Etc/GMT+10\",\n \"Etc/GMT+11\": \"Etc/GMT+11\",\n \"Etc/GMT+12\": \"Etc/GMT+12\",\n \"Etc/GMT+2\": \"Etc/GMT+2\",\n \"Etc/GMT+3\": \"Etc/GMT+3\",\n \"Etc/GMT+4\": \"Etc/GMT+4\",\n \"Etc/GMT+5\": \"Etc/GMT+5\",\n \"Etc/GMT+6\": \"Etc/GMT+6\",\n \"Etc/GMT+7\": \"Etc/GMT+7\",\n \"Etc/GMT+8\": \"Etc/GMT+8\",\n \"Etc/GMT+9\": \"Etc/GMT+9\",\n \"Etc/GMT-0\": \"Etc/GMT-0\",\n \"Etc/GMT-1\": \"Etc/GMT-1\",\n \"Etc/GMT-10\": \"Etc/GMT-10\",\n \"Etc/GMT-11\": \"Etc/GMT-11\",\n \"Etc/GMT-12\": \"Etc/GMT-12\",\n \"Etc/GMT-13\": \"Etc/GMT-13\",\n \"Etc/GMT-14\": \"Etc/GMT-14\",\n \"Etc/GMT-2\": \"Etc/GMT-2\",\n \"Etc/GMT-3\": \"Etc/GMT-3\",\n \"Etc/GMT-4\": \"Etc/GMT-4\",\n \"Etc/GMT-5\": \"Etc/GMT-5\",\n \"Etc/GMT-6\": \"Etc/GMT-6\",\n \"Etc/GMT-7\": \"Etc/GMT-7\",\n \"Etc/GMT-8\": \"Etc/GMT-8\",\n \"Etc/GMT-9\": \"Etc/GMT-9\",\n \"Etc/GMT0\": \"Etc/GMT0\",\n \"Etc/Greenwich\": \"Etc/Greenwich\",\n \"Etc/UCT\": \"Etc/UCT\",\n \"Etc/UTC\": \"Etc/UTC\",\n \"Etc/Universal\": \"Etc/Universal\",\n \"Etc/Zulu\": \"Etc/Zulu\",\n // Europe\n \"Europe/Amsterdam\": \"NL\",\n \"Europe/Andorra\": \"AD\",\n \"Europe/Astrakhan\": \"RU\",\n \"Europe/Athens\": \"GR\",\n \"Europe/Belfast\": \"GB\",\n \"Europe/Belgrade\": \"RS\",\n \"Europe/Berlin\": \"DE\",\n \"Europe/Bratislava\": \"SK\",\n \"Europe/Brussels\": \"BE\",\n \"Europe/Bucharest\": \"RO\",\n \"Europe/Budapest\": \"HU\",\n \"Europe/Busingen\": \"DE\",\n \"Europe/Chisinau\": \"MD\",\n \"Europe/Copenhagen\": \"DK\",\n \"Europe/Dublin\": \"IE\",\n \"Europe/Gibraltar\": \"GI\",\n \"Europe/Guernsey\": \"GG\",\n \"Europe/Helsinki\": \"FI\",\n \"Europe/Isle_of_Man\": \"IM\",\n \"Europe/Istanbul\": \"TR\",\n \"Europe/Jersey\": \"JE\",\n \"Europe/Kaliningrad\": \"RU\",\n \"Europe/Kiev\": \"UA\",\n \"Europe/Kirov\": \"RU\",\n \"Europe/Kyiv\": \"UA\",\n \"Europe/Lisbon\": \"PT\",\n \"Europe/Ljubljana\": \"SI\",\n \"Europe/London\": \"GB\",\n \"Europe/Luxembourg\": \"LU\",\n \"Europe/Madrid\": \"ES\",\n \"Europe/Malta\": \"MT\",\n \"Europe/Mariehamn\": \"AX\",\n \"Europe/Minsk\": \"BY\",\n \"Europe/Monaco\": \"MC\",\n \"Europe/Moscow\": \"RU\",\n \"Europe/Nicosia\": \"CY\",\n \"Europe/Oslo\": \"NO\",\n \"Europe/Paris\": \"FR\",\n \"Europe/Podgorica\": \"ME\",\n \"Europe/Prague\": \"CZ\",\n \"Europe/Riga\": \"LV\",\n \"Europe/Rome\": \"IT\",\n \"Europe/Samara\": \"RU\",\n \"Europe/San_Marino\": \"SM\",\n \"Europe/Sarajevo\": \"BA\",\n \"Europe/Saratov\": \"RU\",\n \"Europe/Simferopol\": \"RU\",\n \"Europe/Skopje\": \"MK\",\n \"Europe/Sofia\": \"BG\",\n \"Europe/Stockholm\": \"SE\",\n \"Europe/Tallinn\": \"EE\",\n \"Europe/Tirane\": \"AL\",\n \"Europe/Tiraspol\": \"MD\",\n \"Europe/Ulyanovsk\": \"RU\",\n \"Europe/Uzhgorod\": \"UA\",\n \"Europe/Vaduz\": \"LI\",\n \"Europe/Vatican\": \"VA\",\n \"Europe/Vienna\": \"AT\",\n \"Europe/Vilnius\": \"LT\",\n \"Europe/Volgograd\": \"RU\",\n \"Europe/Warsaw\": \"PL\",\n \"Europe/Zagreb\": \"HR\",\n \"Europe/Zaporozhye\": \"UA\",\n \"Europe/Zurich\": \"CH\",\n // Factory\n Factory: \"Factory\",\n // GB\n GB: \"GB\",\n \"GB-Eire\": \"GB\",\n // GMT\n GMT: \"GMT\",\n \"GMT+0\": \"GMT+0\",\n \"GMT-0\": \"GMT-0\",\n GMT0: \"GMT0\",\n Greenwich: \"Greenwich\",\n // HK\n Hongkong: \"HK\",\n // HST\n HST: \"HST\",\n // Iceland\n Iceland: \"IS\",\n // Indian\n \"Indian/Antananarivo\": \"MG\",\n \"Indian/Chagos\": \"IO\",\n \"Indian/Christmas\": \"CX\",\n \"Indian/Cocos\": \"CC\",\n \"Indian/Comoro\": \"KM\",\n \"Indian/Kerguelen\": \"TF\",\n \"Indian/Mahe\": \"SC\",\n \"Indian/Maldives\": \"MV\",\n \"Indian/Mauritius\": \"MU\",\n \"Indian/Mayotte\": \"YT\",\n \"Indian/Reunion\": \"RE\",\n // Iran\n Iran: \"IR\",\n // Israel\n Israel: \"IL\",\n // Jamaica\n Jamaica: \"JM\",\n // Japan\n Japan: \"JP\",\n // Kwajalein\n Kwajalein: \"MH\",\n // Libya\n Libya: \"LY\",\n // MET\n MET: \"MET\",\n // Mexico\n \"Mexico/BajaNorte\": \"MX\",\n \"Mexico/BajaSur\": \"MX\",\n \"Mexico/General\": \"MX\",\n // MST\n MST: \"MST\",\n MST7MDT: \"MST7MDT\",\n // Navajo\n Navajo: \"US\",\n // NZ\n NZ: \"NZ\",\n \"NZ-CHAT\": \"NZ\",\n // Pacific\n \"Pacific/Apia\": \"WS\",\n \"Pacific/Auckland\": \"NZ\",\n \"Pacific/Bougainville\": \"PG\",\n \"Pacific/Chatham\": \"NZ\",\n \"Pacific/Chuuk\": \"FM\",\n \"Pacific/Easter\": \"CL\",\n \"Pacific/Efate\": \"VU\",\n \"Pacific/Enderbury\": \"KI\",\n \"Pacific/Fakaofo\": \"TK\",\n \"Pacific/Fiji\": \"FJ\",\n \"Pacific/Funafuti\": \"TV\",\n \"Pacific/Galapagos\": \"EC\",\n \"Pacific/Gambier\": \"PF\",\n \"Pacific/Guadalcanal\": \"SB\",\n \"Pacific/Guam\": \"GU,MP\",\n \"Pacific/Honolulu\": \"US\",\n \"Pacific/Johnston\": \"UM\",\n \"Pacific/Kanton\": \"KI\",\n \"Pacific/Kiritimati\": \"KI\",\n \"Pacific/Kosrae\": \"FM\",\n \"Pacific/Kwajalein\": \"MH\",\n \"Pacific/Majuro\": \"MH\",\n \"Pacific/Marquesas\": \"PF\",\n \"Pacific/Midway\": \"UM\",\n \"Pacific/Nauru\": \"NR\",\n \"Pacific/Niue\": \"NU\",\n \"Pacific/Norfolk\": \"NF\",\n \"Pacific/Noumea\": \"NC\",\n \"Pacific/Pago_Pago\": \"AS\",\n \"Pacific/Palau\": \"PW\",\n \"Pacific/Pitcairn\": \"PN\",\n \"Pacific/Pohnpei\": \"FM\",\n \"Pacific/Ponape\": \"FM\",\n \"Pacific/Port_Moresby\": \"PG\",\n \"Pacific/Rarotonga\": \"CK\",\n \"Pacific/Saipan\": \"MP\",\n \"Pacific/Samoa\": \"AS\",\n \"Pacific/Tahiti\": \"PF\",\n \"Pacific/Tarawa\": \"KI\",\n \"Pacific/Tongatapu\": \"TO\",\n \"Pacific/Truk\": \"FM\",\n \"Pacific/Wake\": \"UM\",\n \"Pacific/Wallis\": \"WF\",\n \"Pacific/Yap\": \"FM\",\n // Poland\n Poland: \"PL\",\n // Portugal\n Portugal: \"PT\",\n // PRC\n PRC: \"CN\",\n // PST8PDT\n PST8PDT: \"PST8PDT\",\n // ROC\n ROC: \"TW\",\n // ROK\n ROK: \"KR\",\n // Singapore\n Singapore: \"SG\",\n // Turkey\n Turkey: \"TR\",\n // UCT\n UCT: \"UCT\",\n // Universal\n Universal: \"Universal\",\n // US\n \"US/Alaska\": \"US\",\n \"US/Aleutian\": \"US\",\n \"US/Arizona\": \"US\",\n \"US/Central\": \"US\",\n \"US/East-Indiana\": \"US\",\n \"US/Eastern\": \"US\",\n \"US/Hawaii\": \"US\",\n \"US/Indiana-Starke\": \"US\",\n \"US/Michigan\": \"US\",\n \"US/Mountain\": \"US\",\n \"US/Pacific\": \"US\",\n \"US/Samoa\": \"AS\",\n // UTC\n UTC: \"UTC\",\n // W-SU\n \"W-SU\": \"RU\",\n // WET\n WET: \"WET\",\n // Zulu\n Zulu: \"Zulu\",\n} as const;\n","export * from \"./EventQueue\";\nexport * from \"./type\";\n","export * from './base';\nexport * from './events';\nexport * from './provider';","import _curry3 from \"./internal/_curry3\";\nimport _has from \"./internal/_has\";\n\nconst mergeWithKey = _curry3(function mergeWithKey(\n fn: Function,\n l: any,\n r: any\n) {\n const result: any = {};\n let k;\n l = l || {};\n r = r || {};\n\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\nexport default mergeWithKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.requestProviders = exports.announceProvider = exports.createStore = void 0;\nvar store_js_1 = require(\"./store.js\");\nObject.defineProperty(exports, \"createStore\", { enumerable: true, get: function () { return store_js_1.createStore; } });\nvar utils_js_1 = require(\"./utils.js\");\nObject.defineProperty(exports, \"announceProvider\", { enumerable: true, get: function () { return utils_js_1.announceProvider; } });\nObject.defineProperty(exports, \"requestProviders\", { enumerable: true, get: function () { return utils_js_1.requestProviders; } });\n//# sourceMappingURL=index.js.map","import _curry1 from \"./_curry1\";\nimport _curry2 from \"./_curry2\";\nimport _isPlaceholder from \"./_isPlaceholder\";\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry3(fn: Function) {\n return function f3(a: any, b: any, c: any) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder(a)\n ? f3\n : _curry2(function (_b: any, _c: any) {\n return fn(a, _b, _c);\n });\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b)\n ? f3\n : _isPlaceholder(a)\n ? _curry2(function (_a: any, _c: any) {\n return fn(_a, b, _c);\n })\n : _isPlaceholder(b)\n ? _curry2(function (_b: any, _c: any) {\n return fn(a, _b, _c);\n })\n : _curry1(function (_c: any) {\n return fn(a, b, _c);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c)\n ? f3\n : _isPlaceholder(a) && _isPlaceholder(b)\n ? _curry2(function (_a: any, _b: any) {\n return fn(_a, _b, c);\n })\n : _isPlaceholder(a) && _isPlaceholder(c)\n ? _curry2(function (_a: any, _c: any) {\n return fn(_a, b, _c);\n })\n : _isPlaceholder(b) && _isPlaceholder(c)\n ? _curry2(function (_b: any, _c: any) {\n return fn(a, _b, _c);\n })\n : _isPlaceholder(a)\n ? _curry1(function (_a: any) {\n return fn(_a, b, c);\n })\n : _isPlaceholder(b)\n ? _curry1(function (_b: any) {\n return fn(a, _b, c);\n })\n : _isPlaceholder(c)\n ? _curry1(function (_c: any) {\n return fn(a, b, _c);\n })\n : fn(a, b, c);\n }\n };\n}\n","const toSnake = (str: string) =>\n str\n .replace(/([a-z])([A-Z])/g, \"$1_$2\")\n .replace(/[\\s-]+/g, \"_\")\n .toLowerCase();\n\n// Converts object keys to snake_case, omitting keys in the omitKeys array\nexport function toSnakeCase(obj: any, omitKeys: string[] = []) {\n const convert = (data: any): any => {\n if (Array.isArray(data)) {\n return data.map(convert); // Recursively handle array elements\n } else if (data !== null && typeof data === \"object\") {\n return Object.keys(data).reduce((acc: any, key) => {\n // If the key is in omitKeys, keep it as it is\n const resultKey = omitKeys.includes(key) ? key : toSnake(key);\n acc[resultKey] = omitKeys.includes(key)\n ? data[key]\n : convert(data[key]);\n return acc;\n }, {});\n }\n return data;\n };\n\n return convert(obj);\n}\n\nexport const millisecondsToSecond = (milliseconds: number): number =>\n Math.ceil(milliseconds / 1_000);\n\nexport const toDateHourMinute = (date: Date) =>\n date.getUTCFullYear() +\n \"-\" +\n (\"0\" + (date.getUTCMonth() + 1)).slice(-2) +\n \"-\" +\n (\"0\" + date.getUTCDate()).slice(-2) +\n \" \" +\n (\"0\" + date.getUTCHours()).slice(-2) +\n \":\" +\n (\"0\" + date.getUTCMinutes()).slice(-2);\n\nexport const clampNumber = (value: number, max: number, min: number) => {\n return Math.min(Math.max(value, min), max);\n};\n","import _isPlaceholder from \"./_isPlaceholder\";\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn: Function) {\n return function f1(a: any) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}\n","import fetch from \"fetch-retry\";\n\nexport default fetch(global.fetch);\n","import { UUID } from \"crypto\";\nimport { Address, ChainID, Nullable } from \"./base\";\nimport { TEventChannel, TEventType } from \"../constants\";\n\nexport type AnonymousID = UUID;\n\nexport interface ICommonProperties {\n anonymous_id: AnonymousID;\n user_id: Nullable<string>;\n address: Nullable<string>;\n type: TEventType;\n channel: TEventChannel;\n version: string;\n original_timestamp: string;\n event?: Nullable<string>;\n}\n\nexport type IFormoEventProperties = Record<string, unknown>;\nexport type IFormoEventContext = Record<string, unknown>;\nexport type UTMParameters = {\n utm_source: string;\n utm_medium: string;\n utm_campaign: string;\n utm_term: string;\n utm_content: string;\n};\nexport type ITrafficSource = UTMParameters & {\n ref: string;\n referrer: string;\n};\n\nexport interface IFormoEvent extends ICommonProperties {\n context: Nullable<IFormoEventContext>;\n properties: Nullable<IFormoEventProperties>;\n}\n\nexport type IFormoEventPayload = IFormoEvent & {\n message_id: string;\n};\n\n//#region Specific Event Types\nexport interface PageAPIEvent {\n type: \"page\";\n name?: string;\n category?: string;\n}\nexport interface DetectAPIEvent {\n type: \"detect\";\n providerName: string;\n rdns: string;\n}\nexport interface IdentifyAPIEvent {\n type: \"identify\";\n address: string;\n providerName: string;\n rdns: string;\n userId?: Nullable<string>;\n}\nexport interface ChainAPIEvent {\n type: \"chain\";\n chainId: ChainID;\n address: Address;\n}\nexport interface TransactionAPIEvent {\n type: \"transaction\";\n status: TransactionStatus;\n chainId: ChainID;\n address: Address;\n data: string;\n to: string;\n value: string;\n transactionHash?: string;\n}\nexport interface SignatureAPIEvent {\n type: \"signature\";\n status: SignatureStatus;\n chainId: ChainID;\n address: Address;\n message: string;\n signatureHash?: string;\n}\nexport interface ConnectAPIEvent {\n type: \"connect\";\n chainId: ChainID;\n address: Address;\n}\nexport interface DisconnectAPIEvent {\n type: \"disconnect\";\n chainId: ChainID;\n address: Address;\n}\nexport interface TrackAPIEvent {\n type: \"track\";\n event: string;\n volume?: number;\n revenue?: number;\n currency?: string;\n points?: number;\n}\n\nexport type APIEvent = {\n properties?: IFormoEventProperties;\n context?: IFormoEventContext;\n callback?: (...args: unknown[]) => void;\n} & (\n | PageAPIEvent\n | DetectAPIEvent\n | IdentifyAPIEvent\n | ChainAPIEvent\n | TransactionAPIEvent\n | SignatureAPIEvent\n | ConnectAPIEvent\n | DisconnectAPIEvent\n | TrackAPIEvent\n);\n\nexport enum SignatureStatus {\n REQUESTED = \"requested\",\n REJECTED = \"rejected\",\n CONFIRMED = \"confirmed\",\n}\n\nexport enum TransactionStatus {\n STARTED = \"started\",\n REJECTED = \"rejected\",\n BROADCASTED = \"broadcasted\",\n CONFIRMED = \"confirmed\",\n REVERTED = \"reverted\",\n}\n","// Generated by genversion.\nexport const version = '1.17.7';\n","export const isNullish = (item: unknown): item is undefined | null =>\n // Using \"null\" value intentionally for validation\n // eslint-disable-next-line no-null/no-null\n item === undefined || item === null;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","import { createContext, useContext, useEffect, useRef, useState } from \"react\";\nimport { FormoAnalytics } from \"./FormoAnalytics\";\nimport { initStorageManager, logger } from \"./lib\";\nimport { FormoAnalyticsProviderProps, IFormoAnalytics } from \"./types\";\n\nconst defaultContext: IFormoAnalytics = {\n chain: () => Promise.resolve(),\n page: () => Promise.resolve(),\n reset: () => Promise.resolve(),\n detect: () => Promise.resolve(),\n connect: () => Promise.resolve(),\n disconnect: () => Promise.resolve(),\n signature: () => Promise.resolve(),\n transaction: () => Promise.resolve(),\n identify: () => Promise.resolve(),\n track: () => Promise.resolve(),\n};\n\nexport const FormoAnalyticsContext =\n createContext<IFormoAnalytics>(defaultContext);\n\nexport const FormoAnalyticsProvider = (props: FormoAnalyticsProviderProps) => {\n const { writeKey, disabled = false, children } = props;\n\n // Keep the app running without analytics if no Write Key is provided or disabled\n if (!writeKey) {\n logger.error(\"FormoAnalyticsProvider: No Write Key provided\");\n return children;\n }\n\n if (disabled) {\n logger.warn(\"FormoAnalytics is disabled\");\n return children;\n }\n\n return <InitializedAnalytics {...props} />;\n};\n\nconst InitializedAnalytics = ({\n writeKey,\n options,\n children,\n}: FormoAnalyticsProviderProps) => {\n const [sdk, setSdk] = useState<IFormoAnalytics>(defaultContext);\n const initializedStartedRef = useRef(false);\n initStorageManager(writeKey);\n\n const initializeFormoAnalytics = async (writeKey: string, options: any) => {\n try {\n const sdkInstance = await FormoAnalytics.init(writeKey, options);\n setSdk(sdkInstance);\n logger.log(\"Successfully initialized :)\");\n } catch (error) {\n logger.error(\"Failed to initialize :(\", error);\n }\n };\n\n useEffect(() => {\n const initialize = async () => {\n if (initializedStartedRef.current) return;\n initializedStartedRef.current = true;\n\n await initializeFormoAnalytics(writeKey!, options);\n };\n\n initialize();\n }, [writeKey, options]);\n\n return (\n <FormoAnalyticsContext.Provider value={sdk}>\n {children}\n </FormoAnalyticsContext.Provider>\n );\n};\n\nexport const useFormo = () => {\n const context = useContext(FormoAnalyticsContext);\n\n if (!context) {\n logger.warn(\"useFormo called without a valid context\");\n }\n\n return context; // Return undefined if SDK is not initialized, handle accordingly in consumer\n};\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n","import type { UUID } from \"crypto\";\n\nexport async function hash(input: string): Promise<string> {\n const hashBuffer = await crypto.subtle.digest(\n \"SHA-256\",\n new TextEncoder().encode(input)\n );\n const byteArray = new Uint8Array(hashBuffer);\n return Array.from(byteArray)\n .map((byte) => byte.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n\nexport function generateNativeUUID(): UUID {\n return crypto.randomUUID();\n}\n","import { AnonymousID } from \"../../types\";\nimport { generateNativeUUID } from \"../../utils\";\nimport { cookie } from \"../storage\";\n\nconst generateAnonymousId = (key: string): AnonymousID => {\n const storedAnonymousId = cookie().get(key);\n if (storedAnonymousId && typeof storedAnonymousId === \"string\")\n return storedAnonymousId as AnonymousID;\n const newAnonymousId = generateNativeUUID();\n cookie().set(key, newAnonymousId, {\n maxAge: Date.now() + 1000 * 60 * 60 * 24 * 365, // 1 year\n domain: getCookieDomain(),\n path: \"/\",\n });\n return newAnonymousId;\n};\n\nfunction getCookieDomain(hostname: string = window.location.hostname): string {\n // Special cases\n if (\n hostname.includes(\"localhost\") ||\n /^\\d{1,3}(\\.\\d{1,3}){3}$/.test(hostname)\n ) {\n // Localhost or IP address\n return \"\";\n }\n\n const parts = hostname.split(\".\");\n if (parts.includes(\"www\")) parts.splice(parts.indexOf(\"www\"), 1);\n return `.${parts.join(\".\")}`;\n}\n\nexport { generateAnonymousId, getCookieDomain };\n","/**\n * A function to check given value is a function\n * @param value input value\n * @returns boolean\n */\nconst isFunction = (value: any): value is Function =>\n typeof value === \"function\" &&\n Boolean(value.constructor && value.call && value.apply);\n\n/**\n * A function to check given value is a string\n * @param value input value\n * @returns boolean\n */\nconst isString = (value: any): value is string => typeof value === \"string\";\n\n/**\n * A function to check given value is null or not\n * @param value input value\n * @returns boolean\n */\nconst isNull = (value: any): value is null => value === null;\n\n/**\n * A function to check given value is undefined\n * @param value input value\n * @returns boolean\n */\nconst isUndefined = (value: any): value is undefined =>\n typeof value === \"undefined\";\n\n/**\n * A function to check given value is null or undefined\n * @param value input value\n * @returns boolean\n */\nconst isNullOrUndefined = (value: any): boolean =>\n isNull(value) || isUndefined(value);\n\n/**\n * Checks if the input is a BigInt\n * @param value input value\n * @returns True if the input is a BigInt\n */\nconst isBigInt = (value: any): value is bigint => typeof value === \"bigint\";\n\n/**\n * A function to check given value is defined\n * @param value input value\n * @returns boolean\n */\nconst isDefined = (value: any): boolean => !isUndefined(value);\n\n/**\n * A function to check given value is defined and not null\n * @param value input value\n * @returns boolean\n */\nconst isDefinedAndNotNull = (value: any): boolean => !isNullOrUndefined(value);\n\n/**\n * A function to check given value is defined and not null\n * @param value input value\n * @returns boolean\n */\nconst isDefinedNotNullAndNotEmptyString = (value: any): boolean =>\n isDefinedAndNotNull(value) && value !== \"\";\n\n/**\n * Determines if the input is of type error\n * @param value input value\n * @returns true if the input is of type error else false\n */\nconst isTypeOfError = (value: any): boolean => {\n switch (Object.prototype.toString.call(value)) {\n case \"[object Error]\":\n case \"[object Exception]\":\n case \"[object DOMException]\":\n return true;\n default:\n return value instanceof Error;\n }\n};\n\n/**\n * A function to check given value is an array\n * @param value input value\n * @returns true if the input is of type array else false\n */\nconst isArray = (arg: any): arg is Array<any> => {\n return Array.isArray(arg);\n};\n\nconst isBoolean = (arg: any): arg is boolean => {\n return typeof arg === \"boolean\";\n};\n\nconst isNumber = (arg: any): arg is number => {\n return typeof arg === \"number\";\n};\n\nconst isObject = (value: any): value is object => typeof value === \"object\";\n\nconst isObjectAndNotNull = (value: any): value is object =>\n !isNull(value) && isObject(value) && !isArray(value);\n\nconst isRegExp = (arg: any): arg is RegExp => {\n return isObject(arg) && objectToString(arg) === \"[object RegExp]\";\n};\n\nconst isDate = (arg: any): arg is Date => {\n return isObject(arg) && objectToString(arg) === \"[object Date]\";\n};\n\nconst isError = (arg: any): arg is Error => {\n return (\n isObject(arg) &&\n (objectToString(arg) === \"[object Error]\" || arg instanceof Error)\n );\n};\n\nconst isPrimitive = (\n arg: any\n): arg is null | boolean | number | string | symbol | undefined => {\n return (\n arg === null ||\n typeof arg === \"boolean\" ||\n typeof arg === \"number\" ||\n typeof arg === \"string\" ||\n typeof arg === \"symbol\" || // ES6 symbol\n typeof arg === \"undefined\"\n );\n};\n\nconst objectToString = (arg: any) => {\n return Object.prototype.toString.call(arg);\n};\n\nexport {\n isFunction,\n isString,\n isNull,\n isUndefined,\n isNullOrUndefined,\n isTypeOfError,\n isDefined,\n isDefinedAndNotNull,\n isDefinedNotNullAndNotEmptyString,\n isBigInt,\n isArray,\n isBoolean,\n isNumber,\n isObject,\n isObjectAndNotNull,\n isRegExp,\n isDate,\n isError,\n isPrimitive,\n objectToString,\n};\n","import { isUint8Array, uint8ArrayToHexString } from \"./uint8array\";\nimport { keccak256 } from \"ethereum-cryptography/keccak.js\";\nimport { utf8ToBytes } from \"ethereum-cryptography/utils.js\";\nimport { ValidInputTypes } from \"../types\";\nimport { isHexStrict } from \"./string\";\n\nexport const isAddress = (value: ValidInputTypes, checksum = true) => {\n if (typeof value !== \"string\" && !isUint8Array(value)) {\n return false;\n }\n\n let valueToCheck: string;\n\n if (isUint8Array(value)) {\n valueToCheck = uint8ArrayToHexString(value);\n } else if (typeof value === \"string\" && !isHexStrict(value)) {\n valueToCheck = value.toLowerCase().startsWith(\"0x\") ? value : `0x${value}`;\n } else {\n valueToCheck = value;\n }\n\n // check if it has the basic requirements of an address\n if (!/^(0x)?[0-9a-f]{40}$/i.test(valueToCheck)) {\n return false;\n }\n // If it's ALL lowercase or ALL upppercase\n if (\n /^(0x|0X)?[0-9a-f]{40}$/.test(valueToCheck) ||\n /^(0x|0X)?[0-9A-F]{40}$/.test(valueToCheck)\n ) {\n return true;\n // Otherwise check each case\n }\n return checksum ? checkAddressChecksum(valueToCheck) : true;\n};\n\nexport const checkAddressChecksum = (data: string): boolean => {\n if (!/^(0x)?[0-9a-f]{40}$/i.test(data)) return false;\n const address = data.slice(2);\n const updatedData = utf8ToBytes(address.toLowerCase());\n\n const addressHash = uint8ArrayToHexString(\n keccak256(ensureIfUint8Array(updatedData))\n ).slice(2);\n\n for (let i = 0; i < 40; i += 1) {\n // the nth letter should be uppercase if the nth digit of casemap is 1\n if (\n (parseInt(addressHash[i], 16) > 7 &&\n address[i].toUpperCase() !== address[i]) ||\n (parseInt(addressHash[i], 16) <= 7 &&\n address[i].toLowerCase() !== address[i])\n ) {\n return false;\n }\n }\n return true;\n};\n\nexport function ensureIfUint8Array<T = any>(data: T) {\n if (\n !(data instanceof Uint8Array) &&\n (data as { constructor: { name: string } })?.constructor?.name ===\n \"Uint8Array\"\n ) {\n return Uint8Array.from(data as unknown as Uint8Array);\n }\n return data;\n}\n","import { ValidInputTypes } from \"../types\";\n\nexport const isHexStrict = (hex: ValidInputTypes) =>\n typeof hex === \"string\" && /^((-)?0x[0-9a-f]+|(0x))$/i.test(hex);\n","import { logger } from \"../../logger\";\nimport { JSON_PREFIX } from \"../constant\";\nimport StorageBlueprint from \"./blueprint\";\n\nclass WebStorage extends StorageBlueprint {\n constructor(writeKey: string, private readonly backend: Storage) {\n super(writeKey);\n }\n\n public override isAvailable(): boolean {\n try {\n const testKey = \"__storage_test__\";\n this.backend.setItem(testKey, \"1\");\n this.backend.removeItem(testKey);\n return true;\n } catch {\n return false;\n }\n }\n\n public override set(key: string, value: any): void {\n if (typeof value === \"boolean\") value = value === true ? \"true\" : \"false\";\n if (typeof value === \"object\") value = JSON_PREFIX + JSON.stringify(value);\n this.backend.setItem(this.getKey(key), value);\n }\n\n public override get(key: string): string | boolean | Record<any, any> | null {\n const value = this.backend.getItem(this.getKey(key));\n\n if (!value || typeof value !== \"string\") return null;\n if ([\"null\", \"undefined\"].some((item) => item == value)) return null;\n\n if (value.startsWith(JSON_PREFIX)) {\n try {\n return JSON.parse(value.slice(JSON_PREFIX.length));\n } catch (error) {\n logger.error(\n `[FORMO_ERROR] ${this.backend.constructor.name} failed to parse JSON`,\n error\n );\n return null;\n }\n }\n\n if ([\"true\", \"false\"].some((item) => item == value)) {\n return JSON.parse(value);\n }\n\n return value;\n }\n\n public override remove(key: string): void {\n this.backend.removeItem(this.getKey(key));\n }\n}\n\nexport default WebStorage;\n","const getFormattedTimestamp = (date: Date): string => date.toISOString();\n\n/**\n * To get the current timestamp in ISO string format\n * @returns ISO formatted timestamp string\n */\nconst getCurrentTimeFormatted = (): string => getFormattedTimestamp(new Date());\n\nexport { getCurrentTimeFormatted, getFormattedTimestamp };\n","export const getActionDescriptor = (type: string, properties: any): string => {\n return `${type}${properties?.status ? ` ${properties?.status}` : \"\"}`;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createStore = void 0;\nconst utils_js_1 = require(\"./utils.js\");\nfunction createStore() {\n const listeners = new Set();\n let providerDetails = [];\n const request = () => (0, utils_js_1.requestProviders)((providerDetail) => {\n if (providerDetails.some(({ info }) => info.uuid === providerDetail.info.uuid))\n return;\n providerDetails = [...providerDetails, providerDetail];\n listeners.forEach((listener) => listener(providerDetails, { added: [providerDetail] }));\n });\n let unwatch = request();\n return {\n _listeners() {\n return listeners;\n },\n clear() {\n listeners.forEach((listener) => listener([], { removed: [...providerDetails] }));\n providerDetails = [];\n },\n destroy() {\n this.clear();\n listeners.clear();\n unwatch?.();\n },\n findProvider({ rdns }) {\n return providerDetails.find((providerDetail) => providerDetail.info.rdns === rdns);\n },\n getProviders() {\n return providerDetails;\n },\n reset() {\n this.clear();\n unwatch?.();\n unwatch = request();\n },\n subscribe(listener, { emitImmediately } = {}) {\n listeners.add(listener);\n if (emitImmediately)\n listener(providerDetails, { added: providerDetails });\n return () => listeners.delete(listener);\n },\n };\n}\nexports.createStore = createStore;\n//# sourceMappingURL=store.js.map","export * from \"./base\";\nexport * from \"./config\";\nexport * from \"./events\";\n","import { Address, APIEvent } from \"../../types\";\nimport { logger } from \"../logger\";\nimport { IEventQueue } from \"../queue\";\nimport { EventFactory } from \"./EventFactory\";\nimport { IEventFactory, IEventManager } from \"./type\";\n\n/**\n * A service to generate valid event payloads and queue them for processing\n */\nclass EventManager implements IEventManager {\n eventQueue: IEventQueue;\n eventFactory: IEventFactory;\n\n /**\n *\n * @param eventQueue Event queue instance\n */\n constructor(eventQueue: IEventQueue) {\n this.eventQueue = eventQueue;\n this.eventFactory = new EventFactory();\n }\n\n /**\n * Consumes a new incoming event\n * @param event Incoming event data\n */\n addEvent(event: APIEvent, address?: Address, userId?: string): void {\n const { callback, ..._event } = event;\n const formoEvent = this.eventFactory.create(_event, address, userId);\n this.eventQueue.enqueue(formoEvent, (err, _, data) => {\n if (err) {\n logger.error(\"Error sending events:\", err);\n } else logger.info(`Events sent successfully: ${data.length} events`);\n callback?.(err, _, data);\n });\n }\n}\n\nexport { EventManager };\n","export const isLocalhost = () =>\n /^localhost$|^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^(?:0*:)*?:?0*1$/.test(\n window.location.hostname\n ) || window.location.protocol === \"file:\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import { IStorage, StorageType } from \"./type\";\nimport { StorageManager } from \"./StorageManager\";\nexport * from \"./type\";\n\nlet globalManager: StorageManager | null = null;\n\nexport function initStorageManager(writeKey: string): void {\n if (!globalManager) {\n globalManager = new StorageManager(writeKey);\n }\n}\n\nfunction getStorageInstance(type: StorageType): IStorage {\n if (!globalManager) {\n throw new Error(\n \"StorageManager not initialized. Call initStorageManager(writeKey) first.\"\n );\n }\n return globalManager.getStorage(type);\n}\n\nexport const cookie = () => getStorageInstance(\"cookieStorage\");\nexport const local = () => getStorageInstance(\"localStorage\");\nexport const session = () => getStorageInstance(\"sessionStorage\");\nexport const memory = () => getStorageInstance(\"memoryStorage\");\n","export const SESSION_TRAFFIC_SOURCE_KEY = \"traffic-source\";\nexport const SESSION_WALLET_DETECTED_KEY = \"wallet-detected\";\nexport const SESSION_CURRENT_URL_KEY = \"analytics-current-url\";\nexport const SESSION_USER_ID_KEY = \"user-id\";\n\nexport const LOCAL_ANONYMOUS_ID_KEY = \"anonymous-id\";\n","const CHANNEL = \"web\";\nconst VERSION = \"0\";\n\nexport { CHANNEL, VERSION };\n","export const JSON_PREFIX = \"__json=\";\nexport const KEY_PREFIX = \"formo\";\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.aoutput = exports.anumber = exports.aexists = exports.abytes = void 0;\n/**\n * Internal assertion helpers.\n * @module\n * @deprecated\n */\nconst utils_ts_1 = require(\"./utils.js\");\n/** @deprecated Use import from `noble/hashes/utils` module */\nexports.abytes = utils_ts_1.abytes;\n/** @deprecated Use import from `noble/hashes/utils` module */\nexports.aexists = utils_ts_1.aexists;\n/** @deprecated Use import from `noble/hashes/utils` module */\nexports.anumber = utils_ts_1.anumber;\n/** @deprecated Use import from `noble/hashes/utils` module */\nexports.aoutput = utils_ts_1.aoutput;\n//# sourceMappingURL=_assert.js.map","export * from \"./EventFactory\";\nexport * from \"./EventManager\";\nexport * from \"./type\";\n","import { formofy } from \"./initialization\";\nexport * from \"./FormoAnalyticsProvider\";\nexport * from \"./FormoAnalytics\";\nexport * from \"./types\";\n\n(window as any).formofy = formofy;\n","export * from \"./Logger\";\nexport * from \"./type\";\n","import {\n COUNTRY_LIST,\n LOCAL_ANONYMOUS_ID_KEY,\n SESSION_TRAFFIC_SOURCE_KEY,\n} from \"../../constants\";\nimport {\n Address,\n APIEvent,\n ChainID,\n IFormoEvent,\n IFormoEventContext,\n IFormoEventProperties,\n ITrafficSource,\n Nullable,\n SignatureStatus,\n TransactionStatus,\n UTMParameters,\n} from \"../../types\";\nimport { toChecksumAddress, toSnakeCase } from \"../../utils\";\nimport { getCurrentTimeFormatted } from \"../../utils/timestamp\";\nimport { isUndefined } from \"../../validators\";\nimport { logger } from \"../logger\";\nimport mergeDeepRight from \"../ramda/mergeDeepRight\";\nimport { session } from \"../storage\";\nimport { version } from \"../version\";\nimport { CHANNEL, VERSION } from \"./constants\";\nimport { IEventFactory } from \"./type\";\nimport { generateAnonymousId } from \"./utils\";\n\nclass EventFactory implements IEventFactory {\n private getTimezone(): string {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n } catch (error) {\n logger.error(\"Error resolving timezone:\", error);\n return \"\";\n }\n }\n\n private getLocation(): string | undefined {\n try {\n const timezone = this.getTimezone();\n if (timezone in COUNTRY_LIST)\n return COUNTRY_LIST[timezone as keyof typeof COUNTRY_LIST];\n return timezone;\n } catch (error) {\n logger.error(\"Error resolving location:\", error);\n return \"\";\n }\n }\n\n private getLanguage(): string {\n try {\n return (\n (navigator.languages && navigator.languages.length\n ? navigator.languages[0]\n : navigator.language) || \"en\"\n );\n } catch (error) {\n logger.error(\"Error resolving language:\", error);\n return \"en\";\n }\n }\n\n private getLibraryVersion(): string {\n return version;\n }\n\n private extractUTMParameters = (url: string): UTMParameters => {\n const result: UTMParameters = {\n utm_campaign: \"\",\n utm_content: \"\",\n utm_medium: \"\",\n utm_source: \"\",\n utm_term: \"\",\n };\n try {\n const urlObj = new URL(url);\n const UTM_PREFIX = \"utm_\";\n urlObj.searchParams.forEach((value, sParam) => {\n if (sParam.startsWith(UTM_PREFIX)) {\n result[sParam as keyof UTMParameters] = value.trim();\n }\n });\n } catch (error) {}\n return result;\n };\n\n private extractReferralParameter = (urlObj: URL): string => {\n const referralParams = ['ref', 'referral', 'refcode'];\n \n for (const param of referralParams) {\n const value = urlObj.searchParams.get(param)?.trim();\n if (value) return value;\n }\n \n return \"\";\n };\n\n private getTrafficSources = (url: string): ITrafficSource => {\n const urlObj = new URL(url);\n const contextTrafficSources: ITrafficSource = {\n ...this.extractUTMParameters(url),\n ref: this.extractReferralParameter(urlObj),\n referrer: document.referrer,\n };\n const storedTrafficSources =\n (session().get(SESSION_TRAFFIC_SOURCE_KEY) as ITrafficSource) || {};\n\n const finalTrafficSources: ITrafficSource = {\n ref: contextTrafficSources.ref || storedTrafficSources?.ref || \"\",\n referrer:\n contextTrafficSources.referrer || storedTrafficSources?.referrer,\n utm_campaign:\n contextTrafficSources.utm_campaign ||\n storedTrafficSources?.utm_campaign ||\n \"\",\n utm_content:\n contextTrafficSources.utm_content ||\n storedTrafficSources?.utm_content ||\n \"\",\n utm_medium:\n contextTrafficSources.utm_medium ||\n storedTrafficSources?.utm_medium ||\n \"\",\n utm_source:\n contextTrafficSources.utm_source ||\n storedTrafficSources?.utm_source ||\n \"\",\n utm_term:\n contextTrafficSources.utm_term || storedTrafficSources?.utm_term || \"\",\n };\n\n // Store to session\n const sessionStoredTrafficSources = Object.keys(finalTrafficSources).reduce(\n (res: any, key: any) => {\n const value = finalTrafficSources[key as keyof ITrafficSource];\n if (!isUndefined(value) && value !== \"\") {\n res[key as keyof ITrafficSource] = value;\n }\n return res;\n },\n {}\n );\n\n if (Object.keys(sessionStoredTrafficSources).length)\n session().set(SESSION_TRAFFIC_SOURCE_KEY, sessionStoredTrafficSources);\n\n return finalTrafficSources;\n };\n\n // Contextual fields that are automatically collected and populated by the Formo SDK\n private generateContext(context?: IFormoEventContext): IFormoEventContext {\n const path = globalThis.location.pathname;\n const language = this.getLanguage();\n const timezone = this.getTimezone();\n const location = this.getLocation();\n const library_version = this.getLibraryVersion();\n\n // contextual properties\n const defaultContext = {\n user_agent: globalThis.navigator.userAgent,\n locale: language,\n timezone,\n location,\n ...this.getTrafficSources(globalThis.location.href),\n page_path: path,\n page_title: document.title,\n page_url: globalThis.location.href,\n library_name: \"Formo Web SDK\",\n library_version,\n };\n\n const mergedContext = mergeDeepRight(\n defaultContext,\n context || {}\n ) as IFormoEventContext;\n\n return mergedContext;\n }\n\n /**\n * Add any missing default page properties using values from options and defaults\n * @param properties Input page properties\n * @param options API options\n */\n private getPageProperties = (\n properties: IFormoEventProperties\n ): IFormoEventProperties => {\n const pageProps = properties;\n\n if (isUndefined(pageProps.url)) {\n pageProps.url = new URL(globalThis.location.href).href;\n }\n\n if (isUndefined(pageProps.path)) {\n pageProps.path = globalThis.location.pathname;\n }\n\n if (isUndefined(pageProps.hash)) {\n pageProps.hash = globalThis.location.hash;\n }\n\n return pageProps;\n };\n\n private getEnrichedEvent = (\n formoEvent: Partial<IFormoEvent>,\n context?: IFormoEventContext\n ): IFormoEvent => {\n const commonEventData = {\n context: this.generateContext(context),\n original_timestamp: getCurrentTimeFormatted(),\n user_id: formoEvent.user_id,\n type: formoEvent.type,\n channel: CHANNEL,\n version: VERSION,\n } as Partial<IFormoEvent>;\n\n commonEventData.anonymous_id = generateAnonymousId(LOCAL_ANONYMOUS_ID_KEY);\n\n if (formoEvent.address) {\n commonEventData.address = toChecksumAddress(formoEvent.address);\n } else {\n commonEventData.address = formoEvent.address;\n }\n\n const processedEvent = mergeDeepRight(\n formoEvent,\n commonEventData\n ) as IFormoEvent;\n\n if (processedEvent.event === undefined) {\n processedEvent.event = null;\n }\n\n if (processedEvent.properties === undefined) {\n processedEvent.properties = null;\n }\n\n return toSnakeCase(processedEvent);\n };\n\n generatePageEvent(\n category?: string,\n name?: string,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ): IFormoEvent {\n let props = properties ?? {};\n props.category = category;\n props.name = name;\n props = this.getPageProperties(props);\n\n const pageEvent: Partial<IFormoEvent> = {\n properties: props,\n type: \"page\",\n };\n\n return this.getEnrichedEvent(pageEvent, context);\n }\n\n generateDetectWalletEvent(\n providerName: string,\n rdns: string,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ) {\n const detectEvent: Partial<IFormoEvent> = {\n properties: {\n providerName,\n rdns,\n ...properties,\n },\n type: \"detect\",\n };\n\n return this.getEnrichedEvent(detectEvent, context);\n }\n\n generateIdentifyEvent(\n providerName: string,\n rdns: string,\n address: Nullable<Address>,\n userId?: Nullable<string>,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ) {\n const identifyEvent: Partial<IFormoEvent> = {\n properties: {\n providerName,\n rdns,\n ...properties,\n },\n user_id: userId,\n address,\n type: \"identify\",\n };\n\n return this.getEnrichedEvent(identifyEvent, context);\n }\n\n generateConnectEvent(\n chainId: ChainID,\n address: Address,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ) {\n const connectEvent: Partial<IFormoEvent> = {\n properties: {\n chainId,\n ...properties,\n },\n address,\n type: \"connect\",\n };\n\n return this.getEnrichedEvent(connectEvent, context);\n }\n\n generateDisconnectEvent(\n chainId: ChainID,\n address: Address,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ) {\n const disconnectEvent: Partial<IFormoEvent> = {\n properties: {\n chainId,\n ...properties,\n },\n address,\n type: \"disconnect\",\n };\n\n return this.getEnrichedEvent(disconnectEvent, context);\n }\n\n generateChainChangedEvent(\n chainId: ChainID,\n address: Address,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ) {\n const chainEvent: Partial<IFormoEvent> = {\n properties: {\n chainId,\n ...properties,\n },\n address,\n type: \"chain\",\n };\n\n return this.getEnrichedEvent(chainEvent, context);\n }\n\n generateSignatureEvent(\n status: SignatureStatus,\n chainId: ChainID,\n address: Address,\n message: string,\n signatureHash?: string,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ) {\n const signatureEvent: Partial<IFormoEvent> = {\n properties: {\n status,\n chainId,\n message,\n ...(signatureHash && { signatureHash }),\n ...properties,\n },\n address,\n type: \"signature\",\n };\n\n return this.getEnrichedEvent(signatureEvent, context);\n }\n\n generateTransactionEvent(\n status: TransactionStatus,\n chainId: ChainID,\n address: Address,\n data: string,\n to: string,\n value: string,\n transactionHash?: string,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ) {\n const transactionEvent: Partial<IFormoEvent> = {\n properties: {\n status,\n chainId,\n data,\n to,\n value,\n ...(transactionHash && { transactionHash }),\n ...properties,\n },\n address,\n type: \"transaction\",\n };\n\n return this.getEnrichedEvent(transactionEvent, context);\n }\n\n generateTrackEvent(\n event: string,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ) {\n const trackEvent: Partial<IFormoEvent> = {\n properties: {\n ...properties,\n ...(properties?.revenue !== undefined && {\n revenue: Number(properties.revenue),\n currency: (typeof properties?.currency === \"string\"\n ? properties.currency\n : \"USD\"\n ).toLowerCase(),\n }),\n ...(properties?.points !== undefined && {\n points: Number(properties.points),\n }),\n ...(properties?.volume !== undefined && {\n volume: Number(properties.volume),\n }),\n },\n event,\n type: \"track\",\n };\n\n return this.getEnrichedEvent(trackEvent, context);\n }\n\n // Returns an event with type, context, properties, and common properties\n create(event: APIEvent, address?: Address, userId?: string): IFormoEvent {\n let formoEvent: Partial<IFormoEvent> = {};\n\n formoEvent.address = address || null;\n formoEvent.user_id = userId || null;\n\n switch (event.type) {\n case \"page\":\n formoEvent = this.generatePageEvent(\n event.category,\n event.name,\n event.properties,\n event.context\n );\n break;\n case \"detect\":\n formoEvent = this.generateDetectWalletEvent(\n event.providerName,\n event.rdns,\n event.properties,\n event.context\n );\n break;\n case \"identify\":\n formoEvent = this.generateIdentifyEvent(\n event.providerName,\n event.rdns,\n event.address,\n event.userId,\n event.properties,\n event.context\n );\n break;\n case \"chain\":\n formoEvent = this.generateChainChangedEvent(\n event.chainId,\n event.address,\n event.properties,\n event.context\n );\n break;\n case \"connect\":\n formoEvent = this.generateConnectEvent(\n event.chainId,\n event.address,\n event.properties,\n event.context\n );\n break;\n case \"disconnect\":\n formoEvent = this.generateDisconnectEvent(\n event.chainId,\n event.address,\n event.properties,\n event.context\n );\n break;\n case \"signature\":\n formoEvent = this.generateSignatureEvent(\n event.status,\n event.chainId,\n event.address,\n event.message,\n event.signatureHash,\n event.properties,\n event.context\n );\n break;\n case \"transaction\":\n formoEvent = this.generateTransactionEvent(\n event.status,\n event.chainId,\n event.address,\n event.data,\n event.to,\n event.value,\n event.transactionHash,\n event.properties,\n event.context\n );\n break;\n case \"track\":\n default:\n formoEvent = this.generateTrackEvent(\n event.event,\n event.properties,\n event.context\n );\n break;\n }\n return formoEvent as IFormoEvent;\n }\n}\n\nexport { EventFactory };\n","import StorageBlueprint from \"./blueprint\";\nimport { CookieOptions } from \"../type\";\n\nclass CookieStorage extends StorageBlueprint {\n public override isAvailable(): boolean {\n return (\n typeof document !== \"undefined\" && typeof document.cookie === \"string\"\n );\n }\n\n public override set(\n key: string,\n value: string,\n options?: CookieOptions\n ): void {\n const expires = options?.expires;\n const maxAge = options?.maxAge;\n const path = options?.path || \"/\";\n const domain = options?.domain;\n const sameSite = options?.sameSite;\n const secure = options?.secure || false;\n\n let cookie = `${encodeURIComponent(this.getKey(key))}=${encodeURIComponent(\n value\n )}`;\n if (maxAge) {\n cookie += \"; max-age=\" + maxAge;\n } else if (expires) {\n cookie += \"; expires=\" + expires;\n }\n if (path) {\n cookie += \"; path=\" + path;\n }\n if (domain) {\n cookie += \"; domain=\" + domain;\n }\n if (sameSite) {\n cookie += \"; samesite=\" + sameSite;\n }\n if (secure) {\n cookie += \"; secure\";\n }\n document.cookie = cookie;\n }\n\n public override get(key: string): string | null {\n const match = document.cookie.match(\n new RegExp(`(?:^|; )${encodeURIComponent(this.getKey(key))}=([^;]*)`)\n );\n return match ? decodeURIComponent(match[1]) : null;\n }\n\n public override remove(key: string): void {\n document.cookie = `${encodeURIComponent(\n this.getKey(key)\n )}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT`;\n }\n}\n\nexport default CookieStorage;\n","export * from \"./event\";\nexport * from \"./logger\";\nexport * from \"./queue\";\nexport * from \"./storage\";\nexport { default as fetch } from \"./fetch\";\n","\"use strict\";\n/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapXOFConstructorWithOpts = exports.wrapConstructorWithOpts = exports.wrapConstructor = exports.Hash = exports.nextTick = exports.swap32IfBE = exports.byteSwapIfBE = exports.swap8IfBE = exports.isLE = void 0;\nexports.isBytes = isBytes;\nexports.anumber = anumber;\nexports.abytes = abytes;\nexports.ahash = ahash;\nexports.aexists = aexists;\nexports.aoutput = aoutput;\nexports.u8 = u8;\nexports.u32 = u32;\nexports.clean = clean;\nexports.createView = createView;\nexports.rotr = rotr;\nexports.rotl = rotl;\nexports.byteSwap = byteSwap;\nexports.byteSwap32 = byteSwap32;\nexports.bytesToHex = bytesToHex;\nexports.hexToBytes = hexToBytes;\nexports.asyncLoop = asyncLoop;\nexports.utf8ToBytes = utf8ToBytes;\nexports.bytesToUtf8 = bytesToUtf8;\nexports.toBytes = toBytes;\nexports.kdfInputToBytes = kdfInputToBytes;\nexports.concatBytes = concatBytes;\nexports.checkOpts = checkOpts;\nexports.createHasher = createHasher;\nexports.createOptHasher = createOptHasher;\nexports.createXOFer = createXOFer;\nexports.randomBytes = randomBytes;\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nfunction isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is positive integer. */\nfunction anumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error('positive integer expected, got ' + n);\n}\n/** Asserts something is Uint8Array. */\nfunction abytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n/** Asserts something is hash */\nfunction ahash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.createHasher');\n anumber(h.outputLen);\n anumber(h.blockLen);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nfunction aexists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\n/** Asserts output is properly-sized byte array */\nfunction aoutput(out, instance) {\n abytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error('digestInto() expects output buffer of length at least ' + min);\n }\n}\n/** Cast u8 / u16 / u32 to u8. */\nfunction u8(arr) {\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** Cast u8 / u16 / u32 to u32. */\nfunction u32(arr) {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nfunction clean(...arrays) {\n for (let i = 0; i < arrays.length; i++) {\n arrays[i].fill(0);\n }\n}\n/** Create DataView of an array for easy byte-level manipulation. */\nfunction createView(arr) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** The rotate right (circular right shift) operation for uint32 */\nfunction rotr(word, shift) {\n return (word << (32 - shift)) | (word >>> shift);\n}\n/** The rotate left (circular left shift) operation for uint32 */\nfunction rotl(word, shift) {\n return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexports.isLE = (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n/** The byte swap operation for uint32 */\nfunction byteSwap(word) {\n return (((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff));\n}\n/** Conditionally byte swap if on a big-endian platform */\nexports.swap8IfBE = exports.isLE\n ? (n) => n\n : (n) => byteSwap(n);\n/** @deprecated */\nexports.byteSwapIfBE = exports.swap8IfBE;\n/** In place byte swap for Uint32Array */\nfunction byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n return arr;\n}\nexports.swap32IfBE = exports.isLE\n ? (u) => u\n : byteSwap32;\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = /* @__PURE__ */ (() => \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // @ts-ignore\n if (hasHexBuiltin)\n return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * Call of async fn will return Promise, which will be fullfiled only on\n * next scheduler queue processing step and this is exactly what we need.\n */\nconst nextTick = async () => { };\nexports.nextTick = nextTick;\n/** Returns control to thread each 'tick' ms to avoid blocking. */\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\n/**\n * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\nfunction bytesToUtf8(bytes) {\n return new TextDecoder().decode(bytes);\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/**\n * Helper for KDFs: consumes uint8array or string.\n * When string is passed, does utf8 decoding, using TextDecoder.\n */\nfunction kdfInputToBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/** Copies several Uint8Arrays into one. */\nfunction concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\nfunction checkOpts(defaults, opts) {\n if (opts !== undefined && {}.toString.call(opts) !== '[object Object]')\n throw new Error('options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\n/** For runtime check if class implements interface */\nclass Hash {\n}\nexports.Hash = Hash;\n/** Wraps hash function, creating an interface on top of it */\nfunction createHasher(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nfunction createOptHasher(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nfunction createXOFer(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexports.wrapConstructor = createHasher;\nexports.wrapConstructorWithOpts = createOptHasher;\nexports.wrapXOFConstructorWithOpts = createXOFer;\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto && typeof crypto_1.crypto.getRandomValues === 'function') {\n return crypto_1.crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto_1.crypto && typeof crypto_1.crypto.randomBytes === 'function') {\n return Uint8Array.from(crypto_1.crypto.randomBytes(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","export * from \"./address\";\nexport * from \"./base\";\nexport * from \"./converter\";\nexport * from \"./generate\";\n","import _curry3 from \"./internal/_curry3\";\nimport _isObject from \"./internal/_isObject\";\nimport mergeWithKey from \"./mergeWithKey\";\n\nconst mergeDeepWithKey = _curry3(function mergeDeepWithKey(\n fn: Function,\n lObj: any,\n rObj: any\n) {\n return mergeWithKey(\n function (k: Function, lVal: any, rVal: any) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n },\n lObj,\n rObj\n );\n});\nexport default mergeDeepWithKey;\n","export * from \"./address\";\nexport * from \"./agent\";\nexport * from \"./checks\";\nexport * from \"./network\";\nexport * from \"./object\";\nexport * from \"./string\";\nexport * from \"./uint8array\";\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(8156);\n"],"names":["root","factory","exports","module","define","amd","self","chainId","startsWith","parseInt","a","fn","f2","b","arguments","length","_b","_a","prop","obj","Object","prototype","hasOwnProperty","call","noop","writeKey","options","queue","payloadHashes","Set","onPageLeave","callback","pageLeft","isAccessible","handleOnLeave","setTimeout","globalThis","addEventListener","document","visibilityState","this","url","retryCount","clampNumber","flushAt","maxQueueSize","flushIntervalMs","flushInterval","flushed","errorHandler","pendingFlush","timer","flush","generateMessageId","event","formattedTimestamp","toDateHourMinute","Date","original_timestamp","eventForHashing","eventString","JSON","stringify","hash","enqueue","message_id","isDuplicate","logger","warn","millisecondsToSecond","push","message","log","getActionDescriptor","type","properties","hasReachedFlushAt","hasReachedQueueSize","reduce","acc","item","bind","clearTimeout","Promise","resolve","items","splice","clear","sentAt","toISOString","data","map","sent_at","done","err","forEach","headers","EVENTS_API_REQUEST_HEADER","method","body","keepalive","retries","retryDelay","attempt","Math","pow","retryOn","_","error","isErrorRetryable","then","catch","response","Error","statusText","isNetworkError","status","eventId","has","add","EventQueue","isError","name","undefined","stack","errorMessages","objectToString","toString","value","_providerListeners","_providers","currentAddress","currentUserId","config","session","FormoAnalyticsSession","cookie","get","SESSION_USER_ID_KEY","identify","connect","disconnect","chain","signature","transaction","detect","track","Logger","init","enabled","enabledLevels","levels","eventManager","EventManager","EVENTS_API_URL","provider","window","ethereum","trackProvider","trackPageHit","trackPageHits","initStorageManager","analytics","FormoAnalytics","getProviders","detectWallets","page","category","context","reset","remove","LOCAL_ANONYMOUS_ID_KEY","address","currentChainId","trackEvent","EventType","CONNECT","params","DISCONNECT","info","Number","isNaN","CHAIN","signatureHash","SIGNATURE","to","transactionHash","TRANSACTION","p","providerDetail","getAddress","rdns","providerName","userId","set","IDENTIFY","isWalletDetected","markWalletDetected","DETECT","TRACK","_provider","actions","keys","action","removeListener","registerAccountsChangedListener","registerChainChangedListener","registerConnectListener","registerRequestListeners","listener","onAccountsChanged","args","on","accounts","getCurrentChainId","onChainChanged","chainIdHex","parseChainId","connection","onConnected","getOwnPropertyDescriptor","writable","request","Array","isArray","includes","SignatureStatus","REQUESTED","buildSignatureEventPayload","e","CONFIRMED","rpcError","code","REJECTED","buildTransactionEventPayload","payload","TransactionStatus","STARTED","BROADCASTED","pollTransactionReceipt","onLocationChange","SESSION_CURRENT_URL_KEY","location","href","oldPushState","history","pushState","ret","apply","dispatchEvent","Event","oldReplaceState","replaceState","shouldTrack","PAGE","addEvent","tracking","excludeHosts","excludePaths","excludeChains","hostname","pathname","isLocalhost","store","createStore","providers","subscribe","providerDetails","eip6963ProviderDetail","getAccounts","isAddress","res","filter","basePayload","Buffer","from","slice","maxAttempts","intervalMs","attempts","poll","receipt","REVERTED","SESSION_WALLET_DETECTED_KEY","split","rdnses","join","expires","now","toUTCString","path","toChecksumAddress","lowerCaseAddress","toLowerCase","replace","uint8ArrayToHexString","keccak256","ensureIfUint8Array","utf8ToBytes","isNullish","checksumAddress","addressHash","i","toUpperCase","f","k","Symbol","for","l","m","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","key","ref","__self","__source","q","c","g","d","h","defaultProps","$$typeof","props","_owner","current","Fragment","jsx","jsxs","TYPES","storages","Map","getStorage","storage","createStorage","isAvailable","index","indexOf","localStorage","sessionStorage","StorageManager","mergeDeepRight","lObj","rObj","__","rVal","defineProperty","notImplemented","bitMask","isBytes","abytes","abool","title","numberToHexUnpadded","hexToNumber","bytesToHex","hexToBytes","bytesToNumberBE","bytes","bytesToNumberLE","Uint8Array","reverse","numberToBytesBE","numberToBytesLE","len","numberToVarBytesBE","ensureBytes","hex","expectedLength","concatBytes","equalBytes","diff","str","TextEncoder","encode","inRange","aInRange","min","max","bitLen","_0n","_1n","bitGet","pos","BigInt","bitSet","createHmacDrbg","hashLen","qByteLen","hmacFn","v","u8n","fill","reseed","seed","u8fr","gen","out","sl","pred","validateObject","object","validators","optValidators","checkField","fieldName","isOptional","checkVal","validatorFns","val","String","entries","memoized","WeakMap","arg","computed","ArrayBuffer","isView","constructor","num","hasHexBuiltin","toHex","fromHex","hexes","padStart","asciis","_0","_9","A","F","asciiToBase16","ch","hl","al","array","ai","hi","n1","charCodeAt","n2","char","arrays","sum","pad","isPosBig","arr","bigint","function","boolean","string","stringOrUint8Array","isSafeInteger","field","Fp","isValid","outputLen","memoryStorage","getKey","MemoryStorage","keccak512","keccak384","keccak224","sha3_1","utils_js_1","wrapHash","keccak_224","keccak_256","create","keccak_384","keccak_512","x","KEY_PREFIX","StorageBlueprint","EventChannel","requestProviders","announceProvider","detail","CustomEvent","freeze","handler","removeEventListener","toBig","shrSL","shrSH","rotrSL","rotrSH","rotrBL","rotrBH","rotr32L","rotr32H","rotlSL","rotlSH","rotlBL","rotlBH","add5L","add5H","add4L","add4H","add3L","add3H","fromBig","U32_MASK64","_32n","le","lst","Ah","Uint32Array","Al","_l","s","_h","Bh","Bl","Cl","low","Ch","Dl","Dh","El","Eh","u64","assertBytes","assertBool","createView","bytesToUtf8","TypeError","TextDecoder","decode","sliced","substring","utils_2","equalsBytes","msg","_assert_1","utils_1","enumerable","utils_3","instance","getInstance","setEnabled","setEnabledLevels","isLoggingEnabled","getEnabledLevels","shouldLog","level","formatMessage","timestamp","toLocaleString","year","month","day","hour","minute","second","hour12","debug","console","trace","shake256","shake128","sha3_512","sha3_384","sha3_256","sha3_224","Keccak","keccakP","_u64_ts_1","utils_ts_1","_2n","_7n","_256n","_0x71n","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","round","R","y","t","j","IOTAS","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","rounds","B","idx1","idx0","B0","B1","Th","Tl","curH","curL","shift","PI","clean","Hash","blockLen","suffix","enableXOF","super","posOut","finished","destroyed","anumber","state","state32","u32","clone","_cloneInto","keccak","swap32IfBE","update","aexists","toBytes","take","finish","writeInto","bufferOut","subarray","xofInto","xof","digestInto","aoutput","destroy","digest","createHasher","genShake","createXOFer","opts","dkLen","formo","uint8Array","hexString","isPositiveInteger","isInteger","ArgumentError","fetch","defaults","assign","input","reject","wrappedFetch","_input","Request","retryOnResponse","retry","delay","EVENTS_API_HOST","USER_API_URL","Authorization","COUNTRY_LIST","CET","CST6CDT","Cuba","EET","Egypt","Eire","EST","EST5EDT","Factory","GB","GMT","GMT0","Greenwich","Hongkong","HST","Iceland","Iran","Israel","Jamaica","Japan","Kwajalein","Libya","MET","MST","MST7MDT","Navajo","NZ","Poland","Portugal","PRC","PST8PDT","ROC","ROK","Singapore","Turkey","UCT","Universal","UTC","WET","Zulu","mergeWithKey","r","result","store_js_1","f3","_c","omitKeys","convert","toSnake","milliseconds","ceil","date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","f1","version","crypto","defaultContext","FormoAnalyticsContext","createContext","FormoAnalyticsProvider","disabled","children","InitializedAnalytics","useState","sdk","setSdk","initializedStartedRef","useRef","initializeFormoAnalytics","sdkInstance","useEffect","Provider","useFormo","useContext","u","w","z","iterator","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","C","D","E","refs","updater","G","isReactComponent","setState","forceUpdate","H","isPureReactComponent","I","J","K","L","M","O","P","Q","escape","N","next","S","T","_status","_result","default","U","V","transition","W","ReactCurrentDispatcher","ReactCurrentBatchConfig","X","Children","count","toArray","only","Component","Profiler","PureComponent","StrictMode","Suspense","act","cloneElement","_currentValue","_currentValue2","_threadCount","Consumer","_defaultValue","_globalName","_context","createElement","createFactory","createRef","forwardRef","render","isValidElement","lazy","_payload","_init","memo","compare","startTransition","unstable_act","useCallback","useDebugValue","useDeferredValue","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useSyncExternalStore","useTransition","subtle","hashBuffer","byteArray","byte","randomUUID","getCookieDomain","test","parts","generateAnonymousId","storedAnonymousId","newAnonymousId","generateNativeUUID","maxAge","domain","isFunction","Boolean","isString","isNull","isUndefined","isNullOrUndefined","isBigInt","isDefined","isDefinedAndNotNull","isDefinedNotNullAndNotEmptyString","isTypeOfError","isBoolean","isNumber","isObject","isObjectAndNotNull","isRegExp","isDate","isPrimitive","checksum","isUint8Array","valueToCheck","isHexStrict","checkAddressChecksum","updatedData","backend","testKey","setItem","removeItem","JSON_PREFIX","getItem","some","parse","WebStorage","getFormattedTimestamp","getCurrentTimeFormatted","listeners","uuid","added","unwatch","_listeners","removed","findProvider","find","emitImmediately","delete","eventQueue","eventFactory","EventFactory","_event","formoEvent","protocol","globalManager","getStorageInstance","local","memory","SESSION_TRAFFIC_SOURCE_KEY","CHANNEL","VERSION","formofy","extractUTMParameters","utm_campaign","utm_content","utm_medium","utm_source","utm_term","URL","searchParams","sParam","trim","extractReferralParameter","urlObj","param","getTrafficSources","contextTrafficSources","referrer","storedTrafficSources","finalTrafficSources","sessionStoredTrafficSources","getPageProperties","pageProps","getEnrichedEvent","commonEventData","generateContext","user_id","channel","anonymous_id","processedEvent","toSnakeCase","getTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","getLocation","timezone","getLanguage","navigator","languages","language","getLibraryVersion","library_version","user_agent","userAgent","locale","page_path","page_title","page_url","library_name","generatePageEvent","pageEvent","generateDetectWalletEvent","detectEvent","generateIdentifyEvent","identifyEvent","generateConnectEvent","connectEvent","generateDisconnectEvent","disconnectEvent","generateChainChangedEvent","chainEvent","generateSignatureEvent","signatureEvent","generateTransactionEvent","transactionEvent","generateTrackEvent","revenue","currency","points","volume","sameSite","secure","encodeURIComponent","match","RegExp","decodeURIComponent","CookieStorage","wrapXOFConstructorWithOpts","wrapConstructorWithOpts","wrapConstructor","nextTick","byteSwapIfBE","swap8IfBE","isLE","ahash","checkFinished","u8","buffer","byteOffset","byteLength","floor","DataView","rotr","word","rotl","byteSwap","byteSwap32","asyncLoop","async","iters","tick","cb","ts","kdfInputToBytes","checkOpts","createOptHasher","randomBytes","bytesLength","crypto_1","getRandomValues","lengths","hashCons","hashC","tmp","mergeDeepWithKey","lVal","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","Function","__webpack_exports__"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.umd.min.js","mappings":"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","sources":["webpack://FormoAnalytics/webpack/universalModuleDefinition","webpack://FormoAnalytics/./src/utils/chain.ts","webpack://FormoAnalytics/./src/lib/ramda/internal/_isPlaceholder.ts","webpack://FormoAnalytics/./src/lib/ramda/internal/_curry2.ts","webpack://FormoAnalytics/./src/lib/ramda/internal/_has.ts","webpack://FormoAnalytics/./src/lib/queue/EventQueue.ts","webpack://FormoAnalytics/./src/validators/network.ts","webpack://FormoAnalytics/./src/FormoAnalytics.ts","webpack://FormoAnalytics/./src/utils/address.ts","webpack://FormoAnalytics/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://FormoAnalytics/./src/lib/storage/StorageManager.ts","webpack://FormoAnalytics/./src/lib/ramda/mergeDeepRight.ts","webpack://FormoAnalytics/./node_modules/@noble/curves/abstract/utils.js","webpack://FormoAnalytics/./src/lib/storage/built-in/memory.ts","webpack://FormoAnalytics/./node_modules/ethereum-cryptography/keccak.js","webpack://FormoAnalytics/./src/lib/ramda/internal/_isObject.ts","webpack://FormoAnalytics/./src/lib/storage/built-in/blueprint.ts","webpack://FormoAnalytics/./src/constants/events.ts","webpack://FormoAnalytics/./node_modules/mipd/dist/cjs/utils.js","webpack://FormoAnalytics/./node_modules/@noble/hashes/_u64.js","webpack://FormoAnalytics/./node_modules/ethereum-cryptography/utils.js","webpack://FormoAnalytics/./src/lib/logger/Logger.ts","webpack://FormoAnalytics/./node_modules/@noble/hashes/sha3.js","webpack://FormoAnalytics/./src/initialization.ts","webpack://FormoAnalytics/./src/validators/uint8array.ts","webpack://FormoAnalytics/./node_modules/fetch-retry/dist/fetch-retry.umd.js","webpack://FormoAnalytics/./src/constants/config.ts","webpack://FormoAnalytics/./src/lib/queue/index.ts","webpack://FormoAnalytics/./src/types/index.ts","webpack://FormoAnalytics/./src/lib/ramda/mergeWithKey.ts","webpack://FormoAnalytics/./node_modules/mipd/dist/cjs/index.js","webpack://FormoAnalytics/./src/lib/ramda/internal/_curry3.ts","webpack://FormoAnalytics/./src/utils/converter.ts","webpack://FormoAnalytics/./src/lib/ramda/internal/_curry1.ts","webpack://FormoAnalytics/./src/lib/fetch.ts","webpack://FormoAnalytics/./src/types/events.ts","webpack://FormoAnalytics/./src/lib/version.ts","webpack://FormoAnalytics/./src/validators/object.ts","webpack://FormoAnalytics/./node_modules/react/jsx-runtime.js","webpack://FormoAnalytics/./node_modules/@noble/hashes/crypto.js","webpack://FormoAnalytics/./src/FormoAnalyticsProvider.tsx","webpack://FormoAnalytics/./node_modules/react/cjs/react.production.min.js","webpack://FormoAnalytics/./src/utils/generate.ts","webpack://FormoAnalytics/./src/lib/event/utils.ts","webpack://FormoAnalytics/./src/validators/checks.ts","webpack://FormoAnalytics/./src/validators/address.ts","webpack://FormoAnalytics/./src/validators/string.ts","webpack://FormoAnalytics/./src/lib/storage/built-in/web.ts","webpack://FormoAnalytics/./src/utils/timestamp.ts","webpack://FormoAnalytics/./src/utils/base.ts","webpack://FormoAnalytics/./node_modules/mipd/dist/cjs/store.js","webpack://FormoAnalytics/./src/constants/index.ts","webpack://FormoAnalytics/./src/lib/event/EventManager.ts","webpack://FormoAnalytics/./src/validators/agent.ts","webpack://FormoAnalytics/./node_modules/react/index.js","webpack://FormoAnalytics/./src/lib/storage/index.ts","webpack://FormoAnalytics/./src/constants/base.ts","webpack://FormoAnalytics/./src/lib/event/constants.ts","webpack://FormoAnalytics/./src/lib/storage/constant.ts","webpack://FormoAnalytics/./node_modules/@noble/hashes/_assert.js","webpack://FormoAnalytics/./src/lib/event/index.ts","webpack://FormoAnalytics/./src/index.ts","webpack://FormoAnalytics/./src/lib/logger/index.ts","webpack://FormoAnalytics/./src/lib/event/EventFactory.ts","webpack://FormoAnalytics/./src/lib/storage/built-in/cookie.ts","webpack://FormoAnalytics/./src/lib/index.ts","webpack://FormoAnalytics/./node_modules/@noble/hashes/utils.js","webpack://FormoAnalytics/./src/utils/index.ts","webpack://FormoAnalytics/./src/lib/ramda/mergeDeepWithKey.ts","webpack://FormoAnalytics/./src/validators/index.ts","webpack://FormoAnalytics/webpack/bootstrap","webpack://FormoAnalytics/webpack/runtime/global","webpack://FormoAnalytics/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"FormoAnalytics\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"FormoAnalytics\"] = factory();\n\telse\n\t\troot[\"FormoAnalytics\"] = factory();\n})(self, () => {\nreturn ","/**\n * Parses a chainId string (hex or decimal) to a number.\n * @param chainId - The chainId as a string (e.g., '0x1', '1')\n * @returns The chainId as a number\n */\nexport function parseChainId(chainId: string): number {\n if (typeof chainId !== 'string') return 0;\n if (chainId.startsWith('0x') || chainId.startsWith('0X')) {\n return parseInt(chainId, 16);\n }\n return parseInt(chainId, 10);\n} ","export default function _isPlaceholder(a: any) {\n return (\n a != null && typeof a === \"object\" && a[\"@@functional/placeholder\"] === true\n );\n}\n","import _curry1 from \"./_curry1\";\nimport _isPlaceholder from \"./_isPlaceholder\";\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry2(fn: Function) {\n return function f2(a: any, b: any) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a)\n ? f2\n : _curry1(function (_b: any) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b)\n ? f2\n : _isPlaceholder(a)\n ? _curry1(function (_a: any) {\n return fn(_a, b);\n })\n : _isPlaceholder(b)\n ? _curry1(function (_b: any) {\n return fn(a, _b);\n })\n : fn(a, b);\n }\n };\n}\n","export default function _has(prop: any, obj: any) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n","import { isNetworkError } from \"../../validators\";\nimport { IFormoEvent, IFormoEventPayload } from \"../../types\";\nimport {\n clampNumber,\n getActionDescriptor,\n hash,\n millisecondsToSecond,\n toDateHourMinute,\n} from \"../../utils\";\nimport { logger } from \"../logger\";\nimport { EVENTS_API_REQUEST_HEADER } from \"../../constants\";\nimport fetch from \"../fetch\";\nimport { IEventQueue } from \"./type\";\nconst noop = () => {};\n\ntype QueueItem = {\n message: IFormoEventPayload;\n callback: (...args: any) => any;\n};\n\ntype IFormoEventFlushPayload = IFormoEventPayload & {\n sent_at: string;\n};\n\ntype Options = {\n url: string;\n flushAt?: number;\n flushInterval?: number;\n host?: string;\n retryCount?: number;\n errorHandler?: any;\n maxQueueSize?: number;\n};\n\nconst DEFAULT_RETRY = 3;\nconst MAX_RETRY = 5;\nconst MIN_RETRY = 1;\n\nconst DEFAULT_FLUSH_AT = 20;\nconst MAX_FLUSH_AT = 20;\nconst MIN_FLUSH_AT = 1;\n\nconst DEFAULT_QUEUE_SIZE = 1_024 * 500; // 500kB\nconst MAX_QUEUE_SIZE = 1_024 * 500; // 500kB\nconst MIN_QUEUE_SIZE = 200; // 200 bytes\n\nconst DEFAULT_FLUSH_INTERVAL = 1_000 * 30; // 1 MINUTE\nconst MAX_FLUSH_INTERVAL = 1_000 * 300; // 5 MINUTES\nconst MIN_FLUSH_INTERVAL = 1_000 * 10; // 10 SECONDS\n\nexport class EventQueue implements IEventQueue {\n private writeKey: string;\n private url: string;\n private queue: QueueItem[] = [];\n private timer: null | NodeJS.Timeout;\n private flushAt: number;\n private flushIntervalMs: number;\n private flushed: boolean;\n private maxQueueSize: number; // min 200 bytes, max 500kB\n private errorHandler: any;\n private retryCount: number;\n private pendingFlush: Promise<any> | null;\n private payloadHashes: Set<string> = new Set();\n\n constructor(writeKey: string, options: Options) {\n options = options || {};\n\n this.queue = [];\n this.writeKey = writeKey;\n this.url = options.url;\n this.retryCount = clampNumber(\n options.retryCount || DEFAULT_RETRY,\n MAX_RETRY,\n MIN_RETRY\n );\n this.flushAt = clampNumber(\n options.flushAt || DEFAULT_FLUSH_AT,\n MAX_FLUSH_AT,\n MIN_FLUSH_AT\n );\n this.maxQueueSize = clampNumber(\n options.maxQueueSize || DEFAULT_QUEUE_SIZE,\n MAX_QUEUE_SIZE,\n MIN_QUEUE_SIZE\n );\n this.flushIntervalMs = clampNumber(\n options.flushInterval || DEFAULT_FLUSH_INTERVAL,\n MAX_FLUSH_INTERVAL,\n MIN_FLUSH_INTERVAL\n );\n this.flushed = true;\n this.errorHandler = options.errorHandler;\n this.pendingFlush = null;\n this.timer = null;\n\n this.onPageLeave(async (isAccessible: boolean) => {\n if (isAccessible === false) {\n await this.flush();\n }\n });\n }\n\n //#region Public functions\n private async generateMessageId(event: IFormoEvent): Promise<string> {\n const formattedTimestamp = toDateHourMinute(new Date(event.original_timestamp));\n const eventForHashing = { ...event, original_timestamp: formattedTimestamp };\n const eventString = JSON.stringify(eventForHashing);\n return hash(eventString);\n }\n\n async enqueue(event: IFormoEvent, callback?: (...args: any) => void) {\n callback = callback || noop;\n\n const message_id = await this.generateMessageId(event);\n // check if the message already exists\n if (await this.isDuplicate(message_id)) {\n logger.warn(\n `Event already enqueued, try again after ${millisecondsToSecond(\n this.flushIntervalMs\n )} seconds.`\n );\n return;\n }\n\n this.queue.push({\n message: { ...event, message_id },\n callback,\n });\n\n logger.log(\n `Event enqueued: ${getActionDescriptor(event.type, event.properties)}`\n );\n\n if (!this.flushed) {\n this.flushed = true;\n this.flush();\n return;\n }\n\n const hasReachedFlushAt = this.queue.length >= this.flushAt;\n const hasReachedQueueSize =\n this.queue.reduce((acc, item) => acc + JSON.stringify(item).length, 0) >=\n this.maxQueueSize;\n\n if (hasReachedFlushAt || hasReachedQueueSize) {\n this.flush();\n return;\n }\n\n if (this.flushIntervalMs && !this.timer) {\n this.timer = setTimeout(this.flush.bind(this), this.flushIntervalMs);\n }\n }\n\n async flush(callback?: (...args: any) => void) {\n callback = callback || noop;\n\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n\n if (!this.queue.length) {\n callback();\n return Promise.resolve();\n }\n\n try {\n if (this.pendingFlush) {\n await this.pendingFlush;\n }\n } catch (err) {\n this.pendingFlush = null;\n throw err;\n }\n\n const items = this.queue.splice(0, this.flushAt);\n this.payloadHashes.clear();\n \n // Generate sent_at once for the entire batch\n const sentAt = new Date().toISOString();\n const data: IFormoEventFlushPayload[] = items.map((item) => ({\n ...item.message,\n sent_at: sentAt\n }));\n\n const done = (err?: Error) => {\n items.forEach(({ message, callback }) => callback(err, message, data));\n callback(err, data);\n };\n\n return (this.pendingFlush = fetch(`${this.url}`, {\n headers: EVENTS_API_REQUEST_HEADER(this.writeKey),\n method: \"POST\",\n body: JSON.stringify(data),\n keepalive: true,\n retries: this.retryCount,\n retryDelay: (attempt) => Math.pow(2, attempt) * 1_000, // exponential backoff\n retryOn: (_, error) => this.isErrorRetryable(error),\n })\n .then(() => {\n done();\n return Promise.resolve(data);\n })\n .catch((err) => {\n if (typeof this.errorHandler === \"function\") {\n done(err);\n return this.errorHandler(err);\n }\n\n if (err.response) {\n const error = new Error(err.response.statusText);\n done(error);\n throw error;\n }\n\n done(err);\n throw err;\n }));\n }\n\n //#region Utility functions\n private isErrorRetryable(error: any) {\n // Retry Network Errors.\n if (isNetworkError(error)) return true;\n\n // Cannot determine if the request can be retried\n if (!error?.response) return false;\n\n // Retry Server Errors (5xx).\n if (error?.response?.status >= 500 && error?.response?.status <= 599)\n return true;\n\n // Retry if rate limited.\n if (error?.response?.status === 429) return true;\n\n return false;\n }\n\n private async isDuplicate(eventId: string) {\n // check if exists a message with identical payload within 1 minute\n if (this.payloadHashes.has(eventId)) return true;\n\n this.payloadHashes.add(eventId);\n return false;\n }\n\n private onPageLeave = (callback: (isAccessible: boolean) => void) => {\n // To ensure the callback is only called once even if more than one events\n // are fired at once.\n let pageLeft = false;\n let isAccessible = false;\n\n function handleOnLeave() {\n if (pageLeft) {\n return;\n }\n\n pageLeft = true;\n\n callback(isAccessible);\n\n // Reset pageLeft on the next tick\n // to ensure callback executes for other listeners\n // when closing an inactive browser tab.\n setTimeout(() => {\n pageLeft = false;\n }, 0);\n }\n\n // Catches the unloading of the page (e.g., closing the tab or navigating away).\n // Includes user actions like clicking a link, entering a new URL,\n // refreshing the page, or closing the browser tab\n // Note that 'pagehide' is not supported in IE.\n // So, this is a fallback.\n (globalThis as typeof window).addEventListener(\"beforeunload\", () => {\n isAccessible = false;\n handleOnLeave();\n });\n\n (globalThis as typeof window).addEventListener(\"blur\", () => {\n isAccessible = true;\n handleOnLeave();\n });\n\n (globalThis as typeof window).addEventListener(\"focus\", () => {\n pageLeft = false;\n });\n\n // Catches the page being hidden, including scenarios like closing the tab.\n document.addEventListener(\"pagehide\", () => {\n isAccessible = document.visibilityState === \"hidden\";\n handleOnLeave();\n });\n\n // Catches visibility changes, such as switching tabs or minimizing the browser.\n document.addEventListener(\"visibilitychange\", () => {\n isAccessible = true;\n if (document.visibilityState === \"hidden\") {\n handleOnLeave();\n } else {\n pageLeft = false;\n }\n });\n };\n}\n","const objectToString = Object.prototype.toString;\n\nconst isError = (value: any) => objectToString.call(value) === \"[object Error]\";\n\nconst errorMessages = new Set([\n \"network error\", // Chrome\n \"Failed to fetch\", // Chrome\n \"NetworkError when attempting to fetch resource.\", // Firefox\n \"The Internet connection appears to be offline.\", // Safari 16\n \"Load failed\", // Safari 17+\n \"Network request failed\", // `cross-fetch`\n \"fetch failed\", // Undici (Node.js)\n \"terminated\", // Undici (Node.js)\n]);\n\nexport function isNetworkError(error: any) {\n const isValid =\n error &&\n isError(error) &&\n error.name === \"TypeError\" &&\n typeof error.message === \"string\";\n\n if (!isValid) {\n return false;\n }\n\n // We do an extra check for Safari 17+ as it has a very generic error message.\n // Network errors in Safari have no stack.\n if (error.message === \"Load failed\") {\n return error.stack === undefined;\n }\n\n return errorMessages.has(error.message);\n}\n","import { createStore, EIP6963ProviderDetail } from \"mipd\";\nimport {\n EVENTS_API_URL,\n EventType,\n LOCAL_ANONYMOUS_ID_KEY,\n SESSION_CURRENT_URL_KEY,\n SESSION_USER_ID_KEY,\n SESSION_WALLET_DETECTED_KEY,\n TEventType,\n} from \"./constants\";\nimport {\n cookie,\n EventManager,\n EventQueue,\n IEventManager,\n initStorageManager,\n logger,\n Logger,\n} from \"./lib\";\nimport {\n Address,\n ChainID,\n Config,\n EIP1193Provider,\n IFormoAnalytics,\n IFormoEventContext,\n IFormoEventProperties,\n Options,\n RequestArguments,\n RPCError,\n SignatureStatus,\n TrackingOptions,\n TransactionStatus,\n ConnectInfo,\n} from \"./types\";\nimport { isAddress, isLocalhost } from \"./validators\";\nimport { parseChainId } from \"./utils/chain\";\n\nexport class FormoAnalytics implements IFormoAnalytics {\n private _provider?: EIP1193Provider;\n private _providerListeners: Record<string, (...args: unknown[]) => void> = {};\n private session: FormoAnalyticsSession;\n private eventManager: IEventManager;\n private _providers: readonly EIP6963ProviderDetail[] = [];\n\n config: Config;\n currentChainId?: ChainID;\n currentAddress?: Address = \"\";\n currentUserId?: string = \"\";\n\n private constructor(\n public readonly writeKey: string,\n public options: Options = {}\n ) {\n this.config = {\n writeKey,\n };\n this.options = options;\n\n this.session = new FormoAnalyticsSession();\n this.currentUserId =\n (cookie().get(SESSION_USER_ID_KEY) as string) || undefined;\n\n this.identify = this.identify.bind(this);\n this.connect = this.connect.bind(this);\n this.disconnect = this.disconnect.bind(this);\n this.chain = this.chain.bind(this);\n this.signature = this.signature.bind(this);\n this.transaction = this.transaction.bind(this);\n this.detect = this.detect.bind(this);\n this.track = this.track.bind(this);\n\n // Initialize logger with configuration from options\n Logger.init({\n enabled: options.logger?.enabled || false,\n enabledLevels: options.logger?.levels || [],\n });\n\n this.eventManager = new EventManager(\n new EventQueue(this.config.writeKey, {\n url: EVENTS_API_URL,\n flushAt: options.flushAt,\n retryCount: options.retryCount,\n maxQueueSize: options.maxQueueSize,\n flushInterval: options.flushInterval,\n })\n );\n\n // TODO: replace with eip6963\n const provider = options.provider || window?.ethereum;\n if (provider) {\n this.trackProvider(provider);\n }\n\n this.trackPageHit();\n this.trackPageHits();\n }\n\n static async init(\n writeKey: string,\n options?: Options\n ): Promise<FormoAnalytics> {\n initStorageManager(writeKey);\n const analytics = new FormoAnalytics(writeKey, options);\n\n // Auto-detect wallet provider\n analytics._providers = await analytics.getProviders();\n await analytics.detectWallets(analytics._providers);\n\n return analytics;\n }\n\n /*\n Public SDK functions\n */\n\n /**\n * Emits a page visit event with the current URL information, fire on page change.\n * @param {string} category - The category of the page\n * @param {string} name - The name of the page\n * @param {Record<string, any>} properties - Additional properties to include\n * @param {Record<string, any>} context - Additional context to include\n * @param {(...args: unknown[]) => void} callback - Optional callback function\n * @returns {Promise<void>}\n */\n public async page(\n category?: string,\n name?: string,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n await this.trackPageHit(category, name, properties, context, callback);\n }\n\n /**\n * Reset the current user session.\n * @returns {void}\n */\n public reset(): void {\n this.currentUserId = undefined;\n cookie().remove(LOCAL_ANONYMOUS_ID_KEY);\n cookie().remove(SESSION_USER_ID_KEY);\n }\n\n /**\n * Emits a connect wallet event.\n * @param {ChainID} params.chainId\n * @param {Address} params.address\n * @param {IFormoEventProperties} properties\n * @param {IFormoEventContext} context\n * @param {(...args: unknown[]) => void} callback\n * @throws {Error} If chainId or address is empty\n * @returns {Promise<void>}\n */\n async connect(\n {\n chainId,\n address,\n }: {\n chainId: ChainID;\n address: Address;\n },\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n if (!chainId) {\n logger.warn(\"Connect: Chain ID cannot be empty\");\n }\n if (!address) {\n logger.warn(\"Connect: Address cannot be empty\");\n }\n\n this.currentChainId = chainId;\n this.currentAddress = address;\n\n await this.trackEvent(\n EventType.CONNECT,\n {\n chainId,\n address,\n },\n properties,\n context,\n callback\n );\n }\n\n /**\n * Emits a disconnect wallet event.\n * @param {ChainID} [params.chainId]\n * @param {Address} [params.address]\n * @param {IFormoEventProperties} properties\n * @param {IFormoEventContext} context\n * @param {(...args: unknown[]) => void} callback\n * @returns {Promise<void>}\n */\n async disconnect(\n params?: {\n chainId?: ChainID;\n address?: Address;\n },\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n const chainId = params?.chainId || this.currentChainId;\n const address = params?.address || this.currentAddress;\n\n await this.trackEvent(\n EventType.DISCONNECT,\n {\n chainId,\n address,\n },\n properties,\n context,\n callback\n );\n\n this.currentAddress = undefined;\n this.currentChainId = undefined;\n logger.info(\"Wallet disconnected: Cleared currentAddress and currentChainId\"); \n }\n\n /**\n * Emits a chain network change event.\n * @param {ChainID} params.chainId\n * @param {Address} params.address\n * @param {IFormoEventProperties} properties\n * @param {IFormoEventContext} context\n * @param {(...args: unknown[]) => void} callback\n * @throws {Error} If chainId is empty, zero, or not a valid number\n * @throws {Error} If no address is provided and no previous address is recorded\n * @returns {Promise<void>}\n */\n async chain(\n {\n chainId,\n address,\n }: {\n chainId: ChainID;\n address?: Address;\n },\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n if (!chainId || Number(chainId) === 0) {\n throw new Error(\"FormoAnalytics::chain: chainId cannot be empty or 0\");\n }\n if (isNaN(Number(chainId))) {\n throw new Error(\n \"FormoAnalytics::chain: chainId must be a valid decimal number\"\n );\n }\n if (!address && !this.currentAddress) {\n throw new Error(\n \"FormoAnalytics::chain: address was empty and no previous address has been recorded\"\n );\n }\n\n this.currentChainId = chainId;\n\n await this.trackEvent(\n EventType.CHAIN,\n {\n chainId,\n address: address || this.currentAddress,\n },\n properties,\n context,\n callback\n );\n }\n\n /**\n * Emits a signature event.\n * @param {SignatureStatus} params.status - requested, confirmed, rejected\n * @param {ChainID} params.chainId\n * @param {Address} params.address\n * @param {string} params.message\n * @param {string} params.signatureHash - only provided if status is confirmed\n * @param {IFormoEventProperties} properties\n * @param {IFormoEventContext} context\n * @param {(...args: unknown[]) => void} callback\n * @returns {Promise<void>}\n */\n async signature(\n {\n status,\n chainId,\n address,\n message,\n signatureHash,\n }: {\n status: SignatureStatus;\n chainId?: ChainID;\n address: Address;\n message: string;\n signatureHash?: string;\n },\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n await this.trackEvent(\n EventType.SIGNATURE,\n {\n status,\n chainId,\n address,\n message,\n ...(signatureHash && { signatureHash }),\n },\n properties,\n context,\n callback\n );\n }\n\n /**\n * Emits a transaction event.\n * @param {TransactionStatus} params.status - started, broadcasted, rejected\n * @param {ChainID} params.chainId\n * @param {Address} params.address\n * @param {string} params.data\n * @param {string} params.to\n * @param {string} params.value\n * @param {string} params.transactionHash - only provided if status is broadcasted\n * @param {IFormoEventProperties} properties\n * @param {IFormoEventContext} context\n * @param {(...args: unknown[]) => void} callback\n * @returns {Promise<void>}\n */\n async transaction(\n {\n status,\n chainId,\n address,\n data,\n to,\n value,\n transactionHash,\n }: {\n status: TransactionStatus;\n chainId: ChainID;\n address: Address;\n data?: string;\n to?: string;\n value?: string;\n transactionHash?: string;\n },\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n await this.trackEvent(\n EventType.TRANSACTION,\n {\n status,\n chainId,\n address,\n data,\n to,\n value,\n ...(transactionHash && { transactionHash }),\n },\n properties,\n context,\n callback\n );\n }\n\n /**\n * Emits an identify event with current wallet address and provider info.\n * @param {string} params.address\n * @param {string} params.userId\n * @param {string} params.rdns\n * @param {string} params.providerName\n * @param {IFormoEventProperties} properties\n * @param {IFormoEventContext} context\n * @param {(...args: unknown[]) => void} callback\n * @returns {Promise<void>}\n */\n async identify(\n params?: {\n address?: Address;\n providerName?: string;\n userId?: string;\n rdns?: string;\n },\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n try {\n if (!params) {\n // If no params provided, auto-identify\n logger.info(\n \"Auto-identifying with providers:\",\n this._providers.map((p) => p.info.name)\n );\n for (const providerDetail of this._providers) {\n const provider = providerDetail.provider;\n if (!provider) continue;\n\n try {\n const address = await this.getAddress(provider);\n if (address) {\n logger.info(\n \"Auto-identifying\",\n address,\n providerDetail.info.name,\n providerDetail.info.rdns\n );\n // NOTE: do not set this.currentAddress without explicit connect or identify\n await this.identify(\n {\n address,\n providerName: providerDetail.info.name,\n rdns: providerDetail.info.rdns,\n },\n properties,\n context,\n callback\n );\n }\n } catch (err) {\n logger.error(\n `Failed to identify provider ${providerDetail.info.name}:`,\n err\n );\n }\n }\n return;\n }\n\n // Explicit identify\n const { userId, address, providerName, rdns } = params;\n logger.info(\"Identify\", address, userId, providerName, rdns);\n if (address) this.currentAddress = address;\n if (userId) {\n this.currentUserId = userId;\n cookie().set(SESSION_USER_ID_KEY, userId);\n }\n\n await this.trackEvent(\n EventType.IDENTIFY,\n {\n address,\n providerName,\n userId,\n rdns,\n },\n properties,\n context,\n callback\n );\n } catch (e) {\n logger.log(\"identify error\", e);\n }\n }\n\n /**\n * Emits a detect wallet event with current wallet provider info.\n * @param {string} params.providerName\n * @param {string} params.rdns\n * @param {IFormoEventProperties} properties\n * @param {IFormoEventContext} context\n * @param {(...args: unknown[]) => void} callback\n * @returns {Promise<void>}\n */\n async detect(\n {\n providerName,\n rdns,\n }: {\n providerName: string;\n rdns: string;\n },\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n if (this.session.isWalletDetected(rdns))\n return logger.warn(\n `Detect: Wallet ${providerName} already detected in this session`\n );\n\n this.session.markWalletDetected(rdns);\n await this.trackEvent(\n EventType.DETECT,\n {\n providerName,\n rdns,\n },\n properties,\n context,\n callback\n );\n }\n\n /**\n * Emits a custom user event with custom properties.\n * @param {string} event The name of the tracked event\n * @param {IFormoEventProperties} properties\n * @param {IFormoEventContext} context\n * @param {(...args: unknown[]) => void} callback\n * @returns {Promise<void>}\n */\n async track(\n event: string,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n await this.trackEvent(\n EventType.TRACK,\n { event },\n properties,\n context,\n callback\n );\n }\n\n /*\n SDK tracking and event listener functions\n */\n\n private trackProvider(provider: EIP1193Provider): void {\n logger.info(\"trackProvider\", provider);\n try {\n if (provider === this._provider) {\n logger.warn(\"TrackProvider: Provider already tracked.\");\n return;\n }\n\n this.currentChainId = undefined;\n this.currentAddress = undefined;\n\n if (this._provider) {\n const actions = Object.keys(this._providerListeners);\n for (const action of actions) {\n this._provider.removeListener(\n action,\n this._providerListeners[action]\n );\n delete this._providerListeners[action];\n }\n }\n\n this._provider = provider;\n\n // Register listeners for web3 provider events\n this.registerAccountsChangedListener();\n this.registerChainChangedListener();\n this.registerConnectListener();\n this.registerRequestListeners();\n } catch (error) {\n logger.error(\"Error tracking provider:\", error);\n }\n }\n\n private registerAccountsChangedListener(): void {\n logger.info(\"registerAccountsChangedListener\");\n const listener = (...args: unknown[]) =>\n this.onAccountsChanged(args[0] as string[]);\n\n this._provider?.on(\"accountsChanged\", listener);\n this._providerListeners[\"accountsChanged\"] = listener;\n }\n\n private async onAccountsChanged(accounts: Address[]): Promise<void> {\n logger.info(\"onAccountsChanged\", accounts);\n if (accounts.length === 0) {\n // Handle wallet disconnect\n await this.disconnect();\n return;\n }\n const address = accounts[0];\n if (address === this.currentAddress) {\n // We have already reported this address\n return;\n }\n // Handle wallet connect\n this.currentAddress = address;\n this.currentChainId = await this.getCurrentChainId();\n this.connect({ chainId: this.currentChainId, address });\n }\n\n private registerChainChangedListener(): void {\n logger.info(\"registerChainChangedListener\");\n const listener = (...args: unknown[]) =>\n this.onChainChanged(args[0] as string);\n this.provider?.on(\"chainChanged\", listener);\n this._providerListeners[\"chainChanged\"] = listener;\n }\n\n private async onChainChanged(chainIdHex: string): Promise<void> {\n logger.info(\"onChainChanged\", chainIdHex);\n this.currentChainId = parseChainId(chainIdHex);\n if (!this.currentAddress) {\n if (!this.provider) {\n logger.info(\n \"OnChainChanged: Provider not found. CHAIN_CHANGED not reported\"\n );\n return Promise.resolve();\n }\n\n const address = await this.getAddress();\n if (!address) {\n logger.info(\n \"OnChainChanged: Unable to fetch or store connected address\"\n );\n return Promise.resolve();\n }\n this.currentAddress = address;\n }\n\n // Proceed only if the address exists\n if (this.currentAddress) {\n return this.chain({\n chainId: this.currentChainId,\n address: this.currentAddress,\n });\n } else {\n logger.info(\n \"OnChainChanged: Current connected address is null despite fetch attempt\"\n );\n }\n }\n\n private registerConnectListener(): void {\n logger.info(\"registerConnectListener\");\n const listener = (...args: unknown[]) => {\n const connection: ConnectInfo = args[0] as ConnectInfo;\n this.onConnected(connection);\n };\n this._provider?.on(\"connect\", listener);\n this._providerListeners[\"connect\"] = listener;\n }\n\n private async onConnected(connection: ConnectInfo): Promise<void> {\n logger.info(\"onConnected\", connection);\n try {\n if (!connection || typeof connection.chainId !== 'string') return;\n const chainId = parseChainId(connection.chainId);\n const address = await this.getAddress();\n if (chainId !== null && chainId !== undefined && address) {\n this.connect({ chainId, address });\n }\n } catch (e) {\n logger.error(\"Error handling connect event\", e);\n }\n }\n\n private registerRequestListeners(): void {\n logger.info(\"registerRequestListeners\");\n if (!this.provider) {\n logger.error(\"Provider not found for request (signature, transaction) tracking\");\n return;\n }\n if (\n Object.getOwnPropertyDescriptor(this.provider, \"request\")?.writable ===\n false\n ) {\n logger.warn(\"Provider.request is not writable\");\n return;\n }\n\n const request = this.provider.request.bind(this.provider);\n\n this.provider.request = async <T>({\n method,\n params,\n }: RequestArguments): Promise<T | null | undefined> => {\n // Handle Signatures\n if (\n Array.isArray(params) &&\n [\"eth_signTypedData_v4\", \"personal_sign\"].includes(method)\n ) {\n // Fire-and-forget tracking\n (async () => {\n try {\n this.signature({\n status: SignatureStatus.REQUESTED,\n ...this.buildSignatureEventPayload(method, params),\n });\n } catch (e) {\n logger.error(\"Formo: Failed to track signature request\", e);\n }\n })();\n\n try {\n const response = (await request({ method, params })) as T;\n (async () => {\n try {\n if (response) {\n this.signature({\n status: SignatureStatus.CONFIRMED,\n ...this.buildSignatureEventPayload(method, params, response),\n });\n }\n } catch (e) {\n logger.error(\"Formo: Failed to track signature confirmation\", e);\n }\n })();\n return response;\n } catch (error) {\n (async () => {\n try {\n const rpcError = error as RPCError;\n if (rpcError && rpcError?.code === 4001) {\n this.signature({\n status: SignatureStatus.REJECTED,\n ...this.buildSignatureEventPayload(method, params),\n });\n }\n } catch (e) {\n logger.error(\"Formo: Failed to track signature rejection\", e);\n }\n })();\n throw error;\n }\n }\n\n // Handle Transactions\n // TODO: Support eip5792.xyz calls\n if (\n Array.isArray(params) &&\n method === \"eth_sendTransaction\" &&\n params[0]\n ) {\n (async () => {\n try {\n const payload = await this.buildTransactionEventPayload(params);\n this.transaction({ status: TransactionStatus.STARTED, ...payload });\n } catch (e) {\n logger.error(\"Formo: Failed to track transaction start\", e);\n }\n })();\n\n try {\n const transactionHash = (await request({\n method,\n params,\n })) as string;\n\n (async () => {\n try {\n const payload = await this.buildTransactionEventPayload(params);\n this.transaction({\n status: TransactionStatus.BROADCASTED,\n ...payload,\n transactionHash,\n });\n\n // Start async polling for transaction receipt\n this.pollTransactionReceipt(transactionHash, payload);\n } catch (e) {\n logger.error(\n \"Formo: Failed to track transaction broadcast\",\n e\n );\n }\n })();\n\n return transactionHash as unknown as T;\n } catch (error) {\n (async () => {\n try {\n const rpcError = error as RPCError;\n if (rpcError && rpcError?.code === 4001) {\n const payload = await this.buildTransactionEventPayload(\n params\n );\n this.transaction({\n status: TransactionStatus.REJECTED,\n ...payload,\n });\n }\n } catch (e) {\n logger.error(\"Formo: Failed to track transaction rejection\", e);\n }\n })();\n throw error;\n }\n }\n\n return request({ method, params });\n };\n }\n\n private async onLocationChange(): Promise<void> {\n const currentUrl = cookie().get(SESSION_CURRENT_URL_KEY);\n\n if (currentUrl !== window.location.href) {\n cookie().set(SESSION_CURRENT_URL_KEY, window.location.href);\n this.trackPageHit();\n }\n }\n\n private async trackPageHits(): Promise<void> {\n const oldPushState = history.pushState;\n history.pushState = function pushState(...args) {\n const ret = oldPushState.apply(this, args);\n window.dispatchEvent(new window.Event(\"locationchange\"));\n return ret;\n };\n\n const oldReplaceState = history.replaceState;\n history.replaceState = function replaceState(...args) {\n const ret = oldReplaceState.apply(this, args);\n window.dispatchEvent(new window.Event(\"locationchange\"));\n return ret;\n };\n\n window.addEventListener(\"popstate\", () => this.onLocationChange());\n window.addEventListener(\"locationchange\", () => this.onLocationChange());\n }\n\n private async trackPageHit(\n category?: string,\n name?: string,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n if (!this.shouldTrack()) {\n logger.info(\n \"Track page hit: Skipping event due to tracking configuration\"\n );\n return;\n }\n\n setTimeout(async () => {\n this.trackEvent(\n EventType.PAGE,\n {\n category,\n name,\n },\n properties,\n context,\n callback\n );\n }, 300);\n }\n\n private async trackEvent(\n type: TEventType,\n payload?: any,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext,\n callback?: (...args: unknown[]) => void\n ): Promise<void> {\n try {\n if (!this.shouldTrack()) {\n logger.info(`Skipping ${type} event due to tracking configuration`);\n return;\n }\n\n this.eventManager.addEvent(\n {\n type,\n ...payload,\n properties,\n context,\n callback,\n },\n this.currentAddress,\n this.currentUserId\n );\n } catch (error) {\n logger.error(\"Error tracking event:\", error);\n }\n }\n\n /**\n * Determines if tracking should be enabled based on configuration\n * @returns {boolean} True if tracking should be enabled\n */\n private shouldTrack(): boolean {\n // Check if tracking is explicitly provided as a boolean\n if (typeof this.options.tracking === 'boolean') {\n return this.options.tracking;\n }\n \n // Handle object configuration with exclusion rules\n if (this.options.tracking !== null && \n typeof this.options.tracking === 'object' && \n !Array.isArray(this.options.tracking)) {\n const { \n excludeHosts = [],\n excludePaths = [], \n excludeChains = [] \n } = this.options.tracking as TrackingOptions;\n \n // Check hostname exclusions - use exact matching\n if (excludeHosts.length > 0 && typeof window !== 'undefined') {\n const hostname = window.location.hostname;\n if (excludeHosts.includes(hostname)) {\n return false;\n }\n }\n \n // Check path exclusions - use exact matching\n if (excludePaths.length > 0 && typeof window !== 'undefined') {\n const pathname = window.location.pathname;\n if (excludePaths.includes(pathname)) {\n return false;\n }\n }\n \n // Check chainId exclusions\n if (excludeChains.length > 0 && \n this.currentChainId && \n excludeChains.includes(this.currentChainId)) {\n return false;\n }\n \n // If nothing is excluded, tracking is enabled\n return true;\n }\n \n // Default behavior: track everywhere except localhost\n return !isLocalhost();\n }\n\n /*\n Utility functions\n */\n\n private async getProviders(): Promise<readonly EIP6963ProviderDetail[]> {\n const store = createStore();\n let providers = store.getProviders();\n store.subscribe((providerDetails) => {\n providers = providerDetails;\n this._providers = providers;\n });\n\n // Fallback to injected provider if no providers are found\n if (providers.length === 0) {\n this._providers = window?.ethereum ? [window.ethereum] : [];\n return this._providers;\n }\n this._providers = providers;\n return providers;\n }\n\n get providers(): readonly EIP6963ProviderDetail[] {\n return this._providers;\n }\n\n private async detectWallets(\n providers: readonly EIP6963ProviderDetail[]\n ): Promise<void> {\n try {\n for (const eip6963ProviderDetail of providers) {\n await this.detect({\n providerName: eip6963ProviderDetail?.info.name,\n rdns: eip6963ProviderDetail?.info.rdns,\n });\n }\n } catch (err) {\n logger.error(\"Error detect all wallets:\", err);\n }\n }\n\n get provider(): EIP1193Provider | undefined {\n return this._provider;\n }\n\n private async getAddress(\n provider?: EIP1193Provider\n ): Promise<Address | null> {\n if (this.currentAddress) return this.currentAddress;\n const p = provider || this.provider;\n if (!p) {\n logger.info(\"The provider is not set\");\n return null;\n }\n\n try {\n const accounts = await this.getAccounts(p);\n if (accounts && accounts.length > 0) {\n if (isAddress(accounts[0])) {\n return accounts[0];\n }\n }\n } catch (err) {\n logger.error(\"Failed to fetch accounts from provider:\", err);\n return null;\n }\n return null;\n }\n\n private async getAccounts(\n provider?: EIP1193Provider\n ): Promise<Address[] | null> {\n const p = provider || this.provider;\n try {\n const res: string[] | null | undefined = await p?.request({\n method: \"eth_accounts\",\n });\n if (!res || res.length === 0) return null;\n return res.filter((e) => isAddress(e));\n } catch (err) {\n if ((err as any).code !== 4001) {\n logger.error(\n \"FormoAnalytics::getAccounts: eth_accounts threw an error\",\n err\n );\n }\n return null;\n }\n }\n\n private async getCurrentChainId(): Promise<number> {\n if (!this.provider) {\n logger.error(\"Provider not set for chain ID\");\n }\n\n let chainIdHex;\n try {\n chainIdHex = await this.provider?.request<string>({\n method: \"eth_chainId\",\n });\n if (!chainIdHex) {\n logger.info(\"Chain id not found\");\n return 0;\n }\n return parseChainId(chainIdHex);\n } catch (err) {\n logger.error(\"eth_chainId threw an error:\", err);\n return 0;\n }\n }\n\n private buildSignatureEventPayload(\n method: string,\n params: unknown[],\n response?: unknown\n ) {\n const basePayload = {\n chainId: this.currentChainId,\n address:\n method === \"personal_sign\"\n ? (params[1] as Address)\n : (params[0] as Address),\n };\n\n if (method === \"personal_sign\") {\n const message = Buffer.from(\n (params[0] as string).slice(2),\n \"hex\"\n ).toString(\"utf8\");\n return {\n ...basePayload,\n message,\n ...(response ? { signatureHash: response as string } : {}),\n };\n }\n\n return {\n ...basePayload,\n message: params[1] as string,\n ...(response ? { signatureHash: response as string } : {}),\n };\n }\n\n private async buildTransactionEventPayload(params: unknown[]) {\n const { data, from, to, value } = params[0] as {\n data: string;\n from: string;\n to: string;\n value: string;\n };\n return {\n chainId: this.currentChainId || (await this.getCurrentChainId()),\n data,\n address: from,\n to,\n value,\n };\n }\n\n /**\n * Polls for transaction receipt and emits tx.status = CONFIRMED or REVERTED.\n */\n private async pollTransactionReceipt(\n transactionHash: string,\n payload: any,\n maxAttempts = 10,\n intervalMs = 3000\n ) {\n let attempts = 0;\n const provider = this.provider;\n if (!provider) return;\n type Receipt = { status: string | number } | null;\n const poll = async () => {\n try {\n const receipt = (await provider.request({\n method: \"eth_getTransactionReceipt\",\n params: [transactionHash],\n })) as Receipt;\n if (receipt) {\n // status: 1 = success, 0 = reverted\n if (receipt.status === \"0x1\" || receipt.status === 1) {\n this.transaction({\n status: TransactionStatus.CONFIRMED,\n ...payload,\n transactionHash,\n });\n return;\n } else if (receipt.status === \"0x0\" || receipt.status === 0) {\n this.transaction({\n status: TransactionStatus.REVERTED,\n ...payload,\n transactionHash,\n });\n return;\n }\n }\n } catch (e) {\n logger.error(\"Error polling transaction receipt\", e);\n }\n attempts++;\n if (attempts < maxAttempts) {\n setTimeout(poll, intervalMs);\n }\n };\n poll();\n }\n}\n\ninterface IFormoAnalyticsSession {\n isWalletDetected(rdns: string): boolean;\n markWalletDetected(rdns: string): void;\n}\n\nclass FormoAnalyticsSession implements IFormoAnalyticsSession {\n public isWalletDetected(rdns: string): boolean {\n const rdnses = cookie().get(SESSION_WALLET_DETECTED_KEY)?.split(\",\") || [];\n return rdnses.includes(rdns);\n }\n\n public markWalletDetected(rdns: string): void {\n const rdnses = cookie().get(SESSION_WALLET_DETECTED_KEY)?.split(\",\") || [];\n rdnses.push(rdns);\n cookie().set(SESSION_WALLET_DETECTED_KEY, rdnses.join(\",\"), {\n // by the end of the day\n expires: new Date(Date.now() + 86400 * 1000).toUTCString(),\n path: \"/\",\n });\n }\n}\n","import { Address } from \"../types\";\nimport { keccak256 } from \"ethereum-cryptography/keccak.js\";\nimport { utf8ToBytes } from \"ethereum-cryptography/utils.js\";\nimport {\n ensureIfUint8Array,\n isAddress,\n uint8ArrayToHexString,\n} from \"../validators\";\nimport { isNullish } from \"../validators/object\";\n\nexport const toChecksumAddress = (address: Address): string => {\n if (!isAddress(address, false)) {\n throw new Error(\"Invalid address \" + address);\n }\n\n const lowerCaseAddress = address.toLowerCase().replace(/^0x/i, \"\");\n\n const hash = uint8ArrayToHexString(\n keccak256(ensureIfUint8Array(utf8ToBytes(lowerCaseAddress)))\n );\n\n if (\n isNullish(hash) ||\n hash ===\n \"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\"\n )\n return \"\"; // // EIP-1052 if hash is equal to c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470, keccak was given empty data\n\n let checksumAddress = \"0x\";\n\n const addressHash = hash.replace(/^0x/i, \"\");\n\n for (let i = 0; i < lowerCaseAddress.length; i += 1) {\n // If ith character is 8 to f then make it uppercase\n if (parseInt(addressHash[i], 16) > 7) {\n checksumAddress += lowerCaseAddress[i].toUpperCase();\n } else {\n checksumAddress += lowerCaseAddress[i];\n }\n }\n\n return checksumAddress;\n};\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","import { logger } from \"../logger\";\nimport CookieStorage from \"./built-in/cookie\";\nimport MemoryStorage from \"./built-in/memory\";\nimport WebStorage from \"./built-in/web\";\nimport { IStorage, StorageType } from \"./type\";\n\n// Fallback as follows: cookieStorage, localStorage, sessionStorage, memoryStorage\nconst TYPES: StorageType[] = [\n \"cookieStorage\",\n \"localStorage\",\n \"sessionStorage\",\n \"memoryStorage\",\n];\n\nexport class StorageManager {\n private storages: Map<StorageType, IStorage> = new Map();\n\n constructor(private readonly writeKey: string) {}\n\n getStorage(type: StorageType): IStorage {\n if (!this.storages.has(type)) {\n let storage = this.createStorage(type);\n // If storage is not available, try next\n while (!storage.isAvailable()) {\n const index = TYPES.indexOf(type);\n logger.warn(\n `Storage ${type} is not available, trying ${TYPES[index + 1]}`\n );\n storage = this.createStorage(TYPES[index + 1]);\n }\n\n // Add to cache\n this.storages.set(type, storage);\n }\n return this.storages.get(type)!;\n }\n\n private createStorage(type: StorageType): IStorage {\n switch (type) {\n case \"cookieStorage\":\n return new CookieStorage(this.writeKey);\n case \"localStorage\":\n return new WebStorage(this.writeKey, localStorage);\n case \"sessionStorage\":\n return new WebStorage(this.writeKey, sessionStorage);\n case \"memoryStorage\":\n default:\n return new MemoryStorage(this.writeKey);\n }\n }\n}\n","import _curry2 from \"./internal/_curry2\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey\";\n\nconst mergeDeepRight = _curry2(function mergeDeepRight(lObj: any, rObj: any) {\n return mergeDeepWithKey(\n function (_: Function, __: any, rVal: any) {\n return rVal;\n },\n lObj,\n rObj\n );\n});\nexport default mergeDeepRight;\n","\"use strict\";\n/**\n * Hex, bytes and number utilities.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.notImplemented = exports.bitMask = void 0;\nexports.isBytes = isBytes;\nexports.abytes = abytes;\nexports.abool = abool;\nexports.numberToHexUnpadded = numberToHexUnpadded;\nexports.hexToNumber = hexToNumber;\nexports.bytesToHex = bytesToHex;\nexports.hexToBytes = hexToBytes;\nexports.bytesToNumberBE = bytesToNumberBE;\nexports.bytesToNumberLE = bytesToNumberLE;\nexports.numberToBytesBE = numberToBytesBE;\nexports.numberToBytesLE = numberToBytesLE;\nexports.numberToVarBytesBE = numberToVarBytesBE;\nexports.ensureBytes = ensureBytes;\nexports.concatBytes = concatBytes;\nexports.equalBytes = equalBytes;\nexports.utf8ToBytes = utf8ToBytes;\nexports.inRange = inRange;\nexports.aInRange = aInRange;\nexports.bitLen = bitLen;\nexports.bitGet = bitGet;\nexports.bitSet = bitSet;\nexports.createHmacDrbg = createHmacDrbg;\nexports.validateObject = validateObject;\nexports.memoized = memoized;\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nfunction isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\nfunction abytes(item) {\n if (!isBytes(item))\n throw new Error('Uint8Array expected');\n}\nfunction abool(title, value) {\n if (typeof value !== 'boolean')\n throw new Error(title + ' boolean expected, got ' + value);\n}\n// Used in weierstrass, der\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? '0' + hex : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n return hex === '' ? _0n : BigInt('0x' + hex); // Big Endian\n}\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function';\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // @ts-ignore\n if (hasHexBuiltin)\n return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\n// BE: Big Endian, LE: Little Endian\nfunction bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nfunction bytesToNumberLE(bytes) {\n abytes(bytes);\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\nfunction numberToBytesBE(n, len) {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nfunction numberToBytesLE(n, len) {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nfunction numberToVarBytesBE(n) {\n return hexToBytes(numberToHexUnpadded(n));\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nfunction ensureBytes(title, hex, expectedLength) {\n let res;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n }\n catch (e) {\n throw new Error(title + ' must be hex string or Uint8Array, cause: ' + e);\n }\n }\n else if (isBytes(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n }\n else {\n throw new Error(title + ' must be hex string or Uint8Array');\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(title + ' of length ' + expectedLength + ' expected, got ' + len);\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nfunction concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n// Compares 2 u8a-s in kinda constant time\nfunction equalBytes(a, b) {\n if (a.length !== b.length)\n return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++)\n diff |= a[i] ^ b[i];\n return diff === 0;\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Is positive bigint\nconst isPosBig = (n) => typeof n === 'bigint' && _0n <= n;\nfunction inRange(n, min, max) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nfunction aInRange(title, n, min, max) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error('expected valid ' + title + ': ' + min + ' <= n < ' + max + ', got ' + n);\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n * TODO: merge with nLength in modular\n */\nfunction bitLen(n) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1)\n ;\n return len;\n}\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nfunction bitGet(n, pos) {\n return (n >> BigInt(pos)) & _1n;\n}\n/**\n * Sets single bit at position.\n */\nfunction bitSet(n, pos, value) {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n}\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nconst bitMask = (n) => (_1n << BigInt(n)) - _1n;\nexports.bitMask = bitMask;\n// DRBG\nconst u8n = (len) => new Uint8Array(len); // creates Uint8Array\nconst u8fr = (arr) => Uint8Array.from(arr); // another shortcut\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG<Key>(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nfunction createHmacDrbg(hashLen, qByteLen, hmacFn) {\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function')\n throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n(0)) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0)\n return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000)\n throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed, pred) => {\n reset();\n reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen())))\n reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n// Validating curves and fields\nconst validatorFns = {\n bigint: (val) => typeof val === 'bigint',\n function: (val) => typeof val === 'function',\n boolean: (val) => typeof val === 'boolean',\n string: (val) => typeof val === 'string',\n stringOrUint8Array: (val) => typeof val === 'string' || isBytes(val),\n isSafeInteger: (val) => Number.isSafeInteger(val),\n array: (val) => Array.isArray(val),\n field: (val, object) => object.Fp.isValid(val),\n hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n};\n// type Record<K extends string | number | symbol, T> = { [P in K]: T; }\nfunction validateObject(object, validators, optValidators = {}) {\n const checkField = (fieldName, type, isOptional) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error('invalid validator function');\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error('param ' + String(fieldName) + ' is invalid. Expected ' + type + ', got ' + val);\n }\n };\n for (const [fieldName, type] of Object.entries(validators))\n checkField(fieldName, type, false);\n for (const [fieldName, type] of Object.entries(optValidators))\n checkField(fieldName, type, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n/**\n * throws not implemented error\n */\nconst notImplemented = () => {\n throw new Error('not implemented');\n};\nexports.notImplemented = notImplemented;\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nfunction memoized(fn) {\n const map = new WeakMap();\n return (arg, ...args) => {\n const val = map.get(arg);\n if (val !== undefined)\n return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n//# sourceMappingURL=utils.js.map","import StorageBlueprint from \"./blueprint\";\n\nclass MemoryStorage extends StorageBlueprint {\n private memoryStorage: Record<string, string> = {};\n\n public override isAvailable(): boolean {\n return true;\n }\n\n public override set(key: string, value: string): void {\n this.memoryStorage[this.getKey(key)] = value;\n }\n\n public override get(key: string): string | null {\n return this.memoryStorage[this.getKey(key)] || null;\n }\n\n public override remove(key: string): void {\n delete this.memoryStorage[this.getKey(key)];\n }\n}\n\nexport default MemoryStorage;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.keccak512 = exports.keccak384 = exports.keccak256 = exports.keccak224 = void 0;\nconst sha3_1 = require(\"@noble/hashes/sha3\");\nconst utils_js_1 = require(\"./utils.js\");\nexports.keccak224 = (0, utils_js_1.wrapHash)(sha3_1.keccak_224);\nexports.keccak256 = (() => {\n const k = (0, utils_js_1.wrapHash)(sha3_1.keccak_256);\n k.create = sha3_1.keccak_256.create;\n return k;\n})();\nexports.keccak384 = (0, utils_js_1.wrapHash)(sha3_1.keccak_384);\nexports.keccak512 = (0, utils_js_1.wrapHash)(sha3_1.keccak_512);\n","export default function _isObject(x: any) {\n return Object.prototype.toString.call(x) === \"[object Object]\";\n}\n","import { KEY_PREFIX } from \"../constant\";\nimport { CookieOptions, IStorage } from \"../type\";\n\nabstract class StorageBlueprint implements IStorage {\n constructor(private readonly writeKey: string) {}\n\n abstract isAvailable(): boolean;\n abstract set(key: string, value: string, options?: CookieOptions): void;\n abstract get(key: string): any;\n abstract remove(key: string): void;\n\n protected getKey(key: string): string {\n return `${KEY_PREFIX}_${this.writeKey}.${key}`;\n }\n}\n\nexport default StorageBlueprint;\n","export enum EventType {\n PAGE = \"page\",\n IDENTIFY = \"identify\",\n DETECT = \"detect\",\n CONNECT = \"connect\",\n DISCONNECT = \"disconnect\",\n CHAIN = \"chain\",\n SIGNATURE = \"signature\",\n TRANSACTION = \"transaction\",\n TRACK = \"track\",\n}\n\nexport enum EventChannel {\n WEB = \"web\",\n MOBILE = \"mobile\",\n SERVER = \"server\",\n SOURCE = \"source\",\n}\n\nexport type TEventType = Lowercase<EventType>;\nexport type TEventChannel = Lowercase<EventChannel>;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.requestProviders = exports.announceProvider = void 0;\nfunction announceProvider(detail) {\n const event = new CustomEvent('eip6963:announceProvider', { detail: Object.freeze(detail) });\n window.dispatchEvent(event);\n const handler = () => window.dispatchEvent(event);\n window.addEventListener('eip6963:requestProvider', handler);\n return () => window.removeEventListener('eip6963:requestProvider', handler);\n}\nexports.announceProvider = announceProvider;\nfunction requestProviders(listener) {\n if (typeof window === 'undefined')\n return;\n const handler = (event) => listener(event.detail);\n window.addEventListener('eip6963:announceProvider', handler);\n window.dispatchEvent(new CustomEvent('eip6963:requestProvider'));\n return () => window.removeEventListener('eip6963:announceProvider', handler);\n}\nexports.requestProviders = requestProviders;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBig = exports.shrSL = exports.shrSH = exports.rotrSL = exports.rotrSH = exports.rotrBL = exports.rotrBH = exports.rotr32L = exports.rotr32H = exports.rotlSL = exports.rotlSH = exports.rotlBL = exports.rotlBH = exports.add5L = exports.add5H = exports.add4L = exports.add4H = exports.add3L = exports.add3H = void 0;\nexports.add = add;\nexports.fromBig = fromBig;\nexports.split = split;\n/**\n * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array.\n * @todo re-check https://issues.chromium.org/issues/42212588\n * @module\n */\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n const len = lst.length;\n let Ah = new Uint32Array(len);\n let Al = new Uint32Array(len);\n for (let i = 0; i < len; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\nexports.toBig = toBig;\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nexports.shrSH = shrSH;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.shrSL = shrSL;\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nexports.rotrSH = rotrSH;\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.rotrSL = rotrSL;\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nexports.rotrBH = rotrBH;\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\nexports.rotrBL = rotrBL;\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nexports.rotr32H = rotr32H;\nconst rotr32L = (h, _l) => h;\nexports.rotr32L = rotr32L;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nexports.rotlSH = rotlSH;\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\nexports.rotlSL = rotlSL;\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nexports.rotlBH = rotlBH;\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\nexports.rotlBL = rotlBL;\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nexports.add3L = add3L;\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nexports.add3H = add3H;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nexports.add4L = add4L;\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nexports.add4H = add4H;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nexports.add5L = add5L;\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\nexports.add5H = add5H;\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexports.default = u64;\n//# sourceMappingURL=_u64.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assertBytes = exports.assertBool = exports.utf8ToBytes = exports.toHex = exports.createView = exports.concatBytes = exports.bytesToHex = void 0;\nexports.bytesToUtf8 = bytesToUtf8;\nexports.hexToBytes = hexToBytes;\nexports.equalsBytes = equalsBytes;\nexports.wrapHash = wrapHash;\nconst utils_1 = require(\"@noble/curves/abstract/utils\");\nObject.defineProperty(exports, \"assertBool\", { enumerable: true, get: function () { return utils_1.abool; } });\nconst _assert_1 = require(\"@noble/hashes/_assert\");\nObject.defineProperty(exports, \"assertBytes\", { enumerable: true, get: function () { return _assert_1.abytes; } });\nconst utils_2 = require(\"@noble/hashes/utils\");\nvar utils_3 = require(\"@noble/hashes/utils\");\nObject.defineProperty(exports, \"bytesToHex\", { enumerable: true, get: function () { return utils_3.bytesToHex; } });\nObject.defineProperty(exports, \"concatBytes\", { enumerable: true, get: function () { return utils_3.concatBytes; } });\nObject.defineProperty(exports, \"createView\", { enumerable: true, get: function () { return utils_3.createView; } });\nObject.defineProperty(exports, \"toHex\", { enumerable: true, get: function () { return utils_3.bytesToHex; } });\nObject.defineProperty(exports, \"utf8ToBytes\", { enumerable: true, get: function () { return utils_3.utf8ToBytes; } });\n// buf.toString('utf8') -> bytesToUtf8(buf)\nfunction bytesToUtf8(data) {\n if (!(data instanceof Uint8Array)) {\n throw new TypeError(`bytesToUtf8 expected Uint8Array, got ${typeof data}`);\n }\n return new TextDecoder().decode(data);\n}\nfunction hexToBytes(data) {\n const sliced = data.startsWith(\"0x\") ? data.substring(2) : data;\n return (0, utils_2.hexToBytes)(sliced);\n}\n// buf.equals(buf2) -> equalsBytes(buf, buf2)\nfunction equalsBytes(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n// Internal utils\nfunction wrapHash(hash) {\n return (msg) => {\n (0, _assert_1.abytes)(msg);\n return hash(msg);\n };\n}\n","import { ILogger, LogLevel } from \"./type\";\n\nexport class Logger implements ILogger {\n private static instance: ILogger;\n private enabledLevels: Set<LogLevel>;\n private enabled: boolean;\n\n private constructor(\n enabled: boolean = false,\n enabledLevels: LogLevel[] = []\n ) {\n this.enabled = enabled;\n this.enabledLevels = new Set(enabledLevels);\n }\n\n public static init(config: {\n enabled?: boolean;\n enabledLevels?: LogLevel[];\n }): void {\n // Get or create instance\n const instance = Logger.getInstance();\n\n // Update configuration\n if (config.enabled !== undefined) {\n instance.setEnabled(config.enabled);\n }\n if (config.enabledLevels !== undefined) {\n instance.setEnabledLevels(config.enabledLevels);\n }\n }\n\n public static getInstance(config?: {\n enabled?: boolean;\n enabledLevels?: LogLevel[];\n }): ILogger {\n if (!Logger.instance) {\n Logger.instance = new Logger(\n config?.enabled ?? false,\n config?.enabledLevels ?? []\n );\n }\n return Logger.instance;\n }\n\n public setEnabled(enabled: boolean): void {\n this.enabled = enabled;\n }\n\n public isLoggingEnabled(): boolean {\n return this.enabled;\n }\n\n public setEnabledLevels(levels: LogLevel[]): void {\n this.enabledLevels = new Set(levels);\n }\n\n public getEnabledLevels(): LogLevel[] {\n return Array.from(this.enabledLevels);\n }\n\n private shouldLog(level: LogLevel): boolean {\n if (!this.enabled) return false;\n return this.enabledLevels.has(level);\n }\n\n private formatMessage(message: string): string {\n const timestamp = new Date().toLocaleString(\"en-US\", {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n hour12: false,\n });\n return `[Formo SDK][${timestamp}] ${message}`;\n }\n\n public debug(message: string, ...args: any[]): void {\n if (this.shouldLog(\"debug\")) {\n console.debug(this.formatMessage(message), ...args);\n }\n }\n\n public info(message: string, ...args: any[]): void {\n if (this.shouldLog(\"info\")) {\n console.info(this.formatMessage(message), ...args);\n }\n }\n\n public warn(message: string, ...args: any[]): void {\n if (this.shouldLog(\"warn\")) {\n console.warn(this.formatMessage(message), ...args);\n }\n }\n\n public error(message: string, ...args: any[]): void {\n if (this.shouldLog(\"error\")) {\n console.error(this.formatMessage(message), ...args);\n }\n }\n\n public trace(message: string, ...args: any[]): void {\n if (this.shouldLog(\"trace\")) {\n console.trace(this.formatMessage(message), ...args);\n }\n }\n\n public log(message: string, ...args: any[]): void {\n this.info(message, ...args);\n }\n}\n\n// Export a default instance for easy use\nexport const logger = Logger.getInstance();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shake256 = exports.shake128 = exports.keccak_512 = exports.keccak_384 = exports.keccak_256 = exports.keccak_224 = exports.sha3_512 = exports.sha3_384 = exports.sha3_256 = exports.sha3_224 = exports.Keccak = void 0;\nexports.keccakP = keccakP;\n/**\n * SHA3 (keccak) hash function, based on a new \"Sponge function\" design.\n * Different from older hashes, the internal state is bigger than output size.\n *\n * Check out [FIPS-202](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf),\n * [Website](https://keccak.team/keccak.html),\n * [the differences between SHA-3 and Keccak](https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub).\n *\n * Check out `sha3-addons` module for cSHAKE, k12, and others.\n * @module\n */\nconst _u64_ts_1 = require(\"./_u64.js\");\n// prettier-ignore\nconst utils_ts_1 = require(\"./utils.js\");\n// No __PURE__ annotations in sha3 header:\n// EVERYTHING is in fact used on every export.\n// Various per round constants calculations\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nconst SHA3_PI = [];\nconst SHA3_ROTL = [];\nconst _SHA3_IOTA = [];\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst IOTAS = (0, _u64_ts_1.split)(_SHA3_IOTA, true);\nconst SHA3_IOTA_H = IOTAS[0];\nconst SHA3_IOTA_L = IOTAS[1];\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? (0, _u64_ts_1.rotlBH)(h, l, s) : (0, _u64_ts_1.rotlSH)(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? (0, _u64_ts_1.rotlBL)(h, l, s) : (0, _u64_ts_1.rotlSL)(h, l, s));\n/** `keccakf1600` internal function, additionally allows to adjust round count. */\nfunction keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n (0, utils_ts_1.clean)(B);\n}\n/** Keccak sponge function. */\nclass Keccak extends utils_ts_1.Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n this.enableXOF = false;\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n // Can be passed from user as dkLen\n (0, utils_ts_1.anumber)(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n // 0 < blockLen < 200\n if (!(0 < blockLen && blockLen < 200))\n throw new Error('only keccak-f1600 function is supported');\n this.state = new Uint8Array(200);\n this.state32 = (0, utils_ts_1.u32)(this.state);\n }\n clone() {\n return this._cloneInto();\n }\n keccak() {\n (0, utils_ts_1.swap32IfBE)(this.state32);\n keccakP(this.state32, this.rounds);\n (0, utils_ts_1.swap32IfBE)(this.state32);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n (0, utils_ts_1.aexists)(this);\n data = (0, utils_ts_1.toBytes)(data);\n (0, utils_ts_1.abytes)(data);\n const { blockLen, state } = this;\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n (0, utils_ts_1.aexists)(this, false);\n (0, utils_ts_1.abytes)(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n (0, utils_ts_1.anumber)(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n (0, utils_ts_1.aoutput)(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n (0, utils_ts_1.clean)(this.state);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nexports.Keccak = Keccak;\nconst gen = (suffix, blockLen, outputLen) => (0, utils_ts_1.createHasher)(() => new Keccak(blockLen, suffix, outputLen));\n/** SHA3-224 hash function. */\nexports.sha3_224 = (() => gen(0x06, 144, 224 / 8))();\n/** SHA3-256 hash function. Different from keccak-256. */\nexports.sha3_256 = (() => gen(0x06, 136, 256 / 8))();\n/** SHA3-384 hash function. */\nexports.sha3_384 = (() => gen(0x06, 104, 384 / 8))();\n/** SHA3-512 hash function. */\nexports.sha3_512 = (() => gen(0x06, 72, 512 / 8))();\n/** keccak-224 hash function. */\nexports.keccak_224 = (() => gen(0x01, 144, 224 / 8))();\n/** keccak-256 hash function. Different from SHA3-256. */\nexports.keccak_256 = (() => gen(0x01, 136, 256 / 8))();\n/** keccak-384 hash function. */\nexports.keccak_384 = (() => gen(0x01, 104, 384 / 8))();\n/** keccak-512 hash function. */\nexports.keccak_512 = (() => gen(0x01, 72, 512 / 8))();\nconst genShake = (suffix, blockLen, outputLen) => (0, utils_ts_1.createXOFer)((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\n/** SHAKE128 XOF with 128-bit security. */\nexports.shake128 = (() => genShake(0x1f, 168, 128 / 8))();\n/** SHAKE256 XOF with 256-bit security. */\nexports.shake256 = (() => genShake(0x1f, 136, 256 / 8))();\n//# sourceMappingURL=sha3.js.map","import { FormoAnalytics } from \"./FormoAnalytics\";\nimport { Options } from \"./types\";\n\nexport function formofy(writeKey: string, options?: Options) {\n if (writeKey && typeof window !== \"undefined\") {\n FormoAnalytics.init(writeKey, options)\n .then((f) => {\n (window as any).formo = f;\n })\n .catch((e) => console.error(\"Error initializing FormoAnalytics:\", e));\n } else {\n console.warn(\"FormoAnalytics not found\");\n }\n}\n","export function isUint8Array(data: unknown | Uint8Array): data is Uint8Array {\n return (\n data instanceof Uint8Array ||\n (data as { constructor: { name: string } })?.constructor?.name ===\n \"Uint8Array\" ||\n (data as { constructor: { name: string } })?.constructor?.name === \"Buffer\"\n );\n}\n\nexport function uint8ArrayToHexString(uint8Array: Uint8Array): string {\n let hexString = \"0x\";\n for (const e of uint8Array as any) {\n const hex = e.toString(16);\n hexString += hex.length === 1 ? `0${hex}` : hex;\n }\n return hexString;\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.fetchRetry = factory());\n})(this, (function () { 'use strict';\n\n var fetchRetry = function (fetch, defaults) {\n defaults = defaults || {};\n if (typeof fetch !== 'function') {\n throw new ArgumentError('fetch must be a function');\n }\n\n if (typeof defaults !== 'object') {\n throw new ArgumentError('defaults must be an object');\n }\n\n if (defaults.retries !== undefined && !isPositiveInteger(defaults.retries)) {\n throw new ArgumentError('retries must be a positive integer');\n }\n\n if (defaults.retryDelay !== undefined && !isPositiveInteger(defaults.retryDelay) && typeof defaults.retryDelay !== 'function') {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n\n if (defaults.retryOn !== undefined && !Array.isArray(defaults.retryOn) && typeof defaults.retryOn !== 'function') {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n\n var baseDefaults = {\n retries: 3,\n retryDelay: 1000,\n retryOn: [],\n };\n\n defaults = Object.assign(baseDefaults, defaults);\n\n return function fetchRetry(input, init) {\n var retries = defaults.retries;\n var retryDelay = defaults.retryDelay;\n var retryOn = defaults.retryOn;\n\n if (init && init.retries !== undefined) {\n if (isPositiveInteger(init.retries)) {\n retries = init.retries;\n } else {\n throw new ArgumentError('retries must be a positive integer');\n }\n }\n\n if (init && init.retryDelay !== undefined) {\n if (isPositiveInteger(init.retryDelay) || (typeof init.retryDelay === 'function')) {\n retryDelay = init.retryDelay;\n } else {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n }\n\n if (init && init.retryOn) {\n if (Array.isArray(init.retryOn) || (typeof init.retryOn === 'function')) {\n retryOn = init.retryOn;\n } else {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n }\n\n // eslint-disable-next-line no-undef\n return new Promise(function (resolve, reject) {\n var wrappedFetch = function (attempt) {\n // As of node 18, this is no longer needed since node comes with native support for fetch:\n /* istanbul ignore next */\n var _input =\n typeof Request !== 'undefined' && input instanceof Request\n ? input.clone()\n : input;\n fetch(_input, init)\n .then(function (response) {\n if (Array.isArray(retryOn) && retryOn.indexOf(response.status) === -1) {\n resolve(response);\n } else if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n return Promise.resolve(retryOn(attempt, null, response))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }).catch(reject);\n } catch (error) {\n reject(error);\n }\n } else {\n if (attempt < retries) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }\n })\n .catch(function (error) {\n if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n Promise.resolve(retryOn(attempt, error, null))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n })\n .catch(function(error) {\n reject(error);\n });\n } catch(error) {\n reject(error);\n }\n } else if (attempt < retries) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n });\n };\n\n function retry(attempt, error, response) {\n var delay = (typeof retryDelay === 'function') ?\n retryDelay(attempt, error, response) : retryDelay;\n setTimeout(function () {\n wrappedFetch(++attempt);\n }, delay);\n }\n\n wrappedFetch(0);\n });\n };\n };\n\n function isPositiveInteger(value) {\n return Number.isInteger(value) && value >= 0;\n }\n\n function ArgumentError(message) {\n this.name = 'ArgumentError';\n this.message = message;\n }\n\n return fetchRetry;\n\n}));\n","export const EVENTS_API_HOST = \"https://events.formo.so\";\nexport const EVENTS_API_URL = `${EVENTS_API_HOST}/v0/raw_events`;\nexport const USER_API_URL = `${EVENTS_API_HOST}/user`;\n\nexport const EVENTS_API_REQUEST_HEADER = (writeKey: string) => ({\n \"Content-Type\": \"application/json\",\n Authorization: `Basic ${writeKey}`,\n});\n\nexport const COUNTRY_LIST = {\n // Africa\n \"Africa/Abidjan\": \"CI\",\n \"Africa/Accra\": \"GH\",\n \"Africa/Addis_Ababa\": \"ET\",\n \"Africa/Algiers\": \"DZ\",\n \"Africa/Asmara\": \"ER\",\n \"Africa/Asmera\": \"ER\",\n \"Africa/Bamako\": \"ML\",\n \"Africa/Bangui\": \"CF\",\n \"Africa/Banjul\": \"GM\",\n \"Africa/Bissau\": \"GW\",\n \"Africa/Blantyre\": \"MW\",\n \"Africa/Brazzaville\": \"CG\",\n \"Africa/Bujumbura\": \"BI\",\n \"Africa/Cairo\": \"EG\",\n \"Africa/Casablanca\": \"MA\",\n \"Africa/Ceuta\": \"ES\",\n \"Africa/Conakry\": \"GN\",\n \"Africa/Dakar\": \"SN\",\n \"Africa/Dar_es_Salaam\": \"TZ\",\n \"Africa/Djibouti\": \"DJ\",\n \"Africa/Douala\": \"CM\",\n \"Africa/El_Aaiun\": \"EH\",\n \"Africa/Freetown\": \"SL\",\n \"Africa/Gaborone\": \"BW\",\n \"Africa/Harare\": \"ZW\",\n \"Africa/Johannesburg\": \"ZA\",\n \"Africa/Juba\": \"SS\",\n \"Africa/Kampala\": \"UG\",\n \"Africa/Khartoum\": \"SD\",\n \"Africa/Kigali\": \"RW\",\n \"Africa/Kinshasa\": \"CD\",\n \"Africa/Lagos\": \"NG\",\n \"Africa/Libreville\": \"GA\",\n \"Africa/Lome\": \"TG\",\n \"Africa/Luanda\": \"AO\",\n \"Africa/Lubumbashi\": \"CD\",\n \"Africa/Lusaka\": \"ZM\",\n \"Africa/Malabo\": \"GQ\",\n \"Africa/Maputo\": \"MZ\",\n \"Africa/Maseru\": \"LS\",\n \"Africa/Mbabane\": \"SZ\",\n \"Africa/Mogadishu\": \"SO\",\n \"Africa/Monrovia\": \"LR\",\n \"Africa/Nairobi\": \"KE\",\n \"Africa/Ndjamena\": \"TD\",\n \"Africa/Niamey\": \"NE\",\n \"Africa/Nouakchott\": \"MR\",\n \"Africa/Ouagadougou\": \"BF\",\n \"Africa/Porto-Novo\": \"BJ\",\n \"Africa/Sao_Tome\": \"ST\",\n \"Africa/Timbuktu\": \"ML\",\n \"Africa/Tripoli\": \"LY\",\n \"Africa/Tunis\": \"TN\",\n \"Africa/Windhoek\": \"NA\",\n // America\n \"America/Adak\": \"US\",\n \"America/Anchorage\": \"US\",\n \"America/Anguilla\": \"AI\",\n \"America/Antigua\": \"AG\",\n \"America/Araguaina\": \"BR\",\n \"America/Argentina/Buenos_Aires\": \"AR\",\n \"America/Argentina/Catamarca\": \"AR\",\n \"America/Argentina/ComodRivadavia\": \"AR\",\n \"America/Argentina/Cordoba\": \"AR\",\n \"America/Argentina/Jujuy\": \"AR\",\n \"America/Argentina/La_Rioja\": \"AR\",\n \"America/Argentina/Mendoza\": \"AR\",\n \"America/Argentina/Rio_Gallegos\": \"AR\",\n \"America/Argentina/Salta\": \"AR\",\n \"America/Argentina/San_Juan\": \"AR\",\n \"America/Argentina/San_Luis\": \"AR\",\n \"America/Argentina/Tucuman\": \"AR\",\n \"America/Argentina/Ushuaia\": \"AR\",\n \"America/Aruba\": \"AW\",\n \"America/Asuncion\": \"PY\",\n \"America/Atikokan\": \"CA\",\n \"America/Atka\": \"US\",\n \"America/Bahia\": \"BR\",\n \"America/Bahia_Banderas\": \"MX\",\n \"America/Barbados\": \"BB\",\n \"America/Belem\": \"BR\",\n \"America/Belize\": \"BZ\",\n \"America/Blanc-Sablon\": \"CA\",\n \"America/Boa_Vista\": \"BR\",\n \"America/Bogota\": \"CO\",\n \"America/Boise\": \"US\",\n \"America/Buenos_Aires\": \"AR\",\n \"America/Cambridge_Bay\": \"CA\",\n \"America/Campo_Grande\": \"BR\",\n \"America/Cancun\": \"MX\",\n \"America/Caracas\": \"VE\",\n \"America/Catamarca\": \"AR\",\n \"America/Cayenne\": \"GF\",\n \"America/Cayman\": \"KY\",\n \"America/Chicago\": \"US\",\n \"America/Chihuahua\": \"MX\",\n \"America/Ciudad_Juarez\": \"MX\",\n \"America/Coral_Harbour\": \"CA\",\n \"America/Cordoba\": \"AR\",\n \"America/Costa_Rica\": \"CR\",\n \"America/Creston\": \"CA\",\n \"America/Cuiaba\": \"BR\",\n \"America/Curacao\": \"CW\",\n \"America/Danmarkshavn\": \"GL\",\n \"America/Dawson\": \"CA\",\n \"America/Dawson_Creek\": \"CA\",\n \"America/Denver\": \"US\",\n \"America/Detroit\": \"US\",\n \"America/Dominica\": \"DM\",\n \"America/Edmonton\": \"CA\",\n \"America/Eirunepe\": \"BR\",\n \"America/El_Salvador\": \"SV\",\n \"America/Ensenada\": \"MX\",\n \"America/Fort_Nelson\": \"CA\",\n \"America/Fort_Wayne\": \"US\",\n \"America/Fortaleza\": \"BR\",\n \"America/Glace_Bay\": \"CA\",\n \"America/Godthab\": \"GL\",\n \"America/Goose_Bay\": \"CA\",\n \"America/Grand_Turk\": \"TC\",\n \"America/Grenada\": \"GD\",\n \"America/Guadeloupe\": \"GP\",\n \"America/Guatemala\": \"GT\",\n \"America/Guayaquil\": \"EC\",\n \"America/Guyana\": \"GY\",\n \"America/Halifax\": \"CA\",\n \"America/Havana\": \"CU\",\n \"America/Hermosillo\": \"MX\",\n \"America/Indiana/Indianapoli\": \"US\",\n \"America/Indiana/Knox\": \"US\",\n \"America/Indiana/Marengo\": \"US\",\n \"America/Indiana/Petersburg\": \"US\",\n \"America/Indiana/Tell_City\": \"US\",\n \"America/Indiana/Vevay\": \"US\",\n \"America/Indiana/Vincennes\": \"US\",\n \"America/Indiana/Winamac\": \"US\",\n \"America/Indianapoli\": \"US\",\n \"America/Inuvik\": \"CA\",\n \"America/Iqaluit\": \"CA\",\n \"America/Jamaica\": \"JM\",\n \"America/Jujuy\": \"AR\",\n \"America/Juneau\": \"US\",\n \"America/Kentucky/Louisville\": \"US\",\n \"America/Kentucky/Monticello\": \"US\",\n \"America/Knox_IN\": \"US\",\n \"America/Kralendijk\": \"BQ\",\n \"America/La_Paz\": \"BO\",\n \"America/Lima\": \"PE\",\n \"America/Los_Angeles\": \"US\",\n \"America/Louisville\": \"US\",\n \"America/Lower_Princes\": \"SX\",\n \"America/Maceio\": \"BR\",\n \"America/Managua\": \"NI\",\n \"America/Manaus\": \"BR\",\n \"America/Marigot\": \"MF\",\n \"America/Martinique\": \"MQ\",\n \"America/Matamoros\": \"MX\",\n \"America/Mazatlan\": \"MX\",\n \"America/Mendoza\": \"AR\",\n \"America/Menominee\": \"US\",\n \"America/Merida\": \"MX\",\n \"America/Metlakatla\": \"US\",\n \"America/Mexico_City\": \"MX\",\n \"America/Miquelon\": \"PM\",\n \"America/Moncton\": \"CA\",\n \"America/Monterrey\": \"MX\",\n \"America/Montevideo\": \"UY\",\n \"America/Montreal\": \"CA\",\n \"America/Montserrat\": \"MS\",\n \"America/Nassau\": \"BS\",\n \"America/New_York\": \"US\",\n \"America/Nipigon\": \"CA\",\n \"America/Nome\": \"US\",\n \"America/Noronha\": \"BR\",\n \"America/North_Dakota/Beulah\": \"US\",\n \"America/North_Dakota/Center\": \"US\",\n \"America/North_Dakota/New_Salem\": \"US\",\n \"America/Nuuk\": \"GL\",\n \"America/Ojinaga\": \"MX\",\n \"America/Panama\": \"PA\",\n \"America/Pangnirtung\": \"CA\",\n \"America/Paramaribo\": \"SR\",\n \"America/Phoenix\": \"US,CA\",\n \"America/Port-au-Prince\": \"HT\",\n \"America/Port_of_Spain\": \"TT\",\n \"America/Porto_Acre\": \"BR\",\n \"America/Porto_Velho\": \"BR\",\n \"America/Puerto_Rico\": \"PR\",\n \"America/Punta_Arenas\": \"CL\",\n \"America/Rainy_River\": \"CA\",\n \"America/Rankin_Inlet\": \"CA\",\n \"America/Recife\": \"BR\",\n \"America/Regina\": \"CA\",\n \"America/Resolute\": \"CA\",\n \"America/Rio_Branco\": \"BR\",\n \"America/Rosario\": \"AR\",\n \"America/Santa_Isabel\": \"MX\",\n \"America/Santarem\": \"BR\",\n \"America/Santiago\": \"CL\",\n \"America/Santo_Domingo\": \"DO\",\n \"America/Sao_Paulo\": \"BR\",\n \"America/Scoresbysund\": \"GL\",\n \"America/Shiprock\": \"US\",\n \"America/Sitka\": \"US\",\n \"America/St_Barthelemy\": \"BL\",\n \"America/St_Johns\": \"CA\",\n \"America/St_Kitts\": \"KN\",\n \"America/St_Lucia\": \"LC\",\n \"America/St_Thomas\": \"VI\",\n \"America/St_Vincent\": \"VC\",\n \"America/Swift_Current\": \"CA\",\n \"America/Tegucigalpa\": \"HN\",\n \"America/Thule\": \"GL\",\n \"America/Thunder_Bay\": \"CA\",\n \"America/Tijuana\": \"MX\",\n \"America/Toronto\": \"CA\",\n \"America/Tortola\": \"VG\",\n \"America/Vancouver\": \"CA\",\n \"America/Virgin\": \"VI\",\n \"America/Whitehorse\": \"CA\",\n \"America/Winnipeg\": \"CA\",\n \"America/Yakutat\": \"US\",\n \"America/Yellowknife\": \"CA\",\n // Antarctica\n \"Antarctica/Casey\": \"AQ\",\n \"Antarctica/Davis\": \"AQ\",\n \"Antarctica/DumontDUrville\": \"AQ\",\n \"Antarctica/Macquarie\": \"AU\",\n \"Antarctica/Mawson\": \"AQ\",\n \"Antarctica/McMurdo\": \"AQ\",\n \"Antarctica/Palmer\": \"AQ\",\n \"Antarctica/Rothera\": \"AQ\",\n \"Antarctica/South_Pole\": \"AQ\",\n \"Antarctica/Syowa\": \"AQ\",\n \"Antarctica/Troll\": \"AQ\",\n \"Antarctica/Vostok\": \"AQ\",\n // Arctic\n \"Arctic/Longyearbyen\": \"SJ\",\n // Asia\n \"Asia/Aden\": \"YE\",\n \"Asia/Almaty\": \"KZ\",\n \"Asia/Amman\": \"JO\",\n \"Asia/Anadyr\": \"RU\",\n \"Asia/Aqtau\": \"KZ\",\n \"Asia/Aqtobe\": \"KZ\",\n \"Asia/Ashgabat\": \"TM\",\n \"Asia/Ashkhabad\": \"TM\",\n \"Asia/Atyrau\": \"KZ\",\n \"Asia/Baghdad\": \"IQ\",\n \"Asia/Bahrain\": \"BH\",\n \"Asia/Baku\": \"AZ\",\n \"Asia/Bangkok\": \"TH\",\n \"Asia/Barnaul\": \"RU\",\n \"Asia/Beirut\": \"LB\",\n \"Asia/Bishkek\": \"KG\",\n \"Asia/Brunei\": \"BN\",\n \"Asia/Calcutta\": \"IN\",\n \"Asia/Chita\": \"RU\",\n \"Asia/Choibalsan\": \"MN\",\n \"Asia/Chongqing\": \"CN\",\n \"Asia/Chungking\": \"CN\",\n \"Asia/Colombo\": \"LK\",\n \"Asia/Dacca\": \"BD\",\n \"Asia/Damascus\": \"SY\",\n \"Asia/Dhaka\": \"BD\",\n \"Asia/Dili\": \"TL\",\n \"Asia/Dubai\": \"AE\",\n \"Asia/Dushanbe\": \"TJ\",\n \"Asia/Famagusta\": \"CY\",\n \"Asia/Gaza\": \"PS\",\n \"Asia/Harbin\": \"CN\",\n \"Asia/Hebron\": \"PS\",\n \"Asia/Ho_Chi_Minh\": \"VN\",\n \"Asia/Hong_Kong\": \"HK\",\n \"Asia/Hovd\": \"MN\",\n \"Asia/Irkutsk\": \"RU\",\n \"Asia/Istanbul\": \"TR\",\n \"Asia/Jakarta\": \"ID\",\n \"Asia/Jayapura\": \"ID\",\n \"Asia/Jerusalem\": \"IL\",\n \"Asia/Kabul\": \"AF\",\n \"Asia/Kamchatka\": \"RU\",\n \"Asia/Karachi\": \"PK\",\n \"Asia/Kashgar\": \"CN\",\n \"Asia/Kathmandu\": \"NP\",\n \"Asia/Katmandu\": \"NP\",\n \"Asia/Khandyga\": \"RU\",\n \"Asia/Kolkata\": \"IN\",\n \"Asia/Krasnoyarsk\": \"RU\",\n \"Asia/Kuala_Lumpur\": \"MY\",\n \"Asia/Kuching\": \"MY\",\n \"Asia/Kuwait\": \"KW\",\n \"Asia/Macao\": \"MO\",\n \"Asia/Macau\": \"MO\",\n \"Asia/Magadan\": \"RU\",\n \"Asia/Makassar\": \"ID\",\n \"Asia/Manila\": \"PH\",\n \"Asia/Muscat\": \"OM\",\n \"Asia/Nicosia\": \"CY\",\n \"Asia/Novokuznetsk\": \"RU\",\n \"Asia/Novosibirsk\": \"RU\",\n \"Asia/Omsk\": \"RU\",\n \"Asia/Oral\": \"KZ\",\n \"Asia/Phnom_Penh\": \"KH\",\n \"Asia/Pontianak\": \"ID\",\n \"Asia/Pyongyang\": \"KP\",\n \"Asia/Qatar\": \"QA\",\n \"Asia/Qostanay\": \"KZ\",\n \"Asia/Qyzylorda\": \"KZ\",\n \"Asia/Rangoon\": \"MM\",\n \"Asia/Riyadh\": \"SA\",\n \"Asia/Saigon\": \"VN\",\n \"Asia/Sakhalin\": \"RU\",\n \"Asia/Samarkand\": \"UZ\",\n \"Asia/Seoul\": \"KR\",\n \"Asia/Shanghai\": \"CN\",\n \"Asia/Singapore\": \"SG\",\n \"Asia/Srednekolymsk\": \"RU\",\n \"Asia/Taipei\": \"TW\",\n \"Asia/Tashkent\": \"UZ\",\n \"Asia/Tbilisi\": \"GE\",\n \"Asia/Tehran\": \"IR\",\n \"Asia/Tel_Aviv\": \"IL\",\n \"Asia/Thimbu\": \"BT\",\n \"Asia/Thimphu\": \"BT\",\n \"Asia/Tokyo\": \"JP\",\n \"Asia/Tomsk\": \"RU\",\n \"Asia/Ujung_Pandang\": \"ID\",\n \"Asia/Ulaanbaatar\": \"MN\",\n \"Asia/Ulan_Bator\": \"MN\",\n \"Asia/Urumqi\": \"CN\",\n \"Asia/Ust-Nera\": \"RU\",\n \"Asia/Vientiane\": \"LA\",\n \"Asia/Vladivostok\": \"RU\",\n \"Asia/Yakutsk\": \"RU\",\n \"Asia/Yangon\": \"MM\",\n \"Asia/Yekaterinburg\": \"RU\",\n \"Asia/Yerevan\": \"AM\",\n // Atlantic\n \"Atlantic/Azores\": \"PT\",\n \"Atlantic/Bermuda\": \"BM\",\n \"Atlantic/Canary\": \"ES\",\n \"Atlantic/Cape_Verde\": \"CV\",\n \"Atlantic/Faeroe\": \"FO\",\n \"Atlantic/Faroe\": \"FO\",\n \"Atlantic/Jan_Mayen\": \"SJ\",\n \"Atlantic/Madeira\": \"PT\",\n \"Atlantic/Reykjavik\": \"IS\",\n \"Atlantic/South_Georgia\": \"GS\",\n \"Atlantic/St_Helena\": \"SH\",\n \"Atlantic/Stanley\": \"FK\",\n // Australia\n \"Australia/ACT\": \"AU\",\n \"Australia/Adelaide\": \"AU\",\n \"Australia/Brisbane\": \"AU\",\n \"Australia/Broken_Hill\": \"AU\",\n \"Australia/Canberra\": \"AU\",\n \"Australia/Currie\": \"AU\",\n \"Australia/Darwin\": \"AU\",\n \"Australia/Eucla\": \"AU\",\n \"Australia/Hobart\": \"AU\",\n \"Australia/LHI\": \"AU\",\n \"Australia/Lindeman\": \"AU\",\n \"Australia/Lord_Howe\": \"AU\",\n \"Australia/Melbourne\": \"AU\",\n \"Australia/North\": \"AU\",\n \"Australia/NSW\": \"AU\",\n \"Australia/Perth\": \"AU\",\n \"Australia/Queensland\": \"AU\",\n \"Australia/South\": \"AU\",\n \"Australia/Sydney\": \"AU\",\n \"Australia/Tasmania\": \"AU\",\n \"Australia/Victoria\": \"AU\",\n \"Australia/West\": \"AU\",\n \"Australia/Yancowinna\": \"AU\",\n // Brazil\n \"Brazil/Acre\": \"BR\",\n \"Brazil/DeNoronha\": \"BR\",\n \"Brazil/East\": \"BR\",\n \"Brazil/West\": \"BR\",\n // Canada\n \"Canada/Atlantic\": \"CA\",\n \"Canada/Central\": \"CA\",\n \"Canada/Eastern\": \"CA\",\n \"Canada/Mountain\": \"CA\",\n \"Canada/Newfoundland\": \"CA\",\n \"Canada/Pacific\": \"CA\",\n \"Canada/Saskatchewan\": \"CA\",\n \"Canada/Yukon\": \"CA\",\n // CET\n CET: \"CET\",\n // Chile\n \"Chile/Continental\": \"CL\",\n \"Chile/EasterIsland\": \"CL\",\n // CST6CDT\n CST6CDT: \"CST6CDT\",\n // Cuba\n Cuba: \"CU\",\n // EET\n EET: \"EET\",\n // Egypt\n Egypt: \"EG\",\n // Eire\n Eire: \"IE\",\n // EST\n EST: \"EST\",\n EST5EDT: \"EST5EDT\",\n \"Etc/GMT\": \"Etc/GMT\",\n \"Etc/GMT+0\": \"Etc/GMT+0\",\n \"Etc/GMT+1\": \"Etc/GMT+1\",\n \"Etc/GMT+10\": \"Etc/GMT+10\",\n \"Etc/GMT+11\": \"Etc/GMT+11\",\n \"Etc/GMT+12\": \"Etc/GMT+12\",\n \"Etc/GMT+2\": \"Etc/GMT+2\",\n \"Etc/GMT+3\": \"Etc/GMT+3\",\n \"Etc/GMT+4\": \"Etc/GMT+4\",\n \"Etc/GMT+5\": \"Etc/GMT+5\",\n \"Etc/GMT+6\": \"Etc/GMT+6\",\n \"Etc/GMT+7\": \"Etc/GMT+7\",\n \"Etc/GMT+8\": \"Etc/GMT+8\",\n \"Etc/GMT+9\": \"Etc/GMT+9\",\n \"Etc/GMT-0\": \"Etc/GMT-0\",\n \"Etc/GMT-1\": \"Etc/GMT-1\",\n \"Etc/GMT-10\": \"Etc/GMT-10\",\n \"Etc/GMT-11\": \"Etc/GMT-11\",\n \"Etc/GMT-12\": \"Etc/GMT-12\",\n \"Etc/GMT-13\": \"Etc/GMT-13\",\n \"Etc/GMT-14\": \"Etc/GMT-14\",\n \"Etc/GMT-2\": \"Etc/GMT-2\",\n \"Etc/GMT-3\": \"Etc/GMT-3\",\n \"Etc/GMT-4\": \"Etc/GMT-4\",\n \"Etc/GMT-5\": \"Etc/GMT-5\",\n \"Etc/GMT-6\": \"Etc/GMT-6\",\n \"Etc/GMT-7\": \"Etc/GMT-7\",\n \"Etc/GMT-8\": \"Etc/GMT-8\",\n \"Etc/GMT-9\": \"Etc/GMT-9\",\n \"Etc/GMT0\": \"Etc/GMT0\",\n \"Etc/Greenwich\": \"Etc/Greenwich\",\n \"Etc/UCT\": \"Etc/UCT\",\n \"Etc/UTC\": \"Etc/UTC\",\n \"Etc/Universal\": \"Etc/Universal\",\n \"Etc/Zulu\": \"Etc/Zulu\",\n // Europe\n \"Europe/Amsterdam\": \"NL\",\n \"Europe/Andorra\": \"AD\",\n \"Europe/Astrakhan\": \"RU\",\n \"Europe/Athens\": \"GR\",\n \"Europe/Belfast\": \"GB\",\n \"Europe/Belgrade\": \"RS\",\n \"Europe/Berlin\": \"DE\",\n \"Europe/Bratislava\": \"SK\",\n \"Europe/Brussels\": \"BE\",\n \"Europe/Bucharest\": \"RO\",\n \"Europe/Budapest\": \"HU\",\n \"Europe/Busingen\": \"DE\",\n \"Europe/Chisinau\": \"MD\",\n \"Europe/Copenhagen\": \"DK\",\n \"Europe/Dublin\": \"IE\",\n \"Europe/Gibraltar\": \"GI\",\n \"Europe/Guernsey\": \"GG\",\n \"Europe/Helsinki\": \"FI\",\n \"Europe/Isle_of_Man\": \"IM\",\n \"Europe/Istanbul\": \"TR\",\n \"Europe/Jersey\": \"JE\",\n \"Europe/Kaliningrad\": \"RU\",\n \"Europe/Kiev\": \"UA\",\n \"Europe/Kirov\": \"RU\",\n \"Europe/Kyiv\": \"UA\",\n \"Europe/Lisbon\": \"PT\",\n \"Europe/Ljubljana\": \"SI\",\n \"Europe/London\": \"GB\",\n \"Europe/Luxembourg\": \"LU\",\n \"Europe/Madrid\": \"ES\",\n \"Europe/Malta\": \"MT\",\n \"Europe/Mariehamn\": \"AX\",\n \"Europe/Minsk\": \"BY\",\n \"Europe/Monaco\": \"MC\",\n \"Europe/Moscow\": \"RU\",\n \"Europe/Nicosia\": \"CY\",\n \"Europe/Oslo\": \"NO\",\n \"Europe/Paris\": \"FR\",\n \"Europe/Podgorica\": \"ME\",\n \"Europe/Prague\": \"CZ\",\n \"Europe/Riga\": \"LV\",\n \"Europe/Rome\": \"IT\",\n \"Europe/Samara\": \"RU\",\n \"Europe/San_Marino\": \"SM\",\n \"Europe/Sarajevo\": \"BA\",\n \"Europe/Saratov\": \"RU\",\n \"Europe/Simferopol\": \"RU\",\n \"Europe/Skopje\": \"MK\",\n \"Europe/Sofia\": \"BG\",\n \"Europe/Stockholm\": \"SE\",\n \"Europe/Tallinn\": \"EE\",\n \"Europe/Tirane\": \"AL\",\n \"Europe/Tiraspol\": \"MD\",\n \"Europe/Ulyanovsk\": \"RU\",\n \"Europe/Uzhgorod\": \"UA\",\n \"Europe/Vaduz\": \"LI\",\n \"Europe/Vatican\": \"VA\",\n \"Europe/Vienna\": \"AT\",\n \"Europe/Vilnius\": \"LT\",\n \"Europe/Volgograd\": \"RU\",\n \"Europe/Warsaw\": \"PL\",\n \"Europe/Zagreb\": \"HR\",\n \"Europe/Zaporozhye\": \"UA\",\n \"Europe/Zurich\": \"CH\",\n // Factory\n Factory: \"Factory\",\n // GB\n GB: \"GB\",\n \"GB-Eire\": \"GB\",\n // GMT\n GMT: \"GMT\",\n \"GMT+0\": \"GMT+0\",\n \"GMT-0\": \"GMT-0\",\n GMT0: \"GMT0\",\n Greenwich: \"Greenwich\",\n // HK\n Hongkong: \"HK\",\n // HST\n HST: \"HST\",\n // Iceland\n Iceland: \"IS\",\n // Indian\n \"Indian/Antananarivo\": \"MG\",\n \"Indian/Chagos\": \"IO\",\n \"Indian/Christmas\": \"CX\",\n \"Indian/Cocos\": \"CC\",\n \"Indian/Comoro\": \"KM\",\n \"Indian/Kerguelen\": \"TF\",\n \"Indian/Mahe\": \"SC\",\n \"Indian/Maldives\": \"MV\",\n \"Indian/Mauritius\": \"MU\",\n \"Indian/Mayotte\": \"YT\",\n \"Indian/Reunion\": \"RE\",\n // Iran\n Iran: \"IR\",\n // Israel\n Israel: \"IL\",\n // Jamaica\n Jamaica: \"JM\",\n // Japan\n Japan: \"JP\",\n // Kwajalein\n Kwajalein: \"MH\",\n // Libya\n Libya: \"LY\",\n // MET\n MET: \"MET\",\n // Mexico\n \"Mexico/BajaNorte\": \"MX\",\n \"Mexico/BajaSur\": \"MX\",\n \"Mexico/General\": \"MX\",\n // MST\n MST: \"MST\",\n MST7MDT: \"MST7MDT\",\n // Navajo\n Navajo: \"US\",\n // NZ\n NZ: \"NZ\",\n \"NZ-CHAT\": \"NZ\",\n // Pacific\n \"Pacific/Apia\": \"WS\",\n \"Pacific/Auckland\": \"NZ\",\n \"Pacific/Bougainville\": \"PG\",\n \"Pacific/Chatham\": \"NZ\",\n \"Pacific/Chuuk\": \"FM\",\n \"Pacific/Easter\": \"CL\",\n \"Pacific/Efate\": \"VU\",\n \"Pacific/Enderbury\": \"KI\",\n \"Pacific/Fakaofo\": \"TK\",\n \"Pacific/Fiji\": \"FJ\",\n \"Pacific/Funafuti\": \"TV\",\n \"Pacific/Galapagos\": \"EC\",\n \"Pacific/Gambier\": \"PF\",\n \"Pacific/Guadalcanal\": \"SB\",\n \"Pacific/Guam\": \"GU,MP\",\n \"Pacific/Honolulu\": \"US\",\n \"Pacific/Johnston\": \"UM\",\n \"Pacific/Kanton\": \"KI\",\n \"Pacific/Kiritimati\": \"KI\",\n \"Pacific/Kosrae\": \"FM\",\n \"Pacific/Kwajalein\": \"MH\",\n \"Pacific/Majuro\": \"MH\",\n \"Pacific/Marquesas\": \"PF\",\n \"Pacific/Midway\": \"UM\",\n \"Pacific/Nauru\": \"NR\",\n \"Pacific/Niue\": \"NU\",\n \"Pacific/Norfolk\": \"NF\",\n \"Pacific/Noumea\": \"NC\",\n \"Pacific/Pago_Pago\": \"AS\",\n \"Pacific/Palau\": \"PW\",\n \"Pacific/Pitcairn\": \"PN\",\n \"Pacific/Pohnpei\": \"FM\",\n \"Pacific/Ponape\": \"FM\",\n \"Pacific/Port_Moresby\": \"PG\",\n \"Pacific/Rarotonga\": \"CK\",\n \"Pacific/Saipan\": \"MP\",\n \"Pacific/Samoa\": \"AS\",\n \"Pacific/Tahiti\": \"PF\",\n \"Pacific/Tarawa\": \"KI\",\n \"Pacific/Tongatapu\": \"TO\",\n \"Pacific/Truk\": \"FM\",\n \"Pacific/Wake\": \"UM\",\n \"Pacific/Wallis\": \"WF\",\n \"Pacific/Yap\": \"FM\",\n // Poland\n Poland: \"PL\",\n // Portugal\n Portugal: \"PT\",\n // PRC\n PRC: \"CN\",\n // PST8PDT\n PST8PDT: \"PST8PDT\",\n // ROC\n ROC: \"TW\",\n // ROK\n ROK: \"KR\",\n // Singapore\n Singapore: \"SG\",\n // Turkey\n Turkey: \"TR\",\n // UCT\n UCT: \"UCT\",\n // Universal\n Universal: \"Universal\",\n // US\n \"US/Alaska\": \"US\",\n \"US/Aleutian\": \"US\",\n \"US/Arizona\": \"US\",\n \"US/Central\": \"US\",\n \"US/East-Indiana\": \"US\",\n \"US/Eastern\": \"US\",\n \"US/Hawaii\": \"US\",\n \"US/Indiana-Starke\": \"US\",\n \"US/Michigan\": \"US\",\n \"US/Mountain\": \"US\",\n \"US/Pacific\": \"US\",\n \"US/Samoa\": \"AS\",\n // UTC\n UTC: \"UTC\",\n // W-SU\n \"W-SU\": \"RU\",\n // WET\n WET: \"WET\",\n // Zulu\n Zulu: \"Zulu\",\n} as const;\n","export * from \"./EventQueue\";\nexport * from \"./type\";\n","export * from './base';\nexport * from './events';\nexport * from './provider';","import _curry3 from \"./internal/_curry3\";\nimport _has from \"./internal/_has\";\n\nconst mergeWithKey = _curry3(function mergeWithKey(\n fn: Function,\n l: any,\n r: any\n) {\n const result: any = {};\n let k;\n l = l || {};\n r = r || {};\n\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\nexport default mergeWithKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.requestProviders = exports.announceProvider = exports.createStore = void 0;\nvar store_js_1 = require(\"./store.js\");\nObject.defineProperty(exports, \"createStore\", { enumerable: true, get: function () { return store_js_1.createStore; } });\nvar utils_js_1 = require(\"./utils.js\");\nObject.defineProperty(exports, \"announceProvider\", { enumerable: true, get: function () { return utils_js_1.announceProvider; } });\nObject.defineProperty(exports, \"requestProviders\", { enumerable: true, get: function () { return utils_js_1.requestProviders; } });\n//# sourceMappingURL=index.js.map","import _curry1 from \"./_curry1\";\nimport _curry2 from \"./_curry2\";\nimport _isPlaceholder from \"./_isPlaceholder\";\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry3(fn: Function) {\n return function f3(a: any, b: any, c: any) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder(a)\n ? f3\n : _curry2(function (_b: any, _c: any) {\n return fn(a, _b, _c);\n });\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b)\n ? f3\n : _isPlaceholder(a)\n ? _curry2(function (_a: any, _c: any) {\n return fn(_a, b, _c);\n })\n : _isPlaceholder(b)\n ? _curry2(function (_b: any, _c: any) {\n return fn(a, _b, _c);\n })\n : _curry1(function (_c: any) {\n return fn(a, b, _c);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c)\n ? f3\n : _isPlaceholder(a) && _isPlaceholder(b)\n ? _curry2(function (_a: any, _b: any) {\n return fn(_a, _b, c);\n })\n : _isPlaceholder(a) && _isPlaceholder(c)\n ? _curry2(function (_a: any, _c: any) {\n return fn(_a, b, _c);\n })\n : _isPlaceholder(b) && _isPlaceholder(c)\n ? _curry2(function (_b: any, _c: any) {\n return fn(a, _b, _c);\n })\n : _isPlaceholder(a)\n ? _curry1(function (_a: any) {\n return fn(_a, b, c);\n })\n : _isPlaceholder(b)\n ? _curry1(function (_b: any) {\n return fn(a, _b, c);\n })\n : _isPlaceholder(c)\n ? _curry1(function (_c: any) {\n return fn(a, b, _c);\n })\n : fn(a, b, c);\n }\n };\n}\n","const toSnake = (str: string) =>\n str\n .replace(/([a-z])([A-Z])/g, \"$1_$2\")\n .replace(/[\\s-]+/g, \"_\")\n .toLowerCase();\n\n// Converts object keys to snake_case, omitting keys in the omitKeys array\nexport function toSnakeCase(obj: any, omitKeys: string[] = []) {\n const convert = (data: any): any => {\n if (Array.isArray(data)) {\n return data.map(convert); // Recursively handle array elements\n } else if (data !== null && typeof data === \"object\") {\n return Object.keys(data).reduce((acc: any, key) => {\n // If the key is in omitKeys, keep it as it is\n const resultKey = omitKeys.includes(key) ? key : toSnake(key);\n acc[resultKey] = omitKeys.includes(key)\n ? data[key]\n : convert(data[key]);\n return acc;\n }, {});\n }\n return data;\n };\n\n return convert(obj);\n}\n\nexport const millisecondsToSecond = (milliseconds: number): number =>\n Math.ceil(milliseconds / 1_000);\n\nexport const toDateHourMinute = (date: Date) =>\n date.getUTCFullYear() +\n \"-\" +\n (\"0\" + (date.getUTCMonth() + 1)).slice(-2) +\n \"-\" +\n (\"0\" + date.getUTCDate()).slice(-2) +\n \" \" +\n (\"0\" + date.getUTCHours()).slice(-2) +\n \":\" +\n (\"0\" + date.getUTCMinutes()).slice(-2);\n\nexport const clampNumber = (value: number, max: number, min: number) => {\n return Math.min(Math.max(value, min), max);\n};\n","import _isPlaceholder from \"./_isPlaceholder\";\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry1(fn: Function) {\n return function f1(a: any) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}\n","import fetch from \"fetch-retry\";\n\nexport default fetch(global.fetch);\n","import { UUID } from \"crypto\";\nimport { Address, ChainID, Nullable } from \"./base\";\nimport { TEventChannel, TEventType } from \"../constants\";\n\nexport type AnonymousID = UUID;\n\nexport interface ICommonProperties {\n anonymous_id: AnonymousID;\n user_id: Nullable<string>;\n address: Nullable<string>;\n type: TEventType;\n channel: TEventChannel;\n version: string;\n original_timestamp: string;\n event?: Nullable<string>;\n}\n\nexport type IFormoEventProperties = Record<string, unknown>;\nexport type IFormoEventContext = Record<string, unknown>;\nexport type UTMParameters = {\n utm_source: string;\n utm_medium: string;\n utm_campaign: string;\n utm_term: string;\n utm_content: string;\n};\nexport type ITrafficSource = UTMParameters & {\n ref: string;\n referrer: string;\n};\n\nexport interface IFormoEvent extends ICommonProperties {\n context: Nullable<IFormoEventContext>;\n properties: Nullable<IFormoEventProperties>;\n}\n\nexport type IFormoEventPayload = IFormoEvent & {\n message_id: string;\n};\n\n//#region Specific Event Types\nexport interface PageAPIEvent {\n type: \"page\";\n name?: string;\n category?: string;\n}\nexport interface DetectAPIEvent {\n type: \"detect\";\n providerName: string;\n rdns: string;\n}\nexport interface IdentifyAPIEvent {\n type: \"identify\";\n address: string;\n providerName: string;\n rdns: string;\n userId?: Nullable<string>;\n}\nexport interface ChainAPIEvent {\n type: \"chain\";\n chainId: ChainID;\n address: Address;\n}\nexport interface TransactionAPIEvent {\n type: \"transaction\";\n status: TransactionStatus;\n chainId: ChainID;\n address: Address;\n data: string;\n to: string;\n value: string;\n transactionHash?: string;\n}\nexport interface SignatureAPIEvent {\n type: \"signature\";\n status: SignatureStatus;\n chainId: ChainID;\n address: Address;\n message: string;\n signatureHash?: string;\n}\nexport interface ConnectAPIEvent {\n type: \"connect\";\n chainId: ChainID;\n address: Address;\n}\nexport interface DisconnectAPIEvent {\n type: \"disconnect\";\n chainId: ChainID;\n address: Address;\n}\nexport interface TrackAPIEvent {\n type: \"track\";\n event: string;\n volume?: number;\n revenue?: number;\n currency?: string;\n points?: number;\n}\n\nexport type APIEvent = {\n properties?: IFormoEventProperties;\n context?: IFormoEventContext;\n callback?: (...args: unknown[]) => void;\n} & (\n | PageAPIEvent\n | DetectAPIEvent\n | IdentifyAPIEvent\n | ChainAPIEvent\n | TransactionAPIEvent\n | SignatureAPIEvent\n | ConnectAPIEvent\n | DisconnectAPIEvent\n | TrackAPIEvent\n);\n\nexport enum SignatureStatus {\n REQUESTED = \"requested\",\n REJECTED = \"rejected\",\n CONFIRMED = \"confirmed\",\n}\n\nexport enum TransactionStatus {\n STARTED = \"started\",\n REJECTED = \"rejected\",\n BROADCASTED = \"broadcasted\",\n CONFIRMED = \"confirmed\",\n REVERTED = \"reverted\",\n}\n","// Generated by genversion.\nexport const version = '1.17.7';\n","export const isNullish = (item: unknown): item is undefined | null =>\n // Using \"null\" value intentionally for validation\n // eslint-disable-next-line no-null/no-null\n item === undefined || item === null;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","import { createContext, useContext, useEffect, useRef, useState } from \"react\";\nimport { FormoAnalytics } from \"./FormoAnalytics\";\nimport { initStorageManager, logger } from \"./lib\";\nimport { FormoAnalyticsProviderProps, IFormoAnalytics } from \"./types\";\n\nconst defaultContext: IFormoAnalytics = {\n chain: () => Promise.resolve(),\n page: () => Promise.resolve(),\n reset: () => Promise.resolve(),\n detect: () => Promise.resolve(),\n connect: () => Promise.resolve(),\n disconnect: () => Promise.resolve(),\n signature: () => Promise.resolve(),\n transaction: () => Promise.resolve(),\n identify: () => Promise.resolve(),\n track: () => Promise.resolve(),\n};\n\nexport const FormoAnalyticsContext =\n createContext<IFormoAnalytics>(defaultContext);\n\nexport const FormoAnalyticsProvider = (props: FormoAnalyticsProviderProps) => {\n const { writeKey, disabled = false, children } = props;\n\n // Keep the app running without analytics if no Write Key is provided or disabled\n if (!writeKey) {\n logger.error(\"FormoAnalyticsProvider: No Write Key provided\");\n return children;\n }\n\n if (disabled) {\n logger.warn(\"FormoAnalytics is disabled\");\n return children;\n }\n\n return <InitializedAnalytics {...props} />;\n};\n\nconst InitializedAnalytics = ({\n writeKey,\n options,\n children,\n}: FormoAnalyticsProviderProps) => {\n const [sdk, setSdk] = useState<IFormoAnalytics>(defaultContext);\n const initializedStartedRef = useRef(false);\n initStorageManager(writeKey);\n\n const initializeFormoAnalytics = async (writeKey: string, options: any) => {\n try {\n const sdkInstance = await FormoAnalytics.init(writeKey, options);\n setSdk(sdkInstance);\n logger.log(\"Successfully initialized :)\");\n } catch (error) {\n logger.error(\"Failed to initialize :(\", error);\n }\n };\n\n useEffect(() => {\n const initialize = async () => {\n if (initializedStartedRef.current) return;\n initializedStartedRef.current = true;\n\n await initializeFormoAnalytics(writeKey!, options);\n };\n\n initialize();\n }, [writeKey, options]);\n\n return (\n <FormoAnalyticsContext.Provider value={sdk}>\n {children}\n </FormoAnalyticsContext.Provider>\n );\n};\n\nexport const useFormo = () => {\n const context = useContext(FormoAnalyticsContext);\n\n if (!context) {\n logger.warn(\"useFormo called without a valid context\");\n }\n\n return context; // Return undefined if SDK is not initialized, handle accordingly in consumer\n};\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n","import type { UUID } from \"crypto\";\n\nexport async function hash(input: string): Promise<string> {\n const hashBuffer = await crypto.subtle.digest(\n \"SHA-256\",\n new TextEncoder().encode(input)\n );\n const byteArray = new Uint8Array(hashBuffer);\n return Array.from(byteArray)\n .map((byte) => byte.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n\nexport function generateNativeUUID(): UUID {\n return crypto.randomUUID();\n}\n","import { AnonymousID } from \"../../types\";\nimport { generateNativeUUID } from \"../../utils\";\nimport { cookie } from \"../storage\";\n\nconst generateAnonymousId = (key: string): AnonymousID => {\n const storedAnonymousId = cookie().get(key);\n if (storedAnonymousId && typeof storedAnonymousId === \"string\")\n return storedAnonymousId as AnonymousID;\n const newAnonymousId = generateNativeUUID();\n cookie().set(key, newAnonymousId, {\n maxAge: Date.now() + 1000 * 60 * 60 * 24 * 365, // 1 year\n domain: getCookieDomain(),\n path: \"/\",\n });\n return newAnonymousId;\n};\n\nfunction getCookieDomain(hostname: string = window.location.hostname): string {\n // Special cases\n if (\n hostname.includes(\"localhost\") ||\n /^\\d{1,3}(\\.\\d{1,3}){3}$/.test(hostname)\n ) {\n // Localhost or IP address\n return \"\";\n }\n\n const parts = hostname.split(\".\");\n if (parts.includes(\"www\")) parts.splice(parts.indexOf(\"www\"), 1);\n return `.${parts.join(\".\")}`;\n}\n\nexport { generateAnonymousId, getCookieDomain };\n","/**\n * A function to check given value is a function\n * @param value input value\n * @returns boolean\n */\nconst isFunction = (value: any): value is Function =>\n typeof value === \"function\" &&\n Boolean(value.constructor && value.call && value.apply);\n\n/**\n * A function to check given value is a string\n * @param value input value\n * @returns boolean\n */\nconst isString = (value: any): value is string => typeof value === \"string\";\n\n/**\n * A function to check given value is null or not\n * @param value input value\n * @returns boolean\n */\nconst isNull = (value: any): value is null => value === null;\n\n/**\n * A function to check given value is undefined\n * @param value input value\n * @returns boolean\n */\nconst isUndefined = (value: any): value is undefined =>\n typeof value === \"undefined\";\n\n/**\n * A function to check given value is null or undefined\n * @param value input value\n * @returns boolean\n */\nconst isNullOrUndefined = (value: any): boolean =>\n isNull(value) || isUndefined(value);\n\n/**\n * Checks if the input is a BigInt\n * @param value input value\n * @returns True if the input is a BigInt\n */\nconst isBigInt = (value: any): value is bigint => typeof value === \"bigint\";\n\n/**\n * A function to check given value is defined\n * @param value input value\n * @returns boolean\n */\nconst isDefined = (value: any): boolean => !isUndefined(value);\n\n/**\n * A function to check given value is defined and not null\n * @param value input value\n * @returns boolean\n */\nconst isDefinedAndNotNull = (value: any): boolean => !isNullOrUndefined(value);\n\n/**\n * A function to check given value is defined and not null\n * @param value input value\n * @returns boolean\n */\nconst isDefinedNotNullAndNotEmptyString = (value: any): boolean =>\n isDefinedAndNotNull(value) && value !== \"\";\n\n/**\n * Determines if the input is of type error\n * @param value input value\n * @returns true if the input is of type error else false\n */\nconst isTypeOfError = (value: any): boolean => {\n switch (Object.prototype.toString.call(value)) {\n case \"[object Error]\":\n case \"[object Exception]\":\n case \"[object DOMException]\":\n return true;\n default:\n return value instanceof Error;\n }\n};\n\n/**\n * A function to check given value is an array\n * @param value input value\n * @returns true if the input is of type array else false\n */\nconst isArray = (arg: any): arg is Array<any> => {\n return Array.isArray(arg);\n};\n\nconst isBoolean = (arg: any): arg is boolean => {\n return typeof arg === \"boolean\";\n};\n\nconst isNumber = (arg: any): arg is number => {\n return typeof arg === \"number\";\n};\n\nconst isObject = (value: any): value is object => typeof value === \"object\";\n\nconst isObjectAndNotNull = (value: any): value is object =>\n !isNull(value) && isObject(value) && !isArray(value);\n\nconst isRegExp = (arg: any): arg is RegExp => {\n return isObject(arg) && objectToString(arg) === \"[object RegExp]\";\n};\n\nconst isDate = (arg: any): arg is Date => {\n return isObject(arg) && objectToString(arg) === \"[object Date]\";\n};\n\nconst isError = (arg: any): arg is Error => {\n return (\n isObject(arg) &&\n (objectToString(arg) === \"[object Error]\" || arg instanceof Error)\n );\n};\n\nconst isPrimitive = (\n arg: any\n): arg is null | boolean | number | string | symbol | undefined => {\n return (\n arg === null ||\n typeof arg === \"boolean\" ||\n typeof arg === \"number\" ||\n typeof arg === \"string\" ||\n typeof arg === \"symbol\" || // ES6 symbol\n typeof arg === \"undefined\"\n );\n};\n\nconst objectToString = (arg: any) => {\n return Object.prototype.toString.call(arg);\n};\n\nexport {\n isFunction,\n isString,\n isNull,\n isUndefined,\n isNullOrUndefined,\n isTypeOfError,\n isDefined,\n isDefinedAndNotNull,\n isDefinedNotNullAndNotEmptyString,\n isBigInt,\n isArray,\n isBoolean,\n isNumber,\n isObject,\n isObjectAndNotNull,\n isRegExp,\n isDate,\n isError,\n isPrimitive,\n objectToString,\n};\n","import { isUint8Array, uint8ArrayToHexString } from \"./uint8array\";\nimport { keccak256 } from \"ethereum-cryptography/keccak.js\";\nimport { utf8ToBytes } from \"ethereum-cryptography/utils.js\";\nimport { ValidInputTypes } from \"../types\";\nimport { isHexStrict } from \"./string\";\n\nexport const isAddress = (value: ValidInputTypes, checksum = true) => {\n if (typeof value !== \"string\" && !isUint8Array(value)) {\n return false;\n }\n\n let valueToCheck: string;\n\n if (isUint8Array(value)) {\n valueToCheck = uint8ArrayToHexString(value);\n } else if (typeof value === \"string\" && !isHexStrict(value)) {\n valueToCheck = value.toLowerCase().startsWith(\"0x\") ? value : `0x${value}`;\n } else {\n valueToCheck = value;\n }\n\n // check if it has the basic requirements of an address\n if (!/^(0x)?[0-9a-f]{40}$/i.test(valueToCheck)) {\n return false;\n }\n // If it's ALL lowercase or ALL upppercase\n if (\n /^(0x|0X)?[0-9a-f]{40}$/.test(valueToCheck) ||\n /^(0x|0X)?[0-9A-F]{40}$/.test(valueToCheck)\n ) {\n return true;\n // Otherwise check each case\n }\n return checksum ? checkAddressChecksum(valueToCheck) : true;\n};\n\nexport const checkAddressChecksum = (data: string): boolean => {\n if (!/^(0x)?[0-9a-f]{40}$/i.test(data)) return false;\n const address = data.slice(2);\n const updatedData = utf8ToBytes(address.toLowerCase());\n\n const addressHash = uint8ArrayToHexString(\n keccak256(ensureIfUint8Array(updatedData))\n ).slice(2);\n\n for (let i = 0; i < 40; i += 1) {\n // the nth letter should be uppercase if the nth digit of casemap is 1\n if (\n (parseInt(addressHash[i], 16) > 7 &&\n address[i].toUpperCase() !== address[i]) ||\n (parseInt(addressHash[i], 16) <= 7 &&\n address[i].toLowerCase() !== address[i])\n ) {\n return false;\n }\n }\n return true;\n};\n\nexport function ensureIfUint8Array<T = any>(data: T) {\n if (\n !(data instanceof Uint8Array) &&\n (data as { constructor: { name: string } })?.constructor?.name ===\n \"Uint8Array\"\n ) {\n return Uint8Array.from(data as unknown as Uint8Array);\n }\n return data;\n}\n","import { ValidInputTypes } from \"../types\";\n\nexport const isHexStrict = (hex: ValidInputTypes) =>\n typeof hex === \"string\" && /^((-)?0x[0-9a-f]+|(0x))$/i.test(hex);\n","import { logger } from \"../../logger\";\nimport { JSON_PREFIX } from \"../constant\";\nimport StorageBlueprint from \"./blueprint\";\n\nclass WebStorage extends StorageBlueprint {\n constructor(writeKey: string, private readonly backend: Storage) {\n super(writeKey);\n }\n\n public override isAvailable(): boolean {\n try {\n const testKey = \"__storage_test__\";\n this.backend.setItem(testKey, \"1\");\n this.backend.removeItem(testKey);\n return true;\n } catch {\n return false;\n }\n }\n\n public override set(key: string, value: any): void {\n if (typeof value === \"boolean\") value = value === true ? \"true\" : \"false\";\n if (typeof value === \"object\") value = JSON_PREFIX + JSON.stringify(value);\n this.backend.setItem(this.getKey(key), value);\n }\n\n public override get(key: string): string | boolean | Record<any, any> | null {\n const value = this.backend.getItem(this.getKey(key));\n\n if (!value || typeof value !== \"string\") return null;\n if ([\"null\", \"undefined\"].some((item) => item == value)) return null;\n\n if (value.startsWith(JSON_PREFIX)) {\n try {\n return JSON.parse(value.slice(JSON_PREFIX.length));\n } catch (error) {\n logger.error(\n `[FORMO_ERROR] ${this.backend.constructor.name} failed to parse JSON`,\n error\n );\n return null;\n }\n }\n\n if ([\"true\", \"false\"].some((item) => item == value)) {\n return JSON.parse(value);\n }\n\n return value;\n }\n\n public override remove(key: string): void {\n this.backend.removeItem(this.getKey(key));\n }\n}\n\nexport default WebStorage;\n","const getFormattedTimestamp = (date: Date): string => date.toISOString();\n\n/**\n * To get the current timestamp in ISO string format\n * @returns ISO formatted timestamp string\n */\nconst getCurrentTimeFormatted = (): string => getFormattedTimestamp(new Date());\n\nexport { getCurrentTimeFormatted, getFormattedTimestamp };\n","export const getActionDescriptor = (type: string, properties: any): string => {\n return `${type}${properties?.status ? ` ${properties?.status}` : \"\"}`;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createStore = void 0;\nconst utils_js_1 = require(\"./utils.js\");\nfunction createStore() {\n const listeners = new Set();\n let providerDetails = [];\n const request = () => (0, utils_js_1.requestProviders)((providerDetail) => {\n if (providerDetails.some(({ info }) => info.uuid === providerDetail.info.uuid))\n return;\n providerDetails = [...providerDetails, providerDetail];\n listeners.forEach((listener) => listener(providerDetails, { added: [providerDetail] }));\n });\n let unwatch = request();\n return {\n _listeners() {\n return listeners;\n },\n clear() {\n listeners.forEach((listener) => listener([], { removed: [...providerDetails] }));\n providerDetails = [];\n },\n destroy() {\n this.clear();\n listeners.clear();\n unwatch?.();\n },\n findProvider({ rdns }) {\n return providerDetails.find((providerDetail) => providerDetail.info.rdns === rdns);\n },\n getProviders() {\n return providerDetails;\n },\n reset() {\n this.clear();\n unwatch?.();\n unwatch = request();\n },\n subscribe(listener, { emitImmediately } = {}) {\n listeners.add(listener);\n if (emitImmediately)\n listener(providerDetails, { added: providerDetails });\n return () => listeners.delete(listener);\n },\n };\n}\nexports.createStore = createStore;\n//# sourceMappingURL=store.js.map","export * from \"./base\";\nexport * from \"./config\";\nexport * from \"./events\";\n","import { Address, APIEvent } from \"../../types\";\nimport { logger } from \"../logger\";\nimport { IEventQueue } from \"../queue\";\nimport { EventFactory } from \"./EventFactory\";\nimport { IEventFactory, IEventManager } from \"./type\";\n\n/**\n * A service to generate valid event payloads and queue them for processing\n */\nclass EventManager implements IEventManager {\n eventQueue: IEventQueue;\n eventFactory: IEventFactory;\n\n /**\n *\n * @param eventQueue Event queue instance\n */\n constructor(eventQueue: IEventQueue) {\n this.eventQueue = eventQueue;\n this.eventFactory = new EventFactory();\n }\n\n /**\n * Consumes a new incoming event\n * @param event Incoming event data\n */\n addEvent(event: APIEvent, address?: Address, userId?: string): void {\n const { callback, ..._event } = event;\n const formoEvent = this.eventFactory.create(_event, address, userId);\n this.eventQueue.enqueue(formoEvent, (err, _, data) => {\n if (err) {\n logger.error(\"Error sending events:\", err);\n } else logger.info(`Events sent successfully: ${data.length} events`);\n callback?.(err, _, data);\n });\n }\n}\n\nexport { EventManager };\n","export const isLocalhost = () =>\n /^localhost$|^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^(?:0*:)*?:?0*1$/.test(\n window.location.hostname\n ) || window.location.protocol === \"file:\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import { IStorage, StorageType } from \"./type\";\nimport { StorageManager } from \"./StorageManager\";\nexport * from \"./type\";\n\nlet globalManager: StorageManager | null = null;\n\nexport function initStorageManager(writeKey: string): void {\n if (!globalManager) {\n globalManager = new StorageManager(writeKey);\n }\n}\n\nfunction getStorageInstance(type: StorageType): IStorage {\n if (!globalManager) {\n throw new Error(\n \"StorageManager not initialized. Call initStorageManager(writeKey) first.\"\n );\n }\n return globalManager.getStorage(type);\n}\n\nexport const cookie = () => getStorageInstance(\"cookieStorage\");\nexport const local = () => getStorageInstance(\"localStorage\");\nexport const session = () => getStorageInstance(\"sessionStorage\");\nexport const memory = () => getStorageInstance(\"memoryStorage\");\n","export const SESSION_TRAFFIC_SOURCE_KEY = \"traffic-source\";\nexport const SESSION_WALLET_DETECTED_KEY = \"wallet-detected\";\nexport const SESSION_CURRENT_URL_KEY = \"analytics-current-url\";\nexport const SESSION_USER_ID_KEY = \"user-id\";\n\nexport const LOCAL_ANONYMOUS_ID_KEY = \"anonymous-id\";\n","const CHANNEL = \"web\";\nconst VERSION = \"0\";\n\nexport { CHANNEL, VERSION };\n","export const JSON_PREFIX = \"__json=\";\nexport const KEY_PREFIX = \"formo\";\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.aoutput = exports.anumber = exports.aexists = exports.abytes = void 0;\n/**\n * Internal assertion helpers.\n * @module\n * @deprecated\n */\nconst utils_ts_1 = require(\"./utils.js\");\n/** @deprecated Use import from `noble/hashes/utils` module */\nexports.abytes = utils_ts_1.abytes;\n/** @deprecated Use import from `noble/hashes/utils` module */\nexports.aexists = utils_ts_1.aexists;\n/** @deprecated Use import from `noble/hashes/utils` module */\nexports.anumber = utils_ts_1.anumber;\n/** @deprecated Use import from `noble/hashes/utils` module */\nexports.aoutput = utils_ts_1.aoutput;\n//# sourceMappingURL=_assert.js.map","export * from \"./EventFactory\";\nexport * from \"./EventManager\";\nexport * from \"./type\";\n","import { formofy } from \"./initialization\";\nexport * from \"./FormoAnalyticsProvider\";\nexport * from \"./FormoAnalytics\";\nexport * from \"./types\";\n\n(window as any).formofy = formofy;\n","export * from \"./Logger\";\nexport * from \"./type\";\n","import {\n COUNTRY_LIST,\n LOCAL_ANONYMOUS_ID_KEY,\n SESSION_TRAFFIC_SOURCE_KEY,\n} from \"../../constants\";\nimport {\n Address,\n APIEvent,\n ChainID,\n IFormoEvent,\n IFormoEventContext,\n IFormoEventProperties,\n ITrafficSource,\n Nullable,\n SignatureStatus,\n TransactionStatus,\n UTMParameters,\n} from \"../../types\";\nimport { toChecksumAddress, toSnakeCase } from \"../../utils\";\nimport { getCurrentTimeFormatted } from \"../../utils/timestamp\";\nimport { isUndefined } from \"../../validators\";\nimport { logger } from \"../logger\";\nimport mergeDeepRight from \"../ramda/mergeDeepRight\";\nimport { session } from \"../storage\";\nimport { version } from \"../version\";\nimport { CHANNEL, VERSION } from \"./constants\";\nimport { IEventFactory } from \"./type\";\nimport { generateAnonymousId } from \"./utils\";\n\nclass EventFactory implements IEventFactory {\n private getTimezone(): string {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n } catch (error) {\n logger.error(\"Error resolving timezone:\", error);\n return \"\";\n }\n }\n\n private getLocation(): string | undefined {\n try {\n const timezone = this.getTimezone();\n if (timezone in COUNTRY_LIST)\n return COUNTRY_LIST[timezone as keyof typeof COUNTRY_LIST];\n return timezone;\n } catch (error) {\n logger.error(\"Error resolving location:\", error);\n return \"\";\n }\n }\n\n private getLanguage(): string {\n try {\n return (\n (navigator.languages && navigator.languages.length\n ? navigator.languages[0]\n : navigator.language) || \"en\"\n );\n } catch (error) {\n logger.error(\"Error resolving language:\", error);\n return \"en\";\n }\n }\n\n private getLibraryVersion(): string {\n return version;\n }\n\n private extractUTMParameters = (url: string): UTMParameters => {\n const result: UTMParameters = {\n utm_campaign: \"\",\n utm_content: \"\",\n utm_medium: \"\",\n utm_source: \"\",\n utm_term: \"\",\n };\n try {\n const urlObj = new URL(url);\n const UTM_PREFIX = \"utm_\";\n urlObj.searchParams.forEach((value, sParam) => {\n if (sParam.startsWith(UTM_PREFIX)) {\n result[sParam as keyof UTMParameters] = value.trim();\n }\n });\n } catch (error) {}\n return result;\n };\n\n private extractReferralParameter = (urlObj: URL): string => {\n const referralParams = [\"ref\", \"referral\", \"refcode\"];\n\n for (const param of referralParams) {\n const value = urlObj.searchParams.get(param)?.trim();\n if (value) return value;\n }\n\n return \"\";\n };\n\n private getTrafficSources = (url: string): ITrafficSource => {\n const urlObj = new URL(url);\n const contextTrafficSources: ITrafficSource = {\n ...this.extractUTMParameters(url),\n ref: this.extractReferralParameter(urlObj),\n referrer: document.referrer,\n };\n const storedTrafficSources =\n (session().get(SESSION_TRAFFIC_SOURCE_KEY) as ITrafficSource) || {};\n\n const finalTrafficSources: ITrafficSource = {\n ref: contextTrafficSources.ref || storedTrafficSources?.ref || \"\",\n referrer:\n contextTrafficSources.referrer || storedTrafficSources?.referrer,\n utm_campaign:\n contextTrafficSources.utm_campaign ||\n storedTrafficSources?.utm_campaign ||\n \"\",\n utm_content:\n contextTrafficSources.utm_content ||\n storedTrafficSources?.utm_content ||\n \"\",\n utm_medium:\n contextTrafficSources.utm_medium ||\n storedTrafficSources?.utm_medium ||\n \"\",\n utm_source:\n contextTrafficSources.utm_source ||\n storedTrafficSources?.utm_source ||\n \"\",\n utm_term:\n contextTrafficSources.utm_term || storedTrafficSources?.utm_term || \"\",\n };\n\n // Store to session\n const sessionStoredTrafficSources = Object.keys(finalTrafficSources).reduce(\n (res: any, key: any) => {\n const value = finalTrafficSources[key as keyof ITrafficSource];\n if (!isUndefined(value) && value !== \"\") {\n res[key as keyof ITrafficSource] = value;\n }\n return res;\n },\n {}\n );\n\n if (Object.keys(sessionStoredTrafficSources).length)\n session().set(SESSION_TRAFFIC_SOURCE_KEY, sessionStoredTrafficSources);\n\n return finalTrafficSources;\n };\n\n // Contextual fields that are automatically collected and populated by the Formo SDK\n private generateContext(context?: IFormoEventContext): IFormoEventContext {\n const path = globalThis.location.pathname;\n const language = this.getLanguage();\n const timezone = this.getTimezone();\n const location = this.getLocation();\n const library_version = this.getLibraryVersion();\n\n // contextual properties\n const defaultContext = {\n user_agent: globalThis.navigator.userAgent,\n locale: language,\n timezone,\n location,\n ...this.getTrafficSources(globalThis.location.href),\n page_path: path,\n page_title: document.title,\n page_url: globalThis.location.href,\n library_name: \"Formo Web SDK\",\n library_version,\n };\n\n const mergedContext = mergeDeepRight(\n defaultContext,\n context || {}\n ) as IFormoEventContext;\n\n return mergedContext;\n }\n\n /**\n * Add any missing default page properties using values from options and defaults\n * @param properties Input page properties\n * @param options API options\n */\n private getPageProperties = (\n properties: IFormoEventProperties\n ): IFormoEventProperties => {\n const pageProps = properties;\n\n if (isUndefined(pageProps.url)) {\n pageProps.url = new URL(globalThis.location.href).href;\n }\n\n if (isUndefined(pageProps.path)) {\n pageProps.path = globalThis.location.pathname;\n }\n\n if (isUndefined(pageProps.hash)) {\n pageProps.hash = globalThis.location.hash;\n }\n\n return pageProps;\n };\n\n private getEnrichedEvent = (\n formoEvent: Partial<IFormoEvent>,\n context?: IFormoEventContext\n ): IFormoEvent => {\n const commonEventData = {\n context: this.generateContext(context),\n original_timestamp: getCurrentTimeFormatted(),\n user_id: formoEvent.user_id,\n type: formoEvent.type,\n channel: CHANNEL,\n version: VERSION,\n } as Partial<IFormoEvent>;\n\n commonEventData.anonymous_id = generateAnonymousId(LOCAL_ANONYMOUS_ID_KEY);\n\n if (formoEvent.address) {\n commonEventData.address = toChecksumAddress(formoEvent.address);\n } else {\n commonEventData.address = formoEvent.address;\n }\n\n const processedEvent = mergeDeepRight(\n formoEvent,\n commonEventData\n ) as IFormoEvent;\n\n if (processedEvent.event === undefined) {\n processedEvent.event = null;\n }\n\n if (processedEvent.properties === undefined) {\n processedEvent.properties = null;\n }\n\n return toSnakeCase(processedEvent);\n };\n\n generatePageEvent(\n category?: string,\n name?: string,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ): IFormoEvent {\n let props = properties ?? {};\n props.category = category;\n props.name = name;\n props = this.getPageProperties(props);\n\n const pageEvent: Partial<IFormoEvent> = {\n properties: props,\n type: \"page\",\n };\n\n return this.getEnrichedEvent(pageEvent, context);\n }\n\n generateDetectWalletEvent(\n providerName: string,\n rdns: string,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ) {\n const detectEvent: Partial<IFormoEvent> = {\n properties: {\n providerName,\n rdns,\n ...properties,\n },\n type: \"detect\",\n };\n\n return this.getEnrichedEvent(detectEvent, context);\n }\n\n generateIdentifyEvent(\n providerName: string,\n rdns: string,\n address: Nullable<Address>,\n userId?: Nullable<string>,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ) {\n const identifyEvent: Partial<IFormoEvent> = {\n properties: {\n providerName,\n rdns,\n ...properties,\n },\n user_id: userId,\n address,\n type: \"identify\",\n };\n\n return this.getEnrichedEvent(identifyEvent, context);\n }\n\n generateConnectEvent(\n chainId: ChainID,\n address: Address,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ) {\n const connectEvent: Partial<IFormoEvent> = {\n properties: {\n chainId,\n ...properties,\n },\n address,\n type: \"connect\",\n };\n\n return this.getEnrichedEvent(connectEvent, context);\n }\n\n generateDisconnectEvent(\n chainId: ChainID,\n address: Address,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ) {\n const disconnectEvent: Partial<IFormoEvent> = {\n properties: {\n chainId,\n ...properties,\n },\n address,\n type: \"disconnect\",\n };\n\n return this.getEnrichedEvent(disconnectEvent, context);\n }\n\n generateChainChangedEvent(\n chainId: ChainID,\n address: Address,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ) {\n const chainEvent: Partial<IFormoEvent> = {\n properties: {\n chainId,\n ...properties,\n },\n address,\n type: \"chain\",\n };\n\n return this.getEnrichedEvent(chainEvent, context);\n }\n\n generateSignatureEvent(\n status: SignatureStatus,\n chainId: ChainID,\n address: Address,\n message: string,\n signatureHash?: string,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ) {\n const signatureEvent: Partial<IFormoEvent> = {\n properties: {\n status,\n chainId,\n message,\n ...(signatureHash && { signatureHash }),\n ...properties,\n },\n address,\n type: \"signature\",\n };\n\n return this.getEnrichedEvent(signatureEvent, context);\n }\n\n generateTransactionEvent(\n status: TransactionStatus,\n chainId: ChainID,\n address: Address,\n data: string,\n to: string,\n value: string,\n transactionHash?: string,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ) {\n const transactionEvent: Partial<IFormoEvent> = {\n properties: {\n status,\n chainId,\n data,\n to,\n value,\n ...(transactionHash && { transactionHash }),\n ...properties,\n },\n address,\n type: \"transaction\",\n };\n\n return this.getEnrichedEvent(transactionEvent, context);\n }\n\n generateTrackEvent(\n event: string,\n properties?: IFormoEventProperties,\n context?: IFormoEventContext\n ) {\n const trackEvent: Partial<IFormoEvent> = {\n properties: {\n ...properties,\n ...(properties?.revenue !== undefined && {\n revenue: Number(properties.revenue),\n currency: (typeof properties?.currency === \"string\"\n ? properties.currency\n : \"USD\"\n ).toLowerCase(),\n }),\n ...(properties?.points !== undefined && {\n points: Number(properties.points),\n }),\n ...(properties?.volume !== undefined && {\n volume: Number(properties.volume),\n }),\n },\n event,\n type: \"track\",\n };\n\n return this.getEnrichedEvent(trackEvent, context);\n }\n\n // Returns an event with type, context, properties, and common properties\n create(event: APIEvent, address?: Address, userId?: string): IFormoEvent {\n let formoEvent: Partial<IFormoEvent> = {};\n\n switch (event.type) {\n case \"page\":\n formoEvent = this.generatePageEvent(\n event.category,\n event.name,\n event.properties,\n event.context\n );\n break;\n case \"detect\":\n formoEvent = this.generateDetectWalletEvent(\n event.providerName,\n event.rdns,\n event.properties,\n event.context\n );\n break;\n case \"identify\":\n formoEvent = this.generateIdentifyEvent(\n event.providerName,\n event.rdns,\n event.address,\n event.userId,\n event.properties,\n event.context\n );\n break;\n case \"chain\":\n formoEvent = this.generateChainChangedEvent(\n event.chainId,\n event.address,\n event.properties,\n event.context\n );\n break;\n case \"connect\":\n formoEvent = this.generateConnectEvent(\n event.chainId,\n event.address,\n event.properties,\n event.context\n );\n break;\n case \"disconnect\":\n formoEvent = this.generateDisconnectEvent(\n event.chainId,\n event.address,\n event.properties,\n event.context\n );\n break;\n case \"signature\":\n formoEvent = this.generateSignatureEvent(\n event.status,\n event.chainId,\n event.address,\n event.message,\n event.signatureHash,\n event.properties,\n event.context\n );\n break;\n case \"transaction\":\n formoEvent = this.generateTransactionEvent(\n event.status,\n event.chainId,\n event.address,\n event.data,\n event.to,\n event.value,\n event.transactionHash,\n event.properties,\n event.context\n );\n break;\n case \"track\":\n default:\n formoEvent = this.generateTrackEvent(\n event.event,\n event.properties,\n event.context\n );\n break;\n }\n\n !formoEvent.address && (formoEvent.address = address || null);\n formoEvent.user_id = userId || null;\n\n return formoEvent as IFormoEvent;\n }\n}\n\nexport { EventFactory };\n","import StorageBlueprint from \"./blueprint\";\nimport { CookieOptions } from \"../type\";\n\nclass CookieStorage extends StorageBlueprint {\n public override isAvailable(): boolean {\n return (\n typeof document !== \"undefined\" && typeof document.cookie === \"string\"\n );\n }\n\n public override set(\n key: string,\n value: string,\n options?: CookieOptions\n ): void {\n const expires = options?.expires;\n const maxAge = options?.maxAge;\n const path = options?.path || \"/\";\n const domain = options?.domain;\n const sameSite = options?.sameSite;\n const secure = options?.secure || false;\n\n let cookie = `${encodeURIComponent(this.getKey(key))}=${encodeURIComponent(\n value\n )}`;\n if (maxAge) {\n cookie += \"; max-age=\" + maxAge;\n } else if (expires) {\n cookie += \"; expires=\" + expires;\n }\n if (path) {\n cookie += \"; path=\" + path;\n }\n if (domain) {\n cookie += \"; domain=\" + domain;\n }\n if (sameSite) {\n cookie += \"; samesite=\" + sameSite;\n }\n if (secure) {\n cookie += \"; secure\";\n }\n document.cookie = cookie;\n }\n\n public override get(key: string): string | null {\n const match = document.cookie.match(\n new RegExp(`(?:^|; )${encodeURIComponent(this.getKey(key))}=([^;]*)`)\n );\n return match ? decodeURIComponent(match[1]) : null;\n }\n\n public override remove(key: string): void {\n document.cookie = `${encodeURIComponent(\n this.getKey(key)\n )}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT`;\n }\n}\n\nexport default CookieStorage;\n","export * from \"./event\";\nexport * from \"./logger\";\nexport * from \"./queue\";\nexport * from \"./storage\";\nexport { default as fetch } from \"./fetch\";\n","\"use strict\";\n/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapXOFConstructorWithOpts = exports.wrapConstructorWithOpts = exports.wrapConstructor = exports.Hash = exports.nextTick = exports.swap32IfBE = exports.byteSwapIfBE = exports.swap8IfBE = exports.isLE = void 0;\nexports.isBytes = isBytes;\nexports.anumber = anumber;\nexports.abytes = abytes;\nexports.ahash = ahash;\nexports.aexists = aexists;\nexports.aoutput = aoutput;\nexports.u8 = u8;\nexports.u32 = u32;\nexports.clean = clean;\nexports.createView = createView;\nexports.rotr = rotr;\nexports.rotl = rotl;\nexports.byteSwap = byteSwap;\nexports.byteSwap32 = byteSwap32;\nexports.bytesToHex = bytesToHex;\nexports.hexToBytes = hexToBytes;\nexports.asyncLoop = asyncLoop;\nexports.utf8ToBytes = utf8ToBytes;\nexports.bytesToUtf8 = bytesToUtf8;\nexports.toBytes = toBytes;\nexports.kdfInputToBytes = kdfInputToBytes;\nexports.concatBytes = concatBytes;\nexports.checkOpts = checkOpts;\nexports.createHasher = createHasher;\nexports.createOptHasher = createOptHasher;\nexports.createXOFer = createXOFer;\nexports.randomBytes = randomBytes;\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nfunction isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is positive integer. */\nfunction anumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error('positive integer expected, got ' + n);\n}\n/** Asserts something is Uint8Array. */\nfunction abytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n/** Asserts something is hash */\nfunction ahash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.createHasher');\n anumber(h.outputLen);\n anumber(h.blockLen);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nfunction aexists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\n/** Asserts output is properly-sized byte array */\nfunction aoutput(out, instance) {\n abytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error('digestInto() expects output buffer of length at least ' + min);\n }\n}\n/** Cast u8 / u16 / u32 to u8. */\nfunction u8(arr) {\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** Cast u8 / u16 / u32 to u32. */\nfunction u32(arr) {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nfunction clean(...arrays) {\n for (let i = 0; i < arrays.length; i++) {\n arrays[i].fill(0);\n }\n}\n/** Create DataView of an array for easy byte-level manipulation. */\nfunction createView(arr) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** The rotate right (circular right shift) operation for uint32 */\nfunction rotr(word, shift) {\n return (word << (32 - shift)) | (word >>> shift);\n}\n/** The rotate left (circular left shift) operation for uint32 */\nfunction rotl(word, shift) {\n return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexports.isLE = (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n/** The byte swap operation for uint32 */\nfunction byteSwap(word) {\n return (((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff));\n}\n/** Conditionally byte swap if on a big-endian platform */\nexports.swap8IfBE = exports.isLE\n ? (n) => n\n : (n) => byteSwap(n);\n/** @deprecated */\nexports.byteSwapIfBE = exports.swap8IfBE;\n/** In place byte swap for Uint32Array */\nfunction byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n return arr;\n}\nexports.swap32IfBE = exports.isLE\n ? (u) => u\n : byteSwap32;\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = /* @__PURE__ */ (() => \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // @ts-ignore\n if (hasHexBuiltin)\n return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * Call of async fn will return Promise, which will be fullfiled only on\n * next scheduler queue processing step and this is exactly what we need.\n */\nconst nextTick = async () => { };\nexports.nextTick = nextTick;\n/** Returns control to thread each 'tick' ms to avoid blocking. */\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\n/**\n * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\nfunction bytesToUtf8(bytes) {\n return new TextDecoder().decode(bytes);\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/**\n * Helper for KDFs: consumes uint8array or string.\n * When string is passed, does utf8 decoding, using TextDecoder.\n */\nfunction kdfInputToBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/** Copies several Uint8Arrays into one. */\nfunction concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\nfunction checkOpts(defaults, opts) {\n if (opts !== undefined && {}.toString.call(opts) !== '[object Object]')\n throw new Error('options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\n/** For runtime check if class implements interface */\nclass Hash {\n}\nexports.Hash = Hash;\n/** Wraps hash function, creating an interface on top of it */\nfunction createHasher(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nfunction createOptHasher(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nfunction createXOFer(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexports.wrapConstructor = createHasher;\nexports.wrapConstructorWithOpts = createOptHasher;\nexports.wrapXOFConstructorWithOpts = createXOFer;\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto && typeof crypto_1.crypto.getRandomValues === 'function') {\n return crypto_1.crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto_1.crypto && typeof crypto_1.crypto.randomBytes === 'function') {\n return Uint8Array.from(crypto_1.crypto.randomBytes(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","export * from \"./address\";\nexport * from \"./base\";\nexport * from \"./converter\";\nexport * from \"./generate\";\n","import _curry3 from \"./internal/_curry3\";\nimport _isObject from \"./internal/_isObject\";\nimport mergeWithKey from \"./mergeWithKey\";\n\nconst mergeDeepWithKey = _curry3(function mergeDeepWithKey(\n fn: Function,\n lObj: any,\n rObj: any\n) {\n return mergeWithKey(\n function (k: Function, lVal: any, rVal: any) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n },\n lObj,\n rObj\n );\n});\nexport default mergeDeepWithKey;\n","export * from \"./address\";\nexport * from \"./agent\";\nexport * from \"./checks\";\nexport * from \"./network\";\nexport * from \"./object\";\nexport * from \"./string\";\nexport * from \"./uint8array\";\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(8156);\n"],"names":["root","factory","exports","module","define","amd","self","chainId","startsWith","parseInt","a","fn","f2","b","arguments","length","_b","_a","prop","obj","Object","prototype","hasOwnProperty","call","noop","writeKey","options","queue","payloadHashes","Set","onPageLeave","callback","pageLeft","isAccessible","handleOnLeave","setTimeout","globalThis","addEventListener","document","visibilityState","this","url","retryCount","clampNumber","flushAt","maxQueueSize","flushIntervalMs","flushInterval","flushed","errorHandler","pendingFlush","timer","flush","generateMessageId","event","formattedTimestamp","toDateHourMinute","Date","original_timestamp","eventForHashing","eventString","JSON","stringify","hash","enqueue","message_id","isDuplicate","logger","warn","millisecondsToSecond","push","message","log","getActionDescriptor","type","properties","hasReachedFlushAt","hasReachedQueueSize","reduce","acc","item","bind","clearTimeout","Promise","resolve","items","splice","clear","sentAt","toISOString","data","map","sent_at","done","err","forEach","headers","EVENTS_API_REQUEST_HEADER","method","body","keepalive","retries","retryDelay","attempt","Math","pow","retryOn","_","error","isErrorRetryable","then","catch","response","Error","statusText","isNetworkError","status","eventId","has","add","EventQueue","isError","name","undefined","stack","errorMessages","objectToString","toString","value","_providerListeners","_providers","currentAddress","currentUserId","config","session","FormoAnalyticsSession","cookie","get","SESSION_USER_ID_KEY","identify","connect","disconnect","chain","signature","transaction","detect","track","Logger","init","enabled","enabledLevels","levels","eventManager","EventManager","EVENTS_API_URL","provider","window","ethereum","trackProvider","trackPageHit","trackPageHits","initStorageManager","analytics","FormoAnalytics","getProviders","detectWallets","page","category","context","reset","remove","LOCAL_ANONYMOUS_ID_KEY","address","currentChainId","trackEvent","EventType","CONNECT","params","DISCONNECT","info","Number","isNaN","CHAIN","signatureHash","SIGNATURE","to","transactionHash","TRANSACTION","p","providerDetail","getAddress","rdns","providerName","userId","set","IDENTIFY","isWalletDetected","markWalletDetected","DETECT","TRACK","_provider","actions","keys","action","removeListener","registerAccountsChangedListener","registerChainChangedListener","registerConnectListener","registerRequestListeners","listener","onAccountsChanged","args","on","accounts","getCurrentChainId","onChainChanged","chainIdHex","parseChainId","connection","onConnected","getOwnPropertyDescriptor","writable","request","Array","isArray","includes","SignatureStatus","REQUESTED","buildSignatureEventPayload","e","CONFIRMED","rpcError","code","REJECTED","buildTransactionEventPayload","payload","TransactionStatus","STARTED","BROADCASTED","pollTransactionReceipt","onLocationChange","SESSION_CURRENT_URL_KEY","location","href","oldPushState","history","pushState","ret","apply","dispatchEvent","Event","oldReplaceState","replaceState","shouldTrack","PAGE","addEvent","tracking","excludeHosts","excludePaths","excludeChains","hostname","pathname","isLocalhost","store","createStore","providers","subscribe","providerDetails","eip6963ProviderDetail","getAccounts","isAddress","res","filter","basePayload","Buffer","from","slice","maxAttempts","intervalMs","attempts","poll","receipt","REVERTED","SESSION_WALLET_DETECTED_KEY","split","rdnses","join","expires","now","toUTCString","path","toChecksumAddress","lowerCaseAddress","toLowerCase","replace","uint8ArrayToHexString","keccak256","ensureIfUint8Array","utf8ToBytes","isNullish","checksumAddress","addressHash","i","toUpperCase","f","k","Symbol","for","l","m","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","key","ref","__self","__source","q","c","g","d","h","defaultProps","$$typeof","props","_owner","current","Fragment","jsx","jsxs","TYPES","storages","Map","getStorage","storage","createStorage","isAvailable","index","indexOf","localStorage","sessionStorage","StorageManager","mergeDeepRight","lObj","rObj","__","rVal","defineProperty","notImplemented","bitMask","isBytes","abytes","abool","title","numberToHexUnpadded","hexToNumber","bytesToHex","hexToBytes","bytesToNumberBE","bytes","bytesToNumberLE","Uint8Array","reverse","numberToBytesBE","numberToBytesLE","len","numberToVarBytesBE","ensureBytes","hex","expectedLength","concatBytes","equalBytes","diff","str","TextEncoder","encode","inRange","aInRange","min","max","bitLen","_0n","_1n","bitGet","pos","BigInt","bitSet","createHmacDrbg","hashLen","qByteLen","hmacFn","v","u8n","fill","reseed","seed","u8fr","gen","out","sl","pred","validateObject","object","validators","optValidators","checkField","fieldName","isOptional","checkVal","validatorFns","val","String","entries","memoized","WeakMap","arg","computed","ArrayBuffer","isView","constructor","num","hasHexBuiltin","toHex","fromHex","hexes","padStart","asciis","_0","_9","A","F","asciiToBase16","ch","hl","al","array","ai","hi","n1","charCodeAt","n2","char","arrays","sum","pad","isPosBig","arr","bigint","function","boolean","string","stringOrUint8Array","isSafeInteger","field","Fp","isValid","outputLen","memoryStorage","getKey","MemoryStorage","keccak512","keccak384","keccak224","sha3_1","utils_js_1","wrapHash","keccak_224","keccak_256","create","keccak_384","keccak_512","x","KEY_PREFIX","StorageBlueprint","EventChannel","requestProviders","announceProvider","detail","CustomEvent","freeze","handler","removeEventListener","toBig","shrSL","shrSH","rotrSL","rotrSH","rotrBL","rotrBH","rotr32L","rotr32H","rotlSL","rotlSH","rotlBL","rotlBH","add5L","add5H","add4L","add4H","add3L","add3H","fromBig","U32_MASK64","_32n","le","lst","Ah","Uint32Array","Al","_l","s","_h","Bh","Bl","Cl","low","Ch","Dl","Dh","El","Eh","u64","assertBytes","assertBool","createView","bytesToUtf8","TypeError","TextDecoder","decode","sliced","substring","utils_2","equalsBytes","msg","_assert_1","utils_1","enumerable","utils_3","instance","getInstance","setEnabled","setEnabledLevels","isLoggingEnabled","getEnabledLevels","shouldLog","level","formatMessage","timestamp","toLocaleString","year","month","day","hour","minute","second","hour12","debug","console","trace","shake256","shake128","sha3_512","sha3_384","sha3_256","sha3_224","Keccak","keccakP","_u64_ts_1","utils_ts_1","_2n","_7n","_256n","_0x71n","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","round","R","y","t","j","IOTAS","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","rounds","B","idx1","idx0","B0","B1","Th","Tl","curH","curL","shift","PI","clean","Hash","blockLen","suffix","enableXOF","super","posOut","finished","destroyed","anumber","state","state32","u32","clone","_cloneInto","keccak","swap32IfBE","update","aexists","toBytes","take","finish","writeInto","bufferOut","subarray","xofInto","xof","digestInto","aoutput","destroy","digest","createHasher","genShake","createXOFer","opts","dkLen","formo","uint8Array","hexString","isPositiveInteger","isInteger","ArgumentError","fetch","defaults","assign","input","reject","wrappedFetch","_input","Request","retryOnResponse","retry","delay","EVENTS_API_HOST","USER_API_URL","Authorization","COUNTRY_LIST","CET","CST6CDT","Cuba","EET","Egypt","Eire","EST","EST5EDT","Factory","GB","GMT","GMT0","Greenwich","Hongkong","HST","Iceland","Iran","Israel","Jamaica","Japan","Kwajalein","Libya","MET","MST","MST7MDT","Navajo","NZ","Poland","Portugal","PRC","PST8PDT","ROC","ROK","Singapore","Turkey","UCT","Universal","UTC","WET","Zulu","mergeWithKey","r","result","store_js_1","f3","_c","omitKeys","convert","toSnake","milliseconds","ceil","date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","f1","version","crypto","defaultContext","FormoAnalyticsContext","createContext","FormoAnalyticsProvider","disabled","children","InitializedAnalytics","useState","sdk","setSdk","initializedStartedRef","useRef","initializeFormoAnalytics","sdkInstance","useEffect","Provider","useFormo","useContext","u","w","z","iterator","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","C","D","E","refs","updater","G","isReactComponent","setState","forceUpdate","H","isPureReactComponent","I","J","K","L","M","O","P","Q","escape","N","next","S","T","_status","_result","default","U","V","transition","W","ReactCurrentDispatcher","ReactCurrentBatchConfig","X","Children","count","toArray","only","Component","Profiler","PureComponent","StrictMode","Suspense","act","cloneElement","_currentValue","_currentValue2","_threadCount","Consumer","_defaultValue","_globalName","_context","createElement","createFactory","createRef","forwardRef","render","isValidElement","lazy","_payload","_init","memo","compare","startTransition","unstable_act","useCallback","useDebugValue","useDeferredValue","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useSyncExternalStore","useTransition","subtle","hashBuffer","byteArray","byte","randomUUID","getCookieDomain","test","parts","generateAnonymousId","storedAnonymousId","newAnonymousId","generateNativeUUID","maxAge","domain","isFunction","Boolean","isString","isNull","isUndefined","isNullOrUndefined","isBigInt","isDefined","isDefinedAndNotNull","isDefinedNotNullAndNotEmptyString","isTypeOfError","isBoolean","isNumber","isObject","isObjectAndNotNull","isRegExp","isDate","isPrimitive","checksum","isUint8Array","valueToCheck","isHexStrict","checkAddressChecksum","updatedData","backend","testKey","setItem","removeItem","JSON_PREFIX","getItem","some","parse","WebStorage","getFormattedTimestamp","getCurrentTimeFormatted","listeners","uuid","added","unwatch","_listeners","removed","findProvider","find","emitImmediately","delete","eventQueue","eventFactory","EventFactory","_event","formoEvent","protocol","globalManager","getStorageInstance","local","memory","SESSION_TRAFFIC_SOURCE_KEY","CHANNEL","VERSION","formofy","extractUTMParameters","utm_campaign","utm_content","utm_medium","utm_source","utm_term","URL","searchParams","sParam","trim","extractReferralParameter","urlObj","param","getTrafficSources","contextTrafficSources","referrer","storedTrafficSources","finalTrafficSources","sessionStoredTrafficSources","getPageProperties","pageProps","getEnrichedEvent","commonEventData","generateContext","user_id","channel","anonymous_id","processedEvent","toSnakeCase","getTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","getLocation","timezone","getLanguage","navigator","languages","language","getLibraryVersion","library_version","user_agent","userAgent","locale","page_path","page_title","page_url","library_name","generatePageEvent","pageEvent","generateDetectWalletEvent","detectEvent","generateIdentifyEvent","identifyEvent","generateConnectEvent","connectEvent","generateDisconnectEvent","disconnectEvent","generateChainChangedEvent","chainEvent","generateSignatureEvent","signatureEvent","generateTransactionEvent","transactionEvent","generateTrackEvent","revenue","currency","points","volume","sameSite","secure","encodeURIComponent","match","RegExp","decodeURIComponent","CookieStorage","wrapXOFConstructorWithOpts","wrapConstructorWithOpts","wrapConstructor","nextTick","byteSwapIfBE","swap8IfBE","isLE","ahash","checkFinished","u8","buffer","byteOffset","byteLength","floor","DataView","rotr","word","rotl","byteSwap","byteSwap32","asyncLoop","async","iters","tick","cb","ts","kdfInputToBytes","checkOpts","createOptHasher","randomBytes","bytesLength","crypto_1","getRandomValues","lengths","hashCons","hashC","tmp","mergeDeepWithKey","lVal","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","Function","__webpack_exports__"],"sourceRoot":""}
|