@endevops/peppol-schema 0.1.0-beta.4 → 0.1.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -6
- package/dist/constants.d.ts +51 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +48 -0
- package/dist/constants.js.map +1 -0
- package/dist/eas-codes.generated-D8jjHFij.js.map +1 -1
- package/dist/index-CiW698HY.d.ts +3507 -0
- package/dist/index-CiW698HY.d.ts.map +1 -0
- package/dist/index.d.ts +2 -2613
- package/dist/index.js +3122 -1563
- package/dist/index.js.map +1 -1
- package/dist/invoice-response-code-not-needs-schema-p_RKKNLc.js +18 -0
- package/dist/invoice-response-code-not-needs-schema-p_RKKNLc.js.map +1 -0
- package/dist/invoice-response-codes.d.ts +11 -0
- package/dist/invoice-response-codes.d.ts.map +1 -0
- package/dist/invoice-response-codes.js +32 -0
- package/dist/invoice-response-codes.js.map +1 -0
- package/dist/invoice-status-codes.generated-DL-agLdx.d.ts +24 -0
- package/dist/invoice-status-codes.generated-DL-agLdx.d.ts.map +1 -0
- package/dist/message-level-response-profile-id-DBpOW91B.js +9 -0
- package/dist/message-level-response-profile-id-DBpOW91B.js.map +1 -0
- package/dist/peppol-iso-date-string-BXLxzxdz.js +30 -0
- package/dist/peppol-iso-date-string-BXLxzxdz.js.map +1 -0
- package/dist/schematron.d.ts +408 -365
- package/dist/schematron.d.ts.map +1 -1
- package/dist/schematron.js +2040 -1547
- package/dist/schematron.js.map +1 -1
- package/dist/values.d.ts +95 -13218
- package/dist/values.d.ts.map +1 -1
- package/dist/values.js +1 -1
- package/dist/vat-dates.generated-CxFvt7m3.d.ts +68 -0
- package/dist/vat-dates.generated-CxFvt7m3.d.ts.map +1 -0
- package/dist/{vatex-codes.generated-BSgP3n5t.js → vatex-codes.generated-N7wsUrLh.js} +8 -9
- package/dist/vatex-codes.generated-N7wsUrLh.js.map +1 -0
- package/package.json +16 -18
- package/src/constants/transport-profile.ts +5 -1
- package/src/decoders/decode-billing.ts +1 -1
- package/src/decoders/decode-credit-note.ts +2 -4
- package/src/decoders/decode-invoice-response.ts +15 -37
- package/src/decoders/decode-invoice.ts +2 -4
- package/src/decoders/decode-message-level-response.ts +21 -48
- package/src/decoders/encode-credit-note.ts +1 -1
- package/src/decoders/encode-invoice-response.ts +7 -4
- package/src/decoders/encode-invoice.ts +1 -1
- package/src/decoders/encode-message-level-response.ts +4 -10
- package/src/decoders/fields/decode-additional-document-references.ts +1 -1
- package/src/decoders/fields/decode-address.ts +1 -1
- package/src/decoders/fields/decode-allowance-charges.ts +7 -15
- package/src/decoders/fields/decode-amount.ts +2 -2
- package/src/decoders/fields/decode-application-response.ts +21 -0
- package/src/decoders/fields/decode-billing-references.ts +1 -1
- package/src/decoders/fields/decode-contact.ts +1 -1
- package/src/decoders/fields/decode-credit-note-lines.ts +7 -15
- package/src/decoders/fields/decode-delivery.ts +1 -1
- package/src/decoders/fields/decode-electronic-address.ts +1 -1
- package/src/decoders/fields/decode-identifier.ts +1 -1
- package/src/decoders/fields/decode-invoice-line-period.ts +1 -1
- package/src/decoders/fields/decode-invoice-lines.ts +6 -14
- package/src/decoders/fields/decode-invoice-message-document-party.ts +2 -2
- package/src/decoders/fields/decode-invoice-message-party.ts +1 -6
- package/src/decoders/fields/decode-invoice-period.ts +7 -13
- package/src/decoders/fields/decode-legal-monetary-total.ts +1 -1
- package/src/decoders/fields/decode-line-allowance-charges.ts +7 -14
- package/src/decoders/fields/decode-line-price.ts +1 -7
- package/src/decoders/fields/decode-line-shared.ts +2 -4
- package/src/decoders/fields/decode-message-level-party.ts +1 -1
- package/src/decoders/fields/decode-node-list.ts +15 -0
- package/src/decoders/fields/decode-order-reference.ts +1 -1
- package/src/decoders/fields/decode-parties-tax-scheme.ts +1 -1
- package/src/decoders/fields/decode-party-legal-entity.ts +1 -1
- package/src/decoders/fields/decode-party-tax-scheme.ts +1 -1
- package/src/decoders/fields/decode-party.ts +3 -14
- package/src/decoders/fields/decode-payee-party.ts +1 -1
- package/src/decoders/fields/decode-payment-means.ts +2 -2
- package/src/decoders/fields/decode-payment-terms.ts +1 -1
- package/src/decoders/fields/decode-price-allowance-charge.ts +1 -7
- package/src/decoders/fields/decode-quantity.ts +1 -6
- package/src/decoders/fields/decode-simple-identifier.ts +1 -1
- package/src/decoders/fields/decode-tax-category.ts +1 -1
- package/src/decoders/fields/decode-tax-representative-party.ts +1 -1
- package/src/decoders/fields/decode-tax-totals.ts +2 -2
- package/src/decoders/fields/encode-additional-document-references.ts +3 -2
- package/src/decoders/fields/encode-address.ts +1 -1
- package/src/decoders/fields/encode-allowance-charges.ts +3 -2
- package/src/decoders/fields/encode-amount.ts +1 -1
- package/src/decoders/fields/encode-billing-references.ts +2 -2
- package/src/decoders/fields/encode-contact.ts +1 -1
- package/src/decoders/fields/encode-credit-note-lines.ts +2 -2
- package/src/decoders/fields/encode-delivery.ts +1 -1
- package/src/decoders/fields/encode-identifier.ts +1 -1
- package/src/decoders/fields/encode-invoice-line-period.ts +1 -1
- package/src/decoders/fields/encode-invoice-lines.ts +2 -2
- package/src/decoders/fields/encode-invoice-period.ts +1 -1
- package/src/decoders/fields/encode-legal-monetary-total.ts +1 -1
- package/src/decoders/fields/encode-line-allowance-charges.ts +2 -2
- package/src/decoders/fields/encode-line-price.ts +1 -1
- package/src/decoders/fields/encode-line-shared.ts +1 -1
- package/src/decoders/fields/encode-message-party.ts +26 -13
- package/src/decoders/fields/encode-order-reference.ts +1 -1
- package/src/decoders/fields/encode-parties-tax-scheme.ts +1 -1
- package/src/decoders/fields/encode-party-tax-scheme.ts +1 -1
- package/src/decoders/fields/encode-party.ts +1 -1
- package/src/decoders/fields/encode-payee-party.ts +1 -1
- package/src/decoders/fields/encode-payment-means.ts +2 -2
- package/src/decoders/fields/encode-payment-terms.ts +1 -1
- package/src/decoders/fields/encode-price-allowance-charges.ts +1 -1
- package/src/decoders/fields/encode-quantity.ts +1 -1
- package/src/decoders/fields/encode-tax-category.ts +1 -1
- package/src/decoders/fields/encode-tax-representative-party.ts +1 -1
- package/src/decoders/fields/encode-tax-totals.ts +4 -4
- package/src/helpers/bool.ts +9 -12
- package/src/helpers/get-prop.ts +2 -4
- package/src/helpers/str-or-und.ts +3 -4
- package/src/helpers/str.ts +12 -8
- package/src/index.ts +56 -6
- package/src/schemas/fields/peppol-additional-document-reference-schema.ts +123 -0
- package/src/schemas/fields/peppol-address-schema.ts +112 -0
- package/src/schemas/fields/peppol-allowance-charge-schema.ts +104 -0
- package/src/schemas/fields/peppol-amount-schema.ts +23 -0
- package/src/schemas/fields/peppol-base-line-schema.ts +141 -0
- package/src/{effect → schemas}/fields/peppol-billing-reference-schema.ts +25 -20
- package/src/schemas/fields/peppol-binary-object-schema.ts +52 -0
- package/src/schemas/fields/peppol-contact-schema.ts +20 -0
- package/src/schemas/fields/peppol-credit-note-line-schema.ts +44 -0
- package/src/schemas/fields/peppol-delivery-schema.ts +109 -0
- package/src/schemas/fields/peppol-identifier-schema.ts +21 -0
- package/src/schemas/fields/peppol-invoice-line-period-schema.ts +35 -0
- package/src/{effect → schemas}/fields/peppol-invoice-line-schema.ts +10 -10
- package/src/schemas/fields/peppol-invoice-period-schema.ts +31 -0
- package/src/schemas/fields/peppol-item-classification-schema.ts +46 -0
- package/src/schemas/fields/peppol-legal-monetary-total-schema.ts +127 -0
- package/src/schemas/fields/peppol-line-allowance-charge-schema.ts +68 -0
- package/src/schemas/fields/peppol-line-item-schema.ts +196 -0
- package/src/schemas/fields/peppol-line-price-allowance-charge-schema.ts +41 -0
- package/src/schemas/fields/peppol-line-price-schema.ts +32 -0
- package/src/schemas/fields/peppol-order-reference-schema.ts +38 -0
- package/src/schemas/fields/peppol-party-base-schema.ts +145 -0
- package/src/schemas/fields/peppol-party-legal-entity-schema.ts +32 -0
- package/src/schemas/fields/peppol-party-tax-scheme-schema.ts +41 -0
- package/src/schemas/fields/peppol-payee-party-schema.ts +119 -0
- package/src/schemas/fields/peppol-payment-means-schema.ts +224 -0
- package/src/schemas/fields/peppol-payment-terms-schema.ts +25 -0
- package/src/schemas/fields/peppol-quantity-schema.ts +22 -0
- package/src/schemas/fields/peppol-reference-schema.ts +9 -0
- package/src/schemas/fields/peppol-tax-category-schema.ts +47 -0
- package/src/schemas/fields/peppol-tax-representative-schema.ts +26 -0
- package/src/{effect → schemas}/fields/peppol-tax-subtotal-category-schema.ts +7 -6
- package/src/schemas/fields/peppol-tax-subtotal-schema.ts +33 -0
- package/src/schemas/fields/peppol-tax-totals-base-schema.ts +28 -0
- package/src/schemas/peppol-billing-base-schema.ts +366 -0
- package/src/schemas/peppol-credit-note-schema.ts +31 -0
- package/src/schemas/peppol-document-response-document-reference-schema.ts +41 -0
- package/src/schemas/peppol-document-response-document-schema.ts +38 -0
- package/src/schemas/peppol-document-response-line-response-content-schema.ts +49 -0
- package/src/schemas/peppol-document-response-line-response-schema.ts +40 -0
- package/src/schemas/peppol-document-schema.ts +120 -0
- package/src/{effect → schemas}/peppol-invoice-response-document-actual-response-schema.ts +25 -16
- package/src/schemas/peppol-invoice-response-document-actual-response-status-schema.ts +63 -0
- package/src/schemas/peppol-invoice-response-schema.ts +176 -0
- package/src/schemas/peppol-invoice-response-status-reason-code-schema.ts +40 -0
- package/src/schemas/peppol-invoice-schema.ts +45 -0
- package/src/schemas/peppol-iso-date-string.ts +20 -0
- package/src/schemas/peppol-message-level-response-document-response-schema.ts +35 -0
- package/src/schemas/peppol-message-level-response-party-schema.ts +20 -0
- package/src/schemas/peppol-message-level-response-schema.ts +98 -0
- package/src/schemas/utils/format-xsd-time.ts +80 -0
- package/src/{effect → schemas}/utils/index.ts +1 -1
- package/src/schemas/utils/is-valid-process.ts +1 -1
- package/src/schemas/utils/opaque.ts +19 -0
- package/src/{effect → schemas}/utils/peppol-vat-regex-schema.ts +0 -2
- package/src/schemas/utils/peppol-xsd-time-schema.ts +79 -0
- package/src/schemas/utils/quantity-unit-code-to-intl-unit.ts +2 -2
- package/src/schemas/values/credit-note-type-code-schema.ts +3 -5
- package/src/schemas/values/document-type-schemes-schema.ts +3 -5
- package/src/schemas/values/document-type-values-schema.ts +4 -7
- package/src/{effect → schemas}/values/duty-tax-fee-category-schema.ts +3 -3
- package/src/schemas/values/invoice-type-code-schema.ts +4 -8
- package/src/schemas/values/process-from-document-type-schema.ts +10 -12
- package/src/schemas/values/quantity-unit-codes-schema.ts +4 -8
- package/src/schematron/cen/ae/cen-en16931-br-ae-01.ts +6 -5
- package/src/schematron/cen/ae/cen-en16931-br-ae-02.ts +6 -5
- package/src/schematron/cen/ae/cen-en16931-br-ae-03.ts +6 -5
- package/src/schematron/cen/ae/cen-en16931-br-ae-04.ts +6 -5
- package/src/schematron/cen/ae/cen-en16931-br-ae-05.ts +6 -5
- package/src/schematron/cen/ae/cen-en16931-br-ae-06.ts +6 -5
- package/src/schematron/cen/ae/cen-en16931-br-ae-07.ts +6 -5
- package/src/schematron/cen/ae/cen-en16931-br-ae-08.ts +6 -5
- package/src/schematron/cen/ae/cen-en16931-br-ae-09.ts +6 -5
- package/src/schematron/cen/ae/cen-en16931-br-ae-10.ts +6 -5
- package/src/schematron/cen/af/cen-en16931-br-af-01.ts +6 -5
- package/src/schematron/cen/af/cen-en16931-br-af-02.ts +6 -5
- package/src/schematron/cen/af/cen-en16931-br-af-03.ts +6 -10
- package/src/schematron/cen/af/cen-en16931-br-af-04.ts +6 -5
- package/src/schematron/cen/af/cen-en16931-br-af-05.ts +6 -5
- package/src/schematron/cen/af/cen-en16931-br-af-06.ts +6 -5
- package/src/schematron/cen/af/cen-en16931-br-af-07.ts +6 -5
- package/src/schematron/cen/af/cen-en16931-br-af-08.ts +6 -5
- package/src/schematron/cen/af/cen-en16931-br-af-09.ts +6 -5
- package/src/schematron/cen/af/cen-en16931-br-af-10.ts +6 -5
- package/src/schematron/cen/ag/cen-en16931-br-ag-01.ts +6 -5
- package/src/schematron/cen/ag/cen-en16931-br-ag-02.ts +6 -5
- package/src/schematron/cen/ag/cen-en16931-br-ag-03.ts +6 -10
- package/src/schematron/cen/ag/cen-en16931-br-ag-04.ts +6 -5
- package/src/schematron/cen/ag/cen-en16931-br-ag-05.ts +6 -5
- package/src/schematron/cen/ag/cen-en16931-br-ag-06.ts +6 -5
- package/src/schematron/cen/ag/cen-en16931-br-ag-07.ts +6 -5
- package/src/schematron/cen/ag/cen-en16931-br-ag-08.ts +6 -5
- package/src/schematron/cen/ag/cen-en16931-br-ag-09.ts +6 -5
- package/src/schematron/cen/ag/cen-en16931-br-ag-10.ts +6 -5
- package/src/schematron/cen/b/cen-en16931-br-b-01.ts +6 -5
- package/src/schematron/cen/b/cen-en16931-br-b-02.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-01.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-02.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-03.ts +9 -6
- package/src/schematron/cen/cen-en16931-br-04.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-05.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-06.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-07.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-08.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-09.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-10.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-11.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-12.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-13.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-14.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-15.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-16.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-17.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-18.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-19.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-20.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-21.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-22.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-23.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-24.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-25.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-26.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-27.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-28.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-29.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-30.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-31.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-32.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-33.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-36.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-37.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-38.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-41.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-42.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-43.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-44.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-45.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-46.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-47.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-48.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-49.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-50.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-51.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-52.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-53.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-54.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-55.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-56.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-57.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-61.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-62.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-63.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-64.ts +6 -5
- package/src/schematron/cen/cen-en16931-br-65.ts +6 -5
- package/src/schematron/cen/cl/cen-en16931-br-cl-08.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-03.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-04.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-05.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-06.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-07.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-08.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-09.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-10.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-11.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-12.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-13.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-14.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-15.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-16.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-17.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-18.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-19.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-20.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-21.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-22.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-23.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-24.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-25.ts +6 -5
- package/src/schematron/cen/co/cen-en16931-br-co-26.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-01.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-02.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-05.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-06.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-09.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-10.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-11.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-12.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-13.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-14.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-15.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-16.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-17.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-18.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-19.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-20.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-23.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-24.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-25.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-27.ts +6 -5
- package/src/schematron/cen/dec/cen-en16931-br-dec-28.ts +6 -5
- package/src/schematron/cen/e/cen-en16931-br-e-01.ts +6 -5
- package/src/schematron/cen/e/cen-en16931-br-e-02.ts +6 -5
- package/src/schematron/cen/e/cen-en16931-br-e-03.ts +6 -10
- package/src/schematron/cen/e/cen-en16931-br-e-04.ts +6 -5
- package/src/schematron/cen/e/cen-en16931-br-e-05.ts +6 -5
- package/src/schematron/cen/e/cen-en16931-br-e-06.ts +6 -5
- package/src/schematron/cen/e/cen-en16931-br-e-07.ts +6 -5
- package/src/schematron/cen/e/cen-en16931-br-e-08.ts +6 -5
- package/src/schematron/cen/e/cen-en16931-br-e-09.ts +6 -5
- package/src/schematron/cen/e/cen-en16931-br-e-10.ts +6 -5
- package/src/schematron/cen/g/cen-en16931-br-g-01.ts +6 -5
- package/src/schematron/cen/g/cen-en16931-br-g-02.ts +6 -5
- package/src/schematron/cen/g/cen-en16931-br-g-03.ts +6 -5
- package/src/schematron/cen/g/cen-en16931-br-g-04.ts +6 -5
- package/src/schematron/cen/g/cen-en16931-br-g-05.ts +6 -5
- package/src/schematron/cen/g/cen-en16931-br-g-06.ts +6 -5
- package/src/schematron/cen/g/cen-en16931-br-g-07.ts +6 -5
- package/src/schematron/cen/g/cen-en16931-br-g-08.ts +6 -5
- package/src/schematron/cen/g/cen-en16931-br-g-09.ts +6 -5
- package/src/schematron/cen/g/cen-en16931-br-g-10.ts +6 -5
- package/src/schematron/cen/ic/cen-en16931-br-ic-01.ts +6 -5
- package/src/schematron/cen/ic/cen-en16931-br-ic-02.ts +6 -5
- package/src/schematron/cen/ic/cen-en16931-br-ic-03.ts +6 -5
- package/src/schematron/cen/ic/cen-en16931-br-ic-04.ts +6 -5
- package/src/schematron/cen/ic/cen-en16931-br-ic-05.ts +6 -5
- package/src/schematron/cen/ic/cen-en16931-br-ic-06.ts +6 -5
- package/src/schematron/cen/ic/cen-en16931-br-ic-07.ts +6 -5
- package/src/schematron/cen/ic/cen-en16931-br-ic-08.ts +6 -5
- package/src/schematron/cen/ic/cen-en16931-br-ic-09.ts +6 -5
- package/src/schematron/cen/ic/cen-en16931-br-ic-10.ts +6 -5
- package/src/schematron/cen/ic/cen-en16931-br-ic-11.ts +6 -5
- package/src/schematron/cen/ic/cen-en16931-br-ic-12.ts +6 -5
- package/src/schematron/cen/o/cen-en16931-br-o-01.ts +6 -5
- package/src/schematron/cen/o/cen-en16931-br-o-02.ts +6 -5
- package/src/schematron/cen/o/cen-en16931-br-o-03.ts +6 -5
- package/src/schematron/cen/o/cen-en16931-br-o-04.ts +6 -5
- package/src/schematron/cen/o/cen-en16931-br-o-05.ts +6 -5
- package/src/schematron/cen/o/cen-en16931-br-o-06.ts +6 -5
- package/src/schematron/cen/o/cen-en16931-br-o-07.ts +6 -5
- package/src/schematron/cen/o/cen-en16931-br-o-08.ts +6 -5
- package/src/schematron/cen/o/cen-en16931-br-o-09.ts +6 -5
- package/src/schematron/cen/o/cen-en16931-br-o-10.ts +6 -5
- package/src/schematron/cen/o/cen-en16931-br-o-11.ts +6 -5
- package/src/schematron/cen/o/cen-en16931-br-o-12.ts +6 -5
- package/src/schematron/cen/o/cen-en16931-br-o-13.ts +6 -5
- package/src/schematron/cen/o/cen-en16931-br-o-14.ts +6 -5
- package/src/schematron/cen/s/cen-en16931-br-s-01.ts +6 -5
- package/src/schematron/cen/s/cen-en16931-br-s-02.ts +6 -5
- package/src/schematron/cen/s/cen-en16931-br-s-03.ts +6 -10
- package/src/schematron/cen/s/cen-en16931-br-s-04.ts +6 -5
- package/src/schematron/cen/s/cen-en16931-br-s-05.ts +6 -5
- package/src/schematron/cen/s/cen-en16931-br-s-06.ts +6 -5
- package/src/schematron/cen/s/cen-en16931-br-s-07.ts +6 -5
- package/src/schematron/cen/s/cen-en16931-br-s-08.ts +6 -5
- package/src/schematron/cen/s/cen-en16931-br-s-09.ts +6 -5
- package/src/schematron/cen/s/cen-en16931-br-s-10.ts +6 -5
- package/src/schematron/cen/z/cen-en16931-br-z-01.ts +6 -5
- package/src/schematron/cen/z/cen-en16931-br-z-02.ts +6 -5
- package/src/schematron/cen/z/cen-en16931-br-z-03.ts +6 -10
- package/src/schematron/cen/z/cen-en16931-br-z-04.ts +6 -5
- package/src/schematron/cen/z/cen-en16931-br-z-05.ts +6 -5
- package/src/schematron/cen/z/cen-en16931-br-z-06.ts +6 -5
- package/src/schematron/cen/z/cen-en16931-br-z-07.ts +6 -5
- package/src/schematron/cen/z/cen-en16931-br-z-08.ts +6 -5
- package/src/schematron/cen/z/cen-en16931-br-z-09.ts +6 -5
- package/src/schematron/cen/z/cen-en16931-br-z-10.ts +6 -5
- package/src/schematron/de/de-r-001.ts +8 -7
- package/src/schematron/de/de-r-002.ts +8 -7
- package/src/schematron/de/de-r-003.ts +8 -7
- package/src/schematron/de/de-r-004.ts +8 -7
- package/src/schematron/de/de-r-005.ts +8 -7
- package/src/schematron/de/de-r-006.ts +8 -7
- package/src/schematron/de/de-r-007.ts +8 -7
- package/src/schematron/de/de-r-008.ts +8 -7
- package/src/schematron/de/de-r-009.ts +8 -7
- package/src/schematron/de/de-r-010.ts +9 -8
- package/src/schematron/de/de-r-011.ts +9 -8
- package/src/schematron/de/de-r-014.ts +8 -7
- package/src/schematron/de/de-r-015.ts +8 -7
- package/src/schematron/de/de-r-016.ts +9 -8
- package/src/schematron/de/de-r-017.ts +8 -7
- package/src/schematron/de/de-r-018.ts +10 -9
- package/src/schematron/de/de-r-019.ts +8 -7
- package/src/schematron/de/de-r-020.ts +8 -7
- package/src/schematron/de/de-r-022.ts +8 -7
- package/src/schematron/de/de-r-023-1.ts +8 -7
- package/src/schematron/de/de-r-023-2.ts +8 -7
- package/src/schematron/de/de-r-024-1.ts +8 -7
- package/src/schematron/de/de-r-024-2.ts +8 -7
- package/src/schematron/de/de-r-025-1.ts +8 -7
- package/src/schematron/de/de-r-025-2.ts +8 -7
- package/src/schematron/de/de-r-026.ts +9 -8
- package/src/schematron/de/de-r-027.ts +8 -7
- package/src/schematron/de/de-r-028.ts +8 -7
- package/src/schematron/de/de-r-030.ts +9 -8
- package/src/schematron/de/de-r-031.ts +8 -7
- package/src/schematron/dk/dk-r-002.ts +7 -6
- package/src/schematron/dk/dk-r-003.ts +8 -7
- package/src/schematron/dk/dk-r-004.ts +8 -7
- package/src/schematron/dk/dk-r-005.ts +8 -7
- package/src/schematron/dk/dk-r-006.ts +8 -7
- package/src/schematron/dk/dk-r-007.ts +8 -7
- package/src/schematron/dk/dk-r-008.ts +8 -7
- package/src/schematron/dk/dk-r-009.ts +8 -7
- package/src/schematron/dk/dk-r-010.ts +8 -7
- package/src/schematron/dk/dk-r-011.ts +8 -7
- package/src/schematron/dk/dk-r-013.ts +8 -7
- package/src/schematron/dk/dk-r-014.ts +7 -6
- package/src/schematron/dk/dk-r-016.ts +8 -7
- package/src/schematron/dk/dk-r-017.ts +8 -7
- package/src/schematron/errors.ts +17 -0
- package/src/schematron/gr/gr-r-001-1.ts +7 -6
- package/src/schematron/gr/gr-r-001-2.ts +8 -7
- package/src/schematron/gr/gr-r-001-3.ts +14 -9
- package/src/schematron/gr/gr-r-001-4.ts +8 -7
- package/src/schematron/gr/gr-r-001-5.ts +8 -7
- package/src/schematron/gr/gr-r-001-6.ts +7 -6
- package/src/schematron/gr/gr-r-001-7.ts +7 -6
- package/src/schematron/gr/gr-r-002.ts +7 -6
- package/src/schematron/gr/gr-r-003.ts +8 -7
- package/src/schematron/gr/gr-r-004-1.ts +7 -6
- package/src/schematron/gr/gr-r-004-2.ts +7 -6
- package/src/schematron/gr/gr-r-005.ts +7 -6
- package/src/schematron/gr/gr-r-006.ts +12 -11
- package/src/schematron/gr/gr-r-008-2.ts +7 -6
- package/src/schematron/gr/gr-r-008-3.ts +7 -6
- package/src/schematron/gr/gr-r-009.ts +7 -6
- package/src/schematron/gr/gr-r-010.ts +7 -6
- package/src/schematron/gr/gr-s-008-1.ts +7 -6
- package/src/schematron/gr/gr-s-011.ts +8 -7
- package/src/schematron/helpers.ts +46 -23
- package/src/schematron/index.ts +6 -1
- package/src/schematron/is/is-r-001.ts +7 -6
- package/src/schematron/is/is-r-002.ts +7 -6
- package/src/schematron/is/is-r-003.ts +7 -6
- package/src/schematron/is/is-r-004.ts +7 -6
- package/src/schematron/is/is-r-005.ts +7 -6
- package/src/schematron/is/is-r-006.ts +8 -7
- package/src/schematron/is/is-r-007.ts +8 -7
- package/src/schematron/is/is-r-008.ts +8 -7
- package/src/schematron/is/is-r-009.ts +8 -7
- package/src/schematron/is/is-r-010.ts +9 -8
- package/src/schematron/it/it-r-001.ts +7 -6
- package/src/schematron/it/it-r-002.ts +7 -6
- package/src/schematron/it/it-r-003.ts +7 -6
- package/src/schematron/it/it-r-004.ts +7 -6
- package/src/schematron/nl/nl-r-001.ts +7 -6
- package/src/schematron/nl/nl-r-002.ts +7 -6
- package/src/schematron/nl/nl-r-003.ts +8 -7
- package/src/schematron/nl/nl-r-004.ts +7 -6
- package/src/schematron/nl/nl-r-005.ts +8 -7
- package/src/schematron/nl/nl-r-006.ts +8 -7
- package/src/schematron/nl/nl-r-007.ts +8 -7
- package/src/schematron/nl/nl-r-008.ts +7 -6
- package/src/schematron/nl/nl-r-009.ts +8 -7
- package/src/schematron/no/no-r-001.ts +8 -7
- package/src/schematron/no/no-r-002.ts +7 -6
- package/src/schematron/peppol/cl/peppol-en16931-cl001.ts +6 -5
- package/src/schematron/peppol/cl/peppol-en16931-cl002.ts +6 -5
- package/src/schematron/peppol/cl/peppol-en16931-cl003.ts +6 -5
- package/src/schematron/peppol/cl/peppol-en16931-cl006.ts +7 -6
- package/src/schematron/peppol/cl/peppol-en16931-cl007.ts +27 -26
- package/src/schematron/peppol/cl/peppol-en16931-cl008.ts +6 -5
- package/src/schematron/peppol/common/peppol-common-r040.ts +6 -5
- package/src/schematron/peppol/common/peppol-common-r041.ts +6 -5
- package/src/schematron/peppol/common/peppol-common-r042.ts +6 -5
- package/src/schematron/peppol/common/peppol-common-r043.ts +6 -5
- package/src/schematron/peppol/common/peppol-common-r044.ts +6 -5
- package/src/schematron/peppol/common/peppol-common-r045.ts +6 -5
- package/src/schematron/peppol/common/peppol-common-r046.ts +6 -5
- package/src/schematron/peppol/common/peppol-common-r047.ts +6 -5
- package/src/schematron/peppol/common/peppol-common-r049.ts +6 -5
- package/src/schematron/peppol/common/peppol-common-r050.ts +6 -5
- package/src/schematron/peppol/common/peppol-common-r052.ts +6 -5
- package/src/schematron/peppol/common/peppol-common-r053.ts +6 -5
- package/src/schematron/peppol/f/peppol-en16931-f001.ts +27 -14
- package/src/schematron/peppol/p/peppol-en16931-p0100.ts +8 -7
- package/src/schematron/peppol/p/peppol-en16931-p0101.ts +8 -7
- package/src/schematron/peppol/p/peppol-en16931-p0104.ts +6 -5
- package/src/schematron/peppol/p/peppol-en16931-p0105.ts +6 -5
- package/src/schematron/peppol/p/peppol-en16931-p0106.ts +6 -5
- package/src/schematron/peppol/p/peppol-en16931-p0107.ts +6 -5
- package/src/schematron/peppol/p/peppol-en16931-p0108.ts +6 -5
- package/src/schematron/peppol/p/peppol-en16931-p0109.ts +6 -5
- package/src/schematron/peppol/p/peppol-en16931-p0110.ts +6 -5
- package/src/schematron/peppol/p/peppol-en16931-p0111.ts +6 -5
- package/src/schematron/peppol/p/peppol-en16931-p0112.ts +7 -6
- package/src/schematron/peppol/r/peppol-en16931-r001.ts +11 -13
- package/src/schematron/peppol/r/peppol-en16931-r002.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r003.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r004.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r005.ts +7 -6
- package/src/schematron/peppol/r/peppol-en16931-r007.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r008.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r010.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r020.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r040.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r041.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r042.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r043.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r044.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r046.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r051.ts +48 -27
- package/src/schematron/peppol/r/peppol-en16931-r053.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r054.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r055.ts +8 -7
- package/src/schematron/peppol/r/peppol-en16931-r061.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r100.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r101.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r110.ts +7 -6
- package/src/schematron/peppol/r/peppol-en16931-r111.ts +7 -6
- package/src/schematron/peppol/r/peppol-en16931-r120.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r121.ts +6 -5
- package/src/schematron/peppol/r/peppol-en16931-r130.ts +6 -5
- package/src/schematron/run-all-rules.ts +2 -7
- package/src/schematron/schematron.ts +36 -0
- package/src/schematron/se/se-r-001.ts +7 -6
- package/src/schematron/se/se-r-002.ts +7 -6
- package/src/schematron/se/se-r-003.ts +7 -6
- package/src/schematron/se/se-r-004.ts +7 -6
- package/src/schematron/se/se-r-005.ts +8 -7
- package/src/schematron/se/se-r-006.ts +7 -6
- package/src/schematron/se/se-r-007.ts +7 -6
- package/src/schematron/se/se-r-008.ts +7 -6
- package/src/schematron/se/se-r-009.ts +7 -6
- package/src/schematron/se/se-r-010.ts +7 -6
- package/src/schematron/se/se-r-011.ts +7 -6
- package/src/schematron/se/se-r-012.ts +7 -6
- package/src/schematron/se/se-r-013.ts +7 -6
- package/src/values/additional-document-reference-codes.generated.ts +2 -3
- package/src/values/allowance-charge-reason-codes.generated.ts +1 -1
- package/src/values/application-response-type-codes.generated.ts +1 -1
- package/src/values/charge-reason-codes.generated.ts +1 -1
- package/src/values/country-code.generated.ts +1 -1
- package/src/values/credit-notes-type-codes.generated.ts +1 -1
- package/src/values/currency-code.generated.ts +1 -1
- package/src/values/document-type-codes.generated.ts +1 -1
- package/src/values/document-type.generated.ts +2 -2
- package/src/values/duty-tax-fee-categories.generated.ts +1 -1
- package/src/values/eas-codes.generated.ts +1 -1
- package/src/values/icd-codes.generated.ts +7 -7
- package/src/values/invoice-status-codes.generated.ts +1 -1
- package/src/values/invoice-type-codes.generated.ts +1 -1
- package/src/values/item-classification-code.generated.ts +1 -1
- package/src/values/mime-codes.generated.ts +1 -1
- package/src/values/op-status-action.generated.ts +1 -1
- package/src/values/op-status-reason.generated.ts +1 -1
- package/src/values/participant-identifier-schemes.generated.ts +2 -2
- package/src/values/payment-means-codes.generated.ts +1 -1
- package/src/values/processes.generated.ts +1 -1
- package/src/values/quantity-unit-codes.generated.ts +1 -1
- package/src/values/vat-dates.generated.ts +1 -1
- package/src/values/vatex-codes.generated.ts +1 -1
- package/dist/all-union-fields-CxoyKBpI.d.ts +0 -445
- package/dist/all-union-fields-CxoyKBpI.d.ts.map +0 -1
- package/dist/document-DCcObB-a.d.ts +0 -1466
- package/dist/document-DCcObB-a.d.ts.map +0 -1
- package/dist/effect.d.ts +0 -6291
- package/dist/effect.d.ts.map +0 -1
- package/dist/effect.js +0 -3240
- package/dist/effect.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/is-valid-process-CSWL-q9f.js +0 -1590
- package/dist/is-valid-process-CSWL-q9f.js.map +0 -1
- package/dist/quantity-unit-code-to-intl-unit-15EykjMe.d.ts +0 -168
- package/dist/quantity-unit-code-to-intl-unit-15EykjMe.d.ts.map +0 -1
- package/dist/vat-dates.generated-DTVWQAdn.d.ts +0 -4812
- package/dist/vat-dates.generated-DTVWQAdn.d.ts.map +0 -1
- package/dist/vatex-codes.generated-BSgP3n5t.js.map +0 -1
- package/src/decoders/errors.ts +0 -11
- package/src/document-parser.ts +0 -70
- package/src/document.ts +0 -19
- package/src/effect/fields/default-customization-id.ts +0 -1
- package/src/effect/fields/default-profile-id.ts +0 -1
- package/src/effect/fields/peppol-additional-document-reference-schema.ts +0 -114
- package/src/effect/fields/peppol-address-schema.ts +0 -105
- package/src/effect/fields/peppol-allowance-charge-schema.ts +0 -95
- package/src/effect/fields/peppol-amount-schema.ts +0 -22
- package/src/effect/fields/peppol-base-line-schema.ts +0 -138
- package/src/effect/fields/peppol-binary-object-schema.ts +0 -51
- package/src/effect/fields/peppol-contact-schema.ts +0 -18
- package/src/effect/fields/peppol-credit-note-line-schema.ts +0 -42
- package/src/effect/fields/peppol-delivery-schema.ts +0 -100
- package/src/effect/fields/peppol-identifier-schema.ts +0 -19
- package/src/effect/fields/peppol-invoice-line-period-schema.ts +0 -34
- package/src/effect/fields/peppol-invoice-period-schema.ts +0 -30
- package/src/effect/fields/peppol-item-classification-schema.ts +0 -45
- package/src/effect/fields/peppol-legal-monetary-total-schema.ts +0 -126
- package/src/effect/fields/peppol-line-allowance-charge-schema.ts +0 -64
- package/src/effect/fields/peppol-line-item-schema.ts +0 -185
- package/src/effect/fields/peppol-line-price-allowance-charge-schema.ts +0 -38
- package/src/effect/fields/peppol-line-price-schema.ts +0 -31
- package/src/effect/fields/peppol-order-reference-schema.ts +0 -36
- package/src/effect/fields/peppol-party-base-schema.ts +0 -138
- package/src/effect/fields/peppol-party-legal-entity-schema.ts +0 -29
- package/src/effect/fields/peppol-party-tax-scheme-schema.ts +0 -33
- package/src/effect/fields/peppol-payee-party-schema.ts +0 -112
- package/src/effect/fields/peppol-payment-means-schema.ts +0 -210
- package/src/effect/fields/peppol-payment-terms-schema.ts +0 -23
- package/src/effect/fields/peppol-quantity-schema.ts +0 -21
- package/src/effect/fields/peppol-reference-schema.ts +0 -5
- package/src/effect/fields/peppol-tax-category-schema.ts +0 -42
- package/src/effect/fields/peppol-tax-representative-schema.ts +0 -23
- package/src/effect/fields/peppol-tax-subtotal-schema.ts +0 -32
- package/src/effect/fields/peppol-tax-totals-base-schema.ts +0 -25
- package/src/effect/index.ts +0 -56
- package/src/effect/peppol-billing-base-schema.ts +0 -355
- package/src/effect/peppol-credit-note-schema.ts +0 -30
- package/src/effect/peppol-document-response-document-reference-schema.ts +0 -38
- package/src/effect/peppol-document-response-document-schema.ts +0 -35
- package/src/effect/peppol-document-response-line-response-content-schema.ts +0 -44
- package/src/effect/peppol-document-response-line-response-schema.ts +0 -33
- package/src/effect/peppol-document-schema.ts +0 -142
- package/src/effect/peppol-invoice-response-document-actual-response-status-schema.ts +0 -60
- package/src/effect/peppol-invoice-response-schema.ts +0 -168
- package/src/effect/peppol-invoice-response-status-reason-code-schema.ts +0 -31
- package/src/effect/peppol-invoice-schema.ts +0 -42
- package/src/effect/peppol-iso-date-string-schema.ts +0 -19
- package/src/effect/peppol-message-level-response-document-response-schema.ts +0 -33
- package/src/effect/peppol-message-level-response-party-schema.ts +0 -19
- package/src/effect/peppol-message-level-response-schema.ts +0 -97
- package/src/effect/utils/format-quantity-with-unit.ts +0 -1
- package/src/effect/utils/get-credit-note-type-code-description.ts +0 -1
- package/src/effect/utils/get-invoice-type-code-description.ts +0 -1
- package/src/effect/utils/is-valid-credit-note-type-code.ts +0 -1
- package/src/effect/utils/is-valid-invoice-type-code.ts +0 -1
- package/src/effect/utils/is-valid-process.ts +0 -1
- package/src/effect/utils/peppol-xsd-time-schema.ts +0 -13
- package/src/effect/utils/quantity-unit-code-to-intl-unit.ts +0 -2
- package/src/effect/values/credit-note-type-code-schema.ts +0 -23
- package/src/effect/values/document-type-schemes-schema.ts +0 -14
- package/src/effect/values/document-type-values-schema.ts +0 -16
- package/src/effect/values/invoice-type-code-schema.ts +0 -21
- package/src/effect/values/process-from-document-type-schema.ts +0 -26
- package/src/effect/values/quantity-unit-codes-schema.ts +0 -24
- package/src/helpers/errors.ts +0 -6
- package/src/helpers/is-defined.ts +0 -3
- package/src/schemas/billing-base.ts +0 -362
- package/src/schemas/credit-note.ts +0 -28
- package/src/schemas/document-response-document-reference-schema.ts +0 -37
- package/src/schemas/document-response-document-schema.ts +0 -34
- package/src/schemas/document-response-line-response-content.ts +0 -43
- package/src/schemas/document-response-line-response-schema.ts +0 -33
- package/src/schemas/fields/additional-document-reference-schema.ts +0 -112
- package/src/schemas/fields/address-schema.ts +0 -105
- package/src/schemas/fields/allowance-charge-schema.ts +0 -86
- package/src/schemas/fields/amount-schema.ts +0 -21
- package/src/schemas/fields/base-line-schema.ts +0 -136
- package/src/schemas/fields/billing-references-schema.ts +0 -44
- package/src/schemas/fields/binary-object-schema.ts +0 -45
- package/src/schemas/fields/contact-schema.ts +0 -18
- package/src/schemas/fields/credit-note-line-schema.ts +0 -37
- package/src/schemas/fields/date-only-fn.ts +0 -6
- package/src/schemas/fields/date-only-parser.ts +0 -20
- package/src/schemas/fields/delivery-schema.ts +0 -95
- package/src/schemas/fields/identifier-schema.ts +0 -24
- package/src/schemas/fields/invoice-line-period-schema.ts +0 -31
- package/src/schemas/fields/invoice-line-schema.ts +0 -41
- package/src/schemas/fields/invoice-period-schema.ts +0 -27
- package/src/schemas/fields/legal-monetary-total-schema.ts +0 -125
- package/src/schemas/fields/line-allowance-charge-schema.ts +0 -59
- package/src/schemas/fields/line-item-schema.ts +0 -183
- package/src/schemas/fields/line-price-allowance-charge-schema.ts +0 -33
- package/src/schemas/fields/list-identifier-schema.ts +0 -43
- package/src/schemas/fields/order-reference-schema.ts +0 -36
- package/src/schemas/fields/party-base-schema.ts +0 -131
- package/src/schemas/fields/party-legal-entity-schema.ts +0 -29
- package/src/schemas/fields/party-tax-schema.ts +0 -33
- package/src/schemas/fields/payee-party.ts +0 -107
- package/src/schemas/fields/payment-means-schema.ts +0 -209
- package/src/schemas/fields/payment-terms-schema.ts +0 -23
- package/src/schemas/fields/price-schema.ts +0 -31
- package/src/schemas/fields/quantity-schema.ts +0 -21
- package/src/schemas/fields/reference-schema.ts +0 -4
- package/src/schemas/fields/tax-category-schema.ts +0 -41
- package/src/schemas/fields/tax-representative-party-schema.ts +0 -23
- package/src/schemas/fields/tax-subtotal-category-schema.ts +0 -26
- package/src/schemas/fields/tax-subtotal-schema.ts +0 -32
- package/src/schemas/fields/tax-totals.ts +0 -25
- package/src/schemas/fields/time-only.ts +0 -23
- package/src/schemas/invoice-response-document-actual-response-status.ts +0 -58
- package/src/schemas/invoice-response-document-actual-response.ts +0 -73
- package/src/schemas/invoice-response-schema.ts +0 -155
- package/src/schemas/invoice-response-status-reason-code.ts +0 -30
- package/src/schemas/invoice.ts +0 -43
- package/src/schemas/message-level-response-document-response-schema.ts +0 -33
- package/src/schemas/message-level-response-party-schema.ts +0 -18
- package/src/schemas/message-level-response-schema.ts +0 -96
- package/src/schemas/utils/base-64.ts +0 -34
- package/src/schemas/utils/vat-regex.ts +0 -51
- package/src/schemas/utils/xsd-time.ts +0 -9
- package/src/schemas/values/additional-document-reference-code.ts +0 -27
- package/src/schemas/values/allowance-charge-reason-code.ts +0 -29
- package/src/schemas/values/application-response-type-codes.ts +0 -25
- package/src/schemas/values/charge-reason-code.ts +0 -29
- package/src/schemas/values/country-code.ts +0 -36
- package/src/schemas/values/currency-codes.ts +0 -35
- package/src/schemas/values/document-type-codes.ts +0 -25
- package/src/schemas/values/document-type-schema.ts +0 -49
- package/src/schemas/values/duty-tax-fee-cateogries.ts +0 -28
- package/src/schemas/values/eas-codes.ts +0 -35
- package/src/schemas/values/icd-codes.ts +0 -28
- package/src/schemas/values/invoice-status-codes.ts +0 -25
- package/src/schemas/values/item-classification-code-schema.ts +0 -28
- package/src/schemas/values/mime-code.ts +0 -28
- package/src/schemas/values/op-status-action.ts +0 -25
- package/src/schemas/values/op-status-reason.ts +0 -25
- package/src/schemas/values/participant-identifier-code.ts +0 -25
- package/src/schemas/values/payment-means-codes-schema.ts +0 -36
- package/src/schemas/values/process-schema.ts +0 -41
- package/src/schemas/values/process-xml-identifier-schema.ts +0 -27
- package/src/schemas/values/vat-date-code.ts +0 -15
- package/src/schemas/values/vatex-code.ts +0 -28
- package/src/schemas.ts +0 -97
- /package/src/{effect → schemas}/utils/peppol-base-64-schema.ts +0 -0
- /package/src/{effect → schemas}/values/additional-document-reference-code-schema.ts +0 -0
- /package/src/{effect → schemas}/values/allowance-charge-reason-code-schema.ts +0 -0
- /package/src/{effect → schemas}/values/application-response-type-code-schema.ts +0 -0
- /package/src/{effect → schemas}/values/charge-reason-code-schema.ts +0 -0
- /package/src/{effect → schemas}/values/currency-code-schema.ts +0 -0
- /package/src/{effect → schemas}/values/electronic-codes-schema.ts +0 -0
- /package/src/{effect → schemas}/values/icd-codes-schema.ts +0 -0
- /package/src/{effect → schemas}/values/index.ts +0 -0
- /package/src/{effect → schemas}/values/invoice-status-code-schema.ts +0 -0
- /package/src/{effect → schemas}/values/item-classification-codes-schema.ts +0 -0
- /package/src/{effect → schemas}/values/mime-codes-schema.ts +0 -0
- /package/src/{effect → schemas}/values/op-status-action-schema.ts +0 -0
- /package/src/{effect → schemas}/values/op-status-reason-schema.ts +0 -0
- /package/src/{effect → schemas}/values/participant-identifier-code-schema.ts +0 -0
- /package/src/{effect → schemas}/values/payment-means-code-schema.ts +0 -0
- /package/src/{effect → schemas}/values/peppol-country-code-schema.ts +0 -0
- /package/src/{effect → schemas}/values/peppol-document-type-code-schema.ts +0 -0
- /package/src/{effect → schemas}/values/peppol-document-type-schema.ts +0 -0
- /package/src/{effect → schemas}/values/peppol-process-schema.ts +0 -0
- /package/src/{effect → schemas}/values/vat-date-code-schema.ts +0 -0
- /package/src/{effect → schemas}/values/vatex-code-schema.ts +0 -0
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import type { SchemaAST } from 'effect';
|
|
2
|
-
import type { AllUnionFields } from 'type-fest';
|
|
3
|
-
|
|
4
|
-
import { Effect, Predicate, Schema, SchemaGetter, SchemaIssue } from 'effect';
|
|
5
|
-
import XMLBuilder from 'fast-xml-builder';
|
|
6
|
-
import { XMLParser } from 'fast-xml-parser';
|
|
7
|
-
|
|
8
|
-
import type { PeppolCreditNoteLine } from '#/effect/fields/peppol-credit-note-line-schema';
|
|
9
|
-
import type { PeppolInvoiceLine } from '#/effect/fields/peppol-invoice-line-schema';
|
|
10
|
-
import type { PeppolCreditNote } from '#/effect/peppol-credit-note-schema';
|
|
11
|
-
import type { PeppolInvoice } from '#/effect/peppol-invoice-schema';
|
|
12
|
-
import type { XmlNode } from '#/helpers/get-prop';
|
|
13
|
-
import type { PeppolCreditNote as ZodPeppolCreditNote } from '#/schemas/credit-note';
|
|
14
|
-
import type { PeppolInvoice as ZodPeppolInvoice } from '#/schemas/invoice';
|
|
15
|
-
import type { PeppolInvoiceResponse as ZodPeppolInvoiceResponse } from '#/schemas/invoice-response-schema';
|
|
16
|
-
import type { PeppolMessageLevelResponse as ZodPeppolMessageLevelResponse } from '#/schemas/message-level-response-schema';
|
|
17
|
-
|
|
18
|
-
import { INVOICE_RESPONSE_PROFILE_ID } from '#/constants/invoice-response-profile-id';
|
|
19
|
-
import { MESSAGE_LEVEL_RESPONSE_PROFILE_ID } from '#/constants/message-level-response-profile-id';
|
|
20
|
-
import { decodeCreditNote } from '#/decoders/decode-credit-note';
|
|
21
|
-
import { decodeInvoice } from '#/decoders/decode-invoice';
|
|
22
|
-
import { decodeInvoiceResponse } from '#/decoders/decode-invoice-response';
|
|
23
|
-
import { decodeMessageLevelResponse } from '#/decoders/decode-message-level-response';
|
|
24
|
-
import { encodeCreditNote } from '#/decoders/encode-credit-note';
|
|
25
|
-
import { encodeInvoice } from '#/decoders/encode-invoice';
|
|
26
|
-
import { encodeInvoiceResponse } from '#/decoders/encode-invoice-response';
|
|
27
|
-
import { encodeMessageLevelResponse } from '#/decoders/encode-message-level-response';
|
|
28
|
-
import { peppolCreditNoteSchema } from '#/effect/peppol-credit-note-schema';
|
|
29
|
-
import { peppolInvoiceResponseSchema } from '#/effect/peppol-invoice-response-schema';
|
|
30
|
-
import { peppolInvoiceSchema } from '#/effect/peppol-invoice-schema';
|
|
31
|
-
import { peppolMessageLevelResponseSchema } from '#/effect/peppol-message-level-response-schema';
|
|
32
|
-
import { strOrUnd } from '#/helpers/str-or-und';
|
|
33
|
-
import { builderOptions } from '#/xml/builder-options';
|
|
34
|
-
import { parserOptions } from '#/xml/parser-options';
|
|
35
|
-
|
|
36
|
-
export class PeppolInvalidDocumentType extends Schema.TaggedError<PeppolInvalidDocumentType>()('PeppolInvalidDocumentType', {
|
|
37
|
-
message: Schema.String,
|
|
38
|
-
rootNodes: Schema.Array(Schema.String),
|
|
39
|
-
}) {}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* @description Object representation of a PEPPOL document, before the member schemas normalise it (dates stay strings, enums stay loose). This is the shape
|
|
43
|
-
* produced by the legacy `#/decoders/*` functions and consumed by their `#/decoders/encode-*` counterparts.
|
|
44
|
-
*/
|
|
45
|
-
const peppolDocumentObjectSchema = Schema.Union([
|
|
46
|
-
peppolInvoiceSchema,
|
|
47
|
-
peppolCreditNoteSchema,
|
|
48
|
-
peppolMessageLevelResponseSchema,
|
|
49
|
-
peppolInvoiceResponseSchema,
|
|
50
|
-
]);
|
|
51
|
-
|
|
52
|
-
type PeppolDocumentObject = typeof peppolDocumentObjectSchema.Encoded;
|
|
53
|
-
|
|
54
|
-
const parseXml = (value: string): XmlNode => new XMLParser({ ...parserOptions, removeNSPrefix: true }).parse(value);
|
|
55
|
-
|
|
56
|
-
const toInvalidValue = (error: { readonly message: string }, input: unknown, options: SchemaAST.ParseOptions) =>
|
|
57
|
-
new SchemaIssue.InvalidValue({ message: error.message }, input, options);
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* @description XML string -> loose document object. Dispatches on the root element; `ApplicationResponse` is further split by its `cbc:ProfileID`.
|
|
61
|
-
*/
|
|
62
|
-
const decodeDocumentXml = Effect.fn(function* (value: string) {
|
|
63
|
-
const parsed = parseXml(value);
|
|
64
|
-
|
|
65
|
-
if (Predicate.isNotNullish(parsed.Invoice)) {
|
|
66
|
-
return yield* decodeInvoice(parsed);
|
|
67
|
-
}
|
|
68
|
-
if (Predicate.isNotNullish(parsed.CreditNote)) {
|
|
69
|
-
return yield* decodeCreditNote(parsed);
|
|
70
|
-
}
|
|
71
|
-
if (Predicate.isNotNullish(parsed.ApplicationResponse)) {
|
|
72
|
-
const profileId = yield* strOrUnd(parsed.ApplicationResponse, 'cbc:ProfileID');
|
|
73
|
-
if (profileId === MESSAGE_LEVEL_RESPONSE_PROFILE_ID) {
|
|
74
|
-
return yield* decodeMessageLevelResponse(parsed);
|
|
75
|
-
}
|
|
76
|
-
if (profileId === INVOICE_RESPONSE_PROFILE_ID) {
|
|
77
|
-
return yield* decodeInvoiceResponse(parsed);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
const rootNodes = Object.keys(parsed);
|
|
82
|
-
return yield* new PeppolInvalidDocumentType({ message: `Unsupported document type: ${rootNodes.join(',')}`, rootNodes });
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* @description Loose document object -> XML string. Mirrors {@link decodeDocumentXml} by dispatching on the decoded discriminant.
|
|
87
|
-
*/
|
|
88
|
-
const encodeDocumentXml = Effect.fn(function* (document: PeppolDocumentObject) {
|
|
89
|
-
let content: unknown;
|
|
90
|
-
|
|
91
|
-
if (Predicate.hasProperty(document, 'invoiceLines')) {
|
|
92
|
-
content = yield* encodeInvoice(document as unknown as ZodPeppolInvoice);
|
|
93
|
-
} else if (Predicate.hasProperty(document, 'creditNoteLines')) {
|
|
94
|
-
content = yield* encodeCreditNote(document as unknown as ZodPeppolCreditNote);
|
|
95
|
-
} else if (Predicate.hasProperty(document, 'documentResponse')) {
|
|
96
|
-
if (document.profileId === MESSAGE_LEVEL_RESPONSE_PROFILE_ID) {
|
|
97
|
-
content = yield* encodeMessageLevelResponse(document as unknown as ZodPeppolMessageLevelResponse);
|
|
98
|
-
} else if (document.profileId === INVOICE_RESPONSE_PROFILE_ID) {
|
|
99
|
-
content = yield* encodeInvoiceResponse(document as unknown as ZodPeppolInvoiceResponse);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
if (Predicate.isNullish(content)) {
|
|
104
|
-
const rootNodes = Object.keys(document);
|
|
105
|
-
return yield* new PeppolInvalidDocumentType({ message: `Unsupported document type: ${rootNodes.join(',')}`, rootNodes });
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
return new XMLBuilder(builderOptions).build(content) as string;
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* @description Union of every supported PEPPOL business document (Effect port of the `z.xor` side of `documentParser`). Members discriminate cleanly: invoice vs
|
|
113
|
-
* credit note via `invoiceLines`/`creditNoteLines`, message-level vs invoice response via the `profileId` literal.
|
|
114
|
-
*/
|
|
115
|
-
export const peppolDocumentSchema = peppolDocumentObjectSchema.pipe(
|
|
116
|
-
Schema.encodeTo(Schema.String, {
|
|
117
|
-
encode: SchemaGetter.transformEffect((document, options) =>
|
|
118
|
-
encodeDocumentXml(document).pipe(Effect.mapError(error => toInvalidValue(error, document, options)))
|
|
119
|
-
),
|
|
120
|
-
decode: SchemaGetter.transformEffect((value, options) =>
|
|
121
|
-
decodeDocumentXml(value).pipe(
|
|
122
|
-
// The legacy decoders emit loose values (e.g. `descriptionCode: string`); the union member below validates and narrows them.
|
|
123
|
-
Effect.map(document => document as PeppolDocumentObject),
|
|
124
|
-
Effect.mapError(error => toInvalidValue(error, value, options))
|
|
125
|
-
)
|
|
126
|
-
),
|
|
127
|
-
})
|
|
128
|
-
);
|
|
129
|
-
|
|
130
|
-
export type PeppolDocumentEncoded = Schema.Codec.Encoded<typeof peppolDocumentSchema>;
|
|
131
|
-
export interface PeppolDocumentDecoded extends AllUnionFields<Schema.Schema.Type<typeof peppolDocumentSchema>> {}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* @description This defines the types of documents that are sent/received through the peppol network.
|
|
135
|
-
*/
|
|
136
|
-
export interface PeppolDocument extends AllUnionFields<PeppolInvoice | PeppolCreditNote> {}
|
|
137
|
-
/**
|
|
138
|
-
* @description This defines the types of message that are sent/received through the peppol network.
|
|
139
|
-
*/
|
|
140
|
-
export interface PeppolMessage extends AllUnionFields<typeof peppolMessageLevelResponseSchema.Type | typeof peppolInvoiceResponseSchema.Type> {}
|
|
141
|
-
export interface PeppolAllDocuments extends AllUnionFields<PeppolDocument | PeppolMessage> {}
|
|
142
|
-
export interface PeppolDocumentLine extends AllUnionFields<PeppolInvoiceLine | PeppolCreditNoteLine> {}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { Schema } from 'effect';
|
|
2
|
-
|
|
3
|
-
import { peppolInvoiceResponseStatusReasonCodeSchema } from '#/effect/peppol-invoice-response-status-reason-code-schema';
|
|
4
|
-
|
|
5
|
-
const invoiceResponseCondition = Schema.Struct({
|
|
6
|
-
/**
|
|
7
|
-
* @description A code defining the type of the detail.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* `BT-75`;
|
|
11
|
-
*
|
|
12
|
-
* @summary Detail type code
|
|
13
|
-
*
|
|
14
|
-
* @name `cbc:AttributeId`
|
|
15
|
-
*/
|
|
16
|
-
attributeId: Schema.String,
|
|
17
|
-
/**
|
|
18
|
-
* @description The value of the detail.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* `EU123456789`;
|
|
22
|
-
*
|
|
23
|
-
* @summary Detail value
|
|
24
|
-
*
|
|
25
|
-
* @name `cbc:Description`
|
|
26
|
-
*/
|
|
27
|
-
description: Schema.optional(Schema.String),
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
export type InvoiceResponseCondition = typeof invoiceResponseCondition.Type;
|
|
31
|
-
|
|
32
|
-
export const peppolInvoiceResponseDocumentActualResponseStatusSchema = Schema.Struct({
|
|
33
|
-
/**
|
|
34
|
-
* @description A code defining a clarification given for the invoice status.
|
|
35
|
-
*
|
|
36
|
-
* @summary Clarification code
|
|
37
|
-
*
|
|
38
|
-
* @name `cbc:StatusReasonCode`
|
|
39
|
-
*/
|
|
40
|
-
statusReasonCode: Schema.optional(peppolInvoiceResponseStatusReasonCodeSchema),
|
|
41
|
-
/**
|
|
42
|
-
* @description The description of the clarification given for the invoice status.
|
|
43
|
-
*
|
|
44
|
-
* @example
|
|
45
|
-
* `TAX reference not found`;
|
|
46
|
-
*
|
|
47
|
-
* @summary Clarification description
|
|
48
|
-
*
|
|
49
|
-
* @name `cbc:StatusReason
|
|
50
|
-
*/
|
|
51
|
-
statusReason: Schema.optional(Schema.String),
|
|
52
|
-
/**
|
|
53
|
-
* @summary Condition
|
|
54
|
-
*
|
|
55
|
-
* @name `cac:Condition`
|
|
56
|
-
*/
|
|
57
|
-
condition: Schema.optional(Schema.Array(invoiceResponseCondition)),
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
export type InvoiceResponseDocumentActualResponseStatus = typeof peppolInvoiceResponseDocumentActualResponseStatusSchema.Type;
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import { Schema, Struct } from 'effect';
|
|
2
|
-
|
|
3
|
-
import { INVOICE_RESPONSE_PROFILE_ID } from '#/constants/invoice-response-profile-id';
|
|
4
|
-
import { peppolContactSchema } from '#/effect/fields/peppol-contact-schema';
|
|
5
|
-
import { peppolIdentifierSchema } from '#/effect/fields/peppol-identifier-schema';
|
|
6
|
-
import { peppolPartyLegalEntitySchema } from '#/effect/fields/peppol-party-legal-entity-schema';
|
|
7
|
-
import { peppolInvoiceResponseDocumentActualResponseSchema } from '#/effect/peppol-invoice-response-document-actual-response-schema';
|
|
8
|
-
import { peppolIsoDateStringSchema } from '#/effect/peppol-iso-date-string-schema';
|
|
9
|
-
import { peppolMessageLevelResponsePartySchema } from '#/effect/peppol-message-level-response-party-schema';
|
|
10
|
-
import { peppolMessageLevelResponseSchema } from '#/effect/peppol-message-level-response-schema';
|
|
11
|
-
import { peppolDocumentTypeCodeSchema } from '#/effect/values/peppol-document-type-code-schema';
|
|
12
|
-
|
|
13
|
-
export const peppolInvoiceResponsePartySchema = peppolMessageLevelResponsePartySchema.pipe(
|
|
14
|
-
Schema.fieldsAssign({
|
|
15
|
-
/**
|
|
16
|
-
* @summary Party partyIdentification
|
|
17
|
-
*/
|
|
18
|
-
partyIdentification: Schema.optional(peppolIdentifierSchema),
|
|
19
|
-
partyLegalEntity: peppolPartyLegalEntitySchema.mapFields(Struct.pick(['registrationName'])),
|
|
20
|
-
})
|
|
21
|
-
);
|
|
22
|
-
|
|
23
|
-
export const peppolInvoiceResponseSenderPartySchema = peppolInvoiceResponsePartySchema.pipe(
|
|
24
|
-
Schema.fieldsAssign({
|
|
25
|
-
/**
|
|
26
|
-
* @summary Contact information
|
|
27
|
-
*
|
|
28
|
-
* @name `cac:Contact`
|
|
29
|
-
*/
|
|
30
|
-
contact: Schema.optional(peppolContactSchema),
|
|
31
|
-
})
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
export type PeppolInvoiceResponseParty = typeof peppolInvoiceResponsePartySchema.Type | typeof peppolInvoiceResponseSenderPartySchema.Type;
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* @description Party schema used under `cac:DocumentReference/(cac:IssuerParty|cac:RecipientParty)`
|
|
38
|
-
*/
|
|
39
|
-
export const peppolInvoiceResponseDocumentResponsePartySchema = Schema.Struct({
|
|
40
|
-
/**
|
|
41
|
-
* @summary Party partyIdentification
|
|
42
|
-
*/
|
|
43
|
-
partyIdentification: Schema.optional(peppolIdentifierSchema),
|
|
44
|
-
/**
|
|
45
|
-
* @example
|
|
46
|
-
* Seller Business Name AS
|
|
47
|
-
*
|
|
48
|
-
* @name cac:PartyName
|
|
49
|
-
*/
|
|
50
|
-
partyName: Schema.Struct({
|
|
51
|
-
/**
|
|
52
|
-
* @description - The party that issued the reference invoice
|
|
53
|
-
* - The party who the referenced invoice is issued.
|
|
54
|
-
*
|
|
55
|
-
* @summary Seller/Buyer party name
|
|
56
|
-
*
|
|
57
|
-
* @name `cbc:Name`
|
|
58
|
-
*/
|
|
59
|
-
name: Schema.String,
|
|
60
|
-
}),
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
export type PeppolInvoiceDocumentResponseParty = typeof peppolInvoiceResponseDocumentResponsePartySchema.Type;
|
|
64
|
-
|
|
65
|
-
export const peppolInvoiceResponseDocumentReferenceSchema = Schema.Struct({
|
|
66
|
-
/**
|
|
67
|
-
* @description An identifier for the invoice that the status applies to. The invoice identifier must be of the main invoice number that appears in the invoice
|
|
68
|
-
* itself.
|
|
69
|
-
*
|
|
70
|
-
* @example
|
|
71
|
-
* `inv-99876`;
|
|
72
|
-
*
|
|
73
|
-
* @summary Invoice identifier
|
|
74
|
-
*
|
|
75
|
-
* @name `cbc:ID`
|
|
76
|
-
*/
|
|
77
|
-
id: Schema.String,
|
|
78
|
-
/**
|
|
79
|
-
* @description The date on which the referenced invoice was issued.
|
|
80
|
-
*
|
|
81
|
-
* @example
|
|
82
|
-
* `2018-08-01`;
|
|
83
|
-
*
|
|
84
|
-
* @summary Invoice issue date
|
|
85
|
-
*
|
|
86
|
-
* @name `cbc:IssueDate`
|
|
87
|
-
*/
|
|
88
|
-
issueDate: Schema.optional(peppolIsoDateStringSchema),
|
|
89
|
-
/**
|
|
90
|
-
* @example
|
|
91
|
-
* `380`;
|
|
92
|
-
*
|
|
93
|
-
* @summary Identifier type code
|
|
94
|
-
*/
|
|
95
|
-
documentTypeCode: peppolDocumentTypeCodeSchema,
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
export type PeppolInvoiceResponseDocumentReference = typeof peppolInvoiceResponseDocumentReferenceSchema.Type;
|
|
99
|
-
|
|
100
|
-
export const peppolInvoiceResponseDocumentResponseSchema = Schema.Struct({
|
|
101
|
-
/**
|
|
102
|
-
* @summary Response information
|
|
103
|
-
*
|
|
104
|
-
* @name `cac:Response`
|
|
105
|
-
*
|
|
106
|
-
* @cardinality (1..1)
|
|
107
|
-
*/
|
|
108
|
-
response: peppolInvoiceResponseDocumentActualResponseSchema,
|
|
109
|
-
/**
|
|
110
|
-
* @summary Document reference
|
|
111
|
-
*
|
|
112
|
-
* @name `cac:DocumentReference`
|
|
113
|
-
*/
|
|
114
|
-
documentReference: peppolInvoiceResponseDocumentReferenceSchema,
|
|
115
|
-
/**
|
|
116
|
-
* @summary Seller party information
|
|
117
|
-
*
|
|
118
|
-
* @name `cac:IssuerParty`
|
|
119
|
-
*/
|
|
120
|
-
issuerParty: Schema.optional(peppolInvoiceResponseDocumentResponsePartySchema),
|
|
121
|
-
/**
|
|
122
|
-
* @summary Buyer party information
|
|
123
|
-
*
|
|
124
|
-
* @name `cac:RecipientParty`
|
|
125
|
-
*/
|
|
126
|
-
recipientParty: Schema.optional(peppolInvoiceResponseDocumentResponsePartySchema),
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
export type PeppolInvoiceResponseDocumentResponse = typeof peppolInvoiceResponseDocumentResponseSchema.Type;
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* @description The invoice response is a descendant of the message level response with more fields. Effect port of `invoiceResponseSchema`
|
|
133
|
-
* (`z.extend(messageLevelResponse, ...)` → `messageLevelResponse.pipe(Schema.fieldsAssign(...))`), overriding `profileId` with
|
|
134
|
-
* `Schema.Literal(INVOICE_RESPONSE_PROFILE_ID)` plus sender/receiver/documentResponse.
|
|
135
|
-
*/
|
|
136
|
-
export const peppolInvoiceResponseSchema = peppolMessageLevelResponseSchema.pipe(
|
|
137
|
-
Schema.fieldsAssign({
|
|
138
|
-
profileId: Schema.Literal(INVOICE_RESPONSE_PROFILE_ID),
|
|
139
|
-
/**
|
|
140
|
-
* @description The party sending an electronic message level response message back to the sending party of the business document.
|
|
141
|
-
*
|
|
142
|
-
* @summary Sender information
|
|
143
|
-
*/
|
|
144
|
-
senderParty: peppolInvoiceResponseSenderPartySchema,
|
|
145
|
-
/**
|
|
146
|
-
* @description The party, an electronic message level response was addressed to, and who is supposed to process the message level response. This is the same
|
|
147
|
-
* party as the sender of the business document.
|
|
148
|
-
*
|
|
149
|
-
* @summary Receiver information
|
|
150
|
-
*/
|
|
151
|
-
receiverParty: peppolInvoiceResponsePartySchema,
|
|
152
|
-
/**
|
|
153
|
-
* @description General comments or instructions that are revelant to the response as a whole.
|
|
154
|
-
*
|
|
155
|
-
* @example
|
|
156
|
-
* `Please refere to previous email exchange regarding this invoice.`;
|
|
157
|
-
*
|
|
158
|
-
* @summary Invoice response note
|
|
159
|
-
*/
|
|
160
|
-
note: Schema.optional(Schema.String),
|
|
161
|
-
/**
|
|
162
|
-
* @summary Document response
|
|
163
|
-
*/
|
|
164
|
-
documentResponse: peppolInvoiceResponseDocumentResponseSchema,
|
|
165
|
-
})
|
|
166
|
-
);
|
|
167
|
-
|
|
168
|
-
export type PeppolInvoiceResponse = typeof peppolInvoiceResponseSchema.Type;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Schema } from 'effect';
|
|
2
|
-
|
|
3
|
-
import { opStatusActionSchema } from '#/effect/values/op-status-action-schema';
|
|
4
|
-
import { opStatusReasonSchema } from '#/effect/values/op-status-reason-schema';
|
|
5
|
-
|
|
6
|
-
export const peppolInvoiceResponseStatusReasonCodeSchema = Schema.Union([
|
|
7
|
-
Schema.Struct({
|
|
8
|
-
value: opStatusActionSchema,
|
|
9
|
-
/**
|
|
10
|
-
* @description List identifier for clarification.
|
|
11
|
-
*
|
|
12
|
-
* @summary List identifier
|
|
13
|
-
*
|
|
14
|
-
* @name `@listId`
|
|
15
|
-
*/
|
|
16
|
-
listId: Schema.Literal('OPStatusAction'),
|
|
17
|
-
}),
|
|
18
|
-
Schema.Struct({
|
|
19
|
-
value: opStatusReasonSchema,
|
|
20
|
-
/**
|
|
21
|
-
* @description List identifier for clarification.
|
|
22
|
-
*
|
|
23
|
-
* @summary List identifier
|
|
24
|
-
*
|
|
25
|
-
* @name `@listId`
|
|
26
|
-
*/
|
|
27
|
-
listId: Schema.Literal('OPStatusReason'),
|
|
28
|
-
}),
|
|
29
|
-
]);
|
|
30
|
-
|
|
31
|
-
export type InvoiceResponseStatusReasonCode = typeof peppolInvoiceResponseStatusReasonCodeSchema.Type;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Schema } from 'effect';
|
|
2
|
-
|
|
3
|
-
import { peppolInvoiceLineSchema } from '#/effect/fields/peppol-invoice-line-schema';
|
|
4
|
-
import { peppolBillingBaseSchema } from '#/effect/peppol-billing-base-schema';
|
|
5
|
-
import { peppolIsoDateStringSchema } from '#/effect/peppol-iso-date-string-schema';
|
|
6
|
-
import { invoiceTypeCodeSchema } from '#/effect/values/invoice-type-code-schema';
|
|
7
|
-
|
|
8
|
-
export const peppolInvoiceSchema = Schema.Struct({
|
|
9
|
-
...peppolBillingBaseSchema.fields,
|
|
10
|
-
/**
|
|
11
|
-
* @example
|
|
12
|
-
* 2017 - 11 - 01;
|
|
13
|
-
*
|
|
14
|
-
* @summary Payment due date
|
|
15
|
-
*
|
|
16
|
-
* @name cbc:DueDate
|
|
17
|
-
*/
|
|
18
|
-
dueDate: Schema.optional(peppolIsoDateStringSchema),
|
|
19
|
-
/**
|
|
20
|
-
* @summary INVOICE LINE
|
|
21
|
-
*
|
|
22
|
-
* @name cac:InvoiceLine
|
|
23
|
-
*/
|
|
24
|
-
invoiceLines: Schema.Array(peppolInvoiceLineSchema).check(Schema.isMinLength(1)),
|
|
25
|
-
/**
|
|
26
|
-
* @example
|
|
27
|
-
* 380;
|
|
28
|
-
*
|
|
29
|
-
* @summary Invoice type code
|
|
30
|
-
*
|
|
31
|
-
* @name cbc:InvoiceTypeCode
|
|
32
|
-
*/
|
|
33
|
-
invoiceTypeCode: invoiceTypeCodeSchema,
|
|
34
|
-
/**
|
|
35
|
-
* @summary PROJECT REFERENCE
|
|
36
|
-
*
|
|
37
|
-
* @name cac:ProjectReference
|
|
38
|
-
*/
|
|
39
|
-
projectReference: Schema.optional(Schema.Struct({ id: Schema.String })),
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
export interface PeppolInvoice extends Schema.Schema.Type<typeof peppolInvoiceSchema> {}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { DateTime, Schema, SchemaGetter } from 'effect';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @description ISO 8601 calendar date string (`YYYY-MM-DD`). Effect port of `dateOnly` (`z.iso.date()`): keeps the value as a plain string and only validates the
|
|
5
|
-
* shape — no `Date` conversion.
|
|
6
|
-
*
|
|
7
|
-
* @format date
|
|
8
|
-
*
|
|
9
|
-
* @see PEPPOL-EN16931-F001: A date MUST be formatted YYYY-MM-DD.
|
|
10
|
-
*/
|
|
11
|
-
export const peppolIsoDateStringSchema = Schema.String.check(Schema.isPattern(/^\d{4}-\d{2}-\d{2}Z?$/)).pipe(
|
|
12
|
-
Schema.decodeTo(Schema.DateTimeUtc, {
|
|
13
|
-
decode: SchemaGetter.dateTimeUtcFromInput().map(DateTime.removeTime),
|
|
14
|
-
encode: SchemaGetter.transform(DateTime.formatIsoDate),
|
|
15
|
-
})
|
|
16
|
-
);
|
|
17
|
-
|
|
18
|
-
export type PeppolIsoDateString = typeof peppolIsoDateStringSchema.Type;
|
|
19
|
-
export type PeppolIsoDateEncoded = typeof peppolIsoDateStringSchema.Encoded;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { Schema } from 'effect';
|
|
2
|
-
|
|
3
|
-
import { peppolDocumentResponseDocumentReferenceSchema } from '#/effect/peppol-document-response-document-reference-schema';
|
|
4
|
-
import { peppolDocumentResponseDocumentSchema } from '#/effect/peppol-document-response-document-schema';
|
|
5
|
-
import { peppolDocumentResponseLineResponseSchema } from '#/effect/peppol-document-response-line-response-schema';
|
|
6
|
-
|
|
7
|
-
export const peppolMessageLevelResponseDocumentResponseSchema = Schema.Struct({
|
|
8
|
-
/**
|
|
9
|
-
* @summary Response information
|
|
10
|
-
*
|
|
11
|
-
* @name `cac:Response`
|
|
12
|
-
*
|
|
13
|
-
* @cardinality (1..1)
|
|
14
|
-
*/
|
|
15
|
-
response: peppolDocumentResponseDocumentSchema,
|
|
16
|
-
/**
|
|
17
|
-
* @description The document reference is used to provide a reference to the envelope of the business document on which the message level response is based. The
|
|
18
|
-
* message level response message may only cover exactly one business document. The element `cac:DocumentResponse/cac:DocumentReference/cbc:ID`
|
|
19
|
-
* **MUST** contain the instance identifier of the envelope of the original business document.
|
|
20
|
-
*
|
|
21
|
-
* @summary Document reference
|
|
22
|
-
*/
|
|
23
|
-
documentReference: peppolDocumentResponseDocumentReferenceSchema,
|
|
24
|
-
/**
|
|
25
|
-
* @description A response to a particular line in the document. If the document response is negative (code='RE'), the line response element is used to specify
|
|
26
|
-
* the errors in the business document.
|
|
27
|
-
*
|
|
28
|
-
* @summary Line response information
|
|
29
|
-
*/
|
|
30
|
-
lineResponse: Schema.Array(peppolDocumentResponseLineResponseSchema),
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
export type PeppolMessageLevelMessageLevelResponseDocumentResponse = typeof peppolMessageLevelResponseDocumentResponseSchema.Type;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Schema } from 'effect';
|
|
2
|
-
|
|
3
|
-
import { peppolIdentifierSchema } from '#/effect/fields/peppol-identifier-schema';
|
|
4
|
-
|
|
5
|
-
export const peppolMessageLevelResponsePartySchema = Schema.Struct({
|
|
6
|
-
/**
|
|
7
|
-
* @description Identifies the sender party's electronic address.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* 7300010000001;
|
|
11
|
-
*
|
|
12
|
-
* @summary Sender/Receiver party's electronic address
|
|
13
|
-
*
|
|
14
|
-
* @name `cbc:EndpointID (+ @schemeID)`
|
|
15
|
-
*/
|
|
16
|
-
endpointId: Schema.optional(peppolIdentifierSchema),
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
export type PeppolMessageLevelResponseParty = typeof peppolMessageLevelResponsePartySchema.Type;
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { Schema } from 'effect';
|
|
2
|
-
|
|
3
|
-
import { MESSAGE_LEVEL_RESPONSE_PROFILE_ID } from '#/constants/message-level-response-profile-id';
|
|
4
|
-
import { peppolIsoDateStringSchema } from '#/effect/peppol-iso-date-string-schema';
|
|
5
|
-
import { peppolMessageLevelResponseDocumentResponseSchema } from '#/effect/peppol-message-level-response-document-response-schema';
|
|
6
|
-
import { peppolMessageLevelResponsePartySchema } from '#/effect/peppol-message-level-response-party-schema';
|
|
7
|
-
import { peppolXsdTimeSchema } from '#/effect/utils/peppol-xsd-time-schema';
|
|
8
|
-
|
|
9
|
-
export const peppolMessageLevelResponseSchema = Schema.Struct({
|
|
10
|
-
/**
|
|
11
|
-
* @description Identifies the specification of content and rules that apply to the transaction.
|
|
12
|
-
*
|
|
13
|
-
* @default `urn:fdc:peppol.eu:poacc:trns:mlr:3`
|
|
14
|
-
*
|
|
15
|
-
* @summary Specification identification
|
|
16
|
-
*
|
|
17
|
-
* @name `cbc:CustomizationID`
|
|
18
|
-
*
|
|
19
|
-
* @cardinality 1..1
|
|
20
|
-
*/
|
|
21
|
-
customizationId: Schema.String,
|
|
22
|
-
/**
|
|
23
|
-
* @description Identifies the BII profile or business process context in which the transaction appears.
|
|
24
|
-
*
|
|
25
|
-
* @remarks
|
|
26
|
-
* Fixed value to `urn:fdc:peppol.eu:poacc:bis:mlr:3`
|
|
27
|
-
*
|
|
28
|
-
* @default `urn:fdc:peppol.eu:poacc:bis:mlr:3`
|
|
29
|
-
*
|
|
30
|
-
* @summary Business process type identifier
|
|
31
|
-
*
|
|
32
|
-
* @name `cbc:ProfileID`
|
|
33
|
-
*/
|
|
34
|
-
profileId: Schema.Literal(MESSAGE_LEVEL_RESPONSE_PROFILE_ID),
|
|
35
|
-
/**
|
|
36
|
-
* @description A transaction instance must contain an identifier. The identifier enables positive referencing the transaction instance for various puropses
|
|
37
|
-
* including referencing between transactions that are part of the same process.
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* 23;
|
|
41
|
-
*
|
|
42
|
-
* @summary Response identifier
|
|
43
|
-
*
|
|
44
|
-
* @name cbc:ID
|
|
45
|
-
*/
|
|
46
|
-
id: Schema.String,
|
|
47
|
-
/**
|
|
48
|
-
* @description The date on which the transaction instance was issued.
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
* 2017 - 11 - 01;
|
|
52
|
-
*
|
|
53
|
-
* @summary Response issue date
|
|
54
|
-
*
|
|
55
|
-
* @format `YYYY-MM-DD`
|
|
56
|
-
*
|
|
57
|
-
* @name cbc:IssueDate
|
|
58
|
-
*/
|
|
59
|
-
issueDate: peppolIsoDateStringSchema,
|
|
60
|
-
/**
|
|
61
|
-
* @description The time at which the transaction instance was issued.
|
|
62
|
-
*
|
|
63
|
-
* @example
|
|
64
|
-
* 12:01:34
|
|
65
|
-
*
|
|
66
|
-
* @summary Response issue time
|
|
67
|
-
*
|
|
68
|
-
* @format `hh:mm:ss`
|
|
69
|
-
*
|
|
70
|
-
* @name cbc:IssueDate
|
|
71
|
-
*/
|
|
72
|
-
issueTime: Schema.optional(peppolXsdTimeSchema),
|
|
73
|
-
/**
|
|
74
|
-
* @description The party sending an electronic message level response message back to the sending party of the business document.
|
|
75
|
-
*
|
|
76
|
-
* @summary Sender information
|
|
77
|
-
*/
|
|
78
|
-
senderParty: peppolMessageLevelResponsePartySchema,
|
|
79
|
-
/**
|
|
80
|
-
* @description The party, an electronic message level response was addressed to, and who is supposed to process the message level response. This is the same
|
|
81
|
-
* party as the sender of the business document.
|
|
82
|
-
*
|
|
83
|
-
* @summary Receiver information
|
|
84
|
-
*/
|
|
85
|
-
receiverParty: peppolMessageLevelResponsePartySchema,
|
|
86
|
-
/**
|
|
87
|
-
* @description The document response is used to indicate the result of business document validation. The element
|
|
88
|
-
* `cac:DocumentResponse/cac:Response/cbc:ResponseCode` MUST contain the overall result code.
|
|
89
|
-
*
|
|
90
|
-
* @summary Document response
|
|
91
|
-
*
|
|
92
|
-
* @name `cac:DocumentResponse`
|
|
93
|
-
*/
|
|
94
|
-
documentResponse: peppolMessageLevelResponseDocumentResponseSchema,
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
export type PeppolMessageLevelResponse = typeof peppolMessageLevelResponseSchema.Type;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { formatQuantityWithUnit } from '#/schemas/utils/format-quantity-with-unit';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { getCreditNoteTypeCodeDescription } from '#/schemas/utils/get-credit-note-type-code-description';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { getInvoiceTypeCodeDescription } from '#/schemas/utils/get-invoice-type-code-description';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { isValidCreditNoteTypeCode } from '#/schemas/utils/is-valid-credit-note-type-code';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { isValidInvoiceTypeCode } from '#/schemas/utils/is-valid-invoice-type-code';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { isValidProcess } from '#/schemas/utils/is-valid-process';
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Schema } from 'effect';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @description XSD `time` lexical value (`HH:MM:SS` with optional fractional seconds and timezone). Effect port of `xsdTime` (`z.string().check(z.regex(...))`):
|
|
5
|
-
* keeps the value as a plain string and only validates the shape.
|
|
6
|
-
*/
|
|
7
|
-
export const peppolXsdTimeSchema = Schema.String.check(
|
|
8
|
-
Schema.isPattern(
|
|
9
|
-
/^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d{1,9})?(?:Z|-0[1-9]|-1\d|-2[0-3]|-00:?(?:0[1-9]|[1-5]\d)|\+[01]\d|\+2[0-3])?(?:|:?[0-5]\d)$/
|
|
10
|
-
)
|
|
11
|
-
).annotate({ message: 'Invalid ISO time' });
|
|
12
|
-
|
|
13
|
-
export type XsdTime = typeof peppolXsdTimeSchema.Type;
|