@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,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QUANTITY_RULES = void 0;
4
+ exports.fromArticleGroupPayload = fromArticleGroupPayload;
5
+ exports.quantityRuleForUnit = quantityRuleForUnit;
6
+ exports.quantityDefaults = quantityDefaults;
7
+ exports.allowedQuantity = allowedQuantity;
8
+ exports.fromPosArticlePayload = fromPosArticlePayload;
9
+ exports.listMyArticleGroups = listMyArticleGroups;
10
+ exports.listMyArticles = listMyArticles;
11
+ const errors_js_1 = require("../client/errors.js");
12
+ function fromArticleGroupPayload(p) {
13
+ return {
14
+ id: p.id ?? '',
15
+ name: p.name ?? '',
16
+ color: p.color ?? '#6B7280',
17
+ symbol: p.symbol ?? null,
18
+ sort: typeof p.sort === 'number' ? p.sort : 0,
19
+ vatRate: typeof p.vatRate === 'number' ? p.vatRate : null,
20
+ };
21
+ }
22
+ /**
23
+ * Mengenregel eines Artikels (Draht `quantityRule`): `piece` = ganze Stueck
24
+ * (1, 2, 3 ...), `decimal` = Kommamenge in der Einheit (0,250 kg, 1,5 m).
25
+ * Beleg und DEP bleiben ganzzahlig: eine Kommamenge wird an der Kasse als EINE
26
+ * Position mit ausgerechnetem Betrag gebucht, die Bezeichnung traegt die Menge
27
+ * („Wurst 0,250 kg“). Siehe [quantityRuleForUnit] fuer die Vorgabe je Einheit.
28
+ */
29
+ exports.QUANTITY_RULES = ['piece', 'decimal'];
30
+ /** Einheiten, die nach Menge verkauft werden (Kommazahl, Kasse fragt). */
31
+ const DEZIMAL_EINHEITEN = {
32
+ kg: 3, g: 0, l: 2, ml: 0, m: 2, lfm: 2, km: 1, 'm²': 2, m2: 2, 'm³': 3, m3: 3, std: 2, h: 2, min: 0, t: 3,
33
+ };
34
+ /** Vorgabe je Einheit: was der Betrieb bei einem neuen Artikel bekommt und aendern darf. */
35
+ function quantityRuleForUnit(unit) {
36
+ const u = (unit ?? '').trim().toLowerCase();
37
+ if (u in DEZIMAL_EINHEITEN) {
38
+ const stellen = DEZIMAL_EINHEITEN[u];
39
+ return stellen === 0
40
+ ? { rule: 'piece', ask: true, decimals: 0 } // g, ml, min: ganze Zahl, aber die Menge wird gefragt
41
+ : { rule: 'decimal', ask: true, decimals: stellen };
42
+ }
43
+ return { rule: 'piece', ask: false, decimals: 0 };
44
+ }
45
+ /** Wirksame Regel eines Artikels: gespeicherte Angabe schlaegt die Vorgabe der Einheit. */
46
+ function quantityDefaults(a) {
47
+ const v = quantityRuleForUnit(a.unit);
48
+ return {
49
+ rule: a.quantityRule ?? v.rule,
50
+ ask: a.askQuantity ?? v.ask,
51
+ decimals: (a.quantityRule ?? v.rule) === 'decimal' ? Math.max(1, v.decimals || 2) : 0,
52
+ };
53
+ }
54
+ /** Deckelt eine gewuenschte Menge an der Hoechstmenge des Artikels (null = keine Grenze). */
55
+ function allowedQuantity(a, wanted) {
56
+ return a.maxQuantity != null && a.maxQuantity > 0 ? Math.min(wanted, a.maxQuantity) : wanted;
57
+ }
58
+ function fromPosArticlePayload(p) {
59
+ return {
60
+ id: p.id ?? '',
61
+ name: p.name ?? '',
62
+ unitPriceCents: typeof p.unitPriceCents === 'number' ? p.unitPriceCents : null,
63
+ vatRate: typeof p.vatRate === 'number' ? p.vatRate : null,
64
+ unit: p.unit ?? '',
65
+ groupId: p.groupId ?? null,
66
+ revenueGroupId: typeof p.revenueGroupId === 'string' && p.revenueGroupId ? p.revenueGroupId : null,
67
+ visible: p.tile?.visible !== false,
68
+ sort: typeof p.tile?.sort === 'number' ? p.tile.sort : 0,
69
+ active: p.active !== false,
70
+ quantityRule: p.quantityRule === 'piece' || p.quantityRule === 'decimal' ? p.quantityRule : null,
71
+ askQuantity: typeof p.askQuantity === 'boolean' ? p.askQuantity : null,
72
+ maxQuantity: typeof p.maxQuantity === 'number' && Number.isFinite(p.maxQuantity) && p.maxQuantity > 0 ? p.maxQuantity : null,
73
+ };
74
+ }
75
+ function liste(daten, feld, name, lesen) {
76
+ const roh = daten?.[feld];
77
+ if (!Array.isArray(roh)) {
78
+ throw new errors_js_1.KasseneckValidationError(name, `Antwort enthaelt keine Liste (data.${feld} fehlt)`, 'response');
79
+ }
80
+ return roh.map((e) => lesen(typeof e === 'object' && e !== null ? e : {}));
81
+ }
82
+ async function listMyArticleGroups(transport) {
83
+ const daten = await transport('listMyArticleGroups');
84
+ return liste(daten, 'groups', 'listMyArticleGroups', (e) => fromArticleGroupPayload(e));
85
+ }
86
+ async function listMyArticles(transport) {
87
+ const daten = await transport('listMyArticles');
88
+ return liste(daten, 'articles', 'listMyArticles', (e) => fromPosArticlePayload(e));
89
+ }
@@ -0,0 +1,27 @@
1
+ import type { InternerTransport } from '../client/aufrufe.js';
2
+ import { type PosSettings, type PosBusinessSettings, type PosDeviceSettings } from './settings.js';
3
+ /** Einstellungen lesen: Standard + gespeichert (Backend: `getKasseSettings`). */
4
+ export declare function getPosSettings(transport: InternerTransport, options?: {
5
+ deviceId?: string;
6
+ }): Promise<PosSettings>;
7
+ /** `{business, device}` einer Antwort, gemischt mit den Standardwerten. */
8
+ export declare function posSettingsFromWire(data: {
9
+ business?: unknown;
10
+ device?: unknown;
11
+ } | null | undefined): PosSettings;
12
+ /** Betriebsweite Einstellungen schreiben (Recht `layout`); liefert den gemischten Stand. */
13
+ export declare function setMyPosSettings(transport: InternerTransport, business: Partial<PosBusinessSettings>): Promise<PosBusinessSettings>;
14
+ /** Geraete-Einstellungen schreiben (Recht `layout`); liefert den gemischten Stand. */
15
+ export declare function setMyRegisterDeviceSettings(transport: InternerTransport, deviceId: string, device: Partial<PosDeviceSettings>): Promise<PosDeviceSettings>;
16
+ /** Eingabe von [setMyPosLogo]: ein Bild als Data-URL (PNG, JPEG, SVG) oder das Entfernen. */
17
+ export type SetMyPosLogoOptions = {
18
+ image: string;
19
+ } | {
20
+ remove: true;
21
+ };
22
+ /**
23
+ * Bild-Logo der Kasse hochladen oder entfernen (Recht `layout`). Liefert die
24
+ * neue `logoImage`-Adresse, nach dem Entfernen `''`. Formatfehler meldet der
25
+ * Server als `logo_invalid_type`, `logo_too_large` oder `logo_invalid`.
26
+ */
27
+ export declare function setMyPosLogo(transport: InternerTransport, options: SetMyPosLogoOptions): Promise<string>;
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPosSettings = getPosSettings;
4
+ exports.posSettingsFromWire = posSettingsFromWire;
5
+ exports.setMyPosSettings = setMyPosSettings;
6
+ exports.setMyRegisterDeviceSettings = setMyRegisterDeviceSettings;
7
+ exports.setMyPosLogo = setMyPosLogo;
8
+ const errors_js_1 = require("../client/errors.js");
9
+ const settings_js_1 = require("./settings.js");
10
+ /*
11
+ * Die Einstellungs-Aufrufe am Draht `/api/v3`: Parameter und Antwort heissen
12
+ * `business`/`device`, Schluessel und Werte englisch (Nachtrag §11.7.2).
13
+ *
14
+ * **Nur geaenderte Felder senden** ([posSettingsChanges]), nie den ganzen
15
+ * gemischten Block: der Server mischt tief, ein nicht geaenderter Wert, den
16
+ * dieses Paket nicht kennt (`theme: 'sepia'`), bleibt so am Server stehen.
17
+ * Gelesen wird er unveraendert ([unknownPosSettingValues] nennt ihn).
18
+ *
19
+ * Vor dem Senden prueft dieser Weg nur die gesendeten Felder (ein Feld mit
20
+ * `undefined` geht nicht hinaus und wird nicht geprueft), und nur, was der
21
+ * Server sicher abweist: einen
22
+ * Schluessel, den es nicht gibt (auch einen deutschen aus 0.x wie `stil`),
23
+ * einen Wert ausserhalb der Wertemenge des Feldes (`'nacht'`), eine
24
+ * Steuersatz-Karte ohne einen Satz an und eine unbekannte Tasten-Aktion.
25
+ * Der Fehler nennt den aeusseren Pfad wie das Backend (`business.theme`).
26
+ * Alles Weitere (Bereiche, Chips, Farbformat) entscheidet der Server und
27
+ * meldet es als `validation` mit `data.errors[].field`.
28
+ */
29
+ /** Einstellungen lesen: Standard + gespeichert (Backend: `getKasseSettings`). */
30
+ async function getPosSettings(transport, options = {}) {
31
+ const params = {};
32
+ if (options.deviceId)
33
+ params.deviceId = options.deviceId;
34
+ const daten = await transport('getKasseSettings', params);
35
+ return posSettingsFromWire(daten);
36
+ }
37
+ /** `{business, device}` einer Antwort, gemischt mit den Standardwerten. */
38
+ function posSettingsFromWire(data) {
39
+ return {
40
+ business: (0, settings_js_1.mergePosSettings)(settings_js_1.POS_BUSINESS_DEFAULTS, objekt(data?.business)),
41
+ device: (0, settings_js_1.mergePosSettings)(settings_js_1.POS_DEVICE_DEFAULTS, objekt(data?.device)),
42
+ };
43
+ }
44
+ /** Betriebsweite Einstellungen schreiben (Recht `layout`); liefert den gemischten Stand. */
45
+ async function setMyPosSettings(transport, business) {
46
+ const name = 'setMyKasseSettings';
47
+ pruefeTeil(name, 'business', business, settings_js_1.POS_BUSINESS_DEFAULTS, settings_js_1.POS_BUSINESS_VALUES);
48
+ const saetze = eigenerWert(business, 'vatRates');
49
+ if (saetze !== undefined) {
50
+ const karte = objekt(saetze);
51
+ // Unter /v3 prueft der Server die uebergebene Karte fuer sich: ein
52
+ // einzelner Schalter wie {20: false} waere dort "kein Satz an".
53
+ if (!karte || !Object.values(karte).some((an) => an === true)) {
54
+ throw new errors_js_1.KasseneckValidationError(name, 'business.vatRates: mindestens ein Steuersatz muss an sein (immer die ganze Karte senden)', 'request');
55
+ }
56
+ }
57
+ const daten = await transport(name, { business });
58
+ return (0, settings_js_1.mergePosSettings)(settings_js_1.POS_BUSINESS_DEFAULTS, objekt(daten?.business));
59
+ }
60
+ /** Geraete-Einstellungen schreiben (Recht `layout`); liefert den gemischten Stand. */
61
+ async function setMyRegisterDeviceSettings(transport, deviceId, device) {
62
+ const name = 'setMyRegisterDeviceSettings';
63
+ if (typeof deviceId !== 'string' || deviceId.trim() === '') {
64
+ throw new errors_js_1.KasseneckValidationError(name, 'deviceId fehlt', 'request');
65
+ }
66
+ pruefeTeil(name, 'device', device, settings_js_1.POS_DEVICE_DEFAULTS, settings_js_1.POS_DEVICE_VALUES);
67
+ const tasten = eigenerWert(device, 'shortcuts');
68
+ if (tasten !== undefined) {
69
+ const karte = objekt(tasten);
70
+ if (!karte)
71
+ throw new errors_js_1.KasseneckValidationError(name, 'device.shortcuts: keine Tastenkarte', 'request');
72
+ const aktionen = new Set(settings_js_1.POS_SHORTCUT_ACTIONS);
73
+ for (const aktion of Object.keys(karte)) {
74
+ if (karte[aktion] === undefined)
75
+ continue;
76
+ if (!aktionen.has(aktion)) {
77
+ throw new errors_js_1.KasseneckValidationError(name, `device.shortcuts.${aktion}: unbekannte Aktion`, 'request');
78
+ }
79
+ }
80
+ // Doppelbelegung innerhalb der gesendeten Karte; posSettingsChanges sendet
81
+ // bei jeder Tastenaenderung die ganze Karte, so ist das die ganze Belegung.
82
+ const konflikt = (0, settings_js_1.posShortcutConflict)(karte);
83
+ if (konflikt) {
84
+ throw new errors_js_1.KasseneckValidationError(name, `device.shortcuts.${konflikt.action}: Taste ${konflikt.key} schon belegt (${konflikt.heldBy})`, 'request');
85
+ }
86
+ }
87
+ const daten = await transport(name, { deviceId, device });
88
+ return (0, settings_js_1.mergePosSettings)(settings_js_1.POS_DEVICE_DEFAULTS, objekt(daten?.device));
89
+ }
90
+ /**
91
+ * Bild-Logo der Kasse hochladen oder entfernen (Recht `layout`). Liefert die
92
+ * neue `logoImage`-Adresse, nach dem Entfernen `''`. Formatfehler meldet der
93
+ * Server als `logo_invalid_type`, `logo_too_large` oder `logo_invalid`.
94
+ */
95
+ async function setMyPosLogo(transport, options) {
96
+ const name = 'setMyKasseLogo';
97
+ const params = {};
98
+ if ('remove' in options && options.remove === true) {
99
+ params.remove = true;
100
+ }
101
+ else if ('image' in options && typeof options.image === 'string' && options.image !== '') {
102
+ params.image = options.image;
103
+ }
104
+ else {
105
+ throw new errors_js_1.KasseneckValidationError(name, 'image fehlt (oder remove: true)', 'request');
106
+ }
107
+ const daten = await transport(name, params);
108
+ const bild = daten?.logoImage;
109
+ if (typeof bild !== 'string') {
110
+ throw new errors_js_1.KasseneckValidationError(name, 'Antwort enthaelt kein Feld "logoImage"', 'response');
111
+ }
112
+ return bild;
113
+ }
114
+ /** Eigene Eigenschaft oder `undefined`, nie eine geerbte (`constructor`, `toString`). */
115
+ function eigenerWert(block, k) {
116
+ return Object.prototype.hasOwnProperty.call(block, k) ? block[k] : undefined;
117
+ }
118
+ function objekt(wert) {
119
+ return wert !== null && typeof wert === 'object' && !Array.isArray(wert) ? wert : null;
120
+ }
121
+ function pruefeTeil(name, teil, block, standard, werte) {
122
+ const karte = objekt(block);
123
+ // Ein Feld mit `undefined` sendet JSON gar nicht: es zaehlt weder als
124
+ // Einstellung noch wird es geprueft.
125
+ const gesendet = karte ? Object.entries(karte).filter(([, wert]) => wert !== undefined) : [];
126
+ if (gesendet.length === 0) {
127
+ throw new errors_js_1.KasseneckValidationError(name, `${teil}: keine Einstellungen uebergeben`, 'request');
128
+ }
129
+ for (const [schluessel, wert] of gesendet) {
130
+ if (!Object.prototype.hasOwnProperty.call(standard, schluessel)) {
131
+ throw new errors_js_1.KasseneckValidationError(name, `${teil}.${schluessel}: unbekanntes Feld`, 'request');
132
+ }
133
+ const erlaubt = Object.prototype.hasOwnProperty.call(werte, schluessel) ? werte[schluessel] : undefined;
134
+ if (erlaubt && !erlaubt.includes(wert)) {
135
+ // Kein Altwert: dann ein Wert, den der Server kennt und dieses Paket
136
+ // nicht. Er kam beim Lesen herein; wer den ganzen Block zurueckschickt,
137
+ // braucht den Hinweis auf den richtigen Weg.
138
+ const hinweis = (0, settings_js_1._istAltwert0x)(schluessel, wert)
139
+ ? 'ungueltiger Wert (innere Form 0.x)'
140
+ : 'ungueltiger Wert (vom Server unbekannt? nur geaenderte Felder senden: posSettingsChanges)';
141
+ throw new errors_js_1.KasseneckValidationError(name, `${teil}.${schluessel}: ${hinweis}`, 'request');
142
+ }
143
+ }
144
+ }
@@ -0,0 +1,86 @@
1
+ import type { InternerTransport } from '../client/aufrufe.js';
2
+ import type { ReceiptLayout } from '../receipt/layout.js';
3
+ import type { PrintLogo } from '../receipt/layout-escpos.js';
4
+ /**
5
+ * Netzwerk-Bondrucker ueber Epson "Server Direct Print": das Backend fuehrt
6
+ * je Konto Drucker mit einer geheimen Abhol-URL; die Kasse legt Druckjobs
7
+ * aus einem Zeilenmodell an, der Drucker holt sie selbst ab (alle paar
8
+ * Sekunden) und meldet das Ergebnis. So druckt jeder Browser -- ohne lokale
9
+ * Software. Das ePOS-XML baut das Backend aus dem Zeichenraster (ein Setzweg).
10
+ */
11
+ export interface NetworkPrinter {
12
+ id: string;
13
+ name: string;
14
+ /** Art des Druckers; heute nur `epson-sdp`. */
15
+ kind: string;
16
+ paperSize: 'mm58' | 'mm80';
17
+ active: boolean;
18
+ createdAt: number | null;
19
+ /** Letzter Abruf des Druckers (ms); null = noch nie verbunden. */
20
+ lastSeenAt: number | null;
21
+ lastResult: {
22
+ success: boolean;
23
+ code: string | null;
24
+ at: number;
25
+ } | null;
26
+ /** Kennung, die der Drucker selbst schickt (Feld ID im Drucker-Menue). */
27
+ printerSerial: string | null;
28
+ /** Abhol-URL fuer das Drucker-Menue, nur fuer den Chef bzw. das Konto. */
29
+ sdpUrl?: string;
30
+ }
31
+ /** Stand eines Druckjobs (Katalog `DRUCKJOB`). */
32
+ export declare const PRINT_JOB_STATUSES: readonly ["pending", "sent", "printed", "failed", "expired"];
33
+ /**
34
+ * Stand eines Druckjobs; `'unknown'` = der Server nannte einen Stand, den dieses
35
+ * Paket nicht kennt (oder keinen). Er gilt als Ende der Abfrage (siehe
36
+ * [isPrintJobFinished]): nie als gedruckt, aber auch kein Abfragen bis zum
37
+ * Zeitlimit.
38
+ */
39
+ export type PrintJobStatus = typeof PRINT_JOB_STATUSES[number] | 'unknown';
40
+ /** Endet die Abfrage bei diesem Stand? `printed`, `failed`, `expired` und `unknown`. */
41
+ export declare function isPrintJobFinished(status: PrintJobStatus): boolean;
42
+ /**
43
+ * Bekannte Werte fuer `source` (Katalog `DRUCK_QUELLE`): die Kasse oder das
44
+ * Panel. Der Server nimmt Freitext bis 40 Zeichen an und uebersetzt nur diese
45
+ * beiden.
46
+ */
47
+ export declare const PRINT_JOB_SOURCES: readonly ["pos", "panel"];
48
+ export type PrintJobSource = typeof PRINT_JOB_SOURCES[number] | (string & {});
49
+ export interface PrintJob {
50
+ jobId: string;
51
+ status: PrintJobStatus;
52
+ createdAt?: number | null;
53
+ sentAt?: number | null;
54
+ result: {
55
+ success: boolean;
56
+ code: string | null;
57
+ status?: string | null;
58
+ at?: number;
59
+ } | null;
60
+ }
61
+ export declare function listMyPrinters(transport: InternerTransport): Promise<NetworkPrinter[]>;
62
+ export interface CreatePrintJobOptions {
63
+ printerId: string;
64
+ layout: ReceiptLayout;
65
+ receiptId?: string;
66
+ title?: string;
67
+ source?: PrintJobSource;
68
+ /** Firmenlogo als fertiges Rasterbild (`rasterizeLogo`); der Server dekodiert keine Bilder. */
69
+ logo?: PrintLogo | null;
70
+ /**
71
+ * Das Kasseneck-Logo am Ende (Konto-Flag `kreiseck_logo`). Heisst wie bei
72
+ * den Druckwegen (`escPosLayoutBytes`, `eposPrintXml`, `receiptSheet`), damit
73
+ * dieselben Optionen ueberall wirken; am Draht heisst der Wert `brand`.
74
+ */
75
+ brandMark?: boolean;
76
+ }
77
+ export declare function createPrintJob(transport: InternerTransport, o: CreatePrintJobOptions): Promise<PrintJob>;
78
+ /**
79
+ * Stand eines Druckjobs abfragen. Der Aufrufer fragt, bis [isPrintJobFinished]
80
+ * wahr ist, und begrenzt die Abfrage trotzdem selbst (Anzahl oder Zeit): ein
81
+ * Drucker, der nie abholt, bleibt `pending`.
82
+ */
83
+ export declare function getPrintJob(transport: InternerTransport, o: {
84
+ printerId: string;
85
+ jobId: string;
86
+ }): Promise<PrintJob>;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PRINT_JOB_SOURCES = exports.PRINT_JOB_STATUSES = void 0;
4
+ exports.isPrintJobFinished = isPrintJobFinished;
5
+ exports.listMyPrinters = listMyPrinters;
6
+ exports.createPrintJob = createPrintJob;
7
+ exports.getPrintJob = getPrintJob;
8
+ const index_js_1 = require("../printing/index.js");
9
+ /** Stand eines Druckjobs (Katalog `DRUCKJOB`). */
10
+ exports.PRINT_JOB_STATUSES = ['pending', 'sent', 'printed', 'failed', 'expired'];
11
+ /** Endet die Abfrage bei diesem Stand? `printed`, `failed`, `expired` und `unknown`. */
12
+ function isPrintJobFinished(status) {
13
+ return status === 'printed' || status === 'failed' || status === 'expired' || status === 'unknown';
14
+ }
15
+ /**
16
+ * Bekannte Werte fuer `source` (Katalog `DRUCK_QUELLE`): die Kasse oder das
17
+ * Panel. Der Server nimmt Freitext bis 40 Zeichen an und uebersetzt nur diese
18
+ * beiden.
19
+ */
20
+ exports.PRINT_JOB_SOURCES = ['pos', 'panel'];
21
+ const text = (v) => (typeof v === 'string' && v ? v : null);
22
+ const zahl = (v) => (typeof v === 'number' && Number.isFinite(v) ? v : null);
23
+ const STATUS = new Set(exports.PRINT_JOB_STATUSES);
24
+ /**
25
+ * Stand eines Jobs aus der Antwort. Ein Wert ausserhalb des Katalogs (ein
26
+ * kuenftiger Endstand wie `cancelled`) oder gar keiner wird `'unknown'`:
27
+ * sichtbar, nie als gedruckt gewertet, und die Abfrage endet.
28
+ */
29
+ function status(v) {
30
+ return typeof v === 'string' && STATUS.has(v) ? v : 'unknown';
31
+ }
32
+ async function listMyPrinters(transport) {
33
+ const daten = await transport('listMyPrinters', {});
34
+ return (Array.isArray(daten?.printers) ? daten.printers : []).map((r) => {
35
+ const d = (r ?? {});
36
+ const e = d.lastResult && typeof d.lastResult === 'object' ? d.lastResult : null;
37
+ return {
38
+ id: String(d.id ?? ''), name: String(d.name ?? ''), kind: String(d.kind ?? 'epson-sdp'), paperSize: d.paperSize === 'mm58' ? 'mm58' : 'mm80',
39
+ active: d.active !== false, createdAt: zahl(d.createdAt), lastSeenAt: zahl(d.lastSeenAt),
40
+ lastResult: e ? { success: e.success === true, code: text(e.code), at: zahl(e.at) ?? 0 } : null,
41
+ printerSerial: text(d.printerSerial),
42
+ ...(text(d.sdpUrl) ? { sdpUrl: String(d.sdpUrl) } : {}),
43
+ };
44
+ });
45
+ }
46
+ async function createPrintJob(transport, o) {
47
+ const params = { printerId: o.printerId, layout: o.layout };
48
+ if (o.receiptId)
49
+ params.receiptId = o.receiptId;
50
+ if (o.title)
51
+ params.title = o.title;
52
+ if (o.source)
53
+ params.source = o.source;
54
+ if (o.logo) {
55
+ params.logo = {
56
+ scale: o.logo.size, pxWidth: o.logo.pixelWidth, pxHeight: o.logo.pixelHeight,
57
+ width: o.logo.raster.width, height: o.logo.raster.height, rows: (0, index_js_1.rasterRowsBase64)(o.logo.raster),
58
+ };
59
+ }
60
+ if (o.brandMark === true)
61
+ params.brand = true;
62
+ const daten = await transport('createPrintJob', params);
63
+ return { jobId: String(daten?.jobId ?? ''), status: status(daten?.status), result: null };
64
+ }
65
+ /**
66
+ * Stand eines Druckjobs abfragen. Der Aufrufer fragt, bis [isPrintJobFinished]
67
+ * wahr ist, und begrenzt die Abfrage trotzdem selbst (Anzahl oder Zeit): ein
68
+ * Drucker, der nie abholt, bleibt `pending`.
69
+ */
70
+ async function getPrintJob(transport, o) {
71
+ const d = await transport('getPrintJob', { printerId: o.printerId, jobId: o.jobId });
72
+ const e = d?.result && typeof d.result === 'object' ? d.result : null;
73
+ return {
74
+ jobId: String(d?.jobId ?? o.jobId), status: status(d?.status),
75
+ createdAt: zahl(d?.createdAt), sentAt: zahl(d?.sentAt),
76
+ result: e ? { success: e.success === true, code: text(e.code), status: text(e.status), at: zahl(e.at) ?? undefined } : null,
77
+ };
78
+ }
@@ -0,0 +1,36 @@
1
+ import { KasseneckApiError } from '../client/errors.js';
2
+ /**
3
+ * Fehler der Kassen-Aufrufe um den Verkauf herum (Einstellungen, Logo,
4
+ * Artikel, Drucker, Trinkgeld-Empfaenger) auswerten: am `code`, nie am Text.
5
+ * Belege, Storno und Belegmail haben eigene Listen (`RECEIPT_ERROR_CODES`,
6
+ * `CANCELLATION_ERROR_CODES`, `RECEIPT_EMAIL_ERROR_CODES`), die Anmeldung
7
+ * `REGISTER_ERROR_CODES` im Unterpfad `./register`.
8
+ *
9
+ * Abgeleitet aus dem Vertrags-Export (Fehlerfaelle dieser zehn Endpunkte in
10
+ * `fixtures/v3/antworten/kasse.json` und ihre Handler-Codes); ein Test haelt
11
+ * die Liste deckungsgleich. `validation` traegt `data.errors[]` mit dem
12
+ * aeusseren Feldpfad (`business.theme`, `device.shortcuts.splitPayment`).
13
+ * Dazu kommen die Codes, die der Rand auf jedem Kassen-Endpunkt erzeugen kann:
14
+ * die Anmelde- und Pruefcodes (`errorCodes.auth` ohne die sieben des
15
+ * Partner-Zugangs, z. B. `register_user_not_found`, wenn der Chef einen
16
+ * angemeldeten Benutzer loescht) und die des Rands selbst (`errorCodes.edge`:
17
+ * `validation`, `not_found`, `internal_translation_error`, `dialect_mismatch`,
18
+ * `response_translation_failed`). Ein Code, der in keiner Liste steht, bleibt
19
+ * ueber `KasseneckApiError.code` lesbar; die Kasse braucht dafuer einen
20
+ * Rueckfallzweig.
21
+ */
22
+ export declare const POS_ERROR_CODES: readonly ["account_not_found", "admin_required", "cashregister_not_assigned", "cashregister_not_found", "cashregister_token_invalid", "cashregister_token_missing", "device_not_found", "dialect_mismatch", "internal_translation_error", "live_not_enabled", "logo_invalid", "logo_invalid_type", "logo_too_large", "method_not_allowed", "mfa_required", "module_inactive", "not_found", "not_permitted", "print_job_not_found", "print_layout_failed", "printer_not_found", "register_user_no_business", "register_user_not_allowed", "register_user_not_found", "response_translation_failed", "session_expired", "session_other_cashregister", "unauthorized", "user_disabled", "user_verification_failed", "validation", "route_missing"];
23
+ export type PosErrorCode = typeof POS_ERROR_CODES[number];
24
+ export declare function isPosErrorCode(value: unknown): value is PosErrorCode;
25
+ /** Der Code eines geworfenen Fehlers, wenn er in [POS_ERROR_CODES] steht; sonst `undefined`. */
26
+ export declare function posErrorCode(error: unknown): PosErrorCode | undefined;
27
+ /** Kurzform fuer `catch (e) { if (isPosError(e, 'logo_too_large')) … }`. */
28
+ export declare function isPosError(error: unknown, code?: PosErrorCode): error is KasseneckApiError;
29
+ /** Ein Feldfehler aus `data.errors[]` einer `validation`-Antwort. */
30
+ export interface PosFieldError {
31
+ /** Aeusserer Feldpfad, z. B. `business.vatRates` oder `device.shortcuts.cash`. */
32
+ field: string;
33
+ message: string;
34
+ }
35
+ /** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */
36
+ export declare function posFieldErrors(error: unknown): PosFieldError[];
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POS_ERROR_CODES = void 0;
4
+ exports.isPosErrorCode = isPosErrorCode;
5
+ exports.posErrorCode = posErrorCode;
6
+ exports.isPosError = isPosError;
7
+ exports.posFieldErrors = posFieldErrors;
8
+ const errors_js_1 = require("../client/errors.js");
9
+ /**
10
+ * Fehler der Kassen-Aufrufe um den Verkauf herum (Einstellungen, Logo,
11
+ * Artikel, Drucker, Trinkgeld-Empfaenger) auswerten: am `code`, nie am Text.
12
+ * Belege, Storno und Belegmail haben eigene Listen (`RECEIPT_ERROR_CODES`,
13
+ * `CANCELLATION_ERROR_CODES`, `RECEIPT_EMAIL_ERROR_CODES`), die Anmeldung
14
+ * `REGISTER_ERROR_CODES` im Unterpfad `./register`.
15
+ *
16
+ * Abgeleitet aus dem Vertrags-Export (Fehlerfaelle dieser zehn Endpunkte in
17
+ * `fixtures/v3/antworten/kasse.json` und ihre Handler-Codes); ein Test haelt
18
+ * die Liste deckungsgleich. `validation` traegt `data.errors[]` mit dem
19
+ * aeusseren Feldpfad (`business.theme`, `device.shortcuts.splitPayment`).
20
+ * Dazu kommen die Codes, die der Rand auf jedem Kassen-Endpunkt erzeugen kann:
21
+ * die Anmelde- und Pruefcodes (`errorCodes.auth` ohne die sieben des
22
+ * Partner-Zugangs, z. B. `register_user_not_found`, wenn der Chef einen
23
+ * angemeldeten Benutzer loescht) und die des Rands selbst (`errorCodes.edge`:
24
+ * `validation`, `not_found`, `internal_translation_error`, `dialect_mismatch`,
25
+ * `response_translation_failed`). Ein Code, der in keiner Liste steht, bleibt
26
+ * ueber `KasseneckApiError.code` lesbar; die Kasse braucht dafuer einen
27
+ * Rueckfallzweig.
28
+ */
29
+ exports.POS_ERROR_CODES = Object.freeze([
30
+ 'account_not_found',
31
+ 'admin_required',
32
+ 'cashregister_not_assigned',
33
+ 'cashregister_not_found',
34
+ 'cashregister_token_invalid',
35
+ 'cashregister_token_missing',
36
+ 'device_not_found',
37
+ 'dialect_mismatch',
38
+ 'internal_translation_error',
39
+ 'live_not_enabled',
40
+ 'logo_invalid',
41
+ 'logo_invalid_type',
42
+ 'logo_too_large',
43
+ 'method_not_allowed',
44
+ 'mfa_required',
45
+ 'module_inactive',
46
+ 'not_found',
47
+ 'not_permitted',
48
+ 'print_job_not_found',
49
+ 'print_layout_failed',
50
+ 'printer_not_found',
51
+ 'register_user_no_business',
52
+ 'register_user_not_allowed',
53
+ 'register_user_not_found',
54
+ 'response_translation_failed',
55
+ 'session_expired',
56
+ 'session_other_cashregister',
57
+ 'unauthorized',
58
+ 'user_disabled',
59
+ 'user_verification_failed',
60
+ 'validation',
61
+ // Code des Pakets (CLIENT_ERROR_CODES): HTML statt Backend, der Aufruf kam nie an
62
+ 'route_missing',
63
+ ]);
64
+ const BEKANNT = new Set(exports.POS_ERROR_CODES);
65
+ function isPosErrorCode(value) {
66
+ return typeof value === 'string' && BEKANNT.has(value);
67
+ }
68
+ /** Der Code eines geworfenen Fehlers, wenn er in [POS_ERROR_CODES] steht; sonst `undefined`. */
69
+ function posErrorCode(error) {
70
+ if (!(error instanceof errors_js_1.KasseneckApiError))
71
+ return undefined;
72
+ return isPosErrorCode(error.code) ? error.code : undefined;
73
+ }
74
+ /** Kurzform fuer `catch (e) { if (isPosError(e, 'logo_too_large')) … }`. */
75
+ function isPosError(error, code) {
76
+ const gefunden = posErrorCode(error);
77
+ return gefunden !== undefined && (code === undefined || gefunden === code);
78
+ }
79
+ /** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */
80
+ function posFieldErrors(error) {
81
+ if (!(error instanceof errors_js_1.KasseneckApiError))
82
+ return [];
83
+ const roh = error.details['errors'];
84
+ if (!Array.isArray(roh))
85
+ return [];
86
+ const raus = [];
87
+ for (const eintrag of roh) {
88
+ if (eintrag === null || typeof eintrag !== 'object')
89
+ continue;
90
+ const { field, message } = eintrag;
91
+ if (typeof field === 'string' && typeof message === 'string')
92
+ raus.push({ field, message });
93
+ }
94
+ return raus;
95
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Kachel-Kasse: Einstellungen, Artikelgruppen/Artikel fuer Kacheln,
3
+ * Rabattverteilung, Drucker, Trinkgeld-Empfaenger. Die Aufrufe heissen 1:1 wie
4
+ * die Backend-Functions (die Rewrites-Waechter der Web-App leiten daraus ab)
5
+ * und sprechen den Kassenweg `/api/v3` (Schluessel und Werte englisch).
6
+ */
7
+ export { type PosTheme, type PosFontSize, type PosWatermark, type PosQuantity, type PosTipMode, type PosCheckoutMode, type PosCardProvider, type PosReceiptOutput, type PosShortcutAction, type PosShortcutMap, POS_SHORTCUT_ACTIONS, POS_SHORTCUT_DEFAULTS, type PosLayout, type PosCategoryPosition, type PosTileHeight, type PosPrinterType, type PosTerminalVia, type PosTerminalType, type PosPaperSize, type PosCodePage, type PosCut, type PosDrawerAutoOpen, type PosQrMode, type PosLogoSize, type PosSettingsFontSize, type PosTileStyle, type PosAutoLogoutMinutes, type PosDiscount, type PosWatermarkSide, type PosWatermarkStrength, type PosLogoScale, type PosWatermarkScale, type PosDoneScreenSeconds, type PosToggleMap, type PosBusinessSettings, type PosDeviceSettings, type PosSettings, POS_BUSINESS_DEFAULTS, POS_DEVICE_DEFAULTS, POS_BUSINESS_VALUES, POS_DEVICE_VALUES, mergePosSettings, sanitizePosSettings, unknownPosSettingValues, posSettingsChanges, type PosOpen, POS_SHORTCUT_SHARED_PAIRS, posShortcutConflict, THEME, FONT_SIZE, WATERMARK, QUANTITY, TIP_MODE, CHECKOUT_MODE, CARD_PROVIDER, RECEIPT_OUTPUT, LAYOUT, CATEGORY_POSITION, TILE_HEIGHT, PRINTER_TYPE, TERMINAL_VIA, TERMINAL_TYPE, PAPER_SIZE, CODE_PAGE, CUT, DRAWER_AUTO_OPEN, QR_MODE, LOGO_SIZE, SETTINGS_FONT_SIZE, TILE_STYLE, AUTO_LOGOUT_MINUTES, DISCOUNT, WATERMARK_SIDE, WATERMARK_STRENGTH, LOGO_SCALE, WATERMARK_SCALE, DONE_SCREEN_SECONDS, } from './settings.js';
8
+ export { type ArticleGroup, type ArticleGroupPayload, fromArticleGroupPayload, type PosArticle, type PosArticlePayload, fromPosArticlePayload, listMyArticleGroups, listMyArticles, QUANTITY_RULES, type QuantityRule, type QuantityDefaults, quantityRuleForUnit, quantityDefaults, allowedQuantity, } from './artikel.js';
9
+ export { getPosSettings, setMyPosSettings, setMyRegisterDeviceSettings, setMyPosLogo, posSettingsFromWire, type SetMyPosLogoOptions, } from './client.js';
10
+ export { POS_ERROR_CODES, type PosErrorCode, isPosErrorCode, posErrorCode, isPosError, type PosFieldError, posFieldErrors, } from './errors.js';
11
+ export { distributeDiscount } from '../receipt/discount.js';
12
+ export { cancelScopeOf, receiptsScopeOf, type RegisterScope, type RegisterUserPerms } from '../register/pairing.js';
13
+ export { type NetworkPrinter, type PrintJob, type PrintJobStatus, PRINT_JOB_STATUSES, type PrintJobSource, PRINT_JOB_SOURCES, isPrintJobFinished, type CreatePrintJobOptions, listMyPrinters, createPrintJob, getPrintJob, } from './drucker.js';
14
+ export { listMyTipRecipients } from './trinkgeld.js';
15
+ export { MESSAGES, ERROR_RULES, messageText, messageAppliesTo, RECEIPT_EMAIL_ERROR_MESSAGES, receiptEmailErrorMessage, CANCELLATION_PAYMENT_ERROR_MESSAGES, cancellationPaymentErrorMessage, LABELS, labelText, type TextEntry, type MessageKey, type ErrorKind, type Surface, type ReceiptEmailMessageCode, type CancellationPaymentMessageCode, type LabelKey, } from './texte.js';