@kreiseck/kasseneck-api 0.31.0 → 1.0.0-rc.2
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/CHANGELOG.md +317 -0
- package/README.de.md +11 -7
- package/README.md +509 -126
- package/dist/cjs/client/api.d.ts +7 -6
- package/dist/cjs/client/api.js +2 -2
- package/dist/cjs/client/aufrufe.d.ts +29 -5
- package/dist/cjs/client/aufrufe.js +114 -2
- package/dist/cjs/client/auth.d.ts +2 -0
- package/dist/cjs/client/auth.js +17 -1
- package/dist/cjs/client/cashregisters.d.ts +1 -1
- package/dist/cjs/client/cashregisters.js +2 -2
- package/dist/cjs/client/errors.d.ts +94 -19
- package/dist/cjs/client/errors.js +132 -28
- package/dist/cjs/client/fehlercodes.d.ts +9 -0
- package/dist/cjs/client/fehlercodes.js +36 -0
- package/dist/cjs/client/index.d.ts +5 -5
- package/dist/cjs/client/index.js +11 -3
- package/dist/cjs/client/receipts.d.ts +131 -124
- package/dist/cjs/client/receipts.js +196 -137
- package/dist/cjs/client/reports.d.ts +26 -4
- package/dist/cjs/client/reports.js +37 -4
- package/dist/cjs/client/status.d.ts +3 -3
- package/dist/cjs/client/status.js +7 -7
- package/dist/cjs/client/transport.d.ts +56 -4
- package/dist/cjs/client/transport.js +234 -25
- package/dist/cjs/enums/vat-rate.d.ts +2 -2
- package/dist/cjs/enums/vat-rate.js +1 -1
- package/dist/cjs/index.d.ts +4 -3
- package/dist/cjs/index.js +42 -13
- package/dist/{esm/rechnung → cjs/invoice}/api.d.ts +18 -17
- package/dist/cjs/{rechnung → invoice}/api.js +6 -6
- package/dist/{esm/rechnung → cjs/invoice}/auth.d.ts +2 -2
- package/dist/cjs/{rechnung → invoice}/auth.js +5 -5
- package/dist/{esm/rechnung/rechnen.d.ts → cjs/invoice/calc.d.ts} +27 -27
- package/dist/cjs/{rechnung/rechnen.js → invoice/calc.js} +54 -54
- package/dist/{esm/rechnung → cjs/invoice}/endpunkte.d.ts +23 -21
- package/dist/cjs/{rechnung → invoice}/endpunkte.js +52 -42
- package/dist/cjs/invoice/fehler.d.ts +31 -0
- package/dist/cjs/invoice/fehler.js +39 -0
- package/dist/cjs/invoice/index.d.ts +21 -0
- package/dist/cjs/invoice/index.js +86 -0
- package/dist/cjs/{rechnung → invoice}/summen.d.ts +12 -12
- package/dist/cjs/{rechnung → invoice}/summen.js +14 -14
- package/dist/cjs/invoice/texte.d.ts +224 -0
- package/dist/cjs/invoice/texte.js +425 -0
- package/dist/{esm/rechnung → cjs/invoice}/typen.d.ts +32 -11
- package/dist/cjs/{rechnung → invoice}/vertrag.d.ts +97 -71
- package/dist/cjs/{rechnung → invoice}/vertrag.js +144 -82
- package/dist/cjs/models/cancellation.d.ts +43 -24
- package/dist/cjs/models/cancellation.js +94 -46
- package/dist/cjs/models/hobex-receipt.d.ts +3 -3
- package/dist/cjs/models/hobex-receipt.js +35 -35
- package/dist/cjs/models/index.d.ts +6 -5
- package/dist/cjs/models/index.js +22 -2
- package/dist/cjs/models/payment-errors.d.ts +32 -15
- package/dist/cjs/models/payment-errors.js +80 -32
- package/dist/cjs/models/receipt-company.d.ts +6 -5
- package/dist/cjs/models/receipt-company.js +4 -4
- package/dist/cjs/models/receipt-email.d.ts +32 -18
- package/dist/cjs/models/receipt-email.js +69 -24
- package/dist/cjs/models/receipt-errors.d.ts +39 -0
- package/dist/cjs/models/receipt-errors.js +94 -0
- package/dist/cjs/models/receipt-item.d.ts +9 -1
- package/dist/cjs/models/receipt-item.js +3 -0
- package/dist/cjs/models/receipt-summary.d.ts +10 -4
- package/dist/cjs/models/receipt-summary.js +10 -4
- package/dist/cjs/models/receipt.d.ts +31 -2
- package/dist/cjs/models/receipt.js +12 -1
- package/dist/cjs/models/voucher.d.ts +7 -6
- package/dist/cjs/models/voucher.js +2 -7
- package/dist/cjs/partner/ablauf.d.ts +10 -10
- package/dist/cjs/partner/ablauf.js +29 -29
- package/dist/cjs/partner/api.d.ts +26 -23
- package/dist/cjs/partner/api.js +11 -13
- package/dist/cjs/partner/auth.d.ts +1 -1
- package/dist/cjs/partner/auth.js +2 -2
- package/dist/cjs/partner/betrieb.d.ts +7 -7
- package/dist/cjs/partner/betrieb.js +10 -10
- package/dist/cjs/partner/endpunkte.d.ts +27 -14
- package/dist/cjs/partner/endpunkte.js +80 -39
- package/dist/cjs/partner/fehler.d.ts +60 -30
- package/dist/cjs/partner/fehler.js +99 -43
- package/dist/cjs/partner/index.d.ts +13 -12
- package/dist/cjs/partner/index.js +35 -22
- package/dist/cjs/partner/secret.d.ts +3 -3
- package/dist/cjs/partner/secret.js +6 -6
- package/dist/cjs/partner/typen.d.ts +129 -71
- package/dist/cjs/partner/typen.js +76 -3
- package/dist/cjs/partner/webhook-signatur.d.ts +2 -2
- package/dist/cjs/partner/webhook-signatur.js +12 -12
- package/dist/cjs/partner/webhooks.d.ts +60 -32
- package/dist/cjs/partner/webhooks.js +40 -34
- package/dist/cjs/payments/hobex.d.ts +11 -3
- package/dist/cjs/payments/hobex.js +17 -5
- package/dist/cjs/payments/stripe.d.ts +5 -2
- package/dist/cjs/payments/stripe.js +10 -5
- package/dist/cjs/pos/artikel.d.ts +90 -0
- package/dist/cjs/pos/artikel.js +89 -0
- package/dist/cjs/pos/client.d.ts +27 -0
- package/dist/cjs/pos/client.js +144 -0
- package/dist/cjs/pos/drucker.d.ts +86 -0
- package/dist/cjs/pos/drucker.js +78 -0
- package/dist/cjs/pos/errors.d.ts +36 -0
- package/dist/cjs/pos/errors.js +95 -0
- package/dist/cjs/pos/index.d.ts +15 -0
- package/dist/cjs/pos/index.js +102 -0
- package/dist/cjs/pos/settings.d.ts +313 -0
- package/dist/cjs/pos/settings.js +376 -0
- package/dist/cjs/pos/texte.d.ts +883 -0
- package/dist/cjs/pos/texte.js +489 -0
- package/dist/cjs/{kasse → pos}/trinkgeld.d.ts +1 -1
- package/dist/cjs/{kasse → pos}/trinkgeld.js +2 -2
- package/dist/cjs/printing/escpos.d.ts +29 -29
- package/dist/cjs/printing/escpos.js +61 -61
- package/dist/cjs/printing/index.d.ts +2 -2
- package/dist/cjs/printing/index.js +17 -17
- package/dist/cjs/printing/qr-groesse.d.ts +38 -38
- package/dist/cjs/printing/qr-groesse.js +47 -47
- package/dist/cjs/printing/webusb.d.ts +2 -2
- package/dist/cjs/printing/webusb.js +4 -4
- package/dist/cjs/react/index.d.ts +21 -21
- package/dist/cjs/react/index.js +40 -30
- package/dist/cjs/receipt/bild.d.ts +4 -4
- package/dist/cjs/receipt/bild.js +11 -11
- package/dist/cjs/receipt/blatt.d.ts +46 -46
- package/dist/cjs/receipt/blatt.js +59 -59
- package/dist/cjs/receipt/discount.d.ts +1 -1
- package/dist/cjs/receipt/discount.js +8 -8
- package/dist/cjs/receipt/due.d.ts +86 -0
- package/dist/cjs/receipt/due.js +261 -0
- package/dist/cjs/receipt/epos.d.ts +22 -22
- package/dist/cjs/receipt/epos.js +45 -45
- package/dist/cjs/receipt/grid.d.ts +10 -10
- package/dist/cjs/receipt/grid.js +20 -20
- package/dist/cjs/receipt/index.d.ts +9 -8
- package/dist/cjs/receipt/index.js +26 -23
- package/dist/cjs/receipt/layout-escpos.d.ts +24 -24
- package/dist/cjs/receipt/layout-escpos.js +49 -49
- package/dist/cjs/receipt/layout.d.ts +28 -23
- package/dist/cjs/receipt/layout.js +45 -21
- package/dist/cjs/receipt/marke-daten.d.ts +8 -8
- package/dist/cjs/receipt/marke-daten.js +8 -8
- package/dist/cjs/receipt/marke.d.ts +7 -7
- package/dist/cjs/receipt/marke.js +10 -10
- package/dist/cjs/register/errors.d.ts +61 -0
- package/dist/cjs/register/errors.js +112 -0
- package/dist/cjs/register/index.d.ts +14 -1
- package/dist/cjs/register/index.js +20 -1
- package/dist/cjs/register/pairing.d.ts +55 -36
- package/dist/cjs/register/pairing.js +33 -29
- package/dist/cjs/register/session.d.ts +5 -5
- package/dist/cjs/register/session.js +7 -7
- package/dist/cjs/stored/draht.d.ts +45 -0
- package/dist/cjs/stored/draht.js +220 -0
- package/dist/cjs/stored/einstellungen.d.ts +23 -0
- package/dist/cjs/stored/einstellungen.js +200 -0
- package/dist/cjs/stored/index.d.ts +109 -0
- package/dist/cjs/stored/index.js +225 -0
- package/dist/cjs/stored/vokabular.d.ts +18 -0
- package/dist/cjs/stored/vokabular.js +389 -0
- package/dist/cjs/version.d.ts +7 -0
- package/dist/cjs/version.js +10 -0
- package/dist/cjs/vienna-time.d.ts +1 -1
- package/dist/cjs/vienna-time.js +2 -2
- package/dist/esm/client/api.d.ts +7 -6
- package/dist/esm/client/api.js +4 -4
- package/dist/esm/client/aufrufe.d.ts +29 -5
- package/dist/esm/client/aufrufe.js +111 -1
- package/dist/esm/client/auth.d.ts +2 -0
- package/dist/esm/client/auth.js +16 -1
- package/dist/esm/client/cashregisters.d.ts +1 -1
- package/dist/esm/client/cashregisters.js +2 -2
- package/dist/esm/client/errors.d.ts +94 -19
- package/dist/esm/client/errors.js +129 -27
- package/dist/esm/client/fehlercodes.d.ts +9 -0
- package/dist/esm/client/fehlercodes.js +32 -0
- package/dist/esm/client/index.d.ts +5 -5
- package/dist/esm/client/index.js +5 -5
- package/dist/esm/client/receipts.d.ts +131 -124
- package/dist/esm/client/receipts.js +195 -140
- package/dist/esm/client/reports.d.ts +26 -4
- package/dist/esm/client/reports.js +36 -4
- package/dist/esm/client/status.d.ts +3 -3
- package/dist/esm/client/status.js +7 -7
- package/dist/esm/client/transport.d.ts +56 -4
- package/dist/esm/client/transport.js +233 -24
- package/dist/esm/enums/vat-rate.d.ts +2 -2
- package/dist/esm/enums/vat-rate.js +1 -1
- package/dist/esm/index.d.ts +4 -3
- package/dist/esm/index.js +4 -3
- package/dist/{cjs/rechnung → esm/invoice}/api.d.ts +18 -17
- package/dist/esm/{rechnung → invoice}/api.js +6 -6
- package/dist/{cjs/rechnung → esm/invoice}/auth.d.ts +2 -2
- package/dist/esm/{rechnung → invoice}/auth.js +4 -4
- package/dist/{cjs/rechnung/rechnen.d.ts → esm/invoice/calc.d.ts} +27 -27
- package/dist/esm/{rechnung/rechnen.js → invoice/calc.js} +45 -45
- package/dist/{cjs/rechnung → esm/invoice}/endpunkte.d.ts +23 -21
- package/dist/esm/{rechnung → invoice}/endpunkte.js +52 -42
- package/dist/esm/invoice/fehler.d.ts +31 -0
- package/dist/esm/invoice/fehler.js +33 -0
- package/dist/esm/invoice/index.d.ts +21 -0
- package/dist/esm/invoice/index.js +20 -0
- package/dist/esm/{rechnung → invoice}/summen.d.ts +12 -12
- package/dist/esm/{rechnung → invoice}/summen.js +12 -12
- package/dist/esm/invoice/texte.d.ts +224 -0
- package/dist/esm/invoice/texte.js +421 -0
- package/dist/{cjs/rechnung → esm/invoice}/typen.d.ts +32 -11
- package/dist/esm/{rechnung → invoice}/vertrag.d.ts +97 -71
- package/dist/esm/{rechnung → invoice}/vertrag.js +143 -81
- package/dist/esm/models/cancellation.d.ts +43 -24
- package/dist/esm/models/cancellation.js +90 -45
- package/dist/esm/models/hobex-receipt.d.ts +3 -3
- package/dist/esm/models/hobex-receipt.js +35 -35
- package/dist/esm/models/index.d.ts +6 -5
- package/dist/esm/models/index.js +6 -5
- package/dist/esm/models/payment-errors.d.ts +32 -15
- package/dist/esm/models/payment-errors.js +77 -32
- package/dist/esm/models/receipt-company.d.ts +6 -5
- package/dist/esm/models/receipt-company.js +4 -4
- package/dist/esm/models/receipt-email.d.ts +32 -18
- package/dist/esm/models/receipt-email.js +65 -23
- package/dist/esm/models/receipt-errors.d.ts +39 -0
- package/dist/esm/models/receipt-errors.js +87 -0
- package/dist/esm/models/receipt-item.d.ts +9 -1
- package/dist/esm/models/receipt-item.js +3 -0
- package/dist/esm/models/receipt-summary.d.ts +10 -4
- package/dist/esm/models/receipt-summary.js +9 -3
- package/dist/esm/models/receipt.d.ts +31 -2
- package/dist/esm/models/receipt.js +12 -2
- package/dist/esm/models/voucher.d.ts +7 -6
- package/dist/esm/models/voucher.js +2 -7
- package/dist/esm/partner/ablauf.d.ts +10 -10
- package/dist/esm/partner/ablauf.js +27 -27
- package/dist/esm/partner/api.d.ts +26 -23
- package/dist/esm/partner/api.js +13 -15
- package/dist/esm/partner/auth.d.ts +1 -1
- package/dist/esm/partner/auth.js +2 -2
- package/dist/esm/partner/betrieb.d.ts +7 -7
- package/dist/esm/partner/betrieb.js +8 -8
- package/dist/esm/partner/endpunkte.d.ts +27 -14
- package/dist/esm/partner/endpunkte.js +79 -39
- package/dist/esm/partner/fehler.d.ts +60 -30
- package/dist/esm/partner/fehler.js +91 -35
- package/dist/esm/partner/index.d.ts +13 -12
- package/dist/esm/partner/index.js +12 -11
- package/dist/esm/partner/secret.d.ts +3 -3
- package/dist/esm/partner/secret.js +5 -5
- package/dist/esm/partner/typen.d.ts +129 -71
- package/dist/esm/partner/typen.js +75 -2
- package/dist/esm/partner/webhook-signatur.d.ts +2 -2
- package/dist/esm/partner/webhook-signatur.js +12 -12
- package/dist/esm/partner/webhooks.d.ts +60 -32
- package/dist/esm/partner/webhooks.js +38 -32
- package/dist/esm/payments/hobex.d.ts +11 -3
- package/dist/esm/payments/hobex.js +18 -6
- package/dist/esm/payments/stripe.d.ts +5 -2
- package/dist/esm/payments/stripe.js +11 -6
- package/dist/esm/pos/artikel.d.ts +90 -0
- package/dist/esm/pos/artikel.js +79 -0
- package/dist/esm/pos/client.d.ts +27 -0
- package/dist/esm/pos/client.js +137 -0
- package/dist/esm/pos/drucker.d.ts +86 -0
- package/dist/esm/pos/drucker.js +71 -0
- package/dist/esm/pos/errors.d.ts +36 -0
- package/dist/esm/pos/errors.js +88 -0
- package/dist/esm/pos/index.d.ts +15 -0
- package/dist/esm/pos/index.js +20 -0
- package/dist/esm/pos/settings.d.ts +313 -0
- package/dist/esm/pos/settings.js +367 -0
- package/dist/esm/pos/texte.d.ts +883 -0
- package/dist/esm/pos/texte.js +481 -0
- package/dist/esm/{kasse → pos}/trinkgeld.d.ts +1 -1
- package/dist/esm/{kasse → pos}/trinkgeld.js +2 -2
- package/dist/esm/printing/escpos.d.ts +29 -29
- package/dist/esm/printing/escpos.js +56 -56
- package/dist/esm/printing/index.d.ts +2 -2
- package/dist/esm/printing/index.js +2 -2
- package/dist/esm/printing/qr-groesse.d.ts +38 -38
- package/dist/esm/printing/qr-groesse.js +42 -42
- package/dist/esm/printing/webusb.d.ts +2 -2
- package/dist/esm/printing/webusb.js +4 -4
- package/dist/esm/react/index.d.ts +21 -21
- package/dist/esm/react/index.js +39 -29
- package/dist/esm/receipt/bild.d.ts +4 -4
- package/dist/esm/receipt/bild.js +11 -11
- package/dist/esm/receipt/blatt.d.ts +46 -46
- package/dist/esm/receipt/blatt.js +55 -55
- package/dist/esm/receipt/discount.d.ts +1 -1
- package/dist/esm/receipt/discount.js +7 -7
- package/dist/esm/receipt/due.d.ts +86 -0
- package/dist/esm/receipt/due.js +257 -0
- package/dist/esm/receipt/epos.d.ts +22 -22
- package/dist/esm/receipt/epos.js +47 -47
- package/dist/esm/receipt/grid.d.ts +10 -10
- package/dist/esm/receipt/grid.js +18 -18
- package/dist/esm/receipt/index.d.ts +9 -8
- package/dist/esm/receipt/index.js +9 -8
- package/dist/esm/receipt/layout-escpos.d.ts +24 -24
- package/dist/esm/receipt/layout-escpos.js +51 -51
- package/dist/esm/receipt/layout.d.ts +28 -23
- package/dist/esm/receipt/layout.js +44 -20
- package/dist/esm/receipt/marke-daten.d.ts +8 -8
- package/dist/esm/receipt/marke-daten.js +7 -7
- package/dist/esm/receipt/marke.d.ts +7 -7
- package/dist/esm/receipt/marke.js +10 -10
- package/dist/esm/register/errors.d.ts +61 -0
- package/dist/esm/register/errors.js +104 -0
- package/dist/esm/register/index.d.ts +14 -1
- package/dist/esm/register/index.js +13 -0
- package/dist/esm/register/pairing.d.ts +55 -36
- package/dist/esm/register/pairing.js +33 -29
- package/dist/esm/register/session.d.ts +5 -5
- package/dist/esm/register/session.js +7 -7
- package/dist/esm/stored/draht.d.ts +45 -0
- package/dist/esm/stored/draht.js +208 -0
- package/dist/esm/stored/einstellungen.d.ts +23 -0
- package/dist/esm/stored/einstellungen.js +196 -0
- package/dist/esm/stored/index.d.ts +109 -0
- package/dist/esm/stored/index.js +217 -0
- package/dist/esm/stored/vokabular.d.ts +18 -0
- package/dist/esm/stored/vokabular.js +386 -0
- package/dist/esm/version.d.ts +7 -0
- package/dist/esm/version.js +7 -0
- package/dist/esm/vienna-time.d.ts +1 -1
- package/dist/esm/vienna-time.js +2 -2
- package/fixtures/{erwartet/storno-rabatt.lines.json → expected/cancellation-discount.lines.json} +2 -2
- package/fixtures/expected/cancellation-discount.sheet32.json +248 -0
- package/fixtures/{erwartet/storno-rabatt.blatt48.json → expected/cancellation-discount.sheet48.json} +119 -119
- package/fixtures/{erwartet/storno-voll.lines.json → expected/cancellation-full.lines.json} +2 -2
- package/fixtures/expected/cancellation-full.sheet32.json +218 -0
- package/fixtures/{erwartet/storno-voll.blatt48.json → expected/cancellation-full.sheet48.json} +107 -107
- package/fixtures/{erwartet/storno-teil.lines.json → expected/cancellation-partial.lines.json} +2 -2
- package/fixtures/expected/cancellation-partial.sheet32.json +206 -0
- package/fixtures/{erwartet/storno-teil.blatt48.json → expected/cancellation-partial.sheet48.json} +101 -101
- package/fixtures/{erwartet/storno-split-voll.lines.json → expected/cancellation-split-full.lines.json} +2 -2
- package/fixtures/expected/cancellation-split-full.sheet32.json +320 -0
- package/fixtures/{erwartet/storno-split-voll.blatt48.json → expected/cancellation-split-full.sheet48.json} +158 -158
- package/fixtures/{erwartet/storno-split-teil.lines.json → expected/cancellation-split-partial.lines.json} +2 -2
- package/fixtures/expected/cancellation-split-partial.sheet32.json +230 -0
- package/fixtures/{erwartet/storno-split-teil.blatt48.json → expected/cancellation-split-partial.sheet48.json} +113 -113
- package/fixtures/{erwartet/karte-eigener.lines.json → expected/card-custom.lines.json} +1 -1
- package/fixtures/expected/card-custom.sheet32.json +158 -0
- package/fixtures/{erwartet/karte-eigener.blatt48.json → expected/card-custom.sheet48.json} +80 -80
- package/fixtures/{erwartet/karte-gptom-ios.lines.json → expected/card-gptom-ios.lines.json} +1 -1
- package/fixtures/expected/card-gptom-ios.sheet32.json +230 -0
- package/fixtures/{erwartet/karte-gptom-ios.blatt48.json → expected/card-gptom-ios.sheet48.json} +116 -116
- package/fixtures/{erwartet/karte-gptom.lines.json → expected/card-gptom.lines.json} +1 -1
- package/fixtures/expected/card-gptom.sheet32.json +230 -0
- package/fixtures/{erwartet/karte-gptom.blatt48.json → expected/card-gptom.sheet48.json} +116 -116
- package/fixtures/{erwartet/karte-hobex-cloud.lines.json → expected/card-hobex-cloud.lines.json} +1 -1
- package/fixtures/expected/card-hobex-cloud.sheet32.json +200 -0
- package/fixtures/{erwartet/karte-hobex-cloud.blatt48.json → expected/card-hobex-cloud.sheet48.json} +101 -101
- package/fixtures/{erwartet/karte-hobex-hps.lines.json → expected/card-hobex-hps.lines.json} +1 -1
- package/fixtures/expected/card-hobex-hps.sheet32.json +224 -0
- package/fixtures/{erwartet/karte-hobex-hps.blatt48.json → expected/card-hobex-hps.sheet48.json} +113 -113
- package/fixtures/{erwartet/karte-mypos.lines.json → expected/card-mypos.lines.json} +1 -1
- package/fixtures/expected/card-mypos.sheet32.json +254 -0
- package/fixtures/{erwartet/karte-mypos.blatt48.json → expected/card-mypos.sheet48.json} +122 -122
- package/fixtures/{erwartet/karte-stripe-eps.lines.json → expected/card-stripe-eps.lines.json} +1 -1
- package/fixtures/expected/card-stripe-eps.sheet32.json +194 -0
- package/fixtures/{erwartet/karte-stripe-eps.blatt48.json → expected/card-stripe-eps.sheet48.json} +98 -98
- package/fixtures/{erwartet/karte-stripe.lines.json → expected/card-stripe.lines.json} +1 -1
- package/fixtures/expected/card-stripe.sheet32.json +212 -0
- package/fixtures/{erwartet/karte-stripe.blatt48.json → expected/card-stripe.sheet48.json} +107 -107
- package/fixtures/{erwartet/karte-sumup.lines.json → expected/card-sumup.lines.json} +1 -1
- package/fixtures/expected/card-sumup.sheet32.json +218 -0
- package/fixtures/{erwartet/karte-sumup.blatt48.json → expected/card-sumup.sheet48.json} +104 -104
- package/fixtures/{erwartet/rabattzeilen.lines.json → expected/discount-lines.lines.json} +1 -1
- package/fixtures/expected/discount-lines.sheet32.json +200 -0
- package/fixtures/{erwartet/rabattzeilen.blatt48.json → expected/discount-lines.sheet48.json} +98 -98
- package/fixtures/{erwartet/rabatt-chef-trinkgeld.lines.json → expected/discount-owner-tip.lines.json} +1 -1
- package/fixtures/expected/discount-owner-tip.sheet32.json +212 -0
- package/fixtures/{erwartet/rabatt-chef-trinkgeld.blatt48.json → expected/discount-owner-tip.sheet48.json} +104 -104
- package/fixtures/{erwartet/rabatt-einfach.lines.json → expected/discount-simple.lines.json} +1 -1
- package/fixtures/expected/discount-simple.sheet32.json +182 -0
- package/fixtures/{erwartet/rabatt-einfach.blatt48.json → expected/discount-simple.sheet48.json} +89 -89
- package/fixtures/{erwartet/rabatt-trinkgeld.lines.json → expected/discount-tip.lines.json} +1 -1
- package/fixtures/expected/discount-tip.sheet32.json +212 -0
- package/fixtures/{erwartet/rabatt-trinkgeld.blatt48.json → expected/discount-tip.sheet48.json} +104 -104
- package/fixtures/{erwartet/rabatt-wertgutschein.lines.json → expected/discount-value-voucher.lines.json} +1 -1
- package/fixtures/expected/discount-value-voucher.sheet32.json +218 -0
- package/fixtures/{erwartet/rabatt-wertgutschein.blatt48.json → expected/discount-value-voucher.sheet48.json} +107 -107
- package/fixtures/{erwartet/langer-artikelname.lines.json → expected/long-item-name.lines.json} +1 -1
- package/fixtures/expected/long-item-name.sheet32.json +176 -0
- package/fixtures/{erwartet/langer-artikelname.blatt48.json → expected/long-item-name.sheet48.json} +86 -86
- package/fixtures/{erwartet/verkauf-karte.lines.json → expected/sale-card.lines.json} +1 -1
- package/fixtures/expected/sale-card.sheet32.json +176 -0
- package/fixtures/{erwartet/verkauf-karte.blatt48.json → expected/sale-card.sheet48.json} +86 -86
- package/fixtures/{erwartet/verkauf-bar.lines.json → expected/sale-cash.lines.json} +1 -1
- package/fixtures/expected/sale-cash.sheet32.json +176 -0
- package/fixtures/{erwartet/verkauf-bar.blatt48.json → expected/sale-cash.sheet48.json} +86 -86
- package/fixtures/{erwartet/verkauf-kleinunternehmer.lines.json → expected/sale-small-business.lines.json} +1 -1
- package/fixtures/expected/sale-small-business.sheet32.json +182 -0
- package/fixtures/{erwartet/verkauf-kleinunternehmer.blatt48.json → expected/sale-small-business.sheet48.json} +89 -89
- package/fixtures/{erwartet/signaturausfall-verkauf.lines.json → expected/signature-outage-sale.lines.json} +1 -1
- package/fixtures/expected/signature-outage-sale.sheet32.json +194 -0
- package/fixtures/{erwartet/signaturausfall-verkauf.blatt48.json → expected/signature-outage-sale.sheet48.json} +92 -92
- package/fixtures/{erwartet/split-karte-karte-bar.lines.json → expected/split-card-card-cash.lines.json} +1 -1
- package/fixtures/expected/split-card-card-cash.sheet32.json +356 -0
- package/fixtures/{erwartet/split-karte-karte-bar.blatt48.json → expected/split-card-card-cash.sheet48.json} +170 -170
- package/fixtures/{erwartet/split-bar-rueckgeld.lines.json → expected/split-cash-change.lines.json} +1 -1
- package/fixtures/expected/split-cash-change.sheet32.json +194 -0
- package/fixtures/{erwartet/split-bar-rueckgeld.blatt48.json → expected/split-cash-change.sheet48.json} +92 -92
- package/fixtures/{erwartet/split-langer-betrag.lines.json → expected/split-long-amount.lines.json} +1 -1
- package/fixtures/expected/split-long-amount.sheet32.json +266 -0
- package/fixtures/{erwartet/split-langer-betrag.blatt48.json → expected/split-long-amount.sheet48.json} +131 -131
- package/fixtures/{erwartet/split-eine-karte-trinkgeld.lines.json → expected/split-one-card-tip.lines.json} +1 -1
- package/fixtures/expected/split-one-card-tip.sheet32.json +242 -0
- package/fixtures/{erwartet/split-eine-karte-trinkgeld.blatt48.json → expected/split-one-card-tip.sheet48.json} +113 -113
- package/fixtures/{erwartet/split-tischrunde-trinkgeld.lines.json → expected/split-table-round-tip.lines.json} +1 -1
- package/fixtures/expected/split-table-round-tip.sheet32.json +470 -0
- package/fixtures/{erwartet/split-tischrunde-trinkgeld.blatt48.json → expected/split-table-round-tip.sheet48.json} +218 -218
- package/fixtures/{erwartet/split-trinkgeld-karte.lines.json → expected/split-tip-card.lines.json} +1 -1
- package/fixtures/expected/split-tip-card.sheet32.json +272 -0
- package/fixtures/{erwartet/split-trinkgeld-karte.blatt48.json → expected/split-tip-card.sheet48.json} +128 -128
- package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.lines.json → expected/split-two-cards-same-provider.lines.json} +1 -1
- package/fixtures/expected/split-two-cards-same-provider.sheet32.json +326 -0
- package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.blatt48.json → expected/split-two-cards-same-provider.sheet48.json} +149 -149
- package/fixtures/{erwartet/testkasse-verkauf.lines.json → expected/test-cashregister-sale.lines.json} +3 -3
- package/fixtures/expected/test-cashregister-sale.sheet32.json +224 -0
- package/fixtures/{erwartet/testkasse-verkauf.blatt48.json → expected/test-cashregister-sale.sheet48.json} +110 -110
- package/fixtures/{erwartet/testsignatur-verkauf.lines.json → expected/test-signature-sale.lines.json} +3 -3
- package/fixtures/expected/test-signature-sale.sheet32.json +236 -0
- package/fixtures/{erwartet/testsignatur-verkauf.blatt48.json → expected/test-signature-sale.sheet48.json} +110 -110
- package/fixtures/{erwartet → expected}/training.lines.json +2 -2
- package/fixtures/expected/training.sheet32.json +236 -0
- package/fixtures/{erwartet/training.blatt48.json → expected/training.sheet48.json} +110 -110
- package/fixtures/{erwartet/null-jahr.lines.json → expected/zero-annual.lines.json} +2 -2
- package/fixtures/expected/zero-annual.sheet32.json +212 -0
- package/fixtures/{erwartet/null-jahr.blatt48.json → expected/zero-annual.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-schluss.lines.json → expected/zero-final.lines.json} +2 -2
- package/fixtures/expected/zero-final.sheet32.json +206 -0
- package/fixtures/{erwartet/null-schluss.blatt48.json → expected/zero-final.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-pruef.lines.json → expected/zero-manual.lines.json} +2 -2
- package/fixtures/expected/zero-manual.sheet32.json +206 -0
- package/fixtures/{erwartet/null-pruef.blatt48.json → expected/zero-manual.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-monat.lines.json → expected/zero-monthly.lines.json} +2 -2
- package/fixtures/expected/zero-monthly.sheet32.json +206 -0
- package/fixtures/{erwartet/null-monat.blatt48.json → expected/zero-monthly.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-ausfall.lines.json → expected/zero-outage-end.lines.json} +2 -2
- package/fixtures/expected/zero-outage-end.sheet32.json +206 -0
- package/fixtures/{erwartet/null-ausfall.blatt48.json → expected/zero-outage-end.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-start.lines.json → expected/zero-start.lines.json} +2 -2
- package/fixtures/expected/zero-start.sheet32.json +206 -0
- package/fixtures/{erwartet/null-start.blatt48.json → expected/zero-start.sheet48.json} +95 -95
- package/fixtures/hobex-hps-codes.json +12 -12
- package/fixtures/invoice-api-examples/brands-ok.json +8 -0
- package/fixtures/{rechnung-api-beispiele/credit-fehler-grund.json → invoice-api-examples/credit-error-reason.json} +6 -6
- package/fixtures/{rechnung-api-beispiele → invoice-api-examples}/credit-ok.json +6 -6
- package/fixtures/{rechnung-api-beispiele/customer-fehler-uid.json → invoice-api-examples/customer-error-vat-id.json} +4 -4
- package/fixtures/invoice-api-examples/customer-get-error-both.json +15 -0
- package/fixtures/{rechnung-api-beispiele → invoice-api-examples}/customer-ok.json +4 -4
- package/fixtures/{rechnung-api-beispiele/customer-search-fehler-leer.json → invoice-api-examples/customer-search-error-empty.json} +4 -4
- package/fixtures/{rechnung-api-beispiele/issue-rabatt.json → invoice-api-examples/issue-discount.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-englisch.json → invoice-api-examples/issue-english.json} +7 -7
- package/fixtures/{rechnung-api-beispiele/issue-fehler-cent.json → invoice-api-examples/issue-error-cent.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-sprache.json → invoice-api-examples/issue-error-language.json} +5 -5
- package/fixtures/{rechnung-api-beispiele/issue-fehler-negativ.json → invoice-api-examples/issue-error-negative.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-zahlungsart.json → invoice-api-examples/issue-error-payment-method.json} +8 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-preis-beide.json → invoice-api-examples/issue-error-price-both.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-preis-fehlt.json → invoice-api-examples/issue-error-price-missing.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-menge.json → invoice-api-examples/issue-error-quantity.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-satz.json → invoice-api-examples/issue-error-rate.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-einheit.json → invoice-api-examples/issue-error-unit.json} +5 -5
- package/fixtures/{rechnung-api-beispiele/issue-fehler-unbekannt.json → invoice-api-examples/issue-error-unknown.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-brutto-20.json → invoice-api-examples/issue-gross-20.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-mikropreis.json → invoice-api-examples/issue-micro-price.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-gemischt.json → invoice-api-examples/issue-mixed.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-netto-20.json → invoice-api-examples/issue-net-20.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-bezahlt.json → invoice-api-examples/issue-paid.json} +7 -7
- package/fixtures/{rechnung-api-beispiele/issue-kleinunternehmer.json → invoice-api-examples/issue-small-business.json} +6 -6
- package/fixtures/invoice-api-examples/payment-error-on-site.json +17 -0
- package/fixtures/invoice-api-examples/payment-error-without-key.json +16 -0
- package/fixtures/invoice-api-examples/payment-recorded-later.json +14 -0
- package/fixtures/{rechnung-api-beispiele/setup-status-fehler-feld.json → invoice-api-examples/setup-status-error-field.json} +4 -4
- package/fixtures/invoice-api-examples/setup-status-ok.json +8 -0
- package/fixtures/{rechnung-api.schema.json → invoice-api.schema.json} +24 -24
- package/fixtures/{rechnung-rechnen-zufall.json → invoice-calc-random.json} +828 -828
- package/fixtures/{rechnung-rechnen.json → invoice-calc.json} +47 -47
- package/fixtures/invoice-texts.json +464 -0
- package/fixtures/{rechnung-summen.json → invoice-totals.json} +25 -25
- package/fixtures/{position-aus-euro.json → item-from-euro.json} +26 -26
- package/fixtures/manifest.json +252 -252
- package/fixtures/pos-message-cases.json +32 -0
- package/fixtures/pos-settings-defaults.json +149 -0
- package/fixtures/{kasse-texte.json → pos-texts.json} +416 -416
- package/fixtures/receipt-due-generated.json +1218 -0
- package/fixtures/{belege/storno-rabatt.json → receipts/cancellation-discount.json} +3 -3
- package/fixtures/{belege/storno-voll.json → receipts/cancellation-full.json} +3 -3
- package/fixtures/{belege/storno-teil.json → receipts/cancellation-partial.json} +3 -3
- package/fixtures/{belege/storno-split-voll.json → receipts/cancellation-split-full.json} +3 -3
- package/fixtures/{belege/storno-split-teil.json → receipts/cancellation-split-partial.json} +3 -3
- package/fixtures/{belege/karte-eigener.json → receipts/card-custom.json} +2 -2
- package/fixtures/{belege/karte-gptom-ios.json → receipts/card-gptom-ios.json} +2 -2
- package/fixtures/{belege/karte-gptom.json → receipts/card-gptom.json} +2 -2
- package/fixtures/{belege/karte-hobex-cloud.json → receipts/card-hobex-cloud.json} +2 -2
- package/fixtures/{belege/karte-hobex-hps.json → receipts/card-hobex-hps.json} +2 -2
- package/fixtures/{belege/karte-mypos.json → receipts/card-mypos.json} +2 -2
- package/fixtures/{belege/karte-stripe-eps.json → receipts/card-stripe-eps.json} +2 -2
- package/fixtures/{belege/karte-stripe.json → receipts/card-stripe.json} +2 -2
- package/fixtures/{belege/karte-sumup.json → receipts/card-sumup.json} +2 -2
- package/fixtures/{belege/rabattzeilen.json → receipts/discount-lines.json} +2 -2
- package/fixtures/{belege/rabatt-chef-trinkgeld.json → receipts/discount-owner-tip.json} +2 -2
- package/fixtures/{belege/rabatt-einfach.json → receipts/discount-simple.json} +2 -2
- package/fixtures/{belege/rabatt-trinkgeld.json → receipts/discount-tip.json} +2 -2
- package/fixtures/{belege/rabatt-wertgutschein.json → receipts/discount-value-voucher.json} +2 -2
- package/fixtures/{belege/langer-artikelname.json → receipts/long-item-name.json} +2 -2
- package/fixtures/{belege/verkauf-karte.json → receipts/sale-card.json} +2 -2
- package/fixtures/{belege/verkauf-bar.json → receipts/sale-cash.json} +2 -2
- package/fixtures/{belege/verkauf-kleinunternehmer.json → receipts/sale-small-business.json} +1 -1
- package/fixtures/{belege/signaturausfall-verkauf.json → receipts/signature-outage-sale.json} +2 -2
- package/fixtures/{belege/split-karte-karte-bar.json → receipts/split-card-card-cash.json} +2 -2
- package/fixtures/{belege/split-bar-rueckgeld.json → receipts/split-cash-change.json} +2 -2
- package/fixtures/{belege/split-langer-betrag.json → receipts/split-long-amount.json} +2 -2
- package/fixtures/{belege/split-eine-karte-trinkgeld.json → receipts/split-one-card-tip.json} +2 -2
- package/fixtures/{belege/split-tischrunde-trinkgeld.json → receipts/split-table-round-tip.json} +2 -2
- package/fixtures/{belege/split-trinkgeld-karte.json → receipts/split-tip-card.json} +2 -2
- package/fixtures/{belege/split-zwei-karten-gleicher-anbieter.json → receipts/split-two-cards-same-provider.json} +2 -2
- package/fixtures/{belege/testsignatur-verkauf.json → receipts/test-cashregister-sale.json} +3 -3
- package/fixtures/{belege/testkasse-verkauf.json → receipts/test-signature-sale.json} +3 -3
- package/fixtures/{belege → receipts}/training.json +2 -2
- package/fixtures/{belege/null-jahr.json → receipts/zero-annual.json} +5 -5
- package/fixtures/{belege/null-schluss.json → receipts/zero-final.json} +5 -5
- package/fixtures/{belege/null-pruef.json → receipts/zero-manual.json} +5 -5
- package/fixtures/{belege/null-monat.json → receipts/zero-monthly.json} +5 -5
- package/fixtures/{belege/null-ausfall.json → receipts/zero-outage-end.json} +5 -5
- package/fixtures/{belege/null-start.json → receipts/zero-start.json} +5 -5
- package/fixtures/renames-1.0.json +1490 -0
- package/fixtures/{kasse-settings-standard.json → stored/pos-settings-defaults.json} +7 -7
- package/fixtures/surface.json +877 -0
- package/fixtures/v3/README.md +125 -0
- package/fixtures/v3/antworten/belege.json +4738 -0
- package/fixtures/v3/antworten/belegmail.json +154 -0
- package/fixtures/v3/antworten/kasse-belege.json +4304 -0
- package/fixtures/v3/antworten/kasse.json +12716 -0
- package/fixtures/v3/antworten/rechnungen.json +1712 -0
- package/fixtures/v3/antworten/storno.json +737 -0
- package/fixtures/v3/stored/belege.json +502 -0
- package/fixtures/v3/stored/kasse.json +3461 -0
- package/fixtures/v3/stored/rechnungen.json +750 -0
- package/fixtures/v3/v3-vokabular.json +3375 -0
- package/fixtures/v3/zahlbetrag-faelle.json +794 -0
- package/package.json +32 -18
- package/dist/cjs/kasse/artikel.d.ts +0 -83
- package/dist/cjs/kasse/artikel.js +0 -79
- package/dist/cjs/kasse/client.d.ts +0 -10
- package/dist/cjs/kasse/client.js +0 -38
- package/dist/cjs/kasse/drucker.d.ts +0 -59
- package/dist/cjs/kasse/drucker.js +0 -50
- package/dist/cjs/kasse/index.d.ts +0 -13
- package/dist/cjs/kasse/index.js +0 -83
- package/dist/cjs/kasse/settings.d.ts +0 -229
- package/dist/cjs/kasse/settings.js +0 -172
- package/dist/cjs/kasse/texte.d.ts +0 -868
- package/dist/cjs/kasse/texte.js +0 -474
- package/dist/cjs/rechnung/fehler.d.ts +0 -21
- package/dist/cjs/rechnung/fehler.js +0 -44
- package/dist/cjs/rechnung/index.d.ts +0 -21
- package/dist/cjs/rechnung/index.js +0 -82
- package/dist/cjs/rechnung/texte.d.ts +0 -222
- package/dist/cjs/rechnung/texte.js +0 -425
- package/dist/esm/kasse/artikel.d.ts +0 -83
- package/dist/esm/kasse/artikel.js +0 -70
- package/dist/esm/kasse/client.d.ts +0 -10
- package/dist/esm/kasse/client.js +0 -33
- package/dist/esm/kasse/drucker.d.ts +0 -59
- package/dist/esm/kasse/drucker.js +0 -45
- package/dist/esm/kasse/index.d.ts +0 -13
- package/dist/esm/kasse/index.js +0 -18
- package/dist/esm/kasse/settings.d.ts +0 -229
- package/dist/esm/kasse/settings.js +0 -168
- package/dist/esm/kasse/texte.d.ts +0 -868
- package/dist/esm/kasse/texte.js +0 -466
- package/dist/esm/rechnung/fehler.d.ts +0 -21
- package/dist/esm/rechnung/fehler.js +0 -39
- package/dist/esm/rechnung/index.d.ts +0 -21
- package/dist/esm/rechnung/index.js +0 -20
- package/dist/esm/rechnung/texte.d.ts +0 -222
- package/dist/esm/rechnung/texte.js +0 -421
- package/fixtures/erwartet/karte-eigener.blatt32.json +0 -158
- package/fixtures/erwartet/karte-gptom-ios.blatt32.json +0 -230
- package/fixtures/erwartet/karte-gptom.blatt32.json +0 -230
- package/fixtures/erwartet/karte-hobex-cloud.blatt32.json +0 -200
- package/fixtures/erwartet/karte-hobex-hps.blatt32.json +0 -224
- package/fixtures/erwartet/karte-mypos.blatt32.json +0 -254
- package/fixtures/erwartet/karte-stripe-eps.blatt32.json +0 -194
- package/fixtures/erwartet/karte-stripe.blatt32.json +0 -212
- package/fixtures/erwartet/karte-sumup.blatt32.json +0 -218
- package/fixtures/erwartet/langer-artikelname.blatt32.json +0 -176
- package/fixtures/erwartet/null-ausfall.blatt32.json +0 -206
- package/fixtures/erwartet/null-jahr.blatt32.json +0 -212
- package/fixtures/erwartet/null-monat.blatt32.json +0 -206
- package/fixtures/erwartet/null-pruef.blatt32.json +0 -206
- package/fixtures/erwartet/null-schluss.blatt32.json +0 -206
- package/fixtures/erwartet/null-start.blatt32.json +0 -206
- package/fixtures/erwartet/rabatt-chef-trinkgeld.blatt32.json +0 -212
- package/fixtures/erwartet/rabatt-einfach.blatt32.json +0 -182
- package/fixtures/erwartet/rabatt-trinkgeld.blatt32.json +0 -212
- package/fixtures/erwartet/rabatt-wertgutschein.blatt32.json +0 -218
- package/fixtures/erwartet/rabattzeilen.blatt32.json +0 -200
- package/fixtures/erwartet/signaturausfall-verkauf.blatt32.json +0 -194
- package/fixtures/erwartet/split-bar-rueckgeld.blatt32.json +0 -194
- package/fixtures/erwartet/split-eine-karte-trinkgeld.blatt32.json +0 -242
- package/fixtures/erwartet/split-karte-karte-bar.blatt32.json +0 -356
- package/fixtures/erwartet/split-langer-betrag.blatt32.json +0 -266
- package/fixtures/erwartet/split-tischrunde-trinkgeld.blatt32.json +0 -470
- package/fixtures/erwartet/split-trinkgeld-karte.blatt32.json +0 -272
- package/fixtures/erwartet/split-zwei-karten-gleicher-anbieter.blatt32.json +0 -326
- package/fixtures/erwartet/storno-rabatt.blatt32.json +0 -248
- package/fixtures/erwartet/storno-split-teil.blatt32.json +0 -230
- package/fixtures/erwartet/storno-split-voll.blatt32.json +0 -320
- package/fixtures/erwartet/storno-teil.blatt32.json +0 -206
- package/fixtures/erwartet/storno-voll.blatt32.json +0 -218
- package/fixtures/erwartet/testkasse-verkauf.blatt32.json +0 -224
- package/fixtures/erwartet/testsignatur-verkauf.blatt32.json +0 -236
- package/fixtures/erwartet/training.blatt32.json +0 -236
- package/fixtures/erwartet/verkauf-bar.blatt32.json +0 -176
- package/fixtures/erwartet/verkauf-karte.blatt32.json +0 -176
- package/fixtures/erwartet/verkauf-kleinunternehmer.blatt32.json +0 -182
- package/fixtures/kasse-meldungen-faelle.json +0 -32
- package/fixtures/oberflaeche.json +0 -558
- package/fixtures/rechnung-api-beispiele/brands-ok.json +0 -8
- package/fixtures/rechnung-api-beispiele/customer-get-fehler-beide.json +0 -15
- package/fixtures/rechnung-api-beispiele/setup-status-ok.json +0 -8
- package/fixtures/rechnung-api-beispiele/zahlung-fehler-ohne-schluessel.json +0 -14
- package/fixtures/rechnung-api-beispiele/zahlung-fehler-vor-ort.json +0 -15
- package/fixtures/rechnung-api-beispiele/zahlung-nachtrag.json +0 -14
- package/fixtures/rechnung-texte.json +0 -464
- /package/dist/cjs/{rechnung → invoice}/typen.js +0 -0
- /package/dist/esm/{rechnung → invoice}/typen.js +0 -0
- /package/fixtures/{erwartet/storno-rabatt.grid32.txt → expected/cancellation-discount.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-rabatt.grid48.txt → expected/cancellation-discount.grid48.txt} +0 -0
- /package/fixtures/{erwartet/storno-voll.grid32.txt → expected/cancellation-full.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-voll.grid48.txt → expected/cancellation-full.grid48.txt} +0 -0
- /package/fixtures/{erwartet/storno-teil.grid32.txt → expected/cancellation-partial.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-teil.grid48.txt → expected/cancellation-partial.grid48.txt} +0 -0
- /package/fixtures/{erwartet/storno-split-voll.grid32.txt → expected/cancellation-split-full.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-split-voll.grid48.txt → expected/cancellation-split-full.grid48.txt} +0 -0
- /package/fixtures/{erwartet/storno-split-teil.grid32.txt → expected/cancellation-split-partial.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-split-teil.grid48.txt → expected/cancellation-split-partial.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-eigener.grid32.txt → expected/card-custom.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-eigener.grid48.txt → expected/card-custom.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-gptom-ios.grid32.txt → expected/card-gptom-ios.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-gptom-ios.grid48.txt → expected/card-gptom-ios.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-gptom.grid32.txt → expected/card-gptom.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-gptom.grid48.txt → expected/card-gptom.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-hobex-cloud.grid32.txt → expected/card-hobex-cloud.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-hobex-cloud.grid48.txt → expected/card-hobex-cloud.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-hobex-hps.grid32.txt → expected/card-hobex-hps.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-hobex-hps.grid48.txt → expected/card-hobex-hps.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-mypos.grid32.txt → expected/card-mypos.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-mypos.grid48.txt → expected/card-mypos.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-stripe-eps.grid32.txt → expected/card-stripe-eps.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-stripe-eps.grid48.txt → expected/card-stripe-eps.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-stripe.grid32.txt → expected/card-stripe.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-stripe.grid48.txt → expected/card-stripe.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-sumup.grid32.txt → expected/card-sumup.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-sumup.grid48.txt → expected/card-sumup.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabattzeilen.grid32.txt → expected/discount-lines.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabattzeilen.grid48.txt → expected/discount-lines.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-chef-trinkgeld.grid32.txt → expected/discount-owner-tip.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-chef-trinkgeld.grid48.txt → expected/discount-owner-tip.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-einfach.grid32.txt → expected/discount-simple.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-einfach.grid48.txt → expected/discount-simple.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-trinkgeld.grid32.txt → expected/discount-tip.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-trinkgeld.grid48.txt → expected/discount-tip.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-wertgutschein.grid32.txt → expected/discount-value-voucher.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-wertgutschein.grid48.txt → expected/discount-value-voucher.grid48.txt} +0 -0
- /package/fixtures/{erwartet/logo-probe-hoch.raster32.txt → expected/logo-sample-tall.raster32.txt} +0 -0
- /package/fixtures/{erwartet/logo-probe.raster32.txt → expected/logo-sample.raster32.txt} +0 -0
- /package/fixtures/{erwartet/langer-artikelname.grid32.txt → expected/long-item-name.grid32.txt} +0 -0
- /package/fixtures/{erwartet/langer-artikelname.grid48.txt → expected/long-item-name.grid48.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-karte.grid32.txt → expected/sale-card.grid32.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-karte.grid48.txt → expected/sale-card.grid48.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-bar.grid32.txt → expected/sale-cash.grid32.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-bar.grid48.txt → expected/sale-cash.grid48.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-kleinunternehmer.grid32.txt → expected/sale-small-business.grid32.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-kleinunternehmer.grid48.txt → expected/sale-small-business.grid48.txt} +0 -0
- /package/fixtures/{erwartet/signaturausfall-verkauf.grid32.txt → expected/signature-outage-sale.grid32.txt} +0 -0
- /package/fixtures/{erwartet/signaturausfall-verkauf.grid48.txt → expected/signature-outage-sale.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-karte-karte-bar.grid32.txt → expected/split-card-card-cash.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-karte-karte-bar.grid48.txt → expected/split-card-card-cash.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-bar-rueckgeld.grid32.txt → expected/split-cash-change.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-bar-rueckgeld.grid48.txt → expected/split-cash-change.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-langer-betrag.grid32.txt → expected/split-long-amount.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-langer-betrag.grid48.txt → expected/split-long-amount.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-eine-karte-trinkgeld.grid32.txt → expected/split-one-card-tip.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-eine-karte-trinkgeld.grid48.txt → expected/split-one-card-tip.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-tischrunde-trinkgeld.grid32.txt → expected/split-table-round-tip.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-tischrunde-trinkgeld.grid48.txt → expected/split-table-round-tip.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-trinkgeld-karte.grid32.txt → expected/split-tip-card.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-trinkgeld-karte.grid48.txt → expected/split-tip-card.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.grid32.txt → expected/split-two-cards-same-provider.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.grid48.txt → expected/split-two-cards-same-provider.grid48.txt} +0 -0
- /package/fixtures/{erwartet/testkasse-verkauf.grid32.txt → expected/test-cashregister-sale.grid32.txt} +0 -0
- /package/fixtures/{erwartet/testkasse-verkauf.grid48.txt → expected/test-cashregister-sale.grid48.txt} +0 -0
- /package/fixtures/{erwartet/testsignatur-verkauf.grid32.txt → expected/test-signature-sale.grid32.txt} +0 -0
- /package/fixtures/{erwartet/testsignatur-verkauf.grid48.txt → expected/test-signature-sale.grid48.txt} +0 -0
- /package/fixtures/{erwartet → expected}/training.grid32.txt +0 -0
- /package/fixtures/{erwartet → expected}/training.grid48.txt +0 -0
- /package/fixtures/{erwartet/null-jahr.grid32.txt → expected/zero-annual.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-jahr.grid48.txt → expected/zero-annual.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-schluss.grid32.txt → expected/zero-final.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-schluss.grid48.txt → expected/zero-final.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-pruef.grid32.txt → expected/zero-manual.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-pruef.grid48.txt → expected/zero-manual.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-monat.grid32.txt → expected/zero-monthly.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-monat.grid48.txt → expected/zero-monthly.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-ausfall.grid32.txt → expected/zero-outage-end.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-ausfall.grid48.txt → expected/zero-outage-end.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-start.grid32.txt → expected/zero-start.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-start.grid48.txt → expected/zero-start.grid48.txt} +0 -0
|
@@ -14,8 +14,12 @@
|
|
|
14
14
|
* Compilerfehler sein und keine `validation`-Antwort vom Server.
|
|
15
15
|
*
|
|
16
16
|
* **Die Formen sind die der `/v3`** (seit 0.28.0): Feldnamen und Werte, auf
|
|
17
|
-
* die ein Programm verzweigt, sind englisch; Texte fuer
|
|
18
|
-
* `note`, `statusText`, `nextSteps`) bleiben deutsch
|
|
17
|
+
* die ein Programm verzweigt, sind englisch, die Fehlercodes ebenso; Texte fuer
|
|
18
|
+
* Menschen (`message`, `note`, `statusText`, `nextSteps`) bleiben deutsch.
|
|
19
|
+
*
|
|
20
|
+
* Die Listen in GROSSSCHRIFT (`LEGAL_FORMS`, `CONTRACT_KINDS` …) sind die
|
|
21
|
+
* Zielwerte der Kataloge im Vertrags-Export des Backends
|
|
22
|
+
* (`fixtures/v3/v3-vokabular.json`, `catalogs`); die Tests halten sie gleich.
|
|
19
23
|
*/
|
|
20
24
|
import type { KasseneckSecret } from './secret.js';
|
|
21
25
|
/**
|
|
@@ -79,22 +83,19 @@ export interface PartnerInfo {
|
|
|
79
83
|
* englisch. `/v3` weist die deutschen Werte aus `/v1` (`einzel`, `verein`,
|
|
80
84
|
* `sonstige`) mit `validation` ab, statt sie still zu uebersetzen.
|
|
81
85
|
*/
|
|
82
|
-
export
|
|
83
|
-
|
|
84
|
-
export type Rechtsform = LegalForm;
|
|
86
|
+
export declare const LEGAL_FORMS: readonly ["sole_proprietor", "eu", "og", "kg", "gmbh", "gmbhcokg", "ag", "association", "other"];
|
|
87
|
+
export type LegalForm = typeof LEGAL_FORMS[number];
|
|
85
88
|
/**
|
|
86
89
|
* Bundesland als ISO-3166-2-Code: `AT-1` Burgenland, `AT-2` Kaernten,
|
|
87
90
|
* `AT-3` Niederoesterreich, `AT-4` Oberoesterreich, `AT-5` Salzburg,
|
|
88
91
|
* `AT-6` Steiermark, `AT-7` Tirol, `AT-8` Vorarlberg, `AT-9` Wien.
|
|
89
92
|
*/
|
|
90
|
-
export
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
export type ContactRole =
|
|
95
|
-
|
|
96
|
-
export type KontaktRolle = ContactRole;
|
|
97
|
-
export interface BetriebAdresse {
|
|
93
|
+
export declare const AUSTRIAN_STATES: readonly ["AT-1", "AT-2", "AT-3", "AT-4", "AT-5", "AT-6", "AT-7", "AT-8", "AT-9"];
|
|
94
|
+
export type AustrianState = typeof AUSTRIAN_STATES[number];
|
|
95
|
+
/** Rollen einer Kontaktperson; `/v1` sagte `geschaeftsfuehrung`, `buchhaltung`, `technik`, `kasse`. */
|
|
96
|
+
export declare const CONTACT_ROLES: readonly ["management", "accounting", "technical", "pos"];
|
|
97
|
+
export type ContactRole = typeof CONTACT_ROLES[number];
|
|
98
|
+
export interface BusinessAddress {
|
|
98
99
|
street: string;
|
|
99
100
|
/** Hausnummer, kurz und alphanumerisch: `49`, `12a`, `49/5`. */
|
|
100
101
|
number?: string;
|
|
@@ -102,7 +103,7 @@ export interface BetriebAdresse {
|
|
|
102
103
|
zip: string;
|
|
103
104
|
city: string;
|
|
104
105
|
}
|
|
105
|
-
export interface
|
|
106
|
+
export interface BusinessTaxDetails {
|
|
106
107
|
/** Steuernummer im Format `12-345/6789`; die Pruefziffer wird geprueft. */
|
|
107
108
|
taxNumber: string;
|
|
108
109
|
smallBusiness: boolean;
|
|
@@ -114,13 +115,13 @@ export interface BetriebSteuer {
|
|
|
114
115
|
/** GLN, 13 Ziffern. */
|
|
115
116
|
gln?: string;
|
|
116
117
|
}
|
|
117
|
-
export interface
|
|
118
|
+
export interface BusinessContact {
|
|
118
119
|
name: string;
|
|
119
120
|
email: string;
|
|
120
121
|
phone?: string;
|
|
121
122
|
roles?: ContactRole[];
|
|
122
123
|
}
|
|
123
|
-
export interface
|
|
124
|
+
export interface BusinessTaxAdvisor {
|
|
124
125
|
name: string;
|
|
125
126
|
email: string;
|
|
126
127
|
phone: string;
|
|
@@ -135,21 +136,21 @@ export interface BetriebSteuerberater {
|
|
|
135
136
|
* **Genau diese Felder, kein weiteres.** Das Backend weist ein unbekanntes
|
|
136
137
|
* Feld ab, statt es stillschweigend zu verwerfen, und nennt seinen vollen
|
|
137
138
|
* Pfad (`address.land`, `contacts.0.rolle`). Deshalb hat dieser Typ dieselbe
|
|
138
|
-
* Liste wie `partner-core.BETRIEB_FELDER
|
|
139
|
+
* Liste wie `partner-core.BETRIEB_FELDER`: ein ueberzaehliges Feld ist hier
|
|
139
140
|
* ein Compilerfehler und nicht erst eine Antwort vom Server. Fuer Daten, die
|
|
140
141
|
* nicht durch die Typpruefung kommen (Datenbank, Formular), beantwortet
|
|
141
|
-
* [
|
|
142
|
+
* [unknownBusinessFields] dieselbe Frage zur Laufzeit.
|
|
142
143
|
*/
|
|
143
|
-
export interface
|
|
144
|
+
export interface Business {
|
|
144
145
|
companyName: string;
|
|
145
146
|
legalForm: LegalForm;
|
|
146
147
|
/** Anmeldung des Betriebs im Kasseneck-Panel; darf dort noch keinen Zugang haben. */
|
|
147
148
|
email: string;
|
|
148
|
-
address:
|
|
149
|
+
address: BusinessAddress;
|
|
149
150
|
state: AustrianState;
|
|
150
|
-
taxDetails:
|
|
151
|
+
taxDetails: BusinessTaxDetails;
|
|
151
152
|
/** Mindestens einer, hoechstens zehn. */
|
|
152
|
-
contacts:
|
|
153
|
+
contacts: BusinessContact[];
|
|
153
154
|
billingEmail?: string;
|
|
154
155
|
/** Firmenbuchnummer, z. B. `FN 123456 a`. */
|
|
155
156
|
companyRegister?: string;
|
|
@@ -158,11 +159,11 @@ export interface Betrieb {
|
|
|
158
159
|
web?: string;
|
|
159
160
|
phone?: string;
|
|
160
161
|
industry?: string;
|
|
161
|
-
taxAdvisor?:
|
|
162
|
+
taxAdvisor?: BusinessTaxAdvisor;
|
|
162
163
|
}
|
|
163
164
|
export interface CreateCustomerOptions {
|
|
164
165
|
appId: string;
|
|
165
|
-
business:
|
|
166
|
+
business: Business;
|
|
166
167
|
/**
|
|
167
168
|
* Eigener Schluessel gegen Doppelanlage, hoechstens 120 Zeichen. Derselbe
|
|
168
169
|
* Schluessel liefert die gespeicherte Antwort zurueck — auch bei abweichendem
|
|
@@ -197,9 +198,10 @@ export interface CreateCustomerOptions {
|
|
|
197
198
|
*/
|
|
198
199
|
env?: PartnerEnv;
|
|
199
200
|
}
|
|
200
|
-
export type
|
|
201
|
-
/**
|
|
202
|
-
export
|
|
201
|
+
export type PartnerCustomerStatus = 'created' | 'fon_configured' | 'signature_requested' | 'signature_ready' | 'cashregister_created' | 'live' | 'blocked' | (string & {});
|
|
202
|
+
/** Abrechnungsrhythmen eines Entgelts; `/v1` sagte `monat`, `jahr`, `einmal`. */
|
|
203
|
+
export declare const FEE_INTERVALS: readonly ["monthly", "yearly", "once"];
|
|
204
|
+
export type FeeInterval = typeof FEE_INTERVALS[number];
|
|
203
205
|
/**
|
|
204
206
|
* Das Entgelt, das mit einem Aufruf gebucht wurde: nur dann in der Antwort,
|
|
205
207
|
* wenn die Konditionen des Partners dafuer einen Preis vorsehen. Unter `/v1`
|
|
@@ -214,7 +216,7 @@ export interface PartnerFee {
|
|
|
214
216
|
}
|
|
215
217
|
export interface CreateCustomerResult {
|
|
216
218
|
customerId: string;
|
|
217
|
-
status:
|
|
219
|
+
status: PartnerCustomerStatus;
|
|
218
220
|
env: PartnerEnv;
|
|
219
221
|
companyName: string;
|
|
220
222
|
appId: string;
|
|
@@ -232,7 +234,8 @@ export interface CreateCustomerResult {
|
|
|
232
234
|
* Wie das Partnerkonto den AVV handhabt; `/v1` sagte `direkt`, `vollmacht`,
|
|
233
235
|
* `unterauftrag`.
|
|
234
236
|
*/
|
|
235
|
-
export
|
|
237
|
+
export declare const AVV_MODES: readonly ["direct", "power_of_attorney", "subprocessor"];
|
|
238
|
+
export type AvvMode = typeof AVV_MODES[number];
|
|
236
239
|
/**
|
|
237
240
|
* Stand eines Vertrags des Betriebs mit Kasseneck: `pending` (noch nicht
|
|
238
241
|
* bestaetigt), `confirmed`, `outdated` (eine neuere Pflichtfassung ist zu
|
|
@@ -245,64 +248,64 @@ export type AvvMode = 'direct' | 'power_of_attorney' | 'subprocessor';
|
|
|
245
248
|
* `customer.terms_accepted` melden die Bestaetigung. In der Testumgebung sind
|
|
246
249
|
* sie nicht noetig.
|
|
247
250
|
*/
|
|
248
|
-
export interface
|
|
251
|
+
export interface ContractStatus {
|
|
249
252
|
status: 'pending' | 'confirmed' | 'outdated' | 'not_required' | (string & {});
|
|
250
253
|
version: string | null;
|
|
251
254
|
confirmedAt: number | null;
|
|
252
255
|
}
|
|
253
256
|
/**
|
|
254
257
|
* Stand des Auftragsverarbeitungsvertrags (AVV, Art. 28 DSGVO). Zusaetzlich zu
|
|
255
|
-
* [
|
|
258
|
+
* [ContractStatus] der Status `via_partner` (der Partnervertrag deckt den AVV,
|
|
256
259
|
* Weg `subprocessor`) und `mode`, der Weg des Partnerkontos.
|
|
257
260
|
*/
|
|
258
|
-
export interface
|
|
259
|
-
status:
|
|
261
|
+
export interface AvvStatus extends ContractStatus {
|
|
262
|
+
status: ContractStatus['status'] | 'via_partner';
|
|
260
263
|
mode: AvvMode | (string & {}) | null;
|
|
261
264
|
}
|
|
262
265
|
/** FinanzOnline-Stand in der Liste: ist der Link draussen, geoeffnet, der Zugang geprueft? */
|
|
263
|
-
export interface
|
|
266
|
+
export interface PartnerCustomerFonStatus {
|
|
264
267
|
configured: boolean;
|
|
265
268
|
linkSentAt: number | null;
|
|
266
269
|
/** Erste Oeffnung; wird mit einem Ersatz-Link zurueckgesetzt. */
|
|
267
270
|
linkOpenedAt: number | null;
|
|
268
271
|
}
|
|
269
|
-
export interface
|
|
272
|
+
export interface PartnerCustomerSummary {
|
|
270
273
|
customerId: string;
|
|
271
274
|
companyName: string;
|
|
272
|
-
status:
|
|
275
|
+
status: PartnerCustomerStatus;
|
|
273
276
|
appId: string | null;
|
|
274
277
|
env: PartnerEnv;
|
|
275
278
|
createdAt: number | null;
|
|
276
279
|
/** FinanzOnline-Stand; `null`, wenn die Antwort ihn nicht fuehrt. */
|
|
277
|
-
fon:
|
|
280
|
+
fon: PartnerCustomerFonStatus | null;
|
|
278
281
|
/**
|
|
279
282
|
* AVV-Stand; `null`, wenn die Antwort ihn nicht fuehrt. Kein erfundenes
|
|
280
283
|
* `pending`: "nicht mitgeliefert" und "nicht bestaetigt" sind zweierlei.
|
|
281
284
|
*/
|
|
282
|
-
avv:
|
|
285
|
+
avv: AvvStatus | null;
|
|
283
286
|
/** Stand des Nutzungsvertrags; `null`, wenn die Antwort ihn nicht fuehrt. */
|
|
284
|
-
terms:
|
|
287
|
+
terms: ContractStatus | null;
|
|
285
288
|
}
|
|
286
289
|
export interface ListCustomersOptions {
|
|
287
|
-
status?:
|
|
290
|
+
status?: PartnerCustomerStatus;
|
|
288
291
|
/** 1 bis 200; Vorgabe 50. */
|
|
289
292
|
limit?: number;
|
|
290
293
|
cursor?: string;
|
|
291
294
|
}
|
|
292
|
-
export interface
|
|
293
|
-
customers:
|
|
295
|
+
export interface PartnerCustomerList {
|
|
296
|
+
customers: PartnerCustomerSummary[];
|
|
294
297
|
/** Weiter mit diesem Wert als `cursor`; `null` heisst: das war alles. */
|
|
295
298
|
cursor: string | null;
|
|
296
299
|
total: number;
|
|
297
300
|
}
|
|
298
|
-
export interface
|
|
301
|
+
export interface PartnerCustomer extends PartnerCustomerSummary {
|
|
299
302
|
statusAt: number | null;
|
|
300
303
|
liveEnabled: boolean;
|
|
301
304
|
createdAt: number | null;
|
|
302
305
|
createdVia: string | null;
|
|
303
306
|
business: Record<string, unknown>;
|
|
304
307
|
/** In der Einzelsicht zusaetzlich: wann geprueft, an welche (maskierte) Adresse der Link ging. */
|
|
305
|
-
fon:
|
|
308
|
+
fon: PartnerCustomerFonStatus & {
|
|
306
309
|
verifiedAt: number | null;
|
|
307
310
|
linkSentTo: string | null;
|
|
308
311
|
};
|
|
@@ -318,33 +321,88 @@ export interface FonLinkResult {
|
|
|
318
321
|
sentTo: string;
|
|
319
322
|
expiresAt: number;
|
|
320
323
|
}
|
|
324
|
+
/**
|
|
325
|
+
* Vertragsarten: `avv` (Auftragsverarbeitungsvertrag, Art. 28 DSGVO) und
|
|
326
|
+
* `terms` (Nutzungsvertrag, unter `/v1` `nutzung`).
|
|
327
|
+
*/
|
|
328
|
+
export declare const CONTRACT_KINDS: readonly ["avv", "terms"];
|
|
329
|
+
export type ContractKind = typeof CONTRACT_KINDS[number];
|
|
330
|
+
/**
|
|
331
|
+
* Wo der Betrieb bestaetigt hat. Unter `v1` hiessen die ersten fuenf
|
|
332
|
+
* `einrichten`, `prozess`, `partner_vollmacht`, `admin_papier`,
|
|
333
|
+
* `papier_upload`; `app` und `portal` sind in beiden Sprachen gleich.
|
|
334
|
+
*/
|
|
335
|
+
export declare const CONTRACT_SOURCES: readonly ["setup_link", "process_link", "partner_power_of_attorney", "admin_paper", "paper_upload", "app", "portal"];
|
|
336
|
+
/** Offen fuer spaeter ergaenzte Wege, siehe [CONTRACT_SOURCES]. */
|
|
337
|
+
export type ContractSource = typeof CONTRACT_SOURCES[number] | (string & {});
|
|
338
|
+
/**
|
|
339
|
+
* Meldung einer Zustimmung, die der Partner **in Vollmacht** fuer den Betrieb
|
|
340
|
+
* eingeholt hat (`reportCustomerContract`).
|
|
341
|
+
*
|
|
342
|
+
* Geht nur, wenn das Partnerkonto auf dem Vollmachtsweg steht
|
|
343
|
+
* (`mode_not_allowed`) und sein Partnervertrag das Vollmachtskapitel traegt
|
|
344
|
+
* (`power_of_attorney_missing`). Der Vollmachtsweg nimmt nur `kind: 'avv'`;
|
|
345
|
+
* `terms` beantwortet der Server mit `kind_not_allowed`.
|
|
346
|
+
*/
|
|
347
|
+
export interface ReportCustomerContractOptions {
|
|
348
|
+
customerId: string;
|
|
349
|
+
kind: ContractKind;
|
|
350
|
+
/** Die Fassung, der zugestimmt wurde; muss die geltende sein. */
|
|
351
|
+
version: string;
|
|
352
|
+
/**
|
|
353
|
+
* Pruefsumme des gezeigten Vertragstexts. Weicht sie von der geltenden ab,
|
|
354
|
+
* kommt `text_changed` mit der geltenden in `data.textHash`.
|
|
355
|
+
*/
|
|
356
|
+
textHash: string;
|
|
357
|
+
/** Wer zugestimmt hat. */
|
|
358
|
+
name: string;
|
|
359
|
+
/** In welcher Funktion (z. B. Inhaberin, Geschaeftsfuehrer); unter `/v1` `funktion`. */
|
|
360
|
+
signerRole: string;
|
|
361
|
+
/**
|
|
362
|
+
* Zeitpunkt der Zustimmung in Unix-Millisekunden; ohne Angabe gilt der
|
|
363
|
+
* Eingang beim Server. Nicht in der Zukunft, nicht aelter als ein Jahr.
|
|
364
|
+
*/
|
|
365
|
+
acceptedAt?: number;
|
|
366
|
+
}
|
|
367
|
+
export interface ReportCustomerContractResult {
|
|
368
|
+
/** Kennung des Vertragsdatensatzes; unter `/v1` `vertragId`. */
|
|
369
|
+
contractId: string;
|
|
370
|
+
/** Unix-Millisekunden; unter `/v1` `bestaetigtAt`. */
|
|
371
|
+
confirmedAt: number | null;
|
|
372
|
+
kind: ContractKind | (string & {});
|
|
373
|
+
version: string;
|
|
374
|
+
}
|
|
321
375
|
/**
|
|
322
376
|
* `requested → assigned → registered → ready`. `registered` heisst: die
|
|
323
377
|
* Einheit ist FinanzOnline bekannt; `ready` heisst: sie darf signieren. In der
|
|
324
378
|
* Testumgebung wird ohne `registered` direkt `ready` erreicht.
|
|
325
379
|
*/
|
|
326
|
-
export type
|
|
380
|
+
export type SignatureRequestStatus = 'requested' | 'assigned' | 'registered' | 'ready' | 'failed' | 'cancelled' | (string & {});
|
|
327
381
|
/**
|
|
328
382
|
* Gruende in der Historie eines Signaturantrags. `card_entered` und
|
|
329
383
|
* `finanzonline` hiessen unter `/v1` `karte_eingetragen` und `fon`.
|
|
330
384
|
*/
|
|
331
|
-
export
|
|
385
|
+
export declare const SIGNATURE_HISTORY_REASONS: readonly ["api", "portal", "card_entered", "finanzonline", "automation_off", "test_environment", "no_stock"];
|
|
386
|
+
/** Offen fuer spaeter ergaenzte Gruende, siehe [SIGNATURE_HISTORY_REASONS]. */
|
|
387
|
+
export type SignatureHistoryReason = typeof SIGNATURE_HISTORY_REASONS[number] | (string & {});
|
|
332
388
|
/**
|
|
333
|
-
* `error.code` eines Signaturantrags oder einer Signatur (`
|
|
389
|
+
* `error.code` eines Signaturantrags oder einer Signatur (`SignatureRequest`,
|
|
334
390
|
* `CustomerSignature`). Hiess unter `/v1` `kunde_nicht_gefunden` /
|
|
335
391
|
* `unvollstaendig` / `fon_fehler`; dieser Client spricht seit 0.28.0 nur noch
|
|
336
392
|
* `/v3` und sieht darum nur die englische Form.
|
|
337
393
|
*/
|
|
338
|
-
export
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
394
|
+
export declare const SIGNATURE_ERROR_CODES: readonly ["customer_not_found", "incomplete", "finanzonline_error"];
|
|
395
|
+
/** Offen fuer spaeter ergaenzte Codes, siehe [SIGNATURE_ERROR_CODES]. */
|
|
396
|
+
export type SignatureErrorCode = typeof SIGNATURE_ERROR_CODES[number] | (string & {});
|
|
397
|
+
export interface SignatureHistoryEntry {
|
|
398
|
+
from: SignatureRequestStatus | null;
|
|
399
|
+
to: SignatureRequestStatus;
|
|
342
400
|
at: number;
|
|
343
401
|
reason: SignatureHistoryReason | null;
|
|
344
402
|
}
|
|
345
|
-
export interface
|
|
403
|
+
export interface SignatureRequest {
|
|
346
404
|
requestId: string;
|
|
347
|
-
status:
|
|
405
|
+
status: SignatureRequestStatus;
|
|
348
406
|
statusText: string;
|
|
349
407
|
/** Art der Signatureinheit; heute nur `signature_card`. */
|
|
350
408
|
kind: string;
|
|
@@ -358,7 +416,7 @@ export interface SignaturAntrag {
|
|
|
358
416
|
requestedVia: string | null;
|
|
359
417
|
createdAt: number | null;
|
|
360
418
|
updatedAt: number | null;
|
|
361
|
-
history:
|
|
419
|
+
history: SignatureHistoryEntry[];
|
|
362
420
|
}
|
|
363
421
|
export interface RequestSignatureOptions {
|
|
364
422
|
/** Art der Signatureinheit; heute nur `signature_card` (Vorgabe). */
|
|
@@ -367,7 +425,7 @@ export interface RequestSignatureOptions {
|
|
|
367
425
|
additional?: boolean;
|
|
368
426
|
}
|
|
369
427
|
export interface RequestSignatureResult {
|
|
370
|
-
request:
|
|
428
|
+
request: SignatureRequest;
|
|
371
429
|
/** `true`, wenn schon ein Antrag lief — dann ist es der laufende. */
|
|
372
430
|
replayed: boolean;
|
|
373
431
|
note: string | null;
|
|
@@ -381,7 +439,7 @@ export interface RequestSignatureResult {
|
|
|
381
439
|
*/
|
|
382
440
|
export interface CustomerSignature {
|
|
383
441
|
signatureRequestId: string;
|
|
384
|
-
status:
|
|
442
|
+
status: SignatureRequestStatus | 'decommissioned';
|
|
385
443
|
statusText: string;
|
|
386
444
|
inProgress: boolean;
|
|
387
445
|
ready: boolean;
|
|
@@ -397,7 +455,7 @@ export interface CustomerSignature {
|
|
|
397
455
|
createdAt: number | null;
|
|
398
456
|
updatedAt: number | null;
|
|
399
457
|
}
|
|
400
|
-
export interface
|
|
458
|
+
export interface CustomerSignatureStatus {
|
|
401
459
|
customerId: string;
|
|
402
460
|
/** Die Kurzform: hat der Betrieb ueberhaupt eine brauchbare Signatur? */
|
|
403
461
|
signature: {
|
|
@@ -407,29 +465,29 @@ export interface SignaturStand {
|
|
|
407
465
|
};
|
|
408
466
|
/** Jede Signatur einzeln. */
|
|
409
467
|
signatures: CustomerSignature[];
|
|
410
|
-
requests:
|
|
468
|
+
requests: SignatureRequest[];
|
|
411
469
|
fon: {
|
|
412
470
|
present: boolean;
|
|
413
471
|
verifiedAt: number | null;
|
|
414
472
|
};
|
|
415
473
|
}
|
|
416
474
|
/** Die Schritte der Inbetriebnahme, in dieser Reihenfolge. */
|
|
417
|
-
export type
|
|
418
|
-
export type
|
|
419
|
-
export interface
|
|
475
|
+
export type CashregisterActivationStep = 'signature' | 'register_cashregister' | 'start_receipt' | 'transmit_start_receipt' | (string & {});
|
|
476
|
+
export type CustomerCashregisterStatus = 'draft' | 'in_progress' | 'live' | 'failed' | (string & {});
|
|
477
|
+
export interface CustomerCashregister {
|
|
420
478
|
cashregisterId: string;
|
|
421
479
|
name: string | null;
|
|
422
|
-
status:
|
|
480
|
+
status: CustomerCashregisterStatus;
|
|
423
481
|
statusText: string;
|
|
424
482
|
/** `true`: die Kasse geht von selbst live, sobald die Signatur bereit ist. */
|
|
425
483
|
automatic: boolean;
|
|
426
484
|
/** Der naechste offene Schritt; `null`, wenn die Kasse live ist. */
|
|
427
|
-
step:
|
|
485
|
+
step: CashregisterActivationStep | null;
|
|
428
486
|
stepText: string | null;
|
|
429
|
-
completedSteps:
|
|
487
|
+
completedSteps: CashregisterActivationStep[];
|
|
430
488
|
/** Die Schritte, die fuer genau diese Kasse gelten (Testumgebung: weniger). */
|
|
431
489
|
steps: {
|
|
432
|
-
key:
|
|
490
|
+
key: CashregisterActivationStep;
|
|
433
491
|
text: string;
|
|
434
492
|
}[];
|
|
435
493
|
signatureId: string | null;
|
|
@@ -438,7 +496,7 @@ export interface Kasse {
|
|
|
438
496
|
code: string | null;
|
|
439
497
|
message: string | null;
|
|
440
498
|
rc: string | null;
|
|
441
|
-
step:
|
|
499
|
+
step: CashregisterActivationStep | null;
|
|
442
500
|
at: number | null;
|
|
443
501
|
} | null;
|
|
444
502
|
createdAt: number | null;
|
|
@@ -463,23 +521,23 @@ export interface CreateCashregisterOptions {
|
|
|
463
521
|
signatureRequestId?: string;
|
|
464
522
|
}
|
|
465
523
|
export interface CreateCashregisterResult {
|
|
466
|
-
cashregister:
|
|
524
|
+
cashregister: CustomerCashregister;
|
|
467
525
|
activation: {
|
|
468
526
|
started: boolean;
|
|
469
527
|
ok: boolean | null;
|
|
470
|
-
step:
|
|
528
|
+
step: CashregisterActivationStep | null;
|
|
471
529
|
/** `signature_not_ready` oder `automation_off`, wenn nicht gestartet wurde. */
|
|
472
530
|
reason: string | null;
|
|
473
531
|
};
|
|
474
532
|
}
|
|
475
533
|
export interface ActivateCashregisterResult {
|
|
476
|
-
cashregister:
|
|
534
|
+
cashregister: CustomerCashregister;
|
|
477
535
|
/** `true`: die Kasse war schon live, es wurde nichts getan. */
|
|
478
536
|
unchanged: boolean;
|
|
479
537
|
}
|
|
480
|
-
export interface
|
|
538
|
+
export interface CustomerCashregisterList {
|
|
481
539
|
customerId: string;
|
|
482
|
-
cashregisters:
|
|
540
|
+
cashregisters: CustomerCashregister[];
|
|
483
541
|
signatureReady: boolean;
|
|
484
542
|
}
|
|
485
543
|
/**
|
|
@@ -14,8 +14,12 @@
|
|
|
14
14
|
* Compilerfehler sein und keine `validation`-Antwort vom Server.
|
|
15
15
|
*
|
|
16
16
|
* **Die Formen sind die der `/v3`** (seit 0.28.0): Feldnamen und Werte, auf
|
|
17
|
-
* die ein Programm verzweigt, sind englisch; Texte fuer
|
|
18
|
-
* `note`, `statusText`, `nextSteps`) bleiben deutsch
|
|
17
|
+
* die ein Programm verzweigt, sind englisch, die Fehlercodes ebenso; Texte fuer
|
|
18
|
+
* Menschen (`message`, `note`, `statusText`, `nextSteps`) bleiben deutsch.
|
|
19
|
+
*
|
|
20
|
+
* Die Listen in GROSSSCHRIFT (`LEGAL_FORMS`, `CONTRACT_KINDS` …) sind die
|
|
21
|
+
* Zielwerte der Kataloge im Vertrags-Export des Backends
|
|
22
|
+
* (`fixtures/v3/v3-vokabular.json`, `catalogs`); die Tests halten sie gleich.
|
|
19
23
|
*/
|
|
20
24
|
// ---------------------------------------------------------------------------
|
|
21
25
|
// Partner und Schluessel
|
|
@@ -32,3 +36,72 @@ export const PARTNER_ENVS = ['live', 'test'];
|
|
|
32
36
|
* angelegt.
|
|
33
37
|
*/
|
|
34
38
|
export const SCOPE_CREDENTIALS = 'credentials:read';
|
|
39
|
+
// ---------------------------------------------------------------------------
|
|
40
|
+
// Betrieb anlegen
|
|
41
|
+
// ---------------------------------------------------------------------------
|
|
42
|
+
/**
|
|
43
|
+
* Rechtsform des Betriebs, so wie `/v3` sie schreibt und liest.
|
|
44
|
+
*
|
|
45
|
+
* Die oesterreichischen Kurzformen (`eu`, `og`, `kg`, `gmbh`, `gmbhcokg`, `ag`)
|
|
46
|
+
* bleiben wie sie sind; nur die drei Woerter, die es auf Englisch gibt, sind
|
|
47
|
+
* englisch. `/v3` weist die deutschen Werte aus `/v1` (`einzel`, `verein`,
|
|
48
|
+
* `sonstige`) mit `validation` ab, statt sie still zu uebersetzen.
|
|
49
|
+
*/
|
|
50
|
+
export const LEGAL_FORMS = ['sole_proprietor', 'eu', 'og', 'kg', 'gmbh', 'gmbhcokg', 'ag', 'association', 'other'];
|
|
51
|
+
/**
|
|
52
|
+
* Bundesland als ISO-3166-2-Code: `AT-1` Burgenland, `AT-2` Kaernten,
|
|
53
|
+
* `AT-3` Niederoesterreich, `AT-4` Oberoesterreich, `AT-5` Salzburg,
|
|
54
|
+
* `AT-6` Steiermark, `AT-7` Tirol, `AT-8` Vorarlberg, `AT-9` Wien.
|
|
55
|
+
*/
|
|
56
|
+
export const AUSTRIAN_STATES = ['AT-1', 'AT-2', 'AT-3', 'AT-4', 'AT-5', 'AT-6', 'AT-7', 'AT-8', 'AT-9'];
|
|
57
|
+
/** Rollen einer Kontaktperson; `/v1` sagte `geschaeftsfuehrung`, `buchhaltung`, `technik`, `kasse`. */
|
|
58
|
+
export const CONTACT_ROLES = ['management', 'accounting', 'technical', 'pos'];
|
|
59
|
+
/** Abrechnungsrhythmen eines Entgelts; `/v1` sagte `monat`, `jahr`, `einmal`. */
|
|
60
|
+
export const FEE_INTERVALS = ['monthly', 'yearly', 'once'];
|
|
61
|
+
/**
|
|
62
|
+
* Wie das Partnerkonto den AVV handhabt; `/v1` sagte `direkt`, `vollmacht`,
|
|
63
|
+
* `unterauftrag`.
|
|
64
|
+
*/
|
|
65
|
+
export const AVV_MODES = ['direct', 'power_of_attorney', 'subprocessor'];
|
|
66
|
+
// ---------------------------------------------------------------------------
|
|
67
|
+
// Vertraege des Betriebs
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
69
|
+
/**
|
|
70
|
+
* Vertragsarten: `avv` (Auftragsverarbeitungsvertrag, Art. 28 DSGVO) und
|
|
71
|
+
* `terms` (Nutzungsvertrag, unter `/v1` `nutzung`).
|
|
72
|
+
*/
|
|
73
|
+
export const CONTRACT_KINDS = ['avv', 'terms'];
|
|
74
|
+
/**
|
|
75
|
+
* Wo der Betrieb bestaetigt hat. Unter `v1` hiessen die ersten fuenf
|
|
76
|
+
* `einrichten`, `prozess`, `partner_vollmacht`, `admin_papier`,
|
|
77
|
+
* `papier_upload`; `app` und `portal` sind in beiden Sprachen gleich.
|
|
78
|
+
*/
|
|
79
|
+
export const CONTRACT_SOURCES = [
|
|
80
|
+
'setup_link',
|
|
81
|
+
'process_link',
|
|
82
|
+
'partner_power_of_attorney',
|
|
83
|
+
'admin_paper',
|
|
84
|
+
'paper_upload',
|
|
85
|
+
'app',
|
|
86
|
+
'portal',
|
|
87
|
+
];
|
|
88
|
+
/**
|
|
89
|
+
* Gruende in der Historie eines Signaturantrags. `card_entered` und
|
|
90
|
+
* `finanzonline` hiessen unter `/v1` `karte_eingetragen` und `fon`.
|
|
91
|
+
*/
|
|
92
|
+
export const SIGNATURE_HISTORY_REASONS = [
|
|
93
|
+
'api',
|
|
94
|
+
'portal',
|
|
95
|
+
'card_entered',
|
|
96
|
+
'finanzonline',
|
|
97
|
+
'automation_off',
|
|
98
|
+
'test_environment',
|
|
99
|
+
'no_stock',
|
|
100
|
+
];
|
|
101
|
+
/**
|
|
102
|
+
* `error.code` eines Signaturantrags oder einer Signatur (`SignatureRequest`,
|
|
103
|
+
* `CustomerSignature`). Hiess unter `/v1` `kunde_nicht_gefunden` /
|
|
104
|
+
* `unvollstaendig` / `fon_fehler`; dieser Client spricht seit 0.28.0 nur noch
|
|
105
|
+
* `/v3` und sieht darum nur die englische Form.
|
|
106
|
+
*/
|
|
107
|
+
export const SIGNATURE_ERROR_CODES = ['customer_not_found', 'incomplete', 'finanzonline_error'];
|
|
@@ -84,12 +84,12 @@ export interface VerifyWebhookOptions {
|
|
|
84
84
|
* Ausnahme im Inneren wird zur Ablehnung. Ein Aufrufer, der nur `ok` abfragt,
|
|
85
85
|
* kann damit nichts falsch machen.
|
|
86
86
|
*/
|
|
87
|
-
export declare function verifyWebhookSignature(
|
|
87
|
+
export declare function verifyWebhookSignature(options: VerifyWebhookOptions): Promise<WebhookVerifyResult>;
|
|
88
88
|
/**
|
|
89
89
|
* Zerlegt den Signaturkopf. `null`, wenn kein brauchbarer Zeitstempel oder gar
|
|
90
90
|
* kein `v1=`-Anteil darin steht.
|
|
91
91
|
*/
|
|
92
|
-
export declare function parseSignatureHeader(
|
|
92
|
+
export declare function parseSignatureHeader(header: string): {
|
|
93
93
|
t: number;
|
|
94
94
|
v1: string[];
|
|
95
95
|
} | null;
|
|
@@ -55,30 +55,30 @@ export const WEBHOOK_LIMIT = 10;
|
|
|
55
55
|
* Ausnahme im Inneren wird zur Ablehnung. Ein Aufrufer, der nur `ok` abfragt,
|
|
56
56
|
* kann damit nichts falsch machen.
|
|
57
57
|
*/
|
|
58
|
-
export async function verifyWebhookSignature(
|
|
58
|
+
export async function verifyWebhookSignature(options) {
|
|
59
59
|
try {
|
|
60
|
-
const secrets = (Array.isArray(
|
|
60
|
+
const secrets = (Array.isArray(options.secret) ? options.secret : [options.secret]).filter((s) => typeof s === 'string' && s.length > 0);
|
|
61
61
|
if (!secrets.length)
|
|
62
62
|
return { ok: false, reason: 'secret-missing' };
|
|
63
|
-
if (typeof
|
|
63
|
+
if (typeof options.signatureHeader !== 'string' || !options.signatureHeader.trim()) {
|
|
64
64
|
return { ok: false, reason: 'header-missing' };
|
|
65
65
|
}
|
|
66
|
-
const kopf = parseSignatureHeader(
|
|
66
|
+
const kopf = parseSignatureHeader(options.signatureHeader);
|
|
67
67
|
if (kopf === null)
|
|
68
68
|
return { ok: false, reason: 'header-malformed' };
|
|
69
|
-
if (
|
|
69
|
+
if (options.body === undefined || options.body === null)
|
|
70
70
|
return { ok: false, reason: 'body-missing' };
|
|
71
|
-
const jetzt = typeof
|
|
72
|
-
?
|
|
71
|
+
const jetzt = typeof options.nowSec === 'number' && Number.isFinite(options.nowSec)
|
|
72
|
+
? options.nowSec
|
|
73
73
|
: Math.floor(Date.now() / 1000);
|
|
74
|
-
const toleranz = typeof
|
|
75
|
-
?
|
|
74
|
+
const toleranz = typeof options.toleranceSec === 'number' && Number.isFinite(options.toleranceSec)
|
|
75
|
+
? options.toleranceSec
|
|
76
76
|
: WEBHOOK_TOLERANCE_SEC;
|
|
77
77
|
// In BEIDE Richtungen: eine vorgehende Uhr auf der Gegenseite darf ein
|
|
78
78
|
// altes Ereignis nicht wieder gueltig machen.
|
|
79
79
|
if (Math.abs(jetzt - kopf.t) > toleranz)
|
|
80
80
|
return { ok: false, reason: 'timestamp-outside-window' };
|
|
81
|
-
const nachricht = signierteBytes(kopf.t,
|
|
81
|
+
const nachricht = signierteBytes(kopf.t, options.body);
|
|
82
82
|
for (const secret of secrets) {
|
|
83
83
|
const soll = await hmacSha256(secret, nachricht);
|
|
84
84
|
for (const v1 of kopf.v1) {
|
|
@@ -98,8 +98,8 @@ export async function verifyWebhookSignature(optionen) {
|
|
|
98
98
|
* Zerlegt den Signaturkopf. `null`, wenn kein brauchbarer Zeitstempel oder gar
|
|
99
99
|
* kein `v1=`-Anteil darin steht.
|
|
100
100
|
*/
|
|
101
|
-
export function parseSignatureHeader(
|
|
102
|
-
const teile = String(
|
|
101
|
+
export function parseSignatureHeader(header) {
|
|
102
|
+
const teile = String(header).split(',').map((x) => x.trim());
|
|
103
103
|
const tTeil = teile.find((x) => x.startsWith('t='));
|
|
104
104
|
const v1 = teile.filter((x) => x.startsWith('v1=')).map((x) => x.slice(3));
|
|
105
105
|
if (!tTeil || !v1.length)
|