@take-out/better-auth-utils 0.7.0 → 0.7.1-1784516754882

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.
@@ -219,12 +219,17 @@ function createBetterAuthClient(options) {
219
219
  const proxiedAuthClient = new Proxy(authClient, {
220
220
  get(_target, key) {
221
221
  if (key === "signOut") {
222
- return () => {
222
+ return async () => {
223
+ const result = await authClient.$fetch("/sign-out", {
224
+ method: "POST",
225
+ body: {}
226
+ });
227
+ if (result.error) throw result.error;
223
228
  clearState();
224
- authClient.signOut?.();
225
229
  if (typeof window !== "undefined") {
226
230
  window.location?.reload?.();
227
231
  }
232
+ return result;
228
233
  };
229
234
  }
230
235
  return Reflect.get(authClient, key);
@@ -245,14 +245,18 @@ function createBetterAuthClient(options) {
245
245
  var proxiedAuthClient = new Proxy(authClient, {
246
246
  get(_target, key) {
247
247
  if (key === "signOut") {
248
- return function () {
249
- var _authClient_signOut;
248
+ return async function () {
249
+ var result = await authClient.$fetch("/sign-out", {
250
+ method: "POST",
251
+ body: {}
252
+ });
253
+ if (result.error) throw result.error;
250
254
  clearState();
251
- (_authClient_signOut = authClient.signOut) === null || _authClient_signOut === void 0 ? void 0 : _authClient_signOut.call(authClient);
252
255
  if (typeof window !== "undefined") {
253
256
  var _window_location_reload, _window_location;
254
257
  (_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);
255
258
  }
259
+ return result;
256
260
  };
257
261
  }
258
262
  return Reflect.get(authClient, key);
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createAuthClient_exports","__export","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","get","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"],"sources":["../../src/createAuthClient.ts"],"sourcesContent":[null],"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","result","method","body","_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 async function() {\n var result = await authClient.$fetch(\"/sign-out\", {\n method: \"POST\",\n body: {}\n });\n if (result.error) throw result.error;\n clearState();\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 return result;\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":[]}
@@ -0,0 +1,88 @@
1
+ var import_vitest = require("vitest");
2
+ var import_createAuthClient = require("./createAuthClient.cjs");
3
+ const mocks = import_vitest.vi.hoisted(() => ({
4
+ createAuthClient: import_vitest.vi.fn(),
5
+ request: import_vitest.vi.fn()
6
+ }));
7
+ import_vitest.vi.mock("better-auth/client", () => ({
8
+ createAuthClient: mocks.createAuthClient
9
+ }));
10
+ import_vitest.vi.mock("@take-out/helpers", () => ({
11
+ createEmitter: (_name, initialValue) => {
12
+ const emitter = {
13
+ value: initialValue,
14
+ emit(value) {
15
+ emitter.value = value;
16
+ }
17
+ };
18
+ return emitter;
19
+ },
20
+ createStorageValue: () => ({
21
+ get: () => void 0,
22
+ set: import_vitest.vi.fn(),
23
+ remove: import_vitest.vi.fn()
24
+ }),
25
+ isEqualDeepLite: Object.is,
26
+ useEmitterValue: emitter => emitter.value
27
+ }));
28
+ (0, import_vitest.describe)("createBetterAuthClient signOut", () => {
29
+ (0, import_vitest.beforeEach)(() => {
30
+ mocks.request.mockReset();
31
+ mocks.createAuthClient.mockReset();
32
+ mocks.createAuthClient.mockReturnValue({
33
+ $fetch: mocks.request,
34
+ useSession: {
35
+ subscribe: import_vitest.vi.fn(() => import_vitest.vi.fn())
36
+ }
37
+ });
38
+ });
39
+ (0, import_vitest.test)("sends JSON and clears local auth only after server revocation succeeds", async () => {
40
+ const deferred = Promise.withResolvers();
41
+ mocks.request.mockReturnValue(deferred.promise);
42
+ const onAuthStateChange = import_vitest.vi.fn();
43
+ const client = (0, import_createAuthClient.createBetterAuthClient)({
44
+ baseURL: "https://auth.example.com",
45
+ onAuthStateChange
46
+ });
47
+ const pending = client.authClient.signOut();
48
+ (0, import_vitest.expect)(mocks.request).toHaveBeenCalledWith("/sign-out", {
49
+ method: "POST",
50
+ body: {}
51
+ });
52
+ (0, import_vitest.expect)(onAuthStateChange).not.toHaveBeenCalled();
53
+ deferred.resolve({
54
+ data: {
55
+ success: true
56
+ },
57
+ error: null
58
+ });
59
+ await (0, import_vitest.expect)(pending).resolves.toEqual({
60
+ data: {
61
+ success: true
62
+ },
63
+ error: null
64
+ });
65
+ (0, import_vitest.expect)(onAuthStateChange).toHaveBeenCalledWith({
66
+ state: "logged-out",
67
+ session: null,
68
+ user: null,
69
+ token: null
70
+ });
71
+ });
72
+ (0, import_vitest.test)("keeps local auth when server revocation fails", async () => {
73
+ const error = {
74
+ message: "network unavailable"
75
+ };
76
+ mocks.request.mockResolvedValue({
77
+ data: null,
78
+ error
79
+ });
80
+ const onAuthStateChange = import_vitest.vi.fn();
81
+ const client = (0, import_createAuthClient.createBetterAuthClient)({
82
+ baseURL: "https://auth.example.com",
83
+ onAuthStateChange
84
+ });
85
+ await (0, import_vitest.expect)(client.authClient.signOut()).rejects.toBe(error);
86
+ (0, import_vitest.expect)(onAuthStateChange).not.toHaveBeenCalled();
87
+ });
88
+ });
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ var import_vitest = require("vitest");
4
+ var import_createAuthClient = require("./createAuthClient.native.js");
5
+ var mocks = import_vitest.vi.hoisted(function () {
6
+ return {
7
+ createAuthClient: import_vitest.vi.fn(),
8
+ request: import_vitest.vi.fn()
9
+ };
10
+ });
11
+ import_vitest.vi.mock("better-auth/client", function () {
12
+ return {
13
+ createAuthClient: mocks.createAuthClient
14
+ };
15
+ });
16
+ import_vitest.vi.mock("@take-out/helpers", function () {
17
+ return {
18
+ createEmitter: function (_name, initialValue) {
19
+ var emitter = {
20
+ value: initialValue,
21
+ emit(value) {
22
+ emitter.value = value;
23
+ }
24
+ };
25
+ return emitter;
26
+ },
27
+ createStorageValue: function () {
28
+ return {
29
+ get: function () {
30
+ return void 0;
31
+ },
32
+ set: import_vitest.vi.fn(),
33
+ remove: import_vitest.vi.fn()
34
+ };
35
+ },
36
+ isEqualDeepLite: Object.is,
37
+ useEmitterValue: function (emitter) {
38
+ return emitter.value;
39
+ }
40
+ };
41
+ });
42
+ (0, import_vitest.describe)("createBetterAuthClient signOut", function () {
43
+ (0, import_vitest.beforeEach)(function () {
44
+ mocks.request.mockReset();
45
+ mocks.createAuthClient.mockReset();
46
+ mocks.createAuthClient.mockReturnValue({
47
+ $fetch: mocks.request,
48
+ useSession: {
49
+ subscribe: import_vitest.vi.fn(function () {
50
+ return import_vitest.vi.fn();
51
+ })
52
+ }
53
+ });
54
+ });
55
+ (0, import_vitest.test)("sends JSON and clears local auth only after server revocation succeeds", async function () {
56
+ var deferred = Promise.withResolvers();
57
+ mocks.request.mockReturnValue(deferred.promise);
58
+ var onAuthStateChange = import_vitest.vi.fn();
59
+ var client = (0, import_createAuthClient.createBetterAuthClient)({
60
+ baseURL: "https://auth.example.com",
61
+ onAuthStateChange
62
+ });
63
+ var pending = client.authClient.signOut();
64
+ (0, import_vitest.expect)(mocks.request).toHaveBeenCalledWith("/sign-out", {
65
+ method: "POST",
66
+ body: {}
67
+ });
68
+ (0, import_vitest.expect)(onAuthStateChange).not.toHaveBeenCalled();
69
+ deferred.resolve({
70
+ data: {
71
+ success: true
72
+ },
73
+ error: null
74
+ });
75
+ await (0, import_vitest.expect)(pending).resolves.toEqual({
76
+ data: {
77
+ success: true
78
+ },
79
+ error: null
80
+ });
81
+ (0, import_vitest.expect)(onAuthStateChange).toHaveBeenCalledWith({
82
+ state: "logged-out",
83
+ session: null,
84
+ user: null,
85
+ token: null
86
+ });
87
+ });
88
+ (0, import_vitest.test)("keeps local auth when server revocation fails", async function () {
89
+ var error = {
90
+ message: "network unavailable"
91
+ };
92
+ mocks.request.mockResolvedValue({
93
+ data: null,
94
+ error
95
+ });
96
+ var onAuthStateChange = import_vitest.vi.fn();
97
+ var client = (0, import_createAuthClient.createBetterAuthClient)({
98
+ baseURL: "https://auth.example.com",
99
+ onAuthStateChange
100
+ });
101
+ await (0, import_vitest.expect)(client.authClient.signOut()).rejects.toBe(error);
102
+ (0, import_vitest.expect)(onAuthStateChange).not.toHaveBeenCalled();
103
+ });
104
+ });
105
+ //# sourceMappingURL=createAuthClient.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["import_vitest","require","import_createAuthClient","mocks","vi","hoisted","createAuthClient","fn","request","mock","createEmitter","_name","initialValue","emitter","value","emit","createStorageValue","get","set","remove","isEqualDeepLite","Object","is","useEmitterValue","describe","beforeEach","mockReset","mockReturnValue","$fetch","useSession","subscribe","test","deferred","Promise","withResolvers","promise","onAuthStateChange","client","createBetterAuthClient","baseURL","pending","authClient","signOut","expect","toHaveBeenCalledWith","method","body","not","toHaveBeenCalled","resolve","data","success","error","resolves","toEqual","state","session","user","token","message","mockResolvedValue","rejects","toBe"],"sources":["createAuthClient.test.native.js"],"sourcesContent":["\"use strict\";\nvar import_vitest = require(\"vitest\");\nvar import_createAuthClient = require(\"./createAuthClient\");\nvar mocks = import_vitest.vi.hoisted(function() {\n return {\n createAuthClient: import_vitest.vi.fn(),\n request: import_vitest.vi.fn()\n };\n});\nimport_vitest.vi.mock(\"better-auth/client\", function() {\n return {\n createAuthClient: mocks.createAuthClient\n };\n});\nimport_vitest.vi.mock(\"@take-out/helpers\", function() {\n return {\n createEmitter: function(_name, initialValue) {\n var emitter = {\n value: initialValue,\n emit(value) {\n emitter.value = value;\n }\n };\n return emitter;\n },\n createStorageValue: function() {\n return {\n get: function() {\n return void 0;\n },\n set: import_vitest.vi.fn(),\n remove: import_vitest.vi.fn()\n };\n },\n isEqualDeepLite: Object.is,\n useEmitterValue: function(emitter) {\n return emitter.value;\n }\n };\n});\n(0, import_vitest.describe)(\"createBetterAuthClient signOut\", function() {\n (0, import_vitest.beforeEach)(function() {\n mocks.request.mockReset();\n mocks.createAuthClient.mockReset();\n mocks.createAuthClient.mockReturnValue({\n $fetch: mocks.request,\n useSession: {\n subscribe: import_vitest.vi.fn(function() {\n return import_vitest.vi.fn();\n })\n }\n });\n });\n (0, import_vitest.test)(\"sends JSON and clears local auth only after server revocation succeeds\", async function() {\n var deferred = Promise.withResolvers();\n mocks.request.mockReturnValue(deferred.promise);\n var onAuthStateChange = import_vitest.vi.fn();\n var client = (0, import_createAuthClient.createBetterAuthClient)({\n baseURL: \"https://auth.example.com\",\n onAuthStateChange\n });\n var pending = client.authClient.signOut();\n (0, import_vitest.expect)(mocks.request).toHaveBeenCalledWith(\"/sign-out\", {\n method: \"POST\",\n body: {}\n });\n (0, import_vitest.expect)(onAuthStateChange).not.toHaveBeenCalled();\n deferred.resolve({\n data: {\n success: true\n },\n error: null\n });\n await (0, import_vitest.expect)(pending).resolves.toEqual({\n data: {\n success: true\n },\n error: null\n });\n (0, import_vitest.expect)(onAuthStateChange).toHaveBeenCalledWith({\n state: \"logged-out\",\n session: null,\n user: null,\n token: null\n });\n });\n (0, import_vitest.test)(\"keeps local auth when server revocation fails\", async function() {\n var error = {\n message: \"network unavailable\"\n };\n mocks.request.mockResolvedValue({\n data: null,\n error\n });\n var onAuthStateChange = import_vitest.vi.fn();\n var client = (0, import_createAuthClient.createBetterAuthClient)({\n baseURL: \"https://auth.example.com\",\n onAuthStateChange\n });\n await (0, import_vitest.expect)(client.authClient.signOut()).rejects.toBe(error);\n (0, import_vitest.expect)(onAuthStateChange).not.toHaveBeenCalled();\n });\n});\n//# sourceMappingURL=createAuthClient.test.js.map\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","module","exports"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAP,YAAc,CAAAK,aAAA","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__copyProps","to","from","except","desc","key","call","get","enumerable","__reExport","target","mod","secondTarget","__toCommonJS","value","index_exports","module","exports","require"],"sources":["index.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\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 __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./createAuthClient\"), module.exports);\n//# sourceMappingURL=index.js.map\n"],"mappings":"AAAA,YAAY;;AACZ,IAAIA,SAAS,GAAGC,MAAM,CAACC,cAAc;AACrC,IAAIC,gBAAgB,GAAGF,MAAM,CAACG,wBAAwB;AACtD,IAAIC,iBAAiB,GAAGJ,MAAM,CAACK,mBAAmB;AAClD,IAAIC,YAAY,GAAGN,MAAM,CAACO,SAAS,CAACC,cAAc;AAClD,IAAIC,WAAW,GAAGA,CAACC,EAAE,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,KAAK;EAC5C,IAAIF,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;IAClE,KAAK,IAAIG,GAAG,IAAIV,iBAAiB,CAACO,IAAI,CAAC,EACrC,IAAI,CAACL,YAAY,CAACS,IAAI,CAACL,EAAE,EAAEI,GAAG,CAAC,IAAIA,GAAG,KAAKF,MAAM,EAC/Cb,SAAS,CAACW,EAAE,EAAEI,GAAG,EAAE;MAAEE,GAAG,EAAEA,CAAA,KAAML,IAAI,CAACG,GAAG,CAAC;MAAEG,UAAU,EAAE,EAAEJ,IAAI,GAAGX,gBAAgB,CAACS,IAAI,EAAEG,GAAG,CAAC,CAAC,IAAID,IAAI,CAACI;IAAW,CAAC,CAAC;EACxH;EACA,OAAOP,EAAE;AACX,CAAC;AACD,IAAIQ,UAAU,GAAGA,CAACC,MAAM,EAAEC,GAAG,EAAEC,YAAY,MAAMZ,WAAW,CAACU,MAAM,EAAEC,GAAG,EAAE,SAAS,CAAC,EAAEC,YAAY,IAAIZ,WAAW,CAACY,YAAY,EAAED,GAAG,EAAE,SAAS,CAAC,CAAC;AAChJ,IAAIE,YAAY,GAAIF,GAAG,IAAKX,WAAW,CAACV,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE;EAAEwB,KAAK,EAAE;AAAK,CAAC,CAAC,EAAEH,GAAG,CAAC;AAC1F,IAAII,aAAa,GAAG,CAAC,CAAC;AACtBC,MAAM,CAACC,OAAO,GAAGJ,YAAY,CAACE,aAAa,CAAC;AAC5CN,UAAU,CAACM,aAAa,EAAEG,OAAO,CAAC,8BAAoB,CAAC,EAAEF,MAAM,CAACC,OAAO,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","server_exports","__export","InvalidTokenError","NotAuthenticatedError","getAuthDataFromRequest","isValidJWT","validateToken","module","exports","import_jose","require","_assert_this_initialized","self","ReferenceError","_call_super","_this","derived","args","_get_prototype_of","_possible_constructor_return","_is_native_reflect_construct","Reflect","construct","constructor","apply","_class_call_check","instance","Constructor","TypeError","_construct","Parent","Class","Parent2","args2","Class2","a","push","Function","bind","_set_prototype_of","prototype","arguments","o","Object","setPrototypeOf","getPrototypeOf","o2","__proto__","_inherits","subClass","superClass","create","writable","configurable","_instanceof","left","right","Symbol","hasInstance","_is_native_function","fn","toString","call","indexOf","_type_of","p","p2"],"sources":["../../src/server.ts"],"sourcesContent":[null],"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","server_exports","InvalidTokenError","NotAuthenticatedError","getAuthDataFromRequest","isValidJWT","validateToken","module","exports","import_jose","require","_assert_this_initialized","self","ReferenceError","_call_super","_this","derived","args","_get_prototype_of","_possible_constructor_return","_is_native_reflect_construct","Reflect","construct","constructor","apply","_class_call_check","instance","Constructor","TypeError","_construct","Parent","Class","Parent2","args2","Class2","a","push","Function","bind","_set_prototype_of","arguments","o","setPrototypeOf","getPrototypeOf","o2","__proto__","_inherits","subClass","superClass","create","writable","configurable","_instanceof","left","right","Symbol","hasInstance","_is_native_function","fn","toString","indexOf","_type_of","p","p2","obj","_wrap_native_super","_cache","Map","wrapNativeSuper","has","set","Wrapper","result","Boolean","valueOf","_","Error1","NotAuthenticatedError2","Error","InvalidTokenError2","authServer","req","tokenOptions","authHeader","headers","session","api","getSession","user","id","email","role","err","console","warn","jwtToken","replace","payload","userId","sub","token","options","baseUrl","process","env","ONE_SERVER_URL","forceIssuer","FORCE_ISSUER","jwksPath","normalizedBaseUrl","removeTrailingSlash","url","JWKS","createRemoteJWKSet","URL","verifyOptions","issuer","audience","jwtVerify","error","e","str"],"sources":["server.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 server_exports = {};\n__export(server_exports, {\n InvalidTokenError: () => InvalidTokenError,\n NotAuthenticatedError: () => NotAuthenticatedError,\n getAuthDataFromRequest: () => getAuthDataFromRequest,\n isValidJWT: () => isValidJWT,\n validateToken: () => validateToken\n});\nmodule.exports = __toCommonJS(server_exports);\nvar import_jose = require(\"jose\");\nfunction _assert_this_initialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _call_super(_this, derived, args) {\n derived = _get_prototype_of(derived);\n return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));\n}\nfunction _class_call_check(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _construct(Parent, args, Class) {\n if (_is_native_reflect_construct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function construct(Parent2, args2, Class2) {\n var a = [\n null\n ];\n a.push.apply(a, args2);\n var Constructor = Function.bind.apply(Parent2, a);\n var instance = new Constructor();\n if (Class2) _set_prototype_of(instance, Class2.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _get_prototype_of(o) {\n _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o2) {\n return o2.__proto__ || Object.getPrototypeOf(o2);\n };\n return _get_prototype_of(o);\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nfunction _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nfunction _is_native_function(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nfunction _possible_constructor_return(self, call) {\n if (call && (_type_of(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n return _assert_this_initialized(self);\n}\nfunction _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o2, p2) {\n o2.__proto__ = p2;\n return o2;\n };\n return _set_prototype_of(o, p);\n}\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nfunction _wrap_native_super(Class) {\n var _cache = typeof Map === \"function\" ? /* @__PURE__ */ new Map() : void 0;\n _wrap_native_super = function wrapNativeSuper(Class2) {\n if (Class2 === null || !_is_native_function(Class2)) return Class2;\n if (typeof Class2 !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class2)) return _cache.get(Class2);\n _cache.set(Class2, Wrapper);\n }\n function Wrapper() {\n return _construct(Class2, arguments, _get_prototype_of(this).constructor);\n }\n Wrapper.prototype = Object.create(Class2.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _set_prototype_of(Wrapper, Class2);\n };\n return _wrap_native_super(Class);\n}\nfunction _is_native_reflect_construct() {\n try {\n var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n }));\n } catch (_) {\n }\n return (_is_native_reflect_construct = function() {\n return !!result;\n })();\n}\nvar NotAuthenticatedError = /* @__PURE__ */ (function(Error1) {\n \"use strict\";\n _inherits(NotAuthenticatedError2, Error1);\n function NotAuthenticatedError2() {\n _class_call_check(this, NotAuthenticatedError2);\n return _call_super(this, NotAuthenticatedError2, arguments);\n }\n return NotAuthenticatedError2;\n})(_wrap_native_super(Error));\nvar InvalidTokenError = /* @__PURE__ */ (function(Error1) {\n \"use strict\";\n _inherits(InvalidTokenError2, Error1);\n function InvalidTokenError2() {\n _class_call_check(this, InvalidTokenError2);\n return _call_super(this, InvalidTokenError2, arguments);\n }\n return InvalidTokenError2;\n})(_wrap_native_super(Error));\nasync function getAuthDataFromRequest(authServer, req, tokenOptions) {\n var authHeader = req.headers.get(\"authorization\");\n try {\n var session = await authServer.api.getSession({\n headers: req.headers\n });\n if (session === null || session === void 0 ? void 0 : session.user) {\n return {\n id: session.user.id,\n email: session.user.email || void 0,\n role: session.user.role === \"admin\" ? \"admin\" : void 0\n };\n }\n } catch (err) {\n console.warn(`Error validating session`, err);\n }\n var jwtToken = authHeader === null || authHeader === void 0 ? void 0 : authHeader.replace(\"Bearer \", \"\");\n if (jwtToken) {\n try {\n var payload = await validateToken(jwtToken, tokenOptions);\n var userId = (payload === null || payload === void 0 ? void 0 : payload.id) || (payload === null || payload === void 0 ? void 0 : payload.sub);\n if (userId) {\n return {\n id: userId,\n email: payload.email,\n role: payload.role === \"admin\" ? \"admin\" : void 0\n };\n }\n } catch (err) {\n if (!_instanceof(err, InvalidTokenError)) {\n throw err;\n }\n }\n }\n return null;\n}\nasync function validateToken(token, options) {\n var { baseUrl = process.env.ONE_SERVER_URL, forceIssuer = process.env.FORCE_ISSUER || \"\", jwksPath = \"/api/auth/jwks\" } = options || {};\n if (!baseUrl) {\n throw new Error(`No baseURL!`);\n }\n var normalizedBaseUrl = removeTrailingSlash(baseUrl);\n var url = `${forceIssuer || normalizedBaseUrl}${jwksPath}`;\n var JWKS = (0, import_jose.createRemoteJWKSet)(new URL(url));\n try {\n var verifyOptions = forceIssuer ? {} : {\n issuer: normalizedBaseUrl,\n audience: normalizedBaseUrl\n };\n var { payload } = await (0, import_jose.jwtVerify)(token, JWKS, verifyOptions);\n return payload;\n } catch (error) {\n throw new InvalidTokenError(`${error}`);\n }\n}\nasync function isValidJWT(token, options) {\n try {\n await validateToken(token, options);\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction removeTrailingSlash(str) {\n return str.replace(/\\/$/, \"\");\n}\n//# sourceMappingURL=server.js.map\n"],"mappings":"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","ignoreList":[]}
@@ -192,12 +192,17 @@ function createBetterAuthClient(options) {
192
192
  const proxiedAuthClient = new Proxy(authClient, {
193
193
  get(_target, key) {
194
194
  if (key === "signOut") {
195
- return () => {
195
+ return async () => {
196
+ const result = await authClient.$fetch("/sign-out", {
197
+ method: "POST",
198
+ body: {}
199
+ });
200
+ if (result.error) throw result.error;
196
201
  clearState();
197
- authClient.signOut?.();
198
202
  if (typeof window !== "undefined") {
199
203
  window.location?.reload?.();
200
204
  }
205
+ return result;
201
206
  };
202
207
  }
203
208
  return Reflect.get(authClient, key);
@@ -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","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":[]}
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","result","method","body","reload","Reflect"],"sources":["../../src/createAuthClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -216,14 +216,18 @@ function createBetterAuthClient(options) {
216
216
  var proxiedAuthClient = new Proxy(authClient, {
217
217
  get(_target, key) {
218
218
  if (key === "signOut") {
219
- return function () {
220
- var _authClient_signOut;
219
+ return async function () {
220
+ var result = await authClient.$fetch("/sign-out", {
221
+ method: "POST",
222
+ body: {}
223
+ });
224
+ if (result.error) throw result.error;
221
225
  clearState();
222
- (_authClient_signOut = authClient.signOut) === null || _authClient_signOut === void 0 ? void 0 : _authClient_signOut.call(authClient);
223
226
  if (typeof window !== "undefined") {
224
227
  var _window_location_reload, _window_location;
225
228
  (_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);
226
229
  }
230
+ return result;
227
231
  };
228
232
  }
229
233
  return Reflect.get(authClient, key);
@@ -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","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":[]}
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","proxiedAuthClient","Proxy","_target","key"],"sources":["../../src/createAuthClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,89 @@
1
+ import { beforeEach, describe, expect, test, vi } from "vitest";
2
+ import { createBetterAuthClient } from "./createAuthClient.mjs";
3
+ const mocks = vi.hoisted(() => ({
4
+ createAuthClient: vi.fn(),
5
+ request: vi.fn()
6
+ }));
7
+ vi.mock("better-auth/client", () => ({
8
+ createAuthClient: mocks.createAuthClient
9
+ }));
10
+ vi.mock("@take-out/helpers", () => ({
11
+ createEmitter: (_name, initialValue) => {
12
+ const emitter = {
13
+ value: initialValue,
14
+ emit(value) {
15
+ emitter.value = value;
16
+ }
17
+ };
18
+ return emitter;
19
+ },
20
+ createStorageValue: () => ({
21
+ get: () => void 0,
22
+ set: vi.fn(),
23
+ remove: vi.fn()
24
+ }),
25
+ isEqualDeepLite: Object.is,
26
+ useEmitterValue: emitter => emitter.value
27
+ }));
28
+ describe("createBetterAuthClient signOut", () => {
29
+ beforeEach(() => {
30
+ mocks.request.mockReset();
31
+ mocks.createAuthClient.mockReset();
32
+ mocks.createAuthClient.mockReturnValue({
33
+ $fetch: mocks.request,
34
+ useSession: {
35
+ subscribe: vi.fn(() => vi.fn())
36
+ }
37
+ });
38
+ });
39
+ test("sends JSON and clears local auth only after server revocation succeeds", async () => {
40
+ const deferred = Promise.withResolvers();
41
+ mocks.request.mockReturnValue(deferred.promise);
42
+ const onAuthStateChange = vi.fn();
43
+ const client = createBetterAuthClient({
44
+ baseURL: "https://auth.example.com",
45
+ onAuthStateChange
46
+ });
47
+ const pending = client.authClient.signOut();
48
+ expect(mocks.request).toHaveBeenCalledWith("/sign-out", {
49
+ method: "POST",
50
+ body: {}
51
+ });
52
+ expect(onAuthStateChange).not.toHaveBeenCalled();
53
+ deferred.resolve({
54
+ data: {
55
+ success: true
56
+ },
57
+ error: null
58
+ });
59
+ await expect(pending).resolves.toEqual({
60
+ data: {
61
+ success: true
62
+ },
63
+ error: null
64
+ });
65
+ expect(onAuthStateChange).toHaveBeenCalledWith({
66
+ state: "logged-out",
67
+ session: null,
68
+ user: null,
69
+ token: null
70
+ });
71
+ });
72
+ test("keeps local auth when server revocation fails", async () => {
73
+ const error = {
74
+ message: "network unavailable"
75
+ };
76
+ mocks.request.mockResolvedValue({
77
+ data: null,
78
+ error
79
+ });
80
+ const onAuthStateChange = vi.fn();
81
+ const client = createBetterAuthClient({
82
+ baseURL: "https://auth.example.com",
83
+ onAuthStateChange
84
+ });
85
+ await expect(client.authClient.signOut()).rejects.toBe(error);
86
+ expect(onAuthStateChange).not.toHaveBeenCalled();
87
+ });
88
+ });
89
+ //# sourceMappingURL=createAuthClient.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["beforeEach","describe","expect","test","vi","createBetterAuthClient","mocks","hoisted","createAuthClient","fn","request","mock","createEmitter","_name","initialValue","emitter","value","emit","createStorageValue","get","set","remove","isEqualDeepLite","Object","is","useEmitterValue","mockReset","mockReturnValue","$fetch","useSession","subscribe","deferred","Promise","withResolvers","promise","onAuthStateChange","client","baseURL","pending","authClient","signOut","toHaveBeenCalledWith","method","body","not","toHaveBeenCalled","resolve","data","success","error","resolves","toEqual","state","session","user","token","message","mockResolvedValue","rejects","toBe"],"sources":["../../src/createAuthClient.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,103 @@
1
+ import { beforeEach, describe, expect, test, vi } from "vitest";
2
+ import { createBetterAuthClient } from "./createAuthClient.native.js";
3
+ var mocks = vi.hoisted(function () {
4
+ return {
5
+ createAuthClient: vi.fn(),
6
+ request: vi.fn()
7
+ };
8
+ });
9
+ vi.mock("better-auth/client", function () {
10
+ return {
11
+ createAuthClient: mocks.createAuthClient
12
+ };
13
+ });
14
+ vi.mock("@take-out/helpers", function () {
15
+ return {
16
+ createEmitter: function (_name, initialValue) {
17
+ var emitter = {
18
+ value: initialValue,
19
+ emit(value) {
20
+ emitter.value = value;
21
+ }
22
+ };
23
+ return emitter;
24
+ },
25
+ createStorageValue: function () {
26
+ return {
27
+ get: function () {
28
+ return void 0;
29
+ },
30
+ set: vi.fn(),
31
+ remove: vi.fn()
32
+ };
33
+ },
34
+ isEqualDeepLite: Object.is,
35
+ useEmitterValue: function (emitter) {
36
+ return emitter.value;
37
+ }
38
+ };
39
+ });
40
+ describe("createBetterAuthClient signOut", function () {
41
+ beforeEach(function () {
42
+ mocks.request.mockReset();
43
+ mocks.createAuthClient.mockReset();
44
+ mocks.createAuthClient.mockReturnValue({
45
+ $fetch: mocks.request,
46
+ useSession: {
47
+ subscribe: vi.fn(function () {
48
+ return vi.fn();
49
+ })
50
+ }
51
+ });
52
+ });
53
+ test("sends JSON and clears local auth only after server revocation succeeds", async function () {
54
+ var deferred = Promise.withResolvers();
55
+ mocks.request.mockReturnValue(deferred.promise);
56
+ var onAuthStateChange = vi.fn();
57
+ var client = createBetterAuthClient({
58
+ baseURL: "https://auth.example.com",
59
+ onAuthStateChange
60
+ });
61
+ var pending = client.authClient.signOut();
62
+ expect(mocks.request).toHaveBeenCalledWith("/sign-out", {
63
+ method: "POST",
64
+ body: {}
65
+ });
66
+ expect(onAuthStateChange).not.toHaveBeenCalled();
67
+ deferred.resolve({
68
+ data: {
69
+ success: true
70
+ },
71
+ error: null
72
+ });
73
+ await expect(pending).resolves.toEqual({
74
+ data: {
75
+ success: true
76
+ },
77
+ error: null
78
+ });
79
+ expect(onAuthStateChange).toHaveBeenCalledWith({
80
+ state: "logged-out",
81
+ session: null,
82
+ user: null,
83
+ token: null
84
+ });
85
+ });
86
+ test("keeps local auth when server revocation fails", async function () {
87
+ var error = {
88
+ message: "network unavailable"
89
+ };
90
+ mocks.request.mockResolvedValue({
91
+ data: null,
92
+ error
93
+ });
94
+ var onAuthStateChange = vi.fn();
95
+ var client = createBetterAuthClient({
96
+ baseURL: "https://auth.example.com",
97
+ onAuthStateChange
98
+ });
99
+ await expect(client.authClient.signOut()).rejects.toBe(error);
100
+ expect(onAuthStateChange).not.toHaveBeenCalled();
101
+ });
102
+ });
103
+ //# sourceMappingURL=createAuthClient.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["beforeEach","describe","expect","test","vi","createBetterAuthClient","mocks","hoisted","createAuthClient","fn","request","mock","createEmitter","_name","initialValue","emitter","value","emit","createStorageValue","get","set","remove","isEqualDeepLite","Object","is","useEmitterValue","mockReset","mockReturnValue","$fetch","useSession","subscribe","deferred","Promise","withResolvers","promise","onAuthStateChange","client","baseURL","pending","authClient","signOut","toHaveBeenCalledWith","method","body","not","toHaveBeenCalled","resolve","data","success","error","resolves","toEqual"],"sources":["../../src/createAuthClient.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,QAAA,EAAUC,MAAA,EAAQC,IAAA,EAAMC,EAAA,QAAU;AA8BvD,SAASC,sBAAA,QAA8B;AA5BvC,IAAAC,KAAM,GAAAF,EAAQ,CAAAG,OAAG,aAAe;EAC9B;IACAC,gBAAe,EAAAJ,EAAA,CAAAK,EAAA;IACfC,OAAA,EAAAN,EAAA,CAAAK,EAAA;EAEF,CAAG;AAAkC,EACnC;AACFL,EAAE,CAAAO,IAAA;EAEF,OAAQ;IACNH,gBAAgB,EAAAF,KAAe,CAAAE;EAC7B;AAAgB;AACPJ,EAAA,CAAAO,IACP,oBAAqB;EACnB;IAAgBC,aAClB,WAAAA,CAAAC,KAAA,EAAAC,YAAA;MACF,IAAAC,OAAA;QACAC,KAAO,EAAAF,YAAA;QACTG,KAAAD,KAAA;UACAD,OAAA,CAAAC,KAAoB,GAAAA,KAAO;QACzB;MACA;MACA,OAAQD,OAAM;IAChB;IACAG,kBAAiB,WAAAA,CAAA,EAAO;MACxB;QACAC,GAAA,WAAAA,CAAA;UAIO;QACP;QACEC,GAAM,EAAAhB,EAAA,CAAAK,EAAQ;QACdY,MAAM,EAAAjB,EAAA,CAAAK,EAAA;MACN;IAAuC;IACvBa,eACF,EAAAC,MAAA,CAAAC,EAAA;IAAAC,eACC,WAAAA,CAAMV,OAAY,EAAC;MAChC,OAAAA,OAAA,CAAAC,KAAA;IACF;EACF,CAAC;AAED;AACEf,QAAA,iCAAyB,EAGtB;EACHD,UAAM,aAAQ;IACdM,KAAA,CAAMI,OAAA,CAAAgB,SAAA;IACNpB,KAAA,CAAME,gBAAS,CAAAkB,SAAA;IAAuBpB,KACpC,CAAAE,gBAAS,CAAAmB,eAAA;MACTC,MAAA,EAAAtB,KAAA,CAAAI,OAAA;MACDmB,UAAA;QAEDC,SAAM,EAAA1B,EAAU,CAAAK,EAAA,aAAO;UACvB,OAAaL,EAAA,CAAAK,EAAA,EAAO;QAClB;MACA;IACF,CAAC;EACD;EAEAN,IAAA,yEAAyD;IACzD,IAAA4B,QAAM,GAAOC,OAAS,CAAAC,aAAS;IAC/B3B,KAAA,CAAAI,OAAO,CAAAiB,eAAmB,CAAAI,QAAA,CAAAG,OAAA,CAAqB;IAAA,IAC7CC,iBAAO,GAAA/B,EAAA,CAAAK,EAAA;IAAA,IACP2B,MAAA,GAAS/B,sBAAA;MACTgC,OAAM;MACNF;IACF,CAAC;IACF,IAAAG,OAAA,GAAAF,MAAA,CAAAG,UAAA,CAAAC,OAAA;IAEDtC,MAAK,CAAAI,KAAA,CAAAI,OAAA,EAAA+B,oBAAA,YAAiD;MACpDC,MAAM,QAAU;MAChBC,IAAM;IACN;IACAzC,MAAM,CAAAiC,iBAAS,EAAAS,GAAA,CAAAC,gBAAuB;IAAAd,QACpC,CAAAe,OAAS;MACTC,IAAA;QACDC,OAAA;MAED;MACAC,KAAO;IACR;IACF,MAAA/C,MAAA,CAAAoC,OAAA,EAAAY,QAAA,CAAAC,OAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@take-out/better-auth-utils",
3
- "version": "0.7.0",
3
+ "version": "0.7.1-1784516754882",
4
4
  "description": "Better auth utilities and client for React/React Native applications",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -16,6 +16,7 @@
16
16
  "scripts": {
17
17
  "build": "tamagui-build --skip-types",
18
18
  "watch": "tamagui-build --skip-types --watch",
19
+ "test": "vitest run",
19
20
  "lint": "oxlint src",
20
21
  "lint:fix": "oxfmt src && oxlint --fix --fix-suggestions src",
21
22
  "clean": "tamagui-build clean",
@@ -38,7 +39,7 @@
38
39
  }
39
40
  },
40
41
  "dependencies": {
41
- "@take-out/helpers": "0.7.0",
42
+ "@take-out/helpers": "0.7.1-1784516754882",
42
43
  "jose": "^6.0.10"
43
44
  },
44
45
  "peerDependencies": {
@@ -51,7 +52,8 @@
51
52
  "@types/react": "^19.0.8",
52
53
  "oxfmt": "^0.16.0",
53
54
  "oxlint": "^1.31.0",
54
- "react": "*"
55
+ "react": "*",
56
+ "vitest": "4.1.0"
55
57
  },
56
58
  "publishConfig": {
57
59
  "access": "public"
@@ -0,0 +1,86 @@
1
+ import { beforeEach, describe, expect, test, vi } from 'vitest'
2
+
3
+ const mocks = vi.hoisted(() => ({
4
+ createAuthClient: vi.fn(),
5
+ request: vi.fn(),
6
+ }))
7
+
8
+ vi.mock('better-auth/client', () => ({
9
+ createAuthClient: mocks.createAuthClient,
10
+ }))
11
+
12
+ vi.mock('@take-out/helpers', () => ({
13
+ createEmitter: (_name: string, initialValue: unknown) => {
14
+ const emitter = {
15
+ value: initialValue,
16
+ emit(value: unknown) {
17
+ emitter.value = value
18
+ },
19
+ }
20
+ return emitter
21
+ },
22
+ createStorageValue: () => ({
23
+ get: () => undefined,
24
+ set: vi.fn(),
25
+ remove: vi.fn(),
26
+ }),
27
+ isEqualDeepLite: Object.is,
28
+ useEmitterValue: (emitter: { value: unknown }) => emitter.value,
29
+ }))
30
+
31
+ import { createBetterAuthClient } from './createAuthClient'
32
+
33
+ describe('createBetterAuthClient signOut', () => {
34
+ beforeEach(() => {
35
+ mocks.request.mockReset()
36
+ mocks.createAuthClient.mockReset()
37
+ mocks.createAuthClient.mockReturnValue({
38
+ $fetch: mocks.request,
39
+ useSession: {
40
+ subscribe: vi.fn(() => vi.fn()),
41
+ },
42
+ })
43
+ })
44
+
45
+ test('sends JSON and clears local auth only after server revocation succeeds', async () => {
46
+ const deferred = Promise.withResolvers<{
47
+ data: { success: true }
48
+ error: null
49
+ }>()
50
+ mocks.request.mockReturnValue(deferred.promise)
51
+ const onAuthStateChange = vi.fn()
52
+ const client = createBetterAuthClient({
53
+ baseURL: 'https://auth.example.com',
54
+ onAuthStateChange,
55
+ })
56
+
57
+ const pending = client.authClient.signOut()
58
+ expect(mocks.request).toHaveBeenCalledWith('/sign-out', {
59
+ method: 'POST',
60
+ body: {},
61
+ })
62
+ expect(onAuthStateChange).not.toHaveBeenCalled()
63
+
64
+ deferred.resolve({ data: { success: true }, error: null })
65
+ await expect(pending).resolves.toEqual({ data: { success: true }, error: null })
66
+ expect(onAuthStateChange).toHaveBeenCalledWith({
67
+ state: 'logged-out',
68
+ session: null,
69
+ user: null,
70
+ token: null,
71
+ })
72
+ })
73
+
74
+ test('keeps local auth when server revocation fails', async () => {
75
+ const error = { message: 'network unavailable' }
76
+ mocks.request.mockResolvedValue({ data: null, error })
77
+ const onAuthStateChange = vi.fn()
78
+ const client = createBetterAuthClient({
79
+ baseURL: 'https://auth.example.com',
80
+ onAuthStateChange,
81
+ })
82
+
83
+ await expect(client.authClient.signOut()).rejects.toBe(error)
84
+ expect(onAuthStateChange).not.toHaveBeenCalled()
85
+ })
86
+ })
@@ -337,13 +337,20 @@ export function createBetterAuthClient<const Opts extends BetterAuthClientProps<
337
337
  const proxiedAuthClient = new Proxy(authClient, {
338
338
  get(_target, key) {
339
339
  if (key === 'signOut') {
340
- return () => {
340
+ return async () => {
341
+ // an explicit empty body makes better-fetch send JSON instead of a
342
+ // bodyless POST, which Better Auth rejects with 415.
343
+ const result = await authClient.$fetch('/sign-out', {
344
+ method: 'POST',
345
+ body: {},
346
+ })
347
+ if (result.error) throw result.error
348
+
341
349
  clearState()
342
- // @ts-expect-error better-auth type issue
343
- authClient.signOut?.()
344
350
  if (typeof window !== 'undefined') {
345
351
  window.location?.reload?.()
346
352
  }
353
+ return result
347
354
  }
348
355
  }
349
356
  return Reflect.get(authClient, key)
@@ -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 // 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(Math.min(retryDelay * 2 ** (consecutiveFailures - 1), 60_000))\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"
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(Math.min(retryDelay * 2 ** (consecutiveFailures - 1), 60_000))\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 async () => {\n // an explicit empty body makes better-fetch send JSON instead of a\n // bodyless POST, which Better Auth rejects with 415.\n const result = await authClient.$fetch('/sign-out', {\n method: 'POST',\n body: {},\n })\n if (result.error) throw result.error\n\n clearState()\n if (typeof window !== 'undefined') {\n window.location?.reload?.()\n }\n return result\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
  }
@@ -0,0 +1,3 @@
1
+ export {};
2
+
3
+ //# sourceMappingURL=createAuthClient.test.d.ts.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "mappings": "",
3
+ "names": [],
4
+ "sources": [
5
+ "src/createAuthClient.test.ts"
6
+ ],
7
+ "version": 3,
8
+ "sourcesContent": [
9
+ "import { beforeEach, describe, expect, test, vi } from 'vitest'\n\nconst mocks = vi.hoisted(() => ({\n createAuthClient: vi.fn(),\n request: vi.fn(),\n}))\n\nvi.mock('better-auth/client', () => ({\n createAuthClient: mocks.createAuthClient,\n}))\n\nvi.mock('@take-out/helpers', () => ({\n createEmitter: (_name: string, initialValue: unknown) => {\n const emitter = {\n value: initialValue,\n emit(value: unknown) {\n emitter.value = value\n },\n }\n return emitter\n },\n createStorageValue: () => ({\n get: () => undefined,\n set: vi.fn(),\n remove: vi.fn(),\n }),\n isEqualDeepLite: Object.is,\n useEmitterValue: (emitter: { value: unknown }) => emitter.value,\n}))\n\nimport { createBetterAuthClient } from './createAuthClient'\n\ndescribe('createBetterAuthClient signOut', () => {\n beforeEach(() => {\n mocks.request.mockReset()\n mocks.createAuthClient.mockReset()\n mocks.createAuthClient.mockReturnValue({\n $fetch: mocks.request,\n useSession: {\n subscribe: vi.fn(() => vi.fn()),\n },\n })\n })\n\n test('sends JSON and clears local auth only after server revocation succeeds', async () => {\n const deferred = Promise.withResolvers<{\n data: { success: true }\n error: null\n }>()\n mocks.request.mockReturnValue(deferred.promise)\n const onAuthStateChange = vi.fn()\n const client = createBetterAuthClient({\n baseURL: 'https://auth.example.com',\n onAuthStateChange,\n })\n\n const pending = client.authClient.signOut()\n expect(mocks.request).toHaveBeenCalledWith('/sign-out', {\n method: 'POST',\n body: {},\n })\n expect(onAuthStateChange).not.toHaveBeenCalled()\n\n deferred.resolve({ data: { success: true }, error: null })\n await expect(pending).resolves.toEqual({ data: { success: true }, error: null })\n expect(onAuthStateChange).toHaveBeenCalledWith({\n state: 'logged-out',\n session: null,\n user: null,\n token: null,\n })\n })\n\n test('keeps local auth when server revocation fails', async () => {\n const error = { message: 'network unavailable' }\n mocks.request.mockResolvedValue({ data: null, error })\n const onAuthStateChange = vi.fn()\n const client = createBetterAuthClient({\n baseURL: 'https://auth.example.com',\n onAuthStateChange,\n })\n\n await expect(client.authClient.signOut()).rejects.toBe(error)\n expect(onAuthStateChange).not.toHaveBeenCalled()\n })\n})\n"
10
+ ]
11
+ }