{"version":3,"file":"app-installations.mjs","sources":["../../../src/app-installations.ts"],"sourcesContent":["import {Session} from '@shopify/shopify-api';\n\nimport {AppConfigInterface} from './config-types';\n\nexport class AppInstallations {\n  private sessionStorage;\n\n  constructor(config: AppConfigInterface) {\n    if (!config.sessionStorage.findSessionsByShop) {\n      throw new Error(\n        'To use this Express package, you must provide a session storage manager that implements findSessionsByShop',\n      );\n    }\n    if (!config.sessionStorage.deleteSessions) {\n      throw new Error(\n        'To use this Express package, you must provide a session storage manager that implements deleteSessions',\n      );\n    }\n    this.sessionStorage = config.sessionStorage;\n  }\n\n  async includes(shopDomain: string): Promise<boolean> {\n    const shopSessions =\n      await this.sessionStorage.findSessionsByShop!(shopDomain);\n    if (shopSessions.length > 0) {\n      for (const session of shopSessions) {\n        if (session.accessToken) return true;\n      }\n    }\n    return false;\n  }\n\n  async delete(shopDomain: string): Promise<void> {\n    const shopSessions =\n      await this.sessionStorage.findSessionsByShop!(shopDomain);\n    if (shopSessions.length > 0) {\n      await this.sessionStorage.deleteSessions!(\n        shopSessions.map((session: Session) => session.id),\n      );\n    }\n  }\n}\n"],"names":[],"mappings":"MAIa,gBAAgB,CAAA;AACnB,IAAA,cAAc;AAEtB,IAAA,WAAA,CAAY,MAA0B,EAAA;AACpC,QAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE;AAC7C,YAAA,MAAM,IAAI,KAAK,CACb,4GAA4G,CAC7G;QACH;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE;AACzC,YAAA,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG;QACH;AACA,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc;IAC7C;IAEA,MAAM,QAAQ,CAAC,UAAkB,EAAA;QAC/B,MAAM,YAAY,GAChB,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAmB,CAAC,UAAU,CAAC;AAC3D,QAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,YAAA,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE;gBAClC,IAAI,OAAO,CAAC,WAAW;AAAE,oBAAA,OAAO,IAAI;YACtC;QACF;AACA,QAAA,OAAO,KAAK;IACd;IAEA,MAAM,MAAM,CAAC,UAAkB,EAAA;QAC7B,MAAM,YAAY,GAChB,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAmB,CAAC,UAAU,CAAC;AAC3D,QAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,MAAM,IAAI,CAAC,cAAc,CAAC,cAAe,CACvC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAgB,KAAK,OAAO,CAAC,EAAE,CAAC,CACnD;QACH;IACF;AACD;;;;"}