@djangocfg/api 2.1.483 → 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/index.cjs CHANGED
@@ -207,8 +207,23 @@ var cookieBackend = {
207
207
  }
208
208
  }
209
209
  };
210
- var _storage = localStorageBackend;
211
- var _storageMode = "localStorage";
210
+ function backendFor(mode) {
211
+ return mode === "cookie" ? cookieBackend : mode === "sessionStorage" ? sessionStorageBackend : localStorageBackend;
212
+ }
213
+ __name(backendFor, "backendFor");
214
+ var STORAGE_MODE_KEY = "cfg.access_token.storage_mode";
215
+ function readPersistedMode() {
216
+ if (!isBrowser) return "localStorage";
217
+ try {
218
+ const raw = window.localStorage.getItem(STORAGE_MODE_KEY);
219
+ return raw === "sessionStorage" || raw === "cookie" || raw === "localStorage" ? raw : "localStorage";
220
+ } catch {
221
+ return "localStorage";
222
+ }
223
+ }
224
+ __name(readPersistedMode, "readPersistedMode");
225
+ var _storageMode = readPersistedMode();
226
+ var _storage = backendFor(_storageMode);
212
227
  function detectLocale() {
213
228
  try {
214
229
  if (typeof document !== "undefined") {
@@ -364,7 +379,13 @@ var auth = {
364
379
  },
365
380
  setStorageMode(mode) {
366
381
  _storageMode = mode;
367
- _storage = mode === "cookie" ? cookieBackend : mode === "sessionStorage" ? sessionStorageBackend : localStorageBackend;
382
+ _storage = backendFor(mode);
383
+ if (isBrowser) {
384
+ try {
385
+ window.localStorage.setItem(STORAGE_MODE_KEY, mode);
386
+ } catch {
387
+ }
388
+ }
368
389
  notifySessionChanged();
369
390
  },
370
391
  // ── Bearer token ──────────────────────────────────────────────────
@@ -383,8 +404,18 @@ var auth = {
383
404
  notifySessionChanged();
384
405
  },
385
406
  clearTokens() {
386
- _storage.set(ACCESS_KEY, null);
387
- _storage.set(REFRESH_KEY, null);
407
+ for (const backend of [localStorageBackend, sessionStorageBackend, cookieBackend]) {
408
+ backend.set(ACCESS_KEY, null);
409
+ backend.set(REFRESH_KEY, null);
410
+ }
411
+ _storageMode = "localStorage";
412
+ _storage = localStorageBackend;
413
+ if (isBrowser) {
414
+ try {
415
+ window.localStorage.removeItem(STORAGE_MODE_KEY);
416
+ } catch {
417
+ }
418
+ }
388
419
  notifySessionChanged();
389
420
  },
390
421
  /** Session-aware: token PRESENT and not past its `exp` (or a live refresh