{
  "version": 3,
  "sources": ["../../../src/utils/check-request-validation.ts"],
  "sourcesContent": ["import type { DeserializationResult, SerializationResult, ValidationMode } from 'yaschema';\n\nimport type { AnyBody } from '../types/AnyBody';\nimport type { AnyHeaders } from '../types/AnyHeaders';\nimport type { AnyParams } from '../types/AnyParams';\nimport type { AnyQuery } from '../types/AnyQuery';\nimport type { GenericApiRequest } from '../types/GenericApiRequest';\n\n/** Determines request schema validation results and conceptually returns one of three states: valid, invalid (soft validation error), or\n * invalid (hard validation error).  For invalid cases, additional metadata is included in the result. */\nexport const checkRequestValidation = ({\n  reqHeaders,\n  reqParams,\n  reqQuery,\n  reqBody,\n  validationMode\n}: {\n  reqHeaders: SerializationResult | DeserializationResult<Partial<AnyHeaders>>;\n  reqParams: SerializationResult | DeserializationResult<Partial<AnyParams>>;\n  reqQuery: SerializationResult | DeserializationResult<Partial<AnyQuery>>;\n  reqBody: SerializationResult | DeserializationResult<AnyBody>;\n  validationMode: ValidationMode;\n}):\n  | ({ ok: true } & (\n      | { hadSoftValidationError: false; invalidPart?: undefined; validationError?: undefined; validationErrorPath?: undefined }\n      | { hadSoftValidationError: true; invalidPart: keyof GenericApiRequest; validationError: string; validationErrorPath: string }\n    ))\n  | { ok: false; invalidPart: keyof GenericApiRequest; validationError: string; validationErrorPath: string } => {\n  if (reqHeaders.error !== undefined) {\n    if (validationMode === 'hard') {\n      return { ok: false, invalidPart: 'headers', validationError: reqHeaders.error, validationErrorPath: reqHeaders.errorPath };\n    } else {\n      return {\n        ok: true,\n        hadSoftValidationError: true,\n        invalidPart: 'headers',\n        validationError: reqHeaders.error,\n        validationErrorPath: reqHeaders.errorPath\n      };\n    }\n  }\n\n  if (reqParams.error !== undefined) {\n    if (validationMode === 'hard') {\n      return { ok: false, invalidPart: 'params', validationError: reqParams.error, validationErrorPath: reqParams.errorPath };\n    } else {\n      return {\n        ok: true,\n        hadSoftValidationError: true,\n        invalidPart: 'params',\n        validationError: reqParams.error,\n        validationErrorPath: reqParams.errorPath\n      };\n    }\n  }\n\n  if (reqQuery.error !== undefined) {\n    if (validationMode === 'hard') {\n      return { ok: false, invalidPart: 'query', validationError: reqQuery.error, validationErrorPath: reqQuery.errorPath };\n    } else {\n      return {\n        ok: true,\n        hadSoftValidationError: true,\n        invalidPart: 'query',\n        validationError: reqQuery.error,\n        validationErrorPath: reqQuery.errorPath\n      };\n    }\n  }\n\n  if (reqBody.error !== undefined) {\n    if (validationMode === 'hard') {\n      return { ok: false, invalidPart: 'body', validationError: reqBody.error, validationErrorPath: reqBody.errorPath };\n    } else {\n      return {\n        ok: true,\n        hadSoftValidationError: true,\n        invalidPart: 'body',\n        validationError: reqBody.error,\n        validationErrorPath: reqBody.errorPath\n      };\n    }\n  }\n\n  return { ok: true, hadSoftValidationError: false };\n};\n"],
  "mappings": "AAUO,MAAM,yBAAyB,CAAC;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAWiH;AAC/G,MAAI,WAAW,UAAU,QAAW;AAClC,QAAI,mBAAmB,QAAQ;AAC7B,aAAO,EAAE,IAAI,OAAO,aAAa,WAAW,iBAAiB,WAAW,OAAO,qBAAqB,WAAW,UAAU;AAAA,IAC3H,OAAO;AACL,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,wBAAwB;AAAA,QACxB,aAAa;AAAA,QACb,iBAAiB,WAAW;AAAA,QAC5B,qBAAqB,WAAW;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAEA,MAAI,UAAU,UAAU,QAAW;AACjC,QAAI,mBAAmB,QAAQ;AAC7B,aAAO,EAAE,IAAI,OAAO,aAAa,UAAU,iBAAiB,UAAU,OAAO,qBAAqB,UAAU,UAAU;AAAA,IACxH,OAAO;AACL,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,wBAAwB;AAAA,QACxB,aAAa;AAAA,QACb,iBAAiB,UAAU;AAAA,QAC3B,qBAAqB,UAAU;AAAA,MACjC;AAAA,IACF;AAAA,EACF;AAEA,MAAI,SAAS,UAAU,QAAW;AAChC,QAAI,mBAAmB,QAAQ;AAC7B,aAAO,EAAE,IAAI,OAAO,aAAa,SAAS,iBAAiB,SAAS,OAAO,qBAAqB,SAAS,UAAU;AAAA,IACrH,OAAO;AACL,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,wBAAwB;AAAA,QACxB,aAAa;AAAA,QACb,iBAAiB,SAAS;AAAA,QAC1B,qBAAqB,SAAS;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AAEA,MAAI,QAAQ,UAAU,QAAW;AAC/B,QAAI,mBAAmB,QAAQ;AAC7B,aAAO,EAAE,IAAI,OAAO,aAAa,QAAQ,iBAAiB,QAAQ,OAAO,qBAAqB,QAAQ,UAAU;AAAA,IAClH,OAAO;AACL,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,wBAAwB;AAAA,QACxB,aAAa;AAAA,QACb,iBAAiB,QAAQ;AAAA,QACzB,qBAAqB,QAAQ;AAAA,MAC/B;AAAA,IACF;AAAA,EACF;AAEA,SAAO,EAAE,IAAI,MAAM,wBAAwB,MAAM;AACnD;",
  "names": []
}
