@endevops/peppol-schema 0.1.0-beta.3 → 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 -9
  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 -5
  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/{effect → schemas}/values/currency-code-schema.ts +7 -1
  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 -2
  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 +8 -7
  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 +36 -11
  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 +6 -5
  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 +20 -13
  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 +6 -5
  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 -6274
  574. package/dist/effect.d.ts.map +0 -1
  575. package/dist/effect.js +0 -3239
  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 -94
  593. package/src/effect/fields/peppol-amount-schema.ts +0 -21
  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 -41
  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 -63
  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 -136
  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}/utils/peppol-vat-regex-schema.ts +0 -0
  732. /package/src/{effect → schemas}/values/additional-document-reference-code-schema.ts +0 -0
  733. /package/src/{effect → schemas}/values/allowance-charge-reason-code-schema.ts +0 -0
  734. /package/src/{effect → schemas}/values/application-response-type-code-schema.ts +0 -0
  735. /package/src/{effect → schemas}/values/charge-reason-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,10 @@
1
- import type { PeppolDocument } from '#/document';
1
+ import { Predicate, Schema } from 'effect';
2
+
3
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
4
  import type { SchematronRule } from '#/schematron/helpers';
3
- import type { SchematronRuleResult } from '#/schematron/types';
4
5
 
5
- import { getLines, schematronResult } from '#/schematron/helpers';
6
+ import { PeppolIsoDateString } from '#/schemas/peppol-iso-date-string';
7
+ import { getLines, schematronRule } from '#/schematron/helpers';
6
8
 
7
9
  const rule = { id: 'PEPPOL-EN16931-F001', level: 'fatal', message: 'A date MUST be formatted YYYY-MM-DD.' } as const satisfies SchematronRule;
8
10
 
@@ -10,16 +12,21 @@ const DATE_REGEX = /^\d{4}-\d{2}-\d{2}$/;
10
12
 
11
13
  const isValidDate = (value: string | undefined): boolean => value === undefined || (DATE_REGEX.test(value) && !Number.isNaN(Date.parse(value)));
12
14
 
13
- export function validatePeppolEn16931F001(document: PeppolDocument): SchematronRuleResult {
14
- const dates: Array<string | undefined> = [document.issueDate];
15
- if (document.dueDate) dates.push(document.dueDate);
16
- if (document.taxPointDate) dates.push(document.taxPointDate);
17
- if (document.invoicePeriod?.startDate) dates.push(document.invoicePeriod.startDate);
18
- if (document.invoicePeriod?.endDate) dates.push(document.invoicePeriod.endDate);
19
- if (document.delivery?.actualDeliveryDate) dates.push(document.delivery.actualDeliveryDate);
15
+ const encodeDateSync = Schema.encodeSync(Schema.Union([PeppolIsoDateString, Schema.String]));
16
+ const isDate = Schema.is(PeppolIsoDateString);
17
+
18
+ function evaluatePeppolEn16931F001(document: PeppolDocument): boolean {
19
+ const dates: Array<string | undefined> = [encodeDateSync(document.issueDate)];
20
+ if (Predicate.hasProperty(document, 'dueDate') && isDate(document.dueDate)) dates.push(encodeDateSync(document.dueDate));
21
+ if (document.taxPointDate) dates.push(encodeDateSync(document.taxPointDate));
22
+ if (document.invoicePeriod?.startDate) dates.push(encodeDateSync(document.invoicePeriod.startDate));
23
+ if (document.invoicePeriod?.endDate) dates.push(encodeDateSync(document.invoicePeriod.endDate));
24
+ if (document.delivery?.actualDeliveryDate) dates.push(encodeDateSync(document.delivery.actualDeliveryDate));
20
25
  for (const line of getLines(document)) {
21
- if (line.invoicePeriod?.startDate) dates.push(line.invoicePeriod.startDate);
22
- if (line.invoicePeriod?.endDate) dates.push(line.invoicePeriod.endDate);
26
+ if (line.invoicePeriod?.startDate) dates.push(encodeDateSync(line.invoicePeriod.startDate));
27
+ if (line.invoicePeriod?.endDate) dates.push(encodeDateSync(line.invoicePeriod.endDate));
23
28
  }
24
- return schematronResult(rule, dates.every(isValidDate));
29
+ return dates.every(isValidDate);
25
30
  }
31
+
32
+ export const validatePeppolEn16931F001 = schematronRule(rule, evaluatePeppolEn16931F001);
@@ -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-P0100',
@@ -39,14 +38,16 @@ const PROFILE_01_INVOICE_TYPE_CODES = new Set([
39
38
  '877',
40
39
  ]);
41
40
 
42
- export function validatePeppolEn16931P0100(document: PeppolDocument): SchematronRuleResult {
41
+ function evaluatePeppolEn16931P0100(document: PeppolDocument): boolean {
43
42
  const invoiceTypeCode = 'invoiceTypeCode' in document ? document.invoiceTypeCode : undefined;
44
43
  if (invoiceTypeCode === undefined) {
45
- return schematronResult(rule, true);
44
+ return true;
46
45
  }
47
46
  const profile = getProfile(document);
48
47
  if (profile === 'Unknown' || profile !== '01') {
49
- return schematronResult(rule, true);
48
+ return true;
50
49
  }
51
- return schematronResult(rule, PROFILE_01_INVOICE_TYPE_CODES.has(invoiceTypeCode));
50
+ return PROFILE_01_INVOICE_TYPE_CODES.has(invoiceTypeCode);
52
51
  }
52
+
53
+ export const validatePeppolEn16931P0100 = schematronRule(rule, evaluatePeppolEn16931P0100);
@@ -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-P0101',
@@ -12,14 +11,16 @@ const rule = {
12
11
 
13
12
  const PROFILE_01_CREDIT_NOTE_TYPE_CODES = new Set(['381', '396', '81', '83', '532']);
14
13
 
15
- export function validatePeppolEn16931P0101(document: PeppolDocument): SchematronRuleResult {
14
+ function evaluatePeppolEn16931P0101(document: PeppolDocument): boolean {
16
15
  const creditNoteTypeCode = 'creditNoteTypeCode' in document ? document.creditNoteTypeCode : undefined;
17
16
  if (creditNoteTypeCode === undefined) {
18
- return schematronResult(rule, true);
17
+ return true;
19
18
  }
20
19
  const profile = getProfile(document);
21
20
  if (profile === 'Unknown' || profile !== '01') {
22
- return schematronResult(rule, true);
21
+ return true;
23
22
  }
24
- return schematronResult(rule, PROFILE_01_CREDIT_NOTE_TYPE_CODES.has(creditNoteTypeCode));
23
+ return PROFILE_01_CREDIT_NOTE_TYPE_CODES.has(creditNoteTypeCode);
25
24
  }
25
+
26
+ export const validatePeppolEn16931P0101 = schematronRule(rule, evaluatePeppolEn16931P0101);
@@ -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-P0104',
@@ -10,8 +9,10 @@ const rule = {
10
9
  message: 'Tax Category G MUST be used when exemption reason code is VATEX-EU-G',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931P0104(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931P0104(document: PeppolDocument): boolean {
14
13
  const taxCategories = document.taxTotals.flatMap(total => (total.taxSubtotals ?? []).map(subtotal => subtotal.taxCategory));
15
14
  const passed = taxCategories.every(category => category.taxExemptionReasonCode?.toUpperCase() !== 'VATEX-EU-G' || category.id === 'G');
16
- return schematronResult(rule, passed);
15
+ return passed;
17
16
  }
17
+
18
+ export const validatePeppolEn16931P0104 = schematronRule(rule, evaluatePeppolEn16931P0104);
@@ -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-P0105',
@@ -10,8 +9,10 @@ const rule = {
10
9
  message: 'Tax Category O MUST be used when exemption reason code is VATEX-EU-O',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931P0105(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931P0105(document: PeppolDocument): boolean {
14
13
  const taxCategories = document.taxTotals.flatMap(total => (total.taxSubtotals ?? []).map(subtotal => subtotal.taxCategory));
15
14
  const passed = taxCategories.every(category => category.taxExemptionReasonCode?.toUpperCase() !== 'VATEX-EU-O' || category.id === 'O');
16
- return schematronResult(rule, passed);
15
+ return passed;
17
16
  }
17
+
18
+ export const validatePeppolEn16931P0105 = schematronRule(rule, evaluatePeppolEn16931P0105);
@@ -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-P0106',
@@ -10,8 +9,10 @@ const rule = {
10
9
  message: 'Tax Category K MUST be used when exemption reason code is VATEX-EU-IC',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931P0106(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931P0106(document: PeppolDocument): boolean {
14
13
  const taxCategories = document.taxTotals.flatMap(total => (total.taxSubtotals ?? []).map(subtotal => subtotal.taxCategory));
15
14
  const passed = taxCategories.every(category => category.taxExemptionReasonCode?.toUpperCase() !== 'VATEX-EU-IC' || category.id === 'K');
16
- return schematronResult(rule, passed);
15
+ return passed;
17
16
  }
17
+
18
+ export const validatePeppolEn16931P0106 = schematronRule(rule, evaluatePeppolEn16931P0106);
@@ -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-P0107',
@@ -10,8 +9,10 @@ const rule = {
10
9
  message: 'Tax Category AE MUST be used when exemption reason code is VATEX-EU-AE',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931P0107(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931P0107(document: PeppolDocument): boolean {
14
13
  const taxCategories = document.taxTotals.flatMap(total => (total.taxSubtotals ?? []).map(subtotal => subtotal.taxCategory));
15
14
  const passed = taxCategories.every(category => category.taxExemptionReasonCode?.toUpperCase() !== 'VATEX-EU-AE' || category.id === 'AE');
16
- return schematronResult(rule, passed);
15
+ return passed;
17
16
  }
17
+
18
+ export const validatePeppolEn16931P0107 = schematronRule(rule, evaluatePeppolEn16931P0107);
@@ -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-P0108',
@@ -10,8 +9,10 @@ const rule = {
10
9
  message: 'Tax Category E MUST be used when exemption reason code is VATEX-EU-D',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931P0108(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931P0108(document: PeppolDocument): boolean {
14
13
  const taxCategories = document.taxTotals.flatMap(total => (total.taxSubtotals ?? []).map(subtotal => subtotal.taxCategory));
15
14
  const passed = taxCategories.every(category => category.taxExemptionReasonCode?.toUpperCase() !== 'VATEX-EU-D' || category.id === 'E');
16
- return schematronResult(rule, passed);
15
+ return passed;
17
16
  }
17
+
18
+ export const validatePeppolEn16931P0108 = schematronRule(rule, evaluatePeppolEn16931P0108);
@@ -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-P0109',
@@ -10,8 +9,10 @@ const rule = {
10
9
  message: 'Tax Category E MUST be used when exemption reason code is VATEX-EU-F',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931P0109(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931P0109(document: PeppolDocument): boolean {
14
13
  const taxCategories = document.taxTotals.flatMap(total => (total.taxSubtotals ?? []).map(subtotal => subtotal.taxCategory));
15
14
  const passed = taxCategories.every(category => category.taxExemptionReasonCode?.toUpperCase() !== 'VATEX-EU-F' || category.id === 'E');
16
- return schematronResult(rule, passed);
15
+ return passed;
17
16
  }
17
+
18
+ export const validatePeppolEn16931P0109 = schematronRule(rule, evaluatePeppolEn16931P0109);
@@ -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-P0110',
@@ -10,8 +9,10 @@ const rule = {
10
9
  message: 'Tax Category E MUST be used when exemption reason code is VATEX-EU-I',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931P0110(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931P0110(document: PeppolDocument): boolean {
14
13
  const taxCategories = document.taxTotals.flatMap(total => (total.taxSubtotals ?? []).map(subtotal => subtotal.taxCategory));
15
14
  const passed = taxCategories.every(category => category.taxExemptionReasonCode?.toUpperCase() !== 'VATEX-EU-I' || category.id === 'E');
16
- return schematronResult(rule, passed);
15
+ return passed;
17
16
  }
17
+
18
+ export const validatePeppolEn16931P0110 = schematronRule(rule, evaluatePeppolEn16931P0110);
@@ -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-P0111',
@@ -10,8 +9,10 @@ const rule = {
10
9
  message: 'Tax Category E MUST be used when exemption reason code is VATEX-EU-J',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931P0111(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931P0111(document: PeppolDocument): boolean {
14
13
  const taxCategories = document.taxTotals.flatMap(total => (total.taxSubtotals ?? []).map(subtotal => subtotal.taxCategory));
15
14
  const passed = taxCategories.every(category => category.taxExemptionReasonCode?.toUpperCase() !== 'VATEX-EU-J' || category.id === 'E');
16
- return schematronResult(rule, passed);
15
+ return passed;
17
16
  }
17
+
18
+ export const validatePeppolEn16931P0111 = schematronRule(rule, evaluatePeppolEn16931P0111);
@@ -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 { isCustomerGermany, isSupplierGermany, schematronResult } from '#/schematron/helpers';
4
+ import { isCustomerGermany, isSupplierGermany, schematronRule } from '#/schematron/helpers';
6
5
 
7
6
  const rule = {
8
7
  id: 'PEPPOL-EN16931-P0112',
@@ -12,12 +11,14 @@ const rule = {
12
11
 
13
12
  const GERMAN_ONLY_CODES = new Set(['326', '384']);
14
13
 
15
- export function validatePeppolEn16931P0112(document: PeppolDocument): SchematronRuleResult {
14
+ function evaluatePeppolEn16931P0112(document: PeppolDocument): boolean {
16
15
  const invoiceTypeCode = 'invoiceTypeCode' in document ? document.invoiceTypeCode : undefined;
17
16
  const creditNoteTypeCode = 'creditNoteTypeCode' in document ? document.creditNoteTypeCode : undefined;
18
17
  const code = invoiceTypeCode ?? creditNoteTypeCode;
19
18
  if (!code || !GERMAN_ONLY_CODES.has(code)) {
20
- return schematronResult(rule, true);
19
+ return true;
21
20
  }
22
- return schematronResult(rule, isSupplierGermany(document) && isCustomerGermany(document));
21
+ return isSupplierGermany(document) && isCustomerGermany(document);
23
22
  }
23
+
24
+ export const validatePeppolEn16931P0112 = schematronRule(rule, evaluatePeppolEn16931P0112);
@@ -1,14 +1,12 @@
1
- import type { PeppolDocument } from '#/document';
2
- import type { SchematronRuleResult } from '#/schematron/types';
3
-
4
- const RULE_ID = 'PEPPOL-EN16931-R001';
5
- const RULE_LEVEL = 'fatal';
6
- const RULE_MESSAGE = 'Business process MUST be provided.';
7
-
8
- /**
9
- * @description Validates the PEPPOL-EN16931-R001 rule: the document MUST contain a business process identifier (`cbc:ProfileID`).
10
- */
11
- export function validatePeppolEn16931R001(document: PeppolDocument): SchematronRuleResult {
12
- const passed = typeof document.profileId === 'string' && document.profileId.trim() !== '';
13
- return { id: RULE_ID, level: RULE_LEVEL, message: RULE_MESSAGE, passed };
1
+ import type { PeppolDocument } from '#/schemas/peppol-document-schema';
2
+ import type { SchematronRule } from '#/schematron/helpers';
3
+
4
+ import { schematronRule } from '#/schematron/helpers';
5
+
6
+ const rule = { id: 'PEPPOL-EN16931-R001', level: 'fatal', message: 'Business process MUST be provided.' } as const satisfies SchematronRule;
7
+
8
+ function evaluatePeppolEn16931R001(document: PeppolDocument): boolean {
9
+ return typeof document.profileId === 'string' && document.profileId.trim() !== '';
14
10
  }
11
+
12
+ export const validatePeppolEn16931R001 = schematronRule(rule, evaluatePeppolEn16931R001);
@@ -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-R002',
@@ -10,7 +9,9 @@ const rule = {
10
9
  message: 'No more than one note is allowed on document level, unless both the buyer and seller are German organizations.',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931R002(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931R002(document: PeppolDocument): boolean {
14
13
  const noteCount = typeof document.note === 'string' ? 1 : 0;
15
- return schematronResult(rule, noteCount <= 1);
14
+ return noteCount <= 1;
16
15
  }
16
+
17
+ export const validatePeppolEn16931R002 = schematronRule(rule, evaluatePeppolEn16931R002);
@@ -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-R003',
@@ -10,7 +9,9 @@ const rule = {
10
9
  message: 'A buyer reference or purchase order reference MUST be provided.',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931R003(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931R003(document: PeppolDocument): boolean {
14
13
  const passed = typeof document.buyerReference === 'string' && document.buyerReference.trim() !== '' ? true : Boolean(document.orderReference?.id);
15
- return schematronResult(rule, passed);
14
+ return passed;
16
15
  }
16
+
17
+ export const validatePeppolEn16931R003 = schematronRule(rule, evaluatePeppolEn16931R003);
@@ -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-R004',
@@ -12,7 +11,9 @@ const rule = {
12
11
 
13
12
  const CUSTOMIZATION_ID_PREFIX = 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0';
14
13
 
15
- export function validatePeppolEn16931R004(document: PeppolDocument): SchematronRuleResult {
14
+ function evaluatePeppolEn16931R004(document: PeppolDocument): boolean {
16
15
  const customizationId = typeof document.customizationId === 'string' ? document.customizationId.trim() : '';
17
- return schematronResult(rule, customizationId.startsWith(CUSTOMIZATION_ID_PREFIX));
16
+ return customizationId.startsWith(CUSTOMIZATION_ID_PREFIX);
18
17
  }
18
+
19
+ export const validatePeppolEn16931R004 = schematronRule(rule, evaluatePeppolEn16931R004);
@@ -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-R005',
@@ -10,9 +9,11 @@ const rule = {
10
9
  message: 'VAT accounting currency code MUST be different from invoice currency code when provided.',
11
10
  } as const satisfies SchematronRule;
12
11
 
13
- export function validatePeppolEn16931R005(document: PeppolDocument): SchematronRuleResult {
12
+ function evaluatePeppolEn16931R005(document: PeppolDocument): boolean {
14
13
  if (!document.taxCurrencyCode) {
15
- return schematronResult(rule, true);
14
+ return true;
16
15
  }
17
- return schematronResult(rule, document.taxCurrencyCode !== document.documentCurrencyCode);
16
+ return document.taxCurrencyCode !== document.documentCurrencyCode;
18
17
  }
18
+
19
+ export const validatePeppolEn16931R005 = schematronRule(rule, evaluatePeppolEn16931R005);
@@ -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);