{"version":3,"file":"deserializeReverse.cjs","sources":["../../../../src/utils/deserializers/deserializeReverse.ts"],"sourcesContent":["import { ReadonlyUint8Array } from \"@solana/kit\";\r\n\r\nimport { utf8Codec } from \"../../codecs\";\r\n\r\n/**\r\n * Parameters for deserializing reverse account data.\r\n *\r\n * @example\r\n * ```ts\r\n * const params: DeserializeReverseParams = { data: reverseAccountData };\r\n * ```\r\n */\r\nexport interface DeserializeReverseParams {\r\n  /** Reverse account data. */\r\n  data: ReadonlyUint8Array | undefined;\r\n  /** Whether to remove a subdomain's leading null byte. Defaults to false. */\r\n  trimFirstNullByte?: boolean;\r\n}\r\n\r\n/**\r\n * Deserializes reverse account data.\r\n *\r\n * The first four bytes encode the reverse name length.\r\n *\r\n * @param params Reverse deserialization parameters\r\n * @param params.data Reverse account data. If undefined, returns undefined\r\n * @param params.trimFirstNullByte Whether to trim the first null byte for subdomain reverse names. Defaults to false\r\n * @returns The deserialized string, or `undefined` if data is undefined.\r\n *\r\n * @example\r\n * ```ts\r\n * const name = deserializeReverse({ data: reverseAccountData });\r\n * ```\r\n */\r\nexport function deserializeReverse({\r\n  data,\r\n  trimFirstNullByte,\r\n}: DeserializeReverseParams): string;\r\n\r\nexport function deserializeReverse({\r\n  data,\r\n  trimFirstNullByte,\r\n}: DeserializeReverseParams): undefined;\r\n\r\nexport function deserializeReverse({\r\n  data,\r\n  trimFirstNullByte = false,\r\n}: DeserializeReverseParams): string | undefined {\r\n  if (!data) return undefined;\r\n\r\n  const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\r\n  const nameLength = view.getUint32(0, true);\r\n\r\n  return utf8Codec\r\n    .decode(data.subarray(4, 4 + nameLength))\r\n    .replace(/^\\0/, trimFirstNullByte ? \"\" : \"\\0\");\r\n}\r\n"],"names":["utf8Codec"],"mappings":";;;;;;AA4CM,SAAU,kBAAkB,CAAC,EACjC,IAAI,EACJ,iBAAiB,GAAG,KAAK,GACA,EAAA;AACzB,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,SAAS;AAE3B,IAAA,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC;IACxE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;AAE1C,IAAA,OAAOA;SACJ,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC;AACvC,SAAA,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC;AAClD;;;;"}