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

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 (545) hide show
  1. package/README.md +70 -19
  2. package/dist/constants.js.map +1 -1
  3. package/dist/index.js +77 -77
  4. package/dist/index.js.map +1 -1
  5. package/dist/is-valid-abn-160i38PG.js.map +1 -1
  6. package/dist/is-valid-mod97-0208-CzMOXMO-.js.map +1 -1
  7. package/dist/parser-options-mbqEQPSY.js.map +1 -1
  8. package/dist/peppol-iso-date-string-BXLxzxdz.js.map +1 -1
  9. package/dist/schematron.d.ts.map +1 -1
  10. package/dist/schematron.js.map +1 -1
  11. package/dist/validations.js.map +1 -1
  12. package/package.json +23 -2
  13. package/src/constants/credit-note-doctype-id.ts +1 -1
  14. package/src/constants/credit-note-process-id.ts +1 -1
  15. package/src/constants/index.ts +14 -14
  16. package/src/constants/invoice-doctype-id.ts +1 -1
  17. package/src/constants/invoice-process-id.ts +1 -1
  18. package/src/constants/invoice-response-doctype-id.ts +1 -1
  19. package/src/constants/invoice-response-process-id.ts +2 -2
  20. package/src/constants/message-level-response-doctype-id.ts +1 -1
  21. package/src/constants/message-level-response-process-id.ts +2 -2
  22. package/src/decoders/decode-billing.ts +16 -16
  23. package/src/decoders/decode-credit-note.ts +5 -5
  24. package/src/decoders/decode-invoice-response.ts +7 -7
  25. package/src/decoders/decode-invoice.ts +6 -6
  26. package/src/decoders/decode-message-level-response.ts +6 -6
  27. package/src/decoders/encode-credit-note.ts +16 -16
  28. package/src/decoders/encode-invoice-response.ts +2 -2
  29. package/src/decoders/encode-invoice.ts +16 -16
  30. package/src/decoders/encode-message-level-response.ts +3 -3
  31. package/src/decoders/fields/decode-additional-document-references.ts +7 -7
  32. package/src/decoders/fields/decode-address.ts +5 -5
  33. package/src/decoders/fields/decode-allowance-charges.ts +6 -6
  34. package/src/decoders/fields/decode-amount.ts +5 -5
  35. package/src/decoders/fields/decode-application-response.ts +3 -3
  36. package/src/decoders/fields/decode-base-allowance-charge.ts +5 -5
  37. package/src/decoders/fields/decode-billing-references.ts +5 -5
  38. package/src/decoders/fields/decode-contact.ts +5 -5
  39. package/src/decoders/fields/decode-credit-note-lines.ts +4 -4
  40. package/src/decoders/fields/decode-delivery.ts +8 -8
  41. package/src/decoders/fields/decode-electronic-address.ts +3 -3
  42. package/src/decoders/fields/decode-identifier.ts +5 -5
  43. package/src/decoders/fields/decode-invoice-line-period.ts +5 -5
  44. package/src/decoders/fields/decode-invoice-lines.ts +4 -4
  45. package/src/decoders/fields/decode-invoice-message-document-party.ts +6 -6
  46. package/src/decoders/fields/decode-invoice-message-party.ts +6 -6
  47. package/src/decoders/fields/decode-invoice-period.ts +3 -3
  48. package/src/decoders/fields/decode-legal-monetary-total.ts +5 -5
  49. package/src/decoders/fields/decode-line-allowance-charges.ts +5 -5
  50. package/src/decoders/fields/decode-line-price.ts +5 -5
  51. package/src/decoders/fields/decode-line-shared.ts +13 -13
  52. package/src/decoders/fields/decode-message-level-party.ts +5 -5
  53. package/src/decoders/fields/decode-node-list.ts +2 -2
  54. package/src/decoders/fields/decode-order-reference.ts +5 -5
  55. package/src/decoders/fields/decode-parties-tax-scheme.ts +5 -5
  56. package/src/decoders/fields/decode-party-legal-entity.ts +6 -6
  57. package/src/decoders/fields/decode-party-tax-scheme.ts +6 -6
  58. package/src/decoders/fields/decode-party.ts +9 -9
  59. package/src/decoders/fields/decode-payee-party.ts +6 -6
  60. package/src/decoders/fields/decode-payment-means.ts +8 -8
  61. package/src/decoders/fields/decode-payment-terms.ts +5 -5
  62. package/src/decoders/fields/decode-price-allowance-charge.ts +4 -4
  63. package/src/decoders/fields/decode-quantity.ts +3 -3
  64. package/src/decoders/fields/decode-simple-identifier.ts +4 -4
  65. package/src/decoders/fields/decode-tax-category.ts +7 -7
  66. package/src/decoders/fields/decode-tax-representative-party.ts +7 -7
  67. package/src/decoders/fields/decode-tax-totals.ts +10 -10
  68. package/src/decoders/fields/encode-additional-document-references.ts +2 -2
  69. package/src/decoders/fields/encode-address.ts +2 -2
  70. package/src/decoders/fields/encode-allowance-charges.ts +3 -3
  71. package/src/decoders/fields/encode-amount.ts +1 -1
  72. package/src/decoders/fields/encode-billing-references.ts +1 -1
  73. package/src/decoders/fields/encode-contact.ts +1 -1
  74. package/src/decoders/fields/encode-credit-note-lines.ts +2 -2
  75. package/src/decoders/fields/encode-delivery.ts +3 -3
  76. package/src/decoders/fields/encode-identifier.ts +1 -1
  77. package/src/decoders/fields/encode-invoice-line-period.ts +1 -1
  78. package/src/decoders/fields/encode-invoice-lines.ts +2 -2
  79. package/src/decoders/fields/encode-invoice-period.ts +1 -1
  80. package/src/decoders/fields/encode-legal-monetary-total.ts +2 -2
  81. package/src/decoders/fields/encode-line-allowance-charges.ts +2 -2
  82. package/src/decoders/fields/encode-line-price.ts +4 -4
  83. package/src/decoders/fields/encode-line-shared.ts +9 -9
  84. package/src/decoders/fields/encode-message-party.ts +7 -7
  85. package/src/decoders/fields/encode-order-reference.ts +1 -1
  86. package/src/decoders/fields/encode-parties-tax-scheme.ts +3 -3
  87. package/src/decoders/fields/encode-party-legal-entity.ts +1 -1
  88. package/src/decoders/fields/encode-party-tax-scheme.ts +3 -3
  89. package/src/decoders/fields/encode-party.ts +6 -6
  90. package/src/decoders/fields/encode-payee-party.ts +2 -2
  91. package/src/decoders/fields/encode-payment-means.ts +2 -2
  92. package/src/decoders/fields/encode-payment-terms.ts +1 -1
  93. package/src/decoders/fields/encode-price-allowance-charges.ts +2 -2
  94. package/src/decoders/fields/encode-quantity.ts +1 -1
  95. package/src/decoders/fields/encode-tax-category.ts +2 -2
  96. package/src/decoders/fields/encode-tax-representative-party.ts +4 -4
  97. package/src/decoders/fields/encode-tax-totals.ts +4 -4
  98. package/src/helpers/bool.ts +2 -2
  99. package/src/helpers/get-array.ts +2 -2
  100. package/src/helpers/num-or-und.ts +2 -2
  101. package/src/helpers/str-or-array.ts +3 -3
  102. package/src/helpers/str-or-und.ts +2 -2
  103. package/src/helpers/str.ts +2 -2
  104. package/src/index.ts +54 -54
  105. package/src/invoice-response-codes/index.ts +3 -3
  106. package/src/peppol-validations/check-cf.ts +2 -2
  107. package/src/peppol-validations/check-cf16.ts +1 -1
  108. package/src/peppol-validations/check-piva-se-it.ts +1 -1
  109. package/src/peppol-validations/check-piva.ts +1 -1
  110. package/src/peppol-validations/check-se-orgnr.ts +1 -1
  111. package/src/peppol-validations/index.ts +13 -13
  112. package/src/peppol-validations/is-valid-abn.ts +1 -1
  113. package/src/peppol-validations/is-valid-iban.ts +1 -1
  114. package/src/peppol-validations/is-valid-mod11.ts +1 -1
  115. package/src/peppol-validations/is-valid-mod97-0208.ts +1 -1
  116. package/src/peppol-validations/luhn-check.ts +1 -1
  117. package/src/schemas/fields/peppol-additional-document-reference-schema.ts +4 -4
  118. package/src/schemas/fields/peppol-address-schema.ts +2 -2
  119. package/src/schemas/fields/peppol-allowance-charge-schema.ts +6 -6
  120. package/src/schemas/fields/peppol-amount-schema.ts +2 -2
  121. package/src/schemas/fields/peppol-base-line-schema.ts +7 -7
  122. package/src/schemas/fields/peppol-billing-reference-schema.ts +2 -2
  123. package/src/schemas/fields/peppol-binary-object-schema.ts +3 -3
  124. package/src/schemas/fields/peppol-contact-schema.ts +1 -1
  125. package/src/schemas/fields/peppol-credit-note-line-schema.ts +4 -4
  126. package/src/schemas/fields/peppol-delivery-schema.ts +5 -5
  127. package/src/schemas/fields/peppol-identifier-schema.ts +1 -1
  128. package/src/schemas/fields/peppol-invoice-line-period-schema.ts +2 -2
  129. package/src/schemas/fields/peppol-invoice-line-schema.ts +4 -4
  130. package/src/schemas/fields/peppol-invoice-period-schema.ts +3 -3
  131. package/src/schemas/fields/peppol-item-classification-schema.ts +2 -2
  132. package/src/schemas/fields/peppol-legal-monetary-total-schema.ts +2 -2
  133. package/src/schemas/fields/peppol-line-allowance-charge-schema.ts +4 -4
  134. package/src/schemas/fields/peppol-line-item-schema.ts +6 -6
  135. package/src/schemas/fields/peppol-line-price-allowance-charge-schema.ts +2 -2
  136. package/src/schemas/fields/peppol-line-price-schema.ts +4 -4
  137. package/src/schemas/fields/peppol-order-reference-schema.ts +1 -1
  138. package/src/schemas/fields/peppol-party-base-schema.ts +8 -8
  139. package/src/schemas/fields/peppol-party-legal-entity-schema.ts +2 -2
  140. package/src/schemas/fields/peppol-party-tax-scheme-schema.ts +1 -1
  141. package/src/schemas/fields/peppol-payee-party-schema.ts +3 -3
  142. package/src/schemas/fields/peppol-payment-means-schema.ts +3 -3
  143. package/src/schemas/fields/peppol-payment-terms-schema.ts +1 -1
  144. package/src/schemas/fields/peppol-quantity-schema.ts +2 -2
  145. package/src/schemas/fields/peppol-reference-schema.ts +1 -1
  146. package/src/schemas/fields/peppol-tax-category-schema.ts +2 -2
  147. package/src/schemas/fields/peppol-tax-representative-schema.ts +3 -3
  148. package/src/schemas/fields/peppol-tax-subtotal-category-schema.ts +2 -2
  149. package/src/schemas/fields/peppol-tax-subtotal-schema.ts +3 -3
  150. package/src/schemas/fields/peppol-tax-totals-base-schema.ts +3 -3
  151. package/src/schemas/peppol-billing-base-schema.ts +18 -18
  152. package/src/schemas/peppol-credit-note-schema.ts +4 -4
  153. package/src/schemas/peppol-document-response-document-reference-schema.ts +2 -2
  154. package/src/schemas/peppol-document-response-document-schema.ts +2 -2
  155. package/src/schemas/peppol-document-response-line-response-content-schema.ts +2 -2
  156. package/src/schemas/peppol-document-response-line-response-schema.ts +2 -2
  157. package/src/schemas/peppol-document-schema.ts +21 -21
  158. package/src/schemas/peppol-invoice-response-document-actual-response-schema.ts +5 -5
  159. package/src/schemas/peppol-invoice-response-document-actual-response-status-schema.ts +2 -2
  160. package/src/schemas/peppol-invoice-response-schema.ts +10 -10
  161. package/src/schemas/peppol-invoice-response-status-reason-code-schema.ts +3 -3
  162. package/src/schemas/peppol-invoice-schema.ts +5 -5
  163. package/src/schemas/peppol-iso-date-string.ts +1 -1
  164. package/src/schemas/peppol-message-level-response-document-response-schema.ts +4 -4
  165. package/src/schemas/peppol-message-level-response-party-schema.ts +2 -2
  166. package/src/schemas/peppol-message-level-response-schema.ts +6 -6
  167. package/src/schemas/utils/format-quantity-with-unit.ts +1 -1
  168. package/src/schemas/utils/get-credit-note-type-code-description.ts +1 -1
  169. package/src/schemas/utils/get-invoice-type-code-description.ts +1 -1
  170. package/src/schemas/utils/index.ts +10 -10
  171. package/src/schemas/utils/is-valid-credit-note-type-code.ts +1 -1
  172. package/src/schemas/utils/is-valid-invoice-type-code.ts +1 -1
  173. package/src/schemas/utils/is-valid-process.ts +1 -1
  174. package/src/schemas/utils/peppol-vat-regex-schema.ts +1 -1
  175. package/src/schemas/utils/peppol-xsd-time-schema.ts +2 -2
  176. package/src/schemas/utils/quantity-unit-code-to-intl-unit.ts +1 -1
  177. package/src/schemas/values/index.ts +27 -27
  178. package/src/schemas/values/process-from-document-type-schema.ts +2 -2
  179. package/src/schematron/cen/ae/cen-en16931-br-ae-01.ts +3 -3
  180. package/src/schematron/cen/ae/cen-en16931-br-ae-02.ts +3 -3
  181. package/src/schematron/cen/ae/cen-en16931-br-ae-03.ts +3 -3
  182. package/src/schematron/cen/ae/cen-en16931-br-ae-04.ts +3 -3
  183. package/src/schematron/cen/ae/cen-en16931-br-ae-05.ts +3 -3
  184. package/src/schematron/cen/ae/cen-en16931-br-ae-06.ts +3 -3
  185. package/src/schematron/cen/ae/cen-en16931-br-ae-07.ts +3 -3
  186. package/src/schematron/cen/ae/cen-en16931-br-ae-08.ts +3 -3
  187. package/src/schematron/cen/ae/cen-en16931-br-ae-09.ts +3 -3
  188. package/src/schematron/cen/ae/cen-en16931-br-ae-10.ts +3 -3
  189. package/src/schematron/cen/af/cen-en16931-br-af-01.ts +3 -3
  190. package/src/schematron/cen/af/cen-en16931-br-af-02.ts +3 -3
  191. package/src/schematron/cen/af/cen-en16931-br-af-03.ts +8 -3
  192. package/src/schematron/cen/af/cen-en16931-br-af-04.ts +3 -3
  193. package/src/schematron/cen/af/cen-en16931-br-af-05.ts +3 -3
  194. package/src/schematron/cen/af/cen-en16931-br-af-06.ts +3 -3
  195. package/src/schematron/cen/af/cen-en16931-br-af-07.ts +3 -3
  196. package/src/schematron/cen/af/cen-en16931-br-af-08.ts +3 -3
  197. package/src/schematron/cen/af/cen-en16931-br-af-09.ts +3 -3
  198. package/src/schematron/cen/af/cen-en16931-br-af-10.ts +3 -3
  199. package/src/schematron/cen/ag/cen-en16931-br-ag-01.ts +3 -3
  200. package/src/schematron/cen/ag/cen-en16931-br-ag-02.ts +3 -3
  201. package/src/schematron/cen/ag/cen-en16931-br-ag-03.ts +8 -3
  202. package/src/schematron/cen/ag/cen-en16931-br-ag-04.ts +3 -3
  203. package/src/schematron/cen/ag/cen-en16931-br-ag-05.ts +3 -3
  204. package/src/schematron/cen/ag/cen-en16931-br-ag-06.ts +3 -3
  205. package/src/schematron/cen/ag/cen-en16931-br-ag-07.ts +3 -3
  206. package/src/schematron/cen/ag/cen-en16931-br-ag-08.ts +3 -3
  207. package/src/schematron/cen/ag/cen-en16931-br-ag-09.ts +3 -3
  208. package/src/schematron/cen/ag/cen-en16931-br-ag-10.ts +3 -3
  209. package/src/schematron/cen/b/cen-en16931-br-b-01.ts +3 -3
  210. package/src/schematron/cen/b/cen-en16931-br-b-02.ts +3 -3
  211. package/src/schematron/cen/cen-en16931-br-01.ts +3 -3
  212. package/src/schematron/cen/cen-en16931-br-02.ts +3 -3
  213. package/src/schematron/cen/cen-en16931-br-03.ts +3 -3
  214. package/src/schematron/cen/cen-en16931-br-04.ts +3 -3
  215. package/src/schematron/cen/cen-en16931-br-05.ts +3 -3
  216. package/src/schematron/cen/cen-en16931-br-06.ts +3 -3
  217. package/src/schematron/cen/cen-en16931-br-07.ts +3 -3
  218. package/src/schematron/cen/cen-en16931-br-08.ts +3 -3
  219. package/src/schematron/cen/cen-en16931-br-09.ts +3 -3
  220. package/src/schematron/cen/cen-en16931-br-10.ts +3 -3
  221. package/src/schematron/cen/cen-en16931-br-11.ts +3 -3
  222. package/src/schematron/cen/cen-en16931-br-12.ts +3 -3
  223. package/src/schematron/cen/cen-en16931-br-13.ts +3 -3
  224. package/src/schematron/cen/cen-en16931-br-14.ts +3 -3
  225. package/src/schematron/cen/cen-en16931-br-15.ts +3 -3
  226. package/src/schematron/cen/cen-en16931-br-16.ts +3 -3
  227. package/src/schematron/cen/cen-en16931-br-17.ts +3 -3
  228. package/src/schematron/cen/cen-en16931-br-18.ts +3 -3
  229. package/src/schematron/cen/cen-en16931-br-19.ts +3 -3
  230. package/src/schematron/cen/cen-en16931-br-20.ts +3 -3
  231. package/src/schematron/cen/cen-en16931-br-21.ts +3 -3
  232. package/src/schematron/cen/cen-en16931-br-22.ts +3 -3
  233. package/src/schematron/cen/cen-en16931-br-23.ts +3 -3
  234. package/src/schematron/cen/cen-en16931-br-24.ts +3 -3
  235. package/src/schematron/cen/cen-en16931-br-25.ts +3 -3
  236. package/src/schematron/cen/cen-en16931-br-26.ts +3 -3
  237. package/src/schematron/cen/cen-en16931-br-27.ts +3 -3
  238. package/src/schematron/cen/cen-en16931-br-28.ts +3 -3
  239. package/src/schematron/cen/cen-en16931-br-29.ts +3 -3
  240. package/src/schematron/cen/cen-en16931-br-30.ts +3 -3
  241. package/src/schematron/cen/cen-en16931-br-31.ts +3 -3
  242. package/src/schematron/cen/cen-en16931-br-32.ts +3 -3
  243. package/src/schematron/cen/cen-en16931-br-33.ts +3 -3
  244. package/src/schematron/cen/cen-en16931-br-36.ts +3 -3
  245. package/src/schematron/cen/cen-en16931-br-37.ts +3 -3
  246. package/src/schematron/cen/cen-en16931-br-38.ts +3 -3
  247. package/src/schematron/cen/cen-en16931-br-41.ts +3 -3
  248. package/src/schematron/cen/cen-en16931-br-42.ts +3 -3
  249. package/src/schematron/cen/cen-en16931-br-43.ts +3 -3
  250. package/src/schematron/cen/cen-en16931-br-44.ts +3 -3
  251. package/src/schematron/cen/cen-en16931-br-45.ts +3 -3
  252. package/src/schematron/cen/cen-en16931-br-46.ts +3 -3
  253. package/src/schematron/cen/cen-en16931-br-47.ts +3 -3
  254. package/src/schematron/cen/cen-en16931-br-48.ts +3 -3
  255. package/src/schematron/cen/cen-en16931-br-49.ts +3 -3
  256. package/src/schematron/cen/cen-en16931-br-50.ts +3 -3
  257. package/src/schematron/cen/cen-en16931-br-51.ts +3 -3
  258. package/src/schematron/cen/cen-en16931-br-52.ts +3 -3
  259. package/src/schematron/cen/cen-en16931-br-53.ts +3 -3
  260. package/src/schematron/cen/cen-en16931-br-54.ts +3 -3
  261. package/src/schematron/cen/cen-en16931-br-55.ts +3 -3
  262. package/src/schematron/cen/cen-en16931-br-56.ts +3 -3
  263. package/src/schematron/cen/cen-en16931-br-57.ts +3 -3
  264. package/src/schematron/cen/cen-en16931-br-61.ts +3 -3
  265. package/src/schematron/cen/cen-en16931-br-62.ts +3 -3
  266. package/src/schematron/cen/cen-en16931-br-63.ts +3 -3
  267. package/src/schematron/cen/cen-en16931-br-64.ts +3 -3
  268. package/src/schematron/cen/cen-en16931-br-65.ts +3 -3
  269. package/src/schematron/cen/cl/cen-en16931-br-cl-08.ts +3 -3
  270. package/src/schematron/cen/co/cen-en16931-br-co-03.ts +3 -3
  271. package/src/schematron/cen/co/cen-en16931-br-co-04.ts +3 -3
  272. package/src/schematron/cen/co/cen-en16931-br-co-05.ts +3 -3
  273. package/src/schematron/cen/co/cen-en16931-br-co-06.ts +3 -3
  274. package/src/schematron/cen/co/cen-en16931-br-co-07.ts +3 -3
  275. package/src/schematron/cen/co/cen-en16931-br-co-08.ts +3 -3
  276. package/src/schematron/cen/co/cen-en16931-br-co-09.ts +3 -3
  277. package/src/schematron/cen/co/cen-en16931-br-co-10.ts +3 -3
  278. package/src/schematron/cen/co/cen-en16931-br-co-11.ts +3 -3
  279. package/src/schematron/cen/co/cen-en16931-br-co-12.ts +3 -3
  280. package/src/schematron/cen/co/cen-en16931-br-co-13.ts +3 -3
  281. package/src/schematron/cen/co/cen-en16931-br-co-14.ts +3 -3
  282. package/src/schematron/cen/co/cen-en16931-br-co-15.ts +3 -3
  283. package/src/schematron/cen/co/cen-en16931-br-co-16.ts +3 -3
  284. package/src/schematron/cen/co/cen-en16931-br-co-17.ts +3 -3
  285. package/src/schematron/cen/co/cen-en16931-br-co-18.ts +3 -3
  286. package/src/schematron/cen/co/cen-en16931-br-co-19.ts +3 -3
  287. package/src/schematron/cen/co/cen-en16931-br-co-20.ts +3 -3
  288. package/src/schematron/cen/co/cen-en16931-br-co-21.ts +3 -3
  289. package/src/schematron/cen/co/cen-en16931-br-co-22.ts +3 -3
  290. package/src/schematron/cen/co/cen-en16931-br-co-23.ts +3 -3
  291. package/src/schematron/cen/co/cen-en16931-br-co-24.ts +3 -3
  292. package/src/schematron/cen/co/cen-en16931-br-co-25.ts +3 -3
  293. package/src/schematron/cen/co/cen-en16931-br-co-26.ts +3 -3
  294. package/src/schematron/cen/dec/cen-en16931-br-dec-01.ts +3 -3
  295. package/src/schematron/cen/dec/cen-en16931-br-dec-02.ts +3 -3
  296. package/src/schematron/cen/dec/cen-en16931-br-dec-05.ts +3 -3
  297. package/src/schematron/cen/dec/cen-en16931-br-dec-06.ts +3 -3
  298. package/src/schematron/cen/dec/cen-en16931-br-dec-09.ts +3 -3
  299. package/src/schematron/cen/dec/cen-en16931-br-dec-10.ts +3 -3
  300. package/src/schematron/cen/dec/cen-en16931-br-dec-11.ts +3 -3
  301. package/src/schematron/cen/dec/cen-en16931-br-dec-12.ts +3 -3
  302. package/src/schematron/cen/dec/cen-en16931-br-dec-13.ts +3 -3
  303. package/src/schematron/cen/dec/cen-en16931-br-dec-14.ts +3 -3
  304. package/src/schematron/cen/dec/cen-en16931-br-dec-15.ts +3 -3
  305. package/src/schematron/cen/dec/cen-en16931-br-dec-16.ts +3 -3
  306. package/src/schematron/cen/dec/cen-en16931-br-dec-17.ts +3 -3
  307. package/src/schematron/cen/dec/cen-en16931-br-dec-18.ts +3 -3
  308. package/src/schematron/cen/dec/cen-en16931-br-dec-19.ts +3 -3
  309. package/src/schematron/cen/dec/cen-en16931-br-dec-20.ts +3 -3
  310. package/src/schematron/cen/dec/cen-en16931-br-dec-23.ts +3 -3
  311. package/src/schematron/cen/dec/cen-en16931-br-dec-24.ts +3 -3
  312. package/src/schematron/cen/dec/cen-en16931-br-dec-25.ts +3 -3
  313. package/src/schematron/cen/dec/cen-en16931-br-dec-27.ts +3 -3
  314. package/src/schematron/cen/dec/cen-en16931-br-dec-28.ts +3 -3
  315. package/src/schematron/cen/e/cen-en16931-br-e-01.ts +3 -3
  316. package/src/schematron/cen/e/cen-en16931-br-e-02.ts +3 -3
  317. package/src/schematron/cen/e/cen-en16931-br-e-03.ts +8 -3
  318. package/src/schematron/cen/e/cen-en16931-br-e-04.ts +3 -3
  319. package/src/schematron/cen/e/cen-en16931-br-e-05.ts +3 -3
  320. package/src/schematron/cen/e/cen-en16931-br-e-06.ts +3 -3
  321. package/src/schematron/cen/e/cen-en16931-br-e-07.ts +3 -3
  322. package/src/schematron/cen/e/cen-en16931-br-e-08.ts +3 -3
  323. package/src/schematron/cen/e/cen-en16931-br-e-09.ts +3 -3
  324. package/src/schematron/cen/e/cen-en16931-br-e-10.ts +3 -3
  325. package/src/schematron/cen/g/cen-en16931-br-g-01.ts +3 -3
  326. package/src/schematron/cen/g/cen-en16931-br-g-02.ts +3 -3
  327. package/src/schematron/cen/g/cen-en16931-br-g-03.ts +8 -3
  328. package/src/schematron/cen/g/cen-en16931-br-g-04.ts +3 -3
  329. package/src/schematron/cen/g/cen-en16931-br-g-05.ts +3 -3
  330. package/src/schematron/cen/g/cen-en16931-br-g-06.ts +3 -3
  331. package/src/schematron/cen/g/cen-en16931-br-g-07.ts +3 -3
  332. package/src/schematron/cen/g/cen-en16931-br-g-08.ts +3 -3
  333. package/src/schematron/cen/g/cen-en16931-br-g-09.ts +3 -3
  334. package/src/schematron/cen/g/cen-en16931-br-g-10.ts +3 -3
  335. package/src/schematron/cen/ic/cen-en16931-br-ic-01.ts +3 -3
  336. package/src/schematron/cen/ic/cen-en16931-br-ic-02.ts +3 -3
  337. package/src/schematron/cen/ic/cen-en16931-br-ic-03.ts +3 -3
  338. package/src/schematron/cen/ic/cen-en16931-br-ic-04.ts +3 -3
  339. package/src/schematron/cen/ic/cen-en16931-br-ic-05.ts +3 -3
  340. package/src/schematron/cen/ic/cen-en16931-br-ic-06.ts +3 -3
  341. package/src/schematron/cen/ic/cen-en16931-br-ic-07.ts +3 -3
  342. package/src/schematron/cen/ic/cen-en16931-br-ic-08.ts +3 -3
  343. package/src/schematron/cen/ic/cen-en16931-br-ic-09.ts +3 -3
  344. package/src/schematron/cen/ic/cen-en16931-br-ic-10.ts +3 -3
  345. package/src/schematron/cen/ic/cen-en16931-br-ic-11.ts +3 -3
  346. package/src/schematron/cen/ic/cen-en16931-br-ic-12.ts +3 -3
  347. package/src/schematron/cen/o/cen-en16931-br-o-01.ts +3 -3
  348. package/src/schematron/cen/o/cen-en16931-br-o-02.ts +3 -3
  349. package/src/schematron/cen/o/cen-en16931-br-o-03.ts +3 -3
  350. package/src/schematron/cen/o/cen-en16931-br-o-04.ts +3 -3
  351. package/src/schematron/cen/o/cen-en16931-br-o-05.ts +3 -3
  352. package/src/schematron/cen/o/cen-en16931-br-o-06.ts +3 -3
  353. package/src/schematron/cen/o/cen-en16931-br-o-07.ts +3 -3
  354. package/src/schematron/cen/o/cen-en16931-br-o-08.ts +3 -3
  355. package/src/schematron/cen/o/cen-en16931-br-o-09.ts +3 -3
  356. package/src/schematron/cen/o/cen-en16931-br-o-10.ts +3 -3
  357. package/src/schematron/cen/o/cen-en16931-br-o-11.ts +3 -3
  358. package/src/schematron/cen/o/cen-en16931-br-o-12.ts +3 -3
  359. package/src/schematron/cen/o/cen-en16931-br-o-13.ts +3 -3
  360. package/src/schematron/cen/o/cen-en16931-br-o-14.ts +3 -3
  361. package/src/schematron/cen/s/cen-en16931-br-s-01.ts +3 -3
  362. package/src/schematron/cen/s/cen-en16931-br-s-02.ts +3 -3
  363. package/src/schematron/cen/s/cen-en16931-br-s-03.ts +8 -3
  364. package/src/schematron/cen/s/cen-en16931-br-s-04.ts +3 -3
  365. package/src/schematron/cen/s/cen-en16931-br-s-05.ts +3 -3
  366. package/src/schematron/cen/s/cen-en16931-br-s-06.ts +3 -3
  367. package/src/schematron/cen/s/cen-en16931-br-s-07.ts +3 -3
  368. package/src/schematron/cen/s/cen-en16931-br-s-08.ts +3 -3
  369. package/src/schematron/cen/s/cen-en16931-br-s-09.ts +3 -3
  370. package/src/schematron/cen/s/cen-en16931-br-s-10.ts +3 -3
  371. package/src/schematron/cen/z/cen-en16931-br-z-01.ts +3 -3
  372. package/src/schematron/cen/z/cen-en16931-br-z-02.ts +3 -3
  373. package/src/schematron/cen/z/cen-en16931-br-z-03.ts +8 -3
  374. package/src/schematron/cen/z/cen-en16931-br-z-04.ts +3 -3
  375. package/src/schematron/cen/z/cen-en16931-br-z-05.ts +3 -3
  376. package/src/schematron/cen/z/cen-en16931-br-z-06.ts +3 -3
  377. package/src/schematron/cen/z/cen-en16931-br-z-07.ts +3 -3
  378. package/src/schematron/cen/z/cen-en16931-br-z-08.ts +3 -3
  379. package/src/schematron/cen/z/cen-en16931-br-z-09.ts +3 -3
  380. package/src/schematron/cen/z/cen-en16931-br-z-10.ts +3 -3
  381. package/src/schematron/de/de-r-001.ts +3 -3
  382. package/src/schematron/de/de-r-002.ts +3 -3
  383. package/src/schematron/de/de-r-003.ts +3 -3
  384. package/src/schematron/de/de-r-004.ts +3 -3
  385. package/src/schematron/de/de-r-005.ts +3 -3
  386. package/src/schematron/de/de-r-006.ts +3 -3
  387. package/src/schematron/de/de-r-007.ts +3 -3
  388. package/src/schematron/de/de-r-008.ts +3 -3
  389. package/src/schematron/de/de-r-009.ts +3 -3
  390. package/src/schematron/de/de-r-010.ts +3 -3
  391. package/src/schematron/de/de-r-011.ts +3 -3
  392. package/src/schematron/de/de-r-014.ts +3 -3
  393. package/src/schematron/de/de-r-015.ts +3 -3
  394. package/src/schematron/de/de-r-016.ts +3 -3
  395. package/src/schematron/de/de-r-017.ts +3 -3
  396. package/src/schematron/de/de-r-018.ts +3 -3
  397. package/src/schematron/de/de-r-019.ts +4 -4
  398. package/src/schematron/de/de-r-020.ts +4 -4
  399. package/src/schematron/de/de-r-022.ts +3 -3
  400. package/src/schematron/de/de-r-023-1.ts +3 -3
  401. package/src/schematron/de/de-r-023-2.ts +3 -3
  402. package/src/schematron/de/de-r-024-1.ts +3 -3
  403. package/src/schematron/de/de-r-024-2.ts +3 -3
  404. package/src/schematron/de/de-r-025-1.ts +3 -3
  405. package/src/schematron/de/de-r-025-2.ts +3 -3
  406. package/src/schematron/de/de-r-026.ts +3 -3
  407. package/src/schematron/de/de-r-027.ts +3 -3
  408. package/src/schematron/de/de-r-028.ts +3 -3
  409. package/src/schematron/de/de-r-030.ts +3 -3
  410. package/src/schematron/de/de-r-031.ts +3 -3
  411. package/src/schematron/dk/dk-r-002.ts +3 -3
  412. package/src/schematron/dk/dk-r-003.ts +3 -3
  413. package/src/schematron/dk/dk-r-004.ts +3 -3
  414. package/src/schematron/dk/dk-r-005.ts +3 -3
  415. package/src/schematron/dk/dk-r-006.ts +3 -3
  416. package/src/schematron/dk/dk-r-007.ts +3 -3
  417. package/src/schematron/dk/dk-r-008.ts +3 -3
  418. package/src/schematron/dk/dk-r-009.ts +3 -3
  419. package/src/schematron/dk/dk-r-010.ts +3 -3
  420. package/src/schematron/dk/dk-r-011.ts +3 -3
  421. package/src/schematron/dk/dk-r-013.ts +3 -3
  422. package/src/schematron/dk/dk-r-014.ts +3 -3
  423. package/src/schematron/dk/dk-r-016.ts +3 -3
  424. package/src/schematron/dk/dk-r-017.ts +3 -3
  425. package/src/schematron/gr/gr-r-001-1.ts +3 -3
  426. package/src/schematron/gr/gr-r-001-2.ts +4 -4
  427. package/src/schematron/gr/gr-r-001-3.ts +4 -4
  428. package/src/schematron/gr/gr-r-001-4.ts +3 -3
  429. package/src/schematron/gr/gr-r-001-5.ts +3 -3
  430. package/src/schematron/gr/gr-r-001-6.ts +3 -3
  431. package/src/schematron/gr/gr-r-001-7.ts +3 -3
  432. package/src/schematron/gr/gr-r-002.ts +3 -3
  433. package/src/schematron/gr/gr-r-003.ts +4 -4
  434. package/src/schematron/gr/gr-r-004-1.ts +3 -3
  435. package/src/schematron/gr/gr-r-004-2.ts +3 -3
  436. package/src/schematron/gr/gr-r-005.ts +3 -3
  437. package/src/schematron/gr/gr-r-006.ts +4 -4
  438. package/src/schematron/gr/gr-r-008-2.ts +3 -3
  439. package/src/schematron/gr/gr-r-008-3.ts +3 -3
  440. package/src/schematron/gr/gr-r-009.ts +4 -4
  441. package/src/schematron/gr/gr-r-010.ts +4 -4
  442. package/src/schematron/gr/gr-s-008-1.ts +3 -3
  443. package/src/schematron/gr/gr-s-011.ts +3 -3
  444. package/src/schematron/helpers.ts +5 -5
  445. package/src/schematron/index.ts +366 -366
  446. package/src/schematron/is/is-r-001.ts +3 -3
  447. package/src/schematron/is/is-r-002.ts +3 -3
  448. package/src/schematron/is/is-r-003.ts +3 -3
  449. package/src/schematron/is/is-r-004.ts +3 -3
  450. package/src/schematron/is/is-r-005.ts +3 -3
  451. package/src/schematron/is/is-r-006.ts +3 -3
  452. package/src/schematron/is/is-r-007.ts +3 -3
  453. package/src/schematron/is/is-r-008.ts +3 -3
  454. package/src/schematron/is/is-r-009.ts +3 -3
  455. package/src/schematron/is/is-r-010.ts +3 -3
  456. package/src/schematron/it/it-r-001.ts +3 -3
  457. package/src/schematron/it/it-r-002.ts +3 -3
  458. package/src/schematron/it/it-r-003.ts +3 -3
  459. package/src/schematron/it/it-r-004.ts +3 -3
  460. package/src/schematron/nl/nl-r-001.ts +3 -3
  461. package/src/schematron/nl/nl-r-002.ts +3 -3
  462. package/src/schematron/nl/nl-r-003.ts +3 -3
  463. package/src/schematron/nl/nl-r-004.ts +3 -3
  464. package/src/schematron/nl/nl-r-005.ts +3 -3
  465. package/src/schematron/nl/nl-r-006.ts +3 -3
  466. package/src/schematron/nl/nl-r-007.ts +3 -3
  467. package/src/schematron/nl/nl-r-008.ts +3 -3
  468. package/src/schematron/nl/nl-r-009.ts +3 -3
  469. package/src/schematron/no/no-r-001.ts +4 -4
  470. package/src/schematron/no/no-r-002.ts +3 -3
  471. package/src/schematron/peppol/cl/peppol-en16931-cl001.ts +3 -3
  472. package/src/schematron/peppol/cl/peppol-en16931-cl002.ts +3 -3
  473. package/src/schematron/peppol/cl/peppol-en16931-cl003.ts +3 -3
  474. package/src/schematron/peppol/cl/peppol-en16931-cl006.ts +3 -3
  475. package/src/schematron/peppol/cl/peppol-en16931-cl007.ts +3 -3
  476. package/src/schematron/peppol/cl/peppol-en16931-cl008.ts +3 -3
  477. package/src/schematron/peppol/common/peppol-common-r040.ts +5 -5
  478. package/src/schematron/peppol/common/peppol-common-r041.ts +5 -5
  479. package/src/schematron/peppol/common/peppol-common-r042.ts +3 -3
  480. package/src/schematron/peppol/common/peppol-common-r043.ts +5 -5
  481. package/src/schematron/peppol/common/peppol-common-r044.ts +3 -3
  482. package/src/schematron/peppol/common/peppol-common-r045.ts +4 -4
  483. package/src/schematron/peppol/common/peppol-common-r046.ts +4 -4
  484. package/src/schematron/peppol/common/peppol-common-r047.ts +4 -4
  485. package/src/schematron/peppol/common/peppol-common-r049.ts +4 -4
  486. package/src/schematron/peppol/common/peppol-common-r050.ts +5 -5
  487. package/src/schematron/peppol/common/peppol-common-r052.ts +3 -3
  488. package/src/schematron/peppol/common/peppol-common-r053.ts +3 -3
  489. package/src/schematron/peppol/f/peppol-en16931-f001.ts +4 -4
  490. package/src/schematron/peppol/p/peppol-en16931-p0100.ts +3 -3
  491. package/src/schematron/peppol/p/peppol-en16931-p0101.ts +3 -3
  492. package/src/schematron/peppol/p/peppol-en16931-p0104.ts +3 -3
  493. package/src/schematron/peppol/p/peppol-en16931-p0105.ts +3 -3
  494. package/src/schematron/peppol/p/peppol-en16931-p0106.ts +3 -3
  495. package/src/schematron/peppol/p/peppol-en16931-p0107.ts +3 -3
  496. package/src/schematron/peppol/p/peppol-en16931-p0108.ts +3 -3
  497. package/src/schematron/peppol/p/peppol-en16931-p0109.ts +3 -3
  498. package/src/schematron/peppol/p/peppol-en16931-p0110.ts +3 -3
  499. package/src/schematron/peppol/p/peppol-en16931-p0111.ts +3 -3
  500. package/src/schematron/peppol/p/peppol-en16931-p0112.ts +3 -3
  501. package/src/schematron/peppol/r/peppol-en16931-r001.ts +3 -3
  502. package/src/schematron/peppol/r/peppol-en16931-r002.ts +3 -3
  503. package/src/schematron/peppol/r/peppol-en16931-r003.ts +3 -3
  504. package/src/schematron/peppol/r/peppol-en16931-r004.ts +3 -3
  505. package/src/schematron/peppol/r/peppol-en16931-r005.ts +3 -3
  506. package/src/schematron/peppol/r/peppol-en16931-r007.ts +3 -3
  507. package/src/schematron/peppol/r/peppol-en16931-r008.ts +3 -3
  508. package/src/schematron/peppol/r/peppol-en16931-r010.ts +3 -3
  509. package/src/schematron/peppol/r/peppol-en16931-r020.ts +3 -3
  510. package/src/schematron/peppol/r/peppol-en16931-r040.ts +3 -3
  511. package/src/schematron/peppol/r/peppol-en16931-r041.ts +3 -3
  512. package/src/schematron/peppol/r/peppol-en16931-r042.ts +3 -3
  513. package/src/schematron/peppol/r/peppol-en16931-r043.ts +3 -3
  514. package/src/schematron/peppol/r/peppol-en16931-r044.ts +3 -3
  515. package/src/schematron/peppol/r/peppol-en16931-r046.ts +3 -3
  516. package/src/schematron/peppol/r/peppol-en16931-r051.ts +3 -3
  517. package/src/schematron/peppol/r/peppol-en16931-r053.ts +3 -3
  518. package/src/schematron/peppol/r/peppol-en16931-r054.ts +3 -3
  519. package/src/schematron/peppol/r/peppol-en16931-r055.ts +3 -3
  520. package/src/schematron/peppol/r/peppol-en16931-r061.ts +3 -3
  521. package/src/schematron/peppol/r/peppol-en16931-r100.ts +3 -3
  522. package/src/schematron/peppol/r/peppol-en16931-r101.ts +3 -3
  523. package/src/schematron/peppol/r/peppol-en16931-r110.ts +3 -3
  524. package/src/schematron/peppol/r/peppol-en16931-r111.ts +3 -3
  525. package/src/schematron/peppol/r/peppol-en16931-r120.ts +3 -3
  526. package/src/schematron/peppol/r/peppol-en16931-r121.ts +3 -3
  527. package/src/schematron/peppol/r/peppol-en16931-r130.ts +3 -3
  528. package/src/schematron/run-all-rules.ts +361 -361
  529. package/src/schematron/schematron.ts +3 -3
  530. package/src/schematron/se/se-r-001.ts +3 -3
  531. package/src/schematron/se/se-r-002.ts +3 -3
  532. package/src/schematron/se/se-r-003.ts +3 -3
  533. package/src/schematron/se/se-r-004.ts +3 -3
  534. package/src/schematron/se/se-r-005.ts +3 -3
  535. package/src/schematron/se/se-r-006.ts +3 -3
  536. package/src/schematron/se/se-r-007.ts +3 -3
  537. package/src/schematron/se/se-r-008.ts +3 -3
  538. package/src/schematron/se/se-r-009.ts +3 -3
  539. package/src/schematron/se/se-r-010.ts +3 -3
  540. package/src/schematron/se/se-r-011.ts +3 -3
  541. package/src/schematron/se/se-r-012.ts +3 -3
  542. package/src/schematron/se/se-r-013.ts +4 -4
  543. package/src/xml/builder-options.ts +1 -1
  544. package/src/xml/parser-options.ts +1 -1
  545. package/src/xml.ts +2 -2
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @endevops/peppol-schema
2
2
 
3
- TypeScript library for PEPPOL schema validation and parsing.
3
+ TypeScript Effect Schema models for **PEPPOL BIS Billing 3.0** — decode, validate and encode **Invoice, Credit Note, Invoice Response and Message Level Response** XML, with generated PEPPOL code lists, Schematron rules and identifier validations (IBAN, GLN, VAT, fiscal codes).
4
4
 
5
5
  ## Install
6
6
 
@@ -8,26 +8,77 @@ TypeScript library for PEPPOL schema validation and parsing.
8
8
  pnpm add @endevops/peppol-schema
9
9
  ```
10
10
 
11
+ Requires `effect`, `fast-xml-parser` and `fast-xml-builder` as peer dependencies — pnpm installs them automatically unless you opt out.
12
+
11
13
  ## Usage
12
14
 
15
+ Decode any PEPPOL document from an XML string (dispatches on the root element; `ApplicationResponse` is split by `cbc:ProfileID`):
16
+
17
+ ```ts
18
+ import { Schema } from 'effect';
19
+ import { PeppolCreditNote, PeppolInvoice, PeppolInvoiceResponse, PeppolMessageLevelResponse, peppolDocumentSchema } from '@endevops/peppol-schema';
20
+
21
+ const doc = Schema.decodeUnknownSync(peppolDocumentSchema)(xmlString);
22
+ if (Schema.is(PeppolInvoice)(doc)) {
23
+ /* doc.invoiceLines … */
24
+ } else if (Schema.is(PeppolCreditNote)(doc)) {
25
+ /* doc.creditNoteLines … */
26
+ } else if (Schema.is(PeppolInvoiceResponse)(doc)) {
27
+ /* invoice response … */
28
+ } else if (Schema.is(PeppolMessageLevelResponse)(doc)) {
29
+ /* message-level response … */
30
+ }
31
+
32
+ // Round-trip back to XML:
33
+ const xml = Schema.encodeUnknownSync(peppolDocumentSchema)(doc);
34
+ ```
35
+
36
+ Run the Schematron rule set or a single rule:
37
+
38
+ ```ts
39
+ import { Effect } from 'effect';
40
+ import { Schematron, validateCenEn16931Br01 } from '@endevops/peppol-schema/schematron';
41
+
42
+ const program = Effect.gen(function* () {
43
+ yield* (yield* Schematron).run(doc); // fails with SchematronValidationError listing every failed rule
44
+ yield* validateCenEn16931Br01(doc); // or run one rule directly
45
+ }).pipe(Effect.provide(Schematron.layer));
46
+ ```
47
+
48
+ Validate identifiers:
49
+
13
50
  ```ts
14
- import { parseDocument } from '@endevops/peppol-schema';
15
- import { InvoiceSchema } from '@endevops/peppol-schema/schemas';
16
- import { validatePEPPOL } from '@endevops/peppol-schema/validations';
17
- import { InvoiceTypeCode } from '@endevops/peppol-schema/values';
51
+ import { checkPIVA, isValidGLN, isValidIBAN } from '@endevops/peppol-schema/validations';
52
+ import { invoiceTypeCodes } from '@endevops/peppol-schema/values';
53
+
54
+ isValidIBAN('IT60X0542811101000000123456'); // boolean
55
+ isValidGLN('7300010000001'); // { success: true } | { success: false; expected; actual }
56
+ checkPIVA('01234567890'); // 0 means valid
57
+ invoiceTypeCodes['380']; // 'Commercial invoice'
18
58
  ```
19
59
 
60
+ ## Features
61
+
62
+ - **4 document types**: Invoice, Credit Note, Invoice Response, Message Level Response (UBL 2.1, BIS Billing 3.0) with XML round-trip via `peppolDocumentSchema`
63
+ - **Effect Schema** models with typed decode/encode and `isPeppol*` type guards
64
+ - **Generated code lists** (`/values`): currencies, countries, tax schemes, UNCL, UNTDID, EAS, ICD etc. from OpenPEPPOL
65
+ - **Schematron rules** (`/schematron`): shared PEPPOL + CEN rules and per-country overlays (`de`, `dk`, `gr`, `is`, `it`, `nl`, `no`, `se`), runnable as an Effect service or one rule at a time
66
+ - **Identifier validations** (`/validations`): IBAN, GLN, MOD97/MOD11, Luhn, ABN, plus country checks (IT Partita IVA / Codice Fiscale, SE orgnr, GR TIN)
67
+ - **XML options** (`/xml`): `fast-xml-parser` / `fast-xml-builder` options tuned for PEPPOL
68
+ - **Translation generator CLI** (`/generate-translations`) for localized field labels
69
+
20
70
  ## Entry Points
21
71
 
22
- | Import path | Description |
23
- | ----------------------------------------------- | -------------------------------------------- |
24
- | `@endevops/peppol-schema` | Main exports (parser, types) |
25
- | `@endevops/peppol-schema/effect` | Effect Schema API |
26
- | `@endevops/peppol-schema/generate-translations` | CLI that generates translation files |
27
- | `@endevops/peppol-schema/schematron` | Schematron rules |
28
- | `@endevops/peppol-schema/validations` | PEPPOL validation rules |
29
- | `@endevops/peppol-schema/values` | Generated value enums from PEPPOL code lists |
30
- | `@endevops/peppol-schema/xml` | XML parser and builder options |
72
+ | Import path | Description |
73
+ | ------------------------------------------------ | -------------------------------------------------------- |
74
+ | `@endevops/peppol-schema` | Document schemas, `peppolDocumentSchema`, types |
75
+ | `@endevops/peppol-schema/generate-translations` | CLI that generates translation files |
76
+ | `@endevops/peppol-schema/schematron` | PEPPOL + CEN + per-country Schematron rules |
77
+ | `@endevops/peppol-schema/validations` | Identifier and checksum validation rules |
78
+ | `@endevops/peppol-schema/values` | Generated value maps from PEPPOL code lists |
79
+ | `@endevops/peppol-schema/xml` | XML parser and builder options |
80
+ | `@endevops/peppol-schema/constants` | Doctype ids, process ids, profile ids, transport profile |
81
+ | `@endevops/peppol-schema/invoice-response-codes` | Invoice Response status/reason codes |
31
82
 
32
83
  ## Development
33
84
 
@@ -35,9 +86,10 @@ import { InvoiceTypeCode } from '@endevops/peppol-schema/values';
35
86
  pnpm install
36
87
  pnpm build # Build with tsdown
37
88
  pnpm dev # Watch mode
38
- pnpm oxlint # Lint
39
- pnpm oxfmt . # Format
40
- pnpm vitest run # Test
89
+ pnpm lint # Lint (oxlint --type-aware)
90
+ pnpm format # Format (oxfmt)
91
+ pnpm test # Test (vitest run)
92
+ pnpm generate # Regenerate code lists (bun scripts/values.ts)
41
93
  tsc --noEmit # Typecheck
42
94
  ```
43
95
 
@@ -61,8 +113,7 @@ See [docs/versioning.md](docs/versioning.md) for the full strategy.
61
113
 
62
114
  ## Tech Stack
63
115
 
64
- - [Effect](https://effect.website/) - Typed effects & Schema decoders
65
- - [Zod v4](https://zod.dev/) - Runtime validation
116
+ - [Effect](https://effect.website/) - Typed effects & Schema models
66
117
  - [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) / [fast-xml-builder](https://github.com/NaturalIntelligence/fast-xml-builder) - XML parsing
67
118
  - [tsdown](https://tsdown.dev/) - Bundling (unbundled ESM)
68
119
  - [oxlint](https://oxc.rs/) / [oxfmt](https://oxc.rs/) - Linting & formatting
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":[],"sources":["../src/constants/document-scheme.ts","../src/constants/credit-note-doctype-id.ts","../src/constants/process-scheme.ts","../src/constants/credit-note-process-id.ts","../src/constants/invoice-doctype-id.ts","../src/constants/invoice-process-id.ts","../src/constants/invoice-response-doctype-id.ts","../src/constants/invoice-response-process-id.ts","../src/constants/message-level-response-doctype-id.ts","../src/constants/message-level-response-process-id.ts","../src/constants/participant-scheme.ts","../src/constants/transport-profile.ts"],"sourcesContent":["export const documentScheme = 'busdox-docid-qns' as const;\n","import { documentScheme } from '#/constants/document-scheme';\n\nexport const CREDIT_NOTE_DOCTYPE_ID =\n `${documentScheme}::urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2::CreditNote##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1` as const;\n","export const processScheme = 'cenbii-procid-ubl' as const;\n","import { processScheme } from '#/constants/process-scheme';\n\nexport const CREDIT_NOTE_PROCESS_ID = `${processScheme}::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0` as const;\n","import { documentScheme } from '#/constants/document-scheme';\n\nexport const INVOICE_DOCTYPE_ID =\n `${documentScheme}::urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1` as const;\n","import { processScheme } from '#/constants/process-scheme';\n\nexport const INVOICE_PROCESS_ID = `${processScheme}::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0` as const;\n","import { documentScheme } from '#/constants/document-scheme';\n\nexport const INVOICE_RESPONSE_DOCTYPE_ID =\n `${documentScheme}::urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2::ApplicationResponse##urn:fdc:peppol.eu:poacc:trns:invoice_response:3::2.1` as const;\n","import { INVOICE_RESPONSE_PROFILE_ID } from '#/constants/invoice-response-profile-id';\nimport { processScheme } from '#/constants/process-scheme';\n\nexport const INVOICE_RESPONSE_PROCESS_ID = `${processScheme}::${INVOICE_RESPONSE_PROFILE_ID}` as const;\n","import { documentScheme } from '#/constants/document-scheme';\n\nexport const MESSAGE_LEVEL_RESPONSE_DOCTYPE_ID =\n `${documentScheme}::urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2::ApplicationResponse##urn:fdc:peppol.eu:poacc:trns:mlr:3::2.1` as const;\n","import { MESSAGE_LEVEL_RESPONSE_PROFILE_ID } from '#/constants/message-level-response-profile-id';\nimport { processScheme } from '#/constants/process-scheme';\n\nexport const MESSAGE_LEVEL_RESPONSE_PROCESS_ID = `${processScheme}::${MESSAGE_LEVEL_RESPONSE_PROFILE_ID}` as const;\n","export const PARTICIPANT_SCHEME = 'iso6523-actorid-upis' as const;\n/**\n * @deprecated use `PARTICIPANT_SCHEME` instead.\n */\nexport const participantScheme = PARTICIPANT_SCHEME;\n","export const TRANSPORT_PROFILE = 'peppol-transport-as4-v2_0' as const;\n/**\n * @deprecated\n */\nexport const transportProfile = TRANSPORT_PROFILE;\n"],"mappings":";;AAAA,MAAa,iBAAiB;;;ACE9B,MAAa,yBACX,GAAG,eAAe;;;ACHpB,MAAa,gBAAgB;;;ACE7B,MAAa,yBAAyB,GAAG,cAAc;;;ACAvD,MAAa,qBACX,GAAG,eAAe;;;ACDpB,MAAa,qBAAqB,GAAG,cAAc;;;ACAnD,MAAa,8BACX,GAAG,eAAe;;;ACApB,MAAa,8BAA8B,GAAG,cAAc,IAAI;;;ACDhE,MAAa,oCACX,GAAG,eAAe;;;ACApB,MAAa,oCAAoC,GAAG,cAAc,IAAI;;;ACHtE,MAAa,qBAAqB;;;;AAIlC,MAAa,oBAAoB;;;ACJjC,MAAa,oBAAoB;;;;AAIjC,MAAa,mBAAmB"}
1
+ {"version":3,"file":"constants.js","names":[],"sources":["../src/constants/document-scheme.ts","../src/constants/credit-note-doctype-id.ts","../src/constants/process-scheme.ts","../src/constants/credit-note-process-id.ts","../src/constants/invoice-doctype-id.ts","../src/constants/invoice-process-id.ts","../src/constants/invoice-response-doctype-id.ts","../src/constants/invoice-response-process-id.ts","../src/constants/message-level-response-doctype-id.ts","../src/constants/message-level-response-process-id.ts","../src/constants/participant-scheme.ts","../src/constants/transport-profile.ts"],"sourcesContent":["export const documentScheme = 'busdox-docid-qns' as const;\n","import { documentScheme } from '#/constants/document-scheme.ts';\n\nexport const CREDIT_NOTE_DOCTYPE_ID =\n `${documentScheme}::urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2::CreditNote##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1` as const;\n","export const processScheme = 'cenbii-procid-ubl' as const;\n","import { processScheme } from '#/constants/process-scheme.ts';\n\nexport const CREDIT_NOTE_PROCESS_ID = `${processScheme}::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0` as const;\n","import { documentScheme } from '#/constants/document-scheme.ts';\n\nexport const INVOICE_DOCTYPE_ID =\n `${documentScheme}::urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1` as const;\n","import { processScheme } from '#/constants/process-scheme.ts';\n\nexport const INVOICE_PROCESS_ID = `${processScheme}::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0` as const;\n","import { documentScheme } from '#/constants/document-scheme.ts';\n\nexport const INVOICE_RESPONSE_DOCTYPE_ID =\n `${documentScheme}::urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2::ApplicationResponse##urn:fdc:peppol.eu:poacc:trns:invoice_response:3::2.1` as const;\n","import { INVOICE_RESPONSE_PROFILE_ID } from '#/constants/invoice-response-profile-id.ts';\nimport { processScheme } from '#/constants/process-scheme.ts';\n\nexport const INVOICE_RESPONSE_PROCESS_ID = `${processScheme}::${INVOICE_RESPONSE_PROFILE_ID}` as const;\n","import { documentScheme } from '#/constants/document-scheme.ts';\n\nexport const MESSAGE_LEVEL_RESPONSE_DOCTYPE_ID =\n `${documentScheme}::urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2::ApplicationResponse##urn:fdc:peppol.eu:poacc:trns:mlr:3::2.1` as const;\n","import { MESSAGE_LEVEL_RESPONSE_PROFILE_ID } from '#/constants/message-level-response-profile-id.ts';\nimport { processScheme } from '#/constants/process-scheme.ts';\n\nexport const MESSAGE_LEVEL_RESPONSE_PROCESS_ID = `${processScheme}::${MESSAGE_LEVEL_RESPONSE_PROFILE_ID}` as const;\n","export const PARTICIPANT_SCHEME = 'iso6523-actorid-upis' as const;\n/**\n * @deprecated use `PARTICIPANT_SCHEME` instead.\n */\nexport const participantScheme = PARTICIPANT_SCHEME;\n","export const TRANSPORT_PROFILE = 'peppol-transport-as4-v2_0' as const;\n/**\n * @deprecated\n */\nexport const transportProfile = TRANSPORT_PROFILE;\n"],"mappings":";;AAAA,MAAa,iBAAiB;;;ACE9B,MAAa,yBACX,GAAG,eAAe;;;ACHpB,MAAa,gBAAgB;;;ACE7B,MAAa,yBAAyB,GAAG,cAAc;;;ACAvD,MAAa,qBACX,GAAG,eAAe;;;ACDpB,MAAa,qBAAqB,GAAG,cAAc;;;ACAnD,MAAa,8BACX,GAAG,eAAe;;;ACApB,MAAa,8BAA8B,GAAG,cAAc,IAAI;;;ACDhE,MAAa,oCACX,GAAG,eAAe;;;ACApB,MAAa,oCAAoC,GAAG,cAAc,IAAI;;;ACHtE,MAAa,qBAAqB;;;;AAIlC,MAAa,oBAAoB;;;ACJjC,MAAa,oBAAoB;;;;AAIjC,MAAa,mBAAmB"}
package/dist/index.js CHANGED
@@ -3769,29 +3769,6 @@ const decodeCreditNote = Effect.fn("decode-credit-note")(function* (value) {
3769
3769
  };
3770
3770
  });
3771
3771
  //#endregion
3772
- //#region src/decoders/fields/decode-invoice-lines.ts
3773
- const decodeInvoiceLines = Effect.fn("decode-invoice-lines")(function* (doc, ...path) {
3774
- return yield* decodeNodeList(doc, Effect.fn(function* (lineNode) {
3775
- return {
3776
- ...yield* decodeLineShared(lineNode),
3777
- invoicedQuantity: yield* decodeQuantity(lineNode, "cbc:InvoicedQuantity")
3778
- };
3779
- }), ...path);
3780
- });
3781
- //#endregion
3782
- //#region src/decoders/decode-invoice.ts
3783
- const decodeInvoice = Effect.fn("decode-invoice")(function* (value) {
3784
- const root = value || {};
3785
- const doc = (yield* getProp(root, "ubl:Invoice")) ?? root;
3786
- return {
3787
- ...yield* decodeBilling(doc),
3788
- dueDate: yield* strOrUnd(doc, "cbc:DueDate"),
3789
- invoiceLines: yield* decodeInvoiceLines(doc, "cac:InvoiceLine"),
3790
- invoiceTypeCode: yield* strOrUnd(doc, "cbc:InvoiceTypeCode"),
3791
- projectReference: yield* decodeSimpleIdentifer(doc, "cac:ProjectReference")
3792
- };
3793
- });
3794
- //#endregion
3795
3772
  //#region src/decoders/fields/decode-application-response.ts
3796
3773
  const decodeApplicationResponseBase = Effect.fn(function* (value) {
3797
3774
  const doc = yield* getProp(value || {}, "ubl:ApplicationResponse");
@@ -3904,6 +3881,29 @@ const decodeInvoiceResponse = Effect.fn(function* (value) {
3904
3881
  };
3905
3882
  });
3906
3883
  //#endregion
3884
+ //#region src/decoders/fields/decode-invoice-lines.ts
3885
+ const decodeInvoiceLines = Effect.fn("decode-invoice-lines")(function* (doc, ...path) {
3886
+ return yield* decodeNodeList(doc, Effect.fn(function* (lineNode) {
3887
+ return {
3888
+ ...yield* decodeLineShared(lineNode),
3889
+ invoicedQuantity: yield* decodeQuantity(lineNode, "cbc:InvoicedQuantity")
3890
+ };
3891
+ }), ...path);
3892
+ });
3893
+ //#endregion
3894
+ //#region src/decoders/decode-invoice.ts
3895
+ const decodeInvoice = Effect.fn("decode-invoice")(function* (value) {
3896
+ const root = value || {};
3897
+ const doc = (yield* getProp(root, "ubl:Invoice")) ?? root;
3898
+ return {
3899
+ ...yield* decodeBilling(doc),
3900
+ dueDate: yield* strOrUnd(doc, "cbc:DueDate"),
3901
+ invoiceLines: yield* decodeInvoiceLines(doc, "cac:InvoiceLine"),
3902
+ invoiceTypeCode: yield* strOrUnd(doc, "cbc:InvoiceTypeCode"),
3903
+ projectReference: yield* decodeSimpleIdentifer(doc, "cac:ProjectReference")
3904
+ };
3905
+ });
3906
+ //#endregion
3907
3907
  //#region src/decoders/fields/decode-message-level-party.ts
3908
3908
  const decodeMessageLevelParty = Effect.fn(function* (party, ...path) {
3909
3909
  const val = yield* getProp(party, ...path);
@@ -4422,60 +4422,6 @@ const encodeCreditNote = Effect.fn(function* (creditNote) {
4422
4422
  };
4423
4423
  });
4424
4424
  //#endregion
4425
- //#region src/decoders/fields/encode-invoice-lines.ts
4426
- const encodeInvoiceLines = Effect.fn(function* (invoiceLines) {
4427
- if (invoiceLines.length === 0) return void 0;
4428
- return yield* Effect.forEach(invoiceLines, encodeLineShared);
4429
- });
4430
- //#endregion
4431
- //#region src/decoders/encode-invoice.ts
4432
- const encodeInvoice = Effect.fn(function* (invoice) {
4433
- return {
4434
- "?xml": {
4435
- "@version": "1.0",
4436
- "@encoding": "UTF-8"
4437
- },
4438
- Invoice: {
4439
- "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
4440
- "@xmlns:cac": "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2",
4441
- "@xmlns:cbc": "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2",
4442
- "@xmlns": "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2",
4443
- "cbc:CustomizationID": invoice.customizationId,
4444
- "cbc:ProfileID": invoice.profileId,
4445
- "cbc:ID": invoice.id,
4446
- "cbc:IssueDate": invoice.issueDate,
4447
- "cbc:DueDate": invoice.dueDate,
4448
- "cbc:InvoiceTypeCode": invoice.invoiceTypeCode,
4449
- "cbc:Note": invoice.note,
4450
- "cbc:TaxPointDate": invoice.taxPointDate,
4451
- "cbc:DocumentCurrencyCode": invoice.documentCurrencyCode,
4452
- "cbc:TaxCurrencyCode": invoice.taxCurrencyCode,
4453
- "cbc:AccountingCost": invoice.accountingCost,
4454
- "cbc:BuyerReference": invoice.buyerReference,
4455
- "cac:InvoicePeriod": yield* encodeInvoicePeriod(invoice.invoicePeriod),
4456
- "cac:OrderReference": yield* encodeOrderReference(invoice.orderReference),
4457
- "cac:BillingReference": yield* encodeBillingReferences(invoice.billingReferences),
4458
- "cac:DespatchDocumentReference": yield* encodeSimpleIdentifier(invoice.despatchDocumentReference),
4459
- "cac:ReceiptDocumentReference": yield* encodeSimpleIdentifier(invoice.receiptDocumentReference),
4460
- "cac:OriginatorDocumentReference": yield* encodeSimpleIdentifier(invoice.originatorDocumentReference),
4461
- "cac:ContractDocumentReference": yield* encodeSimpleIdentifier(invoice.contractDocumentReference),
4462
- "cac:AdditionalDocumentReference": yield* encodeAdditionalDocumentReferences(invoice.additionalDocumentReferences),
4463
- "cac:ProjectReference": yield* encodeSimpleIdentifier(invoice.projectReference),
4464
- "cac:AccountingSupplierParty": yield* encodeParty(invoice.accountingSupplierParty),
4465
- "cac:AccountingCustomerParty": yield* encodeParty(invoice.accountingCustomerParty),
4466
- "cac:PayeeParty": yield* encodePayeeParty(invoice.payeeParty),
4467
- "cac:TaxRepresentativeParty": yield* encodeTaxRepresentativeParty(invoice.taxRepresentativeParty),
4468
- "cac:Delivery": yield* encodeDelivery(invoice.delivery),
4469
- "cac:PaymentMeans": yield* encodePaymentMeans(invoice.paymentMeans),
4470
- "cac:PaymentTerms": yield* encodePaymentTerms(invoice.paymentTerms),
4471
- "cac:AllowanceCharge": yield* encodeAllowanceCharges(invoice.allowanceCharges),
4472
- "cac:TaxTotal": yield* encodeTaxTotals(invoice.taxTotals),
4473
- "cac:LegalMonetaryTotal": yield* encodeLegalMonetaryTotal(invoice.legalMonetaryTotal),
4474
- "cac:InvoiceLine": yield* encodeInvoiceLines(invoice.invoiceLines)
4475
- }
4476
- };
4477
- });
4478
- //#endregion
4479
4425
  //#region src/decoders/fields/encode-message-party.ts
4480
4426
  const encodeMessageParty = Effect.fn(function* (party) {
4481
4427
  if (Predicate.isNullish(party)) return void 0;
@@ -4546,6 +4492,60 @@ const encodeDocumentReference = Effect.fn(function* (documentReference) {
4546
4492
  };
4547
4493
  });
4548
4494
  //#endregion
4495
+ //#region src/decoders/fields/encode-invoice-lines.ts
4496
+ const encodeInvoiceLines = Effect.fn(function* (invoiceLines) {
4497
+ if (invoiceLines.length === 0) return void 0;
4498
+ return yield* Effect.forEach(invoiceLines, encodeLineShared);
4499
+ });
4500
+ //#endregion
4501
+ //#region src/decoders/encode-invoice.ts
4502
+ const encodeInvoice = Effect.fn(function* (invoice) {
4503
+ return {
4504
+ "?xml": {
4505
+ "@version": "1.0",
4506
+ "@encoding": "UTF-8"
4507
+ },
4508
+ Invoice: {
4509
+ "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
4510
+ "@xmlns:cac": "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2",
4511
+ "@xmlns:cbc": "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2",
4512
+ "@xmlns": "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2",
4513
+ "cbc:CustomizationID": invoice.customizationId,
4514
+ "cbc:ProfileID": invoice.profileId,
4515
+ "cbc:ID": invoice.id,
4516
+ "cbc:IssueDate": invoice.issueDate,
4517
+ "cbc:DueDate": invoice.dueDate,
4518
+ "cbc:InvoiceTypeCode": invoice.invoiceTypeCode,
4519
+ "cbc:Note": invoice.note,
4520
+ "cbc:TaxPointDate": invoice.taxPointDate,
4521
+ "cbc:DocumentCurrencyCode": invoice.documentCurrencyCode,
4522
+ "cbc:TaxCurrencyCode": invoice.taxCurrencyCode,
4523
+ "cbc:AccountingCost": invoice.accountingCost,
4524
+ "cbc:BuyerReference": invoice.buyerReference,
4525
+ "cac:InvoicePeriod": yield* encodeInvoicePeriod(invoice.invoicePeriod),
4526
+ "cac:OrderReference": yield* encodeOrderReference(invoice.orderReference),
4527
+ "cac:BillingReference": yield* encodeBillingReferences(invoice.billingReferences),
4528
+ "cac:DespatchDocumentReference": yield* encodeSimpleIdentifier(invoice.despatchDocumentReference),
4529
+ "cac:ReceiptDocumentReference": yield* encodeSimpleIdentifier(invoice.receiptDocumentReference),
4530
+ "cac:OriginatorDocumentReference": yield* encodeSimpleIdentifier(invoice.originatorDocumentReference),
4531
+ "cac:ContractDocumentReference": yield* encodeSimpleIdentifier(invoice.contractDocumentReference),
4532
+ "cac:AdditionalDocumentReference": yield* encodeAdditionalDocumentReferences(invoice.additionalDocumentReferences),
4533
+ "cac:ProjectReference": yield* encodeSimpleIdentifier(invoice.projectReference),
4534
+ "cac:AccountingSupplierParty": yield* encodeParty(invoice.accountingSupplierParty),
4535
+ "cac:AccountingCustomerParty": yield* encodeParty(invoice.accountingCustomerParty),
4536
+ "cac:PayeeParty": yield* encodePayeeParty(invoice.payeeParty),
4537
+ "cac:TaxRepresentativeParty": yield* encodeTaxRepresentativeParty(invoice.taxRepresentativeParty),
4538
+ "cac:Delivery": yield* encodeDelivery(invoice.delivery),
4539
+ "cac:PaymentMeans": yield* encodePaymentMeans(invoice.paymentMeans),
4540
+ "cac:PaymentTerms": yield* encodePaymentTerms(invoice.paymentTerms),
4541
+ "cac:AllowanceCharge": yield* encodeAllowanceCharges(invoice.allowanceCharges),
4542
+ "cac:TaxTotal": yield* encodeTaxTotals(invoice.taxTotals),
4543
+ "cac:LegalMonetaryTotal": yield* encodeLegalMonetaryTotal(invoice.legalMonetaryTotal),
4544
+ "cac:InvoiceLine": yield* encodeInvoiceLines(invoice.invoiceLines)
4545
+ }
4546
+ };
4547
+ });
4548
+ //#endregion
4549
4549
  //#region src/decoders/encode-message-level-response.ts
4550
4550
  const encodeMessageLevelResponse = Effect.fn(function* (messageResponse) {
4551
4551
  return {