{"version":3,"file":"require.mjs","sources":["../../../../../../../src/server/authenticate/admin/billing/require.ts"],"sourcesContent":["import {\n  BillingCheckResponseObject,\n  HttpResponseError,\n  Session,\n} from '@shopify/shopify-api';\n\nimport type {BasicParams} from '../../../types';\nimport type {AppConfigArg} from '../../../config-types';\nimport {\n  invalidateAccessToken,\n  respondToInvalidSessionToken,\n} from '../../helpers';\n\nimport type {RequireBillingOptions} from './types';\n\nexport function requireBillingFactory<Config extends AppConfigArg>(\n  params: BasicParams,\n  request: Request,\n  session: Session,\n) {\n  const {api, logger} = params;\n\n  return async function requireBilling(options: RequireBillingOptions<Config>) {\n    const logContext = {\n      shop: session.shop,\n      plans: options.plans,\n      isTest: options.isTest,\n    };\n\n    logger.debug('Checking billing for the shop', logContext);\n\n    let data: BillingCheckResponseObject;\n    try {\n      data = await api.billing.check({\n        session,\n        plans: options.plans as string[],\n        isTest: options.isTest,\n        returnObject: true,\n      });\n    } catch (error) {\n      if (error instanceof HttpResponseError && error.response.code === 401) {\n        logger.debug(\n          'API token was invalid, responding to invalid session',\n          logContext,\n        );\n\n        await invalidateAccessToken(params, session);\n\n        throw respondToInvalidSessionToken({\n          params,\n          request,\n          retryRequest: true,\n        });\n      }\n      throw error;\n    }\n\n    if (!data.hasActivePayment) {\n      logger.debug('Billing check failed', logContext);\n      throw await options.onFailure(new Error('Billing check failed'));\n    }\n\n    logger.debug('Billing check succeeded', logContext);\n\n    return data;\n  };\n}\n"],"names":[],"mappings":";;;;;;SAegB,qBAAqB,CACnC,MAAmB,EACnB,OAAgB,EAChB,OAAgB,EAAA;AAEhB,IAAA,MAAM,EAAC,GAAG,EAAE,MAAM,EAAC,GAAG,MAAM;AAE5B,IAAA,OAAO,eAAe,cAAc,CAAC,OAAsC,EAAA;AACzE,QAAA,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB;AAED,QAAA,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,UAAU,CAAC;AAEzD,QAAA,IAAI,IAAgC;AACpC,QAAA,IAAI;AACF,YAAA,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC7B,OAAO;gBACP,KAAK,EAAE,OAAO,CAAC,KAAiB;gBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;AACtB,gBAAA,YAAY,EAAE,IAAI;AACnB,aAAA,CAAC;QACJ;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,KAAK,YAAY,iBAAiB,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,GAAG,EAAE;AACrE,gBAAA,MAAM,CAAC,KAAK,CACV,sDAAsD,EACtD,UAAU,CACX;AAED,gBAAA,MAAM,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC;AAE5C,gBAAA,MAAM,4BAA4B,CAAC;oBACjC,MAAM;oBACN,OAAO;AACP,oBAAA,YAAY,EAAE,IAAI;AACnB,iBAAA,CAAC;YACJ;AACA,YAAA,MAAM,KAAK;QACb;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,UAAU,CAAC;YAChD,MAAM,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAClE;AAEA,QAAA,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,UAAU,CAAC;AAEnD,QAAA,OAAO,IAAI;AACb,IAAA,CAAC;AACH;;;;"}