wcz-test 6.14.0 → 6.20.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.
Files changed (51) hide show
  1. package/dist/ApprovalStatus-C9HPyMiS.js.map +1 -1
  2. package/dist/DialogsHooks-Bi8dZoyu.js +338 -0
  3. package/dist/DialogsHooks-Bi8dZoyu.js.map +1 -0
  4. package/dist/FileHooks-hWKTwLCr.js +195 -0
  5. package/dist/FileHooks-hWKTwLCr.js.map +1 -0
  6. package/dist/FileMeta-G1oT3mYK.js.map +1 -1
  7. package/dist/{RouterListItemButton-Cx7rXEfm.js → RouterListItemButton-CHS7rofI.js} +4 -4
  8. package/dist/RouterListItemButton-CHS7rofI.js.map +1 -0
  9. package/dist/auth-client-B6cIXYDV.js +1417 -0
  10. package/dist/auth-client-B6cIXYDV.js.map +1 -0
  11. package/dist/client.d.ts +61 -49
  12. package/dist/client.js +7 -3
  13. package/dist/client.js.map +1 -1
  14. package/dist/components.js +68 -3405
  15. package/dist/components.js.map +1 -1
  16. package/dist/env-CoxTjaDr.js.map +1 -1
  17. package/dist/error-BhAKg8LX-X0sdNXNa.js +195 -0
  18. package/dist/error-BhAKg8LX-X0sdNXNa.js.map +1 -0
  19. package/dist/hooks.d.ts +6 -2
  20. package/dist/hooks.js +35 -1040
  21. package/dist/hooks.js.map +1 -1
  22. package/dist/index.js +90 -504
  23. package/dist/index.js.map +1 -1
  24. package/dist/manifest.webmanifest +18 -18
  25. package/dist/models.d.ts +10 -10
  26. package/dist/models.js +4 -4
  27. package/dist/models.js.map +1 -1
  28. package/dist/queries.d.ts +6 -6
  29. package/dist/queries.js +2 -2
  30. package/dist/queries.js.map +1 -1
  31. package/dist/server-mxQ3s5dx-CC81W42s.js +644 -0
  32. package/dist/server-mxQ3s5dx-CC81W42s.js.map +1 -0
  33. package/dist/server.d.ts +2 -0
  34. package/dist/server.js +8659 -5
  35. package/dist/server.js.map +1 -1
  36. package/dist/{utils-JYv9O0GI.js → utils-DKyKGba7.js} +2 -1
  37. package/dist/utils-DKyKGba7.js.map +1 -0
  38. package/dist/utils.d.ts +11 -0
  39. package/dist/utils.js +9 -0
  40. package/dist/utils.js.map +1 -0
  41. package/dist/vite.js +3 -0
  42. package/dist/vite.js.map +1 -1
  43. package/package.json +120 -116
  44. package/dist/DialogsHooks-BlUsVlfv.js +0 -39
  45. package/dist/DialogsHooks-BlUsVlfv.js.map +0 -1
  46. package/dist/FileHooks-41k6-RtZ.js +0 -3262
  47. package/dist/FileHooks-41k6-RtZ.js.map +0 -1
  48. package/dist/RouterListItemButton-Cx7rXEfm.js.map +0 -1
  49. package/dist/auth-client-o9U0_qmf.js +0 -79
  50. package/dist/auth-client-o9U0_qmf.js.map +0 -1
  51. package/dist/utils-JYv9O0GI.js.map +0 -1
@@ -0,0 +1 @@
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\";\nimport { grey } from \"@mui/material/colors\";\nimport { csCZ, enUS } from \"@mui/material/locale\";\nimport { csCZ as dataGridCsCz, enUS as dataGridEnUs } from \"@mui/x-data-grid/locales\";\nimport { csCZ as datePickersCsCz, enUS as datePickersEnUs } from \"@mui/x-date-pickers/locales\";\nimport { useTranslation } from \"react-i18next\";\nimport type { CssVarsThemeOptions } from \"@mui/material\";\n\nexport const WISTRON_PRIMARY_COLOR = \"#00506E\";\nexport const WISTRON_SECONDARY_COLOR = \"#64DC00\";\n\nconst LOCALE_MAP = {\n cs: [dataGridCsCz, datePickersCsCz, csCZ],\n en: [dataGridEnUs, datePickersEnUs, enUS],\n} as const;\n\nexport const useGetTheme = (theme?: Pick<CssVarsThemeOptions, \"colorSchemes\" | \"components\">) => {\n const { i18n } = useTranslation();\n\n return createTheme(\n {\n cssVariables: {\n colorSchemeSelector: \"data-mui-color-scheme\"\n },\n colorSchemes: {\n light: {\n palette: {\n primary: { main: WISTRON_PRIMARY_COLOR },\n secondary: { main: WISTRON_SECONDARY_COLOR },\n },\n },\n dark: {\n palette: {\n primary: { main: lighten(WISTRON_PRIMARY_COLOR, 0.5) },\n secondary: { main: darken(WISTRON_SECONDARY_COLOR, 0.5) },\n },\n },\n ...theme?.colorSchemes\n },\n components: {\n MuiCssBaseline: {\n styleOverrides: ({ palette }) => {\n return {\n body: {\n \"&::-webkit-scrollbar, & *::-webkit-scrollbar\": {\n width: \"0.7em\",\n height: \"0.7em\",\n },\n \"&::-webkit-scrollbar-track, & *::-webkit-scrollbar-track\": {\n backgroundColor:\n palette.mode === \"dark\" ? grey[900] : grey[200],\n borderRadius: \"5px\",\n },\n \"&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb\": {\n backgroundColor:\n palette.mode === \"dark\" ? grey[800] : grey[400],\n borderRadius: \"10px\",\n },\n \"&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover\":\n {\n backgroundColor:\n palette.mode === \"dark\" ? grey[700] : grey[500],\n },\n \"&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner\": {\n backgroundColor: \"transparent\",\n },\n },\n };\n },\n },\n ...theme?.components\n },\n },\n ...LOCALE_MAP[i18n.language as keyof typeof LOCALE_MAP]\n );\n};\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\";\nimport { clientEnv } from \"~/env\";\n\nexport const authClient = createAuthClient({\n baseURL: clientEnv.VITE_API_URL,\n});\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]}
package/dist/client.d.ts CHANGED
@@ -6,19 +6,21 @@ import { ClientFetchOption } from 'better-auth';
6
6
  import { ErrorContext } from '@better-fetch/fetch';
7
7
  import { FetchEsque } from '@better-fetch/fetch';
8
8
  import { OAuth2UserInfo } from 'better-auth';
9
- import { Prettify } from 'better-auth/react';
10
9
  import { RequestContext } from '@better-fetch/fetch';
11
10
  import { ResponseContext } from '@better-fetch/fetch';
12
11
  import { RetryOptions } from '@better-fetch/fetch';
13
12
  import { SessionQueryParams } from 'better-auth';
14
13
  import { StandardSchemaV1 } from '@better-fetch/fetch';
15
14
  import { SuccessContext } from '@better-fetch/fetch';
15
+ import { t } from 'i18next';
16
+ import { u } from 'node_modules/better-auth/dist/helper-DU33OcfW.d.mts';
17
+ import { useTranslation } from 'react-i18next';
16
18
  import { WritableAtom } from 'nanostores';
17
19
 
18
20
  export declare const authClient: {
19
21
  signIn: {
20
22
  social: <FetchOptions extends ClientFetchOption<Partial<{
21
- provider: "line" | (string & {}) | "zoom" | "github" | "apple" | "atlassian" | "cognito" | "discord" | "facebook" | "figma" | "microsoft" | "google" | "huggingface" | "slack" | "spotify" | "twitch" | "twitter" | "dropbox" | "kick" | "linear" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "salesforce" | "vk" | "notion" | "kakao" | "naver" | "paybin" | "paypal" | "polar" | "vercel";
23
+ provider: unknown;
22
24
  callbackURL?: string | undefined;
23
25
  newUserCallbackURL?: string | undefined;
24
26
  errorCallbackURL?: string | undefined;
@@ -34,8 +36,8 @@ export declare const authClient: {
34
36
  requestSignUp?: boolean | undefined;
35
37
  loginHint?: string | undefined;
36
38
  additionalData?: Record<string, any> | undefined;
37
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: Prettify< {
38
- provider: "line" | (string & {}) | "zoom" | "github" | "apple" | "atlassian" | "cognito" | "discord" | "facebook" | "figma" | "microsoft" | "google" | "huggingface" | "slack" | "spotify" | "twitch" | "twitter" | "dropbox" | "kick" | "linear" | "linkedin" | "gitlab" | "tiktok" | "reddit" | "roblox" | "salesforce" | "vk" | "notion" | "kakao" | "naver" | "paybin" | "paypal" | "polar" | "vercel";
39
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: u< {
40
+ provider: unknown;
39
41
  callbackURL?: string | undefined;
40
42
  newUserCallbackURL?: string | undefined;
41
43
  errorCallbackURL?: string | undefined;
@@ -55,27 +57,27 @@ export declare const authClient: {
55
57
  fetchOptions?: FetchOptions | undefined;
56
58
  }>, data_1?: FetchOptions | undefined) => Promise<BetterFetchResponse<NonNullable<{
57
59
  redirect: boolean;
58
- url: string;
59
- } | {
60
- redirect: boolean;
61
60
  token: string;
62
61
  url: undefined;
63
62
  user: {
64
63
  id: string;
65
- createdAt: Date;
66
- updatedAt: Date;
67
64
  email: string;
68
- emailVerified: boolean;
69
65
  name: string;
70
- image?: string | null | undefined | undefined;
66
+ image: string | null | undefined;
67
+ emailVerified: boolean;
68
+ createdAt: Date;
69
+ updatedAt: Date;
71
70
  };
71
+ } | {
72
+ url: string;
73
+ redirect: boolean;
72
74
  }>, {
73
75
  code?: string | undefined;
74
76
  message?: string | undefined;
75
77
  }, FetchOptions["throw"] extends true ? true : false>>;
76
78
  };
77
79
  } & {
78
- signOut: <FetchOptions extends ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: Prettify< {
80
+ signOut: <FetchOptions extends ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: u< {
79
81
  query?: Record<string, any> | undefined;
80
82
  fetchOptions?: FetchOptions | undefined;
81
83
  }> | undefined, data_1?: FetchOptions | undefined) => Promise<BetterFetchResponse< {
@@ -93,7 +95,7 @@ export declare const authClient: {
93
95
  image?: string | undefined;
94
96
  callbackURL?: string | undefined;
95
97
  rememberMe?: boolean | undefined;
96
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: Prettify< {
98
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: u< {
97
99
  email: string;
98
100
  name: string;
99
101
  password: string;
@@ -104,23 +106,23 @@ export declare const authClient: {
104
106
  token: null;
105
107
  user: {
106
108
  id: string;
107
- createdAt: Date;
108
- updatedAt: Date;
109
109
  email: string;
110
- emailVerified: boolean;
111
110
  name: string;
112
- image?: string | null | undefined | undefined;
111
+ image: string | null | undefined;
112
+ emailVerified: boolean;
113
+ createdAt: Date;
114
+ updatedAt: Date;
113
115
  };
114
116
  } | {
115
117
  token: string;
116
118
  user: {
117
119
  id: string;
118
- createdAt: Date;
119
- updatedAt: Date;
120
120
  email: string;
121
- emailVerified: boolean;
122
121
  name: string;
123
- image?: string | null | undefined | undefined;
122
+ image: string | null | undefined;
123
+ emailVerified: boolean;
124
+ createdAt: Date;
125
+ updatedAt: Date;
124
126
  };
125
127
  }>, {
126
128
  code?: string | undefined;
@@ -134,7 +136,7 @@ export declare const authClient: {
134
136
  password: string;
135
137
  callbackURL?: string | undefined;
136
138
  rememberMe?: boolean | undefined;
137
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: Prettify< {
139
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: u< {
138
140
  email: string;
139
141
  password: string;
140
142
  callbackURL?: string | undefined;
@@ -144,15 +146,15 @@ export declare const authClient: {
144
146
  }>, data_1?: FetchOptions | undefined) => Promise<BetterFetchResponse< {
145
147
  redirect: boolean;
146
148
  token: string;
147
- url?: string | undefined;
149
+ url: string | undefined;
148
150
  user: {
149
151
  id: string;
150
- createdAt: Date;
151
- updatedAt: Date;
152
152
  email: string;
153
- emailVerified: boolean;
154
153
  name: string;
155
- image?: string | null | undefined | undefined;
154
+ image: string | null | undefined;
155
+ emailVerified: boolean;
156
+ createdAt: Date;
157
+ updatedAt: Date;
156
158
  };
157
159
  }, {
158
160
  code?: string | undefined;
@@ -165,7 +167,7 @@ export declare const authClient: {
165
167
  token?: string | undefined;
166
168
  }> & Record<string, any>, Partial<{
167
169
  token?: string | undefined;
168
- }> & Record<string, any>, Record<string, any> | undefined>>(data_0: Prettify< {
170
+ }> & Record<string, any>, Record<string, any> | undefined>>(data_0: u< {
169
171
  newPassword: string;
170
172
  token?: string | undefined;
171
173
  } & {
@@ -180,7 +182,7 @@ export declare const authClient: {
180
182
  verifyEmail: <FetchOptions extends ClientFetchOption<never, Partial<{
181
183
  token: string;
182
184
  callbackURL?: string | undefined;
183
- }> & Record<string, any>, Record<string, any> | undefined>>(data_0: Prettify< {
185
+ }> & Record<string, any>, Record<string, any> | undefined>>(data_0: u< {
184
186
  query: {
185
187
  token: string;
186
188
  callbackURL?: string | undefined;
@@ -196,7 +198,7 @@ export declare const authClient: {
196
198
  sendVerificationEmail: <FetchOptions extends ClientFetchOption<Partial<{
197
199
  email: string;
198
200
  callbackURL?: string | undefined;
199
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: Prettify< {
201
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: u< {
200
202
  email: string;
201
203
  callbackURL?: string | undefined;
202
204
  } & {
@@ -211,7 +213,7 @@ export declare const authClient: {
211
213
  changeEmail: <FetchOptions extends ClientFetchOption<Partial<{
212
214
  newEmail: string;
213
215
  callbackURL?: string | undefined;
214
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: Prettify< {
216
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: u< {
215
217
  newEmail: string;
216
218
  callbackURL?: string | undefined;
217
219
  } & {
@@ -227,7 +229,7 @@ export declare const authClient: {
227
229
  newPassword: string;
228
230
  currentPassword: string;
229
231
  revokeOtherSessions?: boolean | undefined;
230
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: Prettify< {
232
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: u< {
231
233
  newPassword: string;
232
234
  currentPassword: string;
233
235
  revokeOtherSessions?: boolean | undefined;
@@ -252,7 +254,7 @@ export declare const authClient: {
252
254
  updateUser: <FetchOptions extends ClientFetchOption<Partial<Partial<{}> & {
253
255
  name?: string | undefined;
254
256
  image?: string | undefined;
255
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: Prettify< {
257
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: u< {
256
258
  image?: (string | null) | undefined;
257
259
  name?: string | undefined;
258
260
  fetchOptions?: FetchOptions | undefined;
@@ -267,7 +269,7 @@ export declare const authClient: {
267
269
  callbackURL?: string | undefined;
268
270
  password?: string | undefined;
269
271
  token?: string | undefined;
270
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: Prettify< {
272
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: u< {
271
273
  callbackURL?: string | undefined;
272
274
  password?: string | undefined;
273
275
  token?: string | undefined;
@@ -284,7 +286,7 @@ export declare const authClient: {
284
286
  requestPasswordReset: <FetchOptions extends ClientFetchOption<Partial<{
285
287
  email: string;
286
288
  redirectTo?: string | undefined;
287
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: Prettify< {
289
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: u< {
288
290
  email: string;
289
291
  redirectTo?: string | undefined;
290
292
  } & {
@@ -302,7 +304,7 @@ export declare const authClient: {
302
304
  callbackURL: string;
303
305
  }> & Record<string, any>, {
304
306
  token: string;
305
- }>>(data_0: Prettify< {
307
+ }>>(data_0: u< {
306
308
  query: {
307
309
  callbackURL: string;
308
310
  };
@@ -313,10 +315,10 @@ export declare const authClient: {
313
315
  }, FetchOptions["throw"] extends true ? true : false>>;
314
316
  };
315
317
  } & {
316
- listSessions: <FetchOptions extends ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: Prettify< {
318
+ listSessions: <FetchOptions extends ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: u< {
317
319
  query?: Record<string, any> | undefined;
318
320
  fetchOptions?: FetchOptions | undefined;
319
- }> | undefined, data_1?: FetchOptions | undefined) => Promise<BetterFetchResponse<Prettify< {
321
+ }> | undefined, data_1?: FetchOptions | undefined) => Promise<BetterFetchResponse<u< {
320
322
  id: string;
321
323
  createdAt: Date;
322
324
  updatedAt: Date;
@@ -332,7 +334,7 @@ export declare const authClient: {
332
334
  } & {
333
335
  revokeSession: <FetchOptions extends ClientFetchOption<Partial<{
334
336
  token: string;
335
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: Prettify< {
337
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: u< {
336
338
  token: string;
337
339
  } & {
338
340
  fetchOptions?: FetchOptions | undefined;
@@ -343,7 +345,7 @@ export declare const authClient: {
343
345
  message?: string | undefined;
344
346
  }, FetchOptions["throw"] extends true ? true : false>>;
345
347
  } & {
346
- revokeSessions: <FetchOptions extends ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: Prettify< {
348
+ revokeSessions: <FetchOptions extends ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: u< {
347
349
  query?: Record<string, any> | undefined;
348
350
  fetchOptions?: FetchOptions | undefined;
349
351
  }> | undefined, data_1?: FetchOptions | undefined) => Promise<BetterFetchResponse< {
@@ -353,7 +355,7 @@ export declare const authClient: {
353
355
  message?: string | undefined;
354
356
  }, FetchOptions["throw"] extends true ? true : false>>;
355
357
  } & {
356
- revokeOtherSessions: <FetchOptions extends ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: Prettify< {
358
+ revokeOtherSessions: <FetchOptions extends ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: u< {
357
359
  query?: Record<string, any> | undefined;
358
360
  fetchOptions?: FetchOptions | undefined;
359
361
  }> | undefined, data_1?: FetchOptions | undefined) => Promise<BetterFetchResponse< {
@@ -378,7 +380,7 @@ export declare const authClient: {
378
380
  errorCallbackURL?: string | undefined;
379
381
  disableRedirect?: boolean | undefined;
380
382
  additionalData?: Record<string, any> | undefined;
381
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: Prettify< {
383
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: u< {
382
384
  provider: unknown;
383
385
  callbackURL?: string | undefined;
384
386
  idToken?: {
@@ -403,7 +405,7 @@ export declare const authClient: {
403
405
  message?: string | undefined;
404
406
  }, FetchOptions["throw"] extends true ? true : false>>;
405
407
  } & {
406
- listAccounts: <FetchOptions extends ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: Prettify< {
408
+ listAccounts: <FetchOptions extends ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0?: u< {
407
409
  query?: Record<string, any> | undefined;
408
410
  fetchOptions?: FetchOptions | undefined;
409
411
  }> | undefined, data_1?: FetchOptions | undefined) => Promise<BetterFetchResponse< {
@@ -423,7 +425,7 @@ export declare const authClient: {
423
425
  callback: <FetchOptions extends ClientFetchOption<never, Partial<{
424
426
  token: string;
425
427
  callbackURL?: string | undefined;
426
- }> & Record<string, any>, Record<string, any> | undefined>>(data_0: Prettify< {
428
+ }> & Record<string, any>, Record<string, any> | undefined>>(data_0: u< {
427
429
  query: {
428
430
  token: string;
429
431
  callbackURL?: string | undefined;
@@ -441,7 +443,7 @@ export declare const authClient: {
441
443
  unlinkAccount: <FetchOptions extends ClientFetchOption<Partial<{
442
444
  providerId: string;
443
445
  accountId?: string | undefined;
444
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: Prettify< {
446
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: u< {
445
447
  providerId: string;
446
448
  accountId?: string | undefined;
447
449
  } & {
@@ -457,7 +459,7 @@ export declare const authClient: {
457
459
  providerId: string;
458
460
  accountId?: string | undefined;
459
461
  userId?: string | undefined;
460
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: Prettify< {
462
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: u< {
461
463
  providerId: string;
462
464
  accountId?: string | undefined;
463
465
  userId?: string | undefined;
@@ -481,7 +483,7 @@ export declare const authClient: {
481
483
  providerId: string;
482
484
  accountId?: string | undefined;
483
485
  userId?: string | undefined;
484
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: Prettify< {
486
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, any> | undefined>>(data_0: u< {
485
487
  providerId: string;
486
488
  accountId?: string | undefined;
487
489
  userId?: string | undefined;
@@ -499,7 +501,7 @@ export declare const authClient: {
499
501
  } & {
500
502
  accountInfo: <FetchOptions extends ClientFetchOption<never, Partial<{
501
503
  accountId?: string | undefined;
502
- }> & Record<string, any>, Record<string, any> | undefined>>(data_0?: Prettify< {
504
+ }> & Record<string, any>, Record<string, any> | undefined>>(data_0?: u< {
503
505
  query?: {
504
506
  accountId?: string | undefined;
505
507
  } | undefined;
@@ -515,7 +517,7 @@ export declare const authClient: {
515
517
  getSession: <FetchOptions extends ClientFetchOption<never, Partial<{
516
518
  disableCookieCache?: unknown;
517
519
  disableRefresh?: unknown;
518
- }> & Record<string, any>, Record<string, any> | undefined>>(data_0?: Prettify< {
520
+ }> & Record<string, any>, Record<string, any> | undefined>>(data_0?: u< {
519
521
  query?: {
520
522
  disableCookieCache?: unknown;
521
523
  disableRefresh?: unknown;
@@ -609,6 +611,12 @@ export declare const authClient: {
609
611
  id: string;
610
612
  name: string;
611
613
  hooks: {
614
+ onRequest<T extends Record<string, any>>(context: RequestContext<T>): void;
615
+ };
616
+ } | {
617
+ id: string;
618
+ name: string;
619
+ hooks: {
612
620
  onSuccess: ((context: SuccessContext<any>) => Promise<void> | void) | undefined;
613
621
  onError: ((context: ErrorContext) => Promise<void> | void) | undefined;
614
622
  onRequest: (<T extends Record<string, any>>(context: RequestContext<T>) => Promise<RequestContext | void> | RequestContext | void) | undefined;
@@ -706,6 +714,10 @@ export declare class Platform {
706
714
  private static get userAgent();
707
715
  }
708
716
 
717
+ export { t }
718
+
719
+ export { useTranslation }
720
+
709
721
  export declare const WISTRON_PRIMARY_COLOR = "#00506E";
710
722
 
711
723
  export declare const WISTRON_SECONDARY_COLOR = "#64DC00";
package/dist/client.js CHANGED
@@ -1,9 +1,13 @@
1
- import { W, b, a } from "./auth-client-o9U0_qmf.js";
2
- import { P } from "./utils-JYv9O0GI.js";
1
+ import { W, b, a } from "./auth-client-B6cIXYDV.js";
2
+ import { t } from "i18next";
3
+ import { useTranslation } from "react-i18next";
4
+ import { P } from "./utils-DKyKGba7.js";
3
5
  export {
4
6
  P as Platform,
5
7
  W as WISTRON_PRIMARY_COLOR,
6
8
  b as WISTRON_SECONDARY_COLOR,
7
- a as authClient
9
+ a as authClient,
10
+ t,
11
+ useTranslation
8
12
  };
9
13
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"client.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}