{"version":3,"file":"index.cjs","sources":["../src/extension.ts","../src/index.ts"],"sourcesContent":["import { assert } from '@andrew_l/toolkit';\nimport type { BinaryReader } from './BinaryReader';\nimport type { BinaryWriter } from './BinaryWriter';\n\nexport type EncodeHandler = (this: BinaryWriter, value: any) => void;\n\nexport type DecodeHandler = (this: BinaryReader) => any;\n\nexport interface TLExtension {\n  token: number;\n  encode: EncodeHandler;\n  decode: DecodeHandler;\n}\n\nexport function createExtension(\n  token: number,\n  { encode, decode }: { encode: EncodeHandler; decode: DecodeHandler },\n): TLExtension {\n  assert.ok(Math.trunc(token) === token, ' Token must be integer value.');\n\n  assert.ok(\n    token === -1 || (token >= 0 && token <= 255),\n    'Token must be a 8 bit number. (0 - 255)',\n  );\n\n  assert.ok(token === -1 || token >= 35, 'Tokens from 0 to 34 reserved.');\n\n  return {\n    token,\n    encode,\n    decode,\n  };\n}\n","import { BinaryReader, type BinaryReaderOptions } from './BinaryReader';\nimport { BinaryWriter, type BinaryWriterOptions } from './BinaryWriter';\n\nexport { BinaryReader, type BinaryReaderOptions } from './BinaryReader';\nexport { BinaryWriter, type BinaryWriterOptions } from './BinaryWriter';\nexport * from './constants';\nexport { createDictionary } from './dictionary';\nexport {\n  createExtension,\n  type DecodeHandler,\n  type EncodeHandler,\n  type TLExtension,\n} from './extension';\n\n/**\n * Encode any value into `Uint8Array`\n *\n * @example\n * const buffer = tlEncode(new Date(0));\n *\n * console.log(buffer); // Uint8Array([5, 0, 0, 0, 0, 0, 0, 0, 0])\n *\n * @group Main\n */\nexport function tlEncode(\n  value: unknown,\n  opts?: BinaryWriterOptions,\n): Uint8Array {\n  return new BinaryWriter(opts).writeObject(value).getBuffer();\n}\n\n/**\n * Decode value from `Uint8Array`\n *\n * @example\n * const buffer = new Uint8Array([5, 0, 0, 0, 0, 0, 0, 0, 0]);\n * const value = tlDecode(buffer);\n *\n * console.log(value); // Thu Jan 01 1970 01:00:00 GMT+0100 (Central European Standard Time)\n *\n * @group Main\n */\nexport function tlDecode<T = any>(\n  buffer: Uint8Array,\n  opts?: BinaryReaderOptions,\n): T {\n  return new BinaryReader(buffer, opts).readObject();\n}\n"],"names":["assert","BinaryWriter","BinaryReader"],"mappings":";;;;;;AAcO,SAAS,eACd,CAAA,KAAA,EACA,EAAE,MAAA,EAAQ,QACG,EAAA;AACb,EAAAA,cAAA,CAAO,GAAG,IAAK,CAAA,KAAA,CAAM,KAAK,CAAA,KAAM,OAAO,+BAA+B,CAAA,CAAA;AAEtE,EAAOA,cAAA,CAAA,EAAA;AAAA,IACL,KAAU,KAAA,CAAA,CAAA,IAAO,KAAS,IAAA,CAAA,IAAK,KAAS,IAAA,GAAA;AAAA,IACxC,yCAAA;AAAA,GACF,CAAA;AAEA,EAAAA,cAAA,CAAO,EAAG,CAAA,KAAA,KAAU,CAAM,CAAA,IAAA,KAAA,IAAS,IAAI,+BAA+B,CAAA,CAAA;AAEtE,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA,GACF,CAAA;AACF;;ACRgB,SAAA,QAAA,CACd,OACA,IACY,EAAA;AACZ,EAAA,OAAO,IAAIC,yBAAa,CAAA,IAAI,EAAE,WAAY,CAAA,KAAK,EAAE,SAAU,EAAA,CAAA;AAC7D,CAAA;AAagB,SAAA,QAAA,CACd,QACA,IACG,EAAA;AACH,EAAA,OAAO,IAAIC,yBAAA,CAAa,MAAQ,EAAA,IAAI,EAAE,UAAW,EAAA,CAAA;AACnD;;;;;;;;;;;"}