@dreamshive/better-auth-tauri 0.1.2 → 0.1.4
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.
- package/README.md +1 -0
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +74 -10
- package/dist/client.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -2
- package/src/client.ts +83 -11
- package/src/version.ts +1 -1
package/README.md
CHANGED
|
@@ -54,6 +54,7 @@ Two things worth calling out:
|
|
|
54
54
|
|
|
55
55
|
1. **`x-tauri-cookie` header smuggling.** The Fetch spec marks `Cookie` as a [forbidden header name](https://fetch.spec.whatwg.org/#forbidden-header-name). Webviews silently drop attempts to set it. We smuggle the session through `x-tauri-cookie` and the **server** plugin rewrites it back to `Cookie` before Better Auth inspects the request.
|
|
56
56
|
2. **`disableRedirect: true` auto-injection.** Better Auth's Vue/React client normally navigates `window.location.href` to the OAuth URL — fine in a browser, catastrophic in a single-window Tauri app (the webview takes over with the provider's login page). The client plugin injects `disableRedirect: true` into `/sign-in/social` and `/sign-in/oauth2` requests so the client stays put.
|
|
57
|
+
3. **Cookie mutations are serialized.** Response cookies, deep-link callbacks, and signout share one local mutation queue. A delayed response may revoke only the session it was sent with, and an OAuth callback cannot restore a session after explicit signout.
|
|
57
58
|
|
|
58
59
|
## Installation
|
|
59
60
|
|
package/dist/client.d.ts
CHANGED
|
@@ -48,7 +48,7 @@ export interface TauriClientOptions {
|
|
|
48
48
|
}
|
|
49
49
|
export declare const tauriClient: (opts: TauriClientOptions) => {
|
|
50
50
|
id: "tauri";
|
|
51
|
-
getActions(_:
|
|
51
|
+
getActions(_: Parameters<NonNullable<BetterAuthClientPlugin["getActions"]>>[0], $store: ClientStore, _options: import("better-auth").BetterAuthClientOptions | undefined): {
|
|
52
52
|
/**
|
|
53
53
|
* Returns the currently-stored cookie string in the standard
|
|
54
54
|
* `key=value; key2=value2` format — useful if you need to attach it
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAe5B,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,OAAO,EAAE,kBAAkB,CAAC;IAE5B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEjC,uDAAuD;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAe5B,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,OAAO,EAAE,kBAAkB,CAAC;IAE5B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEjC,uDAAuD;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAoMD,eAAO,MAAM,WAAW,GAAI,MAAM,kBAAkB;;kBAwC3C,UAAU,CAAC,WAAW,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAkBjE;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BA2M8B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCzC,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,YAAY,EAAE,sBAAsB,EAAE,CAAC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/client.js
CHANGED
|
@@ -40,6 +40,20 @@ function getCookie(cookie) {
|
|
|
40
40
|
return acc ? `${acc}; ${key}=${value.value}` : `${key}=${value.value}`;
|
|
41
41
|
}, "");
|
|
42
42
|
}
|
|
43
|
+
function getSessionCookieSignature(cookie) {
|
|
44
|
+
return cookie
|
|
45
|
+
.split(";")
|
|
46
|
+
.map((part) => part.trim())
|
|
47
|
+
.filter((part) => {
|
|
48
|
+
const separator = part.indexOf("=");
|
|
49
|
+
if (separator < 1)
|
|
50
|
+
return false;
|
|
51
|
+
const bare = stripSecureCookiePrefix(part.slice(0, separator));
|
|
52
|
+
return bare.endsWith("session_token") || bare.endsWith("session_data");
|
|
53
|
+
})
|
|
54
|
+
.sort()
|
|
55
|
+
.join(";");
|
|
56
|
+
}
|
|
43
57
|
function getOAuthStateValue(cookieJson, cookiePrefix) {
|
|
44
58
|
if (!cookieJson)
|
|
45
59
|
return null;
|
|
@@ -178,8 +192,26 @@ export const tauriClient = (opts) => {
|
|
|
178
192
|
const refetchOnWindowFocus = opts.refetchOnWindowFocus !== false;
|
|
179
193
|
const refetchOnReconnect = opts.refetchOnReconnect !== false;
|
|
180
194
|
let store = null;
|
|
195
|
+
let cookieMutation = Promise.resolve();
|
|
196
|
+
let signOutGeneration = 0;
|
|
197
|
+
async function mutateCookie(mutation) {
|
|
198
|
+
const previousMutation = cookieMutation;
|
|
199
|
+
let release = () => { };
|
|
200
|
+
cookieMutation = new Promise((resolve) => {
|
|
201
|
+
release = resolve;
|
|
202
|
+
});
|
|
203
|
+
await previousMutation;
|
|
204
|
+
try {
|
|
205
|
+
return await mutation();
|
|
206
|
+
}
|
|
207
|
+
finally {
|
|
208
|
+
release();
|
|
209
|
+
}
|
|
210
|
+
}
|
|
181
211
|
return {
|
|
182
212
|
id: "tauri",
|
|
213
|
+
// Keep the emitted declaration tied to Better Auth's own fetch type.
|
|
214
|
+
// Contextual inference alone emits an incompatible standalone BetterFetch.
|
|
183
215
|
getActions(_, $store, _options) {
|
|
184
216
|
store = $store;
|
|
185
217
|
// Wire up focus + online refetch managers once the store is
|
|
@@ -218,17 +250,38 @@ export const tauriClient = (opts) => {
|
|
|
218
250
|
const setCookieHeader = context.response.headers.get("set-cookie");
|
|
219
251
|
if (setCookieHeader) {
|
|
220
252
|
if (hasBetterAuthCookies(setCookieHeader, cookiePrefix)) {
|
|
221
|
-
const
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
253
|
+
const changed = await mutateCookie(async () => {
|
|
254
|
+
const prev = await storage.getItem(cookieName);
|
|
255
|
+
const next = getSetCookie(setCookieHeader, prev ?? undefined);
|
|
256
|
+
const requestCookie = context.request.headers.get("x-tauri-cookie") ?? "";
|
|
257
|
+
const sessionChanged = hasSessionCookieChanged(prev, next);
|
|
258
|
+
// A delayed request must not change a newer session restored by an
|
|
259
|
+
// OAuth callback, replacement, or explicit signout. Checking every
|
|
260
|
+
// session change also protects paired token/data cookies independently.
|
|
261
|
+
if (sessionChanged &&
|
|
262
|
+
getSessionCookieSignature(requestCookie) !==
|
|
263
|
+
getSessionCookieSignature(getCookie(prev ?? "{}"))) {
|
|
264
|
+
return false;
|
|
265
|
+
}
|
|
266
|
+
await storage.setItem(cookieName, next);
|
|
267
|
+
return sessionChanged;
|
|
268
|
+
});
|
|
269
|
+
if (changed) {
|
|
225
270
|
store?.notify("$sessionSignal");
|
|
226
271
|
}
|
|
227
272
|
}
|
|
228
273
|
}
|
|
229
274
|
if (context.request.url.toString().includes("/get-session") &&
|
|
230
275
|
!opts.disableCache) {
|
|
231
|
-
await
|
|
276
|
+
const cacheIsCurrent = await mutateCookie(async () => {
|
|
277
|
+
const stored = await storage.getItem(cookieName);
|
|
278
|
+
const requestCookie = context.request.headers.get("x-tauri-cookie") ?? "";
|
|
279
|
+
return (getSessionCookieSignature(requestCookie) ===
|
|
280
|
+
getSessionCookieSignature(getCookie(stored ?? "{}")));
|
|
281
|
+
});
|
|
282
|
+
if (cacheIsCurrent) {
|
|
283
|
+
await storage.setItem(localCacheName, JSON.stringify(context.data));
|
|
284
|
+
}
|
|
232
285
|
}
|
|
233
286
|
// Detect social / generic-oauth sign-in AND account-linking
|
|
234
287
|
// responses that include an authorization URL. We check the URL
|
|
@@ -284,16 +337,24 @@ export const tauriClient = (opts) => {
|
|
|
284
337
|
params.append("oauthState", oauthStateValue);
|
|
285
338
|
}
|
|
286
339
|
const proxyURL = `${context.request.baseURL}/tauri-authorization-proxy?${params.toString()}`;
|
|
340
|
+
const callbackGeneration = signOutGeneration;
|
|
287
341
|
try {
|
|
288
342
|
const callbackURL = await openAuthSession(proxyURL, scheme);
|
|
289
343
|
const parsed = new URL(callbackURL);
|
|
290
344
|
const cookie = parsed.searchParams.get("cookie");
|
|
291
345
|
if (!cookie)
|
|
292
346
|
return;
|
|
293
|
-
const
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
347
|
+
const restored = await mutateCookie(async () => {
|
|
348
|
+
// Explicit signout invalidates a still-open browser OAuth flow.
|
|
349
|
+
if (callbackGeneration !== signOutGeneration)
|
|
350
|
+
return false;
|
|
351
|
+
const prev = await storage.getItem(cookieName);
|
|
352
|
+
const next = getSetCookie(cookie, prev ?? undefined);
|
|
353
|
+
await storage.setItem(cookieName, next);
|
|
354
|
+
return true;
|
|
355
|
+
});
|
|
356
|
+
if (restored)
|
|
357
|
+
store?.notify("$sessionSignal");
|
|
297
358
|
}
|
|
298
359
|
catch (err) {
|
|
299
360
|
// Re-throw so the caller of signIn.social() sees the failure.
|
|
@@ -362,7 +423,10 @@ export const tauriClient = (opts) => {
|
|
|
362
423
|
// Clear local state on sign-out so the app immediately reflects
|
|
363
424
|
// the logged-out state.
|
|
364
425
|
if (url.includes("/sign-out")) {
|
|
365
|
-
await
|
|
426
|
+
await mutateCookie(async () => {
|
|
427
|
+
signOutGeneration += 1;
|
|
428
|
+
await storage.setItem(cookieName, "{}");
|
|
429
|
+
});
|
|
366
430
|
await storage.setItem(localCacheName, "{}");
|
|
367
431
|
store?.atoms?.session?.set({
|
|
368
432
|
...store.atoms.session.get(),
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const PACKAGE_VERSION = "0.1.
|
|
1
|
+
export declare const PACKAGE_VERSION = "0.1.4";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const PACKAGE_VERSION = "0.1.
|
|
1
|
+
export const PACKAGE_VERSION = "0.1.4";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dreamshive/better-auth-tauri",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Better Auth plugin for Tauri desktop apps — handles OAuth via the system browser with deep-link callbacks, cookie bridging via URL, and secure token storage hooks.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Rully Ardiansyah",
|
|
@@ -49,7 +49,8 @@
|
|
|
49
49
|
"test": "vitest run",
|
|
50
50
|
"test:watch": "vitest",
|
|
51
51
|
"clean": "rm -rf dist",
|
|
52
|
-
"prepublishOnly": "bun run clean && bun run build && bun run typecheck && bun run test"
|
|
52
|
+
"prepublishOnly": "bun run clean && bun run build && bun run typecheck && bun run test && bun run test:packed",
|
|
53
|
+
"test:packed": "node scripts/check-packed-consumer.mjs"
|
|
53
54
|
},
|
|
54
55
|
"dependencies": {
|
|
55
56
|
"zod": "^3.24.0 || ^4.0.0"
|
package/src/client.ts
CHANGED
|
@@ -115,6 +115,20 @@ function getCookie(cookie: string): string {
|
|
|
115
115
|
}, "");
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
+
function getSessionCookieSignature(cookie: string): string {
|
|
119
|
+
return cookie
|
|
120
|
+
.split(";")
|
|
121
|
+
.map((part) => part.trim())
|
|
122
|
+
.filter((part) => {
|
|
123
|
+
const separator = part.indexOf("=");
|
|
124
|
+
if (separator < 1) return false;
|
|
125
|
+
const bare = stripSecureCookiePrefix(part.slice(0, separator));
|
|
126
|
+
return bare.endsWith("session_token") || bare.endsWith("session_data");
|
|
127
|
+
})
|
|
128
|
+
.sort()
|
|
129
|
+
.join(";");
|
|
130
|
+
}
|
|
131
|
+
|
|
118
132
|
function getOAuthStateValue(
|
|
119
133
|
cookieJson: string | null,
|
|
120
134
|
cookiePrefix: string | string[],
|
|
@@ -269,10 +283,32 @@ export const tauriClient = (opts: TauriClientOptions) => {
|
|
|
269
283
|
const refetchOnReconnect = opts.refetchOnReconnect !== false;
|
|
270
284
|
|
|
271
285
|
let store: ClientStore | null = null;
|
|
286
|
+
let cookieMutation = Promise.resolve();
|
|
287
|
+
let signOutGeneration = 0;
|
|
288
|
+
|
|
289
|
+
async function mutateCookie<T>(mutation: () => Promise<T>): Promise<T> {
|
|
290
|
+
const previousMutation = cookieMutation;
|
|
291
|
+
let release: () => void = () => {};
|
|
292
|
+
cookieMutation = new Promise<void>((resolve) => {
|
|
293
|
+
release = resolve;
|
|
294
|
+
});
|
|
295
|
+
await previousMutation;
|
|
296
|
+
try {
|
|
297
|
+
return await mutation();
|
|
298
|
+
} finally {
|
|
299
|
+
release();
|
|
300
|
+
}
|
|
301
|
+
}
|
|
272
302
|
|
|
273
303
|
return {
|
|
274
304
|
id: "tauri",
|
|
275
|
-
|
|
305
|
+
// Keep the emitted declaration tied to Better Auth's own fetch type.
|
|
306
|
+
// Contextual inference alone emits an incompatible standalone BetterFetch.
|
|
307
|
+
getActions(
|
|
308
|
+
_: Parameters<NonNullable<BetterAuthClientPlugin["getActions"]>>[0],
|
|
309
|
+
$store,
|
|
310
|
+
_options,
|
|
311
|
+
) {
|
|
276
312
|
store = $store;
|
|
277
313
|
|
|
278
314
|
// Wire up focus + online refetch managers once the store is
|
|
@@ -311,10 +347,27 @@ export const tauriClient = (opts: TauriClientOptions) => {
|
|
|
311
347
|
const setCookieHeader = context.response.headers.get("set-cookie");
|
|
312
348
|
if (setCookieHeader) {
|
|
313
349
|
if (hasBetterAuthCookies(setCookieHeader, cookiePrefix)) {
|
|
314
|
-
const
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
350
|
+
const changed = await mutateCookie(async () => {
|
|
351
|
+
const prev = await storage.getItem(cookieName);
|
|
352
|
+
const next = getSetCookie(setCookieHeader, prev ?? undefined);
|
|
353
|
+
const requestCookie = context.request.headers.get("x-tauri-cookie") ?? "";
|
|
354
|
+
const sessionChanged = hasSessionCookieChanged(prev, next);
|
|
355
|
+
|
|
356
|
+
// A delayed request must not change a newer session restored by an
|
|
357
|
+
// OAuth callback, replacement, or explicit signout. Checking every
|
|
358
|
+
// session change also protects paired token/data cookies independently.
|
|
359
|
+
if (
|
|
360
|
+
sessionChanged &&
|
|
361
|
+
getSessionCookieSignature(requestCookie) !==
|
|
362
|
+
getSessionCookieSignature(getCookie(prev ?? "{}"))
|
|
363
|
+
) {
|
|
364
|
+
return false;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
await storage.setItem(cookieName, next);
|
|
368
|
+
return sessionChanged;
|
|
369
|
+
});
|
|
370
|
+
if (changed) {
|
|
318
371
|
store?.notify("$sessionSignal");
|
|
319
372
|
}
|
|
320
373
|
}
|
|
@@ -324,7 +377,17 @@ export const tauriClient = (opts: TauriClientOptions) => {
|
|
|
324
377
|
context.request.url.toString().includes("/get-session") &&
|
|
325
378
|
!opts.disableCache
|
|
326
379
|
) {
|
|
327
|
-
await
|
|
380
|
+
const cacheIsCurrent = await mutateCookie(async () => {
|
|
381
|
+
const stored = await storage.getItem(cookieName);
|
|
382
|
+
const requestCookie = context.request.headers.get("x-tauri-cookie") ?? "";
|
|
383
|
+
return (
|
|
384
|
+
getSessionCookieSignature(requestCookie) ===
|
|
385
|
+
getSessionCookieSignature(getCookie(stored ?? "{}"))
|
|
386
|
+
);
|
|
387
|
+
});
|
|
388
|
+
if (cacheIsCurrent) {
|
|
389
|
+
await storage.setItem(localCacheName, JSON.stringify(context.data));
|
|
390
|
+
}
|
|
328
391
|
}
|
|
329
392
|
|
|
330
393
|
// Detect social / generic-oauth sign-in AND account-linking
|
|
@@ -389,16 +452,22 @@ export const tauriClient = (opts: TauriClientOptions) => {
|
|
|
389
452
|
params.append("oauthState", oauthStateValue);
|
|
390
453
|
}
|
|
391
454
|
const proxyURL = `${context.request.baseURL}/tauri-authorization-proxy?${params.toString()}`;
|
|
455
|
+
const callbackGeneration = signOutGeneration;
|
|
392
456
|
|
|
393
457
|
try {
|
|
394
458
|
const callbackURL = await openAuthSession(proxyURL, scheme);
|
|
395
459
|
const parsed = new URL(callbackURL);
|
|
396
460
|
const cookie = parsed.searchParams.get("cookie");
|
|
397
461
|
if (!cookie) return;
|
|
398
|
-
const
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
462
|
+
const restored = await mutateCookie(async () => {
|
|
463
|
+
// Explicit signout invalidates a still-open browser OAuth flow.
|
|
464
|
+
if (callbackGeneration !== signOutGeneration) return false;
|
|
465
|
+
const prev = await storage.getItem(cookieName);
|
|
466
|
+
const next = getSetCookie(cookie, prev ?? undefined);
|
|
467
|
+
await storage.setItem(cookieName, next);
|
|
468
|
+
return true;
|
|
469
|
+
});
|
|
470
|
+
if (restored) store?.notify("$sessionSignal");
|
|
402
471
|
} catch (err) {
|
|
403
472
|
// Re-throw so the caller of signIn.social() sees the failure.
|
|
404
473
|
throw err;
|
|
@@ -474,7 +543,10 @@ export const tauriClient = (opts: TauriClientOptions) => {
|
|
|
474
543
|
// Clear local state on sign-out so the app immediately reflects
|
|
475
544
|
// the logged-out state.
|
|
476
545
|
if (url.includes("/sign-out")) {
|
|
477
|
-
await
|
|
546
|
+
await mutateCookie(async () => {
|
|
547
|
+
signOutGeneration += 1;
|
|
548
|
+
await storage.setItem(cookieName, "{}");
|
|
549
|
+
});
|
|
478
550
|
await storage.setItem(localCacheName, "{}");
|
|
479
551
|
store?.atoms?.session?.set({
|
|
480
552
|
...(store.atoms.session.get() as object),
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const PACKAGE_VERSION = "0.1.
|
|
1
|
+
export const PACKAGE_VERSION = "0.1.4";
|