wcz-test 6.12.9 → 6.13.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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-client-B6cIXYDV.js","sources":["../src/hooks/ThemeHook.ts","../node_modules/better-auth/dist/url-C4fqRUH1.mjs","../node_modules/better-auth/dist/parser-kwbb5q_C.mjs","../node_modules/nanostores/clean-stores/index.js","../node_modules/nanostores/atom/index.js","../node_modules/nanostores/lifecycle/index.js","../node_modules/nanostores/listen-keys/index.js","../node_modules/@better-fetch/fetch/dist/index.js","../node_modules/better-auth/dist/proxy-DZR0bcsP.mjs","../node_modules/better-auth/dist/client/react/index.mjs","../src/lib/auth/auth-client.ts"],"sourcesContent":["import { createTheme, darken, lighten } from \"@mui/material\";\r\nimport { grey } from \"@mui/material/colors\";\r\nimport { csCZ, enUS } from \"@mui/material/locale\";\r\nimport { csCZ as dataGridCsCz, enUS as dataGridEnUs } from \"@mui/x-data-grid/locales\";\r\nimport { csCZ as datePickersCsCz, enUS as datePickersEnUs } from \"@mui/x-date-pickers/locales\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport type { CssVarsThemeOptions } from \"@mui/material\";\r\n\r\nexport const WISTRON_PRIMARY_COLOR = \"#00506E\";\r\nexport const WISTRON_SECONDARY_COLOR = \"#64DC00\";\r\n\r\nconst LOCALE_MAP = {\r\n cs: [dataGridCsCz, datePickersCsCz, csCZ],\r\n en: [dataGridEnUs, datePickersEnUs, enUS],\r\n} as const;\r\n\r\nexport const useGetTheme = (theme?: Pick<CssVarsThemeOptions, \"colorSchemes\" | \"components\">) => {\r\n const { i18n } = useTranslation();\r\n\r\n return createTheme(\r\n {\r\n cssVariables: {\r\n colorSchemeSelector: \"data-mui-color-scheme\"\r\n },\r\n colorSchemes: {\r\n light: {\r\n palette: {\r\n primary: { main: WISTRON_PRIMARY_COLOR },\r\n secondary: { main: WISTRON_SECONDARY_COLOR },\r\n },\r\n },\r\n dark: {\r\n palette: {\r\n primary: { main: lighten(WISTRON_PRIMARY_COLOR, 0.5) },\r\n secondary: { main: darken(WISTRON_SECONDARY_COLOR, 0.5) },\r\n },\r\n },\r\n ...theme?.colorSchemes\r\n },\r\n components: {\r\n MuiCssBaseline: {\r\n styleOverrides: ({ palette }) => {\r\n return {\r\n body: {\r\n \"&::-webkit-scrollbar, & *::-webkit-scrollbar\": {\r\n width: \"0.7em\",\r\n height: \"0.7em\",\r\n },\r\n \"&::-webkit-scrollbar-track, & *::-webkit-scrollbar-track\": {\r\n backgroundColor:\r\n palette.mode === \"dark\" ? grey[900] : grey[200],\r\n borderRadius: \"5px\",\r\n },\r\n \"&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb\": {\r\n backgroundColor:\r\n palette.mode === \"dark\" ? grey[800] : grey[400],\r\n borderRadius: \"10px\",\r\n },\r\n \"&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover\":\r\n {\r\n backgroundColor:\r\n palette.mode === \"dark\" ? grey[700] : grey[500],\r\n },\r\n \"&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner\": {\r\n backgroundColor: \"transparent\",\r\n },\r\n },\r\n };\r\n },\r\n },\r\n ...theme?.components\r\n },\r\n },\r\n ...LOCALE_MAP[i18n.language as keyof typeof LOCALE_MAP]\r\n );\r\n};\r\n","import { env } from \"@better-auth/core/env\";\nimport { BetterAuthError } from \"@better-auth/core/error\";\n\n//#region src/utils/url.ts\nfunction checkHasPath(url) {\n\ttry {\n\t\treturn (new URL(url).pathname.replace(/\\/+$/, \"\") || \"/\") !== \"/\";\n\t} catch (error) {\n\t\tthrow new BetterAuthError(`Invalid base URL: ${url}. Please provide a valid base URL.`);\n\t}\n}\nfunction assertHasProtocol(url) {\n\ttry {\n\t\tconst parsedUrl = new URL(url);\n\t\tif (parsedUrl.protocol !== \"http:\" && parsedUrl.protocol !== \"https:\") throw new BetterAuthError(`Invalid base URL: ${url}. URL must include 'http://' or 'https://'`);\n\t} catch (error) {\n\t\tif (error instanceof BetterAuthError) throw error;\n\t\tthrow new BetterAuthError(`Invalid base URL: ${url}. Please provide a valid base URL.`, String(error));\n\t}\n}\nfunction withPath(url, path = \"/api/auth\") {\n\tassertHasProtocol(url);\n\tif (checkHasPath(url)) return url;\n\tconst trimmedUrl = url.replace(/\\/+$/, \"\");\n\tif (!path || path === \"/\") return trimmedUrl;\n\tpath = path.startsWith(\"/\") ? path : `/${path}`;\n\treturn `${trimmedUrl}${path}`;\n}\nfunction getBaseURL(url, path, request, loadEnv) {\n\tif (url) return withPath(url, path);\n\tif (loadEnv !== false) {\n\t\tconst fromEnv = env.BETTER_AUTH_URL || env.NEXT_PUBLIC_BETTER_AUTH_URL || env.PUBLIC_BETTER_AUTH_URL || env.NUXT_PUBLIC_BETTER_AUTH_URL || env.NUXT_PUBLIC_AUTH_URL || (env.BASE_URL !== \"/\" ? env.BASE_URL : void 0);\n\t\tif (fromEnv) return withPath(fromEnv, path);\n\t}\n\tconst fromRequest = request?.headers.get(\"x-forwarded-host\");\n\tconst fromRequestProto = request?.headers.get(\"x-forwarded-proto\");\n\tif (fromRequest && fromRequestProto) return withPath(`${fromRequestProto}://${fromRequest}`, path);\n\tif (request) {\n\t\tconst url$1 = getOrigin(request.url);\n\t\tif (!url$1) throw new BetterAuthError(\"Could not get origin from request. Please provide a valid base URL.\");\n\t\treturn withPath(url$1, path);\n\t}\n\tif (typeof window !== \"undefined\" && window.location) return withPath(window.location.origin, path);\n}\nfunction getOrigin(url) {\n\ttry {\n\t\tconst parsedUrl = new URL(url);\n\t\treturn parsedUrl.origin === \"null\" ? null : parsedUrl.origin;\n\t} catch (error) {\n\t\treturn null;\n\t}\n}\nfunction getProtocol(url) {\n\ttry {\n\t\treturn new URL(url).protocol;\n\t} catch (error) {\n\t\treturn null;\n\t}\n}\nfunction getHost(url) {\n\ttry {\n\t\treturn new URL(url).host;\n\t} catch (error) {\n\t\treturn null;\n\t}\n}\n\n//#endregion\nexport { getProtocol as i, getHost as n, getOrigin as r, getBaseURL as t };","//#region src/client/parser.ts\nconst PROTO_POLLUTION_PATTERNS = {\n\tproto: /\"(?:_|\\\\u0{2}5[Ff]){2}(?:p|\\\\u0{2}70)(?:r|\\\\u0{2}72)(?:o|\\\\u0{2}6[Ff])(?:t|\\\\u0{2}74)(?:o|\\\\u0{2}6[Ff])(?:_|\\\\u0{2}5[Ff]){2}\"\\s*:/,\n\tconstructor: /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/,\n\tprotoShort: /\"__proto__\"\\s*:/,\n\tconstructorShort: /\"constructor\"\\s*:/\n};\nconst JSON_SIGNATURE = /^\\s*[\"[{]|^\\s*-?\\d{1,16}(\\.\\d{1,17})?([Ee][+-]?\\d+)?\\s*$/;\nconst SPECIAL_VALUES = {\n\ttrue: true,\n\tfalse: false,\n\tnull: null,\n\tundefined: void 0,\n\tnan: NaN,\n\tinfinity: Number.POSITIVE_INFINITY,\n\t\"-infinity\": Number.NEGATIVE_INFINITY\n};\nconst ISO_DATE_REGEX = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d{1,7}))?(?:Z|([+-])(\\d{2}):(\\d{2}))$/;\nfunction isValidDate(date) {\n\treturn date instanceof Date && !isNaN(date.getTime());\n}\nfunction parseISODate(value) {\n\tconst match = ISO_DATE_REGEX.exec(value);\n\tif (!match) return null;\n\tconst [, year, month, day, hour, minute, second, ms, offsetSign, offsetHour, offsetMinute] = match;\n\tlet date = new Date(Date.UTC(parseInt(year, 10), parseInt(month, 10) - 1, parseInt(day, 10), parseInt(hour, 10), parseInt(minute, 10), parseInt(second, 10), ms ? parseInt(ms.padEnd(3, \"0\"), 10) : 0));\n\tif (offsetSign) {\n\t\tconst offset = (parseInt(offsetHour, 10) * 60 + parseInt(offsetMinute, 10)) * (offsetSign === \"+\" ? -1 : 1);\n\t\tdate.setUTCMinutes(date.getUTCMinutes() + offset);\n\t}\n\treturn isValidDate(date) ? date : null;\n}\nfunction betterJSONParse(value, options = {}) {\n\tconst { strict = false, warnings = false, reviver, parseDates = true } = options;\n\tif (typeof value !== \"string\") return value;\n\tconst trimmed = value.trim();\n\tif (trimmed.length > 0 && trimmed[0] === \"\\\"\" && trimmed.endsWith(\"\\\"\") && !trimmed.slice(1, -1).includes(\"\\\"\")) return trimmed.slice(1, -1);\n\tconst lowerValue = trimmed.toLowerCase();\n\tif (lowerValue.length <= 9 && lowerValue in SPECIAL_VALUES) return SPECIAL_VALUES[lowerValue];\n\tif (!JSON_SIGNATURE.test(trimmed)) {\n\t\tif (strict) throw new SyntaxError(\"[better-json] Invalid JSON\");\n\t\treturn value;\n\t}\n\tif (Object.entries(PROTO_POLLUTION_PATTERNS).some(([key, pattern]) => {\n\t\tconst matches = pattern.test(trimmed);\n\t\tif (matches && warnings) console.warn(`[better-json] Detected potential prototype pollution attempt using ${key} pattern`);\n\t\treturn matches;\n\t}) && strict) throw new Error(\"[better-json] Potential prototype pollution attempt detected\");\n\ttry {\n\t\tconst secureReviver = (key, value$1) => {\n\t\t\tif (key === \"__proto__\" || key === \"constructor\" && value$1 && typeof value$1 === \"object\" && \"prototype\" in value$1) {\n\t\t\t\tif (warnings) console.warn(`[better-json] Dropping \"${key}\" key to prevent prototype pollution`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (parseDates && typeof value$1 === \"string\") {\n\t\t\t\tconst date = parseISODate(value$1);\n\t\t\t\tif (date) return date;\n\t\t\t}\n\t\t\treturn reviver ? reviver(key, value$1) : value$1;\n\t\t};\n\t\treturn JSON.parse(trimmed, secureReviver);\n\t} catch (error) {\n\t\tif (strict) throw error;\n\t\treturn value;\n\t}\n}\nfunction parseJSON(value, options = { strict: true }) {\n\treturn betterJSONParse(value, options);\n}\nvar parser_default = parseJSON;\n\n//#endregion\nexport { parser_default as n, parseJSON as t };","import { cleanTasks } from '../task/index.js'\n\nexport let clean = Symbol('clean')\n\nexport let cleanStores = (...stores) => {\n if (process.env.NODE_ENV === 'production') {\n throw new Error(\n 'cleanStores() can be used only during development or tests'\n )\n }\n cleanTasks()\n for (let $store of stores) {\n if ($store) {\n if ($store.mocked) delete $store.mocked\n if ($store[clean]) $store[clean]()\n }\n }\n}\n","import { clean } from '../clean-stores/index.js'\n\nlet listenerQueue = []\nlet lqIndex = 0\nconst QUEUE_ITEMS_PER_LISTENER = 4\nexport let epoch = 0\n\n/* @__NO_SIDE_EFFECTS__ */\nexport const atom = initialValue => {\n let listeners = []\n let $atom = {\n get() {\n if (!$atom.lc) {\n $atom.listen(() => {})()\n }\n return $atom.value\n },\n lc: 0,\n listen(listener) {\n $atom.lc = listeners.push(listener)\n\n return () => {\n for (\n let i = lqIndex + QUEUE_ITEMS_PER_LISTENER;\n i < listenerQueue.length;\n\n ) {\n if (listenerQueue[i] === listener) {\n listenerQueue.splice(i, QUEUE_ITEMS_PER_LISTENER)\n } else {\n i += QUEUE_ITEMS_PER_LISTENER\n }\n }\n\n let index = listeners.indexOf(listener)\n if (~index) {\n listeners.splice(index, 1)\n if (!--$atom.lc) $atom.off()\n }\n }\n },\n notify(oldValue, changedKey) {\n epoch++\n let runListenerQueue = !listenerQueue.length\n for (let listener of listeners) {\n listenerQueue.push(listener, $atom.value, oldValue, changedKey)\n }\n\n if (runListenerQueue) {\n for (\n lqIndex = 0;\n lqIndex < listenerQueue.length;\n lqIndex += QUEUE_ITEMS_PER_LISTENER\n ) {\n listenerQueue[lqIndex](\n listenerQueue[lqIndex + 1],\n listenerQueue[lqIndex + 2],\n listenerQueue[lqIndex + 3]\n )\n }\n listenerQueue.length = 0\n }\n },\n /* It will be called on last listener unsubscribing.\n We will redefine it in onMount and onStop. */\n off() {},\n set(newValue) {\n let oldValue = $atom.value\n if (oldValue !== newValue) {\n $atom.value = newValue\n $atom.notify(oldValue)\n }\n },\n subscribe(listener) {\n let unbind = $atom.listen(listener)\n listener($atom.value)\n return unbind\n },\n value: initialValue\n }\n\n if (process.env.NODE_ENV !== 'production') {\n $atom[clean] = () => {\n listeners = []\n $atom.lc = 0\n $atom.off()\n }\n }\n\n return $atom\n}\n\nexport const readonlyType = store => store\n","import { clean } from '../clean-stores/index.js'\n\nconst START = 0\nconst STOP = 1\nconst SET = 2\nconst NOTIFY = 3\nconst MOUNT = 5\nconst UNMOUNT = 6\nconst REVERT_MUTATION = 10\n\nexport let on = (object, listener, eventKey, mutateStore) => {\n object.events = object.events || {}\n if (!object.events[eventKey + REVERT_MUTATION]) {\n object.events[eventKey + REVERT_MUTATION] = mutateStore(eventProps => {\n // eslint-disable-next-line no-sequences\n object.events[eventKey].reduceRight((event, l) => (l(event), event), {\n shared: {},\n ...eventProps\n })\n })\n }\n object.events[eventKey] = object.events[eventKey] || []\n object.events[eventKey].push(listener)\n return () => {\n let currentListeners = object.events[eventKey]\n let index = currentListeners.indexOf(listener)\n currentListeners.splice(index, 1)\n if (!currentListeners.length) {\n delete object.events[eventKey]\n object.events[eventKey + REVERT_MUTATION]()\n delete object.events[eventKey + REVERT_MUTATION]\n }\n }\n}\n\nexport let onStart = ($store, listener) =>\n on($store, listener, START, runListeners => {\n let originListen = $store.listen\n $store.listen = arg => {\n if (!$store.lc && !$store.starting) {\n $store.starting = true\n runListeners()\n delete $store.starting\n }\n return originListen(arg)\n }\n return () => {\n $store.listen = originListen\n }\n })\n\nexport let onStop = ($store, listener) =>\n on($store, listener, STOP, runListeners => {\n let originOff = $store.off\n $store.off = () => {\n runListeners()\n originOff()\n }\n return () => {\n $store.off = originOff\n }\n })\n\nexport let onSet = ($store, listener) =>\n on($store, listener, SET, runListeners => {\n let originSet = $store.set\n let originSetKey = $store.setKey\n if ($store.setKey) {\n $store.setKey = (changed, changedValue) => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({\n abort,\n changed,\n newValue: { ...$store.value, [changed]: changedValue }\n })\n if (!isAborted) return originSetKey(changed, changedValue)\n }\n }\n $store.set = newValue => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({ abort, newValue })\n if (!isAborted) return originSet(newValue)\n }\n return () => {\n $store.set = originSet\n $store.setKey = originSetKey\n }\n })\n\nexport let onNotify = ($store, listener) =>\n on($store, listener, NOTIFY, runListeners => {\n let originNotify = $store.notify\n $store.notify = (oldValue, changed) => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({ abort, changed, oldValue })\n if (!isAborted) return originNotify(oldValue, changed)\n }\n return () => {\n $store.notify = originNotify\n }\n })\n\nexport let STORE_UNMOUNT_DELAY = 1000\n\nexport let onMount = ($store, initialize) => {\n let listener = payload => {\n let destroy = initialize(payload)\n if (destroy) $store.events[UNMOUNT].push(destroy)\n }\n return on($store, listener, MOUNT, runListeners => {\n let originListen = $store.listen\n $store.listen = (...args) => {\n if (!$store.lc && !$store.active) {\n $store.active = true\n runListeners()\n }\n return originListen(...args)\n }\n\n let originOff = $store.off\n $store.events[UNMOUNT] = []\n $store.off = () => {\n originOff()\n setTimeout(() => {\n if ($store.active && !$store.lc) {\n $store.active = false\n for (let destroy of $store.events[UNMOUNT]) destroy()\n $store.events[UNMOUNT] = []\n }\n }, STORE_UNMOUNT_DELAY)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n let originClean = $store[clean]\n $store[clean] = () => {\n for (let destroy of $store.events[UNMOUNT]) destroy()\n $store.events[UNMOUNT] = []\n $store.active = false\n originClean()\n }\n }\n\n return () => {\n $store.listen = originListen\n $store.off = originOff\n }\n })\n}\n","export function listenKeys($store, keys, listener) {\n let keysSet = new Set(keys).add(undefined)\n return $store.listen((value, oldValue, changed) => {\n if (keysSet.has(changed)) {\n listener(value, oldValue, changed)\n }\n })\n}\n\nexport function subscribeKeys($store, keys, listener) {\n let unbind = listenKeys($store, keys, listener)\n listener($store.value)\n return unbind\n}\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\n\n// src/error.ts\nvar BetterFetchError = class extends Error {\n constructor(status, statusText, error) {\n super(statusText || status.toString(), {\n cause: error\n });\n this.status = status;\n this.statusText = statusText;\n this.error = error;\n }\n};\n\n// src/plugins.ts\nvar initializePlugins = async (url, options) => {\n var _a, _b, _c, _d, _e, _f;\n let opts = options || {};\n const hooks = {\n onRequest: [options == null ? void 0 : options.onRequest],\n onResponse: [options == null ? void 0 : options.onResponse],\n onSuccess: [options == null ? void 0 : options.onSuccess],\n onError: [options == null ? void 0 : options.onError],\n onRetry: [options == null ? void 0 : options.onRetry]\n };\n if (!options || !(options == null ? void 0 : options.plugins)) {\n return {\n url,\n options: opts,\n hooks\n };\n }\n for (const plugin of (options == null ? void 0 : options.plugins) || []) {\n if (plugin.init) {\n const pluginRes = await ((_a = plugin.init) == null ? void 0 : _a.call(plugin, url.toString(), options));\n opts = pluginRes.options || opts;\n url = pluginRes.url;\n }\n hooks.onRequest.push((_b = plugin.hooks) == null ? void 0 : _b.onRequest);\n hooks.onResponse.push((_c = plugin.hooks) == null ? void 0 : _c.onResponse);\n hooks.onSuccess.push((_d = plugin.hooks) == null ? void 0 : _d.onSuccess);\n hooks.onError.push((_e = plugin.hooks) == null ? void 0 : _e.onError);\n hooks.onRetry.push((_f = plugin.hooks) == null ? void 0 : _f.onRetry);\n }\n return {\n url,\n options: opts,\n hooks\n };\n};\n\n// src/retry.ts\nvar LinearRetryStrategy = class {\n constructor(options) {\n this.options = options;\n }\n shouldAttemptRetry(attempt, response) {\n if (this.options.shouldRetry) {\n return Promise.resolve(\n attempt < this.options.attempts && this.options.shouldRetry(response)\n );\n }\n return Promise.resolve(attempt < this.options.attempts);\n }\n getDelay() {\n return this.options.delay;\n }\n};\nvar ExponentialRetryStrategy = class {\n constructor(options) {\n this.options = options;\n }\n shouldAttemptRetry(attempt, response) {\n if (this.options.shouldRetry) {\n return Promise.resolve(\n attempt < this.options.attempts && this.options.shouldRetry(response)\n );\n }\n return Promise.resolve(attempt < this.options.attempts);\n }\n getDelay(attempt) {\n const delay = Math.min(\n this.options.maxDelay,\n this.options.baseDelay * 2 ** attempt\n );\n return delay;\n }\n};\nfunction createRetryStrategy(options) {\n if (typeof options === \"number\") {\n return new LinearRetryStrategy({\n type: \"linear\",\n attempts: options,\n delay: 1e3\n });\n }\n switch (options.type) {\n case \"linear\":\n return new LinearRetryStrategy(options);\n case \"exponential\":\n return new ExponentialRetryStrategy(options);\n default:\n throw new Error(\"Invalid retry strategy\");\n }\n}\n\n// src/auth.ts\nvar getAuthHeader = async (options) => {\n const headers = {};\n const getValue = async (value) => typeof value === \"function\" ? await value() : value;\n if (options == null ? void 0 : options.auth) {\n if (options.auth.type === \"Bearer\") {\n const token = await getValue(options.auth.token);\n if (!token) {\n return headers;\n }\n headers[\"authorization\"] = `Bearer ${token}`;\n } else if (options.auth.type === \"Basic\") {\n const username = getValue(options.auth.username);\n const password = getValue(options.auth.password);\n if (!username || !password) {\n return headers;\n }\n headers[\"authorization\"] = `Basic ${btoa(`${username}:${password}`)}`;\n } else if (options.auth.type === \"Custom\") {\n const value = getValue(options.auth.value);\n if (!value) {\n return headers;\n }\n headers[\"authorization\"] = `${getValue(options.auth.prefix)} ${value}`;\n }\n }\n return headers;\n};\n\n// src/utils.ts\nvar JSON_RE = /^application\\/(?:[\\w!#$%&*.^`~-]*\\+)?json(;.+)?$/i;\nfunction detectResponseType(request) {\n const _contentType = request.headers.get(\"content-type\");\n const textTypes = /* @__PURE__ */ new Set([\n \"image/svg\",\n \"application/xml\",\n \"application/xhtml\",\n \"application/html\"\n ]);\n if (!_contentType) {\n return \"json\";\n }\n const contentType = _contentType.split(\";\").shift() || \"\";\n if (JSON_RE.test(contentType)) {\n return \"json\";\n }\n if (textTypes.has(contentType) || contentType.startsWith(\"text/\")) {\n return \"text\";\n }\n return \"blob\";\n}\nfunction isJSONParsable(value) {\n try {\n JSON.parse(value);\n return true;\n } catch (error) {\n return false;\n }\n}\nfunction isJSONSerializable(value) {\n if (value === void 0) {\n return false;\n }\n const t = typeof value;\n if (t === \"string\" || t === \"number\" || t === \"boolean\" || t === null) {\n return true;\n }\n if (t !== \"object\") {\n return false;\n }\n if (Array.isArray(value)) {\n return true;\n }\n if (value.buffer) {\n return false;\n }\n return value.constructor && value.constructor.name === \"Object\" || typeof value.toJSON === \"function\";\n}\nfunction jsonParse(text) {\n try {\n return JSON.parse(text);\n } catch (error) {\n return text;\n }\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction getFetch(options) {\n if (options == null ? void 0 : options.customFetchImpl) {\n return options.customFetchImpl;\n }\n if (typeof globalThis !== \"undefined\" && isFunction(globalThis.fetch)) {\n return globalThis.fetch;\n }\n if (typeof window !== \"undefined\" && isFunction(window.fetch)) {\n return window.fetch;\n }\n throw new Error(\"No fetch implementation found\");\n}\nfunction isPayloadMethod(method) {\n if (!method) {\n return false;\n }\n const payloadMethod = [\"POST\", \"PUT\", \"PATCH\", \"DELETE\"];\n return payloadMethod.includes(method.toUpperCase());\n}\nfunction isRouteMethod(method) {\n const routeMethod = [\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\"];\n if (!method) {\n return false;\n }\n return routeMethod.includes(method.toUpperCase());\n}\nasync function getHeaders(opts) {\n const headers = new Headers(opts == null ? void 0 : opts.headers);\n const authHeader = await getAuthHeader(opts);\n for (const [key, value] of Object.entries(authHeader || {})) {\n headers.set(key, value);\n }\n if (!headers.has(\"content-type\")) {\n const t = detectContentType(opts == null ? void 0 : opts.body);\n if (t) {\n headers.set(\"content-type\", t);\n }\n }\n return headers;\n}\nfunction getURL(url, options) {\n if (url.startsWith(\"@\")) {\n const m = url.toString().split(\"@\")[1].split(\"/\")[0];\n if (methods.includes(m)) {\n url = url.replace(`@${m}/`, \"/\");\n }\n }\n let _url;\n try {\n if (url.startsWith(\"http\")) {\n _url = url;\n } else {\n let baseURL = options == null ? void 0 : options.baseURL;\n if (baseURL && !(baseURL == null ? void 0 : baseURL.endsWith(\"/\"))) {\n baseURL = baseURL + \"/\";\n }\n if (url.startsWith(\"/\")) {\n _url = new URL(url.substring(1), baseURL);\n } else {\n _url = new URL(url, options == null ? void 0 : options.baseURL);\n }\n }\n } catch (e) {\n if (e instanceof TypeError) {\n if (!(options == null ? void 0 : options.baseURL)) {\n throw TypeError(\n `Invalid URL ${url}. Are you passing in a relative url but not setting the baseURL?`\n );\n }\n throw TypeError(\n `Invalid URL ${url}. Please validate that you are passing the correct input.`\n );\n }\n throw e;\n }\n if (options == null ? void 0 : options.params) {\n if (Array.isArray(options == null ? void 0 : options.params)) {\n const params = (options == null ? void 0 : options.params) ? Array.isArray(options.params) ? `/${options.params.join(\"/\")}` : `/${Object.values(options.params).join(\"/\")}` : \"\";\n _url = _url.toString().split(\"/:\")[0];\n _url = `${_url.toString()}${params}`;\n } else {\n for (const [key, value] of Object.entries(options == null ? void 0 : options.params)) {\n _url = _url.toString().replace(`:${key}`, String(value));\n }\n }\n }\n const __url = new URL(_url);\n const queryParams = options == null ? void 0 : options.query;\n if (queryParams) {\n for (const [key, value] of Object.entries(queryParams)) {\n __url.searchParams.append(key, String(value));\n }\n }\n return __url;\n}\nfunction detectContentType(body) {\n if (isJSONSerializable(body)) {\n return \"application/json\";\n }\n return null;\n}\nfunction getBody(options) {\n if (!(options == null ? void 0 : options.body)) {\n return null;\n }\n const headers = new Headers(options == null ? void 0 : options.headers);\n if (isJSONSerializable(options.body) && !headers.has(\"content-type\")) {\n for (const [key, value] of Object.entries(options == null ? void 0 : options.body)) {\n if (value instanceof Date) {\n options.body[key] = value.toISOString();\n }\n }\n return JSON.stringify(options.body);\n }\n return options.body;\n}\nfunction getMethod(url, options) {\n var _a;\n if (options == null ? void 0 : options.method) {\n return options.method.toUpperCase();\n }\n if (url.startsWith(\"@\")) {\n const pMethod = (_a = url.split(\"@\")[1]) == null ? void 0 : _a.split(\"/\")[0];\n if (!methods.includes(pMethod)) {\n return (options == null ? void 0 : options.body) ? \"POST\" : \"GET\";\n }\n return pMethod.toUpperCase();\n }\n return (options == null ? void 0 : options.body) ? \"POST\" : \"GET\";\n}\nfunction getTimeout(options, controller) {\n let abortTimeout;\n if (!(options == null ? void 0 : options.signal) && (options == null ? void 0 : options.timeout)) {\n abortTimeout = setTimeout(() => controller == null ? void 0 : controller.abort(), options == null ? void 0 : options.timeout);\n }\n return {\n abortTimeout,\n clearTimeout: () => {\n if (abortTimeout) {\n clearTimeout(abortTimeout);\n }\n }\n };\n}\nfunction bodyParser(data, responseType) {\n if (responseType === \"json\") {\n return JSON.parse(data);\n }\n return data;\n}\nvar ValidationError = class _ValidationError extends Error {\n constructor(issues, message) {\n super(message || JSON.stringify(issues, null, 2));\n this.issues = issues;\n Object.setPrototypeOf(this, _ValidationError.prototype);\n }\n};\nasync function parseStandardSchema(schema, input) {\n let result = await schema[\"~standard\"].validate(input);\n if (result.issues) {\n throw new ValidationError(result.issues);\n }\n return result.value;\n}\n\n// src/create-fetch/schema.ts\nvar methods = [\"get\", \"post\", \"put\", \"patch\", \"delete\"];\nvar createSchema = (schema, config) => {\n return {\n schema,\n config\n };\n};\n\n// src/create-fetch/index.ts\nvar applySchemaPlugin = (config) => ({\n id: \"apply-schema\",\n name: \"Apply Schema\",\n version: \"1.0.0\",\n async init(url, options) {\n var _a, _b, _c, _d;\n const schema = ((_b = (_a = config.plugins) == null ? void 0 : _a.find(\n (plugin) => {\n var _a2;\n return ((_a2 = plugin.schema) == null ? void 0 : _a2.config) ? url.startsWith(plugin.schema.config.baseURL || \"\") || url.startsWith(plugin.schema.config.prefix || \"\") : false;\n }\n )) == null ? void 0 : _b.schema) || config.schema;\n if (schema) {\n let urlKey = url;\n if ((_c = schema.config) == null ? void 0 : _c.prefix) {\n if (urlKey.startsWith(schema.config.prefix)) {\n urlKey = urlKey.replace(schema.config.prefix, \"\");\n if (schema.config.baseURL) {\n url = url.replace(schema.config.prefix, schema.config.baseURL);\n }\n }\n }\n if ((_d = schema.config) == null ? void 0 : _d.baseURL) {\n if (urlKey.startsWith(schema.config.baseURL)) {\n urlKey = urlKey.replace(schema.config.baseURL, \"\");\n }\n }\n const keySchema = schema.schema[urlKey];\n if (keySchema) {\n let opts = __spreadProps(__spreadValues({}, options), {\n method: keySchema.method,\n output: keySchema.output\n });\n if (!(options == null ? void 0 : options.disableValidation)) {\n opts = __spreadProps(__spreadValues({}, opts), {\n body: keySchema.input ? await parseStandardSchema(keySchema.input, options == null ? void 0 : options.body) : options == null ? void 0 : options.body,\n params: keySchema.params ? await parseStandardSchema(keySchema.params, options == null ? void 0 : options.params) : options == null ? void 0 : options.params,\n query: keySchema.query ? await parseStandardSchema(keySchema.query, options == null ? void 0 : options.query) : options == null ? void 0 : options.query\n });\n }\n return {\n url,\n options: opts\n };\n }\n }\n return {\n url,\n options\n };\n }\n});\nvar createFetch = (config) => {\n async function $fetch(url, options) {\n const opts = __spreadProps(__spreadValues(__spreadValues({}, config), options), {\n plugins: [...(config == null ? void 0 : config.plugins) || [], applySchemaPlugin(config || {})]\n });\n if (config == null ? void 0 : config.catchAllError) {\n try {\n return await betterFetch(url, opts);\n } catch (error) {\n return {\n data: null,\n error: {\n status: 500,\n statusText: \"Fetch Error\",\n message: \"Fetch related error. Captured by catchAllError option. See error property for more details.\",\n error\n }\n };\n }\n }\n return await betterFetch(url, opts);\n }\n return $fetch;\n};\n\n// src/url.ts\nfunction getURL2(url, option) {\n let { baseURL, params, query } = option || {\n query: {},\n params: {},\n baseURL: \"\"\n };\n let basePath = url.startsWith(\"http\") ? url.split(\"/\").slice(0, 3).join(\"/\") : baseURL || \"\";\n if (url.startsWith(\"@\")) {\n const m = url.toString().split(\"@\")[1].split(\"/\")[0];\n if (methods.includes(m)) {\n url = url.replace(`@${m}/`, \"/\");\n }\n }\n if (!basePath.endsWith(\"/\")) basePath += \"/\";\n let [path, urlQuery] = url.replace(basePath, \"\").split(\"?\");\n const queryParams = new URLSearchParams(urlQuery);\n for (const [key, value] of Object.entries(query || {})) {\n if (value == null) continue;\n queryParams.set(key, String(value));\n }\n if (params) {\n if (Array.isArray(params)) {\n const paramPaths = path.split(\"/\").filter((p) => p.startsWith(\":\"));\n for (const [index, key] of paramPaths.entries()) {\n const value = params[index];\n path = path.replace(key, value);\n }\n } else {\n for (const [key, value] of Object.entries(params)) {\n path = path.replace(`:${key}`, String(value));\n }\n }\n }\n path = path.split(\"/\").map(encodeURIComponent).join(\"/\");\n if (path.startsWith(\"/\")) path = path.slice(1);\n let queryParamString = queryParams.toString();\n queryParamString = queryParamString.length > 0 ? `?${queryParamString}`.replace(/\\+/g, \"%20\") : \"\";\n if (!basePath.startsWith(\"http\")) {\n return `${basePath}${path}${queryParamString}`;\n }\n const _url = new URL(`${path}${queryParamString}`, basePath);\n return _url;\n}\n\n// src/fetch.ts\nvar betterFetch = async (url, options) => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const {\n hooks,\n url: __url,\n options: opts\n } = await initializePlugins(url, options);\n const fetch = getFetch(opts);\n const controller = new AbortController();\n const signal = (_a = opts.signal) != null ? _a : controller.signal;\n const _url = getURL2(__url, opts);\n const body = getBody(opts);\n const headers = await getHeaders(opts);\n const method = getMethod(__url, opts);\n let context = __spreadProps(__spreadValues({}, opts), {\n url: _url,\n headers,\n body,\n method,\n signal\n });\n for (const onRequest of hooks.onRequest) {\n if (onRequest) {\n const res = await onRequest(context);\n if (res instanceof Object) {\n context = res;\n }\n }\n }\n if (\"pipeTo\" in context && typeof context.pipeTo === \"function\" || typeof ((_b = options == null ? void 0 : options.body) == null ? void 0 : _b.pipe) === \"function\") {\n if (!(\"duplex\" in context)) {\n context.duplex = \"half\";\n }\n }\n const { clearTimeout: clearTimeout2 } = getTimeout(opts, controller);\n let response = await fetch(context.url, context);\n clearTimeout2();\n const responseContext = {\n response,\n request: context\n };\n for (const onResponse of hooks.onResponse) {\n if (onResponse) {\n const r = await onResponse(__spreadProps(__spreadValues({}, responseContext), {\n response: ((_c = options == null ? void 0 : options.hookOptions) == null ? void 0 : _c.cloneResponse) ? response.clone() : response\n }));\n if (r instanceof Response) {\n response = r;\n } else if (r instanceof Object) {\n response = r.response;\n }\n }\n }\n if (response.ok) {\n const hasBody = context.method !== \"HEAD\";\n if (!hasBody) {\n return {\n data: \"\",\n error: null\n };\n }\n const responseType = detectResponseType(response);\n const successContext = {\n data: \"\",\n response,\n request: context\n };\n if (responseType === \"json\" || responseType === \"text\") {\n const text = await response.text();\n const parser2 = (_d = context.jsonParser) != null ? _d : jsonParse;\n const data = await parser2(text);\n successContext.data = data;\n } else {\n successContext.data = await response[responseType]();\n }\n if (context == null ? void 0 : context.output) {\n if (context.output && !context.disableValidation) {\n successContext.data = await parseStandardSchema(\n context.output,\n successContext.data\n );\n }\n }\n for (const onSuccess of hooks.onSuccess) {\n if (onSuccess) {\n await onSuccess(__spreadProps(__spreadValues({}, successContext), {\n response: ((_e = options == null ? void 0 : options.hookOptions) == null ? void 0 : _e.cloneResponse) ? response.clone() : response\n }));\n }\n }\n if (options == null ? void 0 : options.throw) {\n return successContext.data;\n }\n return {\n data: successContext.data,\n error: null\n };\n }\n const parser = (_f = options == null ? void 0 : options.jsonParser) != null ? _f : jsonParse;\n const responseText = await response.text();\n const isJSONResponse = isJSONParsable(responseText);\n const errorObject = isJSONResponse ? await parser(responseText) : null;\n const errorContext = {\n response,\n responseText,\n request: context,\n error: __spreadProps(__spreadValues({}, errorObject), {\n status: response.status,\n statusText: response.statusText\n })\n };\n for (const onError of hooks.onError) {\n if (onError) {\n await onError(__spreadProps(__spreadValues({}, errorContext), {\n response: ((_g = options == null ? void 0 : options.hookOptions) == null ? void 0 : _g.cloneResponse) ? response.clone() : response\n }));\n }\n }\n if (options == null ? void 0 : options.retry) {\n const retryStrategy = createRetryStrategy(options.retry);\n const _retryAttempt = (_h = options.retryAttempt) != null ? _h : 0;\n if (await retryStrategy.shouldAttemptRetry(_retryAttempt, response)) {\n for (const onRetry of hooks.onRetry) {\n if (onRetry) {\n await onRetry(responseContext);\n }\n }\n const delay = retryStrategy.getDelay(_retryAttempt);\n await new Promise((resolve) => setTimeout(resolve, delay));\n return await betterFetch(url, __spreadProps(__spreadValues({}, options), {\n retryAttempt: _retryAttempt + 1\n }));\n }\n }\n if (options == null ? void 0 : options.throw) {\n throw new BetterFetchError(\n response.status,\n response.statusText,\n isJSONResponse ? errorObject : responseText\n );\n }\n return {\n data: null,\n error: __spreadProps(__spreadValues({}, errorObject), {\n status: response.status,\n statusText: response.statusText\n })\n };\n};\nexport {\n BetterFetchError,\n ValidationError,\n applySchemaPlugin,\n betterFetch,\n bodyParser,\n createFetch,\n createRetryStrategy,\n createSchema,\n detectContentType,\n detectResponseType,\n getBody,\n getFetch,\n getHeaders,\n getMethod,\n getTimeout,\n getURL,\n initializePlugins,\n isFunction,\n isJSONParsable,\n isJSONSerializable,\n isPayloadMethod,\n isRouteMethod,\n jsonParse,\n methods,\n parseStandardSchema\n};\n//# sourceMappingURL=index.js.map","import { t as getBaseURL } from \"./url-C4fqRUH1.mjs\";\nimport { t as parseJSON } from \"./parser-kwbb5q_C.mjs\";\nimport { atom, onMount } from \"nanostores\";\nimport { createFetch } from \"@better-fetch/fetch\";\n\n//#region src/client/broadcast-channel.ts\nconst kBroadcastChannel = Symbol.for(\"better-auth:broadcast-channel\");\nconst now$1 = () => Math.floor(Date.now() / 1e3);\nvar WindowBroadcastChannel = class {\n\tlisteners = /* @__PURE__ */ new Set();\n\tname;\n\tconstructor(name = \"better-auth.message\") {\n\t\tthis.name = name;\n\t}\n\tsubscribe(listener) {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\tpost(message) {\n\t\tif (typeof window === \"undefined\") return;\n\t\ttry {\n\t\t\tlocalStorage.setItem(this.name, JSON.stringify({\n\t\t\t\t...message,\n\t\t\t\ttimestamp: now$1()\n\t\t\t}));\n\t\t} catch {}\n\t}\n\tsetup() {\n\t\tif (typeof window === \"undefined\" || typeof window.addEventListener === \"undefined\") return () => {};\n\t\tconst handler = (event) => {\n\t\t\tif (event.key !== this.name) return;\n\t\t\tconst message = JSON.parse(event.newValue ?? \"{}\");\n\t\t\tif (message?.event !== \"session\" || !message?.data) return;\n\t\t\tthis.listeners.forEach((listener) => listener(message));\n\t\t};\n\t\twindow.addEventListener(\"storage\", handler);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"storage\", handler);\n\t\t};\n\t}\n};\nfunction getGlobalBroadcastChannel(name = \"better-auth.message\") {\n\tif (!globalThis[kBroadcastChannel]) globalThis[kBroadcastChannel] = new WindowBroadcastChannel(name);\n\treturn globalThis[kBroadcastChannel];\n}\n\n//#endregion\n//#region src/client/focus-manager.ts\nconst kFocusManager = Symbol.for(\"better-auth:focus-manager\");\nvar WindowFocusManager = class {\n\tlisteners = /* @__PURE__ */ new Set();\n\tsubscribe(listener) {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\tsetFocused(focused) {\n\t\tthis.listeners.forEach((listener) => listener(focused));\n\t}\n\tsetup() {\n\t\tif (typeof window === \"undefined\" || typeof document === \"undefined\" || typeof window.addEventListener === \"undefined\") return () => {};\n\t\tconst onFocus = () => this.setFocused(true);\n\t\tconst visibilityHandler = () => {\n\t\t\tif (document.visibilityState === \"visible\") this.setFocused(true);\n\t\t};\n\t\twindow.addEventListener(\"focus\", onFocus, false);\n\t\tdocument.addEventListener(\"visibilitychange\", visibilityHandler, false);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"focus\", onFocus, false);\n\t\t\tdocument.removeEventListener(\"visibilitychange\", visibilityHandler, false);\n\t\t};\n\t}\n};\nfunction getGlobalFocusManager() {\n\tif (!globalThis[kFocusManager]) globalThis[kFocusManager] = new WindowFocusManager();\n\treturn globalThis[kFocusManager];\n}\n\n//#endregion\n//#region src/client/online-manager.ts\nconst kOnlineManager = Symbol.for(\"better-auth:online-manager\");\nvar WindowOnlineManager = class {\n\tlisteners = /* @__PURE__ */ new Set();\n\tisOnline = typeof navigator !== \"undefined\" ? navigator.onLine : true;\n\tsubscribe(listener) {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\tsetOnline(online) {\n\t\tthis.isOnline = online;\n\t\tthis.listeners.forEach((listener) => listener(online));\n\t}\n\tsetup() {\n\t\tif (typeof window === \"undefined\" || typeof window.addEventListener === \"undefined\") return () => {};\n\t\tconst onOnline = () => this.setOnline(true);\n\t\tconst onOffline = () => this.setOnline(false);\n\t\twindow.addEventListener(\"online\", onOnline, false);\n\t\twindow.addEventListener(\"offline\", onOffline, false);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"online\", onOnline, false);\n\t\t\twindow.removeEventListener(\"offline\", onOffline, false);\n\t\t};\n\t}\n};\nfunction getGlobalOnlineManager() {\n\tif (!globalThis[kOnlineManager]) globalThis[kOnlineManager] = new WindowOnlineManager();\n\treturn globalThis[kOnlineManager];\n}\n\n//#endregion\n//#region src/client/query.ts\nconst isServer = () => typeof window === \"undefined\";\nconst useAuthQuery = (initializedAtom, path, $fetch, options) => {\n\tconst value = atom({\n\t\tdata: null,\n\t\terror: null,\n\t\tisPending: true,\n\t\tisRefetching: false,\n\t\trefetch: (queryParams) => fn(queryParams)\n\t});\n\tconst fn = async (queryParams) => {\n\t\treturn new Promise((resolve) => {\n\t\t\tconst opts = typeof options === \"function\" ? options({\n\t\t\t\tdata: value.get().data,\n\t\t\t\terror: value.get().error,\n\t\t\t\tisPending: value.get().isPending\n\t\t\t}) : options;\n\t\t\t$fetch(path, {\n\t\t\t\t...opts,\n\t\t\t\tquery: {\n\t\t\t\t\t...opts?.query,\n\t\t\t\t\t...queryParams?.query\n\t\t\t\t},\n\t\t\t\tasync onSuccess(context) {\n\t\t\t\t\tvalue.set({\n\t\t\t\t\t\tdata: context.data,\n\t\t\t\t\t\terror: null,\n\t\t\t\t\t\tisPending: false,\n\t\t\t\t\t\tisRefetching: false,\n\t\t\t\t\t\trefetch: value.value.refetch\n\t\t\t\t\t});\n\t\t\t\t\tawait opts?.onSuccess?.(context);\n\t\t\t\t},\n\t\t\t\tasync onError(context) {\n\t\t\t\t\tconst { request } = context;\n\t\t\t\t\tconst retryAttempts = typeof request.retry === \"number\" ? request.retry : request.retry?.attempts;\n\t\t\t\t\tconst retryAttempt = request.retryAttempt || 0;\n\t\t\t\t\tif (retryAttempts && retryAttempt < retryAttempts) return;\n\t\t\t\t\tvalue.set({\n\t\t\t\t\t\terror: context.error,\n\t\t\t\t\t\tdata: null,\n\t\t\t\t\t\tisPending: false,\n\t\t\t\t\t\tisRefetching: false,\n\t\t\t\t\t\trefetch: value.value.refetch\n\t\t\t\t\t});\n\t\t\t\t\tawait opts?.onError?.(context);\n\t\t\t\t},\n\t\t\t\tasync onRequest(context) {\n\t\t\t\t\tconst currentValue = value.get();\n\t\t\t\t\tvalue.set({\n\t\t\t\t\t\tisPending: currentValue.data === null,\n\t\t\t\t\t\tdata: currentValue.data,\n\t\t\t\t\t\terror: null,\n\t\t\t\t\t\tisRefetching: true,\n\t\t\t\t\t\trefetch: value.value.refetch\n\t\t\t\t\t});\n\t\t\t\t\tawait opts?.onRequest?.(context);\n\t\t\t\t}\n\t\t\t}).catch((error) => {\n\t\t\t\tvalue.set({\n\t\t\t\t\terror,\n\t\t\t\t\tdata: null,\n\t\t\t\t\tisPending: false,\n\t\t\t\t\tisRefetching: false,\n\t\t\t\t\trefetch: value.value.refetch\n\t\t\t\t});\n\t\t\t}).finally(() => {\n\t\t\t\tresolve(void 0);\n\t\t\t});\n\t\t});\n\t};\n\tinitializedAtom = Array.isArray(initializedAtom) ? initializedAtom : [initializedAtom];\n\tlet isMounted = false;\n\tfor (const initAtom of initializedAtom) initAtom.subscribe(async () => {\n\t\tif (isServer()) return;\n\t\tif (isMounted) await fn();\n\t\telse onMount(value, () => {\n\t\t\tconst timeoutId = setTimeout(async () => {\n\t\t\t\tif (!isMounted) {\n\t\t\t\t\tawait fn();\n\t\t\t\t\tisMounted = true;\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t\treturn () => {\n\t\t\t\tvalue.off();\n\t\t\t\tinitAtom.off();\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t};\n\t\t});\n\t});\n\treturn value;\n};\n\n//#endregion\n//#region src/client/session-refresh.ts\nconst now = () => Math.floor(Date.now() / 1e3);\n/**\n* Rate limit: don't refetch on focus if a session request was made within this many seconds\n*/\nconst FOCUS_REFETCH_RATE_LIMIT_SECONDS = 5;\nfunction createSessionRefreshManager(opts) {\n\tconst { sessionAtom, sessionSignal, $fetch, options = {} } = opts;\n\tconst refetchInterval = options.sessionOptions?.refetchInterval ?? 0;\n\tconst refetchOnWindowFocus = options.sessionOptions?.refetchOnWindowFocus ?? true;\n\tconst refetchWhenOffline = options.sessionOptions?.refetchWhenOffline ?? false;\n\tconst state = {\n\t\tlastSync: 0,\n\t\tlastSessionRequest: 0,\n\t\tcachedSession: void 0\n\t};\n\tconst shouldRefetch = () => {\n\t\treturn refetchWhenOffline || getGlobalOnlineManager().isOnline;\n\t};\n\tconst triggerRefetch = (event) => {\n\t\tif (!shouldRefetch()) return;\n\t\tif (event?.event === \"storage\") {\n\t\t\tstate.lastSync = now();\n\t\t\tsessionSignal.set(!sessionSignal.get());\n\t\t\treturn;\n\t\t}\n\t\tconst currentSession = sessionAtom.get();\n\t\tif (event?.event === \"poll\") {\n\t\t\tstate.lastSessionRequest = now();\n\t\t\t$fetch(\"/get-session\").then((res) => {\n\t\t\t\tsessionAtom.set({\n\t\t\t\t\t...currentSession,\n\t\t\t\t\tdata: res.data,\n\t\t\t\t\terror: res.error || null\n\t\t\t\t});\n\t\t\t\tstate.lastSync = now();\n\t\t\t\tsessionSignal.set(!sessionSignal.get());\n\t\t\t}).catch(() => {});\n\t\t\treturn;\n\t\t}\n\t\tif (event?.event === \"visibilitychange\") {\n\t\t\tif (now() - state.lastSessionRequest < FOCUS_REFETCH_RATE_LIMIT_SECONDS && currentSession?.data !== null && currentSession?.data !== void 0) return;\n\t\t}\n\t\tif (currentSession?.data === null || currentSession?.data === void 0 || event?.event === \"visibilitychange\") {\n\t\t\tif (event?.event === \"visibilitychange\") state.lastSessionRequest = now();\n\t\t\tstate.lastSync = now();\n\t\t\tsessionSignal.set(!sessionSignal.get());\n\t\t}\n\t};\n\tconst broadcastSessionUpdate = (trigger) => {\n\t\tgetGlobalBroadcastChannel().post({\n\t\t\tevent: \"session\",\n\t\t\tdata: { trigger },\n\t\t\tclientId: Math.random().toString(36).substring(7)\n\t\t});\n\t};\n\tconst setupPolling = () => {\n\t\tif (refetchInterval && refetchInterval > 0) state.pollInterval = setInterval(() => {\n\t\t\tif (sessionAtom.get()?.data) triggerRefetch({ event: \"poll\" });\n\t\t}, refetchInterval * 1e3);\n\t};\n\tconst setupBroadcast = () => {\n\t\tstate.unsubscribeBroadcast = getGlobalBroadcastChannel().subscribe(() => {\n\t\t\ttriggerRefetch({ event: \"storage\" });\n\t\t});\n\t};\n\tconst setupFocusRefetch = () => {\n\t\tif (!refetchOnWindowFocus) return;\n\t\tstate.unsubscribeFocus = getGlobalFocusManager().subscribe(() => {\n\t\t\ttriggerRefetch({ event: \"visibilitychange\" });\n\t\t});\n\t};\n\tconst setupOnlineRefetch = () => {\n\t\tstate.unsubscribeOnline = getGlobalOnlineManager().subscribe((online) => {\n\t\t\tif (online) triggerRefetch({ event: \"visibilitychange\" });\n\t\t});\n\t};\n\tconst init = () => {\n\t\tsetupPolling();\n\t\tsetupBroadcast();\n\t\tsetupFocusRefetch();\n\t\tsetupOnlineRefetch();\n\t\tgetGlobalBroadcastChannel().setup();\n\t\tgetGlobalFocusManager().setup();\n\t\tgetGlobalOnlineManager().setup();\n\t};\n\tconst cleanup = () => {\n\t\tif (state.pollInterval) {\n\t\t\tclearInterval(state.pollInterval);\n\t\t\tstate.pollInterval = void 0;\n\t\t}\n\t\tif (state.unsubscribeBroadcast) {\n\t\t\tstate.unsubscribeBroadcast();\n\t\t\tstate.unsubscribeBroadcast = void 0;\n\t\t}\n\t\tif (state.unsubscribeFocus) {\n\t\t\tstate.unsubscribeFocus();\n\t\t\tstate.unsubscribeFocus = void 0;\n\t\t}\n\t\tif (state.unsubscribeOnline) {\n\t\t\tstate.unsubscribeOnline();\n\t\t\tstate.unsubscribeOnline = void 0;\n\t\t}\n\t\tstate.lastSync = 0;\n\t\tstate.lastSessionRequest = 0;\n\t\tstate.cachedSession = void 0;\n\t};\n\treturn {\n\t\tinit,\n\t\tcleanup,\n\t\ttriggerRefetch,\n\t\tbroadcastSessionUpdate\n\t};\n}\n\n//#endregion\n//#region src/client/fetch-plugins.ts\nconst redirectPlugin = {\n\tid: \"redirect\",\n\tname: \"Redirect\",\n\thooks: { onSuccess(context) {\n\t\tif (context.data?.url && context.data?.redirect) {\n\t\t\tif (typeof window !== \"undefined\" && window.location) {\n\t\t\t\tif (window.location) try {\n\t\t\t\t\twindow.location.href = context.data.url;\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t}\n\t} }\n};\nconst userAgentPlugin = {\n\tid: \"user-agent\",\n\tname: \"UserAgent\",\n\thooks: { onRequest(context) {\n\t\tcontext.headers.append(\"user-agent\", \"better-auth\");\n\t} }\n};\n\n//#endregion\n//#region src/client/session-atom.ts\nfunction getSessionAtom($fetch, options) {\n\tconst $signal = atom(false);\n\tconst session = useAuthQuery($signal, \"/get-session\", $fetch, { method: \"GET\" });\n\tonMount(session, () => {\n\t\tconst refreshManager = createSessionRefreshManager({\n\t\t\tsessionAtom: session,\n\t\t\tsessionSignal: $signal,\n\t\t\t$fetch,\n\t\t\toptions\n\t\t});\n\t\trefreshManager.init();\n\t\treturn () => {\n\t\t\trefreshManager.cleanup();\n\t\t};\n\t});\n\treturn {\n\t\tsession,\n\t\t$sessionSignal: $signal\n\t};\n}\n\n//#endregion\n//#region src/client/config.ts\nconst getClientConfig = (options, loadEnv) => {\n\tconst isCredentialsSupported = \"credentials\" in Request.prototype;\n\tconst baseURL = getBaseURL(options?.baseURL, options?.basePath, void 0, loadEnv) ?? \"/api/auth\";\n\tconst pluginsFetchPlugins = options?.plugins?.flatMap((plugin) => plugin.fetchPlugins).filter((pl) => pl !== void 0) || [];\n\tconst lifeCyclePlugin = {\n\t\tid: \"lifecycle-hooks\",\n\t\tname: \"lifecycle-hooks\",\n\t\thooks: {\n\t\t\tonSuccess: options?.fetchOptions?.onSuccess,\n\t\t\tonError: options?.fetchOptions?.onError,\n\t\t\tonRequest: options?.fetchOptions?.onRequest,\n\t\t\tonResponse: options?.fetchOptions?.onResponse\n\t\t}\n\t};\n\tconst { onSuccess, onError, onRequest, onResponse, ...restOfFetchOptions } = options?.fetchOptions || {};\n\tconst $fetch = createFetch({\n\t\tbaseURL,\n\t\t...isCredentialsSupported ? { credentials: \"include\" } : {},\n\t\tmethod: \"GET\",\n\t\tjsonParser(text) {\n\t\t\tif (!text) return null;\n\t\t\treturn parseJSON(text, { strict: false });\n\t\t},\n\t\tcustomFetchImpl: fetch,\n\t\t...restOfFetchOptions,\n\t\tplugins: [\n\t\t\tlifeCyclePlugin,\n\t\t\t...restOfFetchOptions.plugins || [],\n\t\t\t...options?.disableDefaultFetchPlugins ? [] : [userAgentPlugin, redirectPlugin],\n\t\t\t...pluginsFetchPlugins\n\t\t]\n\t});\n\tconst { $sessionSignal, session } = getSessionAtom($fetch, options);\n\tconst plugins = options?.plugins || [];\n\tlet pluginsActions = {};\n\tlet pluginsAtoms = {\n\t\t$sessionSignal,\n\t\tsession\n\t};\n\tlet pluginPathMethods = {\n\t\t\"/sign-out\": \"POST\",\n\t\t\"/revoke-sessions\": \"POST\",\n\t\t\"/revoke-other-sessions\": \"POST\",\n\t\t\"/delete-user\": \"POST\"\n\t};\n\tconst atomListeners = [{\n\t\tsignal: \"$sessionSignal\",\n\t\tmatcher(path) {\n\t\t\treturn path === \"/sign-out\" || path === \"/update-user\" || path === \"/sign-up/email\" || path === \"/sign-in/email\" || path === \"/delete-user\" || path === \"/verify-email\" || path === \"/revoke-sessions\" || path === \"/revoke-session\" || path === \"/change-email\";\n\t\t}\n\t}];\n\tfor (const plugin of plugins) {\n\t\tif (plugin.getAtoms) Object.assign(pluginsAtoms, plugin.getAtoms?.($fetch));\n\t\tif (plugin.pathMethods) Object.assign(pluginPathMethods, plugin.pathMethods);\n\t\tif (plugin.atomListeners) atomListeners.push(...plugin.atomListeners);\n\t}\n\tconst $store = {\n\t\tnotify: (signal) => {\n\t\t\tpluginsAtoms[signal].set(!pluginsAtoms[signal].get());\n\t\t},\n\t\tlisten: (signal, listener) => {\n\t\t\tpluginsAtoms[signal].subscribe(listener);\n\t\t},\n\t\tatoms: pluginsAtoms\n\t};\n\tfor (const plugin of plugins) if (plugin.getActions) Object.assign(pluginsActions, plugin.getActions?.($fetch, $store, options));\n\treturn {\n\t\tget baseURL() {\n\t\t\treturn baseURL;\n\t\t},\n\t\tpluginsActions,\n\t\tpluginsAtoms,\n\t\tpluginPathMethods,\n\t\tatomListeners,\n\t\t$fetch,\n\t\t$store\n\t};\n};\n\n//#endregion\n//#region src/utils/is-atom.ts\nfunction isAtom(value) {\n\treturn typeof value === \"object\" && value !== null && \"get\" in value && typeof value.get === \"function\" && \"lc\" in value && typeof value.lc === \"number\";\n}\n\n//#endregion\n//#region src/client/proxy.ts\nfunction getMethod(path, knownPathMethods, args) {\n\tconst method = knownPathMethods[path];\n\tconst { fetchOptions, query, ...body } = args || {};\n\tif (method) return method;\n\tif (fetchOptions?.method) return fetchOptions.method;\n\tif (body && Object.keys(body).length > 0) return \"POST\";\n\treturn \"GET\";\n}\nfunction createDynamicPathProxy(routes, client, knownPathMethods, atoms, atomListeners) {\n\tfunction createProxy(path = []) {\n\t\treturn new Proxy(function() {}, {\n\t\t\tget(_, prop) {\n\t\t\t\tif (typeof prop !== \"string\") return;\n\t\t\t\tif (prop === \"then\" || prop === \"catch\" || prop === \"finally\") return;\n\t\t\t\tconst fullPath = [...path, prop];\n\t\t\t\tlet current = routes;\n\t\t\t\tfor (const segment of fullPath) if (current && typeof current === \"object\" && segment in current) current = current[segment];\n\t\t\t\telse {\n\t\t\t\t\tcurrent = void 0;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (typeof current === \"function\") return current;\n\t\t\t\tif (isAtom(current)) return current;\n\t\t\t\treturn createProxy(fullPath);\n\t\t\t},\n\t\t\tapply: async (_, __, args) => {\n\t\t\t\tconst routePath = \"/\" + path.map((segment) => segment.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`)).join(\"/\");\n\t\t\t\tconst arg = args[0] || {};\n\t\t\t\tconst fetchOptions = args[1] || {};\n\t\t\t\tconst { query, fetchOptions: argFetchOptions, ...body } = arg;\n\t\t\t\tconst options = {\n\t\t\t\t\t...fetchOptions,\n\t\t\t\t\t...argFetchOptions\n\t\t\t\t};\n\t\t\t\tconst method = getMethod(routePath, knownPathMethods, arg);\n\t\t\t\treturn await client(routePath, {\n\t\t\t\t\t...options,\n\t\t\t\t\tbody: method === \"GET\" ? void 0 : {\n\t\t\t\t\t\t...body,\n\t\t\t\t\t\t...options?.body || {}\n\t\t\t\t\t},\n\t\t\t\t\tquery: query || options?.query,\n\t\t\t\t\tmethod,\n\t\t\t\t\tasync onSuccess(context) {\n\t\t\t\t\t\tawait options?.onSuccess?.(context);\n\t\t\t\t\t\tif (!atomListeners || options.disableSignal) return;\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t* We trigger listeners\n\t\t\t\t\t\t*/\n\t\t\t\t\t\tconst matches = atomListeners.filter((s) => s.matcher(routePath));\n\t\t\t\t\t\tif (!matches.length) return;\n\t\t\t\t\t\tfor (const match of matches) {\n\t\t\t\t\t\t\tconst signal = atoms[match.signal];\n\t\t\t\t\t\t\tif (!signal) return;\n\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t* To avoid race conditions we set the signal in a setTimeout\n\t\t\t\t\t\t\t*/\n\t\t\t\t\t\t\tconst val = signal.get();\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tsignal.set(!val);\n\t\t\t\t\t\t\t}, 10);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\treturn createProxy();\n}\n\n//#endregion\nexport { kOnlineManager as a, kBroadcastChannel as c, useAuthQuery as i, getClientConfig as n, kFocusManager as o, createSessionRefreshManager as r, getGlobalBroadcastChannel as s, createDynamicPathProxy as t };","import \"../../url-C4fqRUH1.mjs\";\nimport { n as getClientConfig, t as createDynamicPathProxy } from \"../../proxy-DZR0bcsP.mjs\";\nimport \"../../parser-kwbb5q_C.mjs\";\nimport { listenKeys } from \"nanostores\";\nimport { useCallback, useRef, useSyncExternalStore } from \"react\";\n\n//#region src/client/react/react-store.ts\n/**\n* Subscribe to store changes and get store's value.\n*\n* Can be used with store builder too.\n*\n* ```js\n* import { useStore } from 'nanostores/react'\n*\n* import { router } from '../store/router'\n*\n* export const Layout = () => {\n* let page = useStore(router)\n* if (page.route === 'home') {\n* return <HomePage />\n* } else {\n* return <Error404 />\n* }\n* }\n* ```\n*\n* @param store Store instance.\n* @returns Store value.\n*/\nfunction useStore(store, options = {}) {\n\tlet snapshotRef = useRef(store.get());\n\tconst { keys, deps = [store, keys] } = options;\n\tlet subscribe = useCallback((onChange) => {\n\t\tconst emitChange = (value) => {\n\t\t\tif (snapshotRef.current === value) return;\n\t\t\tsnapshotRef.current = value;\n\t\t\tonChange();\n\t\t};\n\t\temitChange(store.value);\n\t\tif (keys?.length) return listenKeys(store, keys, emitChange);\n\t\treturn store.listen(emitChange);\n\t}, deps);\n\tlet get = () => snapshotRef.current;\n\treturn useSyncExternalStore(subscribe, get, get);\n}\n\n//#endregion\n//#region src/client/react/index.ts\nfunction getAtomKey(str) {\n\treturn `use${capitalizeFirstLetter(str)}`;\n}\nfunction capitalizeFirstLetter(str) {\n\treturn str.charAt(0).toUpperCase() + str.slice(1);\n}\nfunction createAuthClient(options) {\n\tconst { pluginPathMethods, pluginsActions, pluginsAtoms, $fetch, $store, atomListeners } = getClientConfig(options);\n\tlet resolvedHooks = {};\n\tfor (const [key, value] of Object.entries(pluginsAtoms)) resolvedHooks[getAtomKey(key)] = () => useStore(value);\n\treturn createDynamicPathProxy({\n\t\t...pluginsActions,\n\t\t...resolvedHooks,\n\t\t$fetch,\n\t\t$store\n\t}, $fetch, pluginPathMethods, pluginsAtoms, atomListeners);\n}\n\n//#endregion\nexport { capitalizeFirstLetter, createAuthClient, useStore };","import { createAuthClient } from \"better-auth/react\";\r\nimport { clientEnv } from \"~/env\";\r\n\r\nexport const authClient = createAuthClient({\r\n baseURL: clientEnv.VITE_API_URL,\r\n});\r\n"],"names":["dataGridCsCz","datePickersCsCz","csCZ","dataGridEnUs","datePickersEnUs","enUS","getMethod","fetch"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9]}
@@ -1,195 +0,0 @@
1
- const _envShim = /* @__PURE__ */ Object.create(null);
2
- const _getEnv = (useShim) => globalThis.process?.env || globalThis.Deno?.env.toObject() || globalThis.__env__ || (useShim ? _envShim : globalThis);
3
- const env = new Proxy(_envShim, {
4
- get(_, prop) {
5
- return _getEnv()[prop] ?? _envShim[prop];
6
- },
7
- has(_, prop) {
8
- return prop in _getEnv() || prop in _envShim;
9
- },
10
- set(_, prop, value) {
11
- const env$1 = _getEnv(true);
12
- env$1[prop] = value;
13
- return true;
14
- },
15
- deleteProperty(_, prop) {
16
- if (!prop) return false;
17
- const env$1 = _getEnv(true);
18
- delete env$1[prop];
19
- return true;
20
- },
21
- ownKeys() {
22
- const env$1 = _getEnv(true);
23
- return Object.keys(env$1);
24
- }
25
- });
26
- typeof process !== "undefined" && process.env && process.env.NODE_ENV || "";
27
- function getEnvVar(key, fallback) {
28
- if (typeof process !== "undefined" && process.env) return process.env[key] ?? fallback;
29
- if (typeof Deno !== "undefined") return Deno.env.get(key) ?? fallback;
30
- if (typeof Bun !== "undefined") return Bun.env[key] ?? fallback;
31
- return fallback;
32
- }
33
- const COLORS_2 = 1;
34
- const COLORS_16 = 4;
35
- const COLORS_256 = 8;
36
- const COLORS_16m = 24;
37
- const TERM_ENVS = {
38
- eterm: COLORS_16,
39
- cons25: COLORS_16,
40
- console: COLORS_16,
41
- cygwin: COLORS_16,
42
- dtterm: COLORS_16,
43
- gnome: COLORS_16,
44
- hurd: COLORS_16,
45
- jfbterm: COLORS_16,
46
- konsole: COLORS_16,
47
- kterm: COLORS_16,
48
- mlterm: COLORS_16,
49
- mosh: COLORS_16m,
50
- putty: COLORS_16,
51
- st: COLORS_16,
52
- "rxvt-unicode-24bit": COLORS_16m,
53
- terminator: COLORS_16m,
54
- "xterm-kitty": COLORS_16m
55
- };
56
- const CI_ENVS_MAP = new Map(Object.entries({
57
- APPVEYOR: COLORS_256,
58
- BUILDKITE: COLORS_256,
59
- CIRCLECI: COLORS_16m,
60
- DRONE: COLORS_256,
61
- GITEA_ACTIONS: COLORS_16m,
62
- GITHUB_ACTIONS: COLORS_16m,
63
- GITLAB_CI: COLORS_256,
64
- TRAVIS: COLORS_256
65
- }));
66
- const TERM_ENVS_REG_EXP = [
67
- /ansi/,
68
- /color/,
69
- /linux/,
70
- /direct/,
71
- /^con[0-9]*x[0-9]/,
72
- /^rxvt/,
73
- /^screen/,
74
- /^xterm/,
75
- /^vt100/,
76
- /^vt220/
77
- ];
78
- function getColorDepth() {
79
- if (getEnvVar("FORCE_COLOR") !== void 0) switch (getEnvVar("FORCE_COLOR")) {
80
- case "":
81
- case "1":
82
- case "true":
83
- return COLORS_16;
84
- case "2":
85
- return COLORS_256;
86
- case "3":
87
- return COLORS_16m;
88
- default:
89
- return COLORS_2;
90
- }
91
- if (getEnvVar("NODE_DISABLE_COLORS") !== void 0 && getEnvVar("NODE_DISABLE_COLORS") !== "" || getEnvVar("NO_COLOR") !== void 0 && getEnvVar("NO_COLOR") !== "" || getEnvVar("TERM") === "dumb") return COLORS_2;
92
- if (getEnvVar("TMUX")) return COLORS_16m;
93
- if ("TF_BUILD" in env && "AGENT_NAME" in env) return COLORS_16;
94
- if ("CI" in env) {
95
- for (const { 0: envName, 1: colors } of CI_ENVS_MAP) if (envName in env) return colors;
96
- if (getEnvVar("CI_NAME") === "codeship") return COLORS_256;
97
- return COLORS_2;
98
- }
99
- if ("TEAMCITY_VERSION" in env) return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.exec(getEnvVar("TEAMCITY_VERSION")) !== null ? COLORS_16 : COLORS_2;
100
- switch (getEnvVar("TERM_PROGRAM")) {
101
- case "iTerm.app":
102
- if (!getEnvVar("TERM_PROGRAM_VERSION") || /^[0-2]\./.exec(getEnvVar("TERM_PROGRAM_VERSION")) !== null) return COLORS_256;
103
- return COLORS_16m;
104
- case "HyperTerm":
105
- case "MacTerm":
106
- return COLORS_16m;
107
- case "Apple_Terminal":
108
- return COLORS_256;
109
- }
110
- if (getEnvVar("COLORTERM") === "truecolor" || getEnvVar("COLORTERM") === "24bit") return COLORS_16m;
111
- if (getEnvVar("TERM")) {
112
- if (/truecolor/.exec(getEnvVar("TERM")) !== null) return COLORS_16m;
113
- if (/^xterm-256/.exec(getEnvVar("TERM")) !== null) return COLORS_256;
114
- const termEnv = getEnvVar("TERM").toLowerCase();
115
- if (TERM_ENVS[termEnv]) return TERM_ENVS[termEnv];
116
- if (TERM_ENVS_REG_EXP.some((term) => term.exec(termEnv) !== null)) return COLORS_16;
117
- }
118
- if (getEnvVar("COLORTERM")) return COLORS_16;
119
- return COLORS_2;
120
- }
121
- const TTY_COLORS = {
122
- reset: "\x1B[0m",
123
- bright: "\x1B[1m",
124
- dim: "\x1B[2m",
125
- fg: {
126
- red: "\x1B[31m",
127
- green: "\x1B[32m",
128
- yellow: "\x1B[33m",
129
- blue: "\x1B[34m",
130
- magenta: "\x1B[35m"
131
- },
132
- bg: {
133
- black: "\x1B[40m"
134
- }
135
- };
136
- const levels = [
137
- "info",
138
- "success",
139
- "warn",
140
- "error",
141
- "debug"
142
- ];
143
- function shouldPublishLog(currentLogLevel, logLevel) {
144
- return levels.indexOf(logLevel) <= levels.indexOf(currentLogLevel);
145
- }
146
- const levelColors = {
147
- info: TTY_COLORS.fg.blue,
148
- success: TTY_COLORS.fg.green,
149
- warn: TTY_COLORS.fg.yellow,
150
- error: TTY_COLORS.fg.red,
151
- debug: TTY_COLORS.fg.magenta
152
- };
153
- const formatMessage = (level, message, colorsEnabled) => {
154
- const timestamp = (/* @__PURE__ */ new Date()).toISOString();
155
- if (colorsEnabled) return `${TTY_COLORS.dim}${timestamp}${TTY_COLORS.reset} ${levelColors[level]}${level.toUpperCase()}${TTY_COLORS.reset} ${TTY_COLORS.bright}[Better Auth]:${TTY_COLORS.reset} ${message}`;
156
- return `${timestamp} ${level.toUpperCase()} [Better Auth]: ${message}`;
157
- };
158
- const createLogger = (options) => {
159
- const logLevel = options?.level ?? "error";
160
- const colorsEnabled = getColorDepth() !== 1;
161
- const LogFunc = (level, message, args = []) => {
162
- if (!shouldPublishLog(logLevel, level)) return;
163
- const formattedMessage = formatMessage(level, message, colorsEnabled);
164
- {
165
- if (level === "error") console.error(formattedMessage, ...args);
166
- else if (level === "warn") console.warn(formattedMessage, ...args);
167
- else console.log(formattedMessage, ...args);
168
- return;
169
- }
170
- };
171
- return {
172
- ...Object.fromEntries(levels.map((level) => [level, (...[message, ...args]) => LogFunc(level, message, args)])),
173
- get level() {
174
- return logLevel;
175
- }
176
- };
177
- };
178
- const logger = createLogger();
179
- var BetterAuthError = class extends Error {
180
- constructor(message, cause) {
181
- super(message);
182
- this.name = "BetterAuthError";
183
- this.message = message;
184
- this.cause = cause;
185
- this.stack = "";
186
- }
187
- };
188
- export {
189
- BetterAuthError as B,
190
- TTY_COLORS as T,
191
- env as e,
192
- getColorDepth as g,
193
- logger as l
194
- };
195
- //# sourceMappingURL=error-BhAKg8LX-X0sdNXNa.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-BhAKg8LX-X0sdNXNa.js","sources":["../node_modules/@better-auth/core/dist/env-DwlNAN_D.mjs","../node_modules/@better-auth/core/dist/error-BhAKg8LX.mjs"],"sourcesContent":["//#region src/env/env-impl.ts\nconst _envShim = Object.create(null);\nconst _getEnv = (useShim) => globalThis.process?.env || globalThis.Deno?.env.toObject() || globalThis.__env__ || (useShim ? _envShim : globalThis);\nconst env = new Proxy(_envShim, {\n\tget(_, prop) {\n\t\treturn _getEnv()[prop] ?? _envShim[prop];\n\t},\n\thas(_, prop) {\n\t\treturn prop in _getEnv() || prop in _envShim;\n\t},\n\tset(_, prop, value) {\n\t\tconst env$1 = _getEnv(true);\n\t\tenv$1[prop] = value;\n\t\treturn true;\n\t},\n\tdeleteProperty(_, prop) {\n\t\tif (!prop) return false;\n\t\tconst env$1 = _getEnv(true);\n\t\tdelete env$1[prop];\n\t\treturn true;\n\t},\n\townKeys() {\n\t\tconst env$1 = _getEnv(true);\n\t\treturn Object.keys(env$1);\n\t}\n});\nfunction toBoolean(val) {\n\treturn val ? val !== \"false\" : false;\n}\nconst nodeENV = typeof process !== \"undefined\" && process.env && process.env.NODE_ENV || \"\";\n/** Detect if `NODE_ENV` environment variable is `production` */\nconst isProduction = nodeENV === \"production\";\n/** Detect if `NODE_ENV` environment variable is `dev` or `development` */\nconst isDevelopment = () => nodeENV === \"dev\" || nodeENV === \"development\";\n/** Detect if `NODE_ENV` environment variable is `test` */\nconst isTest = () => nodeENV === \"test\" || toBoolean(env.TEST);\n/**\n* Get environment variable with fallback\n*/\nfunction getEnvVar(key, fallback) {\n\tif (typeof process !== \"undefined\" && process.env) return process.env[key] ?? fallback;\n\tif (typeof Deno !== \"undefined\") return Deno.env.get(key) ?? fallback;\n\tif (typeof Bun !== \"undefined\") return Bun.env[key] ?? fallback;\n\treturn fallback;\n}\n/**\n* Get boolean environment variable\n*/\nfunction getBooleanEnvVar(key, fallback = true) {\n\tconst value = getEnvVar(key);\n\tif (!value) return fallback;\n\treturn value !== \"0\" && value.toLowerCase() !== \"false\" && value !== \"\";\n}\n/**\n* Common environment variables used in Better Auth\n*/\nconst ENV = Object.freeze({\n\tget BETTER_AUTH_SECRET() {\n\t\treturn getEnvVar(\"BETTER_AUTH_SECRET\");\n\t},\n\tget AUTH_SECRET() {\n\t\treturn getEnvVar(\"AUTH_SECRET\");\n\t},\n\tget BETTER_AUTH_TELEMETRY() {\n\t\treturn getEnvVar(\"BETTER_AUTH_TELEMETRY\");\n\t},\n\tget BETTER_AUTH_TELEMETRY_ID() {\n\t\treturn getEnvVar(\"BETTER_AUTH_TELEMETRY_ID\");\n\t},\n\tget NODE_ENV() {\n\t\treturn getEnvVar(\"NODE_ENV\", \"development\");\n\t},\n\tget PACKAGE_VERSION() {\n\t\treturn getEnvVar(\"PACKAGE_VERSION\", \"0.0.0\");\n\t},\n\tget BETTER_AUTH_TELEMETRY_ENDPOINT() {\n\t\treturn getEnvVar(\"BETTER_AUTH_TELEMETRY_ENDPOINT\", \"https://telemetry.better-auth.com/v1/track\");\n\t}\n});\n\n//#endregion\n//#region src/env/color-depth.ts\nconst COLORS_2 = 1;\nconst COLORS_16 = 4;\nconst COLORS_256 = 8;\nconst COLORS_16m = 24;\nconst TERM_ENVS = {\n\teterm: COLORS_16,\n\tcons25: COLORS_16,\n\tconsole: COLORS_16,\n\tcygwin: COLORS_16,\n\tdtterm: COLORS_16,\n\tgnome: COLORS_16,\n\thurd: COLORS_16,\n\tjfbterm: COLORS_16,\n\tkonsole: COLORS_16,\n\tkterm: COLORS_16,\n\tmlterm: COLORS_16,\n\tmosh: COLORS_16m,\n\tputty: COLORS_16,\n\tst: COLORS_16,\n\t\"rxvt-unicode-24bit\": COLORS_16m,\n\tterminator: COLORS_16m,\n\t\"xterm-kitty\": COLORS_16m\n};\nconst CI_ENVS_MAP = new Map(Object.entries({\n\tAPPVEYOR: COLORS_256,\n\tBUILDKITE: COLORS_256,\n\tCIRCLECI: COLORS_16m,\n\tDRONE: COLORS_256,\n\tGITEA_ACTIONS: COLORS_16m,\n\tGITHUB_ACTIONS: COLORS_16m,\n\tGITLAB_CI: COLORS_256,\n\tTRAVIS: COLORS_256\n}));\nconst TERM_ENVS_REG_EXP = [\n\t/ansi/,\n\t/color/,\n\t/linux/,\n\t/direct/,\n\t/^con[0-9]*x[0-9]/,\n\t/^rxvt/,\n\t/^screen/,\n\t/^xterm/,\n\t/^vt100/,\n\t/^vt220/\n];\nfunction getColorDepth() {\n\tif (getEnvVar(\"FORCE_COLOR\") !== void 0) switch (getEnvVar(\"FORCE_COLOR\")) {\n\t\tcase \"\":\n\t\tcase \"1\":\n\t\tcase \"true\": return COLORS_16;\n\t\tcase \"2\": return COLORS_256;\n\t\tcase \"3\": return COLORS_16m;\n\t\tdefault: return COLORS_2;\n\t}\n\tif (getEnvVar(\"NODE_DISABLE_COLORS\") !== void 0 && getEnvVar(\"NODE_DISABLE_COLORS\") !== \"\" || getEnvVar(\"NO_COLOR\") !== void 0 && getEnvVar(\"NO_COLOR\") !== \"\" || getEnvVar(\"TERM\") === \"dumb\") return COLORS_2;\n\tif (getEnvVar(\"TMUX\")) return COLORS_16m;\n\tif (\"TF_BUILD\" in env && \"AGENT_NAME\" in env) return COLORS_16;\n\tif (\"CI\" in env) {\n\t\tfor (const { 0: envName, 1: colors } of CI_ENVS_MAP) if (envName in env) return colors;\n\t\tif (getEnvVar(\"CI_NAME\") === \"codeship\") return COLORS_256;\n\t\treturn COLORS_2;\n\t}\n\tif (\"TEAMCITY_VERSION\" in env) return /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.exec(getEnvVar(\"TEAMCITY_VERSION\")) !== null ? COLORS_16 : COLORS_2;\n\tswitch (getEnvVar(\"TERM_PROGRAM\")) {\n\t\tcase \"iTerm.app\":\n\t\t\tif (!getEnvVar(\"TERM_PROGRAM_VERSION\") || /^[0-2]\\./.exec(getEnvVar(\"TERM_PROGRAM_VERSION\")) !== null) return COLORS_256;\n\t\t\treturn COLORS_16m;\n\t\tcase \"HyperTerm\":\n\t\tcase \"MacTerm\": return COLORS_16m;\n\t\tcase \"Apple_Terminal\": return COLORS_256;\n\t}\n\tif (getEnvVar(\"COLORTERM\") === \"truecolor\" || getEnvVar(\"COLORTERM\") === \"24bit\") return COLORS_16m;\n\tif (getEnvVar(\"TERM\")) {\n\t\tif (/truecolor/.exec(getEnvVar(\"TERM\")) !== null) return COLORS_16m;\n\t\tif (/^xterm-256/.exec(getEnvVar(\"TERM\")) !== null) return COLORS_256;\n\t\tconst termEnv = getEnvVar(\"TERM\").toLowerCase();\n\t\tif (TERM_ENVS[termEnv]) return TERM_ENVS[termEnv];\n\t\tif (TERM_ENVS_REG_EXP.some((term) => term.exec(termEnv) !== null)) return COLORS_16;\n\t}\n\tif (getEnvVar(\"COLORTERM\")) return COLORS_16;\n\treturn COLORS_2;\n}\n\n//#endregion\n//#region src/env/logger.ts\nconst TTY_COLORS = {\n\treset: \"\\x1B[0m\",\n\tbright: \"\\x1B[1m\",\n\tdim: \"\\x1B[2m\",\n\tundim: \"\\x1B[22m\",\n\tunderscore: \"\\x1B[4m\",\n\tblink: \"\\x1B[5m\",\n\treverse: \"\\x1B[7m\",\n\thidden: \"\\x1B[8m\",\n\tfg: {\n\t\tblack: \"\\x1B[30m\",\n\t\tred: \"\\x1B[31m\",\n\t\tgreen: \"\\x1B[32m\",\n\t\tyellow: \"\\x1B[33m\",\n\t\tblue: \"\\x1B[34m\",\n\t\tmagenta: \"\\x1B[35m\",\n\t\tcyan: \"\\x1B[36m\",\n\t\twhite: \"\\x1B[37m\"\n\t},\n\tbg: {\n\t\tblack: \"\\x1B[40m\",\n\t\tred: \"\\x1B[41m\",\n\t\tgreen: \"\\x1B[42m\",\n\t\tyellow: \"\\x1B[43m\",\n\t\tblue: \"\\x1B[44m\",\n\t\tmagenta: \"\\x1B[45m\",\n\t\tcyan: \"\\x1B[46m\",\n\t\twhite: \"\\x1B[47m\"\n\t}\n};\nconst levels = [\n\t\"info\",\n\t\"success\",\n\t\"warn\",\n\t\"error\",\n\t\"debug\"\n];\nfunction shouldPublishLog(currentLogLevel, logLevel) {\n\treturn levels.indexOf(logLevel) <= levels.indexOf(currentLogLevel);\n}\nconst levelColors = {\n\tinfo: TTY_COLORS.fg.blue,\n\tsuccess: TTY_COLORS.fg.green,\n\twarn: TTY_COLORS.fg.yellow,\n\terror: TTY_COLORS.fg.red,\n\tdebug: TTY_COLORS.fg.magenta\n};\nconst formatMessage = (level, message, colorsEnabled) => {\n\tconst timestamp = (/* @__PURE__ */ new Date()).toISOString();\n\tif (colorsEnabled) return `${TTY_COLORS.dim}${timestamp}${TTY_COLORS.reset} ${levelColors[level]}${level.toUpperCase()}${TTY_COLORS.reset} ${TTY_COLORS.bright}[Better Auth]:${TTY_COLORS.reset} ${message}`;\n\treturn `${timestamp} ${level.toUpperCase()} [Better Auth]: ${message}`;\n};\nconst createLogger = (options) => {\n\tconst enabled = options?.disabled !== true;\n\tconst logLevel = options?.level ?? \"error\";\n\tconst colorsEnabled = options?.disableColors !== void 0 ? !options.disableColors : getColorDepth() !== 1;\n\tconst LogFunc = (level, message, args = []) => {\n\t\tif (!enabled || !shouldPublishLog(logLevel, level)) return;\n\t\tconst formattedMessage = formatMessage(level, message, colorsEnabled);\n\t\tif (!options || typeof options.log !== \"function\") {\n\t\t\tif (level === \"error\") console.error(formattedMessage, ...args);\n\t\t\telse if (level === \"warn\") console.warn(formattedMessage, ...args);\n\t\t\telse console.log(formattedMessage, ...args);\n\t\t\treturn;\n\t\t}\n\t\toptions.log(level === \"success\" ? \"info\" : level, message, ...args);\n\t};\n\treturn {\n\t\t...Object.fromEntries(levels.map((level) => [level, (...[message, ...args]) => LogFunc(level, message, args)])),\n\t\tget level() {\n\t\t\treturn logLevel;\n\t\t}\n\t};\n};\nconst logger = createLogger();\n\n//#endregion\nexport { shouldPublishLog as a, env as c, isDevelopment as d, isProduction as f, logger as i, getBooleanEnvVar as l, nodeENV as m, createLogger as n, getColorDepth as o, isTest as p, levels as r, ENV as s, TTY_COLORS as t, getEnvVar as u };","import { t as defineErrorCodes } from \"./utils-C5EN75oV.mjs\";\n\n//#region src/error/codes.ts\nconst BASE_ERROR_CODES = defineErrorCodes({\n\tUSER_NOT_FOUND: \"User not found\",\n\tFAILED_TO_CREATE_USER: \"Failed to create user\",\n\tFAILED_TO_CREATE_SESSION: \"Failed to create session\",\n\tFAILED_TO_UPDATE_USER: \"Failed to update user\",\n\tFAILED_TO_GET_SESSION: \"Failed to get session\",\n\tINVALID_PASSWORD: \"Invalid password\",\n\tINVALID_EMAIL: \"Invalid email\",\n\tINVALID_EMAIL_OR_PASSWORD: \"Invalid email or password\",\n\tSOCIAL_ACCOUNT_ALREADY_LINKED: \"Social account already linked\",\n\tPROVIDER_NOT_FOUND: \"Provider not found\",\n\tINVALID_TOKEN: \"Invalid token\",\n\tID_TOKEN_NOT_SUPPORTED: \"id_token not supported\",\n\tFAILED_TO_GET_USER_INFO: \"Failed to get user info\",\n\tUSER_EMAIL_NOT_FOUND: \"User email not found\",\n\tEMAIL_NOT_VERIFIED: \"Email not verified\",\n\tPASSWORD_TOO_SHORT: \"Password too short\",\n\tPASSWORD_TOO_LONG: \"Password too long\",\n\tUSER_ALREADY_EXISTS: \"User already exists.\",\n\tUSER_ALREADY_EXISTS_USE_ANOTHER_EMAIL: \"User already exists. Use another email.\",\n\tEMAIL_CAN_NOT_BE_UPDATED: \"Email can not be updated\",\n\tCREDENTIAL_ACCOUNT_NOT_FOUND: \"Credential account not found\",\n\tSESSION_EXPIRED: \"Session expired. Re-authenticate to perform this action.\",\n\tFAILED_TO_UNLINK_LAST_ACCOUNT: \"You can't unlink your last account\",\n\tACCOUNT_NOT_FOUND: \"Account not found\",\n\tUSER_ALREADY_HAS_PASSWORD: \"User already has a password. Provide that to delete the account.\"\n});\n\n//#endregion\n//#region src/error/index.ts\nvar BetterAuthError = class extends Error {\n\tconstructor(message, cause) {\n\t\tsuper(message);\n\t\tthis.name = \"BetterAuthError\";\n\t\tthis.message = message;\n\t\tthis.cause = cause;\n\t\tthis.stack = \"\";\n\t}\n};\n\n//#endregion\nexport { BASE_ERROR_CODES as n, BetterAuthError as t };"],"names":[],"mappings":"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","x_google_ignoreList":[0,1]}