{"version":3,"sources":["../src/runtime/transcoders.ts"],"names":[],"mappings":";;;;;AAuCO,SAAS,YAAe,gBAAA,EAGb;AAChB,EAAA,OAAO,gBAAA;AACT;AAEO,IAAM,OAAO,WAAA,CAAY;AAAA,EAC9B,MAAA,EAAQ,KAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAC;AAEM,IAAM,QAAQ,WAAA,CAAY;AAAA,EAC/B,MAAA,EAAQ,MAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAC;AAEM,IAAM,UAAU,WAAA,CAAY;AAAA,EACjC,MAAA,EAAQ,YAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAC;AAEM,IAAM,eAAe,WAAA,CAAY;AAAA,EACtC,MAAA,EAAQ,aAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAC;AAEM,IAAM,WAAW,WAAA,CAAY;AAAA,EAClC,MAAA,EAAQ,SAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAC;AAEM,IAAM,UAAU,WAAA,CAAY;AAAA,EACjC,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAC;AAEM,IAAM,aAAa,WAAA,CAAY;AAAA,EACpC,MAAA,EAAQ,WAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAC;AAEM,IAAM,SAAS,WAAA,CAAY;AAAA,EAChC,MAAA,EAAQ,OAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAC;AAEM,IAAM,KAAA,GAAQ,CACnB,kBAAA,KACoB;AACpB,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,MAAA,EAAQ,WAAA,CAAY,kBAAA,CAAmB,MAAM,CAAA;AAAA,IAC7C,MAAA,EAAQ,WAAA,CAAY,kBAAA,CAAmB,MAAM;AAAA,GAC9C,CAAA;AACH;AAEO,IAAM,MAAA,GAAS,CACpB,aAAA,KAGI;AACJ,EAAA,MAAM,MAAA,GAAS,YAAA;AAAA,IACb,SAAA,CAAU,aAAA,EAAe,CAAC,CAAA,KAAM,EAAE,MAAM;AAAA,GAC1C;AAIA,EAAA,MAAM,MAAA,GAAS,YAAA;AAAA,IACb,SAAA,CAAU,aAAA,EAAe,CAAC,CAAA,KAAM,EAAE,MAAM;AAAA,GAC1C;AAIA,EAAA,OAAO,WAAA,CAAY,EAAE,MAAA,EAAQ,MAAA,EAAQ,CAAA;AACvC;AAEO,IAAM,SAAA,GAAY,CACvB,cAAA,KAC8B;AAC9B,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,MAAA,EAAQ,eAAA,CAAgB,cAAA,CAAe,MAAM,CAAA;AAAA,IAC7C,MAAA,EAAQ,eAAA,CAAgB,cAAA,CAAe,MAAM;AAAA,GAC9C,CAAA;AACH;AAEO,IAAM,QAAQ,WAAA,CAAY;AAAA,EAC/B,MAAA,EAAQ,MAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAC;AAEM,IAAM,eAAA,GAAkB,CAC7B,iBAAA,KAC8B;AAC9B,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,MAAA,EAAQ,qBAAA,CAAsB,iBAAA,CAAkB,MAAM,CAAA;AAAA,IACtD,MAAA,EAAQ,qBAAA,CAAsB,iBAAA,CAAkB,MAAM;AAAA,GACvD,CAAA;AACH","file":"chunk-N3LONNNA.mjs","sourcesContent":["import {\n  bufferCV,\n  noneCV,\n  stringAsciiCV,\n  stringUtf8CV,\n} from \"@stacks/transactions\";\nimport {\n  boolResult,\n  bufferResult,\n  contractResult,\n  intResult,\n  listDecoder,\n  noneResult,\n  optionalDecoder,\n  principalResult,\n  responseSimpleDecoder,\n  stringResult,\n  tupleDecoder,\n} from \"./decoders\";\nimport {\n  booleanCV,\n  listEncoder,\n  uintCV,\n  optionalEncoder,\n  principalCV,\n  responseSimpleEncoder,\n  tupleEncoder,\n  intCV,\n  traitCV,\n} from \"./encoders\";\nimport {\n  Decoder,\n  Encoder,\n  Response,\n  Transcoder,\n  UnboxTranscoder,\n} from \"./types\";\nimport { mapValues } from \"../utils/helpers\";\n\nexport function transcoders<T>(constructOptions: {\n  encode: Encoder<T>;\n  decode: Decoder<T>;\n}): Transcoder<T> {\n  return constructOptions;\n}\n\nexport const intT = transcoders({\n  encode: intCV,\n  decode: intResult,\n});\n\nexport const uintT = transcoders({\n  encode: uintCV,\n  decode: intResult,\n});\n\nexport const stringT = transcoders({\n  encode: stringUtf8CV,\n  decode: stringResult,\n});\n\nexport const stringAsciiT = transcoders({\n  encode: stringAsciiCV,\n  decode: stringResult,\n});\n\nexport const booleanT = transcoders({\n  encode: booleanCV,\n  decode: boolResult,\n});\n\nexport const bufferT = transcoders({\n  encode: bufferCV,\n  decode: bufferResult,\n});\n\nexport const principalT = transcoders({\n  encode: principalCV,\n  decode: principalResult,\n});\n\nexport const traitT = transcoders({\n  encode: traitCV,\n  decode: contractResult,\n});\n\nexport const listT = <T>(\n  listItemTranscoder: Transcoder<T>\n): Transcoder<T[]> => {\n  return transcoders({\n    encode: listEncoder(listItemTranscoder.encode),\n    decode: listDecoder(listItemTranscoder.decode),\n  });\n};\n\nexport const tupleT = <T extends Record<string, Transcoder<any>>>(\n  transcoderObj: T\n): Transcoder<{\n  [K in keyof T]: UnboxTranscoder<T[K]>;\n}> => {\n  const encode = tupleEncoder(\n    mapValues(transcoderObj, (o) => o.encode)\n  ) as Encoder<{\n    [K in keyof T]: UnboxTranscoder<T[K]>;\n  }>;\n\n  const decode = tupleDecoder(\n    mapValues(transcoderObj, (o) => o.decode)\n  ) as Decoder<{\n    [K in keyof T]: UnboxTranscoder<T[K]>;\n  }>;\n\n  return transcoders({ encode, decode });\n};\n\nexport const optionalT = <T>(\n  someTranscoder: Transcoder<T>\n): Transcoder<undefined | T> => {\n  return transcoders({\n    encode: optionalEncoder(someTranscoder.encode),\n    decode: optionalDecoder(someTranscoder.decode),\n  });\n};\n\nexport const noneT = transcoders({\n  encode: noneCV,\n  decode: noneResult,\n});\n\nexport const responseSimpleT = <TOK>(\n  okValueTransducer: Transcoder<TOK>\n): Transcoder<Response<TOK>> => {\n  return transcoders({\n    encode: responseSimpleEncoder(okValueTransducer.encode),\n    decode: responseSimpleDecoder(okValueTransducer.decode),\n  });\n};\n"]}