@endevops/peppol-schema 0.1.0-beta.4 → 0.1.0-beta.5

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 (751) hide show
  1. package/README.md +9 -6
  2. package/dist/constants.d.ts +51 -0
  3. package/dist/constants.d.ts.map +1 -0
  4. package/dist/constants.js +48 -0
  5. package/dist/constants.js.map +1 -0
  6. package/dist/eas-codes.generated-D8jjHFij.js.map +1 -1
  7. package/dist/index-CfjMSrpQ.d.ts +3508 -0
  8. package/dist/index-CfjMSrpQ.d.ts.map +1 -0
  9. package/dist/index.d.ts +2 -2613
  10. package/dist/index.js +3121 -1563
  11. package/dist/index.js.map +1 -1
  12. package/dist/invoice-response-code-not-needs-schema-p_RKKNLc.js +18 -0
  13. package/dist/invoice-response-code-not-needs-schema-p_RKKNLc.js.map +1 -0
  14. package/dist/invoice-response-codes.d.ts +11 -0
  15. package/dist/invoice-response-codes.d.ts.map +1 -0
  16. package/dist/invoice-response-codes.js +32 -0
  17. package/dist/invoice-response-codes.js.map +1 -0
  18. package/dist/invoice-status-codes.generated-DL-agLdx.d.ts +24 -0
  19. package/dist/invoice-status-codes.generated-DL-agLdx.d.ts.map +1 -0
  20. package/dist/message-level-response-profile-id-DBpOW91B.js +9 -0
  21. package/dist/message-level-response-profile-id-DBpOW91B.js.map +1 -0
  22. package/dist/peppol-iso-date-string-BXLxzxdz.js +30 -0
  23. package/dist/peppol-iso-date-string-BXLxzxdz.js.map +1 -0
  24. package/dist/schematron.d.ts +408 -365
  25. package/dist/schematron.d.ts.map +1 -1
  26. package/dist/schematron.js +1975 -1501
  27. package/dist/schematron.js.map +1 -1
  28. package/dist/values.d.ts +95 -13218
  29. package/dist/values.d.ts.map +1 -1
  30. package/dist/values.js +1 -1
  31. package/dist/vat-dates.generated-CxFvt7m3.d.ts +68 -0
  32. package/dist/vat-dates.generated-CxFvt7m3.d.ts.map +1 -0
  33. package/dist/{vatex-codes.generated-BSgP3n5t.js → vatex-codes.generated-N7wsUrLh.js} +8 -9
  34. package/dist/vatex-codes.generated-N7wsUrLh.js.map +1 -0
  35. package/package.json +16 -18
  36. package/src/constants/transport-profile.ts +5 -1
  37. package/src/decoders/decode-billing.ts +1 -1
  38. package/src/decoders/decode-credit-note.ts +2 -4
  39. package/src/decoders/decode-invoice-response.ts +15 -37
  40. package/src/decoders/decode-invoice.ts +2 -4
  41. package/src/decoders/decode-message-level-response.ts +21 -48
  42. package/src/decoders/encode-credit-note.ts +1 -1
  43. package/src/decoders/encode-invoice-response.ts +7 -4
  44. package/src/decoders/encode-invoice.ts +1 -1
  45. package/src/decoders/encode-message-level-response.ts +4 -10
  46. package/src/decoders/fields/decode-additional-document-references.ts +1 -1
  47. package/src/decoders/fields/decode-address.ts +1 -1
  48. package/src/decoders/fields/decode-allowance-charges.ts +7 -15
  49. package/src/decoders/fields/decode-amount.ts +2 -2
  50. package/src/decoders/fields/decode-application-response.ts +21 -0
  51. package/src/decoders/fields/decode-billing-references.ts +1 -1
  52. package/src/decoders/fields/decode-contact.ts +1 -1
  53. package/src/decoders/fields/decode-credit-note-lines.ts +7 -15
  54. package/src/decoders/fields/decode-delivery.ts +1 -1
  55. package/src/decoders/fields/decode-electronic-address.ts +1 -1
  56. package/src/decoders/fields/decode-identifier.ts +1 -1
  57. package/src/decoders/fields/decode-invoice-line-period.ts +1 -1
  58. package/src/decoders/fields/decode-invoice-lines.ts +6 -14
  59. package/src/decoders/fields/decode-invoice-message-document-party.ts +2 -2
  60. package/src/decoders/fields/decode-invoice-message-party.ts +1 -6
  61. package/src/decoders/fields/decode-invoice-period.ts +7 -13
  62. package/src/decoders/fields/decode-legal-monetary-total.ts +1 -1
  63. package/src/decoders/fields/decode-line-allowance-charges.ts +7 -14
  64. package/src/decoders/fields/decode-line-price.ts +1 -7
  65. package/src/decoders/fields/decode-line-shared.ts +2 -4
  66. package/src/decoders/fields/decode-message-level-party.ts +1 -1
  67. package/src/decoders/fields/decode-node-list.ts +15 -0
  68. package/src/decoders/fields/decode-order-reference.ts +1 -1
  69. package/src/decoders/fields/decode-parties-tax-scheme.ts +1 -1
  70. package/src/decoders/fields/decode-party-legal-entity.ts +1 -1
  71. package/src/decoders/fields/decode-party-tax-scheme.ts +1 -1
  72. package/src/decoders/fields/decode-party.ts +3 -14
  73. package/src/decoders/fields/decode-payee-party.ts +1 -1
  74. package/src/decoders/fields/decode-payment-means.ts +2 -2
  75. package/src/decoders/fields/decode-payment-terms.ts +1 -1
  76. package/src/decoders/fields/decode-price-allowance-charge.ts +1 -7
  77. package/src/decoders/fields/decode-quantity.ts +1 -6
  78. package/src/decoders/fields/decode-simple-identifier.ts +1 -1
  79. package/src/decoders/fields/decode-tax-category.ts +1 -1
  80. package/src/decoders/fields/decode-tax-representative-party.ts +1 -1
  81. package/src/decoders/fields/decode-tax-totals.ts +2 -2
  82. package/src/decoders/fields/encode-additional-document-references.ts +3 -2
  83. package/src/decoders/fields/encode-address.ts +1 -1
  84. package/src/decoders/fields/encode-allowance-charges.ts +3 -2
  85. package/src/decoders/fields/encode-amount.ts +1 -1
  86. package/src/decoders/fields/encode-billing-references.ts +2 -2
  87. package/src/decoders/fields/encode-contact.ts +1 -1
  88. package/src/decoders/fields/encode-credit-note-lines.ts +2 -2
  89. package/src/decoders/fields/encode-delivery.ts +1 -1
  90. package/src/decoders/fields/encode-identifier.ts +1 -1
  91. package/src/decoders/fields/encode-invoice-line-period.ts +1 -1
  92. package/src/decoders/fields/encode-invoice-lines.ts +2 -2
  93. package/src/decoders/fields/encode-invoice-period.ts +1 -1
  94. package/src/decoders/fields/encode-legal-monetary-total.ts +1 -1
  95. package/src/decoders/fields/encode-line-allowance-charges.ts +2 -2
  96. package/src/decoders/fields/encode-line-price.ts +1 -1
  97. package/src/decoders/fields/encode-line-shared.ts +1 -1
  98. package/src/decoders/fields/encode-message-party.ts +3 -3
  99. package/src/decoders/fields/encode-order-reference.ts +1 -1
  100. package/src/decoders/fields/encode-parties-tax-scheme.ts +1 -1
  101. package/src/decoders/fields/encode-party-tax-scheme.ts +1 -1
  102. package/src/decoders/fields/encode-party.ts +1 -1
  103. package/src/decoders/fields/encode-payee-party.ts +1 -1
  104. package/src/decoders/fields/encode-payment-means.ts +2 -2
  105. package/src/decoders/fields/encode-payment-terms.ts +1 -1
  106. package/src/decoders/fields/encode-price-allowance-charges.ts +1 -1
  107. package/src/decoders/fields/encode-quantity.ts +1 -1
  108. package/src/decoders/fields/encode-tax-category.ts +1 -1
  109. package/src/decoders/fields/encode-tax-representative-party.ts +1 -1
  110. package/src/decoders/fields/encode-tax-totals.ts +4 -4
  111. package/src/helpers/bool.ts +9 -12
  112. package/src/helpers/get-prop.ts +2 -4
  113. package/src/helpers/str-or-und.ts +3 -4
  114. package/src/helpers/str.ts +12 -8
  115. package/src/index.ts +56 -6
  116. package/src/schemas/fields/peppol-additional-document-reference-schema.ts +123 -0
  117. package/src/schemas/fields/peppol-address-schema.ts +112 -0
  118. package/src/schemas/fields/peppol-allowance-charge-schema.ts +104 -0
  119. package/src/schemas/fields/peppol-amount-schema.ts +23 -0
  120. package/src/schemas/fields/peppol-base-line-schema.ts +141 -0
  121. package/src/{effect → schemas}/fields/peppol-billing-reference-schema.ts +25 -20
  122. package/src/schemas/fields/peppol-binary-object-schema.ts +52 -0
  123. package/src/schemas/fields/peppol-contact-schema.ts +20 -0
  124. package/src/schemas/fields/peppol-credit-note-line-schema.ts +44 -0
  125. package/src/schemas/fields/peppol-delivery-schema.ts +109 -0
  126. package/src/schemas/fields/peppol-identifier-schema.ts +21 -0
  127. package/src/schemas/fields/peppol-invoice-line-period-schema.ts +35 -0
  128. package/src/{effect → schemas}/fields/peppol-invoice-line-schema.ts +10 -10
  129. package/src/schemas/fields/peppol-invoice-period-schema.ts +31 -0
  130. package/src/schemas/fields/peppol-item-classification-schema.ts +46 -0
  131. package/src/schemas/fields/peppol-legal-monetary-total-schema.ts +127 -0
  132. package/src/schemas/fields/peppol-line-allowance-charge-schema.ts +68 -0
  133. package/src/schemas/fields/peppol-line-item-schema.ts +196 -0
  134. package/src/schemas/fields/peppol-line-price-allowance-charge-schema.ts +41 -0
  135. package/src/schemas/fields/peppol-line-price-schema.ts +32 -0
  136. package/src/schemas/fields/peppol-order-reference-schema.ts +38 -0
  137. package/src/schemas/fields/peppol-party-base-schema.ts +145 -0
  138. package/src/schemas/fields/peppol-party-legal-entity-schema.ts +32 -0
  139. package/src/schemas/fields/peppol-party-tax-scheme-schema.ts +41 -0
  140. package/src/schemas/fields/peppol-payee-party-schema.ts +119 -0
  141. package/src/schemas/fields/peppol-payment-means-schema.ts +224 -0
  142. package/src/schemas/fields/peppol-payment-terms-schema.ts +25 -0
  143. package/src/schemas/fields/peppol-quantity-schema.ts +22 -0
  144. package/src/schemas/fields/peppol-reference-schema.ts +9 -0
  145. package/src/schemas/fields/peppol-tax-category-schema.ts +47 -0
  146. package/src/schemas/fields/peppol-tax-representative-schema.ts +26 -0
  147. package/src/{effect → schemas}/fields/peppol-tax-subtotal-category-schema.ts +7 -6
  148. package/src/schemas/fields/peppol-tax-subtotal-schema.ts +33 -0
  149. package/src/schemas/fields/peppol-tax-totals-base-schema.ts +28 -0
  150. package/src/schemas/peppol-billing-base-schema.ts +366 -0
  151. package/src/schemas/peppol-credit-note-schema.ts +31 -0
  152. package/src/schemas/peppol-document-response-document-reference-schema.ts +41 -0
  153. package/src/schemas/peppol-document-response-document-schema.ts +38 -0
  154. package/src/schemas/peppol-document-response-line-response-content-schema.ts +49 -0
  155. package/src/schemas/peppol-document-response-line-response-schema.ts +40 -0
  156. package/src/schemas/peppol-document-schema.ts +120 -0
  157. package/src/{effect → schemas}/peppol-invoice-response-document-actual-response-schema.ts +25 -16
  158. package/src/schemas/peppol-invoice-response-document-actual-response-status-schema.ts +63 -0
  159. package/src/schemas/peppol-invoice-response-schema.ts +176 -0
  160. package/src/schemas/peppol-invoice-response-status-reason-code-schema.ts +40 -0
  161. package/src/schemas/peppol-invoice-schema.ts +45 -0
  162. package/src/schemas/peppol-iso-date-string.ts +20 -0
  163. package/src/schemas/peppol-message-level-response-document-response-schema.ts +35 -0
  164. package/src/schemas/peppol-message-level-response-party-schema.ts +20 -0
  165. package/src/schemas/peppol-message-level-response-schema.ts +98 -0
  166. package/src/schemas/utils/format-xsd-time.ts +80 -0
  167. package/src/{effect → schemas}/utils/index.ts +1 -1
  168. package/src/schemas/utils/is-valid-process.ts +1 -1
  169. package/src/schemas/utils/opaque.ts +19 -0
  170. package/src/schemas/utils/peppol-xsd-time-schema.ts +79 -0
  171. package/src/schemas/utils/quantity-unit-code-to-intl-unit.ts +2 -2
  172. package/src/schemas/values/credit-note-type-code-schema.ts +3 -5
  173. package/src/schemas/values/document-type-schemes-schema.ts +3 -5
  174. package/src/schemas/values/document-type-values-schema.ts +4 -7
  175. package/src/{effect → schemas}/values/duty-tax-fee-category-schema.ts +3 -3
  176. package/src/schemas/values/invoice-type-code-schema.ts +4 -8
  177. package/src/schemas/values/process-from-document-type-schema.ts +10 -12
  178. package/src/schemas/values/quantity-unit-codes-schema.ts +4 -8
  179. package/src/schematron/cen/ae/cen-en16931-br-ae-01.ts +6 -5
  180. package/src/schematron/cen/ae/cen-en16931-br-ae-02.ts +6 -5
  181. package/src/schematron/cen/ae/cen-en16931-br-ae-03.ts +6 -5
  182. package/src/schematron/cen/ae/cen-en16931-br-ae-04.ts +6 -5
  183. package/src/schematron/cen/ae/cen-en16931-br-ae-05.ts +6 -5
  184. package/src/schematron/cen/ae/cen-en16931-br-ae-06.ts +6 -5
  185. package/src/schematron/cen/ae/cen-en16931-br-ae-07.ts +6 -5
  186. package/src/schematron/cen/ae/cen-en16931-br-ae-08.ts +6 -5
  187. package/src/schematron/cen/ae/cen-en16931-br-ae-09.ts +6 -5
  188. package/src/schematron/cen/ae/cen-en16931-br-ae-10.ts +6 -5
  189. package/src/schematron/cen/af/cen-en16931-br-af-01.ts +6 -5
  190. package/src/schematron/cen/af/cen-en16931-br-af-02.ts +6 -5
  191. package/src/schematron/cen/af/cen-en16931-br-af-03.ts +6 -10
  192. package/src/schematron/cen/af/cen-en16931-br-af-04.ts +6 -5
  193. package/src/schematron/cen/af/cen-en16931-br-af-05.ts +6 -5
  194. package/src/schematron/cen/af/cen-en16931-br-af-06.ts +6 -5
  195. package/src/schematron/cen/af/cen-en16931-br-af-07.ts +6 -5
  196. package/src/schematron/cen/af/cen-en16931-br-af-08.ts +6 -5
  197. package/src/schematron/cen/af/cen-en16931-br-af-09.ts +6 -5
  198. package/src/schematron/cen/af/cen-en16931-br-af-10.ts +6 -5
  199. package/src/schematron/cen/ag/cen-en16931-br-ag-01.ts +6 -5
  200. package/src/schematron/cen/ag/cen-en16931-br-ag-02.ts +6 -5
  201. package/src/schematron/cen/ag/cen-en16931-br-ag-03.ts +6 -10
  202. package/src/schematron/cen/ag/cen-en16931-br-ag-04.ts +6 -5
  203. package/src/schematron/cen/ag/cen-en16931-br-ag-05.ts +6 -5
  204. package/src/schematron/cen/ag/cen-en16931-br-ag-06.ts +6 -5
  205. package/src/schematron/cen/ag/cen-en16931-br-ag-07.ts +6 -5
  206. package/src/schematron/cen/ag/cen-en16931-br-ag-08.ts +6 -5
  207. package/src/schematron/cen/ag/cen-en16931-br-ag-09.ts +6 -5
  208. package/src/schematron/cen/ag/cen-en16931-br-ag-10.ts +6 -5
  209. package/src/schematron/cen/b/cen-en16931-br-b-01.ts +6 -5
  210. package/src/schematron/cen/b/cen-en16931-br-b-02.ts +6 -5
  211. package/src/schematron/cen/cen-en16931-br-01.ts +6 -5
  212. package/src/schematron/cen/cen-en16931-br-02.ts +6 -5
  213. package/src/schematron/cen/cen-en16931-br-03.ts +9 -6
  214. package/src/schematron/cen/cen-en16931-br-04.ts +6 -5
  215. package/src/schematron/cen/cen-en16931-br-05.ts +6 -5
  216. package/src/schematron/cen/cen-en16931-br-06.ts +6 -5
  217. package/src/schematron/cen/cen-en16931-br-07.ts +6 -5
  218. package/src/schematron/cen/cen-en16931-br-08.ts +6 -5
  219. package/src/schematron/cen/cen-en16931-br-09.ts +6 -5
  220. package/src/schematron/cen/cen-en16931-br-10.ts +6 -5
  221. package/src/schematron/cen/cen-en16931-br-11.ts +6 -5
  222. package/src/schematron/cen/cen-en16931-br-12.ts +6 -5
  223. package/src/schematron/cen/cen-en16931-br-13.ts +6 -5
  224. package/src/schematron/cen/cen-en16931-br-14.ts +6 -5
  225. package/src/schematron/cen/cen-en16931-br-15.ts +6 -5
  226. package/src/schematron/cen/cen-en16931-br-16.ts +6 -5
  227. package/src/schematron/cen/cen-en16931-br-17.ts +6 -5
  228. package/src/schematron/cen/cen-en16931-br-18.ts +6 -5
  229. package/src/schematron/cen/cen-en16931-br-19.ts +6 -5
  230. package/src/schematron/cen/cen-en16931-br-20.ts +6 -5
  231. package/src/schematron/cen/cen-en16931-br-21.ts +6 -5
  232. package/src/schematron/cen/cen-en16931-br-22.ts +6 -5
  233. package/src/schematron/cen/cen-en16931-br-23.ts +6 -5
  234. package/src/schematron/cen/cen-en16931-br-24.ts +6 -5
  235. package/src/schematron/cen/cen-en16931-br-25.ts +6 -5
  236. package/src/schematron/cen/cen-en16931-br-26.ts +6 -5
  237. package/src/schematron/cen/cen-en16931-br-27.ts +6 -5
  238. package/src/schematron/cen/cen-en16931-br-28.ts +6 -5
  239. package/src/schematron/cen/cen-en16931-br-29.ts +6 -5
  240. package/src/schematron/cen/cen-en16931-br-30.ts +6 -5
  241. package/src/schematron/cen/cen-en16931-br-31.ts +6 -5
  242. package/src/schematron/cen/cen-en16931-br-32.ts +6 -5
  243. package/src/schematron/cen/cen-en16931-br-33.ts +6 -5
  244. package/src/schematron/cen/cen-en16931-br-36.ts +6 -5
  245. package/src/schematron/cen/cen-en16931-br-37.ts +6 -5
  246. package/src/schematron/cen/cen-en16931-br-38.ts +6 -5
  247. package/src/schematron/cen/cen-en16931-br-41.ts +6 -5
  248. package/src/schematron/cen/cen-en16931-br-42.ts +6 -5
  249. package/src/schematron/cen/cen-en16931-br-43.ts +6 -5
  250. package/src/schematron/cen/cen-en16931-br-44.ts +6 -5
  251. package/src/schematron/cen/cen-en16931-br-45.ts +6 -5
  252. package/src/schematron/cen/cen-en16931-br-46.ts +6 -5
  253. package/src/schematron/cen/cen-en16931-br-47.ts +6 -5
  254. package/src/schematron/cen/cen-en16931-br-48.ts +6 -5
  255. package/src/schematron/cen/cen-en16931-br-49.ts +6 -5
  256. package/src/schematron/cen/cen-en16931-br-50.ts +6 -5
  257. package/src/schematron/cen/cen-en16931-br-51.ts +6 -5
  258. package/src/schematron/cen/cen-en16931-br-52.ts +6 -5
  259. package/src/schematron/cen/cen-en16931-br-53.ts +6 -5
  260. package/src/schematron/cen/cen-en16931-br-54.ts +6 -5
  261. package/src/schematron/cen/cen-en16931-br-55.ts +6 -5
  262. package/src/schematron/cen/cen-en16931-br-56.ts +6 -5
  263. package/src/schematron/cen/cen-en16931-br-57.ts +6 -5
  264. package/src/schematron/cen/cen-en16931-br-61.ts +6 -5
  265. package/src/schematron/cen/cen-en16931-br-62.ts +6 -5
  266. package/src/schematron/cen/cen-en16931-br-63.ts +6 -5
  267. package/src/schematron/cen/cen-en16931-br-64.ts +6 -5
  268. package/src/schematron/cen/cen-en16931-br-65.ts +6 -5
  269. package/src/schematron/cen/cl/cen-en16931-br-cl-08.ts +6 -5
  270. package/src/schematron/cen/co/cen-en16931-br-co-03.ts +6 -5
  271. package/src/schematron/cen/co/cen-en16931-br-co-04.ts +6 -5
  272. package/src/schematron/cen/co/cen-en16931-br-co-05.ts +6 -5
  273. package/src/schematron/cen/co/cen-en16931-br-co-06.ts +6 -5
  274. package/src/schematron/cen/co/cen-en16931-br-co-07.ts +6 -5
  275. package/src/schematron/cen/co/cen-en16931-br-co-08.ts +6 -5
  276. package/src/schematron/cen/co/cen-en16931-br-co-09.ts +6 -5
  277. package/src/schematron/cen/co/cen-en16931-br-co-10.ts +6 -5
  278. package/src/schematron/cen/co/cen-en16931-br-co-11.ts +6 -5
  279. package/src/schematron/cen/co/cen-en16931-br-co-12.ts +6 -5
  280. package/src/schematron/cen/co/cen-en16931-br-co-13.ts +6 -5
  281. package/src/schematron/cen/co/cen-en16931-br-co-14.ts +6 -5
  282. package/src/schematron/cen/co/cen-en16931-br-co-15.ts +6 -5
  283. package/src/schematron/cen/co/cen-en16931-br-co-16.ts +6 -5
  284. package/src/schematron/cen/co/cen-en16931-br-co-17.ts +6 -5
  285. package/src/schematron/cen/co/cen-en16931-br-co-18.ts +6 -5
  286. package/src/schematron/cen/co/cen-en16931-br-co-19.ts +6 -5
  287. package/src/schematron/cen/co/cen-en16931-br-co-20.ts +6 -5
  288. package/src/schematron/cen/co/cen-en16931-br-co-21.ts +6 -5
  289. package/src/schematron/cen/co/cen-en16931-br-co-22.ts +6 -5
  290. package/src/schematron/cen/co/cen-en16931-br-co-23.ts +6 -5
  291. package/src/schematron/cen/co/cen-en16931-br-co-24.ts +6 -5
  292. package/src/schematron/cen/co/cen-en16931-br-co-25.ts +6 -5
  293. package/src/schematron/cen/co/cen-en16931-br-co-26.ts +6 -5
  294. package/src/schematron/cen/dec/cen-en16931-br-dec-01.ts +6 -5
  295. package/src/schematron/cen/dec/cen-en16931-br-dec-02.ts +6 -5
  296. package/src/schematron/cen/dec/cen-en16931-br-dec-05.ts +6 -5
  297. package/src/schematron/cen/dec/cen-en16931-br-dec-06.ts +6 -5
  298. package/src/schematron/cen/dec/cen-en16931-br-dec-09.ts +6 -5
  299. package/src/schematron/cen/dec/cen-en16931-br-dec-10.ts +6 -5
  300. package/src/schematron/cen/dec/cen-en16931-br-dec-11.ts +6 -5
  301. package/src/schematron/cen/dec/cen-en16931-br-dec-12.ts +6 -5
  302. package/src/schematron/cen/dec/cen-en16931-br-dec-13.ts +6 -5
  303. package/src/schematron/cen/dec/cen-en16931-br-dec-14.ts +6 -5
  304. package/src/schematron/cen/dec/cen-en16931-br-dec-15.ts +6 -5
  305. package/src/schematron/cen/dec/cen-en16931-br-dec-16.ts +6 -5
  306. package/src/schematron/cen/dec/cen-en16931-br-dec-17.ts +6 -5
  307. package/src/schematron/cen/dec/cen-en16931-br-dec-18.ts +6 -5
  308. package/src/schematron/cen/dec/cen-en16931-br-dec-19.ts +6 -5
  309. package/src/schematron/cen/dec/cen-en16931-br-dec-20.ts +6 -5
  310. package/src/schematron/cen/dec/cen-en16931-br-dec-23.ts +6 -5
  311. package/src/schematron/cen/dec/cen-en16931-br-dec-24.ts +6 -5
  312. package/src/schematron/cen/dec/cen-en16931-br-dec-25.ts +6 -5
  313. package/src/schematron/cen/dec/cen-en16931-br-dec-27.ts +6 -5
  314. package/src/schematron/cen/dec/cen-en16931-br-dec-28.ts +6 -5
  315. package/src/schematron/cen/e/cen-en16931-br-e-01.ts +6 -5
  316. package/src/schematron/cen/e/cen-en16931-br-e-02.ts +6 -5
  317. package/src/schematron/cen/e/cen-en16931-br-e-03.ts +6 -10
  318. package/src/schematron/cen/e/cen-en16931-br-e-04.ts +6 -5
  319. package/src/schematron/cen/e/cen-en16931-br-e-05.ts +6 -5
  320. package/src/schematron/cen/e/cen-en16931-br-e-06.ts +6 -5
  321. package/src/schematron/cen/e/cen-en16931-br-e-07.ts +6 -5
  322. package/src/schematron/cen/e/cen-en16931-br-e-08.ts +6 -5
  323. package/src/schematron/cen/e/cen-en16931-br-e-09.ts +6 -5
  324. package/src/schematron/cen/e/cen-en16931-br-e-10.ts +6 -5
  325. package/src/schematron/cen/g/cen-en16931-br-g-01.ts +6 -5
  326. package/src/schematron/cen/g/cen-en16931-br-g-02.ts +6 -5
  327. package/src/schematron/cen/g/cen-en16931-br-g-03.ts +6 -5
  328. package/src/schematron/cen/g/cen-en16931-br-g-04.ts +6 -5
  329. package/src/schematron/cen/g/cen-en16931-br-g-05.ts +6 -5
  330. package/src/schematron/cen/g/cen-en16931-br-g-06.ts +6 -5
  331. package/src/schematron/cen/g/cen-en16931-br-g-07.ts +6 -5
  332. package/src/schematron/cen/g/cen-en16931-br-g-08.ts +6 -5
  333. package/src/schematron/cen/g/cen-en16931-br-g-09.ts +6 -5
  334. package/src/schematron/cen/g/cen-en16931-br-g-10.ts +6 -5
  335. package/src/schematron/cen/ic/cen-en16931-br-ic-01.ts +6 -5
  336. package/src/schematron/cen/ic/cen-en16931-br-ic-02.ts +6 -5
  337. package/src/schematron/cen/ic/cen-en16931-br-ic-03.ts +6 -5
  338. package/src/schematron/cen/ic/cen-en16931-br-ic-04.ts +6 -5
  339. package/src/schematron/cen/ic/cen-en16931-br-ic-05.ts +6 -5
  340. package/src/schematron/cen/ic/cen-en16931-br-ic-06.ts +6 -5
  341. package/src/schematron/cen/ic/cen-en16931-br-ic-07.ts +6 -5
  342. package/src/schematron/cen/ic/cen-en16931-br-ic-08.ts +6 -5
  343. package/src/schematron/cen/ic/cen-en16931-br-ic-09.ts +6 -5
  344. package/src/schematron/cen/ic/cen-en16931-br-ic-10.ts +6 -5
  345. package/src/schematron/cen/ic/cen-en16931-br-ic-11.ts +6 -5
  346. package/src/schematron/cen/ic/cen-en16931-br-ic-12.ts +6 -5
  347. package/src/schematron/cen/o/cen-en16931-br-o-01.ts +6 -5
  348. package/src/schematron/cen/o/cen-en16931-br-o-02.ts +6 -5
  349. package/src/schematron/cen/o/cen-en16931-br-o-03.ts +6 -5
  350. package/src/schematron/cen/o/cen-en16931-br-o-04.ts +6 -5
  351. package/src/schematron/cen/o/cen-en16931-br-o-05.ts +6 -5
  352. package/src/schematron/cen/o/cen-en16931-br-o-06.ts +6 -5
  353. package/src/schematron/cen/o/cen-en16931-br-o-07.ts +6 -5
  354. package/src/schematron/cen/o/cen-en16931-br-o-08.ts +6 -5
  355. package/src/schematron/cen/o/cen-en16931-br-o-09.ts +6 -5
  356. package/src/schematron/cen/o/cen-en16931-br-o-10.ts +6 -5
  357. package/src/schematron/cen/o/cen-en16931-br-o-11.ts +6 -5
  358. package/src/schematron/cen/o/cen-en16931-br-o-12.ts +6 -5
  359. package/src/schematron/cen/o/cen-en16931-br-o-13.ts +6 -5
  360. package/src/schematron/cen/o/cen-en16931-br-o-14.ts +6 -5
  361. package/src/schematron/cen/s/cen-en16931-br-s-01.ts +6 -5
  362. package/src/schematron/cen/s/cen-en16931-br-s-02.ts +6 -5
  363. package/src/schematron/cen/s/cen-en16931-br-s-03.ts +6 -10
  364. package/src/schematron/cen/s/cen-en16931-br-s-04.ts +6 -5
  365. package/src/schematron/cen/s/cen-en16931-br-s-05.ts +6 -5
  366. package/src/schematron/cen/s/cen-en16931-br-s-06.ts +6 -5
  367. package/src/schematron/cen/s/cen-en16931-br-s-07.ts +6 -5
  368. package/src/schematron/cen/s/cen-en16931-br-s-08.ts +6 -5
  369. package/src/schematron/cen/s/cen-en16931-br-s-09.ts +6 -5
  370. package/src/schematron/cen/s/cen-en16931-br-s-10.ts +6 -5
  371. package/src/schematron/cen/z/cen-en16931-br-z-01.ts +6 -5
  372. package/src/schematron/cen/z/cen-en16931-br-z-02.ts +6 -5
  373. package/src/schematron/cen/z/cen-en16931-br-z-03.ts +6 -10
  374. package/src/schematron/cen/z/cen-en16931-br-z-04.ts +6 -5
  375. package/src/schematron/cen/z/cen-en16931-br-z-05.ts +6 -5
  376. package/src/schematron/cen/z/cen-en16931-br-z-06.ts +6 -5
  377. package/src/schematron/cen/z/cen-en16931-br-z-07.ts +6 -5
  378. package/src/schematron/cen/z/cen-en16931-br-z-08.ts +6 -5
  379. package/src/schematron/cen/z/cen-en16931-br-z-09.ts +6 -5
  380. package/src/schematron/cen/z/cen-en16931-br-z-10.ts +6 -5
  381. package/src/schematron/de/de-r-001.ts +8 -7
  382. package/src/schematron/de/de-r-002.ts +8 -7
  383. package/src/schematron/de/de-r-003.ts +8 -7
  384. package/src/schematron/de/de-r-004.ts +8 -7
  385. package/src/schematron/de/de-r-005.ts +8 -7
  386. package/src/schematron/de/de-r-006.ts +8 -7
  387. package/src/schematron/de/de-r-007.ts +8 -7
  388. package/src/schematron/de/de-r-008.ts +8 -7
  389. package/src/schematron/de/de-r-009.ts +8 -7
  390. package/src/schematron/de/de-r-010.ts +9 -8
  391. package/src/schematron/de/de-r-011.ts +9 -8
  392. package/src/schematron/de/de-r-014.ts +8 -7
  393. package/src/schematron/de/de-r-015.ts +8 -7
  394. package/src/schematron/de/de-r-016.ts +9 -8
  395. package/src/schematron/de/de-r-017.ts +8 -7
  396. package/src/schematron/de/de-r-018.ts +10 -9
  397. package/src/schematron/de/de-r-019.ts +8 -7
  398. package/src/schematron/de/de-r-020.ts +8 -7
  399. package/src/schematron/de/de-r-022.ts +8 -7
  400. package/src/schematron/de/de-r-023-1.ts +8 -7
  401. package/src/schematron/de/de-r-023-2.ts +8 -7
  402. package/src/schematron/de/de-r-024-1.ts +8 -7
  403. package/src/schematron/de/de-r-024-2.ts +8 -7
  404. package/src/schematron/de/de-r-025-1.ts +8 -7
  405. package/src/schematron/de/de-r-025-2.ts +8 -7
  406. package/src/schematron/de/de-r-026.ts +9 -8
  407. package/src/schematron/de/de-r-027.ts +8 -7
  408. package/src/schematron/de/de-r-028.ts +8 -7
  409. package/src/schematron/de/de-r-030.ts +9 -8
  410. package/src/schematron/de/de-r-031.ts +8 -7
  411. package/src/schematron/dk/dk-r-002.ts +7 -6
  412. package/src/schematron/dk/dk-r-003.ts +8 -7
  413. package/src/schematron/dk/dk-r-004.ts +8 -7
  414. package/src/schematron/dk/dk-r-005.ts +8 -7
  415. package/src/schematron/dk/dk-r-006.ts +8 -7
  416. package/src/schematron/dk/dk-r-007.ts +8 -7
  417. package/src/schematron/dk/dk-r-008.ts +8 -7
  418. package/src/schematron/dk/dk-r-009.ts +8 -7
  419. package/src/schematron/dk/dk-r-010.ts +8 -7
  420. package/src/schematron/dk/dk-r-011.ts +8 -7
  421. package/src/schematron/dk/dk-r-013.ts +8 -7
  422. package/src/schematron/dk/dk-r-014.ts +7 -6
  423. package/src/schematron/dk/dk-r-016.ts +8 -7
  424. package/src/schematron/dk/dk-r-017.ts +8 -7
  425. package/src/schematron/errors.ts +17 -0
  426. package/src/schematron/gr/gr-r-001-1.ts +7 -6
  427. package/src/schematron/gr/gr-r-001-2.ts +8 -7
  428. package/src/schematron/gr/gr-r-001-3.ts +14 -9
  429. package/src/schematron/gr/gr-r-001-4.ts +8 -7
  430. package/src/schematron/gr/gr-r-001-5.ts +8 -7
  431. package/src/schematron/gr/gr-r-001-6.ts +7 -6
  432. package/src/schematron/gr/gr-r-001-7.ts +7 -6
  433. package/src/schematron/gr/gr-r-002.ts +7 -6
  434. package/src/schematron/gr/gr-r-003.ts +8 -7
  435. package/src/schematron/gr/gr-r-004-1.ts +7 -6
  436. package/src/schematron/gr/gr-r-004-2.ts +7 -6
  437. package/src/schematron/gr/gr-r-005.ts +7 -6
  438. package/src/schematron/gr/gr-r-006.ts +8 -7
  439. package/src/schematron/gr/gr-r-008-2.ts +7 -6
  440. package/src/schematron/gr/gr-r-008-3.ts +7 -6
  441. package/src/schematron/gr/gr-r-009.ts +7 -6
  442. package/src/schematron/gr/gr-r-010.ts +7 -6
  443. package/src/schematron/gr/gr-s-008-1.ts +7 -6
  444. package/src/schematron/gr/gr-s-011.ts +8 -7
  445. package/src/schematron/helpers.ts +36 -11
  446. package/src/schematron/index.ts +6 -1
  447. package/src/schematron/is/is-r-001.ts +7 -6
  448. package/src/schematron/is/is-r-002.ts +7 -6
  449. package/src/schematron/is/is-r-003.ts +7 -6
  450. package/src/schematron/is/is-r-004.ts +7 -6
  451. package/src/schematron/is/is-r-005.ts +7 -6
  452. package/src/schematron/is/is-r-006.ts +8 -7
  453. package/src/schematron/is/is-r-007.ts +8 -7
  454. package/src/schematron/is/is-r-008.ts +8 -7
  455. package/src/schematron/is/is-r-009.ts +8 -7
  456. package/src/schematron/is/is-r-010.ts +9 -8
  457. package/src/schematron/it/it-r-001.ts +7 -6
  458. package/src/schematron/it/it-r-002.ts +7 -6
  459. package/src/schematron/it/it-r-003.ts +7 -6
  460. package/src/schematron/it/it-r-004.ts +7 -6
  461. package/src/schematron/nl/nl-r-001.ts +7 -6
  462. package/src/schematron/nl/nl-r-002.ts +7 -6
  463. package/src/schematron/nl/nl-r-003.ts +8 -7
  464. package/src/schematron/nl/nl-r-004.ts +7 -6
  465. package/src/schematron/nl/nl-r-005.ts +8 -7
  466. package/src/schematron/nl/nl-r-006.ts +8 -7
  467. package/src/schematron/nl/nl-r-007.ts +8 -7
  468. package/src/schematron/nl/nl-r-008.ts +7 -6
  469. package/src/schematron/nl/nl-r-009.ts +8 -7
  470. package/src/schematron/no/no-r-001.ts +8 -7
  471. package/src/schematron/no/no-r-002.ts +7 -6
  472. package/src/schematron/peppol/cl/peppol-en16931-cl001.ts +6 -5
  473. package/src/schematron/peppol/cl/peppol-en16931-cl002.ts +6 -5
  474. package/src/schematron/peppol/cl/peppol-en16931-cl003.ts +6 -5
  475. package/src/schematron/peppol/cl/peppol-en16931-cl006.ts +7 -6
  476. package/src/schematron/peppol/cl/peppol-en16931-cl007.ts +6 -5
  477. package/src/schematron/peppol/cl/peppol-en16931-cl008.ts +6 -5
  478. package/src/schematron/peppol/common/peppol-common-r040.ts +6 -5
  479. package/src/schematron/peppol/common/peppol-common-r041.ts +6 -5
  480. package/src/schematron/peppol/common/peppol-common-r042.ts +6 -5
  481. package/src/schematron/peppol/common/peppol-common-r043.ts +6 -5
  482. package/src/schematron/peppol/common/peppol-common-r044.ts +6 -5
  483. package/src/schematron/peppol/common/peppol-common-r045.ts +6 -5
  484. package/src/schematron/peppol/common/peppol-common-r046.ts +6 -5
  485. package/src/schematron/peppol/common/peppol-common-r047.ts +6 -5
  486. package/src/schematron/peppol/common/peppol-common-r049.ts +6 -5
  487. package/src/schematron/peppol/common/peppol-common-r050.ts +6 -5
  488. package/src/schematron/peppol/common/peppol-common-r052.ts +6 -5
  489. package/src/schematron/peppol/common/peppol-common-r053.ts +6 -5
  490. package/src/schematron/peppol/f/peppol-en16931-f001.ts +20 -13
  491. package/src/schematron/peppol/p/peppol-en16931-p0100.ts +8 -7
  492. package/src/schematron/peppol/p/peppol-en16931-p0101.ts +8 -7
  493. package/src/schematron/peppol/p/peppol-en16931-p0104.ts +6 -5
  494. package/src/schematron/peppol/p/peppol-en16931-p0105.ts +6 -5
  495. package/src/schematron/peppol/p/peppol-en16931-p0106.ts +6 -5
  496. package/src/schematron/peppol/p/peppol-en16931-p0107.ts +6 -5
  497. package/src/schematron/peppol/p/peppol-en16931-p0108.ts +6 -5
  498. package/src/schematron/peppol/p/peppol-en16931-p0109.ts +6 -5
  499. package/src/schematron/peppol/p/peppol-en16931-p0110.ts +6 -5
  500. package/src/schematron/peppol/p/peppol-en16931-p0111.ts +6 -5
  501. package/src/schematron/peppol/p/peppol-en16931-p0112.ts +7 -6
  502. package/src/schematron/peppol/r/peppol-en16931-r001.ts +11 -13
  503. package/src/schematron/peppol/r/peppol-en16931-r002.ts +6 -5
  504. package/src/schematron/peppol/r/peppol-en16931-r003.ts +6 -5
  505. package/src/schematron/peppol/r/peppol-en16931-r004.ts +6 -5
  506. package/src/schematron/peppol/r/peppol-en16931-r005.ts +7 -6
  507. package/src/schematron/peppol/r/peppol-en16931-r007.ts +6 -5
  508. package/src/schematron/peppol/r/peppol-en16931-r008.ts +6 -5
  509. package/src/schematron/peppol/r/peppol-en16931-r010.ts +6 -5
  510. package/src/schematron/peppol/r/peppol-en16931-r020.ts +6 -5
  511. package/src/schematron/peppol/r/peppol-en16931-r040.ts +6 -5
  512. package/src/schematron/peppol/r/peppol-en16931-r041.ts +6 -5
  513. package/src/schematron/peppol/r/peppol-en16931-r042.ts +6 -5
  514. package/src/schematron/peppol/r/peppol-en16931-r043.ts +6 -5
  515. package/src/schematron/peppol/r/peppol-en16931-r044.ts +6 -5
  516. package/src/schematron/peppol/r/peppol-en16931-r046.ts +6 -5
  517. package/src/schematron/peppol/r/peppol-en16931-r051.ts +6 -5
  518. package/src/schematron/peppol/r/peppol-en16931-r053.ts +6 -5
  519. package/src/schematron/peppol/r/peppol-en16931-r054.ts +6 -5
  520. package/src/schematron/peppol/r/peppol-en16931-r055.ts +8 -7
  521. package/src/schematron/peppol/r/peppol-en16931-r061.ts +6 -5
  522. package/src/schematron/peppol/r/peppol-en16931-r100.ts +6 -5
  523. package/src/schematron/peppol/r/peppol-en16931-r101.ts +6 -5
  524. package/src/schematron/peppol/r/peppol-en16931-r110.ts +7 -6
  525. package/src/schematron/peppol/r/peppol-en16931-r111.ts +7 -6
  526. package/src/schematron/peppol/r/peppol-en16931-r120.ts +6 -5
  527. package/src/schematron/peppol/r/peppol-en16931-r121.ts +6 -5
  528. package/src/schematron/peppol/r/peppol-en16931-r130.ts +6 -5
  529. package/src/schematron/run-all-rules.ts +2 -7
  530. package/src/schematron/schematron.ts +36 -0
  531. package/src/schematron/se/se-r-001.ts +7 -6
  532. package/src/schematron/se/se-r-002.ts +7 -6
  533. package/src/schematron/se/se-r-003.ts +7 -6
  534. package/src/schematron/se/se-r-004.ts +7 -6
  535. package/src/schematron/se/se-r-005.ts +8 -7
  536. package/src/schematron/se/se-r-006.ts +7 -6
  537. package/src/schematron/se/se-r-007.ts +7 -6
  538. package/src/schematron/se/se-r-008.ts +7 -6
  539. package/src/schematron/se/se-r-009.ts +7 -6
  540. package/src/schematron/se/se-r-010.ts +7 -6
  541. package/src/schematron/se/se-r-011.ts +7 -6
  542. package/src/schematron/se/se-r-012.ts +7 -6
  543. package/src/schematron/se/se-r-013.ts +7 -6
  544. package/src/values/additional-document-reference-codes.generated.ts +2 -3
  545. package/src/values/allowance-charge-reason-codes.generated.ts +1 -1
  546. package/src/values/application-response-type-codes.generated.ts +1 -1
  547. package/src/values/charge-reason-codes.generated.ts +1 -1
  548. package/src/values/country-code.generated.ts +1 -1
  549. package/src/values/credit-notes-type-codes.generated.ts +1 -1
  550. package/src/values/currency-code.generated.ts +1 -1
  551. package/src/values/document-type-codes.generated.ts +1 -1
  552. package/src/values/document-type.generated.ts +2 -2
  553. package/src/values/duty-tax-fee-categories.generated.ts +1 -1
  554. package/src/values/eas-codes.generated.ts +1 -1
  555. package/src/values/icd-codes.generated.ts +7 -7
  556. package/src/values/invoice-status-codes.generated.ts +1 -1
  557. package/src/values/invoice-type-codes.generated.ts +1 -1
  558. package/src/values/item-classification-code.generated.ts +1 -1
  559. package/src/values/mime-codes.generated.ts +1 -1
  560. package/src/values/op-status-action.generated.ts +1 -1
  561. package/src/values/op-status-reason.generated.ts +1 -1
  562. package/src/values/participant-identifier-schemes.generated.ts +2 -2
  563. package/src/values/payment-means-codes.generated.ts +1 -1
  564. package/src/values/processes.generated.ts +1 -1
  565. package/src/values/quantity-unit-codes.generated.ts +1 -1
  566. package/src/values/vat-dates.generated.ts +1 -1
  567. package/src/values/vatex-codes.generated.ts +1 -1
  568. package/dist/all-union-fields-CxoyKBpI.d.ts +0 -445
  569. package/dist/all-union-fields-CxoyKBpI.d.ts.map +0 -1
  570. package/dist/document-DCcObB-a.d.ts +0 -1466
  571. package/dist/document-DCcObB-a.d.ts.map +0 -1
  572. package/dist/effect.d.ts +0 -6291
  573. package/dist/effect.d.ts.map +0 -1
  574. package/dist/effect.js +0 -3240
  575. package/dist/effect.js.map +0 -1
  576. package/dist/index.d.ts.map +0 -1
  577. package/dist/is-valid-process-CSWL-q9f.js +0 -1590
  578. package/dist/is-valid-process-CSWL-q9f.js.map +0 -1
  579. package/dist/quantity-unit-code-to-intl-unit-15EykjMe.d.ts +0 -168
  580. package/dist/quantity-unit-code-to-intl-unit-15EykjMe.d.ts.map +0 -1
  581. package/dist/vat-dates.generated-DTVWQAdn.d.ts +0 -4812
  582. package/dist/vat-dates.generated-DTVWQAdn.d.ts.map +0 -1
  583. package/dist/vatex-codes.generated-BSgP3n5t.js.map +0 -1
  584. package/src/decoders/errors.ts +0 -11
  585. package/src/document-parser.ts +0 -70
  586. package/src/document.ts +0 -19
  587. package/src/effect/fields/default-customization-id.ts +0 -1
  588. package/src/effect/fields/default-profile-id.ts +0 -1
  589. package/src/effect/fields/peppol-additional-document-reference-schema.ts +0 -114
  590. package/src/effect/fields/peppol-address-schema.ts +0 -105
  591. package/src/effect/fields/peppol-allowance-charge-schema.ts +0 -95
  592. package/src/effect/fields/peppol-amount-schema.ts +0 -22
  593. package/src/effect/fields/peppol-base-line-schema.ts +0 -138
  594. package/src/effect/fields/peppol-binary-object-schema.ts +0 -51
  595. package/src/effect/fields/peppol-contact-schema.ts +0 -18
  596. package/src/effect/fields/peppol-credit-note-line-schema.ts +0 -42
  597. package/src/effect/fields/peppol-delivery-schema.ts +0 -100
  598. package/src/effect/fields/peppol-identifier-schema.ts +0 -19
  599. package/src/effect/fields/peppol-invoice-line-period-schema.ts +0 -34
  600. package/src/effect/fields/peppol-invoice-period-schema.ts +0 -30
  601. package/src/effect/fields/peppol-item-classification-schema.ts +0 -45
  602. package/src/effect/fields/peppol-legal-monetary-total-schema.ts +0 -126
  603. package/src/effect/fields/peppol-line-allowance-charge-schema.ts +0 -64
  604. package/src/effect/fields/peppol-line-item-schema.ts +0 -185
  605. package/src/effect/fields/peppol-line-price-allowance-charge-schema.ts +0 -38
  606. package/src/effect/fields/peppol-line-price-schema.ts +0 -31
  607. package/src/effect/fields/peppol-order-reference-schema.ts +0 -36
  608. package/src/effect/fields/peppol-party-base-schema.ts +0 -138
  609. package/src/effect/fields/peppol-party-legal-entity-schema.ts +0 -29
  610. package/src/effect/fields/peppol-party-tax-scheme-schema.ts +0 -33
  611. package/src/effect/fields/peppol-payee-party-schema.ts +0 -112
  612. package/src/effect/fields/peppol-payment-means-schema.ts +0 -210
  613. package/src/effect/fields/peppol-payment-terms-schema.ts +0 -23
  614. package/src/effect/fields/peppol-quantity-schema.ts +0 -21
  615. package/src/effect/fields/peppol-reference-schema.ts +0 -5
  616. package/src/effect/fields/peppol-tax-category-schema.ts +0 -42
  617. package/src/effect/fields/peppol-tax-representative-schema.ts +0 -23
  618. package/src/effect/fields/peppol-tax-subtotal-schema.ts +0 -32
  619. package/src/effect/fields/peppol-tax-totals-base-schema.ts +0 -25
  620. package/src/effect/index.ts +0 -56
  621. package/src/effect/peppol-billing-base-schema.ts +0 -355
  622. package/src/effect/peppol-credit-note-schema.ts +0 -30
  623. package/src/effect/peppol-document-response-document-reference-schema.ts +0 -38
  624. package/src/effect/peppol-document-response-document-schema.ts +0 -35
  625. package/src/effect/peppol-document-response-line-response-content-schema.ts +0 -44
  626. package/src/effect/peppol-document-response-line-response-schema.ts +0 -33
  627. package/src/effect/peppol-document-schema.ts +0 -142
  628. package/src/effect/peppol-invoice-response-document-actual-response-status-schema.ts +0 -60
  629. package/src/effect/peppol-invoice-response-schema.ts +0 -168
  630. package/src/effect/peppol-invoice-response-status-reason-code-schema.ts +0 -31
  631. package/src/effect/peppol-invoice-schema.ts +0 -42
  632. package/src/effect/peppol-iso-date-string-schema.ts +0 -19
  633. package/src/effect/peppol-message-level-response-document-response-schema.ts +0 -33
  634. package/src/effect/peppol-message-level-response-party-schema.ts +0 -19
  635. package/src/effect/peppol-message-level-response-schema.ts +0 -97
  636. package/src/effect/utils/format-quantity-with-unit.ts +0 -1
  637. package/src/effect/utils/get-credit-note-type-code-description.ts +0 -1
  638. package/src/effect/utils/get-invoice-type-code-description.ts +0 -1
  639. package/src/effect/utils/is-valid-credit-note-type-code.ts +0 -1
  640. package/src/effect/utils/is-valid-invoice-type-code.ts +0 -1
  641. package/src/effect/utils/is-valid-process.ts +0 -1
  642. package/src/effect/utils/peppol-xsd-time-schema.ts +0 -13
  643. package/src/effect/utils/quantity-unit-code-to-intl-unit.ts +0 -2
  644. package/src/effect/values/credit-note-type-code-schema.ts +0 -23
  645. package/src/effect/values/document-type-schemes-schema.ts +0 -14
  646. package/src/effect/values/document-type-values-schema.ts +0 -16
  647. package/src/effect/values/invoice-type-code-schema.ts +0 -21
  648. package/src/effect/values/process-from-document-type-schema.ts +0 -26
  649. package/src/effect/values/quantity-unit-codes-schema.ts +0 -24
  650. package/src/helpers/errors.ts +0 -6
  651. package/src/helpers/is-defined.ts +0 -3
  652. package/src/schemas/billing-base.ts +0 -362
  653. package/src/schemas/credit-note.ts +0 -28
  654. package/src/schemas/document-response-document-reference-schema.ts +0 -37
  655. package/src/schemas/document-response-document-schema.ts +0 -34
  656. package/src/schemas/document-response-line-response-content.ts +0 -43
  657. package/src/schemas/document-response-line-response-schema.ts +0 -33
  658. package/src/schemas/fields/additional-document-reference-schema.ts +0 -112
  659. package/src/schemas/fields/address-schema.ts +0 -105
  660. package/src/schemas/fields/allowance-charge-schema.ts +0 -86
  661. package/src/schemas/fields/amount-schema.ts +0 -21
  662. package/src/schemas/fields/base-line-schema.ts +0 -136
  663. package/src/schemas/fields/billing-references-schema.ts +0 -44
  664. package/src/schemas/fields/binary-object-schema.ts +0 -45
  665. package/src/schemas/fields/contact-schema.ts +0 -18
  666. package/src/schemas/fields/credit-note-line-schema.ts +0 -37
  667. package/src/schemas/fields/date-only-fn.ts +0 -6
  668. package/src/schemas/fields/date-only-parser.ts +0 -20
  669. package/src/schemas/fields/delivery-schema.ts +0 -95
  670. package/src/schemas/fields/identifier-schema.ts +0 -24
  671. package/src/schemas/fields/invoice-line-period-schema.ts +0 -31
  672. package/src/schemas/fields/invoice-line-schema.ts +0 -41
  673. package/src/schemas/fields/invoice-period-schema.ts +0 -27
  674. package/src/schemas/fields/legal-monetary-total-schema.ts +0 -125
  675. package/src/schemas/fields/line-allowance-charge-schema.ts +0 -59
  676. package/src/schemas/fields/line-item-schema.ts +0 -183
  677. package/src/schemas/fields/line-price-allowance-charge-schema.ts +0 -33
  678. package/src/schemas/fields/list-identifier-schema.ts +0 -43
  679. package/src/schemas/fields/order-reference-schema.ts +0 -36
  680. package/src/schemas/fields/party-base-schema.ts +0 -131
  681. package/src/schemas/fields/party-legal-entity-schema.ts +0 -29
  682. package/src/schemas/fields/party-tax-schema.ts +0 -33
  683. package/src/schemas/fields/payee-party.ts +0 -107
  684. package/src/schemas/fields/payment-means-schema.ts +0 -209
  685. package/src/schemas/fields/payment-terms-schema.ts +0 -23
  686. package/src/schemas/fields/price-schema.ts +0 -31
  687. package/src/schemas/fields/quantity-schema.ts +0 -21
  688. package/src/schemas/fields/reference-schema.ts +0 -4
  689. package/src/schemas/fields/tax-category-schema.ts +0 -41
  690. package/src/schemas/fields/tax-representative-party-schema.ts +0 -23
  691. package/src/schemas/fields/tax-subtotal-category-schema.ts +0 -26
  692. package/src/schemas/fields/tax-subtotal-schema.ts +0 -32
  693. package/src/schemas/fields/tax-totals.ts +0 -25
  694. package/src/schemas/fields/time-only.ts +0 -23
  695. package/src/schemas/invoice-response-document-actual-response-status.ts +0 -58
  696. package/src/schemas/invoice-response-document-actual-response.ts +0 -73
  697. package/src/schemas/invoice-response-schema.ts +0 -155
  698. package/src/schemas/invoice-response-status-reason-code.ts +0 -30
  699. package/src/schemas/invoice.ts +0 -43
  700. package/src/schemas/message-level-response-document-response-schema.ts +0 -33
  701. package/src/schemas/message-level-response-party-schema.ts +0 -18
  702. package/src/schemas/message-level-response-schema.ts +0 -96
  703. package/src/schemas/utils/base-64.ts +0 -34
  704. package/src/schemas/utils/vat-regex.ts +0 -51
  705. package/src/schemas/utils/xsd-time.ts +0 -9
  706. package/src/schemas/values/additional-document-reference-code.ts +0 -27
  707. package/src/schemas/values/allowance-charge-reason-code.ts +0 -29
  708. package/src/schemas/values/application-response-type-codes.ts +0 -25
  709. package/src/schemas/values/charge-reason-code.ts +0 -29
  710. package/src/schemas/values/country-code.ts +0 -36
  711. package/src/schemas/values/currency-codes.ts +0 -35
  712. package/src/schemas/values/document-type-codes.ts +0 -25
  713. package/src/schemas/values/document-type-schema.ts +0 -49
  714. package/src/schemas/values/duty-tax-fee-cateogries.ts +0 -28
  715. package/src/schemas/values/eas-codes.ts +0 -35
  716. package/src/schemas/values/icd-codes.ts +0 -28
  717. package/src/schemas/values/invoice-status-codes.ts +0 -25
  718. package/src/schemas/values/item-classification-code-schema.ts +0 -28
  719. package/src/schemas/values/mime-code.ts +0 -28
  720. package/src/schemas/values/op-status-action.ts +0 -25
  721. package/src/schemas/values/op-status-reason.ts +0 -25
  722. package/src/schemas/values/participant-identifier-code.ts +0 -25
  723. package/src/schemas/values/payment-means-codes-schema.ts +0 -36
  724. package/src/schemas/values/process-schema.ts +0 -41
  725. package/src/schemas/values/process-xml-identifier-schema.ts +0 -27
  726. package/src/schemas/values/vat-date-code.ts +0 -15
  727. package/src/schemas/values/vatex-code.ts +0 -28
  728. package/src/schemas.ts +0 -97
  729. /package/src/{effect → schemas}/utils/peppol-base-64-schema.ts +0 -0
  730. /package/src/{effect → schemas}/utils/peppol-vat-regex-schema.ts +0 -0
  731. /package/src/{effect → schemas}/values/additional-document-reference-code-schema.ts +0 -0
  732. /package/src/{effect → schemas}/values/allowance-charge-reason-code-schema.ts +0 -0
  733. /package/src/{effect → schemas}/values/application-response-type-code-schema.ts +0 -0
  734. /package/src/{effect → schemas}/values/charge-reason-code-schema.ts +0 -0
  735. /package/src/{effect → schemas}/values/currency-code-schema.ts +0 -0
  736. /package/src/{effect → schemas}/values/electronic-codes-schema.ts +0 -0
  737. /package/src/{effect → schemas}/values/icd-codes-schema.ts +0 -0
  738. /package/src/{effect → schemas}/values/index.ts +0 -0
  739. /package/src/{effect → schemas}/values/invoice-status-code-schema.ts +0 -0
  740. /package/src/{effect → schemas}/values/item-classification-codes-schema.ts +0 -0
  741. /package/src/{effect → schemas}/values/mime-codes-schema.ts +0 -0
  742. /package/src/{effect → schemas}/values/op-status-action-schema.ts +0 -0
  743. /package/src/{effect → schemas}/values/op-status-reason-schema.ts +0 -0
  744. /package/src/{effect → schemas}/values/participant-identifier-code-schema.ts +0 -0
  745. /package/src/{effect → schemas}/values/payment-means-code-schema.ts +0 -0
  746. /package/src/{effect → schemas}/values/peppol-country-code-schema.ts +0 -0
  747. /package/src/{effect → schemas}/values/peppol-document-type-code-schema.ts +0 -0
  748. /package/src/{effect → schemas}/values/peppol-document-type-schema.ts +0 -0
  749. /package/src/{effect → schemas}/values/peppol-process-schema.ts +0 -0
  750. /package/src/{effect → schemas}/values/vat-date-code-schema.ts +0 -0
  751. /package/src/{effect → schemas}/values/vatex-code-schema.ts +0 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/SchemaStore/schemastore/refs/heads/master/src/schemas/json/package.json",
3
3
  "name": "@endevops/peppol-schema",
4
- "version": "0.1.0-beta.4",
4
+ "version": "0.1.0-beta.5",
5
5
  "description": "A simple example library built by tsdown",
6
6
  "license": "Apache-2.0",
7
7
  "contributors": [
@@ -29,14 +29,18 @@
29
29
  "development": "./src/index.ts",
30
30
  "default": "./dist/index.js"
31
31
  },
32
- "./effect": {
33
- "development": "./src/effect/index.ts",
34
- "default": "./dist/effect.js"
32
+ "./constants": {
33
+ "development": "./src/constants/index.ts",
34
+ "default": "./dist/constants.js"
35
35
  },
36
36
  "./generate-translations": {
37
37
  "development": "./scripts/generate-translations.ts",
38
38
  "default": "./dist/bin/generate-translations.mjs"
39
39
  },
40
+ "./invoice-response-codes": {
41
+ "development": "./src/invoice-response-codes/index.ts",
42
+ "default": "./dist/invoice-response-codes.js"
43
+ },
40
44
  "./schematron": {
41
45
  "development": "./src/schematron/index.ts",
42
46
  "default": "./dist/schematron.js"
@@ -61,8 +65,9 @@
61
65
  },
62
66
  "exports": {
63
67
  ".": "./dist/index.js",
64
- "./effect": "./dist/effect.js",
68
+ "./constants": "./dist/constants.js",
65
69
  "./generate-translations": "./dist/bin/generate-translations.mjs",
70
+ "./invoice-response-codes": "./dist/invoice-response-codes.js",
66
71
  "./schematron": "./dist/schematron.js",
67
72
  "./validations": "./dist/validations.js",
68
73
  "./values": "./dist/values.js",
@@ -86,19 +91,18 @@
86
91
  },
87
92
  "devDependencies": {
88
93
  "@arethetypeswrong/core": "^0.18.5",
89
- "@date-fns/tz": "^1.5.0",
90
- "@effect/tsgo": "^0.44.0",
94
+ "@effect/tsgo": "^0.45.0",
95
+ "@effect/vitest": "^4.0.0-rc.113",
91
96
  "@nodable/compact-builder": "^2.0.0",
92
97
  "@nodable/flexible-xml-parser": "^1.11.3",
93
98
  "@types/bun": "^1.4.2",
94
99
  "@types/node": "^26.5.1",
95
100
  "@vitest/coverage-v8": "^5.0.0",
96
- "date-fns": "^4.4.0",
97
101
  "effect": "^4.0.0-rc.113",
98
102
  "fast-xml-builder": "^1.3.1",
99
103
  "fast-xml-parser": "^5.11.1",
100
104
  "husky": "^9.1.7",
101
- "lint-staged": "^17.5.0",
105
+ "lint-staged": "^17.5.1",
102
106
  "oxfmt": "^0.67.0",
103
107
  "oxlint": "^1.82.0",
104
108
  "oxlint-tsgolint": "^7.0.2001",
@@ -108,18 +112,13 @@
108
112
  "simple-git": "^3.36.0",
109
113
  "testcontainers": "^12.1.0",
110
114
  "tsdown": "^0.23.0",
111
- "type-fest": "^5.9.0",
112
115
  "typescript": "^7.0.2",
113
- "vitest": "^5.0.0",
114
- "zod": "^4.6.1"
116
+ "vitest": "^5.0.0"
115
117
  },
116
118
  "peerDependencies": {
117
- "@date-fns/tz": "^1",
118
- "date-fns": "^4",
119
119
  "effect": "^4.0.0-rc.113",
120
120
  "fast-xml-builder": "^1",
121
- "fast-xml-parser": "^5",
122
- "zod": "^4"
121
+ "fast-xml-parser": "^5"
123
122
  },
124
123
  "lint-staged": {
125
124
  "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx}": [
@@ -136,7 +135,6 @@
136
135
  },
137
136
  "packageManager": "pnpm@12.4.1",
138
137
  "inlinedDependencies": {
139
- "picocolors": "1.1.1",
140
- "type-fest": "5.9.0"
138
+ "picocolors": "1.1.1"
141
139
  }
142
140
  }
@@ -1 +1,5 @@
1
- export const transportProfile = 'peppol-transport-as4-v2_0' as const;
1
+ export const TRANSPORT_PROFILE = 'peppol-transport-as4-v2_0' as const;
2
+ /**
3
+ * @deprecated
4
+ */
5
+ export const transportProfile = TRANSPORT_PROFILE;
@@ -18,7 +18,7 @@ import { decodeTaxRepresentativeParty } from '#/decoders/fields/decode-tax-repre
18
18
  import { decodeTaxTotals } from '#/decoders/fields/decode-tax-totals';
19
19
  import { strOrUnd } from '#/helpers/str-or-und';
20
20
 
21
- export const decodeBilling = Effect.fn(function* (doc: XmlNode) {
21
+ export const decodeBilling = Effect.fn('decode-billing')(function* (doc: XmlNode) {
22
22
  return {
23
23
  accountingCost: yield* strOrUnd(doc, 'cbc:AccountingCost'),
24
24
  accountingCustomerParty: yield* decodeParty(doc, 'cac:AccountingCustomerParty', 'cac:Party'),
@@ -1,15 +1,13 @@
1
1
  import { Effect } from 'effect';
2
2
 
3
- import type { PeppolNodeError } from '#/helpers/errors';
4
3
  import type { XmlNode } from '#/helpers/get-prop';
5
- import type { PeppolCreditNote } from '#/schemas/credit-note';
6
4
 
7
5
  import { decodeBilling } from '#/decoders/decode-billing';
8
6
  import { decodeCreditNoteLines } from '#/decoders/fields/decode-credit-note-lines';
9
7
  import { getProp } from '#/helpers/get-prop';
10
8
  import { strOrUnd } from '#/helpers/str-or-und';
11
9
 
12
- export const decodeCreditNote = Effect.fn(function* (value: XmlNode): Effect.fn.Return<PeppolCreditNote, PeppolNodeError> {
10
+ export const decodeCreditNote = Effect.fn('decode-credit-note')(function* (value: XmlNode) {
13
11
  const root = value || {};
14
12
  const doc: XmlNode = (yield* getProp(root, 'ubl:CreditNote')) ?? root; // accept either the whole JSON or just the CreditNote node
15
13
 
@@ -17,5 +15,5 @@ export const decodeCreditNote = Effect.fn(function* (value: XmlNode): Effect.fn.
17
15
  ...(yield* decodeBilling(doc)),
18
16
  creditNoteLines: yield* decodeCreditNoteLines(doc, 'cac:CreditNoteLine'),
19
17
  creditNoteTypeCode: yield* strOrUnd(doc, 'cbc:CreditNoteTypeCode'),
20
- } as PeppolCreditNote;
18
+ };
21
19
  });
@@ -1,15 +1,8 @@
1
1
  import { Effect, Predicate } from 'effect';
2
2
 
3
3
  import type { XmlNode } from '#/helpers/get-prop';
4
- import type { InvoiceResponseDocumentActualResponse } from '#/schemas/invoice-response-document-actual-response';
5
- import type {
6
- InvoiceReponseDocumentActualResponseStatus,
7
- InvoiceResponseCondition,
8
- } from '#/schemas/invoice-response-document-actual-response-status';
9
- import type { InvoiceResponseDocumentReference, InvoiceResponseDocumentResponse, PeppolInvoiceResponse } from '#/schemas/invoice-response-schema';
10
- import type { InvoiceResponseStatusReasonCode } from '#/schemas/invoice-response-status-reason-code';
11
- import type { RecursivePartial } from '#/types';
12
4
 
5
+ import { decodeApplicationResponseBase } from '#/decoders/fields/decode-application-response';
13
6
  import { decodeInvoiceMessageDocumentParty } from '#/decoders/fields/decode-invoice-message-document-party';
14
7
  import { decodeInvoiceMessageParty } from '#/decoders/fields/decode-invoice-message-party';
15
8
  import { getArray } from '#/helpers/get-array';
@@ -21,16 +14,13 @@ const decodeStatusReasonCode = Effect.fn(function* (doc: XmlNode, ...path: Array
21
14
  if (!Predicate.isTruthy(val) && val !== 0) return undefined;
22
15
  const value = yield* strOrUnd(val);
23
16
  if (Predicate.isString(val) || Predicate.isNumber(val)) {
24
- return { value } as RecursivePartial<InvoiceResponseStatusReasonCode>;
17
+ return { value };
25
18
  }
26
19
  if (!Predicate.isTruthy(value)) return undefined;
27
- return { listId: yield* strOrUnd(val, '@listID'), value } as RecursivePartial<InvoiceResponseStatusReasonCode>;
20
+ return { listId: yield* strOrUnd(val, '@listID'), value };
28
21
  });
29
22
 
30
- const decodeCondition = Effect.fn(function* (
31
- doc: XmlNode,
32
- ...path: Array<string>
33
- ): Effect.fn.Return<Array<RecursivePartial<InvoiceResponseCondition>> | undefined> {
23
+ const decodeCondition = Effect.fn(function* (doc: XmlNode, ...path: Array<string>) {
34
24
  const val = yield* getArray(doc, ...path);
35
25
  /* istanbul ignore next -- getArray never returns a falsy value */
36
26
  if (Predicate.isNullish(val)) return undefined;
@@ -53,28 +43,22 @@ const decodeDocumentResponseStatus = Effect.fn(function* (doc: XmlNode, ...path:
53
43
  condition: yield* decodeCondition(item, 'cac:Condition'),
54
44
  statusReason: yield* strOrUnd(item, 'cbc:StatusReason'),
55
45
  statusReasonCode: yield* decodeStatusReasonCode(item, 'cbc:StatusReasonCode'),
56
- } as RecursivePartial<InvoiceReponseDocumentActualResponseStatus>;
46
+ };
57
47
  })
58
48
  );
59
49
  });
60
50
 
61
- const decodeDocumentActualResponse = Effect.fn(function* (
62
- doc: XmlNode,
63
- ...path: Array<string>
64
- ): Effect.fn.Return<RecursivePartial<InvoiceResponseDocumentActualResponse> | undefined> {
51
+ const decodeDocumentActualResponse = Effect.fn(function* (doc: XmlNode, ...path: Array<string>) {
65
52
  const val = yield* getProp(doc, ...path);
66
53
  if (Predicate.isNullish(val)) return undefined;
67
54
  return {
68
55
  effectiveDate: yield* strOrUnd(val, 'cbc:EffectiveDate'),
69
56
  responseCode: yield* strOrUnd(val, 'cbc:ResponseCode'),
70
57
  status: yield* decodeDocumentResponseStatus(val, 'cac:Status'),
71
- } as RecursivePartial<InvoiceResponseDocumentActualResponse>;
58
+ };
72
59
  });
73
60
 
74
- const decodeDocumentReference = Effect.fn(function* (
75
- doc: XmlNode,
76
- ...path: Array<string>
77
- ): Effect.fn.Return<RecursivePartial<InvoiceResponseDocumentReference> | undefined> {
61
+ const decodeDocumentReference = Effect.fn(function* (doc: XmlNode, ...path: Array<string>) {
78
62
  const val = yield* getProp(doc, ...path);
79
63
  if (Predicate.isNullish(val)) return undefined;
80
64
  return {
@@ -84,12 +68,10 @@ const decodeDocumentReference = Effect.fn(function* (
84
68
  };
85
69
  });
86
70
 
87
- const decodeDocumentResponse = Effect.fn(function* (
88
- doc: XmlNode,
89
- ...path: Array<string>
90
- ): Effect.fn.Return<RecursivePartial<InvoiceResponseDocumentResponse> | undefined> {
71
+ const decodeDocumentResponse = Effect.fn(function* (doc: XmlNode, ...path: Array<string>) {
91
72
  const val = yield* getProp(doc, ...path);
92
73
  if (Predicate.isNullish(val)) return undefined;
74
+
93
75
  return {
94
76
  documentReference: yield* decodeDocumentReference(val, 'cac:DocumentReference'),
95
77
  issuerParty: yield* decodeInvoiceMessageDocumentParty(val, 'cac:IssuerParty'),
@@ -98,19 +80,15 @@ const decodeDocumentResponse = Effect.fn(function* (
98
80
  };
99
81
  });
100
82
 
101
- export const decodeInvoiceResponse = Effect.fn(function* (value: XmlNode): Effect.fn.Return<PeppolInvoiceResponse> {
102
- const root = value || {};
103
- const doc: XmlNode = yield* getProp(root, 'ubl:ApplicationResponse');
104
- const applicationResponse: RecursivePartial<PeppolInvoiceResponse> = {
105
- customizationId: yield* strOrUnd(doc, 'cbc:CustomizationID'),
83
+ export const decodeInvoiceResponse = Effect.fn(function* (value: XmlNode) {
84
+ const { base, doc } = yield* decodeApplicationResponseBase(value);
85
+
86
+ return {
87
+ ...base,
106
88
  documentResponse: yield* decodeDocumentResponse(doc, 'cac:DocumentResponse'),
107
- id: yield* strOrUnd(doc, 'cbc:ID'),
108
- issueDate: yield* strOrUnd(doc, 'cbc:IssueDate'),
109
- issueTime: yield* strOrUnd(doc, 'cbc:IssueTime'),
110
89
  note: yield* strOrUnd(doc, 'cbc:Note'),
111
90
  profileId: yield* strOrUnd<'urn:fdc:peppol.eu:poacc:bis:invoice_response:3'>(doc, 'cbc:ProfileID'),
112
91
  receiverParty: yield* decodeInvoiceMessageParty(doc, 'cac:ReceiverParty'),
113
92
  senderParty: yield* decodeInvoiceMessageParty(doc, 'cac:SenderParty'),
114
93
  };
115
- return applicationResponse as PeppolInvoiceResponse;
116
94
  });
@@ -1,8 +1,6 @@
1
1
  import { Effect } from 'effect';
2
2
 
3
- import type { PeppolNodeError } from '#/helpers/errors';
4
3
  import type { XmlNode } from '#/helpers/get-prop';
5
- import type { PeppolInvoice } from '#/schemas/invoice';
6
4
 
7
5
  import { decodeBilling } from '#/decoders/decode-billing';
8
6
  import { decodeInvoiceLines } from '#/decoders/fields/decode-invoice-lines';
@@ -10,7 +8,7 @@ import { decodeSimpleIdentifer } from '#/decoders/fields/decode-simple-identifie
10
8
  import { getProp } from '#/helpers/get-prop';
11
9
  import { strOrUnd } from '#/helpers/str-or-und';
12
10
 
13
- export const decodeInvoice = Effect.fn(function* (value: XmlNode): Effect.fn.Return<PeppolInvoice, PeppolNodeError> {
11
+ export const decodeInvoice = Effect.fn('decode-invoice')(function* (value: XmlNode) {
14
12
  const root = value || {};
15
13
  const doc: XmlNode = (yield* getProp(root, 'ubl:Invoice')) ?? root;
16
14
 
@@ -20,5 +18,5 @@ export const decodeInvoice = Effect.fn(function* (value: XmlNode): Effect.fn.Ret
20
18
  invoiceLines: yield* decodeInvoiceLines(doc, 'cac:InvoiceLine'),
21
19
  invoiceTypeCode: yield* strOrUnd(doc, 'cbc:InvoiceTypeCode'),
22
20
  projectReference: yield* decodeSimpleIdentifer(doc, 'cac:ProjectReference'),
23
- } as PeppolInvoice;
21
+ };
24
22
  });
@@ -1,37 +1,24 @@
1
1
  import { Effect, Predicate } from 'effect';
2
2
 
3
3
  import type { XmlNode } from '#/helpers/get-prop';
4
- import type { PeppolMessageLevelDocumentResponseDocumentReference } from '#/schemas/document-response-document-reference-schema';
5
- import type { PeppolMessageLevelResponseDocumentResponseDocument } from '#/schemas/document-response-document-schema';
6
- import type { DocumentResponseLineResponseContent } from '#/schemas/document-response-line-response-content';
7
- import type { PeppolMessageLevelDocumentResponseLineResponse } from '#/schemas/document-response-line-response-schema';
8
- import type { PeppolMessageLevelMessageLevelResponseDocumentResponse } from '#/schemas/message-level-response-document-response-schema';
9
- import type { PeppolMessageLevelResponse } from '#/schemas/message-level-response-schema';
10
- import type { RecursivePartial } from '#/types';
11
4
 
5
+ import { decodeApplicationResponseBase } from '#/decoders/fields/decode-application-response';
12
6
  import { decodeMessageLevelParty } from '#/decoders/fields/decode-message-level-party';
13
7
  import { getArray } from '#/helpers/get-array';
14
8
  import { getProp } from '#/helpers/get-prop';
15
9
  import { strOrUnd } from '#/helpers/str-or-und';
16
10
 
17
- const decodeDocumentResponse = Effect.fn(function* (
18
- doc: XmlNode,
19
- ...path: Array<string>
20
- ): Effect.fn.Return<RecursivePartial<PeppolMessageLevelMessageLevelResponseDocumentResponse> | undefined> {
11
+ const decodeLineResponseContent = Effect.fn(function* (doc: XmlNode, ...path: Array<string>) {
21
12
  const val = yield* getProp(doc, ...path);
22
13
  if (Predicate.isNullish(val)) return undefined;
23
-
24
14
  return {
25
- documentReference: yield* decodeDocumentReference(val, 'cac:DocumentReference'),
26
- lineResponse: yield* decodeLineResponse(val, 'cac:LineResponse'),
27
- response: yield* decodeResponse(val, 'cac:Response'),
28
- } as RecursivePartial<PeppolMessageLevelMessageLevelResponseDocumentResponse>;
15
+ description: yield* strOrUnd(val, 'cbc:Description'),
16
+ responseCode: yield* strOrUnd(val, 'cbc:ResponseCode'),
17
+ status: { statusReasonCode: yield* strOrUnd<'BV' | 'BW' | 'SV'>(val, 'cac:Status', 'cbc:StatusReasonCode') },
18
+ };
29
19
  });
30
20
 
31
- const decodeLineResponse = Effect.fn(function* (
32
- doc: XmlNode,
33
- ...path: Array<string>
34
- ): Effect.fn.Return<Array<RecursivePartial<PeppolMessageLevelDocumentResponseLineResponse>> | undefined> {
21
+ const decodeLineResponse = Effect.fn(function* (doc: XmlNode, ...path: Array<string>) {
35
22
  const val = yield* getArray(doc, ...path);
36
23
  /* istanbul ignore next -- getArray never returns a falsy value */
37
24
  if (Predicate.isNullish(val)) return undefined;
@@ -47,23 +34,13 @@ const decodeLineResponse = Effect.fn(function* (
47
34
  );
48
35
  });
49
36
 
50
- const decodeLineResponseContent = Effect.fn(function* (
51
- doc: XmlNode,
52
- ...path: Array<string>
53
- ): Effect.fn.Return<RecursivePartial<DocumentResponseLineResponseContent> | undefined> {
37
+ const decodeResponse = Effect.fn(function* (doc: XmlNode, ...path: Array<string>) {
54
38
  const val = yield* getProp(doc, ...path);
55
39
  if (Predicate.isNullish(val)) return undefined;
56
- return {
57
- description: yield* strOrUnd(val, 'cbc:Description'),
58
- responseCode: yield* strOrUnd(val, 'cbc:ResponseCode'),
59
- status: { statusReasonCode: yield* strOrUnd<'BV' | 'BW' | 'SV'>(val, 'cac:Status', 'cbc:StatusReasonCode') },
60
- };
40
+ return { description: yield* strOrUnd(val, 'cbc:Description'), responseCode: yield* strOrUnd(val, 'cbc:ResponseCode') };
61
41
  });
62
42
 
63
- const decodeDocumentReference = Effect.fn(function* (
64
- doc: XmlNode,
65
- ...path: Array<string>
66
- ): Effect.fn.Return<RecursivePartial<PeppolMessageLevelDocumentResponseDocumentReference> | undefined> {
43
+ const decodeDocumentReference = Effect.fn(function* (doc: XmlNode, ...path: Array<string>) {
67
44
  const val = yield* getProp(doc, ...path);
68
45
  if (Predicate.isNullish(val)) return undefined;
69
46
  return {
@@ -73,28 +50,24 @@ const decodeDocumentReference = Effect.fn(function* (
73
50
  };
74
51
  });
75
52
 
76
- const decodeResponse = Effect.fn(function* (
77
- doc: XmlNode,
78
- ...path: Array<string>
79
- ): Effect.fn.Return<RecursivePartial<PeppolMessageLevelResponseDocumentResponseDocument> | undefined> {
53
+ const decodeDocumentResponse = Effect.fn(function* (doc: XmlNode, ...path: Array<string>) {
80
54
  const val = yield* getProp(doc, ...path);
81
55
  if (Predicate.isNullish(val)) return undefined;
82
- return { description: yield* strOrUnd(val, 'cbc:Description'), responseCode: yield* strOrUnd(val, 'cbc:ResponseCode') };
56
+
57
+ return {
58
+ documentReference: yield* decodeDocumentReference(val, 'cac:DocumentReference'),
59
+ lineResponse: yield* decodeLineResponse(val, 'cac:LineResponse'),
60
+ response: yield* decodeResponse(val, 'cac:Response'),
61
+ };
83
62
  });
84
63
 
85
- export const decodeMessageLevelResponse = Effect.fn(function* (value: XmlNode): Effect.fn.Return<PeppolMessageLevelResponse> {
86
- const root = value || {};
87
- const doc: XmlNode = yield* getProp(root, 'ubl:ApplicationResponse');
88
- const applicationResponse: RecursivePartial<PeppolMessageLevelResponse> = {
89
- customizationId: yield* strOrUnd(doc, 'cbc:CustomizationID'),
64
+ export const decodeMessageLevelResponse = Effect.fn(function* (value: XmlNode) {
65
+ const { base, doc } = yield* decodeApplicationResponseBase(value);
66
+ return {
67
+ ...base,
90
68
  documentResponse: yield* decodeDocumentResponse(doc, 'cac:DocumentResponse'),
91
- id: yield* strOrUnd(doc, 'cbc:ID'),
92
- issueDate: yield* strOrUnd(doc, 'cbc:IssueDate'),
93
- issueTime: yield* strOrUnd(doc, 'cbc:IssueTime'),
94
69
  profileId: yield* strOrUnd<'urn:fdc:peppol.eu:poacc:bis:mlr:3'>(doc, 'cbc:ProfileID'),
95
70
  receiverParty: yield* decodeMessageLevelParty(doc, 'cac:ReceiverParty'),
96
71
  senderParty: yield* decodeMessageLevelParty(doc, 'cac:SenderParty'),
97
72
  };
98
-
99
- return applicationResponse as PeppolMessageLevelResponse;
100
73
  });
@@ -1,6 +1,6 @@
1
1
  import { Effect } from 'effect';
2
2
 
3
- import type { PeppolCreditNote } from '#/schemas/credit-note';
3
+ import type { PeppolCreditNote } from '#/schemas/peppol-credit-note-schema';
4
4
 
5
5
  import { encodeAdditionalDocumentReferences } from '#/decoders/fields/encode-additional-document-references';
6
6
  import { encodeAllowanceCharges } from '#/decoders/fields/encode-allowance-charges';
@@ -1,7 +1,10 @@
1
1
  import { Effect, Predicate } from 'effect';
2
2
 
3
- import type { InvoiceResponseDocumentReference, InvoiceResponseDocumentResponse } from '#/schemas/invoice-response-schema';
4
- import type { PeppolInvoiceResponse } from '#/schemas/invoice-response-schema';
3
+ import type {
4
+ PeppolInvoiceResponse,
5
+ PeppolInvoiceResponseDocumentReference,
6
+ PeppolInvoiceResponseDocumentResponse,
7
+ } from '#/schemas/peppol-invoice-response-schema';
5
8
 
6
9
  import { encodeMessageParty } from '#/decoders/fields/encode-message-party';
7
10
 
@@ -30,7 +33,7 @@ export const encodeInvoiceResponse = Effect.fn(function* (invoiceResponse: Peppo
30
33
  };
31
34
  });
32
35
 
33
- const encodeDocumentResponse = Effect.fn(function* (documentResponse: InvoiceResponseDocumentResponse) {
36
+ const encodeDocumentResponse = Effect.fn(function* (documentResponse: PeppolInvoiceResponseDocumentResponse) {
34
37
  if (Predicate.isNullish(documentResponse)) {
35
38
  return undefined;
36
39
  }
@@ -52,7 +55,7 @@ const encodeDocumentResponse = Effect.fn(function* (documentResponse: InvoiceRes
52
55
  };
53
56
  });
54
57
 
55
- const encodeDocumentReference = Effect.fn(function* (documentReference: InvoiceResponseDocumentReference) {
58
+ const encodeDocumentReference = Effect.fn(function* (documentReference: PeppolInvoiceResponseDocumentReference) {
56
59
  if (Predicate.isNullish(documentReference)) return undefined;
57
60
  return { 'cbc:ID': documentReference.id, 'cbc:IssueDate': documentReference.issueDate, 'cbc:DocumentTypeCode': documentReference.documentTypeCode };
58
61
  });
@@ -1,6 +1,6 @@
1
1
  import { Effect } from 'effect';
2
2
 
3
- import type { PeppolInvoice } from '#/schemas/invoice';
3
+ import type { PeppolInvoice } from '#/schemas/peppol-invoice-schema';
4
4
 
5
5
  import { encodeAdditionalDocumentReferences } from '#/decoders/fields/encode-additional-document-references';
6
6
  import { encodeAllowanceCharges } from '#/decoders/fields/encode-allowance-charges';
@@ -1,9 +1,8 @@
1
- import { Effect, Predicate } from 'effect';
1
+ import { Effect } from 'effect';
2
2
 
3
- import type { PeppolMessageLevelMessageLevelResponseDocumentResponse } from '#/schemas/message-level-response-document-response-schema';
4
- import type { PeppolMessageLevelResponse } from '#/schemas/message-level-response-schema';
3
+ import type { PeppolMessageLevelResponseDocumentResponse } from '#/schemas/peppol-message-level-response-document-response-schema';
4
+ import type { PeppolMessageLevelResponse } from '#/schemas/peppol-message-level-response-schema';
5
5
 
6
- import { PeppolEncodeError } from '#/decoders/errors';
7
6
  import { encodeMessageParty } from '#/decoders/fields/encode-message-party';
8
7
 
9
8
  export const encodeMessageLevelResponse = Effect.fn(function* (messageResponse: PeppolMessageLevelResponse) {
@@ -30,12 +29,7 @@ export const encodeMessageLevelResponse = Effect.fn(function* (messageResponse:
30
29
  };
31
30
  });
32
31
 
33
- const encodeMessageLevelDocumentResponse = Effect.fn(function* (
34
- documentResponse: PeppolMessageLevelMessageLevelResponseDocumentResponse | undefined
35
- ) {
36
- if (Predicate.isNullish(documentResponse)) {
37
- return yield* new PeppolEncodeError({ message: 'Cannot encode a message level response without a document response' });
38
- }
32
+ const encodeMessageLevelDocumentResponse = Effect.fn(function* (documentResponse: PeppolMessageLevelResponseDocumentResponse) {
39
33
  return {
40
34
  'cac:Response': { 'cbc:ResponseCode': documentResponse.response.responseCode, 'cbc:Description': documentResponse.response.description },
41
35
  'cac:DocumentReference': {
@@ -1,7 +1,7 @@
1
1
  import { Effect, Predicate } from 'effect';
2
2
 
3
3
  import type { XmlNode } from '#/helpers/get-prop';
4
- import type { PeppolAdditionalDocumentReference } from '#/schemas/fields/additional-document-reference-schema';
4
+ import type { PeppolAdditionalDocumentReference } from '#/schemas/fields/peppol-additional-document-reference-schema';
5
5
  import type { RecursivePartial } from '#/types';
6
6
 
7
7
  import { decodeIdentifier } from '#/decoders/fields/decode-identifier';
@@ -1,7 +1,7 @@
1
1
  import { Effect, Predicate } from 'effect';
2
2
 
3
3
  import type { XmlNode } from '#/helpers/get-prop';
4
- import type { PeppolAddress } from '#/schemas/fields/address-schema';
4
+ import type { PeppolAddress } from '#/schemas/fields/peppol-address-schema';
5
5
  import type { RecursivePartial } from '#/types';
6
6
 
7
7
  import { getProp } from '#/helpers/get-prop';
@@ -1,30 +1,22 @@
1
1
  import { Effect } from 'effect';
2
2
 
3
- import type { PeppolNodeError } from '#/helpers/errors';
4
3
  import type { XmlNode } from '#/helpers/get-prop';
5
- import type { PeppolAllowanceCharge } from '#/schemas/fields/allowance-charge-schema';
4
+ import type { PeppolAllowanceCharge } from '#/schemas/fields/peppol-allowance-charge-schema';
6
5
  import type { RecursivePartial } from '#/types';
7
6
 
8
7
  import { decodeBaseAllowanceCharge } from '#/decoders/fields/decode-base-allowance-charge';
8
+ import { decodeNodeList } from '#/decoders/fields/decode-node-list';
9
9
  import { decodeTaxCategory } from '#/decoders/fields/decode-tax-category';
10
- import { getArray } from '#/helpers/get-array';
11
10
 
12
- export const decodeAllowanceCharges = Effect.fn(function* (
13
- allowanceCharges: XmlNode,
14
- ...path: Array<string>
15
- ): Effect.fn.Return<Array<RecursivePartial<PeppolAllowanceCharge>> | undefined, PeppolNodeError> {
16
- const arr = yield* getArray(allowanceCharges, ...path);
17
- if (arr.length === 0) {
18
- return undefined;
19
- }
20
-
21
- return yield* Effect.forEach(
22
- arr,
11
+ export const decodeAllowanceCharges = Effect.fn(function* (allowanceCharges: XmlNode, ...path: Array<string>) {
12
+ return yield* decodeNodeList(
13
+ allowanceCharges,
23
14
  Effect.fn(function* (allowanceCharge: XmlNode) {
24
15
  return {
25
16
  ...(yield* decodeBaseAllowanceCharge(allowanceCharge)),
26
17
  taxCategory: yield* decodeTaxCategory(allowanceCharge, 'cac:TaxCategory'),
27
18
  } as RecursivePartial<PeppolAllowanceCharge>;
28
- })
19
+ }),
20
+ ...path
29
21
  );
30
22
  });
@@ -1,8 +1,8 @@
1
1
  import { Effect, Predicate } from 'effect';
2
2
 
3
3
  import type { XmlNode } from '#/helpers/get-prop';
4
- import type { PeppolAmount } from '#/schemas/fields/amount-schema';
5
- import type { PeppolCurrencyCode } from '#/schemas/values/currency-codes';
4
+ import type { PeppolAmount } from '#/schemas/fields/peppol-amount-schema';
5
+ import type { PeppolCurrencyCode } from '#/schemas/values/currency-code-schema';
6
6
  import type { RecursivePartial } from '#/types';
7
7
 
8
8
  import { getProp } from '#/helpers/get-prop';
@@ -0,0 +1,21 @@
1
+ import { Effect } from 'effect';
2
+
3
+ import type { XmlNode } from '#/helpers/get-prop';
4
+
5
+ import { getProp } from '#/helpers/get-prop';
6
+ import { strOrUnd } from '#/helpers/str-or-und';
7
+
8
+ export const decodeApplicationResponseBase = Effect.fn(function* (value: XmlNode) {
9
+ const root = value || {};
10
+ const doc: XmlNode = yield* getProp(root, 'ubl:ApplicationResponse');
11
+
12
+ return {
13
+ base: {
14
+ customizationId: yield* strOrUnd(doc, 'cbc:CustomizationID'),
15
+ id: yield* strOrUnd(doc, 'cbc:ID'),
16
+ issueDate: yield* strOrUnd(doc, 'cbc:IssueDate'),
17
+ issueTime: yield* strOrUnd(doc, 'cbc:IssueTime'),
18
+ },
19
+ doc,
20
+ };
21
+ });
@@ -1,7 +1,7 @@
1
1
  import { Effect } from 'effect';
2
2
 
3
3
  import type { XmlNode } from '#/helpers/get-prop';
4
- import type { PeppolBillingReference } from '#/schemas/fields/billing-references-schema';
4
+ import type { PeppolBillingReference } from '#/schemas/fields/peppol-billing-reference-schema';
5
5
  import type { RecursivePartial } from '#/types';
6
6
 
7
7
  import { getArray } from '#/helpers/get-array';
@@ -1,7 +1,7 @@
1
1
  import { Effect, Predicate } from 'effect';
2
2
 
3
3
  import type { XmlNode } from '#/helpers/get-prop';
4
- import type { PeppolContact } from '#/schemas/fields/contact-schema';
4
+ import type { PeppolContact } from '#/schemas/fields/peppol-contact-schema';
5
5
  import type { RecursivePartial } from '#/types';
6
6
 
7
7
  import { getProp } from '#/helpers/get-prop';
@@ -1,26 +1,18 @@
1
1
  import { Effect } from 'effect';
2
2
 
3
- import type { PeppolNodeError } from '#/helpers/errors';
4
3
  import type { XmlNode } from '#/helpers/get-prop';
5
- import type { PeppolCreditNoteLine } from '#/schemas/fields/credit-note-line-schema';
6
- import type { RecursivePartial } from '#/types';
7
4
 
8
5
  import { decodeLineShared } from '#/decoders/fields/decode-line-shared';
6
+ import { decodeNodeList } from '#/decoders/fields/decode-node-list';
9
7
  import { decodeQuantity } from '#/decoders/fields/decode-quantity';
10
- import { getArray } from '#/helpers/get-array';
11
8
 
12
- export const decodeCreditNoteLines = Effect.fn(function* (
13
- doc: XmlNode,
14
- ...path: Array<string>
15
- ): Effect.fn.Return<Array<RecursivePartial<PeppolCreditNoteLine>> | undefined, PeppolNodeError> {
16
- const arr = yield* getArray(doc, ...path);
17
- if (arr.length === 0) return undefined;
18
-
19
- return yield* Effect.forEach(
20
- arr,
9
+ export const decodeCreditNoteLines = Effect.fn(function* (doc: XmlNode, ...path: Array<string>) {
10
+ return yield* decodeNodeList(
11
+ doc,
21
12
  Effect.fn(function* (lineNode: XmlNode) {
22
13
  const shared = yield* decodeLineShared(lineNode);
23
14
  return { ...shared, creditedQuantity: (yield* decodeQuantity(lineNode, 'cbc:CreditedQuantity'))! };
24
- })
25
- );
15
+ }),
16
+ ...path
17
+ ).pipe(Effect.map(items => items ?? []));
26
18
  });
@@ -1,7 +1,7 @@
1
1
  import { Effect, Predicate } from 'effect';
2
2
 
3
3
  import type { XmlNode } from '#/helpers/get-prop';
4
- import type { PeppolDelivery } from '#/schemas/fields/delivery-schema';
4
+ import type { PeppolDelivery } from '#/schemas/fields/peppol-delivery-schema';
5
5
  import type { RecursivePartial } from '#/types';
6
6
 
7
7
  import { decodeAddress } from '#/decoders/fields/decode-address';
@@ -1,7 +1,7 @@
1
1
  import { Effect, Predicate } from 'effect';
2
2
 
3
3
  import type { XmlNode } from '#/helpers/get-prop';
4
- import type { PeppolIdentifier } from '#/schemas/fields/identifier-schema';
4
+ import type { PeppolIdentifier } from '#/schemas/fields/peppol-identifier-schema';
5
5
 
6
6
  import { decodeIdentifier } from '#/decoders/fields/decode-identifier';
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { Effect, Predicate } from 'effect';
2
2
 
3
3
  import type { XmlNode } from '#/helpers/get-prop';
4
- import type { PeppolIdentifier } from '#/schemas/fields/identifier-schema';
4
+ import type { PeppolIdentifier } from '#/schemas/fields/peppol-identifier-schema';
5
5
  import type { RecursivePartial } from '#/types';
6
6
 
7
7
  import { getProp } from '#/helpers/get-prop';