{"version":3,"file":"get-artifact-CsE3W2py.mjs","names":["downloadArtifactHandler: CacheRouterHttpHandler"],"sources":["../src/handlers/get-artifact.ts"],"sourcesContent":["import { createStorageClient } from \"../utils/azure-storage\";\nimport { responseError } from \"../utils/error-utils\";\nimport {\n  parseHashFromParams,\n  parseTeamFromQuery,\n  parseTokenFromHeaders,\n} from \"../utils/validators\";\nimport type { CacheRouterHttpHandler } from \"../utils/types\";\n\nexport const downloadArtifactHandler: CacheRouterHttpHandler =\n  (options) => async (request, context) => {\n    const authResult = parseTokenFromHeaders(\n      request.headers,\n      context,\n      options.turboToken\n    );\n    if (authResult !== true) return authResult;\n\n    const hash = parseHashFromParams(request.params, context);\n    if (typeof hash !== \"string\") return hash;\n\n    const team = parseTeamFromQuery(request.query, context);\n    if (typeof team !== \"string\") return team;\n\n    context.info(\"Get artifact by hash\", { team, hash });\n\n    try {\n      const service = await createStorageClient(options);\n      const artifact = await service.getCachedArtifactOrThrow(hash, team);\n\n      return {\n        status: 200,\n        body: artifact,\n        headers: { \"Content-Type\": \"application/octet-stream\" },\n      };\n    } catch (error) {\n      return responseError(error, context, 404);\n    }\n  };\n"],"mappings":";;;;;AASA,MAAaA,0BACX,CAAC,YAAY,OAAO,SAAS,YAAY;CACvC,MAAM,aAAa,sBACjB,QAAQ,SACR,SACA,QAAQ,WACT;AACD,KAAI,eAAe,KAAM,QAAO;CAEhC,MAAM,OAAO,oBAAoB,QAAQ,QAAQ,QAAQ;AACzD,KAAI,OAAO,SAAS,SAAU,QAAO;CAErC,MAAM,OAAO,mBAAmB,QAAQ,OAAO,QAAQ;AACvD,KAAI,OAAO,SAAS,SAAU,QAAO;CAErC,QAAQ,KAAK,wBAAwB;EAAE;EAAM;CAAM,EAAC;AAEpD,KAAI;EACF,MAAM,UAAU,MAAM,oBAAoB,QAAQ;EAClD,MAAM,WAAW,MAAM,QAAQ,yBAAyB,MAAM,KAAK;AAEnE,SAAO;GACL,QAAQ;GACR,MAAM;GACN,SAAS,EAAE,gBAAgB,2BAA4B;EACxD;CACF,SAAQ,OAAO;AACd,SAAO,cAAc,OAAO,SAAS,IAAI;CAC1C;AACF"}