@ripwords/myinvois-client 0.1.6 → 0.2.0

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 (413) hide show
  1. package/dist/api/documentManagement.d.ts +89 -0
  2. package/dist/api/documentManagement.js +3 -0
  3. package/dist/api/documentSubmission.d.ts +92 -0
  4. package/dist/api/documentSubmission.js +4 -0
  5. package/dist/api/documentTypeManagement.d.ts +70 -0
  6. package/dist/api/documentTypeManagement.js +3 -0
  7. package/dist/api/notificationManagement.d.ts +68 -0
  8. package/dist/api/notificationManagement.js +3 -0
  9. package/dist/api/platformLogin.d.ts +68 -0
  10. package/dist/api/platformLogin.js +3 -0
  11. package/dist/api/taxpayerValidation.d.ts +79 -0
  12. package/dist/api/taxpayerValidation.js +3 -0
  13. package/dist/{certificate-DFK-788s.cjs → certificate-CxsfE91s.cjs} +1 -1
  14. package/dist/{certificate-DFK-788s.cjs.map → certificate-CxsfE91s.cjs.map} +1 -1
  15. package/dist/{document-CARHiGdp.cjs → document-vDphtJTv.cjs} +1 -1
  16. package/dist/{document-CARHiGdp.cjs.map → document-vDphtJTv.cjs.map} +1 -1
  17. package/dist/documentManagement-CIQPkmyb.js +35 -0
  18. package/dist/documentManagement-DQ7JEcBq.cjs +54 -0
  19. package/dist/documentManagement-DQ7JEcBq.cjs.map +1 -0
  20. package/dist/documentSubmission-BdJxIB_I.js +119 -0
  21. package/dist/documentSubmission-D5TC0MPC.cjs +137 -0
  22. package/dist/documentSubmission-D5TC0MPC.cjs.map +1 -0
  23. package/dist/documentTypeManagement-DXRLfTsW.cjs +41 -0
  24. package/dist/documentTypeManagement-DXRLfTsW.cjs.map +1 -0
  25. package/dist/documentTypeManagement-tojgXfm9.js +22 -0
  26. package/dist/{documents-i5EV868Y.d.ts → documents-BgXt86Qp.d.ts} +44 -7
  27. package/dist/{documents-CQy_uB6C.d.cts → documents-BqM9qOnB.d.cts} +39 -2
  28. package/dist/{getBaseUrl-CO7Jp27d.cjs → getBaseUrl-D2iJdUGL.cjs} +1 -1
  29. package/dist/{getBaseUrl-CO7Jp27d.cjs.map → getBaseUrl-D2iJdUGL.cjs.map} +1 -1
  30. package/dist/{index-D2_HVwCz.d.cts → index-Yr1QAbIF.d.cts} +1 -1
  31. package/dist/index.cjs +234 -131
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.d.ts +250 -60
  34. package/dist/index.js +234 -131
  35. package/dist/index10.cjs +196 -0
  36. package/dist/index10.cjs.map +1 -0
  37. package/dist/index11.cjs +0 -34
  38. package/dist/index12.cjs +16 -15
  39. package/dist/index12.cjs.map +1 -1
  40. package/dist/index14.cjs +0 -13
  41. package/dist/index15.cjs +28 -3
  42. package/dist/index15.cjs.map +1 -0
  43. package/dist/index16.cjs +24 -12
  44. package/dist/index16.cjs.map +1 -0
  45. package/dist/index17.cjs +0 -3
  46. package/dist/index18.cjs +28 -334
  47. package/dist/index18.cjs.map +1 -1
  48. package/dist/index19.cjs +18 -323
  49. package/dist/index19.cjs.map +1 -1
  50. package/dist/index2.cjs +4 -61
  51. package/dist/index20.cjs +0 -140
  52. package/dist/index21.cjs +0 -3
  53. package/dist/index22.cjs +0 -208
  54. package/dist/index23.cjs +9 -105
  55. package/dist/index23.cjs.map +1 -1
  56. package/dist/index24.cjs +3 -136
  57. package/dist/index25.cjs +12 -63
  58. package/dist/index26.cjs +2 -266
  59. package/dist/index27.cjs +325 -75
  60. package/dist/index27.cjs.map +1 -1
  61. package/dist/index28.cjs +136 -103
  62. package/dist/index28.cjs.map +1 -1
  63. package/dist/index29.cjs +203 -68
  64. package/dist/index29.cjs.map +1 -1
  65. package/dist/index3.cjs +5 -531
  66. package/dist/index30.cjs +104 -107
  67. package/dist/index30.cjs.map +1 -1
  68. package/dist/index31.cjs +132 -95
  69. package/dist/index31.cjs.map +1 -1
  70. package/dist/index32.cjs +59 -13
  71. package/dist/index32.cjs.map +1 -1
  72. package/dist/index33.cjs +262 -33
  73. package/dist/index33.cjs.map +1 -1
  74. package/dist/index34.cjs +74 -14
  75. package/dist/index34.cjs.map +1 -1
  76. package/dist/index35.cjs +102 -24
  77. package/dist/index35.cjs.map +1 -1
  78. package/dist/index36.cjs +68 -15
  79. package/dist/index36.cjs.map +1 -1
  80. package/dist/index37.cjs +107 -9
  81. package/dist/index37.cjs.map +1 -1
  82. package/dist/index38.cjs +95 -9
  83. package/dist/index38.cjs.map +1 -1
  84. package/dist/index39.cjs +11 -10
  85. package/dist/index39.cjs.map +1 -1
  86. package/dist/index4.cjs +4 -195
  87. package/dist/index40.cjs +31 -6
  88. package/dist/index40.cjs.map +1 -1
  89. package/dist/index41.cjs +12 -101
  90. package/dist/index41.cjs.map +1 -1
  91. package/dist/index42.cjs +22 -106
  92. package/dist/index42.cjs.map +1 -1
  93. package/dist/index43.cjs +13 -119
  94. package/dist/index43.cjs.map +1 -1
  95. package/dist/index44.cjs +7 -106
  96. package/dist/index44.cjs.map +1 -1
  97. package/dist/index45.cjs +7 -98
  98. package/dist/index45.cjs.map +1 -1
  99. package/dist/index46.cjs +10 -118
  100. package/dist/index46.cjs.map +1 -1
  101. package/dist/index47.cjs +6 -127
  102. package/dist/index47.cjs.map +1 -1
  103. package/dist/index48.cjs +101 -117
  104. package/dist/index48.cjs.map +1 -1
  105. package/dist/index49.cjs +106 -14
  106. package/dist/index49.cjs.map +1 -1
  107. package/dist/index5.cjs +3 -0
  108. package/dist/index50.cjs +119 -95
  109. package/dist/index50.cjs.map +1 -1
  110. package/dist/index51.cjs +106 -142
  111. package/dist/index51.cjs.map +1 -1
  112. package/dist/index52.cjs +98 -114
  113. package/dist/index52.cjs.map +1 -1
  114. package/dist/index53.cjs +118 -144
  115. package/dist/index53.cjs.map +1 -1
  116. package/dist/index54.cjs +127 -113
  117. package/dist/index54.cjs.map +1 -1
  118. package/dist/index55.cjs +117 -17
  119. package/dist/index55.cjs.map +1 -1
  120. package/dist/index56.cjs +14 -112
  121. package/dist/index56.cjs.map +1 -1
  122. package/dist/index57.cjs +95 -47
  123. package/dist/index57.cjs.map +1 -1
  124. package/dist/index58.cjs +142 -14
  125. package/dist/index58.cjs.map +1 -1
  126. package/dist/index59.cjs +114 -28
  127. package/dist/index59.cjs.map +1 -1
  128. package/dist/index6.cjs +2 -24
  129. package/dist/index60.cjs +144 -22
  130. package/dist/index60.cjs.map +1 -1
  131. package/dist/index61.cjs +113 -9
  132. package/dist/index61.cjs.map +1 -1
  133. package/dist/index61.cts.map +1 -1
  134. package/dist/index62.cjs +17 -8
  135. package/dist/index62.cjs.map +1 -1
  136. package/dist/index62.cts.map +1 -1
  137. package/dist/index63.cjs +112 -17
  138. package/dist/index63.cjs.map +1 -1
  139. package/dist/index63.cts.map +1 -1
  140. package/dist/index64.cjs +47 -412
  141. package/dist/index64.cjs.map +1 -1
  142. package/dist/index64.cts.map +1 -1
  143. package/dist/index65.cjs +14 -8
  144. package/dist/index65.cjs.map +1 -1
  145. package/dist/index65.cts.map +1 -1
  146. package/dist/index66.cjs +28 -9
  147. package/dist/index66.cjs.map +1 -1
  148. package/dist/index66.cts.map +1 -1
  149. package/dist/index67.cjs +29 -0
  150. package/dist/index67.cjs.map +1 -0
  151. package/dist/index67.cts.map +1 -0
  152. package/dist/index68.cjs +16 -0
  153. package/dist/index68.cjs.map +1 -0
  154. package/dist/{index60.cts.map → index68.cts.map} +1 -1
  155. package/dist/index69.cjs +15 -0
  156. package/dist/index69.cjs.map +1 -0
  157. package/dist/index69.cts.map +1 -0
  158. package/dist/index7.cjs +5 -0
  159. package/dist/index70.cjs +24 -0
  160. package/dist/index70.cjs.map +1 -0
  161. package/dist/index70.cts.map +1 -0
  162. package/dist/index71.cjs +419 -0
  163. package/dist/index71.cjs.map +1 -0
  164. package/dist/index71.cts.map +1 -0
  165. package/dist/index72.cjs +15 -0
  166. package/dist/index72.cjs.map +1 -0
  167. package/dist/index72.cts.map +1 -0
  168. package/dist/index73.cjs +16 -0
  169. package/dist/index73.cjs.map +1 -0
  170. package/dist/index73.cts.map +1 -0
  171. package/dist/index8.cjs +62 -0
  172. package/dist/{index2.cjs.map → index8.cjs.map} +1 -1
  173. package/dist/index9.cjs +523 -16
  174. package/dist/index9.cjs.map +1 -1
  175. package/dist/{msic-codes-C8PJVOaA.d.ts → msic-codes-CiPeemFK.d.ts} +10 -10
  176. package/dist/notificationManagement-CHDRVy8J.js +19 -0
  177. package/dist/notificationManagement-C_qrFwWL.cjs +26 -0
  178. package/dist/notificationManagement-C_qrFwWL.cjs.map +1 -0
  179. package/dist/notifications-B4l_qRj7.d.ts +62 -0
  180. package/dist/notifications-DdlEkprb.d.cts +63 -0
  181. package/dist/{platformLogin-PGzMhw1X.cjs → platformLogin-CPiPiVUh.cjs} +2 -2
  182. package/dist/platformLogin-CPiPiVUh.cjs.map +1 -0
  183. package/dist/{platformLogin-f0bNAoZI.js → platformLogin-Ck1Fge2n.js} +1 -1
  184. package/dist/taxpayer-D67d2zAC.d.ts +26 -0
  185. package/dist/taxpayer-sGkviG8J.d.cts +27 -0
  186. package/dist/taxpayerValidation-DI4B6kWx.js +54 -0
  187. package/dist/taxpayerValidation-DdeXCvPT.cjs +73 -0
  188. package/dist/taxpayerValidation-DdeXCvPT.cjs.map +1 -0
  189. package/dist/types/classification-codes.d.ts +1 -1
  190. package/dist/types/country-code.d.ts +1 -1
  191. package/dist/types/currencies.d.ts +1 -1
  192. package/dist/types/documents.d.ts +18 -18
  193. package/dist/types/e-invoice.d.ts +1 -1
  194. package/dist/types/index.d.ts +61 -58
  195. package/dist/types/msic/0X.d.ts +1 -1
  196. package/dist/types/msic/1X.d.ts +1 -1
  197. package/dist/types/msic/2X.d.ts +1 -1
  198. package/dist/types/msic/3X.d.ts +1 -1
  199. package/dist/types/msic/4X.d.ts +1 -1
  200. package/dist/types/msic/5X.d.ts +1 -1
  201. package/dist/types/msic/6X.d.ts +1 -1
  202. package/dist/types/msic/7X.d.ts +1 -1
  203. package/dist/types/msic/8X.d.ts +1 -1
  204. package/dist/types/msic/9X.d.ts +1 -1
  205. package/dist/types/msic-codes.d.ts +11 -11
  206. package/dist/types/notifications.d.ts +2 -0
  207. package/dist/types/payment-modes.d.ts +1 -1
  208. package/dist/types/signatures.d.ts +1 -1
  209. package/dist/types/state-codes.d.ts +1 -1
  210. package/dist/types/tax-types.d.ts +1 -1
  211. package/dist/types/taxpayer.d.ts +19 -0
  212. package/dist/types/unit/1X.d.ts +1 -1
  213. package/dist/types/unit/2X.d.ts +1 -1
  214. package/dist/types/unit/3X.d.ts +1 -1
  215. package/dist/types/unit/4X.d.ts +1 -1
  216. package/dist/types/unit/5X.d.ts +1 -1
  217. package/dist/types/unit/6X.d.ts +1 -1
  218. package/dist/types/unit/7X.d.ts +1 -1
  219. package/dist/types/unit/8X.d.ts +1 -1
  220. package/dist/types/unit/9X.d.ts +1 -1
  221. package/dist/types/unit/AX.d.ts +1 -1
  222. package/dist/types/unit/BX.d.ts +1 -1
  223. package/dist/types/unit/CX.d.ts +1 -1
  224. package/dist/types/unit/DX.d.ts +1 -1
  225. package/dist/types/unit/EX.d.ts +1 -1
  226. package/dist/types/unit/FX.d.ts +1 -1
  227. package/dist/types/unit/GX.d.ts +1 -1
  228. package/dist/types/unit/HX.d.ts +1 -1
  229. package/dist/types/unit/IX.d.ts +1 -1
  230. package/dist/types/unit/JX.d.ts +1 -1
  231. package/dist/types/unit/KX.d.ts +1 -1
  232. package/dist/types/unit/LX.d.ts +1 -1
  233. package/dist/types/unit/MX.d.ts +1 -1
  234. package/dist/types/unit/NX.d.ts +1 -1
  235. package/dist/types/unit/OX.d.ts +1 -1
  236. package/dist/types/unit/PX.d.ts +1 -1
  237. package/dist/types/unit/QX.d.ts +1 -1
  238. package/dist/types/unit/RX.d.ts +1 -1
  239. package/dist/types/unit/SX.d.ts +1 -1
  240. package/dist/types/unit/TX.d.ts +1 -1
  241. package/dist/types/unit/UX.d.ts +1 -1
  242. package/dist/types/unit/VX.d.ts +1 -1
  243. package/dist/types/unit/WX.d.ts +1 -1
  244. package/dist/types/unit/XX.d.ts +1 -1
  245. package/dist/types/unit/YX.d.ts +1 -1
  246. package/dist/types/unit/ZX.d.ts +1 -1
  247. package/dist/types/unit-types.d.ts +36 -36
  248. package/dist/types/utils.d.ts +2 -0
  249. package/dist/unit-types-VgYXIwTT.d.ts +55 -0
  250. package/dist/utils/certificate.js +1 -1
  251. package/dist/utils/document.d.ts +60 -57
  252. package/dist/utils/document.js +1 -1
  253. package/dist/utils/getBaseUrl.js +1 -1
  254. package/dist/utils/signature-diagnostics.d.ts +60 -57
  255. package/dist/utils/signature-diagnostics.js +1 -1
  256. package/dist/utils-B3mo51Zp.d.ts +4 -0
  257. package/dist/utils-Cdqbbzca.d.cts +5 -0
  258. package/package.json +5 -8
  259. package/.prettierrc +0 -8
  260. package/CHANGELOG.md +0 -152
  261. package/bun.lock +0 -460
  262. package/dist/api/platform/platformLogin.d.ts +0 -65
  263. package/dist/api/platform/platformLogin.js +0 -3
  264. package/dist/index11.cjs.map +0 -1
  265. package/dist/index14.cjs.map +0 -1
  266. package/dist/index20.cjs.map +0 -1
  267. package/dist/index22.cjs.map +0 -1
  268. package/dist/index24.cjs.map +0 -1
  269. package/dist/index25.cjs.map +0 -1
  270. package/dist/index26.cjs.map +0 -1
  271. package/dist/index3.cjs.map +0 -1
  272. package/dist/index4.cjs.map +0 -1
  273. package/dist/index58.cts.map +0 -1
  274. package/dist/index59.cts.map +0 -1
  275. package/dist/index6.cjs.map +0 -1
  276. package/dist/platformLogin-PGzMhw1X.cjs.map +0 -1
  277. package/dist/unit-types-B41YFOLT.d.ts +0 -55
  278. package/dist/utils/helpers.d.ts +0 -271
  279. package/dist/utils/helpers.js +0 -330
  280. package/myinvois-cert.conf.template +0 -23
  281. package/scripts/gen-cert.sh +0 -159
  282. package/src/api/platform/platformLogin.ts +0 -34
  283. package/src/index.ts +0 -530
  284. package/src/types/classification-codes.d.ts +0 -115
  285. package/src/types/country-code.d.ts +0 -790
  286. package/src/types/currencies.d.ts +0 -383
  287. package/src/types/documents.d.ts +0 -869
  288. package/src/types/e-invoice.d.ts +0 -41
  289. package/src/types/index.d.ts +0 -24
  290. package/src/types/msic/0X.d.ts +0 -408
  291. package/src/types/msic/1X.d.ts +0 -210
  292. package/src/types/msic/2X.d.ts +0 -266
  293. package/src/types/msic/3X.d.ts +0 -114
  294. package/src/types/msic/4X.d.ts +0 -520
  295. package/src/types/msic/5X.d.ts +0 -144
  296. package/src/types/msic/6X.d.ts +0 -200
  297. package/src/types/msic/7X.d.ts +0 -132
  298. package/src/types/msic/8X.d.ts +0 -210
  299. package/src/types/msic/9X.d.ts +0 -186
  300. package/src/types/msic-codes.d.ts +0 -31
  301. package/src/types/payment-modes.d.ts +0 -41
  302. package/src/types/signatures.d.ts +0 -169
  303. package/src/types/state-codes.d.ts +0 -59
  304. package/src/types/tax-types.d.ts +0 -39
  305. package/src/types/unit/1X.d.ts +0 -16
  306. package/src/types/unit/2X.d.ts +0 -62
  307. package/src/types/unit/3X.d.ts +0 -17
  308. package/src/types/unit/4X.d.ts +0 -44
  309. package/src/types/unit/5X.d.ts +0 -26
  310. package/src/types/unit/6X.d.ts +0 -12
  311. package/src/types/unit/7X.d.ts +0 -12
  312. package/src/types/unit/8X.d.ts +0 -15
  313. package/src/types/unit/9X.d.ts +0 -11
  314. package/src/types/unit/AX.d.ts +0 -202
  315. package/src/types/unit/BX.d.ts +0 -212
  316. package/src/types/unit/CX.d.ts +0 -238
  317. package/src/types/unit/DX.d.ts +0 -212
  318. package/src/types/unit/EX.d.ts +0 -196
  319. package/src/types/unit/FX.d.ts +0 -236
  320. package/src/types/unit/GX.d.ts +0 -254
  321. package/src/types/unit/HX.d.ts +0 -234
  322. package/src/types/unit/IX.d.ts +0 -28
  323. package/src/types/unit/JX.d.ts +0 -190
  324. package/src/types/unit/KX.d.ts +0 -284
  325. package/src/types/unit/LX.d.ts +0 -228
  326. package/src/types/unit/MX.d.ts +0 -288
  327. package/src/types/unit/NX.d.ts +0 -226
  328. package/src/types/unit/OX.d.ts +0 -34
  329. package/src/types/unit/PX.d.ts +0 -224
  330. package/src/types/unit/QX.d.ts +0 -94
  331. package/src/types/unit/RX.d.ts +0 -28
  332. package/src/types/unit/SX.d.ts +0 -56
  333. package/src/types/unit/TX.d.ts +0 -44
  334. package/src/types/unit/UX.d.ts +0 -14
  335. package/src/types/unit/VX.d.ts +0 -13
  336. package/src/types/unit/WX.d.ts +0 -34
  337. package/src/types/unit/XX.d.ts +0 -825
  338. package/src/types/unit/YX.d.ts +0 -17
  339. package/src/types/unit/ZX.d.ts +0 -19
  340. package/src/types/unit-types.d.ts +0 -86
  341. package/src/utils/base64.ts +0 -7
  342. package/src/utils/certificate.ts +0 -60
  343. package/src/utils/document.ts +0 -852
  344. package/src/utils/getBaseUrl.ts +0 -5
  345. package/src/utils/helpers.ts +0 -552
  346. package/src/utils/signature-diagnostics.ts +0 -583
  347. package/src/utils/validation.ts +0 -268
  348. package/test/MyInvoiClientWithRealData.test.ts +0 -40
  349. package/test/MyInvoisClient.test.ts +0 -204
  350. package/test/base64.test.ts +0 -43
  351. package/test/dynamicInvoiceFeatures.test.ts +0 -451
  352. package/test/signAndSubmitInvoice.test.ts +0 -452
  353. package/test/signature-diagnostics.test.ts +0 -130
  354. package/tsconfig.json +0 -39
  355. package/tsdown.config.ts +0 -31
  356. package/vitest.config.ts +0 -8
  357. /package/dist/{0X-CTIq3y3a.d.ts → 0X-DZnB0al0.d.ts} +0 -0
  358. /package/dist/{1X-BywXCqtn.d.ts → 1X-C72Wa4pk.d.ts} +0 -0
  359. /package/dist/{1X-Bu4oiv8D.d.ts → 1X-Dg5J6Bfg.d.ts} +0 -0
  360. /package/dist/{2X-3fSEGIuE.d.ts → 2X-CH89y3Af.d.ts} +0 -0
  361. /package/dist/{2X-DnG3FY1f.d.ts → 2X-D_qwTeDT.d.ts} +0 -0
  362. /package/dist/{3X-CLdmoel1.d.ts → 3X-BJHYxgxa.d.ts} +0 -0
  363. /package/dist/{3X-Ynjfgoll.d.ts → 3X-DryrwYRf.d.ts} +0 -0
  364. /package/dist/{4X-B5ePdMky.d.ts → 4X-BPMLRoDv.d.ts} +0 -0
  365. /package/dist/{4X-BTG6o1Gn.d.ts → 4X-BbZgoRHO.d.ts} +0 -0
  366. /package/dist/{5X-dhP6fyou.d.ts → 5X-Bv7M6KyG.d.ts} +0 -0
  367. /package/dist/{5X-CjSz1zxJ.d.ts → 5X-oQRBnO0f.d.ts} +0 -0
  368. /package/dist/{6X-B9KP_vEn.d.ts → 6X-B9I2XJa4.d.ts} +0 -0
  369. /package/dist/{6X-BHaY0TCf.d.ts → 6X-ZeZ8OB57.d.ts} +0 -0
  370. /package/dist/{7X-DtkQutx2.d.ts → 7X-Ckv9bbzG.d.ts} +0 -0
  371. /package/dist/{7X-C4eX_tAk.d.ts → 7X-Dvw2Z2VN.d.ts} +0 -0
  372. /package/dist/{8X-D6HTLShY.d.ts → 8X-BkgoX8dg.d.ts} +0 -0
  373. /package/dist/{8X-5n9seY3z.d.ts → 8X-C37BJTl6.d.ts} +0 -0
  374. /package/dist/{9X-CHZKsIdD.d.ts → 9X-Du0e44cq.d.ts} +0 -0
  375. /package/dist/{9X-Cpb6V4JC.d.ts → 9X-_XRgT2-_.d.ts} +0 -0
  376. /package/dist/{AX-C0w_r3PA.d.ts → AX-BSPLpkVT.d.ts} +0 -0
  377. /package/dist/{BX-RadlZ-6m.d.ts → BX-u4yMaIkz.d.ts} +0 -0
  378. /package/dist/{CX-CT1Zzb9D.d.ts → CX-BKZG0pVE.d.ts} +0 -0
  379. /package/dist/{DX-CtUeTKMM.d.ts → DX-CwA9WJAf.d.ts} +0 -0
  380. /package/dist/{EX-084Yu7Wt.d.ts → EX-BRNu1Ooi.d.ts} +0 -0
  381. /package/dist/{FX-BrbQM0CW.d.ts → FX-DBxjq6xY.d.ts} +0 -0
  382. /package/dist/{GX-gKj8iAAh.d.ts → GX-B3CvWNrP.d.ts} +0 -0
  383. /package/dist/{HX-9D-ZXTy5.d.ts → HX-D7FABgTv.d.ts} +0 -0
  384. /package/dist/{IX-DR4Fc92A.d.ts → IX-D3ZknsAB.d.ts} +0 -0
  385. /package/dist/{JX-DIKa9ma-.d.ts → JX-BRaZM3Gc.d.ts} +0 -0
  386. /package/dist/{KX-DpsJ_unT.d.ts → KX-B1K0OWoi.d.ts} +0 -0
  387. /package/dist/{LX-DeXPPWUX.d.ts → LX-CKRefinL.d.ts} +0 -0
  388. /package/dist/{MX-CKMjg_zK.d.ts → MX-DKmaeO9r.d.ts} +0 -0
  389. /package/dist/{NX-oYdb4NDo.d.ts → NX-CJL2Gn1U.d.ts} +0 -0
  390. /package/dist/{OX-Bid9es3D.d.ts → OX-Do2ap5v_.d.ts} +0 -0
  391. /package/dist/{PX-D7jy9CFk.d.ts → PX-_DOr_rm9.d.ts} +0 -0
  392. /package/dist/{QX-BFWOR4g3.d.ts → QX-HlXLkIki.d.ts} +0 -0
  393. /package/dist/{RX-XHgCyMV1.d.ts → RX-DVPGOVES.d.ts} +0 -0
  394. /package/dist/{SX-Cl8RN8oH.d.ts → SX-OGT3qwlS.d.ts} +0 -0
  395. /package/dist/{TX-ZymoIbtr.d.ts → TX-cPDINmZ5.d.ts} +0 -0
  396. /package/dist/{UX-D-Ndd1ov.d.ts → UX-Be3sqvPV.d.ts} +0 -0
  397. /package/dist/{VX-B-1b34r7.d.ts → VX-CoEuBNDK.d.ts} +0 -0
  398. /package/dist/{WX-0GuMjPNZ.d.ts → WX-DMvw__jH.d.ts} +0 -0
  399. /package/dist/{XX-CF2NANsy.d.ts → XX-DOA-10JW.d.ts} +0 -0
  400. /package/dist/{YX-B51BbNSg.d.ts → YX-F34sJ7Ik.d.ts} +0 -0
  401. /package/dist/{ZX-BMJS1iAv.d.ts → ZX-CDQOfsHh.d.ts} +0 -0
  402. /package/dist/{certificate-aooIRf9A.js → certificate-BDECQL9C.js} +0 -0
  403. /package/dist/{classification-codes-BKxV-rO9.d.ts → classification-codes-B1D5xbq5.d.ts} +0 -0
  404. /package/dist/{country-code-CQuaiQm2.d.ts → country-code-D42kAyNH.d.ts} +0 -0
  405. /package/dist/{currencies-BYJK-m6v.d.ts → currencies-CDveO_yz.d.ts} +0 -0
  406. /package/dist/{document-D6VKMAtx.js → document-BSuYbfXR.js} +0 -0
  407. /package/dist/{e-invoice-CmbLQkHw.d.ts → e-invoice-BxNC6V_j.d.ts} +0 -0
  408. /package/dist/{getBaseUrl-R3IdgCu3.js → getBaseUrl-BYkBwhQP.js} +0 -0
  409. /package/dist/{index-0-EvC6Nv.d.ts → index-FTgB2nM6.d.ts} +0 -0
  410. /package/dist/{payment-modes-BOTSRC_X.d.ts → payment-modes-NpE3OcCV.d.ts} +0 -0
  411. /package/dist/{signatures-W-_brwdb.d.ts → signatures-DOKNMiZI.d.ts} +0 -0
  412. /package/dist/{state-codes-oeFKlwXZ.d.ts → state-codes-VOFWhHA0.d.ts} +0 -0
  413. /package/dist/{tax-types-CsQ76JMf.d.ts → tax-types-ieqw5Ze7.d.ts} +0 -0
@@ -1,451 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
- import type { InvoiceV1_1 } from '../src/types'
3
- import {
4
- PaymentHelpers,
5
- CurrencyHelpers,
6
- TaxHelpers,
7
- AllowanceChargeHelpers,
8
- DeliveryHelpers,
9
- DocumentReferenceHelpers,
10
- IndustryHelpers,
11
- DateTimeHelpers,
12
- InvoiceBuilder,
13
- } from '../src/utils/helpers'
14
- import { validateInvoice } from '../src/utils/validation'
15
- import { generateCleanUBLDocument } from '../src/utils/document'
16
-
17
- /**
18
- * ⚠️ SECURITY NOTICE: This file uses environment variables for sensitive data.
19
- * Never hardcode actual TIN, NRIC, certificates, or API credentials in test files.
20
- * Use .env file for your actual values (already gitignored).
21
- */
22
-
23
- describe('Dynamic Invoice Features', () => {
24
- describe('Helper Functions', () => {
25
- it('should create different payment methods', () => {
26
- const cash = PaymentHelpers.cash()
27
- expect(cash.paymentMeansCode).toBe('01')
28
- expect(cash.paymentTerms).toBe('Cash payment')
29
-
30
- const bankTransfer = PaymentHelpers.bankTransfer('ACC123', '2025-02-01')
31
- expect(bankTransfer.paymentMeansCode).toBe('03')
32
- expect(bankTransfer.payeeFinancialAccountID).toBe('ACC123')
33
- expect(bankTransfer.paymentDueDate).toBe('2025-02-01')
34
-
35
- const net30 = PaymentHelpers.net(30, 'ACC456')
36
- expect(net30.paymentMeansCode).toBe('03')
37
- expect(net30.paymentTerms).toBe('Net 30 days')
38
- expect(net30.payeeFinancialAccountID).toBe('ACC456')
39
- })
40
-
41
- it('should calculate taxes correctly', () => {
42
- const sstResult = TaxHelpers.calculateSST(1000, 6)
43
- expect(sstResult.taxAmount).toBe(60)
44
- expect(sstResult.totalWithTax).toBe(1060)
45
-
46
- const zeroRated = TaxHelpers.zeroRated(1000)
47
- expect(zeroRated.taxAmount).toBe(0)
48
- expect(zeroRated.totalWithTax).toBe(1000)
49
-
50
- const exempt = TaxHelpers.exempt(1000)
51
- expect(exempt.taxAmount).toBe(0)
52
- expect(exempt.totalWithTax).toBe(1000)
53
- })
54
-
55
- it('should create allowances and charges', () => {
56
- const discount = AllowanceChargeHelpers.discount('Early payment', 100, 10)
57
- expect(discount.chargeIndicator).toBe(false)
58
- expect(discount.reason).toBe('Early payment')
59
- expect(discount.amount).toBe(100)
60
- expect(discount.multiplierFactorNumeric).toBe(0.1)
61
-
62
- const shipping = AllowanceChargeHelpers.shipping(50)
63
- expect(shipping.chargeIndicator).toBe(true)
64
- expect(shipping.reason).toBe('Shipping and handling')
65
- expect(shipping.amount).toBe(50)
66
-
67
- const earlyDiscount = AllowanceChargeHelpers.earlyPaymentDiscount(2, 5000)
68
- expect(earlyDiscount.chargeIndicator).toBe(false)
69
- expect(earlyDiscount.amount).toBe(100) // 2% of 5000
70
- expect(earlyDiscount.baseAmount).toBe(5000)
71
- })
72
-
73
- it('should create delivery information', () => {
74
- const standardDelivery = DeliveryHelpers.standard('2025-01-15', {
75
- addressLine0: '123 Main St',
76
- cityName: 'Kuala Lumpur',
77
- postalZone: '50000',
78
- state: '14',
79
- })
80
-
81
- expect(standardDelivery.actualDeliveryDate).toBe('2025-01-15')
82
- expect(standardDelivery.deliveryLocation?.addressLine0).toBe(
83
- '123 Main St',
84
- )
85
- expect(standardDelivery.deliveryLocation?.country).toBe('MYS')
86
-
87
- const pickup = DeliveryHelpers.pickup('2025-01-16')
88
- expect(pickup.actualDeliveryDate).toBe('2025-01-16')
89
- expect(pickup.deliveryLocation?.addressLine0).toBe('Customer pickup')
90
-
91
- const withFreight = DeliveryHelpers.withFreight(
92
- '2025-01-17',
93
- {
94
- addressLine0: '456 Business Ave',
95
- cityName: 'Shah Alam',
96
- state: '10',
97
- },
98
- 75,
99
- 'Express delivery',
100
- )
101
-
102
- expect(withFreight.shipment?.freightAllowanceCharge?.amount).toBe(75)
103
- expect(withFreight.shipment?.freightAllowanceCharge?.reason).toBe(
104
- 'Express delivery',
105
- )
106
- })
107
-
108
- it('should create document references', () => {
109
- const po = DocumentReferenceHelpers.purchaseOrder('PO-2025-001')
110
- expect(po.purchaseOrderReference).toBe('PO-2025-001')
111
-
112
- const contract = DocumentReferenceHelpers.contract('CONTRACT-2025-001')
113
- expect(contract.contractReference).toBe('CONTRACT-2025-001')
114
-
115
- const customs = DocumentReferenceHelpers.customs('CUSTOMS-12345')
116
- expect(customs.id).toBe('CUSTOMS-12345')
117
- expect(customs.documentType).toBe('CustomsImportForm')
118
-
119
- const fta = DocumentReferenceHelpers.freeTradeAgreement(
120
- 'FTA-123',
121
- 'Singapore',
122
- )
123
- expect(fta.id).toBe('FTA-123')
124
- expect(fta.documentType).toBe('FreeTradeAgreement')
125
- expect(fta.documentDescription).toBe(
126
- 'Free trade agreement with Singapore',
127
- )
128
- })
129
-
130
- it('should provide industry classifications', () => {
131
- expect(IndustryHelpers.software.industryClassificationCode).toBe('62012')
132
- expect(IndustryHelpers.software.industryClassificationDescription).toBe(
133
- 'Business and domestic software development',
134
- )
135
-
136
- expect(IndustryHelpers.trading.industryClassificationCode).toBe('47900')
137
- expect(IndustryHelpers.manufacturing.industryClassificationCode).toBe(
138
- '10131',
139
- )
140
- expect(IndustryHelpers.consulting.industryClassificationCode).toBe(
141
- '70200',
142
- )
143
-
144
- const custom = IndustryHelpers.custom('99999', 'Custom business activity')
145
- expect(custom.industryClassificationCode).toBe('99999')
146
- expect(custom.industryClassificationDescription).toBe(
147
- 'Custom business activity',
148
- )
149
- })
150
-
151
- it('should handle currency exchange rates', () => {
152
- const domestic = CurrencyHelpers.domestic()
153
- expect(domestic.sourceCurrencyCode).toBe('MYR')
154
- expect(domestic.targetCurrencyCode).toBe('MYR')
155
- expect(domestic.calculationRate).toBe(1.0)
156
-
157
- const international = CurrencyHelpers.international(
158
- 'USD',
159
- 'MYR',
160
- 4.75,
161
- '2025-01-01',
162
- )
163
- expect(international.sourceCurrencyCode).toBe('USD')
164
- expect(international.targetCurrencyCode).toBe('MYR')
165
- expect(international.calculationRate).toBe(4.75)
166
- expect(international.exchangeRateDate).toBe('2025-01-01')
167
-
168
- // Test common rates
169
- expect(CurrencyHelpers.commonRates.USD_MYR).toBe(4.75)
170
- expect(CurrencyHelpers.commonRates.SGD_MYR).toBe(3.45)
171
- })
172
-
173
- it('should handle date and time formatting', () => {
174
- const currentDate = DateTimeHelpers.currentDate()
175
- expect(currentDate).toMatch(/^\d{4}-\d{2}-\d{2}$/)
176
-
177
- const currentTime = DateTimeHelpers.currentTime()
178
- expect(currentTime).toMatch(/^\d{2}:\d{2}:\d{2}Z$/)
179
-
180
- const testDate = new Date('2025-01-15T10:30:00Z')
181
- expect(DateTimeHelpers.formatDate(testDate)).toBe('2025-01-15')
182
- expect(DateTimeHelpers.formatTime(testDate)).toBe('10:30:00Z')
183
-
184
- const addedDays = DateTimeHelpers.addDays(testDate, 5)
185
- expect(DateTimeHelpers.formatDate(addedDays)).toBe('2025-01-20')
186
-
187
- const monthlyPeriod = DateTimeHelpers.monthlyPeriod(2025, 1)
188
- expect(monthlyPeriod.start).toBe('2025-01-01')
189
- expect(monthlyPeriod.end).toBe('2025-01-31')
190
- })
191
-
192
- it('should create invoice templates', () => {
193
- const cashInvoice = InvoiceBuilder.basicCash('INV-CASH-001')
194
- expect(cashInvoice.eInvoiceCodeOrNumber).toBe('INV-CASH-001')
195
- expect(cashInvoice.eInvoiceTypeCode).toBe('01')
196
- expect(cashInvoice.invoiceCurrencyCode).toBe('MYR')
197
- expect(cashInvoice.paymentMeans?.[0].paymentMeansCode).toBe('01')
198
-
199
- const businessInvoice = InvoiceBuilder.businessInvoice(
200
- 'INV-BIZ-001',
201
- 'ACC123',
202
- 30,
203
- )
204
- expect(businessInvoice.eInvoiceCodeOrNumber).toBe('INV-BIZ-001')
205
- expect(businessInvoice.paymentMeans?.[0].paymentMeansCode).toBe('03')
206
- expect(businessInvoice.paymentMeans?.[0].paymentTerms).toBe('Net 30 days')
207
-
208
- const internationalInvoice = InvoiceBuilder.international(
209
- 'INV-USD-001',
210
- 'USD',
211
- 4.75,
212
- )
213
- expect(internationalInvoice.eInvoiceCodeOrNumber).toBe('INV-USD-001')
214
- expect(internationalInvoice.invoiceCurrencyCode).toBe('USD')
215
- expect(internationalInvoice.currencyExchangeRate).toBe(4.75)
216
- expect(internationalInvoice.taxExchangeRate?.calculationRate).toBe(4.75)
217
- })
218
- })
219
-
220
- describe('Validation Functions', () => {
221
- const createTestInvoice = (): InvoiceV1_1 => ({
222
- eInvoiceVersion: '1.1',
223
- eInvoiceTypeCode: '01',
224
- eInvoiceCodeOrNumber: 'TEST-001',
225
- eInvoiceDate: '2025-01-01',
226
- eInvoiceTime: '10:00:00Z',
227
- invoiceCurrencyCode: 'MYR',
228
-
229
- supplier: {
230
- name: 'Test Supplier',
231
- tin: 'C1234567890',
232
- registrationType: 'BRN',
233
- registrationNumber: '202201234567',
234
- contactNumber: '+60123456789',
235
- address: {
236
- addressLine0: 'Test Address',
237
- cityName: 'Kuala Lumpur',
238
- state: '14',
239
- country: 'MYS',
240
- },
241
- industryClassificationCode: '41001',
242
- industryClassificationDescription: 'Test Industry',
243
- },
244
-
245
- buyer: {
246
- name: 'Test Buyer',
247
- tin: process.env.BUYER_TIN_VALUE || 'IG00000000000', // Replace with your buyer TIN
248
- registrationType: 'NRIC',
249
- registrationNumber: process.env.BUYER_NRIC_VALUE || '000000000000', // Replace with test NRIC
250
- sstRegistrationNumber: 'NA',
251
- contactNumber: '+60987654321',
252
- address: {
253
- addressLine0: 'Buyer Address',
254
- cityName: 'Petaling Jaya',
255
- state: '10',
256
- country: 'MYS',
257
- },
258
- },
259
-
260
- invoiceLineItems: [
261
- {
262
- itemClassificationCode: '001',
263
- itemDescription: 'Test Product',
264
- unitPrice: 100.0,
265
- taxType: '01',
266
- taxRate: 6.0,
267
- taxAmount: 6.0,
268
- totalTaxableAmountPerLine: 100.0,
269
- totalAmountPerLine: 106.0,
270
- },
271
- ],
272
-
273
- legalMonetaryTotal: {
274
- taxExclusiveAmount: 100.0,
275
- taxInclusiveAmount: 106.0,
276
- payableAmount: 106.0,
277
- },
278
-
279
- taxTotal: {
280
- taxAmount: 6.0,
281
- },
282
-
283
- issuerDigitalSignature: {} as any,
284
- })
285
-
286
- it('should validate a correct invoice', () => {
287
- const invoice = createTestInvoice()
288
- const validation = validateInvoice(invoice)
289
-
290
- expect(validation.isValid).toBe(true)
291
- expect(validation.errors).toHaveLength(0)
292
- expect(validation.warnings).toHaveLength(0)
293
- })
294
-
295
- it('should detect TIN format issues', () => {
296
- const invoice = createTestInvoice()
297
- invoice.supplier.tin = 'IG1234567890' // Individual TIN for company
298
-
299
- const validation = validateInvoice(invoice)
300
-
301
- expect(
302
- validation.warnings.some(w => w.code === 'TIN_FORMAT_INVALID'),
303
- ).toBe(true)
304
- expect(
305
- validation.warnings.some(w =>
306
- w.message.includes('Company TIN should start with "C"'),
307
- ),
308
- ).toBe(true)
309
- })
310
-
311
- it('should detect invalid contact numbers', () => {
312
- const invoice = createTestInvoice()
313
- invoice.supplier.contactNumber = 'invalid-phone'
314
-
315
- const validation = validateInvoice(invoice)
316
-
317
- expect(validation.isValid).toBe(false)
318
- expect(
319
- validation.errors.some(e => e.code === 'CONTACT_FORMAT_INVALID'),
320
- ).toBe(true)
321
- })
322
-
323
- it('should detect tax calculation mismatches', () => {
324
- const invoice = createTestInvoice()
325
- invoice.taxTotal.taxAmount = 10.0 // Wrong tax amount
326
-
327
- const validation = validateInvoice(invoice)
328
-
329
- expect(validation.isValid).toBe(false)
330
- expect(
331
- validation.errors.some(e => e.code === 'TAX_AMOUNT_MISMATCH'),
332
- ).toBe(true)
333
- })
334
-
335
- it('should detect negative amounts', () => {
336
- const invoice = createTestInvoice()
337
- invoice.legalMonetaryTotal.payableAmount = -100
338
-
339
- const validation = validateInvoice(invoice)
340
-
341
- expect(validation.isValid).toBe(false)
342
- expect(validation.errors.some(e => e.code === 'AMOUNT_NEGATIVE')).toBe(
343
- true,
344
- )
345
- })
346
- })
347
-
348
- describe('Enhanced Document Generation', () => {
349
- it('should generate document with dynamic industry classification', () => {
350
- const invoice = createBasicInvoiceWithIndustry()
351
-
352
- // Test clean document generation without signing (avoids crypto errors with dummy keys)
353
- const cleanDocument = generateCleanUBLDocument([invoice])
354
-
355
- expect(cleanDocument.Invoice).toHaveLength(1)
356
- expect(cleanDocument.Invoice[0].AccountingSupplierParty).toBeDefined()
357
- })
358
-
359
- it('should generate document with dynamic delivery information', () => {
360
- const invoice = createInvoiceWithDelivery()
361
-
362
- // Test clean document generation without signing (avoids crypto errors with dummy keys)
363
- const cleanDocument = generateCleanUBLDocument([invoice])
364
-
365
- expect(
366
- cleanDocument.Invoice[0].AccountingSupplierParty[0].Party[0]
367
- .PostalAddress[0].CityName[0]._,
368
- ).toBe('Shah Alam')
369
- })
370
- })
371
- })
372
-
373
- // Helper functions for creating test invoices with specific features
374
-
375
- function createBasicInvoiceWithIndustry(): InvoiceV1_1 {
376
- const baseInvoice = InvoiceBuilder.basicCash('TEST-INDUSTRY-001')
377
-
378
- return {
379
- ...baseInvoice,
380
- supplier: {
381
- name: 'Software Co Sdn Bhd',
382
- tin: 'C1234567890',
383
- registrationType: 'BRN',
384
- registrationNumber: '202201234567',
385
- contactNumber: '+60123456789',
386
- ...IndustryHelpers.software, // Dynamic industry classification
387
- address: {
388
- addressLine0: 'Tech Hub',
389
- cityName: 'Kuala Lumpur',
390
- postalZone: '50000',
391
- state: '14',
392
- country: 'MYS',
393
- },
394
- },
395
- buyer: {
396
- name: 'Test Buyer',
397
- tin: 'EI00000000010',
398
- registrationType: 'NRIC',
399
- registrationNumber: process.env.BUYER_NRIC_VALUE || '000000000000', // Replace with test NRIC
400
- sstRegistrationNumber: 'NA',
401
- contactNumber: '+60123456789',
402
- address: {
403
- addressLine0: 'Buyer Address',
404
- cityName: 'KL',
405
- postalZone: '50000',
406
- state: '14',
407
- country: 'MYS',
408
- },
409
- },
410
- invoiceLineItems: [
411
- {
412
- itemClassificationCode: '001',
413
- itemDescription: 'Software Services',
414
- unitPrice: 1000.0,
415
- quantity: 1,
416
- measurement: 'C62',
417
- taxType: '01',
418
- taxRate: 6.0,
419
- taxAmount: 60.0,
420
- totalTaxableAmountPerLine: 1000.0,
421
- totalAmountPerLine: 1060.0,
422
- },
423
- ],
424
- legalMonetaryTotal: {
425
- taxExclusiveAmount: 1000.0,
426
- taxInclusiveAmount: 1060.0,
427
- payableAmount: 1060.0,
428
- },
429
- taxTotal: {
430
- taxAmount: 60.0,
431
- taxSubtotals: [
432
- {
433
- taxableAmount: 1000.0,
434
- taxAmount: 60.0,
435
- taxCategory: {
436
- taxTypeCode: '01',
437
- taxRate: 6.0,
438
- },
439
- },
440
- ],
441
- },
442
- issuerDigitalSignature: {} as any,
443
- } as InvoiceV1_1
444
- }
445
-
446
- function createInvoiceWithDelivery(): InvoiceV1_1 {
447
- const invoice = createBasicInvoiceWithIndustry()
448
- // Update supplier address to Shah Alam as expected by the test
449
- invoice.supplier.address.cityName = 'Shah Alam'
450
- return invoice
451
- }