{"version":3,"file":"validate-session-token.mjs","sources":["../../../../../../src/server/authenticate/helpers/validate-session-token.ts"],"sourcesContent":["import {JwtPayload} from '@shopify/shopify-api';\n\nimport type {BasicParams} from '../../types';\n\nimport {respondToInvalidSessionToken} from './respond-to-invalid-session-token';\nimport {getShopFromRequest} from './get-shop-from-request';\n\ninterface ValidateSessionTokenOptions {\n  checkAudience?: boolean;\n  retryRequest?: boolean;\n}\n\nexport async function validateSessionToken(\n  params: BasicParams,\n  request: Request,\n  token: string,\n  {checkAudience = true, retryRequest = true}: ValidateSessionTokenOptions = {},\n): Promise<JwtPayload> {\n  const {api, logger} = params;\n  const shop = getShopFromRequest(request);\n  logger.debug('Validating session token', {shop});\n\n  try {\n    const payload = await api.session.decodeSessionToken(token, {\n      checkAudience,\n    });\n    logger.debug('Session token is valid - validated', {\n      shop,\n      payload: JSON.stringify(payload),\n    });\n\n    return payload;\n  } catch (error) {\n    logger.debug(`Failed to validate session token: ${error.message}`, {\n      shop,\n    });\n\n    throw respondToInvalidSessionToken({params, request, retryRequest});\n  }\n}\n"],"names":[],"mappings":";;;AAYO,eAAe,oBAAoB,CACxC,MAAmB,EACnB,OAAgB,EAChB,KAAa,EACb,EAAC,aAAa,GAAG,IAAI,EAAE,YAAY,GAAG,IAAI,KAAiC,EAAE,EAAA;AAE7E,IAAA,MAAM,EAAC,GAAG,EAAE,MAAM,EAAC,GAAG,MAAM;AAC5B,IAAA,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC;IACxC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAC,IAAI,EAAC,CAAC;AAEhD,IAAA,IAAI;QACF,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE;YAC1D,aAAa;AACd,SAAA,CAAC;AACF,QAAA,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE;YACjD,IAAI;AACJ,YAAA,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;AACjC,SAAA,CAAC;AAEF,QAAA,OAAO,OAAO;IAChB;IAAE,OAAO,KAAK,EAAE;QACd,MAAM,CAAC,KAAK,CAAC,CAAA,kCAAA,EAAqC,KAAK,CAAC,OAAO,EAAE,EAAE;YACjE,IAAI;AACL,SAAA,CAAC;QAEF,MAAM,4BAA4B,CAAC,EAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAC,CAAC;IACrE;AACF;;;;"}