@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.mjs CHANGED
@@ -147,8 +147,23 @@ var cookieBackend = {
147
147
  }
148
148
  }
149
149
  };
150
- var _storage = localStorageBackend;
151
- var _storageMode = "localStorage";
150
+ function backendFor(mode) {
151
+ return mode === "cookie" ? cookieBackend : mode === "sessionStorage" ? sessionStorageBackend : localStorageBackend;
152
+ }
153
+ __name(backendFor, "backendFor");
154
+ var STORAGE_MODE_KEY = "cfg.access_token.storage_mode";
155
+ function readPersistedMode() {
156
+ if (!isBrowser) return "localStorage";
157
+ try {
158
+ const raw = window.localStorage.getItem(STORAGE_MODE_KEY);
159
+ return raw === "sessionStorage" || raw === "cookie" || raw === "localStorage" ? raw : "localStorage";
160
+ } catch {
161
+ return "localStorage";
162
+ }
163
+ }
164
+ __name(readPersistedMode, "readPersistedMode");
165
+ var _storageMode = readPersistedMode();
166
+ var _storage = backendFor(_storageMode);
152
167
  function detectLocale() {
153
168
  try {
154
169
  if (typeof document !== "undefined") {
@@ -304,7 +319,13 @@ var auth = {
304
319
  },
305
320
  setStorageMode(mode) {
306
321
  _storageMode = mode;
307
- _storage = mode === "cookie" ? cookieBackend : mode === "sessionStorage" ? sessionStorageBackend : localStorageBackend;
322
+ _storage = backendFor(mode);
323
+ if (isBrowser) {
324
+ try {
325
+ window.localStorage.setItem(STORAGE_MODE_KEY, mode);
326
+ } catch {
327
+ }
328
+ }
308
329
  notifySessionChanged();
309
330
  },
310
331
  // ── Bearer token ──────────────────────────────────────────────────
@@ -323,8 +344,18 @@ var auth = {
323
344
  notifySessionChanged();
324
345
  },
325
346
  clearTokens() {
326
- _storage.set(ACCESS_KEY, null);
327
- _storage.set(REFRESH_KEY, null);
347
+ for (const backend of [localStorageBackend, sessionStorageBackend, cookieBackend]) {
348
+ backend.set(ACCESS_KEY, null);
349
+ backend.set(REFRESH_KEY, null);
350
+ }
351
+ _storageMode = "localStorage";
352
+ _storage = localStorageBackend;
353
+ if (isBrowser) {
354
+ try {
355
+ window.localStorage.removeItem(STORAGE_MODE_KEY);
356
+ } catch {
357
+ }
358
+ }
328
359
  notifySessionChanged();
329
360
  },
330
361
  /** Session-aware: token PRESENT and not past its `exp` (or a live refresh