{"version":3,"file":"dtmf.mjs","names":[],"sources":["../src/dtmf.ts"],"sourcesContent":["import { Buffer } from \"node:buffer\";\n\nconst phoneChars = [\n  \"0\",\n  \"1\",\n  \"2\",\n  \"3\",\n  \"4\",\n  \"5\",\n  \"6\",\n  \"7\",\n  \"8\",\n  \"9\",\n  \"*\",\n  \"#\",\n] as const;\nconst payloads = [\n  0x00060000, 0x000600a0, 0x00060140, 0x00860320, 0x00860320, 0x00860320,\n];\n\nconst DTMF = {\n  phoneChars,\n  charToPayloads(char: string) {\n    const index = phoneChars.indexOf(char[0] as (typeof phoneChars)[number]);\n    if (index === -1) {\n      throw new Error(\"invalid phone char\");\n    }\n    return payloads.map((payload) => {\n      const temp = payload + index * 0x01000000;\n      const buffer = Buffer.alloc(4);\n      buffer.writeIntBE(temp, 0, 4);\n      return buffer;\n    });\n  },\n  payloadToChar(payload: Buffer) {\n    const intBE = payload.readIntBE(0, 4);\n    const index = (intBE - 0x00060000) / 0x01000000;\n    return phoneChars[index];\n  },\n};\n\nexport default DTMF;\n"],"mappings":";;AAEA,MAAM,aAAa;CACjB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AACD,MAAM,WAAW;CACf;CAAY;CAAY;CAAY;CAAY;CAAY;CAC7D;AAED,MAAM,OAAO;CACX;CACA,eAAe,MAAc;EAC3B,MAAM,QAAQ,WAAW,QAAQ,KAAK,GAAkC;EACxE,IAAI,UAAU,IACZ,MAAM,IAAI,MAAM,qBAAqB;EAEvC,OAAO,SAAS,KAAK,YAAY;GAC/B,MAAM,OAAO,UAAU,QAAQ;GAC/B,MAAM,SAAS,OAAO,MAAM,EAAE;GAC9B,OAAO,WAAW,MAAM,GAAG,EAAE;GAC7B,OAAO;IACP;;CAEJ,cAAc,SAAiB;EAG7B,OAAO,YAFO,QAAQ,UAAU,GAAG,EACf,GAAG,UAAc;;CAGxC"}