@endevops/peppol-schema 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/README.md +5 -5
  2. package/dist/constants.d.ts +131 -0
  3. package/dist/constants.d.ts.map +1 -1
  4. package/dist/constants.js +114 -1
  5. package/dist/constants.js.map +1 -1
  6. package/dist/{index-BBzPjq7o.d.ts → index-CILtZytZ.d.ts} +1710 -669
  7. package/dist/index-CILtZytZ.d.ts.map +1 -0
  8. package/dist/index.d.ts +2 -2
  9. package/dist/index.js +1234 -187
  10. package/dist/index.js.map +1 -1
  11. package/dist/invoice-response-code-not-needs-schema-DNrfKYLh.js +36 -0
  12. package/dist/invoice-response-code-not-needs-schema-DNrfKYLh.js.map +1 -0
  13. package/dist/invoice-response-codes.d.ts +28 -0
  14. package/dist/invoice-response-codes.d.ts.map +1 -1
  15. package/dist/invoice-response-codes.js +11 -1
  16. package/dist/invoice-response-codes.js.map +1 -1
  17. package/dist/{is-valid-abn-160i38PG.js → is-valid-abn-D7eSygBG.js} +115 -2
  18. package/dist/is-valid-abn-D7eSygBG.js.map +1 -0
  19. package/dist/{is-valid-mod97-0208-CzMOXMO-.js → is-valid-mod97-0208-CjR324eG.js} +11 -1
  20. package/dist/is-valid-mod97-0208-CjR324eG.js.map +1 -0
  21. package/dist/message-level-response-profile-id-B9c0A7S_.js +27 -0
  22. package/dist/message-level-response-profile-id-B9c0A7S_.js.map +1 -0
  23. package/dist/{nodable-parser-CyDZtLCK.js → nodable-parser-CupS2H55.js} +31 -1
  24. package/dist/nodable-parser-CupS2H55.js.map +1 -0
  25. package/dist/schematron.d.ts +57 -1
  26. package/dist/schematron.d.ts.map +1 -1
  27. package/dist/schematron.js +453 -2
  28. package/dist/schematron.js.map +1 -1
  29. package/dist/validations.d.ts +132 -0
  30. package/dist/validations.d.ts.map +1 -1
  31. package/dist/validations.js +11 -2
  32. package/dist/validations.js.map +1 -1
  33. package/dist/values.d.ts +67 -2
  34. package/dist/values.d.ts.map +1 -1
  35. package/dist/xml.d.ts +30 -0
  36. package/dist/xml.d.ts.map +1 -1
  37. package/dist/xml.js +10 -1
  38. package/dist/xml.js.map +1 -1
  39. package/package.json +1 -1
  40. package/src/constants/credit-note-doctype-id.ts +9 -0
  41. package/src/constants/credit-note-process-id.ts +9 -0
  42. package/src/constants/document-scheme.ts +9 -0
  43. package/src/constants/invoice-doctype-id.ts +9 -0
  44. package/src/constants/invoice-process-id.ts +10 -0
  45. package/src/constants/invoice-response-doctype-id.ts +10 -0
  46. package/src/constants/invoice-response-process-id.ts +9 -0
  47. package/src/constants/invoice-response-profile-id.ts +9 -0
  48. package/src/constants/message-level-response-doctype-id.ts +10 -0
  49. package/src/constants/message-level-response-process-id.ts +9 -0
  50. package/src/constants/message-level-response-profile-id.ts +9 -0
  51. package/src/constants/participant-scheme.ts +10 -0
  52. package/src/constants/process-scheme.ts +9 -0
  53. package/src/constants/transport-profile.ts +10 -0
  54. package/src/invoice-response-codes/invoice-response-code-needs-schema.ts +9 -0
  55. package/src/invoice-response-codes/invoice-response-code-not-needs-schema.ts +9 -0
  56. package/src/invoice-response-codes/invoice-response-codes-order.ts +10 -0
  57. package/src/peppol-validations/add-piva.ts +12 -0
  58. package/src/peppol-validations/check-cf.ts +11 -0
  59. package/src/peppol-validations/check-cf16.ts +12 -0
  60. package/src/peppol-validations/check-piva-se-it.ts +11 -0
  61. package/src/peppol-validations/check-piva.ts +11 -0
  62. package/src/peppol-validations/check-se-orgnr.ts +9 -0
  63. package/src/peppol-validations/greek-tin-verification.ts +9 -0
  64. package/src/peppol-validations/is-valid-abn.ts +9 -0
  65. package/src/peppol-validations/is-valid-gln.ts +10 -0
  66. package/src/peppol-validations/is-valid-iban.ts +10 -0
  67. package/src/peppol-validations/is-valid-mod11.ts +9 -0
  68. package/src/peppol-validations/is-valid-mod97-0208.ts +10 -0
  69. package/src/peppol-validations/luhn-check.ts +9 -0
  70. package/src/schemas/fields/default-customization-id.ts +9 -0
  71. package/src/schemas/fields/default-profile-id.ts +9 -0
  72. package/src/schemas/fields/peppol-additional-document-reference-schema.ts +41 -2
  73. package/src/schemas/fields/peppol-address-schema.ts +25 -2
  74. package/src/schemas/fields/peppol-allowance-charge-schema.ts +65 -9
  75. package/src/schemas/fields/peppol-amount-schema.ts +15 -2
  76. package/src/schemas/fields/peppol-base-line-schema.ts +12 -2
  77. package/src/schemas/fields/peppol-billing-reference-schema.ts +13 -0
  78. package/src/schemas/fields/peppol-binary-object-schema.ts +12 -4
  79. package/src/schemas/fields/peppol-contact-schema.ts +11 -0
  80. package/src/schemas/fields/peppol-credit-note-line-schema.ts +7 -2
  81. package/src/schemas/fields/peppol-delivery-schema.ts +44 -2
  82. package/src/schemas/fields/peppol-identifier-schema.ts +8 -0
  83. package/src/schemas/fields/peppol-invoice-line-period-schema.ts +11 -0
  84. package/src/schemas/fields/peppol-invoice-line-schema.ts +9 -2
  85. package/src/schemas/fields/peppol-invoice-period-schema.ts +2 -2
  86. package/src/schemas/fields/peppol-item-classification-schema.ts +2 -2
  87. package/src/schemas/fields/peppol-line-allowance-charge-schema.ts +57 -9
  88. package/src/schemas/fields/peppol-line-item-schema.ts +69 -4
  89. package/src/schemas/fields/peppol-line-price-allowance-charge-schema.ts +20 -0
  90. package/src/schemas/fields/peppol-line-price-schema.ts +2 -0
  91. package/src/schemas/fields/peppol-order-reference-schema.ts +2 -0
  92. package/src/schemas/fields/peppol-party-base-schema.ts +36 -4
  93. package/src/schemas/fields/peppol-party-legal-entity-schema.ts +13 -0
  94. package/src/schemas/fields/peppol-party-tax-scheme-schema.ts +5 -0
  95. package/src/schemas/fields/peppol-payee-party-schema.ts +2 -2
  96. package/src/schemas/fields/peppol-payment-means-schema.ts +62 -2
  97. package/src/schemas/fields/peppol-payment-terms-schema.ts +2 -0
  98. package/src/schemas/fields/peppol-quantity-schema.ts +4 -2
  99. package/src/schemas/fields/peppol-reference-schema.ts +20 -1
  100. package/src/schemas/fields/peppol-tax-category-schema.ts +12 -2
  101. package/src/schemas/fields/peppol-tax-representative-schema.ts +5 -0
  102. package/src/schemas/fields/peppol-tax-subtotal-category-schema.ts +3 -0
  103. package/src/schemas/fields/peppol-tax-subtotal-schema.ts +2 -0
  104. package/src/schemas/fields/peppol-tax-totals-base-schema.ts +5 -0
  105. package/src/schemas/peppol-billing-base-schema.ts +47 -7
  106. package/src/schemas/peppol-credit-note-schema.ts +2 -2
  107. package/src/schemas/peppol-document-response-document-reference-schema.ts +15 -2
  108. package/src/schemas/peppol-document-response-document-schema.ts +8 -3
  109. package/src/schemas/peppol-document-response-line-response-content-schema.ts +22 -2
  110. package/src/schemas/peppol-document-response-line-response-schema.ts +26 -0
  111. package/src/schemas/peppol-document-schema.ts +74 -9
  112. package/src/schemas/peppol-invoice-response-document-actual-response-schema.ts +58 -5
  113. package/src/schemas/peppol-invoice-response-document-actual-response-status-schema.ts +25 -2
  114. package/src/schemas/peppol-invoice-response-schema.ts +57 -4
  115. package/src/schemas/peppol-invoice-response-status-reason-code-schema.ts +37 -10
  116. package/src/schemas/peppol-invoice-schema.ts +30 -2
  117. package/src/schemas/peppol-message-level-response-document-response-schema.ts +10 -0
  118. package/src/schemas/peppol-message-level-response-party-schema.ts +10 -0
  119. package/src/schemas/peppol-message-level-response-schema.ts +18 -0
  120. package/src/schemas/utils/format-quantity-with-unit.ts +19 -0
  121. package/src/schemas/utils/get-credit-note-type-code-description.ts +12 -0
  122. package/src/schemas/utils/get-invoice-type-code-description.ts +12 -0
  123. package/src/schemas/utils/is-valid-credit-note-type-code.ts +13 -0
  124. package/src/schemas/utils/is-valid-invoice-type-code.ts +13 -0
  125. package/src/schemas/utils/is-valid-process.ts +13 -0
  126. package/src/schemas/utils/peppol-base-64-schema.ts +14 -4
  127. package/src/schemas/utils/peppol-vat-regex-schema.ts +38 -30
  128. package/src/schemas/utils/peppol-xsd-time-schema.ts +12 -2
  129. package/src/schemas/utils/quantity-unit-code-to-intl-unit.ts +34 -0
  130. package/src/schemas/values/additional-document-reference-code-schema.ts +9 -15
  131. package/src/schemas/values/allowance-charge-reason-code-schema.ts +12 -14
  132. package/src/schemas/values/application-response-type-code-schema.ts +10 -14
  133. package/src/schemas/values/charge-reason-code-schema.ts +12 -14
  134. package/src/schemas/values/credit-note-type-code-schema.ts +8 -14
  135. package/src/schemas/values/currency-code-schema.ts +13 -16
  136. package/src/schemas/values/document-type-schemes-schema.ts +9 -5
  137. package/src/schemas/values/document-type-values-schema.ts +5 -6
  138. package/src/schemas/values/duty-tax-fee-category-schema.ts +15 -13
  139. package/src/schemas/values/electronic-codes-schema.ts +10 -12
  140. package/src/schemas/values/icd-codes-schema.ts +8 -12
  141. package/src/schemas/values/invoice-status-code-schema.ts +10 -12
  142. package/src/schemas/values/invoice-type-code-schema.ts +10 -12
  143. package/src/schemas/values/item-classification-codes-schema.ts +10 -12
  144. package/src/schemas/values/mime-codes-schema.ts +12 -14
  145. package/src/schemas/values/op-status-action-schema.ts +10 -12
  146. package/src/schemas/values/op-status-reason-schema.ts +10 -12
  147. package/src/schemas/values/participant-identifier-code-schema.ts +10 -13
  148. package/src/schemas/values/payment-means-code-schema.ts +10 -12
  149. package/src/schemas/values/peppol-country-code-schema.ts +10 -9
  150. package/src/schemas/values/peppol-document-type-code-schema.ts +10 -12
  151. package/src/schemas/values/peppol-document-type-schema.ts +12 -21
  152. package/src/schemas/values/peppol-process-schema.ts +19 -15
  153. package/src/schemas/values/process-from-document-type-schema.ts +3 -3
  154. package/src/schemas/values/quantity-unit-codes-schema.ts +10 -12
  155. package/src/schemas/values/vat-date-code-schema.ts +12 -5
  156. package/src/schemas/values/vatex-code-schema.ts +8 -12
  157. package/src/schematron/errors.ts +14 -0
  158. package/src/schematron/helpers.ts +451 -0
  159. package/src/schematron/run-all-rules.ts +10 -0
  160. package/src/schematron/schematron.ts +25 -0
  161. package/src/xml/builder-options.ts +9 -0
  162. package/src/xml/common-xml-options.ts +9 -0
  163. package/src/xml/nodable-parser.ts +12 -0
  164. package/src/xml/parser-options.ts +9 -0
  165. package/dist/index-BBzPjq7o.d.ts.map +0 -1
  166. package/dist/invoice-response-code-not-needs-schema-p_RKKNLc.js +0 -18
  167. package/dist/invoice-response-code-not-needs-schema-p_RKKNLc.js.map +0 -1
  168. package/dist/is-valid-abn-160i38PG.js.map +0 -1
  169. package/dist/is-valid-mod97-0208-CzMOXMO-.js.map +0 -1
  170. package/dist/message-level-response-profile-id-DBpOW91B.js +0 -9
  171. package/dist/message-level-response-profile-id-DBpOW91B.js.map +0 -1
  172. package/dist/nodable-parser-CyDZtLCK.js.map +0 -1
  173. package/dist/vat-dates.generated-CxFvt7m3.d.ts +0 -68
  174. package/dist/vat-dates.generated-CxFvt7m3.d.ts.map +0 -1
@@ -14,6 +14,8 @@ class PeppolTaxSchemeId extends opaque<PeppolTaxSchemeId>()(
14
14
  ) {}
15
15
 
16
16
  /**
17
+ * @description The Seller tax registration details, combining a tax identifier such as a VAT number with the tax scheme.
18
+ *
17
19
  * @name cac:PartyTaxScheme (0..2)
18
20
  */
19
21
  export class PeppolPartyTaxScheme extends opaque<PeppolPartyTaxScheme>()(
@@ -38,4 +40,7 @@ export class PeppolPartyTaxScheme extends opaque<PeppolPartyTaxScheme>()(
38
40
  })
39
41
  ) {}
40
42
 
43
+ /**
44
+ * @description Alias for {@link PeppolPartyTaxScheme}.
45
+ */
41
46
  export type PeppolPartyTaxSchema = PeppolPartyTaxScheme;
@@ -2,7 +2,7 @@ import { Schema } from 'effect';
2
2
 
3
3
  import { PeppolIdentifier } from '#/schemas/fields/peppol-identifier-schema.ts';
4
4
  import { opaque } from '#/schemas/utils/opaque.ts';
5
- import { icdCodesSchema } from '#/schemas/values/icd-codes-schema.ts';
5
+ import { PeppolIcdCode } from '#/schemas/values/icd-codes-schema.ts';
6
6
 
7
7
  class PeppolPartyName extends opaque<PeppolPartyName>()(Schema.Struct({ name: Schema.String })) {}
8
8
 
@@ -39,7 +39,7 @@ class PeppolPartyLegalEntity extends opaque<PeppolPartyLegalEntity>()(
39
39
  *
40
40
  * @name `@schemeID`
41
41
  */
42
- schemeId: Schema.optional(icdCodesSchema),
42
+ schemeId: Schema.optional(PeppolIcdCode),
43
43
  })
44
44
  )
45
45
  ),
@@ -2,8 +2,18 @@ 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 { paymentMeansCodeSchema } from '#/schemas/values/payment-means-code-schema.ts';
5
+ import { PeppolPaymentMeansCodeValue } from '#/schemas/values/payment-means-code-schema.ts';
6
6
 
7
+ /**
8
+ * @description The account to be debited by a direct debit.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * { id: '12345676543' }
13
+ * ```;
14
+ *
15
+ * @see {@link PeppolPaymentMandate}
16
+ */
7
17
  export class PeppolPaymentMandatePayerFinancialAccountId extends opaque<PeppolPaymentMandatePayerFinancialAccountId>()(
8
18
  Schema.Struct({
9
19
  /**
@@ -20,6 +30,16 @@ export class PeppolPaymentMandatePayerFinancialAccountId extends opaque<PeppolPa
20
30
  })
21
31
  ) {}
22
32
 
33
+ /**
34
+ * @description A group of business terms to specify a direct debit, including the mandate reference and the debited account.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * { id: 'MandateReference', payerFinancialAccountId: { id: '12345676543' } }
39
+ * ```;
40
+ *
41
+ * @see {@link PeppolPaymentMeans}
42
+ */
23
43
  export class PeppolPaymentMandate extends opaque<PeppolPaymentMandate>()(
24
44
  Schema.Struct({
25
45
  /**
@@ -44,6 +64,16 @@ export class PeppolPaymentMandate extends opaque<PeppolPaymentMandate>()(
44
64
  })
45
65
  ) {}
46
66
 
67
+ /**
68
+ * @description The payment service provider where the payee payment account is held, such as a BIC or national clearing code.
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * { id: 'BIC324098' }
73
+ * ```;
74
+ *
75
+ * @see {@link PeppolPayeeFinancialAccount}
76
+ */
47
77
  export class PeppolPayeeFinancialAccountFinancialInstitutionBranch extends opaque<PeppolPayeeFinancialAccountFinancialInstitutionBranch>()(
48
78
  Schema.Struct({
49
79
  /**
@@ -61,6 +91,16 @@ export class PeppolPayeeFinancialAccountFinancialInstitutionBranch extends opaqu
61
91
  })
62
92
  ) {}
63
93
 
94
+ /**
95
+ * @description The payment account to which payment should be made, such as an IBAN or BBAN, including the financial institution branch.
96
+ *
97
+ * @example
98
+ * ```ts
99
+ * { id: 'IBAN32423940', name: 'AccountName' }
100
+ * ```;
101
+ *
102
+ * @see {@link PeppolPaymentMeans}
103
+ */
64
104
  export class PeppolPayeeFinancialAccount extends opaque<PeppolPayeeFinancialAccount>()(
65
105
  Schema.Struct({
66
106
  /**
@@ -94,6 +134,16 @@ export class PeppolPayeeFinancialAccount extends opaque<PeppolPayeeFinancialAcco
94
134
  })
95
135
  ) {}
96
136
 
137
+ /**
138
+ * @description The card used for payment, including the card holder name and the primary account number.
139
+ *
140
+ * @example
141
+ * ```ts
142
+ * { networkId: 'VISA', primaryAccountNumberId: '1234' }
143
+ * ```;
144
+ *
145
+ * @see {@link PeppolPaymentMeans}
146
+ */
97
147
  export class PeppolCardAccount extends opaque<PeppolCardAccount>()(
98
148
  Schema.Struct({
99
149
  /**
@@ -125,6 +175,16 @@ export class PeppolCardAccount extends opaque<PeppolCardAccount>()(
125
175
  })
126
176
  ) {}
127
177
 
178
+ /**
179
+ * @description The means by which a payment is expected to be or has been settled, expressed as a UNCL 4461 code and optional text.
180
+ *
181
+ * @example
182
+ * ```ts
183
+ * { code: '30', name: 'Credit transfer' }
184
+ * ```;
185
+ *
186
+ * @see {@link PeppolPaymentMeans}
187
+ */
128
188
  export class PeppolPaymentMeansCode extends opaque<PeppolPaymentMeansCode>()(
129
189
  Schema.Struct({
130
190
  /**
@@ -137,7 +197,7 @@ export class PeppolPaymentMeansCode extends opaque<PeppolPaymentMeansCode>()(
137
197
  *
138
198
  * @name `#text`
139
199
  */
140
- code: paymentMeansCodeSchema,
200
+ code: PeppolPaymentMeansCodeValue,
141
201
  /**
142
202
  * @description The means, expressed as text, for how a payment is expected to be or has been settled.
143
203
  *
@@ -3,6 +3,8 @@ import { Schema } from 'effect';
3
3
  import { opaque } from '#/schemas/utils/opaque.ts';
4
4
 
5
5
  /**
6
+ * @description A textual description of the payment terms that apply to the amount due for payment.
7
+ *
6
8
  * @summary PAYMENT TERMS
7
9
  *
8
10
  * @name cac:PaymentTerms
@@ -1,9 +1,11 @@
1
1
  import { Schema } from 'effect';
2
2
 
3
3
  import { opaque } from '#/schemas/utils/opaque.ts';
4
- import { quantityUnitCodesSchema } from '#/schemas/values/quantity-unit-codes-schema.ts';
4
+ import { PeppolQuantityUnitCode } from '#/schemas/values/quantity-unit-codes-schema.ts';
5
5
 
6
6
  /**
7
+ * @description A quantity value with an optional unit of measure code.
8
+ *
7
9
  * @summary Quantity with optional unit code
8
10
  *
9
11
  * @name `cbc:* (+ @unitCode)`
@@ -13,7 +15,7 @@ export class PeppolQuantity extends opaque<PeppolQuantity>()(
13
15
  /**
14
16
  * @name `@unitCode`
15
17
  */
16
- unitCode: Schema.optional(quantityUnitCodesSchema),
18
+ unitCode: Schema.optional(PeppolQuantityUnitCode),
17
19
  /**
18
20
  * @name `#text (value)`
19
21
  */
@@ -2,8 +2,27 @@ import { Schema } from 'effect';
2
2
 
3
3
  import { opaque } from '#/schemas/utils/opaque.ts';
4
4
 
5
+ /**
6
+ * @description A reference identifier, such as an order or sales order reference.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * { id: '123' }
11
+ * ```;
12
+ */
5
13
  export class PeppolReferenceId extends opaque<PeppolReferenceId>()(Schema.Struct({ id: Schema.String })) {}
6
14
 
15
+ /**
16
+ * @description A schema for an optional reference identifier, accepting either {@link PeppolReferenceId} or `undefined`.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * peppolReferenceSchema; // Schema.Union([PeppolReferenceId, Schema.Undefined])
21
+ * ```;
22
+ */
7
23
  export const peppolReferenceSchema = Schema.Union([PeppolReferenceId, Schema.Undefined]);
8
24
 
9
- export type PeppolReferenceSchema = typeof peppolReferenceSchema.Type;
25
+ /**
26
+ * @description The decoded type of {@link peppolReferenceSchema}, either a {@link PeppolReferenceId} or `undefined`.
27
+ */
28
+ export type PeppolReferenceSchema = Schema.Schema.Type<typeof peppolReferenceSchema>;
@@ -1,8 +1,18 @@
1
1
  import { Effect, Schema } from 'effect';
2
2
 
3
3
  import { opaque } from '#/schemas/utils/opaque.ts';
4
- import { peppolDutyTaxFeeCategorySchema } from '#/schemas/values/duty-tax-fee-category-schema.ts';
4
+ import { PeppolDutyTaxFeeCategoryCode } from '#/schemas/values/duty-tax-fee-category-schema.ts';
5
5
 
6
+ /**
7
+ * @description The tax scheme identifier for a tax category, defaulting to `VAT` when the element is absent.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * { id: 'VAT' }
12
+ * ```;
13
+ *
14
+ * @see {@link PeppolTaxCategory}
15
+ */
6
16
  export class PeppolTaxSchemeId extends opaque<PeppolTaxSchemeId>()(
7
17
  Schema.Struct({
8
18
  /**
@@ -28,7 +38,7 @@ export class PeppolTaxCategory extends opaque<PeppolTaxCategory>()(
28
38
  *
29
39
  * @name `cbc:ID`
30
40
  */
31
- id: peppolDutyTaxFeeCategorySchema,
41
+ id: PeppolDutyTaxFeeCategoryCode,
32
42
  /**
33
43
  * @description The VAT rate, represented as percentage that applies to the invoiced item.
34
44
  *
@@ -5,6 +5,8 @@ import { PeppolPartyTaxScheme } from '#/schemas/fields/peppol-party-tax-scheme-s
5
5
  import { opaque } from '#/schemas/utils/opaque.ts';
6
6
 
7
7
  /**
8
+ * @description The party acting as the Seller tax representative, including its name, postal address, and tax scheme.
9
+ *
8
10
  * @summary SELLER TAX REPRESENTATIVE PARTY
9
11
  *
10
12
  * @name cac:TaxRepresentativeParty
@@ -23,4 +25,7 @@ export class PeppolTaxRepresentative extends opaque<PeppolTaxRepresentative>()(
23
25
  })
24
26
  ) {}
25
27
 
28
+ /**
29
+ * @description Alias for {@link PeppolTaxRepresentative}.
30
+ */
26
31
  export type PeppolTaxRepresentativeParty = PeppolTaxRepresentative;
@@ -28,4 +28,7 @@ export class PeppolTaxSubTotalCategory extends opaque<PeppolTaxSubTotalCategory>
28
28
  })
29
29
  ) {}
30
30
 
31
+ /**
32
+ * @description The encoded form of {@link PeppolTaxSubTotalCategory}, accepted by the decoder before branded code values are applied.
33
+ */
31
34
  export interface PeppolTaxSubTotalCategoryEncoded extends Schema.Codec.Encoded<typeof PeppolTaxSubTotalCategory> {}
@@ -5,6 +5,8 @@ import { PeppolTaxSubTotalCategory } from '#/schemas/fields/peppol-tax-subtotal-
5
5
  import { opaque } from '#/schemas/utils/opaque.ts';
6
6
 
7
7
  /**
8
+ * @description A VAT breakdown line for a single tax category, giving the taxable amount and the tax amount.
9
+ *
8
10
  * @summary VAT breakdown (TaxSubtotal)
9
11
  *
10
12
  * @name cac:TaxSubtotal
@@ -5,6 +5,8 @@ import { PeppolTaxSubTotal } from '#/schemas/fields/peppol-tax-subtotal-schema.t
5
5
  import { opaque } from '#/schemas/utils/opaque.ts';
6
6
 
7
7
  /**
8
+ * @description The total tax amount for the document, with an optional breakdown into tax subtotals.
9
+ *
8
10
  * @summary TAX TOTAL
9
11
  *
10
12
  * @name cac:TaxTotal (1..2)
@@ -25,4 +27,7 @@ export class PeppolTaxTotalsBase extends opaque<PeppolTaxTotalsBase>()(
25
27
  })
26
28
  ) {}
27
29
 
30
+ /**
31
+ * @description Alias for {@link PeppolTaxTotalsBase}.
32
+ */
28
33
  export type PeppolTaxTotal = PeppolTaxTotalsBase;
@@ -3,7 +3,7 @@ import { Effect, Schema } from 'effect';
3
3
  import { DEFAULT_CUSTOMIZATION_ID } from '#/schemas/fields/default-customization-id.ts';
4
4
  import { DEFAULT_PROFILE_ID } from '#/schemas/fields/default-profile-id.ts';
5
5
  import { PeppolAdditionalDocumentReference } from '#/schemas/fields/peppol-additional-document-reference-schema.ts';
6
- import { peppolAllowanceChargeSchema } from '#/schemas/fields/peppol-allowance-charge-schema.ts';
6
+ import { PeppolAllowanceCharge } from '#/schemas/fields/peppol-allowance-charge-schema.ts';
7
7
  import { PeppolBillingReference } from '#/schemas/fields/peppol-billing-reference-schema.ts';
8
8
  import { PeppolDelivery } from '#/schemas/fields/peppol-delivery-schema.ts';
9
9
  import { PeppolInvoicePeriod } from '#/schemas/fields/peppol-invoice-period-schema.ts';
@@ -17,8 +17,18 @@ import { PeppolTaxRepresentative } from '#/schemas/fields/peppol-tax-representat
17
17
  import { PeppolTaxTotalsBase } from '#/schemas/fields/peppol-tax-totals-base-schema.ts';
18
18
  import { PeppolIsoDateString } from '#/schemas/peppol-iso-date-string.ts';
19
19
  import { opaque } from '#/schemas/utils/opaque.ts';
20
- import { currencyCodeSchema } from '#/schemas/values/currency-code-schema.ts';
20
+ import { PeppolCurrencyCode } from '#/schemas/values/currency-code-schema.ts';
21
21
 
22
+ /**
23
+ * @description Wraps the `cac:ContractDocumentReference` element: an identifier of a contract that the billing document references.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * { id: '123Contractref' }
28
+ * ```;
29
+ *
30
+ * @see {@link PeppolBillingBase}
31
+ */
22
32
  export class PeppolContractDocumentReference extends opaque<PeppolContractDocumentReference>()(
23
33
  Schema.Struct({
24
34
  /**
@@ -35,6 +45,16 @@ export class PeppolContractDocumentReference extends opaque<PeppolContractDocume
35
45
  })
36
46
  ) {}
37
47
 
48
+ /**
49
+ * @description Wraps the `cac:OriginatorDocumentReference` element: the identification of the call for tender or lot the invoice relates to.
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * { id: 'PPID-123' }
54
+ * ```;
55
+ *
56
+ * @see {@link PeppolBillingBase}
57
+ */
38
58
  export class PeppolOriginatorDocumentReference extends opaque<PeppolOriginatorDocumentReference>()(
39
59
  Schema.Struct({
40
60
  /**
@@ -51,6 +71,16 @@ export class PeppolOriginatorDocumentReference extends opaque<PeppolOriginatorDo
51
71
  })
52
72
  ) {}
53
73
 
74
+ /**
75
+ * @description Wraps the `cac:ReceiptDocumentReference` element: an identifier of a referenced receiving advice.
76
+ *
77
+ * @example
78
+ * ```ts
79
+ * { id: 'rec98' }
80
+ * ```;
81
+ *
82
+ * @see {@link PeppolBillingBase}
83
+ */
54
84
  export class PeppolReceiptDocumentReference extends opaque<PeppolReceiptDocumentReference>()(
55
85
  Schema.Struct({
56
86
  /**
@@ -67,6 +97,16 @@ export class PeppolReceiptDocumentReference extends opaque<PeppolReceiptDocument
67
97
  })
68
98
  ) {}
69
99
 
100
+ /**
101
+ * @description Wraps the `cac:DespatchDocumentReference` element: an identifier of a referenced despatch advice.
102
+ *
103
+ * @example
104
+ * ```ts
105
+ * { id: 'desp98' }
106
+ * ```;
107
+ *
108
+ * @see {@link PeppolBillingBase}
109
+ */
70
110
  export class PeppolDespatchDocumentReference extends opaque<PeppolDespatchDocumentReference>()(
71
111
  Schema.Struct({
72
112
  /**
@@ -86,8 +126,8 @@ export class PeppolDespatchDocumentReference extends opaque<PeppolDespatchDocume
86
126
  /**
87
127
  * @description Base schema for a billing document.
88
128
  *
89
- * @see {@link creditNoteSchema} - the credit note schema
90
- * @see {@link invoiceSchema} - the invoice schema
129
+ * @see {@link PeppolCreditNote} - the credit note schema
130
+ * @see {@link PeppolInvoice} - the invoice schema
91
131
  */
92
132
  export class PeppolBillingBase extends opaque<PeppolBillingBase>()(
93
133
  Schema.Struct({
@@ -182,7 +222,7 @@ export class PeppolBillingBase extends opaque<PeppolBillingBase>()(
182
222
  *
183
223
  * @name `cbc:DocumentCurrencyCode`
184
224
  */
185
- documentCurrencyCode: currencyCodeSchema,
225
+ documentCurrencyCode: PeppolCurrencyCode,
186
226
  /**
187
227
  * @description The currency used for VAT accounting and reporting purposes as accepted or required in the country of the Seller. Shall be used in combination
188
228
  * with the Invoice total VAT amount in accounting currency (BT-111), when the VAT accounting currency code differs from the Invoice currency
@@ -195,7 +235,7 @@ export class PeppolBillingBase extends opaque<PeppolBillingBase>()(
195
235
  *
196
236
  * @name `cbc:TaxCurrencyCode`
197
237
  */
198
- taxCurrencyCode: Schema.optional(currencyCodeSchema),
238
+ taxCurrencyCode: Schema.optional(PeppolCurrencyCode),
199
239
  /**
200
240
  * @description A textual value that specifies where to book the relevant data into the Buyer's financial accounts.
201
241
  *
@@ -345,7 +385,7 @@ export class PeppolBillingBase extends opaque<PeppolBillingBase>()(
345
385
  *
346
386
  * @name cac:AllowanceCharge
347
387
  */
348
- allowanceCharges: Schema.optional(Schema.Array(peppolAllowanceChargeSchema)),
388
+ allowanceCharges: Schema.optional(Schema.Array(PeppolAllowanceCharge)),
349
389
 
350
390
  /**
351
391
  * @description When tax currency code is provided, two instances of the tax total must be present, but only one with tax subtotal.
@@ -3,7 +3,7 @@ import { Schema } from 'effect';
3
3
  import { PeppolCreditNoteLine } from '#/schemas/fields/peppol-credit-note-line-schema.ts';
4
4
  import { PeppolBillingBase } from '#/schemas/peppol-billing-base-schema.ts';
5
5
  import { opaque } from '#/schemas/utils/opaque.ts';
6
- import { creditNoteTypeCodeSchema } from '#/schemas/values/credit-note-type-code-schema.ts';
6
+ import { PeppolCreditNoteTypeCode } from '#/schemas/values/credit-note-type-code-schema.ts';
7
7
 
8
8
  /**
9
9
  * @description Main UBL Credit Note schema (camelCase properties) Effect port of `creditNoteSchema` (`z.extend(billingBaseSchema, ...)` →
@@ -26,6 +26,6 @@ export class PeppolCreditNote extends opaque<PeppolCreditNote>()(
26
26
  *
27
27
  * @name cbc:CreditNoteTypeCode
28
28
  */
29
- creditNoteTypeCode: creditNoteTypeCodeSchema,
29
+ creditNoteTypeCode: PeppolCreditNoteTypeCode,
30
30
  })
31
31
  ) {}
@@ -1,8 +1,18 @@
1
1
  import { Schema } from 'effect';
2
2
 
3
3
  import { opaque } from '#/schemas/utils/opaque.ts';
4
- import { peppolDocumentTypeCodeSchema } from '#/schemas/values/peppol-document-type-code-schema.ts';
4
+ import { PeppolDocumentTypeCode } from '#/schemas/values/peppol-document-type-code-schema.ts';
5
5
 
6
+ /**
7
+ * @description Wraps `cac:DocumentReference` inside a message level response: identifies the business document the response is based on.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * { id: 'EnvelopeID-12345', versionId: '2' }
12
+ * ```;
13
+ *
14
+ * @see {@link PeppolMessageLevelResponseDocumentResponse}
15
+ */
6
16
  export class PeppolDocumentResponseDocumentReference extends opaque<PeppolDocumentResponseDocumentReference>()(
7
17
  Schema.Struct({
8
18
  /**
@@ -23,7 +33,7 @@ export class PeppolDocumentResponseDocumentReference extends opaque<PeppolDocume
23
33
  *
24
34
  * @name `cbc:DocumentTypeCode`
25
35
  */
26
- documentTypeCode: Schema.optional(peppolDocumentTypeCodeSchema),
36
+ documentTypeCode: Schema.optional(PeppolDocumentTypeCode),
27
37
  /**
28
38
  * @description The version of the document that has been identifier with the document identifier.
29
39
  *
@@ -38,4 +48,7 @@ export class PeppolDocumentResponseDocumentReference extends opaque<PeppolDocume
38
48
  })
39
49
  ) {}
40
50
 
51
+ /**
52
+ * @description Alias of {@link PeppolDocumentResponseDocumentReference} under the message level response naming.
53
+ */
41
54
  export type PeppolMessageLevelDocumentResponseDocumentReference = PeppolDocumentResponseDocumentReference;
@@ -1,16 +1,18 @@
1
1
  import { Schema } from 'effect';
2
2
 
3
3
  import { opaque } from '#/schemas/utils/opaque.ts';
4
- import { applicationResponseTypeCodeSchema } from '#/schemas/values/application-response-type-code-schema.ts';
4
+ import { PeppolApplicationResponseTypeCode } from '#/schemas/values/application-response-type-code-schema.ts';
5
5
 
6
6
  /**
7
+ * @description Wraps `cac:Response` inside a message level response: the overall response code and an optional textual note.
8
+ *
7
9
  * @summary Response information
8
10
  *
9
11
  * @name `cac:Response`
10
12
  *
11
13
  * @cardinality (1..1)
12
14
  *
13
- * @see {@link messageLevelResponseDocumentResponseSchema}
15
+ * @see {@link PeppolMessageLevelResponseDocumentResponse}
14
16
  */
15
17
  export class PeppolDocumentResponseDocument extends opaque<PeppolDocumentResponseDocument>()(
16
18
  Schema.Struct({
@@ -25,7 +27,7 @@ export class PeppolDocumentResponseDocument extends opaque<PeppolDocumentRespons
25
27
  *
26
28
  * @name `cbc:ResponseCode`
27
29
  */
28
- responseCode: applicationResponseTypeCodeSchema,
30
+ responseCode: PeppolApplicationResponseTypeCode,
29
31
  /**
30
32
  * @description Used to meake any comments or instructions relevant to the response. The use of this element requires manual assessment by the receiver.
31
33
  *
@@ -35,4 +37,7 @@ export class PeppolDocumentResponseDocument extends opaque<PeppolDocumentRespons
35
37
  })
36
38
  ) {}
37
39
 
40
+ /**
41
+ * @description Alias of {@link PeppolDocumentResponseDocument} under the message level response naming.
42
+ */
38
43
  export type PeppolMessageLevelResponseDocumentResponseDocument = PeppolDocumentResponseDocument;
@@ -1,8 +1,18 @@
1
1
  import { Schema } from 'effect';
2
2
 
3
3
  import { opaque } from '#/schemas/utils/opaque.ts';
4
- import { applicationResponseTypeCodeSchema } from '#/schemas/values/application-response-type-code-schema.ts';
4
+ import { PeppolApplicationResponseTypeCode } from '#/schemas/values/application-response-type-code-schema.ts';
5
5
 
6
+ /**
7
+ * @description Wraps `cac:Status` inside a line response: the coded reason for an issue found in the document.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * { statusReasonCode: 'SV' }
12
+ * ```;
13
+ *
14
+ * @see {@link PeppolDocumentResponseLineResponseContent}
15
+ */
6
16
  export class PeppolStatus extends opaque<PeppolStatus>()(
7
17
  Schema.Struct({
8
18
  /**
@@ -16,6 +26,16 @@ export class PeppolStatus extends opaque<PeppolStatus>()(
16
26
  })
17
27
  ) {}
18
28
 
29
+ /**
30
+ * @description A response to a particular line in the business document: the line response code, a description of the issue and its coded status.
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * { responseCode: 'RE', description: 'Validation gives error [CL-T77-R0002]', status: { statusReasonCode: 'SV' } }
35
+ * ```;
36
+ *
37
+ * @see {@link PeppolDocumentResponseLineResponse}
38
+ */
19
39
  export class PeppolDocumentResponseLineResponseContent extends opaque<PeppolDocumentResponseLineResponseContent>()(
20
40
  Schema.Struct({
21
41
  /**
@@ -29,7 +49,7 @@ export class PeppolDocumentResponseLineResponseContent extends opaque<PeppolDocu
29
49
  *
30
50
  * @name `cbc:ResponseCode`
31
51
  */
32
- responseCode: applicationResponseTypeCodeSchema,
52
+ responseCode: PeppolApplicationResponseTypeCode,
33
53
  /**
34
54
  * @description The description of the issued identifier in the transaction document.
35
55
  *
@@ -3,6 +3,16 @@ import { Schema } from 'effect';
3
3
  import { PeppolDocumentResponseLineResponseContent } from '#/schemas/peppol-document-response-line-response-content-schema.ts';
4
4
  import { opaque } from '#/schemas/utils/opaque.ts';
5
5
 
6
+ /**
7
+ * @description Wraps `cac:LineReference` inside a line response: an XPath pointing at the element that caused the reported issue.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * { lineId: '/Invoice/cac:InvoiceLine[1]' }
12
+ * ```;
13
+ *
14
+ * @see {@link PeppolDocumentResponseLineResponse}
15
+ */
6
16
  export class PeppolLineReference extends opaque<PeppolLineReference>()(
7
17
  Schema.Struct({
8
18
  /**
@@ -20,6 +30,19 @@ export class PeppolLineReference extends opaque<PeppolLineReference>()(
20
30
  })
21
31
  ) {}
22
32
 
33
+ /**
34
+ * @description Wraps `cac:LineResponse` inside a message level response: pairs a line reference with the response for that line.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * {
39
+ * lineReference: { lineId: '/Invoice/cac:InvoiceLine[1]' },
40
+ * response: { responseCode: 'RE', description: 'Invalid tax category', status: { statusReasonCode: 'SV' } }
41
+ * }
42
+ * ```;
43
+ *
44
+ * @see {@link PeppolMessageLevelResponseDocumentResponse}
45
+ */
23
46
  export class PeppolDocumentResponseLineResponse extends opaque<PeppolDocumentResponseLineResponse>()(
24
47
  Schema.Struct({
25
48
  /**
@@ -37,4 +60,7 @@ export class PeppolDocumentResponseLineResponse extends opaque<PeppolDocumentRes
37
60
  })
38
61
  ) {}
39
62
 
63
+ /**
64
+ * @description Alias of {@link PeppolDocumentResponseLineResponse} under the message level response naming.
65
+ */
40
66
  export type PeppolMessageLevelDocumentResponseLineResponse = PeppolDocumentResponseLineResponse;