{"version":3,"sources":["../../../../src/api/base/types.ts"],"sourcesContent":["import type { StandardSchemaV1 } from '@standard-schema/spec'\n\nimport { PipeError } from './errors'\nimport type { JsonSchema } from '../../utils/types'\n\nexport type PipeFn<I, O> = (input: I) => O | PipeError\nexport type PipeCompiledFn<T extends Pipe<any, any>> = (input: unknown) => PipeOutput<T> | PipeError\nexport type PipeErrorHandlerType = 'return' | 'throw' | 'assign'\nexport type PipeErrorHandler = ((errorCondition: string, error: string) => (lines: string[]) => string[]) & {\n\ttype: PipeErrorHandlerType\n\tformat: (error: string) => string\n}\n\nexport type PipeInput<T> = T extends Pipe<infer I, any> ? I : never\nexport type PipeOutput<T> = T extends Pipe<any, infer O> ? O : never\nexport type PipeMeta = Pick<JsonSchema, '$refId' | 'title' | 'description' | 'examples' | 'default'>\nexport type Context = Record<string, any>\nexport type JsonSchemaBuilder = JsonSchema\n\nexport type Entry<I, O> = Pipe<I, O> | PipeFn<I, O>\ntype PipeChain<I, O> = {\n\t<T1>(fn1: Entry<O, T1>): Pipe<I, T1>\n\t<T1, T2>(fn1: Entry<O, T1>, fn2: Entry<T1, T2>): Pipe<I, T2>\n\t<T1, T2, T3>(fn1: Entry<O, T1>, fn2: Entry<T1, T2>, f3: Entry<T2, T3>): Pipe<I, T3>\n\t<T1, T2, T3, T4>(fn1: Entry<O, T1>, fn2: Entry<T1, T2>, f3: Entry<T2, T3>, f4: Entry<T3, T4>): Pipe<I, T4>\n\t<T1, T2, T3, T4, T5>(fn1: Entry<O, T1>, fn2: Entry<T1, T2>, f3: Entry<T2, T3>, f4: Entry<T3, T4>, f5: Entry<T4, T5>): Pipe<I, T5>\n\t<T1, T2, T3, T4, T5, T6>(\n\t\tfn1: Entry<O, T1>,\n\t\tfn2: Entry<T1, T2>,\n\t\tf3: Entry<T2, T3>,\n\t\tf4: Entry<T3, T4>,\n\t\tf5: Entry<T4, T5>,\n\t\tf6: Entry<T5, T6>,\n\t): Pipe<I, T6>\n\t<T1, T2, T3, T4, T5, T6, T7>(\n\t\tfn1: Entry<O, T1>,\n\t\tfn2: Entry<T1, T2>,\n\t\tf3: Entry<T2, T3>,\n\t\tf4: Entry<T3, T4>,\n\t\tf5: Entry<T4, T5>,\n\t\tf6: Entry<T5, T6>,\n\t\tf7: Entry<T6, T7>,\n\t): Pipe<I, T7>\n\t<T1, T2, T3, T4, T5, T6, T7, T8>(\n\t\tfn1: Entry<O, T1>,\n\t\tfn2: Entry<T1, T2>,\n\t\tf3: Entry<T2, T3>,\n\t\tf4: Entry<T3, T4>,\n\t\tf5: Entry<T4, T5>,\n\t\tf6: Entry<T5, T6>,\n\t\tf7: Entry<T6, T7>,\n\t\tf8: Entry<T7, T8>,\n\t): Pipe<I, T8>\n\t<T1, T2, T3, T4, T5, T6, T7, T8, T9>(\n\t\tfn1: Entry<O, T1>,\n\t\tfn2: Entry<T1, T2>,\n\t\tf3: Entry<T2, T3>,\n\t\tf4: Entry<T3, T4>,\n\t\tf5: Entry<T4, T5>,\n\t\tf6: Entry<T5, T6>,\n\t\tf7: Entry<T6, T7>,\n\t\tf8: Entry<T7, T8>,\n\t\tf9: Entry<T8, T9>,\n\t): Pipe<I, T9>\n\t<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(\n\t\tfn1: Entry<O, T1>,\n\t\tfn2: Entry<T1, T2>,\n\t\tf3: Entry<T2, T3>,\n\t\tf4: Entry<T3, T4>,\n\t\tf5: Entry<T4, T5>,\n\t\tf6: Entry<T5, T6>,\n\t\tf7: Entry<T6, T7>,\n\t\tf8: Entry<T7, T8>,\n\t\tf9: Entry<T8, T9>,\n\t\tf10: Entry<T9, T10>,\n\t): Pipe<I, T10>\n}\n\ntype Arrayable<T> = T | T[]\n\nexport interface Pipe<I, O> extends StandardSchemaV1<I, O> {\n\treadonly context: () => Context\n\treadonly schema: (context: Context) => JsonSchema\n\treadonly pipe: PipeChain<I, O>\n\treadonly compile: (\n\t\tnames: { input: string; context: string; path: string },\n\t\topts: { rootContext: Context; failEarly: boolean; path: string; wrapError: PipeErrorHandler },\n\t) => Arrayable<string | ReturnType<PipeErrorHandler>>\n\tprev?: Pipe<any, any>\n\t__compiled?: PipeCompiledFn<any>\n}\n"],"mappings":"AAEA,SAAS,iBAAiB;","names":[]}