@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
|
@@ -5,16 +5,13 @@
|
|
|
5
5
|
* Funktionen und bleiben einzeln importierbar.
|
|
6
6
|
*/
|
|
7
7
|
import { type FetchLike } from '../client/transport.js';
|
|
8
|
-
import { type CreateWebhookOptions, type CreateWebhookResult, type DeleteWebhookResult, type PartnerWebhook, type
|
|
9
|
-
import type { ActivateCashregisterResult, CreateCashregisterOptions, CreateCashregisterResult, CreateCustomerOptions, CreateCustomerResult, CustomerCredentials, FonLinkResult,
|
|
8
|
+
import { type CreateWebhookOptions, type CreateWebhookResult, type DeleteWebhookResult, type PartnerWebhook, type WebhookList, type PartnerWebhookEventType, type WebhookPatch, type WebhookTestResult, type WebhookDelivery } from './webhooks.js';
|
|
9
|
+
import type { ActivateCashregisterResult, CreateCashregisterOptions, CreateCashregisterResult, CreateCustomerOptions, CreateCustomerResult, CustomerCredentials, FonLinkResult, CustomerCashregisterList, PartnerCustomer, PartnerCustomerList, ListCustomersOptions, PartnerInfo, ReportCustomerContractOptions, ReportCustomerContractResult, RequestSignatureOptions, RequestSignatureResult, CustomerSignatureStatus } from './typen.js';
|
|
10
10
|
/**
|
|
11
|
-
* Die Basis-URL der Partner-API: `/v3`, die englische Fassung
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* gibt. Die Partner-Endpunkte unter `/v1` antworten weiter, deutsch und
|
|
16
|
-
* abgekuendigt (Kopfzeilen `Deprecation`/`Sunset`); dieser Client spricht sie
|
|
17
|
-
* nicht mehr.
|
|
11
|
+
* Die Basis-URL der Partner-API: `/v3`, die englische Fassung, dieselbe wie
|
|
12
|
+
* [DEFAULT_BASE_URL]. Die 1.x-Linie spricht nur noch `/v3`; die
|
|
13
|
+
* Partner-Endpunkte unter `/v1` antworten weiter, deutsch und abgekuendigt
|
|
14
|
+
* (Kopfzeilen `Deprecation`/`Sunset`), dieser Client spricht sie nicht.
|
|
18
15
|
*/
|
|
19
16
|
export declare const PARTNER_BASE_URL = "https://api.kasseneck.at/v3";
|
|
20
17
|
export interface PartnerApiOptions {
|
|
@@ -34,15 +31,15 @@ export interface PartnerApiOptions {
|
|
|
34
31
|
}
|
|
35
32
|
export interface PartnerApi {
|
|
36
33
|
getPartnerInfo(): Promise<PartnerInfo>;
|
|
37
|
-
createPartnerCustomer(
|
|
38
|
-
listPartnerCustomers(
|
|
39
|
-
getPartnerCustomer(customerId: string): Promise<
|
|
34
|
+
createPartnerCustomer(options: CreateCustomerOptions): Promise<CreateCustomerResult>;
|
|
35
|
+
listPartnerCustomers(options?: ListCustomersOptions): Promise<PartnerCustomerList>;
|
|
36
|
+
getPartnerCustomer(customerId: string): Promise<PartnerCustomer>;
|
|
40
37
|
sendPartnerCustomerFonLink(customerId: string): Promise<FonLinkResult>;
|
|
41
|
-
requestCustomerSignature(customerId: string,
|
|
42
|
-
getCustomerSignatureStatus(customerId: string): Promise<
|
|
43
|
-
createCustomerCashregister(
|
|
38
|
+
requestCustomerSignature(customerId: string, options?: RequestSignatureOptions): Promise<RequestSignatureResult>;
|
|
39
|
+
getCustomerSignatureStatus(customerId: string): Promise<CustomerSignatureStatus>;
|
|
40
|
+
createCustomerCashregister(options: CreateCashregisterOptions): Promise<CreateCashregisterResult>;
|
|
44
41
|
activateCashregister(customerId: string, cashregisterId: string): Promise<ActivateCashregisterResult>;
|
|
45
|
-
listCustomerCashregisters(customerId: string): Promise<
|
|
42
|
+
listCustomerCashregisters(customerId: string): Promise<CustomerCashregisterList>;
|
|
46
43
|
/** Geheimnisse des Betriebs — siehe `getCustomerCredentials` in endpunkte.ts. */
|
|
47
44
|
getCustomerCredentials(customerId: string): Promise<CustomerCredentials>;
|
|
48
45
|
/**
|
|
@@ -51,8 +48,13 @@ export interface PartnerApi {
|
|
|
51
48
|
* erst nach dem ganzen Formular auf.
|
|
52
49
|
*/
|
|
53
50
|
checkPartnerCustomerEmail(email: string): Promise<boolean>;
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
/**
|
|
52
|
+
* Meldet eine in Vollmacht eingeholte Zustimmung des Betriebs (nur AVV);
|
|
53
|
+
* siehe `reportCustomerContract` in endpunkte.ts.
|
|
54
|
+
*/
|
|
55
|
+
reportCustomerContract(options: ReportCustomerContractOptions): Promise<ReportCustomerContractResult>;
|
|
56
|
+
createPartnerWebhook(options: CreateWebhookOptions): Promise<CreateWebhookResult>;
|
|
57
|
+
listPartnerWebhooks(): Promise<WebhookList>;
|
|
56
58
|
updatePartnerWebhook(webhookId: string, patch: WebhookPatch): Promise<PartnerWebhook>;
|
|
57
59
|
deletePartnerWebhook(webhookId: string): Promise<DeleteWebhookResult>;
|
|
58
60
|
/**
|
|
@@ -66,15 +68,16 @@ export interface PartnerApi {
|
|
|
66
68
|
* soll. Jede Probe traegt `test: true` im Umschlag.
|
|
67
69
|
*/
|
|
68
70
|
sendPartnerWebhookTest(webhookId: string, event?: PartnerWebhookEventType | (string & {})): Promise<WebhookTestResult>;
|
|
69
|
-
listPartnerWebhookDeliveries(
|
|
71
|
+
listPartnerWebhookDeliveries(options?: {
|
|
70
72
|
webhookId?: string;
|
|
71
73
|
limit?: number;
|
|
72
|
-
}): Promise<
|
|
74
|
+
}): Promise<WebhookDelivery[]>;
|
|
73
75
|
/**
|
|
74
76
|
* Der Handlungssatz zu einem beliebigen Fehlercode der Partner-API. Gehoert
|
|
75
77
|
* in die eigene Fehlermeldung, damit ein Anwender nicht in der Doku
|
|
76
|
-
* nachschlagen muss.
|
|
78
|
+
* nachschlagen muss. Fuer einen unbekannten Code kommt ein Rueckfallsatz,
|
|
79
|
+
* nie `undefined` und nie ein Wurf.
|
|
77
80
|
*/
|
|
78
|
-
|
|
81
|
+
errorAdvice(code: string): string;
|
|
79
82
|
}
|
|
80
|
-
export declare function createPartnerApi(
|
|
83
|
+
export declare function createPartnerApi(options: PartnerApiOptions): PartnerApi;
|
package/dist/esm/partner/api.js
CHANGED
|
@@ -6,25 +6,22 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { createTransport } from '../client/transport.js';
|
|
8
8
|
import { partnerKeyAuth } from './auth.js';
|
|
9
|
-
import {
|
|
10
|
-
import { activateCashregister, createCustomerCashregister, createPartnerCustomer, getCustomerCredentials, getCustomerSignatureStatus, getPartnerCustomer, getPartnerInfo, checkPartnerCustomerEmail, listCustomerCashregisters, listPartnerCustomers, requestCustomerSignature, sendPartnerCustomerFonLink, } from './endpunkte.js';
|
|
9
|
+
import { partnerErrorAdvice } from './fehler.js';
|
|
10
|
+
import { activateCashregister, createCustomerCashregister, createPartnerCustomer, getCustomerCredentials, getCustomerSignatureStatus, getPartnerCustomer, getPartnerInfo, checkPartnerCustomerEmail, listCustomerCashregisters, reportCustomerContract, listPartnerCustomers, requestCustomerSignature, sendPartnerCustomerFonLink, } from './endpunkte.js';
|
|
11
11
|
import { createPartnerWebhook, deletePartnerWebhook, listPartnerWebhookDeliveries, listPartnerWebhooks, rotatePartnerWebhookSecret, sendPartnerWebhookTest, updatePartnerWebhook, } from './webhooks.js';
|
|
12
12
|
/**
|
|
13
|
-
* Die Basis-URL der Partner-API: `/v3`, die englische Fassung
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* gibt. Die Partner-Endpunkte unter `/v1` antworten weiter, deutsch und
|
|
18
|
-
* abgekuendigt (Kopfzeilen `Deprecation`/`Sunset`); dieser Client spricht sie
|
|
19
|
-
* nicht mehr.
|
|
13
|
+
* Die Basis-URL der Partner-API: `/v3`, die englische Fassung, dieselbe wie
|
|
14
|
+
* [DEFAULT_BASE_URL]. Die 1.x-Linie spricht nur noch `/v3`; die
|
|
15
|
+
* Partner-Endpunkte unter `/v1` antworten weiter, deutsch und abgekuendigt
|
|
16
|
+
* (Kopfzeilen `Deprecation`/`Sunset`), dieser Client spricht sie nicht.
|
|
20
17
|
*/
|
|
21
18
|
export const PARTNER_BASE_URL = 'https://api.kasseneck.at/v3';
|
|
22
|
-
export function createPartnerApi(
|
|
19
|
+
export function createPartnerApi(options) {
|
|
23
20
|
const rufen = createTransport({
|
|
24
|
-
auth: partnerKeyAuth({ partnerKey:
|
|
25
|
-
baseUrl:
|
|
26
|
-
timeoutMs:
|
|
27
|
-
fetch:
|
|
21
|
+
auth: partnerKeyAuth({ partnerKey: options.partnerKey }),
|
|
22
|
+
baseUrl: options.baseUrl ?? PARTNER_BASE_URL,
|
|
23
|
+
timeoutMs: options.timeoutMs,
|
|
24
|
+
fetch: options.fetch,
|
|
28
25
|
});
|
|
29
26
|
return {
|
|
30
27
|
getPartnerInfo: () => getPartnerInfo(rufen),
|
|
@@ -39,6 +36,7 @@ export function createPartnerApi(optionen) {
|
|
|
39
36
|
listCustomerCashregisters: (id) => listCustomerCashregisters(rufen, id),
|
|
40
37
|
getCustomerCredentials: (id) => getCustomerCredentials(rufen, id),
|
|
41
38
|
checkPartnerCustomerEmail: (email) => checkPartnerCustomerEmail(rufen, email),
|
|
39
|
+
reportCustomerContract: (o) => reportCustomerContract(rufen, o),
|
|
42
40
|
createPartnerWebhook: (o) => createPartnerWebhook(rufen, o),
|
|
43
41
|
listPartnerWebhooks: () => listPartnerWebhooks(rufen),
|
|
44
42
|
updatePartnerWebhook: (id, patch) => updatePartnerWebhook(rufen, id, patch),
|
|
@@ -46,6 +44,6 @@ export function createPartnerApi(optionen) {
|
|
|
46
44
|
rotatePartnerWebhookSecret: (id) => rotatePartnerWebhookSecret(rufen, id),
|
|
47
45
|
sendPartnerWebhookTest: (id, event) => sendPartnerWebhookTest(rufen, id, event),
|
|
48
46
|
listPartnerWebhookDeliveries: (o) => listPartnerWebhookDeliveries(rufen, o),
|
|
49
|
-
|
|
47
|
+
errorAdvice: (code) => partnerErrorAdvice(code),
|
|
50
48
|
};
|
|
51
49
|
}
|
|
@@ -17,7 +17,7 @@ import type { PartnerEnv } from './typen.js';
|
|
|
17
17
|
* keiner ist. Nuetzlich fuer die Zusicherung „auf diesem Server laeuft nur
|
|
18
18
|
* `pk_live_`" beim Hochfahren.
|
|
19
19
|
*/
|
|
20
|
-
export declare function partnerKeyEnv(
|
|
20
|
+
export declare function partnerKeyEnv(key: string): PartnerEnv | null;
|
|
21
21
|
export interface PartnerKeyAuthOptions {
|
|
22
22
|
/** Partner-Schluessel `pk_test_…` / `pk_live_…`. */
|
|
23
23
|
partnerKey: string;
|
package/dist/esm/partner/auth.js
CHANGED
|
@@ -22,8 +22,8 @@ const SCHLUESSEL_FORM = /^pk_(test|live)_[A-Za-z0-9_-]{16,}$/;
|
|
|
22
22
|
* keiner ist. Nuetzlich fuer die Zusicherung „auf diesem Server laeuft nur
|
|
23
23
|
* `pk_live_`" beim Hochfahren.
|
|
24
24
|
*/
|
|
25
|
-
export function partnerKeyEnv(
|
|
26
|
-
const treffer = SCHLUESSEL_FORM.exec(typeof
|
|
25
|
+
export function partnerKeyEnv(key) {
|
|
26
|
+
const treffer = SCHLUESSEL_FORM.exec(typeof key === 'string' ? key.trim() : '');
|
|
27
27
|
return treffer ? treffer[1] : null;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
@@ -13,15 +13,15 @@
|
|
|
13
13
|
*
|
|
14
14
|
* Zwei Dinge halten diese Seite dagegen:
|
|
15
15
|
*
|
|
16
|
-
* - der Typ [
|
|
16
|
+
* - der Typ [Business] (typen.ts) hat genau diese Felder, und TypeScript meldet
|
|
17
17
|
* ein ueberzaehliges schon beim Tippen;
|
|
18
|
-
* - [
|
|
18
|
+
* - [unknownBusinessFields] beantwortet dieselbe Frage zur Laufzeit, fuer
|
|
19
19
|
* Daten, die aus einer Datenbank oder einem Formular kommen und deshalb nie
|
|
20
20
|
* durch die Typpruefung gelaufen sind.
|
|
21
21
|
*
|
|
22
22
|
* **Die Wahrheit bleibt der Server.** Dieser Client weist nichts von sich aus
|
|
23
23
|
* ab: eine spaetere Backend-Fassung darf ein Feld ergaenzen, ohne dass ein
|
|
24
|
-
* aelterer Client es blockiert. [
|
|
24
|
+
* aelterer Client es blockiert. [unknownBusinessFields] ist die Vorschau,
|
|
25
25
|
* nicht das Tor.
|
|
26
26
|
*
|
|
27
27
|
* Quelle der Liste: `partner-core.BETRIEB_FELDER` im Backend.
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
* Zwilling Zeile fuer Zeile nachhalten kann. Das Schema fuer die Pruefung
|
|
35
35
|
* entsteht daraus (siehe unten) und nicht daneben.
|
|
36
36
|
*/
|
|
37
|
-
export declare const
|
|
38
|
-
export type
|
|
37
|
+
export declare const BUSINESS_FIELDS: readonly ["companyName", "legalForm", "state", "industry", "companyRegister", "court", "web", "phone", "email", "billingEmail", "address.street", "address.number", "address.zip", "address.city", "taxDetails.taxNumber", "taxDetails.vatId", "taxDetails.gln", "taxDetails.smallBusiness", "contacts[].name", "contacts[].email", "contacts[].phone", "contacts[].roles", "taxAdvisor.name", "taxAdvisor.email", "taxAdvisor.phone", "taxAdvisor.mayContact"];
|
|
38
|
+
export type BusinessField = typeof BUSINESS_FIELDS[number];
|
|
39
39
|
/**
|
|
40
|
-
* Die Feldpfade eines Betriebs, die [
|
|
40
|
+
* Die Feldpfade eines Betriebs, die [BUSINESS_FIELDS] nicht kennt, dieselbe
|
|
41
41
|
* Ableitung wie im Backend, also dieselben Pfade wie in `data.errors[].field`.
|
|
42
42
|
* Leer heisst: aus dieser Sicht ist nichts ueberzaehlig.
|
|
43
43
|
*
|
|
@@ -45,4 +45,4 @@ export type BetriebFeld = typeof BETRIEB_FELDER[number];
|
|
|
45
45
|
* das Backend mit `@kreiseck/validator`. Diese Funktion beantwortet nur die
|
|
46
46
|
* Frage „schicke ich etwas, das dort niemand erwartet?".
|
|
47
47
|
*/
|
|
48
|
-
export declare function
|
|
48
|
+
export declare function unknownBusinessFields(business: unknown): string[];
|
|
@@ -13,15 +13,15 @@
|
|
|
13
13
|
*
|
|
14
14
|
* Zwei Dinge halten diese Seite dagegen:
|
|
15
15
|
*
|
|
16
|
-
* - der Typ [
|
|
16
|
+
* - der Typ [Business] (typen.ts) hat genau diese Felder, und TypeScript meldet
|
|
17
17
|
* ein ueberzaehliges schon beim Tippen;
|
|
18
|
-
* - [
|
|
18
|
+
* - [unknownBusinessFields] beantwortet dieselbe Frage zur Laufzeit, fuer
|
|
19
19
|
* Daten, die aus einer Datenbank oder einem Formular kommen und deshalb nie
|
|
20
20
|
* durch die Typpruefung gelaufen sind.
|
|
21
21
|
*
|
|
22
22
|
* **Die Wahrheit bleibt der Server.** Dieser Client weist nichts von sich aus
|
|
23
23
|
* ab: eine spaetere Backend-Fassung darf ein Feld ergaenzen, ohne dass ein
|
|
24
|
-
* aelterer Client es blockiert. [
|
|
24
|
+
* aelterer Client es blockiert. [unknownBusinessFields] ist die Vorschau,
|
|
25
25
|
* nicht das Tor.
|
|
26
26
|
*
|
|
27
27
|
* Quelle der Liste: `partner-core.BETRIEB_FELDER` im Backend.
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
* Zwilling Zeile fuer Zeile nachhalten kann. Das Schema fuer die Pruefung
|
|
35
35
|
* entsteht daraus (siehe unten) und nicht daneben.
|
|
36
36
|
*/
|
|
37
|
-
export const
|
|
37
|
+
export const BUSINESS_FIELDS = [
|
|
38
38
|
'companyName',
|
|
39
39
|
'legalForm',
|
|
40
40
|
'state',
|
|
@@ -62,10 +62,10 @@ export const BETRIEB_FELDER = [
|
|
|
62
62
|
'taxAdvisor.phone',
|
|
63
63
|
'taxAdvisor.mayContact',
|
|
64
64
|
];
|
|
65
|
-
/** Das Schema entsteht aus [
|
|
65
|
+
/** Das Schema entsteht aus [BUSINESS_FIELDS]: eine Quelle, keine zweite Liste. */
|
|
66
66
|
const SCHEMA = (() => {
|
|
67
67
|
const wurzel = {};
|
|
68
|
-
for (const pfad of
|
|
68
|
+
for (const pfad of BUSINESS_FIELDS) {
|
|
69
69
|
const teile = pfad.split('.');
|
|
70
70
|
let stand = wurzel;
|
|
71
71
|
teile.forEach((rohes, i) => {
|
|
@@ -119,7 +119,7 @@ function sammle(eingabe, schema, pfad) {
|
|
|
119
119
|
return raus;
|
|
120
120
|
}
|
|
121
121
|
/**
|
|
122
|
-
* Die Feldpfade eines Betriebs, die [
|
|
122
|
+
* Die Feldpfade eines Betriebs, die [BUSINESS_FIELDS] nicht kennt, dieselbe
|
|
123
123
|
* Ableitung wie im Backend, also dieselben Pfade wie in `data.errors[].field`.
|
|
124
124
|
* Leer heisst: aus dieser Sicht ist nichts ueberzaehlig.
|
|
125
125
|
*
|
|
@@ -127,6 +127,6 @@ function sammle(eingabe, schema, pfad) {
|
|
|
127
127
|
* das Backend mit `@kreiseck/validator`. Diese Funktion beantwortet nur die
|
|
128
128
|
* Frage „schicke ich etwas, das dort niemand erwartet?".
|
|
129
129
|
*/
|
|
130
|
-
export function
|
|
130
|
+
export function unknownBusinessFields(business) {
|
|
131
131
|
return sammle(business, SCHEMA, '');
|
|
132
132
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* PLZ, Gericht) macht das Backend mit `@kreiseck/validator` — sie hier zu
|
|
12
12
|
* wiederholen hiesse, zwei Wahrheiten zu haben, von denen eine veraltet.
|
|
13
13
|
* Ein Formfehler kommt als `KasseneckApiError` mit `code:"validation"` zurueck;
|
|
14
|
-
* `
|
|
14
|
+
* `partnerFieldErrors(fehler)` macht `data.errors[]` daraus. **Es entsteht dabei
|
|
15
15
|
* nichts** — der Aufruf ist folgenlos wiederholbar.
|
|
16
16
|
*
|
|
17
17
|
* Nach dem Senden wird nichts hart gecastet: fehlt ein zugesagtes Feld, wirft
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* einen `TypeError` an unpassender Stelle.
|
|
20
20
|
*/
|
|
21
21
|
import type { InternerTransport } from '../client/aufrufe.js';
|
|
22
|
-
import type { ActivateCashregisterResult, CreateCashregisterOptions, CreateCashregisterResult, CreateCustomerOptions, CreateCustomerResult, CustomerCredentials, FonLinkResult,
|
|
22
|
+
import type { ActivateCashregisterResult, CreateCashregisterOptions, CreateCashregisterResult, CreateCustomerOptions, CreateCustomerResult, CustomerCredentials, FonLinkResult, CustomerCashregisterList, PartnerCustomer, PartnerCustomerList, ListCustomersOptions, PartnerInfo, ReportCustomerContractOptions, ReportCustomerContractResult, RequestSignatureOptions, RequestSignatureResult, CustomerSignatureStatus } from './typen.js';
|
|
23
23
|
/**
|
|
24
24
|
* Wer bin ich, in welcher Umgebung, mit welchen Rechten — und welche Apps
|
|
25
25
|
* gehoeren mir. `apps[].id` ist die `appId` fuer [createPartnerCustomer].
|
|
@@ -27,7 +27,7 @@ import type { ActivateCashregisterResult, CreateCashregisterOptions, CreateCashr
|
|
|
27
27
|
* Der guenstigste Selbsttest beim Hochfahren: er beweist Schluessel, Umgebung
|
|
28
28
|
* und Rechte in einem Aufruf.
|
|
29
29
|
*/
|
|
30
|
-
export declare function getPartnerInfo(
|
|
30
|
+
export declare function getPartnerInfo(transport: InternerTransport): Promise<PartnerInfo>;
|
|
31
31
|
/**
|
|
32
32
|
* Legt einen Betrieb an.
|
|
33
33
|
*
|
|
@@ -46,11 +46,11 @@ export declare function getPartnerInfo(rufen: InternerTransport): Promise<Partne
|
|
|
46
46
|
* — auch dann, wenn der Rumpf inzwischen abweicht. Die eigene Kundennummer ist
|
|
47
47
|
* der natuerliche Wert dafuer.
|
|
48
48
|
*/
|
|
49
|
-
export declare function createPartnerCustomer(
|
|
49
|
+
export declare function createPartnerCustomer(transport: InternerTransport, options: CreateCustomerOptions): Promise<CreateCustomerResult>;
|
|
50
50
|
/** Betriebe dieses Partners, seitenweise. `cursor` aus der Antwort setzt fort. */
|
|
51
|
-
export declare function listPartnerCustomers(
|
|
51
|
+
export declare function listPartnerCustomers(transport: InternerTransport, options?: ListCustomersOptions): Promise<PartnerCustomerList>;
|
|
52
52
|
/** Ein Betrieb mit allem, was der Partner ueber ihn sehen darf — nie Geheimnisse. */
|
|
53
|
-
export declare function getPartnerCustomer(
|
|
53
|
+
export declare function getPartnerCustomer(transport: InternerTransport, customerId: string): Promise<PartnerCustomer>;
|
|
54
54
|
/**
|
|
55
55
|
* Schickt dem Betrieb den Einrichtungs-Link fuer seinen FinanzOnline-Zugang.
|
|
56
56
|
* Ohne diesen Zugang gibt es live keine Signatureinheit (`fon_missing`).
|
|
@@ -69,8 +69,8 @@ export declare function getPartnerCustomer(rufen: InternerTransport, customerId:
|
|
|
69
69
|
* einem ganzen ausgefuellten Formular auf. Die Antwort sagt NUR ja oder nein —
|
|
70
70
|
* nie, wem die Adresse gehoert.
|
|
71
71
|
*/
|
|
72
|
-
export declare function checkPartnerCustomerEmail(
|
|
73
|
-
export declare function sendPartnerCustomerFonLink(
|
|
72
|
+
export declare function checkPartnerCustomerEmail(transport: InternerTransport, email: string): Promise<boolean>;
|
|
73
|
+
export declare function sendPartnerCustomerFonLink(transport: InternerTransport, customerId: string): Promise<FonLinkResult>;
|
|
74
74
|
/**
|
|
75
75
|
* Beantragt die Signatureinheit. Kasseneck laesst die Karte beim
|
|
76
76
|
* Vertrauensdiensteanbieter **auf diesen Betrieb** ausstellen und meldet sie
|
|
@@ -87,9 +87,9 @@ export declare function sendPartnerCustomerFonLink(rufen: InternerTransport, cus
|
|
|
87
87
|
* Abschluss kommt als Ereignis `signature.ready`, nicht als Antwort auf diesen
|
|
88
88
|
* Aufruf.
|
|
89
89
|
*/
|
|
90
|
-
export declare function requestCustomerSignature(
|
|
90
|
+
export declare function requestCustomerSignature(transport: InternerTransport, customerId: string, options?: RequestSignatureOptions): Promise<RequestSignatureResult>;
|
|
91
91
|
/** Stand der Signatur eines Betriebs samt aller Signaturen, Antraege und des FON-Zugangs. */
|
|
92
|
-
export declare function getCustomerSignatureStatus(
|
|
92
|
+
export declare function getCustomerSignatureStatus(transport: InternerTransport, customerId: string): Promise<CustomerSignatureStatus>;
|
|
93
93
|
/**
|
|
94
94
|
* Legt eine Kasse an.
|
|
95
95
|
*
|
|
@@ -105,7 +105,7 @@ export declare function getCustomerSignatureStatus(rufen: InternerTransport, cus
|
|
|
105
105
|
* Hoechstens 20 Kassen je Betrieb (`cashregister_limit`); ohne gebuchtes Modul
|
|
106
106
|
* `module_inactive`.
|
|
107
107
|
*/
|
|
108
|
-
export declare function createCustomerCashregister(
|
|
108
|
+
export declare function createCustomerCashregister(transport: InternerTransport, options: CreateCashregisterOptions): Promise<CreateCashregisterResult>;
|
|
109
109
|
/**
|
|
110
110
|
* Nimmt eine Kasse in Betrieb — von Hand, wenn `automatic:false` gilt oder
|
|
111
111
|
* ein Lauf abgebrochen ist.
|
|
@@ -117,9 +117,9 @@ export declare function createCustomerCashregister(rufen: InternerTransport, opt
|
|
|
117
117
|
* veraendernde Aufruf dieses Clients, der ohne Idempotenzschluessel gefahrlos
|
|
118
118
|
* wiederholbar ist — weil der Server ihn so gebaut hat.
|
|
119
119
|
*/
|
|
120
|
-
export declare function activateCashregister(
|
|
120
|
+
export declare function activateCashregister(transport: InternerTransport, customerId: string, cashregisterId: string): Promise<ActivateCashregisterResult>;
|
|
121
121
|
/** Die Kassen eines Betriebs samt Stand der Inbetriebnahme — **nie** Token. */
|
|
122
|
-
export declare function listCustomerCashregisters(
|
|
122
|
+
export declare function listCustomerCashregisters(transport: InternerTransport, customerId: string): Promise<CustomerCashregisterList>;
|
|
123
123
|
/**
|
|
124
124
|
* Holt die **Geheimnisse des Betriebs**: seinen `api_key` und die Token seiner
|
|
125
125
|
* Kassen. Damit signiert eine App in seinem Namen Belege — und ein Beleg ist
|
|
@@ -136,4 +136,17 @@ export declare function listCustomerCashregisters(rufen: InternerTransport, cust
|
|
|
136
136
|
* Zeichenketten-Umwandlung zeigen eine Maske, heraus kommt man nur ueber
|
|
137
137
|
* `.reveal()`.
|
|
138
138
|
*/
|
|
139
|
-
export declare function getCustomerCredentials(
|
|
139
|
+
export declare function getCustomerCredentials(transport: InternerTransport, customerId: string): Promise<CustomerCredentials>;
|
|
140
|
+
/**
|
|
141
|
+
* Meldet eine Zustimmung des Betriebs, die der Partner **in Vollmacht**
|
|
142
|
+
* eingeholt hat (Endpunkt `reportCustomerContract`, unter `/v1`
|
|
143
|
+
* `reportCustomerVertrag`). Braucht die Berechtigung `customers:write`.
|
|
144
|
+
*
|
|
145
|
+
* Vor dem Senden prueft dieser Client nur, dass jede Pflichtangabe da ist und
|
|
146
|
+
* `acceptedAt` eine Zahl ist. Ob die Art erlaubt ist (`kind_not_allowed`), die
|
|
147
|
+
* Fassung gilt (`unknown_version`, `no_version`) und der Text derselbe ist
|
|
148
|
+
* (`text_changed`), entscheidet der Server. Eine schon bestaetigte Fassung
|
|
149
|
+
* kommt als `already_accepted` mit `data.contractId`; das ist kein Schaden,
|
|
150
|
+
* sondern die Bestaetigung, dass es sie gibt.
|
|
151
|
+
*/
|
|
152
|
+
export declare function reportCustomerContract(transport: InternerTransport, options: ReportCustomerContractOptions): Promise<ReportCustomerContractResult>;
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* PLZ, Gericht) macht das Backend mit `@kreiseck/validator` — sie hier zu
|
|
12
12
|
* wiederholen hiesse, zwei Wahrheiten zu haben, von denen eine veraltet.
|
|
13
13
|
* Ein Formfehler kommt als `KasseneckApiError` mit `code:"validation"` zurueck;
|
|
14
|
-
* `
|
|
14
|
+
* `partnerFieldErrors(fehler)` macht `data.errors[]` daraus. **Es entsteht dabei
|
|
15
15
|
* nichts** — der Aufruf ist folgenlos wiederholbar.
|
|
16
16
|
*
|
|
17
17
|
* Nach dem Senden wird nichts hart gecastet: fehlt ein zugesagtes Feld, wirft
|
|
@@ -86,8 +86,8 @@ function pflicht(wert, vorgang, feld) {
|
|
|
86
86
|
* Der guenstigste Selbsttest beim Hochfahren: er beweist Schluessel, Umgebung
|
|
87
87
|
* und Rechte in einem Aufruf.
|
|
88
88
|
*/
|
|
89
|
-
export async function getPartnerInfo(
|
|
90
|
-
const daten = objekt(await
|
|
89
|
+
export async function getPartnerInfo(transport) {
|
|
90
|
+
const daten = objekt(await transport('getPartnerInfo'));
|
|
91
91
|
const partner = verlangt(daten['partner'], 'getPartnerInfo', 'partner');
|
|
92
92
|
const key = objekt(daten['key']);
|
|
93
93
|
return {
|
|
@@ -145,18 +145,18 @@ export async function getPartnerInfo(rufen) {
|
|
|
145
145
|
* — auch dann, wenn der Rumpf inzwischen abweicht. Die eigene Kundennummer ist
|
|
146
146
|
* der natuerliche Wert dafuer.
|
|
147
147
|
*/
|
|
148
|
-
export async function createPartnerCustomer(
|
|
149
|
-
const appId = pflicht(
|
|
150
|
-
const betrieb =
|
|
148
|
+
export async function createPartnerCustomer(transport, options) {
|
|
149
|
+
const appId = pflicht(options?.appId, 'createPartnerCustomer', 'appId');
|
|
150
|
+
const betrieb = options?.business;
|
|
151
151
|
if (betrieb === null || typeof betrieb !== 'object') {
|
|
152
152
|
throw new KasseneckValidationError('createPartnerCustomer', 'business fehlt', 'request');
|
|
153
153
|
}
|
|
154
|
-
const daten = objekt(await
|
|
154
|
+
const daten = objekt(await transport('createPartnerCustomer', {
|
|
155
155
|
appId,
|
|
156
156
|
business: betrieb,
|
|
157
|
-
idempotencyKey:
|
|
158
|
-
access:
|
|
159
|
-
env:
|
|
157
|
+
idempotencyKey: options.idempotencyKey,
|
|
158
|
+
access: options.access,
|
|
159
|
+
env: options.env,
|
|
160
160
|
}));
|
|
161
161
|
const customerId = textOderNull(daten['customerId']);
|
|
162
162
|
if (!customerId) {
|
|
@@ -176,14 +176,14 @@ export async function createPartnerCustomer(rufen, optionen) {
|
|
|
176
176
|
};
|
|
177
177
|
}
|
|
178
178
|
/** Betriebe dieses Partners, seitenweise. `cursor` aus der Antwort setzt fort. */
|
|
179
|
-
export async function listPartnerCustomers(
|
|
180
|
-
if (
|
|
179
|
+
export async function listPartnerCustomers(transport, options = {}) {
|
|
180
|
+
if (options.limit !== undefined && (!Number.isInteger(options.limit) || options.limit < 1 || options.limit > 200)) {
|
|
181
181
|
throw new KasseneckValidationError('listPartnerCustomers', 'limit muss zwischen 1 und 200 liegen', 'request');
|
|
182
182
|
}
|
|
183
|
-
const daten = objekt(await
|
|
184
|
-
status:
|
|
185
|
-
limit:
|
|
186
|
-
cursor:
|
|
183
|
+
const daten = objekt(await transport('listPartnerCustomers', {
|
|
184
|
+
status: options.status,
|
|
185
|
+
limit: options.limit,
|
|
186
|
+
cursor: options.cursor,
|
|
187
187
|
}));
|
|
188
188
|
return {
|
|
189
189
|
customers: liste(daten['customers']).map(kundenZeile),
|
|
@@ -233,9 +233,9 @@ function avvStand(wert) {
|
|
|
233
233
|
return { ...v, mode: textOderNull(wert['mode']) };
|
|
234
234
|
}
|
|
235
235
|
/** Ein Betrieb mit allem, was der Partner ueber ihn sehen darf — nie Geheimnisse. */
|
|
236
|
-
export async function getPartnerCustomer(
|
|
236
|
+
export async function getPartnerCustomer(transport, customerId) {
|
|
237
237
|
const id = pflicht(customerId, 'getPartnerCustomer', 'customerId');
|
|
238
|
-
const daten = objekt(await
|
|
238
|
+
const daten = objekt(await transport('getPartnerCustomer', { customerId: id }));
|
|
239
239
|
const k = verlangt(daten['customer'], 'getPartnerCustomer', 'customer');
|
|
240
240
|
const fon = objekt(k['fon']);
|
|
241
241
|
const zugang = k['access'];
|
|
@@ -280,16 +280,16 @@ export async function getPartnerCustomer(rufen, customerId) {
|
|
|
280
280
|
* einem ganzen ausgefuellten Formular auf. Die Antwort sagt NUR ja oder nein —
|
|
281
281
|
* nie, wem die Adresse gehoert.
|
|
282
282
|
*/
|
|
283
|
-
export async function checkPartnerCustomerEmail(
|
|
283
|
+
export async function checkPartnerCustomerEmail(transport, email) {
|
|
284
284
|
const adresse = typeof email === 'string' ? email.trim() : '';
|
|
285
285
|
if (!adresse)
|
|
286
286
|
throw new KasseneckValidationError('checkPartnerCustomerEmail', 'email fehlt', 'request');
|
|
287
|
-
const daten = objekt(await
|
|
287
|
+
const daten = objekt(await transport('checkPartnerCustomerEmail', { email: adresse }));
|
|
288
288
|
return daten['available'] === true;
|
|
289
289
|
}
|
|
290
|
-
export async function sendPartnerCustomerFonLink(
|
|
290
|
+
export async function sendPartnerCustomerFonLink(transport, customerId) {
|
|
291
291
|
const id = pflicht(customerId, 'sendPartnerCustomerFonLink', 'customerId');
|
|
292
|
-
const daten = objekt(await
|
|
292
|
+
const daten = objekt(await transport('sendPartnerCustomerFonLink', { customerId: id }));
|
|
293
293
|
return {
|
|
294
294
|
customerId: text(daten['customerId'], id),
|
|
295
295
|
sentTo: text(daten['sentTo']),
|
|
@@ -346,12 +346,12 @@ function antrag(eintrag) {
|
|
|
346
346
|
* Abschluss kommt als Ereignis `signature.ready`, nicht als Antwort auf diesen
|
|
347
347
|
* Aufruf.
|
|
348
348
|
*/
|
|
349
|
-
export async function requestCustomerSignature(
|
|
349
|
+
export async function requestCustomerSignature(transport, customerId, options = {}) {
|
|
350
350
|
const id = pflicht(customerId, 'requestCustomerSignature', 'customerId');
|
|
351
|
-
const daten = objekt(await
|
|
351
|
+
const daten = objekt(await transport('requestCustomerSignature', {
|
|
352
352
|
customerId: id,
|
|
353
|
-
kind:
|
|
354
|
-
additional:
|
|
353
|
+
kind: options.kind,
|
|
354
|
+
additional: options.additional,
|
|
355
355
|
}));
|
|
356
356
|
return {
|
|
357
357
|
request: antrag(verlangt(daten['request'], 'requestCustomerSignature', 'request')),
|
|
@@ -385,9 +385,9 @@ function signaturEinzeln(eintrag) {
|
|
|
385
385
|
};
|
|
386
386
|
}
|
|
387
387
|
/** Stand der Signatur eines Betriebs samt aller Signaturen, Antraege und des FON-Zugangs. */
|
|
388
|
-
export async function getCustomerSignatureStatus(
|
|
388
|
+
export async function getCustomerSignatureStatus(transport, customerId) {
|
|
389
389
|
const id = pflicht(customerId, 'getCustomerSignatureStatus', 'customerId');
|
|
390
|
-
const daten = objekt(await
|
|
390
|
+
const daten = objekt(await transport('getCustomerSignatureStatus', { customerId: id }));
|
|
391
391
|
const signatur = objekt(daten['signature']);
|
|
392
392
|
const fon = objekt(daten['fon']);
|
|
393
393
|
return {
|
|
@@ -447,12 +447,12 @@ function kasse(eintrag) {
|
|
|
447
447
|
* Hoechstens 20 Kassen je Betrieb (`cashregister_limit`); ohne gebuchtes Modul
|
|
448
448
|
* `module_inactive`.
|
|
449
449
|
*/
|
|
450
|
-
export async function createCustomerCashregister(
|
|
451
|
-
const id = pflicht(
|
|
452
|
-
const daten = objekt(await
|
|
450
|
+
export async function createCustomerCashregister(transport, options) {
|
|
451
|
+
const id = pflicht(options?.customerId, 'createCustomerCashregister', 'customerId');
|
|
452
|
+
const daten = objekt(await transport('createCustomerCashregister', {
|
|
453
453
|
customerId: id,
|
|
454
|
-
automatic:
|
|
455
|
-
signatureRequestId:
|
|
454
|
+
automatic: options.automatic,
|
|
455
|
+
signatureRequestId: options.signatureRequestId,
|
|
456
456
|
}));
|
|
457
457
|
const ib = objekt(daten['activation']);
|
|
458
458
|
return {
|
|
@@ -476,19 +476,19 @@ export async function createCustomerCashregister(rufen, optionen) {
|
|
|
476
476
|
* veraendernde Aufruf dieses Clients, der ohne Idempotenzschluessel gefahrlos
|
|
477
477
|
* wiederholbar ist — weil der Server ihn so gebaut hat.
|
|
478
478
|
*/
|
|
479
|
-
export async function activateCashregister(
|
|
479
|
+
export async function activateCashregister(transport, customerId, cashregisterId) {
|
|
480
480
|
const kunde = pflicht(customerId, 'activateCashregister', 'customerId');
|
|
481
481
|
const kassenId = pflicht(cashregisterId, 'activateCashregister', 'cashregisterId');
|
|
482
|
-
const daten = objekt(await
|
|
482
|
+
const daten = objekt(await transport('activateCashregister', { customerId: kunde, cashregisterId: kassenId }));
|
|
483
483
|
return {
|
|
484
484
|
cashregister: kasse(verlangt(daten['cashregister'], 'activateCashregister', 'cashregister')),
|
|
485
485
|
unchanged: jaNein(daten['unchanged']),
|
|
486
486
|
};
|
|
487
487
|
}
|
|
488
488
|
/** Die Kassen eines Betriebs samt Stand der Inbetriebnahme — **nie** Token. */
|
|
489
|
-
export async function listCustomerCashregisters(
|
|
489
|
+
export async function listCustomerCashregisters(transport, customerId) {
|
|
490
490
|
const id = pflicht(customerId, 'listCustomerCashregisters', 'customerId');
|
|
491
|
-
const daten = objekt(await
|
|
491
|
+
const daten = objekt(await transport('listCustomerCashregisters', { customerId: id }));
|
|
492
492
|
return {
|
|
493
493
|
customerId: text(daten['customerId'], id),
|
|
494
494
|
cashregisters: liste(daten['cashregisters']).map(kasse),
|
|
@@ -511,9 +511,9 @@ export async function listCustomerCashregisters(rufen, customerId) {
|
|
|
511
511
|
* Zeichenketten-Umwandlung zeigen eine Maske, heraus kommt man nur ueber
|
|
512
512
|
* `.reveal()`.
|
|
513
513
|
*/
|
|
514
|
-
export async function getCustomerCredentials(
|
|
514
|
+
export async function getCustomerCredentials(transport, customerId) {
|
|
515
515
|
const id = pflicht(customerId, 'getCustomerCredentials', 'customerId');
|
|
516
|
-
const daten = objekt(await
|
|
516
|
+
const daten = objekt(await transport('getCustomerCredentials', { customerId: id }));
|
|
517
517
|
return {
|
|
518
518
|
customerId: text(daten['customerId'], id),
|
|
519
519
|
companyName: text(daten['companyName']),
|
|
@@ -531,3 +531,43 @@ export async function getCustomerCredentials(rufen, customerId) {
|
|
|
531
531
|
note: text(daten['note']),
|
|
532
532
|
};
|
|
533
533
|
}
|
|
534
|
+
// ---------------------------------------------------------------------------
|
|
535
|
+
// Vertraege
|
|
536
|
+
// ---------------------------------------------------------------------------
|
|
537
|
+
/**
|
|
538
|
+
* Meldet eine Zustimmung des Betriebs, die der Partner **in Vollmacht**
|
|
539
|
+
* eingeholt hat (Endpunkt `reportCustomerContract`, unter `/v1`
|
|
540
|
+
* `reportCustomerVertrag`). Braucht die Berechtigung `customers:write`.
|
|
541
|
+
*
|
|
542
|
+
* Vor dem Senden prueft dieser Client nur, dass jede Pflichtangabe da ist und
|
|
543
|
+
* `acceptedAt` eine Zahl ist. Ob die Art erlaubt ist (`kind_not_allowed`), die
|
|
544
|
+
* Fassung gilt (`unknown_version`, `no_version`) und der Text derselbe ist
|
|
545
|
+
* (`text_changed`), entscheidet der Server. Eine schon bestaetigte Fassung
|
|
546
|
+
* kommt als `already_accepted` mit `data.contractId`; das ist kein Schaden,
|
|
547
|
+
* sondern die Bestaetigung, dass es sie gibt.
|
|
548
|
+
*/
|
|
549
|
+
export async function reportCustomerContract(transport, options) {
|
|
550
|
+
const vorgang = 'reportCustomerContract';
|
|
551
|
+
const o = objekt(options);
|
|
552
|
+
const customerId = pflicht(o['customerId'], vorgang, 'customerId');
|
|
553
|
+
const kind = pflicht(o['kind'], vorgang, 'kind');
|
|
554
|
+
const version = pflicht(o['version'], vorgang, 'version');
|
|
555
|
+
const textHash = pflicht(o['textHash'], vorgang, 'textHash');
|
|
556
|
+
const name = pflicht(o['name'], vorgang, 'name');
|
|
557
|
+
const signerRole = pflicht(o['signerRole'], vorgang, 'signerRole');
|
|
558
|
+
const acceptedAt = o['acceptedAt'];
|
|
559
|
+
if (acceptedAt !== undefined && (typeof acceptedAt !== 'number' || !Number.isFinite(acceptedAt))) {
|
|
560
|
+
throw new KasseneckValidationError(vorgang, 'acceptedAt muss eine Zahl sein (Unix-Millisekunden)', 'request');
|
|
561
|
+
}
|
|
562
|
+
const daten = objekt(await transport(vorgang, { customerId, kind, version, textHash, name, signerRole, acceptedAt }));
|
|
563
|
+
const contractId = daten['contractId'];
|
|
564
|
+
if (typeof contractId !== 'string' || !contractId) {
|
|
565
|
+
throw new KasseneckValidationError(vorgang, 'Antwort enthaelt keine contractId', 'response');
|
|
566
|
+
}
|
|
567
|
+
return {
|
|
568
|
+
contractId,
|
|
569
|
+
confirmedAt: zahlOderNull(daten['confirmedAt']),
|
|
570
|
+
kind: text(daten['kind'], kind),
|
|
571
|
+
version: text(daten['version'], version),
|
|
572
|
+
};
|
|
573
|
+
}
|