@ripwords/myinvois-client 0.0.10 → 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 (364) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/README.md +128 -4
  3. package/bun.lock +138 -122
  4. package/dist/0X-CG1S1WKn.d.ts +210 -0
  5. package/dist/0X-ChfmeAYF.d.cts +211 -0
  6. package/dist/1X-CmlbG02M.d.ts +111 -0
  7. package/dist/1X-DFikQbP0.d.cts +20 -0
  8. package/dist/1X-DbFshzup.d.ts +19 -0
  9. package/dist/1X-jFrFCOs0.d.cts +112 -0
  10. package/dist/2X-5cE4ojEX.d.cts +140 -0
  11. package/dist/2X-DA6J6Wd7.d.ts +139 -0
  12. package/dist/2X-FWZ1rYVt.d.cts +40 -0
  13. package/dist/2X-eC_p0QJf.d.ts +39 -0
  14. package/dist/3X-D9duw0Ro.d.cts +21 -0
  15. package/dist/3X-DbfkwdkO.d.ts +20 -0
  16. package/dist/3X-GxuN79Ax.d.ts +61 -0
  17. package/dist/3X-r9xbWJ2l.d.cts +62 -0
  18. package/dist/4X-1ZkK-uH5.d.cts +31 -0
  19. package/dist/4X-CLO9OuKa.d.cts +265 -0
  20. package/dist/4X-CnHtgO6u.d.ts +30 -0
  21. package/dist/4X-DYz_nYSD.d.ts +264 -0
  22. package/dist/5X-BzPEdkbC.d.ts +21 -0
  23. package/dist/5X-BziH0a09.d.cts +77 -0
  24. package/dist/5X-Cfe39fFc.d.cts +22 -0
  25. package/dist/5X-kBF74qx1.d.ts +76 -0
  26. package/dist/6X-BceErbps.d.cts +105 -0
  27. package/dist/6X-C_xpeu6J.d.ts +15 -0
  28. package/dist/6X-DLWEe1bP.d.cts +16 -0
  29. package/dist/6X-sQZfT0ZK.d.ts +104 -0
  30. package/dist/7X-Bet2agJ6.d.ts +15 -0
  31. package/dist/7X-BoKQxMoO.d.ts +70 -0
  32. package/dist/7X-CucHYQsA.d.cts +16 -0
  33. package/dist/7X-CwPAqozm.d.cts +71 -0
  34. package/dist/8X-BIjJ9kaV.d.cts +110 -0
  35. package/dist/8X-BOEWATU3.d.ts +109 -0
  36. package/dist/8X-CJpqd5xp.d.cts +19 -0
  37. package/dist/8X-s5AzkHR-.d.ts +18 -0
  38. package/dist/9X-BBDP1gZ6.d.ts +14 -0
  39. package/dist/9X-CP5Xp6bE.d.cts +98 -0
  40. package/dist/9X-D3aOVCnz.d.cts +15 -0
  41. package/dist/9X-DAAZV4sr.d.ts +97 -0
  42. package/dist/AX-CmpMMhII.d.ts +110 -0
  43. package/dist/AX-DFzpxGOT.d.cts +111 -0
  44. package/dist/BX-CyiqNE6b.d.cts +115 -0
  45. package/dist/BX-j78z_ju_.d.ts +114 -0
  46. package/dist/CX-B6rEhQx7.d.ts +127 -0
  47. package/dist/CX-BTPvC3Dv.d.cts +128 -0
  48. package/dist/DX-BD4-hTCh.d.cts +115 -0
  49. package/dist/DX-CAmMnx5a.d.ts +114 -0
  50. package/dist/EX-CXhSC85J.d.ts +106 -0
  51. package/dist/EX-mTHCH0Yk.d.cts +107 -0
  52. package/dist/FX-DOOMoQl2.d.cts +127 -0
  53. package/dist/FX-DYVIJ3l0.d.ts +126 -0
  54. package/dist/GX-8URJ7WHz.d.cts +136 -0
  55. package/dist/GX-eBOVHqi6.d.ts +135 -0
  56. package/dist/HX-49z8CzsE.d.cts +126 -0
  57. package/dist/HX-Dz5T0xXI.d.ts +125 -0
  58. package/dist/IX-B6kblmBs.d.cts +23 -0
  59. package/dist/IX-PiKYro5a.d.ts +22 -0
  60. package/dist/JX-DMwHLGEE.d.cts +104 -0
  61. package/dist/JX-Dvnt0mSK.d.ts +103 -0
  62. package/dist/KX-BUb8e0yg.d.ts +150 -0
  63. package/dist/KX-DaJPkefl.d.cts +151 -0
  64. package/dist/LX-BnILxjdS.d.cts +123 -0
  65. package/dist/LX-l5ZBaGov.d.ts +122 -0
  66. package/dist/MX-BbPO8mTj.d.cts +153 -0
  67. package/dist/MX-C7C15AWi.d.ts +152 -0
  68. package/dist/NX-C7nFVC-D.d.ts +121 -0
  69. package/dist/NX-xy5uw7H3.d.cts +122 -0
  70. package/dist/OX-CIzARbON.d.cts +26 -0
  71. package/dist/OX-Dmkvcaij.d.ts +25 -0
  72. package/dist/PX-BKZ14N7N.d.ts +120 -0
  73. package/dist/PX-CL8waFgx.d.cts +121 -0
  74. package/dist/QX-6xdSNtxZ.d.ts +58 -0
  75. package/dist/QX-BowAYqZb.d.cts +59 -0
  76. package/dist/RX-DFoiOK5q.d.ts +22 -0
  77. package/dist/RX-fWoWcHTG.d.cts +23 -0
  78. package/dist/SX-CZ3e31OT.d.cts +40 -0
  79. package/dist/SX-D-Szi9wa.d.ts +39 -0
  80. package/dist/TX-CJhJ-HYX.d.cts +31 -0
  81. package/dist/TX-DTfkGsqn.d.ts +30 -0
  82. package/dist/UX-Bw4HHAj4.d.ts +17 -0
  83. package/dist/UX-P7-u2y70.d.cts +18 -0
  84. package/dist/VX-C8Eu5gQf.d.cts +17 -0
  85. package/dist/VX-DCv5x_hi.d.ts +16 -0
  86. package/dist/WX-BYtJ5_if.d.ts +25 -0
  87. package/dist/WX-DkiaqB2V.d.cts +26 -0
  88. package/dist/XX-D4p4iK-a.d.cts +828 -0
  89. package/dist/XX-Jo1yJO3A.d.ts +827 -0
  90. package/dist/YX-BvGmEsVG.d.ts +19 -0
  91. package/dist/YX-Du8zv9qz.d.cts +20 -0
  92. package/dist/ZX-B4jFD-21.d.cts +22 -0
  93. package/dist/ZX-B59AJcBY.d.ts +21 -0
  94. package/dist/api/platform/platformLogin.d.ts +65 -0
  95. package/dist/api/platform/platformLogin.js +3 -0
  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/chunk-CUT6urMc.cjs +30 -0
  100. package/dist/classification-codes-B15PbWxz.d.cts +118 -0
  101. package/dist/classification-codes-BKxV-rO9.d.ts +117 -0
  102. package/dist/country-code-CQuaiQm2.d.ts +542 -0
  103. package/dist/country-code-DPeNFMMi.d.cts +543 -0
  104. package/dist/currencies-BYJK-m6v.d.ts +207 -0
  105. package/dist/currencies-S5g1gzBU.d.cts +208 -0
  106. package/dist/document-DMIMRJV0.cjs +472 -0
  107. package/dist/document-DMIMRJV0.cjs.map +1 -0
  108. package/dist/document-NQos5fSr.js +405 -0
  109. package/dist/documents-BVG7KIKY.d.ts +847 -0
  110. package/dist/documents-C066EC9m.d.cts +848 -0
  111. package/dist/e-invoice-BuwtFnlI.d.cts +44 -0
  112. package/dist/e-invoice-CmbLQkHw.d.ts +43 -0
  113. package/dist/getBaseUrl-CO7Jp27d.cjs +14 -0
  114. package/dist/getBaseUrl-CO7Jp27d.cjs.map +1 -0
  115. package/dist/getBaseUrl-R3IdgCu3.js +7 -0
  116. package/dist/index-0-EvC6Nv.d.ts +15 -0
  117. package/dist/index-D2_HVwCz.d.cts +16 -0
  118. package/dist/index.cjs +256 -50
  119. package/dist/index.cjs.map +1 -1
  120. package/dist/index.d.ts +232 -5665
  121. package/dist/index.js +253 -46
  122. package/dist/index10.cjs +0 -0
  123. package/dist/index11.cjs +34 -0
  124. package/dist/index11.cjs.map +1 -0
  125. package/dist/index12.cjs +24 -0
  126. package/dist/index12.cjs.map +1 -0
  127. package/dist/index13.cjs +0 -0
  128. package/dist/index14.cjs +13 -0
  129. package/dist/index14.cjs.map +1 -0
  130. package/dist/index15.cjs +4 -0
  131. package/dist/index16.cjs +13 -0
  132. package/dist/index17.cjs +3 -0
  133. package/dist/index18.cjs +340 -0
  134. package/dist/index18.cjs.map +1 -0
  135. package/dist/index19.cjs +329 -0
  136. package/dist/index19.cjs.map +1 -0
  137. package/dist/index2.cjs +62 -0
  138. package/dist/index2.cjs.map +1 -0
  139. package/dist/index20.cjs +140 -0
  140. package/dist/index20.cjs.map +1 -0
  141. package/dist/index21.cjs +3 -0
  142. package/dist/index22.cjs +208 -0
  143. package/dist/index22.cjs.map +1 -0
  144. package/dist/index23.cjs +109 -0
  145. package/dist/index23.cjs.map +1 -0
  146. package/dist/index24.cjs +137 -0
  147. package/dist/index24.cjs.map +1 -0
  148. package/dist/index25.cjs +64 -0
  149. package/dist/index25.cjs.map +1 -0
  150. package/dist/index26.cjs +267 -0
  151. package/dist/index26.cjs.map +1 -0
  152. package/dist/index27.cjs +79 -0
  153. package/dist/index27.cjs.map +1 -0
  154. package/dist/index28.cjs +107 -0
  155. package/dist/index28.cjs.map +1 -0
  156. package/dist/index29.cjs +73 -0
  157. package/dist/index29.cjs.map +1 -0
  158. package/dist/index3.cjs +532 -0
  159. package/dist/index3.cjs.map +1 -0
  160. package/dist/index30.cjs +112 -0
  161. package/dist/index30.cjs.map +1 -0
  162. package/dist/index31.cjs +100 -0
  163. package/dist/index31.cjs.map +1 -0
  164. package/dist/index32.cjs +18 -0
  165. package/dist/index32.cjs.map +1 -0
  166. package/dist/index33.cjs +38 -0
  167. package/dist/index33.cjs.map +1 -0
  168. package/dist/index34.cjs +19 -0
  169. package/dist/index34.cjs.map +1 -0
  170. package/dist/index35.cjs +29 -0
  171. package/dist/index35.cjs.map +1 -0
  172. package/dist/index36.cjs +20 -0
  173. package/dist/index36.cjs.map +1 -0
  174. package/dist/index37.cjs +14 -0
  175. package/dist/index37.cjs.map +1 -0
  176. package/dist/index38.cjs +14 -0
  177. package/dist/index38.cjs.map +1 -0
  178. package/dist/index39.cjs +17 -0
  179. package/dist/index39.cjs.map +1 -0
  180. package/dist/index4.cjs +196 -0
  181. package/dist/index4.cjs.map +1 -0
  182. package/dist/index40.cjs +13 -0
  183. package/dist/index40.cjs.map +1 -0
  184. package/dist/index41.cjs +108 -0
  185. package/dist/index41.cjs.map +1 -0
  186. package/dist/index42.cjs +113 -0
  187. package/dist/index42.cjs.map +1 -0
  188. package/dist/index43.cjs +126 -0
  189. package/dist/index43.cjs.map +1 -0
  190. package/dist/index44.cjs +113 -0
  191. package/dist/index44.cjs.map +1 -0
  192. package/dist/index45.cjs +105 -0
  193. package/dist/index45.cjs.map +1 -0
  194. package/dist/index46.cjs +125 -0
  195. package/dist/index46.cjs.map +1 -0
  196. package/dist/index47.cjs +134 -0
  197. package/dist/index47.cjs.map +1 -0
  198. package/dist/index48.cjs +124 -0
  199. package/dist/index48.cjs.map +1 -0
  200. package/dist/index49.cjs +21 -0
  201. package/dist/index49.cjs.map +1 -0
  202. package/dist/index5.cjs +0 -0
  203. package/dist/index50.cjs +102 -0
  204. package/dist/index50.cjs.map +1 -0
  205. package/dist/index51.cjs +149 -0
  206. package/dist/index51.cjs.map +1 -0
  207. package/dist/index52.cjs +121 -0
  208. package/dist/index52.cjs.map +1 -0
  209. package/dist/index53.cjs +151 -0
  210. package/dist/index53.cjs.map +1 -0
  211. package/dist/index54.cjs +120 -0
  212. package/dist/index54.cjs.map +1 -0
  213. package/dist/index55.cjs +24 -0
  214. package/dist/index55.cjs.map +1 -0
  215. package/dist/index56.cjs +119 -0
  216. package/dist/index56.cjs.map +1 -0
  217. package/dist/index57.cjs +54 -0
  218. package/dist/index57.cjs.map +1 -0
  219. package/dist/index58.cjs +21 -0
  220. package/dist/index58.cjs.map +1 -0
  221. package/dist/index58.cts.map +1 -0
  222. package/dist/index59.cjs +35 -0
  223. package/dist/index59.cjs.map +1 -0
  224. package/dist/index59.cts.map +1 -0
  225. package/dist/index6.cjs +25 -0
  226. package/dist/index6.cjs.map +1 -0
  227. package/dist/index60.cjs +29 -0
  228. package/dist/index60.cjs.map +1 -0
  229. package/dist/index60.cts.map +1 -0
  230. package/dist/index61.cjs +16 -0
  231. package/dist/index61.cjs.map +1 -0
  232. package/dist/index61.cts.map +1 -0
  233. package/dist/index62.cjs +15 -0
  234. package/dist/index62.cjs.map +1 -0
  235. package/dist/index62.cts.map +1 -0
  236. package/dist/index63.cjs +24 -0
  237. package/dist/index63.cjs.map +1 -0
  238. package/dist/index63.cts.map +1 -0
  239. package/dist/index64.cjs +419 -0
  240. package/dist/index64.cjs.map +1 -0
  241. package/dist/index64.cts.map +1 -0
  242. package/dist/index65.cjs +15 -0
  243. package/dist/index65.cjs.map +1 -0
  244. package/dist/index65.cts.map +1 -0
  245. package/dist/index66.cjs +16 -0
  246. package/dist/index66.cjs.map +1 -0
  247. package/dist/index66.cts.map +1 -0
  248. package/dist/index7.cjs +0 -0
  249. package/dist/index8.cjs +0 -0
  250. package/dist/index9.cjs +25 -0
  251. package/dist/index9.cjs.map +1 -0
  252. package/dist/msic-codes-CPWVNnpq.d.cts +26 -0
  253. package/dist/msic-codes-DToUqTI6.d.ts +25 -0
  254. package/dist/payment-modes-DA7uBIGb.d.ts +43 -0
  255. package/dist/payment-modes-FX88uyhP.d.cts +44 -0
  256. package/dist/platformLogin-PGzMhw1X.cjs +37 -0
  257. package/dist/platformLogin-PGzMhw1X.cjs.map +1 -0
  258. package/dist/platformLogin-f0bNAoZI.js +30 -0
  259. package/dist/signatures-BKi9DP2K.d.cts +173 -0
  260. package/dist/signatures-CG175mpg.d.ts +172 -0
  261. package/dist/state-codes-CNp_6051.d.cts +62 -0
  262. package/dist/state-codes-dvoTe5pC.d.ts +61 -0
  263. package/dist/tax-types-CgwxONDS.d.cts +42 -0
  264. package/dist/tax-types-tosH5I0q.d.ts +41 -0
  265. package/dist/types/classification-codes.d.ts +2 -0
  266. package/dist/types/country-code.d.ts +2 -0
  267. package/dist/types/currencies.d.ts +2 -0
  268. package/dist/types/documents.d.ts +7 -0
  269. package/dist/types/e-invoice.d.ts +2 -0
  270. package/dist/types/index.d.ts +58 -0
  271. package/dist/types/msic/0X.d.ts +2 -0
  272. package/dist/types/msic/1X.d.ts +2 -0
  273. package/dist/types/msic/2X.d.ts +2 -0
  274. package/dist/types/msic/3X.d.ts +2 -0
  275. package/dist/types/msic/4X.d.ts +2 -0
  276. package/dist/types/msic/5X.d.ts +2 -0
  277. package/dist/types/msic/6X.d.ts +2 -0
  278. package/dist/types/msic/7X.d.ts +2 -0
  279. package/dist/types/msic/8X.d.ts +2 -0
  280. package/dist/types/msic/9X.d.ts +2 -0
  281. package/dist/types/msic-codes.d.ts +12 -0
  282. package/dist/types/payment-modes.d.ts +2 -0
  283. package/dist/types/signatures.d.ts +2 -0
  284. package/dist/types/state-codes.d.ts +2 -0
  285. package/dist/types/tax-types.d.ts +2 -0
  286. package/dist/types/unit/1X.d.ts +2 -0
  287. package/dist/types/unit/2X.d.ts +2 -0
  288. package/dist/types/unit/3X.d.ts +2 -0
  289. package/dist/types/unit/4X.d.ts +2 -0
  290. package/dist/types/unit/5X.d.ts +2 -0
  291. package/dist/types/unit/6X.d.ts +2 -0
  292. package/dist/types/unit/7X.d.ts +2 -0
  293. package/dist/types/unit/8X.d.ts +2 -0
  294. package/dist/types/unit/9X.d.ts +2 -0
  295. package/dist/types/unit/AX.d.ts +2 -0
  296. package/dist/types/unit/BX.d.ts +2 -0
  297. package/dist/types/unit/CX.d.ts +2 -0
  298. package/dist/types/unit/DX.d.ts +2 -0
  299. package/dist/types/unit/EX.d.ts +2 -0
  300. package/dist/types/unit/FX.d.ts +2 -0
  301. package/dist/types/unit/GX.d.ts +2 -0
  302. package/dist/types/unit/HX.d.ts +2 -0
  303. package/dist/types/unit/IX.d.ts +2 -0
  304. package/dist/types/unit/JX.d.ts +2 -0
  305. package/dist/types/unit/KX.d.ts +2 -0
  306. package/dist/types/unit/LX.d.ts +2 -0
  307. package/dist/types/unit/MX.d.ts +2 -0
  308. package/dist/types/unit/NX.d.ts +2 -0
  309. package/dist/types/unit/OX.d.ts +2 -0
  310. package/dist/types/unit/PX.d.ts +2 -0
  311. package/dist/types/unit/QX.d.ts +2 -0
  312. package/dist/types/unit/RX.d.ts +2 -0
  313. package/dist/types/unit/SX.d.ts +2 -0
  314. package/dist/types/unit/TX.d.ts +2 -0
  315. package/dist/types/unit/UX.d.ts +2 -0
  316. package/dist/types/unit/VX.d.ts +2 -0
  317. package/dist/types/unit/WX.d.ts +2 -0
  318. package/dist/types/unit/XX.d.ts +2 -0
  319. package/dist/types/unit/YX.d.ts +2 -0
  320. package/dist/types/unit/ZX.d.ts +2 -0
  321. package/dist/types/unit-types.d.ts +37 -0
  322. package/dist/unit-types-BKZxwVYQ.d.ts +55 -0
  323. package/dist/unit-types-CaOA5ZDG.d.cts +56 -0
  324. package/dist/utils/base64.d.ts +5 -0
  325. package/dist/utils/base64.js +10 -0
  326. package/dist/utils/certificate.d.ts +22 -0
  327. package/dist/utils/certificate.js +3 -0
  328. package/dist/utils/document.d.ts +135 -0
  329. package/dist/utils/document.js +3 -0
  330. package/dist/utils/getBaseUrl.d.ts +4 -0
  331. package/dist/utils/getBaseUrl.js +3 -0
  332. package/dist/utils/helpers.d.ts +271 -0
  333. package/dist/utils/helpers.js +330 -0
  334. package/dist/utils/signature-diagnostics.d.ts +93 -0
  335. package/dist/utils/signature-diagnostics.js +326 -0
  336. package/dist/utils/validation.d.ts +46 -0
  337. package/dist/utils/validation.js +134 -0
  338. package/myinvois-cert.conf.template +23 -0
  339. package/package.json +20 -7
  340. package/scripts/gen-cert.sh +159 -0
  341. package/src/api/platform/platformLogin.ts +7 -2
  342. package/src/index.ts +528 -1
  343. package/src/types/documents.d.ts +862 -0
  344. package/src/types/index.d.ts +1 -1
  345. package/src/types/msic-codes.d.ts +1 -7
  346. package/src/utils/base64.ts +7 -0
  347. package/src/utils/certificate.ts +60 -0
  348. package/src/utils/document.ts +852 -0
  349. package/src/utils/getBaseUrl.ts +1 -1
  350. package/src/utils/helpers.ts +552 -0
  351. package/src/utils/signature-diagnostics.ts +583 -0
  352. package/src/utils/validation.ts +268 -0
  353. package/test/MyInvoiClientWithRealData.test.ts +11 -2
  354. package/test/MyInvoisClient.test.ts +23 -9
  355. package/test/base64.test.ts +43 -0
  356. package/test/dynamicInvoiceFeatures.test.ts +449 -0
  357. package/test/signAndSubmitInvoice.test.ts +450 -0
  358. package/test/signature-diagnostics.test.ts +128 -0
  359. package/tsconfig.json +4 -1
  360. package/tsdown.config.ts +31 -0
  361. package/rolldown.config.ts +0 -26
  362. package/src/types/documents/index.d.ts +0 -1
  363. package/src/types/documents/invoice-1_1.d.ts +0 -349
  364. package/src/utils/MyInvoisClient.ts +0 -88
package/CHANGELOG.md ADDED
@@ -0,0 +1,99 @@
1
+ # Changelog
2
+
3
+
4
+ ## v0.1.2
5
+
6
+ [compare changes](https://github.com/Ripwords/MyInvoisClient/compare/v0.1.1...v0.1.2)
7
+
8
+ ### 🚀 Enhancements
9
+
10
+ - Introduce RegistrationType type and update registrationType fields in Supplier and Buyer interfaces for improved type safety ([28bcd5b](https://github.com/Ripwords/MyInvoisClient/commit/28bcd5b))
11
+ - Consolidate and expand invoice type definitions by merging index.ts into index.d.ts, enhancing type safety and clarity across various invoice-related interfaces ([e8ba3f9](https://github.com/Ripwords/MyInvoisClient/commit/e8ba3f9))
12
+
13
+ ### 💅 Refactors
14
+
15
+ - Update type exports by removing the deprecated index.d.ts file and directly exporting from documents.d.ts to streamline type definitions and improve clarity ([b5fcd79](https://github.com/Ripwords/MyInvoisClient/commit/b5fcd79))
16
+ - Streamline invoice type definitions by removing unused fields and enhancing clarity in the documents.d.ts and document.ts files, while updating tests to reflect these changes ([834bb63](https://github.com/Ripwords/MyInvoisClient/commit/834bb63))
17
+
18
+ ### 🏡 Chore
19
+
20
+ - Enhance release script to run linting before building and publishing ([230e15c](https://github.com/Ripwords/MyInvoisClient/commit/230e15c))
21
+
22
+ ### ❤️ Contributors
23
+
24
+ - JJ <teohjjteoh@gmail.com>
25
+
26
+ ## v0.1.1
27
+
28
+
29
+ ### 🚀 Enhancements
30
+
31
+ - First commit ([c03ee2c](https://github.com/Ripwords/MyInvoisClient/commit/c03ee2c))
32
+ - Add docs ([cb80529](https://github.com/Ripwords/MyInvoisClient/commit/cb80529))
33
+ - Add base64 encoding utility ([51cbad8](https://github.com/Ripwords/MyInvoisClient/commit/51cbad8))
34
+ - Add XML-related dependencies and update rolldown config for external modules ([5237aad](https://github.com/Ripwords/MyInvoisClient/commit/5237aad))
35
+ - Add support for new XML processing features and enhance rolldown configuration for better module handling ([a492bb8](https://github.com/Ripwords/MyInvoisClient/commit/a492bb8))
36
+ - Populate signed properties (step 6) ([87397b1](https://github.com/Ripwords/MyInvoisClient/commit/87397b1))
37
+ - Implement new XML processing enhancements and refine rolldown configuration for improved module management ([d1b4455](https://github.com/Ripwords/MyInvoisClient/commit/d1b4455))
38
+ - Document signature implementation ([b42604c](https://github.com/Ripwords/MyInvoisClient/commit/b42604c))
39
+ - Add debugDocumentHash and testSubmissionHashMethods functions for validating document hash calculations ([b0921ac](https://github.com/Ripwords/MyInvoisClient/commit/b0921ac))
40
+ - Expand invoice type definitions with InvoiceSubmission and SignedInvoiceSubmission interfaces, enhance document generation utilities to support new structures, and improve type safety in signature handling ([eae4ed7](https://github.com/Ripwords/MyInvoisClient/commit/eae4ed7))
41
+
42
+ ### 🩹 Fixes
43
+
44
+ - Update release script in package.json to use bun run for building ([d41b5d3](https://github.com/Ripwords/MyInvoisClient/commit/d41b5d3))
45
+ - Update release script in package.json to include public access for npm publish ([36c4e14](https://github.com/Ripwords/MyInvoisClient/commit/36c4e14))
46
+
47
+ ### 💅 Refactors
48
+
49
+ - Update rolldown.config.ts to support multiple output formats and entry file naming ([eacd967](https://github.com/Ripwords/MyInvoisClient/commit/eacd967))
50
+ - Update MyInvoisClient to use taxpayerLogin for token management and remove redundant TokenResponse interface; delete obsolete test file ([4844b2c](https://github.com/Ripwords/MyInvoisClient/commit/4844b2c))
51
+ - Simplify UnitTypeCode definition by replacing hardcoded values with imports from unit-specific modules ([62484e3](https://github.com/Ripwords/MyInvoisClient/commit/62484e3))
52
+ - Update unit type imports to include .d.ts extensions for better type resolution ([db2ea18](https://github.com/Ripwords/MyInvoisClient/commit/db2ea18))
53
+ - Remove taxpayerLogin function and update MyInvoisClient to use platformLogin; add optional onBehalfOf parameter to ClientCredentials ([790ea53](https://github.com/Ripwords/MyInvoisClient/commit/790ea53))
54
+ - Enhance PEM certificate handling by adding validation for Base64 content and improving error messages ([9d9d8ae](https://github.com/Ripwords/MyInvoisClient/commit/9d9d8ae))
55
+ - Remove unused imports related to Document and Node types from xmldom-ts in signature utility files ([15ae5bb](https://github.com/Ripwords/MyInvoisClient/commit/15ae5bb))
56
+ - Remove debug logging from populateFinalDocument function in signature utility ([980b322](https://github.com/Ripwords/MyInvoisClient/commit/980b322))
57
+ - Update verifyTin method to support multiple ID types and improve parameter naming for clarity ([3d09585](https://github.com/Ripwords/MyInvoisClient/commit/3d09585))
58
+ - Initialize tokenExpiration to undefined and enhance token validation logic in MyInvoisClient ([a7edd3e](https://github.com/Ripwords/MyInvoisClient/commit/a7edd3e))
59
+ - Remove unnecessary ts-ignore for private method call in MyInvoisClientWithBRN test ([c04ea76](https://github.com/Ripwords/MyInvoisClient/commit/c04ea76))
60
+ - Update MSIC code types and integrate into invoice supplier interface ([f28fa71](https://github.com/Ripwords/MyInvoisClient/commit/f28fa71))
61
+ - Enhance hashSignedProperties function to support optional canonicalization algorithm and add fallback for C14N 1.1 ([b7d693b](https://github.com/Ripwords/MyInvoisClient/commit/b7d693b))
62
+ - Add registrationType field to Supplier interface in invoice-1_1.d.ts ([225ffeb](https://github.com/Ripwords/MyInvoisClient/commit/225ffeb))
63
+ - Enhance canonicalization process in canonicalizeAndHashDocument function with optional algorithm support and fallback for C14N 1.1 ([41a5570](https://github.com/Ripwords/MyInvoisClient/commit/41a5570))
64
+ - Restructure invoice1-1.ts for improved readability and maintainability; add XML minification and error handling in document hash generation ([9df51cb](https://github.com/Ripwords/MyInvoisClient/commit/9df51cb))
65
+ - Update canonicalization algorithm URIs in signature utilities to use C14N 1.1 and ensure proper fallback handling ([20e375a](https://github.com/Ripwords/MyInvoisClient/commit/20e375a))
66
+ - Remove unused MyInvoisClient and invoice1-1 utility files, update tsconfig.json to improve type declaration settings, and enhance invoice-1_1 type definitions with additional fields for better clarity ([2bbe651](https://github.com/Ripwords/MyInvoisClient/commit/2bbe651))
67
+
68
+ ### 🏡 Chore
69
+
70
+ - Update package.json with new name, version, description, and main entry point ([b952d5a](https://github.com/Ripwords/MyInvoisClient/commit/b952d5a))
71
+ - Update package.json to add rolldown and rolldown-plugin-dts as devDependencies ([1322bac](https://github.com/Ripwords/MyInvoisClient/commit/1322bac))
72
+ - Add release script to package.json ([7ab378d](https://github.com/Ripwords/MyInvoisClient/commit/7ab378d))
73
+ - Bump version to 0.0.2 in package.json ([863187a](https://github.com/Ripwords/MyInvoisClient/commit/863187a))
74
+ - Bump version to 0.0.4 in package.json and add dotenv as a devDependency; update rolldown output directory and enable sourcemaps ([a53bc25](https://github.com/Ripwords/MyInvoisClient/commit/a53bc25))
75
+ - Bump version to 0.0.5 in package.json; update ofetch import path in MyInvoisClient and tests ([c5ef1d3](https://github.com/Ripwords/MyInvoisClient/commit/c5ef1d3))
76
+ - Bump version to 0.0.6 in package.json; remove ofetch dependency and update MyInvoisClient to use fetch; add dotenv setup in vitest.config.ts ([4b73f11](https://github.com/Ripwords/MyInvoisClient/commit/4b73f11))
77
+ - Bump version to 0.0.7 in package.json; add exports field and update rolldown output directory; enhance MyInvoisClient with debug option ([7bfa137](https://github.com/Ripwords/MyInvoisClient/commit/7bfa137))
78
+ - Organise package.json fields ([94afac0](https://github.com/Ripwords/MyInvoisClient/commit/94afac0))
79
+ - Bump version to 0.0.8 in package.json; update rolldown-plugin-dts and typescript dependencies; remove git push from release script ([04fc74c](https://github.com/Ripwords/MyInvoisClient/commit/04fc74c))
80
+ - Bump version to 0.0.9 in package.json; add clean script using rimraf; update rolldown config for isolated declaration; fix import path in MyInvoisClient ([f820113](https://github.com/Ripwords/MyInvoisClient/commit/f820113))
81
+ - Bump version to 0.0.10 in package.json ([0baa610](https://github.com/Ripwords/MyInvoisClient/commit/0baa610))
82
+ - Add @vitest/coverage-v8 dependency to package.json and bun.lock for improved test coverage reporting ([02c11da](https://github.com/Ripwords/MyInvoisClient/commit/02c11da))
83
+ - Add *.pem to .gitignore to exclude PEM files from version control ([f86ad14](https://github.com/Ripwords/MyInvoisClient/commit/f86ad14))
84
+ - Update dependencies in package.json and bun.lock to include xml-crypto and related packages ([48539ea](https://github.com/Ripwords/MyInvoisClient/commit/48539ea))
85
+ - Update package version to 0.0.11, add crypto dependency, and adjust type imports for improved clarity ([1b78281](https://github.com/Ripwords/MyInvoisClient/commit/1b78281))
86
+ - Remove rolldown and related dependencies, update build script to use tsdown, and enhance type definitions for better clarity and maintainability ([6c06af9](https://github.com/Ripwords/MyInvoisClient/commit/6c06af9))
87
+ - Bump package version to 0.1.0 for release readiness ([8b75664](https://github.com/Ripwords/MyInvoisClient/commit/8b75664))
88
+ - Update .gitignore to exclude *.conf files, enhance release script to include changelog generation, and expand README with detailed installation and testing instructions for MyInvois client ([ca968bc](https://github.com/Ripwords/MyInvoisClient/commit/ca968bc))
89
+ - Add changelogen dependency for automated changelog generation ([3c6592e](https://github.com/Ripwords/MyInvoisClient/commit/3c6592e))
90
+
91
+ ### ✅ Tests
92
+
93
+ - Skip MyInvoisClient tests if required environment variables are missing; use hardcoded values for TIN and NRIC in tests ([3200a8e](https://github.com/Ripwords/MyInvoisClient/commit/3200a8e))
94
+ - Improve handling of potential canonicalization failures in canonicalizeAndHashDocument test ([16d3f58](https://github.com/Ripwords/MyInvoisClient/commit/16d3f58))
95
+
96
+ ### ❤️ Contributors
97
+
98
+ - JJ <teohjjteoh@gmail.com>
99
+
package/README.md CHANGED
@@ -1,15 +1,139 @@
1
- # e-invoice-client
1
+ # MyInvois Client
2
2
 
3
- To install dependencies:
3
+ A comprehensive Node.js client for Malaysia's MyInvois e-invoicing system with full digital signature support.
4
+
5
+ ## Installation
4
6
 
5
7
  ```bash
6
8
  bun install
7
9
  ```
8
10
 
9
- To run:
11
+ ## Environment Variables
12
+
13
+ Create a `.env` file in the project root with your MyInvois credentials:
14
+
15
+ ```bash
16
+ # MyInvois API Credentials (from MyInvois portal)
17
+ CLIENT_ID=your_client_id_here
18
+ CLIENT_SECRET=your_client_secret_here
19
+
20
+ # Your Certificate and Private Key (PEM format)
21
+ TEST_CERTIFICATE="-----BEGIN CERTIFICATE-----
22
+ your_certificate_content_here
23
+ -----END CERTIFICATE-----"
24
+
25
+ TEST_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----
26
+ your_private_key_content_here
27
+ -----END PRIVATE KEY-----"
28
+
29
+ # Your MyInvois TIN (Tax Identification Number)
30
+ TIN_VALUE=IG12345678901
31
+
32
+ # Your NRIC/Business Registration Number
33
+ NRIC_VALUE=123456789012
34
+
35
+ # Additional test TINs for comprehensive testing
36
+ TEST_TIN_1=C12345678901
37
+ TEST_TIN_2=C98765432109
38
+ TEST_TIN_3=IG98765432109
39
+
40
+ # Test buyer information
41
+ BUYER_TIN_VALUE=IG00000000000
42
+ BUYER_NRIC_VALUE=000000000000
43
+ ```
44
+
45
+ ⚠️ **Important**: Never commit your actual TIN, NRIC, certificates, or API credentials to version control.
46
+
47
+ ## Testing
10
48
 
11
49
  ```bash
12
- bun run index.ts
50
+ bun test
51
+ ```
52
+
53
+ ## Generating Test Certificates for Development
54
+
55
+ For testing purposes, you can generate self-signed certificates with MyInvois-required fields:
56
+
57
+ ### 1. Create Certificate Configuration
58
+
59
+ Create `myinvois-cert.conf`:
60
+
61
+ ```ini
62
+ [req]
63
+ distinguished_name = req_distinguished_name
64
+ req_extensions = v3_req
65
+ prompt = no
66
+
67
+ [req_distinguished_name]
68
+ C = MY
69
+ ST = YOUR_STATE
70
+ L = YOUR_CITY
71
+ O = YOUR_COMPANY_NAME
72
+ CN = YOUR_COMPANY_NAME
73
+ emailAddress = YOUR_EMAIL
74
+ serialNumber = YOUR_BUSINESS_REGISTRATION_NUMBER
75
+
76
+ [v3_req]
77
+ keyUsage = keyEncipherment, dataEncipherment, digitalSignature, nonRepudiation
78
+ extendedKeyUsage = clientAuth, emailProtection
79
+ subjectAltName = @alt_names
80
+
81
+ [alt_names]
82
+ email.1 = YOUR_EMAIL
83
+ DNS.1 = YOUR_DOMAIN
13
84
  ```
14
85
 
86
+ ### 2. Generate Private Key
87
+
88
+ ```bash
89
+ openssl genrsa -out myinvois-test-key.pem 2048
90
+ ```
91
+
92
+ ### 3. Generate Certificate with Required MyInvois Fields
93
+
94
+ ```bash
95
+ # Basic certificate with SERIALNUMBER
96
+ openssl req -new -x509 -key myinvois-test-key.pem -out myinvois-test-cert.pem -days 365 -config myinvois-cert.conf
97
+
98
+ # Enhanced certificate with organizationIdentifier (OI) field for TIN
99
+ openssl req -new -x509 -key myinvois-test-key.pem -out myinvois-enhanced-cert.pem -days 365 \
100
+ -subj "/C=MY/ST=YOUR_STATE/L=YOUR_CITY/O=YOUR_COMPANY_NAME/CN=YOUR_COMPANY_NAME/serialNumber=YOUR_BUSINESS_REG/2.5.4.97=YOUR_TIN/emailAddress=YOUR_EMAIL"
101
+ ```
102
+
103
+ ### 4. Verify Certificate Fields
104
+
105
+ ```bash
106
+ # Check certificate details
107
+ openssl x509 -in myinvois-enhanced-cert.pem -text -noout | grep -A 2 -B 2 "Subject:"
108
+
109
+ # Should show both:
110
+ # serialNumber=YOUR_BUSINESS_REG
111
+ # organizationIdentifier=YOUR_TIN
112
+ ```
113
+
114
+ ## Example Values
115
+
116
+ Replace the placeholders with your actual values:
117
+
118
+ - `YOUR_STATE`: `Kuala Lumpur`
119
+ - `YOUR_CITY`: `Kuala Lumpur`
120
+ - `YOUR_COMPANY_NAME`: `My Company Sdn Bhd`
121
+ - `YOUR_EMAIL`: `admin@mycompany.com`
122
+ - `YOUR_BUSINESS_REG`: `202301234567` (SSM registration)
123
+ - `YOUR_TIN`: `IG12345678901` (MyInvois TIN)
124
+ - `YOUR_DOMAIN`: `mycompany.com`
125
+
126
+ ## Production Certificates
127
+
128
+ ⚠️ **For production use, obtain official business certificates from MyInvois-approved Certificate Authorities:**
129
+
130
+ - **MSC Trustgate**: https://www.msctrustgate.com/
131
+ - **Digicert Sdn Bhd**
132
+ - **Cybersign Asia**
133
+
134
+ The certificate must include:
135
+ - `organizationIdentifier` field with your TIN
136
+ - `SERIALNUMBER` field with your business registration number
137
+ - Issued by a MyInvois-trusted CA
138
+
15
139
  This project was created using `bun init` in bun v1.2.10. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.