@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.
Files changed (712) hide show
  1. package/CHANGELOG.md +317 -0
  2. package/README.de.md +11 -7
  3. package/README.md +509 -126
  4. package/dist/cjs/client/api.d.ts +7 -6
  5. package/dist/cjs/client/api.js +2 -2
  6. package/dist/cjs/client/aufrufe.d.ts +29 -5
  7. package/dist/cjs/client/aufrufe.js +114 -2
  8. package/dist/cjs/client/auth.d.ts +2 -0
  9. package/dist/cjs/client/auth.js +17 -1
  10. package/dist/cjs/client/cashregisters.d.ts +1 -1
  11. package/dist/cjs/client/cashregisters.js +2 -2
  12. package/dist/cjs/client/errors.d.ts +94 -19
  13. package/dist/cjs/client/errors.js +132 -28
  14. package/dist/cjs/client/fehlercodes.d.ts +9 -0
  15. package/dist/cjs/client/fehlercodes.js +36 -0
  16. package/dist/cjs/client/index.d.ts +5 -5
  17. package/dist/cjs/client/index.js +11 -3
  18. package/dist/cjs/client/receipts.d.ts +131 -124
  19. package/dist/cjs/client/receipts.js +196 -137
  20. package/dist/cjs/client/reports.d.ts +26 -4
  21. package/dist/cjs/client/reports.js +37 -4
  22. package/dist/cjs/client/status.d.ts +3 -3
  23. package/dist/cjs/client/status.js +7 -7
  24. package/dist/cjs/client/transport.d.ts +56 -4
  25. package/dist/cjs/client/transport.js +234 -25
  26. package/dist/cjs/enums/vat-rate.d.ts +2 -2
  27. package/dist/cjs/enums/vat-rate.js +1 -1
  28. package/dist/cjs/index.d.ts +4 -3
  29. package/dist/cjs/index.js +42 -13
  30. package/dist/{esm/rechnung → cjs/invoice}/api.d.ts +18 -17
  31. package/dist/cjs/{rechnung → invoice}/api.js +6 -6
  32. package/dist/{esm/rechnung → cjs/invoice}/auth.d.ts +2 -2
  33. package/dist/cjs/{rechnung → invoice}/auth.js +5 -5
  34. package/dist/{esm/rechnung/rechnen.d.ts → cjs/invoice/calc.d.ts} +27 -27
  35. package/dist/cjs/{rechnung/rechnen.js → invoice/calc.js} +54 -54
  36. package/dist/{esm/rechnung → cjs/invoice}/endpunkte.d.ts +23 -21
  37. package/dist/cjs/{rechnung → invoice}/endpunkte.js +52 -42
  38. package/dist/cjs/invoice/fehler.d.ts +31 -0
  39. package/dist/cjs/invoice/fehler.js +39 -0
  40. package/dist/cjs/invoice/index.d.ts +21 -0
  41. package/dist/cjs/invoice/index.js +86 -0
  42. package/dist/cjs/{rechnung → invoice}/summen.d.ts +12 -12
  43. package/dist/cjs/{rechnung → invoice}/summen.js +14 -14
  44. package/dist/cjs/invoice/texte.d.ts +224 -0
  45. package/dist/cjs/invoice/texte.js +425 -0
  46. package/dist/{esm/rechnung → cjs/invoice}/typen.d.ts +32 -11
  47. package/dist/cjs/{rechnung → invoice}/vertrag.d.ts +97 -71
  48. package/dist/cjs/{rechnung → invoice}/vertrag.js +144 -82
  49. package/dist/cjs/models/cancellation.d.ts +43 -24
  50. package/dist/cjs/models/cancellation.js +94 -46
  51. package/dist/cjs/models/hobex-receipt.d.ts +3 -3
  52. package/dist/cjs/models/hobex-receipt.js +35 -35
  53. package/dist/cjs/models/index.d.ts +6 -5
  54. package/dist/cjs/models/index.js +22 -2
  55. package/dist/cjs/models/payment-errors.d.ts +32 -15
  56. package/dist/cjs/models/payment-errors.js +80 -32
  57. package/dist/cjs/models/receipt-company.d.ts +6 -5
  58. package/dist/cjs/models/receipt-company.js +4 -4
  59. package/dist/cjs/models/receipt-email.d.ts +32 -18
  60. package/dist/cjs/models/receipt-email.js +69 -24
  61. package/dist/cjs/models/receipt-errors.d.ts +39 -0
  62. package/dist/cjs/models/receipt-errors.js +94 -0
  63. package/dist/cjs/models/receipt-item.d.ts +9 -1
  64. package/dist/cjs/models/receipt-item.js +3 -0
  65. package/dist/cjs/models/receipt-summary.d.ts +10 -4
  66. package/dist/cjs/models/receipt-summary.js +10 -4
  67. package/dist/cjs/models/receipt.d.ts +31 -2
  68. package/dist/cjs/models/receipt.js +12 -1
  69. package/dist/cjs/models/voucher.d.ts +7 -6
  70. package/dist/cjs/models/voucher.js +2 -7
  71. package/dist/cjs/partner/ablauf.d.ts +10 -10
  72. package/dist/cjs/partner/ablauf.js +29 -29
  73. package/dist/cjs/partner/api.d.ts +26 -23
  74. package/dist/cjs/partner/api.js +11 -13
  75. package/dist/cjs/partner/auth.d.ts +1 -1
  76. package/dist/cjs/partner/auth.js +2 -2
  77. package/dist/cjs/partner/betrieb.d.ts +7 -7
  78. package/dist/cjs/partner/betrieb.js +10 -10
  79. package/dist/cjs/partner/endpunkte.d.ts +27 -14
  80. package/dist/cjs/partner/endpunkte.js +80 -39
  81. package/dist/cjs/partner/fehler.d.ts +60 -30
  82. package/dist/cjs/partner/fehler.js +99 -43
  83. package/dist/cjs/partner/index.d.ts +13 -12
  84. package/dist/cjs/partner/index.js +35 -22
  85. package/dist/cjs/partner/secret.d.ts +3 -3
  86. package/dist/cjs/partner/secret.js +6 -6
  87. package/dist/cjs/partner/typen.d.ts +129 -71
  88. package/dist/cjs/partner/typen.js +76 -3
  89. package/dist/cjs/partner/webhook-signatur.d.ts +2 -2
  90. package/dist/cjs/partner/webhook-signatur.js +12 -12
  91. package/dist/cjs/partner/webhooks.d.ts +60 -32
  92. package/dist/cjs/partner/webhooks.js +40 -34
  93. package/dist/cjs/payments/hobex.d.ts +11 -3
  94. package/dist/cjs/payments/hobex.js +17 -5
  95. package/dist/cjs/payments/stripe.d.ts +5 -2
  96. package/dist/cjs/payments/stripe.js +10 -5
  97. package/dist/cjs/pos/artikel.d.ts +90 -0
  98. package/dist/cjs/pos/artikel.js +89 -0
  99. package/dist/cjs/pos/client.d.ts +27 -0
  100. package/dist/cjs/pos/client.js +144 -0
  101. package/dist/cjs/pos/drucker.d.ts +86 -0
  102. package/dist/cjs/pos/drucker.js +78 -0
  103. package/dist/cjs/pos/errors.d.ts +36 -0
  104. package/dist/cjs/pos/errors.js +95 -0
  105. package/dist/cjs/pos/index.d.ts +15 -0
  106. package/dist/cjs/pos/index.js +102 -0
  107. package/dist/cjs/pos/settings.d.ts +313 -0
  108. package/dist/cjs/pos/settings.js +376 -0
  109. package/dist/cjs/pos/texte.d.ts +883 -0
  110. package/dist/cjs/pos/texte.js +489 -0
  111. package/dist/cjs/{kasse → pos}/trinkgeld.d.ts +1 -1
  112. package/dist/cjs/{kasse → pos}/trinkgeld.js +2 -2
  113. package/dist/cjs/printing/escpos.d.ts +29 -29
  114. package/dist/cjs/printing/escpos.js +61 -61
  115. package/dist/cjs/printing/index.d.ts +2 -2
  116. package/dist/cjs/printing/index.js +17 -17
  117. package/dist/cjs/printing/qr-groesse.d.ts +38 -38
  118. package/dist/cjs/printing/qr-groesse.js +47 -47
  119. package/dist/cjs/printing/webusb.d.ts +2 -2
  120. package/dist/cjs/printing/webusb.js +4 -4
  121. package/dist/cjs/react/index.d.ts +21 -21
  122. package/dist/cjs/react/index.js +40 -30
  123. package/dist/cjs/receipt/bild.d.ts +4 -4
  124. package/dist/cjs/receipt/bild.js +11 -11
  125. package/dist/cjs/receipt/blatt.d.ts +46 -46
  126. package/dist/cjs/receipt/blatt.js +59 -59
  127. package/dist/cjs/receipt/discount.d.ts +1 -1
  128. package/dist/cjs/receipt/discount.js +8 -8
  129. package/dist/cjs/receipt/due.d.ts +86 -0
  130. package/dist/cjs/receipt/due.js +261 -0
  131. package/dist/cjs/receipt/epos.d.ts +22 -22
  132. package/dist/cjs/receipt/epos.js +45 -45
  133. package/dist/cjs/receipt/grid.d.ts +10 -10
  134. package/dist/cjs/receipt/grid.js +20 -20
  135. package/dist/cjs/receipt/index.d.ts +9 -8
  136. package/dist/cjs/receipt/index.js +26 -23
  137. package/dist/cjs/receipt/layout-escpos.d.ts +24 -24
  138. package/dist/cjs/receipt/layout-escpos.js +49 -49
  139. package/dist/cjs/receipt/layout.d.ts +28 -23
  140. package/dist/cjs/receipt/layout.js +45 -21
  141. package/dist/cjs/receipt/marke-daten.d.ts +8 -8
  142. package/dist/cjs/receipt/marke-daten.js +8 -8
  143. package/dist/cjs/receipt/marke.d.ts +7 -7
  144. package/dist/cjs/receipt/marke.js +10 -10
  145. package/dist/cjs/register/errors.d.ts +61 -0
  146. package/dist/cjs/register/errors.js +112 -0
  147. package/dist/cjs/register/index.d.ts +14 -1
  148. package/dist/cjs/register/index.js +20 -1
  149. package/dist/cjs/register/pairing.d.ts +55 -36
  150. package/dist/cjs/register/pairing.js +33 -29
  151. package/dist/cjs/register/session.d.ts +5 -5
  152. package/dist/cjs/register/session.js +7 -7
  153. package/dist/cjs/stored/draht.d.ts +45 -0
  154. package/dist/cjs/stored/draht.js +220 -0
  155. package/dist/cjs/stored/einstellungen.d.ts +23 -0
  156. package/dist/cjs/stored/einstellungen.js +200 -0
  157. package/dist/cjs/stored/index.d.ts +109 -0
  158. package/dist/cjs/stored/index.js +225 -0
  159. package/dist/cjs/stored/vokabular.d.ts +18 -0
  160. package/dist/cjs/stored/vokabular.js +389 -0
  161. package/dist/cjs/version.d.ts +7 -0
  162. package/dist/cjs/version.js +10 -0
  163. package/dist/cjs/vienna-time.d.ts +1 -1
  164. package/dist/cjs/vienna-time.js +2 -2
  165. package/dist/esm/client/api.d.ts +7 -6
  166. package/dist/esm/client/api.js +4 -4
  167. package/dist/esm/client/aufrufe.d.ts +29 -5
  168. package/dist/esm/client/aufrufe.js +111 -1
  169. package/dist/esm/client/auth.d.ts +2 -0
  170. package/dist/esm/client/auth.js +16 -1
  171. package/dist/esm/client/cashregisters.d.ts +1 -1
  172. package/dist/esm/client/cashregisters.js +2 -2
  173. package/dist/esm/client/errors.d.ts +94 -19
  174. package/dist/esm/client/errors.js +129 -27
  175. package/dist/esm/client/fehlercodes.d.ts +9 -0
  176. package/dist/esm/client/fehlercodes.js +32 -0
  177. package/dist/esm/client/index.d.ts +5 -5
  178. package/dist/esm/client/index.js +5 -5
  179. package/dist/esm/client/receipts.d.ts +131 -124
  180. package/dist/esm/client/receipts.js +195 -140
  181. package/dist/esm/client/reports.d.ts +26 -4
  182. package/dist/esm/client/reports.js +36 -4
  183. package/dist/esm/client/status.d.ts +3 -3
  184. package/dist/esm/client/status.js +7 -7
  185. package/dist/esm/client/transport.d.ts +56 -4
  186. package/dist/esm/client/transport.js +233 -24
  187. package/dist/esm/enums/vat-rate.d.ts +2 -2
  188. package/dist/esm/enums/vat-rate.js +1 -1
  189. package/dist/esm/index.d.ts +4 -3
  190. package/dist/esm/index.js +4 -3
  191. package/dist/{cjs/rechnung → esm/invoice}/api.d.ts +18 -17
  192. package/dist/esm/{rechnung → invoice}/api.js +6 -6
  193. package/dist/{cjs/rechnung → esm/invoice}/auth.d.ts +2 -2
  194. package/dist/esm/{rechnung → invoice}/auth.js +4 -4
  195. package/dist/{cjs/rechnung/rechnen.d.ts → esm/invoice/calc.d.ts} +27 -27
  196. package/dist/esm/{rechnung/rechnen.js → invoice/calc.js} +45 -45
  197. package/dist/{cjs/rechnung → esm/invoice}/endpunkte.d.ts +23 -21
  198. package/dist/esm/{rechnung → invoice}/endpunkte.js +52 -42
  199. package/dist/esm/invoice/fehler.d.ts +31 -0
  200. package/dist/esm/invoice/fehler.js +33 -0
  201. package/dist/esm/invoice/index.d.ts +21 -0
  202. package/dist/esm/invoice/index.js +20 -0
  203. package/dist/esm/{rechnung → invoice}/summen.d.ts +12 -12
  204. package/dist/esm/{rechnung → invoice}/summen.js +12 -12
  205. package/dist/esm/invoice/texte.d.ts +224 -0
  206. package/dist/esm/invoice/texte.js +421 -0
  207. package/dist/{cjs/rechnung → esm/invoice}/typen.d.ts +32 -11
  208. package/dist/esm/{rechnung → invoice}/vertrag.d.ts +97 -71
  209. package/dist/esm/{rechnung → invoice}/vertrag.js +143 -81
  210. package/dist/esm/models/cancellation.d.ts +43 -24
  211. package/dist/esm/models/cancellation.js +90 -45
  212. package/dist/esm/models/hobex-receipt.d.ts +3 -3
  213. package/dist/esm/models/hobex-receipt.js +35 -35
  214. package/dist/esm/models/index.d.ts +6 -5
  215. package/dist/esm/models/index.js +6 -5
  216. package/dist/esm/models/payment-errors.d.ts +32 -15
  217. package/dist/esm/models/payment-errors.js +77 -32
  218. package/dist/esm/models/receipt-company.d.ts +6 -5
  219. package/dist/esm/models/receipt-company.js +4 -4
  220. package/dist/esm/models/receipt-email.d.ts +32 -18
  221. package/dist/esm/models/receipt-email.js +65 -23
  222. package/dist/esm/models/receipt-errors.d.ts +39 -0
  223. package/dist/esm/models/receipt-errors.js +87 -0
  224. package/dist/esm/models/receipt-item.d.ts +9 -1
  225. package/dist/esm/models/receipt-item.js +3 -0
  226. package/dist/esm/models/receipt-summary.d.ts +10 -4
  227. package/dist/esm/models/receipt-summary.js +9 -3
  228. package/dist/esm/models/receipt.d.ts +31 -2
  229. package/dist/esm/models/receipt.js +12 -2
  230. package/dist/esm/models/voucher.d.ts +7 -6
  231. package/dist/esm/models/voucher.js +2 -7
  232. package/dist/esm/partner/ablauf.d.ts +10 -10
  233. package/dist/esm/partner/ablauf.js +27 -27
  234. package/dist/esm/partner/api.d.ts +26 -23
  235. package/dist/esm/partner/api.js +13 -15
  236. package/dist/esm/partner/auth.d.ts +1 -1
  237. package/dist/esm/partner/auth.js +2 -2
  238. package/dist/esm/partner/betrieb.d.ts +7 -7
  239. package/dist/esm/partner/betrieb.js +8 -8
  240. package/dist/esm/partner/endpunkte.d.ts +27 -14
  241. package/dist/esm/partner/endpunkte.js +79 -39
  242. package/dist/esm/partner/fehler.d.ts +60 -30
  243. package/dist/esm/partner/fehler.js +91 -35
  244. package/dist/esm/partner/index.d.ts +13 -12
  245. package/dist/esm/partner/index.js +12 -11
  246. package/dist/esm/partner/secret.d.ts +3 -3
  247. package/dist/esm/partner/secret.js +5 -5
  248. package/dist/esm/partner/typen.d.ts +129 -71
  249. package/dist/esm/partner/typen.js +75 -2
  250. package/dist/esm/partner/webhook-signatur.d.ts +2 -2
  251. package/dist/esm/partner/webhook-signatur.js +12 -12
  252. package/dist/esm/partner/webhooks.d.ts +60 -32
  253. package/dist/esm/partner/webhooks.js +38 -32
  254. package/dist/esm/payments/hobex.d.ts +11 -3
  255. package/dist/esm/payments/hobex.js +18 -6
  256. package/dist/esm/payments/stripe.d.ts +5 -2
  257. package/dist/esm/payments/stripe.js +11 -6
  258. package/dist/esm/pos/artikel.d.ts +90 -0
  259. package/dist/esm/pos/artikel.js +79 -0
  260. package/dist/esm/pos/client.d.ts +27 -0
  261. package/dist/esm/pos/client.js +137 -0
  262. package/dist/esm/pos/drucker.d.ts +86 -0
  263. package/dist/esm/pos/drucker.js +71 -0
  264. package/dist/esm/pos/errors.d.ts +36 -0
  265. package/dist/esm/pos/errors.js +88 -0
  266. package/dist/esm/pos/index.d.ts +15 -0
  267. package/dist/esm/pos/index.js +20 -0
  268. package/dist/esm/pos/settings.d.ts +313 -0
  269. package/dist/esm/pos/settings.js +367 -0
  270. package/dist/esm/pos/texte.d.ts +883 -0
  271. package/dist/esm/pos/texte.js +481 -0
  272. package/dist/esm/{kasse → pos}/trinkgeld.d.ts +1 -1
  273. package/dist/esm/{kasse → pos}/trinkgeld.js +2 -2
  274. package/dist/esm/printing/escpos.d.ts +29 -29
  275. package/dist/esm/printing/escpos.js +56 -56
  276. package/dist/esm/printing/index.d.ts +2 -2
  277. package/dist/esm/printing/index.js +2 -2
  278. package/dist/esm/printing/qr-groesse.d.ts +38 -38
  279. package/dist/esm/printing/qr-groesse.js +42 -42
  280. package/dist/esm/printing/webusb.d.ts +2 -2
  281. package/dist/esm/printing/webusb.js +4 -4
  282. package/dist/esm/react/index.d.ts +21 -21
  283. package/dist/esm/react/index.js +39 -29
  284. package/dist/esm/receipt/bild.d.ts +4 -4
  285. package/dist/esm/receipt/bild.js +11 -11
  286. package/dist/esm/receipt/blatt.d.ts +46 -46
  287. package/dist/esm/receipt/blatt.js +55 -55
  288. package/dist/esm/receipt/discount.d.ts +1 -1
  289. package/dist/esm/receipt/discount.js +7 -7
  290. package/dist/esm/receipt/due.d.ts +86 -0
  291. package/dist/esm/receipt/due.js +257 -0
  292. package/dist/esm/receipt/epos.d.ts +22 -22
  293. package/dist/esm/receipt/epos.js +47 -47
  294. package/dist/esm/receipt/grid.d.ts +10 -10
  295. package/dist/esm/receipt/grid.js +18 -18
  296. package/dist/esm/receipt/index.d.ts +9 -8
  297. package/dist/esm/receipt/index.js +9 -8
  298. package/dist/esm/receipt/layout-escpos.d.ts +24 -24
  299. package/dist/esm/receipt/layout-escpos.js +51 -51
  300. package/dist/esm/receipt/layout.d.ts +28 -23
  301. package/dist/esm/receipt/layout.js +44 -20
  302. package/dist/esm/receipt/marke-daten.d.ts +8 -8
  303. package/dist/esm/receipt/marke-daten.js +7 -7
  304. package/dist/esm/receipt/marke.d.ts +7 -7
  305. package/dist/esm/receipt/marke.js +10 -10
  306. package/dist/esm/register/errors.d.ts +61 -0
  307. package/dist/esm/register/errors.js +104 -0
  308. package/dist/esm/register/index.d.ts +14 -1
  309. package/dist/esm/register/index.js +13 -0
  310. package/dist/esm/register/pairing.d.ts +55 -36
  311. package/dist/esm/register/pairing.js +33 -29
  312. package/dist/esm/register/session.d.ts +5 -5
  313. package/dist/esm/register/session.js +7 -7
  314. package/dist/esm/stored/draht.d.ts +45 -0
  315. package/dist/esm/stored/draht.js +208 -0
  316. package/dist/esm/stored/einstellungen.d.ts +23 -0
  317. package/dist/esm/stored/einstellungen.js +196 -0
  318. package/dist/esm/stored/index.d.ts +109 -0
  319. package/dist/esm/stored/index.js +217 -0
  320. package/dist/esm/stored/vokabular.d.ts +18 -0
  321. package/dist/esm/stored/vokabular.js +386 -0
  322. package/dist/esm/version.d.ts +7 -0
  323. package/dist/esm/version.js +7 -0
  324. package/dist/esm/vienna-time.d.ts +1 -1
  325. package/dist/esm/vienna-time.js +2 -2
  326. package/fixtures/{erwartet/storno-rabatt.lines.json → expected/cancellation-discount.lines.json} +2 -2
  327. package/fixtures/expected/cancellation-discount.sheet32.json +248 -0
  328. package/fixtures/{erwartet/storno-rabatt.blatt48.json → expected/cancellation-discount.sheet48.json} +119 -119
  329. package/fixtures/{erwartet/storno-voll.lines.json → expected/cancellation-full.lines.json} +2 -2
  330. package/fixtures/expected/cancellation-full.sheet32.json +218 -0
  331. package/fixtures/{erwartet/storno-voll.blatt48.json → expected/cancellation-full.sheet48.json} +107 -107
  332. package/fixtures/{erwartet/storno-teil.lines.json → expected/cancellation-partial.lines.json} +2 -2
  333. package/fixtures/expected/cancellation-partial.sheet32.json +206 -0
  334. package/fixtures/{erwartet/storno-teil.blatt48.json → expected/cancellation-partial.sheet48.json} +101 -101
  335. package/fixtures/{erwartet/storno-split-voll.lines.json → expected/cancellation-split-full.lines.json} +2 -2
  336. package/fixtures/expected/cancellation-split-full.sheet32.json +320 -0
  337. package/fixtures/{erwartet/storno-split-voll.blatt48.json → expected/cancellation-split-full.sheet48.json} +158 -158
  338. package/fixtures/{erwartet/storno-split-teil.lines.json → expected/cancellation-split-partial.lines.json} +2 -2
  339. package/fixtures/expected/cancellation-split-partial.sheet32.json +230 -0
  340. package/fixtures/{erwartet/storno-split-teil.blatt48.json → expected/cancellation-split-partial.sheet48.json} +113 -113
  341. package/fixtures/{erwartet/karte-eigener.lines.json → expected/card-custom.lines.json} +1 -1
  342. package/fixtures/expected/card-custom.sheet32.json +158 -0
  343. package/fixtures/{erwartet/karte-eigener.blatt48.json → expected/card-custom.sheet48.json} +80 -80
  344. package/fixtures/{erwartet/karte-gptom-ios.lines.json → expected/card-gptom-ios.lines.json} +1 -1
  345. package/fixtures/expected/card-gptom-ios.sheet32.json +230 -0
  346. package/fixtures/{erwartet/karte-gptom-ios.blatt48.json → expected/card-gptom-ios.sheet48.json} +116 -116
  347. package/fixtures/{erwartet/karte-gptom.lines.json → expected/card-gptom.lines.json} +1 -1
  348. package/fixtures/expected/card-gptom.sheet32.json +230 -0
  349. package/fixtures/{erwartet/karte-gptom.blatt48.json → expected/card-gptom.sheet48.json} +116 -116
  350. package/fixtures/{erwartet/karte-hobex-cloud.lines.json → expected/card-hobex-cloud.lines.json} +1 -1
  351. package/fixtures/expected/card-hobex-cloud.sheet32.json +200 -0
  352. package/fixtures/{erwartet/karte-hobex-cloud.blatt48.json → expected/card-hobex-cloud.sheet48.json} +101 -101
  353. package/fixtures/{erwartet/karte-hobex-hps.lines.json → expected/card-hobex-hps.lines.json} +1 -1
  354. package/fixtures/expected/card-hobex-hps.sheet32.json +224 -0
  355. package/fixtures/{erwartet/karte-hobex-hps.blatt48.json → expected/card-hobex-hps.sheet48.json} +113 -113
  356. package/fixtures/{erwartet/karte-mypos.lines.json → expected/card-mypos.lines.json} +1 -1
  357. package/fixtures/expected/card-mypos.sheet32.json +254 -0
  358. package/fixtures/{erwartet/karte-mypos.blatt48.json → expected/card-mypos.sheet48.json} +122 -122
  359. package/fixtures/{erwartet/karte-stripe-eps.lines.json → expected/card-stripe-eps.lines.json} +1 -1
  360. package/fixtures/expected/card-stripe-eps.sheet32.json +194 -0
  361. package/fixtures/{erwartet/karte-stripe-eps.blatt48.json → expected/card-stripe-eps.sheet48.json} +98 -98
  362. package/fixtures/{erwartet/karte-stripe.lines.json → expected/card-stripe.lines.json} +1 -1
  363. package/fixtures/expected/card-stripe.sheet32.json +212 -0
  364. package/fixtures/{erwartet/karte-stripe.blatt48.json → expected/card-stripe.sheet48.json} +107 -107
  365. package/fixtures/{erwartet/karte-sumup.lines.json → expected/card-sumup.lines.json} +1 -1
  366. package/fixtures/expected/card-sumup.sheet32.json +218 -0
  367. package/fixtures/{erwartet/karte-sumup.blatt48.json → expected/card-sumup.sheet48.json} +104 -104
  368. package/fixtures/{erwartet/rabattzeilen.lines.json → expected/discount-lines.lines.json} +1 -1
  369. package/fixtures/expected/discount-lines.sheet32.json +200 -0
  370. package/fixtures/{erwartet/rabattzeilen.blatt48.json → expected/discount-lines.sheet48.json} +98 -98
  371. package/fixtures/{erwartet/rabatt-chef-trinkgeld.lines.json → expected/discount-owner-tip.lines.json} +1 -1
  372. package/fixtures/expected/discount-owner-tip.sheet32.json +212 -0
  373. package/fixtures/{erwartet/rabatt-chef-trinkgeld.blatt48.json → expected/discount-owner-tip.sheet48.json} +104 -104
  374. package/fixtures/{erwartet/rabatt-einfach.lines.json → expected/discount-simple.lines.json} +1 -1
  375. package/fixtures/expected/discount-simple.sheet32.json +182 -0
  376. package/fixtures/{erwartet/rabatt-einfach.blatt48.json → expected/discount-simple.sheet48.json} +89 -89
  377. package/fixtures/{erwartet/rabatt-trinkgeld.lines.json → expected/discount-tip.lines.json} +1 -1
  378. package/fixtures/expected/discount-tip.sheet32.json +212 -0
  379. package/fixtures/{erwartet/rabatt-trinkgeld.blatt48.json → expected/discount-tip.sheet48.json} +104 -104
  380. package/fixtures/{erwartet/rabatt-wertgutschein.lines.json → expected/discount-value-voucher.lines.json} +1 -1
  381. package/fixtures/expected/discount-value-voucher.sheet32.json +218 -0
  382. package/fixtures/{erwartet/rabatt-wertgutschein.blatt48.json → expected/discount-value-voucher.sheet48.json} +107 -107
  383. package/fixtures/{erwartet/langer-artikelname.lines.json → expected/long-item-name.lines.json} +1 -1
  384. package/fixtures/expected/long-item-name.sheet32.json +176 -0
  385. package/fixtures/{erwartet/langer-artikelname.blatt48.json → expected/long-item-name.sheet48.json} +86 -86
  386. package/fixtures/{erwartet/verkauf-karte.lines.json → expected/sale-card.lines.json} +1 -1
  387. package/fixtures/expected/sale-card.sheet32.json +176 -0
  388. package/fixtures/{erwartet/verkauf-karte.blatt48.json → expected/sale-card.sheet48.json} +86 -86
  389. package/fixtures/{erwartet/verkauf-bar.lines.json → expected/sale-cash.lines.json} +1 -1
  390. package/fixtures/expected/sale-cash.sheet32.json +176 -0
  391. package/fixtures/{erwartet/verkauf-bar.blatt48.json → expected/sale-cash.sheet48.json} +86 -86
  392. package/fixtures/{erwartet/verkauf-kleinunternehmer.lines.json → expected/sale-small-business.lines.json} +1 -1
  393. package/fixtures/expected/sale-small-business.sheet32.json +182 -0
  394. package/fixtures/{erwartet/verkauf-kleinunternehmer.blatt48.json → expected/sale-small-business.sheet48.json} +89 -89
  395. package/fixtures/{erwartet/signaturausfall-verkauf.lines.json → expected/signature-outage-sale.lines.json} +1 -1
  396. package/fixtures/expected/signature-outage-sale.sheet32.json +194 -0
  397. package/fixtures/{erwartet/signaturausfall-verkauf.blatt48.json → expected/signature-outage-sale.sheet48.json} +92 -92
  398. package/fixtures/{erwartet/split-karte-karte-bar.lines.json → expected/split-card-card-cash.lines.json} +1 -1
  399. package/fixtures/expected/split-card-card-cash.sheet32.json +356 -0
  400. package/fixtures/{erwartet/split-karte-karte-bar.blatt48.json → expected/split-card-card-cash.sheet48.json} +170 -170
  401. package/fixtures/{erwartet/split-bar-rueckgeld.lines.json → expected/split-cash-change.lines.json} +1 -1
  402. package/fixtures/expected/split-cash-change.sheet32.json +194 -0
  403. package/fixtures/{erwartet/split-bar-rueckgeld.blatt48.json → expected/split-cash-change.sheet48.json} +92 -92
  404. package/fixtures/{erwartet/split-langer-betrag.lines.json → expected/split-long-amount.lines.json} +1 -1
  405. package/fixtures/expected/split-long-amount.sheet32.json +266 -0
  406. package/fixtures/{erwartet/split-langer-betrag.blatt48.json → expected/split-long-amount.sheet48.json} +131 -131
  407. package/fixtures/{erwartet/split-eine-karte-trinkgeld.lines.json → expected/split-one-card-tip.lines.json} +1 -1
  408. package/fixtures/expected/split-one-card-tip.sheet32.json +242 -0
  409. package/fixtures/{erwartet/split-eine-karte-trinkgeld.blatt48.json → expected/split-one-card-tip.sheet48.json} +113 -113
  410. package/fixtures/{erwartet/split-tischrunde-trinkgeld.lines.json → expected/split-table-round-tip.lines.json} +1 -1
  411. package/fixtures/expected/split-table-round-tip.sheet32.json +470 -0
  412. package/fixtures/{erwartet/split-tischrunde-trinkgeld.blatt48.json → expected/split-table-round-tip.sheet48.json} +218 -218
  413. package/fixtures/{erwartet/split-trinkgeld-karte.lines.json → expected/split-tip-card.lines.json} +1 -1
  414. package/fixtures/expected/split-tip-card.sheet32.json +272 -0
  415. package/fixtures/{erwartet/split-trinkgeld-karte.blatt48.json → expected/split-tip-card.sheet48.json} +128 -128
  416. package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.lines.json → expected/split-two-cards-same-provider.lines.json} +1 -1
  417. package/fixtures/expected/split-two-cards-same-provider.sheet32.json +326 -0
  418. package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.blatt48.json → expected/split-two-cards-same-provider.sheet48.json} +149 -149
  419. package/fixtures/{erwartet/testkasse-verkauf.lines.json → expected/test-cashregister-sale.lines.json} +3 -3
  420. package/fixtures/expected/test-cashregister-sale.sheet32.json +224 -0
  421. package/fixtures/{erwartet/testkasse-verkauf.blatt48.json → expected/test-cashregister-sale.sheet48.json} +110 -110
  422. package/fixtures/{erwartet/testsignatur-verkauf.lines.json → expected/test-signature-sale.lines.json} +3 -3
  423. package/fixtures/expected/test-signature-sale.sheet32.json +236 -0
  424. package/fixtures/{erwartet/testsignatur-verkauf.blatt48.json → expected/test-signature-sale.sheet48.json} +110 -110
  425. package/fixtures/{erwartet → expected}/training.lines.json +2 -2
  426. package/fixtures/expected/training.sheet32.json +236 -0
  427. package/fixtures/{erwartet/training.blatt48.json → expected/training.sheet48.json} +110 -110
  428. package/fixtures/{erwartet/null-jahr.lines.json → expected/zero-annual.lines.json} +2 -2
  429. package/fixtures/expected/zero-annual.sheet32.json +212 -0
  430. package/fixtures/{erwartet/null-jahr.blatt48.json → expected/zero-annual.sheet48.json} +95 -95
  431. package/fixtures/{erwartet/null-schluss.lines.json → expected/zero-final.lines.json} +2 -2
  432. package/fixtures/expected/zero-final.sheet32.json +206 -0
  433. package/fixtures/{erwartet/null-schluss.blatt48.json → expected/zero-final.sheet48.json} +95 -95
  434. package/fixtures/{erwartet/null-pruef.lines.json → expected/zero-manual.lines.json} +2 -2
  435. package/fixtures/expected/zero-manual.sheet32.json +206 -0
  436. package/fixtures/{erwartet/null-pruef.blatt48.json → expected/zero-manual.sheet48.json} +95 -95
  437. package/fixtures/{erwartet/null-monat.lines.json → expected/zero-monthly.lines.json} +2 -2
  438. package/fixtures/expected/zero-monthly.sheet32.json +206 -0
  439. package/fixtures/{erwartet/null-monat.blatt48.json → expected/zero-monthly.sheet48.json} +95 -95
  440. package/fixtures/{erwartet/null-ausfall.lines.json → expected/zero-outage-end.lines.json} +2 -2
  441. package/fixtures/expected/zero-outage-end.sheet32.json +206 -0
  442. package/fixtures/{erwartet/null-ausfall.blatt48.json → expected/zero-outage-end.sheet48.json} +95 -95
  443. package/fixtures/{erwartet/null-start.lines.json → expected/zero-start.lines.json} +2 -2
  444. package/fixtures/expected/zero-start.sheet32.json +206 -0
  445. package/fixtures/{erwartet/null-start.blatt48.json → expected/zero-start.sheet48.json} +95 -95
  446. package/fixtures/hobex-hps-codes.json +12 -12
  447. package/fixtures/invoice-api-examples/brands-ok.json +8 -0
  448. package/fixtures/{rechnung-api-beispiele/credit-fehler-grund.json → invoice-api-examples/credit-error-reason.json} +6 -6
  449. package/fixtures/{rechnung-api-beispiele → invoice-api-examples}/credit-ok.json +6 -6
  450. package/fixtures/{rechnung-api-beispiele/customer-fehler-uid.json → invoice-api-examples/customer-error-vat-id.json} +4 -4
  451. package/fixtures/invoice-api-examples/customer-get-error-both.json +15 -0
  452. package/fixtures/{rechnung-api-beispiele → invoice-api-examples}/customer-ok.json +4 -4
  453. package/fixtures/{rechnung-api-beispiele/customer-search-fehler-leer.json → invoice-api-examples/customer-search-error-empty.json} +4 -4
  454. package/fixtures/{rechnung-api-beispiele/issue-rabatt.json → invoice-api-examples/issue-discount.json} +6 -6
  455. package/fixtures/{rechnung-api-beispiele/issue-englisch.json → invoice-api-examples/issue-english.json} +7 -7
  456. package/fixtures/{rechnung-api-beispiele/issue-fehler-cent.json → invoice-api-examples/issue-error-cent.json} +6 -6
  457. package/fixtures/{rechnung-api-beispiele/issue-fehler-sprache.json → invoice-api-examples/issue-error-language.json} +5 -5
  458. package/fixtures/{rechnung-api-beispiele/issue-fehler-negativ.json → invoice-api-examples/issue-error-negative.json} +6 -6
  459. package/fixtures/{rechnung-api-beispiele/issue-fehler-zahlungsart.json → invoice-api-examples/issue-error-payment-method.json} +8 -6
  460. package/fixtures/{rechnung-api-beispiele/issue-fehler-preis-beide.json → invoice-api-examples/issue-error-price-both.json} +6 -6
  461. package/fixtures/{rechnung-api-beispiele/issue-fehler-preis-fehlt.json → invoice-api-examples/issue-error-price-missing.json} +6 -6
  462. package/fixtures/{rechnung-api-beispiele/issue-fehler-menge.json → invoice-api-examples/issue-error-quantity.json} +6 -6
  463. package/fixtures/{rechnung-api-beispiele/issue-fehler-satz.json → invoice-api-examples/issue-error-rate.json} +6 -6
  464. package/fixtures/{rechnung-api-beispiele/issue-fehler-einheit.json → invoice-api-examples/issue-error-unit.json} +5 -5
  465. package/fixtures/{rechnung-api-beispiele/issue-fehler-unbekannt.json → invoice-api-examples/issue-error-unknown.json} +6 -6
  466. package/fixtures/{rechnung-api-beispiele/issue-brutto-20.json → invoice-api-examples/issue-gross-20.json} +6 -6
  467. package/fixtures/{rechnung-api-beispiele/issue-mikropreis.json → invoice-api-examples/issue-micro-price.json} +6 -6
  468. package/fixtures/{rechnung-api-beispiele/issue-gemischt.json → invoice-api-examples/issue-mixed.json} +6 -6
  469. package/fixtures/{rechnung-api-beispiele/issue-netto-20.json → invoice-api-examples/issue-net-20.json} +6 -6
  470. package/fixtures/{rechnung-api-beispiele/issue-bezahlt.json → invoice-api-examples/issue-paid.json} +7 -7
  471. package/fixtures/{rechnung-api-beispiele/issue-kleinunternehmer.json → invoice-api-examples/issue-small-business.json} +6 -6
  472. package/fixtures/invoice-api-examples/payment-error-on-site.json +17 -0
  473. package/fixtures/invoice-api-examples/payment-error-without-key.json +16 -0
  474. package/fixtures/invoice-api-examples/payment-recorded-later.json +14 -0
  475. package/fixtures/{rechnung-api-beispiele/setup-status-fehler-feld.json → invoice-api-examples/setup-status-error-field.json} +4 -4
  476. package/fixtures/invoice-api-examples/setup-status-ok.json +8 -0
  477. package/fixtures/{rechnung-api.schema.json → invoice-api.schema.json} +24 -24
  478. package/fixtures/{rechnung-rechnen-zufall.json → invoice-calc-random.json} +828 -828
  479. package/fixtures/{rechnung-rechnen.json → invoice-calc.json} +47 -47
  480. package/fixtures/invoice-texts.json +464 -0
  481. package/fixtures/{rechnung-summen.json → invoice-totals.json} +25 -25
  482. package/fixtures/{position-aus-euro.json → item-from-euro.json} +26 -26
  483. package/fixtures/manifest.json +252 -252
  484. package/fixtures/pos-message-cases.json +32 -0
  485. package/fixtures/pos-settings-defaults.json +149 -0
  486. package/fixtures/{kasse-texte.json → pos-texts.json} +416 -416
  487. package/fixtures/receipt-due-generated.json +1218 -0
  488. package/fixtures/{belege/storno-rabatt.json → receipts/cancellation-discount.json} +3 -3
  489. package/fixtures/{belege/storno-voll.json → receipts/cancellation-full.json} +3 -3
  490. package/fixtures/{belege/storno-teil.json → receipts/cancellation-partial.json} +3 -3
  491. package/fixtures/{belege/storno-split-voll.json → receipts/cancellation-split-full.json} +3 -3
  492. package/fixtures/{belege/storno-split-teil.json → receipts/cancellation-split-partial.json} +3 -3
  493. package/fixtures/{belege/karte-eigener.json → receipts/card-custom.json} +2 -2
  494. package/fixtures/{belege/karte-gptom-ios.json → receipts/card-gptom-ios.json} +2 -2
  495. package/fixtures/{belege/karte-gptom.json → receipts/card-gptom.json} +2 -2
  496. package/fixtures/{belege/karte-hobex-cloud.json → receipts/card-hobex-cloud.json} +2 -2
  497. package/fixtures/{belege/karte-hobex-hps.json → receipts/card-hobex-hps.json} +2 -2
  498. package/fixtures/{belege/karte-mypos.json → receipts/card-mypos.json} +2 -2
  499. package/fixtures/{belege/karte-stripe-eps.json → receipts/card-stripe-eps.json} +2 -2
  500. package/fixtures/{belege/karte-stripe.json → receipts/card-stripe.json} +2 -2
  501. package/fixtures/{belege/karte-sumup.json → receipts/card-sumup.json} +2 -2
  502. package/fixtures/{belege/rabattzeilen.json → receipts/discount-lines.json} +2 -2
  503. package/fixtures/{belege/rabatt-chef-trinkgeld.json → receipts/discount-owner-tip.json} +2 -2
  504. package/fixtures/{belege/rabatt-einfach.json → receipts/discount-simple.json} +2 -2
  505. package/fixtures/{belege/rabatt-trinkgeld.json → receipts/discount-tip.json} +2 -2
  506. package/fixtures/{belege/rabatt-wertgutschein.json → receipts/discount-value-voucher.json} +2 -2
  507. package/fixtures/{belege/langer-artikelname.json → receipts/long-item-name.json} +2 -2
  508. package/fixtures/{belege/verkauf-karte.json → receipts/sale-card.json} +2 -2
  509. package/fixtures/{belege/verkauf-bar.json → receipts/sale-cash.json} +2 -2
  510. package/fixtures/{belege/verkauf-kleinunternehmer.json → receipts/sale-small-business.json} +1 -1
  511. package/fixtures/{belege/signaturausfall-verkauf.json → receipts/signature-outage-sale.json} +2 -2
  512. package/fixtures/{belege/split-karte-karte-bar.json → receipts/split-card-card-cash.json} +2 -2
  513. package/fixtures/{belege/split-bar-rueckgeld.json → receipts/split-cash-change.json} +2 -2
  514. package/fixtures/{belege/split-langer-betrag.json → receipts/split-long-amount.json} +2 -2
  515. package/fixtures/{belege/split-eine-karte-trinkgeld.json → receipts/split-one-card-tip.json} +2 -2
  516. package/fixtures/{belege/split-tischrunde-trinkgeld.json → receipts/split-table-round-tip.json} +2 -2
  517. package/fixtures/{belege/split-trinkgeld-karte.json → receipts/split-tip-card.json} +2 -2
  518. package/fixtures/{belege/split-zwei-karten-gleicher-anbieter.json → receipts/split-two-cards-same-provider.json} +2 -2
  519. package/fixtures/{belege/testsignatur-verkauf.json → receipts/test-cashregister-sale.json} +3 -3
  520. package/fixtures/{belege/testkasse-verkauf.json → receipts/test-signature-sale.json} +3 -3
  521. package/fixtures/{belege → receipts}/training.json +2 -2
  522. package/fixtures/{belege/null-jahr.json → receipts/zero-annual.json} +5 -5
  523. package/fixtures/{belege/null-schluss.json → receipts/zero-final.json} +5 -5
  524. package/fixtures/{belege/null-pruef.json → receipts/zero-manual.json} +5 -5
  525. package/fixtures/{belege/null-monat.json → receipts/zero-monthly.json} +5 -5
  526. package/fixtures/{belege/null-ausfall.json → receipts/zero-outage-end.json} +5 -5
  527. package/fixtures/{belege/null-start.json → receipts/zero-start.json} +5 -5
  528. package/fixtures/renames-1.0.json +1490 -0
  529. package/fixtures/{kasse-settings-standard.json → stored/pos-settings-defaults.json} +7 -7
  530. package/fixtures/surface.json +877 -0
  531. package/fixtures/v3/README.md +125 -0
  532. package/fixtures/v3/antworten/belege.json +4738 -0
  533. package/fixtures/v3/antworten/belegmail.json +154 -0
  534. package/fixtures/v3/antworten/kasse-belege.json +4304 -0
  535. package/fixtures/v3/antworten/kasse.json +12716 -0
  536. package/fixtures/v3/antworten/rechnungen.json +1712 -0
  537. package/fixtures/v3/antworten/storno.json +737 -0
  538. package/fixtures/v3/stored/belege.json +502 -0
  539. package/fixtures/v3/stored/kasse.json +3461 -0
  540. package/fixtures/v3/stored/rechnungen.json +750 -0
  541. package/fixtures/v3/v3-vokabular.json +3375 -0
  542. package/fixtures/v3/zahlbetrag-faelle.json +794 -0
  543. package/package.json +32 -18
  544. package/dist/cjs/kasse/artikel.d.ts +0 -83
  545. package/dist/cjs/kasse/artikel.js +0 -79
  546. package/dist/cjs/kasse/client.d.ts +0 -10
  547. package/dist/cjs/kasse/client.js +0 -38
  548. package/dist/cjs/kasse/drucker.d.ts +0 -59
  549. package/dist/cjs/kasse/drucker.js +0 -50
  550. package/dist/cjs/kasse/index.d.ts +0 -13
  551. package/dist/cjs/kasse/index.js +0 -83
  552. package/dist/cjs/kasse/settings.d.ts +0 -229
  553. package/dist/cjs/kasse/settings.js +0 -172
  554. package/dist/cjs/kasse/texte.d.ts +0 -868
  555. package/dist/cjs/kasse/texte.js +0 -474
  556. package/dist/cjs/rechnung/fehler.d.ts +0 -21
  557. package/dist/cjs/rechnung/fehler.js +0 -44
  558. package/dist/cjs/rechnung/index.d.ts +0 -21
  559. package/dist/cjs/rechnung/index.js +0 -82
  560. package/dist/cjs/rechnung/texte.d.ts +0 -222
  561. package/dist/cjs/rechnung/texte.js +0 -425
  562. package/dist/esm/kasse/artikel.d.ts +0 -83
  563. package/dist/esm/kasse/artikel.js +0 -70
  564. package/dist/esm/kasse/client.d.ts +0 -10
  565. package/dist/esm/kasse/client.js +0 -33
  566. package/dist/esm/kasse/drucker.d.ts +0 -59
  567. package/dist/esm/kasse/drucker.js +0 -45
  568. package/dist/esm/kasse/index.d.ts +0 -13
  569. package/dist/esm/kasse/index.js +0 -18
  570. package/dist/esm/kasse/settings.d.ts +0 -229
  571. package/dist/esm/kasse/settings.js +0 -168
  572. package/dist/esm/kasse/texte.d.ts +0 -868
  573. package/dist/esm/kasse/texte.js +0 -466
  574. package/dist/esm/rechnung/fehler.d.ts +0 -21
  575. package/dist/esm/rechnung/fehler.js +0 -39
  576. package/dist/esm/rechnung/index.d.ts +0 -21
  577. package/dist/esm/rechnung/index.js +0 -20
  578. package/dist/esm/rechnung/texte.d.ts +0 -222
  579. package/dist/esm/rechnung/texte.js +0 -421
  580. package/fixtures/erwartet/karte-eigener.blatt32.json +0 -158
  581. package/fixtures/erwartet/karte-gptom-ios.blatt32.json +0 -230
  582. package/fixtures/erwartet/karte-gptom.blatt32.json +0 -230
  583. package/fixtures/erwartet/karte-hobex-cloud.blatt32.json +0 -200
  584. package/fixtures/erwartet/karte-hobex-hps.blatt32.json +0 -224
  585. package/fixtures/erwartet/karte-mypos.blatt32.json +0 -254
  586. package/fixtures/erwartet/karte-stripe-eps.blatt32.json +0 -194
  587. package/fixtures/erwartet/karte-stripe.blatt32.json +0 -212
  588. package/fixtures/erwartet/karte-sumup.blatt32.json +0 -218
  589. package/fixtures/erwartet/langer-artikelname.blatt32.json +0 -176
  590. package/fixtures/erwartet/null-ausfall.blatt32.json +0 -206
  591. package/fixtures/erwartet/null-jahr.blatt32.json +0 -212
  592. package/fixtures/erwartet/null-monat.blatt32.json +0 -206
  593. package/fixtures/erwartet/null-pruef.blatt32.json +0 -206
  594. package/fixtures/erwartet/null-schluss.blatt32.json +0 -206
  595. package/fixtures/erwartet/null-start.blatt32.json +0 -206
  596. package/fixtures/erwartet/rabatt-chef-trinkgeld.blatt32.json +0 -212
  597. package/fixtures/erwartet/rabatt-einfach.blatt32.json +0 -182
  598. package/fixtures/erwartet/rabatt-trinkgeld.blatt32.json +0 -212
  599. package/fixtures/erwartet/rabatt-wertgutschein.blatt32.json +0 -218
  600. package/fixtures/erwartet/rabattzeilen.blatt32.json +0 -200
  601. package/fixtures/erwartet/signaturausfall-verkauf.blatt32.json +0 -194
  602. package/fixtures/erwartet/split-bar-rueckgeld.blatt32.json +0 -194
  603. package/fixtures/erwartet/split-eine-karte-trinkgeld.blatt32.json +0 -242
  604. package/fixtures/erwartet/split-karte-karte-bar.blatt32.json +0 -356
  605. package/fixtures/erwartet/split-langer-betrag.blatt32.json +0 -266
  606. package/fixtures/erwartet/split-tischrunde-trinkgeld.blatt32.json +0 -470
  607. package/fixtures/erwartet/split-trinkgeld-karte.blatt32.json +0 -272
  608. package/fixtures/erwartet/split-zwei-karten-gleicher-anbieter.blatt32.json +0 -326
  609. package/fixtures/erwartet/storno-rabatt.blatt32.json +0 -248
  610. package/fixtures/erwartet/storno-split-teil.blatt32.json +0 -230
  611. package/fixtures/erwartet/storno-split-voll.blatt32.json +0 -320
  612. package/fixtures/erwartet/storno-teil.blatt32.json +0 -206
  613. package/fixtures/erwartet/storno-voll.blatt32.json +0 -218
  614. package/fixtures/erwartet/testkasse-verkauf.blatt32.json +0 -224
  615. package/fixtures/erwartet/testsignatur-verkauf.blatt32.json +0 -236
  616. package/fixtures/erwartet/training.blatt32.json +0 -236
  617. package/fixtures/erwartet/verkauf-bar.blatt32.json +0 -176
  618. package/fixtures/erwartet/verkauf-karte.blatt32.json +0 -176
  619. package/fixtures/erwartet/verkauf-kleinunternehmer.blatt32.json +0 -182
  620. package/fixtures/kasse-meldungen-faelle.json +0 -32
  621. package/fixtures/oberflaeche.json +0 -558
  622. package/fixtures/rechnung-api-beispiele/brands-ok.json +0 -8
  623. package/fixtures/rechnung-api-beispiele/customer-get-fehler-beide.json +0 -15
  624. package/fixtures/rechnung-api-beispiele/setup-status-ok.json +0 -8
  625. package/fixtures/rechnung-api-beispiele/zahlung-fehler-ohne-schluessel.json +0 -14
  626. package/fixtures/rechnung-api-beispiele/zahlung-fehler-vor-ort.json +0 -15
  627. package/fixtures/rechnung-api-beispiele/zahlung-nachtrag.json +0 -14
  628. package/fixtures/rechnung-texte.json +0 -464
  629. /package/dist/cjs/{rechnung → invoice}/typen.js +0 -0
  630. /package/dist/esm/{rechnung → invoice}/typen.js +0 -0
  631. /package/fixtures/{erwartet/storno-rabatt.grid32.txt → expected/cancellation-discount.grid32.txt} +0 -0
  632. /package/fixtures/{erwartet/storno-rabatt.grid48.txt → expected/cancellation-discount.grid48.txt} +0 -0
  633. /package/fixtures/{erwartet/storno-voll.grid32.txt → expected/cancellation-full.grid32.txt} +0 -0
  634. /package/fixtures/{erwartet/storno-voll.grid48.txt → expected/cancellation-full.grid48.txt} +0 -0
  635. /package/fixtures/{erwartet/storno-teil.grid32.txt → expected/cancellation-partial.grid32.txt} +0 -0
  636. /package/fixtures/{erwartet/storno-teil.grid48.txt → expected/cancellation-partial.grid48.txt} +0 -0
  637. /package/fixtures/{erwartet/storno-split-voll.grid32.txt → expected/cancellation-split-full.grid32.txt} +0 -0
  638. /package/fixtures/{erwartet/storno-split-voll.grid48.txt → expected/cancellation-split-full.grid48.txt} +0 -0
  639. /package/fixtures/{erwartet/storno-split-teil.grid32.txt → expected/cancellation-split-partial.grid32.txt} +0 -0
  640. /package/fixtures/{erwartet/storno-split-teil.grid48.txt → expected/cancellation-split-partial.grid48.txt} +0 -0
  641. /package/fixtures/{erwartet/karte-eigener.grid32.txt → expected/card-custom.grid32.txt} +0 -0
  642. /package/fixtures/{erwartet/karte-eigener.grid48.txt → expected/card-custom.grid48.txt} +0 -0
  643. /package/fixtures/{erwartet/karte-gptom-ios.grid32.txt → expected/card-gptom-ios.grid32.txt} +0 -0
  644. /package/fixtures/{erwartet/karte-gptom-ios.grid48.txt → expected/card-gptom-ios.grid48.txt} +0 -0
  645. /package/fixtures/{erwartet/karte-gptom.grid32.txt → expected/card-gptom.grid32.txt} +0 -0
  646. /package/fixtures/{erwartet/karte-gptom.grid48.txt → expected/card-gptom.grid48.txt} +0 -0
  647. /package/fixtures/{erwartet/karte-hobex-cloud.grid32.txt → expected/card-hobex-cloud.grid32.txt} +0 -0
  648. /package/fixtures/{erwartet/karte-hobex-cloud.grid48.txt → expected/card-hobex-cloud.grid48.txt} +0 -0
  649. /package/fixtures/{erwartet/karte-hobex-hps.grid32.txt → expected/card-hobex-hps.grid32.txt} +0 -0
  650. /package/fixtures/{erwartet/karte-hobex-hps.grid48.txt → expected/card-hobex-hps.grid48.txt} +0 -0
  651. /package/fixtures/{erwartet/karte-mypos.grid32.txt → expected/card-mypos.grid32.txt} +0 -0
  652. /package/fixtures/{erwartet/karte-mypos.grid48.txt → expected/card-mypos.grid48.txt} +0 -0
  653. /package/fixtures/{erwartet/karte-stripe-eps.grid32.txt → expected/card-stripe-eps.grid32.txt} +0 -0
  654. /package/fixtures/{erwartet/karte-stripe-eps.grid48.txt → expected/card-stripe-eps.grid48.txt} +0 -0
  655. /package/fixtures/{erwartet/karte-stripe.grid32.txt → expected/card-stripe.grid32.txt} +0 -0
  656. /package/fixtures/{erwartet/karte-stripe.grid48.txt → expected/card-stripe.grid48.txt} +0 -0
  657. /package/fixtures/{erwartet/karte-sumup.grid32.txt → expected/card-sumup.grid32.txt} +0 -0
  658. /package/fixtures/{erwartet/karte-sumup.grid48.txt → expected/card-sumup.grid48.txt} +0 -0
  659. /package/fixtures/{erwartet/rabattzeilen.grid32.txt → expected/discount-lines.grid32.txt} +0 -0
  660. /package/fixtures/{erwartet/rabattzeilen.grid48.txt → expected/discount-lines.grid48.txt} +0 -0
  661. /package/fixtures/{erwartet/rabatt-chef-trinkgeld.grid32.txt → expected/discount-owner-tip.grid32.txt} +0 -0
  662. /package/fixtures/{erwartet/rabatt-chef-trinkgeld.grid48.txt → expected/discount-owner-tip.grid48.txt} +0 -0
  663. /package/fixtures/{erwartet/rabatt-einfach.grid32.txt → expected/discount-simple.grid32.txt} +0 -0
  664. /package/fixtures/{erwartet/rabatt-einfach.grid48.txt → expected/discount-simple.grid48.txt} +0 -0
  665. /package/fixtures/{erwartet/rabatt-trinkgeld.grid32.txt → expected/discount-tip.grid32.txt} +0 -0
  666. /package/fixtures/{erwartet/rabatt-trinkgeld.grid48.txt → expected/discount-tip.grid48.txt} +0 -0
  667. /package/fixtures/{erwartet/rabatt-wertgutschein.grid32.txt → expected/discount-value-voucher.grid32.txt} +0 -0
  668. /package/fixtures/{erwartet/rabatt-wertgutschein.grid48.txt → expected/discount-value-voucher.grid48.txt} +0 -0
  669. /package/fixtures/{erwartet/logo-probe-hoch.raster32.txt → expected/logo-sample-tall.raster32.txt} +0 -0
  670. /package/fixtures/{erwartet/logo-probe.raster32.txt → expected/logo-sample.raster32.txt} +0 -0
  671. /package/fixtures/{erwartet/langer-artikelname.grid32.txt → expected/long-item-name.grid32.txt} +0 -0
  672. /package/fixtures/{erwartet/langer-artikelname.grid48.txt → expected/long-item-name.grid48.txt} +0 -0
  673. /package/fixtures/{erwartet/verkauf-karte.grid32.txt → expected/sale-card.grid32.txt} +0 -0
  674. /package/fixtures/{erwartet/verkauf-karte.grid48.txt → expected/sale-card.grid48.txt} +0 -0
  675. /package/fixtures/{erwartet/verkauf-bar.grid32.txt → expected/sale-cash.grid32.txt} +0 -0
  676. /package/fixtures/{erwartet/verkauf-bar.grid48.txt → expected/sale-cash.grid48.txt} +0 -0
  677. /package/fixtures/{erwartet/verkauf-kleinunternehmer.grid32.txt → expected/sale-small-business.grid32.txt} +0 -0
  678. /package/fixtures/{erwartet/verkauf-kleinunternehmer.grid48.txt → expected/sale-small-business.grid48.txt} +0 -0
  679. /package/fixtures/{erwartet/signaturausfall-verkauf.grid32.txt → expected/signature-outage-sale.grid32.txt} +0 -0
  680. /package/fixtures/{erwartet/signaturausfall-verkauf.grid48.txt → expected/signature-outage-sale.grid48.txt} +0 -0
  681. /package/fixtures/{erwartet/split-karte-karte-bar.grid32.txt → expected/split-card-card-cash.grid32.txt} +0 -0
  682. /package/fixtures/{erwartet/split-karte-karte-bar.grid48.txt → expected/split-card-card-cash.grid48.txt} +0 -0
  683. /package/fixtures/{erwartet/split-bar-rueckgeld.grid32.txt → expected/split-cash-change.grid32.txt} +0 -0
  684. /package/fixtures/{erwartet/split-bar-rueckgeld.grid48.txt → expected/split-cash-change.grid48.txt} +0 -0
  685. /package/fixtures/{erwartet/split-langer-betrag.grid32.txt → expected/split-long-amount.grid32.txt} +0 -0
  686. /package/fixtures/{erwartet/split-langer-betrag.grid48.txt → expected/split-long-amount.grid48.txt} +0 -0
  687. /package/fixtures/{erwartet/split-eine-karte-trinkgeld.grid32.txt → expected/split-one-card-tip.grid32.txt} +0 -0
  688. /package/fixtures/{erwartet/split-eine-karte-trinkgeld.grid48.txt → expected/split-one-card-tip.grid48.txt} +0 -0
  689. /package/fixtures/{erwartet/split-tischrunde-trinkgeld.grid32.txt → expected/split-table-round-tip.grid32.txt} +0 -0
  690. /package/fixtures/{erwartet/split-tischrunde-trinkgeld.grid48.txt → expected/split-table-round-tip.grid48.txt} +0 -0
  691. /package/fixtures/{erwartet/split-trinkgeld-karte.grid32.txt → expected/split-tip-card.grid32.txt} +0 -0
  692. /package/fixtures/{erwartet/split-trinkgeld-karte.grid48.txt → expected/split-tip-card.grid48.txt} +0 -0
  693. /package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.grid32.txt → expected/split-two-cards-same-provider.grid32.txt} +0 -0
  694. /package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.grid48.txt → expected/split-two-cards-same-provider.grid48.txt} +0 -0
  695. /package/fixtures/{erwartet/testkasse-verkauf.grid32.txt → expected/test-cashregister-sale.grid32.txt} +0 -0
  696. /package/fixtures/{erwartet/testkasse-verkauf.grid48.txt → expected/test-cashregister-sale.grid48.txt} +0 -0
  697. /package/fixtures/{erwartet/testsignatur-verkauf.grid32.txt → expected/test-signature-sale.grid32.txt} +0 -0
  698. /package/fixtures/{erwartet/testsignatur-verkauf.grid48.txt → expected/test-signature-sale.grid48.txt} +0 -0
  699. /package/fixtures/{erwartet → expected}/training.grid32.txt +0 -0
  700. /package/fixtures/{erwartet → expected}/training.grid48.txt +0 -0
  701. /package/fixtures/{erwartet/null-jahr.grid32.txt → expected/zero-annual.grid32.txt} +0 -0
  702. /package/fixtures/{erwartet/null-jahr.grid48.txt → expected/zero-annual.grid48.txt} +0 -0
  703. /package/fixtures/{erwartet/null-schluss.grid32.txt → expected/zero-final.grid32.txt} +0 -0
  704. /package/fixtures/{erwartet/null-schluss.grid48.txt → expected/zero-final.grid48.txt} +0 -0
  705. /package/fixtures/{erwartet/null-pruef.grid32.txt → expected/zero-manual.grid32.txt} +0 -0
  706. /package/fixtures/{erwartet/null-pruef.grid48.txt → expected/zero-manual.grid48.txt} +0 -0
  707. /package/fixtures/{erwartet/null-monat.grid32.txt → expected/zero-monthly.grid32.txt} +0 -0
  708. /package/fixtures/{erwartet/null-monat.grid48.txt → expected/zero-monthly.grid48.txt} +0 -0
  709. /package/fixtures/{erwartet/null-ausfall.grid32.txt → expected/zero-outage-end.grid32.txt} +0 -0
  710. /package/fixtures/{erwartet/null-ausfall.grid48.txt → expected/zero-outage-end.grid48.txt} +0 -0
  711. /package/fixtures/{erwartet/null-start.grid32.txt → expected/zero-start.grid32.txt} +0 -0
  712. /package/fixtures/{erwartet/null-start.grid48.txt → expected/zero-start.grid48.txt} +0 -0
@@ -0,0 +1,883 @@
1
+ /**
2
+ * Was die Kasse selbst sagt — auf dem Bildschirm, in beiden Huellen.
3
+ *
4
+ * Die Browser-Kasse und die Kassen-App sind eine Kasse. Was der Kassier bei
5
+ * einem Fehler liest, steht hier genau einmal; beide Apps beziehen den Satz
6
+ * von hier, und wer ihn aendert, aendert ihn auf beiden Seiten oder gar nicht.
7
+ *
8
+ * Nicht hier: die fachlichen Saetze des Backends („Kopplungs-Code ist
9
+ * abgelaufen.", „PIN falsch, noch 2 Versuche"). Die gehen unveraendert durch.
10
+ *
11
+ * Ein Satz sagt, was los ist, und was zu tun ist. Nie Innereien.
12
+ *
13
+ * Schluessel: `bereich.name`. Ein Schluessel wird nie umgedeutet — wer den
14
+ * Sinn aendert, legt einen neuen an. `only` nennt die Seite, wenn ein Satz nur
15
+ * auf einer Plattform vorkommen kann.
16
+ *
17
+ * Die Schluessel sind seit 1.0 englisch, die Texte bleiben deutsch. Welcher
18
+ * Schluessel frueher wie hiess, steht in `fixtures/renames-1.0.json`,
19
+ * ebenso die Strukturschluessel (`platzhalter` -> `placeholders`, `nur` ->
20
+ * `only`), die Platzhalter und die Arten der Fehlerregeln (Abschnitte
21
+ * `placeholders` und `structure`).
22
+ */
23
+ export type Surface = 'web' | 'app';
24
+ export interface TextEntry {
25
+ readonly text: string;
26
+ /** Erlaubte Platzhalter `{name}`; muessen exakt die im Text sein. */
27
+ readonly placeholders?: readonly string[];
28
+ /** Fehlt es, gilt der Satz fuer beide Seiten. */
29
+ readonly only?: readonly Surface[];
30
+ }
31
+ declare const MELDUNGEN_ROH: {
32
+ readonly 'network.no_connection': {
33
+ readonly text: "Keine Verbindung zum Server. Bitte die Internetverbindung prüfen und erneut versuchen.";
34
+ };
35
+ readonly 'network.timeout': {
36
+ readonly text: "Der Server antwortet nicht. Bitte die Internetverbindung prüfen und erneut versuchen.";
37
+ };
38
+ readonly 'server.unexpected': {
39
+ readonly text: "Der Server hat unerwartet geantwortet (HTTP {status}). Bitte den Support verständigen.";
40
+ readonly placeholders: readonly ["status"];
41
+ };
42
+ readonly 'pairing.code_missing': {
43
+ readonly text: "Bitte den Kopplungs-Code eingeben.";
44
+ };
45
+ readonly 'pairing.failed': {
46
+ readonly text: "Die Kopplung ist fehlgeschlagen. Bitte erneut versuchen.";
47
+ };
48
+ readonly 'pairing.incomplete': {
49
+ readonly text: "Die Kopplung ist unvollständig zurückgekommen. Bitte im Panel einen neuen Code erzeugen und noch einmal versuchen.";
50
+ };
51
+ readonly 'device.browser_storage': {
52
+ readonly text: "Dieses Gerät konnte nicht gespeichert werden – der Browser-Speicher steht nicht zur Verfügung. Bitte den privaten Modus verlassen.";
53
+ readonly only: readonly ["web"];
54
+ };
55
+ readonly 'login.pin_missing': {
56
+ readonly text: "Bitte die PIN eingeben.";
57
+ };
58
+ readonly 'login.failed': {
59
+ readonly text: "Die Anmeldung ist fehlgeschlagen. Bitte erneut versuchen.";
60
+ };
61
+ readonly 'login.not_completed': {
62
+ readonly text: "Die Anmeldung konnte nicht abgeschlossen werden. Bitte erneut versuchen.";
63
+ };
64
+ readonly 'login.completing': {
65
+ readonly text: "Anmeldung wird gerade abgeschlossen – bitte gleich noch einmal drücken.";
66
+ };
67
+ readonly 'session.expired': {
68
+ readonly text: "Die Sitzung ist abgelaufen. Bitte erneut anmelden.";
69
+ };
70
+ readonly 'session.expired_offline': {
71
+ readonly text: "Keine Verbindung zum Server – die Sitzung ist abgelaufen. Bitte erneut anmelden.";
72
+ };
73
+ readonly 'session.none': {
74
+ readonly text: "Keine Sitzung.";
75
+ };
76
+ readonly 'session.logging_out': {
77
+ readonly text: "Kasse meldet in {seconds} s ab – Bildschirm berühren, um weiterzuarbeiten.";
78
+ readonly placeholders: readonly ["seconds"];
79
+ };
80
+ readonly 'logout.press_again': {
81
+ readonly text: "Noch einmal drücken beendet die Schicht an dieser Kasse.";
82
+ };
83
+ readonly 'permissions.not_changeable': {
84
+ readonly text: "Das darfst du nicht ändern – das Recht dafür vergibt der Inhaber im Panel.";
85
+ };
86
+ readonly 'cashregister.load_failed': {
87
+ readonly text: "Die Kasse konnte nicht geladen werden.";
88
+ };
89
+ readonly 'articles.load_failed': {
90
+ readonly text: "Die Artikel konnten nicht geladen werden.";
91
+ };
92
+ readonly 'articles.none_enabled': {
93
+ readonly text: "Keine Artikel an dieser Kasse. Im Panel unter „Kacheln & Gruppen“ freischalten.";
94
+ };
95
+ readonly 'articles.none_found': {
96
+ readonly text: "Keine Artikel gefunden.";
97
+ };
98
+ readonly 'articles.vat_rate_unknown': {
99
+ readonly text: "„{name}“ hat einen Steuersatz, den die Kasse nicht kennt.";
100
+ readonly placeholders: readonly ["name"];
101
+ };
102
+ readonly 'item.amount_missing': {
103
+ readonly text: "Bitte einen Betrag eingeben.";
104
+ };
105
+ readonly 'item.description_missing': {
106
+ readonly text: "Bitte eine Bezeichnung eingeben – sie steht am Beleg.";
107
+ };
108
+ readonly 'discount.percent_invalid': {
109
+ readonly text: "Bitte einen Prozentwert zwischen 0,1 und 100 eingeben.";
110
+ };
111
+ readonly 'checkout.nothing_entered': {
112
+ readonly text: "Noch nichts erfasst – bitte zuerst eine Position aufnehmen.";
113
+ };
114
+ readonly 'checkout.tendered_missing': {
115
+ readonly text: "Erst eintippen, was der Gast gibt – der Rückgeld-Rechner ist an.";
116
+ };
117
+ readonly 'checkout.tendered_too_little': {
118
+ readonly text: "Gegeben ist weniger als der Betrag.";
119
+ };
120
+ readonly 'checkout.locked': {
121
+ readonly text: "Kassieren gesperrt: {reason}";
122
+ readonly placeholders: readonly ["reason"];
123
+ };
124
+ readonly 'tip.over_half': {
125
+ readonly text: "Über 50 % Trinkgeld – wirklich? Steuerfrei ist nur ortsübliches Trinkgeld.";
126
+ };
127
+ readonly 'completion.failed': {
128
+ readonly text: "Der Abschluss ist fehlgeschlagen.";
129
+ };
130
+ readonly 'completion.unknown': {
131
+ readonly text: "Unklar, ob der Beleg entstanden ist – die Antwort kam nicht an. Bitte nicht noch einmal abschließen: der Beleg kann bereits erstellt und signiert sein. Im Panel unter „Belege“ nachsehen; nur wenn er dort fehlt, den Verkauf erneut abschließen.";
132
+ };
133
+ readonly 'completion.zero_receipt_failed': {
134
+ readonly text: "Der Nullbeleg konnte nicht erstellt werden.";
135
+ };
136
+ readonly 'completion.signature_down': {
137
+ readonly text: "Die Signatureinheit hat nicht geantwortet. Der Beleg ist gültig und trägt den Vermerk „Sicherheitseinrichtung ausgefallen“.";
138
+ };
139
+ readonly 'completion.resolve_question': {
140
+ readonly text: "Nur erledigen, wenn der Beleg in der Belegliste steht – sonst bleiben {amount} ohne Beleg. Bitte zuerst unter „Belege“ nachsehen.";
141
+ readonly placeholders: readonly ["amount"];
142
+ };
143
+ readonly 'card_payment.not_possible': {
144
+ readonly text: "Kartenzahlung nicht möglich.";
145
+ };
146
+ readonly 'card_payment.not_completed': {
147
+ readonly text: "Die Kartenzahlung ist nicht zustande gekommen.";
148
+ };
149
+ readonly 'card_payment.not_started': {
150
+ readonly text: "Kartenzahlung nicht gestartet: {reason}";
151
+ readonly placeholders: readonly ["reason"];
152
+ };
153
+ readonly 'card_payment.unknown': {
154
+ readonly text: "Unklar, ob die Kartenzahlung durchgegangen ist – die Verbindung zum Terminal riss ab. Bitte am Terminal-Beleg nachsehen, BEVOR neu kassiert wird: die Karte kann belastet sein.";
155
+ };
156
+ readonly 'card_payment.unknown_with_id': {
157
+ readonly text: "Unklar, ob die Kartenzahlung durchgegangen ist – die Verbindung zum Terminal riss ab. Bitte am Terminal-Beleg nachsehen, BEVOR neu kassiert wird: die Karte kann belastet sein. Kennung der Zahlung: {reference}.";
158
+ readonly placeholders: readonly ["reference"];
159
+ };
160
+ readonly 'card_payment.waiting_for_terminal': {
161
+ readonly text: "Bitte am Terminal fortfahren …";
162
+ };
163
+ readonly 'card_payment.terminal_cancelling': {
164
+ readonly text: "Das Terminal bricht gleich von selbst ab …";
165
+ };
166
+ readonly 'card_payment.card_charged_receipt_open': {
167
+ readonly text: "Die Karte ist bereits mit {amount} belastet (Kennung {reference}) – der Beleg dazu fehlt noch. Bitte jetzt den Beleg erstellen und nicht erneut kassieren.";
168
+ readonly placeholders: readonly ["amount", "reference"];
169
+ };
170
+ readonly 'card_payment.card_charged_cart_changed': {
171
+ readonly text: "Es gibt eine gebuchte Kartenzahlung über {amount} (Kennung {reference}), aber der Korb hat sich seither geändert. Bitte zuerst entscheiden: den Beleg zur gebuchten Zahlung erstellen oder die Zahlung am Terminal stornieren und hier verwerfen.";
172
+ readonly placeholders: readonly ["amount", "reference"];
173
+ };
174
+ readonly 'card_payment.connect_not_connected': {
175
+ readonly text: "Kartenzahlung nicht möglich: Kasseneck Connect ist nicht verbunden – Einstellungen → Kasseneck Connect.";
176
+ readonly only: readonly ["web"];
177
+ };
178
+ readonly 'card_payment.cart_locked_card_charged': {
179
+ readonly text: "Die Karte ist bereits belastet – Warenkorb, Rabatt und Trinkgeld bleiben gesperrt, bis der Beleg entsteht oder die Karte zurückerstattet ist.";
180
+ };
181
+ readonly 'card_payment.unpair_card_charged': {
182
+ readonly text: "Auf diesem Gerät liegt noch eine gebuchte Kartenzahlung ohne Beleg – sie muss von Hand am Terminal zurückerstattet werden (Betrag siehe unten).";
183
+ };
184
+ readonly 'terminal.none_found': {
185
+ readonly text: "Kein Hobex-Terminal gefunden – ist es eingeschaltet und im selben Netz wie dieser Rechner?";
186
+ readonly only: readonly ["web"];
187
+ };
188
+ readonly 'terminal.not_ready': {
189
+ readonly text: "Terminal antwortet, ist aber nicht betriebsbereit: {response} – TID prüfen.";
190
+ readonly placeholders: readonly ["response"];
191
+ readonly only: readonly ["web"];
192
+ };
193
+ readonly 'gptom.app_missing': {
194
+ readonly text: "Die GP-Tom-App ist auf diesem Gerät nicht da.";
195
+ readonly only: readonly ["app"];
196
+ };
197
+ readonly 'gptom.search_failed': {
198
+ readonly text: "GP Tom: Suche nach der App fehlgeschlagen: {reason}";
199
+ readonly placeholders: readonly ["reason"];
200
+ readonly only: readonly ["app"];
201
+ };
202
+ readonly 'gptom.payment_failed': {
203
+ readonly text: "GP Tom: Zahlung fehlgeschlagen: {reason}";
204
+ readonly placeholders: readonly ["reason"];
205
+ readonly only: readonly ["app"];
206
+ };
207
+ readonly 'gptom.terminal_not_responding': {
208
+ readonly text: "Das Terminal hat nicht geantwortet: {reason}";
209
+ readonly placeholders: readonly ["reason"];
210
+ readonly only: readonly ["app"];
211
+ };
212
+ readonly 'gptom.payment_not_completed': {
213
+ readonly text: "Die Zahlung wurde nicht abgeschlossen ({code}).";
214
+ readonly placeholders: readonly ["code"];
215
+ readonly only: readonly ["app"];
216
+ };
217
+ readonly 'gptom.declined': {
218
+ readonly text: "Das Terminal hat die Zahlung abgelehnt.";
219
+ readonly only: readonly ["app"];
220
+ };
221
+ readonly 'gptom.declined_with_code': {
222
+ readonly text: "Das Terminal hat die Zahlung abgelehnt ({code}).";
223
+ readonly placeholders: readonly ["code"];
224
+ readonly only: readonly ["app"];
225
+ };
226
+ readonly 'gptom.not_opened': {
227
+ readonly text: "GP Tom ließ sich nicht öffnen – bitte die GP-Tom-App prüfen und erneut versuchen.";
228
+ readonly only: readonly ["app"];
229
+ };
230
+ readonly 'gptom.timeout': {
231
+ readonly text: "Das Terminal hat in der Frist nicht geantwortet – die Karte kann belastet sein. Bitte am Terminal-Beleg nachsehen, BEVOR neu kassiert wird.";
232
+ readonly only: readonly ["app"];
233
+ };
234
+ readonly 'gptom.timeout_with_id': {
235
+ readonly text: "Das Terminal hat in der Frist nicht geantwortet – die Karte kann belastet sein. Bitte am Terminal-Beleg nachsehen, BEVOR neu kassiert wird. Kennung der Zahlung: {reference}.";
236
+ readonly placeholders: readonly ["reference"];
237
+ readonly only: readonly ["app"];
238
+ };
239
+ readonly 'log.empty': {
240
+ readonly text: "Noch keine Einträge – das Protokoll füllt sich mit der ersten Kartenzahlung.";
241
+ };
242
+ readonly 'log.copied': {
243
+ readonly text: "Das Protokoll liegt in der Zwischenablage.";
244
+ };
245
+ readonly 'receipts.load_failed': {
246
+ readonly text: "Die Belege konnten nicht geladen werden.";
247
+ };
248
+ readonly 'receipts.none_in_period': {
249
+ readonly text: "Keine Belege in diesem Zeitraum.";
250
+ };
251
+ readonly 'receipt.load_failed': {
252
+ readonly text: "Der Beleg konnte nicht geladen werden.";
253
+ };
254
+ readonly 'receipt.not_found': {
255
+ readonly text: "Der Beleg wurde nicht gefunden.";
256
+ };
257
+ readonly 'cancellation.failed': {
258
+ readonly text: "Das Storno ist fehlgeschlagen.";
259
+ };
260
+ readonly 'cancellation.reason_missing': {
261
+ readonly text: "Bitte einen Grund wählen.";
262
+ };
263
+ readonly 'cancellation.item_missing': {
264
+ readonly text: "Bitte mindestens eine Position wählen.";
265
+ };
266
+ readonly 'cancellation.payments_missing': {
267
+ readonly text: "Dieser Beleg wurde in mehreren Zahlungen bezahlt – bitte angeben, wie zurückgegeben wird.";
268
+ };
269
+ readonly 'cancellation.refund_too_high': {
270
+ readonly text: "Eine Rückgabe ist höher als der Rest ihrer Zahlung – bitte die Beträge prüfen.";
271
+ };
272
+ readonly 'cancellation.refund_without_reference': {
273
+ readonly text: "Eine Rückgabe nennt keine Zahlung des Belegs – bitte das Storno neu beginnen.";
274
+ };
275
+ readonly 'cancellation.refund_reference_unknown': {
276
+ readonly text: "Eine Rückgabe nennt eine Zahlung, die es am Beleg nicht gibt – bitte das Storno neu beginnen.";
277
+ };
278
+ readonly 'cancellation.outcome_unknown': {
279
+ readonly text: "Unklar, ob das Storno entstanden ist – es kann bereits signiert sein. Bitte nicht erneut stornieren, sondern die Belegliste in ein paar Minuten neu laden.";
280
+ };
281
+ readonly 'cancellation.sum_mismatch': {
282
+ readonly text: "Die Rückgaben ergeben nicht den Betrag des Stornos – bitte die Beträge prüfen.";
283
+ };
284
+ readonly 'cancellation.refund_cards': {
285
+ readonly text: "Das Storno ist gebucht – bitte jede Karte unten am Terminal gutschreiben und abhaken.";
286
+ };
287
+ readonly 'cancellation.outcome_unknown_cards': {
288
+ readonly text: "Unklar, ob das Storno entstanden ist – es kann bereits signiert sein. Bitte nicht erneut stornieren und noch keine Karte gutschreiben, sondern die Belegliste in ein paar Minuten neu laden. Steht das Storno dort, die Karten laut Storno-Beleg am Terminal gutschreiben.";
289
+ };
290
+ readonly 'cancellation.cards_not_checked': {
291
+ readonly text: "Noch ist nicht jede Karte abgehakt – bitte jede am Terminal gutschreiben. Ist das schon geschehen, zum Schließen noch einmal drücken.";
292
+ };
293
+ readonly 'split.setting_hint': {
294
+ readonly text: "Ein Tisch zahlt in Teilen: jede Zahlung bar oder mit Karte, mit eigenem Trinkgeld – am Ende ein Beleg für alles.";
295
+ };
296
+ readonly 'split.amount_over_open': {
297
+ readonly text: "Der Betrag ist höher als offen – höchstens {amount}.";
298
+ readonly placeholders: readonly ["amount"];
299
+ };
300
+ readonly 'split.tip_over_amount': {
301
+ readonly text: "Das Trinkgeld ist höher als der Betrag dieser Zahlung.";
302
+ };
303
+ readonly 'split.tendered_too_little': {
304
+ readonly text: "Gegeben ist weniger als der Betrag dieser Zahlung.";
305
+ };
306
+ readonly 'split.still_open': {
307
+ readonly text: "Es sind noch {amount} offen – abschließen geht erst, wenn alles kassiert ist.";
308
+ readonly placeholders: readonly ["amount"];
309
+ };
310
+ readonly 'split.sum_mismatch': {
311
+ readonly text: "Die Zahlungen ergeben nicht den Betrag des Belegs – bitte die Liste prüfen.";
312
+ };
313
+ readonly 'split.cart_locked': {
314
+ readonly text: "Der Warenkorb ist gesperrt, solange Zahlungen kassiert sind – erst abschließen oder die Zahlungen entfernen.";
315
+ };
316
+ readonly 'split.switch_locked': {
317
+ readonly text: "Zurück zu Bar oder Karte geht erst, wenn keine Zahlung mehr kassiert ist.";
318
+ };
319
+ readonly 'split.return_cash': {
320
+ readonly text: "Bitte {amount} Bargeld an den Gast zurückgeben.";
321
+ readonly placeholders: readonly ["amount"];
322
+ };
323
+ readonly 'split.card_reverse_running': {
324
+ readonly text: "Die Kartenzahlung über {amount} wird am Terminal zurückgebucht …";
325
+ readonly placeholders: readonly ["amount"];
326
+ };
327
+ readonly 'split.card_reversed': {
328
+ readonly text: "Die Kartenzahlung über {amount} ist am Terminal zurückgebucht.";
329
+ readonly placeholders: readonly ["amount"];
330
+ };
331
+ readonly 'split.card_reverse_failed': {
332
+ readonly text: "Die Kartenzahlung über {amount} (Kennung {reference}) ließ sich nicht zurückbuchen – sie bleibt in der Liste. Bitte am Terminal-Beleg nachsehen und erneut versuchen.";
333
+ readonly placeholders: readonly ["amount", "reference"];
334
+ };
335
+ readonly 'split.card_reverse_unknown': {
336
+ readonly text: "Unklar, ob die Rückbuchung über {amount} (Kennung {reference}) durchgegangen ist – die Zahlung bleibt in der Liste. Bitte am Terminal-Beleg nachsehen, BEVOR erneut zurückgebucht wird.";
337
+ readonly placeholders: readonly ["amount", "reference"];
338
+ };
339
+ readonly 'split.card_already_reversed': {
340
+ readonly text: "Das Terminal meldet, dass die Kartenzahlung über {amount} bereits gutgeschrieben wurde (Kennung {reference}) – bitte am Terminal-Beleg prüfen und nicht erneut zurückbuchen.";
341
+ readonly placeholders: readonly ["amount", "reference"];
342
+ };
343
+ readonly 'split.external_reverse': {
344
+ readonly text: "Diese Karte ist nicht an die Kasse angebunden. Bitte {amount} jetzt am Terminal zurückbuchen und danach bestätigen.";
345
+ readonly placeholders: readonly ["amount"];
346
+ };
347
+ readonly 'split.session_open': {
348
+ readonly text: "Eine getrennte Zahlung ist nicht abgeschlossen, {amount} sind schon kassiert. Bitte weiter kassieren oder alles zurückbuchen.";
349
+ readonly placeholders: readonly ["amount"];
350
+ };
351
+ readonly 'split.session_unreadable': {
352
+ readonly text: "Eine gespeicherte getrennte Zahlung auf diesem Gerät ließ sich nicht lesen – bitte prüfen, ob schon Karten belastet wurden (Kasseneck-Panel oder Terminal), und offene Beträge von Hand ausgleichen.";
353
+ };
354
+ readonly 'split.storage_failed': {
355
+ readonly text: "Die getrennte Zahlung ließ sich auf diesem Gerät nicht speichern – bitte die Kasse bis zum Abschluss dieses Belegs nicht neu laden, sonst stehen belastete Karten womöglich nicht mehr in der Liste.";
356
+ };
357
+ readonly 'split.too_many_payments': {
358
+ readonly text: "Ein Beleg lässt höchstens 20 Zahlungen zu.";
359
+ };
360
+ readonly 'split.unpair_open_cards': {
361
+ readonly text: "Auf diesem Gerät ist noch eine getrennte Zahlung mit belasteten Karten offen – sie müssen von Hand am Terminal zurückgebucht werden (Beträge siehe unten).";
362
+ };
363
+ readonly 'split.items_locked': {
364
+ readonly text: "Nach Positionen geht nicht mehr – eine Zahlung ist schon als Betrag kassiert.";
365
+ };
366
+ readonly 'split.select_items': {
367
+ readonly text: "Bitte zuerst antippen, was dieser Gast zahlt.";
368
+ };
369
+ readonly 'split.tendered_missing': {
370
+ readonly text: "Erst eintippen, was der Gast für diese Zahlung gibt – der Rückgeld-Rechner ist an.";
371
+ };
372
+ readonly 'receipt.link_copied': {
373
+ readonly text: "Der Link zum Beleg liegt in der Zwischenablage.";
374
+ };
375
+ readonly 'receipt.share_text': {
376
+ readonly text: "Beleg {number} von {business} über {amount}: {link}";
377
+ readonly placeholders: readonly ["business", "number", "amount", "link"];
378
+ };
379
+ readonly 'receipt.not_shareable': {
380
+ readonly text: "Für diesen Beleg gibt es keinen Link – er stammt aus einer älteren Kasse.";
381
+ };
382
+ readonly 'receipt.test_hint_share': {
383
+ readonly text: "Test-Umgebung – der Beleg ist steuerlich nicht gültig.";
384
+ };
385
+ readonly 'receipt.mail_sent': {
386
+ readonly text: "Der Beleg wurde an {recipient} gesendet.";
387
+ readonly placeholders: readonly ["recipient"];
388
+ };
389
+ readonly 'receipt.mail_address_invalid': {
390
+ readonly text: "Diese E-Mail-Adresse ist nicht gültig.";
391
+ };
392
+ readonly 'receipt.mail_too_often': {
393
+ readonly text: "Dieser Beleg wurde schon oft gesendet – bitte später noch einmal.";
394
+ };
395
+ readonly 'receipt.mail_failed': {
396
+ readonly text: "Der Beleg konnte nicht gesendet werden. Bitte noch einmal versuchen.";
397
+ };
398
+ readonly 'receipt.mail_not_found': {
399
+ readonly text: "Dieser Beleg wurde nicht gefunden – er konnte nicht gesendet werden.";
400
+ };
401
+ readonly 'print.failed': {
402
+ readonly text: "Der Ausdruck ist fehlgeschlagen.";
403
+ };
404
+ readonly 'print.not_possible': {
405
+ readonly text: "Druck nicht möglich: {reason}";
406
+ readonly placeholders: readonly ["reason"];
407
+ };
408
+ readonly 'print.test_print_failed': {
409
+ readonly text: "Der Testdruck ist fehlgeschlagen.";
410
+ };
411
+ readonly 'print.test_print_not_possible': {
412
+ readonly text: "Der Testdruck ist fehlgeschlagen: {reason}";
413
+ readonly placeholders: readonly ["reason"];
414
+ };
415
+ readonly 'print.no_printer': {
416
+ readonly text: "Kein Bondrucker eingerichtet – in den Einstellungen unter Drucker & Lade.";
417
+ };
418
+ readonly 'print.printer_unreachable': {
419
+ readonly text: "Drucker nicht erreichbar.";
420
+ };
421
+ readonly 'print.job_expired': {
422
+ readonly text: "Drucker hat den Beleg nicht abgeholt (abgelaufen).";
423
+ readonly only: readonly ["web"];
424
+ };
425
+ readonly 'print.no_printer_found': {
426
+ readonly text: "Kein Drucker gefunden – ist er eingeschaltet und im selben Netz wie dieser Rechner?";
427
+ readonly only: readonly ["web"];
428
+ };
429
+ readonly 'print.chrome_only': {
430
+ readonly text: "{channel}-Druck geht nur in Chrome oder Edge (Windows, Mac, Android) – nicht in Safari und nicht am iPad.";
431
+ readonly placeholders: readonly ["channel"];
432
+ readonly only: readonly ["web"];
433
+ };
434
+ readonly 'print.no_printer_for_channel': {
435
+ readonly text: "Kein {channel}-Drucker verbunden – „{channel}-Drucker verbinden“ und den Drucker im Dialog wählen.";
436
+ readonly placeholders: readonly ["channel"];
437
+ readonly only: readonly ["web"];
438
+ };
439
+ readonly 'print.wizard_connect': {
440
+ readonly text: "Verbinde mit {name} …";
441
+ readonly placeholders: readonly ["name"];
442
+ };
443
+ readonly 'print.wizard_test_print_question': {
444
+ readonly text: "Ist der Testdruck gekommen?";
445
+ };
446
+ readonly 'print.wizard_qr_question': {
447
+ readonly text: "Welcher QR-Code ist sauber gedruckt?";
448
+ };
449
+ readonly 'print.wizard_qr_none_hint': {
450
+ readonly text: "Kein QR-Code kam sauber – der Beleg zeigt den QR-Code dann am Bildschirm.";
451
+ };
452
+ readonly 'print.wizard_nothing_arrived': {
453
+ readonly text: "Nichts gekommen? Drucker an, Papier drin, richtiges Gerät gewählt?";
454
+ };
455
+ readonly 'print.wizard_saved': {
456
+ readonly text: "{name} ist eingerichtet.";
457
+ readonly placeholders: readonly ["name"];
458
+ };
459
+ readonly 'print.wizard_cancelled': {
460
+ readonly text: "Nichts gespeichert.";
461
+ };
462
+ readonly 'bluetooth.off': {
463
+ readonly text: "Bluetooth ist ausgeschaltet. Bitte einschalten und erneut suchen.";
464
+ readonly only: readonly ["app"];
465
+ };
466
+ readonly 'bluetooth.permission_missing': {
467
+ readonly text: "Bitte die Freigabe in den Geräte-Einstellungen erteilen.";
468
+ readonly only: readonly ["app"];
469
+ };
470
+ readonly 'bluetooth.search_failed': {
471
+ readonly text: "Die Suche ist fehlgeschlagen: {reason}";
472
+ readonly placeholders: readonly ["reason"];
473
+ readonly only: readonly ["app"];
474
+ };
475
+ readonly 'connect.not_responding': {
476
+ readonly text: "Kasseneck Connect antwortet nicht – läuft das Programm auf diesem Rechner?";
477
+ readonly only: readonly ["web"];
478
+ };
479
+ readonly 'connect.code_expired': {
480
+ readonly text: "Der Kopplungs-Code ist abgelaufen – im Agent einen neuen erzeugen („kasseneck-connect pair“).";
481
+ readonly only: readonly ["web"];
482
+ };
483
+ readonly 'connect.too_many_attempts': {
484
+ readonly text: "Zu viele Fehlversuche – eine Minute warten und noch einmal versuchen.";
485
+ readonly only: readonly ["web"];
486
+ };
487
+ readonly 'connect.printer_not_responding': {
488
+ readonly text: "Der Drucker antwortet nicht – Strom, Netzwerk und IP prüfen.";
489
+ readonly only: readonly ["web"];
490
+ };
491
+ readonly 'connect.not_paired': {
492
+ readonly text: "Diese Kasse ist mit Kasseneck Connect nicht gekoppelt – in den Einstellungen „Koppeln“ drücken.";
493
+ readonly only: readonly ["web"];
494
+ };
495
+ readonly 'connect.printer_unknown': {
496
+ readonly text: "Diesen Drucker kennt Kasseneck Connect nicht (mehr) – bitte neu suchen.";
497
+ readonly only: readonly ["web"];
498
+ };
499
+ readonly 'connect.origin_not_allowed': {
500
+ readonly text: "Kasseneck Connect nimmt von dieser Adresse nichts an (Ursprung nicht freigegeben).";
501
+ readonly only: readonly ["web"];
502
+ };
503
+ readonly 'connect.not_installed': {
504
+ readonly text: "Kasseneck Connect nicht gefunden – bitte installieren.";
505
+ readonly only: readonly ["web"];
506
+ };
507
+ readonly 'connect.unpair_question': {
508
+ readonly text: "Diesen Browser wirklich von Connect trennen? Der Bondruck geht dann nicht mehr.";
509
+ readonly only: readonly ["web"];
510
+ };
511
+ readonly 'settings.load_failed': {
512
+ readonly text: "Die Einstellungen konnten nicht geladen werden.";
513
+ };
514
+ readonly 'settings.save_failed': {
515
+ readonly text: "Die Einstellung konnte nicht gespeichert werden.";
516
+ };
517
+ readonly 'settings.not_loaded_yet': {
518
+ readonly text: "Noch nicht geladen – bitte kurz warten oder neu anmelden.";
519
+ };
520
+ readonly 'settings.ip_invalid': {
521
+ readonly text: "Keine gültige IP-Adresse (z. B. 192.168.1.50).";
522
+ };
523
+ readonly 'unpairing.failed': {
524
+ readonly text: "Entkoppeln fehlgeschlagen.";
525
+ };
526
+ readonly 'logo.upload_failed': {
527
+ readonly text: "Hochladen fehlgeschlagen.";
528
+ };
529
+ readonly 'logo.remove_failed': {
530
+ readonly text: "Entfernen fehlgeschlagen.";
531
+ };
532
+ readonly 'app.not_in_browser': {
533
+ readonly text: "Die Kassen-App läuft nicht im Browser – dafür gibt es kasse.kasseneck.at.";
534
+ readonly only: readonly ["app"];
535
+ };
536
+ readonly 'app.open_in_browser': {
537
+ readonly text: "Bitte im Browser öffnen: {target}";
538
+ readonly placeholders: readonly ["target"];
539
+ readonly only: readonly ["app"];
540
+ };
541
+ };
542
+ export type MessageKey = keyof typeof MELDUNGEN_ROH;
543
+ export declare const MESSAGES: Record<MessageKey, TextEntry>;
544
+ /**
545
+ * In welcher Reihenfolge ein Fehler eingeordnet wird, auf beiden Seiten
546
+ * dieselbe. Jede Regel nennt ihre Art (`kind`) und entweder ein Verhalten
547
+ * (`behavior`) oder den Schluessel des Satzes (`key`). Die Arten:
548
+ * api - HTTP 200, `status:'error'`: der Satz des Backends, woertlich
549
+ * (`server_text`)
550
+ * plain_text - schon fuer den Bildschirm geschrieben: sein eigener Text
551
+ * (`own_text`)
552
+ * timeout - die Frist lief ab, die Anfrage war draussen
553
+ * network - keine Verbindung zustande gekommen oder abgerissen
554
+ * unexpected - der Server hat geantwortet, aber nicht wie zugesagt
555
+ * (HTML statt JSON, 500, fehlende Huelle); `status` = HTTP-Code
556
+ * other - alles Uebrige ist technisch: der Ersatzsatz des Vorgangs
557
+ * (`fallback`)
558
+ * Unter 0.x hiessen sie `klartext`, `zeitablauf`, `netz`, `unerwartet`,
559
+ * `sonst` (Tabelle in `fixtures/renames-1.0.json`).
560
+ */
561
+ export declare const ERROR_RULES: readonly [{
562
+ readonly kind: "api";
563
+ readonly behavior: "server_text";
564
+ }, {
565
+ readonly kind: "plain_text";
566
+ readonly behavior: "own_text";
567
+ }, {
568
+ readonly kind: "timeout";
569
+ readonly key: "network.timeout";
570
+ }, {
571
+ readonly kind: "network";
572
+ readonly key: "network.no_connection";
573
+ }, {
574
+ readonly kind: "unexpected";
575
+ readonly key: "server.unexpected";
576
+ }, {
577
+ readonly kind: "other";
578
+ readonly behavior: "fallback";
579
+ }];
580
+ export type ErrorKind = (typeof ERROR_RULES)[number]['kind'];
581
+ /**
582
+ * Beleg per E-Mail senden: welcher `code` des Backends welchen Satz bekommt.
583
+ *
584
+ * `ERROR_RULES` bleibt davon unberuehrt – das hier ist keine neue Art, einen
585
+ * Transportfehler einzuordnen, sondern die Verfeinerung EINES Aufrufs
586
+ * (`sendReceiptEmail`). Die vier Ausgaenge sind fuer den Kassier vier
587
+ * verschiedene Handlungen: Adresse verbessern, spaeter noch einmal, noch
588
+ * einmal senden, Beleg suchen. Beide Kassen entscheiden am `code`, nicht am
589
+ * Satz des Backends — sonst haengt das Wort am Tresen an einer Formulierung,
590
+ * die sich im Backend jederzeit aendern darf.
591
+ *
592
+ * Bewusst ein Objekt und keine Liste in GROSSSCHRIFT: der
593
+ * Oberflaechen-Vertrag (`fixtures/surface.json`) liest jede exportierte
594
+ * Liste als Enum der Kasseneinstellungen ein, und der Dart-Zwilling schickt
595
+ * deren Werte durch `KasseSettings.aus`. Fehlercodes haben dort nichts
596
+ * verloren; sie stehen in `fixtures/pos-texts.json`.
597
+ *
598
+ * Die Codes sind die von `/v3` (`RECEIPT_EMAIL_SEND_ERROR_CODES`; Anmelde- und Rand-Codes fallen auf den Ersatzsatz); unter `/v1` hiessen
599
+ * sie `adresse_ungueltig`, `zu_oft`, `versand_fehlgeschlagen`, `beleg_nicht_gefunden`.
600
+ */
601
+ export declare const RECEIPT_EMAIL_ERROR_MESSAGES: {
602
+ readonly invalid_address: "receipt.mail_address_invalid";
603
+ readonly too_many_requests: "receipt.mail_too_often";
604
+ readonly send_failed: "receipt.mail_failed";
605
+ readonly receipt_not_found: "receipt.mail_not_found";
606
+ };
607
+ export type ReceiptEmailMessageCode = keyof typeof RECEIPT_EMAIL_ERROR_MESSAGES;
608
+ /**
609
+ * Der Satz zu einem `code` des Backends. Einen Code, den dieses Paket noch
610
+ * nicht kennt, faengt der allgemeine Satz auf: das Senden ist gescheitert und
611
+ * darf wiederholt werden. Ein leerer Schirm waere schlimmer als ein zu
612
+ * allgemeiner Satz.
613
+ */
614
+ export declare function receiptEmailErrorMessage(code: string | undefined | null): MessageKey;
615
+ /**
616
+ * Storno eines Belegs mit mehreren Zahlungen, dazu der offene Ausgang
617
+ * (`cancellation_outcome_unknown`, gilt fuer jedes Storno): welcher `code` des
618
+ * Backends unter `/v3` welchen Satz bekommt. Dieselbe Idee wie RECEIPT_EMAIL_ERROR_MESSAGES – beide Kassen
619
+ * entscheiden am Code, nie am Satz des Backends. Ein Code, der hier fehlt,
620
+ * geht den allgemeinen Weg der Storno-Fehler (`cancellation.failed`).
621
+ */
622
+ export declare const CANCELLATION_PAYMENT_ERROR_MESSAGES: {
623
+ readonly cancellation_payments_required: "cancellation.payments_missing";
624
+ readonly cancellation_refund_exceeds_payment: "cancellation.refund_too_high";
625
+ readonly cancellation_refund_reference_required: "cancellation.refund_without_reference";
626
+ readonly cancellation_refund_reference_unknown: "cancellation.refund_reference_unknown";
627
+ readonly payments_sum_mismatch: "cancellation.sum_mismatch";
628
+ readonly cancellation_outcome_unknown: "cancellation.outcome_unknown";
629
+ };
630
+ export type CancellationPaymentMessageCode = keyof typeof CANCELLATION_PAYMENT_ERROR_MESSAGES;
631
+ /**
632
+ * Der Satz zu einem `code` des Backends beim Storno mit mehreren Zahlungen.
633
+ * Einen Code, den dieses Paket noch nicht kennt, faengt der allgemeine Satz
634
+ * `cancellation.failed` auf – wie bei `receiptEmailErrorMessage`.
635
+ */
636
+ export declare function cancellationPaymentErrorMessage(code: string | undefined | null): MessageKey;
637
+ /**
638
+ * Beschriftungen: Knoepfe, Ueberschriften, Zeilennamen – was kein Satz ist.
639
+ *
640
+ * Getrennt von MESSAGES, weil dort jeder Eintrag ein Satz ist (gross am
641
+ * Anfang, Satzzeichen am Schluss) und die Waechter beider Kassen daran
642
+ * Saetze erkennen. „Rest" oder „÷ {n}" sind keine Saetze, muessen aber in
643
+ * beiden Kassen gleich heissen. Dieselben Regeln sonst: Schluessel
644
+ * `bereich.name`, nie umgedeutet, Platzhalter exakt die im Text, `only` nennt
645
+ * die Seite.
646
+ *
647
+ * Die Woerter der Zahlarten folgen dem Bon („Kartenzahlung", „Barzahlung",
648
+ * „Zahlung {n}", „davon Trinkgeld").
649
+ */
650
+ declare const BESCHRIFTUNGEN_ROH: {
651
+ readonly 'common.cancel': {
652
+ readonly text: "Abbrechen";
653
+ };
654
+ readonly 'message.dismiss': {
655
+ readonly text: "Meldung ausblenden: {message}";
656
+ readonly placeholders: readonly ["message"];
657
+ };
658
+ readonly 'message.dismiss_warning': {
659
+ readonly text: "Verstanden – Warnung ausblenden: {message}";
660
+ readonly placeholders: readonly ["message"];
661
+ };
662
+ readonly 'pairing.pair_again': {
663
+ readonly text: "Neu koppeln";
664
+ };
665
+ readonly 'logout.question': {
666
+ readonly text: "Wirklich abmelden?";
667
+ };
668
+ readonly 'logout.keep_working': {
669
+ readonly text: "Weiter arbeiten";
670
+ };
671
+ readonly 'device.unpair': {
672
+ readonly text: "Gerät entkoppeln";
673
+ };
674
+ readonly 'connect.unpair_confirm': {
675
+ readonly text: "Entkoppeln bestätigen";
676
+ readonly only: readonly ["web"];
677
+ };
678
+ readonly 'checkout.tip': {
679
+ readonly text: "Trinkgeld";
680
+ };
681
+ readonly 'checkout.no_tip': {
682
+ readonly text: "kein";
683
+ };
684
+ readonly 'checkout.custom_amount': {
685
+ readonly text: "Eigener Betrag";
686
+ };
687
+ readonly 'checkout.exact': {
688
+ readonly text: "passend";
689
+ };
690
+ readonly 'checkout.clear_tendered': {
691
+ readonly text: "Gegeben löschen";
692
+ };
693
+ readonly 'checkout.still_missing': {
694
+ readonly text: "Es fehlen noch";
695
+ };
696
+ readonly 'checkout.change': {
697
+ readonly text: "Rückgeld";
698
+ };
699
+ readonly 'card_payment.amount_on_terminal': {
700
+ readonly text: "Betrag steht am Terminal";
701
+ };
702
+ readonly 'card_payment.present_card': {
703
+ readonly text: "Karte vorhalten oder stecken · noch {time}";
704
+ readonly placeholders: readonly ["time"];
705
+ };
706
+ readonly 'completion.receipt_exists': {
707
+ readonly text: "Beleg ist vorhanden – erledigen";
708
+ };
709
+ readonly 'completion.resolve': {
710
+ readonly text: "Erledigen";
711
+ };
712
+ readonly 'split.button': {
713
+ readonly text: "Getrennt";
714
+ };
715
+ readonly 'split.setting': {
716
+ readonly text: "Getrennt zahlen";
717
+ };
718
+ readonly 'split.to_pay': {
719
+ readonly text: "Zu zahlen";
720
+ };
721
+ readonly 'split.open': {
722
+ readonly text: "Offen";
723
+ };
724
+ readonly 'split.payment': {
725
+ readonly text: "Zahlung {n}";
726
+ readonly placeholders: readonly ["n"];
727
+ };
728
+ readonly 'split.amount': {
729
+ readonly text: "Betrag";
730
+ };
731
+ readonly 'split.remaining': {
732
+ readonly text: "Rest";
733
+ };
734
+ readonly 'split.divide': {
735
+ readonly text: "÷ {n}";
736
+ readonly placeholders: readonly ["n"];
737
+ };
738
+ readonly 'split.tip_basis': {
739
+ readonly text: "% von diesem Betrag";
740
+ };
741
+ readonly 'split.of_which_tip': {
742
+ readonly text: "davon Trinkgeld {amount}";
743
+ readonly placeholders: readonly ["amount"];
744
+ };
745
+ readonly 'split.remove': {
746
+ readonly text: "Entfernen";
747
+ };
748
+ readonly 'split.cancel_all': {
749
+ readonly text: "Alles abbrechen";
750
+ };
751
+ readonly 'split.continue_checkout': {
752
+ readonly text: "Weiter kassieren";
753
+ };
754
+ readonly 'split.reverse_all': {
755
+ readonly text: "Alles zurückbuchen";
756
+ };
757
+ readonly 'split.reversed_on_terminal': {
758
+ readonly text: "Am Terminal zurückgebucht";
759
+ };
760
+ readonly 'split.reverse_card': {
761
+ readonly text: "Karte zurückbuchen";
762
+ };
763
+ readonly 'split.pair_again_anyway': {
764
+ readonly text: "Trotzdem neu koppeln";
765
+ };
766
+ readonly 'split.keep_payment': {
767
+ readonly text: "Zahlung behalten";
768
+ };
769
+ readonly 'split.clarify': {
770
+ readonly text: "Klären";
771
+ };
772
+ readonly 'split.reverse_again': {
773
+ readonly text: "Erneut zurückbuchen";
774
+ };
775
+ readonly 'split.was_charged': {
776
+ readonly text: "Wurde belastet – übernehmen";
777
+ };
778
+ readonly 'split.not_charged': {
779
+ readonly text: "Nicht belastet – verwerfen";
780
+ };
781
+ readonly 'split.continue': {
782
+ readonly text: "Weiter · {amount} getrennt";
783
+ readonly placeholders: readonly ["amount"];
784
+ };
785
+ readonly 'split.allocation': {
786
+ readonly text: "Aufteilung";
787
+ };
788
+ readonly 'split.back_to_payment_method': {
789
+ readonly text: "Zurück zur Zahlart";
790
+ };
791
+ readonly 'split.tab_items': {
792
+ readonly text: "Nach Positionen";
793
+ };
794
+ readonly 'split.tab_amount': {
795
+ readonly text: "Betrag";
796
+ };
797
+ readonly 'split.one_less': {
798
+ readonly text: "{name}: ein Stück weniger";
799
+ readonly placeholders: readonly ["name"];
800
+ };
801
+ readonly 'split.one_more': {
802
+ readonly text: "{name}: ein Stück mehr";
803
+ readonly placeholders: readonly ["name"];
804
+ };
805
+ readonly 'split.tendered': {
806
+ readonly text: "Gegeben (bar)";
807
+ };
808
+ readonly 'split.tendered_change': {
809
+ readonly text: "Gegeben {tendered} · Rückgeld {change}";
810
+ readonly placeholders: readonly ["tendered", "change"];
811
+ };
812
+ readonly 'split.payment_method': {
813
+ readonly text: "Zahlart";
814
+ };
815
+ readonly 'split.method_cash': {
816
+ readonly text: "Bar";
817
+ };
818
+ readonly 'split.method_card': {
819
+ readonly text: "Karte";
820
+ };
821
+ readonly 'split.add_payment': {
822
+ readonly text: "Zahlung hinzufügen · {amount}";
823
+ readonly placeholders: readonly ["amount"];
824
+ };
825
+ readonly 'split.open_items': {
826
+ readonly text: "Offene Positionen";
827
+ };
828
+ readonly 'split.pieces_open': {
829
+ readonly text: "{n} offen";
830
+ readonly placeholders: readonly ["n"];
831
+ };
832
+ readonly 'split.pieces_selected': {
833
+ readonly text: "{n} von {open}";
834
+ readonly placeholders: readonly ["n", "open"];
835
+ };
836
+ readonly 'split.nothing_selected': {
837
+ readonly text: "Noch nichts angetippt";
838
+ };
839
+ readonly 'split.all_paid': {
840
+ readonly text: "Alles bezahlt";
841
+ };
842
+ readonly 'payment_method.card': {
843
+ readonly text: "Kartenzahlung";
844
+ };
845
+ readonly 'payment_method.cash': {
846
+ readonly text: "Barzahlung";
847
+ };
848
+ readonly 'payment_method.multiple': {
849
+ readonly text: "Mehrere";
850
+ };
851
+ readonly 'cancellation.title': {
852
+ readonly text: "Storno zu {receipt}";
853
+ readonly placeholders: readonly ["receipt"];
854
+ };
855
+ readonly 'cancellation.how_to_refund': {
856
+ readonly text: "Wie zurückgeben?";
857
+ };
858
+ readonly 'cancellation.as_paid': {
859
+ readonly text: "wie bezahlt";
860
+ };
861
+ readonly 'cancellation.cash': {
862
+ readonly text: "bar";
863
+ };
864
+ readonly 'cancellation.all_cash': {
865
+ readonly text: "Alles bar";
866
+ };
867
+ readonly 'cancellation.payment_remainder': {
868
+ readonly text: "Rest {amount}";
869
+ readonly placeholders: readonly ["amount"];
870
+ };
871
+ readonly 'cancellation.difference': {
872
+ readonly text: "Differenz";
873
+ };
874
+ };
875
+ export type LabelKey = keyof typeof BESCHRIFTUNGEN_ROH;
876
+ export declare const LABELS: Record<LabelKey, TextEntry>;
877
+ /** Die Beschriftung zum Schluessel, Platzhalter ersetzt; fehlt ein Wert, wirft es wie `messageText`. */
878
+ export declare function labelText(key: LabelKey, values?: Record<string, string | number>): string;
879
+ /** Der Satz zum Schluessel, Platzhalter ersetzt. Fehlt ein Wert, wirft es — ein `{status}` am Tresen waere schlimmer. */
880
+ export declare function messageText(key: MessageKey, values?: Record<string, string | number>): string;
881
+ /** Gilt der Satz auf dieser Seite? */
882
+ export declare function messageAppliesTo(key: MessageKey, surface: Surface): boolean;
883
+ export {};