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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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-CiW698HY.d.ts +3507 -0
  8. package/dist/index-CiW698HY.d.ts.map +1 -0
  9. package/dist/index.d.ts +2 -2613
  10. package/dist/index.js +3122 -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 +2040 -1547
  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 +26 -13
  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/{effect → schemas}/utils/peppol-vat-regex-schema.ts +0 -2
  171. package/src/schemas/utils/peppol-xsd-time-schema.ts +79 -0
  172. package/src/schemas/utils/quantity-unit-code-to-intl-unit.ts +2 -2
  173. package/src/schemas/values/credit-note-type-code-schema.ts +3 -5
  174. package/src/schemas/values/document-type-schemes-schema.ts +3 -5
  175. package/src/schemas/values/document-type-values-schema.ts +4 -7
  176. package/src/{effect → schemas}/values/duty-tax-fee-category-schema.ts +3 -3
  177. package/src/schemas/values/invoice-type-code-schema.ts +4 -8
  178. package/src/schemas/values/process-from-document-type-schema.ts +10 -12
  179. package/src/schemas/values/quantity-unit-codes-schema.ts +4 -8
  180. package/src/schematron/cen/ae/cen-en16931-br-ae-01.ts +6 -5
  181. package/src/schematron/cen/ae/cen-en16931-br-ae-02.ts +6 -5
  182. package/src/schematron/cen/ae/cen-en16931-br-ae-03.ts +6 -5
  183. package/src/schematron/cen/ae/cen-en16931-br-ae-04.ts +6 -5
  184. package/src/schematron/cen/ae/cen-en16931-br-ae-05.ts +6 -5
  185. package/src/schematron/cen/ae/cen-en16931-br-ae-06.ts +6 -5
  186. package/src/schematron/cen/ae/cen-en16931-br-ae-07.ts +6 -5
  187. package/src/schematron/cen/ae/cen-en16931-br-ae-08.ts +6 -5
  188. package/src/schematron/cen/ae/cen-en16931-br-ae-09.ts +6 -5
  189. package/src/schematron/cen/ae/cen-en16931-br-ae-10.ts +6 -5
  190. package/src/schematron/cen/af/cen-en16931-br-af-01.ts +6 -5
  191. package/src/schematron/cen/af/cen-en16931-br-af-02.ts +6 -5
  192. package/src/schematron/cen/af/cen-en16931-br-af-03.ts +6 -10
  193. package/src/schematron/cen/af/cen-en16931-br-af-04.ts +6 -5
  194. package/src/schematron/cen/af/cen-en16931-br-af-05.ts +6 -5
  195. package/src/schematron/cen/af/cen-en16931-br-af-06.ts +6 -5
  196. package/src/schematron/cen/af/cen-en16931-br-af-07.ts +6 -5
  197. package/src/schematron/cen/af/cen-en16931-br-af-08.ts +6 -5
  198. package/src/schematron/cen/af/cen-en16931-br-af-09.ts +6 -5
  199. package/src/schematron/cen/af/cen-en16931-br-af-10.ts +6 -5
  200. package/src/schematron/cen/ag/cen-en16931-br-ag-01.ts +6 -5
  201. package/src/schematron/cen/ag/cen-en16931-br-ag-02.ts +6 -5
  202. package/src/schematron/cen/ag/cen-en16931-br-ag-03.ts +6 -10
  203. package/src/schematron/cen/ag/cen-en16931-br-ag-04.ts +6 -5
  204. package/src/schematron/cen/ag/cen-en16931-br-ag-05.ts +6 -5
  205. package/src/schematron/cen/ag/cen-en16931-br-ag-06.ts +6 -5
  206. package/src/schematron/cen/ag/cen-en16931-br-ag-07.ts +6 -5
  207. package/src/schematron/cen/ag/cen-en16931-br-ag-08.ts +6 -5
  208. package/src/schematron/cen/ag/cen-en16931-br-ag-09.ts +6 -5
  209. package/src/schematron/cen/ag/cen-en16931-br-ag-10.ts +6 -5
  210. package/src/schematron/cen/b/cen-en16931-br-b-01.ts +6 -5
  211. package/src/schematron/cen/b/cen-en16931-br-b-02.ts +6 -5
  212. package/src/schematron/cen/cen-en16931-br-01.ts +6 -5
  213. package/src/schematron/cen/cen-en16931-br-02.ts +6 -5
  214. package/src/schematron/cen/cen-en16931-br-03.ts +9 -6
  215. package/src/schematron/cen/cen-en16931-br-04.ts +6 -5
  216. package/src/schematron/cen/cen-en16931-br-05.ts +6 -5
  217. package/src/schematron/cen/cen-en16931-br-06.ts +6 -5
  218. package/src/schematron/cen/cen-en16931-br-07.ts +6 -5
  219. package/src/schematron/cen/cen-en16931-br-08.ts +6 -5
  220. package/src/schematron/cen/cen-en16931-br-09.ts +6 -5
  221. package/src/schematron/cen/cen-en16931-br-10.ts +6 -5
  222. package/src/schematron/cen/cen-en16931-br-11.ts +6 -5
  223. package/src/schematron/cen/cen-en16931-br-12.ts +6 -5
  224. package/src/schematron/cen/cen-en16931-br-13.ts +6 -5
  225. package/src/schematron/cen/cen-en16931-br-14.ts +6 -5
  226. package/src/schematron/cen/cen-en16931-br-15.ts +6 -5
  227. package/src/schematron/cen/cen-en16931-br-16.ts +6 -5
  228. package/src/schematron/cen/cen-en16931-br-17.ts +6 -5
  229. package/src/schematron/cen/cen-en16931-br-18.ts +6 -5
  230. package/src/schematron/cen/cen-en16931-br-19.ts +6 -5
  231. package/src/schematron/cen/cen-en16931-br-20.ts +6 -5
  232. package/src/schematron/cen/cen-en16931-br-21.ts +6 -5
  233. package/src/schematron/cen/cen-en16931-br-22.ts +6 -5
  234. package/src/schematron/cen/cen-en16931-br-23.ts +6 -5
  235. package/src/schematron/cen/cen-en16931-br-24.ts +6 -5
  236. package/src/schematron/cen/cen-en16931-br-25.ts +6 -5
  237. package/src/schematron/cen/cen-en16931-br-26.ts +6 -5
  238. package/src/schematron/cen/cen-en16931-br-27.ts +6 -5
  239. package/src/schematron/cen/cen-en16931-br-28.ts +6 -5
  240. package/src/schematron/cen/cen-en16931-br-29.ts +6 -5
  241. package/src/schematron/cen/cen-en16931-br-30.ts +6 -5
  242. package/src/schematron/cen/cen-en16931-br-31.ts +6 -5
  243. package/src/schematron/cen/cen-en16931-br-32.ts +6 -5
  244. package/src/schematron/cen/cen-en16931-br-33.ts +6 -5
  245. package/src/schematron/cen/cen-en16931-br-36.ts +6 -5
  246. package/src/schematron/cen/cen-en16931-br-37.ts +6 -5
  247. package/src/schematron/cen/cen-en16931-br-38.ts +6 -5
  248. package/src/schematron/cen/cen-en16931-br-41.ts +6 -5
  249. package/src/schematron/cen/cen-en16931-br-42.ts +6 -5
  250. package/src/schematron/cen/cen-en16931-br-43.ts +6 -5
  251. package/src/schematron/cen/cen-en16931-br-44.ts +6 -5
  252. package/src/schematron/cen/cen-en16931-br-45.ts +6 -5
  253. package/src/schematron/cen/cen-en16931-br-46.ts +6 -5
  254. package/src/schematron/cen/cen-en16931-br-47.ts +6 -5
  255. package/src/schematron/cen/cen-en16931-br-48.ts +6 -5
  256. package/src/schematron/cen/cen-en16931-br-49.ts +6 -5
  257. package/src/schematron/cen/cen-en16931-br-50.ts +6 -5
  258. package/src/schematron/cen/cen-en16931-br-51.ts +6 -5
  259. package/src/schematron/cen/cen-en16931-br-52.ts +6 -5
  260. package/src/schematron/cen/cen-en16931-br-53.ts +6 -5
  261. package/src/schematron/cen/cen-en16931-br-54.ts +6 -5
  262. package/src/schematron/cen/cen-en16931-br-55.ts +6 -5
  263. package/src/schematron/cen/cen-en16931-br-56.ts +6 -5
  264. package/src/schematron/cen/cen-en16931-br-57.ts +6 -5
  265. package/src/schematron/cen/cen-en16931-br-61.ts +6 -5
  266. package/src/schematron/cen/cen-en16931-br-62.ts +6 -5
  267. package/src/schematron/cen/cen-en16931-br-63.ts +6 -5
  268. package/src/schematron/cen/cen-en16931-br-64.ts +6 -5
  269. package/src/schematron/cen/cen-en16931-br-65.ts +6 -5
  270. package/src/schematron/cen/cl/cen-en16931-br-cl-08.ts +6 -5
  271. package/src/schematron/cen/co/cen-en16931-br-co-03.ts +6 -5
  272. package/src/schematron/cen/co/cen-en16931-br-co-04.ts +6 -5
  273. package/src/schematron/cen/co/cen-en16931-br-co-05.ts +6 -5
  274. package/src/schematron/cen/co/cen-en16931-br-co-06.ts +6 -5
  275. package/src/schematron/cen/co/cen-en16931-br-co-07.ts +6 -5
  276. package/src/schematron/cen/co/cen-en16931-br-co-08.ts +6 -5
  277. package/src/schematron/cen/co/cen-en16931-br-co-09.ts +6 -5
  278. package/src/schematron/cen/co/cen-en16931-br-co-10.ts +6 -5
  279. package/src/schematron/cen/co/cen-en16931-br-co-11.ts +6 -5
  280. package/src/schematron/cen/co/cen-en16931-br-co-12.ts +6 -5
  281. package/src/schematron/cen/co/cen-en16931-br-co-13.ts +6 -5
  282. package/src/schematron/cen/co/cen-en16931-br-co-14.ts +6 -5
  283. package/src/schematron/cen/co/cen-en16931-br-co-15.ts +6 -5
  284. package/src/schematron/cen/co/cen-en16931-br-co-16.ts +6 -5
  285. package/src/schematron/cen/co/cen-en16931-br-co-17.ts +6 -5
  286. package/src/schematron/cen/co/cen-en16931-br-co-18.ts +6 -5
  287. package/src/schematron/cen/co/cen-en16931-br-co-19.ts +6 -5
  288. package/src/schematron/cen/co/cen-en16931-br-co-20.ts +6 -5
  289. package/src/schematron/cen/co/cen-en16931-br-co-21.ts +6 -5
  290. package/src/schematron/cen/co/cen-en16931-br-co-22.ts +6 -5
  291. package/src/schematron/cen/co/cen-en16931-br-co-23.ts +6 -5
  292. package/src/schematron/cen/co/cen-en16931-br-co-24.ts +6 -5
  293. package/src/schematron/cen/co/cen-en16931-br-co-25.ts +6 -5
  294. package/src/schematron/cen/co/cen-en16931-br-co-26.ts +6 -5
  295. package/src/schematron/cen/dec/cen-en16931-br-dec-01.ts +6 -5
  296. package/src/schematron/cen/dec/cen-en16931-br-dec-02.ts +6 -5
  297. package/src/schematron/cen/dec/cen-en16931-br-dec-05.ts +6 -5
  298. package/src/schematron/cen/dec/cen-en16931-br-dec-06.ts +6 -5
  299. package/src/schematron/cen/dec/cen-en16931-br-dec-09.ts +6 -5
  300. package/src/schematron/cen/dec/cen-en16931-br-dec-10.ts +6 -5
  301. package/src/schematron/cen/dec/cen-en16931-br-dec-11.ts +6 -5
  302. package/src/schematron/cen/dec/cen-en16931-br-dec-12.ts +6 -5
  303. package/src/schematron/cen/dec/cen-en16931-br-dec-13.ts +6 -5
  304. package/src/schematron/cen/dec/cen-en16931-br-dec-14.ts +6 -5
  305. package/src/schematron/cen/dec/cen-en16931-br-dec-15.ts +6 -5
  306. package/src/schematron/cen/dec/cen-en16931-br-dec-16.ts +6 -5
  307. package/src/schematron/cen/dec/cen-en16931-br-dec-17.ts +6 -5
  308. package/src/schematron/cen/dec/cen-en16931-br-dec-18.ts +6 -5
  309. package/src/schematron/cen/dec/cen-en16931-br-dec-19.ts +6 -5
  310. package/src/schematron/cen/dec/cen-en16931-br-dec-20.ts +6 -5
  311. package/src/schematron/cen/dec/cen-en16931-br-dec-23.ts +6 -5
  312. package/src/schematron/cen/dec/cen-en16931-br-dec-24.ts +6 -5
  313. package/src/schematron/cen/dec/cen-en16931-br-dec-25.ts +6 -5
  314. package/src/schematron/cen/dec/cen-en16931-br-dec-27.ts +6 -5
  315. package/src/schematron/cen/dec/cen-en16931-br-dec-28.ts +6 -5
  316. package/src/schematron/cen/e/cen-en16931-br-e-01.ts +6 -5
  317. package/src/schematron/cen/e/cen-en16931-br-e-02.ts +6 -5
  318. package/src/schematron/cen/e/cen-en16931-br-e-03.ts +6 -10
  319. package/src/schematron/cen/e/cen-en16931-br-e-04.ts +6 -5
  320. package/src/schematron/cen/e/cen-en16931-br-e-05.ts +6 -5
  321. package/src/schematron/cen/e/cen-en16931-br-e-06.ts +6 -5
  322. package/src/schematron/cen/e/cen-en16931-br-e-07.ts +6 -5
  323. package/src/schematron/cen/e/cen-en16931-br-e-08.ts +6 -5
  324. package/src/schematron/cen/e/cen-en16931-br-e-09.ts +6 -5
  325. package/src/schematron/cen/e/cen-en16931-br-e-10.ts +6 -5
  326. package/src/schematron/cen/g/cen-en16931-br-g-01.ts +6 -5
  327. package/src/schematron/cen/g/cen-en16931-br-g-02.ts +6 -5
  328. package/src/schematron/cen/g/cen-en16931-br-g-03.ts +6 -5
  329. package/src/schematron/cen/g/cen-en16931-br-g-04.ts +6 -5
  330. package/src/schematron/cen/g/cen-en16931-br-g-05.ts +6 -5
  331. package/src/schematron/cen/g/cen-en16931-br-g-06.ts +6 -5
  332. package/src/schematron/cen/g/cen-en16931-br-g-07.ts +6 -5
  333. package/src/schematron/cen/g/cen-en16931-br-g-08.ts +6 -5
  334. package/src/schematron/cen/g/cen-en16931-br-g-09.ts +6 -5
  335. package/src/schematron/cen/g/cen-en16931-br-g-10.ts +6 -5
  336. package/src/schematron/cen/ic/cen-en16931-br-ic-01.ts +6 -5
  337. package/src/schematron/cen/ic/cen-en16931-br-ic-02.ts +6 -5
  338. package/src/schematron/cen/ic/cen-en16931-br-ic-03.ts +6 -5
  339. package/src/schematron/cen/ic/cen-en16931-br-ic-04.ts +6 -5
  340. package/src/schematron/cen/ic/cen-en16931-br-ic-05.ts +6 -5
  341. package/src/schematron/cen/ic/cen-en16931-br-ic-06.ts +6 -5
  342. package/src/schematron/cen/ic/cen-en16931-br-ic-07.ts +6 -5
  343. package/src/schematron/cen/ic/cen-en16931-br-ic-08.ts +6 -5
  344. package/src/schematron/cen/ic/cen-en16931-br-ic-09.ts +6 -5
  345. package/src/schematron/cen/ic/cen-en16931-br-ic-10.ts +6 -5
  346. package/src/schematron/cen/ic/cen-en16931-br-ic-11.ts +6 -5
  347. package/src/schematron/cen/ic/cen-en16931-br-ic-12.ts +6 -5
  348. package/src/schematron/cen/o/cen-en16931-br-o-01.ts +6 -5
  349. package/src/schematron/cen/o/cen-en16931-br-o-02.ts +6 -5
  350. package/src/schematron/cen/o/cen-en16931-br-o-03.ts +6 -5
  351. package/src/schematron/cen/o/cen-en16931-br-o-04.ts +6 -5
  352. package/src/schematron/cen/o/cen-en16931-br-o-05.ts +6 -5
  353. package/src/schematron/cen/o/cen-en16931-br-o-06.ts +6 -5
  354. package/src/schematron/cen/o/cen-en16931-br-o-07.ts +6 -5
  355. package/src/schematron/cen/o/cen-en16931-br-o-08.ts +6 -5
  356. package/src/schematron/cen/o/cen-en16931-br-o-09.ts +6 -5
  357. package/src/schematron/cen/o/cen-en16931-br-o-10.ts +6 -5
  358. package/src/schematron/cen/o/cen-en16931-br-o-11.ts +6 -5
  359. package/src/schematron/cen/o/cen-en16931-br-o-12.ts +6 -5
  360. package/src/schematron/cen/o/cen-en16931-br-o-13.ts +6 -5
  361. package/src/schematron/cen/o/cen-en16931-br-o-14.ts +6 -5
  362. package/src/schematron/cen/s/cen-en16931-br-s-01.ts +6 -5
  363. package/src/schematron/cen/s/cen-en16931-br-s-02.ts +6 -5
  364. package/src/schematron/cen/s/cen-en16931-br-s-03.ts +6 -10
  365. package/src/schematron/cen/s/cen-en16931-br-s-04.ts +6 -5
  366. package/src/schematron/cen/s/cen-en16931-br-s-05.ts +6 -5
  367. package/src/schematron/cen/s/cen-en16931-br-s-06.ts +6 -5
  368. package/src/schematron/cen/s/cen-en16931-br-s-07.ts +6 -5
  369. package/src/schematron/cen/s/cen-en16931-br-s-08.ts +6 -5
  370. package/src/schematron/cen/s/cen-en16931-br-s-09.ts +6 -5
  371. package/src/schematron/cen/s/cen-en16931-br-s-10.ts +6 -5
  372. package/src/schematron/cen/z/cen-en16931-br-z-01.ts +6 -5
  373. package/src/schematron/cen/z/cen-en16931-br-z-02.ts +6 -5
  374. package/src/schematron/cen/z/cen-en16931-br-z-03.ts +6 -10
  375. package/src/schematron/cen/z/cen-en16931-br-z-04.ts +6 -5
  376. package/src/schematron/cen/z/cen-en16931-br-z-05.ts +6 -5
  377. package/src/schematron/cen/z/cen-en16931-br-z-06.ts +6 -5
  378. package/src/schematron/cen/z/cen-en16931-br-z-07.ts +6 -5
  379. package/src/schematron/cen/z/cen-en16931-br-z-08.ts +6 -5
  380. package/src/schematron/cen/z/cen-en16931-br-z-09.ts +6 -5
  381. package/src/schematron/cen/z/cen-en16931-br-z-10.ts +6 -5
  382. package/src/schematron/de/de-r-001.ts +8 -7
  383. package/src/schematron/de/de-r-002.ts +8 -7
  384. package/src/schematron/de/de-r-003.ts +8 -7
  385. package/src/schematron/de/de-r-004.ts +8 -7
  386. package/src/schematron/de/de-r-005.ts +8 -7
  387. package/src/schematron/de/de-r-006.ts +8 -7
  388. package/src/schematron/de/de-r-007.ts +8 -7
  389. package/src/schematron/de/de-r-008.ts +8 -7
  390. package/src/schematron/de/de-r-009.ts +8 -7
  391. package/src/schematron/de/de-r-010.ts +9 -8
  392. package/src/schematron/de/de-r-011.ts +9 -8
  393. package/src/schematron/de/de-r-014.ts +8 -7
  394. package/src/schematron/de/de-r-015.ts +8 -7
  395. package/src/schematron/de/de-r-016.ts +9 -8
  396. package/src/schematron/de/de-r-017.ts +8 -7
  397. package/src/schematron/de/de-r-018.ts +10 -9
  398. package/src/schematron/de/de-r-019.ts +8 -7
  399. package/src/schematron/de/de-r-020.ts +8 -7
  400. package/src/schematron/de/de-r-022.ts +8 -7
  401. package/src/schematron/de/de-r-023-1.ts +8 -7
  402. package/src/schematron/de/de-r-023-2.ts +8 -7
  403. package/src/schematron/de/de-r-024-1.ts +8 -7
  404. package/src/schematron/de/de-r-024-2.ts +8 -7
  405. package/src/schematron/de/de-r-025-1.ts +8 -7
  406. package/src/schematron/de/de-r-025-2.ts +8 -7
  407. package/src/schematron/de/de-r-026.ts +9 -8
  408. package/src/schematron/de/de-r-027.ts +8 -7
  409. package/src/schematron/de/de-r-028.ts +8 -7
  410. package/src/schematron/de/de-r-030.ts +9 -8
  411. package/src/schematron/de/de-r-031.ts +8 -7
  412. package/src/schematron/dk/dk-r-002.ts +7 -6
  413. package/src/schematron/dk/dk-r-003.ts +8 -7
  414. package/src/schematron/dk/dk-r-004.ts +8 -7
  415. package/src/schematron/dk/dk-r-005.ts +8 -7
  416. package/src/schematron/dk/dk-r-006.ts +8 -7
  417. package/src/schematron/dk/dk-r-007.ts +8 -7
  418. package/src/schematron/dk/dk-r-008.ts +8 -7
  419. package/src/schematron/dk/dk-r-009.ts +8 -7
  420. package/src/schematron/dk/dk-r-010.ts +8 -7
  421. package/src/schematron/dk/dk-r-011.ts +8 -7
  422. package/src/schematron/dk/dk-r-013.ts +8 -7
  423. package/src/schematron/dk/dk-r-014.ts +7 -6
  424. package/src/schematron/dk/dk-r-016.ts +8 -7
  425. package/src/schematron/dk/dk-r-017.ts +8 -7
  426. package/src/schematron/errors.ts +17 -0
  427. package/src/schematron/gr/gr-r-001-1.ts +7 -6
  428. package/src/schematron/gr/gr-r-001-2.ts +8 -7
  429. package/src/schematron/gr/gr-r-001-3.ts +14 -9
  430. package/src/schematron/gr/gr-r-001-4.ts +8 -7
  431. package/src/schematron/gr/gr-r-001-5.ts +8 -7
  432. package/src/schematron/gr/gr-r-001-6.ts +7 -6
  433. package/src/schematron/gr/gr-r-001-7.ts +7 -6
  434. package/src/schematron/gr/gr-r-002.ts +7 -6
  435. package/src/schematron/gr/gr-r-003.ts +8 -7
  436. package/src/schematron/gr/gr-r-004-1.ts +7 -6
  437. package/src/schematron/gr/gr-r-004-2.ts +7 -6
  438. package/src/schematron/gr/gr-r-005.ts +7 -6
  439. package/src/schematron/gr/gr-r-006.ts +12 -11
  440. package/src/schematron/gr/gr-r-008-2.ts +7 -6
  441. package/src/schematron/gr/gr-r-008-3.ts +7 -6
  442. package/src/schematron/gr/gr-r-009.ts +7 -6
  443. package/src/schematron/gr/gr-r-010.ts +7 -6
  444. package/src/schematron/gr/gr-s-008-1.ts +7 -6
  445. package/src/schematron/gr/gr-s-011.ts +8 -7
  446. package/src/schematron/helpers.ts +46 -23
  447. package/src/schematron/index.ts +6 -1
  448. package/src/schematron/is/is-r-001.ts +7 -6
  449. package/src/schematron/is/is-r-002.ts +7 -6
  450. package/src/schematron/is/is-r-003.ts +7 -6
  451. package/src/schematron/is/is-r-004.ts +7 -6
  452. package/src/schematron/is/is-r-005.ts +7 -6
  453. package/src/schematron/is/is-r-006.ts +8 -7
  454. package/src/schematron/is/is-r-007.ts +8 -7
  455. package/src/schematron/is/is-r-008.ts +8 -7
  456. package/src/schematron/is/is-r-009.ts +8 -7
  457. package/src/schematron/is/is-r-010.ts +9 -8
  458. package/src/schematron/it/it-r-001.ts +7 -6
  459. package/src/schematron/it/it-r-002.ts +7 -6
  460. package/src/schematron/it/it-r-003.ts +7 -6
  461. package/src/schematron/it/it-r-004.ts +7 -6
  462. package/src/schematron/nl/nl-r-001.ts +7 -6
  463. package/src/schematron/nl/nl-r-002.ts +7 -6
  464. package/src/schematron/nl/nl-r-003.ts +8 -7
  465. package/src/schematron/nl/nl-r-004.ts +7 -6
  466. package/src/schematron/nl/nl-r-005.ts +8 -7
  467. package/src/schematron/nl/nl-r-006.ts +8 -7
  468. package/src/schematron/nl/nl-r-007.ts +8 -7
  469. package/src/schematron/nl/nl-r-008.ts +7 -6
  470. package/src/schematron/nl/nl-r-009.ts +8 -7
  471. package/src/schematron/no/no-r-001.ts +8 -7
  472. package/src/schematron/no/no-r-002.ts +7 -6
  473. package/src/schematron/peppol/cl/peppol-en16931-cl001.ts +6 -5
  474. package/src/schematron/peppol/cl/peppol-en16931-cl002.ts +6 -5
  475. package/src/schematron/peppol/cl/peppol-en16931-cl003.ts +6 -5
  476. package/src/schematron/peppol/cl/peppol-en16931-cl006.ts +7 -6
  477. package/src/schematron/peppol/cl/peppol-en16931-cl007.ts +27 -26
  478. package/src/schematron/peppol/cl/peppol-en16931-cl008.ts +6 -5
  479. package/src/schematron/peppol/common/peppol-common-r040.ts +6 -5
  480. package/src/schematron/peppol/common/peppol-common-r041.ts +6 -5
  481. package/src/schematron/peppol/common/peppol-common-r042.ts +6 -5
  482. package/src/schematron/peppol/common/peppol-common-r043.ts +6 -5
  483. package/src/schematron/peppol/common/peppol-common-r044.ts +6 -5
  484. package/src/schematron/peppol/common/peppol-common-r045.ts +6 -5
  485. package/src/schematron/peppol/common/peppol-common-r046.ts +6 -5
  486. package/src/schematron/peppol/common/peppol-common-r047.ts +6 -5
  487. package/src/schematron/peppol/common/peppol-common-r049.ts +6 -5
  488. package/src/schematron/peppol/common/peppol-common-r050.ts +6 -5
  489. package/src/schematron/peppol/common/peppol-common-r052.ts +6 -5
  490. package/src/schematron/peppol/common/peppol-common-r053.ts +6 -5
  491. package/src/schematron/peppol/f/peppol-en16931-f001.ts +27 -14
  492. package/src/schematron/peppol/p/peppol-en16931-p0100.ts +8 -7
  493. package/src/schematron/peppol/p/peppol-en16931-p0101.ts +8 -7
  494. package/src/schematron/peppol/p/peppol-en16931-p0104.ts +6 -5
  495. package/src/schematron/peppol/p/peppol-en16931-p0105.ts +6 -5
  496. package/src/schematron/peppol/p/peppol-en16931-p0106.ts +6 -5
  497. package/src/schematron/peppol/p/peppol-en16931-p0107.ts +6 -5
  498. package/src/schematron/peppol/p/peppol-en16931-p0108.ts +6 -5
  499. package/src/schematron/peppol/p/peppol-en16931-p0109.ts +6 -5
  500. package/src/schematron/peppol/p/peppol-en16931-p0110.ts +6 -5
  501. package/src/schematron/peppol/p/peppol-en16931-p0111.ts +6 -5
  502. package/src/schematron/peppol/p/peppol-en16931-p0112.ts +7 -6
  503. package/src/schematron/peppol/r/peppol-en16931-r001.ts +11 -13
  504. package/src/schematron/peppol/r/peppol-en16931-r002.ts +6 -5
  505. package/src/schematron/peppol/r/peppol-en16931-r003.ts +6 -5
  506. package/src/schematron/peppol/r/peppol-en16931-r004.ts +6 -5
  507. package/src/schematron/peppol/r/peppol-en16931-r005.ts +7 -6
  508. package/src/schematron/peppol/r/peppol-en16931-r007.ts +6 -5
  509. package/src/schematron/peppol/r/peppol-en16931-r008.ts +6 -5
  510. package/src/schematron/peppol/r/peppol-en16931-r010.ts +6 -5
  511. package/src/schematron/peppol/r/peppol-en16931-r020.ts +6 -5
  512. package/src/schematron/peppol/r/peppol-en16931-r040.ts +6 -5
  513. package/src/schematron/peppol/r/peppol-en16931-r041.ts +6 -5
  514. package/src/schematron/peppol/r/peppol-en16931-r042.ts +6 -5
  515. package/src/schematron/peppol/r/peppol-en16931-r043.ts +6 -5
  516. package/src/schematron/peppol/r/peppol-en16931-r044.ts +6 -5
  517. package/src/schematron/peppol/r/peppol-en16931-r046.ts +6 -5
  518. package/src/schematron/peppol/r/peppol-en16931-r051.ts +48 -27
  519. package/src/schematron/peppol/r/peppol-en16931-r053.ts +6 -5
  520. package/src/schematron/peppol/r/peppol-en16931-r054.ts +6 -5
  521. package/src/schematron/peppol/r/peppol-en16931-r055.ts +8 -7
  522. package/src/schematron/peppol/r/peppol-en16931-r061.ts +6 -5
  523. package/src/schematron/peppol/r/peppol-en16931-r100.ts +6 -5
  524. package/src/schematron/peppol/r/peppol-en16931-r101.ts +6 -5
  525. package/src/schematron/peppol/r/peppol-en16931-r110.ts +7 -6
  526. package/src/schematron/peppol/r/peppol-en16931-r111.ts +7 -6
  527. package/src/schematron/peppol/r/peppol-en16931-r120.ts +6 -5
  528. package/src/schematron/peppol/r/peppol-en16931-r121.ts +6 -5
  529. package/src/schematron/peppol/r/peppol-en16931-r130.ts +6 -5
  530. package/src/schematron/run-all-rules.ts +2 -7
  531. package/src/schematron/schematron.ts +36 -0
  532. package/src/schematron/se/se-r-001.ts +7 -6
  533. package/src/schematron/se/se-r-002.ts +7 -6
  534. package/src/schematron/se/se-r-003.ts +7 -6
  535. package/src/schematron/se/se-r-004.ts +7 -6
  536. package/src/schematron/se/se-r-005.ts +8 -7
  537. package/src/schematron/se/se-r-006.ts +7 -6
  538. package/src/schematron/se/se-r-007.ts +7 -6
  539. package/src/schematron/se/se-r-008.ts +7 -6
  540. package/src/schematron/se/se-r-009.ts +7 -6
  541. package/src/schematron/se/se-r-010.ts +7 -6
  542. package/src/schematron/se/se-r-011.ts +7 -6
  543. package/src/schematron/se/se-r-012.ts +7 -6
  544. package/src/schematron/se/se-r-013.ts +7 -6
  545. package/src/values/additional-document-reference-codes.generated.ts +2 -3
  546. package/src/values/allowance-charge-reason-codes.generated.ts +1 -1
  547. package/src/values/application-response-type-codes.generated.ts +1 -1
  548. package/src/values/charge-reason-codes.generated.ts +1 -1
  549. package/src/values/country-code.generated.ts +1 -1
  550. package/src/values/credit-notes-type-codes.generated.ts +1 -1
  551. package/src/values/currency-code.generated.ts +1 -1
  552. package/src/values/document-type-codes.generated.ts +1 -1
  553. package/src/values/document-type.generated.ts +2 -2
  554. package/src/values/duty-tax-fee-categories.generated.ts +1 -1
  555. package/src/values/eas-codes.generated.ts +1 -1
  556. package/src/values/icd-codes.generated.ts +7 -7
  557. package/src/values/invoice-status-codes.generated.ts +1 -1
  558. package/src/values/invoice-type-codes.generated.ts +1 -1
  559. package/src/values/item-classification-code.generated.ts +1 -1
  560. package/src/values/mime-codes.generated.ts +1 -1
  561. package/src/values/op-status-action.generated.ts +1 -1
  562. package/src/values/op-status-reason.generated.ts +1 -1
  563. package/src/values/participant-identifier-schemes.generated.ts +2 -2
  564. package/src/values/payment-means-codes.generated.ts +1 -1
  565. package/src/values/processes.generated.ts +1 -1
  566. package/src/values/quantity-unit-codes.generated.ts +1 -1
  567. package/src/values/vat-dates.generated.ts +1 -1
  568. package/src/values/vatex-codes.generated.ts +1 -1
  569. package/dist/all-union-fields-CxoyKBpI.d.ts +0 -445
  570. package/dist/all-union-fields-CxoyKBpI.d.ts.map +0 -1
  571. package/dist/document-DCcObB-a.d.ts +0 -1466
  572. package/dist/document-DCcObB-a.d.ts.map +0 -1
  573. package/dist/effect.d.ts +0 -6291
  574. package/dist/effect.d.ts.map +0 -1
  575. package/dist/effect.js +0 -3240
  576. package/dist/effect.js.map +0 -1
  577. package/dist/index.d.ts.map +0 -1
  578. package/dist/is-valid-process-CSWL-q9f.js +0 -1590
  579. package/dist/is-valid-process-CSWL-q9f.js.map +0 -1
  580. package/dist/quantity-unit-code-to-intl-unit-15EykjMe.d.ts +0 -168
  581. package/dist/quantity-unit-code-to-intl-unit-15EykjMe.d.ts.map +0 -1
  582. package/dist/vat-dates.generated-DTVWQAdn.d.ts +0 -4812
  583. package/dist/vat-dates.generated-DTVWQAdn.d.ts.map +0 -1
  584. package/dist/vatex-codes.generated-BSgP3n5t.js.map +0 -1
  585. package/src/decoders/errors.ts +0 -11
  586. package/src/document-parser.ts +0 -70
  587. package/src/document.ts +0 -19
  588. package/src/effect/fields/default-customization-id.ts +0 -1
  589. package/src/effect/fields/default-profile-id.ts +0 -1
  590. package/src/effect/fields/peppol-additional-document-reference-schema.ts +0 -114
  591. package/src/effect/fields/peppol-address-schema.ts +0 -105
  592. package/src/effect/fields/peppol-allowance-charge-schema.ts +0 -95
  593. package/src/effect/fields/peppol-amount-schema.ts +0 -22
  594. package/src/effect/fields/peppol-base-line-schema.ts +0 -138
  595. package/src/effect/fields/peppol-binary-object-schema.ts +0 -51
  596. package/src/effect/fields/peppol-contact-schema.ts +0 -18
  597. package/src/effect/fields/peppol-credit-note-line-schema.ts +0 -42
  598. package/src/effect/fields/peppol-delivery-schema.ts +0 -100
  599. package/src/effect/fields/peppol-identifier-schema.ts +0 -19
  600. package/src/effect/fields/peppol-invoice-line-period-schema.ts +0 -34
  601. package/src/effect/fields/peppol-invoice-period-schema.ts +0 -30
  602. package/src/effect/fields/peppol-item-classification-schema.ts +0 -45
  603. package/src/effect/fields/peppol-legal-monetary-total-schema.ts +0 -126
  604. package/src/effect/fields/peppol-line-allowance-charge-schema.ts +0 -64
  605. package/src/effect/fields/peppol-line-item-schema.ts +0 -185
  606. package/src/effect/fields/peppol-line-price-allowance-charge-schema.ts +0 -38
  607. package/src/effect/fields/peppol-line-price-schema.ts +0 -31
  608. package/src/effect/fields/peppol-order-reference-schema.ts +0 -36
  609. package/src/effect/fields/peppol-party-base-schema.ts +0 -138
  610. package/src/effect/fields/peppol-party-legal-entity-schema.ts +0 -29
  611. package/src/effect/fields/peppol-party-tax-scheme-schema.ts +0 -33
  612. package/src/effect/fields/peppol-payee-party-schema.ts +0 -112
  613. package/src/effect/fields/peppol-payment-means-schema.ts +0 -210
  614. package/src/effect/fields/peppol-payment-terms-schema.ts +0 -23
  615. package/src/effect/fields/peppol-quantity-schema.ts +0 -21
  616. package/src/effect/fields/peppol-reference-schema.ts +0 -5
  617. package/src/effect/fields/peppol-tax-category-schema.ts +0 -42
  618. package/src/effect/fields/peppol-tax-representative-schema.ts +0 -23
  619. package/src/effect/fields/peppol-tax-subtotal-schema.ts +0 -32
  620. package/src/effect/fields/peppol-tax-totals-base-schema.ts +0 -25
  621. package/src/effect/index.ts +0 -56
  622. package/src/effect/peppol-billing-base-schema.ts +0 -355
  623. package/src/effect/peppol-credit-note-schema.ts +0 -30
  624. package/src/effect/peppol-document-response-document-reference-schema.ts +0 -38
  625. package/src/effect/peppol-document-response-document-schema.ts +0 -35
  626. package/src/effect/peppol-document-response-line-response-content-schema.ts +0 -44
  627. package/src/effect/peppol-document-response-line-response-schema.ts +0 -33
  628. package/src/effect/peppol-document-schema.ts +0 -142
  629. package/src/effect/peppol-invoice-response-document-actual-response-status-schema.ts +0 -60
  630. package/src/effect/peppol-invoice-response-schema.ts +0 -168
  631. package/src/effect/peppol-invoice-response-status-reason-code-schema.ts +0 -31
  632. package/src/effect/peppol-invoice-schema.ts +0 -42
  633. package/src/effect/peppol-iso-date-string-schema.ts +0 -19
  634. package/src/effect/peppol-message-level-response-document-response-schema.ts +0 -33
  635. package/src/effect/peppol-message-level-response-party-schema.ts +0 -19
  636. package/src/effect/peppol-message-level-response-schema.ts +0 -97
  637. package/src/effect/utils/format-quantity-with-unit.ts +0 -1
  638. package/src/effect/utils/get-credit-note-type-code-description.ts +0 -1
  639. package/src/effect/utils/get-invoice-type-code-description.ts +0 -1
  640. package/src/effect/utils/is-valid-credit-note-type-code.ts +0 -1
  641. package/src/effect/utils/is-valid-invoice-type-code.ts +0 -1
  642. package/src/effect/utils/is-valid-process.ts +0 -1
  643. package/src/effect/utils/peppol-xsd-time-schema.ts +0 -13
  644. package/src/effect/utils/quantity-unit-code-to-intl-unit.ts +0 -2
  645. package/src/effect/values/credit-note-type-code-schema.ts +0 -23
  646. package/src/effect/values/document-type-schemes-schema.ts +0 -14
  647. package/src/effect/values/document-type-values-schema.ts +0 -16
  648. package/src/effect/values/invoice-type-code-schema.ts +0 -21
  649. package/src/effect/values/process-from-document-type-schema.ts +0 -26
  650. package/src/effect/values/quantity-unit-codes-schema.ts +0 -24
  651. package/src/helpers/errors.ts +0 -6
  652. package/src/helpers/is-defined.ts +0 -3
  653. package/src/schemas/billing-base.ts +0 -362
  654. package/src/schemas/credit-note.ts +0 -28
  655. package/src/schemas/document-response-document-reference-schema.ts +0 -37
  656. package/src/schemas/document-response-document-schema.ts +0 -34
  657. package/src/schemas/document-response-line-response-content.ts +0 -43
  658. package/src/schemas/document-response-line-response-schema.ts +0 -33
  659. package/src/schemas/fields/additional-document-reference-schema.ts +0 -112
  660. package/src/schemas/fields/address-schema.ts +0 -105
  661. package/src/schemas/fields/allowance-charge-schema.ts +0 -86
  662. package/src/schemas/fields/amount-schema.ts +0 -21
  663. package/src/schemas/fields/base-line-schema.ts +0 -136
  664. package/src/schemas/fields/billing-references-schema.ts +0 -44
  665. package/src/schemas/fields/binary-object-schema.ts +0 -45
  666. package/src/schemas/fields/contact-schema.ts +0 -18
  667. package/src/schemas/fields/credit-note-line-schema.ts +0 -37
  668. package/src/schemas/fields/date-only-fn.ts +0 -6
  669. package/src/schemas/fields/date-only-parser.ts +0 -20
  670. package/src/schemas/fields/delivery-schema.ts +0 -95
  671. package/src/schemas/fields/identifier-schema.ts +0 -24
  672. package/src/schemas/fields/invoice-line-period-schema.ts +0 -31
  673. package/src/schemas/fields/invoice-line-schema.ts +0 -41
  674. package/src/schemas/fields/invoice-period-schema.ts +0 -27
  675. package/src/schemas/fields/legal-monetary-total-schema.ts +0 -125
  676. package/src/schemas/fields/line-allowance-charge-schema.ts +0 -59
  677. package/src/schemas/fields/line-item-schema.ts +0 -183
  678. package/src/schemas/fields/line-price-allowance-charge-schema.ts +0 -33
  679. package/src/schemas/fields/list-identifier-schema.ts +0 -43
  680. package/src/schemas/fields/order-reference-schema.ts +0 -36
  681. package/src/schemas/fields/party-base-schema.ts +0 -131
  682. package/src/schemas/fields/party-legal-entity-schema.ts +0 -29
  683. package/src/schemas/fields/party-tax-schema.ts +0 -33
  684. package/src/schemas/fields/payee-party.ts +0 -107
  685. package/src/schemas/fields/payment-means-schema.ts +0 -209
  686. package/src/schemas/fields/payment-terms-schema.ts +0 -23
  687. package/src/schemas/fields/price-schema.ts +0 -31
  688. package/src/schemas/fields/quantity-schema.ts +0 -21
  689. package/src/schemas/fields/reference-schema.ts +0 -4
  690. package/src/schemas/fields/tax-category-schema.ts +0 -41
  691. package/src/schemas/fields/tax-representative-party-schema.ts +0 -23
  692. package/src/schemas/fields/tax-subtotal-category-schema.ts +0 -26
  693. package/src/schemas/fields/tax-subtotal-schema.ts +0 -32
  694. package/src/schemas/fields/tax-totals.ts +0 -25
  695. package/src/schemas/fields/time-only.ts +0 -23
  696. package/src/schemas/invoice-response-document-actual-response-status.ts +0 -58
  697. package/src/schemas/invoice-response-document-actual-response.ts +0 -73
  698. package/src/schemas/invoice-response-schema.ts +0 -155
  699. package/src/schemas/invoice-response-status-reason-code.ts +0 -30
  700. package/src/schemas/invoice.ts +0 -43
  701. package/src/schemas/message-level-response-document-response-schema.ts +0 -33
  702. package/src/schemas/message-level-response-party-schema.ts +0 -18
  703. package/src/schemas/message-level-response-schema.ts +0 -96
  704. package/src/schemas/utils/base-64.ts +0 -34
  705. package/src/schemas/utils/vat-regex.ts +0 -51
  706. package/src/schemas/utils/xsd-time.ts +0 -9
  707. package/src/schemas/values/additional-document-reference-code.ts +0 -27
  708. package/src/schemas/values/allowance-charge-reason-code.ts +0 -29
  709. package/src/schemas/values/application-response-type-codes.ts +0 -25
  710. package/src/schemas/values/charge-reason-code.ts +0 -29
  711. package/src/schemas/values/country-code.ts +0 -36
  712. package/src/schemas/values/currency-codes.ts +0 -35
  713. package/src/schemas/values/document-type-codes.ts +0 -25
  714. package/src/schemas/values/document-type-schema.ts +0 -49
  715. package/src/schemas/values/duty-tax-fee-cateogries.ts +0 -28
  716. package/src/schemas/values/eas-codes.ts +0 -35
  717. package/src/schemas/values/icd-codes.ts +0 -28
  718. package/src/schemas/values/invoice-status-codes.ts +0 -25
  719. package/src/schemas/values/item-classification-code-schema.ts +0 -28
  720. package/src/schemas/values/mime-code.ts +0 -28
  721. package/src/schemas/values/op-status-action.ts +0 -25
  722. package/src/schemas/values/op-status-reason.ts +0 -25
  723. package/src/schemas/values/participant-identifier-code.ts +0 -25
  724. package/src/schemas/values/payment-means-codes-schema.ts +0 -36
  725. package/src/schemas/values/process-schema.ts +0 -41
  726. package/src/schemas/values/process-xml-identifier-schema.ts +0 -27
  727. package/src/schemas/values/vat-date-code.ts +0 -15
  728. package/src/schemas/values/vatex-code.ts +0 -28
  729. package/src/schemas.ts +0 -97
  730. /package/src/{effect → schemas}/utils/peppol-base-64-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
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { getProfile, schematronResult } from '#/schematron/helpers';
4
+ import { getProfile, schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-R007',
@@ -10,6 +9,8 @@ const rule = {
10
9
  message: "Business process MUST be in the format 'urn:fdc:peppol.eu:2017:poacc:billing:NN:1.0' where NN indicates the process number.",
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931R007(document: PeppolDocument): SchematronRuleResult {
14
- return schematronResult(rule, getProfile(document) !== 'Unknown');
12
+ function evaluatePeppolEn16931R007(document: PeppolDocument): boolean {
13
+ return getProfile(document) !== 'Unknown';
15
14
  }
15
+
16
+ export const validatePeppolEn16931R007 = schematronRule(rule, evaluatePeppolEn16931R007);
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { schematronResult } from '#/schematron/helpers';
4
+ import { schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = { id: 'PEPPOL-EN16931-R008', level: 'fatal', message: 'Document MUST not contain empty elements.' } as const satisfies SchematronRule;
8
7
 
@@ -22,6 +21,8 @@ function containsEmptyElement(value: unknown): boolean {
22
21
  return false;
23
22
  }
24
23
 
25
- export function validatePeppolEn16931R008(document: PeppolDocument): SchematronRuleResult {
26
- return schematronResult(rule, !containsEmptyElement(document));
24
+ function evaluatePeppolEn16931R008(document: PeppolDocument): boolean {
25
+ return !containsEmptyElement(document);
27
26
  }
27
+
28
+ export const validatePeppolEn16931R008 = schematronRule(rule, evaluatePeppolEn16931R008);
@@ -1,12 +1,13 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { schematronResult } from '#/schematron/helpers';
4
+ import { schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = { id: 'PEPPOL-EN16931-R010', level: 'fatal', message: 'Buyer electronic address MUST be provided' } as const satisfies SchematronRule;
8
7
 
9
- export function validatePeppolEn16931R010(document: PeppolDocument): SchematronRuleResult {
8
+ function evaluatePeppolEn16931R010(document: PeppolDocument): boolean {
10
9
  const endpointId = document.accountingCustomerParty.endpointId?.id;
11
- return schematronResult(rule, typeof endpointId === 'string' && endpointId.trim() !== '');
10
+ return typeof endpointId === 'string' && endpointId.trim() !== '';
12
11
  }
12
+
13
+ export const validatePeppolEn16931R010 = schematronRule(rule, evaluatePeppolEn16931R010);
@@ -1,12 +1,13 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { schematronResult } from '#/schematron/helpers';
4
+ import { schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = { id: 'PEPPOL-EN16931-R020', level: 'fatal', message: 'Seller electronic address MUST be provided' } as const satisfies SchematronRule;
8
7
 
9
- export function validatePeppolEn16931R020(document: PeppolDocument): SchematronRuleResult {
8
+ function evaluatePeppolEn16931R020(document: PeppolDocument): boolean {
10
9
  const endpointId = document.accountingSupplierParty.endpointId?.id;
11
- return schematronResult(rule, typeof endpointId === 'string' && endpointId.trim() !== '');
10
+ return typeof endpointId === 'string' && endpointId.trim() !== '';
12
11
  }
12
+
13
+ export const validatePeppolEn16931R020 = schematronRule(rule, evaluatePeppolEn16931R020);
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { getAllAllowanceCharges, schematronResult, slack } from '#/schematron/helpers';
4
+ import { getAllAllowanceCharges, schematronRule, slack } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-R040',
@@ -10,7 +9,7 @@ const rule = {
10
9
  message: 'Allowance/charge amount must equal base amount * percentage/100 if base amount and percentage exists',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931R040(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931R040(document: PeppolDocument): boolean {
14
13
  const allowanceCharges = getAllAllowanceCharges(document);
15
14
  const passed = allowanceCharges.every(ac => {
16
15
  if (!ac.multiplierFactorNumeric || ac.baseAmount === undefined) {
@@ -19,5 +18,7 @@ export function validatePeppolEn16931R040(document: PeppolDocument): SchematronR
19
18
  const expected = (ac.baseAmount * ac.multiplierFactorNumeric) / 100;
20
19
  return slack(expected, ac.amount ?? 0, 0.02);
21
20
  });
22
- return schematronResult(rule, passed);
21
+ return passed;
23
22
  }
23
+
24
+ export const validatePeppolEn16931R040 = schematronRule(rule, evaluatePeppolEn16931R040);
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { getAllAllowanceCharges, schematronResult } from '#/schematron/helpers';
4
+ import { getAllAllowanceCharges, schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-R041',
@@ -10,8 +9,10 @@ const rule = {
10
9
  message: 'Allowance/charge base amount MUST be provided when allowance/charge percentage is provided.',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931R041(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931R041(document: PeppolDocument): boolean {
14
13
  const allowanceCharges = getAllAllowanceCharges(document);
15
14
  const passed = allowanceCharges.every(ac => !ac.multiplierFactorNumeric || ac.baseAmount !== undefined);
16
- return schematronResult(rule, passed);
15
+ return passed;
17
16
  }
17
+
18
+ export const validatePeppolEn16931R041 = schematronRule(rule, evaluatePeppolEn16931R041);
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { getAllAllowanceCharges, schematronResult } from '#/schematron/helpers';
4
+ import { getAllAllowanceCharges, schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-R042',
@@ -10,8 +9,10 @@ const rule = {
10
9
  message: 'Allowance/charge percentage MUST be provided when allowance/charge base amount is provided.',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931R042(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931R042(document: PeppolDocument): boolean {
14
13
  const allowanceCharges = getAllAllowanceCharges(document);
15
14
  const passed = allowanceCharges.every(ac => ac.baseAmount === undefined || Boolean(ac.multiplierFactorNumeric));
16
- return schematronResult(rule, passed);
15
+ return passed;
17
16
  }
17
+
18
+ export const validatePeppolEn16931R042 = schematronRule(rule, evaluatePeppolEn16931R042);
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { getAllAllowanceCharges, schematronResult } from '#/schematron/helpers';
4
+ import { getAllAllowanceCharges, schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-R043',
@@ -10,8 +9,10 @@ const rule = {
10
9
  message: "Allowance/charge ChargeIndicator value MUST equal 'true' or 'false'",
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931R043(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931R043(document: PeppolDocument): boolean {
14
13
  const allowanceCharges = getAllAllowanceCharges(document);
15
14
  const passed = allowanceCharges.every(ac => typeof ac.chargeIndicator === 'boolean');
16
- return schematronResult(rule, passed);
15
+ return passed;
17
16
  }
17
+
18
+ export const validatePeppolEn16931R043 = schematronRule(rule, evaluatePeppolEn16931R043);
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { getLines, schematronResult } from '#/schematron/helpers';
4
+ import { getLines, schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-R044',
@@ -10,7 +9,9 @@ const rule = {
10
9
  message: "Charge on price level is NOT allowed. Only value 'false' allowed.",
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931R044(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931R044(document: PeppolDocument): boolean {
14
13
  const passed = getLines(document).every(line => !line.price.allowanceCharge || !line.price.allowanceCharge.chargeIndicator);
15
- return schematronResult(rule, passed);
14
+ return passed;
16
15
  }
16
+
17
+ export const validatePeppolEn16931R044 = schematronRule(rule, evaluatePeppolEn16931R044);
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { getLines, schematronResult, slack } from '#/schematron/helpers';
4
+ import { getLines, schematronRule, slack } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-R046',
@@ -10,7 +9,7 @@ const rule = {
10
9
  message: 'Item net price MUST equal (Gross price - Allowance amount) when gross price is provided.',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931R046(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931R046(document: PeppolDocument): boolean {
14
13
  const passed = getLines(document).every(line => {
15
14
  const price = line.price;
16
15
  const allowance = price.allowanceCharge;
@@ -19,5 +18,7 @@ export function validatePeppolEn16931R046(document: PeppolDocument): SchematronR
19
18
  }
20
19
  return slack(allowance.baseAmount.value - (allowance.amount?.value ?? 0), price.priceAmount.value, 0.02);
21
20
  });
22
- return schematronResult(rule, passed);
21
+ return passed;
23
22
  }
23
+
24
+ export const validatePeppolEn16931R046 = schematronRule(rule, evaluatePeppolEn16931R046);
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { getLines, schematronResult } from '#/schematron/helpers';
4
+ import { getLines, schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-R051',
@@ -11,20 +10,34 @@ const rule = {
11
10
  'All currencyID attributes must have the same value as the invoice currency code (BT-5), except for the invoice total VAT amount in accounting currency (BT-111).',
12
11
  } as const satisfies SchematronRule;
13
12
 
14
- export function validatePeppolEn16931R051(document: PeppolDocument): SchematronRuleResult {
15
- const documentCurrency = document.documentCurrencyCode;
16
- const checkCurrency = (currencyId: string | undefined): boolean => currencyId === documentCurrency;
13
+ interface CurrencyAmount {
14
+ currencyId: string;
15
+ }
17
16
 
18
- const documentAllowancesOk = (document.allowanceCharges ?? []).every(
19
- ac => checkCurrency(ac.amount?.currencyId) && (!ac.baseAmount || checkCurrency(ac.baseAmount.currencyId))
20
- );
17
+ interface AllowanceChargeAmounts {
18
+ amount?: CurrencyAmount | undefined;
19
+ baseAmount?: CurrencyAmount | undefined;
20
+ }
21
21
 
22
- const linesOk = getLines(document).every(line => {
23
- const lineAllowancesOk = (line.allowanceCharges ?? []).every(
24
- ac => checkCurrency(ac.amount?.currencyId) && (!ac.baseAmount || checkCurrency(ac.baseAmount.currencyId))
25
- );
26
- return checkCurrency(line.price.priceAmount.currencyId) && checkCurrency(line.lineExtensionAmount.currencyId) && lineAllowancesOk;
27
- });
22
+ const matchesCurrency = (amount: CurrencyAmount | undefined, expected: string): boolean => amount?.currencyId === expected;
23
+
24
+ const optionalMatchesCurrency = (amount: CurrencyAmount | undefined, expected: string): boolean =>
25
+ amount === undefined || matchesCurrency(amount, expected);
26
+
27
+ const allowanceChargeMatchesCurrency = (allowanceCharge: AllowanceChargeAmounts, expected: string): boolean =>
28
+ matchesCurrency(allowanceCharge.amount, expected) && optionalMatchesCurrency(allowanceCharge.baseAmount, expected);
29
+
30
+ function evaluatePeppolEn16931R051(document: PeppolDocument): boolean {
31
+ const currency = document.documentCurrencyCode;
32
+
33
+ const documentAllowancesOk = (document.allowanceCharges ?? []).every(allowanceCharge => allowanceChargeMatchesCurrency(allowanceCharge, currency));
34
+
35
+ const linesOk = getLines(document).every(
36
+ line =>
37
+ matchesCurrency(line.price.priceAmount, currency) &&
38
+ matchesCurrency(line.lineExtensionAmount, currency) &&
39
+ (line.allowanceCharges ?? []).every(allowanceCharge => allowanceChargeMatchesCurrency(allowanceCharge, currency))
40
+ );
28
41
 
29
42
  const taxTotalsOk = document.taxTotals.every(total => {
30
43
  // Only tax totals with subtotals are in scope for BT-110; the accounting currency total (BT-111) is excluded.
@@ -32,21 +45,29 @@ export function validatePeppolEn16931R051(document: PeppolDocument): SchematronR
32
45
  return true;
33
46
  }
34
47
  return (
35
- checkCurrency(total.taxAmount.currencyId) &&
36
- (total.taxSubtotals ?? []).every(st => checkCurrency(st.taxAmount.currencyId) && checkCurrency(st.taxableAmount.currencyId))
48
+ matchesCurrency(total.taxAmount, currency) &&
49
+ (total.taxSubtotals ?? []).every(subtotal => matchesCurrency(subtotal.taxAmount, currency) && matchesCurrency(subtotal.taxableAmount, currency))
37
50
  );
38
51
  });
39
52
 
40
53
  const totals = document.legalMonetaryTotal;
54
+ const requiredTotals: Array<CurrencyAmount> = [
55
+ totals.lineExtensionAmount,
56
+ totals.taxExclusiveAmount,
57
+ totals.taxInclusiveAmount,
58
+ totals.payableAmount,
59
+ ];
60
+ const optionalTotals: Array<CurrencyAmount | undefined> = [
61
+ totals.allowanceTotalAmount,
62
+ totals.chargeTotalAmount,
63
+ totals.prepaidAmount,
64
+ totals.payableRoundingAmount,
65
+ ];
66
+
41
67
  const totalsOk =
42
- checkCurrency(totals.lineExtensionAmount.currencyId) &&
43
- checkCurrency(totals.taxExclusiveAmount.currencyId) &&
44
- checkCurrency(totals.taxInclusiveAmount.currencyId) &&
45
- (!totals.allowanceTotalAmount || checkCurrency(totals.allowanceTotalAmount.currencyId)) &&
46
- (!totals.chargeTotalAmount || checkCurrency(totals.chargeTotalAmount.currencyId)) &&
47
- (!totals.prepaidAmount || checkCurrency(totals.prepaidAmount.currencyId)) &&
48
- (!totals.payableRoundingAmount || checkCurrency(totals.payableRoundingAmount.currencyId)) &&
49
- checkCurrency(totals.payableAmount.currencyId);
50
-
51
- return schematronResult(rule, documentAllowancesOk && linesOk && taxTotalsOk && totalsOk);
68
+ requiredTotals.every(amount => matchesCurrency(amount, currency)) && optionalTotals.every(amount => optionalMatchesCurrency(amount, currency));
69
+
70
+ return documentAllowancesOk && linesOk && taxTotalsOk && totalsOk;
52
71
  }
72
+
73
+ export const validatePeppolEn16931R051 = schematronRule(rule, evaluatePeppolEn16931R051);
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { schematronResult } from '#/schematron/helpers';
4
+ import { schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-R053',
@@ -10,7 +9,9 @@ const rule = {
10
9
  message: 'Only one tax total with tax subtotals MUST be provided.',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931R053(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931R053(document: PeppolDocument): boolean {
14
13
  const withSubtotals = document.taxTotals.filter(total => (total.taxSubtotals?.length ?? 0) > 0);
15
- return schematronResult(rule, withSubtotals.length === 1);
14
+ return withSubtotals.length === 1;
16
15
  }
16
+
17
+ export const validatePeppolEn16931R053 = schematronRule(rule, evaluatePeppolEn16931R053);
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { schematronResult } from '#/schematron/helpers';
4
+ import { schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-R054',
@@ -10,8 +9,10 @@ const rule = {
10
9
  message: 'Only one tax total without tax subtotals MUST be provided when tax currency code is provided.',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931R054(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931R054(document: PeppolDocument): boolean {
14
13
  const withoutSubtotals = document.taxTotals.filter(total => (total.taxSubtotals?.length ?? 0) === 0);
15
14
  const expected = document.taxCurrencyCode ? 1 : 0;
16
- return schematronResult(rule, withoutSubtotals.length === expected);
15
+ return withoutSubtotals.length === expected;
17
16
  }
17
+
18
+ export const validatePeppolEn16931R054 = schematronRule(rule, evaluatePeppolEn16931R054);
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { schematronResult } from '#/schematron/helpers';
4
+ import { schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-R055',
@@ -10,17 +9,19 @@ const rule = {
10
9
  message: 'Invoice total VAT amount and Invoice total VAT amount in accounting currency MUST have the same operational sign',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931R055(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931R055(document: PeppolDocument): boolean {
14
13
  const taxCurrency = document.taxCurrencyCode;
15
14
  if (!taxCurrency) {
16
- return schematronResult(rule, true);
15
+ return true;
17
16
  }
18
17
  const documentCurrencyAmount = document.taxTotals.find(total => total.taxAmount.currencyId === document.documentCurrencyCode)?.taxAmount.value;
19
18
  const taxCurrencyAmount = document.taxTotals.find(total => total.taxAmount.currencyId === taxCurrency)?.taxAmount.value;
20
19
  if (typeof documentCurrencyAmount !== 'number' || typeof taxCurrencyAmount !== 'number') {
21
- return schematronResult(rule, false);
20
+ return false;
22
21
  }
23
22
  const bothNonPositive = documentCurrencyAmount <= 0 && taxCurrencyAmount <= 0;
24
23
  const bothNonNegative = documentCurrencyAmount >= 0 && taxCurrencyAmount >= 0;
25
- return schematronResult(rule, bothNonPositive || bothNonNegative);
24
+ return bothNonPositive || bothNonNegative;
26
25
  }
26
+
27
+ export const validatePeppolEn16931R055 = schematronRule(rule, evaluatePeppolEn16931R055);
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { schematronResult } from '#/schematron/helpers';
4
+ import { schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-R061',
@@ -12,7 +11,7 @@ const rule = {
12
11
 
13
12
  const DIRECT_DEBIT_CODES = new Set(['49', '59']);
14
13
 
15
- export function validatePeppolEn16931R061(document: PeppolDocument): SchematronRuleResult {
14
+ function evaluatePeppolEn16931R061(document: PeppolDocument): boolean {
16
15
  const passed = (document.paymentMeans ?? []).every(payment => {
17
16
  if (!DIRECT_DEBIT_CODES.has(payment.paymentMeansCode.code)) {
18
17
  return true;
@@ -20,5 +19,7 @@ export function validatePeppolEn16931R061(document: PeppolDocument): SchematronR
20
19
  const mandateId = payment.paymentMandate?.id;
21
20
  return typeof mandateId === 'string' && mandateId.trim() !== '';
22
21
  });
23
- return schematronResult(rule, passed);
22
+ return passed;
24
23
  }
24
+
25
+ export const validatePeppolEn16931R061 = schematronRule(rule, evaluatePeppolEn16931R061);
@@ -1,12 +1,13 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { getLines, schematronResult } from '#/schematron/helpers';
4
+ import { getLines, schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = { id: 'PEPPOL-EN16931-R100', level: 'fatal', message: 'Only one invoiced object is allowed pr line' } as const satisfies SchematronRule;
8
7
 
9
- export function validatePeppolEn16931R100(document: PeppolDocument): SchematronRuleResult {
8
+ function evaluatePeppolEn16931R100(document: PeppolDocument): boolean {
10
9
  const passed = getLines(document).every(line => (line.documentReference?.length ?? 0) <= 1);
11
- return schematronResult(rule, passed);
10
+ return passed;
12
11
  }
12
+
13
+ export const validatePeppolEn16931R100 = schematronRule(rule, evaluatePeppolEn16931R100);
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { getLines, schematronResult } from '#/schematron/helpers';
4
+ import { getLines, schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-R101',
@@ -10,10 +9,12 @@ const rule = {
10
9
  message: 'Element Document reference can only be used for Invoice line object',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931R101(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931R101(document: PeppolDocument): boolean {
14
13
  const passed = getLines(document).every(line => {
15
14
  const references = line.documentReference ?? [];
16
15
  return references.every(ref => ref.documentTypeCode === '130');
17
16
  });
18
- return schematronResult(rule, passed);
17
+ return passed;
19
18
  }
19
+
20
+ export const validatePeppolEn16931R101 = schematronRule(rule, evaluatePeppolEn16931R101);
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { getLines, schematronResult } from '#/schematron/helpers';
4
+ import { getLines, schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-R110',
@@ -10,14 +9,16 @@ const rule = {
10
9
  message: 'Start date of line period MUST be within invoice period.',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931R110(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931R110(document: PeppolDocument): boolean {
14
13
  const invoicePeriodStart = document.invoicePeriod?.startDate;
15
14
  if (!invoicePeriodStart) {
16
- return schematronResult(rule, true);
15
+ return true;
17
16
  }
18
17
  const passed = getLines(document).every(line => {
19
18
  const lineStart = line.invoicePeriod?.startDate;
20
19
  return !lineStart || lineStart >= invoicePeriodStart;
21
20
  });
22
- return schematronResult(rule, passed);
21
+ return passed;
23
22
  }
23
+
24
+ export const validatePeppolEn16931R110 = schematronRule(rule, evaluatePeppolEn16931R110);
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { getLines, schematronResult } from '#/schematron/helpers';
4
+ import { getLines, schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-R111',
@@ -10,14 +9,16 @@ const rule = {
10
9
  message: 'End date of line period MUST be within invoice period.',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931R111(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931R111(document: PeppolDocument): boolean {
14
13
  const invoicePeriodEnd = document.invoicePeriod?.endDate;
15
14
  if (!invoicePeriodEnd) {
16
- return schematronResult(rule, true);
15
+ return true;
17
16
  }
18
17
  const passed = getLines(document).every(line => {
19
18
  const lineEnd = line.invoicePeriod?.endDate;
20
19
  return !lineEnd || lineEnd <= invoicePeriodEnd;
21
20
  });
22
- return schematronResult(rule, passed);
21
+ return passed;
23
22
  }
23
+
24
+ export const validatePeppolEn16931R111 = schematronRule(rule, evaluatePeppolEn16931R111);
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { getLineQuantity, getLines, schematronResult, slack } from '#/schematron/helpers';
4
+ import { getLineQuantity, getLines, schematronRule, slack } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-R120',
@@ -11,7 +10,7 @@ const rule = {
11
10
  'Invoice line net amount MUST equal (Invoiced quantity * (Item net price/item price base quantity) + Sum of invoice line charge amount - sum of invoice line allowance amount',
12
11
  } as const satisfies SchematronRule;
13
12
 
14
- export function validatePeppolEn16931R120(document: PeppolDocument): SchematronRuleResult {
13
+ function evaluatePeppolEn16931R120(document: PeppolDocument): boolean {
15
14
  const passed = getLines(document).every(line => {
16
15
  const lineExtensionAmount = line.lineExtensionAmount.value;
17
16
  const quantity = getLineQuantity(line);
@@ -22,5 +21,7 @@ export function validatePeppolEn16931R120(document: PeppolDocument): SchematronR
22
21
  const expected = quantity * (priceAmount / baseQuantity) + chargesTotal - allowancesTotal;
23
22
  return slack(expected, lineExtensionAmount, 0.02);
24
23
  });
25
- return schematronResult(rule, passed);
24
+ return passed;
26
25
  }
26
+
27
+ export const validatePeppolEn16931R120 = schematronRule(rule, evaluatePeppolEn16931R120);
@@ -1,8 +1,7 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
2
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
3
 
5
- import { getLines, schematronResult } from '#/schematron/helpers';
4
+ import { getLines, schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-R121',
@@ -10,10 +9,12 @@ const rule = {
10
9
  message: 'Base quantity MUST be a positive number above zero.',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931R121(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931R121(document: PeppolDocument): boolean {
14
13
  const passed = getLines(document).every(line => {
15
14
  const baseQuantity = line.price.baseQuantity?.value;
16
15
  return baseQuantity === undefined || baseQuantity > 0;
17
16
  });
18
- return schematronResult(rule, passed);
17
+ return passed;
19
18
  }
19
+
20
+ export const validatePeppolEn16931R121 = schematronRule(rule, evaluatePeppolEn16931R121);