@djangocfg/api 2.1.484 → 2.1.486

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/dist/auth.cjs CHANGED
@@ -228,8 +228,23 @@ var cookieBackend = {
228
228
  }
229
229
  }
230
230
  };
231
- var _storage = localStorageBackend;
232
- var _storageMode = "localStorage";
231
+ function backendFor(mode) {
232
+ return mode === "cookie" ? cookieBackend : mode === "sessionStorage" ? sessionStorageBackend : localStorageBackend;
233
+ }
234
+ __name(backendFor, "backendFor");
235
+ var STORAGE_MODE_KEY = "cfg.access_token.storage_mode";
236
+ function readPersistedMode() {
237
+ if (!isBrowser) return "localStorage";
238
+ try {
239
+ const raw = window.localStorage.getItem(STORAGE_MODE_KEY);
240
+ return raw === "sessionStorage" || raw === "cookie" || raw === "localStorage" ? raw : "localStorage";
241
+ } catch {
242
+ return "localStorage";
243
+ }
244
+ }
245
+ __name(readPersistedMode, "readPersistedMode");
246
+ var _storageMode = readPersistedMode();
247
+ var _storage = backendFor(_storageMode);
233
248
  function detectLocale() {
234
249
  try {
235
250
  if (typeof document !== "undefined") {
@@ -385,7 +400,13 @@ var auth = {
385
400
  },
386
401
  setStorageMode(mode) {
387
402
  _storageMode = mode;
388
- _storage = mode === "cookie" ? cookieBackend : mode === "sessionStorage" ? sessionStorageBackend : localStorageBackend;
403
+ _storage = backendFor(mode);
404
+ if (isBrowser) {
405
+ try {
406
+ window.localStorage.setItem(STORAGE_MODE_KEY, mode);
407
+ } catch {
408
+ }
409
+ }
389
410
  notifySessionChanged();
390
411
  },
391
412
  // ── Bearer token ──────────────────────────────────────────────────
@@ -404,8 +425,18 @@ var auth = {
404
425
  notifySessionChanged();
405
426
  },
406
427
  clearTokens() {
407
- _storage.set(ACCESS_KEY, null);
408
- _storage.set(REFRESH_KEY, null);
428
+ for (const backend of [localStorageBackend, sessionStorageBackend, cookieBackend]) {
429
+ backend.set(ACCESS_KEY, null);
430
+ backend.set(REFRESH_KEY, null);
431
+ }
432
+ _storageMode = "localStorage";
433
+ _storage = localStorageBackend;
434
+ if (isBrowser) {
435
+ try {
436
+ window.localStorage.removeItem(STORAGE_MODE_KEY);
437
+ } catch {
438
+ }
439
+ }
409
440
  notifySessionChanged();
410
441
  },
411
442
  /** Session-aware: token PRESENT and not past its `exp` (or a live refresh