@endevops/peppol-schema 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/constants.d.ts +131 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +114 -1
- package/dist/constants.js.map +1 -1
- package/dist/{index-BBzPjq7o.d.ts → index-XG-N6PcG.d.ts} +1702 -724
- package/dist/index-XG-N6PcG.d.ts.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1247 -200
- package/dist/index.js.map +1 -1
- package/dist/invoice-response-code-not-needs-schema-DNrfKYLh.js +36 -0
- package/dist/invoice-response-code-not-needs-schema-DNrfKYLh.js.map +1 -0
- package/dist/invoice-response-codes.d.ts +28 -0
- package/dist/invoice-response-codes.d.ts.map +1 -1
- package/dist/invoice-response-codes.js +11 -1
- package/dist/invoice-response-codes.js.map +1 -1
- package/dist/{is-valid-abn-160i38PG.js → is-valid-abn-D7eSygBG.js} +115 -2
- package/dist/is-valid-abn-D7eSygBG.js.map +1 -0
- package/dist/{is-valid-mod97-0208-CzMOXMO-.js → is-valid-mod97-0208-CjR324eG.js} +11 -1
- package/dist/is-valid-mod97-0208-CjR324eG.js.map +1 -0
- package/dist/message-level-response-profile-id-B9c0A7S_.js +27 -0
- package/dist/message-level-response-profile-id-B9c0A7S_.js.map +1 -0
- package/dist/{nodable-parser-CyDZtLCK.js → nodable-parser-CupS2H55.js} +31 -1
- package/dist/nodable-parser-CupS2H55.js.map +1 -0
- package/dist/schematron.d.ts +57 -1
- package/dist/schematron.d.ts.map +1 -1
- package/dist/schematron.js +458 -7
- package/dist/schematron.js.map +1 -1
- package/dist/validations.d.ts +132 -0
- package/dist/validations.d.ts.map +1 -1
- package/dist/validations.js +11 -2
- package/dist/validations.js.map +1 -1
- package/dist/values.d.ts +67 -2
- package/dist/values.d.ts.map +1 -1
- package/dist/xml.d.ts +30 -0
- package/dist/xml.d.ts.map +1 -1
- package/dist/xml.js +10 -1
- package/dist/xml.js.map +1 -1
- package/package.json +1 -1
- package/src/constants/credit-note-doctype-id.ts +9 -0
- package/src/constants/credit-note-process-id.ts +9 -0
- package/src/constants/document-scheme.ts +9 -0
- package/src/constants/invoice-doctype-id.ts +9 -0
- package/src/constants/invoice-process-id.ts +10 -0
- package/src/constants/invoice-response-doctype-id.ts +10 -0
- package/src/constants/invoice-response-process-id.ts +9 -0
- package/src/constants/invoice-response-profile-id.ts +9 -0
- package/src/constants/message-level-response-doctype-id.ts +10 -0
- package/src/constants/message-level-response-process-id.ts +9 -0
- package/src/constants/message-level-response-profile-id.ts +9 -0
- package/src/constants/participant-scheme.ts +10 -0
- package/src/constants/process-scheme.ts +9 -0
- package/src/constants/transport-profile.ts +10 -0
- package/src/decoders/fields/decode-invoice-message-document-party.ts +2 -2
- package/src/decoders/fields/decode-parties-tax-scheme.ts +2 -2
- package/src/decoders/fields/decode-party-legal-entity.ts +2 -2
- package/src/decoders/fields/decode-party-tax-scheme.ts +2 -2
- package/src/decoders/fields/decode-tax-category.ts +1 -1
- package/src/decoders/fields/decode-tax-representative-party.ts +2 -2
- package/src/decoders/fields/encode-message-party.ts +2 -2
- package/src/decoders/fields/encode-parties-tax-scheme.ts +3 -3
- package/src/decoders/fields/encode-party-legal-entity.ts +1 -1
- package/src/decoders/fields/encode-party-tax-scheme.ts +2 -2
- package/src/decoders/fields/encode-tax-representative-party.ts +2 -2
- package/src/invoice-response-codes/invoice-response-code-needs-schema.ts +9 -0
- package/src/invoice-response-codes/invoice-response-code-not-needs-schema.ts +9 -0
- package/src/invoice-response-codes/invoice-response-codes-order.ts +10 -0
- package/src/peppol-validations/add-piva.ts +12 -0
- package/src/peppol-validations/check-cf.ts +11 -0
- package/src/peppol-validations/check-cf16.ts +12 -0
- package/src/peppol-validations/check-piva-se-it.ts +11 -0
- package/src/peppol-validations/check-piva.ts +11 -0
- package/src/peppol-validations/check-se-orgnr.ts +9 -0
- package/src/peppol-validations/greek-tin-verification.ts +9 -0
- package/src/peppol-validations/is-valid-abn.ts +9 -0
- package/src/peppol-validations/is-valid-gln.ts +10 -0
- package/src/peppol-validations/is-valid-iban.ts +10 -0
- package/src/peppol-validations/is-valid-mod11.ts +9 -0
- package/src/peppol-validations/is-valid-mod97-0208.ts +10 -0
- package/src/peppol-validations/luhn-check.ts +9 -0
- package/src/schemas/fields/default-customization-id.ts +9 -0
- package/src/schemas/fields/default-profile-id.ts +9 -0
- package/src/schemas/fields/peppol-additional-document-reference-schema.ts +61 -20
- package/src/schemas/fields/peppol-address-schema.ts +25 -2
- package/src/schemas/fields/peppol-allowance-charge-schema.ts +63 -9
- package/src/schemas/fields/peppol-amount-schema.ts +15 -2
- package/src/schemas/fields/peppol-base-line-schema.ts +12 -2
- package/src/schemas/fields/peppol-billing-reference-schema.ts +13 -0
- package/src/schemas/fields/peppol-binary-object-schema.ts +12 -4
- package/src/schemas/fields/peppol-contact-schema.ts +11 -0
- package/src/schemas/fields/peppol-credit-note-line-schema.ts +7 -2
- package/src/schemas/fields/peppol-delivery-schema.ts +44 -2
- package/src/schemas/fields/peppol-identifier-schema.ts +8 -0
- package/src/schemas/fields/peppol-invoice-line-period-schema.ts +11 -0
- package/src/schemas/fields/peppol-invoice-line-schema.ts +9 -2
- package/src/schemas/fields/peppol-invoice-period-schema.ts +2 -2
- package/src/schemas/fields/peppol-item-classification-schema.ts +2 -2
- package/src/schemas/fields/peppol-line-allowance-charge-schema.ts +56 -8
- package/src/schemas/fields/peppol-line-item-schema.ts +66 -6
- package/src/schemas/fields/peppol-line-price-allowance-charge-schema.ts +20 -0
- package/src/schemas/fields/peppol-line-price-schema.ts +2 -0
- package/src/schemas/fields/peppol-order-reference-schema.ts +2 -0
- package/src/schemas/fields/peppol-party-base-schema.ts +36 -4
- package/src/schemas/fields/peppol-party-legal-entity-schema.ts +10 -2
- package/src/schemas/fields/peppol-party-tax-scheme-schema.ts +4 -4
- package/src/schemas/fields/peppol-payee-party-schema.ts +8 -8
- package/src/schemas/fields/peppol-payment-means-schema.ts +62 -2
- package/src/schemas/fields/peppol-payment-terms-schema.ts +2 -0
- package/src/schemas/fields/peppol-quantity-schema.ts +4 -2
- package/src/schemas/fields/peppol-reference-schema.ts +20 -1
- package/src/schemas/fields/peppol-tax-category-schema.ts +12 -2
- package/src/schemas/fields/peppol-tax-representative-schema.ts +2 -2
- package/src/schemas/fields/peppol-tax-subtotal-category-schema.ts +3 -0
- package/src/schemas/fields/peppol-tax-subtotal-schema.ts +2 -0
- package/src/schemas/fields/peppol-tax-totals-base-schema.ts +3 -3
- package/src/schemas/peppol-billing-base-schema.ts +49 -9
- package/src/schemas/peppol-credit-note-schema.ts +2 -2
- package/src/schemas/peppol-document-response-document-reference-schema.ts +12 -4
- package/src/schemas/peppol-document-response-document-schema.ts +5 -5
- package/src/schemas/peppol-document-response-line-response-content-schema.ts +22 -2
- package/src/schemas/peppol-document-response-line-response-schema.ts +23 -2
- package/src/schemas/peppol-document-schema.ts +69 -6
- package/src/schemas/peppol-invoice-response-document-actual-response-schema.ts +53 -4
- package/src/schemas/peppol-invoice-response-document-actual-response-status-schema.ts +22 -4
- package/src/schemas/peppol-invoice-response-schema.ts +54 -6
- package/src/schemas/peppol-invoice-response-status-reason-code-schema.ts +36 -8
- package/src/schemas/peppol-invoice-schema.ts +30 -2
- package/src/schemas/peppol-message-level-response-document-response-schema.ts +10 -0
- package/src/schemas/peppol-message-level-response-party-schema.ts +10 -0
- package/src/schemas/peppol-message-level-response-schema.ts +18 -0
- package/src/schemas/utils/format-quantity-with-unit.ts +19 -0
- package/src/schemas/utils/get-credit-note-type-code-description.ts +12 -0
- package/src/schemas/utils/get-invoice-type-code-description.ts +12 -0
- package/src/schemas/utils/is-valid-credit-note-type-code.ts +13 -0
- package/src/schemas/utils/is-valid-invoice-type-code.ts +13 -0
- package/src/schemas/utils/is-valid-process.ts +13 -0
- package/src/schemas/utils/peppol-base-64-schema.ts +7 -4
- package/src/schemas/utils/peppol-vat-regex-schema.ts +38 -30
- package/src/schemas/utils/peppol-xsd-time-schema.ts +12 -2
- package/src/schemas/utils/quantity-unit-code-to-intl-unit.ts +34 -0
- package/src/schemas/values/additional-document-reference-code-schema.ts +9 -15
- package/src/schemas/values/allowance-charge-reason-code-schema.ts +12 -14
- package/src/schemas/values/application-response-type-code-schema.ts +10 -14
- package/src/schemas/values/charge-reason-code-schema.ts +12 -14
- package/src/schemas/values/credit-note-type-code-schema.ts +8 -14
- package/src/schemas/values/currency-code-schema.ts +13 -16
- package/src/schemas/values/document-type-schemes-schema.ts +9 -5
- package/src/schemas/values/document-type-values-schema.ts +5 -6
- package/src/schemas/values/duty-tax-fee-category-schema.ts +15 -13
- package/src/schemas/values/electronic-codes-schema.ts +10 -12
- package/src/schemas/values/icd-codes-schema.ts +8 -12
- package/src/schemas/values/invoice-status-code-schema.ts +10 -12
- package/src/schemas/values/invoice-type-code-schema.ts +10 -12
- package/src/schemas/values/item-classification-codes-schema.ts +10 -12
- package/src/schemas/values/mime-codes-schema.ts +12 -14
- package/src/schemas/values/op-status-action-schema.ts +10 -12
- package/src/schemas/values/op-status-reason-schema.ts +10 -12
- package/src/schemas/values/participant-identifier-code-schema.ts +10 -13
- package/src/schemas/values/payment-means-code-schema.ts +10 -12
- package/src/schemas/values/peppol-country-code-schema.ts +7 -9
- package/src/schemas/values/peppol-document-type-code-schema.ts +10 -12
- package/src/schemas/values/peppol-document-type-schema.ts +12 -21
- package/src/schemas/values/peppol-process-schema.ts +19 -15
- package/src/schemas/values/process-from-document-type-schema.ts +3 -3
- package/src/schemas/values/quantity-unit-codes-schema.ts +10 -12
- package/src/schemas/values/vat-date-code-schema.ts +12 -5
- package/src/schemas/values/vatex-code-schema.ts +8 -12
- package/src/schematron/errors.ts +14 -0
- package/src/schematron/helpers.ts +457 -11
- package/src/schematron/run-all-rules.ts +10 -0
- package/src/schematron/schematron.ts +25 -0
- package/src/xml/builder-options.ts +9 -0
- package/src/xml/common-xml-options.ts +9 -0
- package/src/xml/nodable-parser.ts +12 -0
- package/src/xml/parser-options.ts +9 -0
- package/dist/index-BBzPjq7o.d.ts.map +0 -1
- package/dist/invoice-response-code-not-needs-schema-p_RKKNLc.js +0 -18
- package/dist/invoice-response-code-not-needs-schema-p_RKKNLc.js.map +0 -1
- package/dist/is-valid-abn-160i38PG.js.map +0 -1
- package/dist/is-valid-mod97-0208-CzMOXMO-.js.map +0 -1
- package/dist/message-level-response-profile-id-DBpOW91B.js +0 -9
- package/dist/message-level-response-profile-id-DBpOW91B.js.map +0 -1
- package/dist/nodable-parser-CyDZtLCK.js.map +0 -1
- package/dist/vat-dates.generated-CxFvt7m3.d.ts +0 -68
- package/dist/vat-dates.generated-CxFvt7m3.d.ts.map +0 -1
|
@@ -3,10 +3,20 @@ import { Effect, Schema } from 'effect';
|
|
|
3
3
|
import { BaseLineAllowanceCharge } from '#/schemas/fields/peppol-line-allowance-charge-schema.ts';
|
|
4
4
|
import { PeppolTaxCategory } from '#/schemas/fields/peppol-tax-category-schema.ts';
|
|
5
5
|
import { opaque } from '#/schemas/utils/opaque.ts';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
6
|
+
import { PeppolAllowanceChargeReasonCode } from '#/schemas/values/allowance-charge-reason-code-schema.ts';
|
|
7
|
+
import { PeppolChargeReasonCode } from '#/schemas/values/charge-reason-code-schema.ts';
|
|
8
|
+
import { PeppolDutyTaxFeeCategoryCode } from '#/schemas/values/duty-tax-fee-category-schema.ts';
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* @description The identifier of the tax scheme that applies to a document level allowance or charge. Defaults to `VAT` when the value is absent.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* { id: 'VAT' }
|
|
16
|
+
* ```;
|
|
17
|
+
*
|
|
18
|
+
* @see {@link PeppolTaxCategory}
|
|
19
|
+
*/
|
|
10
20
|
export class PeppolTaxCategoryTaxSchemeId extends opaque<PeppolTaxCategoryTaxSchemeId>()(
|
|
11
21
|
Schema.Struct({
|
|
12
22
|
/**
|
|
@@ -18,6 +28,22 @@ export class PeppolTaxCategoryTaxSchemeId extends opaque<PeppolTaxCategoryTaxSch
|
|
|
18
28
|
})
|
|
19
29
|
) {}
|
|
20
30
|
|
|
31
|
+
/**
|
|
32
|
+
* @description Shared fields for a document level allowance or charge. Combines the common line allowance and charge fields with the tax category that applies to
|
|
33
|
+
* the document level amount.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* {
|
|
38
|
+
* amount: { value: 25, currencyId: 'EUR' },
|
|
39
|
+
* chargeIndicator: true,
|
|
40
|
+
* allowanceChargeReason: 'Insurance',
|
|
41
|
+
* taxCategory: { id: 'S', percent: 25, taxSchemeId: { id: 'VAT' } }
|
|
42
|
+
* }
|
|
43
|
+
* ```;
|
|
44
|
+
*
|
|
45
|
+
* @see {@link PeppolAllowanceCharge}
|
|
46
|
+
*/
|
|
21
47
|
export class BaseAllowanceCharge extends opaque<BaseAllowanceCharge>()(
|
|
22
48
|
Schema.Struct({
|
|
23
49
|
...BaseLineAllowanceCharge.fields,
|
|
@@ -36,7 +62,7 @@ export class BaseAllowanceCharge extends opaque<BaseAllowanceCharge>()(
|
|
|
36
62
|
*
|
|
37
63
|
* @name `cbc:ID`
|
|
38
64
|
*/
|
|
39
|
-
id:
|
|
65
|
+
id: PeppolDutyTaxFeeCategoryCode,
|
|
40
66
|
/**
|
|
41
67
|
* @description The VAT rate, represented as percentage that applies to the document level allowance or charge.
|
|
42
68
|
*
|
|
@@ -57,13 +83,24 @@ export class BaseAllowanceCharge extends opaque<BaseAllowanceCharge>()(
|
|
|
57
83
|
})
|
|
58
84
|
) {}
|
|
59
85
|
|
|
86
|
+
/**
|
|
87
|
+
* @description A document level allowance, marked by a `cbc:ChargeIndicator` of `false`. Adds an allowance reason code to the shared document level allowance and
|
|
88
|
+
* charge fields.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```ts
|
|
92
|
+
* { amount: { value: 200, currencyId: 'EUR' }, chargeIndicator: false, allowanceChargeReasonCode: '95' }
|
|
93
|
+
* ```;
|
|
94
|
+
*
|
|
95
|
+
* @see {@link PeppolAllowanceCharge}
|
|
96
|
+
*/
|
|
60
97
|
export class PeppolAllowance extends opaque<PeppolAllowance>()(
|
|
61
98
|
Schema.Struct({
|
|
62
99
|
...BaseAllowanceCharge.fields,
|
|
63
100
|
/**
|
|
64
101
|
* @name cbc:AllowanceChargeReasonCode
|
|
65
102
|
*/
|
|
66
|
-
allowanceChargeReasonCode: Schema.optional(
|
|
103
|
+
allowanceChargeReasonCode: Schema.optional(PeppolAllowanceChargeReasonCode),
|
|
67
104
|
/**
|
|
68
105
|
* @name cbc:ChargeIndicator
|
|
69
106
|
*
|
|
@@ -75,13 +112,24 @@ export class PeppolAllowance extends opaque<PeppolAllowance>()(
|
|
|
75
112
|
})
|
|
76
113
|
) {}
|
|
77
114
|
|
|
115
|
+
/**
|
|
116
|
+
* @description A document level charge, marked by a `cbc:ChargeIndicator` of `true`. Adds a charge reason code to the shared document level allowance and charge
|
|
117
|
+
* fields.
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* ```ts
|
|
121
|
+
* { amount: { value: 25, currencyId: 'EUR' }, chargeIndicator: true, allowanceChargeReasonCode: 'AA' }
|
|
122
|
+
* ```;
|
|
123
|
+
*
|
|
124
|
+
* @see {@link PeppolAllowanceCharge}
|
|
125
|
+
*/
|
|
78
126
|
export class PeppolCharge extends opaque<PeppolCharge>()(
|
|
79
127
|
Schema.Struct({
|
|
80
128
|
...BaseAllowanceCharge.fields,
|
|
81
129
|
/**
|
|
82
130
|
* @name cbc:AllowanceChargeReasonCode
|
|
83
131
|
*/
|
|
84
|
-
allowanceChargeReasonCode: Schema.optional(
|
|
132
|
+
allowanceChargeReasonCode: Schema.optional(PeppolChargeReasonCode),
|
|
85
133
|
/**
|
|
86
134
|
* @name cbc:ChargeIndicator
|
|
87
135
|
*
|
|
@@ -94,11 +142,17 @@ export class PeppolCharge extends opaque<PeppolCharge>()(
|
|
|
94
142
|
) {}
|
|
95
143
|
|
|
96
144
|
/**
|
|
145
|
+
* @description A document level allowance or charge, selected by the `cbc:ChargeIndicator` value: `false` selects an allowance, `true` selects a charge.
|
|
146
|
+
*
|
|
97
147
|
* @summary Allowance/Charge
|
|
98
148
|
*
|
|
99
149
|
* @name cac:AllowanceCharge
|
|
100
150
|
*/
|
|
101
|
-
export
|
|
151
|
+
export class PeppolAllowanceCharge extends Schema.Union([PeppolAllowance, PeppolCharge]).annotate({ message: 'unable to decode allowance charge' }) {}
|
|
102
152
|
|
|
103
|
-
|
|
104
|
-
|
|
153
|
+
/**
|
|
154
|
+
* @description Encoded form of {@link PeppolAllowanceCharge} produced by the Effect Schema codec.
|
|
155
|
+
*
|
|
156
|
+
* @see {@link PeppolAllowanceCharge}
|
|
157
|
+
*/
|
|
158
|
+
export type PeppolAllowanceChargeEncoded = Schema.Codec.Encoded<typeof PeppolAllowanceCharge>;
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import { Schema } from 'effect';
|
|
2
2
|
|
|
3
3
|
import { opaque } from '#/schemas/utils/opaque.ts';
|
|
4
|
-
import {
|
|
4
|
+
import { PeppolCurrencyCode } from '#/schemas/values/currency-code-schema.ts';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
+
* @description A monetary amount paired with the currency it is expressed in. Wraps a `cbc:*` amount element whose `@currencyID` attribute names the currency and
|
|
8
|
+
* whose text is the value.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* { currencyId: 'EUR', value: 4500.0 }
|
|
13
|
+
* ```;
|
|
14
|
+
*
|
|
7
15
|
* @summary Monetary amount with mandatory currency
|
|
8
16
|
*
|
|
9
17
|
* @name cbc:* (+ @currencyID)
|
|
@@ -13,11 +21,16 @@ export class PeppolAmount extends opaque<PeppolAmount>()(
|
|
|
13
21
|
/**
|
|
14
22
|
* @name \@currencyID
|
|
15
23
|
*/
|
|
16
|
-
currencyId:
|
|
24
|
+
currencyId: PeppolCurrencyCode,
|
|
17
25
|
/**
|
|
18
26
|
* @name #text (value)
|
|
19
27
|
*/
|
|
20
28
|
value: Schema.Finite,
|
|
21
29
|
})
|
|
22
30
|
) {}
|
|
31
|
+
/**
|
|
32
|
+
* @description Encoded form of {@link PeppolAmount} produced by the Effect Schema codec. Fields mirror the decoded shape.
|
|
33
|
+
*
|
|
34
|
+
* @see {@link PeppolAmount}
|
|
35
|
+
*/
|
|
23
36
|
export interface PeppolAmountEncoded extends Schema.Codec.Encoded<typeof PeppolAmount> {}
|
|
@@ -3,11 +3,21 @@ import { Effect, Schema } from 'effect';
|
|
|
3
3
|
import { PeppolAmount } from '#/schemas/fields/peppol-amount-schema.ts';
|
|
4
4
|
import { PeppolIdentifier } from '#/schemas/fields/peppol-identifier-schema.ts';
|
|
5
5
|
import { PeppolInvoiceLinePeriod } from '#/schemas/fields/peppol-invoice-line-period-schema.ts';
|
|
6
|
-
import {
|
|
6
|
+
import { PeppolLineAllowanceCharge } from '#/schemas/fields/peppol-line-allowance-charge-schema.ts';
|
|
7
7
|
import { PeppolLineItem } from '#/schemas/fields/peppol-line-item-schema.ts';
|
|
8
8
|
import { PeppolLinePrice } from '#/schemas/fields/peppol-line-price-schema.ts';
|
|
9
9
|
import { opaque } from '#/schemas/utils/opaque.ts';
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* @description A reference to the order line that the Invoice line fulfils. Wraps the `cac:OrderLineReference` element and its `cbc:LineID`.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* { lineId: '123' }
|
|
17
|
+
* ```;
|
|
18
|
+
*
|
|
19
|
+
* @see {@link PeppolBaseLine}
|
|
20
|
+
*/
|
|
11
21
|
export class PeppolOrderLineReference extends opaque<PeppolOrderLineReference>()(Schema.Struct({ lineId: Schema.String })) {}
|
|
12
22
|
|
|
13
23
|
/**
|
|
@@ -37,7 +47,7 @@ export class PeppolBaseLine extends opaque<PeppolBaseLine>()(
|
|
|
37
47
|
*
|
|
38
48
|
* @cardinality 0..n
|
|
39
49
|
*/
|
|
40
|
-
allowanceCharges: Schema.optional(Schema.Array(
|
|
50
|
+
allowanceCharges: Schema.optional(Schema.Array(PeppolLineAllowanceCharge)),
|
|
41
51
|
/**
|
|
42
52
|
* @summary Line object identifier
|
|
43
53
|
*
|
|
@@ -3,6 +3,17 @@ import { Schema } from 'effect';
|
|
|
3
3
|
import { PeppolIsoDateString } from '#/schemas/peppol-iso-date-string.ts';
|
|
4
4
|
import { opaque } from '#/schemas/utils/opaque.ts';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* @description A reference to an Invoice that was previously sent by the Seller, carrying the preceding invoice number and, when the number is not unique, its
|
|
8
|
+
* issue date. Wraps the `cac:InvoiceDocumentReference` element.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* { id: 'inv123', issueDate: '2017-09-15' }
|
|
13
|
+
* ```;
|
|
14
|
+
*
|
|
15
|
+
* @see {@link PeppolBillingReference}
|
|
16
|
+
*/
|
|
6
17
|
export class PeppolInvoiceDocumentReference extends opaque<PeppolInvoiceDocumentReference>()(
|
|
7
18
|
Schema.Struct({
|
|
8
19
|
/**
|
|
@@ -33,6 +44,8 @@ export class PeppolInvoiceDocumentReference extends opaque<PeppolInvoiceDocument
|
|
|
33
44
|
) {}
|
|
34
45
|
|
|
35
46
|
/**
|
|
47
|
+
* @description A reference to a preceding Invoice, used when the Invoice corrects or replaces an earlier one. Wraps the `cac:BillingReference` element.
|
|
48
|
+
*
|
|
36
49
|
* @summary PRECEDING INVOICE REFERENCE (0..n)
|
|
37
50
|
*
|
|
38
51
|
* @name cac:BillingReference
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
import { Schema } from 'effect';
|
|
2
2
|
|
|
3
3
|
import { opaque } from '#/schemas/utils/opaque.ts';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { PeppolBase64 } from '#/schemas/utils/peppol-base-64-schema.ts';
|
|
5
|
+
import { PeppolMimeCode } from '#/schemas/values/mime-codes-schema.ts';
|
|
6
6
|
|
|
7
7
|
// RFC 4648 §5 — Base64url Encoding: URL/file-safe alphabet (A-Z a-z 0-9 - _), optional `=` padding.
|
|
8
8
|
// Effect port of `z.base64url()`: keeps the value as a plain string and only validates the shape.
|
|
9
9
|
const base64UrlSchema = Schema.String.check(Schema.isPattern(/^[A-Za-z0-9\-_]+={0,2}$/)).annotate({ message: 'Invalid base64url' });
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
+
* @description An attached document embedded in the Invoice as a Base64 encoded binary object, together with its MIME type and file name. Wraps the
|
|
13
|
+
* `cbc:EmbeddedDocumentBinaryObject` element.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* { content: 'aHR0cHM6Ly90ZXN0LXZlZmEuZGlmaS5uby9wZXBwb2xiaXM=', mimeCode: 'text/csv', filename: 'Hours - spent.csv' }
|
|
18
|
+
* ```;
|
|
19
|
+
*
|
|
12
20
|
* @summary Binary object for attachments
|
|
13
21
|
*
|
|
14
22
|
* @name cbc:EmbeddedDocumentBinaryObject (+ @mimeCode, @filename)
|
|
@@ -25,7 +33,7 @@ export class PeppolBinaryObject extends opaque<PeppolBinaryObject>()(
|
|
|
25
33
|
*
|
|
26
34
|
* @name `#text` (Base64 content)
|
|
27
35
|
*/
|
|
28
|
-
content: Schema.Union([
|
|
36
|
+
content: Schema.Union([PeppolBase64, base64UrlSchema]),
|
|
29
37
|
/**
|
|
30
38
|
* @description The mime code of the attached document.
|
|
31
39
|
*
|
|
@@ -36,7 +44,7 @@ export class PeppolBinaryObject extends opaque<PeppolBinaryObject>()(
|
|
|
36
44
|
*
|
|
37
45
|
* @name `@mimeCode`
|
|
38
46
|
*/
|
|
39
|
-
mimeCode:
|
|
47
|
+
mimeCode: PeppolMimeCode,
|
|
40
48
|
/**
|
|
41
49
|
* @description The file name of the attached document.
|
|
42
50
|
*
|
|
@@ -2,6 +2,17 @@ import { Schema } from 'effect';
|
|
|
2
2
|
|
|
3
3
|
import { opaque } from '#/schemas/utils/opaque.ts';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* @description A contact point for a party, such as the person responsible for receiving the Invoice. Wraps the `cac:Contact` element with an optional name,
|
|
7
|
+
* telephone number and electronic mail address.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* { name: 'Lisa Johnson', telephone: '23434234', electronicMail: 'lj@buyer.se' }
|
|
12
|
+
* ```;
|
|
13
|
+
*
|
|
14
|
+
* @see {@link PeppolPartySchema}
|
|
15
|
+
*/
|
|
5
16
|
export class PeppolContact extends opaque<PeppolContact>()(
|
|
6
17
|
Schema.Struct({
|
|
7
18
|
/**
|
|
@@ -3,7 +3,7 @@ import { Schema } from 'effect';
|
|
|
3
3
|
import { PeppolBaseLine } from '#/schemas/fields/peppol-base-line-schema.ts';
|
|
4
4
|
import { PeppolQuantity } from '#/schemas/fields/peppol-quantity-schema.ts';
|
|
5
5
|
import { opaque } from '#/schemas/utils/opaque.ts';
|
|
6
|
-
import {
|
|
6
|
+
import { PeppolQuantityUnitCode } from '#/schemas/values/quantity-unit-codes-schema.ts';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* @description Credit note line is identical to Invoice line except the quantity element name.
|
|
@@ -35,10 +35,15 @@ export class PeppolCreditNoteLine extends opaque<PeppolCreditNoteLine>()(
|
|
|
35
35
|
*
|
|
36
36
|
* @see {@link quantityUnitCodes}
|
|
37
37
|
*/
|
|
38
|
-
unitCode:
|
|
38
|
+
unitCode: PeppolQuantityUnitCode,
|
|
39
39
|
})
|
|
40
40
|
),
|
|
41
41
|
})
|
|
42
42
|
)
|
|
43
43
|
) {}
|
|
44
|
+
/**
|
|
45
|
+
* @description Encoded form of {@link PeppolCreditNoteLine} produced by the Effect Schema codec. Fields mirror the decoded structure.
|
|
46
|
+
*
|
|
47
|
+
* @see {@link PeppolCreditNoteLine}
|
|
48
|
+
*/
|
|
44
49
|
export interface PeppolCreditNoteLineEncoded extends Schema.Codec.Encoded<typeof PeppolCreditNoteLine> {}
|
|
@@ -2,11 +2,21 @@ import { Schema } from 'effect';
|
|
|
2
2
|
|
|
3
3
|
import { PeppolIsoDateString } from '#/schemas/peppol-iso-date-string.ts';
|
|
4
4
|
import { opaque } from '#/schemas/utils/opaque.ts';
|
|
5
|
-
import {
|
|
5
|
+
import { PeppolIcdCode } from '#/schemas/values/icd-codes-schema.ts';
|
|
6
6
|
|
|
7
7
|
import { PeppolAddress } from './peppol-address-schema.ts';
|
|
8
8
|
import { PeppolIdentifier } from './peppol-identifier-schema.ts';
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* @description The name of the party to which the goods and services are delivered. Wraps the `cac:PartyName` element of the delivery party.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* { name: 'Delivery party Name' }
|
|
16
|
+
* ```;
|
|
17
|
+
*
|
|
18
|
+
* @see {@link PeppolDeliveryParty}
|
|
19
|
+
*/
|
|
10
20
|
export class PeppolDeliveryPartyPartyName extends opaque<PeppolDeliveryPartyPartyName>()(
|
|
11
21
|
Schema.Struct({
|
|
12
22
|
/**
|
|
@@ -20,6 +30,16 @@ export class PeppolDeliveryPartyPartyName extends opaque<PeppolDeliveryPartyPart
|
|
|
20
30
|
})
|
|
21
31
|
) {}
|
|
22
32
|
|
|
33
|
+
/**
|
|
34
|
+
* @description The party to which the goods and services are delivered, when it differs from the Buyer. Wraps the `cac:DeliveryParty` element.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* { partyName: { name: 'Delivery party Name' } }
|
|
39
|
+
* ```;
|
|
40
|
+
*
|
|
41
|
+
* @see {@link PeppolDelivery}
|
|
42
|
+
*/
|
|
23
43
|
export class PeppolDeliveryParty extends opaque<PeppolDeliveryParty>()(
|
|
24
44
|
Schema.Struct({
|
|
25
45
|
/**
|
|
@@ -31,6 +51,17 @@ export class PeppolDeliveryParty extends opaque<PeppolDeliveryParty>()(
|
|
|
31
51
|
})
|
|
32
52
|
) {}
|
|
33
53
|
|
|
54
|
+
/**
|
|
55
|
+
* @description The location at which the goods and services are delivered, identified by an identifier and an optional address. Wraps the `cac:DeliveryLocation`
|
|
56
|
+
* element.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* { id: { id: '9483759475923478', schemeId: '0088' }, address: { cityName: 'Stockholm', countryCode: { identificationCode: 'SE' } } }
|
|
61
|
+
* ```;
|
|
62
|
+
*
|
|
63
|
+
* @see {@link PeppolDelivery}
|
|
64
|
+
*/
|
|
34
65
|
export class PeppolDeliveryLocation extends opaque<PeppolDeliveryLocation>()(
|
|
35
66
|
Schema.Struct({
|
|
36
67
|
/**
|
|
@@ -64,7 +95,7 @@ export class PeppolDeliveryLocation extends opaque<PeppolDeliveryLocation>()(
|
|
|
64
95
|
*
|
|
65
96
|
* @name `@schemeID`
|
|
66
97
|
*/
|
|
67
|
-
schemeId: Schema.optional(
|
|
98
|
+
schemeId: Schema.optional(PeppolIcdCode),
|
|
68
99
|
})
|
|
69
100
|
)
|
|
70
101
|
),
|
|
@@ -79,6 +110,17 @@ export class PeppolDeliveryLocation extends opaque<PeppolDeliveryLocation>()(
|
|
|
79
110
|
})
|
|
80
111
|
) {}
|
|
81
112
|
|
|
113
|
+
/**
|
|
114
|
+
* @description Information about the delivery of the goods and services, such as the actual delivery date, the delivery location and the delivery party. Wraps the
|
|
115
|
+
* `cac:Delivery` element.
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```ts
|
|
119
|
+
* { actualDeliveryDate: '2017-11-01', deliveryLocation: { id: { id: '9483759475923478' } } }
|
|
120
|
+
* ```;
|
|
121
|
+
*
|
|
122
|
+
* @see {@link PeppolDeliveryLocation}
|
|
123
|
+
*/
|
|
82
124
|
export class PeppolDelivery extends opaque<PeppolDelivery>()(
|
|
83
125
|
Schema.Struct({
|
|
84
126
|
/**
|
|
@@ -3,6 +3,14 @@ import { Schema } from 'effect';
|
|
|
3
3
|
import { opaque } from '#/schemas/utils/opaque.ts';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
+
* @description A generic identifier paired with an optional identification scheme identifier. Wraps a `cbc:ID` element and its optional `@schemeID` attribute, and
|
|
7
|
+
* is reused across document references.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* { id: '99887766', schemeId: '0088' }
|
|
12
|
+
* ```;
|
|
13
|
+
*
|
|
6
14
|
* @summary Identifier with optional scheme
|
|
7
15
|
*
|
|
8
16
|
* @name `cbc:ID (+ optional @schemeID)`
|
|
@@ -3,6 +3,17 @@ import { Schema } from 'effect';
|
|
|
3
3
|
import { PeppolIsoDateString } from '#/schemas/peppol-iso-date-string.ts';
|
|
4
4
|
import { opaque } from '#/schemas/utils/opaque.ts';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* @description The period relevant for an Invoice line, given by an optional start date and end date. Wraps the `cac:InvoicePeriod` element as used on a line; the
|
|
8
|
+
* document level period extends this shape in {@link PeppolInvoicePeriod}.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* { startDate: '2017-10-01', endDate: '2017-10-31' }
|
|
13
|
+
* ```;
|
|
14
|
+
*
|
|
15
|
+
* @see {@link PeppolInvoicePeriod}
|
|
16
|
+
*/
|
|
6
17
|
export class PeppolInvoiceLinePeriod extends opaque<PeppolInvoiceLinePeriod>()(
|
|
7
18
|
Schema.Struct({
|
|
8
19
|
/**
|
|
@@ -3,9 +3,11 @@ import { Schema } from 'effect';
|
|
|
3
3
|
import { PeppolBaseLine } from '#/schemas/fields/peppol-base-line-schema.ts';
|
|
4
4
|
import { PeppolQuantity } from '#/schemas/fields/peppol-quantity-schema.ts';
|
|
5
5
|
import { opaque } from '#/schemas/utils/opaque.ts';
|
|
6
|
-
import {
|
|
6
|
+
import { PeppolQuantityUnitCode } from '#/schemas/values/quantity-unit-codes-schema.ts';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
+
* @description A line of the Invoice, extending the common line fields with the invoiced quantity. Wraps the `cac:InvoiceLine` element.
|
|
10
|
+
*
|
|
9
11
|
* @summary Invoice line
|
|
10
12
|
*
|
|
11
13
|
* @name cac:InvoiceLine
|
|
@@ -38,9 +40,14 @@ export class PeppolInvoiceLine extends opaque<PeppolInvoiceLine>()(
|
|
|
38
40
|
*
|
|
39
41
|
* @see {@link quantityUnitCodes}
|
|
40
42
|
*/
|
|
41
|
-
unitCode:
|
|
43
|
+
unitCode: PeppolQuantityUnitCode,
|
|
42
44
|
})
|
|
43
45
|
),
|
|
44
46
|
})
|
|
45
47
|
) {}
|
|
48
|
+
/**
|
|
49
|
+
* @description Encoded form of {@link PeppolInvoiceLine} produced by the Effect Schema codec. Fields mirror the decoded structure.
|
|
50
|
+
*
|
|
51
|
+
* @see {@link PeppolInvoiceLine}
|
|
52
|
+
*/
|
|
46
53
|
export interface PeppolInvoiceLineEncoded extends Schema.Codec.Encoded<typeof PeppolInvoiceLine> {}
|
|
@@ -2,7 +2,7 @@ import { Schema } from 'effect';
|
|
|
2
2
|
|
|
3
3
|
import { PeppolInvoiceLinePeriod } from '#/schemas/fields/peppol-invoice-line-period-schema.ts';
|
|
4
4
|
import { opaque } from '#/schemas/utils/opaque.ts';
|
|
5
|
-
import {
|
|
5
|
+
import { PeppolVatDateCode } from '#/schemas/values/vat-date-code-schema.ts';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* @description A group of business terms providing information on the invoice period. Also called delivery period. If the group is used, the invoiceing period
|
|
@@ -25,7 +25,7 @@ export class PeppolInvoicePeriod extends opaque<PeppolInvoicePeriod>()(
|
|
|
25
25
|
*
|
|
26
26
|
* @name `cbc:DescriptionCode`
|
|
27
27
|
*/
|
|
28
|
-
descriptionCode: Schema.optional(
|
|
28
|
+
descriptionCode: Schema.optional(PeppolVatDateCode),
|
|
29
29
|
})
|
|
30
30
|
)
|
|
31
31
|
) {}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Schema } from 'effect';
|
|
2
2
|
|
|
3
3
|
import { opaque } from '#/schemas/utils/opaque.ts';
|
|
4
|
-
import {
|
|
4
|
+
import { PeppolItemClassificationCode } from '#/schemas/values/item-classification-codes-schema.ts';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @description A code for classifying the item by its type or nature.
|
|
@@ -30,7 +30,7 @@ export class PeppolItemClassification extends opaque<PeppolItemClassification>()
|
|
|
30
30
|
*
|
|
31
31
|
* @name `@listID`
|
|
32
32
|
*/
|
|
33
|
-
listId:
|
|
33
|
+
listId: PeppolItemClassificationCode,
|
|
34
34
|
/**
|
|
35
35
|
* @description The identification scheme version identifier of the Item classification identifier.
|
|
36
36
|
*
|
|
@@ -2,9 +2,20 @@ import { Schema } from 'effect';
|
|
|
2
2
|
|
|
3
3
|
import { PriceAllowanceCharge } from '#/schemas/fields/peppol-line-price-allowance-charge-schema.ts';
|
|
4
4
|
import { opaque } from '#/schemas/utils/opaque.ts';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { PeppolAllowanceChargeReasonCode } from '#/schemas/values/allowance-charge-reason-code-schema.ts';
|
|
6
|
+
import { PeppolChargeReasonCode } from '#/schemas/values/charge-reason-code-schema.ts';
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* @description Shared fields for an allowance or charge applied to an Invoice line. Extends the price level allowance and charge fields with the reason text and
|
|
10
|
+
* the multiplier factor used to calculate the amount.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* { amount: { value: 200, currencyId: 'EUR' }, chargeIndicator: false, allowanceChargeReason: 'Discount' }
|
|
15
|
+
* ```;
|
|
16
|
+
*
|
|
17
|
+
* @see {@link PeppolLineAllowanceCharge}
|
|
18
|
+
*/
|
|
8
19
|
export class BaseLineAllowanceCharge extends opaque<BaseLineAllowanceCharge>()(
|
|
9
20
|
Schema.Struct({
|
|
10
21
|
...PriceAllowanceCharge.fields /**
|
|
@@ -24,13 +35,24 @@ export class BaseLineAllowanceCharge extends opaque<BaseLineAllowanceCharge>()(
|
|
|
24
35
|
})
|
|
25
36
|
) {}
|
|
26
37
|
|
|
38
|
+
/**
|
|
39
|
+
* @description An allowance applied to an Invoice line, marked by a `cbc:ChargeIndicator` of `false`. Adds an allowance reason code to the shared line allowance
|
|
40
|
+
* and charge fields.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* { amount: { value: 200, currencyId: 'EUR' }, chargeIndicator: false, allowanceChargeReasonCode: '95' }
|
|
45
|
+
* ```;
|
|
46
|
+
*
|
|
47
|
+
* @see {@link PeppolLineAllowanceCharge}
|
|
48
|
+
*/
|
|
27
49
|
export class PeppolLineAllowance extends opaque<PeppolLineAllowance>()(
|
|
28
50
|
Schema.Struct({
|
|
29
51
|
...BaseLineAllowanceCharge.fields,
|
|
30
52
|
/**
|
|
31
53
|
* @name cbc:AllowanceChargeReasonCode
|
|
32
54
|
*/
|
|
33
|
-
allowanceChargeReasonCode: Schema.optional(
|
|
55
|
+
allowanceChargeReasonCode: Schema.optional(PeppolAllowanceChargeReasonCode),
|
|
34
56
|
/**
|
|
35
57
|
* @name cbc:ChargeIndicator
|
|
36
58
|
*
|
|
@@ -42,13 +64,24 @@ export class PeppolLineAllowance extends opaque<PeppolLineAllowance>()(
|
|
|
42
64
|
})
|
|
43
65
|
) {}
|
|
44
66
|
|
|
67
|
+
/**
|
|
68
|
+
* @description A charge applied to an Invoice line, marked by a `cbc:ChargeIndicator` of `true`. Adds a charge reason code to the shared line allowance and charge
|
|
69
|
+
* fields.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```ts
|
|
73
|
+
* { amount: { value: 25, currencyId: 'EUR' }, chargeIndicator: true, allowanceChargeReasonCode: 'AA' }
|
|
74
|
+
* ```;
|
|
75
|
+
*
|
|
76
|
+
* @see {@link PeppolLineAllowanceCharge}
|
|
77
|
+
*/
|
|
45
78
|
export class PeppolLineCharge extends opaque<PeppolLineCharge>()(
|
|
46
79
|
Schema.Struct({
|
|
47
80
|
...BaseLineAllowanceCharge.fields,
|
|
48
81
|
/**
|
|
49
82
|
* @name cbc:AllowanceChargeReasonCode
|
|
50
83
|
*/
|
|
51
|
-
allowanceChargeReasonCode: Schema.optional(
|
|
84
|
+
allowanceChargeReasonCode: Schema.optional(PeppolChargeReasonCode),
|
|
52
85
|
/**
|
|
53
86
|
* @name cbc:ChargeIndicator
|
|
54
87
|
*
|
|
@@ -60,9 +93,24 @@ export class PeppolLineCharge extends opaque<PeppolLineCharge>()(
|
|
|
60
93
|
})
|
|
61
94
|
) {}
|
|
62
95
|
|
|
63
|
-
|
|
96
|
+
/**
|
|
97
|
+
* @description An allowance or charge applied to an Invoice line, selected by the `cbc:ChargeIndicator` value: `false` selects an allowance, `true` selects a
|
|
98
|
+
* charge.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```ts
|
|
102
|
+
* { amount: { value: 25, currencyId: 'EUR' }, chargeIndicator: true, allowanceChargeReasonCode: 'AA', allowanceChargeReason: 'Advertising' }
|
|
103
|
+
* ```;
|
|
104
|
+
*
|
|
105
|
+
* @see {@link PeppolLineAllowance}
|
|
106
|
+
*/
|
|
107
|
+
export class PeppolLineAllowanceCharge extends Schema.Union([PeppolLineAllowance, PeppolLineCharge]).annotate({
|
|
64
108
|
message: 'unable to decode line allowance charge',
|
|
65
|
-
})
|
|
109
|
+
}) {}
|
|
66
110
|
|
|
67
|
-
|
|
68
|
-
|
|
111
|
+
/**
|
|
112
|
+
* @description Encoded form of {@link PeppolLineAllowanceCharge} produced by the Effect Schema codec.
|
|
113
|
+
*
|
|
114
|
+
* @see {@link PeppolLineAllowanceCharge}
|
|
115
|
+
*/
|
|
116
|
+
export type PeppolLineAllowanceChargeEncoded = Schema.Codec.Encoded<typeof PeppolLineAllowanceCharge>;
|