@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,24 +1,22 @@
|
|
|
1
1
|
import { Schema } from 'effect';
|
|
2
2
|
|
|
3
|
-
import { peppolInvoiceResponseDocumentActualResponseStatusSchema } from '#/effect/peppol-invoice-response-document-actual-response-status-schema';
|
|
4
|
-
import { peppolIsoDateStringSchema } from '#/effect/peppol-iso-date-string-schema';
|
|
5
3
|
import { invoiceResponseCodeNeedsSchema } from '#/invoice-response-codes/invoice-response-code-needs-schema';
|
|
6
4
|
import { invoiceResponseCodeNotNeedsSchema } from '#/invoice-response-codes/invoice-response-code-not-needs-schema';
|
|
5
|
+
import { PeppolInvoiceResponseDocumentActualResponseStatus } from '#/schemas/peppol-invoice-response-document-actual-response-status-schema';
|
|
6
|
+
import { PeppolIsoDateString } from '#/schemas/peppol-iso-date-string';
|
|
7
|
+
import { opaque } from '#/schemas/utils/opaque';
|
|
7
8
|
|
|
8
|
-
const withStatusCodes = Schema.Literals(invoiceResponseCodeNeedsSchema);
|
|
9
|
-
const withoutStatusCodes = Schema.Literals(invoiceResponseCodeNotNeedsSchema);
|
|
9
|
+
export const withStatusCodes = Schema.Literals(invoiceResponseCodeNeedsSchema);
|
|
10
|
+
export const withoutStatusCodes = Schema.Literals(invoiceResponseCodeNotNeedsSchema);
|
|
10
11
|
|
|
11
|
-
export
|
|
12
|
+
export class PeppolInvoiceResponseDocumentActualResponseWithoutStatus extends opaque<PeppolInvoiceResponseDocumentActualResponseWithoutStatus>()(
|
|
12
13
|
Schema.Struct({
|
|
13
14
|
/**
|
|
14
|
-
* @remarks
|
|
15
|
-
* This is a rejection code that needs clarification in {@link status}
|
|
16
|
-
*
|
|
17
15
|
* @summary A code stating the status of the invoice in the process.
|
|
18
16
|
*
|
|
19
17
|
* @name `cbc:ResponseCode`
|
|
20
18
|
*/
|
|
21
|
-
responseCode:
|
|
19
|
+
responseCode: withoutStatusCodes,
|
|
22
20
|
/**
|
|
23
21
|
* @description The date when the status became effective.
|
|
24
22
|
*
|
|
@@ -29,7 +27,7 @@ export const peppolInvoiceResponseDocumentActualResponseSchema = Schema.Union([
|
|
|
29
27
|
*
|
|
30
28
|
* @name `cbc:EffectiveDate`
|
|
31
29
|
*/
|
|
32
|
-
effectiveDate: Schema.optional(
|
|
30
|
+
effectiveDate: Schema.optional(PeppolIsoDateString),
|
|
33
31
|
/**
|
|
34
32
|
* @description Clarification is mendatory when the status is UQ-`under query`,RE-`rejected` and `CA`-Conditionally accepted. Clarification may be given as a
|
|
35
33
|
* code, a description or both. If both are used, they must indicate the same clarification.
|
|
@@ -38,15 +36,21 @@ export const peppolInvoiceResponseDocumentActualResponseSchema = Schema.Union([
|
|
|
38
36
|
*
|
|
39
37
|
* @name `cac:Status`
|
|
40
38
|
*/
|
|
41
|
-
status: Schema.
|
|
42
|
-
})
|
|
39
|
+
status: Schema.optional(Schema.Array(PeppolInvoiceResponseDocumentActualResponseStatus)),
|
|
40
|
+
})
|
|
41
|
+
) {}
|
|
42
|
+
|
|
43
|
+
export class PeppolInvoiceResponseDocumentActualResponseWithStatus extends opaque<PeppolInvoiceResponseDocumentActualResponseWithStatus>()(
|
|
43
44
|
Schema.Struct({
|
|
44
45
|
/**
|
|
46
|
+
* @remarks
|
|
47
|
+
* This is a rejection code that needs clarification in {@link status}
|
|
48
|
+
*
|
|
45
49
|
* @summary A code stating the status of the invoice in the process.
|
|
46
50
|
*
|
|
47
51
|
* @name `cbc:ResponseCode`
|
|
48
52
|
*/
|
|
49
|
-
responseCode:
|
|
53
|
+
responseCode: withStatusCodes,
|
|
50
54
|
/**
|
|
51
55
|
* @description The date when the status became effective.
|
|
52
56
|
*
|
|
@@ -57,7 +61,7 @@ export const peppolInvoiceResponseDocumentActualResponseSchema = Schema.Union([
|
|
|
57
61
|
*
|
|
58
62
|
* @name `cbc:EffectiveDate`
|
|
59
63
|
*/
|
|
60
|
-
effectiveDate: Schema.optional(
|
|
64
|
+
effectiveDate: Schema.optional(PeppolIsoDateString),
|
|
61
65
|
/**
|
|
62
66
|
* @description Clarification is mendatory when the status is UQ-`under query`,RE-`rejected` and `CA`-Conditionally accepted. Clarification may be given as a
|
|
63
67
|
* code, a description or both. If both are used, they must indicate the same clarification.
|
|
@@ -66,8 +70,13 @@ export const peppolInvoiceResponseDocumentActualResponseSchema = Schema.Union([
|
|
|
66
70
|
*
|
|
67
71
|
* @name `cac:Status`
|
|
68
72
|
*/
|
|
69
|
-
status: Schema.
|
|
70
|
-
})
|
|
73
|
+
status: Schema.Array(PeppolInvoiceResponseDocumentActualResponseStatus).check(Schema.isMinLength(1)),
|
|
74
|
+
})
|
|
75
|
+
) {}
|
|
76
|
+
|
|
77
|
+
export const peppolInvoiceResponseDocumentActualResponseSchema = Schema.Union([
|
|
78
|
+
PeppolInvoiceResponseDocumentActualResponseWithStatus,
|
|
79
|
+
PeppolInvoiceResponseDocumentActualResponseWithoutStatus,
|
|
71
80
|
]);
|
|
72
81
|
|
|
73
82
|
export type InvoiceResponseDocumentActualResponse = typeof peppolInvoiceResponseDocumentActualResponseSchema.Type;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
|
|
3
|
+
import { peppolInvoiceResponseStatusReasonCodeSchema } from '#/schemas/peppol-invoice-response-status-reason-code-schema';
|
|
4
|
+
import { opaque } from '#/schemas/utils/opaque';
|
|
5
|
+
|
|
6
|
+
export class PeppolInvoiceResponseCondition extends opaque<PeppolInvoiceResponseCondition>()(
|
|
7
|
+
Schema.Struct({
|
|
8
|
+
/**
|
|
9
|
+
* @description A code defining the type of the detail.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* `BT-75`;
|
|
13
|
+
*
|
|
14
|
+
* @summary Detail type code
|
|
15
|
+
*
|
|
16
|
+
* @name `cbc:AttributeId`
|
|
17
|
+
*/
|
|
18
|
+
attributeId: Schema.String,
|
|
19
|
+
/**
|
|
20
|
+
* @description The value of the detail.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* `EU123456789`;
|
|
24
|
+
*
|
|
25
|
+
* @summary Detail value
|
|
26
|
+
*
|
|
27
|
+
* @name `cbc:Description`
|
|
28
|
+
*/
|
|
29
|
+
description: Schema.optional(Schema.String),
|
|
30
|
+
})
|
|
31
|
+
) {}
|
|
32
|
+
|
|
33
|
+
export class PeppolInvoiceResponseDocumentActualResponseStatus extends opaque<PeppolInvoiceResponseDocumentActualResponseStatus>()(
|
|
34
|
+
Schema.Struct({
|
|
35
|
+
/**
|
|
36
|
+
* @description A code defining a clarification given for the invoice status.
|
|
37
|
+
*
|
|
38
|
+
* @summary Clarification code
|
|
39
|
+
*
|
|
40
|
+
* @name `cbc:StatusReasonCode`
|
|
41
|
+
*/
|
|
42
|
+
statusReasonCode: Schema.optional(peppolInvoiceResponseStatusReasonCodeSchema),
|
|
43
|
+
/**
|
|
44
|
+
* @description The description of the clarification given for the invoice status.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* `TAX reference not found`;
|
|
48
|
+
*
|
|
49
|
+
* @summary Clarification description
|
|
50
|
+
*
|
|
51
|
+
* @name `cbc:StatusReason
|
|
52
|
+
*/
|
|
53
|
+
statusReason: Schema.optional(Schema.String),
|
|
54
|
+
/**
|
|
55
|
+
* @summary Condition
|
|
56
|
+
*
|
|
57
|
+
* @name `cac:Condition`
|
|
58
|
+
*/
|
|
59
|
+
condition: Schema.optional(Schema.Array(PeppolInvoiceResponseCondition)),
|
|
60
|
+
})
|
|
61
|
+
) {}
|
|
62
|
+
|
|
63
|
+
export type InvoiceResponseDocumentActualResponseStatus = PeppolInvoiceResponseDocumentActualResponseStatus;
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { Schema, Struct } from 'effect';
|
|
2
|
+
|
|
3
|
+
import { INVOICE_RESPONSE_PROFILE_ID } from '#/constants/invoice-response-profile-id';
|
|
4
|
+
import { PeppolContact } from '#/schemas/fields/peppol-contact-schema';
|
|
5
|
+
import { PeppolIdentifier } from '#/schemas/fields/peppol-identifier-schema';
|
|
6
|
+
import { PeppolPartyLegalEntity } from '#/schemas/fields/peppol-party-legal-entity-schema';
|
|
7
|
+
import { peppolInvoiceResponseDocumentActualResponseSchema } from '#/schemas/peppol-invoice-response-document-actual-response-schema';
|
|
8
|
+
import { PeppolIsoDateString } from '#/schemas/peppol-iso-date-string';
|
|
9
|
+
import { PeppolMessageLevelResponseParty } from '#/schemas/peppol-message-level-response-party-schema';
|
|
10
|
+
import { PeppolMessageLevelResponse } from '#/schemas/peppol-message-level-response-schema';
|
|
11
|
+
import { opaque } from '#/schemas/utils/opaque';
|
|
12
|
+
import { peppolDocumentTypeCodeSchema } from '#/schemas/values/peppol-document-type-code-schema';
|
|
13
|
+
|
|
14
|
+
export class PeppolInvoiceResponseDocumentResponsePartyName extends opaque<PeppolInvoiceResponseDocumentResponsePartyName>()(
|
|
15
|
+
Schema.Struct({
|
|
16
|
+
/**
|
|
17
|
+
* @description - The party that issued the reference invoice
|
|
18
|
+
* - The party who the referenced invoice is issued.
|
|
19
|
+
*
|
|
20
|
+
* @summary Seller/Buyer party name
|
|
21
|
+
*
|
|
22
|
+
* @name `cbc:Name`
|
|
23
|
+
*/
|
|
24
|
+
name: Schema.String,
|
|
25
|
+
})
|
|
26
|
+
) {}
|
|
27
|
+
|
|
28
|
+
export class PeppolInvoiceResponseParty extends opaque<PeppolInvoiceResponseParty>()(
|
|
29
|
+
PeppolMessageLevelResponseParty.pipe(
|
|
30
|
+
Schema.fieldsAssign({
|
|
31
|
+
/**
|
|
32
|
+
* @summary Party partyIdentification
|
|
33
|
+
*/
|
|
34
|
+
partyIdentification: Schema.optional(PeppolIdentifier),
|
|
35
|
+
partyLegalEntity: PeppolPartyLegalEntity.mapFields(Struct.pick(['registrationName'])),
|
|
36
|
+
})
|
|
37
|
+
)
|
|
38
|
+
) {}
|
|
39
|
+
|
|
40
|
+
export class PeppolInvoiceResponseSenderParty extends opaque<PeppolInvoiceResponseSenderParty>()(
|
|
41
|
+
PeppolInvoiceResponseParty.pipe(
|
|
42
|
+
Schema.fieldsAssign({
|
|
43
|
+
/**
|
|
44
|
+
* @summary Contact information
|
|
45
|
+
*
|
|
46
|
+
* @name `cac:Contact`
|
|
47
|
+
*/
|
|
48
|
+
contact: Schema.optional(PeppolContact),
|
|
49
|
+
})
|
|
50
|
+
)
|
|
51
|
+
) {}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* @description Party schema used under `cac:DocumentReference/(cac:IssuerParty|cac:RecipientParty)`
|
|
55
|
+
*/
|
|
56
|
+
export class PeppolInvoiceResponseDocumentResponseParty extends opaque<PeppolInvoiceResponseDocumentResponseParty>()(
|
|
57
|
+
Schema.Struct({
|
|
58
|
+
/**
|
|
59
|
+
* @summary Party partyIdentification
|
|
60
|
+
*/
|
|
61
|
+
partyIdentification: Schema.optional(PeppolIdentifier),
|
|
62
|
+
/**
|
|
63
|
+
* @example
|
|
64
|
+
* Seller Business Name AS
|
|
65
|
+
*
|
|
66
|
+
* @name cac:PartyName
|
|
67
|
+
*/
|
|
68
|
+
partyName: PeppolInvoiceResponseDocumentResponsePartyName,
|
|
69
|
+
})
|
|
70
|
+
) {}
|
|
71
|
+
|
|
72
|
+
export type PeppolInvoiceDocumentResponseParty = PeppolInvoiceResponseDocumentResponseParty;
|
|
73
|
+
|
|
74
|
+
export class PeppolInvoiceResponseDocumentReference extends opaque<PeppolInvoiceResponseDocumentReference>()(
|
|
75
|
+
Schema.Struct({
|
|
76
|
+
/**
|
|
77
|
+
* @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
|
|
78
|
+
* itself.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* `inv-99876`;
|
|
82
|
+
*
|
|
83
|
+
* @summary Invoice identifier
|
|
84
|
+
*
|
|
85
|
+
* @name `cbc:ID`
|
|
86
|
+
*/
|
|
87
|
+
id: Schema.String,
|
|
88
|
+
/**
|
|
89
|
+
* @description The date on which the referenced invoice was issued.
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* `2018-08-01`;
|
|
93
|
+
*
|
|
94
|
+
* @summary Invoice issue date
|
|
95
|
+
*
|
|
96
|
+
* @name `cbc:IssueDate`
|
|
97
|
+
*/
|
|
98
|
+
issueDate: Schema.optional(PeppolIsoDateString),
|
|
99
|
+
/**
|
|
100
|
+
* @example
|
|
101
|
+
* `380`;
|
|
102
|
+
*
|
|
103
|
+
* @summary Identifier type code
|
|
104
|
+
*/
|
|
105
|
+
documentTypeCode: peppolDocumentTypeCodeSchema,
|
|
106
|
+
})
|
|
107
|
+
) {}
|
|
108
|
+
|
|
109
|
+
export class PeppolInvoiceResponseDocumentResponse extends opaque<PeppolInvoiceResponseDocumentResponse>()(
|
|
110
|
+
Schema.Struct({
|
|
111
|
+
/**
|
|
112
|
+
* @summary Response information
|
|
113
|
+
*
|
|
114
|
+
* @name `cac:Response`
|
|
115
|
+
*
|
|
116
|
+
* @cardinality (1..1)
|
|
117
|
+
*/
|
|
118
|
+
response: peppolInvoiceResponseDocumentActualResponseSchema,
|
|
119
|
+
/**
|
|
120
|
+
* @summary Document reference
|
|
121
|
+
*
|
|
122
|
+
* @name `cac:DocumentReference`
|
|
123
|
+
*/
|
|
124
|
+
documentReference: PeppolInvoiceResponseDocumentReference,
|
|
125
|
+
/**
|
|
126
|
+
* @summary Seller party information
|
|
127
|
+
*
|
|
128
|
+
* @name `cac:IssuerParty`
|
|
129
|
+
*/
|
|
130
|
+
issuerParty: Schema.optional(PeppolInvoiceResponseDocumentResponseParty),
|
|
131
|
+
/**
|
|
132
|
+
* @summary Buyer party information
|
|
133
|
+
*
|
|
134
|
+
* @name `cac:RecipientParty`
|
|
135
|
+
*/
|
|
136
|
+
recipientParty: Schema.optional(PeppolInvoiceResponseDocumentResponseParty),
|
|
137
|
+
})
|
|
138
|
+
) {}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* @description The invoice response is a descendant of the message level response with more fields. Effect port of `invoiceResponseSchema`
|
|
142
|
+
* (`z.extend(messageLevelResponse, ...)` → `messageLevelResponse.pipe(Schema.fieldsAssign(...))`), overriding `profileId` with
|
|
143
|
+
* `Schema.Literal(INVOICE_RESPONSE_PROFILE_ID)` plus sender/receiver/documentResponse.
|
|
144
|
+
*/
|
|
145
|
+
export class PeppolInvoiceResponse extends opaque<PeppolInvoiceResponse>()(
|
|
146
|
+
Schema.Struct({
|
|
147
|
+
...PeppolMessageLevelResponse.fields,
|
|
148
|
+
profileId: Schema.Literal(INVOICE_RESPONSE_PROFILE_ID),
|
|
149
|
+
/**
|
|
150
|
+
* @description The party sending an electronic message level response message back to the sending party of the business document.
|
|
151
|
+
*
|
|
152
|
+
* @summary Sender information
|
|
153
|
+
*/
|
|
154
|
+
senderParty: PeppolInvoiceResponseSenderParty,
|
|
155
|
+
/**
|
|
156
|
+
* @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
|
|
157
|
+
* party as the sender of the business document.
|
|
158
|
+
*
|
|
159
|
+
* @summary Receiver information
|
|
160
|
+
*/
|
|
161
|
+
receiverParty: PeppolInvoiceResponseParty,
|
|
162
|
+
/**
|
|
163
|
+
* @description General comments or instructions that are revelant to the response as a whole.
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* `Please refere to previous email exchange regarding this invoice.`;
|
|
167
|
+
*
|
|
168
|
+
* @summary Invoice response note
|
|
169
|
+
*/
|
|
170
|
+
note: Schema.optional(Schema.String),
|
|
171
|
+
/**
|
|
172
|
+
* @summary Document response
|
|
173
|
+
*/
|
|
174
|
+
documentResponse: PeppolInvoiceResponseDocumentResponse,
|
|
175
|
+
})
|
|
176
|
+
) {}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
|
|
3
|
+
import { opaque } from '#/schemas/utils/opaque';
|
|
4
|
+
import { opStatusActionSchema } from '#/schemas/values/op-status-action-schema';
|
|
5
|
+
import { opStatusReasonSchema } from '#/schemas/values/op-status-reason-schema';
|
|
6
|
+
|
|
7
|
+
export class PeppolInvoiceResponseStatusReasonCodeReason extends opaque<PeppolInvoiceResponseStatusReasonCodeReason>()(
|
|
8
|
+
Schema.Struct({
|
|
9
|
+
value: opStatusReasonSchema,
|
|
10
|
+
/**
|
|
11
|
+
* @description List identifier for clarification.
|
|
12
|
+
*
|
|
13
|
+
* @summary List identifier
|
|
14
|
+
*
|
|
15
|
+
* @name `@listId`
|
|
16
|
+
*/
|
|
17
|
+
listId: Schema.Literal('OPStatusReason'),
|
|
18
|
+
})
|
|
19
|
+
) {}
|
|
20
|
+
|
|
21
|
+
export class PeppolInvoiceResponseStatusReasonCodeAction extends opaque<PeppolInvoiceResponseStatusReasonCodeAction>()(
|
|
22
|
+
Schema.Struct({
|
|
23
|
+
value: opStatusActionSchema,
|
|
24
|
+
/**
|
|
25
|
+
* @description List identifier for clarification.
|
|
26
|
+
*
|
|
27
|
+
* @summary List identifier
|
|
28
|
+
*
|
|
29
|
+
* @name `@listId`
|
|
30
|
+
*/
|
|
31
|
+
listId: Schema.Literal('OPStatusAction'),
|
|
32
|
+
})
|
|
33
|
+
) {}
|
|
34
|
+
|
|
35
|
+
export const peppolInvoiceResponseStatusReasonCodeSchema = Schema.Union([
|
|
36
|
+
PeppolInvoiceResponseStatusReasonCodeAction,
|
|
37
|
+
PeppolInvoiceResponseStatusReasonCodeReason,
|
|
38
|
+
]);
|
|
39
|
+
|
|
40
|
+
export type PeppolInvoiceResponseStatusReasonCode = typeof peppolInvoiceResponseStatusReasonCodeSchema.Type;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
|
|
3
|
+
import { PeppolInvoiceLine } from '#/schemas/fields/peppol-invoice-line-schema';
|
|
4
|
+
import { PeppolBillingBase } from '#/schemas/peppol-billing-base-schema';
|
|
5
|
+
import { PeppolIsoDateString } from '#/schemas/peppol-iso-date-string';
|
|
6
|
+
import { opaque } from '#/schemas/utils/opaque';
|
|
7
|
+
import { invoiceTypeCodeSchema } from '#/schemas/values/invoice-type-code-schema';
|
|
8
|
+
|
|
9
|
+
class PeppolProjectReference extends opaque<PeppolProjectReference>()(Schema.Struct({ id: Schema.String })) {}
|
|
10
|
+
|
|
11
|
+
export class PeppolInvoice extends opaque<PeppolInvoice>()(
|
|
12
|
+
Schema.Struct({
|
|
13
|
+
...PeppolBillingBase.fields,
|
|
14
|
+
/**
|
|
15
|
+
* @example
|
|
16
|
+
* `2017-11-01`;
|
|
17
|
+
*
|
|
18
|
+
* @summary Payment due date
|
|
19
|
+
*
|
|
20
|
+
* @name cbc:DueDate
|
|
21
|
+
*/
|
|
22
|
+
dueDate: Schema.optional(PeppolIsoDateString),
|
|
23
|
+
/**
|
|
24
|
+
* @summary INVOICE LINE
|
|
25
|
+
*
|
|
26
|
+
* @name cac:InvoiceLine
|
|
27
|
+
*/
|
|
28
|
+
invoiceLines: Schema.Array(PeppolInvoiceLine).check(Schema.isMinLength(1)),
|
|
29
|
+
/**
|
|
30
|
+
* @example
|
|
31
|
+
* `380`;
|
|
32
|
+
*
|
|
33
|
+
* @summary Invoice type code
|
|
34
|
+
*
|
|
35
|
+
* @name cbc:InvoiceTypeCode
|
|
36
|
+
*/
|
|
37
|
+
invoiceTypeCode: invoiceTypeCodeSchema,
|
|
38
|
+
/**
|
|
39
|
+
* @summary PROJECT REFERENCE
|
|
40
|
+
*
|
|
41
|
+
* @name cac:ProjectReference
|
|
42
|
+
*/
|
|
43
|
+
projectReference: Schema.optional(PeppolProjectReference),
|
|
44
|
+
})
|
|
45
|
+
) {}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DateTime, Schema, SchemaGetter } from 'effect';
|
|
2
|
+
|
|
3
|
+
import { opaque } from '#/schemas/utils/opaque';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @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
|
|
7
|
+
* shape — no `Date` conversion.
|
|
8
|
+
*
|
|
9
|
+
* @format date
|
|
10
|
+
*
|
|
11
|
+
* @see PEPPOL-EN16931-F001: A date MUST be formatted YYYY-MM-DD.
|
|
12
|
+
*/
|
|
13
|
+
export class PeppolIsoDateString extends opaque<PeppolIsoDateString>()(
|
|
14
|
+
Schema.String.check(Schema.isPattern(/^\d{4}-\d{2}-\d{2}Z?$/)).pipe(
|
|
15
|
+
Schema.decodeTo(Schema.DateTimeUtc, {
|
|
16
|
+
decode: SchemaGetter.dateTimeUtcFromInput().map(DateTime.removeTime),
|
|
17
|
+
encode: SchemaGetter.transform(DateTime.formatIsoDate),
|
|
18
|
+
})
|
|
19
|
+
)
|
|
20
|
+
) {}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
|
|
3
|
+
import { PeppolDocumentResponseDocumentReference } from '#/schemas/peppol-document-response-document-reference-schema';
|
|
4
|
+
import { PeppolDocumentResponseDocument } from '#/schemas/peppol-document-response-document-schema';
|
|
5
|
+
import { PeppolDocumentResponseLineResponse } from '#/schemas/peppol-document-response-line-response-schema';
|
|
6
|
+
import { opaque } from '#/schemas/utils/opaque';
|
|
7
|
+
|
|
8
|
+
export class PeppolMessageLevelResponseDocumentResponse extends opaque<PeppolMessageLevelResponseDocumentResponse>()(
|
|
9
|
+
Schema.Struct({
|
|
10
|
+
/**
|
|
11
|
+
* @summary Response information
|
|
12
|
+
*
|
|
13
|
+
* @name `cac:Response`
|
|
14
|
+
*
|
|
15
|
+
* @cardinality (1..1)
|
|
16
|
+
*/
|
|
17
|
+
response: PeppolDocumentResponseDocument,
|
|
18
|
+
/**
|
|
19
|
+
* @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.
|
|
20
|
+
* The message level response message may only cover exactly one business document. The element
|
|
21
|
+
* `cac:DocumentResponse/cac:DocumentReference/cbc:ID` **MUST** contain the instance identifier of the envelope of the original business
|
|
22
|
+
* document.
|
|
23
|
+
*
|
|
24
|
+
* @summary Document reference
|
|
25
|
+
*/
|
|
26
|
+
documentReference: PeppolDocumentResponseDocumentReference,
|
|
27
|
+
/**
|
|
28
|
+
* @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
|
|
29
|
+
* the errors in the business document.
|
|
30
|
+
*
|
|
31
|
+
* @summary Line response information
|
|
32
|
+
*/
|
|
33
|
+
lineResponse: Schema.Array(PeppolDocumentResponseLineResponse),
|
|
34
|
+
})
|
|
35
|
+
) {}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
|
|
3
|
+
import { PeppolIdentifier } from '#/schemas/fields/peppol-identifier-schema';
|
|
4
|
+
import { opaque } from '#/schemas/utils/opaque';
|
|
5
|
+
|
|
6
|
+
export class PeppolMessageLevelResponseParty extends opaque<PeppolMessageLevelResponseParty>()(
|
|
7
|
+
Schema.Struct({
|
|
8
|
+
/**
|
|
9
|
+
* @description Identifies the sender party's electronic address.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* 7300010000001;
|
|
13
|
+
*
|
|
14
|
+
* @summary Sender/Receiver party's electronic address
|
|
15
|
+
*
|
|
16
|
+
* @name `cbc:EndpointID (+ @schemeID)`
|
|
17
|
+
*/
|
|
18
|
+
endpointId: Schema.optional(PeppolIdentifier),
|
|
19
|
+
})
|
|
20
|
+
) {}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
|
|
3
|
+
import { MESSAGE_LEVEL_RESPONSE_PROFILE_ID } from '#/constants/message-level-response-profile-id';
|
|
4
|
+
import { PeppolIsoDateString } from '#/schemas/peppol-iso-date-string';
|
|
5
|
+
import { PeppolMessageLevelResponseDocumentResponse } from '#/schemas/peppol-message-level-response-document-response-schema';
|
|
6
|
+
import { PeppolMessageLevelResponseParty } from '#/schemas/peppol-message-level-response-party-schema';
|
|
7
|
+
import { opaque } from '#/schemas/utils/opaque';
|
|
8
|
+
import { PeppolXsdTime } from '#/schemas/utils/peppol-xsd-time-schema';
|
|
9
|
+
|
|
10
|
+
export class PeppolMessageLevelResponse extends opaque<PeppolMessageLevelResponse>()(
|
|
11
|
+
Schema.Struct({
|
|
12
|
+
/**
|
|
13
|
+
* @description Identifies the specification of content and rules that apply to the transaction.
|
|
14
|
+
*
|
|
15
|
+
* @default `urn:fdc:peppol.eu:poacc:trns:mlr:3`
|
|
16
|
+
*
|
|
17
|
+
* @summary Specification identification
|
|
18
|
+
*
|
|
19
|
+
* @name `cbc:CustomizationID`
|
|
20
|
+
*
|
|
21
|
+
* @cardinality 1..1
|
|
22
|
+
*/
|
|
23
|
+
customizationId: Schema.String,
|
|
24
|
+
/**
|
|
25
|
+
* @description Identifies the BII profile or business process context in which the transaction appears.
|
|
26
|
+
*
|
|
27
|
+
* @remarks
|
|
28
|
+
* Fixed value to `urn:fdc:peppol.eu:poacc:bis:mlr:3`
|
|
29
|
+
*
|
|
30
|
+
* @default `urn:fdc:peppol.eu:poacc:bis:mlr:3`
|
|
31
|
+
*
|
|
32
|
+
* @summary Business process type identifier
|
|
33
|
+
*
|
|
34
|
+
* @name `cbc:ProfileID`
|
|
35
|
+
*/
|
|
36
|
+
profileId: Schema.Literal(MESSAGE_LEVEL_RESPONSE_PROFILE_ID),
|
|
37
|
+
/**
|
|
38
|
+
* @description A transaction instance must contain an identifier. The identifier enables positive referencing the transaction instance for various puropses
|
|
39
|
+
* including referencing between transactions that are part of the same process.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* 23;
|
|
43
|
+
*
|
|
44
|
+
* @summary Response identifier
|
|
45
|
+
*
|
|
46
|
+
* @name cbc:ID
|
|
47
|
+
*/
|
|
48
|
+
id: Schema.String,
|
|
49
|
+
/**
|
|
50
|
+
* @description The date on which the transaction instance was issued.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* 2017 - 11 - 01;
|
|
54
|
+
*
|
|
55
|
+
* @summary Response issue date
|
|
56
|
+
*
|
|
57
|
+
* @format `YYYY-MM-DD`
|
|
58
|
+
*
|
|
59
|
+
* @name cbc:IssueDate
|
|
60
|
+
*/
|
|
61
|
+
issueDate: PeppolIsoDateString,
|
|
62
|
+
/**
|
|
63
|
+
* @description The time at which the transaction instance was issued.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* 12:01:34
|
|
67
|
+
*
|
|
68
|
+
* @summary Response issue time
|
|
69
|
+
*
|
|
70
|
+
* @format `hh:mm:ss`
|
|
71
|
+
*
|
|
72
|
+
* @name cbc:IssueDate
|
|
73
|
+
*/
|
|
74
|
+
issueTime: Schema.optional(PeppolXsdTime),
|
|
75
|
+
/**
|
|
76
|
+
* @description The party sending an electronic message level response message back to the sending party of the business document.
|
|
77
|
+
*
|
|
78
|
+
* @summary Sender information
|
|
79
|
+
*/
|
|
80
|
+
senderParty: PeppolMessageLevelResponseParty,
|
|
81
|
+
/**
|
|
82
|
+
* @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
|
|
83
|
+
* party as the sender of the business document.
|
|
84
|
+
*
|
|
85
|
+
* @summary Receiver information
|
|
86
|
+
*/
|
|
87
|
+
receiverParty: PeppolMessageLevelResponseParty,
|
|
88
|
+
/**
|
|
89
|
+
* @description The document response is used to indicate the result of business document validation. The element
|
|
90
|
+
* `cac:DocumentResponse/cac:Response/cbc:ResponseCode` MUST contain the overall result code.
|
|
91
|
+
*
|
|
92
|
+
* @summary Document response
|
|
93
|
+
*
|
|
94
|
+
* @name `cac:DocumentResponse`
|
|
95
|
+
*/
|
|
96
|
+
documentResponse: PeppolMessageLevelResponseDocumentResponse,
|
|
97
|
+
})
|
|
98
|
+
) {}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { DateTime } from 'effect';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @description Pads a number with leading zeros, preserving a leading `-` for negative values. Extracted from date-fns
|
|
5
|
+
* `pkgs/core/src/_lib/addLeadingZeros/index.ts`.
|
|
6
|
+
*
|
|
7
|
+
* @param value - The number to pad.
|
|
8
|
+
* @param targetLength - The total length the output should have.
|
|
9
|
+
*
|
|
10
|
+
* @returns The zero-padded string.
|
|
11
|
+
*/
|
|
12
|
+
const addLeadingZeros = (value: number, targetLength: number): string => {
|
|
13
|
+
const sign = value < 0 ? '-' : '';
|
|
14
|
+
return sign + Math.abs(value).toString().padStart(targetLength, '0');
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @description The `HH`, `mm` and `ss` tokens extracted from the date-fns `lightFormatters` (`pkgs/core/src/_lib/format/lightFormatters/index.ts`). The date-fns
|
|
19
|
+
* implementation reads the local components of a `Date`; this port reads the UTC components because the caller hands it a `Date` whose UTC fields
|
|
20
|
+
* already hold the wall-clock time of the target time zone.
|
|
21
|
+
*
|
|
22
|
+
* @param date - A `Date` whose UTC fields hold the wall-clock time to format.
|
|
23
|
+
*
|
|
24
|
+
* @returns The zero-padded `HH` component.
|
|
25
|
+
*/
|
|
26
|
+
const formatHours = (date: Date): string => addLeadingZeros(date.getUTCHours(), 2);
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @description See {@link formatHours}. Formats the `mm` token.
|
|
30
|
+
*
|
|
31
|
+
* @param date - A `Date` whose UTC fields hold the wall-clock time to format.
|
|
32
|
+
*
|
|
33
|
+
* @returns The zero-padded `mm` component.
|
|
34
|
+
*/
|
|
35
|
+
const formatMinutes = (date: Date): string => addLeadingZeros(date.getUTCMinutes(), 2);
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @description See {@link formatHours}. Formats the `ss` token. Fractional seconds are dropped because XSD `time` values produced by this library carry second
|
|
39
|
+
* precision.
|
|
40
|
+
*
|
|
41
|
+
* @param date - A `Date` whose UTC fields hold the wall-clock time to format.
|
|
42
|
+
*
|
|
43
|
+
* @returns The zero-padded `ss` component.
|
|
44
|
+
*/
|
|
45
|
+
const formatSeconds = (date: Date): string => addLeadingZeros(date.getUTCSeconds(), 2);
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @description Formats a UTC offset as the ISO-8601 `XXX` token (`+HH:MM` / `-HH:MM`). The digit handling is extracted from date-fns `formatTimezone`
|
|
49
|
+
* (`pkgs/core/src/_lib/format/formatters/index.ts`) with two deliberate differences:
|
|
50
|
+
*
|
|
51
|
+
* 1. The offset is expressed in the standard direction (positive means east of UTC) instead of JavaScript's inverted `Date#getTimezoneOffset` sign.
|
|
52
|
+
* 2. A zero offset returns an empty string. date-fns renders it as `Z`; XSD `time` wants the time zone to be optional, so UTC produces no offset at all.
|
|
53
|
+
*
|
|
54
|
+
* @param offsetInMinutes - The offset east of UTC in minutes (for example `+05:30` is `330`).
|
|
55
|
+
*
|
|
56
|
+
* @returns The formatted offset, or an empty string for UTC.
|
|
57
|
+
*/
|
|
58
|
+
export const formatTimeZoneOffset = (offsetInMinutes: number): string => {
|
|
59
|
+
if (offsetInMinutes === 0) return '';
|
|
60
|
+
const sign = offsetInMinutes > 0 ? '+' : '-';
|
|
61
|
+
const absoluteOffset = Math.abs(offsetInMinutes);
|
|
62
|
+
const hours = addLeadingZeros(Math.trunc(absoluteOffset / 60), 2);
|
|
63
|
+
const minutes = addLeadingZeros(absoluteOffset % 60, 2);
|
|
64
|
+
return `${sign}${hours}:${minutes}`;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* @description Formats a `DateTime` as an XSD `time` lexical value: `HH:mm:ss` followed by an optional `±HH:MM` offset. The offset is omitted for UTC, so a UTC
|
|
69
|
+
* value encodes as bare `HH:mm:ss` while a zoned value encodes as `HH:mm:ss±HH:MM`. Fractional seconds are intentionally dropped to match the second
|
|
70
|
+
* precision the schema round-trips.
|
|
71
|
+
*
|
|
72
|
+
* @param date - The `DateTime` to format. It is rendered in its own time zone, not normalised to UTC.
|
|
73
|
+
*
|
|
74
|
+
* @returns The XSD `time` string.
|
|
75
|
+
*/
|
|
76
|
+
export const formatXsdTime = (date: DateTime.DateTime): string => {
|
|
77
|
+
const wallClock = DateTime.toDate(date);
|
|
78
|
+
const offsetInMinutes = (wallClock.getTime() - DateTime.toEpochMillis(date)) / (60 * 1000);
|
|
79
|
+
return `${formatHours(wallClock)}:${formatMinutes(wallClock)}:${formatSeconds(wallClock)}${formatTimeZoneOffset(offsetInMinutes)}`;
|
|
80
|
+
};
|
|
@@ -7,4 +7,4 @@ export * from './is-valid-invoice-type-code';
|
|
|
7
7
|
export * from './is-valid-process';
|
|
8
8
|
export * from './quantity-unit-code-to-intl-unit';
|
|
9
9
|
export * from './peppol-vat-regex-schema';
|
|
10
|
-
export
|
|
10
|
+
export { PeppolXsdTime } from './peppol-xsd-time-schema';
|