@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/clients.mjs CHANGED
@@ -135,8 +135,23 @@ var cookieBackend = {
135
135
  }
136
136
  }
137
137
  };
138
- var _storage = localStorageBackend;
139
- var _storageMode = "localStorage";
138
+ function backendFor(mode) {
139
+ return mode === "cookie" ? cookieBackend : mode === "sessionStorage" ? sessionStorageBackend : localStorageBackend;
140
+ }
141
+ __name(backendFor, "backendFor");
142
+ var STORAGE_MODE_KEY = "cfg.access_token.storage_mode";
143
+ function readPersistedMode() {
144
+ if (!isBrowser) return "localStorage";
145
+ try {
146
+ const raw = window.localStorage.getItem(STORAGE_MODE_KEY);
147
+ return raw === "sessionStorage" || raw === "cookie" || raw === "localStorage" ? raw : "localStorage";
148
+ } catch {
149
+ return "localStorage";
150
+ }
151
+ }
152
+ __name(readPersistedMode, "readPersistedMode");
153
+ var _storageMode = readPersistedMode();
154
+ var _storage = backendFor(_storageMode);
140
155
  function detectLocale() {
141
156
  try {
142
157
  if (typeof document !== "undefined") {
@@ -292,7 +307,13 @@ var auth = {
292
307
  },
293
308
  setStorageMode(mode) {
294
309
  _storageMode = mode;
295
- _storage = mode === "cookie" ? cookieBackend : mode === "sessionStorage" ? sessionStorageBackend : localStorageBackend;
310
+ _storage = backendFor(mode);
311
+ if (isBrowser) {
312
+ try {
313
+ window.localStorage.setItem(STORAGE_MODE_KEY, mode);
314
+ } catch {
315
+ }
316
+ }
296
317
  notifySessionChanged();
297
318
  },
298
319
  // ── Bearer token ──────────────────────────────────────────────────
@@ -311,8 +332,18 @@ var auth = {
311
332
  notifySessionChanged();
312
333
  },
313
334
  clearTokens() {
314
- _storage.set(ACCESS_KEY, null);
315
- _storage.set(REFRESH_KEY, null);
335
+ for (const backend of [localStorageBackend, sessionStorageBackend, cookieBackend]) {
336
+ backend.set(ACCESS_KEY, null);
337
+ backend.set(REFRESH_KEY, null);
338
+ }
339
+ _storageMode = "localStorage";
340
+ _storage = localStorageBackend;
341
+ if (isBrowser) {
342
+ try {
343
+ window.localStorage.removeItem(STORAGE_MODE_KEY);
344
+ } catch {
345
+ }
346
+ }
316
347
  notifySessionChanged();
317
348
  },
318
349
  /** Session-aware: token PRESENT and not past its `exp` (or a live refresh