{"version":3,"sources":["../src/storage/persistenceDatabase.ts"],"sourcesContent":["import { DBSchema, openDB } from \"idb\";\nimport { LoginResponse } from \"./api/login\";\n\nexport interface PersistenceStorageAdapter {\n  get(): Promise<LoginResponse | undefined>;\n  set(val: LoginResponse): Promise<void>;\n  clear(): Promise<void>;\n}\n\ninterface PersistenceDatabase extends DBSchema {\n  persistence: {\n    value: LoginResponse;\n    key: \"auth\";\n  };\n}\n\n// Only create connectors on client-side or in test environments to avoid SSR issues\nconst dbPromise =\n  typeof window !== \"undefined\" || process.env.VITEST === \"true\"\n    ? openDB<PersistenceDatabase>(\"persistence-store\", 1, {\n        upgrade(db) {\n          db.createObjectStore(\"persistence\");\n        },\n      })\n    : Promise.resolve(null);\n\nconst get = async (key: \"auth\") => {\n  return (await dbPromise)?.get(\"persistence\", key);\n};\nconst set = async (key: \"auth\", val: LoginResponse) => {\n  return (await dbPromise)?.put(\"persistence\", val, key);\n};\nconst clear = async (key: \"auth\") => {\n  return (await dbPromise)?.delete(\"persistence\", key);\n};\n\nexport const persistenceDatabase = {\n  get,\n  set,\n  clear,\n};\n\nexport const defaultStorageAdapter: PersistenceStorageAdapter = {\n  get: async () => get(\"auth\"),\n  set: async (val: LoginResponse) => {\n    await set(\"auth\", val);\n  },\n  clear: async () => {\n    await clear(\"auth\");\n  },\n};\n"],"mappings":";AAAA,SAAmB,cAAc;AAiBjC,IAAM,YACJ,OAAO,WAAW,eAAe,QAAQ,IAAI,WAAW,SACpD,OAA4B,qBAAqB,GAAG;AAAA,EAClD,QAAQ,IAAI;AACV,OAAG,kBAAkB,aAAa;AAAA,EACpC;AACF,CAAC,IACD,QAAQ,QAAQ,IAAI;AAE1B,IAAM,MAAM,OAAO,QAAgB;AA1BnC;AA2BE,UAAQ,WAAM,cAAN,mBAAkB,IAAI,eAAe;AAC/C;AACA,IAAM,MAAM,OAAO,KAAa,QAAuB;AA7BvD;AA8BE,UAAQ,WAAM,cAAN,mBAAkB,IAAI,eAAe,KAAK;AACpD;AACA,IAAM,QAAQ,OAAO,QAAgB;AAhCrC;AAiCE,UAAQ,WAAM,cAAN,mBAAkB,OAAO,eAAe;AAClD;AAEO,IAAM,sBAAsB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,wBAAmD;AAAA,EAC9D,KAAK,YAAY,IAAI,MAAM;AAAA,EAC3B,KAAK,OAAO,QAAuB;AACjC,UAAM,IAAI,QAAQ,GAAG;AAAA,EACvB;AAAA,EACA,OAAO,YAAY;AACjB,UAAM,MAAM,MAAM;AAAA,EACpB;AACF;","names":[]}