{"version":3,"file":"validators-DtEJam_7.mjs","names":["query: URLSearchParams","context: InvocationContext","params: Record<string, unknown>","jsonBody: unknown","headers: Headers"],"sources":["../src/utils/validators.ts"],"sourcesContent":["import type { HttpResponseInit, InvocationContext } from \"@azure/functions\";\nimport type { Headers } from \"undici\";\nimport { responseError } from \"./error-utils\";\n\nexport function parseTeamFromQuery(\n  query: URLSearchParams,\n  context: InvocationContext\n): string | HttpResponseInit {\n  const teamId = query.get(\"teamId\");\n  const teamSlug = query.get(\"slug\");\n  const teamName = query.get(\"team\");\n\n  const team = teamId ?? teamName ?? teamSlug;\n  if (!team) {\n    return responseError(\n      \"The request query params should have either teamId or slug.\",\n      context\n    );\n  }\n\n  return team;\n}\n\nexport function parseHashFromParams(\n  params: Record<string, unknown>,\n  context: InvocationContext\n) {\n  const hash = params[\"hash\"];\n\n  if (!hash) {\n    return responseError(\n      `The request is missing the artifact hash in the URL path params.`,\n      context\n    );\n  }\n\n  return hash;\n}\n\nexport function parseHashesFromBody(\n  jsonBody: unknown,\n  context: InvocationContext\n) {\n  const hashes =\n    jsonBody &&\n    typeof jsonBody === \"object\" &&\n    \"hashes\" in jsonBody &&\n    Array.isArray(jsonBody.hashes)\n      ? jsonBody.hashes\n      : undefined;\n\n  if (!hashes) {\n    return responseError(\n      `The 'hashes' key is missing or invalid in request body (json).`,\n      context\n    );\n  }\n\n  return hashes;\n}\n\nexport function parseEventsFromBody(jsonBody: unknown) {\n  const events =\n    jsonBody && typeof jsonBody === \"object\" && Array.isArray(jsonBody)\n      ? jsonBody\n      : [];\n\n  return events;\n}\n\nexport function parseTokenFromHeaders(\n  headers: Headers,\n  context: InvocationContext,\n  TOKEN = process.env[\"TURBO_TOKEN\"]\n) {\n  if (!TOKEN) {\n    return responseError(\n      \"The token is not configured on server correctly\",\n      context,\n      500\n    );\n  }\n\n  const authHeader = headers.get(\"authorization\");\n  if (!authHeader) {\n    return responseError(\n      \"The auth bearerToken is missing in Headers\",\n      context,\n      401\n    );\n  }\n\n  if (authHeader !== `Bearer ${TOKEN}`) {\n    return responseError(\"Incorrect bearerToken in headers\", context, 401);\n  }\n\n  return true;\n}\n"],"mappings":";;;AAIA,SAAgB,mBACdA,OACAC,SAC2B;CAC3B,MAAM,SAAS,MAAM,IAAI,SAAS;CAClC,MAAM,WAAW,MAAM,IAAI,OAAO;CAClC,MAAM,WAAW,MAAM,IAAI,OAAO;CAElC,MAAM,OAAO,UAAU,YAAY;AACnC,KAAI,CAAC,KACH,QAAO,cACL,+DACA,QACD;AAGH,QAAO;AACR;AAED,SAAgB,oBACdC,QACAD,SACA;CACA,MAAM,OAAO,OAAO;AAEpB,KAAI,CAAC,KACH,QAAO,cACL,CAAC,gEAAgE,CAAC,EAClE,QACD;AAGH,QAAO;AACR;AAED,SAAgB,oBACdE,UACAF,SACA;CACA,MAAM,SACJ,YACA,OAAO,aAAa,YACpB,YAAY,YACZ,MAAM,QAAQ,SAAS,OAAO,GAC1B,SAAS,SACT;AAEN,KAAI,CAAC,OACH,QAAO,cACL,CAAC,8DAA8D,CAAC,EAChE,QACD;AAGH,QAAO;AACR;AAED,SAAgB,oBAAoBE,UAAmB;CACrD,MAAM,SACJ,YAAY,OAAO,aAAa,YAAY,MAAM,QAAQ,SAAS,GAC/D,WACA,CAAE;AAER,QAAO;AACR;AAED,SAAgB,sBACdC,SACAH,SACA,QAAQ,QAAQ,IAAI,gBACpB;AACA,KAAI,CAAC,MACH,QAAO,cACL,mDACA,SACA,IACD;CAGH,MAAM,aAAa,QAAQ,IAAI,gBAAgB;AAC/C,KAAI,CAAC,WACH,QAAO,cACL,8CACA,SACA,IACD;AAGH,KAAI,eAAe,CAAC,OAAO,EAAE,OAAO,CAClC,QAAO,cAAc,oCAAoC,SAAS,IAAI;AAGxE,QAAO;AACR"}