{"version":3,"sources":["../../../src/validations/valleyed.ts"],"names":["err","input","PipeError","incomingFile","v","incomingFiles","requestLocalStorage","AsyncLocalStorage","withRequest","req","validated","fn","res"],"mappings":"AAAA,4HAAkC,oCAEuC,wDAMtE,MACC,CAAA,CAAA,CAAA,EAAmBA,WAAG,CAAA,KAAE,CAAMC,WAAAA,CAAAA,IAC/B,CAAA,CAAA,CAAA,CAAMD,IAAM,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA,gCAAkD,EAAA,qBAAA,CAAS,GAAA,CAAA,CAAA,CAAM,QAAA,CAAA,KAAA,CAAA,qBAChD,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAChC,WACX,CAAA,CAAA,CAAA,CAAME,OAAeF,CAAAA,CAAKC,MAIhBE,mBAAAA,CAAgBH,IAC5BI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACDA,CAAAA,CAAE,wBAAA,CAAA,EAAA,WAAA,CAAA,MACW,CACV,WAAA,CAAA,OAAO,CAAA,CAAI,CAAA,CAAG,CAAA,CAAA,IAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,CAAA,kBACU,CAC3B,CAAA,CACA,IAAE,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,EAAA,CAAU,CAAA,IAAA,CAAA,QAAQ,CAAS,MAGzCC,CAAiBL,QAC3B,CAAA,CAAA,CAAA,CAAgCI,CAAAA,CAAE,yBAAA,CAAA,EAAA,WAAA,CAAA,MAAqB,CAAA,WAAG,CAC3D,OAAQ,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,EAAA,CAAU,CAAA,IAAA,CAAA,QAAQ,CAAS,MAGvCE,CAAsB,QACC,CAAA,CAAA,CAAA,CAAIC,CAAAA,CAE3BC,+BAAAA,IACZJ,kCAAAA,CAAE,CAAA,gCAAA,IAAA,kCAAqCH,CAAAA,CAAAA,uBAAU,CAChD,EAAA,WAAA,CAAA,MAAgC,CAAA,CAAA,EAAA,CAAA,MAChC,CAAA,CAAA,CAAI,CAACQ,QAAW,CAAA,CAAA,CAAA,EAAI,CAAA,CAAA,CAAA,CAAA,MAAM,IAAA,KAAA,CAAA,8BACN,CAAA,CAAA,MAAYA,CAAG,CAAA,WAAGR,CAAK,QAC3C,CAAOS,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQA,OAAU,CAAQA,CAAAA,KAAU,CACtD,CAAC,CAAA,KAEqDC,CACtDP,CAAAA,CAAE,KAAA,CAAA,CAAqCH,CAAAA,CAAAA,wBAAU,CAChD,EAAA,WAAA,CAAA,MAAiC,CAAA,CAAA,EAAA,CAAA,MACjC,CAAA,CAAA,CAAI,CAACW,QAAW,CAAA,CAAA,CAAA,EAAI,CAAA,CAAA,CAAA,CAAA,MAAM,IAAA,KAAA,CAAA,+BACN,CAAA,CAAA,MAAYA,CAAG,CAAA,WAAGX,CAAK,QAC3C,CAAOS,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQA,OAAU,CAAQA,CAAAA,KAAU,CACtD,CAAC,CAAA,KAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,0KAAA","file":"/home/runner/work/equipped/equipped/dist/cjs/validations/valleyed.min.cjs","sourcesContent":["import { AsyncLocalStorage } from 'node:async_hooks'\n\nimport { type Pipe, PipeError, type PipeInput, type PipeOutput, v } from 'valleyed'\n\nimport { Instance } from '../instance'\nimport type { IncomingFile, Request, Response, RouteDef, RouteDefToReqRes } from '../server'\n\nconst filePipe = (err?: string) =>\n\tv.array(\n\t\tv.file<IncomingFile>(err).pipe((input) => {\n\t\t\tconst err = `is larger than allowed limit of ${Instance.get().settings.utils.maxFileUploadSizeInMb}mb`\n\t\t\tconst valid = input ? !input.isTruncated : true\n\t\t\tif (valid) return input\n\t\t\tthrow PipeError.root(err, input)\n\t\t}),\n\t)\n\nexport const incomingFile = (err?: string) =>\n\tv.define<unknown, IncomingFile>(\n\t\tv.compile(\n\t\t\tfilePipe(err)\n\t\t\t\t.pipe(v.min(1, 'no file provided'))\n\t\t\t\t.pipe((files) => files[0]),\n\t\t),\n\t\t{ schema: () => ({ type: 'string', format: 'binary' }) },\n\t)\n\nexport const incomingFiles = (err?: string) =>\n\tv.define<unknown, IncomingFile[]>(v.compile(filePipe(err)), {\n\t\tschema: () => ({ type: 'string', format: 'binary' }),\n\t})\n\nexport const requestLocalStorage = new AsyncLocalStorage<Request<RouteDefToReqRes<RouteDef>>>()\nexport const responseLocalStorage = new AsyncLocalStorage<Response<RouteDefToReqRes<RouteDef>>>()\n\nexport const withRequest = <T extends Pipe<any, any>>(fn: (req: Request<RouteDefToReqRes<RouteDef>>) => T) =>\n\tv.define<PipeInput<T>, PipeOutput<T>>((input) => {\n\t\tconst req = requestLocalStorage.getStore()\n\t\tif (!req) throw new Error('Request not found in context')\n\t\tconst validated = v.validate(fn(req), input)\n\t\treturn validated.valid ? validated.value : validated.error\n\t})\n\nexport const withResponse = <T extends Pipe<any, any>>(fn: (req: Response<RouteDefToReqRes<RouteDef>>) => T) =>\n\tv.define<PipeInput<T>, PipeOutput<T>>((input) => {\n\t\tconst res = responseLocalStorage.getStore()\n\t\tif (!res) throw new Error('Response not found in context')\n\t\tconst validated = v.validate(fn(res), input)\n\t\treturn validated.valid ? validated.value : validated.error\n\t})\n"]}