@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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SMALL_BUSINESS_NOTICE = exports.
|
|
3
|
+
exports.SMALL_BUSINESS_NOTICE = exports.CURRENT_LAYOUT_RULESET = void 0;
|
|
4
4
|
exports.formatCents = formatCents;
|
|
5
5
|
exports.stripeReceiptLines = stripeReceiptLines;
|
|
6
6
|
exports.receiptSignatureFailed = receiptSignatureFailed;
|
|
@@ -14,7 +14,30 @@ const index_js_1 = require("../enums/index.js");
|
|
|
14
14
|
const index_js_2 = require("../models/index.js");
|
|
15
15
|
const vienna_time_js_1 = require("../vienna-time.js");
|
|
16
16
|
const errors_js_1 = require("../client/errors.js");
|
|
17
|
-
exports.
|
|
17
|
+
exports.CURRENT_LAYOUT_RULESET = 2;
|
|
18
|
+
/** Die Optionen von [buildReceiptLayout]; jede andere wird abgewiesen. */
|
|
19
|
+
const LAYOUT_OPTIONEN = new Set(['paperSize', 'ruleset', 'testCashregister', 'testSignature', 'registrationInfo']);
|
|
20
|
+
/** Namen bis 0.x -> Namen seit 1.0 (fuer eine Meldung, die den Weg nennt). */
|
|
21
|
+
const LAYOUT_OPTIONEN_ALT = {
|
|
22
|
+
testKasse: 'testCashregister',
|
|
23
|
+
testSignatur: 'testSignature',
|
|
24
|
+
pruefangaben: 'registrationInfo',
|
|
25
|
+
regelwerk: 'ruleset',
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Weist unbekannte Optionen ab. Eine alte deutsche Option (`testKasse`) darf
|
|
29
|
+
* nie still verschwinden: der Rahmen „TESTKASSE — kein gültiger Beleg“ fehlte
|
|
30
|
+
* sonst auf einem Testbeleg, und der saehe aus wie ein gueltiger. Das gilt
|
|
31
|
+
* auch fuer Aufrufer ohne Typpruefung (JavaScript).
|
|
32
|
+
*/
|
|
33
|
+
function pruefeLayoutOptionen(options) {
|
|
34
|
+
for (const name of Object.keys(options)) {
|
|
35
|
+
if (LAYOUT_OPTIONEN.has(name))
|
|
36
|
+
continue;
|
|
37
|
+
const neu = LAYOUT_OPTIONEN_ALT[name];
|
|
38
|
+
throw new errors_js_1.KasseneckValidationError('buildReceiptLayout', neu !== undefined ? `Option "${name}" heisst seit 1.0 "${neu}"` : `Unbekannte Option "${name}"`, 'request');
|
|
39
|
+
}
|
|
40
|
+
}
|
|
18
41
|
// -------------------------------------------------------------- Formatierung
|
|
19
42
|
/**
|
|
20
43
|
* Cent-Betrag als Anzeigetext: `1234` -> `"12,34"`. Die **einzige** Stelle, an
|
|
@@ -90,7 +113,7 @@ function originalDatum(timeStamp) {
|
|
|
90
113
|
* anderswo noch einmal baut, oeffnet die Drift wieder.
|
|
91
114
|
*
|
|
92
115
|
* Vorbild ist `print_paper.dart` im Dart-Paket (`_gpTom`, `_hobexHps`,
|
|
93
|
-
* `_sumup`, `_mypos`, `_stripe`); die Fixtures unter `fixtures/
|
|
116
|
+
* `_sumup`, `_mypos`, `_stripe`); die Fixtures unter `fixtures/receipts/karte-*`
|
|
94
117
|
* halten je Anbieter eine Zeile-fuer-Zeile-Probe fest.
|
|
95
118
|
*/
|
|
96
119
|
/** Ein Feld aus `cardPaymentData` als Text; fehlend/null wird leer. */
|
|
@@ -501,7 +524,7 @@ function steuersatz(vat) {
|
|
|
501
524
|
return { rate: vat.rate, category: vat.category };
|
|
502
525
|
}
|
|
503
526
|
/** `20` -> `"20"`, `4.9` -> `"4,9"` (wie im Vorbild). */
|
|
504
|
-
function
|
|
527
|
+
function formatVatRate(rate) {
|
|
505
528
|
return String(rate).replace('.', ',');
|
|
506
529
|
}
|
|
507
530
|
/**
|
|
@@ -641,8 +664,8 @@ const TRAINING_ERKLAERUNG = [
|
|
|
641
664
|
'Trainingsbuchung — kein Kauf, keine Zahlung, keine steuerliche Buchung.',
|
|
642
665
|
'Sollten Sie diesen Beleg als Kunde erhalten haben, sagen Sie bitte dem Betrieb Bescheid.',
|
|
643
666
|
];
|
|
644
|
-
function bannerZeile(text,
|
|
645
|
-
return { kind: 'banner', text,
|
|
667
|
+
function bannerZeile(text, tone = 'receipt_type') {
|
|
668
|
+
return { kind: 'banner', text, tone };
|
|
646
669
|
}
|
|
647
670
|
/** Belegtyp als Zeichenkette (Enum-Objekt oder roher Serverwert). */
|
|
648
671
|
function belegtyp(receipt) {
|
|
@@ -707,10 +730,10 @@ function pruefangabenBlock(receipt, angaben) {
|
|
|
707
730
|
const zda = receiptZdaText(receipt.qr);
|
|
708
731
|
if (zda)
|
|
709
732
|
out.push(paarZeile('Zertifizierungsdienst:', zda, 7, 5));
|
|
710
|
-
const karte = pruefDatum(angaben?.
|
|
733
|
+
const karte = pruefDatum(angaben?.cardRegisteredAt);
|
|
711
734
|
if (karte)
|
|
712
735
|
out.push(paarZeile('Karte registriert:', karte));
|
|
713
|
-
const kasse = pruefDatum(angaben?.
|
|
736
|
+
const kasse = pruefDatum(angaben?.cashregisterRegisteredAt);
|
|
714
737
|
if (kasse)
|
|
715
738
|
out.push(paarZeile('Kasse registriert:', kasse));
|
|
716
739
|
out.push({ kind: 'rule', char: '-' });
|
|
@@ -802,20 +825,21 @@ function belegartBlock(receipt) {
|
|
|
802
825
|
* `print_paper.dart` (`setKeckReceipt`).
|
|
803
826
|
*/
|
|
804
827
|
function buildReceiptLayout(receipt, company, options = {}) {
|
|
828
|
+
pruefeLayoutOptionen(options);
|
|
805
829
|
const paperSize = options.paperSize ?? 'mm58';
|
|
806
|
-
const
|
|
807
|
-
if (
|
|
808
|
-
throw new errors_js_1.KasseneckValidationError('buildReceiptLayout', `Unbekanntes Layout-Regelwerk ${String(
|
|
830
|
+
const ruleset = options.ruleset ?? exports.CURRENT_LAYOUT_RULESET;
|
|
831
|
+
if (ruleset !== 1 && ruleset !== 2) {
|
|
832
|
+
throw new errors_js_1.KasseneckValidationError('buildReceiptLayout', `Unbekanntes Layout-Regelwerk (ruleset ${String(ruleset)}), bitte Paket aktualisieren`, 'request');
|
|
809
833
|
}
|
|
810
834
|
const lines = [];
|
|
811
835
|
// Regelwerk 2: ein „Nullbeleg“ mit echten Betraegen wird nicht reduziert --
|
|
812
836
|
// die Zahlen stehen drauf, statt hinter einer Null zu verschwinden.
|
|
813
|
-
const nullbeleg = receiptIsZero(receipt) && (
|
|
837
|
+
const nullbeleg = receiptIsZero(receipt) && (ruleset === 1 || receiptAmountsAreZero(receipt));
|
|
814
838
|
const warnungen = [];
|
|
815
|
-
if (options.
|
|
816
|
-
warnungen.push(bannerZeile(TESTKASSE_TEXT, '
|
|
817
|
-
if (options.
|
|
818
|
-
warnungen.push(bannerZeile(TESTSIGNATUR_TEXT, '
|
|
839
|
+
if (options.testCashregister)
|
|
840
|
+
warnungen.push(bannerZeile(TESTKASSE_TEXT, 'warning'));
|
|
841
|
+
if (options.testSignature)
|
|
842
|
+
warnungen.push(bannerZeile(TESTSIGNATUR_TEXT, 'warning'));
|
|
819
843
|
// --- Warnrahmen oben (Testkasse/Testsignatur): ueber dem Kopf, damit ihn niemand uebersieht.
|
|
820
844
|
lines.push(...warnungen);
|
|
821
845
|
// --- Belegkopf: Firma, Anschrift, Steuerangabe, Telefon
|
|
@@ -838,11 +862,11 @@ function buildReceiptLayout(receipt, company, options = {}) {
|
|
|
838
862
|
lines.push(paarZeile('Kassen-ID:', receipt.cashregisterId));
|
|
839
863
|
lines.push(paarZeile('Beleg-ID:', receipt.receiptId));
|
|
840
864
|
lines.push({ kind: 'space', lines: 1 });
|
|
841
|
-
if (
|
|
865
|
+
if (ruleset === 1) {
|
|
842
866
|
lines.push(textZeile('Betrag: 0,00 €', 'center', true));
|
|
843
867
|
}
|
|
844
868
|
else {
|
|
845
|
-
lines.push(...pruefangabenBlock(receipt, options.
|
|
869
|
+
lines.push(...pruefangabenBlock(receipt, options.registrationInfo ?? null));
|
|
846
870
|
}
|
|
847
871
|
lines.push({ kind: 'space', lines: 1 });
|
|
848
872
|
if (receiptSignatureFailed(receipt)) {
|
|
@@ -852,7 +876,7 @@ function buildReceiptLayout(receipt, company, options = {}) {
|
|
|
852
876
|
lines.push({ kind: 'qr', data: receipt.qr });
|
|
853
877
|
lines.push({ kind: 'space', lines: 1 });
|
|
854
878
|
lines.push(...warnungen);
|
|
855
|
-
return { lines, paperSize,
|
|
879
|
+
return { lines, paperSize, ruleset };
|
|
856
880
|
}
|
|
857
881
|
// --- Kundendaten
|
|
858
882
|
if (receipt.customerDetails.length > 0) {
|
|
@@ -972,7 +996,7 @@ function buildReceiptLayout(receipt, company, options = {}) {
|
|
|
972
996
|
const bruttoCents = gruppe.bruttoCents;
|
|
973
997
|
const nettoCents = nettoAusBrutto(bruttoCents, gruppe.satz.rate);
|
|
974
998
|
lines.push(tabellenZeile([
|
|
975
|
-
`${gruppe.satz.category} ${
|
|
999
|
+
`${gruppe.satz.category} ${formatVatRate(gruppe.satz.rate)}%`,
|
|
976
1000
|
formatCents(bruttoCents - nettoCents),
|
|
977
1001
|
formatCents(nettoCents),
|
|
978
1002
|
formatCents(bruttoCents),
|
|
@@ -1052,7 +1076,7 @@ function buildReceiptLayout(receipt, company, options = {}) {
|
|
|
1052
1076
|
lines.push({ kind: 'space', lines: 1 });
|
|
1053
1077
|
lines.push(...warnungen);
|
|
1054
1078
|
}
|
|
1055
|
-
return { lines, paperSize,
|
|
1079
|
+
return { lines, paperSize, ruleset };
|
|
1056
1080
|
}
|
|
1057
1081
|
/**
|
|
1058
1082
|
* Verteilt einen eingeloesten Promotionsgutschein anteilig auf die
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { PosPaperSize } from '../printing/escpos.js';
|
|
2
|
-
export interface
|
|
3
|
-
readonly
|
|
4
|
-
readonly
|
|
2
|
+
export interface BrandMarkRaster {
|
|
3
|
+
readonly width: number;
|
|
4
|
+
readonly height: number;
|
|
5
5
|
/** Rasterzeilen als Bits, MSB zuerst, je Zeile auf volle Bytes aufgefuellt; base64. */
|
|
6
6
|
readonly bits: string;
|
|
7
7
|
}
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const BRAND_MARK_RASTERS: Readonly<Record<PosPaperSize, BrandMarkRaster>>;
|
|
9
9
|
/** Die Marke als Pfade (fuer PDF und Bildschirm), im Kasten der Markendatei. */
|
|
10
|
-
export declare const
|
|
11
|
-
readonly
|
|
12
|
-
readonly
|
|
13
|
-
readonly
|
|
10
|
+
export declare const BRAND_MARK_PATHS: {
|
|
11
|
+
readonly width: number;
|
|
12
|
+
readonly height: number;
|
|
13
|
+
readonly paths: readonly string[];
|
|
14
14
|
};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
mm80: {
|
|
6
|
-
mm58: {
|
|
3
|
+
exports.BRAND_MARK_PATHS = exports.BRAND_MARK_RASTERS = void 0;
|
|
4
|
+
exports.BRAND_MARK_RASTERS = {
|
|
5
|
+
mm80: { width: 352, height: 51, bits: "////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8AAA////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf4AAD+AAAAAAfgAAAD+AAH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/gAAP4AAAAAB+AAAAf4AA/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH+AAA/gAAAAAH4AAAB/gAH/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf4AAD+AAAAAAfgAAAH+AAf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/gAAP4AAAAAB+AAAAf4AD/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH+AAA/gAAAAAH4AAAB/gAf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf4AAD+AAAAAAfgAAAH+AD/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/gAAP4AAAAAB+AAAAf4Af8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH+AAA/gAAAAAH4AAAB/gD/gAAPgAAAHgAAAHgAAAPgAAAAeAAAB8AAAB8AAf4AAD+AAAAAAfgAAAH+Af8AAP/4AAP/8AAP/4AAP/4AH4P/AAB//AAB//AB/gB/v4AAAAAB+AAAAf4D/gAD//4AD//8AD//4AD//4Afj//AAf//AAP//AH+AP8/gAAAAAH4AAAB/gf8AAf//wAf//4Af//wAf//wB+f/+AD//+AD//+Af4B/j+AAAAAAfgAAAH+D/gAD///gD///wD///gD///gH///4Af//8Af//8B/gP8P4AAAAAB+AAAAf4f8AAf///Af///Af///Af///Af///wD///4B///4H+B/g/gAAAAAH4AAAB/j/gAB/gf8B/wP+D/gf8B/wP8B////Af+D/gP/D/wf4P+D+AAAAAAfgAAAH+f8AAH8AfwH8Af4P8Af4P8Af4H/gP+B/gD/A/wD/B/g/wP4AAAAAB+AAAAf7/wAA/wB/A/wA/g/gA/g/wA/gf8Af4P8AP8H+AH8H+H+A/gAAAAAH4AAAB///gAB+AH8D/AD+D+AD+D+AD/B/gB/g/wAfwfwAfwf4/wD+AAAAAAfgAAAH///AAAAAf4P+AAAP8AAAf4AH8H+AD+D+AB/B/AB/h/n+AP4AAAAAB+AAAAf//8AAAAB/gf+AAA/8AAB/AAfwfwAP4P4AH+P8AH+H+/wA/gAAAAAH4AAAB///4AAAAH+B//AAB//AAH+AD/B/AA/g/gAf4/wAAAf//AD+AAAAAAfgAAAH///wAAD//4D//wAH//gAf///8H8AD+D////j+AAAB//8AP4AAAAAB+AAAAf/j/AAB///gP//4AP//wB////wfwAP4f///+P4AAAH//wA/gAAAAAH4AAAB/8P+AAf//+AP//4Af//wH////B/AA/h////4/gAAAf//gD+AAAAAA/gAAAH/gf8AD///4Af//wAf//gf///8H8AD+H////j+AAAB///AP4AAAD//+AAAAf8A/wAf///gAP//gAf//B////wfwAP4f///+P4AAAH//8A/gAAAP//4AAAB/gD/gD/wH+AAH/+AAH/+H8AAAB/AA/g/gAAA/gAAAf/f4D+AAAA///gAAAH+AH/AP8Af4AAB/8AAD/4fwAAAH8AD+D+AAAD/AAAB/4/gP4AAAD//+AAAAf4AP8B/gB/gAAB/wAAB/h/AAfwfwAP4P4AD8P8AD+H/D/A/gAAAP//4AAAB/gA/4H8AH+D8AD/D8AD/H+AB/B/AA/g/gAP4fwAP4f4H8D+AAAA///gAAAH+AB/wfwAf4P4AH8fwAP8P4AH8H8AD+D/AB/h/AB/B/gf4P4AAAD//+AAAAf4AD/B/AD/g/gAfx/gA/g/wA/wfwAP4H8AH8H+AH8H+A/w/gAAAP//4AAAB/gAP+H+Af+D/AD/D/AD+D/AH+B/AA/gf4A/wP8A/wf4D/D+AAAA///gAAAH+AAf8f+P/8P/A/4P/A/4H/A/4H8AD+B/4P/A/8P+B/gH+P4AAAD//+AAAAf4AA/w////8f///g////Af///AfwAP4D///4B///4H+Af4/gAAAP//4AAAB/gAD/j////w///8B///8A///8B/AA/gH///AH///Af4A/z+AAAA///gAAAH+AAH/H//n/B///gD///gB///gH8AD+AP//4AP//4B/gD/P4AAAH//+AAAAf4AAf8P/8f8D//8AD//8AB//4AfwAP4Af//AAP//AH+AH+////////4AAAA/gAA/4f/A/wD//AAD/+AAB/+AB/AA/gAf/wAAP/wAPwAP7////////gAAAAAAAAAAHAAAAAeAAAAcAAAAeAAAAAAAAADgAAADgAAAAAAP///////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" },
|
|
6
|
+
mm58: { width: 234, height: 34, bits: "/////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAA+AAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAA8AAAA8AAHwAfgAAAAAAAAAAAAAAAAAAAAAAA+AAA8AAAA8AAHwA/AAAAAAAAAAAAAAAAAAAAAAAA+AAA8AAAA8AAHwB+AAAAAAAAAAAAAAAAAAAAAAAA+AAA8AAAA8AAHwD8AAAAAAAAAAAAAAAAAAAAAAAA+AAA8AAAA8AAHwH4AAAAAAAAAAAAAAAAAAAAAAAA+AAA8AAAA8AAHwPwAPwAD8AA+AAPwAAfAAPgAD4A+AAA8AAAA8AAHwfgB/8AP/AH/wB/8B5/wB/8Af/A+B+A8AAAA8AAHw/AD/+A//wP/4D/+B7/4D/+A//g+D8A8AAAA8AAHx+AH//B//4f/8H//B//4H//B//w+D4A8AAAA8AAHz+AHwfB8H4fB+H4fh/n8PwfB+P4+HwA8AAAA8AAH/8AHwPh8D4+A+PgPh+B8PgPj8D4+PgA8AAAA8AAH/+AHgPh8B4+AcPgPh8B8PgPj4D4+fgA8AAAA8AAH/+AAAPh+AA/gAPgHh8B8fAPj4D4+/AA8AAAA8AAH//AAA/h/4Af8AP//x8B8f//jwAA/+AA8AAAA8AAH/fgA//g//Af/gf//x8B8f//jwAA//AA8AAAA8AAH8PgD//gf/wH/4f//x8B8f//nwAA//AA8AAD/8AAH4PwH//gH/4B/8f//x8B8f//nwAA//gA8AAH/8AAH4H4P4PgA/4AP+PAAB8B8fAADwAA/vgA8AAH/8AAHwH4PgPgAD8AB+PgCh8B8fAAD4B4/HwA8AAH/8AAHwD8PgPj4B88A+PgHx8B8fAHj4D4+HwA8AAH/8AAHwB+Pgfj4B8+A+PgHh8B8PgPj4D4+D4A8AAH/8AAHwB+Pg/j8D4/A+HwPh8B8Pwfh8H4+D8A8AAH/8AAHwA/P//5//4f/+H//h8B8H//B//w+B8A8AAH/8AAHwAfn//4//wf/8D//B8B8D//A//g+B+A+AAH/8AAHwAfn/n4f/gP/4B/+B8B8B/8Af/A+A+A/////8AADwAPh+D4H+AB/gAf4B4A8AfwAH8AeAeA/////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" },
|
|
7
7
|
};
|
|
8
8
|
/** Die Marke als Pfade (fuer PDF und Bildschirm), im Kasten der Markendatei. */
|
|
9
|
-
exports.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
exports.BRAND_MARK_PATHS = {
|
|
10
|
+
width: 332,
|
|
11
|
+
height: 48,
|
|
12
|
+
paths: [
|
|
13
13
|
"M0 0H48V30H42V6H0Z",
|
|
14
14
|
"M0 6V48H30V42H6V6Z",
|
|
15
15
|
"M30 30H48V48H30Z",
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import type { PosPaperSize,
|
|
1
|
+
import type { PosPaperSize, RasterImage } from '../printing/escpos.js';
|
|
2
2
|
/**
|
|
3
3
|
* Entpackt gepackte Rasterzeilen (Base64, MSB zuerst, je Zeile auf volle Bytes
|
|
4
|
-
* aufgefuellt -- die Form von [
|
|
4
|
+
* aufgefuellt -- die Form von [rasterRowsBytes]) in ein Punkt-je-Byte-Bild.
|
|
5
5
|
*
|
|
6
|
-
* Eigene, exportierte Funktion statt Code inline in `
|
|
7
|
-
* Rundlauf-Test (packen mit `
|
|
6
|
+
* Eigene, exportierte Funktion statt Code inline in `brandMarkImage`: ein
|
|
7
|
+
* Rundlauf-Test (packen mit `rasterRowsBytes`, entpacken hiermit) kann so
|
|
8
8
|
* denselben Entpacker pruefen, den die Marke zur Laufzeit auch benutzt --
|
|
9
9
|
* ein vertauschter Bit-Index waere sonst nur am schiefen Ausdruck sichtbar.
|
|
10
10
|
*/
|
|
11
|
-
export declare function entpackeRasterBits(bits: string, breite: number, hoehe: number):
|
|
11
|
+
export declare function entpackeRasterBits(bits: string, breite: number, hoehe: number): RasterImage;
|
|
12
12
|
/**
|
|
13
13
|
* Die Marke als Rasterbild fuer diese Papierbreite.
|
|
14
14
|
*
|
|
15
15
|
* Entpackt die gepackten Zeilen in ein Punkt-je-Byte-Bild, wie es
|
|
16
|
-
* [
|
|
16
|
+
* [escPosRasterImage] erwartet. Zur Laufzeit wird nichts gerechnet und nichts
|
|
17
17
|
* skaliert -- die beiden Masse stehen fest, damit JS und Dart fuer denselben
|
|
18
18
|
* Beleg dieselben Bytes erzeugen.
|
|
19
19
|
*/
|
|
20
|
-
export declare function
|
|
20
|
+
export declare function brandMarkImage(paperSize: PosPaperSize): RasterImage;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.entpackeRasterBits = entpackeRasterBits;
|
|
4
|
-
exports.
|
|
4
|
+
exports.brandMarkImage = brandMarkImage;
|
|
5
5
|
const marke_daten_js_1 = require("./marke-daten.js");
|
|
6
|
-
/** Base64 -> Bytes ohne `Buffer` -- laeuft im Browser und in Node gleich (wie `
|
|
6
|
+
/** Base64 -> Bytes ohne `Buffer` -- laeuft im Browser und in Node gleich (wie `rasterRowsBase64`). */
|
|
7
7
|
function base64Bytes(base64) {
|
|
8
8
|
const binaer = atob(base64);
|
|
9
9
|
const bytes = new Uint8Array(binaer.length);
|
|
@@ -13,10 +13,10 @@ function base64Bytes(base64) {
|
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* Entpackt gepackte Rasterzeilen (Base64, MSB zuerst, je Zeile auf volle Bytes
|
|
16
|
-
* aufgefuellt -- die Form von [
|
|
16
|
+
* aufgefuellt -- die Form von [rasterRowsBytes]) in ein Punkt-je-Byte-Bild.
|
|
17
17
|
*
|
|
18
|
-
* Eigene, exportierte Funktion statt Code inline in `
|
|
19
|
-
* Rundlauf-Test (packen mit `
|
|
18
|
+
* Eigene, exportierte Funktion statt Code inline in `brandMarkImage`: ein
|
|
19
|
+
* Rundlauf-Test (packen mit `rasterRowsBytes`, entpacken hiermit) kann so
|
|
20
20
|
* denselben Entpacker pruefen, den die Marke zur Laufzeit auch benutzt --
|
|
21
21
|
* ein vertauschter Bit-Index waere sonst nur am schiefen Ausdruck sichtbar.
|
|
22
22
|
*/
|
|
@@ -30,17 +30,17 @@ function entpackeRasterBits(bits, breite, hoehe) {
|
|
|
30
30
|
punkte[y * breite + x] = (byte >> (7 - (x & 7))) & 1;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
return { breite, hoehe, punkte };
|
|
33
|
+
return { width: breite, height: hoehe, dots: punkte };
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* Die Marke als Rasterbild fuer diese Papierbreite.
|
|
37
37
|
*
|
|
38
38
|
* Entpackt die gepackten Zeilen in ein Punkt-je-Byte-Bild, wie es
|
|
39
|
-
* [
|
|
39
|
+
* [escPosRasterImage] erwartet. Zur Laufzeit wird nichts gerechnet und nichts
|
|
40
40
|
* skaliert -- die beiden Masse stehen fest, damit JS und Dart fuer denselben
|
|
41
41
|
* Beleg dieselben Bytes erzeugen.
|
|
42
42
|
*/
|
|
43
|
-
function
|
|
44
|
-
const d = marke_daten_js_1.
|
|
45
|
-
return entpackeRasterBits(d.bits, d.
|
|
43
|
+
function brandMarkImage(paperSize) {
|
|
44
|
+
const d = marke_daten_js_1.BRAND_MARK_RASTERS[paperSize];
|
|
45
|
+
return entpackeRasterBits(d.bits, d.width, d.height);
|
|
46
46
|
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { KasseneckApiError } from '../client/errors.js';
|
|
2
|
+
/**
|
|
3
|
+
* Fehler der Kassen-Anmeldung (Kopplung, Benutzerliste, PIN-Anmeldung,
|
|
4
|
+
* Sitzung, Entkoppeln) auswerten: **am `code`, nie am Meldungstext.**
|
|
5
|
+
*
|
|
6
|
+
* Bis 0.x verglich die Web-Kasse deutsche Meldungen („Kasse wird gerade auf …
|
|
7
|
+
* verwendet“) und zog Zahlen aus dem Text. Unter `/api/v3` traegt jede
|
|
8
|
+
* Abweisung einen Code (Nachtrag §11.7.4) und ihre Angaben als Daten:
|
|
9
|
+
* `deviceLabel`, `takeoverAllowed`, `retryAfterSec`, `distanceM`,
|
|
10
|
+
* `pairedDevices`, `licenses`. Die `message` bleibt ein deutscher Menschentext
|
|
11
|
+
* zum Anzeigen, sie ist kein Vertrag.
|
|
12
|
+
*
|
|
13
|
+
* Die Liste ist aus dem Vertrags-Export abgeleitet (Fehlerfaelle der acht
|
|
14
|
+
* Anmelde-Endpunkte in `fixtures/v3/antworten/kasse.json` und die
|
|
15
|
+
* Handler-Codes aus `v3-vokabular.json`); ein Test haelt sie deckungsgleich.
|
|
16
|
+
* Dazu kommen die Codes, die der Rand auf jedem Kassen-Endpunkt erzeugen kann:
|
|
17
|
+
* die Anmelde- und Pruefcodes (`errorCodes.auth` ohne die sieben des
|
|
18
|
+
* Partner-Zugangs, z. B. `register_user_not_found`, wenn der Chef einen
|
|
19
|
+
* angemeldeten Benutzer loescht) und die des Rands selbst (`errorCodes.edge`:
|
|
20
|
+
* `validation`, `not_found`, `internal_translation_error`, `dialect_mismatch`,
|
|
21
|
+
* `response_translation_failed`). Ein Code, der in keiner Liste steht, bleibt
|
|
22
|
+
* ueber `KasseneckApiError.code` lesbar; die Kasse braucht dafuer einen
|
|
23
|
+
* Rueckfallzweig.
|
|
24
|
+
*/
|
|
25
|
+
export declare const REGISTER_ERROR_CODES: readonly ["account_not_found", "admin_required", "cashregister_in_use", "cashregister_not_assigned", "cashregister_not_found", "cashregister_token_invalid", "cashregister_token_missing", "device_bound_elsewhere", "device_not_found", "device_not_paired", "device_takeover_required", "dialect_mismatch", "internal_translation_error", "licenses_exhausted", "live_not_enabled", "location_outside", "location_required", "login_failed", "login_mode_select_user", "login_unavailable", "method_not_allowed", "mfa_required", "not_found", "pairing_code_expired", "pairing_code_unknown", "pairing_code_used", "pairing_failed", "register_user_no_business", "register_user_not_allowed", "register_user_not_found", "register_user_only", "response_translation_failed", "session_ended", "session_expired", "session_not_running", "session_other_cashregister", "too_many_attempts", "unauthorized", "user_disabled", "user_verification_failed", "validation", "route_missing"];
|
|
26
|
+
export type RegisterErrorCode = typeof REGISTER_ERROR_CODES[number];
|
|
27
|
+
export declare function isRegisterErrorCode(value: unknown): value is RegisterErrorCode;
|
|
28
|
+
/** Der Code eines geworfenen Fehlers, wenn es einer der Kassen-Anmeldung ist; sonst `undefined`. */
|
|
29
|
+
export declare function registerErrorCode(error: unknown): RegisterErrorCode | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Kurzform fuer `catch (e) { if (isRegisterError(e, 'cashregister_in_use')) … }`.
|
|
32
|
+
* Ohne `code`: ist es ueberhaupt ein Fehler der Kassen-Anmeldung?
|
|
33
|
+
*/
|
|
34
|
+
export declare function isRegisterError(error: unknown, code?: RegisterErrorCode): error is KasseneckApiError;
|
|
35
|
+
/**
|
|
36
|
+
* Die Angaben einer Abweisung, soweit sie welche traegt. Was fehlt, ist
|
|
37
|
+
* `null`; `deviceLabel` ist auch dann `null`, wenn das belegende Geraet keinen
|
|
38
|
+
* Namen hat (die Oberflaeche sagt dann „ein anderes Geraet“).
|
|
39
|
+
*/
|
|
40
|
+
export interface RegisterErrorDetails {
|
|
41
|
+
/** `cashregister_in_use`, `device_takeover_required`: Name des Geraets, das die Kasse haelt. */
|
|
42
|
+
deviceLabel: string | null;
|
|
43
|
+
/** `cashregister_in_use`: darf dieser Benutzer die Kasse uebernehmen (Recht `takeover`)? */
|
|
44
|
+
takeoverAllowed: boolean;
|
|
45
|
+
/** `too_many_attempts`: Sekunden bis zum naechsten Versuch. */
|
|
46
|
+
retryAfterSec: number | null;
|
|
47
|
+
/** `location_outside`: Abstand zum Betrieb in Metern. */
|
|
48
|
+
distanceM: number | null;
|
|
49
|
+
/** `licenses_exhausted`: gekoppelte Geraete und Lizenzen. */
|
|
50
|
+
pairedDevices: number | null;
|
|
51
|
+
licenses: number | null;
|
|
52
|
+
}
|
|
53
|
+
export declare function registerErrorDetails(error: unknown): RegisterErrorDetails;
|
|
54
|
+
/** Ein Feldfehler aus `data.errors[]` einer `validation`-Antwort. */
|
|
55
|
+
export interface RegisterFieldError {
|
|
56
|
+
/** Feldpfad in der gesendeten Anfrage, z. B. `pairingCode` oder `pin`. */
|
|
57
|
+
field: string;
|
|
58
|
+
message: string;
|
|
59
|
+
}
|
|
60
|
+
/** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */
|
|
61
|
+
export declare function registerFieldErrors(error: unknown): RegisterFieldError[];
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.REGISTER_ERROR_CODES = void 0;
|
|
4
|
+
exports.isRegisterErrorCode = isRegisterErrorCode;
|
|
5
|
+
exports.registerErrorCode = registerErrorCode;
|
|
6
|
+
exports.isRegisterError = isRegisterError;
|
|
7
|
+
exports.registerErrorDetails = registerErrorDetails;
|
|
8
|
+
exports.registerFieldErrors = registerFieldErrors;
|
|
9
|
+
const errors_js_1 = require("../client/errors.js");
|
|
10
|
+
const fehlercodes_js_1 = require("../client/fehlercodes.js");
|
|
11
|
+
/**
|
|
12
|
+
* Fehler der Kassen-Anmeldung (Kopplung, Benutzerliste, PIN-Anmeldung,
|
|
13
|
+
* Sitzung, Entkoppeln) auswerten: **am `code`, nie am Meldungstext.**
|
|
14
|
+
*
|
|
15
|
+
* Bis 0.x verglich die Web-Kasse deutsche Meldungen („Kasse wird gerade auf …
|
|
16
|
+
* verwendet“) und zog Zahlen aus dem Text. Unter `/api/v3` traegt jede
|
|
17
|
+
* Abweisung einen Code (Nachtrag §11.7.4) und ihre Angaben als Daten:
|
|
18
|
+
* `deviceLabel`, `takeoverAllowed`, `retryAfterSec`, `distanceM`,
|
|
19
|
+
* `pairedDevices`, `licenses`. Die `message` bleibt ein deutscher Menschentext
|
|
20
|
+
* zum Anzeigen, sie ist kein Vertrag.
|
|
21
|
+
*
|
|
22
|
+
* Die Liste ist aus dem Vertrags-Export abgeleitet (Fehlerfaelle der acht
|
|
23
|
+
* Anmelde-Endpunkte in `fixtures/v3/antworten/kasse.json` und die
|
|
24
|
+
* Handler-Codes aus `v3-vokabular.json`); ein Test haelt sie deckungsgleich.
|
|
25
|
+
* Dazu kommen die Codes, die der Rand auf jedem Kassen-Endpunkt erzeugen kann:
|
|
26
|
+
* die Anmelde- und Pruefcodes (`errorCodes.auth` ohne die sieben des
|
|
27
|
+
* Partner-Zugangs, z. B. `register_user_not_found`, wenn der Chef einen
|
|
28
|
+
* angemeldeten Benutzer loescht) und die des Rands selbst (`errorCodes.edge`:
|
|
29
|
+
* `validation`, `not_found`, `internal_translation_error`, `dialect_mismatch`,
|
|
30
|
+
* `response_translation_failed`). Ein Code, der in keiner Liste steht, bleibt
|
|
31
|
+
* ueber `KasseneckApiError.code` lesbar; die Kasse braucht dafuer einen
|
|
32
|
+
* Rueckfallzweig.
|
|
33
|
+
*/
|
|
34
|
+
exports.REGISTER_ERROR_CODES = Object.freeze([
|
|
35
|
+
'account_not_found',
|
|
36
|
+
'admin_required',
|
|
37
|
+
'cashregister_in_use',
|
|
38
|
+
'cashregister_not_assigned',
|
|
39
|
+
'cashregister_not_found',
|
|
40
|
+
'cashregister_token_invalid',
|
|
41
|
+
'cashregister_token_missing',
|
|
42
|
+
'device_bound_elsewhere',
|
|
43
|
+
'device_not_found',
|
|
44
|
+
'device_not_paired',
|
|
45
|
+
'device_takeover_required',
|
|
46
|
+
'dialect_mismatch',
|
|
47
|
+
'internal_translation_error',
|
|
48
|
+
'licenses_exhausted',
|
|
49
|
+
'live_not_enabled',
|
|
50
|
+
'location_outside',
|
|
51
|
+
'location_required',
|
|
52
|
+
'login_failed',
|
|
53
|
+
'login_mode_select_user',
|
|
54
|
+
'login_unavailable',
|
|
55
|
+
'method_not_allowed',
|
|
56
|
+
'mfa_required',
|
|
57
|
+
'not_found',
|
|
58
|
+
'pairing_code_expired',
|
|
59
|
+
'pairing_code_unknown',
|
|
60
|
+
'pairing_code_used',
|
|
61
|
+
'pairing_failed',
|
|
62
|
+
'register_user_no_business',
|
|
63
|
+
'register_user_not_allowed',
|
|
64
|
+
'register_user_not_found',
|
|
65
|
+
'register_user_only',
|
|
66
|
+
'response_translation_failed',
|
|
67
|
+
'session_ended',
|
|
68
|
+
'session_expired',
|
|
69
|
+
'session_not_running',
|
|
70
|
+
'session_other_cashregister',
|
|
71
|
+
'too_many_attempts',
|
|
72
|
+
'unauthorized',
|
|
73
|
+
'user_disabled',
|
|
74
|
+
'user_verification_failed',
|
|
75
|
+
'validation',
|
|
76
|
+
// Code des Pakets (CLIENT_ERROR_CODES): HTML statt Backend, der Aufruf kam nie an
|
|
77
|
+
'route_missing',
|
|
78
|
+
]);
|
|
79
|
+
const BEKANNT = new Set(exports.REGISTER_ERROR_CODES);
|
|
80
|
+
function isRegisterErrorCode(value) {
|
|
81
|
+
return typeof value === 'string' && BEKANNT.has(value);
|
|
82
|
+
}
|
|
83
|
+
/** Der Code eines geworfenen Fehlers, wenn es einer der Kassen-Anmeldung ist; sonst `undefined`. */
|
|
84
|
+
function registerErrorCode(error) {
|
|
85
|
+
if (!(error instanceof errors_js_1.KasseneckApiError))
|
|
86
|
+
return undefined;
|
|
87
|
+
return isRegisterErrorCode(error.code) ? error.code : undefined;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Kurzform fuer `catch (e) { if (isRegisterError(e, 'cashregister_in_use')) … }`.
|
|
91
|
+
* Ohne `code`: ist es ueberhaupt ein Fehler der Kassen-Anmeldung?
|
|
92
|
+
*/
|
|
93
|
+
function isRegisterError(error, code) {
|
|
94
|
+
const gefunden = registerErrorCode(error);
|
|
95
|
+
return gefunden !== undefined && (code === undefined || gefunden === code);
|
|
96
|
+
}
|
|
97
|
+
function registerErrorDetails(error) {
|
|
98
|
+
const d = error instanceof errors_js_1.KasseneckApiError ? error.details : {};
|
|
99
|
+
const zahl = (v) => (typeof v === 'number' && Number.isFinite(v) ? v : null);
|
|
100
|
+
return {
|
|
101
|
+
deviceLabel: typeof d['deviceLabel'] === 'string' && d['deviceLabel'] !== '' ? d['deviceLabel'] : null,
|
|
102
|
+
takeoverAllowed: d['takeoverAllowed'] === true,
|
|
103
|
+
retryAfterSec: zahl(d['retryAfterSec']),
|
|
104
|
+
distanceM: zahl(d['distanceM']),
|
|
105
|
+
pairedDevices: zahl(d['pairedDevices']),
|
|
106
|
+
licenses: zahl(d['licenses']),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */
|
|
110
|
+
function registerFieldErrors(error) {
|
|
111
|
+
return (0, fehlercodes_js_1.feldfehlerVon)(error);
|
|
112
|
+
}
|
|
@@ -43,9 +43,22 @@
|
|
|
43
43
|
* });
|
|
44
44
|
* ```
|
|
45
45
|
*
|
|
46
|
+
* Abweisungen entscheidet die Kasse am Code, nie am Meldungstext:
|
|
47
|
+
*
|
|
48
|
+
* ```ts
|
|
49
|
+
* } catch (e) {
|
|
50
|
+
* if (isRegisterError(e, 'cashregister_in_use')) {
|
|
51
|
+
* const { deviceLabel, takeoverAllowed } = registerErrorDetails(e);
|
|
52
|
+
* } else if (isRegisterError(e, 'too_many_attempts')) {
|
|
53
|
+
* const { retryAfterSec } = registerErrorDetails(e);
|
|
54
|
+
* }
|
|
55
|
+
* }
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
46
58
|
* Mit `sitzung.customToken` meldet sich der Verbraucher beim Anmeldedienst an; das
|
|
47
59
|
* daraus entstehende ID-Token und `sitzung.sessionId` ergeben zusammen
|
|
48
60
|
* `registerUserAuth` — ab da laeuft alles Weitere ueber den ueblichen Weg.
|
|
49
61
|
*/
|
|
50
|
-
export { type RegisterDeviceConnection, type RegisterDeviceCredentials, type PairRegisterDeviceOptions, type PairedRegisterDevice, type RegisterUserKind, type RegisterUserSummary, type RegisterUserPerms, REGISTER_PERMS, type RegisterScope, type RegisterUser, type RegisterUserSession, type ListRegisterUsersForDeviceOptions, type RegisterUserLoginOptions, type RegisterPinLoginOptions, type RegisterPinPolicy, type RegisterLoginMode, type RegisterDeviceUsers, type RegisterClientInfo, type RegisterGeo, type
|
|
62
|
+
export { type RegisterDeviceConnection, type RegisterDeviceCredentials, type PairRegisterDeviceOptions, type PairedRegisterDevice, type RegisterUserKind, type RegisterUserSummary, type RegisterUserPerms, REGISTER_PERMS, type RegisterScope, type RegisterUser, type RegisterUserSession, type ListRegisterUsersForDeviceOptions, type RegisterUserLoginOptions, type RegisterPinLoginOptions, type RegisterPinPolicy, type RegisterLoginMode, type RegisterDeviceUsers, type RegisterClientInfo, type RegisterGeo, type RegisterDeviceInfo, type RegisterSession, type RegisterSessionOverview, type ListRegisterSessionsForDeviceOptions, pairRegisterDevice, listRegisterUsersForDevice, listRegisterSessionsForDevice, unpairRegisterDevice, registerUserLogin, registerPinLogin, } from './pairing.js';
|
|
51
63
|
export { renewRegisterSession, endRegisterSession } from './session.js';
|
|
64
|
+
export { REGISTER_ERROR_CODES, type RegisterErrorCode, isRegisterErrorCode, registerErrorCode, registerFieldErrors, type RegisterFieldError, isRegisterError, type RegisterErrorDetails, registerErrorDetails, } from './errors.js';
|
|
@@ -44,12 +44,24 @@
|
|
|
44
44
|
* });
|
|
45
45
|
* ```
|
|
46
46
|
*
|
|
47
|
+
* Abweisungen entscheidet die Kasse am Code, nie am Meldungstext:
|
|
48
|
+
*
|
|
49
|
+
* ```ts
|
|
50
|
+
* } catch (e) {
|
|
51
|
+
* if (isRegisterError(e, 'cashregister_in_use')) {
|
|
52
|
+
* const { deviceLabel, takeoverAllowed } = registerErrorDetails(e);
|
|
53
|
+
* } else if (isRegisterError(e, 'too_many_attempts')) {
|
|
54
|
+
* const { retryAfterSec } = registerErrorDetails(e);
|
|
55
|
+
* }
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
47
59
|
* Mit `sitzung.customToken` meldet sich der Verbraucher beim Anmeldedienst an; das
|
|
48
60
|
* daraus entstehende ID-Token und `sitzung.sessionId` ergeben zusammen
|
|
49
61
|
* `registerUserAuth` — ab da laeuft alles Weitere ueber den ueblichen Weg.
|
|
50
62
|
*/
|
|
51
63
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
-
exports.endRegisterSession = exports.renewRegisterSession = exports.registerPinLogin = exports.registerUserLogin = exports.unpairRegisterDevice = exports.listRegisterSessionsForDevice = exports.listRegisterUsersForDevice = exports.pairRegisterDevice = exports.REGISTER_PERMS = void 0;
|
|
64
|
+
exports.registerErrorDetails = exports.isRegisterError = exports.registerFieldErrors = exports.registerErrorCode = exports.isRegisterErrorCode = exports.REGISTER_ERROR_CODES = exports.endRegisterSession = exports.renewRegisterSession = exports.registerPinLogin = exports.registerUserLogin = exports.unpairRegisterDevice = exports.listRegisterSessionsForDevice = exports.listRegisterUsersForDevice = exports.pairRegisterDevice = exports.REGISTER_PERMS = void 0;
|
|
53
65
|
var pairing_js_1 = require("./pairing.js");
|
|
54
66
|
Object.defineProperty(exports, "REGISTER_PERMS", { enumerable: true, get: function () { return pairing_js_1.REGISTER_PERMS; } });
|
|
55
67
|
Object.defineProperty(exports, "pairRegisterDevice", { enumerable: true, get: function () { return pairing_js_1.pairRegisterDevice; } });
|
|
@@ -61,3 +73,10 @@ Object.defineProperty(exports, "registerPinLogin", { enumerable: true, get: func
|
|
|
61
73
|
var session_js_1 = require("./session.js");
|
|
62
74
|
Object.defineProperty(exports, "renewRegisterSession", { enumerable: true, get: function () { return session_js_1.renewRegisterSession; } });
|
|
63
75
|
Object.defineProperty(exports, "endRegisterSession", { enumerable: true, get: function () { return session_js_1.endRegisterSession; } });
|
|
76
|
+
var errors_js_1 = require("./errors.js");
|
|
77
|
+
Object.defineProperty(exports, "REGISTER_ERROR_CODES", { enumerable: true, get: function () { return errors_js_1.REGISTER_ERROR_CODES; } });
|
|
78
|
+
Object.defineProperty(exports, "isRegisterErrorCode", { enumerable: true, get: function () { return errors_js_1.isRegisterErrorCode; } });
|
|
79
|
+
Object.defineProperty(exports, "registerErrorCode", { enumerable: true, get: function () { return errors_js_1.registerErrorCode; } });
|
|
80
|
+
Object.defineProperty(exports, "registerFieldErrors", { enumerable: true, get: function () { return errors_js_1.registerFieldErrors; } });
|
|
81
|
+
Object.defineProperty(exports, "isRegisterError", { enumerable: true, get: function () { return errors_js_1.isRegisterError; } });
|
|
82
|
+
Object.defineProperty(exports, "registerErrorDetails", { enumerable: true, get: function () { return errors_js_1.registerErrorDetails; } });
|