@ripwords/myinvois-client 0.1.0 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (577) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/README.md +128 -4
  3. package/bun.lock +59 -0
  4. package/dist/{0X-Yw7mZEro.d.cts → 0X-CTIq3y3a.d.ts} +1 -2
  5. package/dist/{0X-C4IRh_fJ.d.ts → 0X-Cr3M7hci.d.cts} +1 -1
  6. package/dist/{1X-D_aUVsuM.d.cts → 1X-Bu4oiv8D.d.ts} +1 -2
  7. package/dist/{1X-C-_KHV-Q.d.ts → 1X-BywXCqtn.d.ts} +1 -2
  8. package/dist/{1X-Brnls9Jh.d.ts → 1X-CWwmfCzo.d.cts} +1 -1
  9. package/dist/{1X-BwpSoT3o.d.cts → 1X-ClnJ79HH.d.cts} +1 -1
  10. package/dist/{2X-DkS1BoE5.d.ts → 2X-3fSEGIuE.d.ts} +1 -2
  11. package/dist/{2X-Bb6elyzV.d.cts → 2X-CV9eYhog.d.cts} +1 -1
  12. package/dist/{2X-UdQcQW24.d.ts → 2X-DNtkJ0tj.d.cts} +1 -1
  13. package/dist/{2X-hClUyw26.d.cts → 2X-DnG3FY1f.d.ts} +1 -2
  14. package/dist/{3X-C7VFD-n-.d.cts → 3X--VWVsC84.d.cts} +1 -1
  15. package/dist/{3X-CLMESDvz.d.cts → 3X-BOxfatu3.d.cts} +1 -1
  16. package/dist/{3X-DVDyspgb.d.ts → 3X-CLdmoel1.d.ts} +1 -2
  17. package/dist/{3X-DFI-4RQQ.d.ts → 3X-Ynjfgoll.d.ts} +1 -2
  18. package/dist/{4X-DIfvpU6V.d.cts → 4X-B5ePdMky.d.ts} +1 -2
  19. package/dist/{4X-CvScPJTf.d.cts → 4X-BTG6o1Gn.d.ts} +1 -2
  20. package/dist/{4X-CIJ2JJ2w.d.ts → 4X-By9PzHaY.d.cts} +1 -1
  21. package/dist/{4X-CUR8jlaZ.d.ts → 4X-C7fzDWJ_.d.cts} +1 -1
  22. package/dist/{5X-BOUxhadJ.d.cts → 5X-B5M0Cv_K.d.cts} +1 -1
  23. package/dist/{5X-C6db432h.d.ts → 5X-CNAFsDm2.d.cts} +1 -1
  24. package/dist/{5X-CkLu7Vyd.d.cts → 5X-CjSz1zxJ.d.ts} +1 -2
  25. package/dist/{5X-COsZHUaQ.d.ts → 5X-dhP6fyou.d.ts} +1 -2
  26. package/dist/{6X-Mf32k1d0.d.cts → 6X-B9KP_vEn.d.ts} +1 -2
  27. package/dist/{6X-DE7RJeV6.d.cts → 6X-BHaY0TCf.d.ts} +1 -2
  28. package/dist/{6X-ClZDKOTC.d.ts → 6X-C3elgd-n.d.cts} +1 -1
  29. package/dist/{6X-C_fFIcJC.d.ts → 6X-uObUP4VG.d.cts} +1 -1
  30. package/dist/{7X-DoCUcp-J.d.cts → 7X-BifJnY24.d.cts} +1 -1
  31. package/dist/{7X-Chtd6B66.d.cts → 7X-C4eX_tAk.d.ts} +1 -2
  32. package/dist/{7X-BZyesooz.d.ts → 7X-D3idQBl9.d.cts} +1 -1
  33. package/dist/{7X-kot_VccM.d.ts → 7X-DtkQutx2.d.ts} +1 -2
  34. package/dist/{8X-Dr9RunRw.d.cts → 8X-5n9seY3z.d.ts} +1 -2
  35. package/dist/{8X-DkuKAkHz.d.ts → 8X-C6UMFvQW.d.cts} +1 -1
  36. package/dist/{8X-DqZyMvyV.d.cts → 8X-D6HTLShY.d.ts} +1 -2
  37. package/dist/{8X-Df4DOBOe.d.ts → 8X-DioBXCJ0.d.cts} +1 -1
  38. package/dist/{9X-BaoZtjWF.d.cts → 9X-BjffnXuq.d.cts} +1 -1
  39. package/dist/{9X-BDgifncF.d.ts → 9X-CHZKsIdD.d.ts} +1 -2
  40. package/dist/{9X-BcAb6Uso.d.cts → 9X-CJjPJgIG.d.cts} +1 -1
  41. package/dist/{9X-BhBWlgxG.d.ts → 9X-Cpb6V4JC.d.ts} +1 -2
  42. package/dist/{AX-D6XHWdrY.d.ts → AX-C0w_r3PA.d.ts} +1 -2
  43. package/dist/{AX-BY72FohC.d.cts → AX-DrEd2Ov6.d.cts} +1 -1
  44. package/dist/{BX-D_0C8Qbd.d.ts → BX-C5jc6myN.d.cts} +1 -1
  45. package/dist/{BX-CA0OmrUZ.d.cts → BX-RadlZ-6m.d.ts} +1 -2
  46. package/dist/{CX-glpQSL8x.d.cts → CX-CT1Zzb9D.d.ts} +1 -2
  47. package/dist/{CX-HH4cSZRX.d.ts → CX-oSgvmn3h.d.cts} +1 -1
  48. package/dist/{DX-Dx22ax_I.d.ts → DX-CtUeTKMM.d.ts} +1 -2
  49. package/dist/{DX-DimL1MDM.d.cts → DX-ZIG0enmK.d.cts} +1 -1
  50. package/dist/{EX-BRWh1wFc.d.ts → EX-084Yu7Wt.d.ts} +1 -2
  51. package/dist/{EX-Cx87Ruxl.d.cts → EX-BpWZ5ADq.d.cts} +1 -1
  52. package/dist/{FX-RmjwAr40.d.ts → FX-BrbQM0CW.d.ts} +1 -2
  53. package/dist/{FX-D81UlxNN.d.cts → FX-CvYBEc51.d.cts} +1 -1
  54. package/dist/{GX-CJyo7oDp.d.ts → GX-CU8PZy0G.d.cts} +1 -1
  55. package/dist/{GX-9i7piP9G.d.cts → GX-gKj8iAAh.d.ts} +1 -2
  56. package/dist/{HX-XALBTdLA.d.ts → HX-9D-ZXTy5.d.ts} +1 -2
  57. package/dist/{HX-20GVJAvl.d.cts → HX-DoEErDeE.d.cts} +1 -1
  58. package/dist/{IX-D54NGPsc.d.cts → IX-DR4Fc92A.d.ts} +1 -2
  59. package/dist/{IX-6SZ55QKb.d.ts → IX-jLAUHe8i.d.cts} +1 -1
  60. package/dist/{JX-hQ1XRmLp.d.ts → JX-DIKa9ma-.d.ts} +1 -2
  61. package/dist/{JX-C1RYcwQX.d.cts → JX-DX8BjYQC.d.cts} +1 -1
  62. package/dist/{KX-BNwunEfn.d.ts → KX-DpsJ_unT.d.ts} +1 -2
  63. package/dist/{KX-gQHCIgtQ.d.cts → KX-fZb4_vhw.d.cts} +1 -1
  64. package/dist/{LX-CHYX3X3J.d.ts → LX-D_mI1bk-.d.cts} +1 -1
  65. package/dist/{LX-CPurJGIh.d.cts → LX-DeXPPWUX.d.ts} +1 -2
  66. package/dist/{MX-BnyW5eHf.d.cts → MX-CKMjg_zK.d.ts} +1 -2
  67. package/dist/{MX-BPGLWSUz.d.ts → MX-DlYZhpkT.d.cts} +1 -1
  68. package/dist/{NX-B11fQuco.d.cts → NX-DELEEbad.d.cts} +1 -1
  69. package/dist/{NX-RulN5Ml3.d.ts → NX-oYdb4NDo.d.ts} +1 -2
  70. package/dist/{OX-T-ydRXQS.d.cts → OX-Bid9es3D.d.ts} +1 -2
  71. package/dist/{OX-DgKVSp7I.d.ts → OX-CKPyrIFf.d.cts} +1 -1
  72. package/dist/{PX-DA4A2kEv.d.ts → PX-D7jy9CFk.d.ts} +1 -2
  73. package/dist/{PX-p0n1SzvU.d.cts → PX-SP6NxBtG.d.cts} +1 -1
  74. package/dist/{QX-DrFqsMEs.d.ts → QX-BFWOR4g3.d.ts} +1 -2
  75. package/dist/{QX-CI1NccIB.d.cts → QX-QZA7E2O-.d.cts} +1 -1
  76. package/dist/{RX-Cm7vFcFN.d.ts → RX-DBcgbdeE.d.cts} +1 -1
  77. package/dist/{RX-DnNKol22.d.cts → RX-XHgCyMV1.d.ts} +1 -2
  78. package/dist/{SX-CsPPTu-W.d.ts → SX-Cl8RN8oH.d.ts} +1 -2
  79. package/dist/{SX-BUjiWQYz.d.cts → SX-DmiJeCMN.d.cts} +1 -1
  80. package/dist/{TX-DCY25MdR.d.ts → TX-C1SoDobK.d.cts} +1 -1
  81. package/dist/{TX-DOEpsf05.d.cts → TX-ZymoIbtr.d.ts} +1 -2
  82. package/dist/{UX-DgUOnTFK.d.cts → UX-D-Ndd1ov.d.ts} +1 -2
  83. package/dist/{UX-DauyagHy.d.ts → UX-DFVynFhQ.d.cts} +1 -1
  84. package/dist/{VX-kUX6LM-3.d.cts → VX-B-1b34r7.d.ts} +1 -2
  85. package/dist/{VX-DD4scgCe.d.ts → VX-DsRum5k3.d.cts} +1 -1
  86. package/dist/{WX-DPfyPFFh.d.cts → WX-0GuMjPNZ.d.ts} +1 -2
  87. package/dist/{WX-CjkoppdY.d.ts → WX-VReU5R5M.d.cts} +1 -1
  88. package/dist/{XX-C4C1gQZH.d.cts → XX-CF2NANsy.d.ts} +1 -2
  89. package/dist/{XX-sbsIUOnA.d.ts → XX-ChAviUMj.d.cts} +1 -1
  90. package/dist/{YX-DUdO8mRC.d.ts → YX-B51BbNSg.d.ts} +1 -2
  91. package/dist/{YX-BeT-LsiA.d.cts → YX-QfzeMEKx.d.cts} +1 -1
  92. package/dist/{ZX-DwfcSA-D.d.ts → ZX-BMJS1iAv.d.ts} +1 -2
  93. package/dist/{ZX-BuVTTq-D.d.cts → ZX-Ca2E726a.d.cts} +1 -1
  94. package/dist/api/platform/platformLogin.d.ts +58 -60
  95. package/dist/api/platform/platformLogin.js +1 -1
  96. package/dist/certificate-DFK-788s.cjs +62 -0
  97. package/dist/certificate-DFK-788s.cjs.map +1 -0
  98. package/dist/certificate-aooIRf9A.js +49 -0
  99. package/dist/{classification-codes-C2X4xW5-.d.ts → classification-codes-BKxV-rO9.d.ts} +1 -2
  100. package/dist/{country-code-DsI8Mbzx.d.ts → country-code-CQuaiQm2.d.ts} +1 -2
  101. package/dist/{currencies-DKuDflOO.d.ts → currencies-BYJK-m6v.d.ts} +1 -2
  102. package/dist/document-CARHiGdp.cjs +472 -0
  103. package/dist/document-CARHiGdp.cjs.map +1 -0
  104. package/dist/document-D6VKMAtx.js +405 -0
  105. package/dist/documents-CJ8hqIGH.d.ts +858 -0
  106. package/dist/documents-MGs0EvXh.d.cts +859 -0
  107. package/dist/{e-invoice-C2TxhyrK.d.ts → e-invoice-CmbLQkHw.d.ts} +1 -2
  108. package/dist/{getBaseUrl-Dx6RDC8I.js → getBaseUrl-R3IdgCu3.js} +1 -2
  109. package/dist/{index-B1DSs-wd.d.cts → index-0-EvC6Nv.d.ts} +1 -2
  110. package/dist/{index-FTgB2nM6.d.ts → index-D2_HVwCz.d.cts} +1 -1
  111. package/dist/index.cjs +308 -12
  112. package/dist/index.cjs.map +1 -0
  113. package/dist/index.d.ts +233 -60
  114. package/dist/index.js +306 -11
  115. package/dist/index10.cjs +0 -34
  116. package/dist/index11.cjs +25 -15
  117. package/dist/index11.cjs.map +1 -1
  118. package/dist/index12.cjs +24 -0
  119. package/dist/index12.cjs.map +1 -0
  120. package/dist/index13.cjs +0 -13
  121. package/dist/index15.cjs +3 -2
  122. package/dist/index16.cjs +12 -16
  123. package/dist/index17.cjs +2 -2
  124. package/dist/index18.cjs +336 -204
  125. package/dist/index18.cjs.map +1 -1
  126. package/dist/index19.cjs +325 -105
  127. package/dist/index19.cjs.map +1 -1
  128. package/dist/index20.cjs +136 -133
  129. package/dist/index20.cjs.map +1 -1
  130. package/dist/index21.cjs +203 -59
  131. package/dist/index21.cjs.map +1 -1
  132. package/dist/index22.cjs +104 -262
  133. package/dist/index22.cjs.map +1 -1
  134. package/dist/index23.cjs +132 -74
  135. package/dist/index23.cjs.map +1 -1
  136. package/dist/index24.cjs +59 -102
  137. package/dist/index24.cjs.map +1 -1
  138. package/dist/index25.cjs +262 -68
  139. package/dist/index25.cjs.map +1 -1
  140. package/dist/index26.cjs +74 -107
  141. package/dist/index26.cjs.map +1 -1
  142. package/dist/index27.cjs +102 -95
  143. package/dist/index27.cjs.map +1 -1
  144. package/dist/index28.cjs +68 -13
  145. package/dist/index28.cjs.map +1 -1
  146. package/dist/index29.cjs +107 -33
  147. package/dist/index29.cjs.map +1 -1
  148. package/dist/index30.cjs +95 -14
  149. package/dist/index30.cjs.map +1 -1
  150. package/dist/index31.cjs +11 -22
  151. package/dist/index31.cjs.map +1 -1
  152. package/dist/index32.cjs +31 -13
  153. package/dist/index32.cjs.map +1 -1
  154. package/dist/index33.cjs +12 -7
  155. package/dist/index33.cjs.map +1 -1
  156. package/dist/index34.cjs +22 -7
  157. package/dist/index34.cjs.map +1 -1
  158. package/dist/index35.cjs +13 -10
  159. package/dist/index35.cjs.map +1 -1
  160. package/dist/index36.cjs +7 -6
  161. package/dist/index36.cjs.map +1 -1
  162. package/dist/index37.cjs +7 -101
  163. package/dist/index37.cjs.map +1 -1
  164. package/dist/index38.cjs +10 -106
  165. package/dist/index38.cjs.map +1 -1
  166. package/dist/index39.cjs +6 -119
  167. package/dist/index39.cjs.map +1 -1
  168. package/dist/index40.cjs +101 -106
  169. package/dist/index40.cjs.map +1 -1
  170. package/dist/index41.cjs +106 -98
  171. package/dist/index41.cjs.map +1 -1
  172. package/dist/index42.cjs +119 -118
  173. package/dist/index42.cjs.map +1 -1
  174. package/dist/index43.cjs +106 -127
  175. package/dist/index43.cjs.map +1 -1
  176. package/dist/index44.cjs +98 -117
  177. package/dist/index44.cjs.map +1 -1
  178. package/dist/index45.cjs +118 -14
  179. package/dist/index45.cjs.map +1 -1
  180. package/dist/index46.cjs +127 -95
  181. package/dist/index46.cjs.map +1 -1
  182. package/dist/index47.cjs +117 -142
  183. package/dist/index47.cjs.map +1 -1
  184. package/dist/index48.cjs +14 -114
  185. package/dist/index48.cjs.map +1 -1
  186. package/dist/index49.cjs +95 -144
  187. package/dist/index49.cjs.map +1 -1
  188. package/dist/index5.cjs +0 -25
  189. package/dist/index50.cjs +142 -113
  190. package/dist/index50.cjs.map +1 -1
  191. package/dist/index51.cjs +114 -17
  192. package/dist/index51.cjs.map +1 -1
  193. package/dist/index52.cjs +144 -112
  194. package/dist/index52.cjs.map +1 -1
  195. package/dist/index53.cjs +113 -47
  196. package/dist/index53.cjs.map +1 -1
  197. package/dist/index54.cjs +17 -14
  198. package/dist/index54.cjs.map +1 -1
  199. package/dist/index55.cjs +112 -28
  200. package/dist/index55.cjs.map +1 -1
  201. package/dist/index56.cjs +47 -22
  202. package/dist/index56.cjs.map +1 -1
  203. package/dist/index57.cjs +14 -9
  204. package/dist/index57.cjs.map +1 -1
  205. package/dist/index58.cjs +28 -8
  206. package/dist/index58.cjs.map +1 -1
  207. package/dist/index58.cts.map +1 -0
  208. package/dist/index59.cjs +22 -17
  209. package/dist/index59.cjs.map +1 -1
  210. package/dist/index59.cts.map +1 -1
  211. package/dist/index6.cjs +25 -0
  212. package/dist/{index5.cjs.map → index6.cjs.map} +1 -1
  213. package/dist/index60.cjs +9 -412
  214. package/dist/index60.cjs.map +1 -1
  215. package/dist/index60.cts.map +1 -0
  216. package/dist/index61.cjs +8 -8
  217. package/dist/index61.cjs.map +1 -1
  218. package/dist/index61.cts.map +1 -0
  219. package/dist/index62.cjs +17 -9
  220. package/dist/index62.cjs.map +1 -1
  221. package/dist/index62.cts.map +1 -1
  222. package/dist/index63.cjs +419 -0
  223. package/dist/index63.cjs.map +1 -0
  224. package/dist/index63.cts.map +1 -1
  225. package/dist/index64.cjs +15 -0
  226. package/dist/index64.cjs.map +1 -0
  227. package/dist/index64.cts.map +1 -1
  228. package/dist/index65.cjs +10 -116
  229. package/dist/index65.cjs.map +1 -1
  230. package/dist/index65.cts.map +1 -1
  231. package/dist/index66.cjs +2 -228
  232. package/dist/index66.cts.map +1 -1
  233. package/dist/index8.cjs +0 -25
  234. package/dist/index9.cjs +25 -0
  235. package/dist/{index8.cjs.map → index9.cjs.map} +1 -1
  236. package/dist/msic-codes-C8PJVOaA.d.ts +25 -0
  237. package/dist/{msic-codes-B_1W6lZF.d.cts → msic-codes-CIKdPqag.d.cts} +11 -11
  238. package/dist/{payment-modes-DHihrywe.d.cts → payment-modes-BOTSRC_X.d.ts} +1 -2
  239. package/dist/{payment-modes-B8dNy3SM.d.ts → payment-modes-ghFEXnUl.d.cts} +1 -1
  240. package/dist/platformLogin-PGzMhw1X.cjs.map +1 -1
  241. package/dist/{platformLogin-DsxWWUXr.js → platformLogin-f0bNAoZI.js} +1 -2
  242. package/dist/{signatures-C9QPZTQd.d.ts → signatures-W-_brwdb.d.ts} +1 -2
  243. package/dist/{signatures-BKi9DP2K.d.cts → signatures-hFbt_std.d.cts} +1 -1
  244. package/dist/{state-codes-DXSWtE6a.d.cts → state-codes-BlILGZ9d.d.cts} +1 -1
  245. package/dist/{state-codes-CxG1S9YY.d.ts → state-codes-oeFKlwXZ.d.ts} +1 -2
  246. package/dist/{tax-types-CgwxONDS.d.cts → tax-types-B5sQ8UyN.d.cts} +1 -1
  247. package/dist/{tax-types-CEpfSh5P.d.ts → tax-types-CsQ76JMf.d.ts} +1 -2
  248. package/dist/types/classification-codes.d.ts +1 -1
  249. package/dist/types/country-code.d.ts +1 -1
  250. package/dist/types/currencies.d.ts +1 -1
  251. package/dist/types/documents.d.ts +18 -0
  252. package/dist/types/e-invoice.d.ts +1 -1
  253. package/dist/types/index.d.ts +58 -59
  254. package/dist/types/msic/0X.d.ts +1 -1
  255. package/dist/types/msic/1X.d.ts +1 -1
  256. package/dist/types/msic/2X.d.ts +1 -1
  257. package/dist/types/msic/3X.d.ts +1 -1
  258. package/dist/types/msic/4X.d.ts +1 -1
  259. package/dist/types/msic/5X.d.ts +1 -1
  260. package/dist/types/msic/6X.d.ts +1 -1
  261. package/dist/types/msic/7X.d.ts +1 -1
  262. package/dist/types/msic/8X.d.ts +1 -1
  263. package/dist/types/msic/9X.d.ts +1 -1
  264. package/dist/types/msic-codes.d.ts +11 -11
  265. package/dist/types/payment-modes.d.ts +1 -1
  266. package/dist/types/signatures.d.ts +1 -1
  267. package/dist/types/state-codes.d.ts +1 -1
  268. package/dist/types/tax-types.d.ts +1 -1
  269. package/dist/types/unit/1X.d.ts +1 -1
  270. package/dist/types/unit/2X.d.ts +1 -1
  271. package/dist/types/unit/3X.d.ts +1 -1
  272. package/dist/types/unit/4X.d.ts +1 -1
  273. package/dist/types/unit/5X.d.ts +1 -1
  274. package/dist/types/unit/6X.d.ts +1 -1
  275. package/dist/types/unit/7X.d.ts +1 -1
  276. package/dist/types/unit/8X.d.ts +1 -1
  277. package/dist/types/unit/9X.d.ts +1 -1
  278. package/dist/types/unit/AX.d.ts +1 -1
  279. package/dist/types/unit/BX.d.ts +1 -1
  280. package/dist/types/unit/CX.d.ts +1 -1
  281. package/dist/types/unit/DX.d.ts +1 -1
  282. package/dist/types/unit/EX.d.ts +1 -1
  283. package/dist/types/unit/FX.d.ts +1 -1
  284. package/dist/types/unit/GX.d.ts +1 -1
  285. package/dist/types/unit/HX.d.ts +1 -1
  286. package/dist/types/unit/IX.d.ts +1 -1
  287. package/dist/types/unit/JX.d.ts +1 -1
  288. package/dist/types/unit/KX.d.ts +1 -1
  289. package/dist/types/unit/LX.d.ts +1 -1
  290. package/dist/types/unit/MX.d.ts +1 -1
  291. package/dist/types/unit/NX.d.ts +1 -1
  292. package/dist/types/unit/OX.d.ts +1 -1
  293. package/dist/types/unit/PX.d.ts +1 -1
  294. package/dist/types/unit/QX.d.ts +1 -1
  295. package/dist/types/unit/RX.d.ts +1 -1
  296. package/dist/types/unit/SX.d.ts +1 -1
  297. package/dist/types/unit/TX.d.ts +1 -1
  298. package/dist/types/unit/UX.d.ts +1 -1
  299. package/dist/types/unit/VX.d.ts +1 -1
  300. package/dist/types/unit/WX.d.ts +1 -1
  301. package/dist/types/unit/XX.d.ts +1 -1
  302. package/dist/types/unit/YX.d.ts +1 -1
  303. package/dist/types/unit/ZX.d.ts +1 -1
  304. package/dist/types/unit-types.d.ts +36 -36
  305. package/dist/unit-types-B41YFOLT.d.ts +55 -0
  306. package/dist/unit-types-CjWNk2wS.d.cts +56 -0
  307. package/dist/utils/base64.d.ts +1 -2
  308. package/dist/utils/base64.js +1 -2
  309. package/dist/utils/certificate.d.ts +22 -0
  310. package/dist/utils/certificate.js +3 -0
  311. package/dist/utils/document.d.ts +135 -0
  312. package/dist/utils/document.js +3 -0
  313. package/dist/utils/getBaseUrl.d.ts +1 -2
  314. package/dist/utils/getBaseUrl.js +1 -1
  315. package/dist/utils/helpers.d.ts +271 -0
  316. package/dist/utils/helpers.js +330 -0
  317. package/dist/utils/signature-diagnostics.d.ts +93 -0
  318. package/dist/utils/signature-diagnostics.js +326 -0
  319. package/dist/utils/validation.d.ts +46 -0
  320. package/dist/utils/validation.js +134 -0
  321. package/myinvois-cert.conf.template +23 -0
  322. package/package.json +9 -3
  323. package/scripts/gen-cert.sh +159 -0
  324. package/src/api/platform/platformLogin.ts +1 -1
  325. package/src/index.ts +528 -1
  326. package/src/types/documents.d.ts +870 -0
  327. package/src/types/index.d.ts +1 -1
  328. package/src/utils/certificate.ts +60 -0
  329. package/src/utils/document.ts +852 -0
  330. package/src/utils/helpers.ts +552 -0
  331. package/src/utils/signature-diagnostics.ts +583 -0
  332. package/src/utils/validation.ts +268 -0
  333. package/test/MyInvoiClientWithRealData.test.ts +9 -1
  334. package/test/MyInvoisClient.test.ts +7 -1
  335. package/test/dynamicInvoiceFeatures.test.ts +451 -0
  336. package/test/signAndSubmitInvoice.test.ts +271 -734
  337. package/test/signature-diagnostics.test.ts +130 -0
  338. package/tsconfig.json +0 -3
  339. package/dist/0X-C4IRh_fJ.d.ts.map +0 -1
  340. package/dist/0X-Yw7mZEro.d.cts.map +0 -1
  341. package/dist/1X-Brnls9Jh.d.ts.map +0 -1
  342. package/dist/1X-BwpSoT3o.d.cts.map +0 -1
  343. package/dist/1X-C-_KHV-Q.d.ts.map +0 -1
  344. package/dist/1X-D_aUVsuM.d.cts.map +0 -1
  345. package/dist/2X-Bb6elyzV.d.cts.map +0 -1
  346. package/dist/2X-DkS1BoE5.d.ts.map +0 -1
  347. package/dist/2X-UdQcQW24.d.ts.map +0 -1
  348. package/dist/2X-hClUyw26.d.cts.map +0 -1
  349. package/dist/3X-C7VFD-n-.d.cts.map +0 -1
  350. package/dist/3X-CLMESDvz.d.cts.map +0 -1
  351. package/dist/3X-DFI-4RQQ.d.ts.map +0 -1
  352. package/dist/3X-DVDyspgb.d.ts.map +0 -1
  353. package/dist/4X-CIJ2JJ2w.d.ts.map +0 -1
  354. package/dist/4X-CUR8jlaZ.d.ts.map +0 -1
  355. package/dist/4X-CvScPJTf.d.cts.map +0 -1
  356. package/dist/4X-DIfvpU6V.d.cts.map +0 -1
  357. package/dist/5X-BOUxhadJ.d.cts.map +0 -1
  358. package/dist/5X-C6db432h.d.ts.map +0 -1
  359. package/dist/5X-COsZHUaQ.d.ts.map +0 -1
  360. package/dist/5X-CkLu7Vyd.d.cts.map +0 -1
  361. package/dist/6X-C_fFIcJC.d.ts.map +0 -1
  362. package/dist/6X-ClZDKOTC.d.ts.map +0 -1
  363. package/dist/6X-DE7RJeV6.d.cts.map +0 -1
  364. package/dist/6X-Mf32k1d0.d.cts.map +0 -1
  365. package/dist/7X-BZyesooz.d.ts.map +0 -1
  366. package/dist/7X-Chtd6B66.d.cts.map +0 -1
  367. package/dist/7X-DoCUcp-J.d.cts.map +0 -1
  368. package/dist/7X-kot_VccM.d.ts.map +0 -1
  369. package/dist/8X-Df4DOBOe.d.ts.map +0 -1
  370. package/dist/8X-DkuKAkHz.d.ts.map +0 -1
  371. package/dist/8X-DqZyMvyV.d.cts.map +0 -1
  372. package/dist/8X-Dr9RunRw.d.cts.map +0 -1
  373. package/dist/9X-BDgifncF.d.ts.map +0 -1
  374. package/dist/9X-BaoZtjWF.d.cts.map +0 -1
  375. package/dist/9X-BcAb6Uso.d.cts.map +0 -1
  376. package/dist/9X-BhBWlgxG.d.ts.map +0 -1
  377. package/dist/AX-BY72FohC.d.cts.map +0 -1
  378. package/dist/AX-D6XHWdrY.d.ts.map +0 -1
  379. package/dist/BX-CA0OmrUZ.d.cts.map +0 -1
  380. package/dist/BX-D_0C8Qbd.d.ts.map +0 -1
  381. package/dist/CX-HH4cSZRX.d.ts.map +0 -1
  382. package/dist/CX-glpQSL8x.d.cts.map +0 -1
  383. package/dist/DX-DimL1MDM.d.cts.map +0 -1
  384. package/dist/DX-Dx22ax_I.d.ts.map +0 -1
  385. package/dist/EX-BRWh1wFc.d.ts.map +0 -1
  386. package/dist/EX-Cx87Ruxl.d.cts.map +0 -1
  387. package/dist/FX-D81UlxNN.d.cts.map +0 -1
  388. package/dist/FX-RmjwAr40.d.ts.map +0 -1
  389. package/dist/GX-9i7piP9G.d.cts.map +0 -1
  390. package/dist/GX-CJyo7oDp.d.ts.map +0 -1
  391. package/dist/HX-20GVJAvl.d.cts.map +0 -1
  392. package/dist/HX-XALBTdLA.d.ts.map +0 -1
  393. package/dist/IX-6SZ55QKb.d.ts.map +0 -1
  394. package/dist/IX-D54NGPsc.d.cts.map +0 -1
  395. package/dist/JX-C1RYcwQX.d.cts.map +0 -1
  396. package/dist/JX-hQ1XRmLp.d.ts.map +0 -1
  397. package/dist/KX-BNwunEfn.d.ts.map +0 -1
  398. package/dist/KX-gQHCIgtQ.d.cts.map +0 -1
  399. package/dist/LX-CHYX3X3J.d.ts.map +0 -1
  400. package/dist/LX-CPurJGIh.d.cts.map +0 -1
  401. package/dist/MX-BPGLWSUz.d.ts.map +0 -1
  402. package/dist/MX-BnyW5eHf.d.cts.map +0 -1
  403. package/dist/MyInvoisClient-BrNyMjS-.d.cts +0 -178
  404. package/dist/MyInvoisClient-BrNyMjS-.d.cts.map +0 -1
  405. package/dist/MyInvoisClient-CXu4pdl-.d.ts +0 -178
  406. package/dist/MyInvoisClient-CXu4pdl-.d.ts.map +0 -1
  407. package/dist/MyInvoisClient-Cnvb5iUC.js +0 -299
  408. package/dist/MyInvoisClient-Cnvb5iUC.js.map +0 -1
  409. package/dist/MyInvoisClient-DO1dJfQq.cjs +0 -304
  410. package/dist/MyInvoisClient-DO1dJfQq.cjs.map +0 -1
  411. package/dist/NX-B11fQuco.d.cts.map +0 -1
  412. package/dist/NX-RulN5Ml3.d.ts.map +0 -1
  413. package/dist/OX-DgKVSp7I.d.ts.map +0 -1
  414. package/dist/OX-T-ydRXQS.d.cts.map +0 -1
  415. package/dist/PX-DA4A2kEv.d.ts.map +0 -1
  416. package/dist/PX-p0n1SzvU.d.cts.map +0 -1
  417. package/dist/QX-CI1NccIB.d.cts.map +0 -1
  418. package/dist/QX-DrFqsMEs.d.ts.map +0 -1
  419. package/dist/RX-Cm7vFcFN.d.ts.map +0 -1
  420. package/dist/RX-DnNKol22.d.cts.map +0 -1
  421. package/dist/SX-BUjiWQYz.d.cts.map +0 -1
  422. package/dist/SX-CsPPTu-W.d.ts.map +0 -1
  423. package/dist/TX-DCY25MdR.d.ts.map +0 -1
  424. package/dist/TX-DOEpsf05.d.cts.map +0 -1
  425. package/dist/UX-DauyagHy.d.ts.map +0 -1
  426. package/dist/UX-DgUOnTFK.d.cts.map +0 -1
  427. package/dist/VX-DD4scgCe.d.ts.map +0 -1
  428. package/dist/VX-kUX6LM-3.d.cts.map +0 -1
  429. package/dist/WX-CjkoppdY.d.ts.map +0 -1
  430. package/dist/WX-DPfyPFFh.d.cts.map +0 -1
  431. package/dist/XX-C4C1gQZH.d.cts.map +0 -1
  432. package/dist/XX-sbsIUOnA.d.ts.map +0 -1
  433. package/dist/YX-BeT-LsiA.d.cts.map +0 -1
  434. package/dist/YX-DUdO8mRC.d.ts.map +0 -1
  435. package/dist/ZX-BuVTTq-D.d.cts.map +0 -1
  436. package/dist/ZX-DwfcSA-D.d.ts.map +0 -1
  437. package/dist/api/platform/platformLogin.d.ts.map +0 -1
  438. package/dist/canonicalize-C_fNNpYr.cjs +0 -80
  439. package/dist/canonicalize-C_fNNpYr.cjs.map +0 -1
  440. package/dist/canonicalize-DNUrCGad.js +0 -68
  441. package/dist/canonicalize-DNUrCGad.js.map +0 -1
  442. package/dist/classification-codes-B15PbWxz.d.cts.map +0 -1
  443. package/dist/classification-codes-C2X4xW5-.d.ts.map +0 -1
  444. package/dist/country-code-DPeNFMMi.d.cts.map +0 -1
  445. package/dist/country-code-DsI8Mbzx.d.ts.map +0 -1
  446. package/dist/currencies-DKuDflOO.d.ts.map +0 -1
  447. package/dist/currencies-S5g1gzBU.d.cts.map +0 -1
  448. package/dist/e-invoice-BuwtFnlI.d.cts.map +0 -1
  449. package/dist/e-invoice-C2TxhyrK.d.ts.map +0 -1
  450. package/dist/getBaseUrl-Dx6RDC8I.js.map +0 -1
  451. package/dist/hashCert-Bol7lIh2.js +0 -62
  452. package/dist/hashCert-Bol7lIh2.js.map +0 -1
  453. package/dist/hashCert-mlYEuYex.cjs +0 -68
  454. package/dist/hashCert-mlYEuYex.cjs.map +0 -1
  455. package/dist/hashSignedProperties-9vj5wlYR.js +0 -83
  456. package/dist/hashSignedProperties-9vj5wlYR.js.map +0 -1
  457. package/dist/hashSignedProperties-CU_ZqqmY.cjs +0 -95
  458. package/dist/hashSignedProperties-CU_ZqqmY.cjs.map +0 -1
  459. package/dist/index-B1DSs-wd.d.cts.map +0 -1
  460. package/dist/index-CJNLQVjx.d.ts +0 -1
  461. package/dist/index-FTgB2nM6.d.ts.map +0 -1
  462. package/dist/index-Wy1ONBjV.d.cts +0 -1
  463. package/dist/index10.cjs.map +0 -1
  464. package/dist/index66.cjs.map +0 -1
  465. package/dist/index67.cjs +0 -4
  466. package/dist/index67.cts.map +0 -1
  467. package/dist/index68.cjs +0 -3
  468. package/dist/index68.cts.map +0 -1
  469. package/dist/index69.cjs +0 -4
  470. package/dist/index69.cts.map +0 -1
  471. package/dist/index70.cjs +0 -3
  472. package/dist/index70.cts.map +0 -1
  473. package/dist/index71.cjs +0 -3
  474. package/dist/index71.cts.map +0 -1
  475. package/dist/index72.cjs +0 -3
  476. package/dist/index72.cts.map +0 -1
  477. package/dist/index73.cjs +0 -3
  478. package/dist/index73.cts.map +0 -1
  479. package/dist/invoice-1_1-BJVcw-oE.d.ts +0 -432
  480. package/dist/invoice-1_1-BJVcw-oE.d.ts.map +0 -1
  481. package/dist/invoice-1_1-DWdNPRzr.d.cts +0 -432
  482. package/dist/invoice-1_1-DWdNPRzr.d.cts.map +0 -1
  483. package/dist/invoice1-1-8S-QQn7P.cjs +0 -547
  484. package/dist/invoice1-1-8S-QQn7P.cjs.map +0 -1
  485. package/dist/invoice1-1-CHuLpkFz.js +0 -504
  486. package/dist/invoice1-1-CHuLpkFz.js.map +0 -1
  487. package/dist/msic-codes-B_1W6lZF.d.cts.map +0 -1
  488. package/dist/msic-codes-bs0lTfSZ.d.ts +0 -26
  489. package/dist/msic-codes-bs0lTfSZ.d.ts.map +0 -1
  490. package/dist/payment-modes-B8dNy3SM.d.ts.map +0 -1
  491. package/dist/payment-modes-DHihrywe.d.cts.map +0 -1
  492. package/dist/platformLogin-DsxWWUXr.js.map +0 -1
  493. package/dist/populateFinalDocument-BdyYzz5Y.cjs +0 -96
  494. package/dist/populateFinalDocument-BdyYzz5Y.cjs.map +0 -1
  495. package/dist/populateFinalDocument-BpLXmgLv.js +0 -90
  496. package/dist/populateFinalDocument-BpLXmgLv.js.map +0 -1
  497. package/dist/populateSignedProperties-BJMcBQ6S.cjs +0 -58
  498. package/dist/populateSignedProperties-BJMcBQ6S.cjs.map +0 -1
  499. package/dist/populateSignedProperties-BvGN-YZH.js +0 -52
  500. package/dist/populateSignedProperties-BvGN-YZH.js.map +0 -1
  501. package/dist/sign-B61Cy3gO.cjs +0 -40
  502. package/dist/sign-B61Cy3gO.cjs.map +0 -1
  503. package/dist/sign-DzHK7UhR.js +0 -34
  504. package/dist/sign-DzHK7UhR.js.map +0 -1
  505. package/dist/signatures-BKi9DP2K.d.cts.map +0 -1
  506. package/dist/signatures-C9QPZTQd.d.ts.map +0 -1
  507. package/dist/state-codes-CxG1S9YY.d.ts.map +0 -1
  508. package/dist/state-codes-DXSWtE6a.d.cts.map +0 -1
  509. package/dist/tax-types-CEpfSh5P.d.ts.map +0 -1
  510. package/dist/tax-types-CgwxONDS.d.cts.map +0 -1
  511. package/dist/transform-BLz0S687.cjs +0 -72
  512. package/dist/transform-BLz0S687.cjs.map +0 -1
  513. package/dist/transform-D1q-U6Zj.js +0 -66
  514. package/dist/transform-D1q-U6Zj.js.map +0 -1
  515. package/dist/types/documents/index.d.ts +0 -57
  516. package/dist/types/documents/invoice-1_1.d.ts +0 -56
  517. package/dist/unit-types-1bF0KhIp.d.ts +0 -56
  518. package/dist/unit-types-1bF0KhIp.d.ts.map +0 -1
  519. package/dist/unit-types-CsrkvgfG.d.cts +0 -56
  520. package/dist/unit-types-CsrkvgfG.d.cts.map +0 -1
  521. package/dist/utils/MyInvoisClient.d.ts +0 -60
  522. package/dist/utils/MyInvoisClient.js +0 -13
  523. package/dist/utils/base64.d.ts.map +0 -1
  524. package/dist/utils/base64.js.map +0 -1
  525. package/dist/utils/debug/debug-document-hash.d.ts +0 -100
  526. package/dist/utils/debug/debug-document-hash.d.ts.map +0 -1
  527. package/dist/utils/debug/debug-document-hash.js +0 -120
  528. package/dist/utils/debug/debug-document-hash.js.map +0 -1
  529. package/dist/utils/debug/debug-invoice-submission.d.ts +0 -152
  530. package/dist/utils/debug/debug-invoice-submission.d.ts.map +0 -1
  531. package/dist/utils/debug/debug-invoice-submission.js +0 -226
  532. package/dist/utils/debug/debug-invoice-submission.js.map +0 -1
  533. package/dist/utils/getBaseUrl.d.ts.map +0 -1
  534. package/dist/utils/invoice1-1.d.ts +0 -117
  535. package/dist/utils/invoice1-1.d.ts.map +0 -1
  536. package/dist/utils/invoice1-1.js +0 -10
  537. package/dist/utils/signature/canonicalize.d.ts +0 -26
  538. package/dist/utils/signature/canonicalize.d.ts.map +0 -1
  539. package/dist/utils/signature/canonicalize.js +0 -3
  540. package/dist/utils/signature/hashCert.d.ts +0 -15
  541. package/dist/utils/signature/hashCert.d.ts.map +0 -1
  542. package/dist/utils/signature/hashCert.js +0 -3
  543. package/dist/utils/signature/hashSignedProperties.d.ts +0 -25
  544. package/dist/utils/signature/hashSignedProperties.d.ts.map +0 -1
  545. package/dist/utils/signature/hashSignedProperties.js +0 -3
  546. package/dist/utils/signature/populateFinalDocument.d.ts +0 -23
  547. package/dist/utils/signature/populateFinalDocument.d.ts.map +0 -1
  548. package/dist/utils/signature/populateFinalDocument.js +0 -3
  549. package/dist/utils/signature/populateSignedProperties.d.ts +0 -23
  550. package/dist/utils/signature/populateSignedProperties.d.ts.map +0 -1
  551. package/dist/utils/signature/populateSignedProperties.js +0 -3
  552. package/dist/utils/signature/sign.d.ts +0 -16
  553. package/dist/utils/signature/sign.d.ts.map +0 -1
  554. package/dist/utils/signature/sign.js +0 -3
  555. package/dist/utils/signature/transform.d.ts +0 -16
  556. package/dist/utils/signature/transform.d.ts.map +0 -1
  557. package/dist/utils/signature/transform.js +0 -3
  558. package/src/types/documents/index.d.ts +0 -1
  559. package/src/types/documents/invoice-1_1.d.ts +0 -439
  560. package/src/utils/MyInvoisClient.ts +0 -501
  561. package/src/utils/debug/debug-document-hash.ts +0 -249
  562. package/src/utils/debug/debug-invoice-submission.ts +0 -355
  563. package/src/utils/invoice1-1.ts +0 -671
  564. package/src/utils/signature/canonicalize.ts +0 -104
  565. package/src/utils/signature/hashCert.ts +0 -115
  566. package/src/utils/signature/hashSignedProperties.ts +0 -155
  567. package/src/utils/signature/populateFinalDocument.ts +0 -187
  568. package/src/utils/signature/populateSignedProperties.ts +0 -87
  569. package/src/utils/signature/sign.ts +0 -51
  570. package/src/utils/signature/transform.ts +0 -99
  571. package/test/canonicalize.test.ts +0 -110
  572. package/test/hashCert.test.ts +0 -95
  573. package/test/hashSignedProperties.test.ts +0 -140
  574. package/test/populateFinalDocument.test.ts +0 -218
  575. package/test/populateSignedProperties.test.ts +0 -155
  576. package/test/sign.test.ts +0 -70
  577. package/test/transform.test.ts +0 -158
@@ -1,120 +0,0 @@
1
- import { generateDocumentHash, generateSignedInvoiceXML } from "../../invoice1-1-CHuLpkFz.js";
2
- import "../../canonicalize-DNUrCGad.js";
3
- import "../../hashCert-Bol7lIh2.js";
4
- import "../../hashSignedProperties-9vj5wlYR.js";
5
- import "../../populateFinalDocument-BpLXmgLv.js";
6
- import "../../populateSignedProperties-BvGN-YZH.js";
7
- import "../../sign-DzHK7UhR.js";
8
- import "../../transform-D1q-U6Zj.js";
9
- import * as crypto from "crypto";
10
- import { DOMParserImpl } from "xmldom-ts";
11
-
12
- //#region src/utils/debug/debug-document-hash.ts
13
- /**
14
- * Debug Document Hash Issues
15
- *
16
- * This helps identify why MyInvois is rejecting the document hash
17
- */
18
- /**
19
- * Compare different hash calculation methods to identify the correct approach
20
- */
21
- async function debugDocumentHash(invoiceData, signingCredentials) {
22
- console.log("\n🔍 DEBUGGING DOCUMENT HASH VALIDATION");
23
- console.log("=====================================");
24
- const signedXML = await generateSignedInvoiceXML(invoiceData, signingCredentials);
25
- console.log(`\n📄 Generated signed XML (${signedXML.length} chars)`);
26
- console.log("First 200 chars:", signedXML.substring(0, 200) + "...");
27
- const submissionHash = generateDocumentHash(signedXML);
28
- console.log(`\n📊 SUBMISSION HASH: ${submissionHash}`);
29
- const parser = new DOMParserImpl();
30
- const doc = parser.parseFromString(signedXML, "application/xml");
31
- const digestElements = doc.getElementsByTagName("ds:DigestValue");
32
- let signatureDocDigest = "";
33
- if (digestElements.length > 0) {
34
- signatureDocDigest = digestElements[0]?.textContent || "";
35
- console.log(`📊 SIGNATURE DOC DIGEST: ${signatureDocDigest}`);
36
- } else console.error("❌ No DigestValue elements found in signature!");
37
- const rawDocumentHash = crypto.createHash("sha256").update(signedXML, "utf8").digest("hex");
38
- console.log(`📊 RAW DOCUMENT HASH: ${rawDocumentHash}`);
39
- const minifiedXML = signedXML.replace(/>\s+</g, "><").replace(/\s+/g, " ").replace(/>\s/g, ">").replace(/\s</g, "<").trim();
40
- const minifiedDocumentHash = crypto.createHash("sha256").update(minifiedXML, "utf8").digest("hex");
41
- console.log(`📊 MINIFIED DOCUMENT HASH: ${minifiedDocumentHash}`);
42
- console.log(`📊 TRANSFORMED DOCUMENT HASH: [Skipped - requires internal template access]`);
43
- const areEqual = {
44
- submissionVsSignature: submissionHash === Buffer.from(signatureDocDigest, "base64").toString("hex"),
45
- submissionVsRaw: submissionHash === rawDocumentHash,
46
- submissionVsMinified: submissionHash === minifiedDocumentHash,
47
- submissionVsTransformed: false
48
- };
49
- console.log("\n🔍 HASH COMPARISONS:");
50
- console.log(`Submission vs Signature: ${areEqual.submissionVsSignature ? "✅" : "❌"}`);
51
- console.log(`Submission vs Raw: ${areEqual.submissionVsRaw ? "✅" : "❌"}`);
52
- console.log(`Submission vs Minified: ${areEqual.submissionVsMinified ? "✅" : "❌"}`);
53
- console.log(`Submission vs Transformed: ${areEqual.submissionVsTransformed ? "✅" : "❌"}`);
54
- const recommendations = [];
55
- if (!areEqual.submissionVsSignature) {
56
- recommendations.push("❌ Submission hash does not match signature digest - this is likely the root cause!");
57
- recommendations.push("💡 Consider using the same hash calculation method for both signature and submission");
58
- }
59
- if (!areEqual.submissionVsRaw) recommendations.push("⚠️ Current implementation calculates different hashes for signature vs submission");
60
- if (areEqual.submissionVsMinified && !areEqual.submissionVsRaw) recommendations.push("💡 Try using minified XML hash for submission");
61
- if (areEqual.submissionVsTransformed) recommendations.push("💡 The transformed document hash matches - this might be what MyInvois expects");
62
- if (!areEqual.submissionVsSignature) {
63
- recommendations.push("🔧 POTENTIAL FIX: Use the digest value from signature as documentHash in submission");
64
- recommendations.push("🔧 ALTERNATIVE: Ensure submission hash uses same canonicalization as signature creation");
65
- }
66
- console.log("\n💡 RECOMMENDATIONS:");
67
- recommendations.forEach((rec) => console.log(` ${rec}`));
68
- return {
69
- signedXML,
70
- documentHashes: {
71
- submissionHash,
72
- signatureDocDigest,
73
- rawDocumentHash,
74
- minifiedDocumentHash,
75
- transformedDocumentHash: ""
76
- },
77
- areEqual,
78
- recommendations
79
- };
80
- }
81
- /**
82
- * Test different approaches to calculate the submission hash
83
- */
84
- async function testSubmissionHashMethods(invoiceData, signingCredentials) {
85
- console.log("\n🧪 TESTING SUBMISSION HASH METHODS");
86
- console.log("==================================");
87
- const signedXML = await generateSignedInvoiceXML(invoiceData, signingCredentials);
88
- const currentHash = generateDocumentHash(signedXML);
89
- console.log(`Method 1 - Current: ${currentHash}`);
90
- const parser = new DOMParserImpl();
91
- const doc = parser.parseFromString(signedXML, "application/xml");
92
- const digestElements = doc.getElementsByTagName("ds:DigestValue");
93
- const signatureDigest = digestElements[0]?.textContent || "";
94
- const signatureDigestHex = Buffer.from(signatureDigest, "base64").toString("hex");
95
- console.log(`Method 2 - Signature Digest: ${signatureDigestHex}`);
96
- console.log(`Method 3 - Canonicalized: [Skipped - requires internal access]`);
97
- console.log(`Method 4 - Transformed: [Skipped - requires internal access]`);
98
- const methods = {
99
- current: currentHash,
100
- signatureDigest: signatureDigestHex,
101
- canonicalized: "",
102
- transformed: ""
103
- };
104
- const recommendations = [];
105
- if (methods.current !== methods.signatureDigest) {
106
- recommendations.push("🔧 PRIMARY RECOMMENDATION: Use signature digest as submission hash");
107
- recommendations.push(" Update generateDocumentHash() to extract digest from signed XML");
108
- }
109
- if (methods.current !== methods.canonicalized) recommendations.push("🔧 ALTERNATIVE: Use canonicalized document hash for submission");
110
- console.log("\n💡 RECOMMENDATIONS:");
111
- recommendations.forEach((rec) => console.log(` ${rec}`));
112
- return {
113
- methods,
114
- recommendations
115
- };
116
- }
117
-
118
- //#endregion
119
- export { debugDocumentHash, testSubmissionHashMethods };
120
- //# sourceMappingURL=debug-document-hash.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug-document-hash.js","names":["invoiceData: InvoiceV1_1","signingCredentials: SigningCredentials","recommendations: string[]"],"sources":["../../../src/utils/debug/debug-document-hash.ts"],"sourcesContent":["import * as crypto from 'crypto'\nimport { DOMParserImpl } from 'xmldom-ts'\nimport type { InvoiceV1_1 } from '../../types'\nimport { generateDocumentHash, generateSignedInvoiceXML } from '../invoice1-1'\nimport type { SigningCredentials } from '../../types/documents/invoice-1_1.d.ts'\n\n/**\n * Debug Document Hash Issues\n *\n * This helps identify why MyInvois is rejecting the document hash\n */\n\n/**\n * Compare different hash calculation methods to identify the correct approach\n */\nexport async function debugDocumentHash(\n invoiceData: InvoiceV1_1,\n signingCredentials: SigningCredentials,\n): Promise<{\n signedXML: string\n documentHashes: {\n submissionHash: string // The hash sent in submission payload\n signatureDocDigest: string // The digest value inside the signature\n rawDocumentHash: string // Hash of raw signed XML\n minifiedDocumentHash: string // Hash of minified signed XML\n transformedDocumentHash: string // Hash of transformed document (used in signature)\n }\n areEqual: {\n submissionVsSignature: boolean\n submissionVsRaw: boolean\n submissionVsMinified: boolean\n submissionVsTransformed: boolean\n }\n recommendations: string[]\n}> {\n console.log('\\n🔍 DEBUGGING DOCUMENT HASH VALIDATION')\n console.log('=====================================')\n\n // Generate the signed XML\n const signedXML = await generateSignedInvoiceXML(\n invoiceData,\n signingCredentials,\n )\n\n console.log(`\\n📄 Generated signed XML (${signedXML.length} chars)`)\n console.log('First 200 chars:', signedXML.substring(0, 200) + '...')\n\n // 1. Calculate the hash used in submission payload (current implementation)\n const submissionHash = generateDocumentHash(signedXML)\n console.log(`\\n📊 SUBMISSION HASH: ${submissionHash}`)\n\n // 2. Extract the digest value from the signature itself\n const parser = new DOMParserImpl()\n const doc = parser.parseFromString(signedXML, 'application/xml')\n const digestElements = doc.getElementsByTagName('ds:DigestValue')\n let signatureDocDigest = ''\n\n if (digestElements.length > 0) {\n // First DigestValue should be the document digest\n signatureDocDigest = digestElements[0]?.textContent || ''\n console.log(`📊 SIGNATURE DOC DIGEST: ${signatureDocDigest}`)\n } else {\n console.error('❌ No DigestValue elements found in signature!')\n }\n\n // 3. Calculate hash of raw signed XML (what we're currently sending)\n const rawDocumentHash = crypto\n .createHash('sha256')\n .update(signedXML, 'utf8')\n .digest('hex')\n console.log(`📊 RAW DOCUMENT HASH: ${rawDocumentHash}`)\n\n // 4. Calculate hash of minified XML (MyInvois recommendation)\n const minifiedXML = signedXML\n .replace(/>\\s+</g, '><')\n .replace(/\\s+/g, ' ')\n .replace(/>\\s/g, '>')\n .replace(/\\s</g, '<')\n .trim()\n const minifiedDocumentHash = crypto\n .createHash('sha256')\n .update(minifiedXML, 'utf8')\n .digest('hex')\n console.log(`📊 MINIFIED DOCUMENT HASH: ${minifiedDocumentHash}`)\n\n // 5. Calculate hash of the document as it was transformed for signature creation\n // Note: We can't easily recreate the exact transformation without the template,\n // so we'll skip this comparison for now\n console.log(\n `📊 TRANSFORMED DOCUMENT HASH: [Skipped - requires internal template access]`,\n )\n\n // Compare available hashes\n const areEqual = {\n submissionVsSignature:\n submissionHash ===\n Buffer.from(signatureDocDigest, 'base64').toString('hex'),\n submissionVsRaw: submissionHash === rawDocumentHash,\n submissionVsMinified: submissionHash === minifiedDocumentHash,\n submissionVsTransformed: false, // Skip this comparison\n }\n\n console.log('\\n🔍 HASH COMPARISONS:')\n console.log(\n `Submission vs Signature: ${areEqual.submissionVsSignature ? '✅' : '❌'}`,\n )\n console.log(\n `Submission vs Raw: ${areEqual.submissionVsRaw ? '✅' : '❌'}`,\n )\n console.log(\n `Submission vs Minified: ${areEqual.submissionVsMinified ? '✅' : '❌'}`,\n )\n console.log(\n `Submission vs Transformed: ${areEqual.submissionVsTransformed ? '✅' : '❌'}`,\n )\n\n // Generate recommendations\n const recommendations: string[] = []\n\n if (!areEqual.submissionVsSignature) {\n recommendations.push(\n '❌ Submission hash does not match signature digest - this is likely the root cause!',\n )\n recommendations.push(\n '💡 Consider using the same hash calculation method for both signature and submission',\n )\n }\n\n if (!areEqual.submissionVsRaw) {\n recommendations.push(\n '⚠️ Current implementation calculates different hashes for signature vs submission',\n )\n }\n\n if (areEqual.submissionVsMinified && !areEqual.submissionVsRaw) {\n recommendations.push('💡 Try using minified XML hash for submission')\n }\n\n if (areEqual.submissionVsTransformed) {\n recommendations.push(\n '💡 The transformed document hash matches - this might be what MyInvois expects',\n )\n }\n\n // Check if we're using the wrong document for submission hash\n if (!areEqual.submissionVsSignature) {\n recommendations.push(\n '🔧 POTENTIAL FIX: Use the digest value from signature as documentHash in submission',\n )\n recommendations.push(\n '🔧 ALTERNATIVE: Ensure submission hash uses same canonicalization as signature creation',\n )\n }\n\n console.log('\\n💡 RECOMMENDATIONS:')\n recommendations.forEach(rec => console.log(` ${rec}`))\n\n return {\n signedXML,\n documentHashes: {\n submissionHash,\n signatureDocDigest,\n rawDocumentHash,\n minifiedDocumentHash,\n transformedDocumentHash: '',\n },\n areEqual,\n recommendations,\n }\n}\n\n/**\n * Test different approaches to calculate the submission hash\n */\nexport async function testSubmissionHashMethods(\n invoiceData: InvoiceV1_1,\n signingCredentials: SigningCredentials,\n): Promise<{\n methods: {\n current: string // Current implementation\n signatureDigest: string // Use digest from signature\n canonicalized: string // Use same canonicalization as signature\n transformed: string // Use transformed document\n }\n recommendations: string[]\n}> {\n console.log('\\n🧪 TESTING SUBMISSION HASH METHODS')\n console.log('==================================')\n\n // Generate signed XML\n const signedXML = await generateSignedInvoiceXML(\n invoiceData,\n signingCredentials,\n )\n\n // Method 1: Current implementation (direct SHA256 of signed XML)\n const currentHash = generateDocumentHash(signedXML)\n console.log(`Method 1 - Current: ${currentHash}`)\n\n // Method 2: Extract digest from signature\n const parser = new DOMParserImpl()\n const doc = parser.parseFromString(signedXML, 'application/xml')\n const digestElements = doc.getElementsByTagName('ds:DigestValue')\n const signatureDigest = digestElements[0]?.textContent || ''\n const signatureDigestHex = Buffer.from(signatureDigest, 'base64').toString(\n 'hex',\n )\n console.log(`Method 2 - Signature Digest: ${signatureDigestHex}`)\n\n // Method 3: Use same canonicalization as signature creation\n // Note: Skip this method as it requires internal template access\n console.log(`Method 3 - Canonicalized: [Skipped - requires internal access]`)\n\n // Method 4: Hash the transformed document directly\n // Note: Skip this method as it requires internal template access\n console.log(`Method 4 - Transformed: [Skipped - requires internal access]`)\n\n const methods = {\n current: currentHash,\n signatureDigest: signatureDigestHex,\n canonicalized: '', // Skipped\n transformed: '', // Skipped\n }\n\n const recommendations: string[] = []\n\n if (methods.current !== methods.signatureDigest) {\n recommendations.push(\n '🔧 PRIMARY RECOMMENDATION: Use signature digest as submission hash',\n )\n recommendations.push(\n ' Update generateDocumentHash() to extract digest from signed XML',\n )\n }\n\n if (methods.current !== methods.canonicalized) {\n recommendations.push(\n '🔧 ALTERNATIVE: Use canonicalized document hash for submission',\n )\n }\n\n console.log('\\n💡 RECOMMENDATIONS:')\n recommendations.forEach(rec => console.log(` ${rec}`))\n\n return {\n methods,\n recommendations,\n }\n}\n"],"mappings":"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"}
@@ -1,152 +0,0 @@
1
- import "../../classification-codes-C2X4xW5-.js";
2
- import "../../country-code-DsI8Mbzx.js";
3
- import "../../currencies-DKuDflOO.js";
4
- import "../../e-invoice-C2TxhyrK.js";
5
- import "../../signatures-C9QPZTQd.js";
6
- import "../../tax-types-CEpfSh5P.js";
7
- import "../../1X-C-_KHV-Q.js";
8
- import "../../2X-DkS1BoE5.js";
9
- import "../../3X-DFI-4RQQ.js";
10
- import "../../4X-CIJ2JJ2w.js";
11
- import "../../5X-COsZHUaQ.js";
12
- import "../../6X-ClZDKOTC.js";
13
- import "../../7X-BZyesooz.js";
14
- import "../../8X-DkuKAkHz.js";
15
- import "../../9X-BDgifncF.js";
16
- import "../../AX-D6XHWdrY.js";
17
- import "../../BX-D_0C8Qbd.js";
18
- import "../../CX-HH4cSZRX.js";
19
- import "../../DX-Dx22ax_I.js";
20
- import "../../EX-BRWh1wFc.js";
21
- import "../../FX-RmjwAr40.js";
22
- import "../../GX-CJyo7oDp.js";
23
- import "../../HX-XALBTdLA.js";
24
- import "../../IX-6SZ55QKb.js";
25
- import "../../JX-hQ1XRmLp.js";
26
- import "../../KX-BNwunEfn.js";
27
- import "../../LX-CHYX3X3J.js";
28
- import "../../MX-BPGLWSUz.js";
29
- import "../../NX-RulN5Ml3.js";
30
- import "../../OX-DgKVSp7I.js";
31
- import "../../PX-DA4A2kEv.js";
32
- import "../../QX-DrFqsMEs.js";
33
- import "../../RX-Cm7vFcFN.js";
34
- import "../../SX-CsPPTu-W.js";
35
- import "../../TX-DCY25MdR.js";
36
- import "../../UX-DauyagHy.js";
37
- import "../../VX-DD4scgCe.js";
38
- import "../../WX-CjkoppdY.js";
39
- import "../../YX-DUdO8mRC.js";
40
- import "../../ZX-DwfcSA-D.js";
41
- import "../../XX-sbsIUOnA.js";
42
- import "../../unit-types-1bF0KhIp.js";
43
- import "../../payment-modes-B8dNy3SM.js";
44
- import "../../0X-C4IRh_fJ.js";
45
- import "../../1X-Brnls9Jh.js";
46
- import "../../2X-UdQcQW24.js";
47
- import "../../3X-DVDyspgb.js";
48
- import "../../4X-CUR8jlaZ.js";
49
- import "../../5X-C6db432h.js";
50
- import "../../6X-C_fFIcJC.js";
51
- import "../../7X-kot_VccM.js";
52
- import "../../8X-Df4DOBOe.js";
53
- import "../../9X-BhBWlgxG.js";
54
- import "../../msic-codes-bs0lTfSZ.js";
55
- import { InvoiceV1_1, SigningCredentials } from "../../invoice-1_1-BJVcw-oE.js";
56
-
57
- //#region src/utils/debug/debug-invoice-submission.d.ts
58
- /**
59
- * Tests both canonicalization algorithms and compares their output
60
- * This can help determine if the algorithm difference affects signature validation
61
- * @param xmlDocument - The XML document string to test
62
- * @returns Object with canonicalization results and comparison
63
- */
64
- declare const testCanonicalizationAlgorithms: (xmlDocument: string) => Promise<{
65
- exclusiveC14N: {
66
- success: boolean;
67
- digest?: string;
68
- error?: string;
69
- };
70
- c14n11Fallback: {
71
- success: boolean;
72
- digest?: string;
73
- error?: string;
74
- };
75
- areEqual: boolean;
76
- }>;
77
- /**
78
- * Simple validation function that checks basic XML structure requirements
79
- */
80
- declare function validateXMLStructure(xmlString: string): {
81
- isValid: boolean;
82
- errors: string[];
83
- warnings: string[];
84
- };
85
- /**
86
- * Comprehensive debugging function to help identify issues with generated XML
87
- * This validates the structure against MyInvois requirements and provides detailed feedback
88
- */
89
- declare function debugSignedInvoiceXML(invoiceInfo: InvoiceV1_1, signingCredentials: SigningCredentials): Promise<{
90
- success: boolean;
91
- signedXML?: string;
92
- validationResults: {
93
- xmlStructure: {
94
- valid: boolean;
95
- errors: string[];
96
- };
97
- signatureElements: {
98
- valid: boolean;
99
- errors: string[];
100
- };
101
- digestValues: {
102
- valid: boolean;
103
- errors: string[];
104
- };
105
- certificateInfo: {
106
- valid: boolean;
107
- errors: string[];
108
- };
109
- canonicalizationTest: any;
110
- };
111
- stepByStepResults: {
112
- step1_template: {
113
- success: boolean;
114
- error?: string;
115
- };
116
- step2_transform: {
117
- success: boolean;
118
- error?: string;
119
- };
120
- step3_docDigest: {
121
- success: boolean;
122
- digest?: string;
123
- error?: string;
124
- };
125
- step4_signature: {
126
- success: boolean;
127
- signature?: string;
128
- error?: string;
129
- };
130
- step5_certDigest: {
131
- success: boolean;
132
- digest?: string;
133
- error?: string;
134
- };
135
- step6_signedProps: {
136
- success: boolean;
137
- error?: string;
138
- };
139
- step7_propsDigest: {
140
- success: boolean;
141
- digest?: string;
142
- error?: string;
143
- };
144
- step8_finalDoc: {
145
- success: boolean;
146
- error?: string;
147
- };
148
- };
149
- }>;
150
- //#endregion
151
- export { debugSignedInvoiceXML, testCanonicalizationAlgorithms, validateXMLStructure };
152
- //# sourceMappingURL=debug-invoice-submission.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug-invoice-submission.d.ts","names":["xmlDocument: string","xmlString: string","invoiceInfo: InvoiceV1_1","signingCredentials: SigningCredentials"],"sources":["../../../src/utils/debug/debug-invoice-submission.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAuBa,yDAEV;;;;;;;;;;;;;;;;iBA8Ca,oBAAA;;;;;;;;;iBAqEM,qBAAA,cACP,iCACO,qBACnB;;;;;;;;;;;;;;;;;;;;;;;;;MAxHH,KAAa,CAAA,EAAA,MAAA;IAgDb,CAAA;IAqEA,eAAsB,EAAA;MAAA,OAAA,EAAA,OAAA;MAAA,KACP,CAAA,EAAA,MAAA;IAAA,CAAA;IACO,eACnB,EAAA;MAAA,OAAA,EAAA,OAAA"}
@@ -1,226 +0,0 @@
1
- import { extractCertificateInfo, generateSignedInvoiceXML, generateUBLXMLTemplate, validateKeyPair } from "../../invoice1-1-CHuLpkFz.js";
2
- import { canonicalizeAndHashDocument, canonicalizeAndHashDocumentWithC14N11Fallback } from "../../canonicalize-DNUrCGad.js";
3
- import "../../hashCert-Bol7lIh2.js";
4
- import "../../hashSignedProperties-9vj5wlYR.js";
5
- import "../../populateFinalDocument-BpLXmgLv.js";
6
- import "../../populateSignedProperties-BvGN-YZH.js";
7
- import "../../sign-DzHK7UhR.js";
8
- import { transformXmlInvoice } from "../../transform-D1q-U6Zj.js";
9
- import { DOMParserImpl } from "xmldom-ts";
10
-
11
- //#region src/utils/debug/debug-invoice-submission.ts
12
- /**
13
- * Tests both canonicalization algorithms and compares their output
14
- * This can help determine if the algorithm difference affects signature validation
15
- * @param xmlDocument - The XML document string to test
16
- * @returns Object with canonicalization results and comparison
17
- */
18
- const testCanonicalizationAlgorithms = async (xmlDocument) => {
19
- const parser = new DOMParserImpl();
20
- const doc = parser.parseFromString(xmlDocument, "application/xml");
21
- const results = {
22
- exclusiveC14N: { success: false },
23
- c14n11Fallback: { success: false },
24
- areEqual: false
25
- };
26
- try {
27
- const exclusiveDigest = await canonicalizeAndHashDocument(doc, "http://www.w3.org/2001/10/xml-exc-c14n#");
28
- results.exclusiveC14N = {
29
- success: true,
30
- digest: exclusiveDigest
31
- };
32
- } catch (error) {
33
- results.exclusiveC14N = {
34
- success: false,
35
- error: error.message
36
- };
37
- }
38
- try {
39
- const c14n11Digest = await canonicalizeAndHashDocumentWithC14N11Fallback(doc);
40
- results.c14n11Fallback = {
41
- success: true,
42
- digest: c14n11Digest
43
- };
44
- } catch (error) {
45
- results.c14n11Fallback = {
46
- success: false,
47
- error: error.message
48
- };
49
- }
50
- if (results.exclusiveC14N.success && results.c14n11Fallback.success) results.areEqual = results.exclusiveC14N.digest === results.c14n11Fallback.digest;
51
- return results;
52
- };
53
- /**
54
- * Simple validation function that checks basic XML structure requirements
55
- */
56
- function validateXMLStructure(xmlString) {
57
- const errors = [];
58
- const warnings = [];
59
- try {
60
- const parser = new DOMParserImpl();
61
- const doc = parser.parseFromString(xmlString, "application/xml");
62
- const parserErrors = doc.getElementsByTagName("parsererror");
63
- if (parserErrors.length > 0) {
64
- errors.push("XML parsing failed");
65
- return {
66
- isValid: false,
67
- errors,
68
- warnings
69
- };
70
- }
71
- const requiredElements = [
72
- "Invoice",
73
- "UBLExtensions",
74
- "cbc:ID",
75
- "cbc:IssueDate",
76
- "cbc:IssueTime",
77
- "cbc:InvoiceTypeCode",
78
- "ds:Signature",
79
- "ds:SignatureValue",
80
- "ds:X509Certificate"
81
- ];
82
- for (const element of requiredElements) {
83
- const elements = element.includes(":") ? doc.getElementsByTagName(element) : doc.getElementsByTagName(element);
84
- if (elements.length === 0) errors.push(`Missing required element: ${element}`);
85
- }
86
- const expectedNamespaces = [
87
- "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2",
88
- "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2",
89
- "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
90
- ];
91
- for (const ns of expectedNamespaces) if (!xmlString.includes(ns)) warnings.push(`Missing namespace declaration: ${ns}`);
92
- } catch (error) {
93
- errors.push(`XML validation error: ${error.message}`);
94
- }
95
- return {
96
- isValid: errors.length === 0,
97
- errors,
98
- warnings
99
- };
100
- }
101
- /**
102
- * Comprehensive debugging function to help identify issues with generated XML
103
- * This validates the structure against MyInvois requirements and provides detailed feedback
104
- */
105
- async function debugSignedInvoiceXML(invoiceInfo, signingCredentials) {
106
- const stepResults = {
107
- step1_template: { success: false },
108
- step2_transform: { success: false },
109
- step3_docDigest: { success: false },
110
- step4_signature: { success: false },
111
- step5_certDigest: { success: false },
112
- step6_signedProps: { success: false },
113
- step7_propsDigest: { success: false },
114
- step8_finalDoc: { success: false }
115
- };
116
- const validationResults = {
117
- xmlStructure: {
118
- valid: false,
119
- errors: []
120
- },
121
- signatureElements: {
122
- valid: false,
123
- errors: []
124
- },
125
- digestValues: {
126
- valid: false,
127
- errors: []
128
- },
129
- certificateInfo: {
130
- valid: false,
131
- errors: []
132
- },
133
- canonicalizationTest: null
134
- };
135
- let signedXML;
136
- try {
137
- try {
138
- const xmlTemplate = generateUBLXMLTemplate(invoiceInfo);
139
- stepResults.step1_template = { success: true };
140
- const parser = new DOMParserImpl();
141
- const doc = parser.parseFromString(xmlTemplate, "application/xml");
142
- const parserErrors = doc.getElementsByTagName("parsererror");
143
- if (parserErrors.length > 0) validationResults.xmlStructure.errors.push("XML template parsing failed");
144
- else validationResults.xmlStructure.valid = true;
145
- } catch (error) {
146
- stepResults.step1_template = {
147
- success: false,
148
- error: error.message
149
- };
150
- validationResults.xmlStructure.errors.push(`Template generation failed: ${error.message}`);
151
- }
152
- try {
153
- const xmlTemplate = generateUBLXMLTemplate(invoiceInfo);
154
- const transformedXml = transformXmlInvoice(xmlTemplate);
155
- stepResults.step2_transform = { success: true };
156
- if (transformedXml.includes("UBLExtensions")) validationResults.xmlStructure.errors.push("UBLExtensions not properly removed in transformation");
157
- if (transformedXml.includes("<cac:Signature>")) validationResults.xmlStructure.errors.push("cac:Signature elements not properly removed in transformation");
158
- } catch (error) {
159
- stepResults.step2_transform = {
160
- success: false,
161
- error: error.message
162
- };
163
- }
164
- try {
165
- const xmlTemplate = generateUBLXMLTemplate(invoiceInfo);
166
- validationResults.canonicalizationTest = await testCanonicalizationAlgorithms(xmlTemplate);
167
- } catch (error) {
168
- validationResults.canonicalizationTest = { error: error.message };
169
- }
170
- try {
171
- signedXML = await generateSignedInvoiceXML(invoiceInfo, signingCredentials);
172
- const parser = new DOMParserImpl();
173
- const finalDoc = parser.parseFromString(signedXML, "application/xml");
174
- const signatureValue = finalDoc.getElementsByTagName("ds:SignatureValue")[0];
175
- const x509Certificate = finalDoc.getElementsByTagName("ds:X509Certificate")[0];
176
- const digestValues = finalDoc.getElementsByTagName("ds:DigestValue");
177
- if (!signatureValue || !signatureValue.textContent?.trim()) validationResults.signatureElements.errors.push("SignatureValue is empty");
178
- if (!x509Certificate || !x509Certificate.textContent?.trim()) validationResults.signatureElements.errors.push("X509Certificate is empty");
179
- if (digestValues.length < 2) validationResults.digestValues.errors.push("Missing digest values (expected at least 2)");
180
- else {
181
- let emptyDigests = 0;
182
- for (let i = 0; i < digestValues.length; i++) {
183
- const digestElement = digestValues[i];
184
- if (!digestElement || !digestElement.textContent?.trim()) emptyDigests++;
185
- }
186
- if (emptyDigests > 0) validationResults.digestValues.errors.push(`${emptyDigests} digest values are empty`);
187
- }
188
- try {
189
- const certInfo = extractCertificateInfo(signingCredentials.certificatePem);
190
- const keyPairValid = validateKeyPair(signingCredentials.certificatePem, signingCredentials.privateKeyPem);
191
- if (!keyPairValid) validationResults.certificateInfo.errors.push("Certificate and private key do not match");
192
- if (!certInfo.issuerName || !certInfo.serialNumber) validationResults.certificateInfo.errors.push("Certificate info extraction failed");
193
- if (validationResults.certificateInfo.errors.length === 0) validationResults.certificateInfo.valid = true;
194
- } catch (error) {
195
- validationResults.certificateInfo.errors.push(`Certificate validation failed: ${error.message}`);
196
- }
197
- if (validationResults.signatureElements.errors.length === 0) validationResults.signatureElements.valid = true;
198
- if (validationResults.digestValues.errors.length === 0) validationResults.digestValues.valid = true;
199
- stepResults.step3_docDigest = { success: true };
200
- stepResults.step4_signature = { success: true };
201
- stepResults.step5_certDigest = { success: true };
202
- stepResults.step6_signedProps = { success: true };
203
- stepResults.step7_propsDigest = { success: true };
204
- stepResults.step8_finalDoc = { success: true };
205
- } catch (error) {
206
- console.error("Error during signing process:", error);
207
- stepResults.step8_finalDoc = {
208
- success: false,
209
- error: error.message
210
- };
211
- }
212
- } catch (error) {
213
- console.error("Fatal error in debugging:", error);
214
- }
215
- const allValid = validationResults.xmlStructure.valid && validationResults.signatureElements.valid && validationResults.digestValues.valid && validationResults.certificateInfo.valid;
216
- return {
217
- success: allValid,
218
- signedXML,
219
- validationResults,
220
- stepByStepResults: stepResults
221
- };
222
- }
223
-
224
- //#endregion
225
- export { debugSignedInvoiceXML, testCanonicalizationAlgorithms, validateXMLStructure };
226
- //# sourceMappingURL=debug-invoice-submission.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug-invoice-submission.js","names":["xmlDocument: string","error: any","xmlString: string","errors: string[]","warnings: string[]","invoiceInfo: InvoiceV1_1","signingCredentials: SigningCredentials","signedXML: string | undefined"],"sources":["../../../src/utils/debug/debug-invoice-submission.ts"],"sourcesContent":["import { DOMParserImpl } from 'xmldom-ts'\nimport {\n extractCertificateInfo,\n generateSignedInvoiceXML,\n generateUBLXMLTemplate,\n validateKeyPair,\n} from '../invoice1-1'\nimport type {\n InvoiceV1_1,\n SigningCredentials,\n} from '../../types/documents/invoice-1_1.d.ts'\nimport { transformXmlInvoice } from '../signature/transform'\nimport {\n canonicalizeAndHashDocument,\n canonicalizeAndHashDocumentWithC14N11Fallback,\n} from '../signature/canonicalize'\n\n/**\n * Tests both canonicalization algorithms and compares their output\n * This can help determine if the algorithm difference affects signature validation\n * @param xmlDocument - The XML document string to test\n * @returns Object with canonicalization results and comparison\n */\nexport const testCanonicalizationAlgorithms = async (\n xmlDocument: string,\n): Promise<{\n exclusiveC14N: { success: boolean; digest?: string; error?: string }\n c14n11Fallback: { success: boolean; digest?: string; error?: string }\n areEqual: boolean\n}> => {\n const parser = new DOMParserImpl()\n const doc = parser.parseFromString(xmlDocument, 'application/xml')\n\n const results = {\n exclusiveC14N: { success: false } as any,\n c14n11Fallback: { success: false } as any,\n areEqual: false,\n }\n\n // Test Exclusive C14N\n try {\n const exclusiveDigest = await canonicalizeAndHashDocument(\n doc,\n 'http://www.w3.org/2001/10/xml-exc-c14n#',\n )\n results.exclusiveC14N = { success: true, digest: exclusiveDigest }\n } catch (error: any) {\n results.exclusiveC14N = { success: false, error: error.message }\n }\n\n // Test C14N 1.1 fallback\n try {\n const c14n11Digest =\n await canonicalizeAndHashDocumentWithC14N11Fallback(doc)\n results.c14n11Fallback = { success: true, digest: c14n11Digest }\n } catch (error: any) {\n results.c14n11Fallback = { success: false, error: error.message }\n }\n\n // Compare results\n if (results.exclusiveC14N.success && results.c14n11Fallback.success) {\n results.areEqual =\n results.exclusiveC14N.digest === results.c14n11Fallback.digest\n }\n\n return results\n}\n\n/**\n * Simple validation function that checks basic XML structure requirements\n */\nexport function validateXMLStructure(xmlString: string): {\n isValid: boolean\n errors: string[]\n warnings: string[]\n} {\n const errors: string[] = []\n const warnings: string[] = []\n\n try {\n const parser = new DOMParserImpl()\n const doc = parser.parseFromString(xmlString, 'application/xml')\n\n // Check for parser errors\n const parserErrors = doc.getElementsByTagName('parsererror')\n if (parserErrors.length > 0) {\n errors.push('XML parsing failed')\n return { isValid: false, errors, warnings }\n }\n\n // Check required elements\n const requiredElements = [\n 'Invoice',\n 'UBLExtensions',\n 'cbc:ID',\n 'cbc:IssueDate',\n 'cbc:IssueTime',\n 'cbc:InvoiceTypeCode',\n 'ds:Signature',\n 'ds:SignatureValue',\n 'ds:X509Certificate',\n ]\n\n for (const element of requiredElements) {\n const elements = element.includes(':')\n ? doc.getElementsByTagName(element)\n : doc.getElementsByTagName(element)\n\n if (elements.length === 0) {\n errors.push(`Missing required element: ${element}`)\n }\n }\n\n // Check namespace declarations\n const expectedNamespaces = [\n 'urn:oasis:names:specification:ubl:schema:xsd:Invoice-2',\n 'urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2',\n 'urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2',\n ]\n\n for (const ns of expectedNamespaces) {\n if (!xmlString.includes(ns)) {\n warnings.push(`Missing namespace declaration: ${ns}`)\n }\n }\n } catch (error: any) {\n errors.push(`XML validation error: ${error.message}`)\n }\n\n return {\n isValid: errors.length === 0,\n errors,\n warnings,\n }\n}\n\n/**\n * Comprehensive debugging function to help identify issues with generated XML\n * This validates the structure against MyInvois requirements and provides detailed feedback\n */\nexport async function debugSignedInvoiceXML(\n invoiceInfo: InvoiceV1_1,\n signingCredentials: SigningCredentials,\n): Promise<{\n success: boolean\n signedXML?: string\n validationResults: {\n xmlStructure: { valid: boolean; errors: string[] }\n signatureElements: { valid: boolean; errors: string[] }\n digestValues: { valid: boolean; errors: string[] }\n certificateInfo: { valid: boolean; errors: string[] }\n canonicalizationTest: any\n }\n stepByStepResults: {\n step1_template: { success: boolean; error?: string }\n step2_transform: { success: boolean; error?: string }\n step3_docDigest: { success: boolean; digest?: string; error?: string }\n step4_signature: { success: boolean; signature?: string; error?: string }\n step5_certDigest: { success: boolean; digest?: string; error?: string }\n step6_signedProps: { success: boolean; error?: string }\n step7_propsDigest: { success: boolean; digest?: string; error?: string }\n step8_finalDoc: { success: boolean; error?: string }\n }\n}> {\n const stepResults = {\n step1_template: { success: false } as any,\n step2_transform: { success: false } as any,\n step3_docDigest: { success: false } as any,\n step4_signature: { success: false } as any,\n step5_certDigest: { success: false } as any,\n step6_signedProps: { success: false } as any,\n step7_propsDigest: { success: false } as any,\n step8_finalDoc: { success: false } as any,\n }\n\n const validationResults = {\n xmlStructure: { valid: false, errors: [] as string[] },\n signatureElements: { valid: false, errors: [] as string[] },\n digestValues: { valid: false, errors: [] as string[] },\n certificateInfo: { valid: false, errors: [] as string[] },\n canonicalizationTest: null as any,\n }\n\n let signedXML: string | undefined\n\n try {\n // Step 1: Generate template\n try {\n const xmlTemplate = generateUBLXMLTemplate(invoiceInfo)\n stepResults.step1_template = { success: true }\n\n // Validate XML structure\n const parser = new DOMParserImpl()\n const doc = parser.parseFromString(xmlTemplate, 'application/xml')\n const parserErrors = doc.getElementsByTagName('parsererror')\n if (parserErrors.length > 0) {\n validationResults.xmlStructure.errors.push(\n 'XML template parsing failed',\n )\n } else {\n validationResults.xmlStructure.valid = true\n }\n } catch (error: any) {\n stepResults.step1_template = { success: false, error: error.message }\n validationResults.xmlStructure.errors.push(\n `Template generation failed: ${error.message}`,\n )\n }\n\n // Step 2: Transform\n try {\n const xmlTemplate = generateUBLXMLTemplate(invoiceInfo)\n const transformedXml = transformXmlInvoice(xmlTemplate)\n stepResults.step2_transform = { success: true }\n\n // Check if transformation worked correctly\n if (transformedXml.includes('UBLExtensions')) {\n validationResults.xmlStructure.errors.push(\n 'UBLExtensions not properly removed in transformation',\n )\n }\n if (transformedXml.includes('<cac:Signature>')) {\n validationResults.xmlStructure.errors.push(\n 'cac:Signature elements not properly removed in transformation',\n )\n }\n } catch (error: any) {\n stepResults.step2_transform = { success: false, error: error.message }\n }\n\n // Test canonicalization\n try {\n const xmlTemplate = generateUBLXMLTemplate(invoiceInfo)\n validationResults.canonicalizationTest =\n await testCanonicalizationAlgorithms(xmlTemplate)\n } catch (error: any) {\n validationResults.canonicalizationTest = { error: error.message }\n }\n\n // Continue with full signing process\n try {\n signedXML = await generateSignedInvoiceXML(\n invoiceInfo,\n signingCredentials,\n )\n\n // Parse the final signed XML for validation\n const parser = new DOMParserImpl()\n const finalDoc = parser.parseFromString(signedXML, 'application/xml')\n\n // Check signature elements are populated\n const signatureValue =\n finalDoc.getElementsByTagName('ds:SignatureValue')[0]\n const x509Certificate =\n finalDoc.getElementsByTagName('ds:X509Certificate')[0]\n const digestValues = finalDoc.getElementsByTagName('ds:DigestValue')\n\n if (!signatureValue || !signatureValue.textContent?.trim()) {\n validationResults.signatureElements.errors.push(\n 'SignatureValue is empty',\n )\n }\n\n if (!x509Certificate || !x509Certificate.textContent?.trim()) {\n validationResults.signatureElements.errors.push(\n 'X509Certificate is empty',\n )\n }\n\n if (digestValues.length < 2) {\n validationResults.digestValues.errors.push(\n 'Missing digest values (expected at least 2)',\n )\n } else {\n let emptyDigests = 0\n for (let i = 0; i < digestValues.length; i++) {\n const digestElement = digestValues[i]\n if (!digestElement || !digestElement.textContent?.trim()) {\n emptyDigests++\n }\n }\n if (emptyDigests > 0) {\n validationResults.digestValues.errors.push(\n `${emptyDigests} digest values are empty`,\n )\n }\n }\n\n // Validate certificate info\n try {\n const certInfo = extractCertificateInfo(\n signingCredentials.certificatePem,\n )\n const keyPairValid = validateKeyPair(\n signingCredentials.certificatePem,\n signingCredentials.privateKeyPem,\n )\n\n if (!keyPairValid) {\n validationResults.certificateInfo.errors.push(\n 'Certificate and private key do not match',\n )\n }\n\n if (!certInfo.issuerName || !certInfo.serialNumber) {\n validationResults.certificateInfo.errors.push(\n 'Certificate info extraction failed',\n )\n }\n\n if (validationResults.certificateInfo.errors.length === 0) {\n validationResults.certificateInfo.valid = true\n }\n } catch (error: any) {\n validationResults.certificateInfo.errors.push(\n `Certificate validation failed: ${error.message}`,\n )\n }\n\n // Set validation flags\n if (validationResults.signatureElements.errors.length === 0) {\n validationResults.signatureElements.valid = true\n }\n if (validationResults.digestValues.errors.length === 0) {\n validationResults.digestValues.valid = true\n }\n\n // Mark individual steps as successful if we got here\n stepResults.step3_docDigest = { success: true }\n stepResults.step4_signature = { success: true }\n stepResults.step5_certDigest = { success: true }\n stepResults.step6_signedProps = { success: true }\n stepResults.step7_propsDigest = { success: true }\n stepResults.step8_finalDoc = { success: true }\n } catch (error: any) {\n console.error('Error during signing process:', error)\n stepResults.step8_finalDoc = { success: false, error: error.message }\n }\n } catch (error: any) {\n console.error('Fatal error in debugging:', error)\n }\n\n const allValid =\n validationResults.xmlStructure.valid &&\n validationResults.signatureElements.valid &&\n validationResults.digestValues.valid &&\n validationResults.certificateInfo.valid\n\n return {\n success: allValid,\n signedXML,\n validationResults,\n stepByStepResults: stepResults,\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBaseUrl.d.ts","names":["environment: 'sandbox' | 'production'"],"sources":["../../src/utils/getBaseUrl.ts"],"sourcesContent":[],"mappings":";cAAa"}