{
  "version": 3,
  "sources": ["../src/encoding-length.ts"],
  "sourcesContent": ["import { text2arr } from '@substrate-system/uint8-util'\nimport { digitCount, getType } from './util.js'\n\nfunction listLength (list) {\n    let length = 1 + 1 // type marker + end-of-type marker\n\n    for (const value of list) {\n        length += encodingLength(value)\n    }\n\n    return length\n}\n\nfunction mapLength (map) {\n    let length = 1 + 1 // type marker + end-of-type marker\n\n    for (const [key, value] of map) {\n        const keyLength = text2arr(key).byteLength\n        length += digitCount(keyLength) + 1 + keyLength\n        length += encodingLength(value)\n    }\n\n    return length\n}\n\nfunction objectLength (value) {\n    let length = 1 + 1 // type marker + end-of-type marker\n    const keys = Object.keys(value)\n\n    for (let i = 0; i < keys.length; i++) {\n        const keyLength = text2arr(keys[i]).byteLength\n        length += digitCount(keyLength) + 1 + keyLength\n        length += encodingLength(value[keys[i]])\n    }\n\n    return length\n}\n\nfunction stringLength (value) {\n    const length = text2arr(value).byteLength\n    return digitCount(length) + 1 + length\n}\n\nfunction arrayBufferLength (value) {\n    const length = value.byteLength - value.byteOffset\n    return digitCount(length) + 1 + length\n}\n\nexport function encodingLength (value) {\n    const length = 0\n\n    if (value == null) return length\n\n    const type = getType(value)\n\n    switch (type) {\n        case 'arraybufferview': return arrayBufferLength(value)\n        case 'string': return stringLength(value)\n        case 'array': case 'set': return listLength(value)\n        case 'number': return 1 + digitCount(Math.floor(value)) + 1\n        case 'bigint': return 1 + value.toString().length + 1\n        case 'object': return objectLength(value)\n        case 'map': return mapLength(value)\n        default:\n            throw new TypeError(`Unsupported value of type \"${type}\"`)\n    }\n}\n\nexport default encodingLength\n"],
  "mappings": "4dAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,mBAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAyB,wCACzBC,EAAoC,qBAEpC,SAASC,EAAYC,EAAM,CACvB,IAAIC,EAAS,EAEb,UAAWC,KAASF,EAChBC,GAAUE,EAAeD,CAAK,EAGlC,OAAOD,CACX,CARSG,EAAAL,EAAA,cAUT,SAASM,EAAWC,EAAK,CACrB,IAAIL,EAAS,EAEb,SAAW,CAACM,EAAKL,CAAK,IAAKI,EAAK,CAC5B,MAAME,KAAY,YAASD,CAAG,EAAE,WAChCN,MAAU,cAAWO,CAAS,EAAI,EAAIA,EACtCP,GAAUE,EAAeD,CAAK,CAClC,CAEA,OAAOD,CACX,CAVSG,EAAAC,EAAA,aAYT,SAASI,EAAcP,EAAO,CAC1B,IAAID,EAAS,EACb,MAAMS,EAAO,OAAO,KAAKR,CAAK,EAE9B,QAASS,EAAI,EAAGA,EAAID,EAAK,OAAQC,IAAK,CAClC,MAAMH,KAAY,YAASE,EAAKC,CAAC,CAAC,EAAE,WACpCV,MAAU,cAAWO,CAAS,EAAI,EAAIA,EACtCP,GAAUE,EAAeD,EAAMQ,EAAKC,CAAC,CAAC,CAAC,CAC3C,CAEA,OAAOV,CACX,CAXSG,EAAAK,EAAA,gBAaT,SAASG,EAAcV,EAAO,CAC1B,MAAMD,KAAS,YAASC,CAAK,EAAE,WAC/B,SAAO,cAAWD,CAAM,EAAI,EAAIA,CACpC,CAHSG,EAAAQ,EAAA,gBAKT,SAASC,EAAmBX,EAAO,CAC/B,MAAMD,EAASC,EAAM,WAAaA,EAAM,WACxC,SAAO,cAAWD,CAAM,EAAI,EAAIA,CACpC,CAHSG,EAAAS,EAAA,qBAKF,SAASV,EAAgBD,EAAO,CAGnC,GAAIA,GAAS,KAAM,MAAO,GAE1B,MAAMY,KAAO,WAAQZ,CAAK,EAE1B,OAAQY,EAAM,CACV,IAAK,kBAAmB,OAAOD,EAAkBX,CAAK,EACtD,IAAK,SAAU,OAAOU,EAAaV,CAAK,EACxC,IAAK,QAAS,IAAK,MAAO,OAAOH,EAAWG,CAAK,EACjD,IAAK,SAAU,MAAO,MAAI,cAAW,KAAK,MAAMA,CAAK,CAAC,EAAI,EAC1D,IAAK,SAAU,MAAO,GAAIA,EAAM,SAAS,EAAE,OAAS,EACpD,IAAK,SAAU,OAAOO,EAAaP,CAAK,EACxC,IAAK,MAAO,OAAOG,EAAUH,CAAK,EAClC,QACI,MAAM,IAAI,UAAU,8BAA8BY,CAAI,GAAG,CACjE,CACJ,CAlBgBV,EAAAD,EAAA,kBAoBhB,IAAOY,EAAQZ",
  "names": ["encoding_length_exports", "__export", "encoding_length_default", "encodingLength", "__toCommonJS", "import_uint8_util", "import_util", "listLength", "list", "length", "value", "encodingLength", "__name", "mapLength", "map", "key", "keyLength", "objectLength", "keys", "i", "stringLength", "arrayBufferLength", "type", "encoding_length_default"]
}
