@ripwords/myinvois-client 0.1.2 → 0.1.3

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 (272) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/{0X-ChfmeAYF.d.cts → 0X-Cr3M7hci.d.cts} +1 -1
  3. package/dist/{1X-jFrFCOs0.d.cts → 1X-CWwmfCzo.d.cts} +1 -1
  4. package/dist/{1X-DFikQbP0.d.cts → 1X-ClnJ79HH.d.cts} +1 -1
  5. package/dist/{2X-FWZ1rYVt.d.cts → 2X-CV9eYhog.d.cts} +1 -1
  6. package/dist/{2X-5cE4ojEX.d.cts → 2X-DNtkJ0tj.d.cts} +1 -1
  7. package/dist/{3X-D9duw0Ro.d.cts → 3X--VWVsC84.d.cts} +1 -1
  8. package/dist/{3X-r9xbWJ2l.d.cts → 3X-BOxfatu3.d.cts} +1 -1
  9. package/dist/{4X-1ZkK-uH5.d.cts → 4X-By9PzHaY.d.cts} +1 -1
  10. package/dist/{4X-CLO9OuKa.d.cts → 4X-C7fzDWJ_.d.cts} +1 -1
  11. package/dist/{5X-Cfe39fFc.d.cts → 5X-B5M0Cv_K.d.cts} +1 -1
  12. package/dist/{5X-BziH0a09.d.cts → 5X-CNAFsDm2.d.cts} +1 -1
  13. package/dist/{6X-DLWEe1bP.d.cts → 6X-C3elgd-n.d.cts} +1 -1
  14. package/dist/{6X-BceErbps.d.cts → 6X-uObUP4VG.d.cts} +1 -1
  15. package/dist/{7X-CwPAqozm.d.cts → 7X-BifJnY24.d.cts} +1 -1
  16. package/dist/{7X-CucHYQsA.d.cts → 7X-D3idQBl9.d.cts} +1 -1
  17. package/dist/{8X-CJpqd5xp.d.cts → 8X-C6UMFvQW.d.cts} +1 -1
  18. package/dist/{8X-BIjJ9kaV.d.cts → 8X-DioBXCJ0.d.cts} +1 -1
  19. package/dist/{9X-CP5Xp6bE.d.cts → 9X-BjffnXuq.d.cts} +1 -1
  20. package/dist/{9X-D3aOVCnz.d.cts → 9X-CJjPJgIG.d.cts} +1 -1
  21. package/dist/{AX-DFzpxGOT.d.cts → AX-DrEd2Ov6.d.cts} +1 -1
  22. package/dist/{BX-CyiqNE6b.d.cts → BX-C5jc6myN.d.cts} +1 -1
  23. package/dist/{CX-BTPvC3Dv.d.cts → CX-oSgvmn3h.d.cts} +1 -1
  24. package/dist/{DX-BD4-hTCh.d.cts → DX-ZIG0enmK.d.cts} +1 -1
  25. package/dist/{EX-mTHCH0Yk.d.cts → EX-BpWZ5ADq.d.cts} +1 -1
  26. package/dist/{FX-DOOMoQl2.d.cts → FX-CvYBEc51.d.cts} +1 -1
  27. package/dist/{GX-8URJ7WHz.d.cts → GX-CU8PZy0G.d.cts} +1 -1
  28. package/dist/{HX-49z8CzsE.d.cts → HX-DoEErDeE.d.cts} +1 -1
  29. package/dist/{IX-B6kblmBs.d.cts → IX-jLAUHe8i.d.cts} +1 -1
  30. package/dist/{JX-DMwHLGEE.d.cts → JX-DX8BjYQC.d.cts} +1 -1
  31. package/dist/{KX-DaJPkefl.d.cts → KX-fZb4_vhw.d.cts} +1 -1
  32. package/dist/{LX-BnILxjdS.d.cts → LX-D_mI1bk-.d.cts} +1 -1
  33. package/dist/{MX-BbPO8mTj.d.cts → MX-DlYZhpkT.d.cts} +1 -1
  34. package/dist/{NX-xy5uw7H3.d.cts → NX-DELEEbad.d.cts} +1 -1
  35. package/dist/{OX-CIzARbON.d.cts → OX-CKPyrIFf.d.cts} +1 -1
  36. package/dist/{PX-CL8waFgx.d.cts → PX-SP6NxBtG.d.cts} +1 -1
  37. package/dist/{QX-BowAYqZb.d.cts → QX-QZA7E2O-.d.cts} +1 -1
  38. package/dist/{RX-fWoWcHTG.d.cts → RX-DBcgbdeE.d.cts} +1 -1
  39. package/dist/{SX-CZ3e31OT.d.cts → SX-DmiJeCMN.d.cts} +1 -1
  40. package/dist/{TX-CJhJ-HYX.d.cts → TX-C1SoDobK.d.cts} +1 -1
  41. package/dist/{UX-P7-u2y70.d.cts → UX-DFVynFhQ.d.cts} +1 -1
  42. package/dist/{VX-C8Eu5gQf.d.cts → VX-DsRum5k3.d.cts} +1 -1
  43. package/dist/{WX-DkiaqB2V.d.cts → WX-VReU5R5M.d.cts} +1 -1
  44. package/dist/{XX-D4p4iK-a.d.cts → XX-ChAviUMj.d.cts} +1 -1
  45. package/dist/{YX-Du8zv9qz.d.cts → YX-QfzeMEKx.d.cts} +1 -1
  46. package/dist/{ZX-B4jFD-21.d.cts → ZX-Ca2E726a.d.cts} +1 -1
  47. package/dist/api/platform/platformLogin.d.ts +52 -52
  48. package/dist/{document-DMIMRJV0.cjs → document-CARHiGdp.cjs} +3 -3
  49. package/dist/document-CARHiGdp.cjs.map +1 -0
  50. package/dist/{document-NQos5fSr.js → document-D6VKMAtx.js} +2 -2
  51. package/dist/{documents-BVG7KIKY.d.ts → documents-CJ8hqIGH.d.ts} +14 -3
  52. package/dist/{documents-C066EC9m.d.cts → documents-MGs0EvXh.d.cts} +15 -4
  53. package/dist/index.cjs +1 -1
  54. package/dist/index.d.ts +52 -52
  55. package/dist/index.js +1 -1
  56. package/dist/index16.cjs +1 -1
  57. package/dist/index19.cjs +1 -1
  58. package/dist/index21.cjs +207 -2
  59. package/dist/index21.cjs.map +1 -0
  60. package/dist/index22.cjs +104 -203
  61. package/dist/index22.cjs.map +1 -1
  62. package/dist/index23.cjs +132 -104
  63. package/dist/index23.cjs.map +1 -1
  64. package/dist/index24.cjs +59 -132
  65. package/dist/index24.cjs.map +1 -1
  66. package/dist/index25.cjs +262 -59
  67. package/dist/index25.cjs.map +1 -1
  68. package/dist/index26.cjs +74 -262
  69. package/dist/index26.cjs.map +1 -1
  70. package/dist/index27.cjs +102 -74
  71. package/dist/index27.cjs.map +1 -1
  72. package/dist/index28.cjs +68 -102
  73. package/dist/index28.cjs.map +1 -1
  74. package/dist/index29.cjs +107 -68
  75. package/dist/index29.cjs.map +1 -1
  76. package/dist/index30.cjs +95 -107
  77. package/dist/index30.cjs.map +1 -1
  78. package/dist/index31.cjs +13 -95
  79. package/dist/index31.cjs.map +1 -1
  80. package/dist/index32.cjs +31 -11
  81. package/dist/index32.cjs.map +1 -1
  82. package/dist/index33.cjs +12 -31
  83. package/dist/index33.cjs.map +1 -1
  84. package/dist/index34.cjs +22 -12
  85. package/dist/index34.cjs.map +1 -1
  86. package/dist/index35.cjs +13 -22
  87. package/dist/index35.cjs.map +1 -1
  88. package/dist/index36.cjs +7 -13
  89. package/dist/index36.cjs.map +1 -1
  90. package/dist/index37.cjs +7 -7
  91. package/dist/index37.cjs.map +1 -1
  92. package/dist/index38.cjs +10 -7
  93. package/dist/index38.cjs.map +1 -1
  94. package/dist/index39.cjs +6 -10
  95. package/dist/index39.cjs.map +1 -1
  96. package/dist/index40.cjs +101 -6
  97. package/dist/index40.cjs.map +1 -1
  98. package/dist/index41.cjs +106 -101
  99. package/dist/index41.cjs.map +1 -1
  100. package/dist/index42.cjs +119 -106
  101. package/dist/index42.cjs.map +1 -1
  102. package/dist/index43.cjs +106 -119
  103. package/dist/index43.cjs.map +1 -1
  104. package/dist/index44.cjs +98 -106
  105. package/dist/index44.cjs.map +1 -1
  106. package/dist/index45.cjs +118 -98
  107. package/dist/index45.cjs.map +1 -1
  108. package/dist/index46.cjs +127 -118
  109. package/dist/index46.cjs.map +1 -1
  110. package/dist/index47.cjs +117 -127
  111. package/dist/index47.cjs.map +1 -1
  112. package/dist/index48.cjs +14 -117
  113. package/dist/index48.cjs.map +1 -1
  114. package/dist/index49.cjs +95 -14
  115. package/dist/index49.cjs.map +1 -1
  116. package/dist/index50.cjs +142 -95
  117. package/dist/index50.cjs.map +1 -1
  118. package/dist/index51.cjs +114 -142
  119. package/dist/index51.cjs.map +1 -1
  120. package/dist/index52.cjs +144 -114
  121. package/dist/index52.cjs.map +1 -1
  122. package/dist/index53.cjs +113 -144
  123. package/dist/index53.cjs.map +1 -1
  124. package/dist/index54.cjs +17 -113
  125. package/dist/index54.cjs.map +1 -1
  126. package/dist/index55.cjs +112 -17
  127. package/dist/index55.cjs.map +1 -1
  128. package/dist/index56.cjs +47 -112
  129. package/dist/index56.cjs.map +1 -1
  130. package/dist/index57.cjs +14 -47
  131. package/dist/index57.cjs.map +1 -1
  132. package/dist/index58.cjs +28 -14
  133. package/dist/index58.cjs.map +1 -1
  134. package/dist/index59.cjs +22 -28
  135. package/dist/index59.cjs.map +1 -1
  136. package/dist/index60.cjs +9 -22
  137. package/dist/index60.cjs.map +1 -1
  138. package/dist/index61.cjs +8 -9
  139. package/dist/index61.cjs.map +1 -1
  140. package/dist/index62.cjs +17 -8
  141. package/dist/index62.cjs.map +1 -1
  142. package/dist/index63.cjs +412 -17
  143. package/dist/index63.cjs.map +1 -1
  144. package/dist/index64.cjs +8 -412
  145. package/dist/index64.cjs.map +1 -1
  146. package/dist/index65.cjs +9 -8
  147. package/dist/index65.cjs.map +1 -1
  148. package/dist/index66.cjs +2 -15
  149. package/dist/{msic-codes-DToUqTI6.d.ts → msic-codes-C8PJVOaA.d.ts} +10 -10
  150. package/dist/{msic-codes-CPWVNnpq.d.cts → msic-codes-CIKdPqag.d.cts} +11 -11
  151. package/dist/{payment-modes-FX88uyhP.d.cts → payment-modes-ghFEXnUl.d.cts} +1 -1
  152. package/dist/{signatures-BKi9DP2K.d.cts → signatures-hFbt_std.d.cts} +1 -1
  153. package/dist/{state-codes-CNp_6051.d.cts → state-codes-BlILGZ9d.d.cts} +1 -1
  154. package/dist/{tax-types-CgwxONDS.d.cts → tax-types-B5sQ8UyN.d.cts} +1 -1
  155. package/dist/types/documents.d.ts +14 -3
  156. package/dist/types/index.d.ts +52 -52
  157. package/dist/types/msic/0X.d.ts +1 -1
  158. package/dist/types/msic/1X.d.ts +1 -1
  159. package/dist/types/msic/2X.d.ts +1 -1
  160. package/dist/types/msic/3X.d.ts +1 -1
  161. package/dist/types/msic/4X.d.ts +1 -1
  162. package/dist/types/msic/5X.d.ts +1 -1
  163. package/dist/types/msic/6X.d.ts +1 -1
  164. package/dist/types/msic/7X.d.ts +1 -1
  165. package/dist/types/msic/8X.d.ts +1 -1
  166. package/dist/types/msic/9X.d.ts +1 -1
  167. package/dist/types/msic-codes.d.ts +11 -11
  168. package/dist/types/payment-modes.d.ts +1 -1
  169. package/dist/types/signatures.d.ts +1 -1
  170. package/dist/types/state-codes.d.ts +1 -1
  171. package/dist/types/tax-types.d.ts +1 -1
  172. package/dist/types/unit/1X.d.ts +1 -1
  173. package/dist/types/unit/2X.d.ts +1 -1
  174. package/dist/types/unit/3X.d.ts +1 -1
  175. package/dist/types/unit/4X.d.ts +1 -1
  176. package/dist/types/unit/5X.d.ts +1 -1
  177. package/dist/types/unit/6X.d.ts +1 -1
  178. package/dist/types/unit/7X.d.ts +1 -1
  179. package/dist/types/unit/8X.d.ts +1 -1
  180. package/dist/types/unit/9X.d.ts +1 -1
  181. package/dist/types/unit/AX.d.ts +1 -1
  182. package/dist/types/unit/BX.d.ts +1 -1
  183. package/dist/types/unit/CX.d.ts +1 -1
  184. package/dist/types/unit/DX.d.ts +1 -1
  185. package/dist/types/unit/EX.d.ts +1 -1
  186. package/dist/types/unit/FX.d.ts +1 -1
  187. package/dist/types/unit/GX.d.ts +1 -1
  188. package/dist/types/unit/HX.d.ts +1 -1
  189. package/dist/types/unit/IX.d.ts +1 -1
  190. package/dist/types/unit/JX.d.ts +1 -1
  191. package/dist/types/unit/KX.d.ts +1 -1
  192. package/dist/types/unit/LX.d.ts +1 -1
  193. package/dist/types/unit/MX.d.ts +1 -1
  194. package/dist/types/unit/NX.d.ts +1 -1
  195. package/dist/types/unit/OX.d.ts +1 -1
  196. package/dist/types/unit/PX.d.ts +1 -1
  197. package/dist/types/unit/QX.d.ts +1 -1
  198. package/dist/types/unit/RX.d.ts +1 -1
  199. package/dist/types/unit/SX.d.ts +1 -1
  200. package/dist/types/unit/TX.d.ts +1 -1
  201. package/dist/types/unit/UX.d.ts +1 -1
  202. package/dist/types/unit/VX.d.ts +1 -1
  203. package/dist/types/unit/WX.d.ts +1 -1
  204. package/dist/types/unit/XX.d.ts +1 -1
  205. package/dist/types/unit/YX.d.ts +1 -1
  206. package/dist/types/unit/ZX.d.ts +1 -1
  207. package/dist/types/unit-types.d.ts +36 -36
  208. package/dist/unit-types-B41YFOLT.d.ts +55 -0
  209. package/dist/unit-types-CjWNk2wS.d.cts +56 -0
  210. package/dist/utils/document.d.ts +52 -52
  211. package/dist/utils/document.js +1 -1
  212. package/dist/utils/signature-diagnostics.d.ts +52 -52
  213. package/dist/utils/signature-diagnostics.js +1 -1
  214. package/package.json +1 -1
  215. package/src/types/documents.d.ts +14 -6
  216. package/src/utils/document.ts +2 -2
  217. package/test/dynamicInvoiceFeatures.test.ts +2 -0
  218. package/test/signAndSubmitInvoice.test.ts +2 -0
  219. package/test/signature-diagnostics.test.ts +2 -0
  220. package/dist/document-DMIMRJV0.cjs.map +0 -1
  221. package/dist/index66.cjs.map +0 -1
  222. package/dist/unit-types-BKZxwVYQ.d.ts +0 -55
  223. package/dist/unit-types-CaOA5ZDG.d.cts +0 -56
  224. /package/dist/{0X-CG1S1WKn.d.ts → 0X-CTIq3y3a.d.ts} +0 -0
  225. /package/dist/{1X-CmlbG02M.d.ts → 1X-Bu4oiv8D.d.ts} +0 -0
  226. /package/dist/{1X-DbFshzup.d.ts → 1X-BywXCqtn.d.ts} +0 -0
  227. /package/dist/{2X-eC_p0QJf.d.ts → 2X-3fSEGIuE.d.ts} +0 -0
  228. /package/dist/{2X-DA6J6Wd7.d.ts → 2X-DnG3FY1f.d.ts} +0 -0
  229. /package/dist/{3X-GxuN79Ax.d.ts → 3X-CLdmoel1.d.ts} +0 -0
  230. /package/dist/{3X-DbfkwdkO.d.ts → 3X-Ynjfgoll.d.ts} +0 -0
  231. /package/dist/{4X-CnHtgO6u.d.ts → 4X-B5ePdMky.d.ts} +0 -0
  232. /package/dist/{4X-DYz_nYSD.d.ts → 4X-BTG6o1Gn.d.ts} +0 -0
  233. /package/dist/{5X-kBF74qx1.d.ts → 5X-CjSz1zxJ.d.ts} +0 -0
  234. /package/dist/{5X-BzPEdkbC.d.ts → 5X-dhP6fyou.d.ts} +0 -0
  235. /package/dist/{6X-sQZfT0ZK.d.ts → 6X-B9KP_vEn.d.ts} +0 -0
  236. /package/dist/{6X-C_xpeu6J.d.ts → 6X-BHaY0TCf.d.ts} +0 -0
  237. /package/dist/{7X-Bet2agJ6.d.ts → 7X-C4eX_tAk.d.ts} +0 -0
  238. /package/dist/{7X-BoKQxMoO.d.ts → 7X-DtkQutx2.d.ts} +0 -0
  239. /package/dist/{8X-BOEWATU3.d.ts → 8X-5n9seY3z.d.ts} +0 -0
  240. /package/dist/{8X-s5AzkHR-.d.ts → 8X-D6HTLShY.d.ts} +0 -0
  241. /package/dist/{9X-BBDP1gZ6.d.ts → 9X-CHZKsIdD.d.ts} +0 -0
  242. /package/dist/{9X-DAAZV4sr.d.ts → 9X-Cpb6V4JC.d.ts} +0 -0
  243. /package/dist/{AX-CmpMMhII.d.ts → AX-C0w_r3PA.d.ts} +0 -0
  244. /package/dist/{BX-j78z_ju_.d.ts → BX-RadlZ-6m.d.ts} +0 -0
  245. /package/dist/{CX-B6rEhQx7.d.ts → CX-CT1Zzb9D.d.ts} +0 -0
  246. /package/dist/{DX-CAmMnx5a.d.ts → DX-CtUeTKMM.d.ts} +0 -0
  247. /package/dist/{EX-CXhSC85J.d.ts → EX-084Yu7Wt.d.ts} +0 -0
  248. /package/dist/{FX-DYVIJ3l0.d.ts → FX-BrbQM0CW.d.ts} +0 -0
  249. /package/dist/{GX-eBOVHqi6.d.ts → GX-gKj8iAAh.d.ts} +0 -0
  250. /package/dist/{HX-Dz5T0xXI.d.ts → HX-9D-ZXTy5.d.ts} +0 -0
  251. /package/dist/{IX-PiKYro5a.d.ts → IX-DR4Fc92A.d.ts} +0 -0
  252. /package/dist/{JX-Dvnt0mSK.d.ts → JX-DIKa9ma-.d.ts} +0 -0
  253. /package/dist/{KX-BUb8e0yg.d.ts → KX-DpsJ_unT.d.ts} +0 -0
  254. /package/dist/{LX-l5ZBaGov.d.ts → LX-DeXPPWUX.d.ts} +0 -0
  255. /package/dist/{MX-C7C15AWi.d.ts → MX-CKMjg_zK.d.ts} +0 -0
  256. /package/dist/{NX-C7nFVC-D.d.ts → NX-oYdb4NDo.d.ts} +0 -0
  257. /package/dist/{OX-Dmkvcaij.d.ts → OX-Bid9es3D.d.ts} +0 -0
  258. /package/dist/{PX-BKZ14N7N.d.ts → PX-D7jy9CFk.d.ts} +0 -0
  259. /package/dist/{QX-6xdSNtxZ.d.ts → QX-BFWOR4g3.d.ts} +0 -0
  260. /package/dist/{RX-DFoiOK5q.d.ts → RX-XHgCyMV1.d.ts} +0 -0
  261. /package/dist/{SX-D-Szi9wa.d.ts → SX-Cl8RN8oH.d.ts} +0 -0
  262. /package/dist/{TX-DTfkGsqn.d.ts → TX-ZymoIbtr.d.ts} +0 -0
  263. /package/dist/{UX-Bw4HHAj4.d.ts → UX-D-Ndd1ov.d.ts} +0 -0
  264. /package/dist/{VX-DCv5x_hi.d.ts → VX-B-1b34r7.d.ts} +0 -0
  265. /package/dist/{WX-BYtJ5_if.d.ts → WX-0GuMjPNZ.d.ts} +0 -0
  266. /package/dist/{XX-Jo1yJO3A.d.ts → XX-CF2NANsy.d.ts} +0 -0
  267. /package/dist/{YX-BvGmEsVG.d.ts → YX-B51BbNSg.d.ts} +0 -0
  268. /package/dist/{ZX-B59AJcBY.d.ts → ZX-BMJS1iAv.d.ts} +0 -0
  269. /package/dist/{payment-modes-DA7uBIGb.d.ts → payment-modes-BOTSRC_X.d.ts} +0 -0
  270. /package/dist/{signatures-CG175mpg.d.ts → signatures-W-_brwdb.d.ts} +0 -0
  271. /package/dist/{state-codes-dvoTe5pC.d.ts → state-codes-oeFKlwXZ.d.ts} +0 -0
  272. /package/dist/{tax-types-tosH5I0q.d.ts → tax-types-CsQ76JMf.d.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  # Changelog
2
2
 
3
3
 
4
+ ## v0.1.3
5
+
6
+ [compare changes](https://github.com/Ripwords/MyInvoisClient/compare/v0.1.2...v0.1.3)
7
+
8
+ ### 💅 Refactors
9
+
10
+ - Add industry classification fields to Supplier interface in documents.d.ts, update invoice generation logic in document.ts, and enhance related tests for improved type safety and clarity ([648858a](https://github.com/Ripwords/MyInvoisClient/commit/648858a))
11
+
12
+ ### ❤️ Contributors
13
+
14
+ - JJ <teohjjteoh@gmail.com>
15
+
4
16
  ## v0.1.2
5
17
 
6
18
  [compare changes](https://github.com/Ripwords/MyInvoisClient/compare/v0.1.1...v0.1.2)
@@ -208,4 +208,4 @@ declare enum MSIC_0X {
208
208
  }
209
209
  //#endregion
210
210
  export { MSICCode, MSIC_0X, MSIC_0X_CODE };
211
- //# sourceMappingURL=0X-ChfmeAYF.d.cts.map
211
+ //# sourceMappingURL=0X-Cr3M7hci.d.cts.map
@@ -109,4 +109,4 @@ declare enum MSIC_1X {
109
109
  }
110
110
  //#endregion
111
111
  export { MSICCode, MSIC_1X, MSIC_1X_CODE };
112
- //# sourceMappingURL=1X-jFrFCOs0.d.cts.map
112
+ //# sourceMappingURL=1X-CWwmfCzo.d.cts.map
@@ -17,4 +17,4 @@ declare enum UnitTypeCodeEnum_1X {
17
17
  }
18
18
  //#endregion
19
19
  export { UnitTypeCodeEnum_1X, UnitTypeCode_1X };
20
- //# sourceMappingURL=1X-DFikQbP0.d.cts.map
20
+ //# sourceMappingURL=1X-ClnJ79HH.d.cts.map
@@ -37,4 +37,4 @@ declare enum UnitTypeCodeEnum_2X {
37
37
  }
38
38
  //#endregion
39
39
  export { UnitTypeCodeEnum_2X, UnitTypeCode_2X };
40
- //# sourceMappingURL=2X-FWZ1rYVt.d.cts.map
40
+ //# sourceMappingURL=2X-CV9eYhog.d.cts.map
@@ -137,4 +137,4 @@ declare enum MSIC_2X {
137
137
  }
138
138
  //#endregion
139
139
  export { MSICCode, MSIC_2X, MSIC_2X_CODE };
140
- //# sourceMappingURL=2X-5cE4ojEX.d.cts.map
140
+ //# sourceMappingURL=2X-DNtkJ0tj.d.cts.map
@@ -18,4 +18,4 @@ declare enum UnitTypeCodeEnum_3X {
18
18
  }
19
19
  //#endregion
20
20
  export { UnitTypeCodeEnum_3X, UnitTypeCode_3X };
21
- //# sourceMappingURL=3X-D9duw0Ro.d.cts.map
21
+ //# sourceMappingURL=3X--VWVsC84.d.cts.map
@@ -59,4 +59,4 @@ declare enum MSIC_3X {
59
59
  }
60
60
  //#endregion
61
61
  export { MSIC_3X, MSIC_3X_CODE };
62
- //# sourceMappingURL=3X-r9xbWJ2l.d.cts.map
62
+ //# sourceMappingURL=3X-BOxfatu3.d.cts.map
@@ -28,4 +28,4 @@ declare enum UnitTypeCodeEnum_4X {
28
28
  }
29
29
  //#endregion
30
30
  export { UnitTypeCodeEnum_4X, UnitTypeCode_4X };
31
- //# sourceMappingURL=4X-1ZkK-uH5.d.cts.map
31
+ //# sourceMappingURL=4X-By9PzHaY.d.cts.map
@@ -262,4 +262,4 @@ declare enum MSIC_4X {
262
262
  }
263
263
  //#endregion
264
264
  export { MSIC_4X, MSIC_4X_CODE };
265
- //# sourceMappingURL=4X-CLO9OuKa.d.cts.map
265
+ //# sourceMappingURL=4X-C7fzDWJ_.d.cts.map
@@ -19,4 +19,4 @@ declare enum UnitTypeCodeEnum_5X {
19
19
  }
20
20
  //#endregion
21
21
  export { UnitTypeCodeEnum_5X, UnitTypeCode_5X };
22
- //# sourceMappingURL=5X-Cfe39fFc.d.cts.map
22
+ //# sourceMappingURL=5X-B5M0Cv_K.d.cts.map
@@ -74,4 +74,4 @@ declare enum MSIC_5X {
74
74
  }
75
75
  //#endregion
76
76
  export { MSIC_5X, MSIC_5X_CODE };
77
- //# sourceMappingURL=5X-BziH0a09.d.cts.map
77
+ //# sourceMappingURL=5X-CNAFsDm2.d.cts.map
@@ -13,4 +13,4 @@ declare enum UnitTypeCodeEnum_6X {
13
13
  }
14
14
  //#endregion
15
15
  export { UnitTypeCodeEnum_6X, UnitTypeCode_6X };
16
- //# sourceMappingURL=6X-DLWEe1bP.d.cts.map
16
+ //# sourceMappingURL=6X-C3elgd-n.d.cts.map
@@ -102,4 +102,4 @@ declare enum MSIC_6X {
102
102
  }
103
103
  //#endregion
104
104
  export { MSIC_6X, MSIC_6X_CODE };
105
- //# sourceMappingURL=6X-BceErbps.d.cts.map
105
+ //# sourceMappingURL=6X-uObUP4VG.d.cts.map
@@ -68,4 +68,4 @@ declare enum MSIC_7X {
68
68
  }
69
69
  //#endregion
70
70
  export { MSIC_7X, MSIC_7X_CODE };
71
- //# sourceMappingURL=7X-CwPAqozm.d.cts.map
71
+ //# sourceMappingURL=7X-BifJnY24.d.cts.map
@@ -13,4 +13,4 @@ declare enum UnitTypeCodeEnum_7X {
13
13
  }
14
14
  //#endregion
15
15
  export { UnitTypeCodeEnum_7X, UnitTypeCode_7X };
16
- //# sourceMappingURL=7X-CucHYQsA.d.cts.map
16
+ //# sourceMappingURL=7X-D3idQBl9.d.cts.map
@@ -16,4 +16,4 @@ declare enum UnitTypeCodeEnum_8X {
16
16
  }
17
17
  //#endregion
18
18
  export { UnitTypeCodeEnum_8X, UnitTypeCode_8X };
19
- //# sourceMappingURL=8X-CJpqd5xp.d.cts.map
19
+ //# sourceMappingURL=8X-C6UMFvQW.d.cts.map
@@ -107,4 +107,4 @@ declare enum MSIC_8X {
107
107
  }
108
108
  //#endregion
109
109
  export { MSIC_8X, MSIC_8X_CODE };
110
- //# sourceMappingURL=8X-BIjJ9kaV.d.cts.map
110
+ //# sourceMappingURL=8X-DioBXCJ0.d.cts.map
@@ -95,4 +95,4 @@ declare enum MSIC_9X {
95
95
  }
96
96
  //#endregion
97
97
  export { MSIC_9X, MSIC_9X_CODE };
98
- //# sourceMappingURL=9X-CP5Xp6bE.d.cts.map
98
+ //# sourceMappingURL=9X-BjffnXuq.d.cts.map
@@ -12,4 +12,4 @@ declare enum UnitTypeCodeEnum_9X {
12
12
  }
13
13
  //#endregion
14
14
  export { UnitTypeCodeEnum_9X, UnitTypeCode_9X };
15
- //# sourceMappingURL=9X-D3aOVCnz.d.cts.map
15
+ //# sourceMappingURL=9X-CJjPJgIG.d.cts.map
@@ -108,4 +108,4 @@ declare enum UnitTypeCodeEnum_AX {
108
108
  }
109
109
  //#endregion
110
110
  export { UnitTypeCodeEnum_AX, UnitTypeCode_AX };
111
- //# sourceMappingURL=AX-DFzpxGOT.d.cts.map
111
+ //# sourceMappingURL=AX-DrEd2Ov6.d.cts.map
@@ -112,4 +112,4 @@ declare enum UnitTypeCodeEnum_BX {
112
112
  }
113
113
  //#endregion
114
114
  export { UnitTypeCodeEnum_BX, UnitTypeCode_BX };
115
- //# sourceMappingURL=BX-CyiqNE6b.d.cts.map
115
+ //# sourceMappingURL=BX-C5jc6myN.d.cts.map
@@ -125,4 +125,4 @@ declare enum UnitTypeCodeEnum_CX {
125
125
  }
126
126
  //#endregion
127
127
  export { UnitTypeCodeEnum_CX, UnitTypeCode_CX };
128
- //# sourceMappingURL=CX-BTPvC3Dv.d.cts.map
128
+ //# sourceMappingURL=CX-oSgvmn3h.d.cts.map
@@ -112,4 +112,4 @@ declare enum UnitTypeCodeEnum_DX {
112
112
  }
113
113
  //#endregion
114
114
  export { UnitTypeCodeEnum_DX, UnitTypeCode_DX };
115
- //# sourceMappingURL=DX-BD4-hTCh.d.cts.map
115
+ //# sourceMappingURL=DX-ZIG0enmK.d.cts.map
@@ -104,4 +104,4 @@ declare enum UnitTypeCodeEnum_EX {
104
104
  }
105
105
  //#endregion
106
106
  export { UnitTypeCodeEnum_EX, UnitTypeCode_EX };
107
- //# sourceMappingURL=EX-mTHCH0Yk.d.cts.map
107
+ //# sourceMappingURL=EX-BpWZ5ADq.d.cts.map
@@ -124,4 +124,4 @@ declare enum UnitTypeCodeEnum_FX {
124
124
  }
125
125
  //#endregion
126
126
  export { UnitTypeCodeEnum_FX, UnitTypeCode_FX };
127
- //# sourceMappingURL=FX-DOOMoQl2.d.cts.map
127
+ //# sourceMappingURL=FX-CvYBEc51.d.cts.map
@@ -133,4 +133,4 @@ declare enum UnitTypeCodeEnum_GX {
133
133
  }
134
134
  //#endregion
135
135
  export { UnitTypeCodeEnum_GX, UnitTypeCode_GX };
136
- //# sourceMappingURL=GX-8URJ7WHz.d.cts.map
136
+ //# sourceMappingURL=GX-CU8PZy0G.d.cts.map
@@ -123,4 +123,4 @@ declare enum UnitTypeCodeEnum_HX {
123
123
  }
124
124
  //#endregion
125
125
  export { UnitTypeCodeEnum_HX, UnitTypeCode_HX };
126
- //# sourceMappingURL=HX-49z8CzsE.d.cts.map
126
+ //# sourceMappingURL=HX-DoEErDeE.d.cts.map
@@ -20,4 +20,4 @@ declare enum UnitTypeCodeEnum_IX {
20
20
  }
21
21
  //#endregion
22
22
  export { UnitTypeCodeEnum_IX, UnitTypeCode_IX };
23
- //# sourceMappingURL=IX-B6kblmBs.d.cts.map
23
+ //# sourceMappingURL=IX-jLAUHe8i.d.cts.map
@@ -101,4 +101,4 @@ declare enum UnitTypeCodeEnum_JX {
101
101
  }
102
102
  //#endregion
103
103
  export { UnitTypeCodeEnum_JX, UnitTypeCode_JX };
104
- //# sourceMappingURL=JX-DMwHLGEE.d.cts.map
104
+ //# sourceMappingURL=JX-DX8BjYQC.d.cts.map
@@ -148,4 +148,4 @@ declare enum UnitTypeCodeEnum_KX {
148
148
  }
149
149
  //#endregion
150
150
  export { UnitTypeCodeEnum_KX, UnitTypeCode_KX };
151
- //# sourceMappingURL=KX-DaJPkefl.d.cts.map
151
+ //# sourceMappingURL=KX-fZb4_vhw.d.cts.map
@@ -120,4 +120,4 @@ declare enum UnitTypeCodeEnum_LX {
120
120
  }
121
121
  //#endregion
122
122
  export { UnitTypeCodeEnum_LX, UnitTypeCode_LX };
123
- //# sourceMappingURL=LX-BnILxjdS.d.cts.map
123
+ //# sourceMappingURL=LX-D_mI1bk-.d.cts.map
@@ -150,4 +150,4 @@ declare enum UnitTypeCodeEnum_MX {
150
150
  }
151
151
  //#endregion
152
152
  export { UnitTypeCodeEnum_MX, UnitTypeCode_MX };
153
- //# sourceMappingURL=MX-BbPO8mTj.d.cts.map
153
+ //# sourceMappingURL=MX-DlYZhpkT.d.cts.map
@@ -119,4 +119,4 @@ declare enum UnitTypeCodeEnum_NX {
119
119
  }
120
120
  //#endregion
121
121
  export { UnitTypeCodeEnum_NX, UnitTypeCode_NX };
122
- //# sourceMappingURL=NX-xy5uw7H3.d.cts.map
122
+ //# sourceMappingURL=NX-DELEEbad.d.cts.map
@@ -23,4 +23,4 @@ declare enum UnitTypeCodeEnum_OX {
23
23
  }
24
24
  //#endregion
25
25
  export { UnitTypeCodeEnum_OX, UnitTypeCode_OX };
26
- //# sourceMappingURL=OX-CIzARbON.d.cts.map
26
+ //# sourceMappingURL=OX-CKPyrIFf.d.cts.map
@@ -118,4 +118,4 @@ declare enum UnitTypeCodeEnum_PX {
118
118
  }
119
119
  //#endregion
120
120
  export { UnitTypeCodeEnum_PX, UnitTypeCode_PX };
121
- //# sourceMappingURL=PX-CL8waFgx.d.cts.map
121
+ //# sourceMappingURL=PX-SP6NxBtG.d.cts.map
@@ -56,4 +56,4 @@ declare enum UnitTypeCodeEnum_QX {
56
56
  }
57
57
  //#endregion
58
58
  export { UnitTypeCodeEnum_QX, UnitTypeCode_QX };
59
- //# sourceMappingURL=QX-BowAYqZb.d.cts.map
59
+ //# sourceMappingURL=QX-QZA7E2O-.d.cts.map
@@ -20,4 +20,4 @@ declare enum UnitTypeCodeEnum_RX {
20
20
  }
21
21
  //#endregion
22
22
  export { UnitTypeCodeEnum_RX, UnitTypeCode_RX };
23
- //# sourceMappingURL=RX-fWoWcHTG.d.cts.map
23
+ //# sourceMappingURL=RX-DBcgbdeE.d.cts.map
@@ -37,4 +37,4 @@ declare enum UnitTypeCodeEnum_SX {
37
37
  }
38
38
  //#endregion
39
39
  export { UnitTypeCodeEnum_SX, UnitTypeCode_SX };
40
- //# sourceMappingURL=SX-CZ3e31OT.d.cts.map
40
+ //# sourceMappingURL=SX-DmiJeCMN.d.cts.map
@@ -28,4 +28,4 @@ declare enum UnitTypeCodeEnum_TX {
28
28
  }
29
29
  //#endregion
30
30
  export { UnitTypeCodeEnum_TX, UnitTypeCode_TX };
31
- //# sourceMappingURL=TX-CJhJ-HYX.d.cts.map
31
+ //# sourceMappingURL=TX-C1SoDobK.d.cts.map
@@ -15,4 +15,4 @@ declare enum UnitTypeCodeEnum_UX {
15
15
  }
16
16
  //#endregion
17
17
  export { UnitTypeCodeEnum_UX, UnitTypeCode_UX };
18
- //# sourceMappingURL=UX-P7-u2y70.d.cts.map
18
+ //# sourceMappingURL=UX-DFVynFhQ.d.cts.map
@@ -14,4 +14,4 @@ declare enum UnitTypeCodeEnum_VX {
14
14
  }
15
15
  //#endregion
16
16
  export { UnitTypeCodeEnum_VX, UnitTypeCode_VX };
17
- //# sourceMappingURL=VX-C8Eu5gQf.d.cts.map
17
+ //# sourceMappingURL=VX-DsRum5k3.d.cts.map
@@ -23,4 +23,4 @@ declare enum UnitTypeCodeEnum_WX {
23
23
  }
24
24
  //#endregion
25
25
  export { UnitTypeCodeEnum_WX, UnitTypeCode_WX };
26
- //# sourceMappingURL=WX-DkiaqB2V.d.cts.map
26
+ //# sourceMappingURL=WX-VReU5R5M.d.cts.map
@@ -825,4 +825,4 @@ declare enum UnitTypeCodeEnum_XX {
825
825
  }
826
826
  //#endregion
827
827
  export { UnitTypeCodeEnum_XX, UnitTypeCode_XX };
828
- //# sourceMappingURL=XX-D4p4iK-a.d.cts.map
828
+ //# sourceMappingURL=XX-ChAviUMj.d.cts.map
@@ -17,4 +17,4 @@ declare enum UnitTypeCodeEnum_YX {
17
17
  }
18
18
  //#endregion
19
19
  export { UnitTypeCodeEnum_YX, UnitTypeCode_YX };
20
- //# sourceMappingURL=YX-Du8zv9qz.d.cts.map
20
+ //# sourceMappingURL=YX-QfzeMEKx.d.cts.map
@@ -19,4 +19,4 @@ declare enum UnitTypeCodeEnum_ZX {
19
19
  }
20
20
  //#endregion
21
21
  export { UnitTypeCodeEnum_ZX, UnitTypeCode_ZX };
22
- //# sourceMappingURL=ZX-B4jFD-21.d.cts.map
22
+ //# sourceMappingURL=ZX-Ca2E726a.d.cts.map
@@ -2,58 +2,58 @@ import "../../classification-codes-BKxV-rO9.js";
2
2
  import "../../country-code-CQuaiQm2.js";
3
3
  import "../../currencies-BYJK-m6v.js";
4
4
  import "../../e-invoice-CmbLQkHw.js";
5
- import "../../signatures-CG175mpg.js";
6
- import "../../tax-types-tosH5I0q.js";
7
- import "../../documents-BVG7KIKY.js";
8
- import "../../payment-modes-DA7uBIGb.js";
9
- import "../../1X-DbFshzup.js";
10
- import "../../2X-eC_p0QJf.js";
11
- import "../../3X-DbfkwdkO.js";
12
- import "../../4X-CnHtgO6u.js";
13
- import "../../5X-BzPEdkbC.js";
14
- import "../../6X-C_xpeu6J.js";
15
- import "../../7X-Bet2agJ6.js";
16
- import "../../8X-s5AzkHR-.js";
17
- import "../../9X-BBDP1gZ6.js";
18
- import "../../AX-CmpMMhII.js";
19
- import "../../BX-j78z_ju_.js";
20
- import "../../CX-B6rEhQx7.js";
21
- import "../../DX-CAmMnx5a.js";
22
- import "../../EX-CXhSC85J.js";
23
- import "../../FX-DYVIJ3l0.js";
24
- import "../../GX-eBOVHqi6.js";
25
- import "../../HX-Dz5T0xXI.js";
26
- import "../../IX-PiKYro5a.js";
27
- import "../../JX-Dvnt0mSK.js";
28
- import "../../KX-BUb8e0yg.js";
29
- import "../../LX-l5ZBaGov.js";
30
- import "../../MX-C7C15AWi.js";
31
- import "../../NX-C7nFVC-D.js";
32
- import "../../OX-Dmkvcaij.js";
33
- import "../../PX-BKZ14N7N.js";
34
- import "../../QX-6xdSNtxZ.js";
35
- import "../../RX-DFoiOK5q.js";
36
- import "../../SX-D-Szi9wa.js";
37
- import "../../TX-DTfkGsqn.js";
38
- import "../../UX-Bw4HHAj4.js";
39
- import "../../VX-DCv5x_hi.js";
40
- import "../../WX-BYtJ5_if.js";
41
- import "../../YX-BvGmEsVG.js";
42
- import "../../ZX-B59AJcBY.js";
43
- import "../../XX-Jo1yJO3A.js";
44
- import "../../unit-types-BKZxwVYQ.js";
45
- import "../../state-codes-dvoTe5pC.js";
46
- import "../../0X-CG1S1WKn.js";
47
- import "../../1X-CmlbG02M.js";
48
- import "../../2X-DA6J6Wd7.js";
49
- import "../../3X-GxuN79Ax.js";
50
- import "../../4X-DYz_nYSD.js";
51
- import "../../5X-kBF74qx1.js";
52
- import "../../6X-sQZfT0ZK.js";
53
- import "../../7X-BoKQxMoO.js";
54
- import "../../8X-BOEWATU3.js";
55
- import "../../9X-DAAZV4sr.js";
56
- import "../../msic-codes-DToUqTI6.js";
5
+ import "../../0X-CTIq3y3a.js";
6
+ import "../../1X-Bu4oiv8D.js";
7
+ import "../../2X-DnG3FY1f.js";
8
+ import "../../3X-CLdmoel1.js";
9
+ import "../../4X-BTG6o1Gn.js";
10
+ import "../../5X-CjSz1zxJ.js";
11
+ import "../../6X-B9KP_vEn.js";
12
+ import "../../7X-DtkQutx2.js";
13
+ import "../../8X-5n9seY3z.js";
14
+ import "../../9X-Cpb6V4JC.js";
15
+ import "../../msic-codes-C8PJVOaA.js";
16
+ import "../../signatures-W-_brwdb.js";
17
+ import "../../tax-types-CsQ76JMf.js";
18
+ import "../../documents-CJ8hqIGH.js";
19
+ import "../../payment-modes-BOTSRC_X.js";
20
+ import "../../1X-BywXCqtn.js";
21
+ import "../../2X-3fSEGIuE.js";
22
+ import "../../3X-Ynjfgoll.js";
23
+ import "../../4X-B5ePdMky.js";
24
+ import "../../5X-dhP6fyou.js";
25
+ import "../../6X-BHaY0TCf.js";
26
+ import "../../7X-C4eX_tAk.js";
27
+ import "../../8X-D6HTLShY.js";
28
+ import "../../9X-CHZKsIdD.js";
29
+ import "../../AX-C0w_r3PA.js";
30
+ import "../../BX-RadlZ-6m.js";
31
+ import "../../CX-CT1Zzb9D.js";
32
+ import "../../DX-CtUeTKMM.js";
33
+ import "../../EX-084Yu7Wt.js";
34
+ import "../../FX-BrbQM0CW.js";
35
+ import "../../GX-gKj8iAAh.js";
36
+ import "../../HX-9D-ZXTy5.js";
37
+ import "../../IX-DR4Fc92A.js";
38
+ import "../../JX-DIKa9ma-.js";
39
+ import "../../KX-DpsJ_unT.js";
40
+ import "../../LX-DeXPPWUX.js";
41
+ import "../../MX-CKMjg_zK.js";
42
+ import "../../NX-oYdb4NDo.js";
43
+ import "../../OX-Bid9es3D.js";
44
+ import "../../PX-D7jy9CFk.js";
45
+ import "../../QX-BFWOR4g3.js";
46
+ import "../../RX-XHgCyMV1.js";
47
+ import "../../SX-Cl8RN8oH.js";
48
+ import "../../TX-ZymoIbtr.js";
49
+ import "../../UX-D-Ndd1ov.js";
50
+ import "../../VX-B-1b34r7.js";
51
+ import "../../WX-0GuMjPNZ.js";
52
+ import "../../YX-B51BbNSg.js";
53
+ import "../../ZX-BMJS1iAv.js";
54
+ import "../../XX-CF2NANsy.js";
55
+ import "../../unit-types-B41YFOLT.js";
56
+ import "../../state-codes-oeFKlwXZ.js";
57
57
  import { ClientCredentials } from "../../index-0-EvC6Nv.js";
58
58
 
59
59
  //#region src/api/platform/platformLogin.d.ts
@@ -48,8 +48,8 @@ const generateCleanInvoiceObject = (invoice) => {
48
48
  DocumentCurrencyCode: [{ _: invoice.invoiceCurrencyCode }],
49
49
  AccountingSupplierParty: [{ Party: [{
50
50
  IndustryClassificationCode: [{
51
- _: "47900",
52
- name: "Other retail sale in non-specialised stores"
51
+ _: invoice.supplier.industryClassificationCode,
52
+ name: invoice.supplier.industryClassificationDescription
53
53
  }],
54
54
  PartyIdentification: [{ ID: [{
55
55
  _: invoice.supplier.tin,
@@ -469,4 +469,4 @@ Object.defineProperty(exports, 'sortObjectKeys', {
469
469
  return sortObjectKeys;
470
470
  }
471
471
  });
472
- //# sourceMappingURL=document-DMIMRJV0.cjs.map
472
+ //# sourceMappingURL=document-CARHiGdp.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-CARHiGdp.cjs","names":["obj: unknown","sortedObj: Record<string, unknown>","invoice: InvoiceV1_1","invoices: InvoiceV1_1[]","invoice: any","certificatePem: string","X509Certificate","dn: string","serialHex: string","error: unknown","certificateDigest: string","signingTime: string","issuerName: string","serialNumber: string","signedProperties: SignedPropertiesObject","docDigest: string","propsDigest: string","privateKeyPem: string","signingCredentials: SigningCredentials"],"sources":["../src/utils/document.ts"],"sourcesContent":["import crypto, { X509Certificate } from 'crypto'\nimport {\n InvoiceSubmission,\n InvoiceV1_1,\n SigningCredentials,\n SignedPropertiesObject,\n UBLDocument,\n CompleteInvoice,\n SignedInfoObject,\n} from '../types'\n\n/**\n * MyInvois v1.1 Document Generation and Signing Utilities\n * Strictly follows: https://sdk.myinvois.hasil.gov.my/documents/invoice-v1-1\n * JSON Signature Guide: https://sdk.myinvois.hasil.gov.my/signature-creation-json/\n */\n\n/**\n * Helper function to recursively sort object keys for JSON canonicalization\n */\nexport function sortObjectKeys(obj: unknown): unknown {\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n if (Array.isArray(obj)) {\n return obj.map(sortObjectKeys)\n }\n\n const sortedObj: Record<string, unknown> = {}\n const keys = Object.keys(obj as Record<string, unknown>).sort()\n\n for (const key of keys) {\n sortedObj[key] = sortObjectKeys((obj as Record<string, unknown>)[key])\n }\n\n return sortedObj\n}\n\n/**\n * Enhanced canonicalization following MyInvois specification exactly\n * Key changes: ensure consistent ordering and formatting\n */\nexport const canonicalizeJSON = (obj: unknown): string => {\n const sortedObj = sortObjectKeys(obj)\n // Use compact JSON with no extra whitespace\n return JSON.stringify(sortedObj, null, 0)\n}\n\n/**\n * Generates a clean invoice object following MyInvois v1.1 specification exactly\n * This is the base invoice structure WITHOUT signature elements (for hash calculation)\n *\n * Key requirements from working documents:\n * - All mandatory fields must be present\n * - Many optional fields must be present even if empty\n * - Specific field ordering and structure\n * - Correct listID values (e.g., \"3166-1\" not \"ISO3166-1\")\n */\nexport const generateCleanInvoiceObject = (\n invoice: InvoiceV1_1,\n): InvoiceSubmission => {\n return {\n // === MANDATORY CORE FIELDS ===\n ID: [{ _: invoice.eInvoiceCodeOrNumber }],\n IssueDate: [{ _: invoice.eInvoiceDate }],\n IssueTime: [{ _: invoice.eInvoiceTime }],\n InvoiceTypeCode: [\n {\n _: invoice.eInvoiceTypeCode,\n listVersionID: invoice.eInvoiceVersion || '1.1',\n },\n ],\n DocumentCurrencyCode: [{ _: invoice.invoiceCurrencyCode }],\n\n // === SUPPLIER PARTY (AccountingSupplierParty) ===\n AccountingSupplierParty: [\n {\n Party: [\n {\n // Industry Classification - required field\n IndustryClassificationCode: [\n {\n _: invoice.supplier.industryClassificationCode,\n name: invoice.supplier.industryClassificationDescription,\n },\n ],\n\n // Party Identifications\n PartyIdentification: [\n {\n ID: [\n {\n _: invoice.supplier.tin,\n schemeID: 'TIN',\n },\n ],\n },\n {\n ID: [\n {\n _: invoice.supplier.registrationNumber,\n schemeID: invoice.supplier.registrationType || 'NRIC',\n },\n ],\n },\n ],\n\n // Postal Address - FIXED listID format\n PostalAddress: [\n {\n CityName: [{ _: invoice.supplier.address.cityName }],\n CountrySubentityCode: [{ _: invoice.supplier.address.state }],\n AddressLine: [\n {\n Line: [{ _: invoice.supplier.address.addressLine0 }],\n },\n ],\n Country: [\n {\n IdentificationCode: [\n {\n _: invoice.supplier.address.country || 'MYS',\n listID: '3166-1', // FIXED: was \"ISO3166-1\"\n listAgencyID: 'ISO',\n },\n ],\n },\n ],\n },\n ],\n\n // Party Legal Entity\n PartyLegalEntity: [\n {\n RegistrationName: [{ _: invoice.supplier.name }],\n },\n ],\n\n // Contact Information\n Contact: [\n {\n Telephone: [{ _: invoice.supplier.contactNumber || '' }],\n },\n ],\n },\n ],\n },\n ],\n\n // === BUYER PARTY (AccountingCustomerParty) ===\n AccountingCustomerParty: [\n {\n Party: [\n {\n // Party Identifications\n PartyIdentification: [\n {\n ID: [\n {\n _: invoice.buyer.tin,\n schemeID: 'TIN',\n },\n ],\n },\n {\n ID: [\n {\n _: invoice.buyer.registrationNumber,\n schemeID: invoice.buyer.registrationType || 'NRIC',\n },\n ],\n },\n {\n ID: [\n {\n _: invoice.buyer.sstRegistrationNumber || 'NA',\n schemeID: 'SST',\n },\n ],\n },\n ],\n\n // Postal Address - FIXED listID format\n PostalAddress: [\n {\n CityName: [{ _: invoice.buyer.address.cityName }],\n CountrySubentityCode: [{ _: invoice.buyer.address.state }],\n AddressLine: [\n {\n Line: [{ _: invoice.buyer.address.addressLine0 }],\n },\n ],\n Country: [\n {\n IdentificationCode: [\n {\n _: invoice.buyer.address.country || 'MYS',\n listID: '3166-1', // FIXED: was \"ISO3166-1\"\n listAgencyID: 'ISO',\n },\n ],\n },\n ],\n },\n ],\n\n // Party Legal Entity\n PartyLegalEntity: [\n {\n RegistrationName: [{ _: invoice.buyer.name }],\n },\n ],\n\n // Contact Information\n Contact: [\n {\n Telephone: [{ _: invoice.buyer.contactNumber || '' }],\n },\n ],\n },\n ],\n },\n ],\n\n // === TAX TOTAL ===\n TaxTotal: [\n {\n TaxAmount: [\n {\n _: invoice.taxTotal.taxAmount,\n currencyID: invoice.invoiceCurrencyCode,\n },\n ],\n TaxSubtotal: [\n // Generate basic tax subtotal from invoice line items\n {\n TaxableAmount: [\n {\n _: invoice.legalMonetaryTotal.taxExclusiveAmount,\n currencyID: invoice.invoiceCurrencyCode,\n },\n ],\n TaxAmount: [\n {\n _: invoice.taxTotal.taxAmount,\n currencyID: invoice.invoiceCurrencyCode,\n },\n ],\n TaxCategory: [\n {\n ID: [{ _: invoice.invoiceLineItems[0]?.taxType || '01' }],\n TaxScheme: [\n {\n ID: [\n {\n _: 'OTH',\n schemeAgencyID: '6',\n schemeID: 'UN/ECE 5153',\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n\n // === LEGAL MONETARY TOTAL ===\n LegalMonetaryTotal: [\n {\n LineExtensionAmount: [\n {\n _: invoice.legalMonetaryTotal.taxExclusiveAmount,\n currencyID: invoice.invoiceCurrencyCode,\n },\n ],\n TaxExclusiveAmount: [\n {\n _: invoice.legalMonetaryTotal.taxExclusiveAmount,\n currencyID: invoice.invoiceCurrencyCode,\n },\n ],\n TaxInclusiveAmount: [\n {\n _: invoice.legalMonetaryTotal.taxInclusiveAmount,\n currencyID: invoice.invoiceCurrencyCode,\n },\n ],\n PayableAmount: [\n {\n _: invoice.legalMonetaryTotal.payableAmount,\n currencyID: invoice.invoiceCurrencyCode,\n },\n ],\n },\n ],\n\n // === INVOICE LINES ===\n InvoiceLine: invoice.invoiceLineItems.map((item, index) => ({\n ID: [{ _: (index + 1).toString() }],\n\n // Item Information\n Item: [\n {\n CommodityClassification: [\n {\n ItemClassificationCode: [\n {\n _: item.itemClassificationCode,\n listID: 'CLASS',\n },\n ],\n },\n ],\n Description: [{ _: item.itemDescription }],\n },\n ],\n\n ItemPriceExtension: [\n {\n Amount: [\n {\n _: item.totalTaxableAmountPerLine,\n currencyID: invoice.invoiceCurrencyCode,\n },\n ],\n },\n ],\n\n LineExtensionAmount: [\n {\n _: item.totalTaxableAmountPerLine,\n currencyID: invoice.invoiceCurrencyCode,\n },\n ],\n\n // Price Information\n Price: [\n {\n PriceAmount: [\n {\n _: item.unitPrice,\n currencyID: invoice.invoiceCurrencyCode,\n },\n ],\n },\n ],\n\n // Tax Information for line\n TaxTotal: [\n {\n TaxAmount: [\n {\n _: item.taxAmount,\n currencyID: invoice.invoiceCurrencyCode,\n },\n ],\n TaxSubtotal: [\n {\n TaxableAmount: [\n {\n _: item.totalTaxableAmountPerLine,\n currencyID: invoice.invoiceCurrencyCode,\n },\n ],\n TaxAmount: [\n {\n _: item.taxAmount,\n currencyID: invoice.invoiceCurrencyCode,\n },\n ],\n TaxCategory: [\n {\n ID: [{ _: item.taxType }],\n TaxScheme: [\n {\n ID: [\n {\n _: 'OTH',\n schemeAgencyID: '6',\n schemeID: 'UN/ECE 5153',\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n })),\n\n // === TAX EXCHANGE RATE (mandatory where applicable) ===\n TaxExchangeRate: invoice.currencyExchangeRate\n ? [\n {\n SourceCurrencyCode: [\n {\n _: invoice.invoiceCurrencyCode,\n },\n ],\n TargetCurrencyCode: [\n {\n _: 'MYR',\n },\n ],\n CalculationRate: [\n {\n _: invoice.currencyExchangeRate,\n },\n ],\n },\n ]\n : undefined,\n }\n}\n\n/**\n * Generates the complete UBL document structure with namespace declarations\n */\nexport const generateCleanUBLDocument = (\n invoices: InvoiceV1_1[],\n): UBLDocument => {\n return {\n _D: 'urn:oasis:names:specification:ubl:schema:xsd:Invoice-2',\n _A: 'urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2',\n _B: 'urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2',\n Invoice: invoices.map(generateCleanInvoiceObject),\n }\n}\n\n/**\n * Step 2: Calculate Document Digest\n * FIXED: Remove UBLExtensions and Signature before hashing (DS322)\n * Based on working implementation pattern\n */\nexport const calculateDocumentDigest = (invoices: InvoiceV1_1[]): string => {\n // Generate clean UBL document structure\n const cleanDocument = generateCleanUBLDocument(invoices)\n\n // CRITICAL FIX: Remove UBLExtensions and Signature from each invoice before hashing\n const documentForHashing = JSON.parse(JSON.stringify(cleanDocument))\n if (documentForHashing.Invoice && Array.isArray(documentForHashing.Invoice)) {\n documentForHashing.Invoice.forEach((invoice: any) => {\n delete invoice.UBLExtensions\n delete invoice.Signature\n })\n }\n\n // Convert to string for hashing (no canonicalization - use direct JSON.stringify)\n const documentString = JSON.stringify(documentForHashing)\n\n // Calculate SHA-256 hash\n const hash = crypto.createHash('sha256')\n hash.update(documentString, 'utf8')\n\n // Return as Base64 (DocDigest)\n return hash.digest('base64')\n}\n\n/**\n * Step 4: Calculate Certificate Digest\n * Enhanced to handle certificate content properly\n */\nexport const calculateCertificateDigest = (certificatePem: string): string => {\n // Extract certificate content (Base64 without PEM headers/footers)\n const certificateContent = certificatePem\n .replace(/-----BEGIN CERTIFICATE-----/g, '')\n .replace(/-----END CERTIFICATE-----/g, '')\n .replace(/\\s+/g, '') // Remove all whitespace\n\n // Convert Base64 to binary\n const certificateBinary = Buffer.from(certificateContent, 'base64')\n\n // Calculate SHA-256 hash of binary content\n const hash = crypto.createHash('sha256')\n hash.update(certificateBinary)\n\n // Return as Base64\n return hash.digest('base64')\n}\n\n/**\n * Enhanced certificate info extraction with better error handling\n * FIXED: Normalize issuer name format to match MyInvois expectations (DS326)\n */\nexport const extractCertificateInfo = (\n certificatePem: string,\n): {\n issuerName: string\n serialNumber: string\n subjectName: string\n} => {\n try {\n const cert = new X509Certificate(certificatePem)\n\n // Extract serial number and convert to decimal string\n const serialNumberHex = cert.serialNumber\n\n // ENHANCED: Normalize distinguished name format (DS326)\n // Ensures MyInvois portal compatibility for X509IssuerName matching\n const normalizeDistinguishedName = (dn: string): string => {\n // Convert multi-line format to comma-separated RFC2253 format\n const normalized = dn\n .split('\\n')\n .map(line => line.trim())\n .filter(line => line.length > 0)\n .join(', ')\n\n // MyInvois-specific normalization to prevent DS326 errors\n return normalized\n .replace(/\\s*=\\s*/g, '=') // Remove spaces around equals (CRITICAL for portal)\n .replace(/,\\s+/g, ', ') // Ensure single space after commas\n .replace(/\\r/g, '') // Remove any carriage returns\n .replace(/\\s{2,}/g, ' ') // Replace multiple spaces with single space\n .trim() // Remove leading/trailing whitespace\n }\n\n // Enhanced serial number formatting\n const formatSerialNumber = (serialHex: string): string => {\n // Convert hex to decimal and ensure it's a string\n const decimal = BigInt('0x' + serialHex).toString()\n return decimal\n }\n\n return {\n issuerName: normalizeDistinguishedName(cert.issuer),\n serialNumber: formatSerialNumber(serialNumberHex),\n subjectName: normalizeDistinguishedName(cert.subject),\n }\n } catch (error: unknown) {\n throw new Error(\n `Failed to extract certificate info: ${error instanceof Error ? error.message : String(error)}`,\n )\n }\n}\n\n/**\n * Step 5: Create SignedProperties with enhanced structure\n * FIXED: Simplified structure to match MyInvois expectations (DS320)\n * Following MyInvois JSON signature specification exactly\n */\nexport const createSignedProperties = (\n certificateDigest: string,\n signingTime: string,\n issuerName: string,\n serialNumber: string,\n): SignedPropertiesObject => {\n return {\n SignedProperties: [\n {\n Id: 'id-xades-signed-props',\n SignedSignatureProperties: [\n {\n SigningTime: [{ _: signingTime }],\n SigningCertificate: [\n {\n Cert: [\n {\n CertDigest: [\n {\n DigestMethod: [\n {\n Algorithm:\n 'http://www.w3.org/2001/04/xmlenc#sha256',\n },\n ],\n DigestValue: [{ _: certificateDigest }],\n },\n ],\n IssuerSerial: [\n {\n X509IssuerName: [{ _: issuerName }],\n X509SerialNumber: [{ _: serialNumber }],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n }\n}\n\n/**\n * Step 6: Calculate SignedProperties Digest\n * FIXED: Add Target wrapper and use direct JSON stringify (DS320)\n * Based on working implementation pattern\n */\nexport const calculateSignedPropertiesDigest = (\n signedProperties: SignedPropertiesObject,\n): string => {\n // CRITICAL FIX: Wrap with Target as per working implementation\n const signedPropertiesWithTarget = {\n Target: 'signature',\n SignedProperties: signedProperties.SignedProperties,\n }\n\n // Convert to string for hashing (no canonicalization - use direct JSON.stringify)\n const signedPropertiesString = JSON.stringify(signedPropertiesWithTarget)\n\n // Calculate SHA-256 hash\n const hash = crypto.createHash('sha256')\n hash.update(signedPropertiesString, 'utf8')\n\n // Return as Base64 (PropsDigest)\n return hash.digest('base64')\n}\n\n/**\n * Step 3: Create SignedInfo and calculate signature\n * Enhanced with better structure and signature generation\n */\nexport const createSignedInfoAndSign = (\n docDigest: string,\n propsDigest: string,\n privateKeyPem: string,\n): { signedInfo: SignedInfoObject; signatureValue: string } => {\n // Create SignedInfo structure following specification exactly\n const signedInfo = {\n CanonicalizationMethod: [\n {\n _: '',\n Algorithm: 'http://www.w3.org/2006/12/xml-c14n11',\n },\n ],\n SignatureMethod: [\n {\n _: '',\n Algorithm: 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256',\n },\n ],\n Reference: [\n {\n Id: 'id-doc-signed-data',\n Type: '',\n URI: '',\n DigestMethod: [\n {\n _: '',\n Algorithm: 'http://www.w3.org/2001/04/xmlenc#sha256',\n },\n ],\n DigestValue: [{ _: docDigest }],\n },\n {\n Id: 'id-xades-signed-props',\n Type: 'http://uri.etsi.org/01903/v1.3.2#SignedProperties',\n URI: '#id-xades-signed-props',\n DigestMethod: [\n {\n _: '',\n Algorithm: 'http://www.w3.org/2001/04/xmlenc#sha256',\n },\n ],\n DigestValue: [{ _: propsDigest }],\n },\n ],\n }\n\n // FIXED: Use direct JSON.stringify instead of canonicalization (DS333)\n // Based on working implementation pattern\n const signedInfoString = JSON.stringify(signedInfo)\n\n // Sign with RSA-SHA256 directly (RSA-SHA256 handles hashing internally)\n // FIXED: Removed double-hashing bug that was causing DS333 errors\n try {\n const signer = crypto.createSign('RSA-SHA256')\n signer.update(signedInfoString, 'utf8')\n const signatureValue = signer.sign(privateKeyPem, 'base64')\n\n return { signedInfo, signatureValue }\n } catch (error) {\n throw new Error(\n `Signature generation failed: ${error instanceof Error ? error.message : String(error)}`,\n )\n }\n}\n\n/**\n * Complete document generation with signatures\n * Follows the complete MyInvois JSON signature creation process (Steps 1-7)\n */\nexport const generateCompleteDocument = (\n invoices: InvoiceV1_1[],\n signingCredentials: SigningCredentials,\n): CompleteInvoice => {\n try {\n // Step 1: Generate clean document (done in calculateDocumentDigest)\n // Step 2: Calculate document digest\n const docDigest = calculateDocumentDigest(invoices)\n\n // Generate signing time in proper ISO format\n const signingTime = new Date().toISOString()\n\n // Extract certificate information (enhanced)\n const certInfo = extractCertificateInfo(signingCredentials.certificatePem)\n\n // Step 4: Calculate certificate digest\n const certificateDigest = calculateCertificateDigest(\n signingCredentials.certificatePem,\n )\n\n // Step 5: Create SignedProperties using extracted cert info\n const signedProperties = createSignedProperties(\n certificateDigest,\n signingTime,\n certInfo.issuerName,\n certInfo.serialNumber,\n )\n\n // Step 6: Calculate SignedProperties digest\n const propsDigest = calculateSignedPropertiesDigest(signedProperties)\n\n // Step 3: Create SignedInfo and generate signature\n const { signedInfo, signatureValue } = createSignedInfoAndSign(\n docDigest,\n propsDigest,\n signingCredentials.privateKeyPem,\n )\n\n // Extract certificate content (Base64 without PEM headers)\n const certificate = signingCredentials.certificatePem\n .replace(/-----BEGIN CERTIFICATE-----/g, '')\n .replace(/-----END CERTIFICATE-----/g, '')\n .replace(/\\s+/g, '')\n\n // Step 7: Create final signed document\n const signedInvoices = invoices.map(invoice => {\n const cleanInvoice = generateCleanInvoiceObject(invoice)\n\n return {\n ...cleanInvoice,\n\n // Add UBLExtensions with complete signature structure\n UBLExtensions: [\n {\n UBLExtension: [\n {\n ExtensionURI: [\n {\n _: 'urn:oasis:names:specification:ubl:dsig:enveloped:xades',\n },\n ],\n ExtensionContent: [\n {\n UBLDocumentSignatures: [\n {\n SignatureInformation: [\n {\n ID: [\n {\n _: 'urn:oasis:names:specification:ubl:signature:1',\n },\n ],\n ReferencedSignatureID: [\n {\n _: 'urn:oasis:names:specification:ubl:signature:Invoice',\n },\n ],\n Signature: [\n {\n Id: 'signature',\n Object: [\n {\n QualifyingProperties: [\n {\n Target: 'signature',\n SignedProperties:\n signedProperties.SignedProperties,\n },\n ],\n },\n ],\n KeyInfo: [\n {\n X509Data: [\n {\n X509Certificate: [{ _: certificate }],\n X509SubjectName: [\n { _: certInfo.subjectName },\n ],\n X509IssuerSerial: [\n {\n X509IssuerName: [\n {\n _: certInfo.issuerName,\n },\n ],\n X509SerialNumber: [\n {\n _: certInfo.serialNumber,\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n SignatureValue: [{ _: signatureValue }],\n SignedInfo: [signedInfo],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n\n // Add simple Signature reference\n Signature: [\n {\n ID: [\n {\n _: 'urn:oasis:names:specification:ubl:signature:Invoice',\n },\n ],\n SignatureMethod: [\n {\n _: 'urn:oasis:names:specification:ubl:dsig:enveloped:xades',\n },\n ],\n },\n ],\n }\n })\n\n return {\n _D: 'urn:oasis:names:specification:ubl:schema:xsd:Invoice-2',\n _A: 'urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2',\n _B: 'urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2',\n Invoice: signedInvoices,\n }\n } catch (error) {\n throw new Error(\n `Document generation failed: ${error instanceof Error ? error.message : String(error)}`,\n )\n }\n}\n"],"mappings":"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uB,CACrB,EACE,GAAG,sDACJ,CACF;MACD,WAAW,CACT;OACE,IAAI;OACJ,QAAQ,CACN,EACE,sBAAsB,CACpB;QACE,QAAQ;QACR,kBACE,iBAAiB;OACpB,CACF,EACF,CACF;OACD,SAAS,CACP,EACE,UAAU,CACR;QACE,iBAAiB,CAAC,EAAE,GAAG,YAAa,CAAC;QACrC,iBAAiB,CACf,EAAE,GAAG,SAAS,YAAa,CAC5B;QACD,kBAAkB,CAChB;SACE,gBAAgB,CACd,EACE,GAAG,SAAS,WACb,CACF;SACD,kBAAkB,CAChB,EACE,GAAG,SAAS,aACb,CACF;QACF,CACF;OACF,CACF,EACF,CACF;OACD,gBAAgB,CAAC,EAAE,GAAG,eAAgB,CAAC;OACvC,YAAY,CAAC,UAAW;MACzB,CACF;KACF,CACF,EACF,CACF,EACF,CACF;IACF,CACF,EACF,CACF;IAGD,WAAW,CACT;KACE,IAAI,CACF,EACE,GAAG,sDACJ,CACF;KACD,iBAAiB,CACf,EACE,GAAG,yDACJ,CACF;IACF,CACF;GACF;EACF,EAAC;AAEF,SAAO;GACL,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,SAAS;EACV;CACF,SAAQ,OAAO;AACd,QAAM,IAAI,OACP,8BAA8B,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM,CAAC;CAEzF;AACF"}
@@ -47,8 +47,8 @@ const generateCleanInvoiceObject = (invoice) => {
47
47
  DocumentCurrencyCode: [{ _: invoice.invoiceCurrencyCode }],
48
48
  AccountingSupplierParty: [{ Party: [{
49
49
  IndustryClassificationCode: [{
50
- _: "47900",
51
- name: "Other retail sale in non-specialised stores"
50
+ _: invoice.supplier.industryClassificationCode,
51
+ name: invoice.supplier.industryClassificationDescription
52
52
  }],
53
53
  PartyIdentification: [{ ID: [{
54
54
  _: invoice.supplier.tin,
@@ -1,11 +1,12 @@
1
1
  import { ClassificationCode } from "./classification-codes-BKxV-rO9.js";
2
2
  import { CurrencyCode } from "./currencies-BYJK-m6v.js";
3
3
  import { EInvoiceTypeCode } from "./e-invoice-CmbLQkHw.js";
4
- import { IssuerDigitalSignature } from "./signatures-CG175mpg.js";
5
- import { TaxTypeCode } from "./tax-types-tosH5I0q.js";
4
+ import { MSICCode } from "./msic-codes-C8PJVOaA.js";
5
+ import { IssuerDigitalSignature } from "./signatures-W-_brwdb.js";
6
+ import { TaxTypeCode } from "./tax-types-CsQ76JMf.js";
7
+ import { Suggested } from "./utils.js";
6
8
 
7
9
  //#region src/types/documents.d.ts
8
-
9
10
  type RegistrationType = 'BRN' | 'NRIC' | 'PASSPORT';
10
11
 
11
12
  // Based on https://sdk.myinvois.hasil.gov.my/documents/invoice-v1-1/
@@ -57,6 +58,16 @@ interface Supplier {
57
58
  * @example +60123456789
58
59
  */
59
60
  contactNumber: string;
61
+ /**
62
+ * Supplier's industry classification code. Max 10 chars.
63
+ * @example 41001
64
+ */
65
+ industryClassificationCode: MSICCode['code'];
66
+ /**
67
+ * Supplier's industry classification description. Max 300 chars.
68
+ * @example Other retail sale in non-specialised stores
69
+ */
70
+ industryClassificationDescription: Suggested<MSICCode['description']>;
60
71
  }
61
72
 
62
73
  /**