{"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import XVType from \"./XVType\";\nimport XVAny from \"./types/Any\";\nimport XVArray from \"./types/Array\";\nimport XVBoolean from \"./types/Boolean\";\nimport XVDate from \"./types/Date\";\nimport XVEnum from \"./types/Enum\";\nimport XVFile from \"./types/File\";\nimport XVMap from \"./types/Map\";\nimport XVNumber from \"./types/Number\";\nimport XVObject from \"./types/Object\";\nimport XVRecord from \"./types/Record\";\nimport XVSet from \"./types/Set\";\nimport XVString from \"./types/String\";\nimport XVTuple from \"./types/Tuple\";\nimport XVUnion from \"./types/Union\";\nimport XVFunction, { XVFunctionOptions } from \"./types/Function\";\nimport XVPromise from \"./types/Promise\";\nimport XVFunctionComponent from \"./types/FunctionComponent\";\nexport * from \"./types\";\n\nexport {\n  XVType,\n  XVAny,\n  XVArray,\n  XVBoolean,\n  XVFunction,\n  XVPromise,\n  XVDate,\n  XVEnum,\n  XVFile,\n  XVMap,\n  XVNumber,\n  XVObject,\n  XVRecord,\n  XVSet,\n  XVString,\n  XVTuple,\n  XVUnion,\n  XVFunctionComponent,\n};\n\nexport const xv = {\n  any: <T = any>() => new XVAny<T>(),\n  array: <T extends XVType<any>>(type: T) => new XVArray<T>(type),\n  boolean: () => new XVBoolean(),\n  date: () => new XVDate(),\n  enum: <const T extends string | number>(\n    input: readonly T[] | Record<string, T>,\n  ): XVEnum<T> => new XVEnum<T>(input),\n  file: () => new XVFile(),\n  number: (length?: number) => new XVNumber(length),\n  object: <T extends Record<string | number, XVType<any>>>(shape: T) =>\n    new XVObject(shape),\n  record: <K extends XVType<any>, V extends XVType<any>>(key: K, value: V) =>\n    new XVRecord<K, V>(key, value),\n  map: <K extends XVType<any>, V extends XVType<any>>(key: K, value: V) =>\n    new XVMap<K, V>(key, value),\n  set: <T extends XVType<any>>(type: T) => new XVSet(type),\n  string: (length?: number) => new XVString(length),\n  tuple: <T extends XVType<any>[]>(type: T) => new XVTuple<T>(type),\n  union: <T extends XVType<any>[]>(types: T) => new XVUnion<T>(types),\n  function: <const A extends XVType<any>[], R extends XVType<any>>(\n    options: XVFunctionOptions<A, R>,\n  ) => new XVFunction<A, R>(options),\n  promise: <T extends XVType<any>>(type: T) => new XVPromise(type),\n\n  functionComponent: <\n    P extends Record<string, XVType<any>>,\n    Async extends boolean = false,\n  >(\n    props: P,\n    async?: Async,\n  ) => new XVFunctionComponent<P, Async>(props, async),\n};\n"],"names":["XVAny","XVArray","XVBoolean","XVDate","XVEnum","XVFile","XVNumber","XVObject","XVRecord","XVMap","XVSet","XVString","XVTuple","XVUnion","XVFunction","XVPromise","XVFunctionComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAyCO,MAAM,EAAE,GAAG;AAChB,IAAA,GAAG,EAAE,MAAe,IAAIA,GAAK,EAAK;IAClC,KAAK,EAAE,CAAwB,IAAO,KAAK,IAAIC,KAAO,CAAI,IAAI,CAAC;AAC/D,IAAA,OAAO,EAAE,MAAM,IAAIC,OAAS,EAAE;AAC9B,IAAA,IAAI,EAAE,MAAM,IAAIC,IAAM,EAAE;IACxB,IAAI,EAAE,CACJ,KAAuC,KACzB,IAAIC,IAAM,CAAI,KAAK,CAAC;AACpC,IAAA,IAAI,EAAE,MAAM,IAAIC,IAAM,EAAE;IACxB,MAAM,EAAE,CAAC,MAAe,KAAK,IAAIC,MAAQ,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,CAAiD,KAAQ,KAC/D,IAAIC,QAAQ,CAAC,KAAK,CAAC;AACrB,IAAA,MAAM,EAAE,CAA+C,GAAM,EAAE,KAAQ,KACrE,IAAIC,MAAQ,CAAO,GAAG,EAAE,KAAK,CAAC;AAChC,IAAA,GAAG,EAAE,CAA+C,GAAM,EAAE,KAAQ,KAClE,IAAIC,GAAK,CAAO,GAAG,EAAE,KAAK,CAAC;IAC7B,GAAG,EAAE,CAAwB,IAAO,KAAK,IAAIC,GAAK,CAAC,IAAI,CAAC;IACxD,MAAM,EAAE,CAAC,MAAe,KAAK,IAAIC,MAAQ,CAAC,MAAM,CAAC;IACjD,KAAK,EAAE,CAA0B,IAAO,KAAK,IAAIC,KAAO,CAAI,IAAI,CAAC;IACjE,KAAK,EAAE,CAA0B,KAAQ,KAAK,IAAIC,KAAO,CAAI,KAAK,CAAC;IACnE,QAAQ,EAAE,CACR,OAAgC,KAC7B,IAAIC,QAAU,CAAO,OAAO,CAAC;IAClC,OAAO,EAAE,CAAwB,IAAO,KAAK,IAAIC,SAAS,CAAC,IAAI,CAAC;AAEhE,IAAA,iBAAiB,EAAE,CAIjB,KAAQ,EACR,KAAa,KACV,IAAIC,iBAAmB,CAAW,KAAK,EAAE,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;"}