{"version":3,"sources":["/home/runner/work/promptparse/promptparse/dist/chunk-5XXOZ4VK.mjs","../src/generate/index.ts","../src/generate/bot/BOTBarcode.ts","../src/generate/promptpay/SlipVerify.ts","../src/utils/encoder.ts","../src/generate/truemoney/TrueMoney.ts","../src/generate/truemoney/TrueMoneySlipVerify.ts"],"names":["BOTBarcode","ProxyType","__export","anyId","billPayment","encode","tag","withCrcTag","generate_exports","botBarcode","slipVerify","trueMoney","trueMoneySlipVerify","billerId","ref1","ref2","amount","toString","sendingBank","transRef","payload","encodeTag81","message","split","map","c","charCodeAt","padStart","join","toUpperCase","mobileNo","tag29","push","Number","toFixed","eventType","transactionId","date"],"mappings":"AAAA,SACEA,UAAU,EACVC,SAAS,EACTC,QAAQ,EACRC,KAAK,EACLC,WAAW,EACXC,MAAM,EACNC,GAAG,EACHC,UAAU,QACL,uBAAuB;AAE9B,wBAAwB;ACXxB,IAAAC,mBAAA,CAAA;AAAAN,SAAAM,kBAAA;IAAAP,WAAA;eAAAA;;IAAAE,OAAA;eAAAA;;IAAAC,aAAA;eAAAA;;IAAAK,YAAA;eAAAA;;IAAAC,YAAA;eAAAA;;IAAAC,WAAA;eAAAA;;IAAAC,qBAAA;eAAAA;;AAAA;ADuBA,iCAAiC;AEF1B,SAASH,WAAW,KAA+B;QAA7BI,WAAF,MAAEA,UAAUC,OAAZ,MAAYA,MAAMC,OAAlB,MAAkBA,MAAMC,SAAxB,MAAwBA;IACjD,OAAO,IAAIhB,WAAWa,UAAUC,MAAMC,MAAMC,QAAQC,QAAA;AACtD;AFKA,uCAAuC;AGXhC,SAASP,WAAW,KAAwB;QAAtBQ,cAAF,MAAEA,aAAaC,WAAf,MAAeA;IACxC,IAAMC,UAAU;QACdd,IACE,MACAD,OAAO;YACLC,IAAI,MAAM;YACVA,IAAI,MAAMY;YACVZ,IAAI,MAAMa;SACX;QAEHb,IAAI,MAAM;KACZ;IAEA,OAAOC,WAAWF,OAAOe,UAAU;AACrC;AHaA,uBAAuB;AIlChB,SAASC,YAAYC,OAAA;IAC1B,OAAOA,QACJC,KAAA,CAAM,IACNC,GAAA,CAAI,SAACC;eAAMA,EAAEC,UAAA,CAAW,GAAGT,QAAA,CAAS,IAAIU,QAAA,CAAS,GAAG;OACpDC,IAAA,CAAK,IACLC,WAAA;AACL;AJiCA,sCAAsC;AK1B/B,SAASlB,UAAU,KAA4B;QAA1BmB,WAAF,MAAEA,UAAUd,SAAZ,MAAYA,QAAQM,UAApB,MAAoBA;IAC5C,IAAMS,QAAQ1B,OAAO;QACnBC,IAAI,MAAM;QACVA,IAAI,MAAM,QAAgB,OAARwB;KACnB;IAED,IAAMV,UAAU;QACdd,IAAI,MAAM;QACVA,IAAI,MAAM,CAACU,SAAS,OAAO;QAC3BV,IAAI,MAAMyB;QACVzB,IAAI,MAAM;QACVA,IAAI,MAAM;KACZ;IAEA,IAAIU,QAAQ;QACVI,QAAQY,IAAA,CAAK1B,IAAI,MAAM2B,OAAOjB,QAAQkB,OAAA,CAAQ;IAChD;IAEA,IAAIZ,SAAS;QACXF,QAAQY,IAAA,CAAK1B,IAAI,MAAMe,YAAYC;IACrC;IAEA,OAAOf,WAAWF,OAAOe,UAAU;AACrC;ALyBA,gDAAgD;AM/CzC,SAASR,oBAAoB,KAIpC;QAHEuB,YADkC,MAClCA,WACAC,gBAFkC,MAElCA,eACAC,OAHkC,MAGlCA;IAEA,IAAMjB,UAAU;QACdd,IACE,MACAD,OAAO;YACLC,IAAI,MAAM;YACVA,IAAI,MAAM;YACVA,IAAI,MAAM6B;YACV7B,IAAI,MAAM8B;YACV9B,IAAI,MAAM+B;SACX;KAEL;IAEA,OAAO9B,WAAWF,OAAOe,UAAU,MAAM;AAC3C;ANiDA,SACEX,UAAU,EACVC,UAAU,EACVC,SAAS,EACTC,mBAAmB,EACnBJ,gBAAgB,GAChB","sourcesContent":["import {\n  BOTBarcode,\n  ProxyType,\n  __export,\n  anyId,\n  billPayment,\n  encode,\n  tag,\n  withCrcTag\n} from \"./chunk-5EIJJBFC.mjs\";\n\n// src/generate/index.ts\nvar generate_exports = {};\n__export(generate_exports, {\n  ProxyType: () => ProxyType,\n  anyId: () => anyId,\n  billPayment: () => billPayment,\n  botBarcode: () => botBarcode,\n  slipVerify: () => slipVerify,\n  trueMoney: () => trueMoney,\n  trueMoneySlipVerify: () => trueMoneySlipVerify\n});\n\n// src/generate/bot/BOTBarcode.ts\nfunction botBarcode({ billerId, ref1, ref2, amount }) {\n  return new BOTBarcode(billerId, ref1, ref2, amount).toString();\n}\n\n// src/generate/promptpay/SlipVerify.ts\nfunction slipVerify({ sendingBank, transRef }) {\n  const payload = [\n    tag(\n      \"00\",\n      encode([\n        tag(\"00\", \"000001\"),\n        tag(\"01\", sendingBank),\n        tag(\"02\", transRef)\n      ])\n    ),\n    tag(\"51\", \"TH\")\n  ];\n  return withCrcTag(encode(payload), \"91\");\n}\n\n// src/utils/encoder.ts\nfunction encodeTag81(message) {\n  return message.split(\"\").map((c) => c.charCodeAt(0).toString(16).padStart(4, \"0\")).join(\"\").toUpperCase();\n}\n\n// src/generate/truemoney/TrueMoney.ts\nfunction trueMoney({ mobileNo, amount, message }) {\n  const tag29 = encode([\n    tag(\"00\", \"A000000677010111\"),\n    tag(\"03\", `14000${mobileNo}`)\n  ]);\n  const payload = [\n    tag(\"00\", \"01\"),\n    tag(\"01\", !amount ? \"11\" : \"12\"),\n    tag(\"29\", tag29),\n    tag(\"53\", \"764\"),\n    tag(\"58\", \"TH\")\n  ];\n  if (amount) {\n    payload.push(tag(\"54\", Number(amount).toFixed(2)));\n  }\n  if (message) {\n    payload.push(tag(\"81\", encodeTag81(message)));\n  }\n  return withCrcTag(encode(payload), \"63\");\n}\n\n// src/generate/truemoney/TrueMoneySlipVerify.ts\nfunction trueMoneySlipVerify({\n  eventType,\n  transactionId,\n  date\n}) {\n  const payload = [\n    tag(\n      \"00\",\n      encode([\n        tag(\"00\", \"01\"),\n        tag(\"01\", \"01\"),\n        tag(\"02\", eventType),\n        tag(\"03\", transactionId),\n        tag(\"04\", date)\n      ])\n    )\n  ];\n  return withCrcTag(encode(payload), \"91\", false);\n}\n\nexport {\n  botBarcode,\n  slipVerify,\n  trueMoney,\n  trueMoneySlipVerify,\n  generate_exports\n};\n","export * from './bot/BOTBarcode'\nexport * from './promptpay/AnyID'\nexport * from './promptpay/BillPayment'\nexport * from './promptpay/SlipVerify'\nexport * from './truemoney/TrueMoney'\nexport * from './truemoney/TrueMoneySlipVerify'\n","import { BOTBarcode } from '@/lib/BOTBarcode'\n\nexport interface BOTBarcodeConfig {\n  /** Biller ID (Tax ID + Suffix) */\n  billerId: string\n\n  /** Reference No. 1 / Customer No. */\n  ref1: string\n\n  /** Reference No. 2 */\n  ref2?: string | null\n\n  /** Transaction amount */\n  amount?: number | null\n}\n\n/**\n * Generate BOT Barcode\n *\n * @returns Barcode Payload\n */\nexport function botBarcode({ billerId, ref1, ref2, amount }: BOTBarcodeConfig) {\n  return new BOTBarcode(billerId, ref1, ref2, amount).toString()\n}\n","import { encode, tag, withCrcTag } from '@/lib/tlv'\n\nexport interface SlipVerifyConfig {\n  /** Bank code */\n  sendingBank: string\n\n  /** Transaction reference */\n  transRef: string\n}\n\n/**\n * Generate Slip Verify QR Code\n *\n * This also called \"Mini-QR\" that embedded in slip used for verify transactions\n *\n * @returns QR Code Payload\n */\nexport function slipVerify({ sendingBank, transRef }: SlipVerifyConfig) {\n  const payload = [\n    tag(\n      '00',\n      encode([\n        tag('00', '000001'),\n        tag('01', sendingBank),\n        tag('02', transRef),\n      ]),\n    ),\n    tag('51', 'TH'),\n  ]\n\n  return withCrcTag(encode(payload), '91')\n}\n","/**\n * Generate an `UCS-2`-like? Hex string for Tag 81\n *\n * This method is equivalent to:\n *\n * `Buffer.from(message, 'utf16le').swap16().toString('hex').toUpperCase()`\n *\n * @param message - Message\n * @returns Hex string of provided message\n */\nexport function encodeTag81(message: string) {\n  return message\n    .split('')\n    .map((c) => c.charCodeAt(0).toString(16).padStart(4, '0'))\n    .join('')\n    .toUpperCase()\n}\n","import { encode, tag, withCrcTag } from '@/lib/tlv'\nimport { encodeTag81 } from '@/utils/encoder'\n\nexport interface TrueMoneyConfig {\n  /** Mobile number */\n  mobileNo: string\n\n  /** Transaction amount */\n  amount?: number\n\n  /** Personal message (Tag 81) */\n  message?: string\n}\n\n/**\n * Generate QR Code for TrueMoney Wallet\n *\n * This QR Code can also be scanned with other apps,\n * just like a regular e-Wallet PromptPay QR\n * but `Personal Message (Tag 81)` will be ignored.\n *\n * @returns QR Code Payload\n */\nexport function trueMoney({ mobileNo, amount, message }: TrueMoneyConfig) {\n  const tag29 = encode([\n    tag('00', 'A000000677010111'),\n    tag('03', `14000${mobileNo}`),\n  ])\n\n  const payload = [\n    tag('00', '01'),\n    tag('01', !amount ? '11' : '12'),\n    tag('29', tag29),\n    tag('53', '764'),\n    tag('58', 'TH'),\n  ]\n\n  if (amount) {\n    payload.push(tag('54', Number(amount).toFixed(2)))\n  }\n\n  if (message) {\n    payload.push(tag('81', encodeTag81(message)))\n  }\n\n  return withCrcTag(encode(payload), '63')\n}\n","import { encode, tag, withCrcTag } from '@/lib/tlv'\n\nexport interface TrueMoneySlipVerifyConfig {\n  /** Event Type (Example: P2P) */\n  eventType: string\n\n  /** Transaction ID */\n  transactionId: string\n\n  /** Date (DDMMYYYY) */\n  date: string\n}\n\n/**\n * Generate TrueMoney Slip Verify QR Code\n *\n * Same as a regular Slip Verify QR but with some differences\n * - Tag 00 and 01 are set to '01'\n * - Tag 51 does not exist\n * - Additional tags that are TrueMoney-specific\n * - CRC checksum are case-sensitive\n *\n * @returns QR Code Payload\n */\nexport function trueMoneySlipVerify({\n  eventType,\n  transactionId,\n  date,\n}: TrueMoneySlipVerifyConfig) {\n  const payload = [\n    tag(\n      '00',\n      encode([\n        tag('00', '01'),\n        tag('01', '01'),\n        tag('02', eventType),\n        tag('03', transactionId),\n        tag('04', date),\n      ]),\n    ),\n  ]\n\n  return withCrcTag(encode(payload), '91', false)\n}\n"]}