@ripwords/myinvois-client 0.1.3 → 0.1.4

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 (339) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/package.json +4 -5
  3. package/src/index.ts +2 -1
  4. package/src/types/documents.d.ts +5 -6
  5. package/bun.lock +0 -460
  6. package/dist/0X-CTIq3y3a.d.ts +0 -210
  7. package/dist/0X-Cr3M7hci.d.cts +0 -211
  8. package/dist/1X-Bu4oiv8D.d.ts +0 -111
  9. package/dist/1X-BywXCqtn.d.ts +0 -19
  10. package/dist/1X-CWwmfCzo.d.cts +0 -112
  11. package/dist/1X-ClnJ79HH.d.cts +0 -20
  12. package/dist/2X-3fSEGIuE.d.ts +0 -39
  13. package/dist/2X-CV9eYhog.d.cts +0 -40
  14. package/dist/2X-DNtkJ0tj.d.cts +0 -140
  15. package/dist/2X-DnG3FY1f.d.ts +0 -139
  16. package/dist/3X--VWVsC84.d.cts +0 -21
  17. package/dist/3X-BOxfatu3.d.cts +0 -62
  18. package/dist/3X-CLdmoel1.d.ts +0 -61
  19. package/dist/3X-Ynjfgoll.d.ts +0 -20
  20. package/dist/4X-B5ePdMky.d.ts +0 -30
  21. package/dist/4X-BTG6o1Gn.d.ts +0 -264
  22. package/dist/4X-By9PzHaY.d.cts +0 -31
  23. package/dist/4X-C7fzDWJ_.d.cts +0 -265
  24. package/dist/5X-B5M0Cv_K.d.cts +0 -22
  25. package/dist/5X-CNAFsDm2.d.cts +0 -77
  26. package/dist/5X-CjSz1zxJ.d.ts +0 -76
  27. package/dist/5X-dhP6fyou.d.ts +0 -21
  28. package/dist/6X-B9KP_vEn.d.ts +0 -104
  29. package/dist/6X-BHaY0TCf.d.ts +0 -15
  30. package/dist/6X-C3elgd-n.d.cts +0 -16
  31. package/dist/6X-uObUP4VG.d.cts +0 -105
  32. package/dist/7X-BifJnY24.d.cts +0 -71
  33. package/dist/7X-C4eX_tAk.d.ts +0 -15
  34. package/dist/7X-D3idQBl9.d.cts +0 -16
  35. package/dist/7X-DtkQutx2.d.ts +0 -70
  36. package/dist/8X-5n9seY3z.d.ts +0 -109
  37. package/dist/8X-C6UMFvQW.d.cts +0 -19
  38. package/dist/8X-D6HTLShY.d.ts +0 -18
  39. package/dist/8X-DioBXCJ0.d.cts +0 -110
  40. package/dist/9X-BjffnXuq.d.cts +0 -98
  41. package/dist/9X-CHZKsIdD.d.ts +0 -14
  42. package/dist/9X-CJjPJgIG.d.cts +0 -15
  43. package/dist/9X-Cpb6V4JC.d.ts +0 -97
  44. package/dist/AX-C0w_r3PA.d.ts +0 -110
  45. package/dist/AX-DrEd2Ov6.d.cts +0 -111
  46. package/dist/BX-C5jc6myN.d.cts +0 -115
  47. package/dist/BX-RadlZ-6m.d.ts +0 -114
  48. package/dist/CX-CT1Zzb9D.d.ts +0 -127
  49. package/dist/CX-oSgvmn3h.d.cts +0 -128
  50. package/dist/DX-CtUeTKMM.d.ts +0 -114
  51. package/dist/DX-ZIG0enmK.d.cts +0 -115
  52. package/dist/EX-084Yu7Wt.d.ts +0 -106
  53. package/dist/EX-BpWZ5ADq.d.cts +0 -107
  54. package/dist/FX-BrbQM0CW.d.ts +0 -126
  55. package/dist/FX-CvYBEc51.d.cts +0 -127
  56. package/dist/GX-CU8PZy0G.d.cts +0 -136
  57. package/dist/GX-gKj8iAAh.d.ts +0 -135
  58. package/dist/HX-9D-ZXTy5.d.ts +0 -125
  59. package/dist/HX-DoEErDeE.d.cts +0 -126
  60. package/dist/IX-DR4Fc92A.d.ts +0 -22
  61. package/dist/IX-jLAUHe8i.d.cts +0 -23
  62. package/dist/JX-DIKa9ma-.d.ts +0 -103
  63. package/dist/JX-DX8BjYQC.d.cts +0 -104
  64. package/dist/KX-DpsJ_unT.d.ts +0 -150
  65. package/dist/KX-fZb4_vhw.d.cts +0 -151
  66. package/dist/LX-D_mI1bk-.d.cts +0 -123
  67. package/dist/LX-DeXPPWUX.d.ts +0 -122
  68. package/dist/MX-CKMjg_zK.d.ts +0 -152
  69. package/dist/MX-DlYZhpkT.d.cts +0 -153
  70. package/dist/NX-DELEEbad.d.cts +0 -122
  71. package/dist/NX-oYdb4NDo.d.ts +0 -121
  72. package/dist/OX-Bid9es3D.d.ts +0 -25
  73. package/dist/OX-CKPyrIFf.d.cts +0 -26
  74. package/dist/PX-D7jy9CFk.d.ts +0 -120
  75. package/dist/PX-SP6NxBtG.d.cts +0 -121
  76. package/dist/QX-BFWOR4g3.d.ts +0 -58
  77. package/dist/QX-QZA7E2O-.d.cts +0 -59
  78. package/dist/RX-DBcgbdeE.d.cts +0 -23
  79. package/dist/RX-XHgCyMV1.d.ts +0 -22
  80. package/dist/SX-Cl8RN8oH.d.ts +0 -39
  81. package/dist/SX-DmiJeCMN.d.cts +0 -40
  82. package/dist/TX-C1SoDobK.d.cts +0 -31
  83. package/dist/TX-ZymoIbtr.d.ts +0 -30
  84. package/dist/UX-D-Ndd1ov.d.ts +0 -17
  85. package/dist/UX-DFVynFhQ.d.cts +0 -18
  86. package/dist/VX-B-1b34r7.d.ts +0 -16
  87. package/dist/VX-DsRum5k3.d.cts +0 -17
  88. package/dist/WX-0GuMjPNZ.d.ts +0 -25
  89. package/dist/WX-VReU5R5M.d.cts +0 -26
  90. package/dist/XX-CF2NANsy.d.ts +0 -827
  91. package/dist/XX-ChAviUMj.d.cts +0 -828
  92. package/dist/YX-B51BbNSg.d.ts +0 -19
  93. package/dist/YX-QfzeMEKx.d.cts +0 -20
  94. package/dist/ZX-BMJS1iAv.d.ts +0 -21
  95. package/dist/ZX-Ca2E726a.d.cts +0 -22
  96. package/dist/api/platform/platformLogin.d.ts +0 -65
  97. package/dist/api/platform/platformLogin.js +0 -3
  98. package/dist/certificate-DFK-788s.cjs +0 -62
  99. package/dist/certificate-DFK-788s.cjs.map +0 -1
  100. package/dist/certificate-aooIRf9A.js +0 -49
  101. package/dist/chunk-CUT6urMc.cjs +0 -30
  102. package/dist/classification-codes-B15PbWxz.d.cts +0 -118
  103. package/dist/classification-codes-BKxV-rO9.d.ts +0 -117
  104. package/dist/country-code-CQuaiQm2.d.ts +0 -542
  105. package/dist/country-code-DPeNFMMi.d.cts +0 -543
  106. package/dist/currencies-BYJK-m6v.d.ts +0 -207
  107. package/dist/currencies-S5g1gzBU.d.cts +0 -208
  108. package/dist/document-CARHiGdp.cjs +0 -472
  109. package/dist/document-CARHiGdp.cjs.map +0 -1
  110. package/dist/document-D6VKMAtx.js +0 -405
  111. package/dist/documents-CJ8hqIGH.d.ts +0 -858
  112. package/dist/documents-MGs0EvXh.d.cts +0 -859
  113. package/dist/e-invoice-BuwtFnlI.d.cts +0 -44
  114. package/dist/e-invoice-CmbLQkHw.d.ts +0 -43
  115. package/dist/getBaseUrl-CO7Jp27d.cjs +0 -14
  116. package/dist/getBaseUrl-CO7Jp27d.cjs.map +0 -1
  117. package/dist/getBaseUrl-R3IdgCu3.js +0 -7
  118. package/dist/index-0-EvC6Nv.d.ts +0 -15
  119. package/dist/index-D2_HVwCz.d.cts +0 -16
  120. package/dist/index.cjs +0 -309
  121. package/dist/index.cjs.map +0 -1
  122. package/dist/index.d.ts +0 -233
  123. package/dist/index.js +0 -308
  124. package/dist/index10.cjs +0 -0
  125. package/dist/index11.cjs +0 -34
  126. package/dist/index11.cjs.map +0 -1
  127. package/dist/index12.cjs +0 -24
  128. package/dist/index12.cjs.map +0 -1
  129. package/dist/index13.cjs +0 -0
  130. package/dist/index14.cjs +0 -13
  131. package/dist/index14.cjs.map +0 -1
  132. package/dist/index15.cjs +0 -4
  133. package/dist/index16.cjs +0 -13
  134. package/dist/index17.cjs +0 -3
  135. package/dist/index18.cjs +0 -340
  136. package/dist/index18.cjs.map +0 -1
  137. package/dist/index19.cjs +0 -329
  138. package/dist/index19.cjs.map +0 -1
  139. package/dist/index2.cjs +0 -62
  140. package/dist/index2.cjs.map +0 -1
  141. package/dist/index20.cjs +0 -140
  142. package/dist/index20.cjs.map +0 -1
  143. package/dist/index21.cjs +0 -208
  144. package/dist/index21.cjs.map +0 -1
  145. package/dist/index22.cjs +0 -109
  146. package/dist/index22.cjs.map +0 -1
  147. package/dist/index23.cjs +0 -137
  148. package/dist/index23.cjs.map +0 -1
  149. package/dist/index24.cjs +0 -64
  150. package/dist/index24.cjs.map +0 -1
  151. package/dist/index25.cjs +0 -267
  152. package/dist/index25.cjs.map +0 -1
  153. package/dist/index26.cjs +0 -79
  154. package/dist/index26.cjs.map +0 -1
  155. package/dist/index27.cjs +0 -107
  156. package/dist/index27.cjs.map +0 -1
  157. package/dist/index28.cjs +0 -73
  158. package/dist/index28.cjs.map +0 -1
  159. package/dist/index29.cjs +0 -112
  160. package/dist/index29.cjs.map +0 -1
  161. package/dist/index3.cjs +0 -532
  162. package/dist/index3.cjs.map +0 -1
  163. package/dist/index30.cjs +0 -100
  164. package/dist/index30.cjs.map +0 -1
  165. package/dist/index31.cjs +0 -18
  166. package/dist/index31.cjs.map +0 -1
  167. package/dist/index32.cjs +0 -38
  168. package/dist/index32.cjs.map +0 -1
  169. package/dist/index33.cjs +0 -19
  170. package/dist/index33.cjs.map +0 -1
  171. package/dist/index34.cjs +0 -29
  172. package/dist/index34.cjs.map +0 -1
  173. package/dist/index35.cjs +0 -20
  174. package/dist/index35.cjs.map +0 -1
  175. package/dist/index36.cjs +0 -14
  176. package/dist/index36.cjs.map +0 -1
  177. package/dist/index37.cjs +0 -14
  178. package/dist/index37.cjs.map +0 -1
  179. package/dist/index38.cjs +0 -17
  180. package/dist/index38.cjs.map +0 -1
  181. package/dist/index39.cjs +0 -13
  182. package/dist/index39.cjs.map +0 -1
  183. package/dist/index4.cjs +0 -196
  184. package/dist/index4.cjs.map +0 -1
  185. package/dist/index40.cjs +0 -108
  186. package/dist/index40.cjs.map +0 -1
  187. package/dist/index41.cjs +0 -113
  188. package/dist/index41.cjs.map +0 -1
  189. package/dist/index42.cjs +0 -126
  190. package/dist/index42.cjs.map +0 -1
  191. package/dist/index43.cjs +0 -113
  192. package/dist/index43.cjs.map +0 -1
  193. package/dist/index44.cjs +0 -105
  194. package/dist/index44.cjs.map +0 -1
  195. package/dist/index45.cjs +0 -125
  196. package/dist/index45.cjs.map +0 -1
  197. package/dist/index46.cjs +0 -134
  198. package/dist/index46.cjs.map +0 -1
  199. package/dist/index47.cjs +0 -124
  200. package/dist/index47.cjs.map +0 -1
  201. package/dist/index48.cjs +0 -21
  202. package/dist/index48.cjs.map +0 -1
  203. package/dist/index49.cjs +0 -102
  204. package/dist/index49.cjs.map +0 -1
  205. package/dist/index5.cjs +0 -0
  206. package/dist/index50.cjs +0 -149
  207. package/dist/index50.cjs.map +0 -1
  208. package/dist/index51.cjs +0 -121
  209. package/dist/index51.cjs.map +0 -1
  210. package/dist/index52.cjs +0 -151
  211. package/dist/index52.cjs.map +0 -1
  212. package/dist/index53.cjs +0 -120
  213. package/dist/index53.cjs.map +0 -1
  214. package/dist/index54.cjs +0 -24
  215. package/dist/index54.cjs.map +0 -1
  216. package/dist/index55.cjs +0 -119
  217. package/dist/index55.cjs.map +0 -1
  218. package/dist/index56.cjs +0 -54
  219. package/dist/index56.cjs.map +0 -1
  220. package/dist/index57.cjs +0 -21
  221. package/dist/index57.cjs.map +0 -1
  222. package/dist/index58.cjs +0 -35
  223. package/dist/index58.cjs.map +0 -1
  224. package/dist/index58.cts.map +0 -1
  225. package/dist/index59.cjs +0 -29
  226. package/dist/index59.cjs.map +0 -1
  227. package/dist/index59.cts.map +0 -1
  228. package/dist/index6.cjs +0 -25
  229. package/dist/index6.cjs.map +0 -1
  230. package/dist/index60.cjs +0 -16
  231. package/dist/index60.cjs.map +0 -1
  232. package/dist/index60.cts.map +0 -1
  233. package/dist/index61.cjs +0 -15
  234. package/dist/index61.cjs.map +0 -1
  235. package/dist/index61.cts.map +0 -1
  236. package/dist/index62.cjs +0 -24
  237. package/dist/index62.cjs.map +0 -1
  238. package/dist/index62.cts.map +0 -1
  239. package/dist/index63.cjs +0 -419
  240. package/dist/index63.cjs.map +0 -1
  241. package/dist/index63.cts.map +0 -1
  242. package/dist/index64.cjs +0 -15
  243. package/dist/index64.cjs.map +0 -1
  244. package/dist/index64.cts.map +0 -1
  245. package/dist/index65.cjs +0 -16
  246. package/dist/index65.cjs.map +0 -1
  247. package/dist/index65.cts.map +0 -1
  248. package/dist/index66.cjs +0 -3
  249. package/dist/index66.cts.map +0 -1
  250. package/dist/index7.cjs +0 -0
  251. package/dist/index8.cjs +0 -0
  252. package/dist/index9.cjs +0 -25
  253. package/dist/index9.cjs.map +0 -1
  254. package/dist/msic-codes-C8PJVOaA.d.ts +0 -25
  255. package/dist/msic-codes-CIKdPqag.d.cts +0 -26
  256. package/dist/payment-modes-BOTSRC_X.d.ts +0 -43
  257. package/dist/payment-modes-ghFEXnUl.d.cts +0 -44
  258. package/dist/platformLogin-PGzMhw1X.cjs +0 -37
  259. package/dist/platformLogin-PGzMhw1X.cjs.map +0 -1
  260. package/dist/platformLogin-f0bNAoZI.js +0 -30
  261. package/dist/signatures-W-_brwdb.d.ts +0 -172
  262. package/dist/signatures-hFbt_std.d.cts +0 -173
  263. package/dist/state-codes-BlILGZ9d.d.cts +0 -62
  264. package/dist/state-codes-oeFKlwXZ.d.ts +0 -61
  265. package/dist/tax-types-B5sQ8UyN.d.cts +0 -42
  266. package/dist/tax-types-CsQ76JMf.d.ts +0 -41
  267. package/dist/types/classification-codes.d.ts +0 -2
  268. package/dist/types/country-code.d.ts +0 -2
  269. package/dist/types/currencies.d.ts +0 -2
  270. package/dist/types/documents.d.ts +0 -18
  271. package/dist/types/e-invoice.d.ts +0 -2
  272. package/dist/types/index.d.ts +0 -58
  273. package/dist/types/msic/0X.d.ts +0 -2
  274. package/dist/types/msic/1X.d.ts +0 -2
  275. package/dist/types/msic/2X.d.ts +0 -2
  276. package/dist/types/msic/3X.d.ts +0 -2
  277. package/dist/types/msic/4X.d.ts +0 -2
  278. package/dist/types/msic/5X.d.ts +0 -2
  279. package/dist/types/msic/6X.d.ts +0 -2
  280. package/dist/types/msic/7X.d.ts +0 -2
  281. package/dist/types/msic/8X.d.ts +0 -2
  282. package/dist/types/msic/9X.d.ts +0 -2
  283. package/dist/types/msic-codes.d.ts +0 -12
  284. package/dist/types/payment-modes.d.ts +0 -2
  285. package/dist/types/signatures.d.ts +0 -2
  286. package/dist/types/state-codes.d.ts +0 -2
  287. package/dist/types/tax-types.d.ts +0 -2
  288. package/dist/types/unit/1X.d.ts +0 -2
  289. package/dist/types/unit/2X.d.ts +0 -2
  290. package/dist/types/unit/3X.d.ts +0 -2
  291. package/dist/types/unit/4X.d.ts +0 -2
  292. package/dist/types/unit/5X.d.ts +0 -2
  293. package/dist/types/unit/6X.d.ts +0 -2
  294. package/dist/types/unit/7X.d.ts +0 -2
  295. package/dist/types/unit/8X.d.ts +0 -2
  296. package/dist/types/unit/9X.d.ts +0 -2
  297. package/dist/types/unit/AX.d.ts +0 -2
  298. package/dist/types/unit/BX.d.ts +0 -2
  299. package/dist/types/unit/CX.d.ts +0 -2
  300. package/dist/types/unit/DX.d.ts +0 -2
  301. package/dist/types/unit/EX.d.ts +0 -2
  302. package/dist/types/unit/FX.d.ts +0 -2
  303. package/dist/types/unit/GX.d.ts +0 -2
  304. package/dist/types/unit/HX.d.ts +0 -2
  305. package/dist/types/unit/IX.d.ts +0 -2
  306. package/dist/types/unit/JX.d.ts +0 -2
  307. package/dist/types/unit/KX.d.ts +0 -2
  308. package/dist/types/unit/LX.d.ts +0 -2
  309. package/dist/types/unit/MX.d.ts +0 -2
  310. package/dist/types/unit/NX.d.ts +0 -2
  311. package/dist/types/unit/OX.d.ts +0 -2
  312. package/dist/types/unit/PX.d.ts +0 -2
  313. package/dist/types/unit/QX.d.ts +0 -2
  314. package/dist/types/unit/RX.d.ts +0 -2
  315. package/dist/types/unit/SX.d.ts +0 -2
  316. package/dist/types/unit/TX.d.ts +0 -2
  317. package/dist/types/unit/UX.d.ts +0 -2
  318. package/dist/types/unit/VX.d.ts +0 -2
  319. package/dist/types/unit/WX.d.ts +0 -2
  320. package/dist/types/unit/XX.d.ts +0 -2
  321. package/dist/types/unit/YX.d.ts +0 -2
  322. package/dist/types/unit/ZX.d.ts +0 -2
  323. package/dist/types/unit-types.d.ts +0 -37
  324. package/dist/unit-types-B41YFOLT.d.ts +0 -55
  325. package/dist/unit-types-CjWNk2wS.d.cts +0 -56
  326. package/dist/utils/base64.d.ts +0 -5
  327. package/dist/utils/base64.js +0 -10
  328. package/dist/utils/certificate.d.ts +0 -22
  329. package/dist/utils/certificate.js +0 -3
  330. package/dist/utils/document.d.ts +0 -135
  331. package/dist/utils/document.js +0 -3
  332. package/dist/utils/getBaseUrl.d.ts +0 -4
  333. package/dist/utils/getBaseUrl.js +0 -3
  334. package/dist/utils/helpers.d.ts +0 -271
  335. package/dist/utils/helpers.js +0 -330
  336. package/dist/utils/signature-diagnostics.d.ts +0 -93
  337. package/dist/utils/signature-diagnostics.js +0 -326
  338. package/dist/utils/validation.d.ts +0 -46
  339. package/dist/utils/validation.js +0 -134
package/dist/index18.cjs DELETED
@@ -1,340 +0,0 @@
1
-
2
- //#region src/utils/helpers.ts
3
- /**
4
- * MyInvois Invoice Helper Functions
5
- *
6
- * Provides convenient utilities for common invoice scenarios and business patterns.
7
- * These helpers simplify the creation of compliant MyInvois documents.
8
- */
9
- /**
10
- * Payment Method Helpers
11
- */
12
- const PaymentHelpers = {
13
- cash() {
14
- return {
15
- paymentMeansCode: "01",
16
- paymentTerms: "Cash payment"
17
- };
18
- },
19
- cheque(accountId) {
20
- return {
21
- paymentMeansCode: "02",
22
- payeeFinancialAccountID: accountId,
23
- paymentTerms: "Cheque payment"
24
- };
25
- },
26
- bankTransfer(accountId, dueDate) {
27
- return {
28
- paymentMeansCode: "03",
29
- payeeFinancialAccountID: accountId,
30
- paymentDueDate: dueDate,
31
- paymentTerms: "Bank transfer"
32
- };
33
- },
34
- creditCard() {
35
- return {
36
- paymentMeansCode: "04",
37
- paymentTerms: "Credit card payment"
38
- };
39
- },
40
- eWallet(accountId) {
41
- return {
42
- paymentMeansCode: "05",
43
- payeeFinancialAccountID: accountId,
44
- paymentTerms: "E-wallet payment"
45
- };
46
- },
47
- net(days, accountId) {
48
- const dueDate = /* @__PURE__ */ new Date();
49
- dueDate.setDate(dueDate.getDate() + days);
50
- return {
51
- paymentMeansCode: "03",
52
- payeeFinancialAccountID: accountId,
53
- paymentDueDate: dueDate.toISOString().split("T")[0],
54
- paymentTerms: `Net ${days} days`
55
- };
56
- }
57
- };
58
- /**
59
- * Currency and Exchange Rate Helpers
60
- */
61
- const CurrencyHelpers = {
62
- domestic() {
63
- return {
64
- sourceCurrencyCode: "MYR",
65
- targetCurrencyCode: "MYR",
66
- calculationRate: 1
67
- };
68
- },
69
- international(fromCurrency, toCurrency = "MYR", exchangeRate, rateDate) {
70
- return {
71
- sourceCurrencyCode: fromCurrency,
72
- targetCurrencyCode: toCurrency,
73
- calculationRate: exchangeRate,
74
- exchangeRateDate: rateDate || (/* @__PURE__ */ new Date()).toISOString().split("T")[0]
75
- };
76
- },
77
- commonRates: {
78
- USD_MYR: 4.75,
79
- SGD_MYR: 3.45,
80
- EUR_MYR: 5.1,
81
- GBP_MYR: 5.85,
82
- JPY_MYR: .032,
83
- AUD_MYR: 3.12
84
- }
85
- };
86
- /**
87
- * Tax Calculation Helpers
88
- */
89
- const TaxHelpers = {
90
- calculateSST(amount, rate = 6) {
91
- const taxAmount = amount * rate / 100;
92
- return {
93
- taxAmount: Math.round(taxAmount * 100) / 100,
94
- totalWithTax: Math.round((amount + taxAmount) * 100) / 100
95
- };
96
- },
97
- calculateServiceTax(amount, rate = 6) {
98
- return TaxHelpers.calculateSST(amount, rate);
99
- },
100
- zeroRated(amount) {
101
- return {
102
- taxAmount: 0,
103
- totalWithTax: amount
104
- };
105
- },
106
- exempt(amount) {
107
- return {
108
- taxAmount: 0,
109
- totalWithTax: amount
110
- };
111
- }
112
- };
113
- /**
114
- * Allowance and Charge Helpers
115
- */
116
- const AllowanceChargeHelpers = {
117
- discount(reason, amount, percentage) {
118
- return {
119
- chargeIndicator: false,
120
- reason,
121
- amount,
122
- multiplierFactorNumeric: percentage ? percentage / 100 : void 0
123
- };
124
- },
125
- shipping(amount, description = "Shipping and handling") {
126
- return {
127
- chargeIndicator: true,
128
- reason: description,
129
- amount
130
- };
131
- },
132
- earlyPaymentDiscount(percentage, baseAmount) {
133
- const discountAmount = baseAmount * percentage / 100;
134
- return {
135
- chargeIndicator: false,
136
- reason: `Early payment discount ${percentage}%`,
137
- amount: Math.round(discountAmount * 100) / 100,
138
- multiplierFactorNumeric: percentage / 100,
139
- baseAmount
140
- };
141
- },
142
- handlingFee(amount) {
143
- return {
144
- chargeIndicator: true,
145
- reason: "Handling fee",
146
- amount
147
- };
148
- }
149
- };
150
- /**
151
- * Delivery Helpers
152
- */
153
- const DeliveryHelpers = {
154
- standard(deliveryDate, address) {
155
- return {
156
- actualDeliveryDate: deliveryDate,
157
- deliveryLocation: {
158
- ...address,
159
- country: address.country || "MYS"
160
- }
161
- };
162
- },
163
- pickup(pickupDate) {
164
- return {
165
- actualDeliveryDate: pickupDate,
166
- deliveryLocation: {
167
- addressLine0: "Customer pickup",
168
- cityName: "N/A",
169
- state: "N/A",
170
- country: "MYS"
171
- }
172
- };
173
- },
174
- withFreight(deliveryDate, address, freightAmount, freightDescription = "Freight charges") {
175
- return {
176
- actualDeliveryDate: deliveryDate,
177
- deliveryLocation: address,
178
- shipment: {
179
- id: `SHIP-${Date.now()}`,
180
- freightAllowanceCharge: {
181
- chargeIndicator: true,
182
- reason: freightDescription,
183
- amount: freightAmount
184
- }
185
- }
186
- };
187
- }
188
- };
189
- /**
190
- * Document Reference Helpers
191
- */
192
- const DocumentReferenceHelpers = {
193
- purchaseOrder(poNumber) {
194
- return { purchaseOrderReference: poNumber };
195
- },
196
- contract(contractNumber) {
197
- return { contractReference: contractNumber };
198
- },
199
- project(projectNumber) {
200
- return { projectReference: projectNumber };
201
- },
202
- billing(billingNumber) {
203
- return { billingReference: billingNumber };
204
- },
205
- customs(customsFormNumber) {
206
- return {
207
- id: customsFormNumber,
208
- documentType: "CustomsImportForm",
209
- documentDescription: "Customs import declaration"
210
- };
211
- },
212
- freeTradeAgreement(ftaNumber, country) {
213
- return {
214
- id: ftaNumber,
215
- documentType: "FreeTradeAgreement",
216
- documentDescription: `Free trade agreement with ${country}`
217
- };
218
- }
219
- };
220
- /**
221
- * Industry Classification Helpers
222
- */
223
- const IndustryHelpers = {
224
- trading: {
225
- industryClassificationCode: "47900",
226
- industryClassificationDescription: "Retail sale via mail order houses or via Internet"
227
- },
228
- manufacturing: {
229
- industryClassificationCode: "10131",
230
- industryClassificationDescription: "Processing and preserving of meat"
231
- },
232
- software: {
233
- industryClassificationCode: "62012",
234
- industryClassificationDescription: "Business and domestic software development"
235
- },
236
- consulting: {
237
- industryClassificationCode: "70200",
238
- industryClassificationDescription: "Management consultancy activities"
239
- },
240
- restaurant: {
241
- industryClassificationCode: "56101",
242
- industryClassificationDescription: "Restaurants"
243
- },
244
- construction: {
245
- industryClassificationCode: "41000",
246
- industryClassificationDescription: "Development of building projects"
247
- },
248
- logistics: {
249
- industryClassificationCode: "49301",
250
- industryClassificationDescription: "Land freight transport"
251
- },
252
- custom(code, description) {
253
- return {
254
- industryClassificationCode: code,
255
- industryClassificationDescription: description
256
- };
257
- }
258
- };
259
- /**
260
- * Date and Time Helpers
261
- */
262
- const DateTimeHelpers = {
263
- currentDate() {
264
- return (/* @__PURE__ */ new Date()).toISOString().split("T")[0] || "";
265
- },
266
- currentTime() {
267
- return (/* @__PURE__ */ new Date()).toISOString().split("T")[1]?.split(".")[0] + "Z" || "";
268
- },
269
- formatDate(date) {
270
- return date.toISOString().split("T")[0] || "";
271
- },
272
- formatTime(date) {
273
- return date.toISOString().split("T")[1]?.split(".")[0] + "Z" || "";
274
- },
275
- addDays(date, days) {
276
- const result = new Date(date);
277
- result.setDate(result.getDate() + days);
278
- return result;
279
- },
280
- monthlyPeriod(year, month) {
281
- const start = new Date(Date.UTC(year, month - 1, 1));
282
- const end = new Date(Date.UTC(year, month, 0));
283
- return {
284
- start: DateTimeHelpers.formatDate(start),
285
- end: DateTimeHelpers.formatDate(end)
286
- };
287
- }
288
- };
289
- /**
290
- * Complete Invoice Builder Helper
291
- */
292
- const InvoiceBuilder = {
293
- basicCash(invoiceNumber) {
294
- return {
295
- eInvoiceCodeOrNumber: invoiceNumber,
296
- eInvoiceDate: DateTimeHelpers.currentDate(),
297
- eInvoiceTime: DateTimeHelpers.currentTime(),
298
- eInvoiceTypeCode: "01",
299
- eInvoiceVersion: "1.1",
300
- invoiceCurrencyCode: "MYR",
301
- paymentMeans: [PaymentHelpers.cash()]
302
- };
303
- },
304
- businessInvoice(invoiceNumber, accountId, netDays = 30) {
305
- return {
306
- eInvoiceCodeOrNumber: invoiceNumber,
307
- eInvoiceDate: DateTimeHelpers.currentDate(),
308
- eInvoiceTime: DateTimeHelpers.currentTime(),
309
- eInvoiceTypeCode: "01",
310
- eInvoiceVersion: "1.1",
311
- invoiceCurrencyCode: "MYR",
312
- paymentMeans: [PaymentHelpers.net(netDays, accountId)]
313
- };
314
- },
315
- international(invoiceNumber, currency, exchangeRate) {
316
- return {
317
- eInvoiceCodeOrNumber: invoiceNumber,
318
- eInvoiceDate: DateTimeHelpers.currentDate(),
319
- eInvoiceTime: DateTimeHelpers.currentTime(),
320
- eInvoiceTypeCode: "01",
321
- eInvoiceVersion: "1.1",
322
- invoiceCurrencyCode: currency,
323
- currencyExchangeRate: exchangeRate,
324
- taxExchangeRate: CurrencyHelpers.international(currency, "MYR", exchangeRate),
325
- paymentMeans: [PaymentHelpers.bankTransfer("")]
326
- };
327
- }
328
- };
329
-
330
- //#endregion
331
- exports.AllowanceChargeHelpers = AllowanceChargeHelpers;
332
- exports.CurrencyHelpers = CurrencyHelpers;
333
- exports.DateTimeHelpers = DateTimeHelpers;
334
- exports.DeliveryHelpers = DeliveryHelpers;
335
- exports.DocumentReferenceHelpers = DocumentReferenceHelpers;
336
- exports.IndustryHelpers = IndustryHelpers;
337
- exports.InvoiceBuilder = InvoiceBuilder;
338
- exports.PaymentHelpers = PaymentHelpers;
339
- exports.TaxHelpers = TaxHelpers;
340
- //# sourceMappingURL=index18.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index18.cjs","names":["accountId?: string","accountId: string","dueDate?: string","days: number","fromCurrency: string","toCurrency: string","exchangeRate: number","rateDate?: string","amount: number","rate: number","reason: string","percentage?: number","description: string","percentage: number","baseAmount: number","deliveryDate: string","address: {\n addressLine0: string\n cityName: string\n postalZone?: string\n state: string\n country?: string\n }","pickupDate: string","address: any","freightAmount: number","freightDescription: string","poNumber: string","contractNumber: string","projectNumber: string","billingNumber: string","customsFormNumber: string","ftaNumber: string","country: string","code: string","date: Date","year: number","month: number","invoiceNumber: string","netDays: number","currency: string"],"sources":["../src/utils/helpers.ts"],"sourcesContent":["import type {\n InvoiceV1_1,\n PaymentMeans,\n AllowanceCharge,\n CurrencyExchangeRate,\n Delivery,\n AdditionalDocumentReference,\n} from '../types/documents/index.js'\n\n/**\n * MyInvois Invoice Helper Functions\n *\n * Provides convenient utilities for common invoice scenarios and business patterns.\n * These helpers simplify the creation of compliant MyInvois documents.\n */\n\n/**\n * Payment Method Helpers\n */\nexport const PaymentHelpers = {\n /**\n * Creates cash payment means\n */\n cash(): PaymentMeans {\n return {\n paymentMeansCode: '01',\n paymentTerms: 'Cash payment',\n }\n },\n\n /**\n * Creates cheque payment means\n */\n cheque(accountId?: string): PaymentMeans {\n return {\n paymentMeansCode: '02',\n payeeFinancialAccountID: accountId,\n paymentTerms: 'Cheque payment',\n }\n },\n\n /**\n * Creates bank transfer payment means\n */\n bankTransfer(accountId: string, dueDate?: string): PaymentMeans {\n return {\n paymentMeansCode: '03',\n payeeFinancialAccountID: accountId,\n paymentDueDate: dueDate,\n paymentTerms: 'Bank transfer',\n }\n },\n\n /**\n * Creates credit card payment means\n */\n creditCard(): PaymentMeans {\n return {\n paymentMeansCode: '04',\n paymentTerms: 'Credit card payment',\n }\n },\n\n /**\n * Creates e-wallet payment means\n */\n eWallet(accountId?: string): PaymentMeans {\n return {\n paymentMeansCode: '05',\n payeeFinancialAccountID: accountId,\n paymentTerms: 'E-wallet payment',\n }\n },\n\n /**\n * Creates custom payment terms with specific due date\n */\n net(days: number, accountId?: string): PaymentMeans {\n const dueDate = new Date()\n dueDate.setDate(dueDate.getDate() + days)\n\n return {\n paymentMeansCode: '03', // Bank transfer is most common for net terms\n payeeFinancialAccountID: accountId,\n paymentDueDate: dueDate.toISOString().split('T')[0],\n paymentTerms: `Net ${days} days`,\n }\n },\n}\n\n/**\n * Currency and Exchange Rate Helpers\n */\nexport const CurrencyHelpers = {\n /**\n * Creates domestic MYR transaction (no exchange rate needed)\n */\n domestic(): CurrencyExchangeRate {\n return {\n sourceCurrencyCode: 'MYR',\n targetCurrencyCode: 'MYR',\n calculationRate: 1.0,\n }\n },\n\n /**\n * Creates international transaction with exchange rate\n */\n international(\n fromCurrency: string,\n toCurrency: string = 'MYR',\n exchangeRate: number,\n rateDate?: string,\n ): CurrencyExchangeRate {\n return {\n sourceCurrencyCode: fromCurrency as any,\n targetCurrencyCode: toCurrency as any,\n calculationRate: exchangeRate,\n exchangeRateDate: rateDate || new Date().toISOString().split('T')[0],\n }\n },\n\n /**\n * Common exchange rates (these should be updated with real-time rates)\n */\n commonRates: {\n USD_MYR: 4.75,\n SGD_MYR: 3.45,\n EUR_MYR: 5.1,\n GBP_MYR: 5.85,\n JPY_MYR: 0.032,\n AUD_MYR: 3.12,\n },\n}\n\n/**\n * Tax Calculation Helpers\n */\nexport const TaxHelpers = {\n /**\n * Calculates SST (6%) for goods\n */\n calculateSST(\n amount: number,\n rate: number = 6.0,\n ): { taxAmount: number; totalWithTax: number } {\n const taxAmount = (amount * rate) / 100\n return {\n taxAmount: Math.round(taxAmount * 100) / 100,\n totalWithTax: Math.round((amount + taxAmount) * 100) / 100,\n }\n },\n\n /**\n * Calculates Service Tax for services\n */\n calculateServiceTax(\n amount: number,\n rate: number = 6.0,\n ): { taxAmount: number; totalWithTax: number } {\n return TaxHelpers.calculateSST(amount, rate)\n },\n\n /**\n * Zero-rated calculation (0% tax)\n */\n zeroRated(amount: number): { taxAmount: number; totalWithTax: number } {\n return {\n taxAmount: 0,\n totalWithTax: amount,\n }\n },\n\n /**\n * Exempt calculation (no tax)\n */\n exempt(amount: number): { taxAmount: number; totalWithTax: number } {\n return {\n taxAmount: 0,\n totalWithTax: amount,\n }\n },\n}\n\n/**\n * Allowance and Charge Helpers\n */\nexport const AllowanceChargeHelpers = {\n /**\n * Creates a discount allowance\n */\n discount(\n reason: string,\n amount: number,\n percentage?: number,\n ): AllowanceCharge {\n return {\n chargeIndicator: false,\n reason,\n amount,\n multiplierFactorNumeric: percentage ? percentage / 100 : undefined,\n }\n },\n\n /**\n * Creates a shipping charge\n */\n shipping(\n amount: number,\n description: string = 'Shipping and handling',\n ): AllowanceCharge {\n return {\n chargeIndicator: true,\n reason: description,\n amount,\n }\n },\n\n /**\n * Creates an early payment discount\n */\n earlyPaymentDiscount(\n percentage: number,\n baseAmount: number,\n ): AllowanceCharge {\n const discountAmount = (baseAmount * percentage) / 100\n return {\n chargeIndicator: false,\n reason: `Early payment discount ${percentage}%`,\n amount: Math.round(discountAmount * 100) / 100,\n multiplierFactorNumeric: percentage / 100,\n baseAmount,\n }\n },\n\n /**\n * Creates a handling fee charge\n */\n handlingFee(amount: number): AllowanceCharge {\n return {\n chargeIndicator: true,\n reason: 'Handling fee',\n amount,\n }\n },\n}\n\n/**\n * Delivery Helpers\n */\nexport const DeliveryHelpers = {\n /**\n * Creates standard delivery information\n */\n standard(\n deliveryDate: string,\n address: {\n addressLine0: string\n cityName: string\n postalZone?: string\n state: string\n country?: string\n },\n ): Delivery {\n return {\n actualDeliveryDate: deliveryDate,\n deliveryLocation: {\n ...address,\n country: address.country || 'MYS',\n },\n }\n },\n\n /**\n * Creates pickup delivery (customer pickup)\n */\n pickup(pickupDate: string): Delivery {\n return {\n actualDeliveryDate: pickupDate,\n deliveryLocation: {\n addressLine0: 'Customer pickup',\n cityName: 'N/A',\n state: 'N/A',\n country: 'MYS',\n },\n }\n },\n\n /**\n * Creates delivery with freight charges\n */\n withFreight(\n deliveryDate: string,\n address: any,\n freightAmount: number,\n freightDescription: string = 'Freight charges',\n ): Delivery {\n return {\n actualDeliveryDate: deliveryDate,\n deliveryLocation: address,\n shipment: {\n id: `SHIP-${Date.now()}`,\n freightAllowanceCharge: {\n chargeIndicator: true,\n reason: freightDescription,\n amount: freightAmount,\n },\n },\n }\n },\n}\n\n/**\n * Document Reference Helpers\n */\nexport const DocumentReferenceHelpers = {\n /**\n * Creates purchase order reference\n */\n purchaseOrder(poNumber: string): { purchaseOrderReference: string } {\n return { purchaseOrderReference: poNumber }\n },\n\n /**\n * Creates contract reference\n */\n contract(contractNumber: string): { contractReference: string } {\n return { contractReference: contractNumber }\n },\n\n /**\n * Creates project reference\n */\n project(projectNumber: string): { projectReference: string } {\n return { projectReference: projectNumber }\n },\n\n /**\n * Creates billing reference\n */\n billing(billingNumber: string): { billingReference: string } {\n return { billingReference: billingNumber }\n },\n\n /**\n * Creates customs reference\n */\n customs(customsFormNumber: string): AdditionalDocumentReference {\n return {\n id: customsFormNumber,\n documentType: 'CustomsImportForm',\n documentDescription: 'Customs import declaration',\n }\n },\n\n /**\n * Creates free trade agreement reference\n */\n freeTradeAgreement(\n ftaNumber: string,\n country: string,\n ): AdditionalDocumentReference {\n return {\n id: ftaNumber,\n documentType: 'FreeTradeAgreement',\n documentDescription: `Free trade agreement with ${country}`,\n }\n },\n}\n\n/**\n * Industry Classification Helpers\n */\nexport const IndustryHelpers = {\n /**\n * Common industry classifications with proper codes and descriptions\n */\n trading: {\n industryClassificationCode: '47900',\n industryClassificationDescription:\n 'Retail sale via mail order houses or via Internet',\n },\n\n manufacturing: {\n industryClassificationCode: '10131',\n industryClassificationDescription: 'Processing and preserving of meat',\n },\n\n software: {\n industryClassificationCode: '62012',\n industryClassificationDescription:\n 'Business and domestic software development',\n },\n\n consulting: {\n industryClassificationCode: '70200',\n industryClassificationDescription: 'Management consultancy activities',\n },\n\n restaurant: {\n industryClassificationCode: '56101',\n industryClassificationDescription: 'Restaurants',\n },\n\n construction: {\n industryClassificationCode: '41000',\n industryClassificationDescription: 'Development of building projects',\n },\n\n logistics: {\n industryClassificationCode: '49301',\n industryClassificationDescription: 'Land freight transport',\n },\n\n /**\n * Creates custom industry classification\n */\n custom(\n code: string,\n description: string,\n ): {\n industryClassificationCode: string\n industryClassificationDescription: string\n } {\n return {\n industryClassificationCode: code,\n industryClassificationDescription: description,\n }\n },\n}\n\n/**\n * Date and Time Helpers\n */\nexport const DateTimeHelpers = {\n /**\n * Gets current date in MyInvois format (YYYY-MM-DD)\n */\n currentDate(): string {\n return new Date().toISOString().split('T')[0] || ''\n },\n\n /**\n * Gets current time in MyInvois format (HH:mm:ssZ)\n */\n currentTime(): string {\n return new Date().toISOString().split('T')[1]?.split('.')[0] + 'Z' || ''\n },\n\n /**\n * Formats date to MyInvois format\n */\n formatDate(date: Date): string {\n return date.toISOString().split('T')[0] || ''\n },\n\n /**\n * Formats time to MyInvois format\n */\n formatTime(date: Date): string {\n return date.toISOString().split('T')[1]?.split('.')[0] + 'Z' || ''\n },\n\n /**\n * Adds days to a date\n */\n addDays(date: Date, days: number): Date {\n const result = new Date(date)\n result.setDate(result.getDate() + days)\n return result\n },\n\n /**\n * Gets billing period for monthly billing\n */\n monthlyPeriod(year: number, month: number): { start: string; end: string } {\n // Use UTC to avoid timezone issues\n // JavaScript Date uses 0-based months, so subtract 1 for the month\n const start = new Date(Date.UTC(year, month - 1, 1))\n // To get last day of the month, use day 0 of the NEXT month\n const end = new Date(Date.UTC(year, month, 0))\n\n return {\n start: DateTimeHelpers.formatDate(start),\n end: DateTimeHelpers.formatDate(end),\n }\n },\n}\n\n/**\n * Complete Invoice Builder Helper\n */\nexport const InvoiceBuilder = {\n /**\n * Creates a basic cash invoice template\n */\n basicCash(invoiceNumber: string): Partial<InvoiceV1_1> {\n return {\n eInvoiceCodeOrNumber: invoiceNumber,\n eInvoiceDate: DateTimeHelpers.currentDate(),\n eInvoiceTime: DateTimeHelpers.currentTime(),\n eInvoiceTypeCode: '01',\n eInvoiceVersion: '1.1',\n invoiceCurrencyCode: 'MYR',\n paymentMeans: [PaymentHelpers.cash()],\n }\n },\n\n /**\n * Creates a business invoice template with bank transfer\n */\n businessInvoice(\n invoiceNumber: string,\n accountId: string,\n netDays: number = 30,\n ): Partial<InvoiceV1_1> {\n return {\n eInvoiceCodeOrNumber: invoiceNumber,\n eInvoiceDate: DateTimeHelpers.currentDate(),\n eInvoiceTime: DateTimeHelpers.currentTime(),\n eInvoiceTypeCode: '01',\n eInvoiceVersion: '1.1',\n invoiceCurrencyCode: 'MYR',\n paymentMeans: [PaymentHelpers.net(netDays, accountId)],\n }\n },\n\n /**\n * Creates an international invoice template\n */\n international(\n invoiceNumber: string,\n currency: string,\n exchangeRate: number,\n ): Partial<InvoiceV1_1> {\n return {\n eInvoiceCodeOrNumber: invoiceNumber,\n eInvoiceDate: DateTimeHelpers.currentDate(),\n eInvoiceTime: DateTimeHelpers.currentTime(),\n eInvoiceTypeCode: '01',\n eInvoiceVersion: '1.1',\n invoiceCurrencyCode: currency as any,\n currencyExchangeRate: exchangeRate,\n taxExchangeRate: CurrencyHelpers.international(\n currency,\n 'MYR',\n exchangeRate,\n ),\n paymentMeans: [PaymentHelpers.bankTransfer('')],\n }\n },\n}\n"],"mappings":"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"}