{"version":3,"file":"storage-manager.mjs","sources":["../../../src/pullClient/storage-manager.ts"],"sourcesContent":["import type { StorageManagerParams, TypeStorageManager } from '../types/pull'\nimport type { LoggerInterface } from '../logger'\nimport { LoggerFactory } from '../logger'\nimport { Text } from '../tools/text'\n\nexport class StorageManager implements TypeStorageManager {\n  private _logger: LoggerInterface\n\n  private readonly userId: number\n  private readonly siteId: string\n\n  constructor(params: StorageManagerParams = {}) {\n    this._logger = LoggerFactory.createNullLogger()\n    this.userId = params.userId ? Text.toInteger(params.userId) : 0\n    this.siteId = params.siteId ?? 'none'\n  }\n\n  setLogger(logger: LoggerInterface): void {\n    this._logger = logger\n  }\n\n  getLogger(): LoggerInterface {\n    return this._logger\n  }\n\n  set(name: string, value: any): void {\n    if (typeof window.localStorage === 'undefined') {\n      this.getLogger().error('localStorage undefined', {\n        error: new Error('undefined window.localStorage')\n      })\n      return\n    }\n\n    if (typeof value !== 'string' && value) {\n      value = JSON.stringify(value)\n    }\n\n    window.localStorage.setItem(this._getKey(name), value)\n  }\n\n  get(name: string, defaultValue: any): any {\n    if (typeof window.localStorage === 'undefined') {\n      return defaultValue || null\n    }\n\n    const result = window.localStorage.getItem(this._getKey(name))\n    if (result === null) {\n      return defaultValue || null\n    }\n\n    return JSON.parse(result)\n  }\n\n  remove(name: string): void {\n    if (typeof window.localStorage === 'undefined') {\n      this.getLogger().error('localStorage undefined', {\n        error: new Error('undefined window.localStorage')\n      })\n      return\n    }\n\n    return window.localStorage.removeItem(this._getKey(name))\n  }\n\n  private _getKey(name: string): string {\n    return `@bitrix24/b24jssdk-pull-${this.userId}-${this.siteId}-${name}`\n  }\n\n  compareKey(eventKey: string, userKey: string): boolean {\n    return eventKey === this._getKey(userKey)\n  }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AAKO,MAAM,cAAA,CAA6C;AAAA,EAL1D;AAK0D,IAAA,MAAA,CAAA,IAAA,EAAA,gBAAA,CAAA;AAAA;AAAA,EAChD,OAAA;AAAA,EAES,MAAA;AAAA,EACA,MAAA;AAAA,EAEjB,WAAA,CAAY,MAAA,GAA+B,EAAC,EAAG;AAC7C,IAAA,IAAA,CAAK,OAAA,GAAU,cAAc,gBAAA,EAAiB;AAC9C,IAAA,IAAA,CAAK,SAAS,MAAA,CAAO,MAAA,GAAS,KAAK,SAAA,CAAU,MAAA,CAAO,MAAM,CAAA,GAAI,CAAA;AAC9D,IAAA,IAAA,CAAK,MAAA,GAAS,OAAO,MAAA,IAAU,MAAA;AAAA,EACjC;AAAA,EAEA,UAAU,MAAA,EAA+B;AACvC,IAAA,IAAA,CAAK,OAAA,GAAU,MAAA;AAAA,EACjB;AAAA,EAEA,SAAA,GAA6B;AAC3B,IAAA,OAAO,IAAA,CAAK,OAAA;AAAA,EACd;AAAA,EAEA,GAAA,CAAI,MAAc,KAAA,EAAkB;AAClC,IAAA,IAAI,OAAO,MAAA,CAAO,YAAA,KAAiB,WAAA,EAAa;AAC9C,MAAA,IAAA,CAAK,SAAA,EAAU,CAAE,KAAA,CAAM,wBAAA,EAA0B;AAAA,QAC/C,KAAA,EAAO,IAAI,KAAA,CAAM,+BAA+B;AAAA,OACjD,CAAA;AACD,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,EAAO;AACtC,MAAA,KAAA,GAAQ,IAAA,CAAK,UAAU,KAAK,CAAA;AAAA,IAC9B;AAEA,IAAA,MAAA,CAAO,aAAa,OAAA,CAAQ,IAAA,CAAK,OAAA,CAAQ,IAAI,GAAG,KAAK,CAAA;AAAA,EACvD;AAAA,EAEA,GAAA,CAAI,MAAc,YAAA,EAAwB;AACxC,IAAA,IAAI,OAAO,MAAA,CAAO,YAAA,KAAiB,WAAA,EAAa;AAC9C,MAAA,OAAO,YAAA,IAAgB,IAAA;AAAA,IACzB;AAEA,IAAA,MAAM,SAAS,MAAA,CAAO,YAAA,CAAa,QAAQ,IAAA,CAAK,OAAA,CAAQ,IAAI,CAAC,CAAA;AAC7D,IAAA,IAAI,WAAW,IAAA,EAAM;AACnB,MAAA,OAAO,YAAA,IAAgB,IAAA;AAAA,IACzB;AAEA,IAAA,OAAO,IAAA,CAAK,MAAM,MAAM,CAAA;AAAA,EAC1B;AAAA,EAEA,OAAO,IAAA,EAAoB;AACzB,IAAA,IAAI,OAAO,MAAA,CAAO,YAAA,KAAiB,WAAA,EAAa;AAC9C,MAAA,IAAA,CAAK,SAAA,EAAU,CAAE,KAAA,CAAM,wBAAA,EAA0B;AAAA,QAC/C,KAAA,EAAO,IAAI,KAAA,CAAM,+BAA+B;AAAA,OACjD,CAAA;AACD,MAAA;AAAA,IACF;AAEA,IAAA,OAAO,OAAO,YAAA,CAAa,UAAA,CAAW,IAAA,CAAK,OAAA,CAAQ,IAAI,CAAC,CAAA;AAAA,EAC1D;AAAA,EAEQ,QAAQ,IAAA,EAAsB;AACpC,IAAA,OAAO,2BAA2B,IAAA,CAAK,MAAM,IAAI,IAAA,CAAK,MAAM,IAAI,IAAI,CAAA,CAAA;AAAA,EACtE;AAAA,EAEA,UAAA,CAAW,UAAkB,OAAA,EAA0B;AACrD,IAAA,OAAO,QAAA,KAAa,IAAA,CAAK,OAAA,CAAQ,OAAO,CAAA;AAAA,EAC1C;AACF;;;;"}