@take-out/better-auth-utils 0.6.4 → 0.6.6

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.
@@ -107,6 +107,7 @@ function createBetterAuthClient(options) {
107
107
  }
108
108
  let dispose = null;
109
109
  let retryTimer = null;
110
+ let consecutiveFailures = 0;
110
111
  function subscribeToAuthEffect() {
111
112
  dispose?.();
112
113
  dispose = authClient.useSession.subscribe(async props => {
@@ -125,9 +126,11 @@ function createBetterAuthClient(options) {
125
126
  user: null
126
127
  });
127
128
  }
128
- scheduleAuthRetry(retryDelay);
129
+ consecutiveFailures++;
130
+ scheduleAuthRetry(Math.min(retryDelay * 2 ** (consecutiveFailures - 1), 6e4));
129
131
  return;
130
132
  }
133
+ consecutiveFailures = 0;
131
134
  const data = dataGeneric;
132
135
  const hasPersistedSession = !!keysStorage.get()?.session;
133
136
  const nextState = isPending ? "loading" : data?.session ? "logged-in" : hasPersistedSession && data === void 0 ? "loading" : "logged-out";
@@ -110,6 +110,7 @@ function createBetterAuthClient(options) {
110
110
  }
111
111
  var dispose = null;
112
112
  var retryTimer = null;
113
+ var consecutiveFailures = 0;
113
114
  function subscribeToAuthEffect() {
114
115
  dispose === null || dispose === void 0 ? void 0 : dispose();
115
116
  dispose = authClient.useSession.subscribe(async function (props) {
@@ -130,9 +131,11 @@ function createBetterAuthClient(options) {
130
131
  user: null
131
132
  });
132
133
  }
133
- scheduleAuthRetry(retryDelay);
134
+ consecutiveFailures++;
135
+ scheduleAuthRetry(Math.min(retryDelay * Math.pow(2, consecutiveFailures - 1), 6e4));
134
136
  return;
135
137
  }
138
+ consecutiveFailures = 0;
136
139
  var data = dataGeneric;
137
140
  var hasPersistedSession1 = !!((_keysStorage_get = keysStorage.get()) === null || _keysStorage_get === void 0 ? void 0 : _keysStorage_get.session);
138
141
  var nextState = isPending ? "loading" : (data === null || data === void 0 ? void 0 : data.session) ? "logged-in" : hasPersistedSession1 && data === void 0 ? "loading" : "logged-out";
@@ -1 +1 @@
1
- {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","createAuthClient_exports","createBetterAuthClient","module","exports","import_helpers","require","import_client","options","onAuthStateChange","onAuthError","createUser","storagePrefix","retryDelay","useJWT","authCookieNames","authClientOptions","empty","state","session","user","token","keysStorage","createStorageValue","stateStorage","createAuthClientWithSession","createAuthClient","fetchOptions","credentials","headers","Authorization","authClient","_keysStorage_get","existingSession","authState","createEmitter","comparator","isEqualDeepLite","authClientVersion","setState","update","current","next","set","emit","setAuthClientToken","props","updateAuthClient","Math","random","subscribeToAuthEffect","dispose","retryTimer","useSession","subscribe","_authState_value","data","dataGeneric","isPending","error","_keysStorage_get1","hasPersistedSession","scheduleAuthRetry","hasPersistedSession1","nextState","_data_session","sessionUpdate","previousSession","isNewSession","id","userId","getValidToken","then","delayMs","clearTimeout","setTimeout","_res_data","res","$fetch","console","statusText","clearAuthClientToken","remove","clearAuthCookies","document","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","done","cookieName","cookie","domain","window","location","hostname","startsWith","slice","err","return","clearAllAuth","clearState","getAuth","loggedIn","useAuth","useEmitterValue","addEventListener","cleanup","proxiedAuthClient","Proxy","_target","_authClient_signOut","signOut","_window_location_reload","_window_location","reload","Reflect"],"sources":["createAuthClient.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar createAuthClient_exports = {};\n__export(createAuthClient_exports, {\n createBetterAuthClient: () => createBetterAuthClient\n});\nmodule.exports = __toCommonJS(createAuthClient_exports);\nvar import_helpers = require(\"@take-out/helpers\");\nvar import_client = require(\"better-auth/client\");\nfunction createBetterAuthClient(options) {\n var { onAuthStateChange, onAuthError, createUser, storagePrefix = \"auth\", retryDelay = 4e3, useJWT = false, authCookieNames = [\n \"better-auth.jwt\",\n \"better-auth.session_token\"\n ], ...authClientOptions } = options;\n var empty = {\n state: \"logged-out\",\n session: null,\n user: null,\n token: null\n };\n var keysStorage = (0, import_helpers.createStorageValue)(`${storagePrefix}-keys`);\n var stateStorage = (0, import_helpers.createStorageValue)(`${storagePrefix}-state`);\n var createAuthClientWithSession = function(session) {\n return (0, import_client.createAuthClient)({\n ...authClientOptions,\n fetchOptions: {\n credentials: \"include\",\n headers: session ? {\n Authorization: `Bearer ${session}`\n } : void 0\n }\n });\n };\n var authClient = (function() {\n var _keysStorage_get;\n var existingSession = (_keysStorage_get = keysStorage.get()) === null || _keysStorage_get === void 0 ? void 0 : _keysStorage_get.session;\n return existingSession ? createAuthClientWithSession(existingSession) : (0, import_client.createAuthClient)({\n ...authClientOptions,\n fetchOptions: {\n credentials: \"include\"\n }\n });\n })();\n var authState = (0, import_helpers.createEmitter)(\"authState\", stateStorage.get() || empty, {\n comparator: import_helpers.isEqualDeepLite\n });\n var authClientVersion = (0, import_helpers.createEmitter)(\"authClientVersion\", 0);\n var setState = function(update) {\n var current = authState.value;\n var next = {\n ...current,\n ...update\n };\n stateStorage.set(next);\n authState.emit(next);\n if (next.token && next.session) {\n keysStorage.set({\n token: next.token,\n session: next.session.token\n });\n } else if (next.session) {\n keysStorage.set({\n token: \"\",\n session: next.session.token\n });\n } else {\n keysStorage.set({\n token: \"\",\n session: \"\"\n });\n }\n onAuthStateChange === null || onAuthStateChange === void 0 ? void 0 : onAuthStateChange(next);\n };\n var setAuthClientToken = async function(props) {\n keysStorage.set(props);\n updateAuthClient(props.session);\n };\n function updateAuthClient(session) {\n authClient = createAuthClientWithSession(session);\n authClientVersion.emit(Math.random());\n subscribeToAuthEffect();\n }\n var dispose = null;\n var retryTimer = null;\n function subscribeToAuthEffect() {\n dispose === null || dispose === void 0 ? void 0 : dispose();\n dispose = authClient.useSession.subscribe(async function(props) {\n var _keysStorage_get, _authState_value;\n var { data: dataGeneric, isPending, error } = props;\n if (error) {\n var _keysStorage_get1;\n onAuthError === null || onAuthError === void 0 ? void 0 : onAuthError(error);\n var hasPersistedSession = !!((_keysStorage_get1 = keysStorage.get()) === null || _keysStorage_get1 === void 0 ? void 0 : _keysStorage_get1.session);\n if (!hasPersistedSession) {\n setState({\n state: \"logged-out\",\n session: null,\n user: null\n });\n }\n scheduleAuthRetry(retryDelay);\n return;\n }\n var data = dataGeneric;\n var hasPersistedSession1 = !!((_keysStorage_get = keysStorage.get()) === null || _keysStorage_get === void 0 ? void 0 : _keysStorage_get.session);\n var nextState = isPending ? \"loading\" : (data === null || data === void 0 ? void 0 : data.session) ? \"logged-in\" : hasPersistedSession1 && data === void 0 ? \"loading\" : \"logged-out\";\n var _data_session;\n var sessionUpdate = nextState === \"loading\" ? {} : {\n session: (_data_session = data === null || data === void 0 ? void 0 : data.session) !== null && _data_session !== void 0 ? _data_session : null,\n user: (data === null || data === void 0 ? void 0 : data.user) ? createUser ? createUser(data.user) : data.user : null\n };\n var previousSession = (_authState_value = authState.value) === null || _authState_value === void 0 ? void 0 : _authState_value.session;\n var isNewSession = (data === null || data === void 0 ? void 0 : data.session) && (!previousSession || previousSession.id !== data.session.id || previousSession.userId !== data.session.userId);\n setState({\n state: nextState,\n ...sessionUpdate\n });\n if (useJWT && (data === null || data === void 0 ? void 0 : data.session) && (isNewSession || !authState.value.token)) {\n if (isNewSession && authState.value.token) {\n setState({\n token: null\n });\n }\n getValidToken().then(function(token) {\n if (token) {\n setState({\n token\n });\n }\n });\n }\n });\n }\n function scheduleAuthRetry(delayMs) {\n if (retryTimer) clearTimeout(retryTimer);\n retryTimer = setTimeout(function() {\n retryTimer = null;\n subscribeToAuthEffect();\n }, delayMs);\n }\n async function getValidToken() {\n var _res_data;\n var res = await authClient.$fetch(\"/token\");\n if (res.error) {\n console.error(`Error fetching token: ${res.error.statusText}`);\n return void 0;\n }\n return (_res_data = res.data) === null || _res_data === void 0 ? void 0 : _res_data.token;\n }\n var clearAuthClientToken = function() {\n keysStorage.remove();\n };\n function clearAuthCookies() {\n if (typeof document === \"undefined\") return;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = authCookieNames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var cookieName = _step.value;\n document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/`;\n var domain = window.location.hostname;\n document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${domain}`;\n if (domain.startsWith(\".\")) {\n document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${domain.slice(1)}`;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n function clearAllAuth() {\n clearAuthCookies();\n clearState();\n }\n var getAuth = function() {\n var state = (authState === null || authState === void 0 ? void 0 : authState.value) || empty;\n return {\n ...state,\n loggedIn: !!state.session\n };\n };\n var useAuth = function() {\n return (0, import_helpers.useEmitterValue)(authState) || empty;\n };\n function clearState() {\n keysStorage.remove();\n stateStorage.remove();\n setState(empty);\n }\n subscribeToAuthEffect();\n if (typeof window !== \"undefined\" && window.addEventListener) {\n var cleanup = function() {\n dispose === null || dispose === void 0 ? void 0 : dispose();\n if (retryTimer) clearTimeout(retryTimer);\n };\n window.addEventListener(\"beforeunload\", cleanup);\n }\n var proxiedAuthClient = new Proxy(authClient, {\n get(_target, key) {\n if (key === \"signOut\") {\n return function() {\n var _authClient_signOut;\n clearState();\n (_authClient_signOut = authClient.signOut) === null || _authClient_signOut === void 0 ? void 0 : _authClient_signOut.call(authClient);\n if (typeof window !== \"undefined\") {\n var _window_location_reload, _window_location;\n (_window_location = window.location) === null || _window_location === void 0 ? void 0 : (_window_location_reload = _window_location.reload) === null || _window_location_reload === void 0 ? void 0 : _window_location_reload.call(_window_location);\n }\n };\n }\n return Reflect.get(authClient, key);\n }\n });\n return {\n authClientVersion,\n clearState,\n authState,\n authClient: proxiedAuthClient,\n setAuthClientToken,\n clearAuthClientToken,\n clearAllAuth,\n useAuth,\n getAuth,\n getValidToken,\n updateAuthClient\n };\n}\n//# sourceMappingURL=createAuthClient.js.map\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","createAuthClient_exports","createBetterAuthClient","module","exports","import_helpers","require","import_client","options","onAuthStateChange","onAuthError","createUser","storagePrefix","retryDelay","useJWT","authCookieNames","authClientOptions","empty","state","session","user","token","keysStorage","createStorageValue","stateStorage","createAuthClientWithSession","createAuthClient","fetchOptions","credentials","headers","Authorization","authClient","_keysStorage_get","existingSession","authState","createEmitter","comparator","isEqualDeepLite","authClientVersion","setState","update","current","next","set","emit","setAuthClientToken","props","updateAuthClient","Math","random","subscribeToAuthEffect","dispose","retryTimer","consecutiveFailures","useSession","subscribe","_authState_value","data","dataGeneric","isPending","error","_keysStorage_get1","hasPersistedSession","scheduleAuthRetry","min","pow","hasPersistedSession1","nextState","_data_session","sessionUpdate","previousSession","isNewSession","id","userId","getValidToken","then","delayMs","clearTimeout","setTimeout","_res_data","res","$fetch","console","statusText","clearAuthClientToken","remove","clearAuthCookies","document","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","done","cookieName","cookie","domain","window","location","hostname","startsWith","slice","err","return","clearAllAuth","clearState","getAuth","loggedIn","useAuth","useEmitterValue","addEventListener","cleanup","proxiedAuthClient","Proxy","_target","_authClient_signOut","signOut","_window_location_reload","_window_location","reload","Reflect"],"sources":["createAuthClient.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar createAuthClient_exports = {};\n__export(createAuthClient_exports, {\n createBetterAuthClient: () => createBetterAuthClient\n});\nmodule.exports = __toCommonJS(createAuthClient_exports);\nvar import_helpers = require(\"@take-out/helpers\");\nvar import_client = require(\"better-auth/client\");\nfunction createBetterAuthClient(options) {\n var { onAuthStateChange, onAuthError, createUser, storagePrefix = \"auth\", retryDelay = 4e3, useJWT = false, authCookieNames = [\n \"better-auth.jwt\",\n \"better-auth.session_token\"\n ], ...authClientOptions } = options;\n var empty = {\n state: \"logged-out\",\n session: null,\n user: null,\n token: null\n };\n var keysStorage = (0, import_helpers.createStorageValue)(`${storagePrefix}-keys`);\n var stateStorage = (0, import_helpers.createStorageValue)(`${storagePrefix}-state`);\n var createAuthClientWithSession = function(session) {\n return (0, import_client.createAuthClient)({\n ...authClientOptions,\n fetchOptions: {\n credentials: \"include\",\n headers: session ? {\n Authorization: `Bearer ${session}`\n } : void 0\n }\n });\n };\n var authClient = (function() {\n var _keysStorage_get;\n var existingSession = (_keysStorage_get = keysStorage.get()) === null || _keysStorage_get === void 0 ? void 0 : _keysStorage_get.session;\n return existingSession ? createAuthClientWithSession(existingSession) : (0, import_client.createAuthClient)({\n ...authClientOptions,\n fetchOptions: {\n credentials: \"include\"\n }\n });\n })();\n var authState = (0, import_helpers.createEmitter)(\"authState\", stateStorage.get() || empty, {\n comparator: import_helpers.isEqualDeepLite\n });\n var authClientVersion = (0, import_helpers.createEmitter)(\"authClientVersion\", 0);\n var setState = function(update) {\n var current = authState.value;\n var next = {\n ...current,\n ...update\n };\n stateStorage.set(next);\n authState.emit(next);\n if (next.token && next.session) {\n keysStorage.set({\n token: next.token,\n session: next.session.token\n });\n } else if (next.session) {\n keysStorage.set({\n token: \"\",\n session: next.session.token\n });\n } else {\n keysStorage.set({\n token: \"\",\n session: \"\"\n });\n }\n onAuthStateChange === null || onAuthStateChange === void 0 ? void 0 : onAuthStateChange(next);\n };\n var setAuthClientToken = async function(props) {\n keysStorage.set(props);\n updateAuthClient(props.session);\n };\n function updateAuthClient(session) {\n authClient = createAuthClientWithSession(session);\n authClientVersion.emit(Math.random());\n subscribeToAuthEffect();\n }\n var dispose = null;\n var retryTimer = null;\n var consecutiveFailures = 0;\n function subscribeToAuthEffect() {\n dispose === null || dispose === void 0 ? void 0 : dispose();\n dispose = authClient.useSession.subscribe(async function(props) {\n var _keysStorage_get, _authState_value;\n var { data: dataGeneric, isPending, error } = props;\n if (error) {\n var _keysStorage_get1;\n onAuthError === null || onAuthError === void 0 ? void 0 : onAuthError(error);\n var hasPersistedSession = !!((_keysStorage_get1 = keysStorage.get()) === null || _keysStorage_get1 === void 0 ? void 0 : _keysStorage_get1.session);\n if (!hasPersistedSession) {\n setState({\n state: \"logged-out\",\n session: null,\n user: null\n });\n }\n consecutiveFailures++;\n scheduleAuthRetry(Math.min(retryDelay * Math.pow(2, consecutiveFailures - 1), 6e4));\n return;\n }\n consecutiveFailures = 0;\n var data = dataGeneric;\n var hasPersistedSession1 = !!((_keysStorage_get = keysStorage.get()) === null || _keysStorage_get === void 0 ? void 0 : _keysStorage_get.session);\n var nextState = isPending ? \"loading\" : (data === null || data === void 0 ? void 0 : data.session) ? \"logged-in\" : hasPersistedSession1 && data === void 0 ? \"loading\" : \"logged-out\";\n var _data_session;\n var sessionUpdate = nextState === \"loading\" ? {} : {\n session: (_data_session = data === null || data === void 0 ? void 0 : data.session) !== null && _data_session !== void 0 ? _data_session : null,\n user: (data === null || data === void 0 ? void 0 : data.user) ? createUser ? createUser(data.user) : data.user : null\n };\n var previousSession = (_authState_value = authState.value) === null || _authState_value === void 0 ? void 0 : _authState_value.session;\n var isNewSession = (data === null || data === void 0 ? void 0 : data.session) && (!previousSession || previousSession.id !== data.session.id || previousSession.userId !== data.session.userId);\n setState({\n state: nextState,\n ...sessionUpdate\n });\n if (useJWT && (data === null || data === void 0 ? void 0 : data.session) && (isNewSession || !authState.value.token)) {\n if (isNewSession && authState.value.token) {\n setState({\n token: null\n });\n }\n getValidToken().then(function(token) {\n if (token) {\n setState({\n token\n });\n }\n });\n }\n });\n }\n function scheduleAuthRetry(delayMs) {\n if (retryTimer) clearTimeout(retryTimer);\n retryTimer = setTimeout(function() {\n retryTimer = null;\n subscribeToAuthEffect();\n }, delayMs);\n }\n async function getValidToken() {\n var _res_data;\n var res = await authClient.$fetch(\"/token\");\n if (res.error) {\n console.error(`Error fetching token: ${res.error.statusText}`);\n return void 0;\n }\n return (_res_data = res.data) === null || _res_data === void 0 ? void 0 : _res_data.token;\n }\n var clearAuthClientToken = function() {\n keysStorage.remove();\n };\n function clearAuthCookies() {\n if (typeof document === \"undefined\") return;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = authCookieNames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var cookieName = _step.value;\n document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/`;\n var domain = window.location.hostname;\n document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${domain}`;\n if (domain.startsWith(\".\")) {\n document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${domain.slice(1)}`;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n function clearAllAuth() {\n clearAuthCookies();\n clearState();\n }\n var getAuth = function() {\n var state = (authState === null || authState === void 0 ? void 0 : authState.value) || empty;\n return {\n ...state,\n loggedIn: !!state.session\n };\n };\n var useAuth = function() {\n return (0, import_helpers.useEmitterValue)(authState) || empty;\n };\n function clearState() {\n keysStorage.remove();\n stateStorage.remove();\n setState(empty);\n }\n subscribeToAuthEffect();\n if (typeof window !== \"undefined\" && window.addEventListener) {\n var cleanup = function() {\n dispose === null || dispose === void 0 ? void 0 : dispose();\n if (retryTimer) clearTimeout(retryTimer);\n };\n window.addEventListener(\"beforeunload\", cleanup);\n }\n var proxiedAuthClient = new Proxy(authClient, {\n get(_target, key) {\n if (key === \"signOut\") {\n return function() {\n var _authClient_signOut;\n clearState();\n (_authClient_signOut = authClient.signOut) === null || _authClient_signOut === void 0 ? void 0 : _authClient_signOut.call(authClient);\n if (typeof window !== \"undefined\") {\n var _window_location_reload, _window_location;\n (_window_location = window.location) === null || _window_location === void 0 ? void 0 : (_window_location_reload = _window_location.reload) === null || _window_location_reload === void 0 ? void 0 : _window_location_reload.call(_window_location);\n }\n };\n }\n return Reflect.get(authClient, key);\n }\n });\n return {\n authClientVersion,\n clearState,\n authState,\n authClient: proxiedAuthClient,\n setAuthClientToken,\n clearAuthClientToken,\n clearAllAuth,\n useAuth,\n getAuth,\n getValidToken,\n updateAuthClient\n };\n}\n//# sourceMappingURL=createAuthClient.js.map\n"],"mappings":"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","ignoreList":[]}
@@ -80,6 +80,7 @@ function createBetterAuthClient(options) {
80
80
  }
81
81
  let dispose = null;
82
82
  let retryTimer = null;
83
+ let consecutiveFailures = 0;
83
84
  function subscribeToAuthEffect() {
84
85
  dispose?.();
85
86
  dispose = authClient.useSession.subscribe(async props => {
@@ -98,9 +99,11 @@ function createBetterAuthClient(options) {
98
99
  user: null
99
100
  });
100
101
  }
101
- scheduleAuthRetry(retryDelay);
102
+ consecutiveFailures++;
103
+ scheduleAuthRetry(Math.min(retryDelay * 2 ** (consecutiveFailures - 1), 6e4));
102
104
  return;
103
105
  }
106
+ consecutiveFailures = 0;
104
107
  const data = dataGeneric;
105
108
  const hasPersistedSession = !!keysStorage.get()?.session;
106
109
  const nextState = isPending ? "loading" : data?.session ? "logged-in" : hasPersistedSession && data === void 0 ? "loading" : "logged-out";
@@ -1 +1 @@
1
- {"version":3,"names":["createEmitter","createStorageValue","isEqualDeepLite","useEmitterValue","createAuthClient","createBetterAuthClient","options","onAuthStateChange","onAuthError","createUser","storagePrefix","retryDelay","useJWT","authCookieNames","authClientOptions","empty","state","session","user","token","keysStorage","stateStorage","createAuthClientWithSession","fetchOptions","credentials","headers","Authorization","authClient","existingSession","get","authState","comparator","authClientVersion","setState","update","current","value","next","set","emit","setAuthClientToken","props","updateAuthClient","Math","random","subscribeToAuthEffect","dispose","retryTimer","useSession","subscribe","data","dataGeneric","isPending","error","hasPersistedSession2","scheduleAuthRetry","hasPersistedSession","nextState","sessionUpdate","previousSession","isNewSession","id","userId","getValidToken","then","delayMs","clearTimeout","setTimeout","res","$fetch","console","statusText","clearAuthClientToken","remove","clearAuthCookies","document","cookieName","cookie","domain","window","location","hostname","startsWith","slice","clearAllAuth","clearState","getAuth","loggedIn","useAuth","addEventListener","cleanup","proxiedAuthClient","Proxy","_target","key","signOut","reload","Reflect"],"sources":["../../src/createAuthClient.ts"],"sourcesContent":[null],"mappings":"AAUA,SACEA,aAAA,EACAC,kBAAA,EAEAC,eAAA,EACAC,eAAA,QACK;AACP,SAAuCC,gBAAA,QAAwB;AAmFxD,SAASC,uBACdC,OAAA,EACoF;EAEpF,MAAM;IACJC,iBAAA;IACAC,WAAA;IACAC,UAAA;IACAC,aAAA,GAAgB;IAChBC,UAAA,GAAa;IACbC,MAAA,GAAS;IACTC,eAAA,GAAkB,CAAC,mBAAmB,2BAA2B;IACjE,GAAGC;EACL,IAAIR,OAAA;EAEJ,MAAMS,KAAA,GAA0B;IAC9BC,KAAA,EAAO;IACPC,OAAA,EAAS;IACTC,IAAA,EAAM;IACNC,KAAA,EAAO;EACT;EAEA,MAAMC,WAAA,GAAcnB,kBAAA,CAAgC,GAAGS,aAAa,OAAO;EAC3E,MAAMW,YAAA,GAAepB,kBAAA,CAAqC,GAAGS,aAAa,QAAQ;EAElF,MAAMY,2BAAA,GAA+BL,OAAA,IAAoB;IACvD,OAAOb,gBAAA,CAAiB;MACtB,GAAGU,iBAAA;MACHS,YAAA,EAAc;QACZC,WAAA,EAAa;QACbC,OAAA,EAASR,OAAA,GAAU;UAAES,aAAA,EAAe,UAAUT,OAAO;QAAG,IAAI;MAC9D;IACF,CAAC;EACH;EAEA,IAAIU,UAAA,IAAc,MAAM;IACtB,MAAMC,eAAA,GAAkBR,WAAA,CAAYS,GAAA,CAAI,GAAGZ,OAAA;IAC3C,OAAOW,eAAA,GACHN,2BAAA,CAA4BM,eAAe,IAC3CxB,gBAAA,CAAiB;MACf,GAAGU,iBAAA;MACHS,YAAA,EAAc;QAAEC,WAAA,EAAa;MAAU;IACzC,CAAS;EACf,GAAG;EAEH,MAAMM,SAAA,GAAY9B,aAAA,CAChB,aACAqB,YAAA,CAAaQ,GAAA,CAAI,KAAKd,KAAA,EACtB;IAAEgB,UAAA,EAAY7B;EAAgB,CAChC;EAEA,MAAM8B,iBAAA,GAAoBhC,aAAA,CAAsB,qBAAqB,CAAC;EAEtE,MAAMiC,QAAA,GAAYC,MAAA,IAAsC;IACtD,MAAMC,OAAA,GAAUL,SAAA,CAAUM,KAAA;IAC1B,MAAMC,IAAA,GAAO;MAAE,GAAGF,OAAA;MAAS,GAAGD;IAAO;IACrCb,YAAA,CAAaiB,GAAA,CAAID,IAAI;IACrBP,SAAA,CAAUS,IAAA,CAAKF,IAAI;IAGnB,IAAIA,IAAA,CAAKlB,KAAA,IAASkB,IAAA,CAAKpB,OAAA,EAAS;MAC9BG,WAAA,CAAYkB,GAAA,CAAI;QACdnB,KAAA,EAAOkB,IAAA,CAAKlB,KAAA;QACZF,OAAA,EAASoB,IAAA,CAAKpB,OAAA,CAAQE;MACxB,CAAC;IACH,WAAWkB,IAAA,CAAKpB,OAAA,EAAS;MACvBG,WAAA,CAAYkB,GAAA,CAAI;QACdnB,KAAA,EAAO;QACPF,OAAA,EAASoB,IAAA,CAAKpB,OAAA,CAAQE;MACxB,CAAC;IACH,OAAO;MACLC,WAAA,CAAYkB,GAAA,CAAI;QAAEnB,KAAA,EAAO;QAAIF,OAAA,EAAS;MAAG,CAAC;IAC5C;IAEAV,iBAAA,GAAoB8B,IAAI;EAC1B;EAEA,MAAMG,kBAAA,GAAqB,MAAOC,KAAA,IAA8C;IAC9ErB,WAAA,CAAYkB,GAAA,CAAIG,KAAK;IACrBC,gBAAA,CAAiBD,KAAA,CAAMxB,OAAO;EAChC;EAEA,SAASyB,iBAAiBzB,OAAA,EAAiB;IACzCU,UAAA,GAAaL,2BAAA,CAA4BL,OAAO;IAChDe,iBAAA,CAAkBO,IAAA,CAAKI,IAAA,CAAKC,MAAA,CAAO,CAAC;IACpCC,qBAAA,CAAsB;EACxB;EAEA,IAAIC,OAAA,GAA2B;EAC/B,IAAIC,UAAA,GAAmD;EAEvD,SAASF,sBAAA,EAAwB;IAC/BC,OAAA,GAAU;IAEVA,OAAA,GAAUnB,UAAA,CAAWqB,UAAA,CAAWC,SAAA,CAAU,MAAOR,KAAA,IAAU;MACzD,MAAM;QAAES,IAAA,EAAMC,WAAA;QAAaC,SAAA;QAAWC;MAAM,IAAIZ,KAAA;MAEhD,IAAIY,KAAA,EAAO;QACT7C,WAAA,GAAc6C,KAAK;QAEnB,MAAMC,oBAAA,GAAsB,CAAC,CAAClC,WAAA,CAAYS,GAAA,CAAI,GAAGZ,OAAA;QACjD,IAAI,CAACqC,oBAAA,EAAqB;UACxBrB,QAAA,CAAS;YAAEjB,KAAA,EAAO;YAAcC,OAAA,EAAS;YAAMC,IAAA,EAAM;UAAK,CAAC;QAC7D;QACAqC,iBAAA,CAAkB5C,UAAU;QAC5B;MACF;MAEA,MAAMuC,IAAA,GAAOC,WAAA;MAQb,MAAMK,mBAAA,GAAsB,CAAC,CAACpC,WAAA,CAAYS,GAAA,CAAI,GAAGZ,OAAA;MACjD,MAAMwC,SAAA,GAAYL,SAAA,GACd,YACAF,IAAA,EAAMjC,OAAA,GACJ,cACAuC,mBAAA,IAAuBN,IAAA,KAAS,SAC9B,YACA;MAGR,MAAMQ,aAAA,GACJD,SAAA,KAAc,YACV,CAAC,IACD;QACExC,OAAA,EAASiC,IAAA,EAAMjC,OAAA,IAAW;QAC1BC,IAAA,EAAMgC,IAAA,EAAMhC,IAAA,GAAQT,UAAA,GAAaA,UAAA,CAAWyC,IAAA,CAAKhC,IAAI,IAAIgC,IAAA,CAAKhC,IAAA,GAAQ;MACxE;MAGN,MAAMyC,eAAA,GAAkB7B,SAAA,CAAUM,KAAA,EAAOnB,OAAA;MACzC,MAAM2C,YAAA,GACJV,IAAA,EAAMjC,OAAA,KACL,CAAC0C,eAAA,IACAA,eAAA,CAAgBE,EAAA,KAAOX,IAAA,CAAKjC,OAAA,CAAQ4C,EAAA,IACpCF,eAAA,CAAgBG,MAAA,KAAWZ,IAAA,CAAKjC,OAAA,CAAQ6C,MAAA;MAE5C7B,QAAA,CAAS;QACPjB,KAAA,EAAOyC,SAAA;QACP,GAAGC;MACL,CAAC;MAGD,IAAI9C,MAAA,IAAUsC,IAAA,EAAMjC,OAAA,KAAY2C,YAAA,IAAgB,CAAC9B,SAAA,CAAUM,KAAA,CAAMjB,KAAA,GAAQ;QACvE,IAAIyC,YAAA,IAAgB9B,SAAA,CAAUM,KAAA,CAAMjB,KAAA,EAAO;UACzCc,QAAA,CAAS;YAAEd,KAAA,EAAO;UAAK,CAAC;QAC1B;QAEA4C,aAAA,CAAc,EAAEC,IAAA,CAAM7C,KAAA,IAAU;UAC9B,IAAIA,KAAA,EAAO;YACTc,QAAA,CAAS;cAAEd;YAAM,CAAC;UACpB;QACF,CAAC;MACH;IACF,CAAC;EACH;EAEA,SAASoC,kBAAkBU,OAAA,EAAiB;IAC1C,IAAIlB,UAAA,EAAYmB,YAAA,CAAanB,UAAU;IACvCA,UAAA,GAAaoB,UAAA,CAAW,MAAM;MAC5BpB,UAAA,GAAa;MACbF,qBAAA,CAAsB;IACxB,GAAGoB,OAAO;EACZ;EAEA,eAAeF,cAAA,EAA6C;IAC1D,MAAMK,GAAA,GAAM,MAAMzC,UAAA,CAAW0C,MAAA,CAAO,QAAQ;IAC5C,IAAID,GAAA,CAAIf,KAAA,EAAO;MACbiB,OAAA,CAAQjB,KAAA,CAAM,yBAAyBe,GAAA,CAAIf,KAAA,CAAMkB,UAAU,EAAE;MAC7D,OAAO;IACT;IACA,OAAQH,GAAA,CAAIlB,IAAA,EAAc/B,KAAA;EAC5B;EAEA,MAAMqD,oBAAA,GAAuBA,CAAA,KAAM;IACjCpD,WAAA,CAAYqD,MAAA,CAAO;EACrB;EAEA,SAASC,iBAAA,EAAmB;IAC1B,IAAI,OAAOC,QAAA,KAAa,aAAa;IAErC,WAAWC,UAAA,IAAc/D,eAAA,EAAiB;MACxC8D,QAAA,CAASE,MAAA,GAAS,GAAGD,UAAU;MAC/B,MAAME,MAAA,GAASC,MAAA,CAAOC,QAAA,CAASC,QAAA;MAC/BN,QAAA,CAASE,MAAA,GAAS,GAAGD,UAAU,4DAA4DE,MAAM;MACjG,IAAIA,MAAA,CAAOI,UAAA,CAAW,GAAG,GAAG;QAC1BP,QAAA,CAASE,MAAA,GAAS,GAAGD,UAAU,4DAA4DE,MAAA,CAAOK,KAAA,CAAM,CAAC,CAAC;MAC5G;IACF;EACF;EAEA,SAASC,aAAA,EAAe;IACtBV,gBAAA,CAAiB;IACjBW,UAAA,CAAW;EACb;EAEA,MAAMC,OAAA,GAAUA,CAAA,KAAM;IACpB,MAAMtE,KAAA,GAAQc,SAAA,EAAWM,KAAA,IAASrB,KAAA;IAClC,OAAO;MAAE,GAAGC,KAAA;MAAOuE,QAAA,EAAU,CAAC,CAACvE,KAAA,CAAMC;IAAQ;EAC/C;EAEA,MAAMuE,OAAA,GAAUA,CAAA,KAAM;IACpB,OAAOrF,eAAA,CAAgB2B,SAAS,KAAKf,KAAA;EACvC;EAEA,SAASsE,WAAA,EAAa;IACpBjE,WAAA,CAAYqD,MAAA,CAAO;IACnBpD,YAAA,CAAaoD,MAAA,CAAO;IACpBxC,QAAA,CAASlB,KAAK;EAChB;EAEA8B,qBAAA,CAAsB;EAEtB,IAAI,OAAOkC,MAAA,KAAW,eAAeA,MAAA,CAAOU,gBAAA,EAAkB;IAC5D,MAAMC,OAAA,GAAUA,CAAA,KAAM;MACpB5C,OAAA,GAAU;MACV,IAAIC,UAAA,EAAYmB,YAAA,CAAanB,UAAU;IACzC;IACAgC,MAAA,CAAOU,gBAAA,CAAiB,gBAAgBC,OAAO;EACjD;EAEA,MAAMC,iBAAA,GAAoB,IAAIC,KAAA,CAAMjE,UAAA,EAAY;IAC9CE,IAAIgE,OAAA,EAASC,GAAA,EAAK;MAChB,IAAIA,GAAA,KAAQ,WAAW;QACrB,OAAO,MAAM;UACXT,UAAA,CAAW;UAEX1D,UAAA,CAAWoE,OAAA,GAAU;UACrB,IAAI,OAAOhB,MAAA,KAAW,aAAa;YACjCA,MAAA,CAAOC,QAAA,EAAUgB,MAAA,GAAS;UAC5B;QACF;MACF;MACA,OAAOC,OAAA,CAAQpE,GAAA,CAAIF,UAAA,EAAYmE,GAAG;IACpC;EACF,CAAC;EAED,OAAO;IACL9D,iBAAA;IACAqD,UAAA;IACAvD,SAAA;IACAH,UAAA,EAAYgE,iBAAA;IACZnD,kBAAA;IACAgC,oBAAA;IACAY,YAAA;IACAI,OAAA;IACAF,OAAA;IACAvB,aAAA;IACArB;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["createEmitter","createStorageValue","isEqualDeepLite","useEmitterValue","createAuthClient","createBetterAuthClient","options","onAuthStateChange","onAuthError","createUser","storagePrefix","retryDelay","useJWT","authCookieNames","authClientOptions","empty","state","session","user","token","keysStorage","stateStorage","createAuthClientWithSession","fetchOptions","credentials","headers","Authorization","authClient","existingSession","get","authState","comparator","authClientVersion","setState","update","current","value","next","set","emit","setAuthClientToken","props","updateAuthClient","Math","random","subscribeToAuthEffect","dispose","retryTimer","consecutiveFailures","useSession","subscribe","data","dataGeneric","isPending","error","hasPersistedSession2","scheduleAuthRetry","min","hasPersistedSession","nextState","sessionUpdate","previousSession","isNewSession","id","userId","getValidToken","then","delayMs","clearTimeout","setTimeout","res","$fetch","console","statusText","clearAuthClientToken","remove","clearAuthCookies","document","cookieName","cookie","domain","window","location","hostname","startsWith","slice","clearAllAuth","clearState","getAuth","loggedIn","useAuth","addEventListener","cleanup","proxiedAuthClient","Proxy","_target","key","signOut","reload","Reflect"],"sources":["../../src/createAuthClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -81,6 +81,7 @@ function createBetterAuthClient(options) {
81
81
  }
82
82
  var dispose = null;
83
83
  var retryTimer = null;
84
+ var consecutiveFailures = 0;
84
85
  function subscribeToAuthEffect() {
85
86
  dispose === null || dispose === void 0 ? void 0 : dispose();
86
87
  dispose = authClient.useSession.subscribe(async function (props) {
@@ -101,9 +102,11 @@ function createBetterAuthClient(options) {
101
102
  user: null
102
103
  });
103
104
  }
104
- scheduleAuthRetry(retryDelay);
105
+ consecutiveFailures++;
106
+ scheduleAuthRetry(Math.min(retryDelay * Math.pow(2, consecutiveFailures - 1), 6e4));
105
107
  return;
106
108
  }
109
+ consecutiveFailures = 0;
107
110
  var data = dataGeneric;
108
111
  var hasPersistedSession1 = !!((_keysStorage_get = keysStorage.get()) === null || _keysStorage_get === void 0 ? void 0 : _keysStorage_get.session);
109
112
  var nextState = isPending ? "loading" : (data === null || data === void 0 ? void 0 : data.session) ? "logged-in" : hasPersistedSession1 && data === void 0 ? "loading" : "logged-out";
@@ -1 +1 @@
1
- {"version":3,"names":["createEmitter","createStorageValue","isEqualDeepLite","useEmitterValue","createAuthClient","createBetterAuthClient","options","onAuthStateChange","onAuthError","createUser","storagePrefix","retryDelay","useJWT","authCookieNames","authClientOptions","empty","state","session","user","token","keysStorage","stateStorage","createAuthClientWithSession","fetchOptions","credentials","headers","Authorization","authClient","_keysStorage_get","existingSession","get","authState","comparator","authClientVersion","setState","update","current","value","next","set","emit","setAuthClientToken","props","updateAuthClient","Math","random","subscribeToAuthEffect","dispose","retryTimer","useSession","subscribe","_authState_value","data","dataGeneric","isPending","error","_keysStorage_get1","hasPersistedSession","scheduleAuthRetry","hasPersistedSession1","nextState","_data_session","sessionUpdate","previousSession","isNewSession","id","userId","getValidToken","then","delayMs","clearTimeout","setTimeout","_res_data","res","$fetch","console","statusText","clearAuthClientToken","remove","clearAuthCookies","document","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","done","cookieName","cookie","domain","window","location","hostname","startsWith","slice","err","return","clearAllAuth","clearState","getAuth","loggedIn","useAuth","addEventListener","cleanup"],"sources":["../../src/createAuthClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createEmitter","createStorageValue","isEqualDeepLite","useEmitterValue","createAuthClient","createBetterAuthClient","options","onAuthStateChange","onAuthError","createUser","storagePrefix","retryDelay","useJWT","authCookieNames","authClientOptions","empty","state","session","user","token","keysStorage","stateStorage","createAuthClientWithSession","fetchOptions","credentials","headers","Authorization","authClient","_keysStorage_get","existingSession","get","authState","comparator","authClientVersion","setState","update","current","value","next","set","emit","setAuthClientToken","props","updateAuthClient","Math","random","subscribeToAuthEffect","dispose","retryTimer","consecutiveFailures","useSession","subscribe","_authState_value","data","dataGeneric","isPending","error","_keysStorage_get1","hasPersistedSession","scheduleAuthRetry","min","pow","hasPersistedSession1","nextState","_data_session","sessionUpdate","previousSession","isNewSession","id","userId","getValidToken","then","delayMs","clearTimeout","setTimeout","_res_data","res","$fetch","console","statusText","clearAuthClientToken","remove","clearAuthCookies","document","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","done","cookieName","cookie","domain","window","location","hostname","startsWith","slice","err","return","clearAllAuth","clearState","getAuth","loggedIn","useAuth","addEventListener","cleanup"],"sources":["../../src/createAuthClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@take-out/better-auth-utils",
3
- "version": "0.6.4",
3
+ "version": "0.6.6",
4
4
  "description": "Better auth utilities and client for React/React Native applications",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -38,7 +38,7 @@
38
38
  }
39
39
  },
40
40
  "dependencies": {
41
- "@take-out/helpers": "0.6.4",
41
+ "@take-out/helpers": "0.6.6",
42
42
  "jose": "^6.0.10"
43
43
  },
44
44
  "peerDependencies": {
@@ -188,6 +188,13 @@ export function createBetterAuthClient<const Opts extends BetterAuthClientProps<
188
188
 
189
189
  let dispose: Function | null = null
190
190
  let retryTimer: ReturnType<typeof setTimeout> | null = null
191
+ // consecutive poll failures drive exponential backoff. a fixed retry clock
192
+ // is self-defeating against a rate limiter: one 429 puts the client on a
193
+ // cadence that keeps it over the limit forever (a real device wedged this
194
+ // way — every 4s retry re-tripped the server's window and the session never
195
+ // confirmed). backoff doubles per consecutive failure up to 60s and resets
196
+ // on any successful poll.
197
+ let consecutiveFailures = 0
191
198
 
192
199
  function subscribeToAuthEffect() {
193
200
  dispose?.()
@@ -202,10 +209,15 @@ export function createBetterAuthClient<const Opts extends BetterAuthClientProps<
202
209
  if (!hasPersistedSession) {
203
210
  setState({ state: 'logged-out', session: null, user: null })
204
211
  }
205
- scheduleAuthRetry(retryDelay)
212
+ consecutiveFailures++
213
+ scheduleAuthRetry(
214
+ Math.min(retryDelay * 2 ** (consecutiveFailures - 1), 60_000),
215
+ )
206
216
  return
207
217
  }
208
218
 
219
+ consecutiveFailures = 0
220
+
209
221
  const data = dataGeneric as
210
222
  | undefined
211
223
  | {
@@ -6,6 +6,6 @@
6
6
  ],
7
7
  "version": 3,
8
8
  "sourcesContent": [
9
- "/**\n * Better-auth helpers for React / React Native applications\n *\n * Features:\n * - Session persistence in local storage\n * - State management with emitters\n * - Automatic retry on errors\n * - Optional JWT support (for Tauri, React Native)\n */\n\nimport {\n createEmitter,\n createStorageValue,\n type Emitter,\n isEqualDeepLite,\n useEmitterValue,\n} from '@take-out/helpers'\nimport { type BetterAuthClientOptions, createAuthClient } from 'better-auth/client'\n\nimport type { Session, User } from 'better-auth'\n\nexport interface StorageKeys {\n token: string\n session: string\n}\n\nexport type AuthState<U extends User = User> = {\n state: 'loading' | 'logged-in' | 'logged-out'\n session: Session | null\n user: U | null\n /** JWT token - only populated when useJWT is enabled */\n token: string | null\n}\n\nexport interface BetterAuthClientProps<\n TUser extends User = User,\n> extends BetterAuthClientOptions {\n /**\n * Callback to transform and type the user object\n * @default (user) => user\n */\n createUser?: (user: User) => TUser\n\n /**\n * Optional callback when authentication state changes\n */\n onAuthStateChange?: (state: AuthState<TUser>) => void\n\n /**\n * Optional callback for handling auth errors\n */\n onAuthError?: (error: any) => void\n\n /**\n * Storage key prefix for local storage\n * @default 'auth'\n */\n storagePrefix?: string\n\n /**\n * Retry delay in milliseconds after auth errors\n * @default 4000\n */\n retryDelay?: number\n\n /**\n * Enable JWT token management for native apps (Tauri, React Native)\n * When false (default), auth uses session cookies forwarded by the server\n * When true, fetches and manages JWT tokens for Authorization header auth\n * @default false\n */\n useJWT?: boolean\n\n /**\n * Cookie names to clear on auth invalidation\n * @default ['better-auth.jwt', 'better-auth.session_token']\n */\n authCookieNames?: string[]\n}\n\nexport interface BetterAuthClientReturn<U extends User = User, TClient = any> {\n clearState: () => void\n authState: ReturnType<typeof createEmitter<AuthState<U>>>\n authClient: TClient\n setAuthClientToken: (props: { token: string; session: string }) => Promise<void>\n clearAuthClientToken: () => void\n clearAllAuth: () => void\n useAuth: () => AuthState<U>\n getAuth: () => AuthState<U> & { loggedIn: boolean }\n getValidToken: () => Promise<string | undefined>\n updateAuthClient: (session: string) => void\n authClientVersion: Emitter<number>\n}\n\ntype InferUser<T> = T extends { createUser?: (user: User) => infer R }\n ? R extends User\n ? R\n : User\n : User\n\nexport function createBetterAuthClient<const Opts extends BetterAuthClientProps<any>>(\n options: Opts,\n): BetterAuthClientReturn<InferUser<Opts>, ReturnType<typeof createAuthClient<Opts>>> {\n type TUser = InferUser<Opts>\n const {\n onAuthStateChange,\n onAuthError,\n createUser,\n storagePrefix = 'auth',\n retryDelay = 4000,\n useJWT = false,\n authCookieNames = ['better-auth.jwt', 'better-auth.session_token'],\n ...authClientOptions\n } = options\n\n const empty: AuthState<TUser> = {\n state: 'logged-out',\n session: null,\n user: null,\n token: null,\n }\n\n const keysStorage = createStorageValue<StorageKeys>(`${storagePrefix}-keys`)\n const stateStorage = createStorageValue<AuthState<TUser>>(`${storagePrefix}-state`)\n\n const createAuthClientWithSession = (session: string) => {\n return createAuthClient({\n ...authClientOptions,\n fetchOptions: {\n credentials: 'include',\n headers: session ? { Authorization: `Bearer ${session}` } : undefined,\n },\n })\n }\n\n let authClient = (() => {\n const existingSession = keysStorage.get()?.session\n return existingSession\n ? createAuthClientWithSession(existingSession)\n : createAuthClient({\n ...authClientOptions,\n fetchOptions: { credentials: 'include' },\n } as Opts)\n })()\n\n const authState = createEmitter<AuthState<TUser>>(\n 'authState',\n stateStorage.get() || empty,\n { comparator: isEqualDeepLite },\n )\n\n const authClientVersion = createEmitter<number>('authClientVersion', 0)\n\n const setState = (update: Partial<AuthState<TUser>>) => {\n const current = authState.value!\n const next = { ...current, ...update }\n stateStorage.set(next)\n authState.emit(next)\n\n // update storage keys\n if (next.token && next.session) {\n keysStorage.set({\n token: next.token,\n session: next.session.token,\n })\n } else if (next.session) {\n keysStorage.set({\n token: '',\n session: next.session.token,\n })\n } else {\n keysStorage.set({ token: '', session: '' })\n }\n\n onAuthStateChange?.(next)\n }\n\n const setAuthClientToken = async (props: { token: string; session: string }) => {\n keysStorage.set(props)\n updateAuthClient(props.session)\n }\n\n function updateAuthClient(session: string) {\n authClient = createAuthClientWithSession(session)\n authClientVersion.emit(Math.random())\n subscribeToAuthEffect()\n }\n\n let dispose: Function | null = null\n let retryTimer: ReturnType<typeof setTimeout> | null = null\n\n function subscribeToAuthEffect() {\n dispose?.()\n\n dispose = authClient.useSession.subscribe(async (props) => {\n const { data: dataGeneric, isPending, error } = props\n\n if (error) {\n onAuthError?.(error)\n // if no persisted session, transition to logged-out instead of staying loading\n const hasPersistedSession = !!keysStorage.get()?.session\n if (!hasPersistedSession) {\n setState({ state: 'logged-out', session: null, user: null })\n }\n scheduleAuthRetry(retryDelay)\n return\n }\n\n const data = dataGeneric as\n | undefined\n | {\n session?: AuthState<TUser>['session']\n user?: AuthState<TUser>['user']\n }\n\n // if we have a persisted session but server hasn't confirmed yet, stay loading\n const hasPersistedSession = !!keysStorage.get()?.session\n const nextState = isPending\n ? 'loading'\n : data?.session\n ? 'logged-in'\n : hasPersistedSession && data === undefined\n ? 'loading'\n : 'logged-out'\n\n // only update session/user when we have definitive data\n const sessionUpdate =\n nextState === 'loading'\n ? {}\n : {\n session: data?.session ?? null,\n user: data?.user ? (createUser ? createUser(data.user) : data.user) : null,\n }\n\n // detect new session\n const previousSession = authState.value?.session\n const isNewSession =\n data?.session &&\n (!previousSession ||\n previousSession.id !== data.session.id ||\n previousSession.userId !== data.session.userId)\n\n setState({\n state: nextState,\n ...sessionUpdate,\n })\n\n // fetch JWT token when useJWT is enabled (for native/tauri apps)\n if (useJWT && data?.session && (isNewSession || !authState.value.token)) {\n if (isNewSession && authState.value.token) {\n setState({ token: null })\n }\n\n getValidToken().then((token) => {\n if (token) {\n setState({ token })\n }\n })\n }\n })\n }\n\n function scheduleAuthRetry(delayMs: number) {\n if (retryTimer) clearTimeout(retryTimer)\n retryTimer = setTimeout(() => {\n retryTimer = null\n subscribeToAuthEffect()\n }, delayMs)\n }\n\n async function getValidToken(): Promise<string | undefined> {\n const res = await authClient.$fetch('/token')\n if (res.error) {\n console.error(`Error fetching token: ${res.error.statusText}`)\n return undefined\n }\n return (res.data as any)?.token as string | undefined\n }\n\n const clearAuthClientToken = () => {\n keysStorage.remove()\n }\n\n function clearAuthCookies() {\n if (typeof document === 'undefined') return\n\n for (const cookieName of authCookieNames) {\n document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/`\n const domain = window.location.hostname\n document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${domain}`\n if (domain.startsWith('.')) {\n document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${domain.slice(1)}`\n }\n }\n }\n\n function clearAllAuth() {\n clearAuthCookies()\n clearState()\n }\n\n const getAuth = () => {\n const state = authState?.value || empty\n return { ...state, loggedIn: !!state.session }\n }\n\n const useAuth = () => {\n return useEmitterValue(authState) || empty\n }\n\n function clearState() {\n keysStorage.remove()\n stateStorage.remove()\n setState(empty)\n }\n\n subscribeToAuthEffect()\n\n if (typeof window !== 'undefined' && window.addEventListener) {\n const cleanup = () => {\n dispose?.()\n if (retryTimer) clearTimeout(retryTimer)\n }\n window.addEventListener('beforeunload', cleanup)\n }\n\n const proxiedAuthClient = new Proxy(authClient, {\n get(_target, key) {\n if (key === 'signOut') {\n return () => {\n clearState()\n // @ts-expect-error better-auth type issue\n authClient.signOut?.()\n if (typeof window !== 'undefined') {\n window.location?.reload?.()\n }\n }\n }\n return Reflect.get(authClient, key)\n },\n }) as ReturnType<typeof createAuthClient<Opts>>\n\n return {\n authClientVersion,\n clearState,\n authState,\n authClient: proxiedAuthClient,\n setAuthClientToken,\n clearAuthClientToken,\n clearAllAuth,\n useAuth,\n getAuth,\n getValidToken,\n updateAuthClient,\n }\n}\n"
9
+ "/**\n * Better-auth helpers for React / React Native applications\n *\n * Features:\n * - Session persistence in local storage\n * - State management with emitters\n * - Automatic retry on errors\n * - Optional JWT support (for Tauri, React Native)\n */\n\nimport {\n createEmitter,\n createStorageValue,\n type Emitter,\n isEqualDeepLite,\n useEmitterValue,\n} from '@take-out/helpers'\nimport { type BetterAuthClientOptions, createAuthClient } from 'better-auth/client'\n\nimport type { Session, User } from 'better-auth'\n\nexport interface StorageKeys {\n token: string\n session: string\n}\n\nexport type AuthState<U extends User = User> = {\n state: 'loading' | 'logged-in' | 'logged-out'\n session: Session | null\n user: U | null\n /** JWT token - only populated when useJWT is enabled */\n token: string | null\n}\n\nexport interface BetterAuthClientProps<\n TUser extends User = User,\n> extends BetterAuthClientOptions {\n /**\n * Callback to transform and type the user object\n * @default (user) => user\n */\n createUser?: (user: User) => TUser\n\n /**\n * Optional callback when authentication state changes\n */\n onAuthStateChange?: (state: AuthState<TUser>) => void\n\n /**\n * Optional callback for handling auth errors\n */\n onAuthError?: (error: any) => void\n\n /**\n * Storage key prefix for local storage\n * @default 'auth'\n */\n storagePrefix?: string\n\n /**\n * Retry delay in milliseconds after auth errors\n * @default 4000\n */\n retryDelay?: number\n\n /**\n * Enable JWT token management for native apps (Tauri, React Native)\n * When false (default), auth uses session cookies forwarded by the server\n * When true, fetches and manages JWT tokens for Authorization header auth\n * @default false\n */\n useJWT?: boolean\n\n /**\n * Cookie names to clear on auth invalidation\n * @default ['better-auth.jwt', 'better-auth.session_token']\n */\n authCookieNames?: string[]\n}\n\nexport interface BetterAuthClientReturn<U extends User = User, TClient = any> {\n clearState: () => void\n authState: ReturnType<typeof createEmitter<AuthState<U>>>\n authClient: TClient\n setAuthClientToken: (props: { token: string; session: string }) => Promise<void>\n clearAuthClientToken: () => void\n clearAllAuth: () => void\n useAuth: () => AuthState<U>\n getAuth: () => AuthState<U> & { loggedIn: boolean }\n getValidToken: () => Promise<string | undefined>\n updateAuthClient: (session: string) => void\n authClientVersion: Emitter<number>\n}\n\ntype InferUser<T> = T extends { createUser?: (user: User) => infer R }\n ? R extends User\n ? R\n : User\n : User\n\nexport function createBetterAuthClient<const Opts extends BetterAuthClientProps<any>>(\n options: Opts,\n): BetterAuthClientReturn<InferUser<Opts>, ReturnType<typeof createAuthClient<Opts>>> {\n type TUser = InferUser<Opts>\n const {\n onAuthStateChange,\n onAuthError,\n createUser,\n storagePrefix = 'auth',\n retryDelay = 4000,\n useJWT = false,\n authCookieNames = ['better-auth.jwt', 'better-auth.session_token'],\n ...authClientOptions\n } = options\n\n const empty: AuthState<TUser> = {\n state: 'logged-out',\n session: null,\n user: null,\n token: null,\n }\n\n const keysStorage = createStorageValue<StorageKeys>(`${storagePrefix}-keys`)\n const stateStorage = createStorageValue<AuthState<TUser>>(`${storagePrefix}-state`)\n\n const createAuthClientWithSession = (session: string) => {\n return createAuthClient({\n ...authClientOptions,\n fetchOptions: {\n credentials: 'include',\n headers: session ? { Authorization: `Bearer ${session}` } : undefined,\n },\n })\n }\n\n let authClient = (() => {\n const existingSession = keysStorage.get()?.session\n return existingSession\n ? createAuthClientWithSession(existingSession)\n : createAuthClient({\n ...authClientOptions,\n fetchOptions: { credentials: 'include' },\n } as Opts)\n })()\n\n const authState = createEmitter<AuthState<TUser>>(\n 'authState',\n stateStorage.get() || empty,\n { comparator: isEqualDeepLite },\n )\n\n const authClientVersion = createEmitter<number>('authClientVersion', 0)\n\n const setState = (update: Partial<AuthState<TUser>>) => {\n const current = authState.value!\n const next = { ...current, ...update }\n stateStorage.set(next)\n authState.emit(next)\n\n // update storage keys\n if (next.token && next.session) {\n keysStorage.set({\n token: next.token,\n session: next.session.token,\n })\n } else if (next.session) {\n keysStorage.set({\n token: '',\n session: next.session.token,\n })\n } else {\n keysStorage.set({ token: '', session: '' })\n }\n\n onAuthStateChange?.(next)\n }\n\n const setAuthClientToken = async (props: { token: string; session: string }) => {\n keysStorage.set(props)\n updateAuthClient(props.session)\n }\n\n function updateAuthClient(session: string) {\n authClient = createAuthClientWithSession(session)\n authClientVersion.emit(Math.random())\n subscribeToAuthEffect()\n }\n\n let dispose: Function | null = null\n let retryTimer: ReturnType<typeof setTimeout> | null = null\n // consecutive poll failures drive exponential backoff. a fixed retry clock\n // is self-defeating against a rate limiter: one 429 puts the client on a\n // cadence that keeps it over the limit forever (a real device wedged this\n // way — every 4s retry re-tripped the server's window and the session never\n // confirmed). backoff doubles per consecutive failure up to 60s and resets\n // on any successful poll.\n let consecutiveFailures = 0\n\n function subscribeToAuthEffect() {\n dispose?.()\n\n dispose = authClient.useSession.subscribe(async (props) => {\n const { data: dataGeneric, isPending, error } = props\n\n if (error) {\n onAuthError?.(error)\n // if no persisted session, transition to logged-out instead of staying loading\n const hasPersistedSession = !!keysStorage.get()?.session\n if (!hasPersistedSession) {\n setState({ state: 'logged-out', session: null, user: null })\n }\n consecutiveFailures++\n scheduleAuthRetry(\n Math.min(retryDelay * 2 ** (consecutiveFailures - 1), 60_000),\n )\n return\n }\n\n consecutiveFailures = 0\n\n const data = dataGeneric as\n | undefined\n | {\n session?: AuthState<TUser>['session']\n user?: AuthState<TUser>['user']\n }\n\n // if we have a persisted session but server hasn't confirmed yet, stay loading\n const hasPersistedSession = !!keysStorage.get()?.session\n const nextState = isPending\n ? 'loading'\n : data?.session\n ? 'logged-in'\n : hasPersistedSession && data === undefined\n ? 'loading'\n : 'logged-out'\n\n // only update session/user when we have definitive data\n const sessionUpdate =\n nextState === 'loading'\n ? {}\n : {\n session: data?.session ?? null,\n user: data?.user ? (createUser ? createUser(data.user) : data.user) : null,\n }\n\n // detect new session\n const previousSession = authState.value?.session\n const isNewSession =\n data?.session &&\n (!previousSession ||\n previousSession.id !== data.session.id ||\n previousSession.userId !== data.session.userId)\n\n setState({\n state: nextState,\n ...sessionUpdate,\n })\n\n // fetch JWT token when useJWT is enabled (for native/tauri apps)\n if (useJWT && data?.session && (isNewSession || !authState.value.token)) {\n if (isNewSession && authState.value.token) {\n setState({ token: null })\n }\n\n getValidToken().then((token) => {\n if (token) {\n setState({ token })\n }\n })\n }\n })\n }\n\n function scheduleAuthRetry(delayMs: number) {\n if (retryTimer) clearTimeout(retryTimer)\n retryTimer = setTimeout(() => {\n retryTimer = null\n subscribeToAuthEffect()\n }, delayMs)\n }\n\n async function getValidToken(): Promise<string | undefined> {\n const res = await authClient.$fetch('/token')\n if (res.error) {\n console.error(`Error fetching token: ${res.error.statusText}`)\n return undefined\n }\n return (res.data as any)?.token as string | undefined\n }\n\n const clearAuthClientToken = () => {\n keysStorage.remove()\n }\n\n function clearAuthCookies() {\n if (typeof document === 'undefined') return\n\n for (const cookieName of authCookieNames) {\n document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/`\n const domain = window.location.hostname\n document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${domain}`\n if (domain.startsWith('.')) {\n document.cookie = `${cookieName}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${domain.slice(1)}`\n }\n }\n }\n\n function clearAllAuth() {\n clearAuthCookies()\n clearState()\n }\n\n const getAuth = () => {\n const state = authState?.value || empty\n return { ...state, loggedIn: !!state.session }\n }\n\n const useAuth = () => {\n return useEmitterValue(authState) || empty\n }\n\n function clearState() {\n keysStorage.remove()\n stateStorage.remove()\n setState(empty)\n }\n\n subscribeToAuthEffect()\n\n if (typeof window !== 'undefined' && window.addEventListener) {\n const cleanup = () => {\n dispose?.()\n if (retryTimer) clearTimeout(retryTimer)\n }\n window.addEventListener('beforeunload', cleanup)\n }\n\n const proxiedAuthClient = new Proxy(authClient, {\n get(_target, key) {\n if (key === 'signOut') {\n return () => {\n clearState()\n // @ts-expect-error better-auth type issue\n authClient.signOut?.()\n if (typeof window !== 'undefined') {\n window.location?.reload?.()\n }\n }\n }\n return Reflect.get(authClient, key)\n },\n }) as ReturnType<typeof createAuthClient<Opts>>\n\n return {\n authClientVersion,\n clearState,\n authState,\n authClient: proxiedAuthClient,\n setAuthClientToken,\n clearAuthClientToken,\n clearAllAuth,\n useAuth,\n getAuth,\n getValidToken,\n updateAuthClient,\n }\n}\n"
10
10
  ]
11
11
  }