@ripwords/myinvois-client 0.1.4 → 0.1.6

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