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