@ripwords/myinvois-client 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (575) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/README.md +128 -4
  3. package/bun.lock +59 -0
  4. package/dist/{0X-Yw7mZEro.d.cts → 0X-CG1S1WKn.d.ts} +1 -2
  5. package/dist/{0X-C4IRh_fJ.d.ts → 0X-ChfmeAYF.d.cts} +1 -1
  6. package/dist/{1X-D_aUVsuM.d.cts → 1X-CmlbG02M.d.ts} +1 -2
  7. package/dist/{1X-BwpSoT3o.d.cts → 1X-DFikQbP0.d.cts} +1 -1
  8. package/dist/{1X-C-_KHV-Q.d.ts → 1X-DbFshzup.d.ts} +1 -2
  9. package/dist/{1X-Brnls9Jh.d.ts → 1X-jFrFCOs0.d.cts} +1 -1
  10. package/dist/{2X-UdQcQW24.d.ts → 2X-5cE4ojEX.d.cts} +1 -1
  11. package/dist/{2X-hClUyw26.d.cts → 2X-DA6J6Wd7.d.ts} +1 -2
  12. package/dist/{2X-Bb6elyzV.d.cts → 2X-FWZ1rYVt.d.cts} +1 -1
  13. package/dist/{2X-DkS1BoE5.d.ts → 2X-eC_p0QJf.d.ts} +1 -2
  14. package/dist/{3X-C7VFD-n-.d.cts → 3X-D9duw0Ro.d.cts} +1 -1
  15. package/dist/{3X-DFI-4RQQ.d.ts → 3X-DbfkwdkO.d.ts} +1 -2
  16. package/dist/{3X-DVDyspgb.d.ts → 3X-GxuN79Ax.d.ts} +1 -2
  17. package/dist/{3X-CLMESDvz.d.cts → 3X-r9xbWJ2l.d.cts} +1 -1
  18. package/dist/{4X-CIJ2JJ2w.d.ts → 4X-1ZkK-uH5.d.cts} +1 -1
  19. package/dist/{4X-CUR8jlaZ.d.ts → 4X-CLO9OuKa.d.cts} +1 -1
  20. package/dist/{4X-DIfvpU6V.d.cts → 4X-CnHtgO6u.d.ts} +1 -2
  21. package/dist/{4X-CvScPJTf.d.cts → 4X-DYz_nYSD.d.ts} +1 -2
  22. package/dist/{5X-COsZHUaQ.d.ts → 5X-BzPEdkbC.d.ts} +1 -2
  23. package/dist/{5X-C6db432h.d.ts → 5X-BziH0a09.d.cts} +1 -1
  24. package/dist/{5X-BOUxhadJ.d.cts → 5X-Cfe39fFc.d.cts} +1 -1
  25. package/dist/{5X-CkLu7Vyd.d.cts → 5X-kBF74qx1.d.ts} +1 -2
  26. package/dist/{6X-C_fFIcJC.d.ts → 6X-BceErbps.d.cts} +1 -1
  27. package/dist/{6X-DE7RJeV6.d.cts → 6X-C_xpeu6J.d.ts} +1 -2
  28. package/dist/{6X-ClZDKOTC.d.ts → 6X-DLWEe1bP.d.cts} +1 -1
  29. package/dist/{6X-Mf32k1d0.d.cts → 6X-sQZfT0ZK.d.ts} +1 -2
  30. package/dist/{7X-Chtd6B66.d.cts → 7X-Bet2agJ6.d.ts} +1 -2
  31. package/dist/{7X-kot_VccM.d.ts → 7X-BoKQxMoO.d.ts} +1 -2
  32. package/dist/{7X-BZyesooz.d.ts → 7X-CucHYQsA.d.cts} +1 -1
  33. package/dist/{7X-DoCUcp-J.d.cts → 7X-CwPAqozm.d.cts} +1 -1
  34. package/dist/{8X-Df4DOBOe.d.ts → 8X-BIjJ9kaV.d.cts} +1 -1
  35. package/dist/{8X-Dr9RunRw.d.cts → 8X-BOEWATU3.d.ts} +1 -2
  36. package/dist/{8X-DkuKAkHz.d.ts → 8X-CJpqd5xp.d.cts} +1 -1
  37. package/dist/{8X-DqZyMvyV.d.cts → 8X-s5AzkHR-.d.ts} +1 -2
  38. package/dist/{9X-BDgifncF.d.ts → 9X-BBDP1gZ6.d.ts} +1 -2
  39. package/dist/{9X-BaoZtjWF.d.cts → 9X-CP5Xp6bE.d.cts} +1 -1
  40. package/dist/{9X-BcAb6Uso.d.cts → 9X-D3aOVCnz.d.cts} +1 -1
  41. package/dist/{9X-BhBWlgxG.d.ts → 9X-DAAZV4sr.d.ts} +1 -2
  42. package/dist/{AX-D6XHWdrY.d.ts → AX-CmpMMhII.d.ts} +1 -2
  43. package/dist/{AX-BY72FohC.d.cts → AX-DFzpxGOT.d.cts} +1 -1
  44. package/dist/{BX-D_0C8Qbd.d.ts → BX-CyiqNE6b.d.cts} +1 -1
  45. package/dist/{BX-CA0OmrUZ.d.cts → BX-j78z_ju_.d.ts} +1 -2
  46. package/dist/{CX-glpQSL8x.d.cts → CX-B6rEhQx7.d.ts} +1 -2
  47. package/dist/{CX-HH4cSZRX.d.ts → CX-BTPvC3Dv.d.cts} +1 -1
  48. package/dist/{DX-DimL1MDM.d.cts → DX-BD4-hTCh.d.cts} +1 -1
  49. package/dist/{DX-Dx22ax_I.d.ts → DX-CAmMnx5a.d.ts} +1 -2
  50. package/dist/{EX-BRWh1wFc.d.ts → EX-CXhSC85J.d.ts} +1 -2
  51. package/dist/{EX-Cx87Ruxl.d.cts → EX-mTHCH0Yk.d.cts} +1 -1
  52. package/dist/{FX-D81UlxNN.d.cts → FX-DOOMoQl2.d.cts} +1 -1
  53. package/dist/{FX-RmjwAr40.d.ts → FX-DYVIJ3l0.d.ts} +1 -2
  54. package/dist/{GX-CJyo7oDp.d.ts → GX-8URJ7WHz.d.cts} +1 -1
  55. package/dist/{GX-9i7piP9G.d.cts → GX-eBOVHqi6.d.ts} +1 -2
  56. package/dist/{HX-20GVJAvl.d.cts → HX-49z8CzsE.d.cts} +1 -1
  57. package/dist/{HX-XALBTdLA.d.ts → HX-Dz5T0xXI.d.ts} +1 -2
  58. package/dist/{IX-6SZ55QKb.d.ts → IX-B6kblmBs.d.cts} +1 -1
  59. package/dist/{IX-D54NGPsc.d.cts → IX-PiKYro5a.d.ts} +1 -2
  60. package/dist/{JX-C1RYcwQX.d.cts → JX-DMwHLGEE.d.cts} +1 -1
  61. package/dist/{JX-hQ1XRmLp.d.ts → JX-Dvnt0mSK.d.ts} +1 -2
  62. package/dist/{KX-BNwunEfn.d.ts → KX-BUb8e0yg.d.ts} +1 -2
  63. package/dist/{KX-gQHCIgtQ.d.cts → KX-DaJPkefl.d.cts} +1 -1
  64. package/dist/{LX-CHYX3X3J.d.ts → LX-BnILxjdS.d.cts} +1 -1
  65. package/dist/{LX-CPurJGIh.d.cts → LX-l5ZBaGov.d.ts} +1 -2
  66. package/dist/{MX-BPGLWSUz.d.ts → MX-BbPO8mTj.d.cts} +1 -1
  67. package/dist/{MX-BnyW5eHf.d.cts → MX-C7C15AWi.d.ts} +1 -2
  68. package/dist/{NX-RulN5Ml3.d.ts → NX-C7nFVC-D.d.ts} +1 -2
  69. package/dist/{NX-B11fQuco.d.cts → NX-xy5uw7H3.d.cts} +1 -1
  70. package/dist/{OX-DgKVSp7I.d.ts → OX-CIzARbON.d.cts} +1 -1
  71. package/dist/{OX-T-ydRXQS.d.cts → OX-Dmkvcaij.d.ts} +1 -2
  72. package/dist/{PX-DA4A2kEv.d.ts → PX-BKZ14N7N.d.ts} +1 -2
  73. package/dist/{PX-p0n1SzvU.d.cts → PX-CL8waFgx.d.cts} +1 -1
  74. package/dist/{QX-DrFqsMEs.d.ts → QX-6xdSNtxZ.d.ts} +1 -2
  75. package/dist/{QX-CI1NccIB.d.cts → QX-BowAYqZb.d.cts} +1 -1
  76. package/dist/{RX-DnNKol22.d.cts → RX-DFoiOK5q.d.ts} +1 -2
  77. package/dist/{RX-Cm7vFcFN.d.ts → RX-fWoWcHTG.d.cts} +1 -1
  78. package/dist/{SX-BUjiWQYz.d.cts → SX-CZ3e31OT.d.cts} +1 -1
  79. package/dist/{SX-CsPPTu-W.d.ts → SX-D-Szi9wa.d.ts} +1 -2
  80. package/dist/{TX-DCY25MdR.d.ts → TX-CJhJ-HYX.d.cts} +1 -1
  81. package/dist/{TX-DOEpsf05.d.cts → TX-DTfkGsqn.d.ts} +1 -2
  82. package/dist/{UX-DgUOnTFK.d.cts → UX-Bw4HHAj4.d.ts} +1 -2
  83. package/dist/{UX-DauyagHy.d.ts → UX-P7-u2y70.d.cts} +1 -1
  84. package/dist/{VX-DD4scgCe.d.ts → VX-C8Eu5gQf.d.cts} +1 -1
  85. package/dist/{VX-kUX6LM-3.d.cts → VX-DCv5x_hi.d.ts} +1 -2
  86. package/dist/{WX-DPfyPFFh.d.cts → WX-BYtJ5_if.d.ts} +1 -2
  87. package/dist/{WX-CjkoppdY.d.ts → WX-DkiaqB2V.d.cts} +1 -1
  88. package/dist/{XX-sbsIUOnA.d.ts → XX-D4p4iK-a.d.cts} +1 -1
  89. package/dist/{XX-C4C1gQZH.d.cts → XX-Jo1yJO3A.d.ts} +1 -2
  90. package/dist/{YX-DUdO8mRC.d.ts → YX-BvGmEsVG.d.ts} +1 -2
  91. package/dist/{YX-BeT-LsiA.d.cts → YX-Du8zv9qz.d.cts} +1 -1
  92. package/dist/{ZX-BuVTTq-D.d.cts → ZX-B4jFD-21.d.cts} +1 -1
  93. package/dist/{ZX-DwfcSA-D.d.ts → ZX-B59AJcBY.d.ts} +1 -2
  94. package/dist/api/platform/platformLogin.d.ts +58 -60
  95. package/dist/api/platform/platformLogin.js +1 -1
  96. package/dist/certificate-DFK-788s.cjs +62 -0
  97. package/dist/certificate-DFK-788s.cjs.map +1 -0
  98. package/dist/certificate-aooIRf9A.js +49 -0
  99. package/dist/{classification-codes-C2X4xW5-.d.ts → classification-codes-BKxV-rO9.d.ts} +1 -2
  100. package/dist/{country-code-DsI8Mbzx.d.ts → country-code-CQuaiQm2.d.ts} +1 -2
  101. package/dist/{currencies-DKuDflOO.d.ts → currencies-BYJK-m6v.d.ts} +1 -2
  102. package/dist/document-DMIMRJV0.cjs +472 -0
  103. package/dist/document-DMIMRJV0.cjs.map +1 -0
  104. package/dist/document-NQos5fSr.js +405 -0
  105. package/dist/documents-BVG7KIKY.d.ts +847 -0
  106. package/dist/documents-C066EC9m.d.cts +848 -0
  107. package/dist/{e-invoice-C2TxhyrK.d.ts → e-invoice-CmbLQkHw.d.ts} +1 -2
  108. package/dist/{getBaseUrl-Dx6RDC8I.js → getBaseUrl-R3IdgCu3.js} +1 -2
  109. package/dist/{index-B1DSs-wd.d.cts → index-0-EvC6Nv.d.ts} +1 -2
  110. package/dist/{index-FTgB2nM6.d.ts → index-D2_HVwCz.d.cts} +1 -1
  111. package/dist/index.cjs +308 -12
  112. package/dist/index.cjs.map +1 -0
  113. package/dist/index.d.ts +233 -60
  114. package/dist/index.js +306 -11
  115. package/dist/index10.cjs +0 -34
  116. package/dist/index11.cjs +25 -15
  117. package/dist/index11.cjs.map +1 -1
  118. package/dist/index12.cjs +24 -0
  119. package/dist/index12.cjs.map +1 -0
  120. package/dist/index13.cjs +0 -13
  121. package/dist/index15.cjs +3 -2
  122. package/dist/index16.cjs +12 -16
  123. package/dist/index17.cjs +2 -2
  124. package/dist/index18.cjs +336 -204
  125. package/dist/index18.cjs.map +1 -1
  126. package/dist/index19.cjs +325 -105
  127. package/dist/index19.cjs.map +1 -1
  128. package/dist/index20.cjs +136 -133
  129. package/dist/index20.cjs.map +1 -1
  130. package/dist/index21.cjs +2 -63
  131. package/dist/index22.cjs +203 -262
  132. package/dist/index22.cjs.map +1 -1
  133. package/dist/index23.cjs +104 -74
  134. package/dist/index23.cjs.map +1 -1
  135. package/dist/index24.cjs +132 -102
  136. package/dist/index24.cjs.map +1 -1
  137. package/dist/index25.cjs +59 -68
  138. package/dist/index25.cjs.map +1 -1
  139. package/dist/index26.cjs +262 -107
  140. package/dist/index26.cjs.map +1 -1
  141. package/dist/index27.cjs +74 -95
  142. package/dist/index27.cjs.map +1 -1
  143. package/dist/index28.cjs +102 -13
  144. package/dist/index28.cjs.map +1 -1
  145. package/dist/index29.cjs +68 -33
  146. package/dist/index29.cjs.map +1 -1
  147. package/dist/index30.cjs +107 -14
  148. package/dist/index30.cjs.map +1 -1
  149. package/dist/index31.cjs +95 -24
  150. package/dist/index31.cjs.map +1 -1
  151. package/dist/index32.cjs +11 -13
  152. package/dist/index32.cjs.map +1 -1
  153. package/dist/index33.cjs +31 -7
  154. package/dist/index33.cjs.map +1 -1
  155. package/dist/index34.cjs +12 -7
  156. package/dist/index34.cjs.map +1 -1
  157. package/dist/index35.cjs +22 -10
  158. package/dist/index35.cjs.map +1 -1
  159. package/dist/index36.cjs +13 -6
  160. package/dist/index36.cjs.map +1 -1
  161. package/dist/index37.cjs +7 -101
  162. package/dist/index37.cjs.map +1 -1
  163. package/dist/index38.cjs +7 -106
  164. package/dist/index38.cjs.map +1 -1
  165. package/dist/index39.cjs +10 -119
  166. package/dist/index39.cjs.map +1 -1
  167. package/dist/index40.cjs +6 -106
  168. package/dist/index40.cjs.map +1 -1
  169. package/dist/index41.cjs +101 -98
  170. package/dist/index41.cjs.map +1 -1
  171. package/dist/index42.cjs +106 -118
  172. package/dist/index42.cjs.map +1 -1
  173. package/dist/index43.cjs +119 -127
  174. package/dist/index43.cjs.map +1 -1
  175. package/dist/index44.cjs +106 -117
  176. package/dist/index44.cjs.map +1 -1
  177. package/dist/index45.cjs +98 -14
  178. package/dist/index45.cjs.map +1 -1
  179. package/dist/index46.cjs +118 -95
  180. package/dist/index46.cjs.map +1 -1
  181. package/dist/index47.cjs +127 -142
  182. package/dist/index47.cjs.map +1 -1
  183. package/dist/index48.cjs +117 -114
  184. package/dist/index48.cjs.map +1 -1
  185. package/dist/index49.cjs +14 -144
  186. package/dist/index49.cjs.map +1 -1
  187. package/dist/index5.cjs +0 -25
  188. package/dist/index50.cjs +95 -113
  189. package/dist/index50.cjs.map +1 -1
  190. package/dist/index51.cjs +142 -17
  191. package/dist/index51.cjs.map +1 -1
  192. package/dist/index52.cjs +114 -112
  193. package/dist/index52.cjs.map +1 -1
  194. package/dist/index53.cjs +144 -47
  195. package/dist/index53.cjs.map +1 -1
  196. package/dist/index54.cjs +113 -14
  197. package/dist/index54.cjs.map +1 -1
  198. package/dist/index55.cjs +17 -28
  199. package/dist/index55.cjs.map +1 -1
  200. package/dist/index56.cjs +112 -22
  201. package/dist/index56.cjs.map +1 -1
  202. package/dist/index57.cjs +47 -9
  203. package/dist/index57.cjs.map +1 -1
  204. package/dist/index58.cjs +14 -8
  205. package/dist/index58.cjs.map +1 -1
  206. package/dist/index58.cts.map +1 -0
  207. package/dist/index59.cjs +28 -17
  208. package/dist/index59.cjs.map +1 -1
  209. package/dist/index59.cts.map +1 -1
  210. package/dist/index6.cjs +25 -0
  211. package/dist/{index5.cjs.map → index6.cjs.map} +1 -1
  212. package/dist/index60.cjs +22 -412
  213. package/dist/index60.cjs.map +1 -1
  214. package/dist/index60.cts.map +1 -0
  215. package/dist/index61.cjs +9 -8
  216. package/dist/index61.cjs.map +1 -1
  217. package/dist/index61.cts.map +1 -0
  218. package/dist/index62.cjs +8 -9
  219. package/dist/index62.cjs.map +1 -1
  220. package/dist/index62.cts.map +1 -1
  221. package/dist/index63.cjs +24 -0
  222. package/dist/index63.cjs.map +1 -0
  223. package/dist/index63.cts.map +1 -1
  224. package/dist/index64.cjs +419 -0
  225. package/dist/index64.cjs.map +1 -0
  226. package/dist/index64.cts.map +1 -1
  227. package/dist/index65.cjs +9 -116
  228. package/dist/index65.cjs.map +1 -1
  229. package/dist/index65.cts.map +1 -1
  230. package/dist/index66.cjs +10 -223
  231. package/dist/index66.cjs.map +1 -1
  232. package/dist/index66.cts.map +1 -1
  233. package/dist/index8.cjs +0 -25
  234. package/dist/index9.cjs +25 -0
  235. package/dist/{index8.cjs.map → index9.cjs.map} +1 -1
  236. package/dist/{msic-codes-B_1W6lZF.d.cts → msic-codes-CPWVNnpq.d.cts} +11 -11
  237. package/dist/msic-codes-DToUqTI6.d.ts +25 -0
  238. package/dist/{payment-modes-DHihrywe.d.cts → payment-modes-DA7uBIGb.d.ts} +1 -2
  239. package/dist/{payment-modes-B8dNy3SM.d.ts → payment-modes-FX88uyhP.d.cts} +1 -1
  240. package/dist/platformLogin-PGzMhw1X.cjs.map +1 -1
  241. package/dist/{platformLogin-DsxWWUXr.js → platformLogin-f0bNAoZI.js} +1 -2
  242. package/dist/{signatures-C9QPZTQd.d.ts → signatures-CG175mpg.d.ts} +1 -2
  243. package/dist/{state-codes-DXSWtE6a.d.cts → state-codes-CNp_6051.d.cts} +1 -1
  244. package/dist/{state-codes-CxG1S9YY.d.ts → state-codes-dvoTe5pC.d.ts} +1 -2
  245. package/dist/{tax-types-CEpfSh5P.d.ts → tax-types-tosH5I0q.d.ts} +1 -2
  246. package/dist/types/classification-codes.d.ts +1 -1
  247. package/dist/types/country-code.d.ts +1 -1
  248. package/dist/types/currencies.d.ts +1 -1
  249. package/dist/types/documents.d.ts +7 -0
  250. package/dist/types/e-invoice.d.ts +1 -1
  251. package/dist/types/index.d.ts +58 -59
  252. package/dist/types/msic/0X.d.ts +1 -1
  253. package/dist/types/msic/1X.d.ts +1 -1
  254. package/dist/types/msic/2X.d.ts +1 -1
  255. package/dist/types/msic/3X.d.ts +1 -1
  256. package/dist/types/msic/4X.d.ts +1 -1
  257. package/dist/types/msic/5X.d.ts +1 -1
  258. package/dist/types/msic/6X.d.ts +1 -1
  259. package/dist/types/msic/7X.d.ts +1 -1
  260. package/dist/types/msic/8X.d.ts +1 -1
  261. package/dist/types/msic/9X.d.ts +1 -1
  262. package/dist/types/msic-codes.d.ts +11 -11
  263. package/dist/types/payment-modes.d.ts +1 -1
  264. package/dist/types/signatures.d.ts +1 -1
  265. package/dist/types/state-codes.d.ts +1 -1
  266. package/dist/types/tax-types.d.ts +1 -1
  267. package/dist/types/unit/1X.d.ts +1 -1
  268. package/dist/types/unit/2X.d.ts +1 -1
  269. package/dist/types/unit/3X.d.ts +1 -1
  270. package/dist/types/unit/4X.d.ts +1 -1
  271. package/dist/types/unit/5X.d.ts +1 -1
  272. package/dist/types/unit/6X.d.ts +1 -1
  273. package/dist/types/unit/7X.d.ts +1 -1
  274. package/dist/types/unit/8X.d.ts +1 -1
  275. package/dist/types/unit/9X.d.ts +1 -1
  276. package/dist/types/unit/AX.d.ts +1 -1
  277. package/dist/types/unit/BX.d.ts +1 -1
  278. package/dist/types/unit/CX.d.ts +1 -1
  279. package/dist/types/unit/DX.d.ts +1 -1
  280. package/dist/types/unit/EX.d.ts +1 -1
  281. package/dist/types/unit/FX.d.ts +1 -1
  282. package/dist/types/unit/GX.d.ts +1 -1
  283. package/dist/types/unit/HX.d.ts +1 -1
  284. package/dist/types/unit/IX.d.ts +1 -1
  285. package/dist/types/unit/JX.d.ts +1 -1
  286. package/dist/types/unit/KX.d.ts +1 -1
  287. package/dist/types/unit/LX.d.ts +1 -1
  288. package/dist/types/unit/MX.d.ts +1 -1
  289. package/dist/types/unit/NX.d.ts +1 -1
  290. package/dist/types/unit/OX.d.ts +1 -1
  291. package/dist/types/unit/PX.d.ts +1 -1
  292. package/dist/types/unit/QX.d.ts +1 -1
  293. package/dist/types/unit/RX.d.ts +1 -1
  294. package/dist/types/unit/SX.d.ts +1 -1
  295. package/dist/types/unit/TX.d.ts +1 -1
  296. package/dist/types/unit/UX.d.ts +1 -1
  297. package/dist/types/unit/VX.d.ts +1 -1
  298. package/dist/types/unit/WX.d.ts +1 -1
  299. package/dist/types/unit/XX.d.ts +1 -1
  300. package/dist/types/unit/YX.d.ts +1 -1
  301. package/dist/types/unit/ZX.d.ts +1 -1
  302. package/dist/types/unit-types.d.ts +36 -36
  303. package/dist/unit-types-BKZxwVYQ.d.ts +55 -0
  304. package/dist/unit-types-CaOA5ZDG.d.cts +56 -0
  305. package/dist/utils/base64.d.ts +1 -2
  306. package/dist/utils/base64.js +1 -2
  307. package/dist/utils/certificate.d.ts +22 -0
  308. package/dist/utils/certificate.js +3 -0
  309. package/dist/utils/document.d.ts +135 -0
  310. package/dist/utils/document.js +3 -0
  311. package/dist/utils/getBaseUrl.d.ts +1 -2
  312. package/dist/utils/getBaseUrl.js +1 -1
  313. package/dist/utils/helpers.d.ts +271 -0
  314. package/dist/utils/helpers.js +330 -0
  315. package/dist/utils/signature-diagnostics.d.ts +93 -0
  316. package/dist/utils/signature-diagnostics.js +326 -0
  317. package/dist/utils/validation.d.ts +46 -0
  318. package/dist/utils/validation.js +134 -0
  319. package/myinvois-cert.conf.template +23 -0
  320. package/package.json +9 -3
  321. package/scripts/gen-cert.sh +159 -0
  322. package/src/api/platform/platformLogin.ts +1 -1
  323. package/src/index.ts +528 -1
  324. package/src/types/documents.d.ts +862 -0
  325. package/src/types/index.d.ts +1 -1
  326. package/src/utils/certificate.ts +60 -0
  327. package/src/utils/document.ts +852 -0
  328. package/src/utils/helpers.ts +552 -0
  329. package/src/utils/signature-diagnostics.ts +583 -0
  330. package/src/utils/validation.ts +268 -0
  331. package/test/MyInvoiClientWithRealData.test.ts +9 -1
  332. package/test/MyInvoisClient.test.ts +7 -1
  333. package/test/dynamicInvoiceFeatures.test.ts +449 -0
  334. package/test/signAndSubmitInvoice.test.ts +269 -734
  335. package/test/signature-diagnostics.test.ts +128 -0
  336. package/tsconfig.json +0 -3
  337. package/dist/0X-C4IRh_fJ.d.ts.map +0 -1
  338. package/dist/0X-Yw7mZEro.d.cts.map +0 -1
  339. package/dist/1X-Brnls9Jh.d.ts.map +0 -1
  340. package/dist/1X-BwpSoT3o.d.cts.map +0 -1
  341. package/dist/1X-C-_KHV-Q.d.ts.map +0 -1
  342. package/dist/1X-D_aUVsuM.d.cts.map +0 -1
  343. package/dist/2X-Bb6elyzV.d.cts.map +0 -1
  344. package/dist/2X-DkS1BoE5.d.ts.map +0 -1
  345. package/dist/2X-UdQcQW24.d.ts.map +0 -1
  346. package/dist/2X-hClUyw26.d.cts.map +0 -1
  347. package/dist/3X-C7VFD-n-.d.cts.map +0 -1
  348. package/dist/3X-CLMESDvz.d.cts.map +0 -1
  349. package/dist/3X-DFI-4RQQ.d.ts.map +0 -1
  350. package/dist/3X-DVDyspgb.d.ts.map +0 -1
  351. package/dist/4X-CIJ2JJ2w.d.ts.map +0 -1
  352. package/dist/4X-CUR8jlaZ.d.ts.map +0 -1
  353. package/dist/4X-CvScPJTf.d.cts.map +0 -1
  354. package/dist/4X-DIfvpU6V.d.cts.map +0 -1
  355. package/dist/5X-BOUxhadJ.d.cts.map +0 -1
  356. package/dist/5X-C6db432h.d.ts.map +0 -1
  357. package/dist/5X-COsZHUaQ.d.ts.map +0 -1
  358. package/dist/5X-CkLu7Vyd.d.cts.map +0 -1
  359. package/dist/6X-C_fFIcJC.d.ts.map +0 -1
  360. package/dist/6X-ClZDKOTC.d.ts.map +0 -1
  361. package/dist/6X-DE7RJeV6.d.cts.map +0 -1
  362. package/dist/6X-Mf32k1d0.d.cts.map +0 -1
  363. package/dist/7X-BZyesooz.d.ts.map +0 -1
  364. package/dist/7X-Chtd6B66.d.cts.map +0 -1
  365. package/dist/7X-DoCUcp-J.d.cts.map +0 -1
  366. package/dist/7X-kot_VccM.d.ts.map +0 -1
  367. package/dist/8X-Df4DOBOe.d.ts.map +0 -1
  368. package/dist/8X-DkuKAkHz.d.ts.map +0 -1
  369. package/dist/8X-DqZyMvyV.d.cts.map +0 -1
  370. package/dist/8X-Dr9RunRw.d.cts.map +0 -1
  371. package/dist/9X-BDgifncF.d.ts.map +0 -1
  372. package/dist/9X-BaoZtjWF.d.cts.map +0 -1
  373. package/dist/9X-BcAb6Uso.d.cts.map +0 -1
  374. package/dist/9X-BhBWlgxG.d.ts.map +0 -1
  375. package/dist/AX-BY72FohC.d.cts.map +0 -1
  376. package/dist/AX-D6XHWdrY.d.ts.map +0 -1
  377. package/dist/BX-CA0OmrUZ.d.cts.map +0 -1
  378. package/dist/BX-D_0C8Qbd.d.ts.map +0 -1
  379. package/dist/CX-HH4cSZRX.d.ts.map +0 -1
  380. package/dist/CX-glpQSL8x.d.cts.map +0 -1
  381. package/dist/DX-DimL1MDM.d.cts.map +0 -1
  382. package/dist/DX-Dx22ax_I.d.ts.map +0 -1
  383. package/dist/EX-BRWh1wFc.d.ts.map +0 -1
  384. package/dist/EX-Cx87Ruxl.d.cts.map +0 -1
  385. package/dist/FX-D81UlxNN.d.cts.map +0 -1
  386. package/dist/FX-RmjwAr40.d.ts.map +0 -1
  387. package/dist/GX-9i7piP9G.d.cts.map +0 -1
  388. package/dist/GX-CJyo7oDp.d.ts.map +0 -1
  389. package/dist/HX-20GVJAvl.d.cts.map +0 -1
  390. package/dist/HX-XALBTdLA.d.ts.map +0 -1
  391. package/dist/IX-6SZ55QKb.d.ts.map +0 -1
  392. package/dist/IX-D54NGPsc.d.cts.map +0 -1
  393. package/dist/JX-C1RYcwQX.d.cts.map +0 -1
  394. package/dist/JX-hQ1XRmLp.d.ts.map +0 -1
  395. package/dist/KX-BNwunEfn.d.ts.map +0 -1
  396. package/dist/KX-gQHCIgtQ.d.cts.map +0 -1
  397. package/dist/LX-CHYX3X3J.d.ts.map +0 -1
  398. package/dist/LX-CPurJGIh.d.cts.map +0 -1
  399. package/dist/MX-BPGLWSUz.d.ts.map +0 -1
  400. package/dist/MX-BnyW5eHf.d.cts.map +0 -1
  401. package/dist/MyInvoisClient-BrNyMjS-.d.cts +0 -178
  402. package/dist/MyInvoisClient-BrNyMjS-.d.cts.map +0 -1
  403. package/dist/MyInvoisClient-CXu4pdl-.d.ts +0 -178
  404. package/dist/MyInvoisClient-CXu4pdl-.d.ts.map +0 -1
  405. package/dist/MyInvoisClient-Cnvb5iUC.js +0 -299
  406. package/dist/MyInvoisClient-Cnvb5iUC.js.map +0 -1
  407. package/dist/MyInvoisClient-DO1dJfQq.cjs +0 -304
  408. package/dist/MyInvoisClient-DO1dJfQq.cjs.map +0 -1
  409. package/dist/NX-B11fQuco.d.cts.map +0 -1
  410. package/dist/NX-RulN5Ml3.d.ts.map +0 -1
  411. package/dist/OX-DgKVSp7I.d.ts.map +0 -1
  412. package/dist/OX-T-ydRXQS.d.cts.map +0 -1
  413. package/dist/PX-DA4A2kEv.d.ts.map +0 -1
  414. package/dist/PX-p0n1SzvU.d.cts.map +0 -1
  415. package/dist/QX-CI1NccIB.d.cts.map +0 -1
  416. package/dist/QX-DrFqsMEs.d.ts.map +0 -1
  417. package/dist/RX-Cm7vFcFN.d.ts.map +0 -1
  418. package/dist/RX-DnNKol22.d.cts.map +0 -1
  419. package/dist/SX-BUjiWQYz.d.cts.map +0 -1
  420. package/dist/SX-CsPPTu-W.d.ts.map +0 -1
  421. package/dist/TX-DCY25MdR.d.ts.map +0 -1
  422. package/dist/TX-DOEpsf05.d.cts.map +0 -1
  423. package/dist/UX-DauyagHy.d.ts.map +0 -1
  424. package/dist/UX-DgUOnTFK.d.cts.map +0 -1
  425. package/dist/VX-DD4scgCe.d.ts.map +0 -1
  426. package/dist/VX-kUX6LM-3.d.cts.map +0 -1
  427. package/dist/WX-CjkoppdY.d.ts.map +0 -1
  428. package/dist/WX-DPfyPFFh.d.cts.map +0 -1
  429. package/dist/XX-C4C1gQZH.d.cts.map +0 -1
  430. package/dist/XX-sbsIUOnA.d.ts.map +0 -1
  431. package/dist/YX-BeT-LsiA.d.cts.map +0 -1
  432. package/dist/YX-DUdO8mRC.d.ts.map +0 -1
  433. package/dist/ZX-BuVTTq-D.d.cts.map +0 -1
  434. package/dist/ZX-DwfcSA-D.d.ts.map +0 -1
  435. package/dist/api/platform/platformLogin.d.ts.map +0 -1
  436. package/dist/canonicalize-C_fNNpYr.cjs +0 -80
  437. package/dist/canonicalize-C_fNNpYr.cjs.map +0 -1
  438. package/dist/canonicalize-DNUrCGad.js +0 -68
  439. package/dist/canonicalize-DNUrCGad.js.map +0 -1
  440. package/dist/classification-codes-B15PbWxz.d.cts.map +0 -1
  441. package/dist/classification-codes-C2X4xW5-.d.ts.map +0 -1
  442. package/dist/country-code-DPeNFMMi.d.cts.map +0 -1
  443. package/dist/country-code-DsI8Mbzx.d.ts.map +0 -1
  444. package/dist/currencies-DKuDflOO.d.ts.map +0 -1
  445. package/dist/currencies-S5g1gzBU.d.cts.map +0 -1
  446. package/dist/e-invoice-BuwtFnlI.d.cts.map +0 -1
  447. package/dist/e-invoice-C2TxhyrK.d.ts.map +0 -1
  448. package/dist/getBaseUrl-Dx6RDC8I.js.map +0 -1
  449. package/dist/hashCert-Bol7lIh2.js +0 -62
  450. package/dist/hashCert-Bol7lIh2.js.map +0 -1
  451. package/dist/hashCert-mlYEuYex.cjs +0 -68
  452. package/dist/hashCert-mlYEuYex.cjs.map +0 -1
  453. package/dist/hashSignedProperties-9vj5wlYR.js +0 -83
  454. package/dist/hashSignedProperties-9vj5wlYR.js.map +0 -1
  455. package/dist/hashSignedProperties-CU_ZqqmY.cjs +0 -95
  456. package/dist/hashSignedProperties-CU_ZqqmY.cjs.map +0 -1
  457. package/dist/index-B1DSs-wd.d.cts.map +0 -1
  458. package/dist/index-CJNLQVjx.d.ts +0 -1
  459. package/dist/index-FTgB2nM6.d.ts.map +0 -1
  460. package/dist/index-Wy1ONBjV.d.cts +0 -1
  461. package/dist/index10.cjs.map +0 -1
  462. package/dist/index21.cjs.map +0 -1
  463. package/dist/index67.cjs +0 -4
  464. package/dist/index67.cts.map +0 -1
  465. package/dist/index68.cjs +0 -3
  466. package/dist/index68.cts.map +0 -1
  467. package/dist/index69.cjs +0 -4
  468. package/dist/index69.cts.map +0 -1
  469. package/dist/index70.cjs +0 -3
  470. package/dist/index70.cts.map +0 -1
  471. package/dist/index71.cjs +0 -3
  472. package/dist/index71.cts.map +0 -1
  473. package/dist/index72.cjs +0 -3
  474. package/dist/index72.cts.map +0 -1
  475. package/dist/index73.cjs +0 -3
  476. package/dist/index73.cts.map +0 -1
  477. package/dist/invoice-1_1-BJVcw-oE.d.ts +0 -432
  478. package/dist/invoice-1_1-BJVcw-oE.d.ts.map +0 -1
  479. package/dist/invoice-1_1-DWdNPRzr.d.cts +0 -432
  480. package/dist/invoice-1_1-DWdNPRzr.d.cts.map +0 -1
  481. package/dist/invoice1-1-8S-QQn7P.cjs +0 -547
  482. package/dist/invoice1-1-8S-QQn7P.cjs.map +0 -1
  483. package/dist/invoice1-1-CHuLpkFz.js +0 -504
  484. package/dist/invoice1-1-CHuLpkFz.js.map +0 -1
  485. package/dist/msic-codes-B_1W6lZF.d.cts.map +0 -1
  486. package/dist/msic-codes-bs0lTfSZ.d.ts +0 -26
  487. package/dist/msic-codes-bs0lTfSZ.d.ts.map +0 -1
  488. package/dist/payment-modes-B8dNy3SM.d.ts.map +0 -1
  489. package/dist/payment-modes-DHihrywe.d.cts.map +0 -1
  490. package/dist/platformLogin-DsxWWUXr.js.map +0 -1
  491. package/dist/populateFinalDocument-BdyYzz5Y.cjs +0 -96
  492. package/dist/populateFinalDocument-BdyYzz5Y.cjs.map +0 -1
  493. package/dist/populateFinalDocument-BpLXmgLv.js +0 -90
  494. package/dist/populateFinalDocument-BpLXmgLv.js.map +0 -1
  495. package/dist/populateSignedProperties-BJMcBQ6S.cjs +0 -58
  496. package/dist/populateSignedProperties-BJMcBQ6S.cjs.map +0 -1
  497. package/dist/populateSignedProperties-BvGN-YZH.js +0 -52
  498. package/dist/populateSignedProperties-BvGN-YZH.js.map +0 -1
  499. package/dist/sign-B61Cy3gO.cjs +0 -40
  500. package/dist/sign-B61Cy3gO.cjs.map +0 -1
  501. package/dist/sign-DzHK7UhR.js +0 -34
  502. package/dist/sign-DzHK7UhR.js.map +0 -1
  503. package/dist/signatures-BKi9DP2K.d.cts.map +0 -1
  504. package/dist/signatures-C9QPZTQd.d.ts.map +0 -1
  505. package/dist/state-codes-CxG1S9YY.d.ts.map +0 -1
  506. package/dist/state-codes-DXSWtE6a.d.cts.map +0 -1
  507. package/dist/tax-types-CEpfSh5P.d.ts.map +0 -1
  508. package/dist/tax-types-CgwxONDS.d.cts.map +0 -1
  509. package/dist/transform-BLz0S687.cjs +0 -72
  510. package/dist/transform-BLz0S687.cjs.map +0 -1
  511. package/dist/transform-D1q-U6Zj.js +0 -66
  512. package/dist/transform-D1q-U6Zj.js.map +0 -1
  513. package/dist/types/documents/index.d.ts +0 -57
  514. package/dist/types/documents/invoice-1_1.d.ts +0 -56
  515. package/dist/unit-types-1bF0KhIp.d.ts +0 -56
  516. package/dist/unit-types-1bF0KhIp.d.ts.map +0 -1
  517. package/dist/unit-types-CsrkvgfG.d.cts +0 -56
  518. package/dist/unit-types-CsrkvgfG.d.cts.map +0 -1
  519. package/dist/utils/MyInvoisClient.d.ts +0 -60
  520. package/dist/utils/MyInvoisClient.js +0 -13
  521. package/dist/utils/base64.d.ts.map +0 -1
  522. package/dist/utils/base64.js.map +0 -1
  523. package/dist/utils/debug/debug-document-hash.d.ts +0 -100
  524. package/dist/utils/debug/debug-document-hash.d.ts.map +0 -1
  525. package/dist/utils/debug/debug-document-hash.js +0 -120
  526. package/dist/utils/debug/debug-document-hash.js.map +0 -1
  527. package/dist/utils/debug/debug-invoice-submission.d.ts +0 -152
  528. package/dist/utils/debug/debug-invoice-submission.d.ts.map +0 -1
  529. package/dist/utils/debug/debug-invoice-submission.js +0 -226
  530. package/dist/utils/debug/debug-invoice-submission.js.map +0 -1
  531. package/dist/utils/getBaseUrl.d.ts.map +0 -1
  532. package/dist/utils/invoice1-1.d.ts +0 -117
  533. package/dist/utils/invoice1-1.d.ts.map +0 -1
  534. package/dist/utils/invoice1-1.js +0 -10
  535. package/dist/utils/signature/canonicalize.d.ts +0 -26
  536. package/dist/utils/signature/canonicalize.d.ts.map +0 -1
  537. package/dist/utils/signature/canonicalize.js +0 -3
  538. package/dist/utils/signature/hashCert.d.ts +0 -15
  539. package/dist/utils/signature/hashCert.d.ts.map +0 -1
  540. package/dist/utils/signature/hashCert.js +0 -3
  541. package/dist/utils/signature/hashSignedProperties.d.ts +0 -25
  542. package/dist/utils/signature/hashSignedProperties.d.ts.map +0 -1
  543. package/dist/utils/signature/hashSignedProperties.js +0 -3
  544. package/dist/utils/signature/populateFinalDocument.d.ts +0 -23
  545. package/dist/utils/signature/populateFinalDocument.d.ts.map +0 -1
  546. package/dist/utils/signature/populateFinalDocument.js +0 -3
  547. package/dist/utils/signature/populateSignedProperties.d.ts +0 -23
  548. package/dist/utils/signature/populateSignedProperties.d.ts.map +0 -1
  549. package/dist/utils/signature/populateSignedProperties.js +0 -3
  550. package/dist/utils/signature/sign.d.ts +0 -16
  551. package/dist/utils/signature/sign.d.ts.map +0 -1
  552. package/dist/utils/signature/sign.js +0 -3
  553. package/dist/utils/signature/transform.d.ts +0 -16
  554. package/dist/utils/signature/transform.d.ts.map +0 -1
  555. package/dist/utils/signature/transform.js +0 -3
  556. package/src/types/documents/index.d.ts +0 -1
  557. package/src/types/documents/invoice-1_1.d.ts +0 -439
  558. package/src/utils/MyInvoisClient.ts +0 -501
  559. package/src/utils/debug/debug-document-hash.ts +0 -249
  560. package/src/utils/debug/debug-invoice-submission.ts +0 -355
  561. package/src/utils/invoice1-1.ts +0 -671
  562. package/src/utils/signature/canonicalize.ts +0 -104
  563. package/src/utils/signature/hashCert.ts +0 -115
  564. package/src/utils/signature/hashSignedProperties.ts +0 -155
  565. package/src/utils/signature/populateFinalDocument.ts +0 -187
  566. package/src/utils/signature/populateSignedProperties.ts +0 -87
  567. package/src/utils/signature/sign.ts +0 -51
  568. package/src/utils/signature/transform.ts +0 -99
  569. package/test/canonicalize.test.ts +0 -110
  570. package/test/hashCert.test.ts +0 -95
  571. package/test/hashSignedProperties.test.ts +0 -140
  572. package/test/populateFinalDocument.test.ts +0 -218
  573. package/test/populateSignedProperties.test.ts +0 -155
  574. package/test/sign.test.ts +0 -70
  575. package/test/transform.test.ts +0 -158
@@ -1 +1 @@
1
- {"version":3,"file":"index64.cts","names":["xmlDocument: string","xmlString: string","invoiceInfo: InvoiceV1_1","signingCredentials: SigningCredentials"],"sources":["../src/utils/debug/debug-invoice-submission.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,IAAa,iCAMZ,CAAA,KAAA,MAJE,OAAA;AA8CH,IAAgB,uBAAA,CAAA,GAAA;AAqEhB,IAAsB,wBAAA;CAAA;CAAA,MACP;CAAA,MACO;CAAA,MACnB;AAAA"}
1
+ {"version":3,"file":"index64.cts","names":[],"sources":["../src/utils/helpers.d.ts"],"sourcesContent":["import type { InvoiceV1_1, PaymentMeans, AllowanceCharge, CurrencyExchangeRate, Delivery, AdditionalDocumentReference } from '../types/documents/index.js';\n/**\n * MyInvois Invoice Helper Functions\n *\n * Provides convenient utilities for common invoice scenarios and business patterns.\n * These helpers simplify the creation of compliant MyInvois documents.\n */\n/**\n * Payment Method Helpers\n */\nexport declare const PaymentHelpers: {\n /**\n * Creates cash payment means\n */\n cash(): PaymentMeans;\n /**\n * Creates cheque payment means\n */\n cheque(accountId?: string): PaymentMeans;\n /**\n * Creates bank transfer payment means\n */\n bankTransfer(accountId: string, dueDate?: string): PaymentMeans;\n /**\n * Creates credit card payment means\n */\n creditCard(): PaymentMeans;\n /**\n * Creates e-wallet payment means\n */\n eWallet(accountId?: string): PaymentMeans;\n /**\n * Creates custom payment terms with specific due date\n */\n net(days: number, accountId?: string): PaymentMeans;\n};\n/**\n * Currency and Exchange Rate Helpers\n */\nexport declare const CurrencyHelpers: {\n /**\n * Creates domestic MYR transaction (no exchange rate needed)\n */\n domestic(): CurrencyExchangeRate;\n /**\n * Creates international transaction with exchange rate\n */\n international(fromCurrency: string, toCurrency: string | undefined, exchangeRate: number, rateDate?: string): CurrencyExchangeRate;\n /**\n * Common exchange rates (these should be updated with real-time rates)\n */\n commonRates: {\n USD_MYR: number;\n SGD_MYR: number;\n EUR_MYR: number;\n GBP_MYR: number;\n JPY_MYR: number;\n AUD_MYR: number;\n };\n};\n/**\n * Tax Calculation Helpers\n */\nexport declare const TaxHelpers: {\n /**\n * Calculates SST (6%) for goods\n */\n calculateSST(amount: number, rate?: number): {\n taxAmount: number;\n totalWithTax: number;\n };\n /**\n * Calculates Service Tax for services\n */\n calculateServiceTax(amount: number, rate?: number): {\n taxAmount: number;\n totalWithTax: number;\n };\n /**\n * Zero-rated calculation (0% tax)\n */\n zeroRated(amount: number): {\n taxAmount: number;\n totalWithTax: number;\n };\n /**\n * Exempt calculation (no tax)\n */\n exempt(amount: number): {\n taxAmount: number;\n totalWithTax: number;\n };\n};\n/**\n * Allowance and Charge Helpers\n */\nexport declare const AllowanceChargeHelpers: {\n /**\n * Creates a discount allowance\n */\n discount(reason: string, amount: number, percentage?: number): AllowanceCharge;\n /**\n * Creates a shipping charge\n */\n shipping(amount: number, description?: string): AllowanceCharge;\n /**\n * Creates an early payment discount\n */\n earlyPaymentDiscount(percentage: number, baseAmount: number): AllowanceCharge;\n /**\n * Creates a handling fee charge\n */\n handlingFee(amount: number): AllowanceCharge;\n};\n/**\n * Delivery Helpers\n */\nexport declare const DeliveryHelpers: {\n /**\n * Creates standard delivery information\n */\n standard(deliveryDate: string, address: {\n addressLine0: string;\n cityName: string;\n postalZone?: string;\n state: string;\n country?: string;\n }): Delivery;\n /**\n * Creates pickup delivery (customer pickup)\n */\n pickup(pickupDate: string): Delivery;\n /**\n * Creates delivery with freight charges\n */\n withFreight(deliveryDate: string, address: any, freightAmount: number, freightDescription?: string): Delivery;\n};\n/**\n * Document Reference Helpers\n */\nexport declare const DocumentReferenceHelpers: {\n /**\n * Creates purchase order reference\n */\n purchaseOrder(poNumber: string): {\n purchaseOrderReference: string;\n };\n /**\n * Creates contract reference\n */\n contract(contractNumber: string): {\n contractReference: string;\n };\n /**\n * Creates project reference\n */\n project(projectNumber: string): {\n projectReference: string;\n };\n /**\n * Creates billing reference\n */\n billing(billingNumber: string): {\n billingReference: string;\n };\n /**\n * Creates customs reference\n */\n customs(customsFormNumber: string): AdditionalDocumentReference;\n /**\n * Creates free trade agreement reference\n */\n freeTradeAgreement(ftaNumber: string, country: string): AdditionalDocumentReference;\n};\n/**\n * Industry Classification Helpers\n */\nexport declare const IndustryHelpers: {\n /**\n * Common industry classifications with proper codes and descriptions\n */\n trading: {\n industryClassificationCode: string;\n industryClassificationDescription: string;\n };\n manufacturing: {\n industryClassificationCode: string;\n industryClassificationDescription: string;\n };\n software: {\n industryClassificationCode: string;\n industryClassificationDescription: string;\n };\n consulting: {\n industryClassificationCode: string;\n industryClassificationDescription: string;\n };\n restaurant: {\n industryClassificationCode: string;\n industryClassificationDescription: string;\n };\n construction: {\n industryClassificationCode: string;\n industryClassificationDescription: string;\n };\n logistics: {\n industryClassificationCode: string;\n industryClassificationDescription: string;\n };\n /**\n * Creates custom industry classification\n */\n custom(code: string, description: string): {\n industryClassificationCode: string;\n industryClassificationDescription: string;\n };\n};\n/**\n * Date and Time Helpers\n */\nexport declare const DateTimeHelpers: {\n /**\n * Gets current date in MyInvois format (YYYY-MM-DD)\n */\n currentDate(): string;\n /**\n * Gets current time in MyInvois format (HH:mm:ssZ)\n */\n currentTime(): string;\n /**\n * Formats date to MyInvois format\n */\n formatDate(date: Date): string;\n /**\n * Formats time to MyInvois format\n */\n formatTime(date: Date): string;\n /**\n * Adds days to a date\n */\n addDays(date: Date, days: number): Date;\n /**\n * Gets billing period for monthly billing\n */\n monthlyPeriod(year: number, month: number): {\n start: string;\n end: string;\n };\n};\n/**\n * Complete Invoice Builder Helper\n */\nexport declare const InvoiceBuilder: {\n /**\n * Creates a basic cash invoice template\n */\n basicCash(invoiceNumber: string): Partial<InvoiceV1_1>;\n /**\n * Creates a business invoice template with bank transfer\n */\n businessInvoice(invoiceNumber: string, accountId: string, netDays?: number): Partial<InvoiceV1_1>;\n /**\n * Creates an international invoice template\n */\n international(invoiceNumber: string, currency: string, exchangeRate: number): Partial<InvoiceV1_1>;\n};\n"],"mappings":";;;AACA,IAAE,iBAAA;CAAA;CAAA,MAAA;CAAA,MAAA;CAAA,MAAA;CAAA,MAAA;CAAA,MAAA;CAAA,MAAA;AAAA;AACF,IAAW,kBAAkB;CAAC;CAAK,MAAA;CAAA,MAAA;AAAA;AACnC,IAAC,aAAA,CAAA,GAAA;AACD,IAAW,yBAAyB;CAAC;CAAK,MAAM;CAAiB,MAAM;CAAY,MAAA;CAAA,MAAA;AAAA;AACnF,IAAW,kBAAkB;CAAC;CAAK,MAAM;CAAU,MAAM;CAAU,MAAG;AAAA;AACtE,IAAE,2BAAA;CAAA;CAAA,MAAA;CAAA,MAAA;AAAA;AACF,IAAE,kBAAA,CAAA,GAAA;AACF,IAAW,kBAAa;CAAA;CAAA,MAAA;CAAA,MAAA;CAAA,MAAA;CAAA,MAAA;AAAA;AACxB,IAAE,iBAAA;CAAA;CAAA,MAAA;CAAA,MAAA;CAAA,MAAA;CAAA,MAAA;CAAA,MAAA;CAAA,MAAA;AAAA"}
package/dist/index65.cjs CHANGED
@@ -1,122 +1,15 @@
1
- const require_chunk = require('./chunk-CUT6urMc.cjs');
2
- require('./canonicalize-C_fNNpYr.cjs');
3
- require('./hashCert-mlYEuYex.cjs');
4
- require('./hashSignedProperties-CU_ZqqmY.cjs');
5
- require('./populateFinalDocument-BdyYzz5Y.cjs');
6
- require('./populateSignedProperties-BJMcBQ6S.cjs');
7
- require('./sign-B61Cy3gO.cjs');
8
- require('./transform-BLz0S687.cjs');
9
- const require_invoice1_1 = require('./invoice1-1-8S-QQn7P.cjs');
10
- const crypto = require_chunk.__toESM(require("crypto"));
11
- const xmldom_ts = require_chunk.__toESM(require("xmldom-ts"));
12
1
 
13
- //#region src/utils/debug/debug-document-hash.ts
2
+ //#region src/types/unit/YX.d.ts
14
3
  /**
15
- * Debug Document Hash Issues
16
- *
17
- * This helps identify why MyInvois is rejecting the document hash
4
+ * Enum representing unit type codes starting with 'Y'.
18
5
  */
19
- /**
20
- * Compare different hash calculation methods to identify the correct approach
21
- */
22
- async function debugDocumentHash(invoiceData, signingCredentials) {
23
- console.log("\n🔍 DEBUGGING DOCUMENT HASH VALIDATION");
24
- console.log("=====================================");
25
- const signedXML = await require_invoice1_1.generateSignedInvoiceXML(invoiceData, signingCredentials);
26
- console.log(`\n📄 Generated signed XML (${signedXML.length} chars)`);
27
- console.log("First 200 chars:", signedXML.substring(0, 200) + "...");
28
- const submissionHash = require_invoice1_1.generateDocumentHash(signedXML);
29
- console.log(`\n📊 SUBMISSION HASH: ${submissionHash}`);
30
- const parser = new xmldom_ts.DOMParserImpl();
31
- const doc = parser.parseFromString(signedXML, "application/xml");
32
- const digestElements = doc.getElementsByTagName("ds:DigestValue");
33
- let signatureDocDigest = "";
34
- if (digestElements.length > 0) {
35
- signatureDocDigest = digestElements[0]?.textContent || "";
36
- console.log(`📊 SIGNATURE DOC DIGEST: ${signatureDocDigest}`);
37
- } else console.error("❌ No DigestValue elements found in signature!");
38
- const rawDocumentHash = crypto.createHash("sha256").update(signedXML, "utf8").digest("hex");
39
- console.log(`📊 RAW DOCUMENT HASH: ${rawDocumentHash}`);
40
- const minifiedXML = signedXML.replace(/>\s+</g, "><").replace(/\s+/g, " ").replace(/>\s/g, ">").replace(/\s</g, "<").trim();
41
- const minifiedDocumentHash = crypto.createHash("sha256").update(minifiedXML, "utf8").digest("hex");
42
- console.log(`📊 MINIFIED DOCUMENT HASH: ${minifiedDocumentHash}`);
43
- console.log(`📊 TRANSFORMED DOCUMENT HASH: [Skipped - requires internal template access]`);
44
- const areEqual = {
45
- submissionVsSignature: submissionHash === Buffer.from(signatureDocDigest, "base64").toString("hex"),
46
- submissionVsRaw: submissionHash === rawDocumentHash,
47
- submissionVsMinified: submissionHash === minifiedDocumentHash,
48
- submissionVsTransformed: false
49
- };
50
- console.log("\n🔍 HASH COMPARISONS:");
51
- console.log(`Submission vs Signature: ${areEqual.submissionVsSignature ? "✅" : "❌"}`);
52
- console.log(`Submission vs Raw: ${areEqual.submissionVsRaw ? "✅" : "❌"}`);
53
- console.log(`Submission vs Minified: ${areEqual.submissionVsMinified ? "✅" : "❌"}`);
54
- console.log(`Submission vs Transformed: ${areEqual.submissionVsTransformed ? "✅" : "❌"}`);
55
- const recommendations = [];
56
- if (!areEqual.submissionVsSignature) {
57
- recommendations.push("❌ Submission hash does not match signature digest - this is likely the root cause!");
58
- recommendations.push("💡 Consider using the same hash calculation method for both signature and submission");
59
- }
60
- if (!areEqual.submissionVsRaw) recommendations.push("⚠️ Current implementation calculates different hashes for signature vs submission");
61
- if (areEqual.submissionVsMinified && !areEqual.submissionVsRaw) recommendations.push("💡 Try using minified XML hash for submission");
62
- if (areEqual.submissionVsTransformed) recommendations.push("💡 The transformed document hash matches - this might be what MyInvois expects");
63
- if (!areEqual.submissionVsSignature) {
64
- recommendations.push("🔧 POTENTIAL FIX: Use the digest value from signature as documentHash in submission");
65
- recommendations.push("🔧 ALTERNATIVE: Ensure submission hash uses same canonicalization as signature creation");
66
- }
67
- console.log("\n💡 RECOMMENDATIONS:");
68
- recommendations.forEach((rec) => console.log(` ${rec}`));
69
- return {
70
- signedXML,
71
- documentHashes: {
72
- submissionHash,
73
- signatureDocDigest,
74
- rawDocumentHash,
75
- minifiedDocumentHash,
76
- transformedDocumentHash: ""
77
- },
78
- areEqual,
79
- recommendations
80
- };
81
- }
82
- /**
83
- * Test different approaches to calculate the submission hash
84
- */
85
- async function testSubmissionHashMethods(invoiceData, signingCredentials) {
86
- console.log("\n🧪 TESTING SUBMISSION HASH METHODS");
87
- console.log("==================================");
88
- const signedXML = await require_invoice1_1.generateSignedInvoiceXML(invoiceData, signingCredentials);
89
- const currentHash = require_invoice1_1.generateDocumentHash(signedXML);
90
- console.log(`Method 1 - Current: ${currentHash}`);
91
- const parser = new xmldom_ts.DOMParserImpl();
92
- const doc = parser.parseFromString(signedXML, "application/xml");
93
- const digestElements = doc.getElementsByTagName("ds:DigestValue");
94
- const signatureDigest = digestElements[0]?.textContent || "";
95
- const signatureDigestHex = Buffer.from(signatureDigest, "base64").toString("hex");
96
- console.log(`Method 2 - Signature Digest: ${signatureDigestHex}`);
97
- console.log(`Method 3 - Canonicalized: [Skipped - requires internal access]`);
98
- console.log(`Method 4 - Transformed: [Skipped - requires internal access]`);
99
- const methods = {
100
- current: currentHash,
101
- signatureDigest: signatureDigestHex,
102
- canonicalized: "",
103
- transformed: ""
104
- };
105
- const recommendations = [];
106
- if (methods.current !== methods.signatureDigest) {
107
- recommendations.push("🔧 PRIMARY RECOMMENDATION: Use signature digest as submission hash");
108
- recommendations.push(" Update generateDocumentHash() to extract digest from signed XML");
109
- }
110
- if (methods.current !== methods.canonicalized) recommendations.push("🔧 ALTERNATIVE: Use canonicalized document hash for submission");
111
- console.log("\n💡 RECOMMENDATIONS:");
112
- recommendations.forEach((rec) => console.log(` ${rec}`));
113
- return {
114
- methods,
115
- recommendations
116
- };
117
- }
6
+ let UnitTypeCodeEnum_YX = /* @__PURE__ */ function(UnitTypeCodeEnum_YX$1) {
7
+ UnitTypeCodeEnum_YX$1["SquareYard"] = "YDK";
8
+ UnitTypeCodeEnum_YX$1["CubicYard"] = "YDQ";
9
+ UnitTypeCodeEnum_YX$1["Yard"] = "YRD";
10
+ return UnitTypeCodeEnum_YX$1;
11
+ }({});
118
12
 
119
13
  //#endregion
120
- exports.debugDocumentHash = debugDocumentHash;
121
- exports.testSubmissionHashMethods = testSubmissionHashMethods;
14
+ exports.UnitTypeCodeEnum_YX = UnitTypeCodeEnum_YX;
122
15
  //# sourceMappingURL=index65.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index65.cjs","names":["invoiceData: InvoiceV1_1","signingCredentials: SigningCredentials","DOMParserImpl","recommendations: string[]"],"sources":["../src/utils/debug/debug-document-hash.ts"],"sourcesContent":["import * as crypto from 'crypto'\nimport { DOMParserImpl } from 'xmldom-ts'\nimport type { InvoiceV1_1 } from '../../types'\nimport { generateDocumentHash, generateSignedInvoiceXML } from '../invoice1-1'\nimport type { SigningCredentials } from '../../types/documents/invoice-1_1.d.ts'\n\n/**\n * Debug Document Hash Issues\n *\n * This helps identify why MyInvois is rejecting the document hash\n */\n\n/**\n * Compare different hash calculation methods to identify the correct approach\n */\nexport async function debugDocumentHash(\n invoiceData: InvoiceV1_1,\n signingCredentials: SigningCredentials,\n): Promise<{\n signedXML: string\n documentHashes: {\n submissionHash: string // The hash sent in submission payload\n signatureDocDigest: string // The digest value inside the signature\n rawDocumentHash: string // Hash of raw signed XML\n minifiedDocumentHash: string // Hash of minified signed XML\n transformedDocumentHash: string // Hash of transformed document (used in signature)\n }\n areEqual: {\n submissionVsSignature: boolean\n submissionVsRaw: boolean\n submissionVsMinified: boolean\n submissionVsTransformed: boolean\n }\n recommendations: string[]\n}> {\n console.log('\\n🔍 DEBUGGING DOCUMENT HASH VALIDATION')\n console.log('=====================================')\n\n // Generate the signed XML\n const signedXML = await generateSignedInvoiceXML(\n invoiceData,\n signingCredentials,\n )\n\n console.log(`\\n📄 Generated signed XML (${signedXML.length} chars)`)\n console.log('First 200 chars:', signedXML.substring(0, 200) + '...')\n\n // 1. Calculate the hash used in submission payload (current implementation)\n const submissionHash = generateDocumentHash(signedXML)\n console.log(`\\n📊 SUBMISSION HASH: ${submissionHash}`)\n\n // 2. Extract the digest value from the signature itself\n const parser = new DOMParserImpl()\n const doc = parser.parseFromString(signedXML, 'application/xml')\n const digestElements = doc.getElementsByTagName('ds:DigestValue')\n let signatureDocDigest = ''\n\n if (digestElements.length > 0) {\n // First DigestValue should be the document digest\n signatureDocDigest = digestElements[0]?.textContent || ''\n console.log(`📊 SIGNATURE DOC DIGEST: ${signatureDocDigest}`)\n } else {\n console.error('❌ No DigestValue elements found in signature!')\n }\n\n // 3. Calculate hash of raw signed XML (what we're currently sending)\n const rawDocumentHash = crypto\n .createHash('sha256')\n .update(signedXML, 'utf8')\n .digest('hex')\n console.log(`📊 RAW DOCUMENT HASH: ${rawDocumentHash}`)\n\n // 4. Calculate hash of minified XML (MyInvois recommendation)\n const minifiedXML = signedXML\n .replace(/>\\s+</g, '><')\n .replace(/\\s+/g, ' ')\n .replace(/>\\s/g, '>')\n .replace(/\\s</g, '<')\n .trim()\n const minifiedDocumentHash = crypto\n .createHash('sha256')\n .update(minifiedXML, 'utf8')\n .digest('hex')\n console.log(`📊 MINIFIED DOCUMENT HASH: ${minifiedDocumentHash}`)\n\n // 5. Calculate hash of the document as it was transformed for signature creation\n // Note: We can't easily recreate the exact transformation without the template,\n // so we'll skip this comparison for now\n console.log(\n `📊 TRANSFORMED DOCUMENT HASH: [Skipped - requires internal template access]`,\n )\n\n // Compare available hashes\n const areEqual = {\n submissionVsSignature:\n submissionHash ===\n Buffer.from(signatureDocDigest, 'base64').toString('hex'),\n submissionVsRaw: submissionHash === rawDocumentHash,\n submissionVsMinified: submissionHash === minifiedDocumentHash,\n submissionVsTransformed: false, // Skip this comparison\n }\n\n console.log('\\n🔍 HASH COMPARISONS:')\n console.log(\n `Submission vs Signature: ${areEqual.submissionVsSignature ? '✅' : '❌'}`,\n )\n console.log(\n `Submission vs Raw: ${areEqual.submissionVsRaw ? '✅' : '❌'}`,\n )\n console.log(\n `Submission vs Minified: ${areEqual.submissionVsMinified ? '✅' : '❌'}`,\n )\n console.log(\n `Submission vs Transformed: ${areEqual.submissionVsTransformed ? '✅' : '❌'}`,\n )\n\n // Generate recommendations\n const recommendations: string[] = []\n\n if (!areEqual.submissionVsSignature) {\n recommendations.push(\n '❌ Submission hash does not match signature digest - this is likely the root cause!',\n )\n recommendations.push(\n '💡 Consider using the same hash calculation method for both signature and submission',\n )\n }\n\n if (!areEqual.submissionVsRaw) {\n recommendations.push(\n '⚠️ Current implementation calculates different hashes for signature vs submission',\n )\n }\n\n if (areEqual.submissionVsMinified && !areEqual.submissionVsRaw) {\n recommendations.push('💡 Try using minified XML hash for submission')\n }\n\n if (areEqual.submissionVsTransformed) {\n recommendations.push(\n '💡 The transformed document hash matches - this might be what MyInvois expects',\n )\n }\n\n // Check if we're using the wrong document for submission hash\n if (!areEqual.submissionVsSignature) {\n recommendations.push(\n '🔧 POTENTIAL FIX: Use the digest value from signature as documentHash in submission',\n )\n recommendations.push(\n '🔧 ALTERNATIVE: Ensure submission hash uses same canonicalization as signature creation',\n )\n }\n\n console.log('\\n💡 RECOMMENDATIONS:')\n recommendations.forEach(rec => console.log(` ${rec}`))\n\n return {\n signedXML,\n documentHashes: {\n submissionHash,\n signatureDocDigest,\n rawDocumentHash,\n minifiedDocumentHash,\n transformedDocumentHash: '',\n },\n areEqual,\n recommendations,\n }\n}\n\n/**\n * Test different approaches to calculate the submission hash\n */\nexport async function testSubmissionHashMethods(\n invoiceData: InvoiceV1_1,\n signingCredentials: SigningCredentials,\n): Promise<{\n methods: {\n current: string // Current implementation\n signatureDigest: string // Use digest from signature\n canonicalized: string // Use same canonicalization as signature\n transformed: string // Use transformed document\n }\n recommendations: string[]\n}> {\n console.log('\\n🧪 TESTING SUBMISSION HASH METHODS')\n console.log('==================================')\n\n // Generate signed XML\n const signedXML = await generateSignedInvoiceXML(\n invoiceData,\n signingCredentials,\n )\n\n // Method 1: Current implementation (direct SHA256 of signed XML)\n const currentHash = generateDocumentHash(signedXML)\n console.log(`Method 1 - Current: ${currentHash}`)\n\n // Method 2: Extract digest from signature\n const parser = new DOMParserImpl()\n const doc = parser.parseFromString(signedXML, 'application/xml')\n const digestElements = doc.getElementsByTagName('ds:DigestValue')\n const signatureDigest = digestElements[0]?.textContent || ''\n const signatureDigestHex = Buffer.from(signatureDigest, 'base64').toString(\n 'hex',\n )\n console.log(`Method 2 - Signature Digest: ${signatureDigestHex}`)\n\n // Method 3: Use same canonicalization as signature creation\n // Note: Skip this method as it requires internal template access\n console.log(`Method 3 - Canonicalized: [Skipped - requires internal access]`)\n\n // Method 4: Hash the transformed document directly\n // Note: Skip this method as it requires internal template access\n console.log(`Method 4 - Transformed: [Skipped - requires internal access]`)\n\n const methods = {\n current: currentHash,\n signatureDigest: signatureDigestHex,\n canonicalized: '', // Skipped\n transformed: '', // Skipped\n }\n\n const recommendations: string[] = []\n\n if (methods.current !== methods.signatureDigest) {\n recommendations.push(\n '🔧 PRIMARY RECOMMENDATION: Use signature digest as submission hash',\n )\n recommendations.push(\n ' Update generateDocumentHash() to extract digest from signed XML',\n )\n }\n\n if (methods.current !== methods.canonicalized) {\n recommendations.push(\n '🔧 ALTERNATIVE: Use canonicalized document hash for submission',\n )\n }\n\n console.log('\\n💡 RECOMMENDATIONS:')\n recommendations.forEach(rec => console.log(` ${rec}`))\n\n return {\n methods,\n recommendations,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index65.cjs","names":[],"sources":["../src/types/unit/YX.d.ts"],"sourcesContent":["/**\n * Unit types starting with Y\n * https://sdk.myinvois.hasil.gov.my/codes/unit-types/\n */\nexport type UnitTypeCode_YX =\n | 'YDK' // square yard\n | 'YDQ' // cubic yard\n | 'YRD' // yard\n\n/**\n * Enum representing unit type codes starting with 'Y'.\n */\nexport enum UnitTypeCodeEnum_YX {\n SquareYard = 'YDK',\n CubicYard = 'YDQ',\n Yard = 'YRD',\n}\n"],"mappings":";;;;;AAYA,IAAY,sEAAL;AACL;AACA;AACA;;AACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"index65.cts","names":["environment: 'sandbox' | 'production'"],"sources":["../src/utils/getBaseUrl.ts"],"sourcesContent":[],"mappings":";AAAA,IAAa,aAAuC,CAAA,GAAA"}
1
+ {"version":3,"file":"index65.cts","names":[],"sources":["../src/utils/signature-diagnostics.d.ts"],"sourcesContent":["import type { InvoiceV1_1 } from '../types';\nexport interface CertificateAnalysisResult {\n organizationIdentifier?: string;\n serialNumber?: string;\n issuerName: string;\n subjectName: string;\n issues: string[];\n recommendations: string[];\n}\nexport interface SignatureAnalysisResult {\n documentDigest: string;\n certificateDigest: string;\n signedPropertiesDigest: string;\n issues: string[];\n recommendations: string[];\n}\nexport interface DiagnosticResult {\n certificateAnalysis: CertificateAnalysisResult;\n signatureAnalysis: SignatureAnalysisResult;\n summary: {\n totalIssues: number;\n certificateIssues: number;\n signatureIssues: number;\n };\n}\n/**\n * Comprehensive signature diagnostics\n */\nexport declare function diagnoseSignatureIssues(invoices: InvoiceV1_1[], certificatePem: string): DiagnosticResult;\n/**\n * Prints diagnostic results in a formatted way\n */\nexport declare function printDiagnostics(result: DiagnosticResult): void;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAW,4BAA4B,CAAC,GAAG;AAC3C,IAAW,0BAAwB,CAAA,GAAA;AACnC,IAAW,mBAAc;CAAA;CAAA,MAAA;CAAA,MAAA;AAAA;AACzB,IAAW,0BAAW;CAAA;CAAA,MAAA;CAAA,MAAA;AAAA;AACtB,IAAW,mBAAY,CAAA,KAAA,MAAA,gBAAA"}
package/dist/index66.cjs CHANGED
@@ -1,229 +1,16 @@
1
- const require_chunk = require('./chunk-CUT6urMc.cjs');
2
- const require_canonicalize = require('./canonicalize-C_fNNpYr.cjs');
3
- require('./hashCert-mlYEuYex.cjs');
4
- require('./hashSignedProperties-CU_ZqqmY.cjs');
5
- require('./populateFinalDocument-BdyYzz5Y.cjs');
6
- require('./populateSignedProperties-BJMcBQ6S.cjs');
7
- require('./sign-B61Cy3gO.cjs');
8
- const require_transform = require('./transform-BLz0S687.cjs');
9
- const require_invoice1_1 = require('./invoice1-1-8S-QQn7P.cjs');
10
- const xmldom_ts = require_chunk.__toESM(require("xmldom-ts"));
11
1
 
12
- //#region src/utils/debug/debug-invoice-submission.ts
2
+ //#region src/types/unit/ZX.d.ts
13
3
  /**
14
- * Tests both canonicalization algorithms and compares their output
15
- * This can help determine if the algorithm difference affects signature validation
16
- * @param xmlDocument - The XML document string to test
17
- * @returns Object with canonicalization results and comparison
4
+ * Enum representing unit type codes starting with 'Z'.
18
5
  */
19
- const testCanonicalizationAlgorithms = async (xmlDocument) => {
20
- const parser = new xmldom_ts.DOMParserImpl();
21
- const doc = parser.parseFromString(xmlDocument, "application/xml");
22
- const results = {
23
- exclusiveC14N: { success: false },
24
- c14n11Fallback: { success: false },
25
- areEqual: false
26
- };
27
- try {
28
- const exclusiveDigest = await require_canonicalize.canonicalizeAndHashDocument(doc, "http://www.w3.org/2001/10/xml-exc-c14n#");
29
- results.exclusiveC14N = {
30
- success: true,
31
- digest: exclusiveDigest
32
- };
33
- } catch (error) {
34
- results.exclusiveC14N = {
35
- success: false,
36
- error: error.message
37
- };
38
- }
39
- try {
40
- const c14n11Digest = await require_canonicalize.canonicalizeAndHashDocumentWithC14N11Fallback(doc);
41
- results.c14n11Fallback = {
42
- success: true,
43
- digest: c14n11Digest
44
- };
45
- } catch (error) {
46
- results.c14n11Fallback = {
47
- success: false,
48
- error: error.message
49
- };
50
- }
51
- if (results.exclusiveC14N.success && results.c14n11Fallback.success) results.areEqual = results.exclusiveC14N.digest === results.c14n11Fallback.digest;
52
- return results;
53
- };
54
- /**
55
- * Simple validation function that checks basic XML structure requirements
56
- */
57
- function validateXMLStructure(xmlString) {
58
- const errors = [];
59
- const warnings = [];
60
- try {
61
- const parser = new xmldom_ts.DOMParserImpl();
62
- const doc = parser.parseFromString(xmlString, "application/xml");
63
- const parserErrors = doc.getElementsByTagName("parsererror");
64
- if (parserErrors.length > 0) {
65
- errors.push("XML parsing failed");
66
- return {
67
- isValid: false,
68
- errors,
69
- warnings
70
- };
71
- }
72
- const requiredElements = [
73
- "Invoice",
74
- "UBLExtensions",
75
- "cbc:ID",
76
- "cbc:IssueDate",
77
- "cbc:IssueTime",
78
- "cbc:InvoiceTypeCode",
79
- "ds:Signature",
80
- "ds:SignatureValue",
81
- "ds:X509Certificate"
82
- ];
83
- for (const element of requiredElements) {
84
- const elements = element.includes(":") ? doc.getElementsByTagName(element) : doc.getElementsByTagName(element);
85
- if (elements.length === 0) errors.push(`Missing required element: ${element}`);
86
- }
87
- const expectedNamespaces = [
88
- "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2",
89
- "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2",
90
- "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
91
- ];
92
- for (const ns of expectedNamespaces) if (!xmlString.includes(ns)) warnings.push(`Missing namespace declaration: ${ns}`);
93
- } catch (error) {
94
- errors.push(`XML validation error: ${error.message}`);
95
- }
96
- return {
97
- isValid: errors.length === 0,
98
- errors,
99
- warnings
100
- };
101
- }
102
- /**
103
- * Comprehensive debugging function to help identify issues with generated XML
104
- * This validates the structure against MyInvois requirements and provides detailed feedback
105
- */
106
- async function debugSignedInvoiceXML(invoiceInfo, signingCredentials) {
107
- const stepResults = {
108
- step1_template: { success: false },
109
- step2_transform: { success: false },
110
- step3_docDigest: { success: false },
111
- step4_signature: { success: false },
112
- step5_certDigest: { success: false },
113
- step6_signedProps: { success: false },
114
- step7_propsDigest: { success: false },
115
- step8_finalDoc: { success: false }
116
- };
117
- const validationResults = {
118
- xmlStructure: {
119
- valid: false,
120
- errors: []
121
- },
122
- signatureElements: {
123
- valid: false,
124
- errors: []
125
- },
126
- digestValues: {
127
- valid: false,
128
- errors: []
129
- },
130
- certificateInfo: {
131
- valid: false,
132
- errors: []
133
- },
134
- canonicalizationTest: null
135
- };
136
- let signedXML;
137
- try {
138
- try {
139
- const xmlTemplate = require_invoice1_1.generateUBLXMLTemplate(invoiceInfo);
140
- stepResults.step1_template = { success: true };
141
- const parser = new xmldom_ts.DOMParserImpl();
142
- const doc = parser.parseFromString(xmlTemplate, "application/xml");
143
- const parserErrors = doc.getElementsByTagName("parsererror");
144
- if (parserErrors.length > 0) validationResults.xmlStructure.errors.push("XML template parsing failed");
145
- else validationResults.xmlStructure.valid = true;
146
- } catch (error) {
147
- stepResults.step1_template = {
148
- success: false,
149
- error: error.message
150
- };
151
- validationResults.xmlStructure.errors.push(`Template generation failed: ${error.message}`);
152
- }
153
- try {
154
- const xmlTemplate = require_invoice1_1.generateUBLXMLTemplate(invoiceInfo);
155
- const transformedXml = require_transform.transformXmlInvoice(xmlTemplate);
156
- stepResults.step2_transform = { success: true };
157
- if (transformedXml.includes("UBLExtensions")) validationResults.xmlStructure.errors.push("UBLExtensions not properly removed in transformation");
158
- if (transformedXml.includes("<cac:Signature>")) validationResults.xmlStructure.errors.push("cac:Signature elements not properly removed in transformation");
159
- } catch (error) {
160
- stepResults.step2_transform = {
161
- success: false,
162
- error: error.message
163
- };
164
- }
165
- try {
166
- const xmlTemplate = require_invoice1_1.generateUBLXMLTemplate(invoiceInfo);
167
- validationResults.canonicalizationTest = await testCanonicalizationAlgorithms(xmlTemplate);
168
- } catch (error) {
169
- validationResults.canonicalizationTest = { error: error.message };
170
- }
171
- try {
172
- signedXML = await require_invoice1_1.generateSignedInvoiceXML(invoiceInfo, signingCredentials);
173
- const parser = new xmldom_ts.DOMParserImpl();
174
- const finalDoc = parser.parseFromString(signedXML, "application/xml");
175
- const signatureValue = finalDoc.getElementsByTagName("ds:SignatureValue")[0];
176
- const x509Certificate = finalDoc.getElementsByTagName("ds:X509Certificate")[0];
177
- const digestValues = finalDoc.getElementsByTagName("ds:DigestValue");
178
- if (!signatureValue || !signatureValue.textContent?.trim()) validationResults.signatureElements.errors.push("SignatureValue is empty");
179
- if (!x509Certificate || !x509Certificate.textContent?.trim()) validationResults.signatureElements.errors.push("X509Certificate is empty");
180
- if (digestValues.length < 2) validationResults.digestValues.errors.push("Missing digest values (expected at least 2)");
181
- else {
182
- let emptyDigests = 0;
183
- for (let i = 0; i < digestValues.length; i++) {
184
- const digestElement = digestValues[i];
185
- if (!digestElement || !digestElement.textContent?.trim()) emptyDigests++;
186
- }
187
- if (emptyDigests > 0) validationResults.digestValues.errors.push(`${emptyDigests} digest values are empty`);
188
- }
189
- try {
190
- const certInfo = require_invoice1_1.extractCertificateInfo(signingCredentials.certificatePem);
191
- const keyPairValid = require_invoice1_1.validateKeyPair(signingCredentials.certificatePem, signingCredentials.privateKeyPem);
192
- if (!keyPairValid) validationResults.certificateInfo.errors.push("Certificate and private key do not match");
193
- if (!certInfo.issuerName || !certInfo.serialNumber) validationResults.certificateInfo.errors.push("Certificate info extraction failed");
194
- if (validationResults.certificateInfo.errors.length === 0) validationResults.certificateInfo.valid = true;
195
- } catch (error) {
196
- validationResults.certificateInfo.errors.push(`Certificate validation failed: ${error.message}`);
197
- }
198
- if (validationResults.signatureElements.errors.length === 0) validationResults.signatureElements.valid = true;
199
- if (validationResults.digestValues.errors.length === 0) validationResults.digestValues.valid = true;
200
- stepResults.step3_docDigest = { success: true };
201
- stepResults.step4_signature = { success: true };
202
- stepResults.step5_certDigest = { success: true };
203
- stepResults.step6_signedProps = { success: true };
204
- stepResults.step7_propsDigest = { success: true };
205
- stepResults.step8_finalDoc = { success: true };
206
- } catch (error) {
207
- console.error("Error during signing process:", error);
208
- stepResults.step8_finalDoc = {
209
- success: false,
210
- error: error.message
211
- };
212
- }
213
- } catch (error) {
214
- console.error("Fatal error in debugging:", error);
215
- }
216
- const allValid = validationResults.xmlStructure.valid && validationResults.signatureElements.valid && validationResults.digestValues.valid && validationResults.certificateInfo.valid;
217
- return {
218
- success: allValid,
219
- signedXML,
220
- validationResults,
221
- stepByStepResults: stepResults
222
- };
223
- }
6
+ let UnitTypeCodeEnum_ZX = /* @__PURE__ */ function(UnitTypeCodeEnum_ZX$1) {
7
+ UnitTypeCodeEnum_ZX$1["HangingContainer"] = "Z11";
8
+ UnitTypeCodeEnum_ZX$1["Nanomole"] = "Z9";
9
+ UnitTypeCodeEnum_ZX$1["Page"] = "ZP";
10
+ UnitTypeCodeEnum_ZX$1["MutuallyDefined"] = "ZZ";
11
+ return UnitTypeCodeEnum_ZX$1;
12
+ }({});
224
13
 
225
14
  //#endregion
226
- exports.debugSignedInvoiceXML = debugSignedInvoiceXML;
227
- exports.testCanonicalizationAlgorithms = testCanonicalizationAlgorithms;
228
- exports.validateXMLStructure = validateXMLStructure;
15
+ exports.UnitTypeCodeEnum_ZX = UnitTypeCodeEnum_ZX;
229
16
  //# sourceMappingURL=index66.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index66.cjs","names":["xmlDocument: string","DOMParserImpl","error: any","xmlString: string","errors: string[]","warnings: string[]","invoiceInfo: InvoiceV1_1","signingCredentials: SigningCredentials","signedXML: string | undefined"],"sources":["../src/utils/debug/debug-invoice-submission.ts"],"sourcesContent":["import { DOMParserImpl } from 'xmldom-ts'\nimport {\n extractCertificateInfo,\n generateSignedInvoiceXML,\n generateUBLXMLTemplate,\n validateKeyPair,\n} from '../invoice1-1'\nimport type {\n InvoiceV1_1,\n SigningCredentials,\n} from '../../types/documents/invoice-1_1.d.ts'\nimport { transformXmlInvoice } from '../signature/transform'\nimport {\n canonicalizeAndHashDocument,\n canonicalizeAndHashDocumentWithC14N11Fallback,\n} from '../signature/canonicalize'\n\n/**\n * Tests both canonicalization algorithms and compares their output\n * This can help determine if the algorithm difference affects signature validation\n * @param xmlDocument - The XML document string to test\n * @returns Object with canonicalization results and comparison\n */\nexport const testCanonicalizationAlgorithms = async (\n xmlDocument: string,\n): Promise<{\n exclusiveC14N: { success: boolean; digest?: string; error?: string }\n c14n11Fallback: { success: boolean; digest?: string; error?: string }\n areEqual: boolean\n}> => {\n const parser = new DOMParserImpl()\n const doc = parser.parseFromString(xmlDocument, 'application/xml')\n\n const results = {\n exclusiveC14N: { success: false } as any,\n c14n11Fallback: { success: false } as any,\n areEqual: false,\n }\n\n // Test Exclusive C14N\n try {\n const exclusiveDigest = await canonicalizeAndHashDocument(\n doc,\n 'http://www.w3.org/2001/10/xml-exc-c14n#',\n )\n results.exclusiveC14N = { success: true, digest: exclusiveDigest }\n } catch (error: any) {\n results.exclusiveC14N = { success: false, error: error.message }\n }\n\n // Test C14N 1.1 fallback\n try {\n const c14n11Digest =\n await canonicalizeAndHashDocumentWithC14N11Fallback(doc)\n results.c14n11Fallback = { success: true, digest: c14n11Digest }\n } catch (error: any) {\n results.c14n11Fallback = { success: false, error: error.message }\n }\n\n // Compare results\n if (results.exclusiveC14N.success && results.c14n11Fallback.success) {\n results.areEqual =\n results.exclusiveC14N.digest === results.c14n11Fallback.digest\n }\n\n return results\n}\n\n/**\n * Simple validation function that checks basic XML structure requirements\n */\nexport function validateXMLStructure(xmlString: string): {\n isValid: boolean\n errors: string[]\n warnings: string[]\n} {\n const errors: string[] = []\n const warnings: string[] = []\n\n try {\n const parser = new DOMParserImpl()\n const doc = parser.parseFromString(xmlString, 'application/xml')\n\n // Check for parser errors\n const parserErrors = doc.getElementsByTagName('parsererror')\n if (parserErrors.length > 0) {\n errors.push('XML parsing failed')\n return { isValid: false, errors, warnings }\n }\n\n // Check required elements\n const requiredElements = [\n 'Invoice',\n 'UBLExtensions',\n 'cbc:ID',\n 'cbc:IssueDate',\n 'cbc:IssueTime',\n 'cbc:InvoiceTypeCode',\n 'ds:Signature',\n 'ds:SignatureValue',\n 'ds:X509Certificate',\n ]\n\n for (const element of requiredElements) {\n const elements = element.includes(':')\n ? doc.getElementsByTagName(element)\n : doc.getElementsByTagName(element)\n\n if (elements.length === 0) {\n errors.push(`Missing required element: ${element}`)\n }\n }\n\n // Check namespace declarations\n const expectedNamespaces = [\n 'urn:oasis:names:specification:ubl:schema:xsd:Invoice-2',\n 'urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2',\n 'urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2',\n ]\n\n for (const ns of expectedNamespaces) {\n if (!xmlString.includes(ns)) {\n warnings.push(`Missing namespace declaration: ${ns}`)\n }\n }\n } catch (error: any) {\n errors.push(`XML validation error: ${error.message}`)\n }\n\n return {\n isValid: errors.length === 0,\n errors,\n warnings,\n }\n}\n\n/**\n * Comprehensive debugging function to help identify issues with generated XML\n * This validates the structure against MyInvois requirements and provides detailed feedback\n */\nexport async function debugSignedInvoiceXML(\n invoiceInfo: InvoiceV1_1,\n signingCredentials: SigningCredentials,\n): Promise<{\n success: boolean\n signedXML?: string\n validationResults: {\n xmlStructure: { valid: boolean; errors: string[] }\n signatureElements: { valid: boolean; errors: string[] }\n digestValues: { valid: boolean; errors: string[] }\n certificateInfo: { valid: boolean; errors: string[] }\n canonicalizationTest: any\n }\n stepByStepResults: {\n step1_template: { success: boolean; error?: string }\n step2_transform: { success: boolean; error?: string }\n step3_docDigest: { success: boolean; digest?: string; error?: string }\n step4_signature: { success: boolean; signature?: string; error?: string }\n step5_certDigest: { success: boolean; digest?: string; error?: string }\n step6_signedProps: { success: boolean; error?: string }\n step7_propsDigest: { success: boolean; digest?: string; error?: string }\n step8_finalDoc: { success: boolean; error?: string }\n }\n}> {\n const stepResults = {\n step1_template: { success: false } as any,\n step2_transform: { success: false } as any,\n step3_docDigest: { success: false } as any,\n step4_signature: { success: false } as any,\n step5_certDigest: { success: false } as any,\n step6_signedProps: { success: false } as any,\n step7_propsDigest: { success: false } as any,\n step8_finalDoc: { success: false } as any,\n }\n\n const validationResults = {\n xmlStructure: { valid: false, errors: [] as string[] },\n signatureElements: { valid: false, errors: [] as string[] },\n digestValues: { valid: false, errors: [] as string[] },\n certificateInfo: { valid: false, errors: [] as string[] },\n canonicalizationTest: null as any,\n }\n\n let signedXML: string | undefined\n\n try {\n // Step 1: Generate template\n try {\n const xmlTemplate = generateUBLXMLTemplate(invoiceInfo)\n stepResults.step1_template = { success: true }\n\n // Validate XML structure\n const parser = new DOMParserImpl()\n const doc = parser.parseFromString(xmlTemplate, 'application/xml')\n const parserErrors = doc.getElementsByTagName('parsererror')\n if (parserErrors.length > 0) {\n validationResults.xmlStructure.errors.push(\n 'XML template parsing failed',\n )\n } else {\n validationResults.xmlStructure.valid = true\n }\n } catch (error: any) {\n stepResults.step1_template = { success: false, error: error.message }\n validationResults.xmlStructure.errors.push(\n `Template generation failed: ${error.message}`,\n )\n }\n\n // Step 2: Transform\n try {\n const xmlTemplate = generateUBLXMLTemplate(invoiceInfo)\n const transformedXml = transformXmlInvoice(xmlTemplate)\n stepResults.step2_transform = { success: true }\n\n // Check if transformation worked correctly\n if (transformedXml.includes('UBLExtensions')) {\n validationResults.xmlStructure.errors.push(\n 'UBLExtensions not properly removed in transformation',\n )\n }\n if (transformedXml.includes('<cac:Signature>')) {\n validationResults.xmlStructure.errors.push(\n 'cac:Signature elements not properly removed in transformation',\n )\n }\n } catch (error: any) {\n stepResults.step2_transform = { success: false, error: error.message }\n }\n\n // Test canonicalization\n try {\n const xmlTemplate = generateUBLXMLTemplate(invoiceInfo)\n validationResults.canonicalizationTest =\n await testCanonicalizationAlgorithms(xmlTemplate)\n } catch (error: any) {\n validationResults.canonicalizationTest = { error: error.message }\n }\n\n // Continue with full signing process\n try {\n signedXML = await generateSignedInvoiceXML(\n invoiceInfo,\n signingCredentials,\n )\n\n // Parse the final signed XML for validation\n const parser = new DOMParserImpl()\n const finalDoc = parser.parseFromString(signedXML, 'application/xml')\n\n // Check signature elements are populated\n const signatureValue =\n finalDoc.getElementsByTagName('ds:SignatureValue')[0]\n const x509Certificate =\n finalDoc.getElementsByTagName('ds:X509Certificate')[0]\n const digestValues = finalDoc.getElementsByTagName('ds:DigestValue')\n\n if (!signatureValue || !signatureValue.textContent?.trim()) {\n validationResults.signatureElements.errors.push(\n 'SignatureValue is empty',\n )\n }\n\n if (!x509Certificate || !x509Certificate.textContent?.trim()) {\n validationResults.signatureElements.errors.push(\n 'X509Certificate is empty',\n )\n }\n\n if (digestValues.length < 2) {\n validationResults.digestValues.errors.push(\n 'Missing digest values (expected at least 2)',\n )\n } else {\n let emptyDigests = 0\n for (let i = 0; i < digestValues.length; i++) {\n const digestElement = digestValues[i]\n if (!digestElement || !digestElement.textContent?.trim()) {\n emptyDigests++\n }\n }\n if (emptyDigests > 0) {\n validationResults.digestValues.errors.push(\n `${emptyDigests} digest values are empty`,\n )\n }\n }\n\n // Validate certificate info\n try {\n const certInfo = extractCertificateInfo(\n signingCredentials.certificatePem,\n )\n const keyPairValid = validateKeyPair(\n signingCredentials.certificatePem,\n signingCredentials.privateKeyPem,\n )\n\n if (!keyPairValid) {\n validationResults.certificateInfo.errors.push(\n 'Certificate and private key do not match',\n )\n }\n\n if (!certInfo.issuerName || !certInfo.serialNumber) {\n validationResults.certificateInfo.errors.push(\n 'Certificate info extraction failed',\n )\n }\n\n if (validationResults.certificateInfo.errors.length === 0) {\n validationResults.certificateInfo.valid = true\n }\n } catch (error: any) {\n validationResults.certificateInfo.errors.push(\n `Certificate validation failed: ${error.message}`,\n )\n }\n\n // Set validation flags\n if (validationResults.signatureElements.errors.length === 0) {\n validationResults.signatureElements.valid = true\n }\n if (validationResults.digestValues.errors.length === 0) {\n validationResults.digestValues.valid = true\n }\n\n // Mark individual steps as successful if we got here\n stepResults.step3_docDigest = { success: true }\n stepResults.step4_signature = { success: true }\n stepResults.step5_certDigest = { success: true }\n stepResults.step6_signedProps = { success: true }\n stepResults.step7_propsDigest = { success: true }\n stepResults.step8_finalDoc = { success: true }\n } catch (error: any) {\n console.error('Error during signing process:', error)\n stepResults.step8_finalDoc = { success: false, error: error.message }\n }\n } catch (error: any) {\n console.error('Fatal error in debugging:', error)\n }\n\n const allValid =\n validationResults.xmlStructure.valid &&\n validationResults.signatureElements.valid &&\n validationResults.digestValues.valid &&\n validationResults.certificateInfo.valid\n\n return {\n success: allValid,\n signedXML,\n validationResults,\n stepByStepResults: stepResults,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index66.cjs","names":[],"sources":["../src/types/unit/ZX.d.ts"],"sourcesContent":["/**\n * Unit types starting with Z\n * https://sdk.myinvois.hasil.gov.my/codes/unit-types/\n */\nexport type UnitTypeCode_ZX =\n | 'Z11' // hanging container\n | 'Z9' // nanomole\n | 'ZP' // page\n | 'ZZ' // mutually defined\n\n/**\n * Enum representing unit type codes starting with 'Z'.\n */\nexport enum UnitTypeCodeEnum_ZX {\n HangingContainer = 'Z11',\n Nanomole = 'Z9',\n Page = 'ZP',\n MutuallyDefined = 'ZZ',\n}\n"],"mappings":";;;;;AAaA,IAAY,sEAAL;AACL;AACA;AACA;AACA;;AACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"index66.cts","names":["xmlDocument: string","certificatePem: string","privateKeyPem: string","invoiceInfo: InvoiceV1_1","signingCredentials: SigningCredentials"],"sources":["../src/utils/invoice1-1.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8TA,IAAa,uBAAwBA,CAAAA,GAAAA;AA2CrC,IAAa,8BAA+BA,CAAAA,GAAAA;AAc5C,IAAa,yBAKZ,CAAA,GAAA;AA+BD,IAAa,kBAEXE,CAAAA,GAAAA;AA6BF,IAAgB,2BAAA,CAAA,KAAA,MAGb,kBAAA;AAoBH,IAAgB,yBAAA,CAAA,KAAA,MAAoC,WAAA;AAgHpD,IAAa,2BAGV;CAAA;CAAA,MAFY;CAAA,MACO;CAAA,MACnB;AAAA;AA4DH,IAAa,oCAEV,CAAA,KAAA,MAAA,OAAA"}
1
+ {"version":3,"file":"index66.cts","names":[],"sources":["../src/utils/validation.d.ts"],"sourcesContent":["import type { InvoiceV1_1 } from '../types/documents/index.js';\n/**\n * MyInvois Invoice Validation Utilities\n *\n * Provides comprehensive validation for invoice data before document generation\n * and submission to ensure compliance with MyInvois business rules and format requirements.\n */\nexport interface ValidationResult {\n isValid: boolean;\n errors: ValidationError[];\n warnings: ValidationWarning[];\n}\nexport interface ValidationError {\n field: string;\n code: string;\n message: string;\n severity: 'error' | 'warning';\n}\nexport interface ValidationWarning extends ValidationError {\n severity: 'warning';\n}\n/**\n * Validates TIN format based on registration type\n */\nexport declare const validateTIN: (tin: string, registrationType?: string) => ValidationError[];\n/**\n * Validates contact number format (E.164 standard)\n */\nexport declare const validateContactNumber: (contactNumber: string) => ValidationError[];\n/**\n * Validates monetary amounts\n */\nexport declare const validateMonetaryAmount: (amount: number, fieldName: string, maxDigits?: number, maxDecimals?: number) => ValidationError[];\n/**\n * Validates tax calculation consistency\n */\nexport declare const validateTaxCalculations: (invoice: InvoiceV1_1) => ValidationError[];\n/**\n * Main validation function for complete invoice\n */\nexport declare const validateInvoice: (invoice: InvoiceV1_1) => ValidationResult;\n"],"mappings":";;;AACA,IAAE,mBAAA;CAAA;CAAA,MAAA;CAAA,MAAA;AAAA;AACF,IAAW,kBAAkB,CAAC,GAAI;AAClC,IAAC,oBAAA,CAAA,KAAA,MAAA,eAAA;AACD,IAAW,cAAc,CAAC,KAAK,MAAM,eAAgB;AACrD,IAAW,wBAAwB,CAAC,KAAK,MAAM,eAAgB;AAC/D,IAAE,yBAAA,CAAA,KAAA,MAAA,eAAA;AACF,IAAW,0BAAuB;CAAA;CAAA,MAAA;CAAA,MAAA;AAAA;AAClC,IAAW,kBAAS;CAAA;CAAA,MAAA;CAAA,MAAA;AAAA"}
package/dist/index8.cjs CHANGED
@@ -1,25 +0,0 @@
1
-
2
- //#region src/types/payment-modes.d.ts
3
- /**
4
- * Enum representing the allowed payment mode codes with descriptive names.
5
- * Provides a more readable way to reference payment modes.
6
- *
7
- * @example
8
- * const mode = PaymentModeCodeEnum.Cash;
9
- * console.log(mode); // Output: "01"
10
- */
11
- let PaymentModeCodeEnum = /* @__PURE__ */ function(PaymentModeCodeEnum$1) {
12
- PaymentModeCodeEnum$1["Cash"] = "01";
13
- PaymentModeCodeEnum$1["Cheque"] = "02";
14
- PaymentModeCodeEnum$1["BankTransfer"] = "03";
15
- PaymentModeCodeEnum$1["CreditCard"] = "04";
16
- PaymentModeCodeEnum$1["DebitCard"] = "05";
17
- PaymentModeCodeEnum$1["EWalletDigitalWallet"] = "06";
18
- PaymentModeCodeEnum$1["DigitalBank"] = "07";
19
- PaymentModeCodeEnum$1["Others"] = "08";
20
- return PaymentModeCodeEnum$1;
21
- }({});
22
-
23
- //#endregion
24
- exports.PaymentModeCodeEnum = PaymentModeCodeEnum;
25
- //# sourceMappingURL=index8.cjs.map
package/dist/index9.cjs CHANGED
@@ -0,0 +1,25 @@
1
+
2
+ //#region src/types/payment-modes.d.ts
3
+ /**
4
+ * Enum representing the allowed payment mode codes with descriptive names.
5
+ * Provides a more readable way to reference payment modes.
6
+ *
7
+ * @example
8
+ * const mode = PaymentModeCodeEnum.Cash;
9
+ * console.log(mode); // Output: "01"
10
+ */
11
+ let PaymentModeCodeEnum = /* @__PURE__ */ function(PaymentModeCodeEnum$1) {
12
+ PaymentModeCodeEnum$1["Cash"] = "01";
13
+ PaymentModeCodeEnum$1["Cheque"] = "02";
14
+ PaymentModeCodeEnum$1["BankTransfer"] = "03";
15
+ PaymentModeCodeEnum$1["CreditCard"] = "04";
16
+ PaymentModeCodeEnum$1["DebitCard"] = "05";
17
+ PaymentModeCodeEnum$1["EWalletDigitalWallet"] = "06";
18
+ PaymentModeCodeEnum$1["DigitalBank"] = "07";
19
+ PaymentModeCodeEnum$1["Others"] = "08";
20
+ return PaymentModeCodeEnum$1;
21
+ }({});
22
+
23
+ //#endregion
24
+ exports.PaymentModeCodeEnum = PaymentModeCodeEnum;
25
+ //# sourceMappingURL=index9.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index8.cjs","names":[],"sources":["../src/types/payment-modes.d.ts"],"sourcesContent":["/**\n * Represents the allowed codes for payment modes.\n * Based on the documentation: https://sdk.myinvois.hasil.gov.my/codes/payment-methods/\n */\nexport type PaymentModeCode =\n | '01' // Cash\n | '02' // Cheque\n | '03' // Bank Transfer\n | '04' // Credit Card\n | '05' // Debit Card\n | '06' // e-Wallet / Digital Wallet\n | '07' // Digital Bank\n | '08' // Others\n\n/**\n * Enum representing the allowed payment mode codes with descriptive names.\n * Provides a more readable way to reference payment modes.\n *\n * @example\n * const mode = PaymentModeCodeEnum.Cash;\n * console.log(mode); // Output: \"01\"\n */\nexport enum PaymentModeCodeEnum {\n Cash = '01',\n Cheque = '02',\n BankTransfer = '03',\n CreditCard = '04',\n DebitCard = '05',\n EWalletDigitalWallet = '06',\n DigitalBank = '07',\n Others = '08',\n}\n\n/**\n * Interface representing a payment mode entry.\n * Contains the code and its corresponding description.\n */\nexport interface PaymentMode {\n code: PaymentModeCode\n description: string\n}\n"],"mappings":";;;;;;;;;;AAsBA,IAAY,sEAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACD"}
1
+ {"version":3,"file":"index9.cjs","names":[],"sources":["../src/types/payment-modes.d.ts"],"sourcesContent":["/**\n * Represents the allowed codes for payment modes.\n * Based on the documentation: https://sdk.myinvois.hasil.gov.my/codes/payment-methods/\n */\nexport type PaymentModeCode =\n | '01' // Cash\n | '02' // Cheque\n | '03' // Bank Transfer\n | '04' // Credit Card\n | '05' // Debit Card\n | '06' // e-Wallet / Digital Wallet\n | '07' // Digital Bank\n | '08' // Others\n\n/**\n * Enum representing the allowed payment mode codes with descriptive names.\n * Provides a more readable way to reference payment modes.\n *\n * @example\n * const mode = PaymentModeCodeEnum.Cash;\n * console.log(mode); // Output: \"01\"\n */\nexport enum PaymentModeCodeEnum {\n Cash = '01',\n Cheque = '02',\n BankTransfer = '03',\n CreditCard = '04',\n DebitCard = '05',\n EWalletDigitalWallet = '06',\n DigitalBank = '07',\n Others = '08',\n}\n\n/**\n * Interface representing a payment mode entry.\n * Contains the code and its corresponding description.\n */\nexport interface PaymentMode {\n code: PaymentModeCode\n description: string\n}\n"],"mappings":";;;;;;;;;;AAsBA,IAAY,sEAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACD"}
@@ -1,13 +1,13 @@
1
- import { MSIC_0X_CODE } from "./0X-Yw7mZEro.cjs";
2
- import { MSIC_1X_CODE } from "./1X-D_aUVsuM.cjs";
3
- import { MSIC_2X_CODE } from "./2X-hClUyw26.cjs";
4
- import { MSIC_3X_CODE } from "./3X-CLMESDvz.cjs";
5
- import { MSIC_4X_CODE } from "./4X-CvScPJTf.cjs";
6
- import { MSIC_5X_CODE } from "./5X-CkLu7Vyd.cjs";
7
- import { MSIC_6X_CODE } from "./6X-Mf32k1d0.cjs";
8
- import { MSIC_7X_CODE } from "./7X-DoCUcp-J.cjs";
9
- import { MSIC_8X_CODE } from "./8X-Dr9RunRw.cjs";
10
- import { MSIC_9X_CODE } from "./9X-BaoZtjWF.cjs";
1
+ import { MSIC_0X_CODE } from "./0X-ChfmeAYF.cjs";
2
+ import { MSIC_1X_CODE } from "./1X-jFrFCOs0.cjs";
3
+ import { MSIC_2X_CODE } from "./2X-5cE4ojEX.cjs";
4
+ import { MSIC_3X_CODE } from "./3X-r9xbWJ2l.cjs";
5
+ import { MSIC_4X_CODE } from "./4X-CLO9OuKa.cjs";
6
+ import { MSIC_5X_CODE } from "./5X-BziH0a09.cjs";
7
+ import { MSIC_6X_CODE } from "./6X-BceErbps.cjs";
8
+ import { MSIC_7X_CODE } from "./7X-CwPAqozm.cjs";
9
+ import { MSIC_8X_CODE } from "./8X-BIjJ9kaV.cjs";
10
+ import { MSIC_9X_CODE } from "./9X-CP5Xp6bE.cjs";
11
11
 
12
12
  //#region src/types/msic-codes.d.ts
13
13
 
@@ -23,4 +23,4 @@ interface MSICCode {
23
23
  }
24
24
  //#endregion
25
25
  export { MSICCode };
26
- //# sourceMappingURL=msic-codes-B_1W6lZF.d.cts.map
26
+ //# sourceMappingURL=msic-codes-CPWVNnpq.d.cts.map
@@ -0,0 +1,25 @@
1
+ import { MSIC_0X_CODE } from "./0X-CG1S1WKn.js";
2
+ import { MSIC_1X_CODE } from "./1X-CmlbG02M.js";
3
+ import { MSIC_2X_CODE } from "./2X-DA6J6Wd7.js";
4
+ import { MSIC_3X_CODE } from "./3X-GxuN79Ax.js";
5
+ import { MSIC_4X_CODE } from "./4X-DYz_nYSD.js";
6
+ import { MSIC_5X_CODE } from "./5X-kBF74qx1.js";
7
+ import { MSIC_6X_CODE } from "./6X-sQZfT0ZK.js";
8
+ import { MSIC_7X_CODE } from "./7X-BoKQxMoO.js";
9
+ import { MSIC_8X_CODE } from "./8X-BOEWATU3.js";
10
+ import { MSIC_9X_CODE } from "./9X-DAAZV4sr.js";
11
+
12
+ //#region src/types/msic-codes.d.ts
13
+
14
+ /**
15
+ * Represents the allowed 5-digit Malaysia Standard Industrial Classification (MSIC) codes.
16
+ * Based on the documentation: https://sdk.myinvois.hasil.gov.my/codes/msic-codes/
17
+ * Interface representing an MSIC code entry.
18
+ * Contains the 5-digit code and its description.
19
+ */
20
+ interface MSICCode {
21
+ code: MSIC_0X_CODE | MSIC_1X_CODE | MSIC_2X_CODE | MSIC_3X_CODE | MSIC_4X_CODE | MSIC_5X_CODE | MSIC_6X_CODE | MSIC_7X_CODE | MSIC_8X_CODE | MSIC_9X_CODE;
22
+ description: string;
23
+ }
24
+ //#endregion
25
+ export { MSICCode };
@@ -40,5 +40,4 @@ interface PaymentMode {
40
40
  description: string;
41
41
  }
42
42
  //#endregion
43
- export { PaymentMode, PaymentModeCode, PaymentModeCodeEnum };
44
- //# sourceMappingURL=payment-modes-DHihrywe.d.cts.map
43
+ export { PaymentMode, PaymentModeCode, PaymentModeCodeEnum };
@@ -41,4 +41,4 @@ interface PaymentMode {
41
41
  }
42
42
  //#endregion
43
43
  export { PaymentMode, PaymentModeCode, PaymentModeCodeEnum };
44
- //# sourceMappingURL=payment-modes-B8dNy3SM.d.ts.map
44
+ //# sourceMappingURL=payment-modes-FX88uyhP.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"platformLogin-PGzMhw1X.cjs","names":["client: ClientCredentials","tokenResponse: TokenResponse"],"sources":["../src/api/platform/platformLogin.ts"],"sourcesContent":["import type { ClientCredentials, TokenResponse } from 'src/types'\n\nexport const platformLogin = async (\n client: ClientCredentials,\n): Promise<{\n token: string\n tokenExpiration: Date\n}> => {\n const { clientId, clientSecret, baseUrl, onBehalfOf, debug } = client\n try {\n const response = await fetch(`${baseUrl}/connect/token`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n ...(onBehalfOf ? { onbehalfof: onBehalfOf } : {}),\n },\n body: new URLSearchParams({\n grant_type: 'client_credentials',\n client_id: clientId,\n client_secret: clientSecret,\n scope: 'InvoicingAPI',\n }),\n })\n\n const tokenResponse: TokenResponse = await response.json()\n return {\n token: tokenResponse.access_token,\n tokenExpiration: new Date(Date.now() + tokenResponse.expires_in * 1000),\n }\n } catch (error) {\n if (debug) console.error(error)\n throw error\n }\n}\n"],"mappings":";;AAEA,MAAa,gBAAgB,OAC3BA,WAII;CACJ,MAAM,EAAE,UAAU,cAAc,SAAS,YAAY,OAAO,GAAG;AAC/D,KAAI;EACF,MAAM,WAAW,MAAM,OAAO,EAAE,QAAQ,iBAAiB;GACvD,QAAQ;GACR,SAAS;IACP,gBAAgB;IAChB,GAAI,aAAa,EAAE,YAAY,WAAY,IAAG,CAAE;GACjD;GACD,MAAM,IAAI,gBAAgB;IACxB,YAAY;IACZ,WAAW;IACX,eAAe;IACf,OAAO;GACR;EACF,EAAC;EAEF,MAAMC,gBAA+B,MAAM,SAAS,MAAM;AAC1D,SAAO;GACL,OAAO,cAAc;GACrB,iBAAiB,IAAI,KAAK,KAAK,KAAK,GAAG,cAAc,aAAa;EACnE;CACF,SAAQ,OAAO;AACd,MAAI,MAAO,SAAQ,MAAM,MAAM;AAC/B,QAAM;CACP;AACF"}
1
+ {"version":3,"file":"platformLogin-PGzMhw1X.cjs","names":["client: ClientCredentials","tokenResponse: TokenResponse"],"sources":["../src/api/platform/platformLogin.ts"],"sourcesContent":["import type { ClientCredentials, TokenResponse } from '../../types'\n\nexport const platformLogin = async (\n client: ClientCredentials,\n): Promise<{\n token: string\n tokenExpiration: Date\n}> => {\n const { clientId, clientSecret, baseUrl, onBehalfOf, debug } = client\n try {\n const response = await fetch(`${baseUrl}/connect/token`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n ...(onBehalfOf ? { onbehalfof: onBehalfOf } : {}),\n },\n body: new URLSearchParams({\n grant_type: 'client_credentials',\n client_id: clientId,\n client_secret: clientSecret,\n scope: 'InvoicingAPI',\n }),\n })\n\n const tokenResponse: TokenResponse = await response.json()\n return {\n token: tokenResponse.access_token,\n tokenExpiration: new Date(Date.now() + tokenResponse.expires_in * 1000),\n }\n } catch (error) {\n if (debug) console.error(error)\n throw error\n }\n}\n"],"mappings":";;AAEA,MAAa,gBAAgB,OAC3BA,WAII;CACJ,MAAM,EAAE,UAAU,cAAc,SAAS,YAAY,OAAO,GAAG;AAC/D,KAAI;EACF,MAAM,WAAW,MAAM,OAAO,EAAE,QAAQ,iBAAiB;GACvD,QAAQ;GACR,SAAS;IACP,gBAAgB;IAChB,GAAI,aAAa,EAAE,YAAY,WAAY,IAAG,CAAE;GACjD;GACD,MAAM,IAAI,gBAAgB;IACxB,YAAY;IACZ,WAAW;IACX,eAAe;IACf,OAAO;GACR;EACF,EAAC;EAEF,MAAMC,gBAA+B,MAAM,SAAS,MAAM;AAC1D,SAAO;GACL,OAAO,cAAc;GACrB,iBAAiB,IAAI,KAAK,KAAK,KAAK,GAAG,cAAc,aAAa;EACnE;CACF,SAAQ,OAAO;AACd,MAAI,MAAO,SAAQ,MAAM,MAAM;AAC/B,QAAM;CACP;AACF"}