{"version":3,"file":"revoke.mjs","sources":["../../../../../../../src/server/authenticate/admin/scope/revoke.ts"],"sourcesContent":["import {Session} from '@shopify/shopify-api';\n\nimport {AdminApiContext} from '../../../clients';\nimport type {BasicParams} from '../../../types';\n\nimport {revokeScopes} from './client/revoke-scopes';\n\nexport function revokeScopesFactory(\n  params: BasicParams,\n  session: Session,\n  admin: AdminApiContext,\n) {\n  return async function revoke(scopes: string[]) {\n    const {logger} = params;\n\n    await validateScopes(scopes);\n\n    logger.debug('Revoke scopes: ', {\n      shop: session.shop,\n      scopes,\n    });\n\n    const revokeScopesResult = await revokeScopes(admin, scopes);\n    if (revokeScopesResult.userErrors?.length > 0) {\n      logger.error('Failed to revoke scopes: ', {\n        shop: session.shop,\n        errors: revokeScopesResult.userErrors,\n      });\n\n      throw new Response(JSON.stringify(revokeScopesResult.userErrors), {\n        status: 422,\n        headers: {\n          'Content-Type': 'application/json',\n        },\n      });\n    }\n\n    return {\n      revoked: revokeScopesResult.revoked.map((scope) => scope.handle),\n    };\n  };\n}\n\nasync function validateScopes(scopes: string[]) {\n  if (!scopes || scopes.length === 0) {\n    throw new Response('No scopes provided', {status: 400});\n  }\n}\n"],"names":[],"mappings":";;SAOgB,mBAAmB,CACjC,MAAmB,EACnB,OAAgB,EAChB,KAAsB,EAAA;AAEtB,IAAA,OAAO,eAAe,MAAM,CAAC,MAAgB,EAAA;AAC3C,QAAA,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM;AAEvB,QAAA,MAAM,cAAc,CAAC,MAAM,CAAC;AAE5B,QAAA,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;YAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM;AACP,SAAA,CAAC;QAEF,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC;QAC5D,IAAI,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE;AAC7C,YAAA,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;gBACxC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,kBAAkB,CAAC,UAAU;AACtC,aAAA,CAAC;YAEF,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE;AAChE,gBAAA,MAAM,EAAE,GAAG;AACX,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,kBAAkB;AACnC,iBAAA;AACF,aAAA,CAAC;QACJ;QAEA,OAAO;AACL,YAAA,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC;SACjE;AACH,IAAA,CAAC;AACH;AAEA,eAAe,cAAc,CAAC,MAAgB,EAAA;IAC5C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,QAAQ,CAAC,oBAAoB,EAAE,EAAC,MAAM,EAAE,GAAG,EAAC,CAAC;IACzD;AACF;;;;"}