{"version":3,"sources":["../src/storage/client.ts"],"sourcesContent":["import { getM2MStorageHubDomain } from \"./getM2MStorageHubDomain\";\nimport { StorageClient } from \"./lib/client\";\n\nclass M2mStorageClient extends StorageClient {}\n\nexport type { M2mStorageClient };\n\n/**\n * Get the connected storage client.\n * @param timeout\n * @default 5000\n */\nconst getStorage = async (timeout = 5000) => {\n  const storage = await new Promise<M2mStorageClient>((resolve, reject) => {\n    const rejectTimer = globalThis.setTimeout(function () {\n      reject(\n        new Error(\n          \"Timeout: M2mStorageClient could not connect. Please call m2mStorageClient.init() before using m2mStorageClient.\",\n        ),\n      );\n    }, timeout);\n\n    const storage = globalThis.M2M_STORAGE;\n    if (storage) {\n      globalThis.clearTimeout(rejectTimer);\n      resolve(storage);\n    }\n\n    const timer = globalThis.setInterval(() => {\n      const storage = globalThis.M2M_STORAGE;\n      if (storage) {\n        globalThis.clearTimeout(rejectTimer);\n        globalThis.clearInterval(timer);\n        resolve(storage);\n      }\n    }, 200);\n  });\n\n  await storage.onConnect();\n\n  return storage;\n};\n\nconst initStorageClient = (options?: {\n  env?: \"development\" | \"production\";\n}) => {\n  if (globalThis.M2M_STORAGE) {\n    throw new Error(\n      \"M2mStorageClient already initialized. Do not call m2mStorageClient.init multiple times.\",\n    );\n  }\n  const storage = new M2mStorageClient(getM2MStorageHubDomain(options?.env));\n  globalThis.M2M_STORAGE = storage;\n};\n\nexport const m2mStorageClient = {\n  init: initStorageClient,\n  getStorage: getStorage,\n};\n\nexport const M2M_AUTH_TOKEN_KEY = \"M2M_APP_AUTH_TOKEN\";\n\nconst getAuthTokenCache = () => {\n  return globalThis.localStorage.getItem(M2M_AUTH_TOKEN_KEY);\n};\n\nconst getAuthToken = async () => {\n  try {\n    const storage = await getStorage();\n    const autuToken = (await storage.get(M2M_AUTH_TOKEN_KEY)) as string;\n    return autuToken !== null && autuToken !== undefined && autuToken.length > 0\n      ? autuToken\n      : getAuthTokenCache();\n  } catch (error) {\n    console.warn(error);\n    return getAuthTokenCache();\n  }\n};\n\nconst setAuthToken = async (token: string) => {\n  globalThis.localStorage.setItem(M2M_AUTH_TOKEN_KEY, token);\n  try {\n    const storage = await getStorage();\n    await storage.set(M2M_AUTH_TOKEN_KEY, token);\n  } catch (error) {\n    console.warn(error);\n  }\n};\n\nconst clearAuthToken = async () => {\n  globalThis.localStorage.removeItem(M2M_AUTH_TOKEN_KEY);\n  try {\n    const storage = await getStorage();\n    await storage.del(M2M_AUTH_TOKEN_KEY);\n  } catch (error) {\n    console.warn(error);\n  }\n};\n\nexport const m2mAuthTokenApi = {\n  get: getAuthToken,\n  getCache: getAuthTokenCache,\n  set: setAuthToken,\n  clear: clearAuthToken,\n};\n"],"mappings":";;;;;;;;AAGA,IAAM,mBAAN,cAA+B,cAAc;AAAC;AAS9C,IAAM,aAAa,OAAO,UAAU,QAAS;AAC3C,QAAM,UAAU,MAAM,IAAI,QAA0B,CAAC,SAAS,WAAW;AACvE,UAAM,cAAc,WAAW,WAAW,WAAY;AACpD;AAAA,QACE,IAAI;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,GAAG,OAAO;AAEV,UAAMA,WAAU,WAAW;AAC3B,QAAIA,UAAS;AACX,iBAAW,aAAa,WAAW;AACnC,cAAQA,QAAO;AAAA,IACjB;AAEA,UAAM,QAAQ,WAAW,YAAY,MAAM;AACzC,YAAMA,WAAU,WAAW;AAC3B,UAAIA,UAAS;AACX,mBAAW,aAAa,WAAW;AACnC,mBAAW,cAAc,KAAK;AAC9B,gBAAQA,QAAO;AAAA,MACjB;AAAA,IACF,GAAG,GAAG;AAAA,EACR,CAAC;AAED,QAAM,QAAQ,UAAU;AAExB,SAAO;AACT;AAEA,IAAM,oBAAoB,CAAC,YAErB;AACJ,MAAI,WAAW,aAAa;AAC1B,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,QAAM,UAAU,IAAI,iBAAiB,uBAAuB,mCAAS,GAAG,CAAC;AACzE,aAAW,cAAc;AAC3B;AAEO,IAAM,mBAAmB;AAAA,EAC9B,MAAM;AAAA,EACN;AACF;AAEO,IAAM,qBAAqB;AAElC,IAAM,oBAAoB,MAAM;AAC9B,SAAO,WAAW,aAAa,QAAQ,kBAAkB;AAC3D;AAEA,IAAM,eAAe,YAAY;AAC/B,MAAI;AACF,UAAM,UAAU,MAAM,WAAW;AACjC,UAAM,YAAa,MAAM,QAAQ,IAAI,kBAAkB;AACvD,WAAO,cAAc,QAAQ,cAAc,UAAa,UAAU,SAAS,IACvE,YACA,kBAAkB;AAAA,EACxB,SAAS,OAAO;AACd,YAAQ,KAAK,KAAK;AAClB,WAAO,kBAAkB;AAAA,EAC3B;AACF;AAEA,IAAM,eAAe,OAAO,UAAkB;AAC5C,aAAW,aAAa,QAAQ,oBAAoB,KAAK;AACzD,MAAI;AACF,UAAM,UAAU,MAAM,WAAW;AACjC,UAAM,QAAQ,IAAI,oBAAoB,KAAK;AAAA,EAC7C,SAAS,OAAO;AACd,YAAQ,KAAK,KAAK;AAAA,EACpB;AACF;AAEA,IAAM,iBAAiB,YAAY;AACjC,aAAW,aAAa,WAAW,kBAAkB;AACrD,MAAI;AACF,UAAM,UAAU,MAAM,WAAW;AACjC,UAAM,QAAQ,IAAI,kBAAkB;AAAA,EACtC,SAAS,OAAO;AACd,YAAQ,KAAK,KAAK;AAAA,EACpB;AACF;AAEO,IAAM,kBAAkB;AAAA,EAC7B,KAAK;AAAA,EACL,UAAU;AAAA,EACV,KAAK;AAAA,EACL,OAAO;AACT;","names":["storage"]}