@take-out/better-auth-utils 0.0.50 → 0.0.52

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.
@@ -91,11 +91,16 @@ function createBetterAuthClient(options) {
91
91
  onAuthError?.(error), scheduleAuthRetry(retryDelay);
92
92
  return;
93
93
  }
94
- const data = dataGeneric;
94
+ const data = dataGeneric,
95
+ hasPersistedSession = !!keysStorage.get()?.session,
96
+ nextState = isPending ? "loading" : data?.session ? "logged-in" : hasPersistedSession && !data ? "loading" : "logged-out",
97
+ sessionUpdate = nextState === "loading" ? {} : {
98
+ session: data?.session ?? null,
99
+ user: data?.user ? createUser ? createUser(data.user) : data.user : null
100
+ };
95
101
  setState({
96
- state: isPending ? "loading" : data?.session ? "logged-in" : "logged-out",
97
- session: data?.session,
98
- user: data?.user ? createUser ? createUser(data.user) : data.user : null
102
+ state: nextState,
103
+ ...sessionUpdate
99
104
  }), data?.session && !authState.value.token && getValidToken().then(token => {
100
105
  token && setState({
101
106
  token
@@ -73,11 +73,13 @@ function createBetterAuthClient(options) {
73
73
  onAuthError?.(error), scheduleAuthRetry(retryDelay);
74
74
  return;
75
75
  }
76
- const data = dataGeneric;
77
- setState({
78
- state: isPending ? "loading" : data?.session ? "logged-in" : "logged-out",
79
- session: data?.session,
76
+ const data = dataGeneric, hasPersistedSession = !!keysStorage.get()?.session, nextState = isPending ? "loading" : data?.session ? "logged-in" : hasPersistedSession && !data ? "loading" : "logged-out", sessionUpdate = nextState === "loading" ? {} : {
77
+ session: data?.session ?? null,
80
78
  user: data?.user ? createUser ? createUser(data.user) : data.user : null
79
+ };
80
+ setState({
81
+ state: nextState,
82
+ ...sessionUpdate
81
83
  }), data?.session && !authState.value.token && getValidToken().then((token) => {
82
84
  token && setState({ token });
83
85
  });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createAuthClient.ts"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,qBAMO,8BACP,gBAA+D;AAqExD,SAAS,uBACd,SACoF;AAEpF,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,0BAA0B;AAAA,IAC1B,GAAG;AAAA,EACL,IAAI,SAEE,QAA0B;AAAA,IAC9B,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACT,GAEM,8BAA8B,CAAC,gBAC5B,gCAAiB;AAAA,IACtB,GAAG;AAAA,IACH,cAAc;AAAA,MACZ,SAAS;AAAA,QACP,eAAe,UAAU,OAAO;AAAA,MAClC;AAAA,IACF;AAAA,EACF,CAAC,GAGG,kBAAc,mCAAgC,GAAG,aAAa,OAAO,GACrE,mBAAe,mCAAqC,GAAG,aAAa,QAAQ;AAElF,MAAI,cAAc,MAAM;AACtB,UAAM,kBAAkB,YAAY,IAAI,GAAG;AAC3C,WAAO,kBACH,4BAA4B,eAAe,QAC3C,gCAAiB,iBAAyB;AAAA,EAChD,GAAG;AAEH,QAAM,gBAAY;AAAA,IAChB;AAAA,IACA,aAAa,IAAI,KAAK;AAAA,IACtB;AAAA,MACE,YAAY;AAAA,IACd;AAAA,EACF,GAEM,wBAAoB,8BAAsB,qBAAqB,CAAC,GAEhE,WAAW,CAAC,WAAsC;AAEtD,UAAM,OAAO,EAAE,GADC,UAAU,OACC,GAAG,OAAO;AACrC,iBAAa,IAAI,IAAI,GACrB,UAAU,KAAK,IAAI,GAGf,KAAK,SAAS,KAAK,UACrB,YAAY,IAAI;AAAA,MACd,OAAO,KAAK;AAAA,MACZ,SAAS,KAAK,QAAQ;AAAA,IACxB,CAAC,IAED,YAAY,IAAI;AAAA,MACd,OAAO;AAAA,MACP,SAAS;AAAA,IACX,CAAC,GAIH,oBAAoB,IAAI;AAAA,EAC1B,GAEM,qBAAqB,OAAO,UAA8C;AAC9E,gBAAY,IAAI,KAAK,GACrB,iBAAiB,MAAM,OAAO;AAAA,EAChC;AAEA,WAAS,iBAAiB,SAAiB;AACzC,iBAAa,4BAA4B,OAAO,GAChD,kBAAkB,KAAK,KAAK,OAAO,CAAC,GACpC,sBAAsB;AAAA,EACxB;AAEA,MAAI,UAA2B,MAC3B,aAAmD;AAEvD,WAAS,wBAAwB;AAC/B,cAAU,GAEV,UAAU,WAAW,WAAW,UAAU,OAAO,UAAU;AACzD,YAAM,EAAE,MAAM,aAAa,WAAW,MAAM,IAAI;AAEhD,UAAI,OAAO;AACT,sBAAc,KAAK,GAEnB,kBAAkB,UAAU;AAC5B;AAAA,MACF;AAEA,YAAM,OAAO;AAOb,eAAS;AAAA,QACP,OAAO,YAAY,YAAY,MAAM,UAAU,cAAc;AAAA,QAC7D,SAAS,MAAM;AAAA,QACf,MAAM,MAAM,OACR,aACE,WAAW,KAAK,IAAY,IAC3B,KAAK,OACR;AAAA,MACN,CAAC,GAGG,MAAM,WAAW,CAAC,UAAU,MAAM,SACpC,cAAc,EAAE,KAAK,CAAC,UAAU;AAC9B,QAAI,SACF,SAAS,EAAE,MAAM,CAAC;AAAA,MAEtB,CAAC;AAAA,IAEL,CAAC;AAAA,EACH;AAEA,WAAS,kBAAkB,SAAiB;AAC1C,IAAI,cACF,aAAa,UAAU,GAEzB,aAAa,WAAW,MAAM;AAC5B,mBAAa,MACb,sBAAsB;AAAA,IACxB,GAAG,OAAO;AAAA,EACZ;AAEA,iBAAe,gBAA6C;AAC1D,UAAM,WAAW,YAAY,IAAI,GAAG;AAEpC,QAAI;AACF,UAAI;AAWF,aAViB,MAAM,MAAM,yBAAyB;AAAA,UACpD,QAAQ;AAAA,UACR,SAAS;AAAA,YACP,gBAAgB;AAAA,UAClB;AAAA,UACA,MAAM,KAAK,UAAU;AAAA,YACnB,OAAO;AAAA,UACT,CAAC;AAAA,QACH,CAAC,EAAE,KAAK,CAACA,SAAQA,KAAI,KAAK,CAAC,IAEb;AACZ,iBAAO;AAAA,MAEX,SAAS,OAAO;AACd,gBAAQ,MAAM,2BAA2B,KAAK;AAAA,MAChD;AAGF,UAAM,MAAM,MAAM,WAAW,OAAO,QAAQ;AAC5C,QAAI,IAAI,OAAO;AACb,cAAQ,MAAM,yBAAyB,IAAI,MAAM,UAAU,EAAE;AAC7D;AAAA,IACF;AAEA,WADa,IAAI,MACJ;AAAA,EACf;AAEA,QAAM,uBAAuB,MAAM;AACjC,gBAAY,OAAO;AAAA,EACrB,GAEM,UAAU,MAAM;AACpB,UAAM,QAAQ,WAAW,SAAS;AAClC,WAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU,CAAC,CAAC,MAAM;AAAA,IACpB;AAAA,EACF,GAEM,UAAU,UACP,gCAAgB,SAAS,KAAK;AAGvC,WAAS,aAAa;AACpB,gBAAY,OAAO,GACnB,aAAa,OAAO,GACpB,SAAS,KAAK;AAAA,EAChB;AAMA,MAHA,sBAAsB,GAGlB,OAAO,SAAW,OAAe,OAAO,kBAAkB;AAC5D,UAAM,UAAU,MAAM;AACpB,gBAAU,GACN,cACF,aAAa,UAAU;AAAA,IAE3B;AACA,WAAO,iBAAiB,gBAAgB,OAAO;AAAA,EACjD;AAEA,QAAM,oBAAoB,IAAI,MAAM,YAAY;AAAA,IAC9C,IAAI,SAAS,KAAK;AAChB,aAAI,QAAQ,YACH,MAAM;AACX,mBAAW,GAKX,WAAW,UAAU,GAGjB,OAAO,SAAW,OACpB,OAAO,UAAU,SAAS;AAAA,MAE9B,IAGK,QAAQ,IAAI,YAAY,GAAG;AAAA,IACpC;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "mappings": "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",
5
5
  "names": ["res"]
6
6
  }
@@ -60,16 +60,18 @@ function createBetterAuthClient(options) {
60
60
  var dispose = null, retryTimer = null;
61
61
  function subscribeToAuthEffect() {
62
62
  dispose == null || dispose(), dispose = authClient.useSession.subscribe(async function(props) {
63
- var { data: dataGeneric, isPending, error } = props;
63
+ var _keysStorage_get, { data: dataGeneric, isPending, error } = props;
64
64
  if (error) {
65
65
  onAuthError == null || onAuthError(error), scheduleAuthRetry(retryDelay);
66
66
  return;
67
67
  }
68
- var data = dataGeneric;
69
- setState({
70
- state: isPending ? "loading" : data != null && data.session ? "logged-in" : "logged-out",
71
- session: data == null ? void 0 : data.session,
68
+ var data = dataGeneric, hasPersistedSession = !!(!((_keysStorage_get = keysStorage.get()) === null || _keysStorage_get === void 0) && _keysStorage_get.session), nextState = isPending ? "loading" : data != null && data.session ? "logged-in" : hasPersistedSession && !data ? "loading" : "logged-out", _data_session, sessionUpdate = nextState === "loading" ? {} : {
69
+ session: (_data_session = data == null ? void 0 : data.session) !== null && _data_session !== void 0 ? _data_session : null,
72
70
  user: data != null && data.user ? createUser ? createUser(data.user) : data.user : null
71
+ };
72
+ setState({
73
+ state: nextState,
74
+ ...sessionUpdate
73
75
  }), data != null && data.session && !authState.value.token && getValidToken().then(function(token) {
74
76
  token && setState({
75
77
  token
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createAuthClient.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["res"]
6
6
  }
@@ -60,11 +60,13 @@ function createBetterAuthClient(options) {
60
60
  onAuthError?.(error), scheduleAuthRetry(retryDelay);
61
61
  return;
62
62
  }
63
- const data = dataGeneric;
64
- setState({
65
- state: isPending ? "loading" : data?.session ? "logged-in" : "logged-out",
66
- session: data?.session,
63
+ const data = dataGeneric, hasPersistedSession = !!keysStorage.get()?.session, nextState = isPending ? "loading" : data?.session ? "logged-in" : hasPersistedSession && !data ? "loading" : "logged-out", sessionUpdate = nextState === "loading" ? {} : {
64
+ session: data?.session ?? null,
67
65
  user: data?.user ? createUser ? createUser(data.user) : data.user : null
66
+ };
67
+ setState({
68
+ state: nextState,
69
+ ...sessionUpdate
68
70
  }), data?.session && !authState.value.token && getValidToken().then((token) => {
69
71
  token && setState({ token });
70
72
  });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createAuthClient.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["res"]
6
6
  }
@@ -66,11 +66,16 @@ function createBetterAuthClient(options) {
66
66
  onAuthError?.(error), scheduleAuthRetry(retryDelay);
67
67
  return;
68
68
  }
69
- const data = dataGeneric;
69
+ const data = dataGeneric,
70
+ hasPersistedSession = !!keysStorage.get()?.session,
71
+ nextState = isPending ? "loading" : data?.session ? "logged-in" : hasPersistedSession && !data ? "loading" : "logged-out",
72
+ sessionUpdate = nextState === "loading" ? {} : {
73
+ session: data?.session ?? null,
74
+ user: data?.user ? createUser ? createUser(data.user) : data.user : null
75
+ };
70
76
  setState({
71
- state: isPending ? "loading" : data?.session ? "logged-in" : "logged-out",
72
- session: data?.session,
73
- user: data?.user ? createUser ? createUser(data.user) : data.user : null
77
+ state: nextState,
78
+ ...sessionUpdate
74
79
  }), data?.session && !authState.value.token && getValidToken().then(token => {
75
80
  token && setState({
76
81
  token
@@ -1 +1 @@
1
- {"version":3,"names":["createEmitter","createStorageValue","isEqualDeepLite","useEmitterValue","createAuthClient","createBetterAuthClient","options","onAuthStateChange","onAuthError","createUser","storagePrefix","retryDelay","tokenValidationEndpoint","authClientOptions","empty","state","session","user","token","createAuthClientWithSession","fetchOptions","headers","Authorization","keysStorage","stateStorage","authClient","existingSession","get","authState","comparator","authClientVersion","setState","update","next","value","set","emit","setAuthClientToken","props","updateAuthClient","Math","random","subscribeToAuthEffect","dispose","retryTimer","useSession","subscribe","data","dataGeneric","isPending","error","scheduleAuthRetry","getValidToken","then","delayMs","clearTimeout","setTimeout","existing","fetch","method","body","JSON","stringify","res2","json","valid","console","res","$fetch","statusText","clearAuthClientToken","remove","getAuth","loggedIn","useAuth","clearState","window","addEventListener","cleanup","proxiedAuthClient","Proxy","_target","key","signOut","location","reload","Reflect"],"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","tokenValidationEndpoint","authClientOptions","empty","state","session","user","token","createAuthClientWithSession","fetchOptions","headers","Authorization","keysStorage","stateStorage","authClient","existingSession","get","authState","comparator","authClientVersion","setState","update","next","value","set","emit","setAuthClientToken","props","updateAuthClient","Math","random","subscribeToAuthEffect","dispose","retryTimer","useSession","subscribe","data","dataGeneric","isPending","error","scheduleAuthRetry","hasPersistedSession","nextState","sessionUpdate","getValidToken","then","delayMs","clearTimeout","setTimeout","existing","fetch","method","body","JSON","stringify","res2","json","valid","console","res","$fetch","statusText","clearAuthClientToken","remove","getAuth","loggedIn","useAuth","clearState","window","addEventListener","cleanup","proxiedAuthClient","Proxy","_target","key","signOut","location","reload","Reflect"],"sources":["../../src/createAuthClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -61,20 +61,27 @@ function createBetterAuthClient(options) {
61
61
  retryTimer = null;
62
62
  function subscribeToAuthEffect() {
63
63
  dispose?.(), dispose = authClient.useSession.subscribe(async function (props) {
64
- var {
65
- data: dataGeneric,
66
- isPending,
67
- error
68
- } = props;
64
+ var _keysStorage_get,
65
+ {
66
+ data: dataGeneric,
67
+ isPending,
68
+ error
69
+ } = props;
69
70
  if (error) {
70
71
  onAuthError?.(error), scheduleAuthRetry(retryDelay);
71
72
  return;
72
73
  }
73
- var data = dataGeneric;
74
+ var data = dataGeneric,
75
+ hasPersistedSession = !!(!((_keysStorage_get = keysStorage.get()) === null || _keysStorage_get === void 0) && _keysStorage_get.session),
76
+ nextState = isPending ? "loading" : data?.session ? "logged-in" : hasPersistedSession && !data ? "loading" : "logged-out",
77
+ _data_session,
78
+ sessionUpdate = nextState === "loading" ? {} : {
79
+ session: (_data_session = data?.session) !== null && _data_session !== void 0 ? _data_session : null,
80
+ user: data?.user ? createUser ? createUser(data.user) : data.user : null
81
+ };
74
82
  setState({
75
- state: isPending ? "loading" : data?.session ? "logged-in" : "logged-out",
76
- session: data?.session,
77
- user: data?.user ? createUser ? createUser(data.user) : data.user : null
83
+ state: nextState,
84
+ ...sessionUpdate
78
85
  }), data?.session && !authState.value.token && getValidToken().then(function (token) {
79
86
  token && setState({
80
87
  token
@@ -1 +1 @@
1
- {"version":3,"names":["createEmitter","createStorageValue","isEqualDeepLite","useEmitterValue","createAuthClient","createBetterAuthClient","options","onAuthStateChange","onAuthError","createUser","storagePrefix","retryDelay","tokenValidationEndpoint","authClientOptions","empty","state","session","user","token","createAuthClientWithSession","fetchOptions","headers","Authorization","keysStorage","stateStorage","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","data","dataGeneric","isPending","error","scheduleAuthRetry","getValidToken","then","delayMs","clearTimeout","setTimeout","existing","response","fetch","method","body","JSON","stringify","res2","json","valid","console","res","$fetch","statusText","clearAuthClientToken","remove","getAuth","loggedIn","useAuth","clearState","window","addEventListener","cleanup","proxiedAuthClient","Proxy","_target","key","_authClient_signOut","signOut","call","_window_location_reload","_window_location","location","reload","Reflect"],"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","tokenValidationEndpoint","authClientOptions","empty","state","session","user","token","createAuthClientWithSession","fetchOptions","headers","Authorization","keysStorage","stateStorage","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","data","dataGeneric","isPending","error","scheduleAuthRetry","hasPersistedSession","nextState","_data_session","sessionUpdate","getValidToken","then","delayMs","clearTimeout","setTimeout","existing","response","fetch","method","body","JSON","stringify","res2","json","valid","console","res","$fetch","statusText","clearAuthClientToken","remove","getAuth","loggedIn","useAuth","clearState","window","addEventListener","cleanup","proxiedAuthClient","Proxy","_target","key","_authClient_signOut","signOut","call","_window_location_reload","_window_location","location","reload","Reflect"],"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.0.50",
3
+ "version": "0.0.52",
4
4
  "description": "Better auth utilities and client for React/React Native applications",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -15,7 +15,7 @@
15
15
  ],
16
16
  "scripts": {
17
17
  "build": "tamagui-build",
18
- "watch": "tamagui-build --watch",
18
+ "watch": "SKIP_INITIAL_BUILD=1 tamagui-build --watch",
19
19
  "lint": "oxlint src",
20
20
  "lint:fix": "oxfmt src && oxlint --fix --fix-suggestions src",
21
21
  "clean": "tamagui-build clean",
@@ -45,14 +45,14 @@
45
45
  }
46
46
  },
47
47
  "dependencies": {
48
- "@take-out/helpers": "0.0.50",
48
+ "@take-out/helpers": "0.0.52",
49
49
  "better-auth": "^1.3.28"
50
50
  },
51
51
  "peerDependencies": {
52
52
  "react": "*"
53
53
  },
54
54
  "devDependencies": {
55
- "@tamagui/build": "^2.0.0-1768983999155",
55
+ "@tamagui/build": "^2.0.0-1769320275396",
56
56
  "@types/node": "24.0.3",
57
57
  "@types/react": "^19.0.8",
58
58
  "oxfmt": "^0.16.0",
@@ -194,14 +194,30 @@ export function createBetterAuthClient<const Opts extends BetterAuthClientProps<
194
194
  user?: AuthState<TUser>['user']
195
195
  }
196
196
 
197
+ // if we have a persisted session but server hasn't confirmed yet, stay loading
198
+ // this prevents redirect race on direct navigation while session is being validated
199
+ const hasPersistedSession = !!keysStorage.get()?.session
200
+ const nextState = isPending
201
+ ? 'loading'
202
+ : data?.session
203
+ ? 'logged-in'
204
+ : hasPersistedSession && !data
205
+ ? 'loading'
206
+ : 'logged-out'
207
+
208
+ // only update session/user when we have definitive data (not during pending state)
209
+ // this prevents clearing persisted data during the loading phase
210
+ const sessionUpdate =
211
+ nextState === 'loading'
212
+ ? {}
213
+ : {
214
+ session: data?.session ?? null,
215
+ user: data?.user ? (createUser ? createUser(data.user) : data.user) : null,
216
+ }
217
+
197
218
  setState({
198
- state: isPending ? 'loading' : data?.session ? 'logged-in' : 'logged-out',
199
- session: data?.session,
200
- user: data?.user
201
- ? createUser
202
- ? createUser(data.user as User)
203
- : (data.user as any)
204
- : null,
219
+ state: nextState,
220
+ ...sessionUpdate,
205
221
  })
206
222
 
207
223
  // get token on creating a new session (for native + tauri)
@@ -12,7 +12,7 @@
12
12
  "src/createAuthClient.ts"
13
13
  ],
14
14
  "sourcesContent": [
15
- "/**\n * Better-auth helpers for React / React Native applications\n *\n * Features:\n * - JWT support (for Zero, Tauri, React Native)\n * - Session persistence in local storage\n * - Token validation and refresh\n * - State management with emitters\n * - Automatic retry on errors\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 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 * This allows you to add app-specific fields and ensure proper typing\n * @default (user) => user\n */\n createUser?: (user: User) => TUser\n /**\n * Optional callback when authentication state changes\n */\n onAuthStateChange?: (state: AuthState<TUser>) => void\n /**\n * Optional callback for handling auth errors\n */\n onAuthError?: (error: any) => void\n /**\n * Storage key prefix for local storage\n * @default 'auth'\n */\n storagePrefix?: string\n /**\n * Retry delay in milliseconds after auth errors\n * @default 4000\n */\n retryDelay?: number\n /**\n * Custom token validation endpoint\n * @default '/api/auth/validateToken'\n */\n tokenValidationEndpoint?: 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 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 tokenValidationEndpoint = '/api/auth/validateToken',\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 createAuthClientWithSession = (session: string) => {\n return createAuthClient({\n ...authClientOptions,\n fetchOptions: {\n headers: {\n Authorization: `Bearer ${session}`,\n },\n },\n })\n }\n\n const keysStorage = createStorageValue<StorageKeys>(`${storagePrefix}-keys`)\n const stateStorage = createStorageValue<AuthState<TUser>>(`${storagePrefix}-state`)\n\n let authClient = (() => {\n const existingSession = keysStorage.get()?.session\n return existingSession\n ? createAuthClientWithSession(existingSession)\n : createAuthClient(authClientOptions as Opts)\n })()\n\n const authState = createEmitter<AuthState<TUser>>(\n 'authState',\n stateStorage.get() || empty,\n {\n comparator: isEqualDeepLite,\n }\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 {\n keysStorage.set({\n token: '',\n session: '',\n })\n }\n\n // call optional callback\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 // retry by re-subscribing after a delay to recover from transient errors\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 setState({\n state: isPending ? 'loading' : data?.session ? 'logged-in' : 'logged-out',\n session: data?.session,\n user: data?.user\n ? createUser\n ? createUser(data.user as User)\n : (data.user as any)\n : null,\n })\n\n // get token on creating a new session (for native + tauri)\n if (data?.session && !authState.value.token) {\n getValidToken().then((token) => {\n if (token) {\n setState({ token })\n }\n })\n }\n })\n }\n\n function scheduleAuthRetry(delayMs: number) {\n if (retryTimer) {\n clearTimeout(retryTimer)\n }\n retryTimer = setTimeout(() => {\n retryTimer = null\n subscribeToAuthEffect()\n }, delayMs)\n }\n\n async function getValidToken(): Promise<string | undefined> {\n const existing = keysStorage.get()?.token\n\n if (existing) {\n try {\n const response = await fetch(tokenValidationEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n token: existing,\n }),\n }).then((res) => res.json())\n\n if (response?.valid) {\n return existing\n }\n } catch (error) {\n console.error('Error validating token:', error)\n }\n }\n\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 const data = res.data as any\n return data?.token as string | undefined\n }\n\n const clearAuthClientToken = () => {\n keysStorage.remove()\n }\n\n const getAuth = () => {\n const state = authState?.value || empty\n return {\n ...state,\n loggedIn: !!state.session,\n }\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 // initialize subscription\n subscribeToAuthEffect()\n\n // cleanup on unmount\n if (typeof window !== 'undefined' && window.addEventListener) {\n const cleanup = () => {\n dispose?.()\n if (retryTimer) {\n clearTimeout(retryTimer)\n }\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\n // don't await - better-auth has fetch issues on react native\n // attempting to await causes \"method uppercase not a func\" error\n // @ts-expect-error better-auth type issue, signOut does exist\n authClient.signOut?.()\n\n // force refresh to clear any remaining state\n if (typeof window !== 'undefined') {\n window.location?.reload?.()\n }\n }\n }\n // ensure always latest authClient after login\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 useAuth,\n getAuth,\n getValidToken,\n updateAuthClient,\n }\n}\n"
15
+ "/**\n * Better-auth helpers for React / React Native applications\n *\n * Features:\n * - JWT support (for Zero, Tauri, React Native)\n * - Session persistence in local storage\n * - Token validation and refresh\n * - State management with emitters\n * - Automatic retry on errors\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 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 * This allows you to add app-specific fields and ensure proper typing\n * @default (user) => user\n */\n createUser?: (user: User) => TUser\n /**\n * Optional callback when authentication state changes\n */\n onAuthStateChange?: (state: AuthState<TUser>) => void\n /**\n * Optional callback for handling auth errors\n */\n onAuthError?: (error: any) => void\n /**\n * Storage key prefix for local storage\n * @default 'auth'\n */\n storagePrefix?: string\n /**\n * Retry delay in milliseconds after auth errors\n * @default 4000\n */\n retryDelay?: number\n /**\n * Custom token validation endpoint\n * @default '/api/auth/validateToken'\n */\n tokenValidationEndpoint?: 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 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 tokenValidationEndpoint = '/api/auth/validateToken',\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 createAuthClientWithSession = (session: string) => {\n return createAuthClient({\n ...authClientOptions,\n fetchOptions: {\n headers: {\n Authorization: `Bearer ${session}`,\n },\n },\n })\n }\n\n const keysStorage = createStorageValue<StorageKeys>(`${storagePrefix}-keys`)\n const stateStorage = createStorageValue<AuthState<TUser>>(`${storagePrefix}-state`)\n\n let authClient = (() => {\n const existingSession = keysStorage.get()?.session\n return existingSession\n ? createAuthClientWithSession(existingSession)\n : createAuthClient(authClientOptions as Opts)\n })()\n\n const authState = createEmitter<AuthState<TUser>>(\n 'authState',\n stateStorage.get() || empty,\n {\n comparator: isEqualDeepLite,\n }\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 {\n keysStorage.set({\n token: '',\n session: '',\n })\n }\n\n // call optional callback\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 // retry by re-subscribing after a delay to recover from transient errors\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 // this prevents redirect race on direct navigation while session is being validated\n const hasPersistedSession = !!keysStorage.get()?.session\n const nextState = isPending\n ? 'loading'\n : data?.session\n ? 'logged-in'\n : hasPersistedSession && !data\n ? 'loading'\n : 'logged-out'\n\n // only update session/user when we have definitive data (not during pending state)\n // this prevents clearing persisted data during the loading phase\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 setState({\n state: nextState,\n ...sessionUpdate,\n })\n\n // get token on creating a new session (for native + tauri)\n if (data?.session && !authState.value.token) {\n getValidToken().then((token) => {\n if (token) {\n setState({ token })\n }\n })\n }\n })\n }\n\n function scheduleAuthRetry(delayMs: number) {\n if (retryTimer) {\n clearTimeout(retryTimer)\n }\n retryTimer = setTimeout(() => {\n retryTimer = null\n subscribeToAuthEffect()\n }, delayMs)\n }\n\n async function getValidToken(): Promise<string | undefined> {\n const existing = keysStorage.get()?.token\n\n if (existing) {\n try {\n const response = await fetch(tokenValidationEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n token: existing,\n }),\n }).then((res) => res.json())\n\n if (response?.valid) {\n return existing\n }\n } catch (error) {\n console.error('Error validating token:', error)\n }\n }\n\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 const data = res.data as any\n return data?.token as string | undefined\n }\n\n const clearAuthClientToken = () => {\n keysStorage.remove()\n }\n\n const getAuth = () => {\n const state = authState?.value || empty\n return {\n ...state,\n loggedIn: !!state.session,\n }\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 // initialize subscription\n subscribeToAuthEffect()\n\n // cleanup on unmount\n if (typeof window !== 'undefined' && window.addEventListener) {\n const cleanup = () => {\n dispose?.()\n if (retryTimer) {\n clearTimeout(retryTimer)\n }\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\n // don't await - better-auth has fetch issues on react native\n // attempting to await causes \"method uppercase not a func\" error\n // @ts-expect-error better-auth type issue, signOut does exist\n authClient.signOut?.()\n\n // force refresh to clear any remaining state\n if (typeof window !== 'undefined') {\n window.location?.reload?.()\n }\n }\n }\n // ensure always latest authClient after login\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 useAuth,\n getAuth,\n getValidToken,\n updateAuthClient,\n }\n}\n"
16
16
  ],
17
17
  "version": 3
18
18
  }