@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.mjs CHANGED
@@ -158,8 +158,23 @@ var cookieBackend = {
158
158
  }
159
159
  }
160
160
  };
161
- var _storage = localStorageBackend;
162
- var _storageMode = "localStorage";
161
+ function backendFor(mode) {
162
+ return mode === "cookie" ? cookieBackend : mode === "sessionStorage" ? sessionStorageBackend : localStorageBackend;
163
+ }
164
+ __name(backendFor, "backendFor");
165
+ var STORAGE_MODE_KEY = "cfg.access_token.storage_mode";
166
+ function readPersistedMode() {
167
+ if (!isBrowser) return "localStorage";
168
+ try {
169
+ const raw = window.localStorage.getItem(STORAGE_MODE_KEY);
170
+ return raw === "sessionStorage" || raw === "cookie" || raw === "localStorage" ? raw : "localStorage";
171
+ } catch {
172
+ return "localStorage";
173
+ }
174
+ }
175
+ __name(readPersistedMode, "readPersistedMode");
176
+ var _storageMode = readPersistedMode();
177
+ var _storage = backendFor(_storageMode);
163
178
  function detectLocale() {
164
179
  try {
165
180
  if (typeof document !== "undefined") {
@@ -315,7 +330,13 @@ var auth = {
315
330
  },
316
331
  setStorageMode(mode) {
317
332
  _storageMode = mode;
318
- _storage = mode === "cookie" ? cookieBackend : mode === "sessionStorage" ? sessionStorageBackend : localStorageBackend;
333
+ _storage = backendFor(mode);
334
+ if (isBrowser) {
335
+ try {
336
+ window.localStorage.setItem(STORAGE_MODE_KEY, mode);
337
+ } catch {
338
+ }
339
+ }
319
340
  notifySessionChanged();
320
341
  },
321
342
  // ── Bearer token ──────────────────────────────────────────────────
@@ -334,8 +355,18 @@ var auth = {
334
355
  notifySessionChanged();
335
356
  },
336
357
  clearTokens() {
337
- _storage.set(ACCESS_KEY, null);
338
- _storage.set(REFRESH_KEY, null);
358
+ for (const backend of [localStorageBackend, sessionStorageBackend, cookieBackend]) {
359
+ backend.set(ACCESS_KEY, null);
360
+ backend.set(REFRESH_KEY, null);
361
+ }
362
+ _storageMode = "localStorage";
363
+ _storage = localStorageBackend;
364
+ if (isBrowser) {
365
+ try {
366
+ window.localStorage.removeItem(STORAGE_MODE_KEY);
367
+ } catch {
368
+ }
369
+ }
339
370
  notifySessionChanged();
340
371
  },
341
372
  /** Session-aware: token PRESENT and not past its `exp` (or a live refresh