{"version":3,"file":"ensure-offline-token-is-not-expired.mjs","sources":["../../../../../src/server/helpers/ensure-offline-token-is-not-expired.ts"],"sourcesContent":["import {Session} from '@shopify/shopify-api';\n\nimport {AppDistribution, BasicParams} from '../types';\n\nimport refreshToken from './refresh-token';\n\n// 5 minutes\nexport const WITHIN_MILLISECONDS_OF_EXPIRY = 5 * 60 * 1000;\n\nexport async function ensureOfflineTokenIsNotExpired(\n  session: Session,\n  params: BasicParams,\n  shop: string,\n) {\n  const {config} = params;\n  if (\n    config.future?.expiringOfflineAccessTokens &&\n    session.isExpired(WITHIN_MILLISECONDS_OF_EXPIRY) &&\n    config.distribution !== AppDistribution.ShopifyAdmin &&\n    session.refreshToken\n  ) {\n    const offlineSession = await refreshToken(\n      params,\n      shop,\n      session.refreshToken,\n    );\n\n    await config.sessionStorage!.storeSession(offlineSession);\n    return offlineSession;\n  }\n  return session;\n}\n"],"names":[],"mappings":";;;AAMA;MACa,6BAA6B,GAAG,CAAC,GAAG,EAAE,GAAG;AAE/C,eAAe,8BAA8B,CAClD,OAAgB,EAChB,MAAmB,EACnB,IAAY,EAAA;AAEZ,IAAA,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM;AACvB,IAAA,IACE,MAAM,CAAC,MAAM,EAAE,2BAA2B;AAC1C,QAAA,OAAO,CAAC,SAAS,CAAC,6BAA6B,CAAC;AAChD,QAAA,MAAM,CAAC,YAAY,KAAK,eAAe,CAAC,YAAY;QACpD,OAAO,CAAC,YAAY,EACpB;AACA,QAAA,MAAM,cAAc,GAAG,MAAM,YAAY,CACvC,MAAM,EACN,IAAI,EACJ,OAAO,CAAC,YAAY,CACrB;QAED,MAAM,MAAM,CAAC,cAAe,CAAC,YAAY,CAAC,cAAc,CAAC;AACzD,QAAA,OAAO,cAAc;IACvB;AACA,IAAA,OAAO,OAAO;AAChB;;;;"}